W3C home > Mailing lists > Public > public-rdf-dawg-comments@w3.org > September 2007

Syntax error in algebra example

From: Richard Newman <rnewman@franz.com>
Date: Sat, 22 Sep 2007 00:31:24 -0700
Message-Id: <71A13D13-5C61-412D-A223-4947AB02D574@franz.com>
To: public-rdf-dawg-comments@w3.org


   12.2.2 has a minor error.

Example: group consisting of a basic graph pattern, a filter and an  
optional graph pattern:

{ ?s :p1 ?v1} FILTER (?v1 < 3 ) OPTIONAL {?s :p2 ?v2} }
Filter( ?v1 < 3 ,
   LeftJoin( BGP(?s :p1 ?v1), BGP(?s :p2 ?v2), true) ,

   Count the number of {s and }s.

   While I'm on the topic of 12.2.x, the algebra mapping algorithm in  
12.2.1 is somewhat unclear, and contains at least one error:

for each algebra sub-expression SA:
    If SA is an OPTIONAL,
       If SA is of the form OPTIONAL(Filter(F, A))
            G := LeftJoin(G, A, F)
            G := LeftJoin(G, A, true)
    Otherwise for expression SA, G := Join(G, SA)

   in the 'else' clause, 'A' is out of scope, so this doesn't make  
any sense.

   In a more general sense: it would probably aid the clarity of the  
document if the DAWG tried to write an AST -> Algebra converter using  
only the document as a reference, rather than writing the document  
with the experience of having written the code. I'm writing such a  
thing for the first time, and the document is not as clear as I would  

   It would also be helpful in 12.2.2 to provide concrete (syntax,  
AST, algebra) triples, rather than only (syntax, algebra) pairs. At  
present I am having to basically guess the AST that the DAWG had in  
mind when writing this section.


Received on Saturday, 22 September 2007 09:33:08 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:52:09 UTC