First experiments with DERI Semantic Web pipes: pharma mashup

At the moment I am experimenting with the DERI Semantic Pipes application 
(http://pipes.deri.org:8080) for life science scenarios.
I added a pipe that takes a CAS number (a standardized number indentifying 
chemical compounds) and aggregates data about the corresponding compound 
from two SPARQL endpoints: DBpedia (derived from Wikipedia) and the OWL 
version of the PDSP ligand-receptor interaction database (the latter was 
created by me and hosted on an endpoint of the Yale Center for Medical 
Informatics). Since the current pipes application does not allow us to use 
variables / parameters, I used the CAS number 79617-96-2 (identifying the 
antidepressant Sertraline) for this exemplary pipe.

You can run the pipe with
http://pipes.deri.org:8080/pipes/Pipes/?id=pharma_mashup

(of course, the URL/output of this pipe could now be used as the input of 
another pipe)

Essentially, the pipe just aggregates the results of the following two 
queries (one against the DBpedia endpoint, one against the endpoint of the 
Yale Center for Medical Informatics):

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbpedia_p: <http://dbpedia.org/property/>

CONSTRUCT {
?chemical a ?chemicaltype ;
  rdfs:comment ?comment ;
  dbpedia_p:iupacName ?iupac_name ;
  dbpedia_p:metabolism ?metabolism;
  dbpedia_p:excretion ?excretion;
  dbpedia_p:eliminationHalfLife ?halflife .
}
WHERE {
?chemical  <http://dbpedia.org/property/casNumber> "79617-96-2"@en .
?chemical a ?chemicaltype ;
  rdfs:comment ?comment ;
  dbpedia_p:iupacName ?iupac_name ;
  dbpedia_p:metabolism ?metabolism;
  dbpedia_p:excretion ?excretion;
  dbpedia_p:eliminationHalfLife ?halflife .
FILTER langMatches( lang(?comment), "en" )}




PREFIX neurondb: <http://purl.org/ycmi/senselab/neuron_ontology.owl#>
PREFIX obo_essentials: <http://purl.org/zen/obo_essentials.owl#>
PREFIX ro:
<http://www.obofoundry.org/ro/ro.owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX pdsp_ki: <http://purl.org/ycmi/ki/core.owl#>

CONSTRUCT {
?receptor a ?receptorclass .
?receptorclass rdfs:label ?receptorclasslabel .
?ligand a ?ligand_class .
?process a obo_essentials:GO_0005488_process .
?process ro:has_participant ?receptor .
?process ro:has_participant ?ligand .
?process rdfs:comment ?process_comment .
?ligand_class foaf:page ?ligand_weblink .
?process foaf:page ?pubmed_weblink .
}

FROM <http://purl.org/ycmi/ki/core.owl>
FROM <http://purl.org/ycmi/senselab/neuron_ontology.owl>

WHERE  {
?ligand_class pdsp_ki:cas_number "79617-96-2".
?receptor a ?receptorclass .
?receptorclass rdfs:label ?receptorclasslabel .
?ligand a ?ligand_class .
?process a obo_essentials:GO_0005488_process .
?process ro:has_participant ?receptor .
?process ro:has_participant ?ligand .
?process rdfs:comment ?process_comment .
?ligand_class foaf:page ?ligand_weblink .
?process foaf:page ?pubmed_weblink .
}

LIMIT 5



More sophisticated examples will follow when an extended set of pipe 
operators becomes available.

cheers,
Matthias Samwald

Received on Monday, 12 November 2007 11:06:28 UTC