@prefix : <https://w3id.org/linkml/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ex: <http://example.org/> .
@prefix linkml: <https://w3id.org/linkml/> .
@prefix shex: <http://www.w3.org/ns/shex#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

ex:annotations_test a linkml:SchemaDefinition ;
    dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/" ;
    linkml:classes ex:Annotatable,
        ex:Annotation,
        ex:Extensible,
        ex:Extension,
        ex:MyClass,
        ex:MyClass2 ;
    linkml:default_curi_maps "semweb_context" ;
    linkml:default_prefix "ex" ;
    linkml:default_range ex:string ;
    linkml:emit_prefixes "linkml" ;
    linkml:generation_date "2021-10-18 01:26"^^xsd:dateTime ;
    linkml:id <http://example.org/tests/issue167b> ;
    linkml:imports linkml:annotations,
        linkml:extensions,
        linkml:types ;
    linkml:metamodel_version "1.7.0" ;
    linkml:prefixes [ linkml:prefix_prefix "linkml" ;
            linkml:prefix_reference linkml: ],
        [ linkml:prefix_prefix "ex" ;
            linkml:prefix_reference ex: ] ;
    linkml:slots ex:annotations,
        ex:extension_tag,
        ex:extension_value,
        ex:extensions ;
    linkml:source_file "issue_167b.yaml" ;
    linkml:source_file_date "Mon Oct 18 01:20:49 2021"^^xsd:dateTime ;
    linkml:source_file_size 818 ;
    linkml:types ex:boolean,
        ex:date,
        ex:datetime,
        ex:decimal,
        ex:double,
        ex:float,
        ex:integer,
        ex:ncname,
        ex:nodeidentifier,
        ex:objectidentifier,
        ex:string,
        ex:time,
        ex:uri,
        ex:uriorcurie .

ex:boolean a linkml:TypeDefinition ;
    skos:definition "A binary (true or false) value" ;
    skos:inScheme linkml:types ;
    linkml:base "Bool" ;
    linkml:definition_uri linkml:Boolean ;
    linkml:imported_from "linkml:types" ;
    linkml:repr "bool" ;
    linkml:uri xsd:boolean .

ex:date a linkml:TypeDefinition ;
    skos:definition "a date (year, month and day) in an idealized calendar" ;
    skos:editorialNote "URI is dateTime because OWL reasoners don't work with straight date or time" ;
    skos:inScheme linkml:types ;
    linkml:base "XSDDate" ;
    linkml:definition_uri linkml:Date ;
    linkml:imported_from "linkml:types" ;
    linkml:repr "str" ;
    linkml:uri xsd:date .

ex:datetime a linkml:TypeDefinition ;
    skos:definition "The combination of a date and time" ;
    skos:inScheme linkml:types ;
    linkml:base "XSDDateTime" ;
    linkml:definition_uri linkml:Datetime ;
    linkml:imported_from "linkml:types" ;
    linkml:repr "str" ;
    linkml:uri xsd:dateTime .

ex:decimal a linkml:TypeDefinition ;
    skos:definition "A real number with arbitrary precision that conforms to the xsd:decimal specification" ;
    skos:inScheme linkml:types ;
    linkml:base "Decimal" ;
    linkml:definition_uri linkml:Decimal ;
    linkml:imported_from "linkml:types" ;
    linkml:uri xsd:decimal .

ex:double a linkml:TypeDefinition ;
    skos:definition "A real number that conforms to the xsd:double specification" ;
    skos:inScheme linkml:types ;
    linkml:base "float" ;
    linkml:definition_uri linkml:Double ;
    linkml:imported_from "linkml:types" ;
    linkml:uri xsd:double .

ex:float a linkml:TypeDefinition ;
    skos:definition "A real number that conforms to the xsd:float specification" ;
    skos:inScheme linkml:types ;
    linkml:base "float" ;
    linkml:definition_uri linkml:Float ;
    linkml:imported_from "linkml:types" ;
    linkml:uri xsd:float .

ex:integer a linkml:TypeDefinition ;
    skos:definition "An integer" ;
    skos:inScheme linkml:types ;
    linkml:base "int" ;
    linkml:definition_uri linkml:Integer ;
    linkml:imported_from "linkml:types" ;
    linkml:uri xsd:integer .

