SlideShare uma empresa Scribd logo
1 de 90
+




    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:
        http://www.bioontology.org/wiki/index.php?title=From_OBO_t
         o_OWL_and_back



     Pleasenote 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 www.virtualflybrain.org and underlying queries
+
    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.

                    depends on

       A classification               depends on

                 depends on

       A query-able store of (scientific) knowledge that
        uses logical inference.
+
    What (use) is an ontology?


     A set
          of defined, inter-related terms to use in
     annotation.


      Relationsbetween 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 basiconicsensilla of the antenna function
         in detection of smell
        Therefore all large basiconicsensilla 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    Protégé
        antenna SubClassOf
         appendage




     OBO    format :          OBO-Edit:
        name: antenna
        is_a: appendage
+
    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_ofthorax
           OWL (MS):
               „insect wing‟
                SubClassOfpart_ofsome
                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‟
                SubClassOfpart_ofsome
                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            Protégé
        antenna SubClassOf
         part_ofsome head




     OBO    format :                  OBO-Edit:
        name: antenna
        relationship: part_of head
+
    Directionality and quantifiers

       True: all „insect wing‟
        part_ofsome „insect thorax‟

       False: all „insect thorax‟
        has_partsome „insect wing‟



       True: all „claw‟
        connected_tosome ‘tarsal
        segment‟

       False: all „tarsal segment‟
        connected_tosome claw
+    Manually maintaining an ontology
    with multiple classification schemes
                is impractical




                         • 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
+
    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 basiconicsensilla of the antenna function
         in detection of smell
        Therefore all large basiconicsensilla 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_ofsome „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                    Protégé
           antennal sense organ
            EquivalentTo„sense organ‟ that
            part_ofsome antenna


           (that / and are interchangable in
            MS)

       OBO format :                             OBO-Edit:
           name: antennal sense organ
           intersection_of: sense organ
           intersection_of: part_of
            antenna
+
    ERROR MESSAGES ARE YOUR
    FRIENDS! – They tell you you‟ve screwed up before you
    get embarrassing emails 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 emails complaining that you‟ve screwed up

       Some classes don‟t overlap. OWL DisjointWithOBO:
        disjoint_from
           Nothing is both a space and an object with mass
               anatomical space DisjointWithanatomical structure
                   „lumen of gut‟ SubClassOf „anatomical structure‟ ✗
           Nothing is a both a muscle and a blood vessel
               muscle DisjointWithblood vessel
                   bicep SubClassOf aorta ✗
           Nothing is both a smelling and a nose
               process DisjointWithobject
                   smelling* SubClassOf nose ✗
+
    ERROR MESSAGES ARE YOUR
    FRIENDS! – They tell you you‟ve screwed up before you
    get embarrassing emails 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_ofdomain: object
                   capable_ofrange: process

       Combining these with disjoint declarations => error checking
           process DisjointWithobject; nose SubClassOfObject; smelling
            SubClassOfprocess
               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 !
+ Browsing - Graph Editor


  Hide parent terms                                      show parent terms




  Hide child terms                                        show child terms
                                   hide term
    Right click provides editing options and hide-all

    Choosing quick filtering => manageable view
+ 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




                             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 what
                               classification is
                               asserted




     Easily check that
     inferred classification
     is what you intend
+




    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    Protégé
        antenna SubClassOf
         appendage




     OBO    format :          OBO-Edit:
        name: antenna
        is_a: appendage
+
    OBO-OWL cheat sheet:
    necessary conditions for class membership


     OWL Manchester Syntax            Protégé
        antenna SubClassOf
         part_ofsome head




     OBO    format :                  OBO-Edit:
        name: antenna
        relationship: part_of head
+
    OBO-OWL cheat sheet:
    necessary and sufficient conditions for class membership


       OWL Manchester Syntax                    Protégé
           antennal sense organ
            EquivalentTo„sense organ‟ that
            part_ofsome antenna


           (that / and are interchangable in
            MS)

       OBO format :                             OBO-Edit:
           name: antennal sense organ
           intersection_of: sense organ
           intersection_of: part_of
            antenna
+
    OBO-OWL cheat sheet:
    relations / Object Properties


     OWL                   Protégé
        object property



     OBO
        relation

                            OBO-Edit:
     OBO     format
        Typedef
+
    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; acellularstucture…)
           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
+ Some classification
 - OBO-Edit graph editor view

    CARO terms ; tutorial terms   GO terms
+ Some necessary and sufficient
  definitions
+ Auto-classification
 - OBO-Edit graph editor view



                                    GO terms



 FUNCARO terms




                                = capable_of
