diff --git a/.github/workflows/qc.yml b/.github/workflows/qc.yml
index 257dad319d..af0237a0e1 100644
--- a/.github/workflows/qc.yml
+++ b/.github/workflows/qc.yml
@@ -27,10 +27,35 @@ jobs:
- uses: actions/checkout@v2
- name: Run ontology QC checks
+ id: check
+ continue-on-error: true
env:
DEFAULT_BRANCH: master
ROBOT_JAVA_ARGS: -Xmx6G
run: cd src/ontology && mkdir -p tmp reports mirror && make ROBOT_ENV='ROBOT_JAVA_ARGS=-Xmx6G' GH_ACTION=true BRI=false MIR=false IMP=false test > TESTLOG.log
+
+ - name: Reason over taxon constraints
+ id: explaintc
+ continue-on-error: true
+ if: steps.check.outcome == 'failure'
+ run: |
+ if [ -s src/ontology/reports/taxon-constraint-check.txt ]; then
+ robot explain -i src/ontology/tmp/uberon-edit-plus-tax-equivs.owl -M unsatisfiability -u all -r ELK -e taxon-unsats.md
+ echo "\nThis PR violates some taxon constraints. Here is what the reasoner has to say:
\n" > comment.md
+ cat taxon-unsats.md >> comment.md
+ echo " " >> comment.md
+ exit 1
+ fi
+ - name: Post explanation for taxon constraint violations
+ if: steps.explaintc.outcome == 'failure'
+ uses: NejcZdovc/comment-pr@v2
+ with:
+ github_token: ${{secrets.GITHUB_TOKEN}}
+ file: "../../comment.md"
+ identifier: "TAXON_CONSTRAINTS_REASONING"
+
- name: Last rows of QC report
- if: ${{ failure() }}
- run: tail -20 src/ontology/TESTLOG.log
\ No newline at end of file
+ if: steps.check.outcome == 'failure'
+ run: |
+ tail -20 src/ontology/TESTLOG.log
+ exit 1
diff --git a/src/ontology/Makefile b/src/ontology/Makefile
index d650bef1c7..2e82bc90c2 100644
--- a/src/ontology/Makefile
+++ b/src/ontology/Makefile
@@ -114,7 +114,7 @@ all_main: $(MAIN_FILES)
# ----------------------------------------
-IMPORTS = pr cl go envo ro bspo chebi pato bfo ncbitaxon nbo orcidio omo
+IMPORTS = pr cl go envo ro bspo chebi pato bfo ncbitaxon ncbitaxondisjoints nbo orcidio omo
IMPORT_ROOTS = $(IMPORTDIR)/merged_import
IMPORT_OWL_FILES = $(foreach n,$(IMPORT_ROOTS), $(n).owl)
@@ -496,6 +496,14 @@ mirror-ncbitaxon: | $(TMPDIR)
mv $@.tmp.owl $(TMPDIR)/$@.owl; fi
+## ONTOLOGY: ncbitaxondisjoints
+.PHONY: mirror-ncbitaxondisjoints
+.PRECIOUS: $(MIRRORDIR)/ncbitaxondisjoints.owl
+mirror-ncbitaxondisjoints: | $(TMPDIR)
+ if [ $(MIR) = true ] && [ $(IMP) = true ]; then $(ROBOT) convert -I http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim-disjoint-over-in-taxon.owl -o $@.tmp.owl &&\
+ mv $@.tmp.owl $(TMPDIR)/$@.owl; fi
+
+
## ONTOLOGY: nbo
.PHONY: mirror-nbo
.PRECIOUS: $(MIRRORDIR)/nbo.owl
diff --git a/src/ontology/bridge/uberon-bridge-to-aeo.obo b/src/ontology/bridge/uberon-bridge-to-aeo.obo
index 49d8262236..38256f5e73 100644
--- a/src/ontology/bridge/uberon-bridge-to-aeo.obo
+++ b/src/ontology/bridge/uberon-bridge-to-aeo.obo
@@ -1,5 +1,5 @@
ontology: uberon/bridge/uberon-bridge-to-aeo
-data-version: 2023-10-27
+data-version: 2023-10-30
property_value: seeAlso "http://purl.obolibrary.org/obo/uberon/references/reference_0000026" xsd:anyURI
[Term]
@@ -697,11 +697,6 @@ id: AEO:0001010 !
property_value: IAO:0000589 "differentiating neuroepithelium (AEO)" xsd:string
equivalent_to: UBERON:0034707 ! differentiating neuroepithelium
-[Term]
-id: AEO:0000154 !
-property_value: IAO:0000589 "anatomical surface region (AEO)" xsd:string
-equivalent_to: UBERON:0036215 ! anatomical surface region
-
[Typedef]
id: part_of
xref: BFO:0000050
diff --git a/src/ontology/bridge/uberon-bridge-to-aeo.owl b/src/ontology/bridge/uberon-bridge-to-aeo.owl
index 36aab40ff9..d0359e8fb8 100644
--- a/src/ontology/bridge/uberon-bridge-to-aeo.owl
+++ b/src/ontology/bridge/uberon-bridge-to-aeo.owl
@@ -13,7 +13,7 @@
xmlns:terms="http://purl.org/dc/terms/"
xmlns:oboInOwl="http://www.geneontology.org/formats/oboInOwl#">
-
+
http://purl.obolibrary.org/obo/uberon/references/reference_0000026
@@ -1118,8 +1118,6 @@
-
- anatomical surface region (AEO)
integumental system (AEO)
AEO:0000154
@@ -2531,12 +2529,6 @@
-
-
-
-
-
-
diff --git a/src/ontology/bridge/uberon-bridge-to-dmba.obo b/src/ontology/bridge/uberon-bridge-to-dmba.obo
index a6515a46dd..ebbfaf7dfd 100644
--- a/src/ontology/bridge/uberon-bridge-to-dmba.obo
+++ b/src/ontology/bridge/uberon-bridge-to-dmba.obo
@@ -1319,13 +1319,6 @@ intersection_of: BFO:0000050 NCBITaxon:10090 {name="anterior nucleus of hypothal
property_value: IAO:0000589 "posterior part of anterior hypothalamic nucleus" xsd:string
property_value: status "Verified" xsd:string {source="https://ror.org/03cpe7c52"}
-[Term]
-id: DMBA:16271
-intersection_of: UBERON:0000435 {name="lateral tuberal nucleus"}
-intersection_of: BFO:0000050 NCBITaxon:10090 {name="lateral tuberal nucleus"}
-property_value: IAO:0000589 "lateral tuberal nucleus" xsd:string
-property_value: status "Verified" xsd:string {source="https://ror.org/03cpe7c52"}
-
[Term]
id: DMBA:16308
intersection_of: UBERON:0001894 {name="diencephalon"}
diff --git a/src/ontology/bridge/uberon-bridge-to-dmba.owl b/src/ontology/bridge/uberon-bridge-to-dmba.owl
index 6eca213c5d..efc161812b 100644
--- a/src/ontology/bridge/uberon-bridge-to-dmba.owl
+++ b/src/ontology/bridge/uberon-bridge-to-dmba.owl
@@ -5723,37 +5723,6 @@
-
-
-
-
- lateral tuberal nucleus
- Verified
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- lateral tuberal nucleus
-
-
-
-
- Verified
- https://ror.org/03cpe7c52
-
-
-
-
diff --git a/src/ontology/components/hra_subset.owl b/src/ontology/components/hra_subset.owl
index 1506385305..45ca962e60 100644
--- a/src/ontology/components/hra_subset.owl
+++ b/src/ontology/components/hra_subset.owl
@@ -14131,15 +14131,6 @@
-
-
-
-
-
-
-
-
-
@@ -14209,6 +14200,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ontology/imports/ncbitaxon_terms.txt b/src/ontology/imports/ncbitaxon_terms.txt
index ff6792faf3..6812f79f1c 100644
--- a/src/ontology/imports/ncbitaxon_terms.txt
+++ b/src/ontology/imports/ncbitaxon_terms.txt
@@ -1,4 +1,251 @@
NCBITaxon:1
+NCBITaxon:10047
+NCBITaxon:10088
+NCBITaxon:10090
+NCBITaxon:10114
+NCBITaxon:10116
+NCBITaxon:10135
+NCBITaxon:10205
+NCBITaxon:10219
+NCBITaxon:10220
+NCBITaxon:110815
+NCBITaxon:117565
+NCBITaxon:117569
+NCBITaxon:117570
+NCBITaxon:117893
+NCBITaxon:118040
+NCBITaxon:118072
+NCBITaxon:119203
+NCBITaxon:119825
+NCBITaxon:120557
+NCBITaxon:1206795
+NCBITaxon:1294634
+NCBITaxon:147099
+NCBITaxon:1476529
+NCBITaxon:181400
+NCBITaxon:186634
+NCBITaxon:189497
+NCBITaxon:207598
+NCBITaxon:261739
+NCBITaxon:264759
+NCBITaxon:270656
+NCBITaxon:27686
+NCBITaxon:28376
+NCBITaxon:29132
+NCBITaxon:30458
+NCBITaxon:30533
+NCBITaxon:30559
+NCBITaxon:30649
+NCBITaxon:31033
+NCBITaxon:311790
+NCBITaxon:314145
+NCBITaxon:314146
+NCBITaxon:314147
+NCBITaxon:314293
+NCBITaxon:314295
+NCBITaxon:32443
+NCBITaxon:32455
+NCBITaxon:32519
+NCBITaxon:32523
+NCBITaxon:32524
+NCBITaxon:32525
+NCBITaxon:32561
+NCBITaxon:32577
+NCBITaxon:33090
+NCBITaxon:33208
+NCBITaxon:33213
+NCBITaxon:33317
+NCBITaxon:33392
+NCBITaxon:33511
+NCBITaxon:33554
+NCBITaxon:337687
+NCBITaxon:338153
+NCBITaxon:35033
+NCBITaxon:35069
+NCBITaxon:35497
+NCBITaxon:37572
+NCBITaxon:376911
+NCBITaxon:376913
+NCBITaxon:377294
+NCBITaxon:37887
+NCBITaxon:379584
+NCBITaxon:38624
+NCBITaxon:38625
+NCBITaxon:39107
+NCBITaxon:399537
+NCBITaxon:40151
+NCBITaxon:40674
+NCBITaxon:41324
+NCBITaxon:41426
+NCBITaxon:41712
+NCBITaxon:43120
+NCBITaxon:43453
+NCBITaxon:436486
+NCBITaxon:436491
+NCBITaxon:436495
+NCBITaxon:4751
+NCBITaxon:50557
+NCBITaxon:51337
+NCBITaxon:569425
+NCBITaxon:57294
+NCBITaxon:6040
+NCBITaxon:6072
+NCBITaxon:6073
+NCBITaxon:6157
+NCBITaxon:6178
+NCBITaxon:6199
+NCBITaxon:6211
+NCBITaxon:6217
+NCBITaxon:6231
+NCBITaxon:6239
+NCBITaxon:63221
+NCBITaxon:6340
+NCBITaxon:6425
+NCBITaxon:6447
+NCBITaxon:6448
+NCBITaxon:6544
+NCBITaxon:65997
+NCBITaxon:6656
+NCBITaxon:6657
+NCBITaxon:6681
+NCBITaxon:6830
+NCBITaxon:6843
+NCBITaxon:70846
+NCBITaxon:7088
+NCBITaxon:7227
+NCBITaxon:7434
+NCBITaxon:7568
+NCBITaxon:7586
+NCBITaxon:7588
+NCBITaxon:7618
+NCBITaxon:7625
+NCBITaxon:7711
+NCBITaxon:7712
+NCBITaxon:7713
+NCBITaxon:7718
+NCBITaxon:7735
+NCBITaxon:7737
+NCBITaxon:7742
+NCBITaxon:7745
+NCBITaxon:7746
+NCBITaxon:7761
+NCBITaxon:7762
+NCBITaxon:7764
+NCBITaxon:7769
+NCBITaxon:7776
+NCBITaxon:7777
+NCBITaxon:7778
+NCBITaxon:7858
+NCBITaxon:7863
+NCBITaxon:7864
+NCBITaxon:7878
+NCBITaxon:7896
+NCBITaxon:7898
+NCBITaxon:7900
+NCBITaxon:7901
+NCBITaxon:7911
+NCBITaxon:7915
+NCBITaxon:7922
+NCBITaxon:7954
+NCBITaxon:7955
+NCBITaxon:79805
+NCBITaxon:8022
+NCBITaxon:8065
+NCBITaxon:8075
+NCBITaxon:80999
+NCBITaxon:8287
+NCBITaxon:8289
+NCBITaxon:8292
+NCBITaxon:8293
+NCBITaxon:8295
+NCBITaxon:8296
+NCBITaxon:8314
+NCBITaxon:8342
+NCBITaxon:8353
+NCBITaxon:8355
+NCBITaxon:8457
+NCBITaxon:8459
+NCBITaxon:8464
+NCBITaxon:8492
+NCBITaxon:8493
+NCBITaxon:8499
+NCBITaxon:8504
+NCBITaxon:8507
+NCBITaxon:8508
+NCBITaxon:8509
+NCBITaxon:8561
+NCBITaxon:8570
+NCBITaxon:8578
+NCBITaxon:8782
+NCBITaxon:8801
+NCBITaxon:8827
+NCBITaxon:88770
+NCBITaxon:8930
+NCBITaxon:89593
+NCBITaxon:9030
+NCBITaxon:9031
+NCBITaxon:9126
+NCBITaxon:91561
+NCBITaxon:9254
+NCBITaxon:9255
+NCBITaxon:9257
+NCBITaxon:9258
+NCBITaxon:9259
+NCBITaxon:9261
+NCBITaxon:9263
+NCBITaxon:9265
+NCBITaxon:9305
+NCBITaxon:9321
+NCBITaxon:9322
+NCBITaxon:9338
+NCBITaxon:9347
+NCBITaxon:9348
+NCBITaxon:9359
+NCBITaxon:9362
+NCBITaxon:9363
+NCBITaxon:9365
+NCBITaxon:9369
+NCBITaxon:9373
+NCBITaxon:9376
+NCBITaxon:9397
+NCBITaxon:9443
+NCBITaxon:9475
+NCBITaxon:9499
NCBITaxon:9539
+NCBITaxon:9590
+NCBITaxon:9596
+NCBITaxon:9599
+NCBITaxon:9604
+NCBITaxon:9605
+NCBITaxon:9606
+NCBITaxon:9608
+NCBITaxon:9611
+NCBITaxon:9632
NCBITaxon:9669
-NCBITaxon:4751
+NCBITaxon:9673
+NCBITaxon:9681
+NCBITaxon:9705
+NCBITaxon:9709
+NCBITaxon:9721
+NCBITaxon:9753
+NCBITaxon:9761
+NCBITaxon:9765
+NCBITaxon:9775
+NCBITaxon:9779
+NCBITaxon:9780
+NCBITaxon:9787
+NCBITaxon:9788
+NCBITaxon:9816
+NCBITaxon:9822
+NCBITaxon:9823
+NCBITaxon:9835
+NCBITaxon:9836
+NCBITaxon:9845
+NCBITaxon:9850
+NCBITaxon:9892
+NCBITaxon:9895
+NCBITaxon:9935
+NCBITaxon:9963
+NCBITaxon:9972
+NCBITaxon:9975
+NCBITaxon:9989
diff --git a/src/ontology/imports/ncbitaxondisjoints_terms.txt b/src/ontology/imports/ncbitaxondisjoints_terms.txt
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/src/ontology/imports/ncbitaxondisjoints_terms.txt
@@ -0,0 +1 @@
+
diff --git a/src/ontology/uberon-edit.obo b/src/ontology/uberon-edit.obo
index 2e96a9990a..f64257f5f3 100644
--- a/src/ontology/uberon-edit.obo
+++ b/src/ontology/uberon-edit.obo
@@ -935,7 +935,6 @@ relationship: never_in_taxon NCBITaxon:314147 {source="bgee"} ! Glires
relationship: never_in_taxon NCBITaxon:6231 {source="bgee"} ! Nematoda
relationship: never_in_taxon NCBITaxon:7878 {source="bgee"} ! Dipnomorpha
relationship: never_in_taxon NCBITaxon:8292 {notes="we do not consider flying frogs to have wings", source="bgee"} ! Amphibia
-relationship: never_in_taxon NCBITaxon:8457 {source="bgee"} ! Sauropsida
relationship: never_in_taxon NCBITaxon:91561 {source="bgee"} ! Artiodactyla
relationship: never_in_taxon NCBITaxon:9254 {source="bgee"} ! Prototheria
relationship: never_in_taxon NCBITaxon:9263 {source="bgee"} ! Metatheria
@@ -3661,8 +3660,6 @@ intersection_of: UBERON:0004921 ! subdivision of digestive tract
intersection_of: proximalmost_part_of UBERON:0001555 ! digestive tract
relationship: develops_from UBERON:0035804 ! future mouth
relationship: only_in_taxon NCBITaxon:6072 ! Eumetazoa
-relationship: overlaps UBERON:0001004 {notes="exceptions in some taxa"} ! respiratory system
-relationship: part_of UBERON:0000033 ! head
property_value: depiction "http://upload.wikimedia.org/wikipedia/commons/0/06/Mouth_illustration-Otis_Archives.jpg" xsd:anyURI
property_value: development_notes "some AOs place this as developing from the stomodeum but we weaken this to developmental contribution, as the mouth includes non-ectodermal derivatives" xsd:string
property_value: external_definition "Cavity in which food is initially ingested and generally contains teeth, tongue and glands.[AAO]" xsd:string {date_retrieved="2012-06-20", external_class="AAO:0010355", ontology="AAO", source="AAO:BJB"}
@@ -7454,7 +7451,7 @@ union_of: UBERON:0000486 ! multilaminar epithelium
union_of: UBERON:0000490 ! unilaminar epithelium
relationship: has_part GO:0005911 ! cell-cell junction
relationship: has_part UBERON:0005769 ! basement membrane of epithelium
-relationship: only_in_taxon NCBITaxon:6072 ! Eumetazoa
+relationship: only_in_taxon NCBITaxon:33208 {source="http://palaeos.com/metazoa/porifera/homoscleromorpha.html"} ! Metazoa
property_value: depiction "https://upload.wikimedia.org/wikipedia/commons/8/8f/Illu_epithelium.jpg" xsd:anyURI
property_value: has_relational_adjective "epithelial" xsd:string
property_value: homology_notes "The two basic types of metazoan tissue are epithelial and connective. The simplest metazoans, and developmental stages of many primitive invertebrates, consist solely of these two layers. Thus, epithelial and connective tissues may be the primary (original) tissues of metazoans, and both are important in the functional organization of animals.[well established][VHOG]" xsd:string {date_retrieved="2012-09-17", external_class="VHOG:0000387", ontology="VHOG", source="ISBN:978-0030259821 Ruppert EE, Fox RS, Barnes RD, Invertebrate zoology: a functional evolutionary approach (2003) p.59", source="http://bgee.unil.ch/"}
@@ -12322,7 +12319,6 @@ intersection_of: luminal_space_of UBERON:0002406 ! pericardial sac
relationship: develops_from UBERON:0003887 {source="Wikipedia"} ! intraembryonic coelom
relationship: location_of UBERON:0002409 ! pericardial fluid
relationship: part_of UBERON:0002406 {source="FMA"} ! pericardial sac
-relationship: present_in_taxon NCBITaxon:7718 {source="PMID:20959416"} ! Ciona
relationship: surrounded_by UBERON:0002357 ! serous pericardium
property_value: external_definition "Anatomical space in which the heart is located and is surrounded by the pericardium.[TAO]" xsd:string {date_retrieved="2012-08-14", external_class="TAO:0002220", ontology="TAO", source="ZFIN:curator"}
property_value: external_ontology_notes "check ZFA, should actually be thoracic cavity. Note that Hyman defines the cavity as the space between the heart and the sac (but defines the sac as parietal)" xsd:string {external_ontology="ZFA"}
@@ -36711,7 +36707,7 @@ xref: Wikipedia:Neocortex
is_a: UBERON:0002616 ! regional part of brain
relationship: contributes_to_morphology_of UBERON:0000956 ! cerebral cortex
relationship: mutually_spatially_disjoint_with UBERON:0002264 {source="ABA"} ! olfactory bulb
-relationship: only_in_taxon NCBITaxon:40674 {source="Wikipedia"} ! Mammalia
+relationship: only_in_taxon NCBITaxon:7742 {source="Wikipedia"} ! Vertebrata
relationship: part_of UBERON:0000956 ! cerebral cortex
property_value: depiction "http://upload.wikimedia.org/wikipedia/commons/7/77/Neocortex.jpg" xsd:anyURI
property_value: homology_notes "The 6-layer neocortex is well conserved in all extant mammals, but not present in birds or reptils" xsd:string {source="PMID:23027930"}
@@ -53061,7 +53057,7 @@ is_a: UBERON:0002368 {source="PMID:20959416"} ! endocrine gland
relationship: capable_of GO:0042701 ! progesterone secretion
relationship: develops_from UBERON:0001305 ! ovarian follicle
relationship: has_part CL:0000175 ! luteal cell
-relationship: only_in_taxon NCBITaxon:40674 {source="Wikipedia"} ! Mammalia
+relationship: only_in_taxon NCBITaxon:7742 ! Vertebrata
relationship: part_of UBERON:0000949 {source="MA"} ! endocrine system
relationship: part_of UBERON:0000992 {source="MA"} ! ovary
relationship: present_in_taxon NCBITaxon:7762 {source="PMID:20959416"} ! Myxinidae
@@ -54279,7 +54275,7 @@ relationship: contributes_to_morphology_of UBERON:0001944 ! pretectal region
relationship: mutually_spatially_disjoint_with UBERON:0002711 {source="ABA"} ! nucleus of posterior commissure
relationship: mutually_spatially_disjoint_with UBERON:0002996 {source="ABA"} ! nucleus of optic tract
relationship: mutually_spatially_disjoint_with UBERON:0006848 {source="ABA"} ! posterior pretectal nucleus
-relationship: only_in_taxon NCBITaxon:32524 ! Amniota
+relationship: only_in_taxon NCBITaxon:32523 ! Tetrapoda
relationship: part_of UBERON:0001944 ! pretectal region
relationship: present_in_taxon NCBITaxon:8293 {source="ISBN:0471888893"} ! Caudata
relationship: present_in_taxon NCBITaxon:9347 {source="ISBN:0471888893"} ! Eutheria
@@ -67139,7 +67135,7 @@ xref: XAO:0003169
xref: ZFA:0000863
is_a: UBERON:0011159 ! primary subdivision of cranial skeletal system
relationship: never_in_taxon NCBITaxon:7777 {source="ISBN:0073040584"} ! Chondrichthyes
-relationship: only_in_taxon NCBITaxon:7776 ! Gnathostomata
+relationship: only_in_taxon NCBITaxon:7742 ! Vertebrata
relationship: part_of UBERON:0010323 {source="ZFA"} ! cranial skeletal system
relationship: part_of UBERON:0010364 ! dermal skeleton
property_value: editor_note "wikipedia treats skull roof and dermatocranium as synonymous, but some sources treat the roof as being part of the dermatocranium - see UBERONREF:0000007" xsd:string
@@ -67609,7 +67605,7 @@ xref: VHOG:0000334
xref: Wikipedia:Cranium_(anatomy)
is_a: UBERON:0000075 {source="FMA-inferred"} ! subdivision of skeletal system
relationship: mutually_spatially_disjoint_with UBERON:0003278 ! skeleton of lower jaw
-relationship: part_of UBERON:0003129 ! skull
+relationship: present_in_taxon NCBITaxon:7762 ! Myxinidae
property_value: external_ontology_notes "the inclusion of the FMA class here is probably not quite correct, as this class includes as parts sutures, whereas this is not part of the bones of the cranium" xsd:string {external_ontology="FMA"}
property_value: has_relational_adjective "cranial" xsd:string
property_value: terminology_notes "The term cranium can be ambiguous, in that it can refer to the neurocranium, or the neurocranium and the Facial skeleton" xsd:string {source="WP"}
@@ -67641,7 +67637,6 @@ relationship: has_part UBERON:0003278 ! skeleton of lower jaw
relationship: only_in_taxon NCBITaxon:89593 ! Craniata
relationship: part_of UBERON:0000033 ! head
relationship: part_of UBERON:0010323 ! cranial skeletal system
-relationship: present_in_taxon NCBITaxon:7762 ! Myxinidae
property_value: external_ontology_notes "in FMA the skull is divided into orbit, neurocranium (8 parts), viscerocranium (26 parts). Here we have a separate overlapping division into cranium and mandible." xsd:string {external_ontology="FMA"}
property_value: external_ontology_notes "in many ontologies, the structure called the cranium is inclusive of the mandible/lower jaw skeleton" xsd:string
property_value: terminology_notes "A skull that is missing a mandible is only a cranium; this is the source of a very commonly made error in terminology. Those animals having skulls are called craniates" xsd:string {source="WP"}
@@ -67666,7 +67661,6 @@ xref: TADS:0000281
xref: Wikipedia:Arthropod_leg
is_a: UBERON:0000475 ! organism subdivision
relationship: only_in_taxon NCBITaxon:6656 ! Arthropoda
-relationship: part_of UBERON:0005895 ! insect leg
property_value: editor_note "this term should be ceded to the arthropod anatomy ontology." xsd:string {source="3"}
property_value: taxon_notes "homology of leg segments between groups are difficult to prove and are the source of much argument. Some authors posit up to eleven segments per leg for the most recent common ancestor of extant arthropods, but modern arthropods have eight or fewer." xsd:string
@@ -76341,7 +76335,7 @@ is_a: UBERON:0009198 {source="GO"} ! craniofacial suture
intersection_of: UBERON:0002209 ! fibrous joint
intersection_of: part_of UBERON:0003128 ! cranium
relationship: contributes_to_morphology_of UBERON:0003128 ! cranium
-relationship: developmentally_induced_by UBERON:0002363 {source="PMID:16496288"} ! dura mater
+relationship: developmentally_induced_by UBERON:0002363 {gci_relation="part_of", gci_filler="NCBITaxon:40674", source="PMID:16496288"} ! dura mater
relationship: fma_set_term FMA:71385
[Term]
@@ -101010,7 +101004,6 @@ relationship: develops_from UBERON:0004068 {source="Wikipedia"} ! medial nasal p
relationship: has_quality PATO:0000588 {gci_relation="part_of", gci_filler="NCBITaxon:9606"} ! vestigial
relationship: only_in_taxon NCBITaxon:40674 ! Mammalia
relationship: part_of UBERON:0001834 {source="EMAPA"} ! upper lip
-relationship: part_of UBERON:0011256 ! rhinarium
property_value: seeAlso "https://github.com/obophenotype/uberon/pull/2691" xsd:string
property_value: taxon_notes "vestigial in humans. In humans, the philtrum is formed where the nasomedial and maxillary processes meet during embryonic development (colloquially known as Hulse lines). When these processes fail to fuse fully in humans, a cleft lip (sometimes called a 'hare lip') can result. A flattened or smooth philtrum can be a symptom of fetal alcohol syndrome or Prader-Willi syndrome" xsd:string
@@ -111691,7 +111684,6 @@ subset: efo_slim
synonym: "pll" EXACT [ZFA:0000944]
xref: AAO:0011024
xref: EFO:0003595
-xref: HBA:4413
xref: TAO:0000944
xref: XAO:0000465
xref: ZFA:0000944
@@ -116664,7 +116656,6 @@ intersection_of: UBERON:0010912 ! subdivision of skeleton
intersection_of: skeleton_of UBERON:0000004 ! nose
relationship: part_of UBERON:0000004 {source="FMA"} ! nose
relationship: part_of UBERON:0003113 {notes="facial series", source="Kardong-abduced"} ! dermatocranium
-relationship: part_of UBERON:0011156 ! facial skeleton
[Term]
id: UBERON:0006815
@@ -137546,7 +137537,7 @@ name: choroidal guanine tapetum
def: "A choroid tapetum lucidum that is made of a palisade of cells containing stacks of flat hexagonal crystals of guanine." [https://orcid.org/0000-0002-6601-2165, PMID:14738502, Wikipedia:Tapetum_lucidum#Classification]
xref: Wikipedia:Tapetum_lucidum#Classification
is_a: UBERON:0010244 ! choroid tapetum lucidum
-relationship: only_in_taxon NCBITaxon:7778 ! Elasmobranchii
+relationship: only_in_taxon NCBITaxon:7777 {source="doi:10.1017/S0025315400024760"} ! Chondrichthyes
relationship: present_in_taxon NCBITaxon:7778 ! Elasmobranchii
relationship: present_in_taxon NCBITaxon:7864 ! Chimaeriformes
property_value: taxon_notes "A choroidal tapetum of reflecting cells lying immediately outside the choriocapillaris is formed in a few primitive teleosts." xsd:string {source="PMID:14738502", taxon="NCBITaxon:32443"}
@@ -139028,7 +139019,6 @@ xref: SCTID:415639001
xref: Wikipedia:Pterygoid_bone
is_a: UBERON:0011164 {source="MA"} ! neurocranium bone
relationship: contributes_to_morphology_of UBERON:0004649 ! sphenoid bone pterygoid process
-relationship: part_of UBERON:0003108 {source="AAO"} ! suspensorium
relationship: part_of UBERON:0004649 {source="MA"} ! sphenoid bone pterygoid process
relationship: part_of UBERON:0012072 {source="ISBN:0073040584", source="Paleos"} ! palatal part of dermatocranium
property_value: external_definition "In tetrapods, the pterygoid is a complex, but relatively stable, paired palatal bone with a number of parts. For the following discussion, it may be best to refer to the images of tetrapod palates at, for example Ornithosuchus, Therapsida, or Palatines. In many tetrapods, it is the largest palatal bone and serves as the main structural support. Most typically, the pterygoids meet extensively on the mid-line of the palate and jointly send a process, the palatal ramus, anteriorly, which may cover the parasphenoid more or less completely. Sometimes this term is used to include the main body of the pterygoid as well. More variably, there are one or two anterolateral processes which go by various names, such as ectopterygoid ramus. In many amniotes, the pterygoid develops a strong transverse process or transverse flange which forms a bar running laterally across the palate. The pterygoid also articulates with (where present) the dorsoventral supports for the palate: the epipterygoid (dorsal) and the basipterygoid process of the braincase. Finally, the pterygoid sends a long, robust quadrate ramus with complex curvature down (posteroventrally) to grasp the quadrate and support the jaw articulation. Basally, in fishes, the terminology tends to be a little different. Refer to the image of the Frasnian actinistian Diplocercides. The pterygoid bone of tetrapods is, roughly speaking, derived from the middle, entopterygoid (see also entry at entopterygoid for alternative definitions) portion of the palatoquadrate complex. The entopterygoid is not actually a part of the palatoquadrate. It is a dermal bone which has replaced the middle section of the primitively continuous endochondral bone of the palatoquadrate, the original upper jaw. In tetrapods, the pterygoid advances further, and also replaces the central part of the posterior, pterygoquadrate unit. This becomes the quadrate ramus. The upper part of this unit, the portion involved in the dorsal and basipterygoid articulations between jaw and braincase, is referred to as the metapterygoid. In tetrapods, most of this region is incorporated into the pterygoid as well, with the exception of the ascending process of the palatoquadrate, which becomes the epipterygoid. Since the anterior braincase articulation is lost in tetrapods, the only remaining sections of the palatoquadrate are the epipterygoid and the quadrate (or, in mammals, the incus). Everything else is either lost or is replaced by the pterygoid[Palaeos]" xsd:string {source="http://palaeos.com/vertebrates/glossary/glossaryPte.html"}
@@ -142296,7 +142286,6 @@ xref: VHOG:0001143
xref: VSAO:0000184
is_a: UBERON:0004765 {source="VSAO", source="https://github.com/obophenotype/uberon/issues/82"} ! skeletal element
relationship: develops_from UBERON:0003089 {source="cjm"} ! sclerotome
-relationship: part_of UBERON:0001130 {source="VSAO"} ! vertebral column
property_value: curator_notes "we include a distinct subclass for bony vertebra" xsd:string
property_value: has_relational_adjective "vertebral" xsd:string
property_value: homology_notes "In contrast to lampreys and jawed vertebrates, hagfishes were thought to lack vertebrae. Now, long overlooked vertebral rudiments have been analysed in hagfish, suggesting that vertebrae existed in the last common ancestor of all vertebrates.[well established][VHOG]" xsd:string {date_retrieved="2012-09-17", external_class="VHOG:0001143", ontology="VHOG", source="DOI:10.1016/j.cub.2011.07.014 Janvier P, Comparative anatomy: all vertebrates do have vertebrae. Current Biology (2011)", source="http://bgee.unil.ch/"}
@@ -143858,7 +143847,6 @@ def: "Subdivision of the skeletal system which consists of the axial skeleton pl
xref: FMA:7483
is_a: UBERON:0000075 {source="FMA"} ! subdivision of skeletal system
relationship: has_part UBERON:0000982 ! skeletal joint
-relationship: has_part UBERON:0005944 ! axial skeleton plus cranial skeleton
relationship: only_in_taxon NCBITaxon:7711 ! Chordata
property_value: seeAlso "http://purl.obolibrary.org/obo/uberon/docs/The-axial-skeleton" xsd:anyURI
@@ -187793,7 +187781,6 @@ name: anatomical surface region
def: "Material anatomical entity that forms the outermost boundary of an anatomical structure." [https://github.com/obophenotype/uberon/issues/1324]
subset: common_anatomy
xref: AAO:0010270
-xref: AEO:0000154
xref: ZFA:0005594
is_a: UBERON:0000465 ! material anatomical entity
relationship: bounding_layer_of UBERON:0000061 ! anatomical structure
diff --git a/src/ontology/uberon-odk.yaml b/src/ontology/uberon-odk.yaml
index 2b37c24409..335c451189 100644
--- a/src/ontology/uberon-odk.yaml
+++ b/src/ontology/uberon-odk.yaml
@@ -64,6 +64,8 @@ import_group:
- id: bfo
- id: ncbitaxon
mirror_from: http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim.owl
+ - id: ncbitaxondisjoints
+ mirror_from: http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim-disjoint-over-in-taxon.owl
- id: nbo
use_base: TRUE
- id: orcidio
diff --git a/src/ontology/uberon.Makefile b/src/ontology/uberon.Makefile
index e311be5a8f..24cfc7b863 100644
--- a/src/ontology/uberon.Makefile
+++ b/src/ontology/uberon.Makefile
@@ -109,9 +109,10 @@ quick-qc: $(REPORTDIR)/uberon-edit-obscheck.txt
# ----------------------------------------
# BUILDING UBERON ITSELF
# ----------------------------------------
+
# Step 1: Preprocessing. We Merge the edit file file with imports,
-# disjointness axioms, and list of contributors, then expand macros.
-# FIXME: Need explanation for not expanding RO:0002175 specifically.
+# disjointness axioms, and list of contributors, then expand macros
+# (except RO:0002175, which only needs to be expanded for QC purposes).
$(OWLSRC): $(SRC) $(COMPONENTSDIR)/disjoint_union_over.ofn $(REPORTDIR)/$(SRC)-gocheck $(REPORTDIR)/$(SRC)-iconv
@echo "STRONG WARNING: issues/contributor.owl needs to be manually updated."
$(ROBOT) merge -i $< \
@@ -417,7 +418,7 @@ $(TMPDIR)/uberon-taxon-constraints.obo: $(SRC)
cat $@.tmp $(COMPONENTSDIR)/taxon_relations.obo > $@
$(TMPDIR)/uberon-taxon-constraints.owl: $(TMPDIR)/uberon-taxon-constraints.obo
- $(OWLTOOLS) $< --expand-macros -o $@
+ $(ROBOT) expand --input $< -o $@
# %-xf: Product without "non-subclass cross-references"?
@@ -636,18 +637,41 @@ $(TMPDIR)/external-disjoints.owl: components/external-disjoints.obo
$(ROBOT) convert -i $< -f owl -o $@
.PRECIOUS: $(TMPDIR)/external-disjoints.owl
+# All the checks below need the taxslim-disjoint-over-in-taxon.owl,
+# which should have been downloaded into mirror/ncbitaxondisjoints.owl
+# by the standard ODK import pipeline. So ideally, all the checks below
+# should just have to depend on mirror/ncbitaxondisjoints.owl. But the
+# QC checks are run under MIR=false IMP=false, so while the rule would
+# be invoked by Make it would not result in the mirror being downloaded
+# if it is not already available.
+# So instead, we make the checks depend on another file, and here we
+# 1. force the download of the mirror if it is not already there;
+# 2. create a link to that mirror.
+$(TMPDIR)/taxslim-disjoint-over-in-taxon.owl:
+ if [ ! -f $(MIRRORDIR)/ncbitaxondisjoints.owl ]; then \
+ $(MAKE) $(MIRRORDIR)/ncbitaxondisjoints.owl MIR=true IMP=true ; \
+ fi && \
+ ln -f -s ../$(MIRRORDIR)/ncbitaxondisjoints.owl $@
+
# We create a merged ontology consisting of
# (1) Uberon itself;
# (2) the external-disjoints component;
-# (3) all the bridges to Uberon (except the EMAP bridge, which should
-# probably be removed entirely from the repo anyway).
+# (3) the taxslim including inter-taxon disjointness axioms;
+# (4) all the bridges to Uberon (except the EMAP bridge, which should
+# probably be removed entirely from the repo anyway);
+# and we expand RO:0002175 (which was left unexpanded at the
+# preprocessing step, as it is only required for this check).
# This can be used to reveal both internal inconsistencies within
# Uberon, and the improper linking of a species AO class to an Uberon
# class with a taxon constraints.
ALL_UBERON_BRIDGES=$(shell ls $(BRIDGEDIR)/uberon-bridge-to-*.owl | grep -v emap.owl)
-$(TMPDIR)/uberon-edit-plus-tax-equivs.owl: $(OWLSRC) $(TMPDIR)/external-disjoints.owl $(TMPDIR)/bridges
+$(TMPDIR)/uberon-edit-plus-tax-equivs.owl: $(OWLSRC) $(TMPDIR)/external-disjoints.owl \
+ $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \
+ $(TMPDIR)/bridges
$(ROBOT) merge -i $< -i $(TMPDIR)/external-disjoints.owl \
+ -i $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \
$(foreach bridge, $(ALL_UBERON_BRIDGES), -i $(bridge)) \
+ expand \
convert -f ofn -o $@
.PRECIOUS: $(TMPDIR)/uberon-edit-plus-tax-equivs.owl
@@ -671,8 +695,12 @@ extra-full-bridge-checks: $(foreach ao, $(EXTRA_FULL_CHECK_AO_LIST), $(REPORTDIR
# A quick bridge check uses only uberon plus taxon constraints plus
# bridging axioms, *not* the axioms in the source ontology itself.
-$(REPORTDIR)/quick-bridge-check-%.txt: uberon.owl $(TMPDIR)/external-disjoints.owl $(TMPDIR)/bridges
+$(REPORTDIR)/quick-bridge-check-%.txt: uberon.owl \
+ $(TMPDIR)/external-disjoints.owl \
+ $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \
+ $(TMPDIR)/bridges
$(ROBOT) merge -i $< -i $(TMPDIR)/external-disjoints.owl \
+ -i $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \
-i $(BRIDGEDIR)/uberon-bridge-to-$*.owl \
reason -r ELK > $@
@@ -682,8 +710,13 @@ $(REPORTDIR)/quick-bridge-check-%.txt: uberon.owl $(TMPDIR)/external-disjoints.o
# For this check, we separate the production of the merged ontology
# from the production of the report.
# 1. The merge
-$(REPORTDIR)/bridge-check-%.owl: uberon.owl $(TMPDIR)/external-disjoints.owl $(TMPDIR)/bridges $(IMPORTDIR)/local-%.owl
+$(REPORTDIR)/bridge-check-%.owl: uberon.owl \
+ $(TMPDIR)/external-disjoints.owl \
+ $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \
+ $(TMPDIR)/bridges \
+ $(IMPORTDIR)/local-%.owl
$(ROBOT) merge -i $< -i $(TMPDIR)/external-disjoints.owl \
+ -i $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \
-i $(BRIDGEDIR)/uberon-bridge-to-$*.owl \
-i $(IMPORTDIR)/local-$*.owl \
convert -f ofn -o $@
@@ -1295,8 +1328,10 @@ HRA_SUBSET_URL="https://raw.githubusercontent.com/hubmapconsortium/ccf-validatio
$(TMPDIR)/hra_subset.owl:
wget $(HRA_SUBSET_URL) -O $@
+ifeq ($(strip $(MIR)),true)
$(COMPONENTSDIR)/hra_subset.owl: $(TMPDIR)/hra_subset.owl
$(ROBOT) merge -i $< annotate --ontology-iri $(ONTBASE)/$@ --output $@
+endif
3D_IMAGES_COMP_URL="https://raw.githubusercontent.com/hubmapconsortium/ccf-validation-tools/master/owl/hra_uberon_3d_images.owl"
$(TMPDIR)/hra_depiction_3d_images.owl: