diff --git a/docs/odk-workflows/RepositoryFileStructure.md b/docs/odk-workflows/RepositoryFileStructure.md index 602ecfc..3907767 100644 --- a/docs/odk-workflows/RepositoryFileStructure.md +++ b/docs/odk-workflows/RepositoryFileStructure.md @@ -26,6 +26,7 @@ These are the current imports in VIBSO | stato | http://purl.obolibrary.org/obo/stato.owl | None | | uo | http://purl.obolibrary.org/obo/uo.owl | custom | | chebi | http://purl.obolibrary.org/obo/chebi.owl | None | +| foodon | http://purl.obolibrary.org/obo/foodon.owl | None | ## 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 591c0d1..e2002de 100644 --- a/src/ontology/Makefile +++ b/src/ontology/Makefile @@ -108,7 +108,7 @@ all_main: $(MAIN_FILES) # ---------------------------------------- -IMPORTS = bfo ro omo iao chmo pato obi stato uo chebi +IMPORTS = bfo ro omo iao chmo pato obi stato uo chebi foodon IMPORT_ROOTS = $(patsubst %, $(IMPORTDIR)/%_import, $(IMPORTS)) IMPORT_OWL_FILES = $(foreach n,$(IMPORT_ROOTS), $(n).owl) @@ -517,6 +517,16 @@ mirror-chebi: | $(TMPDIR) mv $@.tmp.owl $(TMPDIR)/$@.owl; fi +## ONTOLOGY: foodon +.PHONY: mirror-foodon +.PRECIOUS: $(MIRRORDIR)/foodon.owl +mirror-foodon: | $(TMPDIR) + if [ $(MIR) = true ] && [ $(IMP) = true ]; then curl -L $(OBOBASE)/foodon.owl --create-dirs -o $(MIRRORDIR)/foodon.owl --retry 4 --max-time 200 &&\ + $(ROBOT) convert -i $(MIRRORDIR)/foodon.owl -o $@.tmp.owl && \ + $(ROBOT) remove -i $@.tmp.owl --base-iri $(URIBASE)/FOODON --axioms external --preserve-structure false --trim false -o $@.tmp.owl &&\ + mv $@.tmp.owl $(TMPDIR)/$@.owl; fi + + $(MIRRORDIR)/%.owl: mirror-% | $(MIRRORDIR) if [ $(IMP) = true ] && [ $(MIR) = true ] && [ -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/catalog-v001.xml b/src/ontology/catalog-v001.xml index ae4f60c..5fc9c50 100644 --- a/src/ontology/catalog-v001.xml +++ b/src/ontology/catalog-v001.xml @@ -23,5 +23,7 @@ + + diff --git a/src/ontology/imports/foodon_import.owl b/src/ontology/imports/foodon_import.owl new file mode 100644 index 0000000..57d45c5 --- /dev/null +++ b/src/ontology/imports/foodon_import.owl @@ -0,0 +1,59 @@ +Prefix(:=) +Prefix(owl:=) +Prefix(rdf:=) +Prefix(xml:=) +Prefix(xsd:=) +Prefix(rdfs:=) + + +Ontology( + +Annotation( ) +Annotation(owl:versionInfo "2024-01-09") + +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(ObjectProperty()) +Declaration(ObjectProperty()) +Declaration(ObjectProperty()) +Declaration(ObjectProperty()) +Declaration(ObjectProperty()) +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(Datatype(xsd:date)) + + + +############################ +# Classes +############################ + +# Class: (device specification) + +AnnotationAssertion( ) +AnnotationAssertion( "A directive information entity which specifies a device and its settings for use within a plan specification."@en) +AnnotationAssertion( ) +AnnotationAssertion( "2021-11-29T21:53:39Z"^^xsd:dateTime) +AnnotationAssertion(rdfs:label "device specification"@en) +SubClassOf( ) + + +) \ No newline at end of file diff --git a/src/ontology/imports/foodon_terms.txt b/src/ontology/imports/foodon_terms.txt new file mode 100644 index 0000000..7c2b8f6 --- /dev/null +++ b/src/ontology/imports/foodon_terms.txt @@ -0,0 +1 @@ +FOODON:00004086 # device specification \ No newline at end of file diff --git a/src/ontology/vibso-edit.owl b/src/ontology/vibso-edit.owl index 33470c3..232ee66 100644 --- a/src/ontology/vibso-edit.owl +++ b/src/ontology/vibso-edit.owl @@ -30,6 +30,7 @@ Import() Import() Import() Import() +Import() Annotation(dcterms:contributor ) Annotation(dcterms:contributor ) Annotation(dcterms:contributor ) diff --git a/src/ontology/vibso-odk.yaml b/src/ontology/vibso-odk.yaml index e949fc0..5644654 100644 --- a/src/ontology/vibso-odk.yaml +++ b/src/ontology/vibso-odk.yaml @@ -62,6 +62,8 @@ import_group: is_large: true use_gzipped: true make_base: true + - id: foodon + make_base: true components: products: - filename: vibso_classes.owl # TSV templates to define VIBSO classes