@prefix dash: <http://datashapes.org/dash#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dlschemas: <https://concepts.datalad.org/s/> .
@prefix dlthings: <https://concepts.datalad.org/s/things/v2/> .
@prefix doi: <https://doi.org/> .
@prefix eunal: <http://publications.europa.eu/resource/authority/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ISSN: <http://identifiers.org/issn/> .
@prefix linkml: <https://w3id.org/linkml/> .
@prefix obo: <http://purl.obolibrary.org/obo/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .


dlthings:DOI a sh:NodeShape ;
    rdfs:comment "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." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:class dlthings:Identifier ;
            sh:description "An unambiguous reference to the subject within a given context." ;
            sh:name "Identifiers" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:identifier ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ sh:class dlthings:Thing ;
            sh:description "An agent responsible for making an entity." ;
            sh:maxCount 1 ;
            sh:name "Creator" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:creator ],
        [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A free-text account of the subject." ;
            sh:maxCount 1 ;
            sh:name "Description" ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ sh:datatype xsd:string ;
            sh:description "The identifier notation is specified without a URL-prefix, or a `doi:` prefix." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Notation" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:notation ;
            sh:pattern "(?i)^(?!(?:https?://|doi:)).+$" ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have close meaning." ;
            sh:name "Close mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:closeMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have related meaning." ;
            sh:name "Related mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:relatedMatch ],
        [ sh:datatype rdfs:Resource ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:name "Schema type" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:type ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ;
            sh:name "Narrow mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:narrowMatch ],
        [ sh:class dlthings:Statement ;
            sh:description "Qualifies relationships between a subject `Thing` and an object `Thing` with a `Statement` declaring a `predicate` on the nature of the relationship." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ;
            sh:name "Broad mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:broadMatch ],
        [ sh:class dlthings:Thing ;
            sh:description "The nature of the subject." ;
            sh:maxCount 1 ;
            sh:name "Kind" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:type ],
        [ sh:class dlthings:AttributeSpecification ;
            sh: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." ;
            sh:name "Attributes" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:attributes ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "Note that can be shown when the record is displayed as an item. This is typically longer than a label." ;
            sh:maxCount 1 ;
            sh:name "Record display note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:note ],
        [ sh:datatype xsd:string ;
            sh:description "Label that can be shown when the metadata record is displayed as an item." ;
            sh:maxCount 1 ;
            sh:name "Record display label" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ sh:class dlthings:Thing ;
            sh:description "A relation of an information artifact to the subject, such as a URL identifying the topic of a document." ;
            sh:maxCount 1 ;
            sh:name "About" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:subject ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ;
            sh:name "Exact mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:exactMatch ] ;
    sh:targetClass dlthings:DOI .

dlthings:ISSN a sh:NodeShape ;
    rdfs:comment "International Standard Serial Number (ISSN)." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:class dlthings:Thing ;
            sh:description "A relation of an information artifact to the subject, such as a URL identifying the topic of a document." ;
            sh:maxCount 1 ;
            sh:name "About" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:subject ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ;
            sh:name "Exact mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:exactMatch ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "Note that can be shown when the record is displayed as an item. This is typically longer than a label." ;
            sh:maxCount 1 ;
            sh:name "Record display note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:note ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ sh:class dlthings:Thing ;
            sh:description "The nature of the subject." ;
            sh:maxCount 1 ;
            sh:name "Kind" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:type ],
        [ sh:datatype xsd:string ;
            sh:description "The identifier notation is specified without any prefix." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Notation" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:notation ;
            sh:pattern "^\\d{4}-\\d{3}[\\dX]$" ],
        [ sh:datatype xsd:string ;
            sh:description "Label that can be shown when the metadata record is displayed as an item." ;
            sh:maxCount 1 ;
            sh:name "Record display label" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have related meaning." ;
            sh:name "Related mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:relatedMatch ],
        [ sh:class dlthings:Statement ;
            sh:description "Qualifies relationships between a subject `Thing` and an object `Thing` with a `Statement` declaring a `predicate` on the nature of the relationship." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ],
        [ sh:class dlthings:Identifier ;
            sh:description "An unambiguous reference to the subject within a given context." ;
            sh:name "Identifiers" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:identifier ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A free-text account of the subject." ;
            sh:maxCount 1 ;
            sh:name "Description" ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ;
            sh:name "Narrow mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:narrowMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have close meaning." ;
            sh:name "Close mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:closeMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ;
            sh:name "Broad mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:broadMatch ],
        [ sh:class dlthings:Thing ;
            sh:description "An agent responsible for making an entity." ;
            sh:maxCount 1 ;
            sh:name "Creator" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:creator ],
        [ sh:class dlthings:AttributeSpecification ;
            sh: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." ;
            sh:name "Attributes" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:attributes ],
        [ sh:datatype rdfs:Resource ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:name "Schema type" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:type ] ;
    sh:targetClass dlthings:ISSN .

dlthings:Publication a sh:NodeShape ;
    rdfs:comment "A resource that is the output of a publishing process." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "Note that can be shown when the record is displayed as an item. This is typically longer than a label." ;
            sh:maxCount 1 ;
            sh:name "Record display note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:note ],
        [ sh:datatype rdfs:Resource ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:name "Schema type" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:type ],
        [ sh:class dlthings:Thing ;
            sh: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." ;
            sh:name "Relations" ;
            sh:nodeKind sh:IRI ;
            sh:path dlthings:relation ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ;
            sh:name "Narrow mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:narrowMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "Persistent and globally unique identifier of a `Thing`." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Persistent identifier" ;
            sh:nodeKind sh:Literal ;
            sh:path dlthings:pid ],
        [ sh:class dlthings:Identifier ;
            sh:description "An unambiguous reference to the subject within a given context." ;
            sh:name "Identifiers" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:identifier ],
        [ sh:class dlthings:Thing ;
            sh:description "The nature of the subject." ;
            sh:maxCount 1 ;
            sh:name "Kind" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:type ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have related meaning." ;
            sh:name "Related mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:relatedMatch ],
        [ sh:datatype xsd:string ;
            sh:description "A summarily description of the subject. It is closely related to a `name`, but often less compact and more descriptive. Typically used for documents." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:path dlthings:title ],
        [ sh:class dlthings:Thing ;
            sh:description "A relation of an information artifact to the subject, such as a URL identifying the topic of a document." ;
            sh:name "About" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:subject ],
        [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have close meaning." ;
            sh:name "Close mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:closeMatch ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A free-text account of the subject." ;
            sh:maxCount 1 ;
            sh:name "Description" ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ sh:datatype xsd:string ;
            sh:description "Label that can be shown when the metadata record is displayed as an item." ;
            sh:maxCount 1 ;
            sh:name "Record display label" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ sh:class dlthings:AttributeSpecification ;
            sh: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." ;
            sh:name "Attributes" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:attributes ],
        [ sh:class dlthings:Statement ;
            sh:description "Qualifies relationships between a subject `Thing` and an object `Thing` with a `Statement` declaring a `predicate` on the nature of the relationship." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ;
            sh:name "Broad mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:broadMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ;
            sh:name "Exact mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:exactMatch ] ;
    sh:targetClass dlthings:Publication .

dlthings:ThingMixin a sh:NodeShape ;
    rdfs:comment "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." ;
    sh:closed false ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ;
            sh:name "Broad mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:broadMatch ],
        [ sh:datatype rdfs:Resource ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:name "Schema type" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:type ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have close meaning." ;
            sh:name "Close mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:closeMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have related meaning." ;
            sh:name "Related mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:relatedMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ;
            sh:name "Exact mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:exactMatch ],
        [ sh:class dlthings:Statement ;
            sh:description "Qualifies relationships between a subject `Thing` and an object `Thing` with a `Statement` declaring a `predicate` on the nature of the relationship." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ sh:class dlthings:Identifier ;
            sh:description "An unambiguous reference to the subject within a given context." ;
            sh:name "Identifiers" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:identifier ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A free-text account of the subject." ;
            sh:maxCount 1 ;
            sh:name "Description" ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ sh:class dlthings:Thing ;
            sh:description "A relation of an information artifact to the subject, such as a URL identifying the topic of a document." ;
            sh:maxCount 1 ;
            sh:name "About" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:subject ],
        [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ;
            sh:name "Narrow mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:narrowMatch ],
        [ sh:datatype xsd:string ;
            sh:description "Label that can be shown when the metadata record is displayed as an item." ;
            sh:maxCount 1 ;
            sh:name "Record display label" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ sh:class dlthings:AttributeSpecification ;
            sh: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." ;
            sh:name "Attributes" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:attributes ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "Note that can be shown when the record is displayed as an item. This is typically longer than a label." ;
            sh:maxCount 1 ;
            sh:name "Record display note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:note ],
        [ sh:class dlthings:Thing ;
            sh:description "The nature of the subject." ;
            sh:maxCount 1 ;
            sh:name "Kind" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:type ] ;
    sh:targetClass dlthings:ThingMixin .

dlthings:ValueSpecification a sh:NodeShape ;
    rdfs:comment "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`)." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:anyURI ;
            sh:description "Declares that the value of a `Thing` or `AttributeSpecification` are instances of a particular class." ;
            sh:maxCount 1 ;
            sh:name "Value type (range)" ;
            sh:nodeKind sh:Literal ;
            sh:path rdfs:range ],
        [ sh:class dlthings:Thing ;
            sh: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." ;
            sh:name "Relations" ;
            sh:nodeKind sh:IRI ;
            sh:path dlthings:relation ],
        [ sh:datatype xsd:string ;
            sh:description "Label that can be shown when the metadata record is displayed as an item." ;
            sh:maxCount 1 ;
            sh:name "Record display label" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ sh:class dlthings:Thing ;
            sh:description "A relation of an information artifact to the subject, such as a URL identifying the topic of a document." ;
            sh:name "About" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:subject ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have close meaning." ;
            sh:name "Close mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:closeMatch ],
        [ sh:class dlthings:Thing ;
            sh:description "The nature of the subject." ;
            sh:maxCount 1 ;
            sh:name "Kind" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:type ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ;
            sh:name "Exact mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:exactMatch ],
        [ sh:class dlthings:Identifier ;
            sh:description "An unambiguous reference to the subject within a given context." ;
            sh:name "Identifiers" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:identifier ],
        [ sh:datatype xsd:anyURI ;
            sh:description "Persistent and globally unique identifier of a `Thing`." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Persistent identifier" ;
            sh:nodeKind sh:Literal ;
            sh:path dlthings:pid ],
        [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ;
            sh:name "Broad mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:broadMatch ],
        [ sh:class dlthings:Statement ;
            sh:description "Qualifies relationships between a subject `Thing` and an object `Thing` with a `Statement` declaring a `predicate` on the nature of the relationship." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ;
            sh:name "Narrow mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:narrowMatch ],
        [ sh:datatype xsd:string ;
            sh:description "Value that is a direct representation of a thing." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Value" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:value ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "Note that can be shown when the record is displayed as an item. This is typically longer than a label." ;
            sh:maxCount 1 ;
            sh:name "Record display note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:note ],
        [ sh:datatype xsd:anyURI ;
            sh:description "Indicate a resource defining the subject. This may be a vocabulary that describes the subject." ;
            sh:maxCount 1 ;
            sh:name "Defined by" ;
            sh:nodeKind sh:Literal ;
            sh:path rdfs:isDefinedBy ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ sh:datatype rdfs:Resource ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:name "Schema type" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:type ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A free-text account of the subject." ;
            sh:maxCount 1 ;
            sh:name "Description" ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have related meaning." ;
            sh:name "Related mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:relatedMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A unit of measurement is a standardized quantity of a physical quality." ;
            sh:maxCount 1 ;
            sh:name "Unit" ;
            sh:nodeKind sh:Literal ;
            sh:path obo:UO_0000000 ],
        [ sh:class dlthings:AttributeSpecification ;
            sh: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." ;
            sh:name "Attributes" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:attributes ] ;
    sh:targetClass dlthings:ValueSpecification .

dlthings:ValueSpecificationMixin a sh:NodeShape ;
    rdfs:comment "Mix-in for a (structured) value specification. Two slots are provided to define a (literal) value (`value`) and its type (`range`)." ;
    sh:closed false ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:anyURI ;
            sh:description "A unit of measurement is a standardized quantity of a physical quality." ;
            sh:maxCount 1 ;
            sh:name "Unit" ;
            sh:nodeKind sh:Literal ;
            sh:path obo:UO_0000000 ],
        [ sh:datatype xsd:anyURI ;
            sh:description "Declares that the value of a `Thing` or `AttributeSpecification` are instances of a particular class." ;
            sh:maxCount 1 ;
            sh:name "Value type (range)" ;
            sh:nodeKind sh:Literal ;
            sh:path rdfs:range ],
        [ sh:datatype xsd:anyURI ;
            sh:description "Indicate a resource defining the subject. This may be a vocabulary that describes the subject." ;
            sh:maxCount 1 ;
            sh:name "Defined by" ;
            sh:nodeKind sh:Literal ;
            sh:path rdfs:isDefinedBy ],
        [ sh:datatype xsd:string ;
            sh:description "Value that is a direct representation of a thing." ;
            sh:maxCount 1 ;
            sh:name "Value" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:value ] ;
    sh:targetClass dlthings:ValueSpecificationMixin .

dlthings:AnnotationTag a sh:NodeShape ;
    rdfs:label "Annotation tag" ;
    rdfs:comment "A tag identifying an annotation." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ;
            sh:name "Broad mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:broadMatch ],
        [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ],
        [ sh:class dlthings:Statement ;
            sh:description "Qualifies relationships between a subject `Thing` and an object `Thing` with a `Statement` declaring a `predicate` on the nature of the relationship." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ sh:datatype xsd:string ;
            sh:description "Label that can be shown when the metadata record is displayed as an item." ;
            sh:maxCount 1 ;
            sh:name "Record display label" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ sh:class dlthings:Identifier ;
            sh:description "An unambiguous reference to the subject within a given context." ;
            sh:name "Identifiers" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:identifier ],
        [ sh:class dlthings:Thing ;
            sh:description "The nature of the subject." ;
            sh:maxCount 1 ;
            sh:name "Kind" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:type ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ;
            sh:name "Narrow mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:narrowMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have related meaning." ;
            sh:name "Related mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:relatedMatch ],
        [ sh:class dlthings:Thing ;
            sh: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." ;
            sh:name "Relations" ;
            sh:nodeKind sh:IRI ;
            sh:path dlthings:relation ],
        [ sh:class dlthings:Thing ;
            sh:description "A relation of an information artifact to the subject, such as a URL identifying the topic of a document." ;
            sh:name "About" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:subject ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "Note that can be shown when the record is displayed as an item. This is typically longer than a label." ;
            sh:maxCount 1 ;
            sh:name "Record display note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:note ],
        [ sh:datatype xsd:anyURI ;
            sh:description "Persistent and globally unique identifier of a `Thing`." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Persistent identifier" ;
            sh:nodeKind sh:Literal ;
            sh:path dlthings:pid ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ sh:datatype rdfs:Resource ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:name "Schema type" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:type ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have close meaning." ;
            sh:name "Close mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:closeMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ;
            sh:name "Exact mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:exactMatch ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A free-text account of the subject." ;
            sh:maxCount 1 ;
            sh:name "Description" ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ sh:class dlthings:AttributeSpecification ;
            sh: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." ;
            sh:name "Attributes" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:attributes ] ;
    sh:targetClass dlthings:AnnotationTag .

dlthings:Property a sh:NodeShape ;
    rdfs:comment "An RDF property, a `Thing` used to define a `predicate`, for example in a `Statement`." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ;
            sh:name "Exact mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:exactMatch ],
        [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ],
        [ sh:datatype xsd:anyURI ;
            sh:description "Persistent and globally unique identifier of a `Thing`." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Persistent identifier" ;
            sh:nodeKind sh:Literal ;
            sh:path dlthings:pid ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "Note that can be shown when the record is displayed as an item. This is typically longer than a label." ;
            sh:maxCount 1 ;
            sh:name "Record display note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:note ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have close meaning." ;
            sh:name "Close mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:closeMatch ],
        [ sh:datatype xsd:string ;
            sh:description "Label that can be shown when the metadata record is displayed as an item." ;
            sh:maxCount 1 ;
            sh:name "Record display label" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A free-text account of the subject." ;
            sh:maxCount 1 ;
            sh:name "Description" ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ sh:class dlthings:Statement ;
            sh:description "Qualifies relationships between a subject `Thing` and an object `Thing` with a `Statement` declaring a `predicate` on the nature of the relationship." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ sh:class dlthings:Thing ;
            sh:description "The nature of the subject." ;
            sh:maxCount 1 ;
            sh:name "Kind" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:type ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have related meaning." ;
            sh:name "Related mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:relatedMatch ],
        [ sh:datatype rdfs:Resource ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:name "Schema type" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:type ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ;
            sh:name "Broad mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:broadMatch ],
        [ sh:class dlthings:AttributeSpecification ;
            sh: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." ;
            sh:name "Attributes" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:attributes ],
        [ sh:class dlthings:Thing ;
            sh: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." ;
            sh:name "Relations" ;
            sh:nodeKind sh:IRI ;
            sh:path dlthings:relation ],
        [ sh:class dlthings:Identifier ;
            sh:description "An unambiguous reference to the subject within a given context." ;
            sh:name "Identifiers" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:identifier ],
        [ sh:class dlthings:Thing ;
            sh:description "A relation of an information artifact to the subject, such as a URL identifying the topic of a document." ;
            sh:name "About" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:subject ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ;
            sh:name "Narrow mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:narrowMatch ] ;
    sh:targetClass dlthings:Property .

dlthings:AttributeSpecification a sh:NodeShape ;
    rdfs:comment "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." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ],
        [ sh:datatype xsd:string ;
            sh:description "Label that can be shown when the metadata record is displayed as an item." ;
            sh:maxCount 1 ;
            sh:name "Record display label" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ sh:datatype xsd:string ;
            sh:description "Value that is a direct representation of a thing." ;
            sh:maxCount 1 ;
            sh:name "Value" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:value ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ;
            sh:name "Broad mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:broadMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ;
            sh:name "Exact mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:exactMatch ],
        [ sh:class dlthings:Property ;
            sh:description "Reference to a `Property` within a `Statement`." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Predicate" ;
            sh:nodeKind sh:IRI ;
            sh:path rdf:predicate ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "Note that can be shown when the record is displayed as an item. This is typically longer than a label." ;
            sh:maxCount 1 ;
            sh:name "Record display note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:note ],
        [ sh:class dlthings:Thing ;
            sh:description "The nature of the subject." ;
            sh:maxCount 1 ;
            sh:name "Kind" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:type ],
        [ sh:datatype xsd:anyURI ;
            sh:description "Indicate a resource defining the subject. This may be a vocabulary that describes the subject." ;
            sh:maxCount 1 ;
            sh:name "Defined by" ;
            sh:nodeKind sh:Literal ;
            sh:path rdfs:isDefinedBy ],
        [ sh:datatype rdfs:Resource ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:name "Schema type" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:type ],
        [ sh:class dlthings:Statement ;
            sh:description "Qualifies relationships between a subject `Thing` and an object `Thing` with a `Statement` declaring a `predicate` on the nature of the relationship." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A unit of measurement is a standardized quantity of a physical quality." ;
            sh:maxCount 1 ;
            sh:name "Unit" ;
            sh:nodeKind sh:Literal ;
            sh:path obo:UO_0000000 ],
        [ sh:datatype xsd:anyURI ;
            sh:description "Declares that the value of a `Thing` or `AttributeSpecification` are instances of a particular class." ;
            sh:maxCount 1 ;
            sh:name "Value type (range)" ;
            sh:nodeKind sh:Literal ;
            sh:path rdfs:range ],
        [ sh:class dlthings:AttributeSpecification ;
            sh: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." ;
            sh:name "Attributes" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:attributes ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have related meaning." ;
            sh:name "Related mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:relatedMatch ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A free-text account of the subject." ;
            sh:maxCount 1 ;
            sh:name "Description" ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ sh:class dlthings:Identifier ;
            sh:description "An unambiguous reference to the subject within a given context." ;
            sh:name "Identifiers" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:identifier ],
        [ sh:class dlthings:Thing ;
            sh:description "A relation of an information artifact to the subject, such as a URL identifying the topic of a document." ;
            sh:name "About" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:subject ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have close meaning." ;
            sh:name "Close mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:closeMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ;
            sh:name "Narrow mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:narrowMatch ] ;
    sh:targetClass dlthings:AttributeSpecification .

dlthings:Identifier a sh:NodeShape ;
    rdfs:comment "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." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ],
        [ sh:class dlthings:Identifier ;
            sh:description "An unambiguous reference to the subject within a given context." ;
            sh:name "Identifiers" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:identifier ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ sh:class dlthings:Thing ;
            sh:description "An agent responsible for making an entity." ;
            sh:maxCount 1 ;
            sh:name "Creator" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:creator ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "Note that can be shown when the record is displayed as an item. This is typically longer than a label." ;
            sh:maxCount 1 ;
            sh:name "Record display note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:note ],
        [ sh:class dlthings:Statement ;
            sh:description "Qualifies relationships between a subject `Thing` and an object `Thing` with a `Statement` declaring a `predicate` on the nature of the relationship." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A free-text account of the subject." ;
            sh:maxCount 1 ;
            sh:name "Description" ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ sh:class dlthings:Thing ;
            sh:description "A relation of an information artifact to the subject, such as a URL identifying the topic of a document." ;
            sh:maxCount 1 ;
            sh:name "About" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:subject ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ;
            sh:name "Exact mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:exactMatch ],
        [ sh:class dlthings:AttributeSpecification ;
            sh: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." ;
            sh:name "Attributes" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:attributes ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have close meaning." ;
            sh:name "Close mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:closeMatch ],
        [ sh:datatype xsd:string ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Notation" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:notation ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ;
            sh:name "Broad mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:broadMatch ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have related meaning." ;
            sh:name "Related mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:relatedMatch ],
        [ sh:class dlthings:Thing ;
            sh:description "The nature of the subject." ;
            sh:maxCount 1 ;
            sh:name "Kind" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:type ],
        [ sh:datatype rdfs:Resource ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:name "Schema type" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:type ],
        [ sh:datatype xsd:string ;
            sh:description "Label that can be shown when the metadata record is displayed as an item." ;
            sh:maxCount 1 ;
            sh:name "Record display label" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ;
            sh:name "Narrow mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:narrowMatch ] ;
    sh:targetClass dlthings:Identifier .

dlthings:Annotation a sh:NodeShape ;
    rdfs:comment "A tag/value pair with the semantics of OWL Annotation." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:class dlthings:AnnotationTag ;
            sh:description "A tag identifying an annotation." ;
            sh:maxCount 1 ;
            sh:name "Tag" ;
            sh:nodeKind sh:IRI ;
            sh:path dlthings:annotation_tag ],
        [ sh:datatype xsd:string ;
            sh:description "The actual annotation." ;
            sh:maxCount 1 ;
            sh:name "Value" ;
            sh:nodeKind sh:Literal ;
            sh:path dlthings:annotation_value ] ;
    sh:targetClass dlthings:Annotation .

dlthings:Statement a sh:NodeShape ;
    rdfs:comment "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`." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:class dlthings:Thing ;
            sh:description "Reference to a `Thing` within a `Statement`." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Object" ;
            sh:nodeKind sh:IRI ;
            sh:path rdf:object ],
        [ sh:class dlthings:Property ;
            sh:description "Reference to a `Property` within a `Statement`." ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:name "Predicate" ;
            sh:nodeKind sh:IRI ;
            sh:path rdf:predicate ],
        [ sh:class dlthings:Statement ;
            sh:description "Make statements about statement, also known as reification." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ] ;
    sh:targetClass dlthings:Statement .

dlthings:Thing a sh:NodeShape ;
    rdfs:comment "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`." ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type dlthings:title rdfs:range rdfs:isDefinedBy rdf:value obo:UO_0000000 ) ;
    sh:property [ sh:datatype rdfs:Resource ;
            sh: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." ;
            sh:maxCount 1 ;
            sh:name "Schema type" ;
            sh:nodeKind sh:Literal ;
            sh:path rdf:type ],
        [ sh:datatype xsd:string ;
            sh:description "Label that can be shown when the metadata record is displayed as an item." ;
            sh:maxCount 1 ;
            sh:name "Record display label" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:prefLabel ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ;
            sh:name "Exact mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:exactMatch ],
        [ sh:class dlthings:AttributeSpecification ;
            sh: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." ;
            sh:name "Attributes" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:attributes ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A comment about a metadata record either providing additional information for a record curation, or leaving a comment after curation occurred. This can be used to include information that is deemed relevant, but could not be expressed in the provided fields." ;
            sh:name "Editorial note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:editorialNote ],
        [ sh:class dlthings:Thing ;
            sh:description "A relation of an information artifact to the subject, such as a URL identifying the topic of a document." ;
            sh:name "About" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:subject ],
        [ sh:datatype xsd:anyURI ;
            sh:description "Persistent and globally unique identifier of a `Thing`." ;
            sh:maxCount 1 ;
            sh:name "Persistent identifier" ;
            sh:nodeKind sh:Literal ;
            sh:path dlthings:pid ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "A free-text account of the subject." ;
            sh:maxCount 1 ;
            sh:name "Description" ;
            sh:nodeKind sh:Literal ;
            sh:path dcterms:description ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have close meaning." ;
            sh:name "Close mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:closeMatch ],
        [ sh:class dlthings:Annotation ;
            sh:description "A record of properties of the metadata record on a subject, a collection of tag/text tuples with the semantics of OWL Annotation." ;
            sh:name "Annotations" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:annotations ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ;
            sh:name "Broad mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:broadMatch ],
        [ sh:class dlthings:Thing ;
            sh: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." ;
            sh:name "Relations" ;
            sh:nodeKind sh:IRI ;
            sh:path dlthings:relation ],
        [ sh:class dlthings:Thing ;
            sh:description "The nature of the subject." ;
            sh:maxCount 1 ;
            sh:name "Kind" ;
            sh:nodeKind sh:IRI ;
            sh:path dcterms:type ],
        [ dash:singleLine false ;
            sh:datatype xsd:string ;
            sh:description "Note that can be shown when the record is displayed as an item. This is typically longer than a label." ;
            sh:maxCount 1 ;
            sh:name "Record display note" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:note ],
        [ sh:class dlthings:Statement ;
            sh:description "Qualifies relationships between a subject `Thing` and an object `Thing` with a `Statement` declaring a `predicate` on the nature of the relationship." ;
            sh:name "Characterized by" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dlthings:characterized_by ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have related meaning." ;
            sh:name "Related mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:relatedMatch ],
        [ sh:class dlthings:Identifier ;
            sh:description "An unambiguous reference to the subject within a given context." ;
            sh:name "Identifiers" ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path dcterms:identifier ],
        [ sh:datatype xsd:anyURI ;
            sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ;
            sh:name "Narrow mappings" ;
            sh:nodeKind sh:Literal ;
            sh:path skos:narrowMatch ] ;
    sh:targetClass dlthings:Thing .

