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 biolink: <https://w3id.org/biolink/>
PREFIX linkml: <https://w3id.org/linkml/>
PREFIX infores: <https://w3id.org/biolink/infores/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX pav: <http://purl.org/pav/>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX vann: <http://purl.org/vocab/vann/>

biolink:information_resource_registry.yaml a owl:Ontology ;
  dcterms:license <https://creativecommons.org/publicdomain/zero/1.0/> ;
  pav:version "1.0.0" ;
  vann:preferredNamespacePrefix "infores" ;
  vann:preferredNamespaceUri "https://w3id.org/biolink/infores/"^^xsd:anyURI ;
  sh:declare [
    sh:prefix "biolink" ;
    sh:namespace "https://w3id.org/biolink/"^^xsd:anyURI
  ] , [
    sh:prefix "linkml" ;
    sh:namespace "https://w3id.org/linkml/"^^xsd:anyURI
  ] , [
    sh:prefix "infores" ;
    sh:namespace "https://w3id.org/biolink/infores/"^^xsd:anyURI
  ] .

infores:InformationResourceContainer a owl:Class ;
  rdfs:comment "A collection of information resources" ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty infores:information_resources ;
    owl:allValuesFrom infores:InformationResource
  ] .

infores:InformationResource a owl:Class ;
  rdfs:comment "A database or knowledgebase and its supporting ecosystem of interfaces  and services that deliver content to consumers (e.g. web portals, APIs,  query endpoints, streaming services, data downloads, etc.). A single Information Resource by this definition may span many different datasets or databases, and include many access endpoints and user interfaces. Information Resources include project-specific resources such as a Translator Knowledge Provider, and community knowledgebases like ChemBL, OMIM, or DGIdb." ;
  skos:altLabel "knowledgebase" ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty infores:status ;
    owl:allValuesFrom infores:InformationResourceStatusEnum
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:status ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty rdfs:label ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty rdfs:label ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:id ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:id ;
    owl:cardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:xref ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:synonym ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty rdfs:comment ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty rdfs:comment ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:knowledge_level ;
    owl:allValuesFrom infores:KnowledgeLevelEnum
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:knowledge_level ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:agent_type ;
    owl:allValuesFrom infores:AgentTypeEnum
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:agent_type ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:consumes ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty infores:consumed_by ;
    owl:allValuesFrom owl:Thing
  ] .

infores:consumes a owl:ObjectProperty ;
  rdfs:comment "A collection of information resources that are consumed by this information resource" .

infores:consumed_by a owl:ObjectProperty ;
  rdfs:comment "A collection of information resources that consume this information resource" .

infores:status a owl:ObjectProperty ;
  rdfs:comment "the status of the infores identifier, the default is \"released\"" ;
  rdfs:range infores:InformationResourceStatusEnum ;
  a owl:FunctionalProperty .

infores:information_resources a owl:ObjectProperty ;
  rdfs:comment "a collection of information resources" ;
  rdfs:range infores:InformationResource .

rdfs:label a owl:DatatypeProperty ;
  rdfs:comment "A human-readable name for an attribute or entity." ;
  skos:altLabel "label" , "display name" , "title" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

infores:id a owl:DatatypeProperty ;
  rdfs:comment "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

infores:xref a owl:DatatypeProperty ;
  rdfs:comment "A database cross reference or alternative identifier for a NamedThing or edge between two  NamedThings.  This property should point to a database record or webpage that supports the existence of the edge, or  gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references." ;
  skos:altLabel "dbxref" , "Dbxref" , "DbXref" , "record_url" , "source_record_urls" ;
  rdfs:range xsd:string .

infores:synonym a owl:DatatypeProperty ;
  rdfs:comment "Alternate human-readable names for a thing" ;
  skos:altLabel "alias" ;
  rdfs:range xsd:string .

rdfs:comment a owl:DatatypeProperty ;
  rdfs:comment "A free-text description of an entity or attribute." ;
  skos:altLabel "comment" , "note" , "definition" , "description" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

infores:knowledge_level a owl:ObjectProperty ;
  rdfs:comment "The level of knowledge that supports an edge or node.  This is a general categorization of the type of evidence that supports a statement, and is not intended to be a comprehensive description of the evidence.  For example, a statement may be supported by a single publication, but that publication may contain multiple types of evidence, such as a computational prediction and a manual curation.  In this case, the knowledge level would be \"curated\", and the evidence would be described in more detail in the evidence graph." ;
  rdfs:range infores:KnowledgeLevelEnum ;
  a owl:FunctionalProperty .

infores:agent_type a owl:ObjectProperty ;
  rdfs:comment "The type of agent that supports an edge or node.  This is a general categorization of the type of agent that supports a statement, and is not intended to be a comprehensive description of the agent.  For example, a statement may be supported by a single publication, but that publication may contain multiple types of evidence, such as a computational prediction and a manual curation.  In this case, the agent type would be \"publication\", and the evidence would be described in more detail in the evidence graph." ;
  rdfs:range infores:AgentTypeEnum ;
  a owl:FunctionalProperty .

