- From: Matthias Samwald <samwald@gmx.at>
- Date: Mon, 12 Nov 2007 12:05:30 +0100
- To: <public-semweb-lifesci@w3.org>, <semanticwebpipes@lists.deri.org>
- Cc: "Kei Cheung" <kei.cheung@yale.edu>, "Giovanni Tummarello" <giovanni.tummarello@deri.org>
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