- From: Steve Harris <S.W.Harris@ecs.soton.ac.uk>
- Date: Mon, 4 Oct 2004 21:04:08 +0100
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
On Mon, Oct 04, 2004 at 08:20:34 +0100, Andy Seaborne wrote: > >SELECT ?x > >WHERE (?x rdf:type foaf:Person) > > [ (?x foaf:mbox_sha1sum ?sum) ] > >AND &dawg:unbound(?sum) > > > >( "AND ?sum IS NULL" if we go down the three value logic route ) > >obviously the 2nd example is not as easy to read. > > That's a good example - we can argue that the function evaluation happens > after all attempts to bind the variable (pragmatically, we'll need a > procedural interpretation to define function calling - I think that means > in a logical view, functions may be called multiple times in the same > solution for backtracking so no side effects but that is implementation > dependent). > > It is more readable (its just a style thing) to have constraints near the > place where they make most sense. Constraints already have to go with > blocks and intermixing is possible. Implementations can reorder to suit > - implementation freedom is a good reason for having query results not be > order dependent. That a matter of opinion, I slightly prefer the form where the graph pattern expressions are kept seperate from the constriants. > This also recognizes the duality with the predicate view of constraints in > the form of like math:lessThan. Well, except that (<universe> dawg:unbound ?sum) is a truely wierd graph pattern, but probably I misunderstood what youre referring to. - Steve
Received on Monday, 4 October 2004 20:04:13 UTC