name: types-schema
description: 'This schema provides a collection of common types for use in other

  schemas. It can be imported directly into other linkml schemas, or

  any of its individual property definitions can be used by their

  URI as vocabulary components or definitions (e.g., `dltypes:EmailAddress`

  identified by this [URI](EmailAddress)).


  With the [`schema_type`](schema_type) slot and its `range` type

  [`NodeUriOrCurie`](NodeUriOrCurie), this schema provides an essential

  building block for other schemas. This slot can be used as a

  [type designator](https://linkml.io/linkml/schemas/type-designators.html),

  to enable precise validation of sub-types, with an adequate

  representation in an RDF data export.


  The schema definition is available as


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

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

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

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

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


  Upcoming changes to this schema may be available in an [(unreleased)

  development version](../../types/unreleased).

  '
title: Collection of common types and a type-designator
comments:
- ALL CONTENT HERE IS UNRELEASED AND MAY CHANGE ANY TIME
status: eunal:concept-status/CURRENT
id: https://concepts.datalad.org/s/types/v1
version: 1.0.0
license: MIT
prefixes:
  dcterms:
    prefix_prefix: dcterms
    prefix_reference: http://purl.org/dc/terms/
  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/
  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#
  schema:
    prefix_prefix: schema
    prefix_reference: http://schema.org/
  xsd:
    prefix_prefix: xsd
    prefix_reference: http://www.w3.org/2001/XMLSchema#
  shex:
    prefix_prefix: shex
    prefix_reference: http://www.w3.org/ns/shex#
emit_prefixes:
- dltypes
- rdf
- rdfs
- xsd
default_prefix: dltypes
types:
  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
  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
slots:
  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
source_file: src/types/v1.yaml

