Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/odk-workflows/RepositoryFileStructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,8 @@ Components, in contrast to imports, are considered full members of the ontology.
2. A part of the ontology is managed in ROBOT templates
3. The expressivity of the component is higher than the format of the edit file. For example, people still choose to manage their ontology in OBO format (they should not) missing out on a lot of owl features. They may choose to manage logic that is beyond OBO in a specific OWL component.

These are the components in FBBI

| Filename | URL |
| -------- | --- |
| orcidio.owl | None |
49 changes: 45 additions & 4 deletions src/ontology/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
# More information: https://github.com/INCATools/ontology-development-kit/

# Fingerprint of the configuration file when this Makefile was last generated
CONFIG_HASH= 2896ea1d0cc1ffaf7742742d22644a31d17bfe0a130e6e37dd4a9babf75985d3
CONFIG_HASH= 298f0b177bd11c6df8f99fe6755aa350025828149603d6f6ac06eb3ee26ca76d


# ----------------------------------------
Expand Down Expand Up @@ -57,7 +57,7 @@ OBODATE ?= $(shell date +'%d:%m:%Y %H:%M')
VERSION= $(TODAY)
ANNOTATE_ONTOLOGY_VERSION = annotate -V $(ONTBASE)/releases/$(VERSION)/$@ --annotation owl:versionInfo $(VERSION)
ANNOTATE_CONVERT_FILE = annotate --ontology-iri $(ONTBASE)/$@ $(ANNOTATE_ONTOLOGY_VERSION) convert -f ofn --output $@.tmp.owl && mv $@.tmp.owl $@
OTHER_SRC =
OTHER_SRC = $(COMPONENTSDIR)/orcidio.owl
ONTOLOGYTERMS = $(TMPDIR)/ontologyterms.txt
EDIT_PREPROCESSED = $(TMPDIR)/$(ONT)-preprocess.owl

Expand Down Expand Up @@ -155,7 +155,7 @@ custom_robot_plugins:


.PHONY: extra_robot_plugins
extra_robot_plugins:
extra_robot_plugins: $(ROBOT_PLUGINS_DIRECTORY)/odk.jar


# Install all ROBOT plugins to the runtime plugins directory
Expand All @@ -175,6 +175,9 @@ $(ROBOT_PLUGINS_DIRECTORY)/%.jar:

# Specific rules for supplementary plugins defined in configuration

$(ROBOT_PLUGINS_DIRECTORY)/odk.jar:
curl -L -o $@ https://github.com/INCATools/odk-robot-plugin/releases/download/odk-robot-plugin-0.3.3/odk.jar


# ----------------------------------------
# Release assets
Expand Down Expand Up @@ -407,7 +410,7 @@ $(IMPORTDIR)/merged_import.owl: $(MIRRORDIR)/merged.owl $(ALL_TERMS) \
$(ROBOT) merge --input $< \
extract $(foreach f, $(ALL_TERMS), --term-file $(f)) $(T_IMPORTSEED) \
--force true --copy-ontology-annotations false \
--individuals include \
--individuals exclude \
--method BOT \
remove $(foreach p, $(ANNOTATION_PROPERTIES), --term $(p)) \
$(foreach f, $(ALL_TERMS), --term-file $(f)) $(T_IMPORTSEED) \
Expand Down Expand Up @@ -443,6 +446,44 @@ no-mirror-refresh-%:
$(MAKE) --assume-new=$(SRC) --assume-new=$(IMPORTDIR)/$*_terms.txt \
IMP=true IMP_LARGE=true MIR=false PAT=false $(IMPORTDIR)/$*_import.owl

# ----------------------------------------
# Components
# ----------------------------------------
# Some ontologies contain external and internal components. A component is included in the ontology in its entirety.

ifeq ($(COMP),true)
.PHONY: all_components
all_components: $(OTHER_SRC)

.PHONY: recreate-components
recreate-components:
$(MAKE) --assume-new=$(TMPDIR)/stamp-component-orcidio.owl \
COMP=true IMP=false MIR=true PAT=true all_components

.PHONY: no-mirror-recreate-components
no-mirror-recreate-components:
$(MAKE) --assume-new=$(TMPDIR)/stamp-component-orcidio.owl \
COMP=true IMP=false MIR=false PAT=true all_components

.PHONY: recreate-%
recreate-%:
$(MAKE) --assume-new=$(TMPDIR)/stamp-component-$*.owl \
COMP=true IMP=false MIR=true PAT=true $(COMPONENTSDIR)/$*.owl

.PHONY: no-mirror-recreate-%
no-mirror-recreate-%:
$(MAKE) --assume-new=$(TMPDIR)/stamp-component-$*.owl \
COMP=true IMP=false MIR=false PAT=true $(COMPONENTSDIR)/$*.owl

$(COMPONENTSDIR)/%.owl: $(TMPDIR)/stamp-component-%.owl | $(COMPONENTSDIR)
test -f $@ || touch $@
.PRECIOUS: $(COMPONENTSDIR)/%.owl

$(TMPDIR)/stamp-component-%.owl: | $(TMPDIR)
touch $@
.PRECIOUS: $(TMPDIR)/stamp-component-%.owl

