- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Wed, 15 Jun 2005 16:32:15 +0100
- To: Geoff Chappell <geoff@sover.net>
- CC: public-rdf-dawg-comments@w3.org
Geoff, Let me reduce this to a simple test case to see if we are have the same understanding of the problem: Data: :book :title "Title" . Query: SELECT ?x WHERE { OPTIONAL { :book :title ?x } } in other words, a single optional. Solutions: (desired) ?x = "Title" The issue as I see it is why isn't ?x = "Junk" a solution as well because ?x="Junk" is a solution to OPTIONAL(P). [[Related, but different, is that any solution can be extended with other, unrelated bindings of variables without afecting the matching. This is a result of the pattern composition - subpatterns may not involve all variables.]] Andy Geoff Chappell wrote: > >>-----Original Message----- >>From: Seaborne, Andy [mailto:andy.seaborne@hp.com] >>Sent: Wednesday, June 08, 2005 8:24 AM >>To: Geoff Chappell >>Cc: public-rdf-dawg-comments@w3.org >>Subject: Re: Test cases >> >> >> >>Geoff Chappell wrote: >> >>>OK, the first is the test OPTIONAL-FILTER. >>> >> >>Geoff, >> >>I agree with the rewriting in logical terms but I think it needs to take >>into >>account when variables are being bound. >> >>OPTIONAL >> { ?book x:price ?price . >> FILTER ?price < 15 . >> } . >> >>means that the FILTER is applied when "?book x:price ?price" matches. >>When >>rewriting, that additional piece of information needs to be catered for as >>well. >> I think this is covered by requiring S, a group solution, to be a >>solution of >>the OPTIONAL within the group. > > > But isn't it a solution? I get the interpretation you're shooting for, but I > don't see how you get there from your current definitions. Maybe I'm just > being dense -- if so can you point out why the following is not a solution: > > ?book=:book1 > ?title="TITLE 1" > ?price= > > For it to be a solution, it must be a solution to both parts of the group > pattern. > > It's clearly a solution to the first since: > > {:book1 dc:title "TITLE 1"} > > is a subgraph of the dataset's default graph. > > As for the second... isn't any substitution a solution of an optional > pattern? i.e. optional A is defined as A or not A - how can anything fail? > For that matter, why isn't: > > ?book=:book1 > ?title="TITLE 1" > ?price=:book2 > > a valid solution? It seems like it should be by the current definitions but > it's not a solution we'd like to see (in the same sense that solutions > derived from treating optional A as A or true aren't really helpful). > > So the question is what are valid substitutions (or how do you distinguish > between the valid, but unhelpful solutions)? The only scheme I've been able > to come up with is to convert the query to nnf and treat any variable not > mentioned in a basic pattern as unbound. But that gets me e.g. to the > solution I posted earlier that you disagree with (note that the result > really doesn't depend upon whether filter is treated as a distinct pattern > or as the rhs of a constrained pattern). > > Best, > > Geoff > > > > > > >
Received on Wednesday, 15 June 2005 15:32:25 UTC