- From: Mischa Tuffield <mischa.tuffield@garlik.com>
- Date: Fri, 12 Aug 2011 18:20:23 +0100
- To: Andy Seaborne <andy.seaborne@epimorphics.com>
- Cc: "semantic-web@w3.org" <semantic-web@w3.org>
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 Friday, 12 August 2011 17:22:14 UTC