Generating Application Ontologies from Reference Ontologies Marianne Shaw Todd Detwiler Jim Brinkley...

26
Generating Application Ontologies from Reference Ontologies Marianne Shaw Todd Detwiler Jim Brinkley Dan Suciu University of Washington
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    218
  • download

    1

Transcript of Generating Application Ontologies from Reference Ontologies Marianne Shaw Todd Detwiler Jim Brinkley...

Generating Application Ontologies from Reference

OntologiesMarianne Shaw

Todd Detwiler

Jim Brinkley

Dan Suciu

University of Washington

Motivation

• Growing # of specialized ontologies• Open Biomedical Ontologies (OBO), >50 ontologies• Unified Medical Language System (UMLS), >90 ontologies

• Link ontologies via reference ontologies• Reference ontologies are:

– Large• e.g. Foundational Model of Anatomy (FMA)

– 75,000 classes; 120,000 terms; 168 relationship types; – >2.1 million relationship instances

– Complex– Comprehensive

Problem Statement

• How can we enable large ontologies to be used to create application ontologies?

Problem Statement

• How can we enable large ontologies to be used to create application ontologies?

• Approach: Add Views to SPARQL

Outline

• Motivation / Problem Statement• SPARQL • Our Solution: vSPARQL

– Subqueries– Recursive Queries– Skolem Functions

• Radiology Example• Related Work• Conclusions

The Basics: SPARQL

• SPARQL: W3C’s standard for querying RDF– RDF: (subject, predicate, object) triples

• Simple SPARQL query over FMA– Creates a new RDF graph– “Get direct properties of liver”

PREFIX fma: <http://.../fma_1_4_0#>

CONSTRUCT { fma:Liver ?y ?z }FROM <http://.../fma_1_4_0>WHERE { fma:Liver ?y ?z }

Outline

• Motivation / Problem Statement• SPARQL • Our Solution: vSPARQL

– Subqueries– Recursive Queries– Skolem Functions

• Radiology Example• Related Work• Conclusions

vSPARQL

• Extend SPARQL to support views

• Extensions enable three types of functionality– Querying over existing queries– Gathering subgraphs of an ontology– Creating new data by combining data from

multiple ontologies

Subqueries: Querying over an existing query

• Alice’s ontology contains info queried from FMA– “Get organs & their direct

properties”

Query1Alice’s OrganOntology

FMA

CONSTRUCT { ?sub ?prop ?val }FROM <http://.../fma_1_4_0>WHERE { ?sub rdfs:subClassOf fma:Organ . ?sub ?prop ?val}

Subqueries: Querying over an existing query

• Alice’s ontology contains info queried from FMA

• Bob only interested in Alice’s info about liver

• Subqueries allow us to query existing queries

Query1Alice’s OrganOntology

FMA

Query2Bob’s LiverOntology

FROM NAMED <subquery> [ CONSTRUCT { … } WHERE { … }]

Subqueries: Querying over an existing query

• Bob only interested in Alice’s info about liver

Query1Alice’s OrganOntology

FMA

Query2Bob’s LiverOntology CONSTRUCT { fma:Liver ?lprop ?lval }

