Assessing impact of logical changes

The uberon:inference-diff command is a specialised version of the standard diff ROBOT command that specifically reports how inferred SubClassOf axioms differ between two versions of an ontology.

Usage

Basic usage is as follows:

robot uberon:inference-diff -i <HEAD> -b <BASE> -d <OUTPUT>

where <HEAD> and <BASE> point to the two versions of the ontology to compare, and <OUTPUT> is the name of the file where the report will be written (if not specified, it defaults to inference-diff.md).

If a XML catalog is needed to resolve import declarations in the <HEAD> file (respectively the <BASE> file), use the --catalog (resp. --base-catalog) option.

The command will make use of a reasoner to check how inferred axioms differ between the two versions of the ontology. As with any other ROBOT command involving a reasoner, the reasoner to use can be specified with the -r option; the default is ELK.

Report

The command will produce a report containing the following:

  • The number of logical definitions (EquivalentClasses axioms where at least one of the operands is a named class) that have been added / removed / modified between the <BASE> file and the <HEAD> file.

  • For every class C whose logical definition has changed (including the case where a class that did not have a logical definition now has one, and the other way round):

    • the number and list of all removed inferred subclasses (classes that are inferred to be subclasses of C in <BASE> but not in <HEAD>);

    • the number and list of all added inferred subclasses (classes that are inferred to be subclasses of C in <HEAD> but not in <BASE>).

To restrict the report to only the classes that belong to a given namespace, add the --base-iri option (which may be used repeatedly). For example, to report only on changes impacting classes in the Uberon or CL namespaces:

robot uberon:inference-diff -i <HEAD> -b <BASE> --base-iri UBERON: --base-iri CL: