+ From OBO to OWL and back again – a tutorial David Osumi-Sutherland, Virtual Fly Brain/FlyBase Chris Mungall – GO/LBL.

Slides:



Advertisements
Similar presentations
Experiences from the NCBO OBO-to-OWL Mapping Effort Dilvan A. Moreira, University of São Paulo Mark A. Musen, Stanford University.
Advertisements

Intro to Access 2007 Lindsey Brewer CSSCR September 18, 2009.
Program Management Portal: Overview for the Client
+ OWL for annotators David Osumi-Sutherland. + What is OWL? Web Ontology Language Can express everything in OBO and more. Certified web standard Fast.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Linking ontologies to one another and to the Cell Ontology with the COBrA ontology editor Jonathan Bard & Stuart Aitken Biomedical Science & Informatics.
+ Introduction to anatomy ontology building David Osumi-Sutherland FlyBase ( Virtual Fly Brain (
+ From OBO to OWL and back again – a tutorial David Osumi-Sutherland, Virtual Fly Brain/FlyBase Chris Mungall – GO/LBL.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Access Tutorial 3 Maintaining and Querying a Database
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
1 of 6 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
GO Ontology Editing Workshop: Using Protege and OWL Hinxton Jan 2012.
Access Tutorial 3 Maintaining and Querying a Database
Editing Description Logic Ontologies with the Protege OWL Plugin.
OBO-Edit tutorial David Osumi-Sutherland FlyBase / Virtual Fly Brain / OBO-Edit Working Group (OEWG)
COMPREHENSIVE Excel Tutorial 8 Developing an Excel Application.
Maintaining and Querying a Database Microsoft Access 2010.
Chapter 3 Working with Text and Cascading Style Sheets.
Copyright ©: SAMSUNG & Samsung Hope for Youth. All rights reserved Tutorials Software: Building apps Suitable for: Advanced.
The Foundational Model of Anatomy and its Ontological Commitment(s) Stefan Schulz University Medical Center, Freiburg, Germany FMA in OWL meeting November.
Protege OWL Plugin Short Tutorial. OWL Usage The world wide web is a natural application area of ontologies, because ontologies could be used to describe.
GO and OBO: an introduction. Jane Lomax EMBL-EBI What is the Gene Ontology? What is OBO? OBO-Edit demo & practical What is the Gene Ontology? What is.
Imports, MIREOT Contributors: Carlo Torniai, Melanie Courtot, Chris Mungall, Allen Xiang.
Open Biomedical Ontologies. Open Biomedical Ontologies (OBO) An umbrella project for grouping different ontologies in biological/medical field –a repository.
Principles and Practice of Ontology Development: Making Definitions Computable Chris Mungall LBL.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Metadata. Generally speaking, metadata are data and information that describe and model data and information For example, a database schema is the metadata.
® Microsoft Office 2010 Access Tutorial 3 Maintaining and Querying a Database.
+ CARO 2.0 & FUNCARO David Osumi-Sutherland. + Review of CARO (v1) Many definitions are complicated and opaque: ‘anatomical group: “[An] anatomical structure.
Coastal Atlas Interoperability - Ontologies (Advanced topics that we did not get to in detail) Luis Bermudez Stephanie Watson Marine Metadata Interoperability.
OBO-Edit: The Browser The Browser John Day-Richter Berkeley Bioinformatics and Ontology Project / Gene Ontology.
FIX Eye FIX Eye Getting started: The guide EPAM Systems B2BITS.
® Microsoft Access 2010 Tutorial 3 Maintaining and Querying a Database.
COMPREHENSIVE Access Tutorial 3 Maintaining and Querying a Database.
Microsoft ® Office Excel 2003 Training Using XML in Excel SynAppSys Educational Services presents:
Ontology-Based Computing Kenneth Baclawski Northeastern University and Jarg.
Based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester A Practical Introduction to Ontologies & OWL Session 2: Defined.
Anatomy Ontology Community Melissa Haendel. The OBO Foundry More than just a website, it’s a community of ontology developers.
OilEd An Introduction to OilEd Sean Bechhofer. Topics we will discuss Basic OilEd use –Defining Classes, Properties and Individuals in an Ontology –This.
2nd Sept 2004UK e-Science all hands meeting1 Designing User Interfaces to Minimise Common Errors in Ontology Development Alan Rector, Nick Drummond, Matthew.
Expanding species-specific anatomy ontologies to include the cell ontology Melissa Haendel (1), Ceri Van Slyke (1), Chris Mungall (2), Peiran Song (1),
Cell Ontology Meeting, Jackson Labs May 2010 David Osumi-Sutherland.
Lesson 4.  After a table has been created, you may need to modify it. You can make many changes to a table—or other database object—using its property.
+ From OBO to OWL and back again – a tutorial David Osumi-Sutherland, Virtual Fly Brain/FlyBase Chris Mungall – GO/LBL.
Work with Tables and Database Records Lesson 3. NAVIGATING AMONG RECORDS Access users who prefer using the keyboard to navigate records can press keys.
Ontology domain & modeling extensions. Modeling enhancements: overview Enhancements: – Increased expressivity in ontology – Increased expressivity in.
Transportation Agenda 165. Transportation About Pages Pages organize and present information Pages are files that end in.aspx 166.
Access Queries and Forms. Adding a New Field  To insert a field after you have saved your table, open Access, and open the table  It is easier to add.
Access Test Questions Test Date: 05/05/16. Chapter 1 (Lynda.com) Question 1 An access database uses five main components (database objects). Which is.
Text2PTO: Modernizing Patent Application Filing A Proposal for Submitting Text Applications to the USPTO.
1 Letting the classifier check your intuitions Existentials, Universals, & other logical variants Some, Only, Not, And, Or, etc. Lab exercise - 3b Alan.
McGraw-Hill/Irwin The Interactive Computing Series © 2002 The McGraw-Hill Companies, Inc. All rights reserved. Microsoft Excel 2002 Using Macros Lesson.
To play, start slide show and click on circle Access 1 Access 2 Access 3 Access 4 Access Access
OWL (Ontology Web Language and Applications) Maw-Sheng Horng Department of Mathematics and Information Education National Taipei University of Education.
Excel Tutorial 8 Developing an Excel Application
Chapter 2: The Visual Studio .NET Development Environment
Lesson # 9 HP UCMDB 8.0 Essentials
Information Organization
Lab exercise - 3a Alan Rector & colleagues
ECONOMETRICS ii – spring 2018
Exploring Microsoft® Access® 2016 Series Editor Mary Anne Poatsy
Creating and Modifying Queries
ro.owl and shortcut relations
Session 1: Primitive Classes Nick Drummond
The Gene Ontology: an evolution
Access Test Questions Test Date: 05/05/16.
Assignment 3 Querying and Maintaining a Database
University of Manchester
Presentation transcript:

+ From OBO to OWL and back again – a tutorial David Osumi-Sutherland, Virtual Fly Brain/FlyBase Chris Mungall – GO/LBL

+ Links to software downloads and tutorial ontology can be found here: BO_to_OWL_and_back BO_to_OWL_and_back Please note that the tutorial ontology has been designed for teaching purposes and should NOT be used as a reference for classes or relations.

+ I use OBO, why should I care about OWL? OWL 2 is a W3C standard with a large and growing ecosystem of developers. Using OWL ontologies in Protégé 4 you can use fast reasoners to: Query your ontology This could be the basis for sophisticated queries on your website Quickly find mistakes Automate classification Non-lossy round tripping from OBO to OWL and back is now easy continue developing in OBO while taking advantage of OWL and Protégé for reasoning This may be a first step to developing in OWL/Protégé

+ Oort OBO ontology release tool: Starting from ontology requiring a reasoner, uses OWL reasoning to: Roll OBO file that needs no reasoner – supporting current users. Automatically make slims

+ Intro to ontology building An ontology is a classification There are lots of useful ways to classify stuff Maintaining multiple classification schemes by hand is impractical So automate what you can Everybody makes mistakes So get the computer to find errors for you Re-use other people’s work where possible import class hierarchies use common patterns

+ Reasoning in Protégé 4.1 with the Drosophila anatomy ontology Live demo of and underlying querieswww.virtualflybrain.org

+ What is an ontology ? A set of defined, inter-related terms to use in annotation/metadata/knowledge bases. A classification A query-able store of (scientific) knowledge that uses logical inference.

+ What is an ontology ? A set of defined, inter-related terms to use in annotation/metadata/knowledge bases. A classification A query-able store of (scientific) knowledge that uses logical inference. depends on

+ What (use) is an ontology? A set of defined, inter-related terms to use in annotation. Relations between terms allow annotations to be grouped in scientifically meaningful ways requires an ontology to be an accurate and scientifically meaningful classification and store of scientific knowledge.

+ What is an ontology ? A classification There are lots of scientifically useful ways to classify a bit of anatomy. its parts and their arrangement its relation to other structures what is it: part of; connected to; adjacent to, overlapping? its shape its function its developmental origins its species or clade its evolutionary history?

+ What is an ontology ? The scientific knowledge an ontology contains can make the reasons for classification explicit. e.g. Any sense organ that functions in the detection of smell is an olfactory sense organ All large basiconic sensilla of the antenna function in detection of smell Therefore all large basiconic sensilla of the antenna are are olfactory sense organs

+ What is an (OBO-foundry) ontology ? An ontology contains terms Terms refer to (denote) types (classes) Types are classifications of things (instances) in the real world, based on some set of criteria. My left hand is an instance of the type hand The criteria for class membership is recorded using textual definitions, at least some elements of which are formalized as relationships. name: hand def: “An anatomical structure that has four fingers and a thumb and is attached to the end of an arm.” [reference: DOS] relationship: hand has_part finger relationship: hand has_part thumb relationship: part_of arm Image from Gray’s Anatomy (copyright expired)

+ OBO-OWL cheat sheet: classification OWL Manchester Syntax antenna SubClassOf appendage OBO format : name: antenna is_a: appendage Protégé OBO-Edit:

+ class – class relationships are quantified Class:Class relationships are many to many Does the relation apply to all or just some of the class ? we specify this with quantifiers: ∀ : for all, all, only, every ∃ : there exists, some

+ relationships specify necessary conditions for class membership Being part of an insect thorax is a necessary condition of being in the class ‘insect leg’ OBO (quantifiers hidden) name: insect leg relationship: part_of thorax OWL (MS): ‘insect wing’ SubClassOf part_of some thorax

+ relationships specify necessary conditions for class membership Being part of an insect thorax is a necessary condition of being in the class ‘insect leg’ OWL (MS): ‘insect wing’ SubClassOf part_of some thorax the class of insect wings is a subclass of all the class of all things that are part of a thorax.

+ OBO-OWL cheat sheet: necessary conditions for class membership OWL Manchester Syntax antenna SubClassOf part_of some head OBO format : name: antenna relationship: part_of head Protégé OBO-Edit:

+ Directionality and quantifiers True: all ‘insect wing’ part_of some ‘insect thorax’ False: all ‘insect thorax’ has_part some ‘insect wing’ True: all ‘claw’ connected_to some ‘tarsal segment’ False: all ‘tarsal segment’ connected_to some claw

+ It is difficult to keep track of multiple classification chains to: ensure completeness; avoid redundancy; avoid introducing error due to inheritance of classification criteria from a distant ancestor Manually maintaining an ontology with multiple classification schemes is impractical

+ Automating multiple classification. The scientific knowledge an ontology contains can make the reasons for classification explicit. e.g. Any sense organ that functions in the detection of smell is an olfactory sense organ All large basiconic sensilla of the antenna function in detection of smell Therefore all large basiconic sensilla of the antenna are are olfactory sense organs

+ Automating multiple classification. We can specify that some set of necessary conditions for class membership are sufficient to determine class membership English Any sense organ that functions in the detection of smell is an olfactory sense organ OWL (MS): olfactory sense organ’ EquivalentTo: sense organ that capable_of some ‘detection of chemical stimulus involved in sensory perception of smell’ OBO name: olfactory sense organ intersection_of: sense organ intersection_of: capable_of ‘detection of chemical stimulus involved in sensory perception of smell’

+ OBO-OWL cheat sheet: necessary and sufficient conditions for class membership OWL Manchester Syntax antennal sense organ EquivalentTo ‘sense organ’ that part_of some antenna (that / and are interchangable in MS) OBO format : name: antennal sense organ intersection_of: sense organ intersection_of: part_of antenna Protégé OBO-Edit:

+ ERROR MESSAGES ARE YOUR FRIENDS! – They tell you you’ve screwed up before you get embarrassing s complaining that you’ve screwed up Some classes don’t overlap: Nothing is both a space and an object with mass Nothing is a both a muscle and a blood vessel Nothing is both a smell and a nose Some relations only apply between particular classes: A nose is capable of smelling ✔ A smelling is capable of a nose ✗

+ ERROR MESSAGES ARE YOUR FRIENDS! – They tell you you’ve screwed up before you get embarrassing s complaining that you’ve screwed up Some classes don’t overlap. OWL DisjointWith OBO: disjoint_from Nothing is both a space and an object with mass anatomical space DisjointWith anatomical structure ‘lumen of gut’ SubClassOf ‘anatomical structure’ ✗ Nothing is a both a muscle and a blood vessel muscle DisjointWith blood vessel bicep SubClassOf aorta ✗ Nothing is both a smelling and a nose process DisjointWith object smelling* SubClassOf nose ✗

+ ERROR MESSAGES ARE YOUR FRIENDS! – They tell you you’ve screwed up before you get embarrassing s complaining that you’ve screwed up Some relations only apply between particular classes. We can record this using domain* and range*: capable_of relates objects to processes capable_of domain: object capable_of range: process Combining these with disjoint declarations => error checking process DisjointWith object; nose SubClassOf Object; smelling SubClassOf process nose capable_of smelling ✔ smelling capable_of nose ✗ * Same in OBO and OWL

+ Quick guide to OBO-Edit

+ Basic OBO-Edit2 editing setup - 2 x Ontology Tree Editor (OTE) - One parent editor - One text editor - One search panel - One reasoner manager

+

+

+ Browsing - Trees The ontology tree editor is a good way to browse down the ontology graph, but not all are parents visible in one view Click to expand or contract branch

+ Browsing - parents The parent editor provides a quick way to check all parental relationships – usually these are not all visible in a single tree view

+ Browsing - Graph Editor WARNING:– GRAPH EDITOR CAN CAUSE CRASHES. SAVE YOUR WORK !

+ Right click provides editing options and hide-all Choosing quick filtering => manageable view Hide parent terms show parent terms Hide child terms show child terms hide term Browsing - Graph Editor

+ Basic Searching - single leg

+ The ontology tree editor menu Right clicking on the ontology tree editor prompts an extensive editing menu:

+ Global vs local selection modes local mode -selection in other components doesn’t affect selection here local mode -selection in other components doesn’t affect selection here global mode - 2 way auto sync with other components global mode - 2 way auto sync with other components

+ Drag and drop term move – changes classification or necessary conditions for class membership

+ Drag and drop term move

+ Making new cross product terms Add a new root class:

+ Very Quick Guide to Protégé

+ Running a reasoner

+ Searching for terms Use wild-card (*) before a search string to search in term

+ Class tree +/- inference Easily check that inferred classification is what you intend Easily check what classification is asserted

+ Inferred classification

+ DL Query Tab Use to check inference is correct and complete

+ Editing in Protégé Add (annotation, superclass, equivalent class etc) Annotate; Delete; Edit Add child; Add sibling; Delete

+ Editing in Protégé Class expression editor Type DL expressions. Autocomplete names with tab quote names with spaces

+ OBO-OWL cheat sheet: classification OWL Manchester Syntax antenna SubClassOf appendage OBO format : name: antenna is_a: appendage Protégé OBO-Edit:

+ OBO-OWL cheat sheet: necessary conditions for class membership OWL Manchester Syntax antenna SubClassOf part_of some head OBO format : name: antenna relationship: part_of head Protégé OBO-Edit:

+ OBO-OWL cheat sheet: necessary and sufficient conditions for class membership OWL Manchester Syntax antennal sense organ EquivalentTo ‘sense organ’ that part_of some antenna (that / and are interchangable in MS) OBO format : name: antennal sense organ intersection_of: sense organ intersection_of: part_of antenna Protégé OBO-Edit:

+ OBO-OWL cheat sheet: relations / Object Properties OWL object property OBO relation OBO format Typedef Protégé OBO-Edit:

+ Introducing the tutorial ontology Upper level classes Basic Formal ontology – general abstract classes: process; object; quality CARO 2.0 (draft) – abstract classes for anatomy (anatomical space; cell; acellular stucture…) FUNCARO – Functional classifications using GO Imported differentia GO terms – imported for recording function PATO terms – imported for recording qualities tutorial: some specific insect anatomical classes

+ Exercise 1 – Tracing multiple classification of single sense organ Please open: OBO format converter OBO-Edit with tutorial.obo open Protégé 4.1

+ OBO Format Converter Convert tutorial.obo to tutorial.owl

+ Quick live demo

+ tutorial.owl in Protégé Open tutorial.owl in Protégé. Run reasoner search for ‘pedicel’

+ Auto-classification on partonomy

+ Multiple classification of single sense organ Start search with wild card (*)

+ Asserting a classification Protégé 4.1 OBO-Edit 2.1

+ Adding some necessary conditions for class membership * * Strictly speaking, this is a useful fudge, but strict translation of capable_of from OBO to OWL is beyond the scope of this tutorial

+ GO terms CARO terms ; tutorial terms Some classification - OBO-Edit graph editor view

+ Some necessary and sufficient definitions

+ GO terms FUNCARO terms = capable_of Auto-classification - OBO-Edit graph editor view

+ Autoclassification using partonomy

+ Auto-classification

+ Some context

+ Linking relations with rules (property chains) Meaning: If X capable_of Y and Y part_of Z then X capable_of_part_of Z In OBO format (not currently displayed or editable in OBO-Edit) name: capable_of_part_of holds_over_chain: capable_of part_of

+ capable_of_part_of If X 'capable of' Y and Y part_of Z then X capable_of_part_of Z capable_of part_of Inferring capable_of_part_of

+ A class for populating the partonomy of the olfactory system Note – in OWL this could be done without making the ugly class ‘olfactory system component’: (‘anatomical structure’ that capable_of_part_of some ‘sensory perception of smell’) SubClassOf (part_of some ‘olfactory system’)

+

+ Putting it all together

+ Adding some more components to the olfactory system

+ What structures are part of the olfactory system?

+ Exercise – auto-classify ‘taste bristle 1’

+ Adding a functional restriction name: tarsal taste bristle relationship: capable_of detection of chemical stimulus involved in sensory perception of taste With drag and drop editing in OBO-Edit:

+ Make new class – leg sensillum

+ save convert to OWL open in Protégé run the reasoner

+ Quick live demo

+ Check classification

+

+ Consistency checking

+ Checking for inconsistency

+ In OBO-Edit, add the following relationship:

+ save convert to OWL open in Protégé run the reasoner

+ Checking for inconsistency * * Warning – domain and range more tightly specified than official relation.

+ Release manager Over to Chris - using OWL (behind the scenes) to make a pre-reasoned release.

+ Optional final exercise 1 “olfactory peg a4” and “tarsal taste bristle” have asserted classifications ‘olfactory peg a4’ SubClassOf (is_a) ‘peg sensillum’ ‘tarsal taste bristle’ SubClassOf (is_a) ‘sensory bristle’ Look at the definitions of ‘peg sensillum’ and ‘sensory bristle’ Given that the following classes also exist: cuticular bristle; cuticular peg how would you automate this asserted classification ? * answer on final slide, after acknowledgments.

+ Optional final exercise 2 Try adding some terms from your own anatomy ontology, using CARO2 to classify, and perhaps auto-classifying with FUNCARO.

+ Acknowledgments Michael Ashburner; Suzi Lewis OBO converter and Oort developers: Shahid Manzoor Heiko Deitze OBO-Edit developers Current: Chris Mungall; Nomi Harris Former: Amina Abdulla; John Day-Richter Discussion and comments: Alan Ruttenberg; Melissa Haendel; Terry Meehan

+ Complete autoclassification name: peg sensillum EquivalentTo: ‘cell cluster organ’ that has_part some ‘cuticular peg’ and capable_of some ‘detection of stimulus involved in sensory perception’ name: olfactory peg a4 SubClassOf: ‘cell cluster organ’ SubClassOf: has_part some ‘cuticular peg’ SubClassOf: capable_of some ‘detection of chemical stimulus involved in sensory perception of smell’