FROM <alice_ontology> [ CONSTRUCT { ?sub ?prop ?val } FROM <http://.../fma_1_4_0> WHERE { ?sub rdfs:subClassOf fma:Organ . ?sub ?prop ?val . }]WHERE { fma:Liver ?lprop ?lval .}

Recursive queries: Gathering subgraphs

• What if we only want a portion of an ontology?

…… …

Recursive queries: Gathering subgraphs

• What if we only want a portion of an ontology?– Only want parts of the liver

…… …

Liver

Recursive queries: Gathering subgraphs

• What if we only want a portion of an ontology?– Only want parts of the liver

Recursive queries allow us to query for arbitrary subgraphs…

… ……

Liver

FROM NAMED <recursive_liver> [ CONSTRUCT { … } WHERE { … }

UNION

CONSTRUCT { … } FROM <recursive_liver> WHERE { GRAPH <recursive_liver> { … } }]

Base case

Recursive case

Recursive example: All parts of the liver

…… …

Liver

CONSTRUCT { ?sub ?prop ?obj . }FROM NAMED <recursive_liver> [

CONSTRUCT { fma:Liver fma:part ?obj . } FROM <http://.../fma_1_4_0> WHERE { fma:Liver fma:part ?obj . }

UNION

CONSTRUCT {?c fma:part ?d} FROM <http://.../fma_1_4_0> FROM NAMED <recursive_liver> WHERE { GRAPH <recursive_liver> { ?a ?b ?c . } . ?c fma:part ?d . }]WHERE { GRAPH <recursive_liver> { ?sub ?prop ?obj } }

// Base: Direct parts of liver

// Recursive: Transitively, parts of liver

Skolem Functions: Combining data from two ontologies

• Ontology of Physics for Biology (OPB)

• FMA

FMA

OPB

AorticBlood

Pressure

FluidPressure

Skolem Functions: Combining data from two ontologies

• OPB• FMA• Combine

OPB:FluidPressure, FMA:AorticBlood

FMA

OPB

AorticBlood

Pressure

FluidPressure

AorticBloodPressure

Skolem Functions: Combining data from two ontologies

• OPB• FMA• Combine

OPB:FluidPressure, FMA:AorticBlood

Skolem Functions generate new nodes from queried info

FMA

OPB

AorticBlood

Pressure

FluidPressure

AorticBloodPressure

[[ <skolem_function_url>(arg1, ...) ]]

Skolem Functions: Combining data from two ontologies

FMA

OPB

AorticBlood

Pressure

FluidPressure

AorticBloodPressure

PREFIX fma: <http://.../fma_1_4_0#> PREFIX opb: <http://.../opb#> PREFIX new: <http://.../new_ontology#>

CONSTRUCT { [[new:fma_phys(fma:Aortic_Blood,opb:FluidPressure)]] ?p_prop ?p_obj .}FROM NAMED <http://.../fma_1_4_0>FROM NAMED <http://.../opb>WHERE { GRAPH <http://.../fma_1_4_0> { fma:Aortic_Blood ?ab_prop ?ab_obj .} GRAPH <http://.../opb> { opb:FluidPressure ?p_prop ?p_obj .}}

Outline

• Motivation / Problem Statement• SPARQL • Our Solution: vSPARQL

– Subqueries– Recursive Queries– Skolem Functions

• Radiology Example• Related Work• Conclusions

Example: Radiology Ontology from FMAPREFIX dl: <http://.../fmaOwlDlComponent_1_4_0#> PREFIX new: <http://sig.biostr.washington.edu/radiologist/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> CONSTRUCT { [[new:fmaNode(?d)]] dl:part [[new:fmaNode(?f)]] . [[new:fmaNode(?g)]] rdfs:subClassOf [[new:fmaNode(dl:Organ)]] . [[new:fmaNode(?i)]] rdfs:subClassOf [[new:fmaNode(?j)]] . } FROM NAMED <extracted_ontology> [ CONSTRUCT { ?t ?u ?v . } FROM NAMED <liver_with_superclasses> [ CONSTRUCT { ?m ?n ?o . } FROM NAMED <liver_with_classes> [ CONSTRUCT { ?j dl:part ?k . ?k rdfs:subClassOf ?l . } FROM NAMED <subclass> [ CONSTRUCT {?x rdfs:subClassOf dl:Organ . dl:Organ rdfs:subClassOf ?w . ?y rdfs:subClassOf dl:Cardinal_organ_part . dl:Cardinal_organ_part rdfs:subClassOf ?z . } FROM <http://.../fmaOwlFullComponent_1_4_0> WHERE { { ?x rdfs:subClassOf dl:Organ . dl:Organ rdfs:subClassOf ?w . } UNION { ?y rdfs:subClassOf dl:Cardinal_organ_part . dl:Cardinal_organ_part rdfs:subClassOf ?z . } } UNION CONSTRUCT {?sub ?b ?a .} FROM NAMED <subclass> FROM NAMED <http://.../fmaOwlFullComponent_1_4_0> WHERE { GRAPH <subclass> { ?a ?b ?c . } . GRAPH <http://.../fmaOwlFullComponent_1_4_0> { ?sub ?b ?a . } . } ]

FROM NAMED <liver> [ CONSTRUCT {dl:Liver dl:part ?obj . ?prev dl:part dl:Liver . } FROM <http://.../fmaOwlFullComponent_1_4_0> WHERE {dl:Liver dl:part ?obj . ?prev dl:part dl:Liver . } UNION CONSTRUCT {?c dl:part ?d} FROM NAMED <liver> FROM NAMED <http://.../fmaOwlFullComponent_1_4_0> WHERE { GRAPH <liver> { ?a ?b ?c . } . GRAPH <http://.../fmaOwlFullComponent_1_4_0> { ?c dl:part ?d . } . } ] FROM <http://.../fmaOwlFullComponent_1_4_0> WHERE { GRAPH <liver> { ?j dl:part ?k . } . GRAPH <subclass> { ?k rdfs:subClassOf ?l .} . } ] WHERE { GRAPH <liver_with_classes> { ?m ?n ?o . } } UNION CONSTRUCT {?r rdfs:subClassOf ?s} FROM NAMED <liver_with_superclasses> FROM NAMED <http://.../fmaOwlFullComponent_1_4_0> WHERE { GRAPH <liver_with_superclasses> { ?p rdfs:subClassOf ?r . } . GRAPH <http://.../fmaOwlFullComponent_1_4_0> { ?r rdfs:subClassOf ?s . } . } ] WHERE { GRAPH <liver_with_superclasses> { ?t ?u ?v . } . } ] WHERE { GRAPH <extracted_ontology> { { ?d dl:part ?f . } UNION { ?g rdfs:subClassOf ?h . FILTER (?h = dl:Cavitated_organ || ?h = dl:Solid_organ) . } UNION { ?i rdfs:subClassOf ?j . FILTER (?h != dl:Cavitated_organ && ?h != dl:Solid_organ) . } } }

E

D

C

B

A

• All of the visible parts of the liver

Radiology Ontology Results<http://.../fma_1_4_0#Right_portal_vein> <http://.../fma_1_4_0#part> <http://.../fma_1_4_0#Anterior_branch_of_right_portal_vein> ; <http://.../fma_1_4_0#part> <http://.../fma_1_4_0#Caudate_lobe_branch_of_right_portal_vein> ; <http://.../fma_1_4_0#part> <http://.../fma_1_4_0#Trunk_of_right_portal_vein> ; <http://.../fma_1_4_0#part> <http://.../fma_1_4_0#Posterior_branch_of_right_portal_vein> .

<http://.../fma_1_4_0#Segment_of_liver> <http://.../fma_1_4_0#part> <http://.../fma_1_4_0#Subsegment_of_liver> .

<http://.../fma_1_4_0#Parenchymatous_organ> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://.../fma_1_4_0#Organ> .

<http://.../fma_1_4_0#Caudate_lobe_of_liver> <http://.../fma_1_4_0#part> <http://.../fma_1_4_0#Papillary_process_of_caudate_lobe_of_liver> ; <http://.../fma_1_4_0#part> <http://.../fma_1_4_0#Left_segment_of_caudate_lobe_of_liver> ; <http://.../fma_1_4_0#part> <http://.../fma_1_4_0#Caudate_process_of_caudate_lobe_of_liver> ;

Radiology Ontology Results

• FMA ontology size– 1.7 million RDF triples– 178MB text file

• Radiology Ontology size– 164 RDF triples– 38KB text file

Related WorkSubqueries• Schenk S. A SPARQL Semantics Based on Datalog. KI 2007:

Advances in Artificial Intelligence. Regular Expressions• Detwiler LT, Suciu D, Brinkley J. Regular paths in SPARQL:

Querying the NCI Thesaurus. AMIA’08.• Kochut K, Janik M. SPARQLer: Extended SPARQL for

Semantic Association Discovery. ESWC 2007.• Alkhateeb F, Baget JF, Euzenat J. RDF with Regular

Expressions. http://hal.inria.fr/inria-00144922/en.Views• Noy NF, Musen MA. Specifying Ontology Views by Traversal.

ISWC 2004.• Magkanaraki A, et al. Viewing the Semantic Web through RVL

lenses. ISWC 2003.• Miklos Z, et al. Querying Semantic Web Resources using

TRIPLE Views. ISWC 2003.

WrapUp

• Reference ontologies can be used to link together specialized ontologies

• Views can make large reference ontology datasets manageable

• vSPARQL extends SPARQL• Subqueries• Recursive queries• Skolem Functions

• vSPARQL can be used to generate application ontologies using views over reference ontologies

Questions?