38
Introduction to OPPL OPPL Syntax Using OPPL Future of OPPL Ontology Pre-Processor Language (OPPL) http://oppl.sourceforge.net/ Mikel Egaña ([email protected]) Robert Stevens ([email protected]) Bio-Health Informatics Group (BHIG), University of Manchester Erick Antezana ([email protected]) 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

Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Embed Size (px)

DESCRIPTION

Mikel Egaña Aranguren, OWLED 2008

Citation preview

Page 1: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

Ontology Pre-Processor Language (OPPL)http://oppl.sourceforge.net/

Mikel Egaña ([email protected])Robert Stevens ([email protected])

Bio-Health Informatics Group (BHIG), University of Manchester

Erick Antezana ([email protected])Department of Plant Systems Biology, VIB, Gent, Belgium

Department of Molecular Genetics, Ghent University, Gent, Belgium

OWLED 2008 DC

March 24, 2008

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 2: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

Introduction to OPPL

“Macro” language for manipulating content of OWL ontologies

Motivation: authors’ needs when creating/maintainingbio-ontologies (Use cases)

Nearly API-level functionality with minimum programming/OWLknowledge

Manchester OWL Syntax + SELECT, ADD, REMOVE

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 3: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

Introduction to OPPL

“Macro” language for manipulating content of OWL ontologies

Motivation: authors’ needs when creating/maintainingbio-ontologies (Use cases)

Nearly API-level functionality with minimum programming/OWLknowledge

Manchester OWL Syntax + SELECT, ADD, REMOVE

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 4: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

Introduction to OPPL

“Macro” language for manipulating content of OWL ontologies

Motivation: authors’ needs when creating/maintainingbio-ontologies (Use cases)

Nearly API-level functionality with minimum programming/OWLknowledge

Manchester OWL Syntax + SELECT, ADD, REMOVE

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 5: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

Introduction to OPPL

“Macro” language for manipulating content of OWL ontologies

Motivation: authors’ needs when creating/maintainingbio-ontologies (Use cases)

Nearly API-level functionality with minimum programming/OWLknowledge

Manchester OWL Syntax + SELECT, ADD, REMOVE

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 6: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

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

Page 7: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

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

Page 8: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

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

Page 9: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

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

Page 10: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

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

Page 11: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

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

Page 12: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

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

Page 13: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

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

Page 14: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

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

Page 15: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

OPPL extra instructions

SELECT_PRIMITIVE descendantOf student;

SELECT_DEFINED descendantOf student;

SELECT descendantOf person;ADD disjointWithSiblings;

SELECT assertedSubClassOf participates_in somesport;

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 16: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

OPPL extra instructions

SELECT_PRIMITIVE descendantOf student;

SELECT_DEFINED descendantOf student;

SELECT descendantOf person;ADD disjointWithSiblings;

SELECT assertedSubClassOf participates_in somesport;

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 17: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL instructionOPPL instruction examplesOPPL extra instructions

OPPL extra instructions

SELECT_PRIMITIVE descendantOf student;

SELECT_DEFINED descendantOf student;

SELECT descendantOf person;ADD disjointWithSiblings;

SELECT assertedSubClassOf participates_in somesport;

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 18: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

OPPL software

http://oppl.sourceforge.net/

OPPLInstructionManagerJava library for processing OPPL instructions (LGPL)OWL API, Pellet, FaCT++, DIG

OPPL reference implementation: OPPL instructions in flat filejava -jar oppl.jarpellet ins.oppl ont.owl new_ont.owl

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 19: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

OPPL software

http://oppl.sourceforge.net/

OPPLInstructionManagerJava library for processing OPPL instructions (LGPL)OWL API, Pellet, FaCT++, DIG

OPPL reference implementation: OPPL instructions in flat filejava -jar oppl.jarpellet ins.oppl ont.owl new_ont.owl

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 20: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

OPPL software

http://oppl.sourceforge.net/

OPPLInstructionManagerJava library for processing OPPL instructions (LGPL)OWL API, Pellet, FaCT++, DIG

OPPL reference implementation: OPPL instructions in flat filejava -jar oppl.jarpellet ins.oppl ont.owl new_ont.owl

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 21: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

Use case 1: Bio-ontology axiomatic enrichment

Gene Ontology Next Generationhttp://www.gong.manchester.ac.uk/

alanine:sodium symporter activity

—— Axiomatic enrichment based in rdfs:label ——

EquivalentTo: symporter activityand transports only (alanine or sodium)

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 22: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

Use case 1: Bio-ontology axiomatic enrichment

Gene Ontology Next Generationhttp://www.gong.manchester.ac.uk/

alanine:sodium symporter activity

—— Axiomatic enrichment based in rdfs:label ——

EquivalentTo: symporter activityand transports only (alanine or sodium)

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 23: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

Use case 1: Bio-ontology axiomatic enrichment

rdfs:label: alanine:sodium symporter activityrdfs:label: glycine:potassium symporter activityrdfs:label: valine:sodium symporter activity...

—— —— —— —— —— —— —— —— ——

SELECT label "(.+):(.+) (symporter activity)";ADD equivalentTo symporter_activity andtransports only (<1> or <2>);

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 24: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

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

Page 25: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

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

Page 26: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

Use case 2: Cell Cycle Ontology

Add axioms automatically each time the pipeline is executed

Explicit development

Querying capabilities

Flexible development

Ontology Design Patternshttp://odps.sourceforge.net

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 27: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

Use case 2: Cell Cycle Ontology

Add axioms automatically each time the pipeline is executed

Explicit development

Querying capabilities

Flexible development

Ontology Design Patternshttp://odps.sourceforge.net

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 28: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

Use case 2: Cell Cycle Ontology

Add axioms automatically each time the pipeline is executed

Explicit development

Querying capabilities

Flexible development

Ontology Design Patternshttp://odps.sourceforge.net

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 29: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

Use case 2: Cell Cycle Ontology

Add axioms automatically each time the pipeline is executed

Explicit development

Querying capabilities

Flexible development

Ontology Design Patternshttp://odps.sourceforge.net

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 30: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

Use case 2: Cell Cycle Ontology

Add axioms automatically each time the pipeline is executed

Explicit development

Querying capabilities

Flexible development

Ontology Design Patternshttp://odps.sourceforge.net

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 31: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

OPPL softwareUse case 1: Bio-ontology axiomatic enrichmentUse case 2: Cell Cycle Ontology

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 domainCCO_U0000002;ADD range CCO_U0000002;

# Meiotic cell cycle: G1 -> S -> G2 -> M

SELECT Class: CCO_P0000327;ADD subClassOf inmediately_preceded_by someCCO_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 someCCO_P0000014));ADD subClassOf query_1;

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language

Page 32: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

Future of OPPL

Syntax closer to OWL?ADD Class: professorADD 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

Page 33: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

Future of OPPL

Syntax closer to OWL?ADD Class: professorADD 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

Page 34: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

Future of OPPL

Syntax closer to OWL?ADD Class: professorADD 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

Page 35: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

Future of OPPL

Syntax closer to OWL?ADD Class: professorADD 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

Page 36: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing 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

Page 37: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing 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

Page 38: Transforming the Axiomisation of Ontologies: The Ontology Pre-Processor Language

Introduction to OPPLOPPL SyntaxUsing OPPL

Future of OPPL

Acknowledgements

Mikel Egaña: University of Manchester and EPSRC

Erick Antezana: European Science Foundation (ESF) for theactivity entitled Frontiers of Functional Genomics

http://oppl.sourceforge.net/

Mikel Egaña, Robert Stevens, Erick Antezana Ontology Pre-Processor Language