Class LifeScienceIdentifier

  • All Implemented Interfaces:
    Serializable

    public final class LifeScienceIdentifier
    extends Object
    implements Serializable
    Life Science Identifier (LSID). LSID syntax:

    urn:lsid:<authorityId>:<namespaceId>:<objectId>:<revisionId>

    The elements of a LSID are as follows:

    • authorityId = <authorityId> identifies the organization
    • namespaceId = <namespaceId> namespace to scope the identifier value
    • objectId = <objectId> identifier of the object within namespace
    • revisionId = <revisionId> optional version information

    Examples:

     urn:lsid:ebi.ac.uk:SWISS-PROT/accession:P34355:3
     urn:lsid:rcsb.org:PDB:1D4X:22
     urn:lsid:ncbi.nlm.nih.gov:Genbank/accession:NT_001063:2
     

    As described in the memo URN Namespace for Life Science Identifiers
    > http://www.i3c.org/workgroups/technical_architecture/resources/lsid/docs/LSIDSyntax9-20-02.htm

    TODO:
    Should this class support the spec definition of "lexical equivalence" in the equals(Object) method, or by the introduction of a new method boolean lexicallyEquivalent(LifeScienceIdentifier)?

    From the spec:
    For various purposes such as caching and replication, it's often desirable to determine if two LSIDs are the same without resolving them. The general purpose means of doing so is by testing for "lexical equivalence" as defined: LSIDs are lexically equivalent if the AuthorityID, NamespaceID, ObjectID, and RevisionID are all identical (case-insensitive comparison).

    Author:
    Michael Heuer
    See Also:
    Serialized Form