- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Sun, 27 Jun 2004 05:56:32 -0400
- To: Jos De Roo <jdroo@skynet.be>
- Cc: public-rdf-dawg@w3.org
- Message-ID: <20040627095631.GA17819@w3.org>
On Sat, Jun 26, 2004 at 10:08:13PM +0200, Jos De Roo wrote: > > EricP wrote: > > A while back, AndyS and some others settled on a scheme defining > > ResultSets [1]. This seems like work we can use for expressing the > > expected results for a given query. > > > > RDF Query and Rules Framework [2] leans on this schema and I've > > mostly* adopted this for the Algae tests. The Optional2 test [3], > > which is already in the test cases, looks like this as a table: > > > > > +-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+ > > | n| > d| e| > f| g| > > > |-------------------------|-------------------------|-------------------------|-------------------------|-------------------------| > > | <http://example.org/n#A>| > NULL| NULL| > NULL| NULL| > > |<http://example.org/n#A2>| > NULL| NULL| > NULL| NULL| > > > |<http://example.org/n#A3>|<http://example.org/n#D3>|<http://example.org/n#E3>|<http://example.org/n#F3>| > NULL| > > > |<http://example.org/n#A4>|<http://example.org/n#D4>|<http://example.org/n#E4>|<http://example.org/n#F4>|<http://example.org/n#F4>| > > > +-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+ > > > > and this as a ResultSet: > > > > @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . > > @prefix rs: <http://jena.hpl.hp.com/2003/03/result-set#> . > > > > [] rdf:type rs:ResultSet ; > > rs:resultVariable "n" ; > > rs:resultVariable "d" ; > > rs:resultVariable "e" ; > > rs:resultVariable "f" ; > > rs:resultVariable "g" ; > > rs:size "4" ; > > rs:solution > > rs:solution > > [ rdf:type rs:ResultSolution ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "n" ; rs:value > <http://example.org/n#A> ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "d" ; rs:nonValue "NULL" ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "e" ; rs:nonValue "NULL" ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "f" ; rs:nonValue "NULL" ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "g" ; rs:nonValue "NULL" ] > > ] ; > > rs:solution > > [ rdf:type rs:ResultSolution ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "n" ; rs:value > <http://example.org/n#A2> ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "d" ; rs:nonValue "NULL" ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "e" ; rs:nonValue "NULL" ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "f" ; rs:nonValue "NULL" ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "g" ; rs:nonValue "NULL" ] > > ] ; > > rs:solution > > [ rdf:type rs:ResultSolution ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "n" ; rs:value > <http://example.org/n#A3> ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "d" ; rs:value > <http://example.org/n#D3> ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "e" ; rs:value > <http://example.org/n#E3> ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "f" ; rs:value > <http://example.org/n#F3> ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "g" ; rs:nonValue "NULL" ] > > ] ; > > [ rdf:type rs:ResultSolution ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "n" ; rs:value > <http://example.org/n#A4> ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "d" ; rs:value > <http://example.org/n#D4> ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "e" ; rs:value > <http://example.org/n#E4> ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "f" ; rs:value > <http://example.org/n#F4> ] ; > > rs:binding [ rdf:type rs:ResultBinding ; > > rs:variable "g" ; rs:value > <http://example.org/n#F4> ] > > ] . > > > > > > * I've substituted rs:nonValue** "NULL" for rs:value rs:undef in > > order to distinguish the case where I got no bindings from the > > case where I got a binding to the resource rs:undef. > > > > ** In analogous presumption, I plan to introduce foaf:UnPerson > > without Danbri's consent. > > :) > I was also trying to run your "nested optional arcs" test case > and had to make some corrections in our implementation so that > in fact only those 4 results are returned (also using a design > that allows result interpretation as it refers to the query). > > So querying the facts given in > http://eulersharp.sourceforge.net/2004/04test/ericP.n3 > with filter > http://eulersharp.sourceforge.net/2004/04test/ericF.n3 > results in > http://eulersharp.sourceforge.net/2004/04test/ericE.n3 Yeah, the trick (for me, at least) was to make sure I NULL'd all the otherwise unbound variables in any optional part that was not satisfied. I think this is pretty easy to define so I'm not to worried about this as a requirement from that perspective. However, it is worth noting that introducing optionals does mean we have an ordered set of constraints. I'd like to experiment with Euler(sharp?). I guessed a CVSROOT: cvs -d:pserver:anonymous@cvs.sf.net:/cvsroot/eulersharp login but didn't guess a module name. I tried Euler, euler, EulerSharp, and eulersharp. > Remark the open '?'-marked resources in the results i.e. > (:A ?d ?e ?f ?g) da:bindingFor < ... /ericF.n3>. > (:A2 ?d ?e ?f ?g) da:bindingFor < ... /ericF.n3>. > (:A3 :D3 :E3 :F3 ?g) da:bindingFor < ... /ericF.n3>. > (:A4 :D4 :E4 :F4 :F4) da:bindingFor < ... /ericF.n3>. > > -jos > > > > [1] http://jena.hpl.hp.com/2003/03/result-set > > [2] http://www.w3.org/2001/11/13-RDF-Query-Rules/terms > > [3] > http://dev.w3.org/cvsweb/perl/modules/W3C/Rdf/test/Optional2-alg.sh?rev=HEAD&content-type=text/x-cvsweb-markup > > -- > > -eric > > > > office: +81.466.49.1170 W3C, Keio Research Institute at SFC, > > Shonan Fujisawa Campus, Keio University, > > 5322 Endo, Fujisawa, Kanagawa 252-8520 > > JAPAN > > +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA > > cell: +1.857.222.5741 (does not work in Asia) > > > > (eric@w3.org) > > Feel free to forward this message to any list for any purpose other than > > email address distribution. > > -- > Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/ -- -eric office: +81.466.49.1170 W3C, Keio Research Institute at SFC, Shonan Fujisawa Campus, Keio University, 5322 Endo, Fujisawa, Kanagawa 252-8520 JAPAN +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA cell: +1.857.222.5741 (does not work in Asia) (eric@w3.org) Feel free to forward this message to any list for any purpose other than email address distribution.
Received on Sunday, 27 June 2004 05:56:32 UTC