Skip to content

Commit 1cdb27f

Browse files
committed
Quickly review the FAQ to catch up with the release of the RFC
1 parent 6ce840c commit 1cdb27f

File tree

3 files changed

+11
-38
lines changed

3 files changed

+11
-38
lines changed

FAQ.md

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,26 @@ being able to query it is valuable.
99
Let's just make sure it's implemented consistently so we can avoid surprises.
1010

1111
This comparison is meant to create visibility, help implementers find issues
12-
by sharing test cases, and finally give guidance on interpretation of the
13-
[initial posts by Goessner](https://goessner.net/articles/JsonPath/).
12+
by sharing test cases.
1413

1514

1615
## Where are the expected results coming from?
1716

18-
Given there is no extensive test suite and implementations in the wild disagree
19-
widely, we take the rather unorthodox approach and just look for a consensus.
17+
Given that the
18+
[initial posts by Goessner](https://goessner.net/articles/JsonPath/) left room
19+
for interpretation, and
20+
[a clear standard](https://www.rfc-editor.org/rfc/rfc9535) only emerged much
21+
later (with a definitive reference implementation yet to be completed) we
22+
took the rather unorthodox approach and just built on top of a consensus.
2023

2124
The consensus is based on the majority across all supported implementations.
2225
This is achieved by executing a query against all implementations and finally
2326
comparing the results. If a majority of half of all implementations (rounded up)
2427
plus one agree on an outcome we speak of a consensus. This guarantees difference
2528
of at least 2 votes even in critical cases.
2629

27-
While this makes no statement of the correctness, we trust that if a majority
28-
of authors agree on the same outcome they are very likely to have reached a
29-
consistent interpretation useful for the user.
30-
31-
32-
## If there's no correct implementation, isn't it incorrect to speak of a 'wrong' result?
33-
34-
This project has an ultimate goal: to help developers find a good implementation
35-
that is also consistent in its interpretation, across all languages. Otherwise,
36-
what's the point of learning it if the knowledge turns out wrong when jumping to
37-
the next programming language.
38-
39-
In this context we assume that given a consensus, all other answers are plain
40-
wrong, so long as the consensus cannot be tipped towards a different
41-
implementation.
30+
The consensus however makes no statement of the correctness. One should rather
31+
carefully read the [the RFC](https://www.rfc-editor.org/rfc/rfc9535).
4232

4333

4434
## Shouldn't Goessner's implementation be considered correct?
@@ -61,14 +51,6 @@ The consensus gives the community an opportunity to move away in cases that are
6151
doubtful or considered inconsistent and incorrect.
6252

6353

64-
## Should I be forced to implement a certain interpretation if I don't agree with it?
65-
66-
We think not. The point of the consensus is to create room for alignment. If a
67-
different solution exists, we would hope for a lively discussion and, given it
68-
is deemed better, that eventually the majority of implementations will move
69-
towards the better solution.
70-
71-
7254
## How do you handle differences in implementations when calculating the consensus?
7355

7456
As it turns out quite a few structural differences have come up across
@@ -147,12 +129,3 @@ Here's a few good indicators that the query you are looking at should be added:
147129
should probably be broken down to narrow the area of test. Obviously a long
148130
query is good if a shorter version does not expose the same deviation in
149131
implementations' responses.
150-
151-
152-
## How will a standard emerge from the query examples?
153-
154-
There is now an undertaking to develop an Internet Draft for JSONPath:
155-
https://github.com/ietf-wg-jsonpath/draft-ietf-jsonpath-jsonpath .
156-
157-
Outcomes here help to inform the draft process with insights into what is
158-
being currently used and accepted as "correct" in the wild.

docs/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<article class="markdown-body">
44
<h1>JSONPath Comparison</h1>
55

6-
<p>See how <a href="https://goessner.net/articles/JsonPath/">JSONPath</a> is implemented across different languages.
6+
<p>See how <a href="https://www.rfc-editor.org/rfc/rfc9535">JSONPath</a> is implemented across different languages.
77
See the <a href="https://github.com/cburgmer/json-path-comparison/blob/master/FAQ.md">FAQ</a> for why we are doing this and where the results come from.</p>
88

99

src/compile_table.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ header_row() {
163163
table() {
164164
echo "<h1>JSONPath Comparison</h1>
165165
166-
<p>See how <a href=\"https://goessner.net/articles/JsonPath/\">JSONPath</a> is implemented across different languages.
166+
<p>See how <a href=\"https://www.rfc-editor.org/rfc/rfc9535\">JSONPath</a> is implemented across different languages.
167167
See the <a href=\"https://github.com/cburgmer/json-path-comparison/blob/master/FAQ.md\">FAQ</a> for why we are doing this and where the results come from.</p>
168168
"
169169
echo "

0 commit comments

Comments
 (0)