- From: Pat Hayes <phayes@ihmc.us>
- Date: Tue, 5 Oct 2004 14:48:58 -0500
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
- Message-Id: <p06001f19bd88ab0e8bca@[10.100.0.161]>
http://www.w3.org/2001/sw/DataAccess/rq23/#introduction link from contents is broken. 'set of statements' / 'set of triples' Is the list of three kinds of graph intended to be exhaustive? Suggest not, so say something like "A graph may be encoded in a variety of forms; for example, ..." 'based on information' has extra NBspace No reference for [protocol] Outline: 'the SPARQL' (the?) section 5 is (delete 'is') Why are fonts used in section 9 and section 11 descriptions different? Document Conventions: suggest delete first sentence. http://www.w3.org/2001/sw/DataAccess/rq23/#basicpatterns HTML anchor is misplaced inside the header " Patterns are descriptions of graphs with" / "Patterns are like graphs but may have" (reason: calling them descriptions suggests a metalanguage, and lets not go there.) "graph labels or relationships" / "nodes or predicates" (use a link to http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-data-model if needed to justify terminology) In general, avoid the term 'graph label' throughout. The RDF core WG went through hell until we decided that RDF graphs are not labelled graphs in the mathematical sense. There are no labels in RDF: the nodes *are* the labels. (Hence they are unique.) Graph labe...sorry, nodes and predicates, are not values as defined in [Concepts]: those are datatype values, see http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-Datatypes-intro . So: "The graph labels are values as defines in [..]" / "Nodes (as defined in [concepts]) may be" or some such. Also, why did you leave out blank nodes ? (BTW, there isn't a single term for nodes-or-predicates in the RDF concepts terminology, I now realize. [Later: you provide one in section 2.2, so use it here.]) "The result of a query is a set of mappings from variables to values such that, for each mapping, assigning values to variables in the query produces a subgraph of the target graph." / "A <em>binding </em> is a mapping from the variables in a query to terms. A <em> result mapping </em> is a binding which, when applied to the variables in the query, produces a subgraph of the target graph; a <em> result </em> is a set of result mappings. If there are no result mappings, the result set is empty." (BTW, does the result have to be the set of *all* possible result mappings or just include some of the possible mappings? If the former this should be stated.) "we will get one solution with three variable bindings" /"we will get one result mapping which binds three variables". (A single mapping may bind more than one variable) http://www.w3.org/2001/sw/DataAccess/rq23/#WritingSimpleQueries HTML anchor is misplaced "It is also possible to write integers and floating point doubles directly." Really?? That is, without using a typed literal? Yuck, I suggest this is a bad idea: RDF recidivism!!. In any case, why FP doubles, for goodness' sake? "Variables are indicated by '?'; the '?' does not form part of the variables name." This belongs in earlier section. Also, why does the query not form part of the name? In fact, what does this idea of the 'name' of a variable mean? Surely the variable *is* the name, right? Why not just say, variables start with the character '?' ? Delicate point in the example. The title here is an RDF plain literal, right? So does the result binding bind the variable to the literal, or to the character string? (Suppose the literal had a lang tag?) intepretted/interpreted therefor/therefore Text flows oddly: prefixes, data, typed literals, prefixes again. Reorder the last paragraph? http://www.w3.org/2001/sw/DataAccess/rq23/#TriplePatterns HTML anchor is misplaced (They seem to all be like this, so I will not mention it again.) Definitions should have been stated earlier, or forward links provided. Also they can be tidied up. Right now they are a bit of a mess and I think they have mistakes in, but am not sure. See below. . Blank nodes is some set disjoint from U and L (see [Concepts]) and we can use the same trick, where query variables V is a set disjoint from U union L union BN. We don't need to define it. Or, we can define it to be the set of all strings starting with '?', and remark that this is disjoint from U union L union BN. The first is more of an abstract-syntax way of doing things. A triple is anything in (U union BN) x U x (U union BL union L), and an RDF graph is a set of triples. [Concepts]. OK, following this, a triple pattern is anything in (U union BN union V) x (U union V) x (U union BN union L union V) and a pattern is a set of triple patterns. I'd suggest not using 'ground' to mean lack of variables as RDF already uses 'ground' to mean lack of bnodes. How about 'variable-free' or 'complete' if we want a single word. But do we even need this concept? In the case of query variables, unlike bnodes, do we even want to consider an instance of one query still being a query with some variables still not bound? We surely do not want to consider instances which bind one query variable to another, right? (??) Before suggesting rewordings, let me get the definitions straight. What it says is: "Triple Pattern T matches graph G with binding set B if subst(T, B) is a ground triple and, as a triple, is entailed by G." Where presumably 'ground' here means in the sense defined here, ie not containing a query variable: (and NOT in the sense defined in RDF, meaning not containing a bnode). So under this assumption, then, this would be an example: G= { ex:a ex:p ex:b } T= {?x ex:p ex:b} with the result having ?x bound to a blank node: ?x//_:1 since G simply entails {_:1 ex:P ex:b} BTW, if 'ground' here means as in RDF, i.e. having no bnodes, then the first example in the document is wrong, since it binds variables to bnodes and hence produce non-RDF-ground instances. What exactly does 'entails' mean? The above example assumes simple entailment (the weakest interpretation.) If entails means RDF-entails, then this would be an example: G = { } (the empty graph) T= {?x rdf:type rdf:Property} with the result having ?x bound to rdf:type, since rdf:type rdf:type rdf:Property is RDF-valid all by itself, ie is RDF-entailed by anything. Sorry I was out of the loop long enough to not know the answer, but is this really what is intended here? ---- The Graph pattern match definition in section 2.3 refers to the triple definition, and so requires only that each triple of the instance is entailed, rather than the instance graph itself be entailed. This are not the same thing. For example: G = {ex:a ex:p ex:b ex:b ex:p ex:c ex:c ex:p ex:a} T= {?x ex:p ?y ?y ex:p ?x} then binding ? x and ?y to distinct blank nodes will give an instance _:1 ex:p _:2 _:2 ex:p _:1 which is not itself entailed by G but every triple of which is entailed separately by G when considered in isolation. So is this a legal match? (suggestion: no. But it is according to the current definitions.) ------ I think I had better stop at this point and wait for some answers before proceeding. Pat -- --------------------------------------------------------------------- IHMC (850)434 8903 or (650)494 3973 home 40 South Alcaniz St. (850)202 4416 office Pensacola (850)202 4440 fax FL 32501 (850)291 0667 cell phayes@ihmc.us http://www.ihmc.us/users/phayes
Received on Tuesday, 5 October 2004 19:50:12 UTC