All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.9.10 - 2026-02-18
- Fix regression with guessing local catalog file [#1274]
1.9.9 - 2026-02-18
- Add
--input-formatglobal option [#1038] - Warn on missing
?propertyand?valueinreport[#1273]
- Inherit OWLDocumentFormat when performing SPARQL update [#1267]
- Updated obographs to version 0.3.2
- Partial fix for prefix injections in OBO files [#1268]
1.9.8 - 2025-05-15
- Add
--clean-obooption toconvert#995 - Allow interpolation of ontology IRI and version IRI within annotation values #1241
- Allow selecting punned entities in
removeandfilter#1251 - Add support for predicate-object pairs to ROBOT template #1249
- Updated Apache POI #1252
- Support SPLIT=\n #1246
- Include SubObjectPropertyOf axioms when reducing #1248
- Update owl-diff dependency for stable ordering and to avoid large string creation #1227
- Exclude deprecated from lowercase_definition check #1224
- Improve disambiguation of properties in QuotedEntityChecker #1226
- Skip "non-robot" columns in templates for the purposes of axiom annotations #1216
- Fix but that caused logical axioms with axiom annotations not to be processed correctly when merging axiom annotations #1223
- Correctly merge unannotated and annotated duplicated axioms #1239
- Fix reading of default queries from embedded Jar resources #1212
- Fix repair --merge-axiom-annotations #1240
- Allow interpolation of placeholders in annotation values. #1242
- Subproperties being ignored when evaluating redundancy in
reduce#1014, #1208
1.9.7 - 2024-10-30
- Output inferred object property assertions using Whelk reasoner, by updating to Whelk 1.1.3. #1121
1.9.6 - 2024-05-28
- Added option to input template strings from external file #1152
- Updated
duplicate_exact_syonymreportquery to be case-insensitive and ignore synoyms annotated as abbreviation or acronym synonym types #1179 - Extend
--drop-axiom-annotationsoption to support value-specific removal of axiom annotations #1193 - Add
--enforce-obo-format,--exclude-named-classesand--include-subclass-offeatures to relax command #1060, #1183 - Updated obographs to version 0.3.1
- Updated OWL API to 3.5.29. This includes a major update to OBO Format which now supports IDSPACE declarations (non-OBO Foundry prefixes).
- Updated Elk to version 0.6.0, see here.
- '--annotate-with-source true' does not work with extract --method subset #1160
- Fix how Template adds entities to the QuotedEntityChecker #1104
mergeand 'annotate' operations '--annotate-defined-by' excludes reserved OWL 2 vocabularies #1171- Handle IRIs that are not entities in export #1168
- Fix integration tests #1181
robot repairis fixed to be more flexible, to enable partial repairs #1194- Invalid Xrefs test has been fixed to recognise invalid CURIEs correctly #1127
- Fix issue with correctly determining base entities #1108
1.9.5 - 2023-09-20
- Updated ELK from 0.4.3 to 0.5.0. #999. This is an important change as ELK 0.5.0 is more complete than 0.4.3, which means that it will potentially uncover inferences, in particular unsatisfiable classes, which were not recognised by ELK 0.4.3.
- Add support for pluggable commands #1119
- Add
--drop-axiom-annotationsoption to drop axiom annotations inremoveandfilter#1023
- Migrate to OWL API 4.5.26 to deal with broken turtle serialiser. #1135
- Improvements to
exportandreportfor XLSX format #1148
1.9.4 - 2023-05-23
- Speed up unsatisfiable object-property check on certain reasoners including HermiT #1100
- Update HermiT from 1.3.8.413 to 1.4.5.456 #1073
- Preserve prefixes across ontology load and save #1101
1.9.3 - 2023-02-16
- Upgrade OWLAPI to 4.5.25 #1093
- Restore logging details for CLI #1091
- Fix OBO Serialiser bug where built in vocabulary was introduced as annotation properties #1089
- Fix OBO Serialiser erroneous logging #1088
1.9.2 - 2023-02-09
- Upgrade OWLAPI to 4.5.24 #1086
1.9.1 - 2022-10-28
extractandmergeshould optionally inject provenance #977- Checking for empty strings in addition to missing ones in
missing_label.rq#1017 - Add "domain" and "range" support to export #1061
- Fixed report serialization in JSON #1016
- Fix missing labels in
diffoutput. #1026 - input IRI now takes catalog file into account #1030
1.9.0 - 2022-06-16
- Fix OBOGraphs by updating
guava#1009
1.8.4 - 2022-06-10
- Optimize memory usage for update queries using
--temporary-fileswitch #978 - Allow any case builtin
TYPEintemplate#971 - Sort
reportviolations by rule name within level #955
1.8.3 - 2021-12-16
1.8.2 - 2021-12-02
- Add links to query documentation for default rules in
report#879 - Ability to restrict
reportto base ontology #872 - Add check for equivalent class with no genus to
report#865 - Add check for illegal use of built-in vocabulary #867
- Add check for misused replaced-by annotation #869
- Add checks for undeclared synonymtype and subsettype #870
- Inferred axiom generators for domains and ranges #931
- Split equivalent class check #856
- Allow Dublin Core "terms" namespace (
http://purl.org/dc/terms/) fordescriptionandtitleproperties on ontology. #741 - Allow numbers in lowercase_definition check #866
- Blank nodes in
reportare now referred to asblank noderather than a random identifier #873 - Change behaviour of
template--errorsoption without--force#929 - Fail hard on bad
reason--equivalent-classes-allowedargument #938
- Fix printing violations in
report#823 - Fix handling of
rdf:typeinexport#834 - Fix missing annotations from
export#850 - Fail on unknown rule names in
report#858 - Fix behaviour of
--preserve-structurewhen using internal or external axiom selectors forremoveorfilter#816 - Fix duplicate_label_synonym #864
- Fix value rendering for entities in
report#874 - Fix OBO serialisation issues when using
--check false#896 - Fix
merge --inputspatterns with parent directories #899 - Fix
deprecated_class_referencereportquery #902 - Fix error handling for JSON conversion #907
- Fix handling of property chains when removing/filtering base axioms in #914
- Fix SPLIT unpacking in named individuals in
template#924
- Do not allow malformed IRIs to be returned by
IOHelper#882
1.8.1 - 2021-01-27
1.8.0 - 2021-01-27
- Add
measurecommand #774 - Added 'strict' mode for loading ontologies in #788
- Add --allow-missing-entities option in
renamecommand #793 - Add
html-listformat option toexportin #703
1.7.2 - 2020-11-18
- Update to whelk 1.0.4
- Run
queryon existing TDB dataset (instead of ontology input) in #792 - Improved error messages for
templateparse errors in #796
1.7.1 - 2020-10-22
- Add Whelk OWL reasoner in #730
- Add
validatecommand #691 - Add
--errors <path>option totemplatein #713 - Add new formats to
report: HTML, JSON, and XLSX #699 - Add
--fail-on-violation <bool>option toverifyin #738 - Add
html-listformat option toexportin #703
- Handle empty
templateproperty charactersitics in #719 - Fix referencing properties by CURIE in
exportin #722 - Fix
validate--write-all truein #726 - Fix reported row number in
validateerror tables in #727 - Fix equivalent class rendering for
templatein #728 - Fix ontology IRI rendering for
reportin #739
1.7.0 - 2020-07-31
- Add
exportcommand #481 - Add JSON format to
exportin #645 - Add Excel format to
exportin #646 - Add
--create-tdb <true/false>option toqueryin #685
- Updated
obographsfrom 0.0.8 to 0.2.1 #657
- Fix filtering axioms with multiple axiom selectors #644
- Fix comparator method for sorting empty strings with
exportin #654 - Fix releasing dataset after exception when running
reportwith--tdb true#659 - Reduced time spent loading datasets for
queryin #666 - Fix writing JSON format to use
OutputStreamwithconvertin #671 - Fix IRI resolution for
templatein #689 - Fix MIREOT
extracton overlapping class/individual entity for #709 in #710 - Fix issue with
--add-prefixesoption in #715
1.6.0 - 2020-03-04
- Add
collapsecommand #578 - Add support for anonymous class assertions in
templatein #630 - Add maven plugin to update OBO context #608
- Add more efficient mode for
reducewhen only considering named classes #619
- Fix warning when term is in imports (extract command) #625
- Fix index out of bounds error in extract #617
- Use URIs to fix resource path issues #603
1.5.0 - 2019-11-28
- Add new
pythoncommand, allowing ROBOT to be controlled from Python using Py4j. - Add
internal/externalselectors forremove/filterin #570 - Add language selectors for
remove/filterin #574 - Add
tautologiesandstructural-tautologiesselectors forremove/filterin #579 - Add catalog options for right-side of
diffin #584
1.4.3 - 2019-09-12
1.4.2 - 2019-09-11
- Update
repairto migrate annotations #510 - Allow use of Jena TDB for
reportin #558 - Add
--exclude-tautologiesoption forreasonin #560
- Follow redirects for gzipped input IRIs #537
- Fix bug with imported axioms #523
- Fix index out of bounds for
report--printin #546 - Fix stack overflow in
remove/filterin #547 - Fix
querywhen chaining with--input-iri#555 - Fix
templatebug with equivalent classes #559 - Fix
templatebug with nested annotation #564
1.4.1 - 2019-06-27
- Add
--tdb trueoption toqueryfor Jena TDB on-disk storage #475 - Add IRI pattern matching to
remove/filterin #448 - Add
--signatureoption toremove/filter, improve docs #484 - Add more output options to
diffin #461 - Allow specified prefixes for output #488
- Fix invalid reference errors for OWL built-ins #455
- Fix import handling for SPARQL UPDATE #471
- Fix
remove/filterfor terms not in ontology #507
1.4.0 - 2019-03-14
- Add
renamecommand #419, allowing you to replace lists of old IRIs with new IRIs - Add SPARQL Update support #352, but note the warning in the 'Update' section of the documentation at http://robot.obolibrary.org/query
- Add
--annotate-with-sourceoption forextractin #392 - Add
--intermediatesoption forextract#441 - Add
--individualsoption forextract#385 - Add new selectors for
removeandfilter:domainandrange#427,ontology#452
- Made improvements to the built-in reports #438
1.3.0 - 2019-01-18
- Add
explaincommand, contributed by Jim Balhoff
1.2.0 - 2018-12-06
- Add
removecommand for removing axioms from an ontology - Add
filtercommand for copying selected axioms to a new ontology - Add
--use-graphs trueoption forqueryallows queries over imports as named graphs #158 - Add
--labelsoption todiffcommand #363 - Add support for gzipped files #371
- Breaking Change: We have upgraded from Apache Jena 2.13.0 to 3.8.0 #314, which involves the renaming of several packages and changes to the return types of
QueryOperation. One other change we've noted is that the new Jena adds fewerxsd:stringdatatypes than the previous version. - Upgrade to OWLAPI 4.5.6 sometimes changes the ordering of elements in RDFXML format, causing spurious differences in line order when comparing output from previous versions of ROBOT. But note that Protege5.5 uses the same version of the OWLAPI so orderings should be consistent between the two.
1.1.0 - 2018-08-04
- Add
reportcommand - Add
--collapse-import-closureoption formerge: Whentrue(the default) all imports will be merged and allowl:importstatements will be removed. Possible breaking change: In previous versions of ROBOT,owl:importstatements were not removed. #275 - Add global
--catalog FILEoption #274 - Add
--checkoption forconvertallows conversion of more OBO-format files - Add
--include-annotationsoption formergeallows better control of ontology annotations #277 - Add
--copy-ontology-annotationsoption forextractin #319 - Add
--dump-unsatisfiableoption forreason#174
- improved error messages, linking to ROBOT website #246
1.0.0 - 2018-02-08
First official release of ROBOT!