際際滷

際際滷Share a Scribd company logo
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

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