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 xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX B2AI: <https://w3id.org/bridge2ai/standards-schema/>
PREFIX B2AI_APP: <https://w3id.org/bridge2ai/standards-schema/>
PREFIX MESH: <http://id.nlm.nih.gov/mesh/>
PREFIX biolink: <https://w3id.org/biolink/vocab/>
PREFIX clo: <http://purl.obolibrary.org/obo/CLO_>
PREFIX edam.data: <http://edamontology.org/data_>
PREFIX edam.format: <http://edamontology.org/format_>
PREFIX edam.operation: <http://edamontology.org/operation_>
PREFIX edam.topic: <http://edamontology.org/topic_>
PREFIX linkml: <https://w3id.org/linkml/>
PREFIX mesh: <http://id.nlm.nih.gov/mesh/>
PREFIX ncit: <http://purl.obolibrary.org/obo/NCIT_>
PREFIX pato: <http://purl.obolibrary.org/obo/PATO_>
PREFIX schema: <http://schema.org/>
PREFIX uberon: <http://purl.obolibrary.org/obo/UBERON_>
PREFIX wikidata: <http://www.wikidata.org/wiki/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX vann: <http://purl.org/vocab/vann/>

<https://w3id.org/bridge2ai/standards-schema> a owl:Ontology ;
  rdfs:label "standards-schema" ;
  rdfs:comment "High-level classes for Bridge2AI Standards schemas." ;
  rdfs:seeAlso <https://bridge2ai.github.io/standards-schema> ;
  dcterms:license "MIT" ;
  vann:preferredNamespacePrefix "B2AI" ;
  vann:preferredNamespaceUri "https://w3id.org/bridge2ai/standards-schema/"^^xsd:anyURI ;
  sh:declare [
    sh:prefix "B2AI" ;
    sh:namespace "https://w3id.org/bridge2ai/standards-schema/"^^xsd:anyURI
  ] , [
    sh:prefix "B2AI_APP" ;
    sh:namespace "https://w3id.org/bridge2ai/standards-schema/"^^xsd:anyURI
  ] , [
    sh:prefix "MESH" ;
    sh:namespace "http://id.nlm.nih.gov/mesh/"^^xsd:anyURI
  ] , [
    sh:prefix "biolink" ;
    sh:namespace "https://w3id.org/biolink/vocab/"^^xsd:anyURI
  ] , [
    sh:prefix "clo" ;
    sh:namespace "http://purl.obolibrary.org/obo/CLO_"^^xsd:anyURI
  ] , [
    sh:prefix "edam.data" ;
    sh:namespace "http://edamontology.org/data_"^^xsd:anyURI
  ] , [
    sh:prefix "edam.format" ;
    sh:namespace "http://edamontology.org/format_"^^xsd:anyURI
  ] , [
    sh:prefix "edam.operation" ;
    sh:namespace "http://edamontology.org/operation_"^^xsd:anyURI
  ] , [
    sh:prefix "edam.topic" ;
    sh:namespace "http://edamontology.org/topic_"^^xsd:anyURI
  ] , [
    sh:prefix "linkml" ;
    sh:namespace "https://w3id.org/linkml/"^^xsd:anyURI
  ] , [
    sh:prefix "mesh" ;
    sh:namespace "http://id.nlm.nih.gov/mesh/"^^xsd:anyURI
  ] , [
    sh:prefix "ncit" ;
    sh:namespace "http://purl.obolibrary.org/obo/NCIT_"^^xsd:anyURI
  ] , [
    sh:prefix "pato" ;
    sh:namespace "http://purl.obolibrary.org/obo/PATO_"^^xsd:anyURI
  ] , [
    sh:prefix "rdfs" ;
    sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI
  ] , [
    sh:prefix "schema" ;
    sh:namespace "http://schema.org/"^^xsd:anyURI
  ] , [
    sh:prefix "uberon" ;
    sh:namespace "http://purl.obolibrary.org/obo/UBERON_"^^xsd:anyURI
  ] , [
    sh:prefix "wikidata" ;
    sh:namespace "http://www.wikidata.org/wiki/"^^xsd:anyURI
  ] .

B2AI:AnatomicalEntity a owl:Class ;
  rdfs:comment "A subcellular location, cell type or gross anatomical part" ;
  skos:exactMatch uberon:0001062 , wikidata:Q4936952 ;
  skos:narrowMatch ncit:C12219 ;
  rdfs:subClassOf schema:Thing .

