Abstract

This document report test subject conformance for and related specifications for JSON-LD-star Test Suite according to the requirements of the Evaluation and Report Language (EARL) 1.0 Schema [EARL10-SCHEMA].

This report is also available in alternate formats: JSON-LD

Status of This Document

This document is merely a W3C-internal document. It has no official standing of any kind and does not represent consensus of the W3C Membership.

This report describes the state of implementation conformance at the time of publication.

Table of Contents

Introduction

This implementation report covers the implementations of the JSON-LD-star specification which have submitted test results. It is intended to be maintained by the JSON for Linking Data Community Group. The implementation report serves two purposes:

  1. To demonstrate that there are multiple, independent implementations of the specifications. This is a prerequisite for progression of any standard to Recommendation.

  2. To catalog the known, conforming implementations and which features each supports.

There are other JSON-LD implementations which are not listed in this report, either due to not submitting tests or by not being intended as direct implementations of the specification, but instead layering on top of such libraries. For a broader list of implementations, please see the JSON-LD Website.

Instructions for submitting implementation reports

Reports should be submitted in Turtle format to Public Linked JSON CG or via a Pull Request to the json-ld/json-ld-star.

Tests should be run using the test manifests defined in the Test Manifests Section.

The assumed base URI for the tests is <http://example/base/> if needed.

Include an earl:Assertion for each test, referencing the test resource from the associated manifest and the test subject being reported upon. See the example below:

  [ a earl:Assertion;
    earl:assertedBy <--your-developer-identifier-->;
    earl:subject <--your-software-identifier-->;
    earl:test <--uri-of-test-from-manifest>;
    earl:result [
      a earl:TestResult;
      earl:outcome earl:passed;
      dc:date "2016-12-26T10:18:04-08:00"^^xsd:dateTime];
    earl:mode earl:automatic ] .

The Test Subject should be defined as a doap:Project, including the name, homepage and developer(s) of the software (see DOAP). Optionally, including the project description and programming language. An example test subject description is the following:

  <> foaf:primaryTopic <--your-software-identifier--> ;
    dc:issued "2016-12-26T10:18:04-08:00"^^xsd:dateTime ;
    foaf:maker <--your-developer-identifier--> .

  <--your-software-identifier--> a doap:Project, earl:TestSubject, earl:Software ;
    doap:name          "My Cool JSON-LD Parser" ;
    doap:release [
      doap:name     "--short name wih version number--";
      doap:revision "--Software version number--" ;
      doap:created  "2020-02-19"^^xsd:date;
    ] ;
    doap:developer     <--your-developer-identifier--> ;
    doap:homepage      <--your-software-homepace--> ;
    doap:description   "--your-project-description--"@en ;
    doap:programming-language "--your-implementation-language--" .

The software developer, either an organization or one or more individuals SHOULD be referenced from doap:developer using FOAF. For example:

  <--your-developer-identifier--> a foaf:Person, earl:Assertor;
    foaf:name "--My Name--";
    foaf:homepage <--my homepage--> .

3. Test Manifests

3.1 Compaction

These tests implement the requirements for the JSON-LD-star Compaction Algorithm.

Test JSON::LD
(Ruby)
Test tst04: embedded node 1 PASS
Test tst05: embedded node 2 PASS
Test tst06: embedded node 3 PASS
Test tst07: embedded node 4 PASS
Test tst08: embedded node 5 PASS
Test tst09: embedded node 6 PASS
Test tst10: embedded node 7 PASS
Test tst15: embedded node 8 PASS
Test tst16: embedded node 9 PASS
Test tst17: embedded node 10 PASS
Test tst18: Annotation node 1 PASS
Test tst19: Annotation node 2 PASS
Test tst20: Annotation node 3 PASS
Test tst20a: Annotation node 4 PASS
Test tst20b: Annotation node 5 PASS
Test tst28: Embedded annotation node 1 PASS
Test tst29: Embedded annotation node 2 PASS
Test tst32: embedded node 13 PASS
Test tst33: embedded node 14 PASS
Test tst34: Reverse annotation node 1 PASS
Test tst35: Reverse annotation node 2 PASS
Test tst36: Alias for embedded node PASS
Test tst37: Alias for annotation node PASS
Test tst38: annotation value 1 PASS
Test tst39: annotation with embedded node 1 PASS
Test tst40: annotation with annotation 1 PASS
Percentage passed out of 26 Tests 100.0%

3.2 Expansion

These tests implement the requirements for the JSON-LD-star Expansion Algorithm.