infores:InformationResourceStatusEnum a owl:Class ;
  rdfs:comment "The status of the infores identifier" ;
  owl:equivalentClass [
    a owl:Class ;
    owl:oneOf ( infores:InformationResourceStatusEnum.RELEASED infores:InformationResourceStatusEnum.DEPRECATED infores:InformationResourceStatusEnum.DRAFT infores:InformationResourceStatusEnum.MODIFIED )
  ] .

infores:InformationResourceStatusEnum.RELEASED a owl:NamedIndividual ;
  skos:notation "released" ;
  a infores:InformationResourceStatusEnum .

infores:InformationResourceStatusEnum.DEPRECATED a owl:NamedIndividual ;
  skos:notation "deprecated" ;
  a infores:InformationResourceStatusEnum .

infores:InformationResourceStatusEnum.DRAFT a owl:NamedIndividual ;
  skos:notation "draft" ;
  a infores:InformationResourceStatusEnum .

infores:InformationResourceStatusEnum.MODIFIED a owl:NamedIndividual ;
  skos:notation "modified" ;
  a infores:InformationResourceStatusEnum .

infores:KnowledgeLevelEnum a owl:Class ;
  rdfs:comment "The level of knowledge that supports an edge or node.  This is a general categorization of the type of evidence that supports a statement, and is not intended to be a comprehensive description of the evidence.  For example, a statement may be supported by a single publication, but that publication may contain multiple types of evidence, such as a computational prediction and a manual curation.  In this case, the knowledge level would be \"curated\", and the evidence would be described in more detail in the evidence graph." ;
  owl:equivalentClass [
    a owl:Class ;
    owl:oneOf ( infores:KnowledgeLevelEnum.KNOWLEDGE_ASSERTION infores:KnowledgeLevelEnum.STATISTICAL_ASSOCIATION infores:KnowledgeLevelEnum.PREDICTION infores:KnowledgeLevelEnum.OBSERVATION infores:KnowledgeLevelEnum.NOT_PROVIDED infores:KnowledgeLevelEnum.LOGICAL_ENTAILMENT infores:KnowledgeLevelEnum.MIXED infores:KnowledgeLevelEnum.OTHER )
  ] .

infores:KnowledgeLevelEnum.KNOWLEDGE_ASSERTION a owl:NamedIndividual ;
  skos:notation "knowledge_assertion" ;
  rdfs:comment "Knowledge asserted by a human expert, based on their interpretation of data or published study results" ;
  a infores:KnowledgeLevelEnum .

infores:KnowledgeLevelEnum.STATISTICAL_ASSOCIATION a owl:NamedIndividual ;
  skos:notation "statistical_association" ;
  rdfs:comment "Statistical associations calculated between variables in a clinical or omics dataset, by an automated  analysis pipeline" ;
  a infores:KnowledgeLevelEnum .

infores:KnowledgeLevelEnum.PREDICTION a owl:NamedIndividual ;
  skos:notation "prediction" ;
  rdfs:comment "Predictions generated computationally through inference over less direct forms of evidence (without human  intervention or review)" ;
  a infores:KnowledgeLevelEnum .

infores:KnowledgeLevelEnum.OBSERVATION a owl:NamedIndividual ;
  skos:notation "observation" ;
  rdfs:comment "Edge reports a phenomenon that was reported/observed to have occurred (and possibly some quantification,  e.g. how many times, at what frequency)" ;
  a infores:KnowledgeLevelEnum .

infores:KnowledgeLevelEnum.NOT_PROVIDED a owl:NamedIndividual ;
  skos:notation "not_provided" ;
  rdfs:comment "The knowledge level/type fora statement is not provided, typically because it cannot be determined from  available information." ;
  a infores:KnowledgeLevelEnum .

infores:KnowledgeLevelEnum.LOGICAL_ENTAILMENT a owl:NamedIndividual ;
  skos:notation "logical_entailment" ;
  rdfs:comment "a statement reporting a conclusion that follows logically from premises, which are typically well-established  facts or knowledge assertions. (e.g. fingernail part of finger, finger part of hand → fingernail part of hand)). Logical entailments are based on dedictive inference, and generally have a high degree of confidence when based on sound premises and inference logic." ;
  a infores:KnowledgeLevelEnum .

infores:KnowledgeLevelEnum.MIXED a owl:NamedIndividual ;
  skos:notation "mixed" ;
  rdfs:comment "A statement that is supported by a mix of different types of evidence, such as a combination of manual  curation and computational prediction. This is a catch-all category for statements that do not fit cleanly  into one of the other categories." ;
  a infores:KnowledgeLevelEnum .

infores:KnowledgeLevelEnum.OTHER a owl:NamedIndividual ;
  skos:notation "other" ;
  rdfs:comment "A knowledge level that does not fit into any of the other categories. This is a catch-all category for  knowledge levels that are not covered by the other categories." ;
  a infores:KnowledgeLevelEnum .

