You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Two files under examples/ are not valid JSON and therefore cannot be parsed by
any JSON or JSON-LD processor. Both are syntax errors, not modelling problems.
Nothing in the build parses the examples, so these have gone unnoticed.
JSON does not permit a trailing comma before a closing brace.
json.decoder.JSONDecodeError: Illegal trailing comma before end of object: line 28 column 27
Fix: remove the comma.
Verification
The other four parse cleanly:
file
status
examples/dprod-example.json
fails — line 13
examples/data-rights/example.jsonld
fails — line 28
examples/data-quality/example.jsonld
ok
examples/data-schema/example.jsonld
ok
examples/equity-trade/example.jsonld
ok
examples/sba-pool-rates/example.jsonld
ok
Suggested follow-up
Add a build-time check that parses every examples/**/*.json and examples/**/*.jsonld and fails the build on a syntax error. Without one this
recurs silently, since the spec generator only reads each example directory's README.md and never touches the JSON payloads.
That check is also a prerequisite for the round-trip expansion test proposed in #246 — the examples have to parse before they can be expanded against the
context.
Prior reports
Neither syntax error was reported directly, but the surrounding problem was, and
the validation that would have caught both was proposed nearly two years ago:
Can not parse example.jsonld #119 (@peio, 2025-05-09, reopened 2026-08-03) — examples fail to parse in
Jena and GraphDB. Different root cause (@context redefinition rather than
malformed JSON), but the same class of defect: examples are published without
ever being run through a parser.
examples/dprod-example.json — the missing comma has been present since the
file was added in a514e98 ("Add files via upload", 2025-02-07). It has never
parsed. The unresolved <how do we search by entity type???> placeholder noted
below arrived in the same commit.
Both survived because nothing in the build parses the examples, which is the
substance of #92.
Notes
Two other things spotted in the same pass, neither a parse failure, so listed
here only for the record rather than as part of this issue:
examples/dprod-example.json:14 contains an unresolved authoring placeholder
in a published example: "endpointURL": "https://api-eit.refinitiv.com/permid/search?q= <how do we search by entity type???>"
examples/data-rights/README.md:18 fences a mixed Turtle/JSON illustrative
snippet as ```json. It reads as intentional pseudocode; only the fence
language tag is inaccurate.
Summary
Two files under
examples/are not valid JSON and therefore cannot be parsed byany JSON or JSON-LD processor. Both are syntax errors, not modelling problems.
Nothing in the build parses the examples, so these have gone unnoticed.
1.
examples/dprod-example.json:12— missing commaThe
idmember is not terminated with a comma beforetitle.Fix: add the comma. (The stray leading space on that line is worth
normalising at the same time.)
2.
examples/data-rights/example.jsonld:28— trailing commaJSON does not permit a trailing comma before a closing brace.
Fix: remove the comma.
Verification
The other four parse cleanly:
examples/dprod-example.jsonexamples/data-rights/example.jsonldexamples/data-quality/example.jsonldexamples/data-schema/example.jsonldexamples/equity-trade/example.jsonldexamples/sba-pool-rates/example.jsonldSuggested follow-up
Add a build-time check that parses every
examples/**/*.jsonandexamples/**/*.jsonldand fails the build on a syntax error. Without one thisrecurs silently, since the spec generator only reads each example directory's
README.mdand never touches the JSON payloads.That check is also a prerequisite for the round-trip expansion test proposed in
#246 — the examples have to parse before they can be expanded against the
context.
Prior reports
Neither syntax error was reported directly, but the surrounding problem was, and
the validation that would have caught both was proposed nearly two years ago:
exactly the check proposed above: extract every example, convert them to
Turtle/TriG in a workflow, and verify the output. Had that landed, both files
would have failed the build on the day they were committed. validate all examples by converting them to turtle/trig #92 should be
treated as the canonical issue for the validation workflow; this issue is the
concrete breakage it would have caught.
Jena and GraphDB. Different root cause (
@contextredefinition rather thanmalformed JSON), but the same class of defect: examples are published without
ever being run through a parser.
through which the trailing comma reached
develop.Provenance
Both errors were introduced by us, not inherited:
examples/dprod-example.json— the missing comma has been present since thefile was added in
a514e98("Add files via upload", 2025-02-07). It has neverparsed. The unresolved
<how do we search by entity type???>placeholder notedbelow arrived in the same commit.
examples/data-rights/example.jsonld— the trailing comma was introduced by31a05ee(2026-03-04), applying the Ballot 4: update data-rights example.jsonld (#83) #165 data-rights variant onballot/4.Both survived because nothing in the build parses the examples, which is the
substance of #92.
Notes
Two other things spotted in the same pass, neither a parse failure, so listed
here only for the record rather than as part of this issue:
examples/dprod-example.json:14contains an unresolved authoring placeholderin a published example:
"endpointURL": "https://api-eit.refinitiv.com/permid/search?q= <how do we search by entity type???>"examples/data-rights/README.md:18fences a mixed Turtle/JSON illustrativesnippet as
```json. It reads as intentional pseudocode; only the fencelanguage tag is inaccurate.