@@ -22,7 +22,7 @@ Use ROBOT when you need to:
2222- ** Run quality control** - check for missing labels, definitions, bad xrefs
2323- ** Convert formats** - between OWL, OBO, Turtle, OFN, Manchester, JSON
2424- ** Extract modules** - pull subsets from large ontologies
25- - ** Diff ontologies** - compare two versions
25+ - ** Diff ontologies** - compare two versions at the OWL level (consider OAK for higher level diffs)
2626- ** Query with SPARQL** - run SELECT/CONSTRUCT/ASK queries
2727- ** Build release pipelines** - chain commands for automated releases
2828
@@ -151,25 +151,6 @@ robot reason \
151151- ` --exclude-duplicate-axioms true ` - Skip axioms already in imports
152152- ` --create-new-ontology true ` - Put inferences in a separate ontology
153153
154- ### The reason + relax + reduce Pipeline
155-
156- This is the standard release pipeline used by almost all OBO ontologies:
157-
158- ``` bash
159- robot reason --reasoner ELK \
160- --equivalent-classes-allowed asserted-only \
161- --exclude-tautologies structural \
162- relax \
163- reduce \
164- --output release.owl
165- ```
166-
167- What each step does:
168-
169- 1 . ** reason** - Runs the reasoner, asserts inferred SubClassOf and EquivalentClass axioms, checks for unsatisfiable classes
170- 2 . ** relax** - Converts EquivalentClass axioms to SubClassOf (needed by many downstream tools that only understand SubClassOf)
171- 3 . ** reduce** - Removes redundant SubClassOf axioms (e.g., if A SubClassOf B and A SubClassOf C and B SubClassOf C, removes A SubClassOf C)
172-
173154### Debugging Unsatisfiable Classes with explain
174155
175156When reasoning finds unsatisfiable classes (classes that cannot have any instances), use ` explain ` to generate human-readable markdown explanations:
@@ -196,38 +177,6 @@ robot explain --input ont.owl \
196177
197178The ` --axiom ` uses Manchester OWL syntax. Use single quotes around class/property names that contain spaces.
198179
199- ### Axiom Generators
200-
201- Control what types of axioms the reasoner generates:
202-
203- ``` bash
204- robot reason --reasoner ELK \
205- --axiom-generators " SubClass EquivalentClass DisjointClasses" \
206- --input edit.owl --output reasoned.owl
207- ```
208-
209- Available generators: ` SubClass ` , ` EquivalentClass ` , ` DisjointClasses ` , ` ClassAssertion ` , ` PropertyAssertion ` , ` EquivalentObjectProperty ` , ` InverseObjectProperties ` , ` SubObjectProperty ` , ` ObjectPropertyCharacteristic ` , ` ObjectPropertyRange ` , ` ObjectPropertyDomain ` , ` SubDataProperty ` , ` EquivalentDataProperties ` , ` DataPropertyCharacteristic `
210-
211- ### Real-World Reasoning Pattern (from OBO ontology Makefiles)
212-
213- This is the standard pattern used in ODK-based ontology Makefiles:
214-
215- ``` makefile
216- ONT =uberon
217- REASONER =ELK
218-
219- $(ONT ) -base.owl : $(EDIT_PREPROCESSED ) $(IMPORT_FILES )
220- $(ROBOT ) merge $(patsubst % , -i % , $^ ) \
221- reason --reasoner $(REASONER ) \
222- --equivalent-classes-allowed asserted-only \
223- --exclude-tautologies structural \
224- relax \
225- reduce -r $(REASONER ) \
226- annotate \
227- --ontology-iri " http://purl.obolibrary.org/obo/$( ONT) .owl" \
228- --version-iri " http://purl.obolibrary.org/obo/$( ONT) /releases/$( TODAY) /$( ONT) .owl" \
229- --output $@
230- ```
231180
232181## Deep Dive: Templates
233182
@@ -397,15 +346,6 @@ Extraction methods:
397346- ** MIREOT** : Preserves hierarchy, requires upper/lower terms
398347- ** subset** : Just seed terms + relations between them
399348
400- ### Diff Pipeline
401-
402- Compare two versions of an ontology:
403-
404- ``` bash
405- robot diff --left v1.owl --right v2.owl \
406- --format markdown --labels true \
407- --output changes.md
408- ```
409349
410350## Common Pitfalls
411351
0 commit comments