ݺߣ

ݺߣShare a Scribd company logo
Spreadsheets to OWL with Populous 8/12/2011   Mikel Egaña Aranguren 3205 School of Computer Science Universidad Politécnica de Madrid (UPM) 28660 Boadilla del Monte Spain Ontology Engineering Group (OEG) http://www.oeg-upm.net [email_address] http://mikeleganaaranguren.com Simon Jupp Functional Genomic Group European Bioinfomatics Institute Wellcome Trust Genome Campus Hinxton UK [email_address] Robert Stevens Biohealth Informatics Group School of Computer Science University of Manchester Manchester UK [email_address]
Motivation Engaging life scientists in data annotation and ontology  population Protégé and OWL are scary.. Need for simple  “ form filling ”  style of knowledge gathering and  describing data - so we use spreadsheets. Q1 How do we get people to annotate data in spreadhseets accoridng to ontologies? Q2 How do we transform those spreadsheets into sets of axioms? Populous
Writing ontologies in OWL is hard Especially if one doesn ’ t know OWL; Hard to do complex patterns of axioms; Hard to be consistent and conform to a style; Hard to re-factor an ontology ’ s content Doing all this in bulk is tedious and error prone Populous
Separation of concerns Populous All Eukaryotic Cells are either nucleated or anucleate, some cells are multinucleate Knowledge ‘ Eukaryotic Cells’  has_nucleation   some  ‘Nucleation’ ‘ Nucleation’  subClassOf  {mononucleate , binucleate , polynucleate , anucleate}  Ontologically ‘ Eukaryotic Cells’  has_nucleation   some   ‘Nucleation’ ‘ Nucleation’  subClassOf  {mononucleate , binucleate , polynucleate , anucleate}  Differentia ‘ Eukaryotic Cells’   ‘Nucleation’ Mononuclear phagocyte mononucleate Flight Muscle cell multinucleate Red Blood cell anucleate Real Examples
Ontology patterns Axioms often added in regular ways There are often patterns of axioms for a particular way of representation There are also design patterns – standard well recognised solutions Analogous  to software patterns Doing the same thing in the same way… it ’ s a good thing Populous ‘ Protein’  has_molecular_function some  ‘Molecular Function’ is_capable_of some  ‘Biological Process’ located_in some  ‘Cellualr component’ Repetative pattern
Some requirements Want consistent axiom generation Want to write axioms according to patterns Separate knowledge gathering from axiom generation Engage domain experts not experts in OWL and/or ontologies Validate content to go into the ontology Do all of this in a familiar environment i.e. spreadsheets  Populous
Using spreadsheets Spreadsheets are often used simply to organise data Basic tabulation Saying the same kinds of things repeatedly A very familiar environment Want to capitalise on this… Populous
RightField Populous Semantic Annotation by Stealth http://www.rightfield.org.uk
Excel validations Populous
Populous workflow Populous
Populous workflow Populous Load from file or directly from BioPortal
Populous workflow Populous Ontology browser
Populous workflow Populous 1. Select column 2. Select Class in Ontology 3. Select  allowed  values
Populous workflow Populous Tab completion Syntax Highlighting Multi-value cells Label rendering
Demo 1 Demo of Populous in action. Populous
OWL generation Populous Class: CL:0003523 Annotation: rdfs:label ‘Kidney Cell’ EquivalentTo: CL:0000000 and OBO_REL:part_of some MAO_000629  Manchester OWL syntax
Introduction to OPPL Ontology Pre Processor Language (oppl.sf.net)  Scripting language to automate the manipulation of OWL ontologies Apply pre-defined very complex OWL modelling automatically Based in Manchester OWL Syntax Populous
OPPL script anatomy OPPL for Populous OPPL script Variable declaration, Variable declaration, ... SELECT Query, Query,  ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE  Axiom, ADD/REMOVE  Axiom, ... END;
OPPL script anatomy OPPL for Populous OPPL script Populous OPPL script Variable declaration, Variable declaration, ... SELECT Query, Query,  ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE  Axiom, ADD/REMOVE  Axiom, ... END; Variable declaration, Variable declaration, ... SELECT Query, Query,  ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE  Axiom, ADD/REMOVE  Axiom, ... END; Variable declaration, Variable declaration, ... SELECT Query, Query,  ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE  Axiom, ADD/REMOVE  Axiom, ... END;
OPPL script anatomy OPPL for Populous OPPL script Populous OPPL script Variable declaration, Variable declaration, ... SELECT Query, Query,  ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE  Axiom, ADD/REMOVE  Axiom, ... END; Variable declaration, Variable declaration, ... SELECT Query, Query,  ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE  Axiom, ADD/REMOVE  Axiom, ... END; Variable declaration, Variable declaration, ... SELECT Query, Query,  ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE  Axiom, ADD/REMOVE  Axiom, ... END; ?cell:CLASS, ?parent:CLASS BEGIN ADD ?cell subClassOf ?parent END;
OPPL script anatomy OPPL for Populous ?cell:CLASS, ?parent:CLASS BEGIN ADD ?cell subClassOf ?parent END; Variable Variable type CLASS CONSTANT OBJECTPROPERTY DATAPROPERTY ANNOTATIONPROPERTY INDIVIDUAL OWL expression: Manchester OWL syntax + variables
OPPL for Populous OPPL script anatomy ?cell:CLASS,  ?anatomyPart:CLASS,  ?partOfRestriction:CLASS = part_of some ?anatomyPart, ?anatomyIntersection:CLASS = createIntersection(?partOfRestriction.VALUES)  BEGIN ADD ?cell equivalentTo CL_0000000 and  ?anatomyIntersection END; createIntersection  createUnion (?var.VALUES) OWL expression =
Creating OPPL script OPPL builder OPPL for Populous
Creating OPPL script OPPL text editor OPPL for Populous
Creating OPPL script OPPL macros OPPL for Populous
Creating OPPL script OPPL patterns OPPL for Populous
OPPL for Populous More information OPPL publications: http://oppl2.sourceforge.net/documentation.html OPPL documentation: http://oppl2.sourceforge.net/oppl_documentation.html OPPL patterns: http://oppl2.sourceforge.net/patterns_documentation.html OPPL Manual: http://oppl2.sourceforge.net/manual.pdf OPPL sample scripts: http://oppl2.sourceforge.net/taggedexamples/
Populous Demo 2 Demo 2 -converting spreadsheets to OWL using OPPL
Populous Populous and RightField Ontological annotation by stealth Real biological data + high quality meta-data Development of a Kidney and Urinary Pathway Knowledge Base
Populous Demo 3 Demo 3 - Experiment template for data annotation
Populous Acknowledgements RightField Matthew Horridge, Katy Wolstencroft, Stuart Owen,  Carole Goble Populous  Simon Jupp, Robert Stevens funded by  e-LICO EU-FP7 Collaborative Project (2009-2012) 
Theme ICT-4.4: Intelligent Content and Semantics and NIH funded NCBO driving biological project program Mikel Egaña Aranguren is funded by the Marie Curie Cofund programme (FP7) OPPL 2 is maintained by Luigi Iannone

