- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Mon, 19 Mar 2007 17:28:15 +0000
- To: Pat Hayes <phayes@ihmc.us>
- CC: RDF Data Access Working Group <public-rdf-dawg@w3.org>
Pat Hayes wrote: > Overall comment (important). > > There is a disconnect between the ideas of > dataset and graph, which I think needs to be > fixed. Section 8 discusses datasets in great > detail with many examples, but it nowhere > actually defines explicitly which RDF graph is > determined to be the one that BGPs are required > to match against. Section 12.3.2 defines matching > for BGPs, but speaks of matching to a dataset > (mia culpa). Section 12.5 finally introduces and > uses the terminology "active graph", but it does > not formally define this notion or say how it is > computed. (See detailed comments of 12.5 below) > In any case, it is far too late in the document > for this idea to be defined. > > "Active graph" is a basic concept which should be > defined in section 8, which should give clear > criteria for how to determine it given a query > and a dataset. Then 12.3.2 should use this term > when defining BGP matching, and the references in > 12.3.2 and 12.5 should have internal links to the > definition in section 8. > ... > 12.2 > > "an SPARQL query" -> "a SPARQL query" > > This is hard to follow. After parsing, the syntax > tree is composed of .. a table?? What is the > 'query form' in this table? Is it part of the > syntax tree, or just there for reference? > > "uses theses symbols" -> "uses these symbols" > > What exactly is meant by "mapping" in "The result > of mapping a SPARQL query..." ? Together with the changes ("SPARQL abstract query" became "SPARQL query") """ The result of converting such an abstract syntax tree is a SPARQL query that uses these symbols in the SPARQL algebra: """ > This mapping idea > hasn't been mentioned previously or defined > (unless you mean solution mapping? Surely not.) > Is this mapping the same as "converting"? Yes - "Converting" is better than "mapping". > The > early material in the beginning of the section 12 > talks about a series of 'steps' and of 'turning > into', but does not say 'mapping' or > 'converting'. Suggest choosing a uniform > terminology and sticking to it throughout. Might > also be a good idea to review that early material > here (unless you put 12.2 before 12.1, as I > suggested above) > > What is a 'result form' in the definition of > abstract query? The internal link is broken. Link fixed to point to the Query Forms section 10. In an ideal world (that's one with a lot more time in it), there'd be a extra part of section 12 that covered query forms. Currently section 12 only covers up to the solution sequence after modifiers but at least that's the core of defining SPARQL. > > 12.2.1 > > What does the title of this section mean? (Mapping graph patterns to what?) > > Step 2 > second line, remove comma after "GroupGraphPattern" > "replace with a sequence of nested union > operators:" => "replace with nested union > operators, associated to the left:" removed comma - added "then" > > Step 3. Odd change of font. Is it meaningful? Fixed > > Does "Map ... to ..." mean the same as "replace > ... by ...."? Suggest use consistent terminology > in describing these steps. "Replace ..by.." seems > nicely unambiguous. > > Step 4. > > What is the point of the link from the cryptic > word "Constraint" in parentheses, without > explanation? No idea! Who added this? Removed for now. > > What does "Write: "A" for an algebra expression" > mean? The earlier steps have been instructions to > do something: is this an instruction (imperative) > also? If not, what is it? If it is, where does > one write "A" exactly? In the box "A" is used to match some (inner) algebra expression. > > In box: > "for i := 0 ; i < length(SP); i++" Yechhh, do we > really want to use C++ in the formal spec? > Couldn't you write this in some kind of readable > pseudocode? for each algebra sub-expression SA: and using SPA for each SP[i]. > > BTW, what is the scope of this iteration? Is the > "If F is nonempty" inside it or after it? after. > > "LeftJoin(G , A, true)" -> "LeftJoin(G, A, true)" (no space after G) > > "SP := List " -> "SP := list " > > "If G = Join(A1, A2) then G := Filter(F, Join(A1, > A2)" -> "If G = Join(A1, A2) then G := Filter(F, > Join(A1, A2))" (extra paren at end) > ---------- Done. > > This step 4 is incomprehensible as written, I > have to say. I have no idea what it is telling me > to do. If that stuff in the box is a procedure, > where is A initialized? I can't see how G can > ever get rid of a LeftJoin; is this right? > > What does "Map all sub-patterns contained in this > group" mean? Sub-pattern hasn't been defined, and > contain hasn't been defined. Moved outside the block : text is now: """ A group pattern is mapped into the SPARQL algebra as follows: first, convert all elements making up the group into algebra expressions, then apply the following transformation: """ > > step 5. "join({}, A)" -> "join({ }, A)" (space added) > > 12.2.3 What is this doing? A word or two would be helpful. > > Step 1 "There is no implied ordering to the > sequence" OK, but does it have to be fixed? That > is, is ToList a real function? ToList is a conversion from a multiset to a sequence. It is not required to be a deterministic conversion so it not a function. > > This step says "set M =". Earlier part of this > section have used assignment := or said "replace > ... by ..." Later steps in the subsection omit > "set" and are written using equality, which is > misleading if read as an equation. Suggest using > uniform notation and terminology. > > Step 2. Where does the list of order conditions come from? Changed to comparators which is the current language in sec 9.1 > > Step 3. What is a 'named variable' ? Suggest > rephrase as "all variables occurring in the query" Distinguishes from blank nodes as variables. > > Step 5. "If the query mentions.." Does this mean > the same as "If the query contains.." ? If so, > suggest use consistent wording. > > "defaults to the (size(M)-start)" -> "defaults to (size(M)-start)" Done. (To be continued) Andy
Received on Monday, 19 March 2007 17:29:13 UTC