-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Only DOCUMENT conformance matters #317
Comments
This feels like a solid framework for clarifying a bunch of text. One question: how does this fit into the use-case driven "requirements"? It seems there is agreement that the use case document is a good place for illustrating the larger ecosystem, that is, how VCs will be used--not just how a document is conformant. There is a section in the data-model that is a non-normative distillation of the use cases in terms of requirements. When the use case team reviewed this section, we updated it to meet our current understanding of the current consensus requirements. We slipped into "conformant" language, with "MUST" and "MAY". However, we are struggling to find the right voice. Based on your comments above, maybe we were trying too hard to be normative. Rather, we should be clearer that this is what the use cases suggest as requirements for the spec, rather than requirements for conformant documents. Thoughts? |
Use cases are clearly there to demonstrate the entire ecosystem. |
@ashimura also gave another great example, the WoT spec. IR: https://w3c.github.io/wot-thing-description/testing/report.html |
I have made a complete pass through the specification (commits 175f07e and 3059153) and ensured that all MUSTs, RECOMMENDED, SHOULDs, MAYs (and their respective NOTs), specifically talk about document conformance and do not talk about issuer, holder, or verifier conformance. The next step is to ensure that the tests in the test suite are aligned w/ all MUST/SHOULD/MAYs in the document via w3c/vc-test-suite#6... but I think that for the purposes of this issue, we're done. Closing. Re-open if you disagree. |
TL;DR We need to ensure that only DOCUMENT conformance statements exist in the specification, rewriting or removing existing statements if necessary.
This is a specification for a data model and a few syntactic realizations of that data model.
We are not defining an API or a protocol, and thus there are no formal requirements on processors other than to state implementation of features of the data model / syntax as described.
It is appropriate to define what a 'conforming document' is. Any statements about what a 'conforming processor' must do beyond 'support a conforming document as described in this specification' are suspect.
Here are several examples of W3C specifications that define a document format, as we do, without an execution semantics (except for JSON-LD itself, for which various transformation processes are defined). For each, first take a look at the Implementation Report to see what ours might look like. Then you can look at the spec itself for the conformance language they adopted.
DCAT: IR (http://www.w3.org/2011/gld/wiki/DCAT_Implementations), Spec conformance (https://www.w3.org/TR/vocab-dcat/#conformance)
EMMA: IR (https://www.w3.org/TR/emma/#s5), Spec conformance (https://www.w3.org/TR/emma/#s5)
JSON-LD: IR (N/A), Spec conformance (https://www.w3.org/TR/2014/REC-json-ld-20140116/#conformance)
Note in the above examples that requirements are generally around support of the syntactic features of the language. Although some semantics can stray into the descriptions, they are typically co-occurrence or dependency statements, similar in principle to subject-verb agreement in English.
@stonematt and I believe this is the source of much of the scope confusion that has occurred in our discussions over the last few months, and in particular the concerns that Ted has (appropriately) raised. As chairs, we want to see all of the conformance language in the specification (MUST, MAY, SHOULD, etc.) be checked and, if needed, rewritten in the form of requirements on the specification itself and not on processors. If it is not possible to write it that way, it CANNOT be a normative requirement in our specification, although it could be informative text or moved to the Implementation Guide.
When evaluating whether the requirement is on the document itself, it may be helpful to try to phrase the requirement in the form "It is a property of a verifiable credential that XXXX", where XXXX is not allowed to refer to an Issuer, Holder, or Verifier (in short, a processor). If this is possible, then the requirement is most likely a data model/syntax requirement and can be written as such.
You can also think of document conformance statements as "things that are true no matter when checked", while processor conformance statements are "things whose truth depends on when they are checked".
Examples of appropriate conformance statements (not necessarily correct, but of the right form)
Examples of inappropriate conformance statements:
Examples of informative (non-normative) statements that we (and PING) might still want:
Dan and Matt, VCWG Chairs
The text was updated successfully, but these errors were encountered: