-
Notifications
You must be signed in to change notification settings - Fork 99
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
Naming classes of properties and syntax #463
Comments
is there an example of "representation-independent syntax" ? I think its probably safe to take a stab at a PR for this regardless. |
No there is no such thing, that would be a contradiction. Based on the above diagram, we would have:
and:
|
@peacekeeper, you nailed it. Great diagram (as always), and I'm totally aligned with your proposed terminology. One question: do you think we need to add these to the terminology section? My gut feeling is no, but that we should introduce them (and I would even vote to include your diagram) in the Abstract Data Model section. |
The issue was discussed in a meeting on 2020-11-24)
View the transcript3. PR 454 and 455...See github pull request #454, #455. Brent Zundel: status update? dlongely: we are waiting for a response from mike jones regarding the suggestions for adding a note to the PR / regardign @context in the JSON representation section. Brent Zundel: I will ping him again Markus Sabadello: after merging 455 and then 454 we still need to revisit the exact terminology... lots of different properties type to hammer down. See github issue #463. Markus Sabadello: feedback welcome Brent Zundel: other PRs that need to be discussed in this meeting? |
@shigeya added this point over in #500
I'm moving here so #500 can be closed and the discussion is consolidated |
The term "syntax" is misleading because it's being used in a vague manner... here are valid examples of syntax in JSON:
These lexical tokens are also valid syntax (and we call them properties in the specification) -- "foo", "bar", " It's only once you get into the semantics of the tokens where you can start differentiating... language syntax is typically composed of at least three layers, in order -- words, phrases, and context. I'd argue we're trying to name the third layer by referring to it as "syntax" -- it's not entirely wrong, but it is vague and misleading. I think the last sentence of the issue that @peacekeeper raised identified a more accurate naming scheme:
We don't do anyone any favors by adding more terminology than necessary to the specification... it makes it harder to grasp. So, let's just have these categories:
Then each representation, in it's Representation-specific section, can also add details about "representation-specific properties":
If we do this, we give the thing a name without requiring a vague new class of terms (syntax) or adding unnecessary subsections. |
Thinking about this a bit more... even this is a bit misleading -- |
If we're now again calling E.g. see this resolution here: https://www.w3.org/2019/did-wg/Meetings/Minutes/2020-11-05-did#resolution5
I suggest to not re-open this discussion again, and to not blur the lines between representation-independent properties that must work in all representations, and things that are only meaningful to certain representations... |
The problem here is folks are conflating what an Object and a DID Document have inside them. I suggest a special topic call dedicated to reviewing:
See also:
This problem didn't exist before we had an abstract data model, because everything was JSON, and the following definitions applied: Sadly since the ADM is not RDF, we actually don't have a way of separating a "predicate" from a "attribute" or "member" or "property"... and all these words are now confusing because they are all abstract. Luckily INFRA has the answer to this question, and if we don't agree this is the answer, we better re-evaluate infra. according to our spec, a DID Document is an infra map the word "property" is incorrectly used in the did core spec, maps have "keys" ... maps do not have "properties".... and in fact.... the word property only shows up when infra discusses serialization to json: https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string I suggest we agree to the following:
All instances of the word "property" are replaced with the word "key" when referring to the ADM, and are hyperlinked with the infra defintion of a map. https://infra.spec.whatwg.org/#maps This issue should be retitled naming classes of registered infra map keys used by did documents. The word "syntax" is unhelpful and irrelevant. |
We avoided using the word "key" because it also contains public keys :) -- when we had this language before, multiple people noted how confusing it was... so I doubt we can go back to something people didn't want. I know I would probably object.... "Well, you see... there are /keys/ and then there are *keys*". |
+1, agreed.
+1, I'm supportive of representation-specific property and representation-agnostic property. |
The spec no longer defines The group should use terms like "property" or "attribute" consistently... if folks don't want to use the term "property" for a key in an INFA Map that is "representation specific", they don't get to use the term for things that are "representation agnostic". I personally think INFRA made the entire spec worse, but if we are going to use it, let's not use parts of it and not other parts.... a did document is an infra map, infra maps have keys.... not attributes or properties... every instance of the word "property" is bias towards JSON representations, which is attempted to remove when we introduced the ADM... the appeal of the word "property" is hold over from the time when everything was JSON. that time has passed... everything is now INFRA. It is more confusing to use the term "property" for an "infra map key" in did core, than it is to use the infra definitions without modification in did core, if we are going to rename infra vocabulary in order to use it in did core, we should add a sectiton describing the name changes, to remove ambiguity... for example, we could say: "DID Documents are INFRA Maps, but we use the term "property" instead of map key, to avoid ambiguity"....then we can use the term "property" for any instance of "map key".... Either we do that, and things like personally, I would prefer to just use INFRA as it is, or not use it... I find redefining vocabulary to be one of the least helpful things that a spec can do. |
I agree with @OR13 on re-using INFRA terms and not changing them. I'd prefer something like this: A DID document consists of a map of entries, where each entry consists of a key/value pair. The data model contains at least two different classes of entries. The first class of entries are representation-independent properties, and are specified in section § 5. Core Properties. The second class of entries are representation-specific syntax, and are specified in section § 6. Representations. I think this would be consistent with the F2F discussions and also the diagram here in my first comment. This also enables the preservation of representation-specific syntax across different representations (even though personally I still have reservations about this). |
#455 introduced the concept of "representation properties". Per comments in that PR, we still wanted to discuss the exact terminology. I propose to distinguish properties and syntax according to 1. whether they are core, registered, or unregistered, and 2. whether they are representation-independent or representation-specific.
See this matrix:
Additional notes:
@context
in a YAML DID document).If people agree with this, I can do PRs to update DID Core and DID Spec Registries.
The text was updated successfully, but these errors were encountered: