- From: evan chua-yap <semwebfan@gmail.com>
- Date: Sun, 14 Aug 2011 20:37:25 -0400
- To: Jitao Yang <jitao.yang@gmail.com>
- Cc: "semantic-web@w3.org" <semantic-web@w3.org>
- Message-ID: <CAOaHUM=An7fzsxi5G0y42tyoJnfSfhU4dRwn27-dV3SRWznK=Q@mail.gmail.com>
The following query also works in ARQ 2.8.8: #filename: jitao3.rq PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX afn: <http://jena.hpl.hp.com/ARQ/function#> SELECT ?property WHERE{ ?x ?p "Peter Goodguy". BIND (afn:localname(?p) as ?property) } arq --data jitao.ttl --query jitao3.rq ------------ | property | ============ | "name" | ------------ if you're not using ARQ, check if your SPARQL processor offers something similar to Jena's /ARQ's afn:localname() function. Hope this helps! Evan Chua-Yap On Fri, Aug 12, 2011 at 2:58 PM, Jitao Yang <jitao.yang@gmail.com> wrote: > Thank you Mischa, > > but in this way, how to decompose ?Property out? Could you please write a > full query? > > Jitao > > > On Fri, Aug 12, 2011 at 19:20, Mischa Tuffield <mischa.tuffield@garlik.com > > wrote: > >> Excuse the top-post. >> >> You can brutal about it in SPARQL 1.0 and use filter regex. Something like >> : >> >> . FILTER ( regex( str(?p), "/http:\/\/xmlns\.com\/foaf/") ) >> >> It is kinda nasty, but will do the trick! >> >> Mischa >> >> Sent on the move >> >> On Aug 12, 2011, at 5:55 PM, Andy Seaborne <andy.seaborne@epimorphics.com> >> wrote: >> >> > >> > >> > On 12/08/11 17:36, Jitao Yang wrote: >> >> Dear all, >> >> >> >> suppose we have DATA: >> >> >> >> @prefix foaf: <http://xmlns.com/foaf/0.1/> . >> >> >> >> _:a foaf:name "Johnny Lee Outlaw" . >> >> _:a foaf:mbox <mailto:jlow@example.com <mailto:jlow@example.com>> . >> >> _:b foaf:name "Peter Goodguy" . >> >> _:b foaf:mbox <mailto:peter@example.org <mailto:peter@example.org>> . >> >> _:c foaf:mbox <mailto:carol@example.org <mailto:carol@example.org>> . >> >> >> >> >> >> can we write a SPARQL query like: >> >> >> >> PREFIX foaf: <http://xmlns.com/foaf/0.1/> >> >> SELECT *?property* >> >> >> >> WHERE{ >> >> ?x foaf:*?property* "Peter Goodguy". >> >> } >> >> >> >> if we can not, can we write an equivalent SPARQL query? Namely, can we >> >> decompose schema and Class(or Property) in SPARQL query? >> >> >> >> Thanks, >> >> Jitao >> > >> > SPARQL 1.1: >> > >> > PREFIX foaf: <http://xmlns.com/foaf/0.1/> >> > SELECT ( substr( str(?p), strlen(str(foaf:))+1 ) >> > AS ?property) >> > >> > WHERE{ >> > ?x ?p "Peter Goodguy". >> > } >> > >> > >> > >> > In SPARQL 1.0, you can't return anything not already in the graph : in >> SPARQL 1.1 you can do some manipulation of RDF terms. >> > >> > Because SUBSTR is fn:substring, indexes are 1-based. >> > >> > Andy >> > >> >> >> >
Received on Monday, 15 August 2011 17:45:34 UTC