diff --git a/index.html b/index.html index 2ed1a3ce..0ccfdb5e 100644 --- a/index.html +++ b/index.html @@ -2833,136 +2833,105 @@

Consumption

-

-JSON-LD -

+

JSON-LD

-JSON-LD is a JSON-based format used to serialize -Linked Data. -This section establishes the requirements for producing and consuming DID -documents that are expressed as JSON-LD. JSON-LD DID documents -are indicated by a contentType resolver metadata field that is -set to application/did+ld+json. -

- -

-Use of the media type application/did+ld+json is pending -clarification over the registration of - -media types with multiple suffixes. The alternative will be to use -application/ld+json with an expected profile parameter of -https://www.w3.org/ns/did/json-ld-profile if multiple suffixes -cannot be registered by the time the rest of DID Core is ready for W3C -Proposed Recommendation. See also -Issue 208. +JSON-LD [[JSON-LD11]] is a JSON-based format used to serialize Linked Data. This +section defines the production and consumption rules for the +JSON-LD representation.

-The following application-specific modifications are made by this specification -to the JSON-LD specification [[JSON-LD11]] to ease interoperability between -JSON and JSON-LD implementations: +The JSON-LD representation defines the following representation-specific +entries:

- +
+
@context
+
+The JSON-LD Context +is either a string or a list containing any combination of strings and/or ordered +maps. +
+

Production

-The DID document MUST be serialized according to the -production rules for JSON, with one additional -requirement: The serialized DID document MUST include the -@context member. +The DID document and any DID document data structures expressed by the data model MUST +be serialized to the JSON-LD representation according to the JSON +representation production rules as defined in .

-
-
@context
-
- -

-The JSON-LD -specification defines values that are valid for this member. It -contains representation-specific syntax and therefore could be present as an -entry in the data model to aid in lossless conversion. If the entry -is present in the data model, it MUST be used during -production unless either an alternative @context value is -explicitly provided to the producer or if the value from the data model is not -valid according to the consumption rules. -

- -

-The value of @context MUST be exactly one of these values. -

+

+In addition to using the JSON representation production rules, +JSON-LD production MUST include the representation-specific +@context entry. The serialized value of +@context MUST be the JSON +String https://www.w3.org/ns/did/v1, or a JSON Array where the first item is the JSON String +https://www.w3.org/ns/did/v1 and the subsequent items are +serialized according to the JSON representation production +rules. +

-
    -
  • -The JSON String -https://www.w3.org/ns/did/v1. -
    +        
     {
       "@context": "https://www.w3.org/ns/did/v1",
       ...
     }
    -                
    -
  • -
  • -A JSON Array, -with first item the JSON -String https://www.w3.org/ns/did/v1, and subsequent items of -type JSON String or -JSON Object. -
    +        
    +
     {
       "@context": [
         "https://www.w3.org/ns/did/v1",
    -    "https://example.com/blockchain-identity/v1"
    +    "https://did-method-extension.example/v1"
       ],
       ...
     }
    -                
    -
  • -
+ -

-All JSON-LD terms defined by the @context SHOULD exist in the DID -Specification Registries [[?DID-SPEC-REGISTRIES]] in order to achieve -interoperability across different representations. If a term does not exist -in the DID Specification Registries, then the DID document might not be -interoperable across representations. -

+

+All implementers creating conforming producers that produce JSON-LD +representations are advised to ensure that their algorithms +produce valid JSON-LD [[JSON-LD11]] documents. Invalid JSON-LD documents will +cause JSON-LD processors to halt and report errors. +

+ +

+In order to achieve interoperability across different representations, +all JSON-LD Contexts and their terms SHOULD be registered in the DID +Specification Registries [[?DID-SPEC-REGISTRIES]]. +

-

-It is RECOMMENDED that dereferencing each URI value of the -@context entry results in a document containing -machine-readable information about the context. Note that further expectations -of additional JSON-LD contexts are described as part of the DID Specification -Registries registration process. -

-
-

-Producers SHOULD NOT produce DID documents that contain properties not -defined via the @context. Properties that are not defined via the -@context MAY be dropped by Consumers. +A conforming producer that generates a JSON-LD representation +SHOULD NOT produce a DID document that contains terms not defined +via the @context as conforming consumers are expected +to remove unknown terms. When serializing a JSON-LD representation of a DID +document, a conforming producer MUST specify a media type of +application/did+ld+json to downstream applications such as +described in . +

+ +

+Use of the media type application/did+ld+json is pending +clarification over the registration of + +media types with multiple suffixes. The alternative will be to use +application/ld+json with an expected profile parameter of +https://www.w3.org/ns/did/json-ld-profile if multiple suffixes +cannot be registered by the time the rest of DID Core is ready for W3C +Proposed Recommendation. See also +Issue 208.

@@ -2971,27 +2940,30 @@

Production

Consumption

-The DID document MUST be deserialized as a JSON document according to -the consumption rules for JSON, with one additional -requirement: The serialized DID document MUST include the -@context member and be processed according to the rules below. +The DID document and any DID document data structures expressed by a JSON-LD representation MUST be +deserialized into the data model according to the JSON +representation consumption rules as defined in .

-
-
@context
-
-

-The value of the @context member conforms to the -JSON-LD Production Rules. If more than one -URI is provided, the URIs MUST be interpreted as an -ordered set. -

-
-
+

+In addition to using the JSON representation consumption rules, +JSON-LD consumption MUST add the representation-specific entries into +the data model according to the +JSON representation consumption rules. +

+ +

+All implementers creating conforming consumers that consume JSON-LD +representations are advised to ensure that their algorithms only accept +valid JSON-LD [[JSON-LD11]] documents. Invalid JSON-LD documents will cause +JSON-LD processors to halt and report errors. +

-Consumers SHOULD drop all properties from a DID document that are not -defined via the @context. +Conforming consumers that process a JSON-LD representation SHOULD +drop all terms from a DID document that are not defined via the +@context.