endif # COMP=true
# ----------------------------------------
# Mirroring upstream ontologies
# ----------------------------------------
Expand Down
1 change: 1 addition & 0 deletions src/ontology/catalog-v001.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">
<group id="odk-managed-catalog" prefer="public">
<uri name="http://purl.obolibrary.org/obo/fbbi/imports/merged_import.owl" uri="imports/merged_import.owl" />
<uri name="http://purl.obolibrary.org/obo/fbbi/components/orcidio.owl" uri="components/orcidio.owl" />
</group>
</catalog>
45 changes: 45 additions & 0 deletions src/ontology/components/orcidio.owl
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Prefix(:=<http://purl.obolibrary.org/obo/fbbi/components/orcidio.owl#>)
Prefix(owl:=<http://www.w3.org/2002/07/owl#>)
Prefix(rdf:=<http://www.w3.org/1999/02/22-rdf-syntax-ns#>)
Prefix(xml:=<http://www.w3.org/XML/1998/namespace>)
Prefix(xsd:=<http://www.w3.org/2001/XMLSchema#>)
Prefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>)


Ontology(<http://purl.obolibrary.org/obo/fbbi/components/orcidio.owl>
<http://purl.obolibrary.org/obo/fbbi/releases/2026-06-22/components/orcidio.owl>
Annotation(owl:versionInfo "2026-06-22")

Declaration(Class(<http://purl.obolibrary.org/obo/NCBITaxon_9606>))
Declaration(NamedIndividual(<https://orcid.org/0000-0002-6095-8718>))
Declaration(NamedIndividual(<https://orcid.org/0000-0002-7073-9172>))
Declaration(NamedIndividual(<https://orcid.org/0000-0002-8841-5870>))
Declaration(AnnotationProperty(<http://purl.org/dc/terms/description>))
Declaration(AnnotationProperty(<http://purl.org/dc/terms/source>))



############################
# Named Individuals
############################

# Individual: <https://orcid.org/0000-0002-6095-8718> (Damien Goutte-Gattat)

AnnotationAssertion(Annotation(<http://purl.org/dc/terms/source> <http://www.wikidata.org/entity/Q59702685>) <http://purl.org/dc/terms/description> <https://orcid.org/0000-0002-6095-8718> "researcher ORCID ID = 0000-0002-6095-8718")
AnnotationAssertion(Annotation(<http://purl.org/dc/terms/source> <http://www.wikidata.org/entity/Q59702685>) rdfs:label <https://orcid.org/0000-0002-6095-8718> "Damien Goutte-Gattat")
ClassAssertion(<http://purl.obolibrary.org/obo/NCBITaxon_9606> <https://orcid.org/0000-0002-6095-8718>)

# Individual: <https://orcid.org/0000-0002-7073-9172> (David Osumi-Sutherland)

AnnotationAssertion(Annotation(<http://purl.org/dc/terms/source> <http://www.wikidata.org/entity/Q54303418>) <http://purl.org/dc/terms/description> <https://orcid.org/0000-0002-7073-9172> "researcher")
AnnotationAssertion(Annotation(<http://purl.org/dc/terms/source> <http://www.wikidata.org/entity/Q54303418>) rdfs:label <https://orcid.org/0000-0002-7073-9172> "David Osumi-Sutherland")
ClassAssertion(<http://purl.obolibrary.org/obo/NCBITaxon_9606> <https://orcid.org/0000-0002-7073-9172>)

# Individual: <https://orcid.org/0000-0002-8841-5870> (Willy W Wong)

AnnotationAssertion(Annotation(<http://purl.org/dc/terms/source> <http://www.wikidata.org/entity/Q57679070>) <http://purl.org/dc/terms/description> <https://orcid.org/0000-0002-8841-5870> "researcher ORCID ID = 0000-0002-8841-5870")
AnnotationAssertion(Annotation(<http://purl.org/dc/terms/source> <http://www.wikidata.org/entity/Q57679070>) rdfs:label <https://orcid.org/0000-0002-8841-5870> "Willy W Wong")
ClassAssertion(<http://purl.obolibrary.org/obo/NCBITaxon_9606> <https://orcid.org/0000-0002-8841-5870>)


)
1 change: 1 addition & 0 deletions src/ontology/fbbi-edit.owl
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Prefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>)


Ontology(<http://purl.obolibrary.org/obo/fbbi.owl>
Import(<http://purl.obolibrary.org/obo/fbbi/components/orcidio.owl>)
Import(<http://purl.obolibrary.org/obo/fbbi/imports/merged_import.owl>)
Annotation(<http://purl.obolibrary.org/obo/IAO_0000700> <http://purl.obolibrary.org/obo/FBbi_root_00000000>)
Annotation(<http://purl.org/dc/terms/contributor> <https://orcid.org/0000-0002-6095-8718>)
Expand Down
8 changes: 8 additions & 0 deletions src/ontology/fbbi-odk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,20 @@ documentation:
documentation_system: mkdocs
namespaces:
- http://purl.obolibrary.org/obo/FBbi_
robot_plugins:
plugins:
- name: odk
mirror_from: https://github.com/INCATools/odk-robot-plugin/releases/download/odk-robot-plugin-0.3.3/odk.jar
import_group:
use_base_merging: true
slme_individuals: exclude
products:
- id: ro
- id: omo
- id: iao
components:
products:
- filename: orcidio.owl
robot:
reasoner: ELK
repo: fbbi
Expand Down
8 changes: 8 additions & 0 deletions src/ontology/fbbi.Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,11 @@
## If you need to customize your Makefile, make
## changes here rather than in the main Makefile

# Automatically generate the orcidio component from ORCID references
# within the ontology.
# Of note, ODK 1.7 will have built-in support for this, so once ODK 1.7
# is out we should replace this with the built-in feature.
$(COMPONENTSDIR)/orcidio.owl: $(TMPDIR)/stamp-component-%.owl $(EDIT_PREPROCESSED) | $(COMPONENTSDIR) all_robot_plugins
$(ROBOT) remove --input $(EDIT_PREPROCESSED) --select imports --trim false \
odk:extract-orcids \
$(ANNOTATE_CONVERT_FILE)
Loading
Loading