More Related Content

Populous swat4ls slides_slideshare

  • 1. Spreadsheets to OWL with Populous 8/12/2011   Mikel Egaña Aranguren 3205 School of Computer Science Universidad Politécnica de Madrid (UPM) 28660 Boadilla del Monte Spain Ontology Engineering Group (OEG) http://www.oeg-upm.net [email_address] http://mikeleganaaranguren.com Simon Jupp Functional Genomic Group European Bioinfomatics Institute Wellcome Trust Genome Campus Hinxton UK [email_address] Robert Stevens Biohealth Informatics Group School of Computer Science University of Manchester Manchester UK [email_address]
  • 2. Motivation Engaging life scientists in data annotation and ontology population Protégé and OWL are scary.. Need for simple “ form filling ” style of knowledge gathering and describing data - so we use spreadsheets. Q1 How do we get people to annotate data in spreadhseets accoridng to ontologies? Q2 How do we transform those spreadsheets into sets of axioms? Populous
  • 3. Writing ontologies in OWL is hard Especially if one doesn ’ t know OWL; Hard to do complex patterns of axioms; Hard to be consistent and conform to a style; Hard to re-factor an ontology ’ s content Doing all this in bulk is tedious and error prone Populous
  • 4. Separation of concerns Populous All Eukaryotic Cells are either nucleated or anucleate, some cells are multinucleate Knowledge ‘ Eukaryotic Cells’ has_nucleation some ‘Nucleation’ ‘ Nucleation’ subClassOf {mononucleate , binucleate , polynucleate , anucleate} Ontologically ‘ Eukaryotic Cells’ has_nucleation some ‘Nucleation’ ‘ Nucleation’ subClassOf {mononucleate , binucleate , polynucleate , anucleate} Differentia ‘ Eukaryotic Cells’ ‘Nucleation’ Mononuclear phagocyte mononucleate Flight Muscle cell multinucleate Red Blood cell anucleate Real Examples
  • 5. Ontology patterns Axioms often added in regular ways There are often patterns of axioms for a particular way of representation There are also design patterns – standard well recognised solutions Analogous to software patterns Doing the same thing in the same way… it ’ s a good thing Populous ‘ Protein’ has_molecular_function some ‘Molecular Function’ is_capable_of some ‘Biological Process’ located_in some ‘Cellualr component’ Repetative pattern
  • 6. Some requirements Want consistent axiom generation Want to write axioms according to patterns Separate knowledge gathering from axiom generation Engage domain experts not experts in OWL and/or ontologies Validate content to go into the ontology Do all of this in a familiar environment i.e. spreadsheets Populous
  • 7. Using spreadsheets Spreadsheets are often used simply to organise data Basic tabulation Saying the same kinds of things repeatedly A very familiar environment Want to capitalise on this… Populous
  • 8. RightField Populous Semantic Annotation by Stealth http://www.rightfield.org.uk
  • 11. Populous workflow Populous Load from file or directly from BioPortal
  • 12. Populous workflow Populous Ontology browser
  • 13. Populous workflow Populous 1. Select column 2. Select Class in Ontology 3. Select allowed values
  • 14. Populous workflow Populous Tab completion Syntax Highlighting Multi-value cells Label rendering
  • 15. Demo 1 Demo of Populous in action. Populous
  • 16. OWL generation Populous Class: CL:0003523 Annotation: rdfs:label ‘Kidney Cell’ EquivalentTo: CL:0000000 and OBO_REL:part_of some MAO_000629 Manchester OWL syntax
  • 17. Introduction to OPPL Ontology Pre Processor Language (oppl.sf.net) Scripting language to automate the manipulation of OWL ontologies Apply pre-defined very complex OWL modelling automatically Based in Manchester OWL Syntax Populous
  • 18. OPPL script anatomy OPPL for Populous OPPL script Variable declaration, Variable declaration, ... SELECT Query, Query, ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE Axiom, ADD/REMOVE Axiom, ... END;
  • 19. OPPL script anatomy OPPL for Populous OPPL script Populous OPPL script Variable declaration, Variable declaration, ... SELECT Query, Query, ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE Axiom, ADD/REMOVE Axiom, ... END; Variable declaration, Variable declaration, ... SELECT Query, Query, ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE Axiom, ADD/REMOVE Axiom, ... END; Variable declaration, Variable declaration, ... SELECT Query, Query, ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE Axiom, ADD/REMOVE Axiom, ... END;
  • 20. OPPL script anatomy OPPL for Populous OPPL script Populous OPPL script Variable declaration, Variable declaration, ... SELECT Query, Query, ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE Axiom, ADD/REMOVE Axiom, ... END; Variable declaration, Variable declaration, ... SELECT Query, Query, ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE Axiom, ADD/REMOVE Axiom, ... END; Variable declaration, Variable declaration, ... SELECT Query, Query, ... WHERE Constraint, Constraint, ... BEGIN ADD/REMOVE Axiom, ADD/REMOVE Axiom, ... END; ?cell:CLASS, ?parent:CLASS BEGIN ADD ?cell subClassOf ?parent END;
  • 21. OPPL script anatomy OPPL for Populous ?cell:CLASS, ?parent:CLASS BEGIN ADD ?cell subClassOf ?parent END; Variable Variable type CLASS CONSTANT OBJECTPROPERTY DATAPROPERTY ANNOTATIONPROPERTY INDIVIDUAL OWL expression: Manchester OWL syntax + variables
  • 22. OPPL for Populous OPPL script anatomy ?cell:CLASS, ?anatomyPart:CLASS, ?partOfRestriction:CLASS = part_of some ?anatomyPart, ?anatomyIntersection:CLASS = createIntersection(?partOfRestriction.VALUES) BEGIN ADD ?cell equivalentTo CL_0000000 and ?anatomyIntersection END; createIntersection createUnion (?var.VALUES) OWL expression =
  • 23. Creating OPPL script OPPL builder OPPL for Populous
  • 24. Creating OPPL script OPPL text editor OPPL for Populous
  • 25. Creating OPPL script OPPL macros OPPL for Populous
  • 26. Creating OPPL script OPPL patterns OPPL for Populous
  • 27. OPPL for Populous More information OPPL publications: http://oppl2.sourceforge.net/documentation.html OPPL documentation: http://oppl2.sourceforge.net/oppl_documentation.html OPPL patterns: http://oppl2.sourceforge.net/patterns_documentation.html OPPL Manual: http://oppl2.sourceforge.net/manual.pdf OPPL sample scripts: http://oppl2.sourceforge.net/taggedexamples/
  • 28. Populous Demo 2 Demo 2 -converting spreadsheets to OWL using OPPL
  • 29. Populous Populous and RightField Ontological annotation by stealth Real biological data + high quality meta-data Development of a Kidney and Urinary Pathway Knowledge Base
  • 30. Populous Demo 3 Demo 3 - Experiment template for data annotation
  • 31. Populous Acknowledgements RightField Matthew Horridge, Katy Wolstencroft, Stuart Owen, Carole Goble Populous Simon Jupp, Robert Stevens funded by e-LICO EU-FP7 Collaborative Project (2009-2012) 
Theme ICT-4.4: Intelligent Content and Semantics and NIH funded NCBO driving biological project program Mikel Egaña Aranguren is funded by the Marie Curie Cofund programme (FP7) OPPL 2 is maintained by Luigi Iannone

Editor's Notes

  1. This slide shows a piece of knowledge in free text about cells, then we show how this could be represented ontologically. Then we highlight the differentia in the pattern. Finally show some real examples of values that could fit the pattern
  2. Screenshot of drop down validation list from excel
  3. Empty populous spreadsheet
  4. Loading ontologies form BioPortal
  5. Loading ontologies form BioPortal
  6. Loading ontologies form BioPortal
  7. Loading ontologies form BioPortal