JSON-LD-CR-Transition-Requirements

From RDF Working Group Wiki
Revision as of 19:06, 5 September 2013 by Msporny (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Overview

This page provides documentation on the fulfillment of Candidate Recommendation transition requirements for JSON-LD 1.0 and JSON-LD 1.0 API.

Decision to request advancement

JSON-LD CG resolution: Request that the RDF WG publish the JSON-LD 1.0 Candidate Recommendation on August 22nd with a CR period of 4 weeks.

RDF WG resolution: Publish both JSON-LD 1.0 and JSON-LD 1.0 Processing Algorithms and API as CR. The WG will request a duration of three (3) weeks for the JSON-LD implementation period.

Documentation of changes

Documentation of all changes, both substantive and minor, to the JSON-LD 1.0 and JSON-LD 1.0 API technical reports since the first Last Call phase for both documents.

JSON-LD 1.0 Changes

Changes since the 11 April 2013 First Last Call Working Draft:

  • (non-substantive bug fix) Allow keyword aliases to be defined using expanded term definitions
  • (editorial) Mention profile URIs also in the sections describing the various document forms
  • (non-substantive bug fix) Support relative IRIs in @base
  • (editorial) Clarify how the profile media type parameter is used in the content negotiation process
  • (non-substantive bug fix) Update grammar to disallow blank nodes as data types
  • (non-substantive bug fix) Update grammar to allow blank node identifiers as value of @vocab
  • (editorial / no effect on implementations or syntax) Align the JSON-LD Data Model with the RDF Data Model
  • (non-substantive bug fix) Support processing of documents with a +json media type as defined in [RFC6839]
  • (editorial) Added a brief description of the data model to the introduction.
  • (editorial) Fixed a number of document readability and flow issues related to all of the updates made over the last several months.

JSON-LD 1.0 API Changes

Changes since the 11 April 2013 First Last Call Working Draft:

  • (non-substantive bug fix) Processing of terms that are redefined to themselves without raising an cyclic IRI mapping error
  • (non-substantive bug fix) Raise an invalid IRI mapping error if relative URLs are used in term definitions
  • (substantive, leading to 2nd LC for JSON-LD API) Use of DOM Futures instead of callbacks in the Application Programming Interface
  • (substantive) Support lists of lists when serializing RDF as JSON-LD
  • (non-substantive bug fix) Support relative IRIs in @base
  • (substantive) Remove default value of JsonLdOption's base member
  • (non-substantive bug fix) Support for relative URLs in @base and documents that do not have a base value
  • (substantive) Support documents that do not have a base value

Changes since the 16 May 2013 Second Last Call Working Draft:

  • (non-substantive bug fix) Ensure determinism of the Deserialize JSON-LD to RDF algorithm by specifying the processing order
  • (non-substantive bug fix) Change the default value of the use native types flag in the Serialize RDF as JSON-LD algorithm to false
  • (non-substantive bug fix) Clarify that the identifier map and the counter used by the Generate Blank Node Identifier algorithm are reset before running the Flattening and the Deserialize JSON-LD to RDF algorithms
  • (non-substantive bug fix) Raise an error if a blank node is used as data type
  • (editorial) Clarify that blank node identifier are supported as value of @vocab
  • (non-substantive bug fix) When generating RDF, exclude triples containing a blank node predicate, unless the produce generalized RDF flag is set
  • (editorial) Update reference to DOM Promises (have been called DOM Futures)
  • (non-substantive bug fix) Fix bug in Serialize RDF to JSON-LD algorithm to handle lists correctly
  • (non-substantive bug fix) Support processing of documents with a +json media type as defined in [RFC6839]
  • (non-substantive bug fix) Use the LoadDocumentCallback (previously LoadContextCallback) to retrieve remote contexts and remote documents
  • (non-substantive bug fix) Allow contexts to be passed into the API directly. Previously only context documents, i.e., objects having a @context member were allowed.
  • (editorial) Clarify the usage of the documentLoader option

NB: A "non-substantive bug fix" is a change to a specification which reflected a change to the text, but not to the intent of the group.

Changes to WG Requirements for these documents

None of the WG requirements have changed for either document from the previous step.

Changes in Dependencies

There has been a change in the dependency between the RDF WG and the WHATWG based on the reference to the WHATWG DOM4 Promises specification.

Evidence of Wide Review

The following people have reviewed the JSON-LD 1.0 specification:

  • Richard Cyganiak (Deri, RDF WG) (RDF Alignment)
  • Charles Greer (Marklogic, RDF WG) (complete)
  • Sandro Hawke (W3C, RDF WG) (complete)
  • David Booth (Independent, RDF WG) (complete)
  • Pat Hayes (IHMC, RDF WG) (complete)
  • Eric Prud'hommeaux (W3C, RDF WG) (complete)
  • Dan Brickley (Google) (partial)
  • Andy Seaborne (Apache Software Foundation, RDF WG) (complete)
  • Steve Speicher (IBM) (complete)
  • Pierre-Antoine Champin (RDF WG) (complete)
  • Peter Patel-Schneider (RDF WG) (RDF Alignment)
  • Marios Meimaris (Government Linked Data WG) (complete)
  • Paul Kuykendall (Argo, private implementer) (complete)
  • Robin Berjon (HTML WG) (complete)
  • David Rogers (BBC) (general language and reverse properties)
  • Manu Sporny (editor) (complete)
  • Gregg Kellogg (editor) (complete)
  • Markus Lanthaler (editor) (complete)
  • Dave Longley (author) (complete)
  • Niklas Lindström (author) (complete)

The following people have reviewed the JSON-LD 1.0 API specification:

  • Peter Ansell (University of Queensland) (complete)
  • Paul Kuykendall (Argo, private implementer) (complete)
  • Zhe Wu (RDF WG) (complete)
  • Marios Meimaris (Government Linked Data WG) (complete)
  • Boris Zbarsky (Apple, WHATWG) (WebIDL API)
  • Tab Atkins Jr. (Google, WHATWG) (WebIDL API)
  • Anne van Kesteren (Mozilla, WHATWG) (WebIDL API)
  • Robin Berjon (W3C, HTML WG) (WebIDL API)
  • Markus Lanthaler (editor) (complete)
  • Dave Longley (author) (complete)
  • Gregg Kellogg (editor) (complete)
  • Manu Sporny (editor) (complete)

Formal Responses to all issues raised

There were approximately 269 issues from the authors, editors, and general public that were tracked, discussed and addressed before the first Last Call for JSON-LD.

The following comments and responses were made during the First and Second Last Call periods for JSON-LD:

Issue Formal Response Changes Made Commenter Accepted Changes
ISSUE-124: Order of parameters Response Yes Yes
ISSUE-125: Use of futures instead of callbacks in the JSON-LD API Response Yes Yes
ISSUE-129: JSON-LD xsd:integer lossless conversion Response Yes Unresponsive
ISSUE-130: Properly referencing the DOM Futures spec Response Yes Unresponsive
ISSUE-132: JSON-LD should be more closely aligned with RDF Response Yes Yes / Yes
ISSUE-133: Provisional support for Reverse properties Response Yes Yes / Yes / Yes
ISSUE-135: GLD WG feedback on JSON-LD and API Response Most of them, yes Yes

Formal Objections

None.

Documentation of all changes

There have been no substantive changes since the latest Last Call for either documents. Diff-marked versions of the documents can be found here:

Requirement Fulfillment

All requirements for advancement have been fulfilled.

Exit Criteria

Before the specifications exit Candidate Recommendation, two or more independent implementations must pass each test, although no single implementation must pass each test. The working group will freeze the test suite when the CR documents are published, will produce an implementation report (hosted together with the test suite) at the end of the CR period.

A sample of the current implementation report can be found here: http://json-ld.org/test-suite/reports/

Implementations

There are currently seven fairly complete open source implementations of the JSON-LD specifications in browser-based Javascript, Node.js, two implementations in PHP, Python, Ruby, and Java. There is one closed source, partial implementation in C#.

The current status of implementations can be found here: http://json-ld.org/test-suite/reports/

It is expected that at least 6 of these implementations will be 100% conforming across all tests by the end of the Candidate Recommendation period.