- From: Alan Ruttenberg <alanruttenberg@gmail.com>
- Date: Wed, 8 Mar 2006 19:10:25 -0500
- To: systemsbiology <public-semweb-lifesci@w3.org>
In the teleconference there was some interest in poking around my
example code for doing sparql and I said I would send a pointer to it.
The code lives at http://svn.mumble.net:8080/svn/lsw/trunk
If you check it out (with svn co http://svn.mumble.net:8080/svn/lsw/
trunk) you will see README.txt with some information on running it.
What this is doing is described a bit at http://karma.med.harvard.edu/
wiki/Debugging_the_bug
Start it up:
./abcl
(load "start")
Some instructions will print out when you start it up. You might want
to skip most of them and do just
(owl-load-combined)
(do-some-queries)
if you are only interested in the sparql aspect of things.
You should see something like the listing at the end of this message.
If anyone actually tries this and wants to work more with it I will
be happy to spend more time documenting and helping out, give write
access to the repository, etc.
Regards,
Alan
What small molecules are associated with KEGG id C00645?
---- Query (lisp) ----
(sparql '(:select (?mol) nil (?mol "bug:classifiedByKEGG" ?kegg)
(?kegg "bug:hasID" "C00645"))
:use-reasoner
t)
---- Query (sparql) ----
SELECT ?mol
WHERE {
?mol <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#classifiedByKEGG> ?kegg.
?kegg <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#hasID> "C00645". }
---- Result ----
(("http://gcrg.ucsd.edu/ijr904/acmana")
("http://ecocyc.org/compound/n-acetyl-d-mannosamine"))
================================================================
What small molecules have the chemical formula c6h15o9p, and what are
their names, cas, kegg ids?
---- Query (lisp) ----
(sparql '(:select (?name ?cas ?kegg) (:distinct t)
(?formula "bug:hasFormula" "c6h15o9p")
(?mol "bug:hasChemicalFormula" ?formula)
(?mol "bug:hasName" ?name)
(:optional (?mol "bug:definedByCAS" ?casf)
(?casf "bug:hasID" ?cas))
(:optional (?mol "bug:classifiedByKEGG" ?keggf)
(?keggf "bug:hasID" ?kegg)))
:use-reasoner
t)
---- Query (sparql) ----
SELECT DISTINCT ?name ?cas ?kegg
WHERE {
?formula <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#hasFormula> "c6h15o9p".
?mol <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#hasChemicalFormula> ?formula.
?mol <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#hasName> ?name.
OPTIONAL {
?mol <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#definedByCAS> ?casf.
?casf <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#hasID> ?cas. }.
OPTIONAL {
?mol <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#classifiedByKEGG> ?keggf.
?keggf <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#hasID> ?kegg. }.}
---- Result ----
INFO: This is not an ABox query:
org.mindswap.pellet.exceptions.UnsupportedQueryException: Nested
query patterns are not supported
(("mannitol-1-phosphate" "15806-48-1" nil)
("Galactitol 1-phosphate" nil "C06311")
("galactitol-1-phosphate" nil nil)
("D-sorbitol 6-phosphate" "108392-12-7" "C01096")
("D-Sorbitol 6-phosphate" "108392-12-7" "C01096")
("D-Mannitol 1-phosphate" nil "C00644"))
================================================================
Which pairs (only show 10) of molecules have the same name? don't use
reasoner here - it has a bug
---- Query (lisp) ----
(sparql '(:select (?mol1 ?mol2 ?name) (:limit 10)
(?mol1 "bug:hasName" ?name) (?mol2 "bug:hasName" ?name)
(:filter (not (equal ?mol1 ?mol2))))
:use-reasoner
nil)
---- Query (sparql) ----
SELECT ?mol1 ?mol2 ?name
WHERE {
?mol1 <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#hasName> ?name.
?mol2 <http://karma.med.harvard.edu/wiki/Debugging_the_bug/
bug.owl#hasName> ?name.
FILTER (!((?mol1 = ?mol2)))} LIMIT 10
---- Result ----
(("http://gcrg.ucsd.edu/ijr904/dxyl5p"
"http://ecocyc.org/compound/deoxyxylulose-5p"
"1-deoxy-D-xylulose 5-phosphate")
("http://ecocyc.org/compound/ctp" "http://gcrg.ucsd.edu/ijr904/ctp"
....
Received on Thursday, 9 March 2006 00:10:59 UTC