TermGenie and Shoge

Preview:

DESCRIPTION

Two tools to assist in rapid ontology generation

Citation preview

Ontology Generation ToolsChris Mungall

Tuesday, 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 you

Tuesday, 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 rules

Tuesday, 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 terms

Tuesday, 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 GO

Tuesday, 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 qualifiers

Tuesday, 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/svnyet, but the ID is reserved

Tuesday, May 8, 2012

(only authorized GO gatekeepers can access this)

Tuesday, May 8, 2012

Tuesday, May 8, 2012

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

Tuesday, May 8, 2012

Tuesday, May 8, 2012

Bulk entry

Tuesday, 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 ontologies

Tuesday, 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 axioms

Tuesday, May 8, 2012

Repetition in anatomy

• Simple example:

• limb segments:

• stylopod, zeugopod, autopod

• Each is repeated 4 times

• anterior/posterior

• fore/hind

Tuesday, 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 ontology

Tuesday, 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 1

Tuesday, 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 classes

Tuesday, May 8, 2012

a more complex example

EHDAA2

Tuesday, May 8, 2012

:- 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

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

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

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

Recommended