Pathway work/Queries

Contents

Conversations/Documents

Query languages

There are different ways to query OWL. Here are some pointers to information about them

OWL expressions

An OWL expression can be used as a query, by asking for equivalent classes, superclasses, subclasses, instances, etc. Protege has a tab that lets you execute such queries. The query below is an example, where the class expression is given in manchester syntax. It asks for process that are part of nuclear import (GO:0051170).

Image:Nuclear-import-dl-query.png

SPARQL/SPARLQ-DL

SPARQL doesn't, by default, use OWL semantics, but the Pellet reasoner has such support. google: pellet sparql dl

An interesting recent development is the terp syntax, which makes it easier to write class expression for the SPARQL queries that Pellet can handle. Below is an example of a SPARQL query using terp syntax, that asks for processes that have participants irf7pirf7p,

PREFIX oborel: <http://www.obofoundry.org/ro/ro.owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?class ?label
WHERE { 
?class rdfs:subClassOf (oborel:has_participant some <http://purl.org/obo/owl/PRO#submitted_irf7pirf7p>) . 
?class rdfs:label ?label . } 

which returned the following results

!obo:IDO_0010024	"IRF7p + IRF7p -> IRF7pIRF7p"
!obo:IDO_0010030	"IRF7pIRF7p + IMPalpha4 -> IRF7pIRF7pIMPalpha4"

You can try this query in the DL Query tab with: 'has participant' some IRF7p+IRF7p