36
Ron Shaker, Peter Mork, Matt Barclay and Peter Tarczy-Hornoch, M.D. University of Washington, Seattle WA A Rule Driven Bi-Directional Translation System for Remapping Queries and Result Sets Between a Mediated Schema and Heterogeneous Data Sources

Ron Shaker, Peter Mork, Matt Barclay and Peter Tarczy-Hornoch, M.D. University of Washington, Seattle WA A Rule Driven Bi-Directional Translation System

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Ron Shaker, Peter Mork, Matt Barclay andPeter Tarczy-Hornoch, M.D.

University of Washington, Seattle WA

A Rule Driven Bi-Directional Translation System for Remapping Queries and Result

Sets Between a Mediated Schema and Heterogeneous Data Sources

Agenda

• Background

• Overview

• Architecture

• Detail

• Future Plans

Introduction

• Growing number of online biomedical data sources

• Need for an easy, homogeneous way to query these data sources

• Goal of GeneSeek

BackgroundOntology Definition

Name Sequence Organism Source/DB Source/ID

Name Locus Organism Source/DB Source/ID

Name Organism Source/DB Source/ID

Name Organism Source/DB Source/ID

NUCLEOTIDESEQUENCE

PHENOTYPEGENE

PROTEIN

BackgroundMediated Schema Definition

DATASOURCE

DATASOURCE

DATASOURCE

DATASOURCE

KNOWLEDGEBASE

GENE

PROTEIN

PHENOTYPE

NUCLEOTIDESEQUENCE

BackgroundQuery Generation

QueryReformulator

QueryEngine

KnowledgeBase

PQLQuery

Metawrapper

Wrapper

Wrapper

Wrapper DataSource

DataSource

DataSource

Data Access Engine (Back End)

Query Generation (Front End)

BackgroundData Retrieval

QueryReformulator

QueryEngine

KnowledgeBase

PQLQuery

Metawrapper

Wrapper

Wrapper

Wrapper DataSource

DataSource

DataSource

Data Access Engine (Back End)

Query Generation (Front End)

ArchitectureData Retrieval Process

Metawrapper Wrapper DataSource

1. Construct query URL to contact metawrapper

http://biomediator.org/metawrapper?database=OMIM&entity=Phenotype&attribute=Name[value=narcolepsy]

ArchitectureData Retrieval Process

Metawrapper Wrapper DataSource

1. Construct query URL to contact metawrapper

2. Construct query URL to contact wrapper

http://biomediator.org/omim_wrapper?term=narcolepsy[GENE]+or+narcolepsy[TITL]+or+narcolepsy[WORD]

ArchitectureData Retrieval Process

Metawrapper Wrapper DataSource

1. Construct query URL to contact metawrapper

2. Construct query URL to contact wrapper

3. Request data using native API of remote data source

ArchitectureData Retrieval Process

Metawrapper Wrapper DataSource

1. Construct query URL to contact metawrapper

2. Construct query URL to contact wrapper

3. Request data using native API of remote data source

4. Retrieve data in native format from remote data source

ArchitectureData Retrieval Process

Metawrapper Wrapper DataSource

1. Construct query URL to contact metawrapper

2. Construct query URL to contact wrapper

3. Request data using native API of remote data source

4. Retrieve data in native format from remote data source

Syntactic Translation Step

ArchitectureData Retrieval Process

Metawrapper Wrapper DataSource

1. Construct query URL to contact metawrapper

2. Construct query URL to contact wrapper

3. Request data using native API of remote data source

4. Retrieve data in native format from remote data source

5. Return XML-formatted query results to the metawrapper

Syntactic Translation Step

ArchitectureData Retrieval Process

Metawrapper Wrapper DataSource

1. Construct query URL to contact metawrapper

2. Construct query URL to contact wrapper

3. Request data using native API of remote data source

4. Retrieve data in native format from remote data source

5. Return XML-formatted query results to the metawrapper

Symantic Translation Step Syntactic Translation Step

ArchitectureData Retrieval Process

Metawrapper Wrapper DataSource

1. Construct query URL to contact metawrapper

2. Construct query URL to contact wrapper

3. Request data using native API of remote data source

4. Retrieve data in native format from remote data source

5. Return XML-formatted query results to the metawrapper

6. Return XML-formatted query results to Tukwila