ex:ncname a linkml:TypeDefinition ;
    skos:definition "Prefix part of CURIE" ;
    skos:inScheme linkml:types ;
    linkml:base "NCName" ;
    linkml:definition_uri linkml:Ncname ;
    linkml:imported_from "linkml:types" ;
    linkml:repr "str" ;
    linkml:uri xsd:string .

ex:nodeidentifier a linkml:TypeDefinition ;
    skos:definition "A URI, CURIE or BNODE that represents a node in a model." ;
    skos:inScheme linkml:types ;
    linkml:base "NodeIdentifier" ;
    linkml:definition_uri linkml:Nodeidentifier ;
    linkml:imported_from "linkml:types" ;
    linkml:repr "str" ;
    linkml:uri shex:nonLiteral .

ex:objectidentifier a linkml:TypeDefinition ;
    skos:definition "A URI or CURIE that represents an object in the model." ;
    skos:inScheme linkml:types ;
    skos:note "Used for inheritence and type checking" ;
    linkml:base "ElementIdentifier" ;
    linkml:definition_uri linkml:Objectidentifier ;
    linkml:imported_from "linkml:types" ;
    linkml:repr "str" ;
    linkml:uri shex:iri .

ex:time a linkml:TypeDefinition ;
    skos:definition "A time object represents a (local) time of day, independent of any particular day" ;
    skos:editorialNote "URI is dateTime because OWL reasoners don't work with straight date or time" ;
    skos:inScheme linkml:types ;
    linkml:base "XSDTime" ;
    linkml:definition_uri linkml:Time ;
    linkml:imported_from "linkml:types" ;
    linkml:repr "str" ;
    linkml:uri xsd:dateTime .

ex:uri a linkml:TypeDefinition ;
    skos:definition "a complete URI" ;
    skos:inScheme linkml:types ;
    linkml:base "URI" ;
    linkml:definition_uri linkml:Uri ;
    linkml:imported_from "linkml:types" ;
    linkml:repr "str" ;
    linkml:uri xsd:anyURI .

ex:uriorcurie a linkml:TypeDefinition ;
    skos:definition "a URI or a CURIE" ;
    skos:inScheme linkml:types ;
    linkml:base "URIorCURIE" ;
    linkml:definition_uri linkml:Uriorcurie ;
    linkml:imported_from "linkml:types" ;
    linkml:repr "str" ;
    linkml:uri xsd:anyURI .

ex:MyClass a linkml:ClassDefinition ;
    skos:definition "Annotations as tag value pairs. Note that altLabel is defined in the default namespace, not in the SKOS namespace" ;
    skos:inScheme <http://example.org/tests/issue167b> ;
    linkml:annotations [ a linkml:Annotation ;
            linkml:tag skos:prefLabel ;
            linkml:value "a label" ],
        [ a linkml:Annotation ;
            linkml:tag ex:altLabel ;
            linkml:value "some other label" ] ;
    linkml:class_uri ex:MyClass ;
    linkml:definition_uri ex:MyClass ;
    linkml:slot_usage [ ] .

ex:MyClass2 a linkml:ClassDefinition ;
    skos:definition "-> This form of annotations is a tag/value format, which allows annotations to be annotated.  Note, however, that the annotation source is NOT a CURIE, rather just a string." ;
    skos:inScheme <http://example.org/tests/issue167b> ;
    linkml:annotations [ a linkml:Annotation ;
            linkml:annotations [ a linkml:Annotation ;
                    linkml:tag ex:source ;
                    linkml:value "PMID:12345" ] ;
            linkml:tag ex:prefLabel ;
            linkml:value "a preferred label" ] ;
    linkml:class_uri ex:MyClass2 ;
    linkml:definition_uri ex:MyClass2 ;
    linkml:slot_usage [ ] .

