34
Ontology Generation Tools Chris Mungall Tuesday, May 8, 2012

TermGenie and Shoge

Embed Size (px)

DESCRIPTION

Two tools to assist in rapid ontology generation

Citation preview

Page 1: TermGenie and Shoge

Ontology Generation ToolsChris Mungall

Tuesday, May 8, 2012

Page 2: TermGenie and Shoge

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 you

Tuesday, May 8, 2012

Page 3: TermGenie and Shoge

Some tools

• OBI QuickTerm Templates

• Populous and OPPL

• POPL

• TermGenie

• instant compositional terms for curators

• Shoge

• generate an entire ontology from core rules

Tuesday, May 8, 2012

Page 4: TermGenie and Shoge

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 terms

Tuesday, May 8, 2012

Page 5: TermGenie and Shoge

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 GO

Tuesday, May 8, 2012

Page 6: TermGenie and Shoge

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 qualifiers

Tuesday, May 8, 2012

Page 7: TermGenie and Shoge

Tuesday, May 8, 2012

Page 8: TermGenie and Shoge

Tuesday, May 8, 2012

Page 9: TermGenie and Shoge

Tuesday, May 8, 2012

Page 10: TermGenie and Shoge

Tuesday, May 8, 2012

Page 11: TermGenie and Shoge

(we recommend Elk here)Tuesday, May 8, 2012

Page 12: TermGenie and Shoge

(this inference is fairly trivial, more complex cases are easily accommodated)

Tuesday, May 8, 2012

Page 13: TermGenie and Shoge

(you can get this far without even logging in)

Tuesday, May 8, 2012

Page 14: TermGenie and Shoge

(only authorized GO users can get this far)

The term is not committed to cvs/svnyet, but the ID is reserved

Tuesday, May 8, 2012

Page 15: TermGenie and Shoge

(only authorized GO gatekeepers can access this)

Tuesday, May 8, 2012

Page 16: TermGenie and Shoge

Tuesday, May 8, 2012

Page 17: TermGenie and Shoge

Another example: what happens whenwe try to add a term that exists already?

Tuesday, May 8, 2012

Page 18: TermGenie and Shoge

Tuesday, May 8, 2012

Page 19: TermGenie and Shoge

Bulk entry

Tuesday, May 8, 2012

Page 20: TermGenie and Shoge

Tuesday, May 8, 2012

Page 21: TermGenie and Shoge

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 ontologies

Tuesday, May 8, 2012

Page 22: TermGenie and Shoge

• 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

Page 23: TermGenie and Shoge

Shoge

• Serial Homology Ontology Generation Engine

• Uses anatomy grammars to generate

• labels

• logical axioms

Tuesday, May 8, 2012

Page 24: TermGenie and Shoge

Repetition in anatomy

• Simple example:

• limb segments:

• stylopod, zeugopod, autopod

• Each is repeated 4 times

• anterior/posterior

• fore/hind

Tuesday, May 8, 2012

Page 25: TermGenie and Shoge

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

Page 26: TermGenie and Shoge

Generated ontology

Tuesday, May 8, 2012

Page 27: TermGenie and Shoge

Naming rules

'hand' is_name_of anterior limb autopod. 'foot' is_name_of posterior limb autopod.

Tuesday, May 8, 2012

Page 28: TermGenie and Shoge

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 1

Tuesday, May 8, 2012

Page 29: TermGenie and Shoge

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 classes

Tuesday, May 8, 2012

Page 30: TermGenie and Shoge

a more complex example

EHDAA2

Tuesday, May 8, 2012

Page 31: TermGenie and Shoge

:- if(in_context('Homo sapiens')).

somite_number *--> in_ordinal_series(1-39).

:- endif.:- if(in_context('Mus')).

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.

Somites

Tuesday, May 8, 2012

Page 32: TermGenie and Shoge

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 RULESdevelops_from(dermatome,dermomyotome).develops_from(myotome,dermomyotome).develops_from(dermomyotome,somite).develops_from(sclerotome,somite).

Tuesday, May 8, 2012

Page 33: TermGenie and Shoge

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 they

Tuesday, May 8, 2012

Page 34: TermGenie and Shoge

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 development

Tuesday, May 8, 2012