Test JSON::LD
(Ruby)
Test tst01: invalid embedded node 1 PASS
Test tst02: ignored annotation 1 PASS
Test tst03: ignored annotation 2 PASS
Test tst04: embedded node 1 PASS
Test tst05: embedded node 2 PASS
Test tst06: embedded node 3 PASS
Test tst07: embedded node 4 PASS
Test tst08: embedded node 5 PASS
Test tst09: embedded node 6 PASS
Test tst10: embedded node 7 PASS
Test tst11: invalid embedded node 2 PASS
Test tst12: invalid embedded node 3 PASS
Test tst13: invalid embedded node 4 PASS
Test tst14: invalid embedded node 5 PASS
Test tst15: embedded node 8 PASS
Test tst16: embedded node 9 PASS
Test tst17: embedded node 10 PASS
Test tst18: Annotation node 1 PASS
Test tst19: Annotation node 2 PASS
Test tst20: Annotation node 3 PASS
Test tst20a: Annotation node 4 PASS
Test tst20b: Annotation node 5 PASS
Test tst21: Invalid annotation node 1 PASS
Test tst22: Invalid annotation node 2 PASS
Test tst23: Invalid annotation node 3 PASS
Test tst24: Invalid annotation node 4 PASS
Test tst24a: Invalid annotation node 5 PASS
Test tst25: Invalid annotation node 6 PASS
Test tst26: Invalid annotation node 7 PASS
Test tst27: Invalid annotation node 8 PASS
Test tst27a: Invalid annotation node 9 PASS
Test tst28: Embedded annotation node 1 PASS
Test tst29: Embedded annotation node 1 PASS
Test tst30: embedded node 11 PASS
Test tst31: embedded node 12 PASS
Test tst32: embedded node 13 PASS
Test tst33: embedded node 14 PASS
Test tst34: Reverse annotation node 1 PASS
Test tst35: Reverse annotation node 2 PASS
Test tst36: Alias for embedded node PASS
Test tst37: Alias for annotation node PASS
Test tst38: annotation value 1 PASS
Test tst39: annotation with embedded node 1 PASS
Test tst40: annotation with annotation 1 PASS
Percentage passed out of 44 Tests 100.0%

3.3 Flattening

These tests implement the requirements for the JSON-LD-star Flattening Algorithm.

Test JSON::LD
(Ruby)
Test tst02: ignored annotation 1 PASS
Test tst03: ignored annotation 2 PASS
Test tst04: embedded node 1 PASS
Test tst05: embedded node 2 PASS
Test tst06: embedded node 3 PASS
Test tst07: embedded node 4 PASS
Test tst08: embedded node 5 PASS
Test tst09: embedded node 6 PASS
Test tst10: embedded node 7 PASS
Test tst15: embedded node 8 PASS
Test tst16: embedded node 9 PASS
Test tst17: embedded node 10 PASS
Test tst18: Annotation node 1 PASS
Test tst18n: Annotation node 1 (with @annotation) PASS
Test tst19: Annotation node 2 PASS
Test tst19n: Annotation node 2 (with @annotation) PASS
Test tst20: Annotation node 3 PASS
Test tst20n: Annotation node 3 (with @annotation) PASS
Test tst20a: Annotation node 4 PASS
Test tst20an: Annotation node 4 (with @annotation) PASS
Test tst20b: Annotation node 5 PASS
Test tst20bn: Annotation node 5 (with @annotation) PASS
Test tst28: Embedded annotation node 1 PASS
Test tst28n: Embedded annotation node 1 (with @annotation) PASS
Test tst29: Embedded annotation node 2 PASS
Test tst29n: Embedded annotation node 2 (with @annotation) PASS
Test tst32: embedded node 13 PASS
Test tst33: embedded node 14 PASS
Test tst34: Reverse annotation node 1 PASS
Test tst34n: Reverse annotation node 1 (with @annotation) PASS
Test tst35: Reverse annotation node 2 PASS
Test tst35n: Reverse annotation node 2 (with @annotation) PASS
Test tst36: Alias for embedded node PASS
Test tst37: Alias for annotation node PASS
Test tst38: annotation value 1 PASS
Test tst38n: annotation value 1 (with @annotation) PASS
Test tst39: annotation with embedded node 1 PASS
Test tst39n: annotation with embedded node 1 (with @annotation) PASS
Test tst40: annotation with annotation 1 PASS
Test tst40n: annotation with annotation 1 (with @annotation) PASS
Percentage passed out of 40 Tests 100.0%

3.4 Transform JSON-LD to RDF

These tests implement the requirements for the JSON-LD-star Deserialize JSON-LD to RDF Algorithm.

