diff --git a/index.html b/index.html index 24254f829..f4f7e11a3 100644 --- a/index.html +++ b/index.html @@ -3078,25 +3078,70 @@

Extensibility

Semantic Interoperability

+

+When defining new terms in an application-specific vocabulary, developers MUST +use globally unambiguous [=URLs=] to identify the terms. Whenever possible, it +is RECOMMENDED to re-use terms — and their corresponding URLs — defined by +well-known, public vocabularies, such as [[[?DCTERMS]]] [[?DCTERMS]] or +[[[?schema-org]]] [[?schema-org]]. If that is not possible, authors MUST +define a new URL for each term. When doing so, the general guidelines +for [[LINKED-DATA]] are expected to be followed, in particular: +

+

-A human-readable document describing the expected order of values for the -`@context` [=property=] is expected to be published by any -implementer seeking interoperability. A machine-readable description -(that is, a normal JSON-LD Context document) is expected to be published -at the URL specified in the `@context` [=property=] by -JSON-LD implementers seeking interoperability. +Developers SHOULD follow the detailed +checklist in [[[?LD-BP]]] [[?LD-BP]] when defining a new vocabulary. +

+

+Furthermore, a machine-readable description (that is, a +JSON-LD Context document) MUST be +published at the URL specified in the `@context` [=property=] for the +vocabulary. This context MUST map each term to its corresponding URL, possibly +accompanied by further constraints like the type of the property value. A +human-readable document describing the expected order of values for the +`@context` [=property=] is also expected to be published by any implementer +seeking interoperability. +

+ +

+When processing the active +context defined by the base JSON-LD Context document defined in this specification, compliant JSON-LD-based +processors produce an error when a JSON-LD context +redefines any term. The only way to change the definition of existing +terms is to introduce a new term that clears the active context within the scope +of that new term. Authors that are interested in this feature should read about +the `@protected` +keyword in the JSON-LD 1.1 specification. +

+ +

+The base JSON-LD Context file for this specification also includes an extra +feature, using the `@vocab` +keyword, which ensures that any undefined term in a [=verifiable credential=] or +a [=verifiable presentation=] is automatically mapped to a URL prefixed with +`https://www.w3.org/ns/credentials/issuer-dependent#`. This is to allow early +experimentation with terms during the development phase, without requiring a +formal definition in every cycle of that experimentation. Note that developers +SHOULD NOT use this feature in production; this could lead to name clashes, +yielding semantic ambiguities with other applications. Instead, they SHOULD +define all the terms, as described earlier in this section, to achieve proper +interoperability.