name: things-schema
description: "This schema provides a generic [`Thing`](Thing) concept as a basic building\
  \ block.\nKey concepts of this schema are that any `Thing`\n\n- has a unique identifier\
  \ ([`pid`](pid))\n- can be mapped to arbitrary external schemas and terminologies\
  \ to maximize\n  semantic alignment with existing metadata ecosystems\n  (see [`mappings`](mappings))\n\
  - can be further described by attributes ([`attributes`](attributes))\n  and qualified\
  \ relations to other \"things\"\n  ([`characterized_by`](characterized_by)),\n \
  \ without prescribing a particular vocabulary\n- can be associated with a specialized\
  \ schema class for enabling detailed\n  validation and precise data transformations\
  \ ([`schema_type`](schema_type))\n  without limiting the general expressiveness\
  \ to a fixed set of classes\n  available this foundational schema.\n\nMore information\
  \ on this schema is available on a [dedicated page](about).\nEach class comes with\
  \ dedicated examples that exemplify its use. A good\nstarting point are the [examples\
  \ of the `Thing` class](Thing#examples).\n\nAlthough this generic schema could be\
  \ used directly, it is meant to be used\nas a foundational building block for more\
  \ targeted schemas. Therefore, the\nschema does not define common slots like `name`,\
  \ or `description`, and leaves\nthis to more targeted schemas to decide if such\
  \ slots are needed, and how they\nshould be defined. The envisioned use and reuse\
  \ of this schema is to import\nit and built targeted derivatives of `Thing` and\
  \ other classes provided here.\nSee the [PROV schema](/s/prov) for an example that\
  \ is built on this schema.\n\nThis schema also incorporates the schema(s)\n\n- [`types`](https://concepts.datalad.org/s/types/v1)\n\
  \nThe schema definition is available as\n\n- [JSON-LD context](../v1.context.jsonld)\n\
  - [LinkML YAML](../v1.yaml)\n- [LinkML YAML (static/resolved)](../v1.static.yaml)\n\
  - [OWL TTL](../v1.owl.ttl)\n- [SHACL TTL](../v1.shacl.ttl)\n\nUpcoming changes to\
  \ this schema may be available in an [(unreleased)\ndevelopment version](../../things/unreleased).\n"
title: Generic schema for an arbitrarily detailed description of "things"
status: eunal:concept-status/CURRENT
id: https://concepts.datalad.org/s/things/v1
version: 1.0.0
license: MIT
prefixes:
  ADMS:
    prefix_prefix: ADMS
    prefix_reference: http://www.w3.org/ns/adms#
  dash:
    prefix_prefix: dash
    prefix_reference: http://datashapes.org/dash#
  bibo:
    prefix_prefix: bibo
    prefix_reference: http://purl.org/ontology/bibo/
  dcat:
    prefix_prefix: dcat
    prefix_reference: http://www.w3.org/ns/dcat#
  dcterms:
    prefix_prefix: dcterms
    prefix_reference: http://purl.org/dc/terms/
  dlschemas:
    prefix_prefix: dlschemas
    prefix_reference: https://concepts.datalad.org/s/
  dlthings:
    prefix_prefix: dlthings
    prefix_reference: https://concepts.datalad.org/s/things/v1/
  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/
  obo:
    prefix_prefix: obo
    prefix_reference: http://purl.obolibrary.org/obo/
  owl:
    prefix_prefix: owl
    prefix_reference: http://www.w3.org/2002/07/owl#
  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/
  sh:
    prefix_prefix: sh
    prefix_reference: http://www.w3.org/ns/shacl#
  sio:
    prefix_prefix: sio
    prefix_reference: http://semanticscience.org/resource/
  skos:
    prefix_prefix: skos
    prefix_reference: http://www.w3.org/2004/02/skos/core#
  xsd:
    prefix_prefix: xsd
    prefix_reference: http://www.w3.org/2001/XMLSchema#
  exthisns:
    prefix_prefix: exthisns
    prefix_reference: https://example.org/ns/
  shex:
    prefix_prefix: shex
    prefix_reference: http://www.w3.org/ns/shex#
