- From: Jorge Adrián Pérez Rojas <jperez@ing.puc.cl>
- Date: Wed, 14 Jun 2006 14:00:25 -0400 (CLT)
- To: "Eric Prud'hommeaux" <eric@w3.org>
- Cc: public-rdf-dawg-comments@w3.org
Eric Prud'hommeaux wrote:
> On Wed, Jun 14, 2006 at 05:58:29PM +0200, Eric Prud'hommeaux wrote:
>> On Tue, Jun 13, 2006 at 11:12:28AM -0400, Jorge Adrián Pérez Rojas
>> wrote:
>> > Eric Prud'hommeaux wrote:
>> > > On Mon, Jun 12, 2006 at 05:52:52PM -0400, Jorge Pérez wrote:
>> > >> Hi Eric,
>> > >>
>> > >> I've been following the development of SPARQL for a couple of
>> months and
>> > >> I've a comment about your last mail on public-rdf-dawg (I've no
>> access
>> > >> to
>> > >> this list so I'm writing only to you).
>> > >>
>> > >> You say that a query like
>> > >>
>> > >> ...
>> > >> WHERE {
>> > >> ?a dc10:title "thing" .
>> > >> OPTIONAL { ?a dc10:creator ?name }
>> > >> ?a cc:license ?license .
>> > >> OPTIONAL { ?a dc11:creator ?c .
>> > >> ?c rdf:value ?name }
>> > >> }
>> > >>
>> > >> must be evaluated as two patterns with OPTIONALs in them. What I
>> > >> understand from what yo say is that we have a group graph pattern
>> with
>> > >> two
>> > >> OPTIONAL patterns inside:
>> > >>
>> > >> ?a dc10:title "thing" .
>> > >> OPTIONAL { ?a dc10:creator ?name }
>> > >>
>> > >> and
>> > >>
>> > >> ?a cc:license ?license .
>> > >> OPTIONAL { ?a dc11:creator ?c .
>> > >> ?c rdf:value ?name }
>> > >>
>> > >> is that correct? If this is the case the spec says that the
>> solutions
>> > >> are
>> > >> the ones that are solution simultaneously to both patterns,
>> > >
>> > > I disagree with the "simultaneously" part. That is, I think the
>> "any" in
>> > > [[
>> > > There is no implied order of graph patterns within a Group Graph
>> > > Pattern. Any solution for the group graph pattern that can satisfy
>> all
>> > > the graph patterns in the group is valid, independently of the order
>> > > that may be implied by the lexical order of the graph patterns in
>> the
>> > > group.
>> > > ]]
>> > > means that it's a union of all of the possible interpretations.
>> >
>> > Im ok with the *any* part, but the *simultaneously* part in my
>> argument
>> > refeer to the **all** part in
>> > [[
>> > There is no implied order of graph patterns within a Group Graph
>> > Pattern. Any solution for the group graph pattern that can satisfy
>> **all**
>> > the graph patterns in the group is valid, independently of the order
>> > that may be implied by the lexical order of the graph patterns in the
>> > group.
>> > ]]
>> >
>> > so, from my point of view, the mapping
>> >
>> > | ?name | ?c |
>> > +--------------+-------+
>> > | "John Smith" | |
>> >
>> > is not a solution because it do not satisfy **all** the graph patterns
>> in
>> > the group (it do not satisfy the second OPTIONAL graph patter in the
>> > group).
>
> AndyS made me look at this and I must confess that I am unable to come
> up with an example that illustrates your point. At issue is whether
> the following binds match the above query:
> | ?a | ?name | ?c |
> +----+--------------+-------+
> | :a | "John Smith" | |
> I believe that it matches both
> OPTIONAL { ?a dc11:creator ?c .
> ?c rdf:value ?name }
> and
> OPTIONAL { ?a dc10:creator ?name }
> by your rules; the former because the first one is optional, and the
> later simply because it matches.
I think we are approaching to the conflictive point. The spec
[[
An optional graph pattern is a combination of a pair of graph patterns
]]
dos not allow us (i think) to interpret an OPTIONAL in a "unary" way as
your are interpreting it above, so, i think it makes no sense to ask if
the mapping
| ?a | ?name | ?c |
+----+--------------+-------+
| :a | "John Smith" | |
matches the pattern
OPTIONAL { ?a dc11:creator ?c .
?c rdf:value ?name }
because this pattern does not even appear in the query, one must ask if
the above mapping matches the pattern
?a cc:license ?license .
OPTIONAL { ?a dc11:creator ?c .
?c rdf:value ?name }
that does appear in the query... Another question is if the mapping above
matches this last pattern, and I think it does not...
- jorge
>
> We can do the same exercise to prove that
> | ?a | ?name | ?c |
> +----+--------------+-------+
> | :a | "Joe Bloggs" | _:jb |
> matches all of the constraints. If we take the pattern in order:
> ?a dc10:title "thing" .
> OPTIONAL { ?a dc10:creator ?name }
> ?a cc:license ?license .
> OPTIONAL { ?a dc11:creator ?c .
> ?c rdf:value ?name }
> We see that OPTIONAL { ?a dc10:creator ?name } doesn't match, but it's
> optional. It does match the next OPTIONAL, which in effect, justifies
> the bindings of ?name and ?c.
>
> The problem with this restrictionist logic is that there is an infinte
> set of things like
> | ?a | ?name | ?c | ?foo | ?bar |
> +----+---------------+------+----------+--------------------------+
> | :a | "Joe Bloggs" | _:jb | "Hi mom" | "I'd rather be sailing" |
> | :a | "Mr Contrary" | _:jb | "Hi dad" | "I'd rather be drinking" |
>
> that match. The latter is particularly interesting as it looks like
> a solution as it binds variables that are mentioned in the query (in
> OPITONALs). I assume that our crack team of logicians has an answer
> to this. I'm not smart enough to read the 2.4 Pattern Solutions and
> convince myself that we've ruled out either of those fallacious
> solutions.
>
>
>> Interesting. That's certainly a valid interpretation of "all". My
>> interpretation had been that a solution satisfies all of the
>> constraints when evaluated in any given order. Yours appears to be <-+
>> that a solutions satisfies all the constrains when evaluated in all |
>> possible orders. |
>> |
>> There are some folks who are working on clarifying the formal |
>> semantics right now; I'll ask them to look at this. Hey AndyS, PatH, |
>> FredZ, look at this:--------------------------------------------------+
>>
>> > Acording to your argument the query
>> >
>> > SELECT ?name
>> > WHERE
>> > {
>> > { ?a dc10:creator ?name }.
>> > { ?b rdf:value ?name }
>> > }
>> >
>> > will also be a union of all of the possible interpretations, and then
>> will
>> > have as solution the mappings
>> >
>> > | ?name |
>> > +--------------+
>> > | "John Smith" |
>> > | "Joe Bloggs" |
>> >
>> > is that correct?
>> > If the **all** is changed for **any of** in the spec I would read the
>> spec
>> > in the same way as you do.
>> >
>> > I understand the center of your argument now, thanks for the
>> clarification.
>> >
>> > - jorge
>> >
>> > >
>> > >> so I
>> think
>> > >> the
>> > >> above query agaisnt the following data
>> > >>
>> > >> :a dc10:title "thing" .
>> > >> :a dc10:creator "John Smith" .
>> > >> :a cc:license "steal this book"
>> > >> :a dc:11:creator _:jb .
>> > >> _:jb rdf:value "Joe Bloggs" .
>> > >>
>> > >> has empty solution. For example, the mapping
>> > >>
>> > >> | ?name | ?c |
>> > >> +--------------+-------+
>> > >> | "John Smith" | |
>> > >>
>> > >> could not be a solution because although it is a solution for the
>> first
>> > >> pattern it is not a solution for the second pattern. Similarly the
>> > >> mapping
>> > >>
>> > >> | ?name | ?c |
>> > >> +--------------+-------+
>> > >> | "Joe Bloggs" | _:jb1 |
>> > >>
>> > >> is not a solution because it is not a solution for the first
>> pattern. Am
>> > >> I
>> > >> misreading something about your arguments?
>> > >>
>> > >> Greetings,
>> > >> Jorge Perez
>> > >
>> > > --
>> > > -eric
>> > >
>> > > home-office: +1.617.395.1213 (usually 900-2300 CET)
>> > > cell: +81.90.6533.3882
>> > >
>> > > (eric@w3.org)
>> > > Feel free to forward this message to any list for any purpose other
>> than
>> > > email address distribution.
>> > >
>> > >
>> >
>>
>> --
>> -eric
>>
>> home-office: +1.617.395.1213 (usually 900-2300 CET)
>> cell: +81.90.6533.3882
>>
>> (eric@w3.org)
>> Feel free to forward this message to any list for any purpose other than
>> email address distribution.
>
> --
> -eric
>
> home-office: +1.617.395.1213 (usually 900-2300 CET)
> cell: +81.90.6533.3882
>
> (eric@w3.org)
> Feel free to forward this message to any list for any purpose other than
> email address distribution.
>
>
Received on Wednesday, 14 June 2006 18:00:46 UTC