- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Thu, 30 Mar 2006 14:13:03 +0100
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
http://www.w3.org/2001/sw/DataAccess/json-sparql/ $Revision: 1.4 $ of $Date: 2006/03/27 21:52:29 $ Overall: "I liked it so much I implemented it" Andy == Abstract ---- "SPARQL is a query language" SPARQL needs a serialization format because SPARQL is a protocol as well as a query language. ---- "emphasizes concision and legibility." True - and it is also very easy for the client software to consume leading to light-weight (Javascript) clients. Might be useful to mention why the XML Results format is not always easy to handle. == TOC A single top level section - could be collapsed. == 1 Serializing ... Suggestion: start with a complete example (but smaller than the one in 1.4). Or even put it in the abstract and say "it looks like this". As the argument is the practical nature of the JSON serialization, the audience will be more developer-oriented. I liked the direct comparison between XML Results format constructs and the equivalent JSON ones. == 1.1 Document Element """ XML: <sparql xmlns="http://www.w3.org/2005/sparql-results#"> ... </sparql></pre> """ </pre> has leaked into the example. == 1.1 Document Element The section titles follow the XML names but "element" is both a an XML term and a JSON term (and they are different). -- Later on, there is the <?xml version="1.0"?> but not here (yes - I know this is partial and later it's a shortened whole document but it felt odd). == 1.2 Header Single quotes for JSON strings. Should be double quotes. (repeat this comment several times). ---- """ Finally, the order of elements in the vars array "must be the same as that used" in the bindings JSON array described below. """ "bindings" is an array of JSON objects, each object corresponding to one query solution. A JSON object is a set of key/value pairs (members) and is unordered ("An object is an unordered set of name/value pairs." http://josn.org/). So: 1/ There is a confusion over "bindings" : the order is unrelated to the variables. It's the query solutions order. The variables names aren't used in the bindings array as top-level indexes. 2/ The contents of each solution is unordered (it's a JSON object). Which is good because it can only be preserved if you write a custom output routine that will not simple iterate over the names in the map in hash order. That precludes using standard JSON libraries. Fortunately, the XML results format does NOT require order of variables within solutions and it explicitly states that: [SQRXF] """ Each result element corresponds to one Query Solution in a result and contains child elements (in no particular order) for each Query Variable that appears in the solution. """ ---- Formatting error: (3rd XML: in this section) <?xml version="1.0"?> <sparql all on one line ---- Links contents inconsistent. "metadata.rdf" in the XML, "http://www.w3.org/TR/rdf-sparql-XMLres/example.rq" in the JSON. == 1.3 Results Formatting error: has double colons, one bold for XML:: and JSON:: Elsewhere it's one colon each time. The JSON example uses strings in single quotes. Shouls be double quotes. The JSON example has lost indentation within "results" part. "bindings" is bit misleading because a binding is one name/value pair so one solution is several bindings. Yet "bindings" is used for an array of objects where the objects have name/value pairs. == 1.3.1 The repeated quoting (as if denying responsibility) from [SQEXF] is odd. And 3 refs in one para reads strangely. List of serilizations: More single quotedness. http://json.org/ defines strings as double quotes. Personally, I like to avoid quoting weirdness and so '' or "" would fine by me but it's not what JSON says. "Value" is used for bNode - I know its for consistency but value for label can be confusing. It's keyed off of the type anyway. == 1.3.2 Boolean Results "vars" were covered in "1.2 Header" without mention that it only applies to the result set form (section 1.3.1). They felt mandatory in 1.2 """ these two forms are equivalent: """ Missing the two forms! == 1.4 Examples There is only one example. """ some whitespace has been added for legibility """ reads as if the white space is illegal and it isn't. BTW it's "white space" - with a space by W3C style guidelines. JSON escapes "/" in strings - I don't know why but it does. I have always assumed its optional but I can't find text to that effect. == A. Internet Media Type s/sparql/SPARQL/g ? Which reminds me, http://json.org/ does not say JSON is UTF-8.
Received on Thursday, 30 March 2006 13:13:23 UTC