Given a reference-ontology, a “good” sub-ontology may be defined as the smallest self-explanatory excerpt containing concepts of interest. Given an initial set of concepts of interest, their relationships can generally not be explicit without adding some hyponyms and hyperonyms.
This problem is tackled by using an algorithmic approach based on the is-a relation and two common operators: least common ancestor (lca) and greatest common descendant (gcd).
Where the reference-ontology is represented by a direct acyclic graph (dag), the “good” sub-ontology will be a subgraph that is closed for the above mentioned operators. These operations and their closures are simple and well defined for a tree, but their extension to dag is not straightforward. Efficient algorithms are designed to identify relevant concepts, according to these closures, and relationships among them.
To use OntoFocus_v0.1 on your computer: download.
Please cite: Ranwez V, Ranwez S, Janaqi S:
Sub-Ontology Extraction Using Hyponym and Hypernym Closure on is-aDirected Acyclic Graphs.
IEEE Transactions on Knowledge and Data Engineering (TKDE) 2011, 99:1-14.
Here are some hints to use it
usage: java -jar OntoFocus.jar [args see below]
-onto ontology file (required)
-focus file containing id/uri of the concepts/terms to focus on, one per line (required)
-format format (optional, default:obo, values: [obo, owl])
-out output file (optional, default: stdout)
-addR add all directed relationships, only considering types explicitly defined by the ontology, to the final reduction (optional, default:false)
-root id/uri of the concept/term to consider as the root of the graph (optional, default: the entity with no outgoing IS-A/SubClassOf relationship, if multiple choices generate an error)
-incR id/uri of other relationships to consider during topological sort and graph extension. Is-a (obo) or rdfs:SubClassOf (owl) always considered. Useful to include other transitive relationship e.g part-of (obo) relationships. Multiple relationship id/URI can be specified using ‘,’ separator (optional, default: Is-a (obo) or rdfs:SubClassOf (owl))
-help print this message
Command line examples
|Ontology||gene ontology go/gene_ontology_ext.obo gene ontology
|Annotations:||molecular function go/go_brca1/go_molecular_function
|Molecular funtion:||Reduction: java -jar ontoFocus.jar -onto go/gene_ontology_ext.obo -focus go/go_brca1/go_molecular_function -root GO:0003674 -out go/results/r_brca1_mf.gv
Graph generation: dot -Tpdf go/results/r_brca1_mf.gv -o go/results/r_brca1_mf.pdf
|Cellular component:||Reduction: java -jar ontoFocus.jar -onto go/gene_ontology_ext.obo -focus go/go_brca1/go_cellular_component -root GO:0005575 -out go/results/r_brca1_cc.gv
Reduction + addition of all direct relationships between conserved vertices:
java -jar ontoFocus.jar -onto go/gene_ontology_ext.obo -focus go/go_brca1/go_cellular_component -root GO:0005575 -out go/results/r_brca1_cc_extended.gv -addR
java -jar ontoFocus.jar -onto test/toy.obo -focus test/query -out test/toy_r.gv
see test/toy_r.pdfis-a reduction + addition of all direct edges
java -jar ontoFocus.jar -onto test/toy.obo -focus test/query -out test/toy_r_extended.gv -addR
java -jar ontoFocus.jar -onto test/toy.obo -focus test/query -out test/toy_r_IncPartOf.gv -addR -incR part_of
|Concerning ontology upload, your ontology have to be defined in the OWL format, see the small ontology (LCA vs lca) example. You can export your ontology in this format using the “RDF/XML” save-format of the Protégé editor. This small ontology corresponds to the ontology presented in the figure bellow.
In this particular case, we select C1, C2 and C3 as concepts of interest. Among the 13 concepts contained in the base-ontology LCAvslca, OntoFocus proposes 8 concepts that may interest the user: A1, A2, B1, B2, B3, C1, C2, C3.
Another example deals with gene indexed by the Gene Ontology (GO). The syntax to list the concepts of interest is the following (you may copy/paste it).