From 395b88d3d2251323df566049cc8a1a8caaf89b74 Mon Sep 17 00:00:00 2001 From: William Hogan Date: Fri, 13 Mar 2026 17:01:09 -0500 Subject: [PATCH 1/3] added BCIO import, included it's human behavior class, and reorganized the behavior tree, including human travel. Fixes #199 --- .github/workflows/qc.yml | 2 +- docs/odk-workflows/RepositoryFileStructure.md | 1 + src/ontology/Makefile | 21 ++- src/ontology/apollo_sv-edit.owl | 142 +++++++++++++++--- src/ontology/apollo_sv-odk.yaml | 5 + src/ontology/apollo_sv.Makefile | 16 +- src/ontology/catalog-v001.xml | 1 + src/ontology/imports/bcio_import.owl | 72 +++++++++ src/ontology/imports/bcio_terms.txt | 2 + src/ontology/imports/external_import.owl | 1 + src/ontology/imports/geo_import.owl | 4 +- src/ontology/imports/omrse_import.owl | 45 +++--- src/templates/external_import.tsv | 2 +- 13 files changed, 266 insertions(+), 48 deletions(-) create mode 100644 src/ontology/imports/bcio_import.owl create mode 100644 src/ontology/imports/bcio_terms.txt diff --git a/.github/workflows/qc.yml b/.github/workflows/qc.yml index 6ad5c84..bcd67b0 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.6 + container: obolibrary/odkfull:v1.6.1 # Steps represent a sequence of tasks that will be executed as part of the job steps: diff --git a/docs/odk-workflows/RepositoryFileStructure.md b/docs/odk-workflows/RepositoryFileStructure.md index 0e9c1c9..4966a2b 100644 --- a/docs/odk-workflows/RepositoryFileStructure.md +++ b/docs/odk-workflows/RepositoryFileStructure.md @@ -26,6 +26,7 @@ These are the current imports in APOLLO_SV | dron | http://purl.obolibrary.org/obo/dron.owl | filter | | ogms | http://purl.obolibrary.org/obo/ogms.owl | filter | | uberon | http://purl.obolibrary.org/obo/uberon.owl | filter | +| bcio | http://humanbehaviourchange.org/ontology/bcio.owl | custom | ## Components Components, in contrast to imports, are considered full members of the ontology. This means that any axiom in a component is also included in the ontology base - which means it is considered _native_ to the ontology. While this sounds complicated, consider this: conceptually, no component should be part of more than one ontology. If that seems to be the case, we are most likely talking about an import. Components are often not needed for ontologies, but there are some use cases: diff --git a/src/ontology/Makefile b/src/ontology/Makefile index 4d376e9..8d7a1fd 100644 --- a/src/ontology/Makefile +++ b/src/ontology/Makefile @@ -1,7 +1,7 @@ # ---------------------------------------- # Makefile for apollo_sv # Generated using ontology-development-kit -# ODK Version: v1.6 +# ODK Version: v1.6.1 # ---------------------------------------- # IMPORTANT: DO NOT EDIT THIS FILE. To override default make goals, use apollo_sv.Makefile instead @@ -16,7 +16,7 @@ # 3. [Update repo to latest ODK](update_repo) # Fingerprint of the configuration file when this Makefile was last generated -CONFIG_HASH= 0625a31aff99dcab0d48bca6e3dddd2614c7f65055668a9ae139332d9e4f5f5f +CONFIG_HASH= 6ee100eeff7bea98a4fcb53394f21f836ae9386cecca6a38ef47b0c9c6a71fd0 # ---------------------------------------- @@ -54,7 +54,7 @@ REPORT_PROFILE_OPTS = OBO_FORMAT_OPTIONS = --clean-obo "strict drop-untranslatable-axioms" SPARQL_VALIDATION_CHECKS = owldef-self-reference iri-range SPARQL_EXPORTS = basic-report -ODK_VERSION_MAKEFILE = v1.6 +ODK_VERSION_MAKEFILE = v1.6.1 RELAX_OPTIONS = --include-subclass-of true REDUCE_OPTIONS = --include-subproperties true @@ -193,7 +193,7 @@ all_main: $(MAIN_FILES) # ---------------------------------------- -IMPORTS = ro geo ido mf go iao omrse dron ogms uberon +IMPORTS = ro geo ido mf go iao omrse dron ogms uberon bcio IMPORT_ROOTS = $(patsubst %, $(IMPORTDIR)/%_import, $(IMPORTS)) IMPORT_OWL_FILES = $(foreach n,$(IMPORT_ROOTS), $(n).owl) @@ -543,6 +543,12 @@ $(IMPORTDIR)/omrse_import.owl: $(MIRRORDIR)/omrse.owl $(IMPORTDIR)/omrse_terms.t repair --merge-axiom-annotations true \ $(ANNOTATE_CONVERT_FILE) +## Module for ontology: bcio (custom) +$(IMPORTDIR)/bcio_import.owl: $(MIRRORDIR)/bcio.owl + @echo "ERROR: You have configured bcio as a custom module;" + @echo " This rule needs to be overwritten in apollo_sv.Makefile!" + @false + endif # IMP=true .PHONY: refresh-imports @@ -655,6 +661,13 @@ mirror-uberon: | $(TMPDIR) $(ROBOT) remove -i $(TMPDIR)/uberon-download.owl --base-iri http://purl.obolibrary.org/obo/UBERON_ --axioms external --preserve-structure false --trim false -o $(TMPDIR)/$@.owl +## ONTOLOGY: bcio +.PHONY: mirror-bcio +.PRECIOUS: $(MIRRORDIR)/bcio.owl +mirror-bcio: | $(TMPDIR) + $(ROBOT) convert -I http://humanbehaviourchange.org/ontology/bcio.owl -o $(TMPDIR)/$@.owl + + $(MIRRORDIR)/%.owl: mirror-% | $(MIRRORDIR) if [ -f $(TMPDIR)/mirror-$*.owl ]; then if cmp -s $(TMPDIR)/mirror-$*.owl $@ ; then echo "Mirror identical, ignoring."; else echo "Mirrors different, updating." &&\ cp $(TMPDIR)/mirror-$*.owl $@; fi; fi diff --git a/src/ontology/apollo_sv-edit.owl b/src/ontology/apollo_sv-edit.owl index 7b503c4..02d6df4 100644 --- a/src/ontology/apollo_sv-edit.owl +++ b/src/ontology/apollo_sv-edit.owl @@ -25,6 +25,7 @@ Prefix(ace_lexicon:=) Ontology( +Import() Import() Import() Import() @@ -696,6 +697,7 @@ Declaration(Class(obo:APOLLO_SV_00000799)) Declaration(Class(obo:APOLLO_SV_00001008)) Declaration(Class(obo:APOLLO_SV_00002024)) Declaration(Class(obo:BFO_0000001)) +Declaration(Class(obo:BFO_0000002)) Declaration(Class(obo:BFO_0000003)) Declaration(Class(obo:BFO_0000004)) Declaration(Class(obo:BFO_0000006)) @@ -704,6 +706,7 @@ Declaration(Class(obo:BFO_0000015)) Declaration(Class(obo:BFO_0000016)) Declaration(Class(obo:BFO_0000017)) Declaration(Class(obo:BFO_0000019)) +Declaration(Class(obo:BFO_0000020)) Declaration(Class(obo:BFO_0000023)) Declaration(Class(obo:BFO_0000024)) Declaration(Class(obo:BFO_0000027)) @@ -711,6 +714,7 @@ Declaration(Class(obo:BFO_0000029)) Declaration(Class(obo:BFO_0000030)) Declaration(Class(obo:BFO_0000031)) Declaration(Class(obo:BFO_0000034)) +Declaration(Class(obo:BFO_0000035)) Declaration(Class(obo:BFO_0000038)) Declaration(Class(obo:BFO_0000040)) Declaration(Class(obo:BFO_0000144)) @@ -721,6 +725,7 @@ Declaration(Class(obo:DOID_12205)) Declaration(Class(obo:DOID_12206)) Declaration(Class(obo:DOID_3292)) Declaration(Class(obo:DOID_8469)) +Declaration(Class(obo:DRON_00000005)) Declaration(Class(obo:ENVO_00010483)) Declaration(Class(obo:ENVO_01000203)) Declaration(Class(obo:ENVO_01000266)) @@ -740,6 +745,43 @@ Declaration(Class(obo:FBcv_0000787)) Declaration(Class(obo:GEO_000000371)) Declaration(Class(obo:GEO_000000372)) Declaration(Class(obo:GEO_000000788)) +Declaration(Class(obo:GO_0007610)) +Declaration(Class(obo:GO_0008150)) +Declaration(Class(obo:GO_0019058)) +Declaration(Class(obo:GO_0019098)) +Declaration(Class(obo:GO_0019953)) +Declaration(Class(obo:GO_0019954)) +Declaration(Class(obo:GO_0044409)) +Declaration(Class(obo:GO_0044419)) +Declaration(Class(obo:GO_0048609)) +Declaration(Class(obo:GO_0051701)) +Declaration(Class(obo:IAO_0000001)) +Declaration(Class(obo:IAO_0000003)) +Declaration(Class(obo:IAO_0000005)) +Declaration(Class(obo:IAO_0000007)) +Declaration(Class(obo:IAO_0000010)) +Declaration(Class(obo:IAO_0000027)) +Declaration(Class(obo:IAO_0000029)) +Declaration(Class(obo:IAO_0000030)) +Declaration(Class(obo:IAO_0000032)) +Declaration(Class(obo:IAO_0000033)) +Declaration(Class(obo:IAO_0000038)) +Declaration(Class(obo:IAO_0000055)) +Declaration(Class(obo:IAO_0000064)) +Declaration(Class(obo:IAO_0000100)) +Declaration(Class(obo:IAO_0000104)) +Declaration(Class(obo:IAO_0000109)) +Declaration(Class(obo:IAO_0000300)) +Declaration(Class(obo:IAO_0000310)) +Declaration(Class(obo:IAO_0000408)) +Declaration(Class(obo:IAO_0000416)) +Declaration(Class(obo:IAO_0000572)) +Declaration(Class(obo:IAO_0000577)) +Declaration(Class(obo:IAO_0000584)) +Declaration(Class(obo:IAO_0000594)) +Declaration(Class(obo:IAO_0020000)) +Declaration(Class(obo:IAO_0020010)) +Declaration(Class(obo:MF_0000073)) Declaration(Class(obo:NBO_0000034)) Declaration(Class(obo:NCBITaxon_10090)) Declaration(Class(obo:NCBITaxon_10239)) @@ -1291,6 +1333,7 @@ Declaration(Class(obo:NCBITaxon_9963)) Declaration(Class(obo:OAE_0000055)) Declaration(Class(obo:OBI_0000011)) Declaration(Class(obo:OBI_0000047)) +Declaration(Class(obo:OBI_0000066)) Declaration(Class(obo:OBI_0000115)) Declaration(Class(obo:OBI_0000227)) Declaration(Class(obo:OBI_0000245)) @@ -1328,7 +1371,26 @@ Declaration(Class(obo:OBI_0500000)) Declaration(Class(obo:OBI_0500020)) Declaration(Class(obo:OBIws_0000050)) Declaration(Class(obo:OBIws_0000104)) +Declaration(Class(obo:OGMS_0000014)) +Declaration(Class(obo:OGMS_0000027)) +Declaration(Class(obo:OGMS_0000031)) +Declaration(Class(obo:OGMS_0000032)) +Declaration(Class(obo:OGMS_0000063)) +Declaration(Class(obo:OGMS_0000090)) +Declaration(Class(obo:OGMS_0000098)) +Declaration(Class(obo:OGMS_0000100)) +Declaration(Class(obo:OGMS_0000105)) Declaration(Class(obo:OMIABIS_0000019)) +Declaration(Class(obo:OMRSE_00000011)) +Declaration(Class(obo:OMRSE_00000023)) +Declaration(Class(obo:OMRSE_00000056)) +Declaration(Class(obo:OMRSE_00000057)) +Declaration(Class(obo:OMRSE_00000058)) +Declaration(Class(obo:OMRSE_00000059)) +Declaration(Class(obo:OMRSE_00000060)) +Declaration(Class(obo:OMRSE_00000062)) +Declaration(Class(obo:OMRSE_00000064)) +Declaration(Class(obo:OMRSE_00000065)) Declaration(Class(obo:PATO_0000040)) Declaration(Class(obo:PATO_0000047)) Declaration(Class(obo:PATO_0000051)) @@ -1356,6 +1418,12 @@ Declaration(Class(obo:STATO_0000252)) Declaration(Class(obo:STATO_0000258)) Declaration(Class(obo:STATO_0000321)) Declaration(Class(obo:STATO_0000398)) +Declaration(Class(obo:UBERON_0000061)) +Declaration(Class(obo:UBERON_0000071)) +Declaration(Class(obo:UBERON_0000105)) +Declaration(Class(obo:UBERON_0000479)) +Declaration(Class(obo:UBERON_0002405)) +Declaration(Class(obo:UBERON_0035943)) Declaration(Class(obo:UO_0000000)) Declaration(Class(obo:UO_0000003)) Declaration(Class(obo:UO_0000186)) @@ -1409,13 +1477,18 @@ Declaration(ObjectProperty(obo:BFO_0000177)) Declaration(ObjectProperty(obo:BFO_0000181)) Declaration(ObjectProperty(obo:BFO_0000184)) Declaration(ObjectProperty(obo:BFO_0000185)) +Declaration(ObjectProperty(obo:IAO_0000136)) +Declaration(ObjectProperty(obo:IAO_0000219)) Declaration(ObjectProperty(obo:OBI_0000293)) Declaration(ObjectProperty(obo:OBI_0000299)) Declaration(ObjectProperty(obo:OBI_0000308)) Declaration(ObjectProperty(obo:OBI_0000312)) Declaration(ObjectProperty(obo:OBI_0000417)) +Declaration(ObjectProperty(obo:OBI_0001938)) Declaration(ObjectProperty(obo:OMIABIS_0000008)) Declaration(ObjectProperty(obo:OMIABIS_0000048)) +Declaration(ObjectProperty(obo:OMRSE_00000070)) +Declaration(ObjectProperty(obo:OMRSE_00000071)) Declaration(ObjectProperty(obo:RO_0000052)) Declaration(ObjectProperty(obo:RO_0000053)) Declaration(ObjectProperty(obo:RO_0000056)) @@ -1435,7 +1508,10 @@ Declaration(ObjectProperty(obo:RO_0002222)) Declaration(ObjectProperty(obo:RO_0002224)) Declaration(ObjectProperty(obo:RO_0002229)) Declaration(ObjectProperty(obo:RO_0002230)) +Declaration(ObjectProperty(obo:RO_0002233)) +Declaration(ObjectProperty(obo:RO_0002234)) Declaration(ObjectProperty(obo:RO_0002325)) +Declaration(ObjectProperty(obo:RO_0002350)) Declaration(ObjectProperty(obo:RO_0002351)) Declaration(ObjectProperty(obo:RO_0002404)) Declaration(ObjectProperty(obo:RO_0002411)) @@ -1465,8 +1541,26 @@ Declaration(AnnotationProperty(obo:APOLLO_SV_00000523)) Declaration(AnnotationProperty(obo:BFO_0000179)) Declaration(AnnotationProperty(obo:BFO_0000180)) Declaration(AnnotationProperty(obo:ERO_0000480)) +Declaration(AnnotationProperty(obo:IAO_0000111)) +Declaration(AnnotationProperty(obo:IAO_0000112)) +Declaration(AnnotationProperty(obo:IAO_0000114)) +Declaration(AnnotationProperty(obo:IAO_0000115)) +Declaration(AnnotationProperty(obo:IAO_0000116)) +Declaration(AnnotationProperty(obo:IAO_0000117)) +Declaration(AnnotationProperty(obo:IAO_0000118)) +Declaration(AnnotationProperty(obo:IAO_0000119)) +Declaration(AnnotationProperty(obo:IAO_0000231)) +Declaration(AnnotationProperty(obo:IAO_0000232)) +Declaration(AnnotationProperty(obo:IAO_0000412)) +Declaration(AnnotationProperty(obo:IAO_0000424)) +Declaration(AnnotationProperty(obo:IAO_0000589)) +Declaration(AnnotationProperty(obo:IAO_0000600)) +Declaration(AnnotationProperty(obo:IAO_0000601)) +Declaration(AnnotationProperty(obo:IAO_0000602)) +Declaration(AnnotationProperty(obo:IAO_0100001)) Declaration(AnnotationProperty(obo:OBI_0001847)) Declaration(AnnotationProperty(obo:OBI_0001886)) +Declaration(AnnotationProperty(obo:RO_0001900)) Declaration(AnnotationProperty(obo:STATO_0000032)) Declaration(AnnotationProperty(obo:STATO_0000041)) Declaration(AnnotationProperty(obo:STATO_0000391)) @@ -1478,9 +1572,15 @@ Declaration(AnnotationProperty(obo:def)) Declaration(AnnotationProperty(obo:namespace)) Declaration(AnnotationProperty(apollo_sv:APOLLO_SV_0000040)) Declaration(AnnotationProperty(ncbitaxon:has_rank)) +Declaration(AnnotationProperty(dc:contributor)) Declaration(AnnotationProperty(dc:creator)) +Declaration(AnnotationProperty(dc:date)) Declaration(AnnotationProperty(dc:source)) +Declaration(AnnotationProperty(dc:type)) +Declaration(AnnotationProperty(terms:contributor)) +Declaration(AnnotationProperty(terms:description)) Declaration(AnnotationProperty(terms:license)) +Declaration(AnnotationProperty(terms:title)) Declaration(AnnotationProperty(doap:bug-database)) Declaration(AnnotationProperty(oboInOwl:created_by)) Declaration(AnnotationProperty(oboInOwl:creation_date)) @@ -1500,6 +1600,7 @@ Declaration(AnnotationProperty(www:RTS_00000001)) Declaration(AnnotationProperty(www:RTS_00000002)) Declaration(AnnotationProperty(rdfs:comment)) Declaration(AnnotationProperty(rdfs:label)) +Declaration(AnnotationProperty(foaf:page)) ############################ # Annotation Properties ############################ @@ -1639,19 +1740,19 @@ AnnotationAssertion(rdfs:label dc:type "dc:type") AnnotationAssertion(rdfs:label oboInOwl:hasAlternativeId "has_alternative_id") -# Annotation Property: oboInOwl:hasBroadSynonym (has broad synonym) +# Annotation Property: oboInOwl:hasBroadSynonym (has_broad_synonym) AnnotationAssertion(rdfs:label oboInOwl:hasBroadSynonym "has_broad_synonym") -# Annotation Property: oboInOwl:hasDbXref (database_cross_reference) +# Annotation Property: oboInOwl:hasDbXref (has cross-reference) AnnotationAssertion(rdfs:label oboInOwl:hasDbXref "database_cross_reference") -# Annotation Property: oboInOwl:hasExactSynonym (has_exact_synonym) +# Annotation Property: oboInOwl:hasExactSynonym (has exact synonym) AnnotationAssertion(rdfs:label oboInOwl:hasExactSynonym "has_exact_synonym") -# Annotation Property: oboInOwl:hasNarrowSynonym (has_narrow_synonym) +# Annotation Property: oboInOwl:hasNarrowSynonym (has narrow synonym) AnnotationAssertion(rdfs:label oboInOwl:hasNarrowSynonym "has_narrow_synonym") @@ -1659,7 +1760,7 @@ AnnotationAssertion(rdfs:label oboInOwl:hasNarrowSynonym "has_narrow_synonym") AnnotationAssertion(rdfs:label oboInOwl:hasOBONamespace "has_obo_namespace") -# Annotation Property: oboInOwl:hasRelatedSynonym (has related synonym) +# Annotation Property: oboInOwl:hasRelatedSynonym (has_related_synonym) AnnotationAssertion(rdfs:label oboInOwl:hasRelatedSynonym "has_related_synonym") @@ -1765,7 +1866,7 @@ AnnotationAssertion(rdfs:label obo:APOLLO_SV_00000543 "has basis in"@en) ObjectPropertyDomain(obo:APOLLO_SV_00000543 obo:BFO_0000016) ObjectPropertyRange(obo:APOLLO_SV_00000543 obo:BFO_0000019) -# Object Property: obo:BFO_0000050 (part_of) +# Object Property: obo:BFO_0000050 (part of) ReflexiveObjectProperty(obo:BFO_0000050) @@ -2103,7 +2204,7 @@ AnnotationAssertion(obo:IAO_0000412 obo:OMIABIS_0000048 "http://purl.obolibrary. AnnotationAssertion(rdfs:label obo:OMIABIS_0000048 "is owned by"@en) SubObjectPropertyOf(obo:OMIABIS_0000048 owl:topObjectProperty) -# Object Property: obo:RO_0000053 (has characteristic) +# Object Property: obo:RO_0000053 (bearer of) AnnotationAssertion(obo:IAO_0000118 obo:RO_0000053 "bearer of"@en) AnnotationAssertion(obo:IAO_0000118 obo:RO_0000053 "bearer_of"@en) @@ -2374,6 +2475,11 @@ DataPropertyDomain(obo:APOLLO_SV_00000102 obo:BFO_0000031) # Classes ############################ +# Class: (individual human behaviour) + +AnnotationAssertion(apollo_sv:APOLLO_SV_0000040 "HumanBehavior") +SubClassOf( obo:OGMS_0000060) + # Class: (Aedes albopictus) AnnotationAssertion(obo:IAO_0000118 "Stegomyia albopicta") @@ -5859,15 +5965,16 @@ AnnotationAssertion(apollo_sv:APOLLO_SV_0000040 obo:APOLLO_SV_00000401 "Mosquito AnnotationAssertion(rdfs:label obo:APOLLO_SV_00000401 "individual mosquito behavior"@en) SubClassOf(obo:APOLLO_SV_00000401 obo:GO_0007610) -# Class: obo:APOLLO_SV_00000402 (individual human behavior) +# Class: obo:APOLLO_SV_00000402 (obsolete individual human behavior) AnnotationAssertion(obo:IAO_0000115 obo:APOLLO_SV_00000402 "An individual behavior of a human being."@en) AnnotationAssertion(obo:IAO_0000117 obo:APOLLO_SV_00000402 "Matthew Diller") AnnotationAssertion(obo:IAO_0000117 obo:APOLLO_SV_00000402 "William R. Hogan") AnnotationAssertion(obo:IAO_0000600 obo:APOLLO_SV_00000402 "An individual behavior of a human being."@en) -AnnotationAssertion(apollo_sv:APOLLO_SV_0000040 obo:APOLLO_SV_00000402 "HumanBehavior") -AnnotationAssertion(rdfs:label obo:APOLLO_SV_00000402 "individual human behavior"@en) -SubClassOf(obo:APOLLO_SV_00000402 obo:GO_0007610) +AnnotationAssertion(obo:IAO_0100001 obo:APOLLO_SV_00000402 ) +AnnotationAssertion(rdfs:label obo:APOLLO_SV_00000402 "obsolete individual human behavior"@en) +AnnotationAssertion(owl:deprecated obo:APOLLO_SV_00000402 "true"^^xsd:boolean) +SubClassOf(obo:APOLLO_SV_00000402 oboInOwl:ObsoleteClass) # Class: obo:APOLLO_SV_00000403 (transmission tree) @@ -6647,7 +6754,7 @@ AnnotationAssertion(obo:IAO_0000117 obo:APOLLO_SV_00000480 "Matthew Diller") AnnotationAssertion(obo:IAO_0000117 obo:APOLLO_SV_00000480 "William R. Hogan") AnnotationAssertion(obo:IAO_0000600 obo:APOLLO_SV_00000480 "A behavior of one or more organisms that is characterized by the displacement from one geographic region to some target geographic region, and is the realization of either a biological function or (a concretization of) an objective specification."@en) AnnotationAssertion(rdfs:label obo:APOLLO_SV_00000480 "geographical movement of organism"@en) -SubClassOf(obo:APOLLO_SV_00000480 obo:GO_0007610) +SubClassOf(obo:APOLLO_SV_00000480 obo:OGMS_0000060) # Class: obo:APOLLO_SV_00000481 (cut-off point specification) @@ -7118,6 +7225,7 @@ AnnotationAssertion(obo:IAO_0000115 obo:APOLLO_SV_00000532 "A geographical migra AnnotationAssertion(obo:IAO_0000117 obo:APOLLO_SV_00000532 "Matthew Diller") AnnotationAssertion(obo:IAO_0000117 obo:APOLLO_SV_00000532 "William R. Hogan") AnnotationAssertion(rdfs:label obo:APOLLO_SV_00000532 "human travel"@en) +SubClassOf(obo:APOLLO_SV_00000532 ) SubClassOf(obo:APOLLO_SV_00000532 obo:APOLLO_SV_00000480) # Class: obo:APOLLO_SV_00000533 (human air travel) @@ -7242,7 +7350,7 @@ AnnotationAssertion(obo:IAO_0000117 obo:APOLLO_SV_00000546 "Matthew Diller") AnnotationAssertion(obo:IAO_0000117 obo:APOLLO_SV_00000546 "William R. Hogan") AnnotationAssertion(obo:IAO_0000600 obo:APOLLO_SV_00000546 "Individual human behavior that involves either 1) remaining in some susceptible population or some exposed population or 2) human movement away from or around an infectious population, in order to avoid being participant in some infection acquisition."@en) AnnotationAssertion(rdfs:label obo:APOLLO_SV_00000546 "self-initiated travel avoidance behavior"@en) -SubClassOf(obo:APOLLO_SV_00000546 obo:APOLLO_SV_00000402) +SubClassOf(obo:APOLLO_SV_00000546 ) # Class: obo:APOLLO_SV_00000547 (social interaction data item) @@ -7763,7 +7871,7 @@ AnnotationAssertion(obo:IAO_0000117 obo:APOLLO_SV_00000601 "William R. Hogan"@en AnnotationAssertion(dc:creator obo:APOLLO_SV_00000601 ) AnnotationAssertion(dc:date obo:APOLLO_SV_00000601 "2021-03-16T16:29:53Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label obo:APOLLO_SV_00000601 "human daily movement"@en) -SubClassOf(obo:APOLLO_SV_00000601 obo:APOLLO_SV_00000402) +SubClassOf(obo:APOLLO_SV_00000601 ) # Class: obo:APOLLO_SV_00000602 (human daily movement data set) @@ -14237,8 +14345,8 @@ SubClassOf(obo:UO_0000280 obo:IAO_0000003) AnnotationAssertion(obo:IAO_0000115 obo:VO_0000001 "A vaccine is a processed material with the function that when administered, it prevents or ameliorates a disorder in a target organism by inducing or modifying adaptive immune responses specific to the antigens in the vaccine.") AnnotationAssertion(obo:IAO_0000116 obo:VO_0000001 "Many vaccines are developed to protect against infectious pathogens. Many vaccines are also being developed against some diseases such as cancer and autoimmune diseases. Vaccine is developed against a disease. Allergy.") -AnnotationAssertion(obo:IAO_0000117 obo:VO_0000001 "YH, BP, BS, MC, LC, XZ, RS") AnnotationAssertion(obo:IAO_0000117 obo:VO_0000001 "A role that inheres in a prepared material entity that is designed to induce protection or treament for a diease or infection in vivo.") +AnnotationAssertion(obo:IAO_0000117 obo:VO_0000001 "YH, BP, BS, MC, LC, XZ, RS") AnnotationAssertion(obo:IAO_0000412 obo:VO_0000001 "http://purl.obolibrary.org/obo/vo.owl") AnnotationAssertion(apollo_sv:APOLLO_SV_0000040 obo:VO_0000001 "Vaccine") AnnotationAssertion(rdfs:label obo:VO_0000001 "vaccine") @@ -14322,7 +14430,7 @@ AnnotationAssertion(rdfs:label "genomic d SubClassOf( obo:IAO_0000100) SubClassOf( ObjectSomeValuesFrom(obo:IAO_0000136 obo:OBI_0100026)) -# Class: oboInOwl:ObsoleteClass (obsolete_class) +# Class: oboInOwl:ObsoleteClass (Obsolete Class) AnnotationAssertion(rdfs:label oboInOwl:ObsoleteClass "Obsolete Class"@en) @@ -14348,4 +14456,4 @@ ClassAssertion(obo:UO_0000003 obo:UO_0000034) AnnotationAssertion(apollo_sv:APOLLO_SV_0000040 obo:GEO_000000005 "administrativeLocations") -) +) \ No newline at end of file diff --git a/src/ontology/apollo_sv-odk.yaml b/src/ontology/apollo_sv-odk.yaml index b7ac6a8..7995332 100644 --- a/src/ontology/apollo_sv-odk.yaml +++ b/src/ontology/apollo_sv-odk.yaml @@ -55,6 +55,11 @@ import_group: make_base: true base_iris: - http://purl.obolibrary.org/obo/UBERON_ + - id: bcio + module_type: custom + mirror_from: http://humanbehaviourchange.org/ontology/bcio.owl + base_iris: + - http://humanbehaviourchange.org/ontology/BCIO_ use_custom_import_module: TRUE robot_java_args: '-Xmx16G' custom_makefile_header: | diff --git a/src/ontology/apollo_sv.Makefile b/src/ontology/apollo_sv.Makefile index 6b7f764..1626961 100644 --- a/src/ontology/apollo_sv.Makefile +++ b/src/ontology/apollo_sv.Makefile @@ -3,4 +3,18 @@ ## If you need to customize your Makefile, make ## changes here rather than in the main Makefile - +$(IMPORTDIR)/bcio_import.owl: $(MIRRORDIR)/bcio.owl $(IMPORTDIR)/bcio_terms.txt \ + $(IMPORTSEED) | all_robot_plugins + $(ROBOT) merge --input $< \ + annotate --remove-annotations \ + odk:normalize --add-source true \ + remove --base-iri http://humanbehaviourchange.org/ontology/BCIO_ \ + --axioms external \ + --preserve-structure false --trim false \ + remove $(foreach p, $(ANNOTATION_PROPERTIES), --term $(p)) \ + --term-file $(IMPORTDIR)/bcio_terms.txt $(T_IMPORTSEED) \ + --select complement \ + odk:normalize --base-iri http://humanbehaviourchange.org/ontology \ + --subset-decls true --synonym-decls true \ + repair --merge-axiom-annotations true \ + $(ANNOTATE_CONVERT_FILE) diff --git a/src/ontology/catalog-v001.xml b/src/ontology/catalog-v001.xml index 50b19ad..496f2fd 100644 --- a/src/ontology/catalog-v001.xml +++ b/src/ontology/catalog-v001.xml @@ -11,6 +11,7 @@ + diff --git a/src/ontology/imports/bcio_import.owl b/src/ontology/imports/bcio_import.owl new file mode 100644 index 0000000..d869fc3 --- /dev/null +++ b/src/ontology/imports/bcio_import.owl @@ -0,0 +1,72 @@ +Prefix(:=) +Prefix(dc:=) +Prefix(obo:=) +Prefix(owl:=) +Prefix(rdf:=) +Prefix(sdg:=) +Prefix(xml:=) +Prefix(xsd:=) +Prefix(foaf:=) +Prefix(rdfs:=) +Prefix(sssom:=) +Prefix(terms:=) +Prefix(schema:=) +Prefix(Property:=) +Prefix(oboInOwl:=) +Prefix(owlready_ontology:=) + + +Ontology( + +Annotation(dc:source ) +Annotation(owl:versionInfo "2026-03-13") + +Declaration(Class()) +Declaration(Class()) +Declaration(AnnotationProperty(obo:IAO_0000112)) +Declaration(AnnotationProperty(obo:IAO_0000114)) +Declaration(AnnotationProperty(obo:IAO_0000115)) +Declaration(AnnotationProperty(obo:IAO_0000118)) +Declaration(AnnotationProperty(dc:source)) + + +############################ +# Classes +############################ + +# Class: (habitual behaviour) + +AnnotationAssertion(obo:IAO_0000112 " \"Habit\" in the Theory of Interpersonal Behavior") +AnnotationAssertion(obo:IAO_0000112 "\"Habits\" in the Motivation-Opportunities-Abilities") +AnnotationAssertion(obo:IAO_0000114 "Published") +AnnotationAssertion(obo:IAO_0000115 "An that results from a learnt stimulus-behaviour co-occurrence.") +AnnotationAssertion(rdfs:comment "A learnt stimulus-behaviour co-occurrence can lead to activation or execution of a habitual behaviour. + +Habitual behaviour can be an MoA or outcome depending on how 'habitual behaviour' is described in an intervention. The Behaviour Change-Intervention Ontology includes the class 'outcome behaviour' (definition: Human behavior that is an intervention outcome.), which would not be an MoA. When an intervention targets a habitual behaviour to achieve an outcome behaviour, the former qualifies as an MoA.") +AnnotationAssertion(rdfs:label "habitual behaviour") +SubClassOf( ) + +# Class: (individual human behaviour) + +AnnotationAssertion(obo:IAO_0000112 "Also referred to in definitions as human behaviour or just behaviour.") +AnnotationAssertion(obo:IAO_0000112 "walks for 15 mins/day, never eats meat, attends school daily") +AnnotationAssertion(obo:IAO_0000114 "Published") +AnnotationAssertion(obo:IAO_0000115 "A of a human that involves co-ordinated contraction of striated muscles controlled by the brain.") +AnnotationAssertion(obo:IAO_0000115 "A bodily process of a human that involves co-ordinated contraction of striated muscles controlled by the brain.") +AnnotationAssertion(obo:IAO_0000118 "human behaviour") +AnnotationAssertion(rdfs:comment " it is concerned with moving skeletal parts to which it is usually attached.' (https://www.collinsdictionary.com/dictionary/english/striped-muscle)") +AnnotationAssertion(rdfs:comment "The class human behaviour [BCIO:042000] has been made obsolete. If you want to refer to the behaviour of an individual, refer to individual human behaviour . If you want to refer to the behaviour of a group, refer to population behaviour. + +Striated muscles referred to in the definition do not ordinarily involve cardiac muscles. + +Behaviours are usually in response to an internal or external stimuli. + +Every behaviour is associated with mental processes, but not every mental process is associated with behaviour. For instance, a verbal communication behaviour will involve mental processes to produce speech. However, mental processes associated with listening can occur without a person performing a behaviour. + +'behaviours' can involve a series of activities (e.g., more granular behaviours). + +'A 'striated muscle' can defined as 'a type of contractile tissue that is marked by transverse striations") +AnnotationAssertion(rdfs:label "individual human behaviour") + + +) \ No newline at end of file diff --git a/src/ontology/imports/bcio_terms.txt b/src/ontology/imports/bcio_terms.txt new file mode 100644 index 0000000..8046471 --- /dev/null +++ b/src/ontology/imports/bcio_terms.txt @@ -0,0 +1,2 @@ +http://humanbehaviourchange.org/ontology/BCIO_036000 +http://humanbehaviourchange.org/ontology/BCIO_006158 diff --git a/src/ontology/imports/external_import.owl b/src/ontology/imports/external_import.owl index cab19c3..e4ab54c 100644 --- a/src/ontology/imports/external_import.owl +++ b/src/ontology/imports/external_import.owl @@ -8,6 +8,7 @@ Prefix(rdfs:=) Ontology( +Declaration(Class()) Declaration(Class(owl:Thing)) ) \ No newline at end of file diff --git a/src/ontology/imports/geo_import.owl b/src/ontology/imports/geo_import.owl index 92d4789..ec83297 100644 --- a/src/ontology/imports/geo_import.owl +++ b/src/ontology/imports/geo_import.owl @@ -662,7 +662,7 @@ AnnotationAssertion(rdfs:comment obo:GEO_000000006 "Typically, the common featur AnnotationAssertion(rdfs:label obo:GEO_000000006 "geopolitical dependency"@en) SubClassOf(obo:GEO_000000006 obo:GEO_000000004) -# Class: obo:GEO_000000007 (group of major administrative subdivisions) +# Class: obo:GEO_000000007 (aggregate of major administrative subdivisions) AnnotationAssertion(obo:IAO_0000115 obo:GEO_000000007 "An aggregate of governmental organizations that is not itself a major administrative subdivision and whose members are only major administrative subdivisions that have some feature in common."@en) AnnotationAssertion(obo:IAO_0000117 obo:GEO_000000007 "Amanda Hicks"@en) @@ -672,7 +672,7 @@ AnnotationAssertion(rdfs:label obo:GEO_000000007 "group of major administrative EquivalentClasses(obo:GEO_000000007 ObjectIntersectionOf(ObjectComplementOf(obo:GEO_000000005) ObjectAllValuesFrom(obo:BFO_0000075 obo:GEO_000000005) ObjectMinCardinality(2 obo:BFO_0000075 obo:GEO_000000005))) SubClassOf(obo:GEO_000000007 obo:GEO_000000337) -# Class: obo:GEO_000000008 (aggregate of dependencies) +# Class: obo:GEO_000000008 (group of dependencies) AnnotationAssertion(obo:IAO_0000115 obo:GEO_000000008 "An aggregate of governmental organizations that is not itself a geopolitical dependency and whose members are only geopolitical dependencies that have some feature in common."@en) AnnotationAssertion(obo:IAO_0000117 obo:GEO_000000008 "Amanda Hicks"@en) diff --git a/src/ontology/imports/omrse_import.owl b/src/ontology/imports/omrse_import.owl index 5627f57..338b251 100644 --- a/src/ontology/imports/omrse_import.owl +++ b/src/ontology/imports/omrse_import.owl @@ -64,6 +64,7 @@ Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) +Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) @@ -387,7 +388,7 @@ AnnotationAssertion( "GROUP:OBI:"@en) AnnotationAssertion(rdfs:label "editor note"@en) -# Annotation Property: (definition editor) +# Annotation Property: (term editor) AnnotationAssertion( "term editor"@en) AnnotationAssertion( ) @@ -399,7 +400,7 @@ AnnotationAssertion(rdfs:label "def AnnotationAssertion(rdfs:label "definition editor"@en) AnnotationAssertion(rdfs:label "term editor"@en) -# Annotation Property: (alternative label) +# Annotation Property: (alternative term) AnnotationAssertion( "alternative label"@en) AnnotationAssertion( ) @@ -755,7 +756,7 @@ SubObjectPropertyOf( owl:topObjec ObjectPropertyDomain( ObjectSomeValuesFrom( )) ObjectPropertyRange( ) -# Object Property: (characteristic of) +# Object Property: (inheres in) AnnotationAssertion( "inheres in"@en) AnnotationAssertion( "this fragility is a characteristic of this vase"@en) @@ -768,7 +769,7 @@ SubObjectPropertyOf( ) FunctionalObjectProperty() -# Object Property: (has characteristic) +# Object Property: (bearer of) AnnotationAssertion( "bearer of"@en) AnnotationAssertion( "this apple is bearer of this red color"@en) @@ -1914,7 +1915,7 @@ AnnotationAssertion( "William R. Hogan") AnnotationAssertion( "A behavior of one or more organisms that is characterized by the displacement from one geographic region to some target geographic region, and is the realization of either a biological function or (a concretization of) an objective specification."@en) AnnotationAssertion(rdfs:label "geographical movement of organism"@en) -SubClassOf( ) +SubClassOf( ) # Class: (human travel) @@ -3091,27 +3092,27 @@ SubObjectPropertyOf(ObjectPropertyChain( ) ) SubObjectPropertyOf(ObjectPropertyChain(ObjectInverseOf() ) ) DLSafeRule(Body(ClassAtom( Variable()) ObjectPropertyAtom( Variable() Variable()) ClassAtom( Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ClassAtom( Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ClassAtom( Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Body(ObjectPropertyAtom( Variable() Variable()) ClassAtom( Variable()))Head(ObjectPropertyAtom( Variable() Variable()))) -DLSafeRule(Body(ObjectPropertyAtom( Variable() 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(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(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(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()))) ) \ No newline at end of file diff --git a/src/templates/external_import.tsv b/src/templates/external_import.tsv index 693a7c5..72711e7 100644 --- a/src/templates/external_import.tsv +++ b/src/templates/external_import.tsv @@ -1,4 +1,4 @@ ID Entity Type ID TYPE owl:Thing owl:Class - +http://humanbehaviourchange.org/ontology/BCIO_036000 owl:Class From 46eb3bf2cb2a71c2b423c22e22efcc3f94975590 Mon Sep 17 00:00:00 2001 From: William Hogan Date: Fri, 13 Mar 2026 17:22:14 -0500 Subject: [PATCH 2/3] trying to make sure the GitHub checks can make mirror/bcio.owl --- src/ontology/apollo_sv.Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ontology/apollo_sv.Makefile b/src/ontology/apollo_sv.Makefile index 1626961..08d3270 100644 --- a/src/ontology/apollo_sv.Makefile +++ b/src/ontology/apollo_sv.Makefile @@ -3,6 +3,12 @@ ## If you need to customize your Makefile, make ## changes here rather than in the main Makefile + +.PHONY: mirror-bcio +.PRECIOUS: $(MIRRORDIR)/bcio.owl +mirror-bcio: | $(TMPDIR) + $(ROBOT) convert -I http://humanbehaviourchange.org/ontology/bcio.owl -o $(TMPDIR)/$@.owl + $(IMPORTDIR)/bcio_import.owl: $(MIRRORDIR)/bcio.owl $(IMPORTDIR)/bcio_terms.txt \ $(IMPORTSEED) | all_robot_plugins $(ROBOT) merge --input $< \ From fdf4844c782e5a353f8be2acde0310a299851cf8 Mon Sep 17 00:00:00 2001 From: William Hogan Date: Fri, 13 Mar 2026 17:34:20 -0500 Subject: [PATCH 3/3] added ifeq IMP, true so it doesn't run the BCIO import unless requested --- src/ontology/apollo_sv.Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ontology/apollo_sv.Makefile b/src/ontology/apollo_sv.Makefile index 08d3270..2bad6e5 100644 --- a/src/ontology/apollo_sv.Makefile +++ b/src/ontology/apollo_sv.Makefile @@ -3,6 +3,7 @@ ## If you need to customize your Makefile, make ## changes here rather than in the main Makefile +ifeq ($(IMP),true) .PHONY: mirror-bcio .PRECIOUS: $(MIRRORDIR)/bcio.owl @@ -24,3 +25,5 @@ $(IMPORTDIR)/bcio_import.owl: $(MIRRORDIR)/bcio.owl $(IMPORTDIR)/bcio_terms.txt --subset-decls true --synonym-decls true \ repair --merge-axiom-annotations true \ $(ANNOTATE_CONVERT_FILE) + +endif