B2AI:Application a owl:Class ;
  rdfs:comment "A set of details describing a specific application of a resource (e.g., a standard or a dataset) to a specific purpose. In the context of Bridge2AI, this will generally refer to an artificial intelligence-driven application. The related_to slot can be used to link to other relevant entities, such as other Applications, UseCases, DataSets, or Standards. Application objects have unique identifiers with the prefix B2AI_APP. This allows an Application to be referenced from other objects if needed. The category slot for Application objects should always be set to B2AI:Application for clarity." ;
  rdfs:subClassOf schema:Thing , [
    a owl:Restriction ;
    owl:onProperty B2AI:datasheet ;
    owl:allValuesFrom rdfs:Literal
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:references ;
    owl:allValuesFrom B2AI:Reference
  ] .

schema:Thing a owl:Class ;
  rdfs:comment "A generic grouping for any identifiable entity" ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty B2AI:category ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:name ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:name ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:description ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:description ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:subclass_of ;
    owl:allValuesFrom schema:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:related_to ;
    owl:allValuesFrom schema:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:contributor_name ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:contributor_name ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:contributor_github_name ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:contributor_github_name ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:contributor_orcid ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:contribution_date ;
    owl:allValuesFrom xsd:date
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:contribution_date ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:used_in_bridge_2_ai ;
    owl:allValuesFrom xsd:boolean
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:used_in_bridge_2_ai ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:has_application ;
    owl:allValuesFrom B2AI:Application
  ] .

B2AI:Reference a owl:Class ;
  rdfs:comment "A bibliographic reference to a publication, preprint, or other citable resource." ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty B2AI:ref_url ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:ref_title ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:ref_title ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:ref_authors ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:ref_publication_year ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:ref_publication_year ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:ref_journal ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty B2AI:ref_journal ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

B2AI:category a owl:DatatypeProperty ;
  rdfs:comment "CURIE for the high level ontology class in which this entity is categorized. Corresponds to the label for the entity type class, e.g., \"B2AI_STANDARD:DataStandard\"." ;
  rdfs:domain schema:Thing ;
  rdfs:subPropertyOf B2AI:type ;
  a owl:FunctionalProperty .

B2AI:contribution_date a owl:DatatypeProperty ;
  rdfs:comment "The date on which the node was added." ;
  skos:example "2023-03-20" ;
  rdfs:range xsd:date ;
  rdfs:subPropertyOf B2AI:node_property ;
  a owl:FunctionalProperty .

B2AI:contributor_github_name a owl:DatatypeProperty ;
  rdfs:comment "The name of the github user who added this node." ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf B2AI:node_property ;
  a owl:FunctionalProperty .

B2AI:contributor_name a owl:DatatypeProperty ;
  rdfs:comment "The name of the person who added this node." ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf B2AI:node_property ;
  a owl:FunctionalProperty .

B2AI:contributor_orcid a owl:DatatypeProperty ;
  rdfs:comment "The ORCiD of the person who added this node." ;
  skos:example "ORCID:0000-0001-1234-5678" ;
  rdfs:subPropertyOf B2AI:node_property ;
  a owl:FunctionalProperty .

B2AI:datasheet a owl:DatatypeProperty ;
  rdfs:comment "List of one or more URLs pointing to related datasheets in the Datasheets for Datasets format." ;
  rdfs:subPropertyOf B2AI:node_property .

schema:description a owl:DatatypeProperty ;
  rdfs:comment "A human-readable description for a thing." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

B2AI:edam_id a owl:ObjectProperty ;
  rdfs:comment "Unique EDAM identifier" ;
  skos:example "edam.data:0006" ;
  a owl:FunctionalProperty .

B2AI:has_application a owl:ObjectProperty ;
  rdfs:comment "A list of one or more specific applications of this entity to a specific purpose." ;
  rdfs:range B2AI:Application ;
  rdfs:domain schema:Thing .

B2AI:mesh_id a owl:ObjectProperty ;
  rdfs:comment "Unique MeSH identifier" ;
  skos:example "mesh:D014831" ;
  a owl:FunctionalProperty .

schema:name a owl:DatatypeProperty ;
  rdfs:comment "A human-readable name for a thing." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

B2AI:ncit_id a owl:ObjectProperty ;
  rdfs:comment "Unique NCIt Identifier" ;
  skos:example "ncit:C92692" ;
  a owl:FunctionalProperty .

B2AI:node_property a owl:DatatypeProperty ;
  rdfs:comment "A grouping for any property that holds between a node and a value." ;
  rdfs:range xsd:string ;
  rdfs:domain schema:Thing ;
  a owl:FunctionalProperty .

B2AI:ref_authors a owl:DatatypeProperty ;
  rdfs:comment "List of authors of the referenced publication, preprint, or other citable resource. Format as surname(s) given name initials, e.g., \"Brockheimer J\", \"Gudmundsdottir JF\"." ;
  rdfs:range xsd:string ;
  rdfs:domain B2AI:Reference .

B2AI:ref_journal a owl:DatatypeProperty ;
  rdfs:comment "Journal or venue of the referenced publication, preprint, or other citable resource. Follow the NLM Catalog journal title abbreviations where possible (e.g., J Biol Chem)." ;
  rdfs:range xsd:string ;
  rdfs:domain B2AI:Reference ;
  a owl:FunctionalProperty .

B2AI:ref_publication_year a owl:DatatypeProperty ;
  rdfs:comment "Year of publication of the referenced publication, preprint, or other citable resource. Use four-digit year format (e.g., 2023)." ;
  rdfs:range xsd:integer ;
  rdfs:domain B2AI:Reference ;
  a owl:FunctionalProperty .

B2AI:ref_title a owl:DatatypeProperty ;
  rdfs:comment "Title of the referenced publication, preprint, or other citable resource." ;
  rdfs:range xsd:string ;
  rdfs:domain B2AI:Reference ;
  a owl:FunctionalProperty .

B2AI:ref_url a owl:ObjectProperty ;
  rdfs:comment "URL of the referenced publication, preprint, or other citable resource. This will often be a DOI in URL form." ;
  rdfs:domain B2AI:Reference ;
  a owl:FunctionalProperty .

B2AI:references a owl:ObjectProperty ;
  rdfs:comment "List of one or more Reference objects for related publications, preprints, or other references." ;
  rdfs:range B2AI:Reference ;
  rdfs:subPropertyOf B2AI:node_property .

B2AI:related_to a owl:ObjectProperty ;
  rdfs:comment "A relationship that is asserted between two named things." ;
  rdfs:range schema:Thing ;
  rdfs:domain schema:Thing ;
  a owl:SymmetricProperty .

B2AI:subclass_of a owl:ObjectProperty ;
  rdfs:comment "Holds between two classes where the domain class is a specialization of the range class." ;
  skos:exactMatch rdfs:subClassOf , MESH:isa ;
  skos:narrowMatch rdfs:subPropertyOf ;
  rdfs:range schema:Thing ;
  rdfs:domain schema:Thing ;
  rdfs:subPropertyOf B2AI:related_to .

B2AI:type a owl:DatatypeProperty ;
  rdfs:comment "A generic slot for any label corresponding to the label for an entity type associated to the class." ;
  rdfs:range xsd:string ;
  rdfs:domain schema:Thing ;
  a owl:FunctionalProperty .

B2AI:url a owl:DatatypeProperty ;
  rdfs:comment "URL for basic documentation of the standard or tool." ;
  rdfs:subPropertyOf B2AI:node_property ;
  a owl:FunctionalProperty .

B2AI:used_in_bridge_2_ai a owl:DatatypeProperty ;
  rdfs:comment "True if the entity is used, developed, or otherwise related to work in the Bridge2AI consortium. If false, the entity is not explicitly related to Bridge2AI. If not specified, it is not known if the entity is related to Bridge2AI." ;
  rdfs:range xsd:boolean ;
  rdfs:subPropertyOf B2AI:node_property ;
  a owl:FunctionalProperty .

B2AI:xref a owl:DatatypeProperty ;
  rdfs:comment "URI of corresponding class in an ontology of experimental procedures, in CURIE form." ;
  skos:altLabel "dbxref" , "Dbxref" , "DbXref" ;
  rdfs:domain schema:Thing ;
  rdfs:subPropertyOf B2AI:node_property .

dcterms:license a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

skos:exactMatch a owl:AnnotationProperty .

skos:narrowMatch a owl:AnnotationProperty .

skos:example a owl:AnnotationProperty .

skos:altLabel a owl:AnnotationProperty .

sh:declare a owl:AnnotationProperty .

sh:prefix a owl:AnnotationProperty .

sh:namespace a owl:AnnotationProperty .

xsd:date a rdfs:Datatype .
