diff --git a/index.html b/index.html index db34f17b9..e621e8e36 100644 --- a/index.html +++ b/index.html @@ -3950,7 +3950,140 @@

Syntaxes

JSON-LD

-

+

+

Data Model Foundations

+

+ The world of credentials is vast and varied. A physical wallet places a few + constraints on the shape and size of those credentials, and no restriction on + their contents. Likewise, the Verifiable Credential Data Model's use of + [[!JSON-LD]] provides a consistent way to interpret all compliant Verifiable + Credentials using a syntax that can be enforced using complementary + technologies such as JSON Schema. This means issuers can add claim terminology + unique to their communities without the high costs of centralized terminology + registration or format churn. In turn, digital wallets can store and index + credentials with widely varying content, providing value to a plethora of + communities, and enabling many diverse use cases. +

+

+ [[!JSON-LD]] provides the Verifiable Credential Data Model (VCDM) with + consistent object-oriented modeling constraints that are familiar to + developers and enable better reuse and composition of data. That modeling is + built from clean expressions of subjects, properties, and values + (S-P-V, also referred to as entities, attributes, and values, + E-A-V, as well as subjects, predicates, and objects, + S-P-O) which comprise the shape of each atomic claim within a VCDM + credential. This approach empowers Wallets to store any credential shaped in + this way and to index the contained claims across all the holder's + credentials, such that credentials may be quickly and easily found and + presented when needed. +

+ +

+ This foundational data modeling and grammatical structure is provided through + the addition of a single `@context` key which identifies context files that map + otherwise idiosyncratic and often ephemeral terms into universally shareable, + collision resistant vocabularies. [[!JSON-LD]] provides the VCDM's + underlying subject, property, and value graph-based data model which enables + aggregation, collation, and even separation of the individual statements held + within the [[!JSON-LD]] graph. It expresses this model using a developer-friendly + object-oriented structure enabling consistent interpretation of previously + freeform JSON documents. +

+
+ +
+

Extending JSON

+ +

+[[!JSON-LD]] brings context, meaning, and object-oriented modeling to previously +idiosyncratic JSON formats. It provides that contextualization by mapping +colloquial terms used within a JSON object to term and type definitions with +universal identifiers in the form of URLs. This prevents term collisions and +need for yet-more-JSON-formats by providing a common extensible JSON structure +with minimal requirements for extensibility. The additional grammatical +constraints at this foundational layer prevent the need for endless invention +and support of use case specific JSON models with idiosyncratic terms and +unique to the implementation approaches to data modeling, value usage, and +parsing approaches. +

+ +

+A JSON document becomes a [[!JSON-LD]] document when it includes an `@context` +property with a URL associated with a context file and is interpreted in an +object-oriented style. The context file provides +the mapping between the idiosyncratic in-document terminology and universally +shareable identifiers and value definitions. This provides not only +contextualization and meaning, but also reusability through universally +shareable terms and object-oriented structuring. This enables aggregation and +collation of data without the need for additional upfront integration +development time for each newly discovered JSON format. Future community +credential definitions will focus on the use of their terminology rather than +force implementers to parse another unique JSON format specific to that +community or use case. +

+ +

+Consequently, without any additional processing a JSON document gains the value +of an in-message association with its terminology definitions. Details on +processing VCDM documents consistently with the context file, but without +[[!JSON-LD]] tooling, can be found in the "JSON Processing" section below. +

+ +

+The referenced context file provides the foundation for a consistent +grammatical layer on top of object-oriented modeling and community-driven +terminology selection which enables coexistence of various JSON tree shapes and +colloquial terms while preventing likely terminology collisions or creating a +need to write new tree traversal code for every new media type or JSON shape or +parsing approach. +

+ +

+The Verifiable Credentials Data Model uses this consistent foundation to provide a +common layer across all credentials, presentations, and transaction formats +within a single, consistently parseable media type definition. This allows for +ecosystem extensibility without requiring a centralized registry to be updated +for every new application or community. The core data model terms are +registered and specified while communities are free to build on that foundation +through their own specification process. The terminology mappings are +referenced from the VCDM document removing the need for an ever changing +landscape of "private claims" or narrowly defined "public claims" housed in a +centralized registry. Instead, contexts function as decentralized registries +that can be shared within or across communities. The common grammar and +object-oriented data modeling +remain the same, and properly contextualized terms can commingle. Applications +and communities can extend what is claimed and signed through the use of +vocabularies. +

+ +

+The underlying graph data model enables signing of the document's statements +rather than just an envelope in which it's contained. When using this feature, the +data — while signed — is accessible in the same format it had been prior to signing, +allowing for easier indexing, storage, and in-Wallet selection. The existence of +one or more proofs within the object-oriented graph model, each fit for purpose, +can be used to increase confidence that its actual informational contents are signed. +This enables, for example, selective disclosure of statements within the same JSON format, +avoiding the ever increasing cost of retooling for new disclosure formats or +new envelope types. The proof is consistently placed alongside the claims. +

+ +

+[[!JSON-LD]] provides Verifiable Credentials with a consistent grammatical +foundation, object-oriented modeling, and collision-free terminology sharing +which allows for ecosystem growth, document format iteration (rather than +reinvention), and an extensible framework for new cryptographic proof +mechanisms without altering or damaging the underlying data structure. This +creates economies of scale which reduces development time, decreases +retooling cost, decreases time to market, and provides long term stability for +Issuers, Verifiers, and Wallets. +

+
+ +
+

JSON-LD Syntax

+ +

[[!JSON-LD]] is a JSON-based format used to serialize Linked Data. The syntax is designed to easily integrate into deployed systems already using JSON, @@ -3958,18 +4091,18 @@

JSON-LD

intended to be a way to use Linked Data in Web-based programming environments, to build interoperable Web services, and to store Linked Data in JSON-based storage engines. -

+

-

+

[[!JSON-LD]] is useful when extending the data model described in this specification. Instances of the data model are encoded in JSON-LD compact form [[!JSON-LD]] and include the @context property. The JSON-LD context is described in detail in the [[!JSON-LD]] specification and its use is elaborated on in Section . -

+

-

+

Multiple contexts MAY be used or combined to express any arbitrary information about verifiable credentials in idiomatic JSON. The JSON-LD context, @@ -3977,15 +4110,16 @@

JSON-LD

document that is never updated and can therefore be downloaded and cached client side. The associated vocabulary document for the Verifiable Credentials Data Model is available at https://www.w3.org/2018/credentials. -

+

-

+

This specification restricts the usage of JSON-LD representations of the data model. JSON-LD compact document form MUST be utilized for all representations of the data model in the base media type, `application/vc+ld+json`. -

+

+

Syntactic Sugar