Draft: draft-ietf-jsonpath-base

Commentary: The editorial suggestions are trying to be a bit more idiomatic and improve flow ; my feelings will not be hurt by any rejections . I 'm not sure the spec quite covers index selectors of the form [ 5 :] so I tried adding that . If I got it wrong , that may be a symptom of an editorial problem . I think it 's bad form to use the word " canonical " without saying what you mean , so I removed it from section 2.9 . 
 LGTM now , thanks .
Paragraph (version A):
The current node identifier "@" refers to the current node in the
context of the evaluation of a filter expression (described later).
Paragraph (version B):
The current node identifier "@" refers to the current node in the
context of the evaluation of a filter expression (filter-selector).
Paragraph (version A):
A JSONPath implementation MUST raise an error for any query which is
not well-formed and valid.  The well-formedness and the validity of
JSONPath queries are independent of the JSON value the query is
applied to; no further errors relating to the well-formedness and the
validity of a JSONPath query can be raised during application of the
query to a value.
Paragraph (version B):
A JSONPath implementation MUST raise an error for any query which is
not well-formed and valid.  The well-formedness and the validity of
JSONPath queries are independent of the JSON value the query is
applied to.  No further errors relating to the well-formedness and
the validity of a JSONPath query can be raised during application of
the query to a value.
Paragraph (version A):
The query is a root identifier followed by a sequence of zero or more
segments, each of which is applied to the result of the previous root
identifier or segment and provides input to the next segment.  These
results and inputs take the form of a nodelist.
Paragraph (version A):
Segments can be added to a query to drill further into the structure
of the input value.
Paragraph (version B):
The query is a root identifier followed by a sequence of zero or more
segments, each of which is applied to the result of the previous root
identifier or segment and provides input to the next segment.  These
results and inputs take the form of nodelists.
Paragraph (version A):
The slice selector consists of three optional decimal integers
separated by colons.
Paragraph (version B):
The slice selector consists of three optional decimal integers
separated by colons.  The second colon can be omitted when the third
integer is.
Paragraph (version B):
Comparison expressions are available for comparisons between
primitive values (that is, numbers, strings, "true", "false", and
"null").  These can be obtained via literal values; Singular Queries,
each of which selects at most one node the value of which is then
used; or function expressions (see fnex) of type "ValueType".
Paragraph (version A):
The order in which the children of an object appear in the resultant
nodelist is not stipulated, since JSON objects are unordered.
Children of an array appear in array order in the resultant nodelist.
Paragraph (version B):
The order in which the children of an object appear in the resultant
nodelist is not stipulated, since JSON objects are unordered.  In the
resultant nodelist, children of an array are ordered by their
position in the array.
Paragraph (version A):
A canonical representation of a nodelist is as a JSON arrays of
strings, where the strings are Normalized Paths.
Paragraph (version B):
A nodelist may be represented compactly in JSON as an array of
strings, where the strings are Normalized Paths.
Paragraph (version A):
Single quotes are used to delimit string member names.  This reduces
the number of characters that need escaping when Normalized Paths
appear in double quote delimited strings, e.g., in JSON texts.
Paragraph (version A):
Certain characters are escaped, in one and only one way; all other
characters are unescaped.
Paragraph (version B):
Single quotes are used in Normalized Paths to delimit string member
names.  This reduces the number of characters that need escaping when
Normalized Paths appear in double quote-delimited strings, e.g., in
JSON texts.
Paragraph (version B):
Certain characters are escaped in Normalized Paths, in one and only
one way; all other characters are unescaped.