4.16.24 21st Century Movements for Black Lives.pptx
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 "office 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 flat file
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 flat file
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 flat file
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