name: identifiers-schema
description: 'This schema implements some aspects of the [identifier

  concept](https://www.w3.org/TR/vocab-adms/#dt_identifier) of the [Asset

  Description Metadata Schema](https://www.w3.org/TR/vocab-adms/#dt_identifier)

  (ADMS). The provided [`identifiers` slot](identifiers) can be used to annotate

  entities with identifiers with arbitrary scopes and issued by arbitrary agencies.


  The schema also covered "content identifier" that are directly derived from

  an entity ([`ComputedIdentifier`](ComputedIdentifier)), and a

  [`Checksum`](Checksum) in particular.


  This schema also incorporates the schema(s)


  - [`types`](https://concepts.datalad.org/s/types/v1)


  The schema definition is available as


  - [JSON-LD context](../unreleased.context.jsonld)

  - [LinkML YAML](../unreleased.yaml)

  - [LinkML YAML (static/resolved)](../unreleased.static.yaml)

  - [OWL TTL](../unreleased.owl.ttl)

  - [SHACL TTL](../unreleased.shacl.ttl)

  '
title: Schema components to express identifiers of things
comments:
- ALL CONTENT HERE IS UNRELEASED AND MAY CHANGE ANY TIME
status: eunal:concept-status/DEPRECATED
id: https://concepts.datalad.org/s/identifiers/unreleased
version: UNRELEASED
license: MIT
prefixes:
  ADMS:
    prefix_prefix: ADMS
    prefix_reference: http://www.w3.org/ns/adms#
  dcterms:
    prefix_prefix: dcterms
    prefix_reference: http://purl.org/dc/terms/
  dlidentifiers:
    prefix_prefix: dlidentifiers
    prefix_reference: https://concepts.datalad.org/s/identifiers/unreleased/
  dlschemas:
    prefix_prefix: dlschemas
    prefix_reference: https://concepts.datalad.org/s/
  dltypes:
    prefix_prefix: dltypes
    prefix_reference: https://concepts.datalad.org/s/types/v1/
  eunal:
    prefix_prefix: eunal
    prefix_reference: http://publications.europa.eu/resource/authority/
  ex:
    prefix_prefix: ex
    prefix_reference: http://example.org/
  linkml:
    prefix_prefix: linkml
    prefix_reference: https://w3id.org/linkml/
  rdf:
    prefix_prefix: rdf
    prefix_reference: http://www.w3.org/1999/02/22-rdf-syntax-ns#
  rdfs:
    prefix_prefix: rdfs
    prefix_reference: http://www.w3.org/2000/01/rdf-schema#
  skos:
    prefix_prefix: skos
    prefix_reference: http://www.w3.org/2004/02/skos/core#
  spdx:
    prefix_prefix: spdx
    prefix_reference: http://spdx.org/rdf/terms#
  xsd:
    prefix_prefix: xsd
    prefix_reference: http://www.w3.org/2001/XMLSchema#
  shex:
    prefix_prefix: shex
    prefix_reference: http://www.w3.org/ns/shex#
  schema:
    prefix_prefix: schema
    prefix_reference: http://schema.org/
emit_prefixes:
- dlidentifiers
- dltypes
- rdf
- rdfs
- xsd
default_prefix: dlidentifiers
types:
  string:
    name: string
    description: A character string
    notes:
    - In RDF serializations, a slot with range of string is treated as a literal or
      type xsd:string.   If you are authoring schemas in LinkML YAML, the type is
      referenced with the lower case "string".
    from_schema: https://w3id.org/linkml/types
    exact_mappings:
    - schema:Text
    base: str
    uri: xsd:string
  integer:
    name: integer
    description: An integer
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "integer".
    from_schema: https://w3id.org/linkml/types
    exact_mappings:
    - schema:Integer
    base: int
    uri: xsd:integer
  boolean:
    name: boolean
    description: A binary (true or false) value
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "boolean".
    from_schema: https://w3id.org/linkml/types
    exact_mappings:
    - schema:Boolean
    base: Bool
    uri: xsd:boolean
    repr: bool
  float:
    name: float
    description: A real number that conforms to the xsd:float specification
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "float".
    from_schema: https://w3id.org/linkml/types
    exact_mappings:
    - schema:Float
    base: float
    uri: xsd:float
  double:
    name: double
    description: A real number that conforms to the xsd:double specification
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "double".
    from_schema: https://w3id.org/linkml/types
    close_mappings:
    - schema:Float
    base: float
    uri: xsd:double
  decimal:
    name: decimal
    description: A real number with arbitrary precision that conforms to the xsd:decimal
      specification
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "decimal".
    from_schema: https://w3id.org/linkml/types
    broad_mappings:
    - schema:Number
    base: Decimal
    uri: xsd:decimal
  time:
    name: time
    description: A time object represents a (local) time of day, independent of any
      particular day
    notes:
    - URI is dateTime because OWL reasoners do not work with straight date or time
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "time".
    from_schema: https://w3id.org/linkml/types
    exact_mappings:
    - schema:Time
    base: XSDTime
    uri: xsd:time
    repr: str
  date:
    name: date
    description: a date (year, month and day) in an idealized calendar
    notes:
    - URI is dateTime because OWL reasoners don't work with straight date or time
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "date".
    from_schema: https://w3id.org/linkml/types
    exact_mappings:
    - schema:Date
    base: XSDDate
    uri: xsd:date
    repr: str
  datetime:
    name: datetime
    description: The combination of a date and time
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "datetime".
    from_schema: https://w3id.org/linkml/types
    exact_mappings:
    - schema:DateTime
    base: XSDDateTime
    uri: xsd:dateTime
    repr: str
  date_or_datetime:
    name: date_or_datetime
    description: Either a date or a datetime
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "date_or_datetime".
    from_schema: https://w3id.org/linkml/types
    base: str
    uri: linkml:DateOrDatetime
    repr: str
  uriorcurie:
    name: uriorcurie
    description: a URI or a CURIE
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "uriorcurie".
    from_schema: https://w3id.org/linkml/types
    base: URIorCURIE
    uri: xsd:anyURI
    repr: str
  curie:
    name: curie
    conforms_to: https://www.w3.org/TR/curie/
    description: a compact URI
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "curie".
    comments:
    - in RDF serializations this MUST be expanded to a URI
    - in non-RDF serializations MAY be serialized as the compact representation
    from_schema: https://w3id.org/linkml/types
    base: Curie
    uri: xsd:string
    repr: str
  uri:
    name: uri
    conforms_to: https://www.ietf.org/rfc/rfc3987.txt
    description: a complete URI
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "uri".
    comments:
    - in RDF serializations a slot with range of uri is treated as a literal or type
      xsd:anyURI unless it is an identifier or a reference to an identifier, in which
      case it is translated directly to a node
    from_schema: https://w3id.org/linkml/types
    close_mappings:
    - schema:URL
    base: URI
    uri: xsd:anyURI
    repr: str
  ncname:
    name: ncname
    description: Prefix part of CURIE
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "ncname".
    from_schema: https://w3id.org/linkml/types
    base: NCName
    uri: xsd:string
    repr: str
  objectidentifier:
    name: objectidentifier
    description: A URI or CURIE that represents an object in the model.
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "objectidentifier".
    comments:
    - Used for inheritance and type checking
    from_schema: https://w3id.org/linkml/types
    base: ElementIdentifier
    uri: shex:iri
    repr: str
  nodeidentifier:
    name: nodeidentifier
    description: A URI, CURIE or BNODE that represents a node in a model.
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "nodeidentifier".
    from_schema: https://w3id.org/linkml/types
    base: NodeIdentifier
    uri: shex:nonLiteral
    repr: str
  jsonpointer:
    name: jsonpointer
    conforms_to: https://datatracker.ietf.org/doc/html/rfc6901
    description: A string encoding a JSON Pointer. The value of the string MUST conform
      to JSON Point syntax and SHOULD dereference to a valid object within the current
      instance document when encoded in tree form.
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "jsonpointer".
    from_schema: https://w3id.org/linkml/types
    base: str
    uri: xsd:string
    repr: str
  jsonpath:
    name: jsonpath
    conforms_to: https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html
    description: A string encoding a JSON Path. The value of the string MUST conform
      to JSON Point syntax and SHOULD dereference to zero or more valid objects within
      the current instance document when encoded in tree form.
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "jsonpath".
    from_schema: https://w3id.org/linkml/types
    base: str
    uri: xsd:string
    repr: str
  sparqlpath:
    name: sparqlpath
    conforms_to: https://www.w3.org/TR/sparql11-query/#propertypaths
    description: A string encoding a SPARQL Property Path. The value of the string
      MUST conform to SPARQL syntax and SHOULD dereference to zero or more valid objects
      within the current instance document when encoded as RDF.
    notes:
    - If you are authoring schemas in LinkML YAML, the type is referenced with the
      lower case "sparqlpath".
    from_schema: https://w3id.org/linkml/types
    base: str
    uri: xsd:string
    repr: str
  EmailAddress:
    name: EmailAddress
    description: RFC 5322 compliant email address
    notes:
    - The validation regex is taken from https://stackoverflow.com/a/201378
    - The regex is single-quoted for YAML encoding, hence all inner "'" have been
      doubled
    from_schema: https://concepts.datalad.org/s/types/v1
    typeof: string
    base: str
    uri: dltypes:EmailAddress
    pattern: (?:[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[A-Za-z0-9-]*[A-Za-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
  HexBinary:
    name: HexBinary
    description: hex-encoded binary data.
    from_schema: https://concepts.datalad.org/s/types/v1
    typeof: string
    base: str
    uri: xsd:hexBinary
    pattern: ^[a-fA-F0-9]+$
  NodeUriOrCurie:
    name: NodeUriOrCurie
    description: A type referencing an graph node. This is like `uriorcurie`, but
      in an RDF export leads to the desirable `rdf.type` declaration, rather then
      an `rdf.literal` of the corresponding URI.
    from_schema: https://concepts.datalad.org/s/types/v1
    typeof: uriorcurie
    base: str
    uri: rdfs:Resource
  NonNegativeInteger:
    name: NonNegativeInteger
    description: An integer
    notes:
    - Integer with minimum (inclusive) value of zero, i.e. the standard mathematical
      concept of the non-negative integers.
    from_schema: https://concepts.datalad.org/s/types/v1
    broad_mappings:
    - schema:Integer
    typeof: integer
    base: int
    uri: xsd:nonNegativeInteger
slots:
  creator:
    name: creator
    description: An agent responsible for making an entity.
    notes:
    - The `range` is only `uriorcurie` here (and not `Thing`), because we have an
      `ifabsent` declaration for DOIs that only work with this type. And even for
      that it needs a patch.
    from_schema: https://concepts.datalad.org/s/identifiers/unreleased
    exact_mappings:
    - dcterms:creator
    slot_uri: dlidentifiers:creator
    range: uriorcurie
  identifiers:
    name: identifiers
    description: An unambiguous reference to the subject within a given context.
    from_schema: https://concepts.datalad.org/s/identifiers/unreleased
    exact_mappings:
    - dcterms:identifier
    - schema:identifier
    - ADMS:identifier
    slot_uri: dlidentifiers:identifier
    range: Identifier
    multivalued: true
    inlined: true
    inlined_as_list: true
  notation:
    name: notation
    description: String of characters such as "T58:5" or "30:4833" used to uniquely
      identify a concept within the scope of a given concept scheme.
    from_schema: https://concepts.datalad.org/s/identifiers/unreleased
    exact_mappings:
    - skos:notation
    slot_uri: dlidentifiers:notation
    range: string
  schema_agency:
    name: schema_agency
    description: Name of the agency that issued an identifier.
    from_schema: https://concepts.datalad.org/s/identifiers/unreleased
    exact_mappings:
    - ADMS:schemaAgency
    slot_uri: dlidentifiers:schema_agency
    range: string
  schema_type:
    name: schema_type
    description: State that the subject is an instance of a particular schema class.
      Typically, no explicit value needs to be assigned to this slot, because it matches
      the class type of a particular record. However, this slots can be used as a
      type designator of a schema element for validation and schema structure handling
      purposes. This is used to indicate specialized schema classes for properties
      that accept a hierarchy of classes as their range.
    from_schema: https://concepts.datalad.org/s/types/v1
    exact_mappings:
    - dcterms:type
    slot_uri: rdf:type
    designates_type: true
    range: NodeUriOrCurie
classes:
  Identifier:
    name: Identifier
    description: An identifier is a label that uniquely identifies an item in a particular
      context. Some identifiers are globally unique. All identifiers are unique within
      their individual scope.
    from_schema: https://concepts.datalad.org/s/identifiers/unreleased
    close_mappings:
    - ADMS:Identifier
    slots:
    - creator
    - notation
    - schema_type
    slot_usage:
      notation:
        name: notation
        required: true
    class_uri: dlidentifiers:Identifier
  IssuedIdentifier:
    name: IssuedIdentifier
    description: An identifier that was issued by a particular agent with a notation
      that has no (or an undefined) relation to the nature of the identified entity.
    from_schema: https://concepts.datalad.org/s/identifiers/unreleased
    see_also:
    - https://semiceu.github.io/ADMS/releases/2.00/#Identifier
    exact_mappings:
    - ADMS:Identifier
    is_a: Identifier
    slots:
    - schema_agency
    class_uri: dlidentifiers:IssuedIdentifier
  ComputedIdentifier:
    name: ComputedIdentifier
    description: An identifier that has been derived from information on the identified
      entity.
    from_schema: https://concepts.datalad.org/s/identifiers/unreleased
    narrow_mappings:
    - spdx:Checksum
    is_a: Identifier
    class_uri: dlidentifiers:ComputedIdentifier
  Checksum:
    name: Checksum
    description: A Checksum is a value that allows to check the integrity of the contents
      of a file. Even small changes to the content of the file will change its checksum.
      This class allows the results of a variety of checksum and cryptographic message
      digest algorithms to be represented.
    from_schema: https://concepts.datalad.org/s/identifiers/unreleased
    exact_mappings:
    - spdx:Checksum
    is_a: ComputedIdentifier
    slot_usage:
      creator:
        name: creator
        description: Identifies the software agent (algorithm) used to produce the
          subject `Checksum`.
        exact_mappings:
        - spdx:algorithm
        required: true
      notation:
        name: notation
        description: Lower case hexadecimal encoded checksum digest value.
        exact_mappings:
        - spdx:checksumValue
        range: HexBinary
        required: true
    class_uri: dlidentifiers:Checksum
  DOI:
    name: DOI
    description: Digital Object Identifier (DOI; ISO 26324), an identifier system
      governed by the DOI Foundation, where individual identifiers are issued by one
      of several registration agencies.
    from_schema: https://concepts.datalad.org/s/identifiers/unreleased
    is_a: IssuedIdentifier
    slot_usage:
      creator:
        name: creator
        description: By default, the creator is identified as "https://doi.org".
        ifabsent: uriorcurie(https://doi.org)
      notation:
        name: notation
        description: The identifier notation is specified without a URL-prefix, or
          a `doi:` prefix.
        pattern: (?i)^(?!(?:https?://|doi:)).+$
      schema_agency:
        name: schema_agency
        description: By default, the schema agency is identified as `DOI Foundation`.
        ifabsent: string(DOI Foundation)
    class_uri: dlidentifiers:DOI
    unique_keys:
      value:
        unique_key_name: value
        unique_key_slots:
        - notation
        description: The DOI notation is globally unique within the scope of DOIs
source_file: src/identifiers/unreleased.yaml

