diff --git a/.github/workflows/qc-compliance.yml b/.github/workflows/qc-compliance.yml new file mode 100644 index 0000000..54ed555 --- /dev/null +++ b/.github/workflows/qc-compliance.yml @@ -0,0 +1,52 @@ +# Basic ODK workflow + +name: QC COB Compliance suite + +on: + # Runs once per month + schedule: + - cron: "0 0 1 * *" + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "ontology_qc" + ontology_qc: + # The type of runner that the job will run on + runs-on: ubuntu-latest + container: obolibrary/odkfull:v1.5.2 + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: Run COB Integration test suite + env: + DEFAULT_BRANCH: master + run: cd src/ontology && mkdir -p reports tmp && make ROBOT_ENV='ROBOT_JAVA_ARGS=-Xmx6G' cob_test IMP=false PAT=false -B + + - name: Read and crop the contents of SUMMARY.txt + id: read_summary + run: | + summary_content=$(cat products/SUMMARY.txt) + max_length=65500 # Slightly less than the max limit to account for metadata or other content + if [ ${#summary_content} -gt $max_length ]; then + summary_content="${summary_content:0:$max_length}" + summary_content="${summary_content}\n\n...Content cropped due to length limits." + fi + + # Wrap the content in a collapsible details block + wrapped_content="
Latest integration report\n\n${summary_content}\n\n
" + + echo "::set-output name=summary::${wrapped_content}" + shell: bash + + - name: Post summary to the issue + run: gh issue comment 278 --body "$SUMMARY_CONTENT" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SUMMARY_CONTENT: ${{ steps.read_summary.outputs.summary }} + diff --git a/.github/workflows/qc.yml b/.github/workflows/qc.yml index 00abf4d..4c0510c 100644 --- a/.github/workflows/qc.yml +++ b/.github/workflows/qc.yml @@ -19,7 +19,7 @@ jobs: ontology_qc: # The type of runner that the job will run on runs-on: ubuntu-latest - container: obolibrary/odkfull:v1.4 + container: obolibrary/odkfull:v1.5.2 # Steps represent a sequence of tasks that will be executed as part of the job steps: diff --git a/.gitignore b/.gitignore index f7ebecb..9939507 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,5 @@ src/ontology/README-editors.md src/ontology/products/ src/ontology/cob-native.owl src/ontology/cob.ttl +src/ontology/cob-base-reasoned.owl +src/ontology/cob-examples-reasoned.owl diff --git a/src/ontology/components/cob-annotations.owl b/src/ontology/components/cob-annotations.owl index 8e70b96..da38d18 100644 --- a/src/ontology/components/cob-annotations.owl +++ b/src/ontology/components/cob-annotations.owl @@ -9,7 +9,7 @@ xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> - 2023-11-16 + 2024-08-20 @@ -82,7 +82,6 @@ http://purl.obolibrary.org/obo/CARO_0001008 - http://purl.obolibrary.org/obo/CARO_0001010 http://purl.obolibrary.org/obo/OBI_0100026 @@ -214,5 +213,5 @@ - + diff --git a/src/ontology/components/cob-examples.owl b/src/ontology/components/cob-examples.owl index 1e4e7b7..5eee0ae 100644 --- a/src/ontology/components/cob-examples.owl +++ b/src/ontology/components/cob-examples.owl @@ -11,7 +11,6 @@ xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:terms="http://purl.org/dc/terms/"> - diff --git a/src/ontology/components/cob-to-external.owl b/src/ontology/components/cob-to-external.owl index c180ad2..61c37ea 100644 --- a/src/ontology/components/cob-to-external.owl +++ b/src/ontology/components/cob-to-external.owl @@ -36,9 +36,9 @@ xmlns:semapv="https://w3id.org/semapv/vocab/" xmlns:NCBITaxon="http://purl.obolibrary.org/obo/NCBITaxon_"> - + https://creativecommons.org/publicdomain/zero/1.0/ - 2024-03-22 + 2024-08-20 http://purl.obolibrary.org/obo/cob/components/cob-to-external.tsv @@ -388,6 +388,22 @@ + + + + + + + + + + + concretizes + concretizes + + + + @@ -502,6 +518,12 @@ + + + + + + @@ -712,22 +734,6 @@ - - - - - - - - - - - organism or virus or viroid - organism - - - - @@ -2262,5 +2268,5 @@ - + diff --git a/src/ontology/imports/omo_import.owl b/src/ontology/imports/omo_import.owl index 67f9492..9e3b6ae 100644 --- a/src/ontology/imports/omo_import.owl +++ b/src/ontology/imports/omo_import.owl @@ -7,9 +7,9 @@ Prefix(rdfs:=) Ontology( - -Annotation( ) -Annotation(owl:versionInfo "2023-05-12") + +Annotation( ) +Annotation(owl:versionInfo "2024-08-20") Declaration(Class()) Declaration(Class()) @@ -58,6 +58,7 @@ Declaration(NamedIndividual()) Declaration(NamedIndividual()) Declaration(NamedIndividual()) Declaration(NamedIndividual()) +Declaration(NamedIndividual()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) @@ -94,6 +95,19 @@ Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) @@ -109,13 +123,17 @@ Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(Datatype(xsd:date)) ############################ # Annotation Properties ############################ @@ -178,7 +196,7 @@ We don't have definitions of 'meaning' or 'expression' or 'property'. For 'refer Personally, I am more comfortable weakening definition to documentation, with instructions as to what is desirable. -We also have the outstanding issue of how to aim different definitions to different audiences. A clinical audience reading chebi wants a different sort of definition documentation/definition from a chemistry trained audience, and similarly there is a need for a definition that is adequate for an ontologist to work with. "@en) +We also have the outstanding issue of how to aim different definitions to different audiences. A clinical audience reading chebi wants a different sort of definition documentation/definition from a chemistry trained audience, and similarly there is a need for a definition that is adequate for an ontologist to work with."@en) AnnotationAssertion( "PERSON:Daniel Schober"@en) AnnotationAssertion( "GROUP:OBI:"@en) AnnotationAssertion(rdfs:label "definition"@en) @@ -489,6 +507,133 @@ AnnotationAssertion( ) AnnotationAssertion(rdfs:label "defined by construct") +# Annotation Property: (abbreviation) + +AnnotationAssertion( "CHEBI:26523 (reactive oxygen species) has an exact synonym (ROS), which is of type OMO:0003000 (abbreviation)") +AnnotationAssertion( "A synonym type for describing abbreviations or initalisms") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-03-03"^^xsd:date) +AnnotationAssertion(rdfs:label "abbreviation") +SubAnnotationPropertyOf( ) + +# Annotation Property: (ambiguous synonym) + +AnnotationAssertion( "A synonym type for describing ambiguous synonyms") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-03-03"^^xsd:date) +AnnotationAssertion(rdfs:label "ambiguous synonym") +SubAnnotationPropertyOf( ) + +# Annotation Property: (dubious synonym) + +AnnotationAssertion( "A synonym type for describing dubious synonyms") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-03-03"^^xsd:date) +AnnotationAssertion(rdfs:label "dubious synonym") +SubAnnotationPropertyOf( ) + +# Annotation Property: (layperson synonym) + +AnnotationAssertion( "EFO:0006346 (severe cutaneous adverse reaction) has an exact synonym (scar), which is of the type OMO:0003003 (layperson synonym)") +AnnotationAssertion( "A synonym type for describing layperson or colloquial synonyms") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-03-03"^^xsd:date) +AnnotationAssertion(rdfs:label "layperson synonym") +SubAnnotationPropertyOf( ) + +# Annotation Property: (plural form) + +AnnotationAssertion( "CHEBI:23367 (molecular entity) has an exact synonym (molecular entities), which is of the type OMO:0003004 (plural form)") +AnnotationAssertion( "A synonym type for describing pluralization synonyms") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-03-03"^^xsd:date) +AnnotationAssertion(rdfs:label "plural form") +SubAnnotationPropertyOf( ) + +# Annotation Property: (UK spelling synonym) + +AnnotationAssertion( "CHEBI:16189 (sulfate) has an exact synonym (sulphate), which is of the type OMO:0003005 (UK spelling synonym)") +AnnotationAssertion( "A synonym type for describing UK spelling variants") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-03-03"^^xsd:date) +AnnotationAssertion(rdfs:label "UK spelling synonym") +SubAnnotationPropertyOf( ) + +# Annotation Property: (misspelling) + +AnnotationAssertion( "A synonym type for common misspellings") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-03-03"^^xsd:date) +AnnotationAssertion(rdfs:label "misspelling") +SubAnnotationPropertyOf( ) + +# Annotation Property: (misnomer) + +AnnotationAssertion( "A synonym type for misnomers, i.e., a synonym that is not technically correct but is commonly used anyway") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-03-03"^^xsd:date) +AnnotationAssertion(rdfs:label "misnomer") +SubAnnotationPropertyOf( ) + +# Annotation Property: (previous name) + +AnnotationAssertion( "MAPT, the gene that encodes the Tau protein, has a previous name DDPAC. Note: in this case, the name type is more specifically the gene symbol.") +AnnotationAssertion( "A synonym type for names that have been used as primary labels in the past.") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-07-25"^^xsd:date) +AnnotationAssertion(rdfs:label "previous name") +SubAnnotationPropertyOf( ) + +# Annotation Property: (legal name) + +AnnotationAssertion( "The legal name for Harvard University (https://ror.org/03vek6s52) is President and Fellows of Harvard College") +AnnotationAssertion( "A synonym type for the legal entity name") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-07-27"^^xsd:date) +AnnotationAssertion(rdfs:label "legal name") +SubAnnotationPropertyOf( ) + +# Annotation Property: (International Nonproprietary Name) + +AnnotationAssertion( "CHEBI:46195 has been assigned the english International Nonproproprietary Name (INN) \"paracetamol\". In some cases such as this one, the INN might be the same as the ontology's primary label") +AnnotationAssertion( "The International Nonproprietary Name (INN) is a standardize name for a pharmaceutical drug or active ingredient issued by the World Health Organization (WHO) meant to address the issues with country- or language-specific brand names. These are issued in several languages, including English, Latin, French, Russian, Spanish, Arabic, and Chinese.") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-09-30"^^xsd:date) +AnnotationAssertion( "INN") +AnnotationAssertion(rdfs:label "International Nonproprietary Name") +SubAnnotationPropertyOf( ) + +# Annotation Property: (latin term) + +AnnotationAssertion( "nasopharynx (UBERON:0001728) has the latin name \"pars nasalis pharyngis") +AnnotationAssertion( "A synonym type for describing Latin term synonyms.") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-10-12"^^xsd:date) +AnnotationAssertion(rdfs:label "latin term") +SubAnnotationPropertyOf( ) + +# Annotation Property: (acronym) + +AnnotationAssertion( "NASA is an word acronym for the US National Aeronautics and Space Administration because the acronym is pronounced. FBI is an initialism (also known as alphabetism) for the US Federal Bureau of Investigation since the letters are pronounced one at a time. JPEG is an acronym for Joint Photographic Experts Group but does not count as a word acronym nor an initialism since it is mixed how it is pronounced.") +AnnotationAssertion( "A synonym type for describing abbreviations that are a part of the full name's words, such as initialisms or alphabetisms.") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-11-01"^^xsd:date) +AnnotationAssertion(rdfs:label "acronym") +SubAnnotationPropertyOf( ) + # Annotation Property: (has broad synonym) AnnotationAssertion( "An alternative label for a class or property which has a more general meaning than the preferred name/primary label.") @@ -921,6 +1066,16 @@ AnnotationAssertion( "out of scope") ClassAssertion( ) +# Individual: (domain entity does not exist) + +AnnotationAssertion( "The term was added to the ontology on the assumption it was a valid domain entity, but it turns out the entity does not exist in reality."@en) +AnnotationAssertion( "This obsolesence reason should be used conservatively. For example: Obsoleting class that describes a breed of cow based on a record in an existing database, that was later retracted as faulty (breed does not exist). Do not use this term to obsolete a historic concept (that was once valid, but not anymore). "@en) +AnnotationAssertion( ) +AnnotationAssertion( "https://github.com/information-artifact-ontology/ontology-metadata/issues/136") +AnnotationAssertion( "https://orcid.org/0000-0002-4142-7153") +AnnotationAssertion(rdfs:label "domain entity does not exist") +ClassAssertion( ) + DifferentIndividuals( ) DifferentIndividuals( ) diff --git a/src/ontology/imports/ro_import.owl b/src/ontology/imports/ro_import.owl index 1491423..f55f30d 100644 --- a/src/ontology/imports/ro_import.owl +++ b/src/ontology/imports/ro_import.owl @@ -7,9 +7,9 @@ Prefix(rdfs:=) Ontology( - -Annotation( ) -Annotation(owl:versionInfo "2023-05-12") + +Annotation( ) +Annotation(owl:versionInfo "2024-08-20") Declaration(Class()) Declaration(Class()) @@ -24,14 +24,26 @@ Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) -Declaration(Class()) Declaration(Class()) Declaration(Class()) +Declaration(Class()) +Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) Declaration(ObjectProperty()) Declaration(ObjectProperty()) Declaration(ObjectProperty()) @@ -148,6 +160,15 @@ Declaration(ObjectProperty()) Declaration(ObjectProperty()) Declaration(ObjectProperty()) Declaration(ObjectProperty()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) @@ -161,6 +182,7 @@ Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) @@ -174,14 +196,17 @@ Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) -Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) @@ -193,10 +218,12 @@ Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty(rdfs:comment)) Declaration(AnnotationProperty(rdfs:label)) Declaration(AnnotationProperty(rdfs:seeAlso)) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) ############################ # Annotation Properties @@ -204,8 +231,53 @@ Declaration(AnnotationProperty()) # Annotation Property: (definition) +AnnotationAssertion( "definition"@en) +AnnotationAssertion( ) +AnnotationAssertion( "The official definition, explaining the meaning of a class or property. Shall be Aristotelian, formalized and normalized. Can be augmented with colloquial definitions."@en) +AnnotationAssertion( "2012-04-05: +Barry Smith + +The official OBI definition, explaining the meaning of a class or property: 'Shall be Aristotelian, formalized and normalized. Can be augmented with colloquial definitions' is terrible. + +Can you fix to something like: + +A statement of necessary and sufficient conditions explaining the meaning of an expression referring to a class or property. + +Alan Ruttenberg + +Your proposed definition is a reasonable candidate, except that it is very common that necessary and sufficient conditions are not given. Mostly they are necessary, occasionally they are necessary and sufficient or just sufficient. Often they use terms that are not themselves defined and so they effectively can't be evaluated by those criteria. + +On the specifics of the proposed definition: + +We don't have definitions of 'meaning' or 'expression' or 'property'. For 'reference' in the intended sense I think we use the term 'denotation'. For 'expression', I think we you mean symbol, or identifier. For 'meaning' it differs for class and property. For class we want documentation that let's the intended reader determine whether an entity is instance of the class, or not. For property we want documentation that let's the intended reader determine, given a pair of potential relata, whether the assertion that the relation holds is true. The 'intended reader' part suggests that we also specify who, we expect, would be able to understand the definition, and also generalizes over human and computer reader to include textual and logical definition. + +Personally, I am more comfortable weakening definition to documentation, with instructions as to what is desirable. + +We also have the outstanding issue of how to aim different definitions to different audiences. A clinical audience reading chebi wants a different sort of definition documentation/definition from a chemistry trained audience, and similarly there is a need for a definition that is adequate for an ontologist to work with. "@en) +AnnotationAssertion( "PERSON:Daniel Schober"@en) +AnnotationAssertion( "GROUP:OBI:"@en) +AnnotationAssertion(rdfs:label "definition"@en) AnnotationAssertion(rdfs:label "definition") +# Annotation Property: (editor note) + +AnnotationAssertion( "editor note"@en) +AnnotationAssertion( ) +AnnotationAssertion( "An administrative note intended for its editor. It may not be included in the publication version of the ontology, so it should contain nothing necessary for end users to understand the ontology."@en) +AnnotationAssertion( "PERSON:Daniel Schober"@en) +AnnotationAssertion( "GROUP:OBI:"@en) +AnnotationAssertion(rdfs:label "editor note"@en) + +# Annotation Property: (term editor) + +AnnotationAssertion( "term editor"@en) +AnnotationAssertion( ) +AnnotationAssertion( "Name of editor entering the term in the file. The term editor is a point of contact for information regarding the term. The term editor may be, but is not always, the author of the definition, which may have been worked upon by several people"@en) +AnnotationAssertion( "20110707, MC: label update to term editor and definition modified accordingly. See https://github.com/information-artifact-ontology/IAO/issues/115."@en) +AnnotationAssertion( "PERSON:Daniel Schober"@en) +AnnotationAssertion( "GROUP:OBI:"@en) +AnnotationAssertion(rdfs:label "term editor"@en) + # Annotation Property: () SubAnnotationPropertyOf( ) @@ -240,6 +312,14 @@ SubAnnotationPropertyOf( ) +# Annotation Property: () + +SubAnnotationPropertyOf( ) + +# Annotation Property: () + +SubAnnotationPropertyOf( ) + ############################ # Object Properties @@ -273,6 +353,7 @@ AnnotationAssertion( "part of"@en) AnnotationAssertion(rdfs:seeAlso ) AnnotationAssertion(rdfs:seeAlso ) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Part_of"^^xsd:anyURI) AnnotationAssertion(rdfs:seeAlso "http://www.obofoundry.org/ro/#OBO_REL:part_of") SubObjectPropertyOf( ) InverseObjectProperties( ) @@ -335,7 +416,7 @@ AnnotationAssertion( "An example is: translation preceded_by transcription; aging preceded_by development (not however death preceded_by aging). Where derives_from links classes of continuants, preceded_by links classes of processes. Clearly, however, these two relations are not independent of each other. Thus if cells of type C1 derive_from cells of type C, then any cell division involving an instance of C1 in a given lineage is preceded_by cellular processes involving an instance of C. The assertion P preceded_by P1 tells us something about Ps in general: that is, it tells us something about what happened earlier, given what we know about what happened later. Thus it does not provide information pointing in the opposite direction, concerning instances of P1 in general; that is, that each is such as to be succeeded by some instance of P. Note that an assertion to the effect that P preceded_by P1 is rather weak; it tells us little about the relations between the underlying instances in virtue of which the preceded_by relation obtains. Typically we will be interested in stronger relations, for example in the relation immediately_preceded_by, or in relations which combine preceded_by with a condition to the effect that the corresponding instances of P and P1 share participants, or that their participants are connected by relations of derivation, or (as a first step along the road to a treatment of causality) that the one process in some way affects (for example, initiates or regulates) the other."@en) AnnotationAssertion( "is preceded by"@en) AnnotationAssertion( "preceded_by"@en) -AnnotationAssertion( "http://www.obofoundry.org/ro/#OBO_REL:preceded_by") +AnnotationAssertion( "http://www.obofoundry.org/ro/#OBO_REL:preceded_by") AnnotationAssertion( ) AnnotationAssertion(rdfs:label "preceded by"@en) SubObjectPropertyOf( ) @@ -368,6 +449,7 @@ AnnotationAssertion( "Paraphrase of definition: a relation between a process and an independent continuant, in which the process takes place entirely within the independent continuant") AnnotationAssertion(rdfs:isDefinedBy ) AnnotationAssertion(rdfs:label "occurs in"@en) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Occurs_in"^^xsd:anyURI) InverseObjectProperties( ) ObjectPropertyDomain( ) ObjectPropertyRange( ) @@ -430,7 +512,7 @@ AnnotationAssertion( "a relation between a process and a continuant, in which the continuant is somehow involved in the process"@en) AnnotationAssertion( "Has_participant is a primitive instance-level relation between a process, a continuant, and a time at which the continuant participates in some way in the process. The relation obtains, for example, when this particular process of oxygen exchange across this particular alveolar membrane has_participant this particular sample of hemoglobin at this particular time."@en) AnnotationAssertion( "has_participant"@en) -AnnotationAssertion( "http://www.obofoundry.org/ro/#OBO_REL:has_participant") +AnnotationAssertion( "http://www.obofoundry.org/ro/#OBO_REL:has_participant") AnnotationAssertion(rdfs:label "has participant"@en) ObjectPropertyDomain( ) ObjectPropertyRange( ) @@ -543,7 +625,7 @@ SubObjectPropertyOf( (has regulatory component activity) AnnotationAssertion( "A 'has regulatory component activity' B if A and B are GO molecular functions (GO_0003674), A has_component B and A is regulated by B.") -AnnotationAssertion( "dos") +AnnotationAssertion( ) AnnotationAssertion( "2017-05-24T09:30:46Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label "has regulatory component activity") SubObjectPropertyOf( ) @@ -552,7 +634,7 @@ SubObjectPropertyOf( (has negative regulatory component activity) AnnotationAssertion( "A relationship that holds between a GO molecular function and a component of that molecular function that negatively regulates the activity of the whole. More formally, A 'has regulatory component activity' B iff :A and B are GO molecular functions (GO_0003674), A has_component B and A is negatively regulated by B.") -AnnotationAssertion( "dos") +AnnotationAssertion( ) AnnotationAssertion( "2017-05-24T09:31:01Z"^^xsd:dateTime) AnnotationAssertion(rdfs:comment "By convention GO molecular functions are classified by their effector function. Internal regulatory functions are treated as components. For example, NMDA glutmate receptor activity is a cation channel activity with positive regulatory component 'glutamate binding' and negative regulatory components including 'zinc binding' and 'magnesium binding'.") AnnotationAssertion(rdfs:label "has negative regulatory component activity") @@ -562,7 +644,7 @@ SubObjectPropertyOf( (has positive regulatory component activity) AnnotationAssertion( "A relationship that holds between a GO molecular function and a component of that molecular function that positively regulates the activity of the whole. More formally, A 'has regulatory component activity' B iff :A and B are GO molecular functions (GO_0003674), A has_component B and A is positively regulated by B.") -AnnotationAssertion( "dos") +AnnotationAssertion( ) AnnotationAssertion( "2017-05-24T09:31:17Z"^^xsd:dateTime) AnnotationAssertion(rdfs:comment "By convention GO molecular functions are classified by their effector function and internal regulatory functions are treated as components. So, for example calmodulin has a protein binding activity that has positive regulatory component activity calcium binding activity. Receptor tyrosine kinase activity is a tyrosine kinase activity that has positive regulatory component 'ligand binding'.") AnnotationAssertion(rdfs:label "has positive regulatory component activity") @@ -571,7 +653,7 @@ SubObjectPropertyOf( (has component activity) -AnnotationAssertion( "dos") +AnnotationAssertion( ) AnnotationAssertion( "2017-05-24T09:44:33Z"^^xsd:dateTime) AnnotationAssertion(rdfs:comment "A 'has component activity' B if A is A and B are molecular functions (GO_0003674) and A has_component B.") AnnotationAssertion(rdfs:label "has component activity") @@ -580,7 +662,7 @@ SubObjectPropertyOf( (has component process) AnnotationAssertion( "w 'has process component' p if p and w are processes, w 'has part' p and w is such that it can be directly disassembled into into n parts p, p2, p3, ..., pn, where these parts are of similar type.") -AnnotationAssertion( "dos") +AnnotationAssertion( ) AnnotationAssertion( "2017-05-24T09:49:21Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label "has component process") SubObjectPropertyOf( ) @@ -589,17 +671,17 @@ ObjectPropertyRange( (directly regulated by) -AnnotationAssertion( "dos") +AnnotationAssertion( ) AnnotationAssertion( "2017-09-17T13:52:24Z"^^xsd:dateTime) -AnnotationAssertion(Annotation( "GOC:dos") rdfs:comment "Process(P2) is directly regulated by process(P1) iff: P1 regulates P2 via direct physical interaction between an agent executing P1 (or some part of P1) and an agent executing P2 (or some part of P2). For example, if protein A has protein binding activity(P1) that targets protein B and this binding regulates the kinase activity (P2) of protein B then P1 directly regulates P2.") +AnnotationAssertion(Annotation( ) rdfs:comment "Process(P2) is directly regulated by process(P1) iff: P1 regulates P2 via direct physical interaction between an agent executing P1 (or some part of P1) and an agent executing P2 (or some part of P2). For example, if protein A has protein binding activity(P1) that targets protein B and this binding regulates the kinase activity (P2) of protein B then P1 directly regulates P2.") AnnotationAssertion(rdfs:label "directly regulated by") SubObjectPropertyOf( ) InverseObjectProperties( ) # Object Property: (directly negatively regulated by) -AnnotationAssertion(Annotation( "GOC:dos") "Process(P2) is directly negatively regulated by process(P1) iff: P1 negatively regulates P2 via direct physical interaction between an agent executing P1 (or some part of P1) and an agent executing P2 (or some part of P2). For example, if protein A has protein binding activity(P1) that targets protein B and this binding negatively regulates the kinase activity (P2) of protein B then P2 directly negatively regulated by P1.") -AnnotationAssertion( "dos") +AnnotationAssertion(Annotation( ) "Process(P2) is directly negatively regulated by process(P1) iff: P1 negatively regulates P2 via direct physical interaction between an agent executing P1 (or some part of P1) and an agent executing P2 (or some part of P2). For example, if protein A has protein binding activity(P1) that targets protein B and this binding negatively regulates the kinase activity (P2) of protein B then P2 directly negatively regulated by P1.") +AnnotationAssertion( ) AnnotationAssertion( "2017-09-17T13:52:38Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label "directly negatively regulated by") SubObjectPropertyOf( ) @@ -607,8 +689,8 @@ InverseObjectProperties( (directly positively regulated by) -AnnotationAssertion(Annotation( "GOC:dos") "Process(P2) is directly postively regulated by process(P1) iff: P1 positively regulates P2 via direct physical interaction between an agent executing P1 (or some part of P1) and an agent executing P2 (or some part of P2). For example, if protein A has protein binding activity(P1) that targets protein B and this binding positively regulates the kinase activity (P2) of protein B then P2 is directly postively regulated by P1.") -AnnotationAssertion( "dos") +AnnotationAssertion(Annotation( ) "Process(P2) is directly postively regulated by process(P1) iff: P1 positively regulates P2 via direct physical interaction between an agent executing P1 (or some part of P1) and an agent executing P2 (or some part of P2). For example, if protein A has protein binding activity(P1) that targets protein B and this binding positively regulates the kinase activity (P2) of protein B then P2 is directly postively regulated by P1.") +AnnotationAssertion( ) AnnotationAssertion( "2017-09-17T13:52:47Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label "directly positively regulated by") SubObjectPropertyOf( ) @@ -616,8 +698,8 @@ InverseObjectProperties( (has effector activity) -AnnotationAssertion(Annotation( "GOC:dos") "A 'has effector activity' B if A and B are GO molecular functions (GO_0003674), A 'has component activity' B and B is the effector (output function) of B. Each compound function has only one effector activity.") -AnnotationAssertion( "dos") +AnnotationAssertion(Annotation( ) "A 'has effector activity' B if A and B are GO molecular functions (GO_0003674), A 'has component activity' B and B is the effector (output function) of B. Each compound function has only one effector activity.") +AnnotationAssertion( ) AnnotationAssertion( "2017-09-22T14:14:36Z"^^xsd:dateTime) AnnotationAssertion(rdfs:comment "This relation is designed for constructing compound molecular functions, typically in combination with one or more regulatory component activity relations.") AnnotationAssertion(rdfs:label "has effector activity") @@ -781,6 +863,7 @@ AnnotationAssertion( ) AnnotationAssertion( ) AnnotationAssertion(rdfs:label "has input"@en) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Has_input"^^xsd:anyURI) SubObjectPropertyOf( ) InverseObjectProperties( ) ObjectPropertyDomain( ) @@ -801,7 +884,7 @@ AnnotationAssertion( "affects") AnnotationAssertion( ) AnnotationAssertion(rdfs:label "acts upstream of or within") -AnnotationAssertion(rdfs:seeAlso ) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Acts_upstream_of_or_within"^^xsd:anyURI) SubObjectPropertyOf( ) # Object Property: (causally upstream of, positive effect) @@ -813,6 +896,7 @@ AnnotationAssertion( ) AnnotationAssertion(rdfs:comment "holds between x and y if and only if x is causally upstream of y and the progression of x increases the frequency, rate or extent of y") AnnotationAssertion(rdfs:label "causally upstream of, positive effect") +AnnotationAssertion(rdfs:seeAlso ) SubObjectPropertyOf( ) SubObjectPropertyOf( ) @@ -824,6 +908,7 @@ AnnotationAssertion( ) AnnotationAssertion( ) AnnotationAssertion(rdfs:label "causally upstream of, negative effect") +AnnotationAssertion(rdfs:seeAlso ) SubObjectPropertyOf( ) SubObjectPropertyOf( ) @@ -860,6 +945,7 @@ AnnotationAssertion( "This relation differs from the parent relation 'capable of' in that the parent is weaker and only expresses a capability that may not be actually realized, whereas this relation is always realized.") AnnotationAssertion( ) AnnotationAssertion(rdfs:label "enables"@en) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Enables"^^xsd:anyURI) SubObjectPropertyOf( ) InverseObjectProperties( ) @@ -885,7 +971,7 @@ AnnotationAssertion( "actively involved in") AnnotationAssertion( "enables part of") AnnotationAssertion(rdfs:label "involved in"@en) -AnnotationAssertion(rdfs:seeAlso ) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Involved_in"^^xsd:anyURI) SubObjectPropertyOf( ) SubObjectPropertyOf( ) @@ -895,6 +981,7 @@ AnnotationAssertion( ) AnnotationAssertion( ) AnnotationAssertion(rdfs:label "enabled by"@en) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Enabled_by"^^xsd:anyURI) SubObjectPropertyOf( ) SubObjectPropertyOf( ) @@ -962,6 +1049,7 @@ AnnotationAssertion( "indirectly activates") AnnotationAssertion( ) AnnotationAssertion(rdfs:label "indirectly positively regulates"@en) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Indirectly_positively_regulates"^^xsd:anyURI) SubObjectPropertyOf( ) SubObjectPropertyOf( ) TransitiveObjectProperty() @@ -973,6 +1061,7 @@ AnnotationAssertion( "indirectly inhibits") AnnotationAssertion( ) AnnotationAssertion(rdfs:label "indirectly negatively regulates"@en) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Indirectly_negatively_regulates"^^xsd:anyURI) SubObjectPropertyOf( ) SubObjectPropertyOf( ) TransitiveObjectProperty() @@ -1079,12 +1168,13 @@ SubObjectPropertyOf( (is active in) AnnotationAssertion( "A protein that enables activity in a cytosol.") -AnnotationAssertion(Annotation( "GOC:cjm") Annotation( "GOC:dos") "c executes activity in d if and only if c enables p and p occurs_in d. Assuming no action at a distance by gene products, if a gene product enables (is capable of) a process that occurs in some structure, it must have at least some part in that structure.") +AnnotationAssertion(Annotation( ) Annotation( ) "c executes activity in d if and only if c enables p and p occurs_in d. Assuming no action at a distance by gene products, if a gene product enables (is capable of) a process that occurs in some structure, it must have at least some part in that structure.") AnnotationAssertion( ) AnnotationAssertion( "executes activity in") AnnotationAssertion( "enables activity in") AnnotationAssertion(rdfs:comment "") AnnotationAssertion(rdfs:label "is active in") +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Is_active_in"^^xsd:anyURI) SubObjectPropertyOf( ) SubObjectPropertyOf( ) @@ -1330,6 +1420,7 @@ AnnotationAssertion( ) AnnotationAssertion( ) AnnotationAssertion(rdfs:label "directly positively regulates") +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Directly_positively_regulates"^^xsd:anyURI) SubObjectPropertyOf( ) SubObjectPropertyOf( ) @@ -1343,6 +1434,7 @@ AnnotationAssertion( ) AnnotationAssertion( ) AnnotationAssertion(rdfs:label "directly negatively regulates") +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Directly_negatively_regulates"^^xsd:anyURI) SubObjectPropertyOf( ) SubObjectPropertyOf( ) @@ -1371,7 +1463,7 @@ AnnotationAssertion( "2018-01-26T23:49:30Z"^^xsd:dateTime) AnnotationAssertion( ) AnnotationAssertion(rdfs:label "acts upstream of or within, positive effect") -AnnotationAssertion(rdfs:seeAlso ) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Acts_upstream_of_or_within,_positive_effect"^^xsd:anyURI) SubObjectPropertyOf( ) # Object Property: (acts upstream of or within, negative effect) @@ -1381,6 +1473,7 @@ AnnotationAssertion( "2018-01-26T23:49:51Z"^^xsd:dateTime) AnnotationAssertion( ) AnnotationAssertion(rdfs:label "acts upstream of or within, negative effect") +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Acts_upstream_of_or_within,_negative_effect"^^xsd:anyURI) SubObjectPropertyOf( ) # Object Property: (acts upstream of, positive effect) @@ -1391,7 +1484,7 @@ AnnotationAssertion( "2018-01-26T23:53:14Z"^^xsd:dateTime) AnnotationAssertion( ) AnnotationAssertion(rdfs:label "acts upstream of, positive effect") -AnnotationAssertion(rdfs:seeAlso ) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Acts_upstream_of,_positive_effect"^^xsd:anyURI) SubObjectPropertyOf( ) SubObjectPropertyOf( ) @@ -1403,7 +1496,7 @@ AnnotationAssertion( "2018-01-26T23:53:22Z"^^xsd:dateTime) AnnotationAssertion( ) AnnotationAssertion(rdfs:label "acts upstream of, negative effect") -AnnotationAssertion(rdfs:seeAlso ) +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Acts_upstream_of,_negative_effect"^^xsd:anyURI) SubObjectPropertyOf( ) SubObjectPropertyOf( ) @@ -1413,6 +1506,7 @@ AnnotationAssertion( ) AnnotationAssertion( "2018-03-13T23:55:05Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label "causally upstream of or within, negative effect") +AnnotationAssertion(rdfs:seeAlso "https://wiki.geneontology.org/Causally_upstream_of_or_within,_negative_effect"^^xsd:anyURI) SubObjectPropertyOf( ) # Object Property: (causally upstream of or within, positive effect) @@ -1421,6 +1515,7 @@ AnnotationAssertion( ) AnnotationAssertion( "2018-03-13T23:55:19Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label "causally upstream of or within, positive effect") +AnnotationAssertion(rdfs:seeAlso ) SubObjectPropertyOf( ) # Object Property: (realized in response to) @@ -1433,7 +1528,7 @@ AnnotationAssertion( ) AnnotationAssertion( ) AnnotationAssertion( ) -AnnotationAssertion(Annotation( "RO:cjm") "triggered by process") +AnnotationAssertion(Annotation( ) "triggered by process") AnnotationAssertion(rdfs:label "realized in response to"@en) AnnotationAssertion(rdfs:seeAlso "https://docs.google.com/document/d/1KWhZxVBhIPkV6_daHta0h6UyHbjY2eIrnON1WIRGgdY/edit"^^xsd:anyURI) SubObjectPropertyOf( ) @@ -1478,7 +1573,7 @@ ObjectPropertyRange( (indirectly causally upstream of) AnnotationAssertion( "p is indirectly causally upstream of q iff p is causally upstream of q and there exists some process r such that p is causally upstream of r and r is causally upstream of q.") -AnnotationAssertion( "pg") +AnnotationAssertion( ) AnnotationAssertion( "2022-09-26T06:07:17Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label "indirectly causally upstream of"@en) SubObjectPropertyOf( ) @@ -1486,7 +1581,7 @@ SubObjectPropertyOf( (indirectly regulates) AnnotationAssertion( "p indirectly regulates q iff p is indirectly causally upstream of q and p regulates q.") -AnnotationAssertion( "pg") +AnnotationAssertion( ) AnnotationAssertion( "2022-09-26T06:08:01Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label "indirectly regulates"@en) SubObjectPropertyOf( ) @@ -1496,11 +1591,11 @@ SubObjectPropertyOf( "A diagnostic testing device utilizes a specimen.") AnnotationAssertion( "X device utilizes material Y means X and Y are material entities, and X is capable of some process P that has input Y.") -AnnotationAssertion( ) -AnnotationAssertion( ) AnnotationAssertion( "A diagnostic testing device utilizes a specimen means that the diagnostic testing device is capable of an assay, and this assay a specimen as its input.") AnnotationAssertion( "See github ticket https://github.com/oborel/obo-relations/issues/497") -AnnotationAssertion( "2021-11-08T12:00:00Z") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2021-11-08T12:00:00Z"^^xsd:dateTime) AnnotationAssertion( "utilizes") AnnotationAssertion(rdfs:label "device utilizes material"@en) @@ -1550,7 +1645,8 @@ DisjointClasses( ObjectSomeValuesFro # Class: (independent continuant) -AnnotationAssertion( "A continuant that is a bearer of quality and realizable entity entities, in which other entities inhere and which itself cannot inhere in anything."@en) +AnnotationAssertion( "b is an independent continuant = Def. b is a continuant which is such that there is no c and no t such that b s-depends_on c at t. (axiom label in BFO2 Reference: [017-002])"@en) +AnnotationAssertion(rdfs:comment "A continuant that is a bearer of quality and realizable entity entities, in which other entities inhere and which itself cannot inhere in anything."@en) AnnotationAssertion(rdfs:label "independent continuant"@en) SubClassOf( ) SubClassOf( ObjectAllValuesFrom( )) @@ -1559,7 +1655,8 @@ DisjointClasses( (process) -AnnotationAssertion( "An occurrent that has temporal proper parts and for some time t, p s-depends_on some material entity at t."@en) +AnnotationAssertion( "p is a process = Def. p is an occurrent that has temporal proper parts and for some time t, p s-depends_on some material entity at t. (axiom label in BFO2 Reference: [083-003])"@en) +AnnotationAssertion(rdfs:comment "An occurrent that has temporal proper parts and for some time t, p s-depends_on some material entity at t."@en) AnnotationAssertion(rdfs:label "process"@en) SubClassOf( ) @@ -1572,6 +1669,7 @@ DisjointClasses( (realizable entity) AnnotationAssertion( "A specifically dependent continuant that inheres in continuant entities and are not exhibited in full at every time in which it inheres in an entity or group of entities. The exhibition or actualization of a realizable entity is a particular manifestation, functioning or process that occurs under certain circumstances."@en) +AnnotationAssertion(rdfs:label "realizable"@en) AnnotationAssertion(rdfs:label "realizable entity"@en) SubClassOf( ) SubClassOf( ObjectAllValuesFrom( )) @@ -1583,10 +1681,14 @@ AnnotationAssertion(rdfs:label "qua SubClassOf( ) SubClassOf( ObjectAllValuesFrom( )) -# Class: (specifically dependent continuant) +# Class: (characteristic) -AnnotationAssertion( "A continuant that inheres in or is borne by other entities. Every instance of A requires some specific instance of B which must always be the same."@en) +AnnotationAssertion( "b is a specifically dependent continuant = Def. b is a continuant & there is some independent continuant c which is not a spatial region and which is such that b s-depends_on c at every time t during the course of b’s existence. (axiom label in BFO2 Reference: [050-003])"@en) +AnnotationAssertion(rdfs:comment "A continuant that inheres in or is borne by other entities. Every instance of A requires some specific instance of B which must always be the same."@en) +AnnotationAssertion(rdfs:label "characteristic"@en) AnnotationAssertion(rdfs:label "specifically dependent continuant"@en) +AnnotationAssertion(rdfs:seeAlso "https://github.com/OBOFoundry/COB/issues/65") +AnnotationAssertion(rdfs:seeAlso "https://github.com/oborel/obo-relations/pull/284") SubClassOf( ) SubClassOf( ObjectAllValuesFrom( )) DisjointClasses( ) @@ -1599,7 +1701,8 @@ SubClassOf( (generically dependent continuant) -AnnotationAssertion( "A continuant that is dependent on one or other independent continuant bearers. For every instance of A requires some instance of (an independent continuant type) B but which instance of B serves can change from time to time."@en) +AnnotationAssertion( "b is a generically dependent continuant = Def. b is a continuant that g-depends_on one or more other entities. (axiom label in BFO2 Reference: [074-001])"@en) +AnnotationAssertion(rdfs:comment "A continuant that is dependent on one or other independent continuant bearers. For every instance of A requires some instance of (an independent continuant type) B but which instance of B serves can change from time to time."@en) AnnotationAssertion(rdfs:label "generically dependent continuant"@en) SubClassOf( ) SubClassOf( ObjectAllValuesFrom( )) @@ -1623,13 +1726,6 @@ AnnotationAssertion(rdfs:label "imm SubClassOf( ) DisjointClasses( ObjectSomeValuesFrom( )) -# Class: (organism or virus or viroid) - -AnnotationAssertion( "Material anatomical entity that is a member of an individual species or is a viral or viroid particle.") -AnnotationAssertion( "Melissa Haendel") -AnnotationAssertion(rdfs:label "organism or virus or viroid") -SubClassOf( ) - # Class: () SubClassOf( ) @@ -1637,6 +1733,7 @@ SubClassOf( (cell) AnnotationAssertion(Annotation( "CARO:mah") "A material entity of anatomical origin (part of or deriving from an organism) that has as its parts a maximally connected cell compartment surrounded by a plasma membrane.") +AnnotationAssertion( "A material entity that has a plasma membrane and results from cellular division.") AnnotationAssertion( "CALOHA:TS-2035") AnnotationAssertion( "FBbt:00007002") AnnotationAssertion( "FMA:68646") @@ -1646,16 +1743,34 @@ AnnotationAssertion( "VHOG:0001533") AnnotationAssertion( "WBbt:0004017") AnnotationAssertion( "XAO:0003012") +AnnotationAssertion(rdfs:comment "CL and GO definitions of cell differ based on inclusive or exclusive of cell wall, etc.") AnnotationAssertion(rdfs:comment "The definition of cell is intended to represent all cells, and thus a cell is defined as a material entity and not an anatomical structure, which implies that it is part of an organism (or the entirety of one).") +AnnotationAssertion(rdfs:comment "We struggled with this definition. We are worried about circularity. We also considered requiring the capability of metabolism.") +AnnotationAssertion(rdfs:label "cell"@en) AnnotationAssertion(rdfs:label "cell") +SubClassOf( ) + +# Class: (measurement datum) + +AnnotationAssertion(rdfs:label "measurement datum") + +# Class: (exposure of organism) + +AnnotationAssertion( "A process during which an organism comes into contact with another entity.") +AnnotationAssertion(rdfs:label "exposure of organism"@en) +SubClassOf( ) # Class: (molecular_function) -AnnotationAssertion(Annotation( "GOC:pdt") "A molecular process that can be carried out by the action of a single macromolecular machine, usually via direct physical interactions with other molecular entities. Function in this sense denotes an action, or activity, that a gene product (or a complex) performs. These actions are described from two distinct but related perspectives: (1) biochemical activity, and (2) role as a component in a larger system/process.") +AnnotationAssertion(Annotation( "GOC:pdt") "A molecular process that can be carried out by the action of a single macromolecular machine, usually via direct physical interactions with other molecular entities. Function in this sense denotes an action, or activity, that a gene product (or a complex) performs.") AnnotationAssertion( "molecular function") AnnotationAssertion( "GO:0003674") AnnotationAssertion(rdfs:comment "Note that, in addition to forming the root of the molecular function ontology, this term is recommended for use for the annotation of gene products whose molecular function is unknown. When this term is used for annotation, it indicates that no information was available about the molecular function of the gene product annotated as of the date the annotation was made; the evidence code 'no data' (ND), is used to indicate this. Despite its name, this is not a type of 'function' in the sense typically defined by upper ontologies such as Basic Formal Ontology (BFO). It is instead a BFO:process carried out by a single gene product or complex.") +AnnotationAssertion(rdfs:comment "This is the same as GO molecular function") +AnnotationAssertion(rdfs:label "gene product or complex activity"@en) AnnotationAssertion(rdfs:label "molecular_function") +SubClassOf( ) +DisjointClasses( ) # Class: (nucleus) @@ -1665,11 +1780,14 @@ AnnotationAssertion( "cell nucleus") AnnotationAssertion(Annotation( "GOC:al") Annotation( "GOC:mah") Annotation( "GOC:vw") Annotation( "PMID:15030757") "horsetail nucleus") AnnotationAssertion( "GO:0005634") +AnnotationAssertion(rdfs:label "cell nucleus"@en) AnnotationAssertion(rdfs:label "nucleus") +SubClassOf( ) # Class: (biological_process) -AnnotationAssertion(Annotation( "GOC:pdt") "A biological process represents a specific objective that the organism is genetically programmed to achieve. Biological processes are often described by their outcome or ending state, e.g., the biological process of cell division results in the creation of two daughter cells (a divided cell) from a single parent cell. A biological process is accomplished by a particular set of molecular functions carried out by specific gene products (or macromolecular complexes), often in a highly regulated manner and in a particular temporal sequence.") +AnnotationAssertion(Annotation( "GOC:pdt") "A biological process is the execution of a genetically-encoded biological module or program. It consists of all the steps required to achieve the specific biological objective of the module. A biological process is accomplished by a particular set of molecular functions carried out by specific gene products (or macromolecular complexes), often in a highly regulated manner and in a particular temporal sequence.") +AnnotationAssertion( "A process that emerges from two or more causally-connected macromolecular activities and has evolved to achieve a biological objective.") AnnotationAssertion( "jl") AnnotationAssertion( "2012-09-19T15:05:24Z") AnnotationAssertion( "Wikipedia:Biological_process") @@ -1678,8 +1796,12 @@ AnnotationAssertion( "single organism process") AnnotationAssertion( "single-organism process") AnnotationAssertion( "GO:0008150") +AnnotationAssertion(rdfs:comment "A biological process is an evolved process") AnnotationAssertion(rdfs:comment "Note that, in addition to forming the root of the biological process ontology, this term is recommended for use for the annotation of gene products whose biological process is unknown. When this term is used for annotation, it indicates that no information was available about the biological process of the gene product annotated as of the date the annotation was made; the evidence code 'no data' (ND), is used to indicate this.") +AnnotationAssertion(rdfs:label "biological process"@en) AnnotationAssertion(rdfs:label "biological_process") +SubClassOf( ) +DisjointClasses( ) # Class: (kinase activity) @@ -1693,6 +1815,81 @@ AnnotationAssertion(rdfs:label "kina SubClassOf( ) SubClassOf( ObjectHasSelf()) +# Class: (information content entity) + +AnnotationAssertion( "information content entity"@en) +AnnotationAssertion(rdfs:label "information content entity"@en) +SubClassOf( ) + +# Class: (curation status specification) + +AnnotationAssertion( "curation status specification"@en) +AnnotationAssertion( ) +AnnotationAssertion( "The curation status of the term. The allowed values come from an enumerated list of predefined terms. See the specification of these instances for more detailed definitions of each enumerated value."@en) +AnnotationAssertion( "Better to represent curation as a process with parts and then relate labels to that process (in IAO meeting)"@en) +AnnotationAssertion( "PERSON:Bill Bug"@en) +AnnotationAssertion( "GROUP:OBI:"@en) +AnnotationAssertion( "OBI_0000266"@en) +AnnotationAssertion(rdfs:label "curation status specification"@en) +EquivalentClasses( ObjectOneOf( )) + +# Class: (planned process) + +AnnotationAssertion( "planned process"@en) +AnnotationAssertion( "planned process") +AnnotationAssertion( "Injecting mice with a vaccine in order to test its efficacy") +AnnotationAssertion( ) +AnnotationAssertion( "A process that realizes a plan which is the concretization of a plan specification."@en) +AnnotationAssertion( "'Plan' includes a future direction sense. That can be problematic if plans are changed during their execution. There are however implicit contingencies for protocols that an agent has in his mind that can be considered part of the plan, even if the agent didn't have them in mind before. Therefore, a planned process can diverge from what the agent would have said the plan was before executing it, by adjusting to problems encountered during execution (e.g. choosing another reagent with equivalent properties, if the originally planned one has run out.)") +AnnotationAssertion( "We are only considering successfully completed planned processes. A plan may be modified, and details added during execution. For a given planned process, the associated realized plan specification is the one encompassing all changes made during execution. This means that all processes in which an agent acts towards achieving some +objectives is a planned process.") +AnnotationAssertion( "Bjoern Peters") +AnnotationAssertion( "branch derived") +AnnotationAssertion(rdfs:label "planned process"@en) +SubClassOf( ) + +# Class: (processed material) + +AnnotationAssertion( "processed material"@en) +AnnotationAssertion( "Examples include gel matrices, filter paper, parafilm and buffer solutions, mass spectrometer, tissue samples"@en) +AnnotationAssertion( ) +AnnotationAssertion( "Is a material entity that is created or changed during material processing."@en) +AnnotationAssertion( "PERSON: Alan Ruttenberg"@en) +AnnotationAssertion(rdfs:label "processed material"@en) +SubClassOf( ) + +# Class: (assay) + +AnnotationAssertion( "assay"@en) +AnnotationAssertion( "Assay the wavelength of light emitted by excited Neon atoms. Count of geese flying over a house.") +AnnotationAssertion( ) +AnnotationAssertion( "A planned process with the objective to produce information about the material entity that is the evaluant, by physically examining it or its proxies."@en) +AnnotationAssertion( "12/3/12: BP: the reference to the 'physical examination' is included to point out that a prediction is not an assay, as that does not require physical examiniation.") +AnnotationAssertion( "PlanAndPlannedProcess Branch"@en) +AnnotationAssertion( "measuring"@en) +AnnotationAssertion( "scientific observation"@en) +AnnotationAssertion( "OBI branch derived"@en) +AnnotationAssertion(rdfs:label "assay"@en) +SubClassOf( ) + +# Class: (organism) + +AnnotationAssertion( "organism"@en) +AnnotationAssertion( "animal"@en) +AnnotationAssertion( "fungus"@en) +AnnotationAssertion( "plant"@en) +AnnotationAssertion( "virus"@en) +AnnotationAssertion( ) +AnnotationAssertion( "A material entity that is an individual living system, such as animal, plant, bacteria or virus, that is capable of replicating or reproducing, growth and maintenance in the right environment. An organism may be unicellular or made up, like humans, of many billions of cells divided into specialized tissues and organs."@en) +AnnotationAssertion( "10/21/09: This is a placeholder term, that should ideally be imported from the NCBI taxonomy, but the high level hierarchy there does not suit our needs (includes plasmids and 'other organisms')") +AnnotationAssertion( "13-02-2009: +OBI doesn't take position as to when an organism starts or ends being an organism - e.g. sperm, foetus. +This issue is outside the scope of OBI.") +AnnotationAssertion( "GROUP: OBI Biomaterial Branch") +AnnotationAssertion( "WEB: http://en.wikipedia.org/wiki/Organism"@en) +AnnotationAssertion(rdfs:label "organism"@en) +SubClassOf( ) + # Class: (quality) AnnotationAssertion(Annotation( "PATOC:GVG") "A dependent entity that inheres in a bearer by virtue of how the bearer is related to other entities") @@ -1700,6 +1897,190 @@ AnnotationAssertion( "quality") SubClassOf( ) +# Class: (anatomical structure) + +AnnotationAssertion(Annotation( "CARO:0000003") "Material anatomical entity that is a single connected structure with inherent 3D shape generated by coordinated expression of the organism's own genome.") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "AAO:0010825") +AnnotationAssertion( "AEO:0000003") +AnnotationAssertion( "BILA:0000003") +AnnotationAssertion( "CARO:0000003") +AnnotationAssertion( "EHDAA2:0003003") +AnnotationAssertion( "EMAPA:0") +AnnotationAssertion( "FMA:305751") +AnnotationAssertion( "FMA:67135") +AnnotationAssertion( "GAID:781") +AnnotationAssertion( "HAO:0000003") +AnnotationAssertion( "MA:0003000") +AnnotationAssertion( "MESH:D000825") +AnnotationAssertion( "SCTID:362889002") +AnnotationAssertion( "TAO:0000037") +AnnotationAssertion( "TGMA:0001823") +AnnotationAssertion( "VHOG:0001759") +AnnotationAssertion( "XAO:0003000") +AnnotationAssertion( "ZFA:0000037") +AnnotationAssertion( "http://dbpedia.org/ontology/AnatomicalStructure") +AnnotationAssertion( "biological structure") +AnnotationAssertion(Annotation( "CARO:0000003") "connected biological structure") +AnnotationAssertion( "UBERON:0000061") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion(rdfs:label "anatomical structure") +SubClassOf( ) + +# Class: (material anatomical entity) + +AnnotationAssertion(Annotation( "http://orcid.org/0000-0001-9114-8737") "Anatomical entity that has mass.") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "AAO:0010264") +AnnotationAssertion( "AEO:0000006") +AnnotationAssertion( "BILA:0000006") +AnnotationAssertion( "CARO:0000006") +AnnotationAssertion( "EHDAA2:0003006") +AnnotationAssertion( "FMA:67165") +AnnotationAssertion( "HAO:0000006") +AnnotationAssertion( "TAO:0001836") +AnnotationAssertion( "TGMA:0001826") +AnnotationAssertion( "VHOG:0001721") +AnnotationAssertion( "UBERON:0000465") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion(rdfs:label "material anatomical entity") +SubClassOf( ) +SubClassOf( ) +DisjointClasses( ) + +# Class: (immaterial anatomical entity) + +AnnotationAssertion(Annotation( "http://orcid.org/0000-0001-9114-8737") "Anatomical entity that has no mass.") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "AAO:0010265") +AnnotationAssertion( "AEO:0000007") +AnnotationAssertion( "BILA:0000007") +AnnotationAssertion( "CARO:0000007") +AnnotationAssertion( "EHDAA2:0003007") +AnnotationAssertion( "FMA:67112") +AnnotationAssertion( "HAO:0000007") +AnnotationAssertion( "TAO:0001835") +AnnotationAssertion( "TGMA:0001827") +AnnotationAssertion( "VHOG:0001727") +AnnotationAssertion(Annotation( "FMA:67112") "immaterial physical anatomical entity") +AnnotationAssertion( "UBERON:0000466") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion(rdfs:label "immaterial anatomical entity") +SubClassOf( ) +SubClassOf( ) + +# Class: (anatomical entity) + +AnnotationAssertion(Annotation( "FMA:62955") Annotation( "http://orcid.org/0000-0001-9114-8737") "Biological entity that is either an individual member of a biological species or constitutes the structural organization of an individual member of a biological species.") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "AAO:0010841") +AnnotationAssertion( "AEO:0000000") +AnnotationAssertion( "BFO:0000004") +AnnotationAssertion( "BILA:0000000") +AnnotationAssertion( "BIRNLEX:6") +AnnotationAssertion( "CARO:0000000") +AnnotationAssertion( "EHDAA2:0002229") +AnnotationAssertion( "FMA:62955") +AnnotationAssertion( "HAO:0000000") +AnnotationAssertion( "MA:0000001") +AnnotationAssertion( "NCIT:C12219") +AnnotationAssertion( "TAO:0100000") +AnnotationAssertion( "TGMA:0001822") +AnnotationAssertion(Annotation( "ncithesaurus:Anatomic_Structure_System_or_Substance") "UMLS:C1515976") +AnnotationAssertion( "WBbt:0000100") +AnnotationAssertion( "XAO:0000000") +AnnotationAssertion( "ZFA:0100000") +AnnotationAssertion( "UBERON:0001062") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion(rdfs:label "anatomical entity") +SubClassOf( ) + +# Class: (multicellular anatomical structure) + +AnnotationAssertion(Annotation( "CARO:0010000") "An anatomical structure that has more than one cell as a part.") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "CARO:0010000") +AnnotationAssertion(Annotation( "FBbt:00100313") "multicellular structure") +AnnotationAssertion( "UBERON:0010000") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion(rdfs:label "multicellular anatomical structure") +SubClassOf( ) + + +############################ +# Named Individuals +############################ + +# Individual: (example to be eventually removed) + +AnnotationAssertion( "example to be eventually removed"@en) +AnnotationAssertion(rdfs:label "example to be eventually removed"@en) + +# Individual: (metadata complete) + +AnnotationAssertion( "metadata complete"@en) +AnnotationAssertion( "Class has all its metadata, but is either not guaranteed to be in its final location in the asserted IS_A hierarchy or refers to another class that is not complete."@en) +AnnotationAssertion(rdfs:label "metadata complete"@en) + +# Individual: (organizational term) + +AnnotationAssertion( "organizational term"@en) +AnnotationAssertion( "Term created to ease viewing/sort terms for development purpose, and will not be included in a release"@en) +AnnotationAssertion(rdfs:label "organizational term"@en) + +# Individual: (ready for release) + +AnnotationAssertion( "ready for release"@en) +AnnotationAssertion( ) +AnnotationAssertion( "Class has undergone final review, is ready for use, and will be included in the next release. Any class lacking \"ready_for_release\" should be considered likely to change place in hierarchy, have its definition refined, or be obsoleted in the next release. Those classes deemed \"ready_for_release\" will also derived from a chain of ancestor classes that are also \"ready_for_release.\""@en) +AnnotationAssertion(rdfs:label "ready for release"@en) + +# Individual: (metadata incomplete) + +AnnotationAssertion( "metadata incomplete"@en) +AnnotationAssertion( "Class is being worked on; however, the metadata (including definition) are not complete or sufficiently clear to the branch editors."@en) +AnnotationAssertion(rdfs:label "metadata incomplete"@en) + +# Individual: (uncurated) + +AnnotationAssertion( "uncurated"@en) +AnnotationAssertion( "Nothing done yet beyond assigning a unique class ID and proposing a preferred term."@en) +AnnotationAssertion(rdfs:label "uncurated"@en) + +# Individual: (pending final vetting) + +AnnotationAssertion( "pending final vetting"@en) +AnnotationAssertion( ) +AnnotationAssertion( "All definitions, placement in the asserted IS_A hierarchy and required minimal metadata are complete. The class is awaiting a final review by someone other than the term editor."@en) +AnnotationAssertion(rdfs:label "pending final vetting"@en) + +# Individual: (to be replaced with external ontology term) + +AnnotationAssertion( "to be replaced with external ontology term"@en) +AnnotationAssertion( "Terms with this status should eventually replaced with a term from another ontology."@en) +AnnotationAssertion( "Alan Ruttenberg"@en) +AnnotationAssertion( "group:OBI"@en) +AnnotationAssertion(rdfs:label "to be replaced with external ontology term"@en) + +# Individual: (requires discussion) + +AnnotationAssertion( "requires discussion"@en) +AnnotationAssertion( ) +AnnotationAssertion( "A term that is metadata complete, has been reviewed, and problems have been identified that require discussion before release. Such a term requires editor note(s) to identify the outstanding issues."@en) +AnnotationAssertion( "Alan Ruttenberg"@en) +AnnotationAssertion( "group:OBI"@en) +AnnotationAssertion(rdfs:label "requires discussion"@en) + SubClassOf(ObjectSomeValuesFrom( ) ObjectUnionOf(ObjectSomeValuesFrom( ObjectSomeValuesFrom( )) ObjectSomeValuesFrom( ObjectSomeValuesFrom( ObjectSomeValuesFrom( ))))) SubObjectPropertyOf(ObjectPropertyChain( ) ) @@ -1763,30 +2144,32 @@ SubObjectPropertyOf(ObjectPropertyChain( ) ) SubObjectPropertyOf(ObjectPropertyChain( ) ) SubObjectPropertyOf(ObjectPropertyChain( ) ) -DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ClassAtom( Variable()) ClassAtom( Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ClassAtom( Variable()) ClassAtom( Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) DLSafeRule(Body(ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) DLSafeRule(Body(ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) DLSafeRule(Body(ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) DLSafeRule(Body(ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) DLSafeRule(Annotation( "true"^^xsd:boolean) Annotation(rdfs:comment "MF(X)-directly_regulates->MF(Y)-enabled_by->GP(Z) => MF(Y)-has_input->GP(Y) e.g. if 'protein kinase activity'(X) directly_regulates 'protein binding activity (Y)and this is enabled by GP(Z) then X has_input Z") Annotation(rdfs:label "infer input from direct reg") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()) ClassAtom( Variable()) ClassAtom( Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) DLSafeRule(Annotation(rdfs:comment "GP(X)-enables->MF(Y)-has_part->MF(Z) => GP(X) enables MF(Z), -e.g. if GP X enables ATPase coupled transporter activity' and 'ATPase coupled transporter activity' has_part 'ATPase activity' then GP(X) enables 'ATPase activity'") Annotation(rdfs:label "enabling an MF enables its parts") Body(ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Annotation( "true"^^xsd:boolean) Annotation(rdfs:comment "GP(X)-enables->MF(Y)-part_of->BP(Z) => GP(X) involved_in BP(Z) e.g. if X enables 'protein kinase activity' and Y 'part of' 'signal tranduction' then X involved in 'signal transduction'") Annotation(rdfs:label "involved in BP") Body(ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Annotation(rdfs:comment "If a molecular function (X) has a regulatory subfunction, then any gene product which is an input to that subfunction has an activity that directly_regulates X. Note: this is intended for cases where the regaultory subfunction is protein binding, so it could be tightened with an additional clause to specify this.") Annotation(rdfs:label "inferring direct reg edge from input to regulatory subfunction") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Annotation(rdfs:label "inferring direct neg reg edge from input to regulatory subfunction") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Annotation(rdfs:label "inferring direct positive reg edge from input to regulatory subfunction") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Annotation(rdfs:label "effector input is compound function input") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Annotation(rdfs:label "Input of effector is input of its parent MF") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Annotation(rdfs:comment "if effector directly regulates X, its parent MF directly regulates X") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Annotation(rdfs:comment "if effector directly positively regulates X, its parent MF directly positively regulates X") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Annotation(rdfs:label "if effector directly negatively regulates X, its parent MF directly negatively regulates X") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Annotation(rdfs:label "'causally downstream of' and 'overlaps' should be disjoint properties (a SWRL rule is required because these are non-simple properties).") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ClassAtom(owl:Nothing Variable()) ClassAtom(owl:Nothing Variable()))) -DLSafeRule(Annotation(rdfs:label "'causally upstream of' and 'overlaps' should be disjoint properties (a SWRL rule is required because these are non-simple properties).") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ClassAtom(owl:Nothing Variable()) ClassAtom(owl:Nothing Variable()))) +e.g. if GP X enables ATPase coupled transporter activity' and 'ATPase coupled transporter activity' has_part 'ATPase activity' then GP(X) enables 'ATPase activity'") Annotation(rdfs:label "enabling an MF enables its parts") Body(ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Annotation( "true"^^xsd:boolean) Annotation(rdfs:comment "GP(X)-enables->MF(Y)-part_of->BP(Z) => GP(X) involved_in BP(Z) e.g. if X enables 'protein kinase activity' and Y 'part of' 'signal tranduction' then X involved in 'signal transduction'") Annotation(rdfs:label "involved in BP") Body(ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Annotation(rdfs:comment "If a molecular function (X) has a regulatory subfunction, then any gene product which is an input to that subfunction has an activity that directly_regulates X. Note: this is intended for cases where the regaultory subfunction is protein binding, so it could be tightened with an additional clause to specify this.") Annotation(rdfs:label "inferring direct reg edge from input to regulatory subfunction") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Annotation(rdfs:label "inferring direct neg reg edge from input to regulatory subfunction") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Annotation(rdfs:label "inferring direct positive reg edge from input to regulatory subfunction") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Annotation(rdfs:label "effector input is compound function input") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Annotation(rdfs:label "Input of effector is input of its parent MF") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Annotation(rdfs:comment "if effector directly regulates X, its parent MF directly regulates X") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Annotation(rdfs:comment "if effector directly positively regulates X, its parent MF directly positively regulates X") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Annotation(rdfs:label "if effector directly negatively regulates X, its parent MF directly negatively regulates X") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Annotation(rdfs:label "'causally downstream of' and 'overlaps' should be disjoint properties (a SWRL rule is required because these are non-simple properties).") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ClassAtom(owl:Nothing Variable()) ClassAtom(owl:Nothing Variable()))) +DLSafeRule(Annotation(rdfs:label "'causally upstream of' and 'overlaps' should be disjoint properties (a SWRL rule is required because these are non-simple properties).") Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ClassAtom(owl:Nothing Variable()) ClassAtom(owl:Nothing Variable()))) DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ObjectPropertyAtom( Variable() Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) +AnnotationAssertion(Annotation( ) "researcher (ORCID 0000-0002-8844-9165)") +AnnotationAssertion(Annotation( ) rdfs:label "Damion M Dooley") ) \ No newline at end of file