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(