name-parser/src/main/java/org/gbif/nameparser/AuthorshipParsingJob.java
/**
     * Fully parse the supplied name also trying to extract authorships, a conceptual sec reference, remarks or notes
     * on the nomenclatural status. In some cases the authorship parsing proves impossible and this nameparser will
     * return null.
     *
     * For strings which are no scientific names and scientific names that cannot be expressed by the ParsedName class
     * the parser will throw an UnparsableException with a given NameType and the original, unparsed name. This is the
     * case for all virus names and proper hybrid formulas, so make sure you catch and process this exception.
     *
     * @throws UnparsableNameException
     */
Fully parse the supplied name also trying to extract authorships, a conceptual sec reference, remarks or notes
on the nomenclatural status. In some cases the authorship parsing proves impossible and this nameparser will
return null.

For strings which are no scientific names and scientific names that cannot be expressed by the ParsedName class
the parser will throw an UnparsableException with a given NameType and the original, unparsed name. This is the
case for all virus names and proper hybrid formulas, so make sure you catch and process this exception.


Fully parse the supplied name also trying to extract authorships a conceptual sec reference remarks or notes on the nomenclatural status . In some cases the authorship parsing proves impossible and this nameparser will return null . For strings which are no scientific names and scientific names that cannot be expressed by the ParsedName class the parser will throw an UnparsableException with a given NameType and the original unparsed name . This is the case for all virus names and proper hybrid formulas so make sure you catch and process this exception .
@Override
    public ParsedName call() throws UnparsableNameException, InterruptedException {
        long start = 0;
        if (LOG.isDebugEnabled()) {
            start = System.currentTimeMillis();
        }
        name = preClean(scientificName);
        preparseNomRef();
        removePlaceholderAuthor();
        detectFurtherUnparsableNames();
        name = normalize(name);
        if (Strings.isNullOrEmpty(name)) {
            unparsable();
        }
        extractNomStatus();
        extractSecReference();
        extractPublishedIn();
        name = normalizeHort(name);
        name = noQMarks(name);
        name = normBrackets(name);
        name = normWsPunct(name);
        parseNormalisedAuthorship();
        if (state != null) {
            pn.setState(state);
        }
        if (LOG.isDebugEnabled()) {
            LOG.debug("Parsing time: {} for {}", (System.currentTimeMillis() - start), pn);
        }
        return pn;
    }
@ Override public ParsedName call ( ) throws UnparsableNameException , InterruptedException { long start = 0 ; if ( LOG . isDebugEnabled ( ) ) { start = System . currentTimeMillis ( ) ; } name = preClean ( scientificName ) ; preparseNomRef ( ) ; removePlaceholderAuthor ( ) ; detectFurtherUnparsableNames ( ) ; name = normalize ( name ) ; if ( Strings . isNullOrEmpty ( name ) ) { unparsable ( ) ; } extractNomStatus ( ) ; extractSecReference ( ) ; extractPublishedIn ( ) ; name = normalizeHort ( name ) ; name = noQMarks ( name ) ; name = normBrackets ( name ) ; name = normWsPunct ( name ) ; parseNormalisedAuthorship ( ) ; if ( state != null ) { pn . setState ( state ) ; } if ( LOG . isDebugEnabled ( ) ) { LOG . debug ( "Parsing time: {} for {}" , ( System . currentTimeMillis ( ) - start ) , pn ) ; } return pn ; }
Fully parse the supplied name also trying to extract authorships, a conceptual sec reference, remarks or notes
 on the nomenclatural status.
Fully parse the supplied name also trying to extract authorships a conceptual sec reference remarks or notes on the nomenclatural status .
// clean name, removing seriously wrong things // preparse nomenclatural references // remove placeholders from infragenerics and authors and set type // detect further unparsable names // normalise name // extract nom.illeg. and other nomen status notes // extract sec reference // extract bibliographic in references // normalize ex hort. (for gardeners, often used as ex names) spelled in lower case // replace different kind of brackets with () // main authorship parsing