emit_prefixes:
- dlthings
- dltypes
- rdf
- rdfs
- skos
- xsd
default_prefix: dlthings
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:
  broad_mappings:
    name: broad_mappings
    description: A list of terms from different schemas or terminology systems that
      have broader meaning.
    title: Broad mappings
    from_schema: https://concepts.datalad.org/s/things/v1
    is_a: mappings
    slot_uri: skos:broadMatch
    range: uriorcurie
    multivalued: true
  close_mappings:
    name: close_mappings
    description: A list of terms from different schemas or terminology systems that
      have close meaning.
    title: Close mappings
    from_schema: https://concepts.datalad.org/s/things/v1
    is_a: mappings
    slot_uri: skos:closeMatch
    range: uriorcurie
    multivalued: true
  description:
    name: description
    annotations:
      dash:singleLine:
        tag: dash:singleLine
        value: false
    description: A free-text account of the subject.
    title: Description
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - dcterms:description
    - rdfs:comment
    broad_mappings:
    - obo:IAO_0000300
    slot_uri: dlthings:description
    range: string
  exact_mappings:
    name: exact_mappings
    description: A list of terms from different schemas or terminology systems that
      have identical meaning.
    title: Exact mappings
    from_schema: https://concepts.datalad.org/s/things/v1
    is_a: mappings
    slot_uri: skos:exactMatch
    range: uriorcurie
    multivalued: true
  attributes:
    name: attributes
    description: Declares a relation that associates a `Thing` (or another attribute)
      with an attribute, where an attribute is an intrinsic characteristic, such as
      a quality, capability, disposition, function, or is an externally derived attribute
      determined from some descriptor (e.g. a quantity, position, label/identifier).
      Technically, this declaration is done via an `AttributeSpecification` that combines
      a `predicate` with a value declaration and the attribute-related slots of a
      `Thing`. Importantly, such attributes are declared inline, because they do not
      have a unique identifier. If an identifier is available, a `Thing` declaration
      (see `relation`), and a qualification of that relationship via a `Statement`
      (see `characterized_by`) should be preferred.
    title: Attributes
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - sio:SIO_000008
    slot_uri: dlthings:attributes
    range: AttributeSpecification
    multivalued: true
    inlined: true
    inlined_as_list: true
  pid:
    name: pid
    description: Persistent and globally unique identifier of a `Thing`.
    title: Persistent identifier
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - dcterms:identifier
    - schema:identifier
    - ADMS:identifier
    slot_uri: dlthings:pid
    identifier: true
    range: uriorcurie
  characterized_by:
    name: characterized_by
    description: Qualifies relationships between a subject `Thing` and an object `Thing`
      with a `Statement` declaring a `predicate` on the nature of the relationship.
    title: Is characterized by
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - obo:RO_0000053
    slot_uri: dlthings:characterized_by
    range: Statement
    multivalued: true
    inlined: true
    inlined_as_list: true
  mappings:
    name: mappings
    description: A list of terms from different schemas or terminology systems that
      have comparable meaning. These may include terms that are precisely equivalent,
      broader or narrower in meaning, or otherwise semantically related but not equivalent
      from a strict ontological perspective.
    from_schema: https://concepts.datalad.org/s/things/v1
    slot_uri: skos:mappingRelation
    range: uriorcurie
    multivalued: true
  annotations:
    name: annotations
    description: A record of properties of the metadata record on a subject, a collection
      of tag/text tuples with the semantics of OWL Annotation.
    title: Annotations
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - obo:NCIT_C44272
    slot_uri: dlthings:annotations
    range: Annotation
    multivalued: true
    inlined: true
  annotation_tag:
    name: annotation_tag
    description: A tag identifying an annotation.
    from_schema: https://concepts.datalad.org/s/things/v1
    slot_uri: dlthings:annotation_tag
    range: Thing
  annotation_value:
    name: annotation_value
    description: The actual annotation.
    from_schema: https://concepts.datalad.org/s/things/v1
    slot_uri: dlthings:annotation_value
    range: string
  narrow_mappings:
    name: narrow_mappings
    description: A list of terms from different schemas or terminology systems that
      have narrower meaning.
    title: Narrow mappings
    from_schema: https://concepts.datalad.org/s/things/v1
    is_a: mappings
    slot_uri: skos:narrowMatch
    range: uriorcurie
    multivalued: true
  object:
    name: object
    description: Reference to a `Thing` within a `Statement`.
    notes:
    - We do not declare a range here to be able to tighten the range in subclasses
      of class that need a particular range. This appears to be working around a linkml
      limitation.
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - rdf:object
    slot_uri: rdf:object
    relational_role: OBJECT
    multivalued: false
    inlined: false
  predicate:
    name: predicate
    description: Reference to a `Property` within a `Statement`.
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - rdf:predicate
    slot_uri: rdf:predicate
    relational_role: PREDICATE
    range: Property
    multivalued: false
    inlined: false
  range:
    name: range
    description: Declares that the value of a `Thing` or `AttributeSpecification`
      are instances of a particular class.
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - rdfs:range
    slot_uri: rdfs:range
    range: uriorcurie
  related_mappings:
    name: related_mappings
    description: A list of terms from different schemas or terminology systems that
      have related meaning.
    title: Related mappings
    from_schema: https://concepts.datalad.org/s/things/v1
    is_a: mappings
    slot_uri: skos:relatedMatch
    range: uriorcurie
    multivalued: true
  relations:
    name: relations
    description: Declares an unqualified relation of the subject `Thing` to another
      `Thing`. This schema slot is used to define related things inline. If such a
      definition is not needed. A qualified relationship can be declared directly
      using the `characterized_by` slot.
    title: Relations
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - dcat:relation
    - dcterms:relation
    domain: Thing
    slot_uri: dlthings:relation
    symmetric: true
    relational_role: OBJECT
    range: Thing
    multivalued: true
    inlined: true
    inlined_as_list: false
  value:
    name: value
    description: Value that is a direct representation of a thing.
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - rdf:value
    slot_uri: rdf:value
    relational_role: OBJECT
    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:
  ThingMixin:
    name: ThingMixin
    description: Mix-in with the common interface of `Thing` and `AttributeSpecification`.
      This interface enables type specifications (`rdf:type`) for things and attributes
      via a `type` designator slot to indicate specialized schema classes for validation
      where a slot's `range` is too generic. A thing or attribute can be further describe
      with statements on qualified relations to other things (`characterized_by`),
      or inline attributes (`attributes`). A set of `mappings` slots enables the alignment
      for arbitrary external schemas and terminologies.
    from_schema: https://concepts.datalad.org/s/things/v1
    mixin: true
    slots:
    - annotations
    - broad_mappings
    - close_mappings
    - description
    - exact_mappings
    - attributes
    - characterized_by
    - narrow_mappings
    - related_mappings
    - schema_type
    class_uri: dlthings:ThingMixin
  ValueSpecificationMixin:
    name: ValueSpecificationMixin
    description: Mix-in for a (structured) value specification. Two slots are provided
      to define a (literal) value (`value`) and its type (`range`).
    from_schema: https://concepts.datalad.org/s/things/v1
    mixin: true
    slots:
    - range
    - value
    class_uri: dlthings:ValueSpecificationMixin
  AttributeSpecification:
    name: AttributeSpecification
    description: An attribute is conceptually a thing, but it requires no dedicated
      identifier (`pid`). Instead, it is linked to a `Thing` via its `attributes`
      slot and declares a `predicate` on the nature of the relationship.
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - sio:SIO_000614
    close_mappings:
    - dlthings:Thing
    mixins:
    - ThingMixin
    - ValueSpecificationMixin
    slots:
    - predicate
    slot_usage:
      predicate:
        name: predicate
        required: true
    class_uri: dlthings:AttributeSpecification
  Property:
    name: Property
    description: An RDF property, a `Thing` used to define a `predicate`, for example
      in a `Statement`.
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - rdf:Property
    is_a: Thing
    class_uri: dlthings:Property
  Statement:
    name: Statement
    description: An RDF statement that links a `predicate` (a `Property`) with an
      `object` (a `Thing`) to the subject to form a triple. A `Statement` is used
      to qualify a relation to a `Thing` referenced by its identifier. For specifying
      a qualified relation to an attribute that has no dedicated identifier, use an
      `AttributeSpecification`.
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - rdf:Statement
    slots:
    - object
    - predicate
    slot_usage:
      object:
        name: object
        range: Thing
        required: true
      predicate:
        name: predicate
        required: true
    class_uri: dlthings:Statement
  Thing:
    name: Thing
    description: The most basic, identifiable item. In addition to the slots that
      are common between a `Thing` and an `AttributeSpecification` (see `ThingMixin`),
      two additional slots are provided. The `pid` slot takes the required identifier
      for a `Thing`. The `relation` slot allows for the inline specification of other
      `Thing` instances. Such a relation is unqualified (and symmetric), and should
      be further characterized via a `Statement` (see `characterized_by`). From a
      schema perspective, the `relation` slots allows for building self-contained,
      structured documents (e.g., a JSON object) with arbitrarily complex information
      on a `Thing`.
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - schema:Thing
    mixins:
    - ThingMixin
    slots:
    - pid
    - relations
    slot_usage:
      pid:
        name: pid
        annotations:
          sh:order:
            tag: sh:order
            value: 1
      characterized_by:
        name: characterized_by
        annotations:
          sh:order:
            tag: sh:order
            value: 2
      attributes:
        name: attributes
        annotations:
          sh:order:
            tag: sh:order
            value: 3
      description:
        name: description
        annotations:
          sh:order:
            tag: sh:order
            value: 4
          dash:singleLine:
            tag: dash:singleLine
            value: false
      annotations:
        name: annotations
        annotations:
          sh:order:
            tag: sh:order
            value: 5
      relations:
        name: relations
        annotations:
          sh:order:
            tag: sh:order
            value: 6
      exact_mappings:
        name: exact_mappings
        annotations:
          sh:order:
            tag: sh:order
            value: 7
      close_mappings:
        name: close_mappings
        annotations:
          sh:order:
            tag: sh:order
            value: 8
      broad_mappings:
        name: broad_mappings
        annotations:
          sh:order:
            tag: sh:order
            value: 9
      narrow_mappings:
        name: narrow_mappings
        annotations:
          sh:order:
            tag: sh:order
            value: 10
      related_mappings:
        name: related_mappings
        annotations:
          sh:order:
            tag: sh:order
            value: 11
    class_uri: dlthings:Thing
  ValueSpecification:
    name: ValueSpecification
    description: A `Thing` that is a value of some kind. This class can be used to
      describe an outcome of a measurement, a factual value or constant, or other
      qualitative or quantitative information with an associated identifier. If no
      identifier is available, an `AttributeSpecification` can be used within the
      context of an associated `Thing` (`attributes`).
    from_schema: https://concepts.datalad.org/s/things/v1
    exact_mappings:
    - obo:OBI_0001933
    is_a: Thing
    mixins:
    - ValueSpecificationMixin
    slot_usage:
      value:
        name: value
        notes:
        - It is required, because when it is not needed, `Thing` should be used as
          a type. Its absence is therefore likely a sign of an error.
        required: true
    class_uri: dlthings:ValueSpecification
  Annotation:
    name: Annotation
    description: A tag/value pair with the semantics of OWL Annotation.
    from_schema: https://concepts.datalad.org/s/things/v1
    slots:
    - annotation_tag
    - annotation_value
    slot_usage:
      annotation_tag:
        name: annotation_tag
        key: true
    class_uri: dlthings:Annotation
source_file: src/things/v1.yaml

