- From: Jeen Broekstra <jeen@aduna.biz>
- Date: Tue, 14 Jun 2005 10:17:17 +0200
- To: Danny Ayers <danny.ayers@gmail.com>
- Cc: public-rdf-dawg-comments@w3.org
Danny Ayers wrote: > I re-skimmed the spec, couldn't see a way of doing this, and the > charter, couldn't see an exclusion. Something that may be useful, if > there's an uncomplicated way of doing it. > > Basically I'd like to somehow pass a statement(s) from the query to > the results. The use case is I want to select a group of people, and > have that group labelled in the results. The label isn't in the > triplestore, it's something I want to add at query time. The > triplestore will not be affected, this isn't graph update. > > I realise I could include the label or whatever in XSLT, but for the > app I'm working on it would be much more convenient to have the XSLT > fixed, with the query generated dynamically. > > It seems to me that for my specific kind of application a > pseudo-statement could work, something like: > > ?label VALUE "dawg" . > > producing > > <result> > <label>dawg</label> > ... > > at the appropriate places. > > But I wonder whether this might be more usefully done as assertions in > the query, with the RDF results going something like this - > > data: > <#groupA> rdf:type my:Group . > <#groupB> rdf:type my:Group . > > query: > ?group rdf:type my:Group . > ?group my:label ?label . > APPEND ?label rdf:value "dawg" . > > results: > <#groupA> rdf:type my:Group . > <#groupA> my:label "dawg" . > <#groupB> rdf:type my:Group . > <#groupB> my:label "dawg" . This kind of functionality is offered by the CONSTRUCT clause: CONSTRUCT { ?group rdf:type my:Group ; my:label "dawg" } WHERE { ?group rdf:type my:Group } Basically CONSTRUCT allows you to specify a graph template for the result set in which you can introduce new properties and values if so required. (personal note: it might be useful to include an example in the spec to illustrate the use of CONSTRUCT a bit more). Jeen -- Jeen Broekstra Aduna BV Knowledge Engineer Julianaplein 14b, 3817 CS Amersfoort http://aduna.biz The Netherlands tel. +31 33 46599877
Received on Tuesday, 14 June 2005 08:18:37 UTC