infores:AgentTypeEnum a owl:Class ;
  rdfs:comment "The type of agent that supports an edge or node.  This is a general categorization of the type of agent that supports a statement, and is not intended to be a comprehensive description of the agent.  For example, a statement may be supported by a single publication, but that publication may contain multiple types of evidence, such as a computational prediction and a manual curation.  In this case, the agent type would be \"publication\", and the evidence would be described in more detail in the evidence graph." ;
  skos:note "Note that this property indicates the type of agent who produced a final statement of knowledge,  which is often different from the agent or agents who produced information used as evidence to support  the generation of this knowledge. For example, if a human curator concludes that a particular gene variant  causes a medical condition - based on their interpretation of information produced by computational modeling  tools, automated statistical analyses, and robotic laboratory assay systems - the agent type for this statement  is \"manual_agent\" despite all of the evidence being created by automated agents. But if any of these systems is  programmed to generate knowledge statements directly and without human assistance, the statement would be  attributed to an \"automated_agent\"." ;
  owl:equivalentClass [
    a owl:Class ;
    owl:oneOf ( infores:AgentTypeEnum.MANUAL_AGENT infores:AgentTypeEnum.NOT_PROVIDED infores:AgentTypeEnum.AUTOMATED_AGENT infores:AgentTypeEnum.DATA_ANALYSIS_PIPELINE infores:AgentTypeEnum.COMPUTATIONAL_MODEL infores:AgentTypeEnum.TEXT_MINING_AGENT infores:AgentTypeEnum.IMAGE_PROCESSING_AGENT infores:AgentTypeEnum.MANUAL_VALIDATION_OF_AUTOMATED_AGENT )
  ] .

infores:AgentTypeEnum.MANUAL_AGENT a owl:NamedIndividual ;
  skos:notation "manual_agent" ;
  rdfs:comment "a human agent, such as a curator or expert" ;
  a infores:AgentTypeEnum .

infores:AgentTypeEnum.NOT_PROVIDED a owl:NamedIndividual ;
  skos:notation "not_provided" ;
  rdfs:comment "agent type is not provided or known" ;
  a infores:AgentTypeEnum .

infores:AgentTypeEnum.AUTOMATED_AGENT a owl:NamedIndividual ;
  skos:notation "automated_agent" ;
  rdfs:comment "An automated agent, typically a software program or tool, is responsible for generating the knowledge  expressed in the Edge. Human contribution to the knowledge creation process ends with the definition and  coding of algorithms or analysis pipelines that get executed by the automated agent." ;
  a infores:AgentTypeEnum .

infores:AgentTypeEnum.DATA_ANALYSIS_PIPELINE a owl:NamedIndividual ;
  skos:notation "data_analysis_pipeline" ;
  rdfs:comment "An automated agent that executes an analysis workflow over data and reports results in an Edge. These  typically report statistical associations/correlations between variables in the input data." ;
  a infores:AgentTypeEnum .

infores:AgentTypeEnum.COMPUTATIONAL_MODEL a owl:NamedIndividual ;
  skos:notation "computational_model" ;
  rdfs:comment "An automated agent that generates knowledge (typically predictions) based on rules/logic explicitly  encoded in an algorithm (e.g. heuristic models, supervised classifiers), or learned from patterns  observed in data (e.g. ML models, unsupervised classifiers)." ;
  a infores:AgentTypeEnum .

infores:AgentTypeEnum.TEXT_MINING_AGENT a owl:NamedIndividual ;
  skos:notation "text_mining_agent" ;
  rdfs:comment "An automated agent that uses Natural Language Processing to recognize concepts and/or relationships in text, and generates Edges relating these concepts with formally encoded semantics." ;
  a infores:AgentTypeEnum .

infores:AgentTypeEnum.IMAGE_PROCESSING_AGENT a owl:NamedIndividual ;
  skos:notation "image_processing_agent" ;
  rdfs:comment "An automated agent that processes images to recognize features and/or relationships in images, and generates  Edges relating these features with formally encoded semantics." ;
  a infores:AgentTypeEnum .

infores:AgentTypeEnum.MANUAL_VALIDATION_OF_AUTOMATED_AGENT a owl:NamedIndividual ;
  skos:notation "manual_validation_of_automated_agent" ;
  rdfs:comment "A human agent reviews and validates/approves the veracity of knowledge that is initially generated by an  automated agent." ;
  a infores:AgentTypeEnum .

dcterms:license a owl:AnnotationProperty .

pav:version a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

skos:altLabel a owl:AnnotationProperty .

skos:notation a owl:AnnotationProperty .

skos:note a owl:AnnotationProperty .

sh:declare a owl:AnnotationProperty .

sh:prefix a owl:AnnotationProperty .

sh:namespace a owl:AnnotationProperty .
