- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Fri, 03 Dec 2004 15:33:24 +0000
- To: Kevin Wilkinson <wilkinson@hpl.hp.com>
- Cc: public-rdf-dawg@w3.org
Changes for section 10: > 10 Result Forms > > SPARQL has a number of query forms for returning results. These result > forms use the solutions from pattern matching the query pattern > (KW Comment: is query pattern defined anywhere?) Added in section 2.3, as text description and a definition (green box). The defintion seems a bit heavy for just this piece fo terminology but it is an important term. > to form result sets or RDF > graphs. A /result set/ is a serialization of the bindings in a query > result <#defn_QueryResult>. The query forms are: Done > > ... > > Results can be thought of as a table, with one row per query solution. > Some cells may be empty because a variable is not bound in that > particular solution. (KW Comment: specify if SPARQL defines some way to > check if a variable is not bound in a solution.) That would be an API operation - and how result sets are ptesented is implementation dependent. > > -Results form a set of tuples. However, implementations may include > duplicates for implementation and performance reasons unless indicated > otherwise by the presence of the DISTINCT keyword.-+Implementations may > return the solutions as either a bag or set of results, i.e., with or > without duplicates. However, if the DISTINCT keyword is specified, a set > of results must be returned, i.e., no duplicates.+ """ Implementations may return solutions as eother a bag or set, that is, with ot without duplicate rows. However, if the DISTINCT keyword is specificed, a set of results must be returned, with no duplicates. """ > > > SELECT LIMIT > > The LIMIT form puts an upper bound on the number of solutions returned. > -A query may return a number of results up to and including the > limit.-+The number of results returned is the minimum of LIMIT and the > actual number of query results, whichever is lower.+ """ The LIMIT form puts an upper bound on the number of solutions returned. A query may return a number of results up to and including the limit. If the number of actual solutions is less than the limit, all solutions will be returned. """ > > PREFIX foaf: <http://xmlns.com/foaf/0.1/> > SELECT ?name > WHERE ( ?x foaf:name ?name ) > LIMIT 20 > > Limits on the number of results can also be applied via the SPARQL query > protocol [@@ protocol document not yet published @@]. > > +Note that if both DISTINCT and LIMIT are specified, then duplicates are > eliminated before the LIMIT is applied.+ Done. > > > 10.2 Constructing an Output Graph > > Gives the result graph having just the triples with property foaf:name: > > @prefix foaf: <http://xmlns.com/foaf/0.1/> . > > [] foaf:name "Bob" . > [] foaf:name "Alice" . > > (KW Comment: what does [ ] denote? This is new notation, I think, and > should be explained.) Changed to _:b1 and _:b2. Both cases. > > > CONSTRUCT with a template > > ... > > If a triple template has a +variable+, and in a query solution, the > variable is unset, then the +substitution+ of this triple template is > skipped but other triple templates are still processed for the same > solution and any triples from other solutions are included in the result > graph. > > > Templates with bNodes > > ... > > A template can create an RDF graph containing bNodes, indicated by the > syntax of a prefixed name with prefix _ and some label for the local > name. +The+ labels are scoped to the template for each solution. If > two such prefixed names share the same label in the template, then there > will be one bNode created for each query solution but there will be > different bNodes across triples generated by different query solutions. > > @prefix foaf: <http://xmlns.com/foaf/0.1/> . > > _:a foaf:givenname "Alice" . > _:a foaf:family_name "Hacker" . > > _:b foaf:firstname "Bob" . > _:b foaf:surname "Hacker" . > > PREFIX foaf: <http://xmlns.com/foaf/0.1/> > PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> > > CONSTRUCT ( ?x vcard:N _:a ) > ( _:n vcard:givenName ?gname ) > ( _:n vcard:familyName ?fname ) > WHERE > { ( ?x foaf:firstname ?gname ) OR (?x foaf:givenname ?gname ) } > { ( ?x foaf:surname ?fname ) OR (?x foaf:familt_name ?fname ) } > > > creates vcard properties corresponding to the FOAF information: > > (KW Comment: the notation { ... } is not explained, I think.) Used the nested patterns and in the alternatives sections. > > > 10.3 Descriptions of Resources > > ... > > > 10.4 Asking "yes or no" questions > > ... > > (KW Comment: It is not clear what value is returned by an Ask query > form. One would hope it is a boolean. This might enable nested query > forms in the future. But, it appears to be a plain literal, "yes" or > "no". why not make it a boolean-typed literal?) > > ... > It's noted that it's awaiting protocol and/or results documents to put in a better text. Committed version 1.145 Thanks for all effort put into the comments, Andy
Received on Friday, 3 December 2004 15:33:47 UTC