Test JSON::LD
(Ruby)
jsonld-streaming-parser
(JavaScript)
Test tst01: invalid embedded node 1 PASS PASS
Test tst02: ignored annotation 1 PASS PASS
Test tst03: ignored annotation 2 PASS PASS
Test tst04: embedded node 1 PASS PASS
Test tst05: embedded node 2 PASS PASS
Test tst06: embedded node 3 PASS PASS
Test tst07: embedded node 4 PASS PASS
Test tst08: embedded node 5 PASS PASS
Test tst09: embedded node 6 PASS PASS
Test tst10: embedded node 7 PASS PASS
Test tst11: invalid embedded node 2 PASS PASS
Test tst12: invalid embedded node 3 PASS PASS
Test tst13: invalid embedded node 4 PASS PASS
Test tst14: invalid embedded node 5 PASS PASS
Test tst15: embedded node 8 PASS PASS
Test tst16: embedded node 9 PASS PASS
Test tst17: embedded node 10 PASS PASS
Test tst18: Annotation node 1 PASS PASS
Test tst19: Annotation node 2 PASS PASS
Test tst20: Annotation node 3 PASS PASS
Test tst20a: Annotation node 4 PASS PASS
Test tst20b: Annotation node 5 PASS PASS
Test tst21: Invalid annotation node 1 PASS PASS
Test tst22: Invalid annotation node 2 PASS PASS
Test tst23: Invalid annotation node 3 PASS PASS
Test tst24: Invalid annotation node 4 PASS PASS
Test tst24a: Invalid annotation node 5 PASS PASS
Test tst25: Invalid annotation node 6 PASS PASS
Test tst26: Invalid annotation node 7 PASS PASS
Test tst27: Invalid annotation node 8 PASS PASS
Test tst27a: Invalid annotation node 9 PASS PASS
Test tst28: Embedded annotation node 1 PASS PASS
Test tst29: Embedded annotation node 1 PASS PASS
Test tst30: embedded node 11 PASS PASS
Test tst31: embedded node 12 PASS PASS
Test tst32: embedded node 13 PASS PASS
Test tst33: embedded node 14 PASS PASS
Test tst34: Reverse annotation node 1 PASS PASS
Test tst35: Reverse annotation node 2 PASS PASS
Test tst36: Alias for embedded node PASS PASS
Test tst37: Alias for annotation node PASS PASS
Test tst38: annotation value 1 PASS PASS
Test tst39: annotation with embedded node 1 PASS PASS
Test tst40: annotation with annotation 1 PASS PASS
Percentage passed out of 44 Tests 100.0% 100.0%

3.5 Transform RDF to JSON-LD

These tests implement the requirements for the JSON-LD-star Serialize RDF as JSON-LD Algorithm.

Test JSON::LD
(Ruby)
jsonld-streaming-serializer
(JavaScript)
Test tst02: ignored annotation 1 PASS PASS
Test tst03: ignored annotation 2 PASS PASS
Test tst04: embedded node 1 PASS PASS
Test tst05: embedded node 2 PASS PASS
Test tst06: embedded node 3 PASS PASS
Test tst07: embedded node 4 PASS FAIL
Test tst08: embedded node 5 PASS PASS
Test tst09: embedded node 6 PASS PASS
Test tst10: embedded node 7 PASS PASS
Test tst15: embedded node 8 PASS PASS
Test tst16: embedded node 9 PASS PASS
Test tst17: embedded node 10 PASS PASS
Test tst18: Annotation node 1 PASS FAIL
Test tst19: Annotation node 2 PASS FAIL
Test tst20: Annotation node 3 PASS FAIL
Test tst20a: Annotation node 4 PASS FAIL
Test tst20b: Annotation node 5 PASS PASS
Test tst28: Embedded annotation node 1 PASS FAIL
Test tst29: Embedded annotation node 1 PASS FAIL
Test tst32: embedded node 13 PASS PASS
Test tst33: embedded node 14 PASS PASS
Test tst34: Reverse annotation node 1 PASS FAIL
Test tst35: Reverse annotation node 2 PASS FAIL
Test tst36: Alias for embedded node PASS PASS
Test tst37: Alias for annotation node PASS FAIL
Test tst38: annotation value 1 PASS FAIL
Test tst39: annotation with embedded node 1 PASS FAIL
Test tst40: annotation with annotation 1 PASS FAIL
Percentage passed out of 28 Tests 100.0% 53.6%

A. Test Subjects

This report was tested using the following test subjects:

A.1 JSON::LD
Description
JSON::LD parses and serializes JSON-LD into RDF and implements expansion, compaction and framing API interfaces for the Ruby RDF.rb library suite.
Release
3.1.8
Programming Language
Ruby
Home Page
https://github.com/ruby-rdf/json-ld/
Developer
Test Suite Compliance
Compaction 26/26 (100.0%)
Expansion 44/44 (100.0%)
Flattening 40/40 (100.0%)
Transform JSON-LD to RDF 44/44 (100.0%)
Transform RDF to JSON-LD 28/28 (100.0%)
A.2 jsonld-streaming-parser
Description
Streaming JSON-LD parser
Release
2.0.0
Programming Language
JavaScript
Home Page
https://github.com/rubensworks/jsonld-streaming-parser.js#readme
Developer
Test Suite Compliance
Transform JSON-LD to RDF 44/44 (100.0%)
A.3 jsonld-streaming-serializer
Description
Streaming JSON-LD serializer
Release
1.1.0
Programming Language
JavaScript
Home Page
https://github.com/rubensworks/jsonld-streaming-serializer.js#readme
Developer
Test Suite Compliance
Transform RDF to JSON-LD 15/28 (53.6%)

B. Individual Test Results

Individual test results used to construct this report are available here:

C. Report Generation Software

This report generated by earl-report version 0.8.0 is a Ruby application freely available under the generous terms of the Unlicense. More information is available at https://github.com/gkellogg/earl-report .

This software is provided by Gregg Kellogg in hopes that it might make the lives of conformance testers easier.