- From: Dan Brickley <danbri@danbri.org>
- Date: Tue, 25 Aug 2009 14:49:20 +0200
- To: Lee Feigenbaum <lee@thefigtrees.net>
- Cc: Toby Inkster <tai@g5n.co.uk>, public-rdf-dawg@w3.org, public-sparql-dev@w3.org
On Tue, Aug 25, 2009 at 2:45 PM, Lee Feigenbaum<lee@thefigtrees.net> wrote: > Hi Toby, > > I've CCed the SPARQL WG list but also the public-sparql-dev list which in > general is better suited for "how do I..." SPARQL questions. If I'm correct > that that best suits the nature of this question, please drop > public-rdf-dawg@w3.org from future messages in this thread. > > If I understand you correctly, the pattern you're looking for is that you > have a prioritized list of predicates that you want to use for a particular > value, in this case date. The "canonical" way to do this in SPARQL (or, at > least, what I've always done and seen done) is to use a series of OPTIONAL > clauses that all bind to the same variable: > > SELECT ?date { > ?item a ex:Item . > OPTIONAL { ?item dct:created ?date } > OPTIONAL { ?item dct:issued ?date } > OPTIONAL { ?item dct:date ?date } > OPTIONAL { ?item dc:date ?date } > } ORDER BY ?date > > This will bind ?date to the first of the predicates that have a value for > each ex:Item. First in the query (textually, ie. created before issued before date, ...), or first in the data? If the former - I hadn't realised OPTIONAL was ordered, if it is... cheers, Dan
Received on Tuesday, 25 August 2009 12:50:01 UTC