Symantic Translation Step Syntactic Translation Step

Forward Mapping RulesQuery URL

database.add("OMIM");entity.add("Phenotype");attributes.add("Name[value=narcolepsy]");query.put(ForwardRules.PARAM_ATTRIBUTE, attributes);query.put(ForwardRules.PARAM_ENTITY, entity);query.put(ForwardRules.PARAM_DATABASE, database);String metawrapperURL = constructMetawrapperURL(query);

http://biomediator.org/metawrapper?database= OMIM &entity= Phenotype &attribute= Name[value=narcolepsy]

Rules API

Databases

OMIM Ph

Entity

Mediated Schema (SKB)

Name Organism Source/

DB Source/ID

Attributes

+

<database xid="id-omim-db"> <database_name>OMIM</database_name> <url_format><![CDATA[ http://biomediator.org/omim_wrapper ]]></url_format> <entity xref="id-omim-entity-phenotype" /> <entity xref="id-omim-entity-gene" /></database>

<entity xid="id-omim-entity-phenotype"> <entity_name>Phenotype</entity_name> <attribute xref="id-omim-attrib-phenotype-organism" /> <attribute xref="id-omim-attrib-phenotype-name" /></entity>

<attribute xid="id-omim-attrib-phenotype-name"> <attribute_name>Name</attribute_name> <term xref="id-omim-term-text" /></attribute>

<term xid="id-omim-term-text"> <term_name>term</term_name> <url_format><![CDATA[ db=protein&term=${term_value} [GENE]+or+${term_value}[TITLE]+or+${term_value}[WORD] ]]> </url_format></term>

E E Entity

AA A Attribute

TermTT T T

D Database

Forward Mapping Rules

<database xid="id-omim-db"> <database_name>OMIM</database_name> <url_format><![CDATA[ http://biomediator.org/omim_wrapper ]]></url_format> <entity xref="id-omim-entity-phenotype" /> <entity xref="id-omim-entity-gene" /></database>

<entity xid="id-omim-entity-phenotype"> <entity_name>Phenotype</entity_name> <attribute xref="id-omim-attrib-phenotype-organism" /> <attribute xref="id-omim-attrib-phenotype-name" /></entity>

<attribute xid="id-omim-attrib-phenotype-name"> <attribute_name>Name</attribute_name> <term xref="id-omim-term-text" /></attribute>

<term xid="id-omim-term-text"> <term_name>term</term_name> <url_format><![CDATA[ db=protein&term=${term_value} [GENE]+or+${term_value}[TITLE]+or+${term_value}[WORD] ]]> </url_format></term>

E E Entity

AA A Attribute

TermTT T T

D Database

Forward Mapping Rules

http://biomediator.org/omim_wrapper?

<database xid="id-omim-db"> <database_name>OMIM</database_name> <url_format><![CDATA[ http://biomediator.org/omim_wrapper ]]></url_format> <entity xref="id-omim-entity-phenotype" /> <entity xref="id-omim-entity-gene" /></database>

<entity xid="id-omim-entity-phenotype"> <entity_name>Phenotype</entity_name> <attribute xref="id-omim-attrib-phenotype-organism" /> <attribute xref="id-omim-attrib-phenotype-name" /></entity>

<attribute xid="id-omim-attrib-phenotype-name"> <attribute_name>Name</attribute_name> <term xref="id-omim-term-text" /></attribute>

<term xid="id-omim-term-text"> <term_name>term</term_name> <url_format><![CDATA[ db=protein&term=${term_value} [GENE]+or+${term_value}[TITLE]+or+${term_value}[WORD] ]]> </url_format></term>

E E Entity

AA A Attribute

TermTT T T

D Database

Forward Mapping Rules

http://biomediator.org/omim_wrapper?

<database xid="id-omim-db"> <database_name>OMIM</database_name> <url_format><![CDATA[ http://biomediator.org/omim_wrapper ]]></url_format> <entity xref="id-omim-entity-phenotype" /> <entity xref="id-omim-entity-gene" /></database>

<entity xid="id-omim-entity-phenotype"> <entity_name>Phenotype</entity_name> <attribute xref="id-omim-attrib-phenotype-organism" /> <attribute xref="id-omim-attrib-phenotype-name" /></entity>

<attribute xid="id-omim-attrib-phenotype-name"> <attribute_name>Name</attribute_name> <term xref="id-omim-term-text" /></attribute>

<term xid="id-omim-term-text"> <term_name>term</term_name> <url_format><![CDATA[ db=protein&term=${term_value} [GENE]+or+${term_value}[TITLE]+or+${term_value}[WORD] ]]> </url_format></term>

E E Entity

AA A Attribute

TermTT T T

D Database

Forward Mapping Rules

http://biomediator.org/omim_wrapper?

<database xid="id-omim-db"> <database_name>OMIM</database_name> <url_format><![CDATA[ http://biomediator.org/omim_wrapper ]]></url_format> <entity xref="id-omim-entity-phenotype" /> <entity xref="id-omim-entity-gene" /></database>

<entity xid="id-omim-entity-phenotype"> <entity_name>Phenotype</entity_name> <attribute xref="id-omim-attrib-phenotype-organism" /> <attribute xref="id-omim-attrib-phenotype-name" /></entity>

<attribute xid="id-omim-attrib-phenotype-name"> <attribute_name>Name</attribute_name> <term xref="id-omim-term-text" /></attribute>

<term xid="id-omim-term-text"> <term_name>term</term_name> <url_format><![CDATA[ db=protein&term=${term_value} [GENE]+or+${term_value}[TITLE]+or+${term_value}[WORD] ]]> </url_format></term>

E E Entity

AA A Attribute

TermTT T T

D Database

Forward Mapping Rules

http://biomediator.org/omim_wrapper?

<database xid="id-omim-db"> <database_name>OMIM</database_name> <url_format><![CDATA[ http://biomediator.org/omim_wrapper ]]></url_format> <entity xref="id-omim-entity-phenotype" /> <entity xref="id-omim-entity-gene" /></database>

<entity xid="id-omim-entity-phenotype"> <entity_name>Phenotype</entity_name> <attribute xref="id-omim-attrib-phenotype-organism" /> <attribute xref="id-omim-attrib-phenotype-name" /></entity>

<attribute xid="id-omim-attrib-phenotype-name"> <attribute_name>Name</attribute_name> <term xref="id-omim-term-text" /></attribute>

<term xid="id-omim-term-text"> <term_name>term</term_name> <url_format><![CDATA[ db=protein&term=${term_value} [GENE]+or+${term_value}[TITLE]+or+${term_value}[WORD] ]]> </url_format></term>

E E Entity

AA A Attribute

TermTT T T

D Database

Forward Mapping Rules

http://biomediator.org/omim_wrapper?

<database xid="id-omim-db"> <database_name>OMIM</database_name> <url_format><![CDATA[ http://biomediator.org/omim_wrapper ]]></url_format> <entity xref="id-omim-entity-phenotype" /> <entity xref="id-omim-entity-gene" /></database>

<entity xid="id-omim-entity-phenotype"> <entity_name>Phenotype</entity_name> <attribute xref="id-omim-attrib-phenotype-organism" /> <attribute xref="id-omim-attrib-phenotype-name" /></entity>

<attribute xid="id-omim-attrib-phenotype-name"> <attribute_name>Name</attribute_name> <term xref="id-omim-term-text" /></attribute>

<term xid="id-omim-term-text"> <term_name>term</term_name> <url_format><![CDATA[ db=protein&term=${term_value} [GENE]+or+${term_value}[TITLE]+or+${term_value}[WORD] ]]> </url_format></term>

E E Entity

AA A Attribute

TermTT T T

D Database

Forward Mapping Rules

http://biomediator.org/omim_wrapper?

<database xid="id-omim-db"> <database_name>OMIM</database_name> <url_format><![CDATA[ http://biomediator.org/omim_wrapper ]]></url_format> <entity xref="id-omim-entity-phenotype" /> <entity xref="id-omim-entity-gene" /></database>

<entity xid="id-omim-entity-phenotype"> <entity_name>Phenotype</entity_name> <attribute xref="id-omim-attrib-phenotype-organism" /> <attribute xref="id-omim-attrib-phenotype-name" /></entity>

<attribute xid="id-omim-attrib-phenotype-name"> <attribute_name>Name</attribute_name> <term xref="id-omim-term-text" /></attribute>

<term xid="id-omim-term-text"> <term_name>term</term_name> <url_format><![CDATA[ db=protein&term=${term_value} [GENE]+or+${term_value}[TITLE]+or+${term_value}[WORD] ]]> </url_format></term>

E E Entity

AA A Attribute

TermTT T T

D Database

Forward Mapping Rules

http://biomediator.org/omim_wrapper?

<database xid="id-omim-db"> <database_name>OMIM</database_name> <url_format><![CDATA[ http://biomediator.org/omim_wrapper ]]></url_format> <entity xref="id-omim-entity-phenotype" /> <entity xref="id-omim-entity-gene" /></database>

<entity xid="id-omim-entity-phenotype"> <entity_name>Phenotype</entity_name> <attribute xref="id-omim-attrib-phenotype-organism" /> <attribute xref="id-omim-attrib-phenotype-name" /></entity>

<attribute xid="id-omim-attrib-phenotype-name"> <attribute_name>Name</attribute_name> <term xref="id-omim-term-text" /></attribute>

<term xid="id-omim-term-text"> <term_name>term</term_name> <url_format><![CDATA[ db=protein&term=${term_value} [GENE]+or+${term_value}[TITLE]+or+${term_value}[WORD] ]]> </url_format></term>

E E Entity

AA A Attribute

TermTT T T

D Database

Forward Mapping Rules

http://biomediator.org/omim_wrapper?

<database xid="id-omim-db"> <database_name>OMIM</database_name> <url_format><![CDATA[ http://biomediator.org/omim_wrapper ]]></url_format> <entity xref="id-omim-entity-phenotype" /> <entity xref="id-omim-entity-gene" /></database>

<entity xid="id-omim-entity-phenotype"> <entity_name>Phenotype</entity_name> <attribute xref="id-omim-attrib-phenotype-organism" /> <attribute xref="id-omim-attrib-phenotype-name" /></entity>

<attribute xid="id-omim-attrib-phenotype-name"> <attribute_name>Name</attribute_name> <term xref="id-omim-term-text" /></attribute>

<term xid="id-omim-term-text"> <term_name>term</term_name> <url_format><![CDATA[ db=protein&term=${term_value} [GENE]+or+${term_value}[TITLE]+or+${term_value}[WORD] ]]> </url_format></term>

E E Entity

AA A Attribute

TermTT T T

D Database

db = protein & term= narcolepsy[GENE]+or+narcolepsy[TITL]+or+narcolepsy[WORD]

Forward Mapping Rules

Reverse Mapping RulesReverse Mapping Rules(applied by metawrapper)

Metawrapper Output(XML document)

Wrapper Output(XML document)

<metawrapper_source>

<Phenotype xid=”1">

<Name>HYPOCRETIN; HCRT</Name>

<Name>OREXIN; OX</Name> <Name>PREPROOREXIN</Name>

<Source> <DB>OMIM</DB> <ID>602358</ID> </Source>

</Phenotype> . . .</metawrapper_source>

<omim_source>

<disease>

<mimType>star</mimType>

<title>HYPOCRETIN; HCRT</title>

<alias>OREXIN; OX</alias> <alias>PREPROOREXIN</alias>

<mimNum>602358</mimNum>

</disease> . . .</omim_source>

<rule xid="id_omim-rule"> <match path="/omim_source"> <match path="/omim_source/disease"> <pre> <define type="entity" key="$pheno" name="Phenotype" /> <define type="string" key="$mim_num" /> </pre> <match path="/omim_source/disease/title"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/alias"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/mimNum"> <set key="$mim_num" input="*content" /> <append path="/Source" setnode="true" key="$pheno" /> <append path="ID" input="$mim_num" setnode="false" key="$pheno" /> <append path="DB" input="OMIM" setnode="false" key="$pheno" /> </match> </match> </match></rule>

Reverse Mapping RulesReverse Mapping Rules(applied by metawrapper)

Metawrapper Output(XML document)

Wrapper Output(XML document)

<metawrapper_source>

<Phenotype xid=”1">

<Name>HYPOCRETIN; HCRT</Name>

<Name>OREXIN; OX</Name> <Name>PREPROOREXIN</Name>

<Source> <DB>OMIM</DB> <ID>602358</ID> </Source>

</Phenotype> . . .</metawrapper_source>

<omim_source>

<disease>

<mimType>star</mimType>

<title>HYPOCRETIN; HCRT</title>

<alias>OREXIN; OX</alias> <alias>PREPROOREXIN</alias>

<mimNum>602358</mimNum>

</disease> . . .</omim_source>

<rule xid="id_omim-rule"> <match path="/omim_source"> <match path="/omim_source/disease"> <pre> <define type="entity" key="$pheno" name="Phenotype" /> <define type="string" key="$mim_num" /> </pre> <match path="/omim_source/disease/title"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/alias"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/mimNum"> <set key="$mim_num" input="*content" /> <append path="/Source" setnode="true" key="$pheno" /> <append path="ID" input="$mim_num" setnode="false" key="$pheno" /> <append path="DB" input="OMIM" setnode="false" key="$pheno" /> </match> </match> </match></rule>

Reverse Mapping RulesReverse Mapping Rules(applied by metawrapper)

Metawrapper Output(XML document)

Wrapper Output(XML document)

<metawrapper_source>

<Phenotype xid=”1">

<Name>HYPOCRETIN; HCRT</Name>

<Name>OREXIN; OX</Name> <Name>PREPROOREXIN</Name>

<Source> <DB>OMIM</DB> <ID>602358</ID> </Source>

</Phenotype> . . .</metawrapper_source>

<omim_source>

<disease>

<mimType>star</mimType>

<title>HYPOCRETIN; HCRT</title>

<alias>OREXIN; OX</alias> <alias>PREPROOREXIN</alias>

<mimNum>602358</mimNum>

</disease> . . .</omim_source>

<rule xid="id_omim-rule"> <match path="/omim_source"> <match path="/omim_source/disease"> <pre> <define type="entity" key="$pheno" name="Phenotype" /> <define type="string" key="$mim_num" /> </pre> <match path="/omim_source/disease/title"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/alias"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/mimNum"> <set key="$mim_num" input="*content" /> <append path="/Source" setnode="true" key="$pheno" /> <append path="ID" input="$mim_num" setnode="false" key="$pheno" /> <append path="DB" input="OMIM" setnode="false" key="$pheno" /> </match> </match> </match></rule>

Reverse Mapping RulesReverse Mapping Rules(applied by metawrapper)

Metawrapper Output(XML document)

Wrapper Output(XML document)

<metawrapper_source>

<Phenotype xid=”1">

<Name>HYPOCRETIN; HCRT</Name>

<Name>OREXIN; OX</Name> <Name>PREPROOREXIN</Name>

<Source> <DB>OMIM</DB> <ID>602358</ID> </Source>

</Phenotype> . . .</metawrapper_source>

<omim_source>

<disease>

<mimType>star</mimType>

<title>HYPOCRETIN; HCRT</title>

<alias>OREXIN; OX</alias> <alias>PREPROOREXIN</alias>

<mimNum>602358</mimNum>

</disease> . . .</omim_source>

<rule xid="id_omim-rule"> <match path="/omim_source"> <match path="/omim_source/disease"> <pre> <define type="entity" key="$pheno" name="Phenotype" /> <define type="string" key="$mim_num" /> </pre> <match path="/omim_source/disease/title"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/alias"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/mimNum"> <set key="$mim_num" input="*content" /> <append path="/Source" setnode="true" key="$pheno" /> <append path="ID" input="$mim_num" setnode="false" key="$pheno" /> <append path="DB" input="OMIM" setnode="false" key="$pheno" /> </match> </match> </match></rule>

Reverse Mapping RulesReverse Mapping Rules(applied by metawrapper)

Metawrapper Output(XML document)

Wrapper Output(XML document)

<metawrapper_source>

<Phenotype xid=”1">

<Name>HYPOCRETIN; HCRT</Name>

<Name>OREXIN; OX</Name> <Name>PREPROOREXIN</Name>

<Source> <DB>OMIM</DB> <ID>602358</ID> </Source>

</Phenotype> . . .</metawrapper_source>

<omim_source>

<disease>

<mimType>star</mimType>

<title>HYPOCRETIN; HCRT</title>

<alias>OREXIN; OX</alias> <alias>PREPROOREXIN</alias>

<mimNum>602358</mimNum>

</disease> . . .</omim_source>

<rule xid="id_omim-rule"> <match path="/omim_source"> <match path="/omim_source/disease"> <pre> <define type="entity" key="$pheno" name="Phenotype" /> <define type="string" key="$mim_num" /> </pre> <match path="/omim_source/disease/title"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/alias"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/mimNum"> <set key="$mim_num" input="*content" /> <append path="/Source" setnode="true" key="$pheno" /> <append path="ID" input="$mim_num" setnode="false" key="$pheno" /> <append path="DB" input="OMIM" setnode="false" key="$pheno" /> </match> </match> </match></rule>

Reverse Mapping RulesReverse Mapping Rules(applied by metawrapper)

Metawrapper Output(XML document)

Wrapper Output(XML document)

<metawrapper_source>

<Phenotype xid=”1">

<Name>HYPOCRETIN; HCRT</Name>

<Name>OREXIN; OX</Name> <Name>PREPROOREXIN</Name>

<Source> <DB>OMIM</DB> <ID>602358</ID> </Source>

</Phenotype> . . .</metawrapper_source>

<omim_source>

<disease>

<mimType>star</mimType>

<title>HYPOCRETIN; HCRT</title>

<alias>OREXIN; OX</alias> <alias>PREPROOREXIN</alias>

<mimNum>602358</mimNum>

</disease> . . .</omim_source>

<rule xid="id_omim-rule"> <match path="/omim_source"> <match path="/omim_source/disease"> <pre> <define type="entity" key="$pheno" name="Phenotype" /> <define type="string" key="$mim_num" /> </pre> <match path="/omim_source/disease/title"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/alias"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/mimNum"> <set key="$mim_num" input="*content" /> <append path="/Source" setnode="true" key="$pheno" /> <append path="ID" input="$mim_num" setnode="false" key="$pheno" /> <append path="DB" input="OMIM" setnode="false" key="$pheno" /> </match> </match> </match></rule>

Reverse Mapping RulesReverse Mapping Rules(applied by metawrapper)

Metawrapper Output(XML document)

Wrapper Output(XML document)

<metawrapper_source>

<Phenotype xid=”1">

<Name>HYPOCRETIN; HCRT</Name>

<Name>OREXIN; OX</Name> <Name>PREPROOREXIN</Name>

<Source> <DB>OMIM</DB> <ID>602358</ID> </Source>

</Phenotype> . . .</metawrapper_source>

<omim_source>

<disease>

<mimType>star</mimType>

<title>HYPOCRETIN; HCRT</title>

<alias>OREXIN; OX</alias> <alias>PREPROOREXIN</alias>

<mimNum>602358</mimNum>

</disease> . . .</omim_source>

<rule xid="id_omim-rule"> <match path="/omim_source"> <match path="/omim_source/disease"> <pre> <define type="entity" key="$pheno" name="Phenotype" /> <define type="string" key="$mim_num" /> </pre> <match path="/omim_source/disease/title"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/alias"> <append path="/Name" input="*content" setnode="false" key="$pheno" /> </match> <match path="/omim_source/disease/mimNum"> <set key="$mim_num" input="*content" /> <append path="/Source" setnode="true" key="$pheno" /> <append path="ID" input="$mim_num" setnode="false" key="$pheno" /> <append path="DB" input="OMIM" setnode="false" key="$pheno" /> </match> </match> </match></rule>

Future PlansTools for Biologists

Forward Rules

File:

JDBC:

Rules.xml

Validate w/XML Schema

Schema.dtd

Load Save

Session Log

Plug-in version 1.03

Loaded DTD: Schema.dtdLoading file: Rules.xmlValidating file: Rules.xml

Saving file: Rules.xml

XVC

Forward Rule Set

Gene

Phenotype

Name

OMIM

LocusLink

Organism

termEdit Entity

NameOrganism

Attribute Group

Min:

Max:

1

2

OK

Reverse Rules

<omim_schema> <error /> <disease> <mimNumber /> <mimType /> <title /> <alias /> <gene> <symbol /> <locus /> </gene>

<mediated_schema> <Phenotype> <Name /> <Organism /> <Source> <DB /> <ID /> </Source> </Phenotype> <Gene> <Name /> <Locus />

Append

Link

<rule xid="id_omim-rule"> <match path="/omim_source"> <match path="/omim_source/disease"> <pre> <define type="entity" key="$pheno" name="Phenotype" />

<disease> <Phenotype />

Match

Summary

•Simplicity

•Specialization

•Division of Labor

•Easy to Extend

Questions