The document describes the Ontology Pre-Processor Language (OPPL), which is a "macro" language for manipulating the content of OWL ontologies. OPPL allows authors to perform tasks like adding, removing, and selecting ontology components with instructions that are easier to use than typical programming APIs. Examples are provided of how OPPL has been used for axiomatically enriching bio-ontologies and integrating knowledge across multiple cell cycle ontologies generated by a pipeline.
1 of 38
More Related Content
Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language
1. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Ontology Pre-Processor Language (OPPL)
http://oppl.sourceforge.net/
Mikel Ega単a (mikel.eganaaranguren@cs.man.ac.uk)
Robert Stevens (robert.stevens@manchester.ac.uk)
Bio-Health Informatics Group (BHIG), University of Manchester
Erick Antezana (erant@psb.ugent.be)
Department of Plant Systems Biology, VIB, Gent, Belgium
Department of Molecular Genetics, Ghent University, Gent, Belgium
OWLED 2008 DC
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
2. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Introduction to OPPL
Macro language for manipulating content of OWL ontologies
Motivation: authors needs when creating/maintaining
bio-ontologies (Use cases)
Nearly API-level functionality with minimum programming/OWL
knowledge
Manchester OWL Syntax + SELECT, ADD, REMOVE
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
3. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Introduction to OPPL
Macro language for manipulating content of OWL ontologies
Motivation: authors needs when creating/maintaining
bio-ontologies (Use cases)
Nearly API-level functionality with minimum programming/OWL
knowledge
Manchester OWL Syntax + SELECT, ADD, REMOVE
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
4. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Introduction to OPPL
Macro language for manipulating content of OWL ontologies
Motivation: authors needs when creating/maintaining
bio-ontologies (Use cases)
Nearly API-level functionality with minimum programming/OWL
knowledge
Manchester OWL Syntax + SELECT, ADD, REMOVE
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
5. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Introduction to OPPL
Macro language for manipulating content of OWL ontologies
Motivation: authors needs when creating/maintaining
bio-ontologies (Use cases)
Nearly API-level functionality with minimum programming/OWL
knowledge
Manchester OWL Syntax + SELECT, ADD, REMOVE
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
6. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL instruction
SELECT Class: admin;ADD label "of鍖ce admin";
OPPL statement OPPL statement
OPPL instruction
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
7. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL instruction examples
ADD Class: undergraduate;
REMOVE Class: undergraduate;
SELECT equivalentTo participates_in only
(intellectual_dinner and party);
ADD label "professor";
REMOVE subClassOf lives_on only (not campus);
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
8. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL instruction examples
ADD Class: undergraduate;
REMOVE Class: undergraduate;
SELECT equivalentTo participates_in only
(intellectual_dinner and party);
ADD label "professor";
REMOVE subClassOf lives_on only (not campus);
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
9. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL instruction examples
ADD Class: undergraduate;
REMOVE Class: undergraduate;
SELECT equivalentTo participates_in only
(intellectual_dinner and party);
ADD label "professor";
REMOVE subClassOf lives_on only (not campus);
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
10. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL instruction examples
SELECT subClassOf MoleOfSalt;
ADD subClassOf hasDensity value 0.0;
SELECT inverse participates_in;
ADD range student;
ADD Class: professor;
ADD label "staff";
ADD equivalentTo participates_in only
(intellectual_dinner and party);
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
11. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL instruction examples
SELECT subClassOf MoleOfSalt;
ADD subClassOf hasDensity value 0.0;
SELECT inverse participates_in;
ADD range student;
ADD Class: professor;
ADD label "staff";
ADD equivalentTo participates_in only
(intellectual_dinner and party);
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
12. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL instruction examples
SELECT subClassOf MoleOfSalt;
ADD subClassOf hasDensity value 0.0;
SELECT inverse participates_in;
ADD range student;
ADD Class: professor;
ADD label "staff";
ADD equivalentTo participates_in only
(intellectual_dinner and party);
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
13. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL instruction examples
disjointWith, differentFrom, sameAs, type,
descendantOf, ancestorOf, subPropertyOf, ...
http://oppl.sourceforge.net/test.oppl
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
14. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL instruction examples
disjointWith, differentFrom, sameAs, type,
descendantOf, ancestorOf, subPropertyOf, ...
http://oppl.sourceforge.net/test.oppl
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
15. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL extra instructions
SELECT_PRIMITIVE descendantOf student;
SELECT_DEFINED descendantOf student;
SELECT descendantOf person;
ADD disjointWithSiblings;
SELECT assertedSubClassOf participates_in some
sport;
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
16. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL extra instructions
SELECT_PRIMITIVE descendantOf student;
SELECT_DEFINED descendantOf student;
SELECT descendantOf person;
ADD disjointWithSiblings;
SELECT assertedSubClassOf participates_in some
sport;
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
17. Introduction to OPPL
OPPL instruction
OPPL Syntax
OPPL instruction examples
Using OPPL
OPPL extra instructions
Future of OPPL
OPPL extra instructions
SELECT_PRIMITIVE descendantOf student;
SELECT_DEFINED descendantOf student;
SELECT descendantOf person;
ADD disjointWithSiblings;
SELECT assertedSubClassOf participates_in some
sport;
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
18. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
OPPL software
http://oppl.sourceforge.net/
OPPLInstructionManager
Java library for processing OPPL instructions (LGPL)
OWL API, Pellet, FaCT++, DIG
OPPL reference implementation: OPPL instructions in 鍖at 鍖le
java -jar oppl.jar
pellet ins.oppl ont.owl new_ont.owl
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
19. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
OPPL software
http://oppl.sourceforge.net/
OPPLInstructionManager
Java library for processing OPPL instructions (LGPL)
OWL API, Pellet, FaCT++, DIG
OPPL reference implementation: OPPL instructions in 鍖at 鍖le
java -jar oppl.jar
pellet ins.oppl ont.owl new_ont.owl
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
20. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
OPPL software
http://oppl.sourceforge.net/
OPPLInstructionManager
Java library for processing OPPL instructions (LGPL)
OWL API, Pellet, FaCT++, DIG
OPPL reference implementation: OPPL instructions in 鍖at 鍖le
java -jar oppl.jar
pellet ins.oppl ont.owl new_ont.owl
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
21. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 1: Bio-ontology axiomatic enrichment
Gene Ontology Next Generation
http://www.gong.manchester.ac.uk/
alanine:sodium symporter activity
Axiomatic enrichment based in rdfs:label
EquivalentTo: symporter activity
and transports only (alanine or sodium)
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
22. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 1: Bio-ontology axiomatic enrichment
Gene Ontology Next Generation
http://www.gong.manchester.ac.uk/
alanine:sodium symporter activity
Axiomatic enrichment based in rdfs:label
EquivalentTo: symporter activity
and transports only (alanine or sodium)
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
23. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 1: Bio-ontology axiomatic enrichment
rdfs:label: alanine:sodium symporter activity
rdfs:label: glycine:potassium symporter activity
rdfs:label: valine:sodium symporter activity
...
SELECT label "(.+):(.+) (symporter activity)";
ADD equivalentTo symporter_activity and
transports only (<1> or <2>);
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
24. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 2: Cell Cycle Ontology
http://www.cellcycleontology.org/
Gather knowledge about the cell cycle in 5 ontologies
Ontologies created anew each pipeline execution
Impossible to add new axioms by hand to 5 ontologies:
- Axioms overwritten each time the pipeline is executed
- Many axioms in different places
- Ontologies too big
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
25. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 2: Cell Cycle Ontology
http://www.cellcycleontology.org/
Gather knowledge about the cell cycle in 5 ontologies
Ontologies created anew each pipeline execution
Impossible to add new axioms by hand to 5 ontologies:
- Axioms overwritten each time the pipeline is executed
- Many axioms in different places
- Ontologies too big
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
26. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 2: Cell Cycle Ontology
Add axioms automatically each time the pipeline is executed
Explicit development
Querying capabilities
Flexible development
Ontology Design Patterns
http://odps.sourceforge.net
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
27. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 2: Cell Cycle Ontology
Add axioms automatically each time the pipeline is executed
Explicit development
Querying capabilities
Flexible development
Ontology Design Patterns
http://odps.sourceforge.net
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
28. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 2: Cell Cycle Ontology
Add axioms automatically each time the pipeline is executed
Explicit development
Querying capabilities
Flexible development
Ontology Design Patterns
http://odps.sourceforge.net
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
29. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 2: Cell Cycle Ontology
Add axioms automatically each time the pipeline is executed
Explicit development
Querying capabilities
Flexible development
Ontology Design Patterns
http://odps.sourceforge.net
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
30. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 2: Cell Cycle Ontology
Add axioms automatically each time the pipeline is executed
Explicit development
Querying capabilities
Flexible development
Ontology Design Patterns
http://odps.sourceforge.net
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
31. Introduction to OPPL
OPPL software
OPPL Syntax
Use case 1: Bio-ontology axiomatic enrichment
Using OPPL
Use case 2: Cell Cycle Ontology
Future of OPPL
Use case 2: Cell Cycle Ontology
# Create object property inmediately_precedes
ADD ObjectProperty: inmediately_precedes;ADD functional;
ADD subPropertyOf precedes;ADD inverse inmediately_preceded_by;ADD domain
CCO_U0000002;ADD range CCO_U0000002;
# Meiotic cell cycle: G1 -> S -> G2 -> M
SELECT Class: CCO_P0000327;ADD subClassOf inmediately_preceded_by some
CCO_P0000325;ADD subClassOf inmediately_precedes some CCO_P0000326;
# Query 1: Proteins acting in the mitotic S phase (At)
ADD Class: query_1;ADD subClassOf query;REMOVE subClassOf Thing;
ADD comment "Proteins acting in the mitotic S phase";
SELECT subClassOf participates_in some (CCO_P0000014 or (part_of some
CCO_P0000014));ADD subClassOf query_1;
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
32. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Future of OPPL
Syntax closer to OWL?
ADD Class: professor
ADD professor subClassOf Thing
Loops, conditional control, subroutines, ...
Variables?
SELECT subClassOf part_of some ?x;
ADD equivalentTo part_of only ?x;
SET professor label "new label";
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
33. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Future of OPPL
Syntax closer to OWL?
ADD Class: professor
ADD professor subClassOf Thing
Loops, conditional control, subroutines, ...
Variables?
SELECT subClassOf part_of some ?x;
ADD equivalentTo part_of only ?x;
SET professor label "new label";
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
34. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Future of OPPL
Syntax closer to OWL?
ADD Class: professor
ADD professor subClassOf Thing
Loops, conditional control, subroutines, ...
Variables?
SELECT subClassOf part_of some ?x;
ADD equivalentTo part_of only ?x;
SET professor label "new label";
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
35. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Future of OPPL
Syntax closer to OWL?
ADD Class: professor
ADD professor subClassOf Thing
Loops, conditional control, subroutines, ...
Variables?
SELECT subClassOf part_of some ?x;
ADD equivalentTo part_of only ?x;
SET professor label "new label";
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
36. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Future of OPPL
Formal grammar
Prot辿g辿 plugin (autocomplete, syntax validation, logs, ...)
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
37. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Future of OPPL
Formal grammar
Prot辿g辿 plugin (autocomplete, syntax validation, logs, ...)
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language
38. Introduction to OPPL
OPPL Syntax
Using OPPL
Future of OPPL
Acknowledgements
Mikel Ega単a: University of Manchester and EPSRC
Erick Antezana: European Science Foundation (ESF) for the
activity entitled Frontiers of Functional Genomics
http://oppl.sourceforge.net/
Mikel Ega単a, Robert Stevens, Erick Antezana Ontology Pre-Processor Language