ex:annotations a linkml:SlotDefinition ;
    skos:definition "a collection of tag/text tuples with the semantics of OWL Annotation" ;
    skos:inScheme linkml:annotations ;
    linkml:definition_uri linkml:annotations ;
    linkml:domain ex:Annotatable ;
    linkml:domain_of ex:Annotatable,
        ex:Annotation ;
    linkml:imported_from "linkml:annotations" ;
    linkml:inlined true ;
    linkml:is_a ex:extensions ;
    linkml:multivalued true ;
    linkml:owner ex:Annotation ;
    linkml:range ex:Annotation ;
    linkml:slot_uri linkml:annotations .

ex:extension_tag a linkml:SlotDefinition ;
    skos:definition "a tag associated with an extension" ;
    skos:inScheme linkml:extensions ;
    skos:prefLabel "tag" ;
    linkml:definition_uri linkml:extension_tag ;
    linkml:domain ex:Extension ;
    linkml:domain_of ex:Extension ;
    linkml:imported_from "linkml:extensions" ;
    linkml:owner ex:Extension ;
    linkml:range ex:uriorcurie ;
    linkml:required true ;
    linkml:slot_uri linkml:tag .

ex:extension_value a linkml:SlotDefinition ;
    skos:definition "the actual annotation" ;
    skos:inScheme linkml:extensions ;
    skos:prefLabel "value" ;
    linkml:definition_uri linkml:extension_value ;
    linkml:domain ex:Extension ;
    linkml:domain_of ex:Extension ;
    linkml:imported_from "linkml:extensions" ;
    linkml:owner ex:Extension ;
    linkml:range ex:string ;
    linkml:required true ;
    linkml:slot_uri linkml:value .

ex:string a linkml:TypeDefinition ;
    skos:definition "A character string" ;
    skos:inScheme linkml:types ;
    linkml:base "str" ;
    linkml:definition_uri linkml:String ;
    linkml:imported_from "linkml:types" ;
    linkml:uri xsd:string .

ex:Annotatable a linkml:ClassDefinition ;
    skos:definition "mixin for classes that support annotations" ;
    skos:inScheme linkml:annotations ;
    linkml:class_uri linkml:Annotatable ;
    linkml:definition_uri linkml:Annotatable ;
    linkml:imported_from "linkml:annotations" ;
    linkml:mixin true ;
    linkml:slot_usage [ ] ;
    linkml:slots ex:annotations .

ex:Annotation a linkml:ClassDefinition ;
    skos:definition "a tag/value pair with the semantics of OWL Annotation" ;
    skos:inScheme linkml:annotations ;
    linkml:class_uri linkml:Annotation ;
    linkml:definition_uri linkml:Annotation ;
    linkml:imported_from "linkml:annotations" ;
    linkml:is_a ex:Extension ;
    linkml:mixins ex:Annotatable ;
    linkml:slot_usage [ ] ;
    linkml:slots ex:annotations,
        ex:extension_tag,
        ex:extension_value,
        ex:extensions .

ex:Extensible a linkml:ClassDefinition ;
    skos:definition "mixin for classes that support extension" ;
    skos:inScheme linkml:extensions ;
    linkml:class_uri linkml:Extensible ;
    linkml:definition_uri linkml:Extensible ;
    linkml:imported_from "linkml:extensions" ;
    linkml:mixin true ;
    linkml:slot_usage [ ] ;
    linkml:slots ex:extensions .

ex:extensions a linkml:SlotDefinition ;
    skos:definition "a tag/text tuple attached to an arbitrary element" ;
    skos:inScheme linkml:extensions ;
    linkml:definition_uri linkml:extensions ;
    linkml:domain ex:Extensible ;
    linkml:domain_of ex:Extensible,
        ex:Extension ;
    linkml:imported_from "linkml:extensions" ;
    linkml:inlined true ;
    linkml:multivalued true ;
    linkml:owner ex:Extensible ;
    linkml:range ex:Extension ;
    linkml:slot_uri linkml:extensions .

ex:Extension a linkml:ClassDefinition ;
    skos:definition "a tag/value pair used to add non-model information to an entry" ;
    skos:inScheme linkml:extensions ;
    linkml:class_uri linkml:Extension ;
    linkml:definition_uri linkml:Extension ;
    linkml:imported_from "linkml:extensions" ;
    linkml:slot_usage [ ] ;
    linkml:slots ex:extension_tag,
        ex:extension_value,
        ex:extensions .


