TermGenie and Shoge
Upcoming SlideShare
Loading in...5
×
 

TermGenie and Shoge

on

  • 477 views

Two tools to assist in rapid ontology generation

Two tools to assist in rapid ontology generation

Statistics

Views

Total Views
477
Views on SlideShare
475
Embed Views
2

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 2

http://www.linkedin.com 1
https://www.linkedin.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

TermGenie and Shoge TermGenie and Shoge Presentation Transcript

  • Ontology Generation Tools Chris MungallTuesday, May 8, 2012
  • Exploiting modularity for ontology generation • Biology is modular • Same ‘innovation’ repeated in multiple contexts, with variation • E.g. phalanx, arthropod segments • Repetition = RSI for poor ontology creators • Logical definitions and reasoning help automate classification • Reasoners will not generate terms for youTuesday, May 8, 2012
  • Some tools • OBI QuickTerm Templates • Populous and OPPL • POPL • TermGenie • instant compositional terms for curators • Shoge • generate an entire ontology from core rulesTuesday, May 8, 2012
  • TermGenie • Web based wrapper onto an ontology managed in a VCS • Administrator defines templates • User (curator or ontology editor) fills in templates • TG generates a stable ID and logical axioms plus textual metadata according to template pattern • Reasoner checks and places term • Gatekeeper approves or obsoletes termsTuesday, May 8, 2012
  • History and implementation • TermGenie prototype: released 2010 • prolog implementation • working prototype: used 2010-2011 for GO • now retired • TermGenie v1: released Q4 2011 • Programmer: Heiko Dietze • java OWLAPI based • any reasoner (Elk is default) • jQuery on front-end • Currently used heavily in GOTuesday, May 8, 2012
  • TermGenie walk- through • This example uses the GO TermGenie config • http://go.termgenie.org • GO pre-coordinates a lot of process terms • e.g. epithelial cell differentiation in kidney development • TermGenie can be configured for any compositional pattern; e.g • EQ • Repeated anatomical structures • {mucosa,submucosa,...} x {jejunem, iluem,..} • spatial qualifiersTuesday, May 8, 2012
  • Tuesday, May 8, 2012
  • Tuesday, May 8, 2012
  • Tuesday, May 8, 2012
  • Tuesday, May 8, 2012
  • (we recommend Elk here)Tuesday, May 8, 2012
  • (this inference is fairly trivial, more complex cases are easily accommodated)Tuesday, May 8, 2012
  • (you can get this far without even logging in)Tuesday, May 8, 2012
  • (only authorized GO users can get this far) The term is not committed to cvs/svn yet, but the ID is reservedTuesday, May 8, 2012
  • (only authorized GO gatekeepers can access this)Tuesday, May 8, 2012
  • Tuesday, May 8, 2012
  • Another example: what happens when we try to add a term that exists already?Tuesday, May 8, 2012
  • Tuesday, May 8, 2012
  • Bulk entryTuesday, May 8, 2012
  • Tuesday, May 8, 2012
  • Discussion • TermGenie currently only allows terms conforming to rigid pre-defined templates • In our experience this is a good thing • Ontology engineering roles and phases • High level design • relations • core repeated terms • patterns • small number of domain experts and ontologists • Implementing the design • filling in templates • curators • lots of users, need not be trained in ontologiesTuesday, May 8, 2012
  • • TermGenie allows you to selectively “flesh out” an ontology • What if you want to seed an ontology from some basic rules?Tuesday, May 8, 2012
  • Shoge • Serial Homology Ontology Generation Engine • Uses anatomy grammars to generate • labels • logical axiomsTuesday, May 8, 2012
  • Repetition in anatomy • Simple example: • limb segments: • stylopod, zeugopod, autopod • Each is repeated 4 times • anterior/posterior • fore/hindTuesday, May 8, 2012
  • limbs.shg grammar(limbs_simple). limb_segment *--> stylopod | zeugopod | autopod. stylopod *--> in_limb, @stylopod. zeugopod *--> in_limb, @zeugopod. autopod *--> in_limb, @autopod. in_limb *--> part_of some limb. limb *--> laterality, anterioposterior, @limb. laterality *--> @left. laterality *--> @right. anterioposterior *--> @anterior. anterioposterior *--> @posterior.Tuesday, May 8, 2012
  • Generated ontologyTuesday, May 8, 2012
  • Naming rules hand is_name_of anterior limb autopod. foot is_name_of posterior limb autopod.Tuesday, May 8, 2012
  • Digits (human) :- include(ordinal_series). anatomical_digit *--> part_of some limb, @anatomical_digit, in_ordinal_series(1-5). Together with previous grammar, this generates 20 digits, such as: Class: ‘left forelimb digit 1’ EquivalentTo: digit and part_of some ‘left forelimb’ and has_order value 1Tuesday, May 8, 2012
  • Phalanges and repetition with variation phalanx *--> ?proximality,@phalanx,[of],part_of some anatomical_digit. proximality *--> @proximal. proximality *--> @distal. proximality *--> @medial. exclude(phalanx and medial and part_of some (anatomical_digit and has_order value 1)). Generates 52 leaf node classesTuesday, May 8, 2012
  • a more EHDAA2 complex exampleTuesday, May 8, 2012
  • :- if(in_context(Homo sapiens)). somite_number *--> in_ordinal_series(1-39). :- endif. :- if(in_context(Mus)). Somites somite_number *--> in_ordinal_series(1-65). :- endif. :- if(in_context(chick)). somite_number *--> in_ordinal_series(1-50). :- endif. :- if(in_context(snake)). somite_number *--> in_ordinal_series(1-500). :- endif.Tuesday, May 8, 2012
  • somitic_element *--> somite. somitic_element *--> sclerotome. somitic_element *--> myotome. somitic_element *--> dermatome. somitic_element *--> dermomyotome. somite *--> @somite,somite_number. sclerotome *--> @sclerotome,somite_number. dermatome *--> @dermatome,somite_number. myotome *--> @myotome,somite_number. dermomyotome *--> @dermomyotome,somite_number. about *--> {develops_from(S1,S2)}, % RULE somitic_element(S1 and X),[develops,from],somitic_element(S2 and X) % PHRASE :: S1 and X < develops_from some S2 and X. % AXIOM % GENERIC RULES develops_from(dermatome,dermomyotome). develops_from(myotome,dermomyotome). develops_from(dermomyotome,somite). develops_from(sclerotome,somite).Tuesday, May 8, 2012
  • Pre vs post coordination • Some people are uncomfortable with excessive pre-coordination • Shoge can be used to create a ‘background’ super-pre-coordinated ontology • align with existing ontologies to check • curators can mireot in the subsets theyTuesday, May 8, 2012
  • Conclusions • TermGenie • extending an ontology and filling in gaps • in production use for GO • easy to make your own templates • Shoge • generating an entire ontology module • powerful but difficult to use (prolog helps) • in developmentTuesday, May 8, 2012