+
    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_ofpart_of
+
    Inferring capable_of_part_of



      If X 'capable of' Y and Y part_of Z then X capable_of_part_of Z




                                                part_of


     capable_of_part_of



                                                capable_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_ofsome „sensory
     perception of smell‟) SubClassOf(part_ofsome „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
+
    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:
           ShahidManzoor
           HeikoDeitze

       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_partsome „cuticular peg‟
            and capable_ofsome „detection of stimulus involved in sensory
            perception‟




       name: olfactory peg a4
           SubClassOf: „cell cluster organ‟
           SubClassOf: has_partsome „cuticular peg‟
           SubClassOf:capable_ofsome „detection of chemical stimulus
            involved in sensory perception of smell‟

Mais conteúdo relacionado

Semelhante a From OBO to OWL and back - building scalable ontologies

From OBO to OWL - a primer
From OBO to OWL - a primerFrom OBO to OWL - a primer
From OBO to OWL - a primerdosumis
 
Oe2 tutorial 1010
Oe2 tutorial 1010Oe2 tutorial 1010
Oe2 tutorial 1010dosumis
 
Can there be such a thing as Ontology Engineering?
Can there be such a thing as Ontology Engineering?Can there be such a thing as Ontology Engineering?
Can there be such a thing as Ontology Engineering?robertstevens65
 
Drug-discovery knowledge integration and analysis using OWL and reasoners
Drug-discovery knowledge integration and analysis using OWL and reasonersDrug-discovery knowledge integration and analysis using OWL and reasoners
Drug-discovery knowledge integration and analysis using OWL and reasonersSamuel Croset
 
Ontology - and Reloaded and Revolutions
Ontology - and Reloaded and RevolutionsOntology - and Reloaded and Revolutions
Ontology - and Reloaded and RevolutionsJie Bao
 
Ontology-based data access and semantic mining with Aber-OWL
Ontology-based data access and semantic mining with Aber-OWLOntology-based data access and semantic mining with Aber-OWL
Ontology-based data access and semantic mining with Aber-OWLRobert Hoehndorf
 
OWL-XML-Summer-School-09
OWL-XML-Summer-School-09OWL-XML-Summer-School-09
OWL-XML-Summer-School-09Duncan Hull
 
GO Sensu Terms and Taxonomy -- Apr 2007
GO Sensu Terms and Taxonomy -- Apr 2007GO Sensu Terms and Taxonomy -- Apr 2007
GO Sensu Terms and Taxonomy -- Apr 2007Chris Mungall
 
GO Sensu Term and Taxonomy (Apr 2007)
GO  Sensu Term and Taxonomy  (Apr 2007)GO  Sensu Term and Taxonomy  (Apr 2007)
GO Sensu Term and Taxonomy (Apr 2007)Chris Mungall
 
SMalL - Semantic Malware Log Based Reporter
SMalL  - Semantic Malware Log Based ReporterSMalL  - Semantic Malware Log Based Reporter
SMalL - Semantic Malware Log Based ReporterStefan Prutianu
 
Formalization and implementation of BFO 2 with a focus on the OWL implementation
Formalization and implementation of BFO 2 with a focus on the OWL implementationFormalization and implementation of BFO 2 with a focus on the OWL implementation
Formalization and implementation of BFO 2 with a focus on the OWL implementationgolpedegato2
 
Uberon lausanne-2012
Uberon lausanne-2012Uberon lausanne-2012
Uberon lausanne-2012Chris Mungall
 
Reasoning Requirements for Bioscience
Reasoning Requirements for BioscienceReasoning Requirements for Bioscience
Reasoning Requirements for BioscienceEmanuele Della Valle
 
Getting Started with the Hymenoptera Anatomical Ontology
Getting Started with the Hymenoptera Anatomical OntologyGetting Started with the Hymenoptera Anatomical Ontology
Getting Started with the Hymenoptera Anatomical OntologyKatja C. Seltmann
 
Ontology Language Extension to Support Collaborative Ontology Building
Ontology Language Extension to Support Collaborative Ontology BuildingOntology Language Extension to Support Collaborative Ontology Building
Ontology Language Extension to Support Collaborative Ontology BuildingJie Bao
 
Lri Owl And Ontologies 04 04
Lri Owl And Ontologies 04 04Lri Owl And Ontologies 04 04
Lri Owl And Ontologies 04 04Rinke Hoekstra
 

Semelhante a From OBO to OWL and back - building scalable ontologies (20)

From OBO to OWL - a primer
From OBO to OWL - a primerFrom OBO to OWL - a primer
From OBO to OWL - a primer
 
Oe2 tutorial 1010
Oe2 tutorial 1010Oe2 tutorial 1010
Oe2 tutorial 1010
 
Can there be such a thing as Ontology Engineering?
Can there be such a thing as Ontology Engineering?Can there be such a thing as Ontology Engineering?
Can there be such a thing as Ontology Engineering?
 
Drug-discovery knowledge integration and analysis using OWL and reasoners
Drug-discovery knowledge integration and analysis using OWL and reasonersDrug-discovery knowledge integration and analysis using OWL and reasoners
Drug-discovery knowledge integration and analysis using OWL and reasoners
 
Meghyn slides-hse-2014
Meghyn slides-hse-2014Meghyn slides-hse-2014
Meghyn slides-hse-2014
 
Ontology - and Reloaded and Revolutions
Ontology - and Reloaded and RevolutionsOntology - and Reloaded and Revolutions
Ontology - and Reloaded and Revolutions
 
Ontology-based data access and semantic mining with Aber-OWL
Ontology-based data access and semantic mining with Aber-OWLOntology-based data access and semantic mining with Aber-OWL
Ontology-based data access and semantic mining with Aber-OWL
 
OWL-XML-Summer-School-09
OWL-XML-Summer-School-09OWL-XML-Summer-School-09
OWL-XML-Summer-School-09
 
GO Sensu Terms and Taxonomy -- Apr 2007
GO Sensu Terms and Taxonomy -- Apr 2007GO Sensu Terms and Taxonomy -- Apr 2007
GO Sensu Terms and Taxonomy -- Apr 2007
 
GO Sensu Term and Taxonomy (Apr 2007)
GO  Sensu Term and Taxonomy  (Apr 2007)GO  Sensu Term and Taxonomy  (Apr 2007)
GO Sensu Term and Taxonomy (Apr 2007)
 
Tutorial 1-Ontologies
Tutorial 1-OntologiesTutorial 1-Ontologies
Tutorial 1-Ontologies
 
SMalL - Semantic Malware Log Based Reporter
SMalL  - Semantic Malware Log Based ReporterSMalL  - Semantic Malware Log Based Reporter
SMalL - Semantic Malware Log Based Reporter
 
Formalization and implementation of BFO 2 with a focus on the OWL implementation
Formalization and implementation of BFO 2 with a focus on the OWL implementationFormalization and implementation of BFO 2 with a focus on the OWL implementation
Formalization and implementation of BFO 2 with a focus on the OWL implementation
 
Uberon lausanne-2012
Uberon lausanne-2012Uberon lausanne-2012
Uberon lausanne-2012
 
Reasoning Requirements for Bioscience
Reasoning Requirements for BioscienceReasoning Requirements for Bioscience
Reasoning Requirements for Bioscience
 
Owl Pizza Eg2004
Owl Pizza Eg2004Owl Pizza Eg2004
Owl Pizza Eg2004
 
Learning ontologies
Learning ontologiesLearning ontologies
Learning ontologies
 
Getting Started with the Hymenoptera Anatomical Ontology
Getting Started with the Hymenoptera Anatomical OntologyGetting Started with the Hymenoptera Anatomical Ontology
Getting Started with the Hymenoptera Anatomical Ontology
 
Ontology Language Extension to Support Collaborative Ontology Building
Ontology Language Extension to Support Collaborative Ontology BuildingOntology Language Extension to Support Collaborative Ontology Building
Ontology Language Extension to Support Collaborative Ontology Building
 
Lri Owl And Ontologies 04 04
Lri Owl And Ontologies 04 04Lri Owl And Ontologies 04 04
Lri Owl And Ontologies 04 04
 

Último

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Último (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

From OBO to OWL and back - building scalable ontologies

  • 1. + From OBO to OWL and back again – a tutorial David Osumi-Sutherland, Virtual Fly Brain/FlyBase Chris Mungall – GO/LBL
  • 2. +  Links to software downloads and tutorial ontology can be found here:  http://www.bioontology.org/wiki/index.php?title=From_OBO_t o_OWL_and_back  Pleasenote that the tutorial ontology has been designed for teaching purposes and should NOT be used as a reference for classes or relations.
  • 3. + 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é
  • 4. + 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
  • 5. + 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
  • 6. + Reasoning in Protégé 4.1 with the Drosophila anatomy ontology Live demo of www.virtualflybrain.org and underlying queries
  • 7. + 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.
  • 8. + What is an ontology ?  A set of defined, inter-related terms to use in annotation/metadata/knowledge bases. depends on  A classification depends on depends on  A query-able store of (scientific) knowledge that uses logical inference.
  • 9. + What (use) is an ontology?  A set of defined, inter-related terms to use in annotation.  Relationsbetween 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.
  • 10. + 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?
  • 11. + 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 basiconicsensilla of the antenna function in detection of smell  Therefore all large basiconicsensilla of the antenna are are olfactory sense organs
  • 12. + 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)
  • 13. + OBO-OWL cheat sheet: classification  OWL Manchester Syntax  Protégé  antenna SubClassOf appendage  OBO format :  OBO-Edit:  name: antenna  is_a: appendage
  • 14. + 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
  • 15. + 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_ofthorax  OWL (MS):  „insect wing‟ SubClassOfpart_ofsome thorax
  • 16. + 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‟ SubClassOfpart_ofsome thorax  the class of insect wings is a subclass of all the class of all things that are part of a thorax.
  • 17. + OBO-OWL cheat sheet: necessary conditions for class membership  OWL Manchester Syntax  Protégé  antenna SubClassOf part_ofsome head  OBO format :  OBO-Edit:  name: antenna  relationship: part_of head
  • 18. + Directionality and quantifiers  True: all „insect wing‟ part_ofsome „insect thorax‟  False: all „insect thorax‟ has_partsome „insect wing‟  True: all „claw‟ connected_tosome ‘tarsal segment‟  False: all „tarsal segment‟ connected_tosome claw
  • 19. + Manually maintaining an ontology with multiple classification schemes is impractical • 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
  • 20. + 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 basiconicsensilla of the antenna function in detection of smell  Therefore all large basiconicsensilla of the antenna are are olfactory sense organs
  • 21. + 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_ofsome „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‟
  • 22. + OBO-OWL cheat sheet: necessary and sufficient conditions for class membership  OWL Manchester Syntax  Protégé  antennal sense organ EquivalentTo„sense organ‟ that part_ofsome antenna  (that / and are interchangable in MS)  OBO format :  OBO-Edit:  name: antennal sense organ  intersection_of: sense organ  intersection_of: part_of antenna
  • 23. + ERROR MESSAGES ARE YOUR FRIENDS! – They tell you you‟ve screwed up before you get embarrassing emails 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 ✗
  • 24. + ERROR MESSAGES ARE YOUR FRIENDS! – They tell you you‟ve screwed up before you get embarrassing emails complaining that you‟ve screwed up  Some classes don‟t overlap. OWL DisjointWithOBO: disjoint_from  Nothing is both a space and an object with mass  anatomical space DisjointWithanatomical structure  „lumen of gut‟ SubClassOf „anatomical structure‟ ✗  Nothing is a both a muscle and a blood vessel  muscle DisjointWithblood vessel  bicep SubClassOf aorta ✗  Nothing is both a smelling and a nose  process DisjointWithobject  smelling* SubClassOf nose ✗
  • 25. + ERROR MESSAGES ARE YOUR FRIENDS! – They tell you you‟ve screwed up before you get embarrassing emails 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_ofdomain: object  capable_ofrange: process  Combining these with disjoint declarations => error checking  process DisjointWithobject; nose SubClassOfObject; smelling SubClassOfprocess  nose capable_of smelling ✔  smelling capable_of nose ✗ * Same in OBO and OWL
  • 26. + Quick guide to OBO-Edit
  • 27. + Basic OBO-Edit2 editing setup  - 2 x Ontology Tree Editor (OTE)  - One parent editor  - One text editor  - One search panel  - One reasoner manager
  • 28. +
  • 29. +
  • 30. + 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
  • 31. + 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
  • 32. + Browsing - Graph Editor WARNING:– GRAPH EDITOR CAN CAUSE CRASHES. SAVE YOUR WORK !
  • 33. + Browsing - Graph Editor Hide parent terms show parent terms Hide child terms show child terms hide term  Right click provides editing options and hide-all  Choosing quick filtering => manageable view
  • 34. + Basic Searching - single leg
  • 35. + The ontology tree editor menu  Right clicking on the ontology tree editor prompts an extensive editing menu:
  • 36. + Global vs local selection modes local mode -selection in other components doesn‟t affect selection here global mode - 2 way auto sync with other components
  • 37. + Drag and drop term move –changes classification or necessary conditions for class membership
  • 38. + Drag and drop term move
  • 39. + Making new cross product terms  Add a new root class:
  • 40. + Very Quick Guide to Protégé
  • 41. + Running a reasoner
  • 42. + Searching for terms Use wild-card (*) before a search string to search in term
  • 43. + Class tree +/- inference Easily check what classification is asserted Easily check that inferred classification is what you intend
  • 44. + Inferred classification
  • 45. + DL Query Tab Use to check inference is correct and complete
  • 46. + Editing in Protégé Add (annotation, superclass, equivalent class etc) Annotate; Delete; Edit Add child; Add sibling; Delete
  • 47. + Editing in Protégé  Class expression editor  Type DL expressions.  Autocomplete names with tab  quote names with spaces
  • 48. + OBO-OWL cheat sheet: classification  OWL Manchester Syntax  Protégé  antenna SubClassOf appendage  OBO format :  OBO-Edit:  name: antenna  is_a: appendage
  • 49. + OBO-OWL cheat sheet: necessary conditions for class membership  OWL Manchester Syntax  Protégé  antenna SubClassOf part_ofsome head  OBO format :  OBO-Edit:  name: antenna  relationship: part_of head
  • 50. + OBO-OWL cheat sheet: necessary and sufficient conditions for class membership  OWL Manchester Syntax  Protégé  antennal sense organ EquivalentTo„sense organ‟ that part_ofsome antenna  (that / and are interchangable in MS)  OBO format :  OBO-Edit:  name: antennal sense organ  intersection_of: sense organ  intersection_of: part_of antenna
  • 51. + OBO-OWL cheat sheet: relations / Object Properties  OWL  Protégé  object property  OBO  relation  OBO-Edit:  OBO format  Typedef
  • 52. + 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; acellularstucture…)  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
  • 53. + Exercise 1 – Tracing multiple classification of single sense organ Please open: OBO format converter OBO-Edit with tutorial.obo open Protégé 4.1
  • 54. + OBO Format Converter Convert tutorial.obo to tutorial.owl
  • 55. + Quick live demo
  • 56. + tutorial.owl in Protégé  Open tutorial.owl in Protégé.  Run reasoner  search for „pedicel‟
  • 57. + Auto-classification on partonomy
  • 58. + Multiple classification of single sense organ  Start search with wild card (*)
  • 59. + Asserting a classification Protégé 4.1 OBO-Edit 2.1
  • 60. + 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
  • 61. + Some classification - OBO-Edit graph editor view CARO terms ; tutorial terms GO terms
  • 62. + Some necessary and sufficient definitions
  • 63. + Auto-classification - OBO-Edit graph editor view GO terms FUNCARO terms = capable_of
  • 64. + Autoclassification using partonomy
  • 65. + Auto-classification
  • 66. + Some context
  • 67. + 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_ofpart_of
  • 68. + Inferring capable_of_part_of If X 'capable of' Y and Y part_of Z then X capable_of_part_of Z part_of capable_of_part_of capable_of
  • 69. + 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_ofsome „sensory perception of smell‟) SubClassOf(part_ofsome „olfactory system‟)
  • 70. +
  • 71. + Putting it all together
  • 72. + Adding some more components to the olfactory system
  • 73. + What structures are part of the olfactory system?
  • 74. + Exercise – auto-classify „taste bristle 1‟
  • 75. + 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:
  • 76. + Make new class – leg sensillum
  • 77. + save convert to OWL open in Protégé run the reasoner
  • 78. + Quick live demo
  • 79. + Check classification
  • 80. +
  • 81. + Consistency checking
  • 82. + Checking for inconsistency
  • 83. + Checking for inconsistency  In OBO-Edit, add the following relationship:
  • 84. + save convert to OWL open in Protégé run the reasoner
  • 85. + Checking for inconsistency * * Warning – domain and range more tightly specified than official relation.
  • 86. + Release manager  Over to Chris - using OWL (behind the scenes) to make a pre- reasoned release.
  • 87. + 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.
  • 88. + Optional final exercise 2  Try adding some terms from your own anatomy ontology, using CARO2 to classify, and perhaps auto-classifying with FUNCARO.
  • 89. + Acknowledgments  Michael Ashburner; Suzi Lewis  OBO converter and Oort developers:  ShahidManzoor  HeikoDeitze  OBO-Edit developers  Current: Chris Mungall; Nomi Harris  Former: Amina Abdulla; John Day-Richter  Discussion and comments:  Alan Ruttenberg; Melissa Haendel; Terry Meehan
  • 90. + Complete autoclassification  name: peg sensillum  EquivalentTo: „cell cluster organ‟ that has_partsome „cuticular peg‟ and capable_ofsome „detection of stimulus involved in sensory perception‟  name: olfactory peg a4  SubClassOf: „cell cluster organ‟  SubClassOf: has_partsome „cuticular peg‟  SubClassOf:capable_ofsome „detection of chemical stimulus involved in sensory perception of smell‟