Skip to content
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

Add formal vocabulary definitions. #105

Merged
merged 9 commits into from
Jan 13, 2024
Merged

Add formal vocabulary definitions. #105

merged 9 commits into from
Jan 13, 2024

Conversation

msporny
Copy link
Member

@msporny msporny commented Dec 28, 2023

This PR is a first pass at attempting to address issue #17 by formally defining the vocabulary for BitstringStatusList.


Preview | Diff

@@ -529,7 +529,7 @@ <h3>BitstringStatusListCredential</h3>
</td>
</tr>
<tr>
<td>credentialSubject.ttl</td>
<td id="ttl">credentialSubject.ttl</td>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I flagged this elsewhere -- but don't think ttl works as specified and we don't need it here. I won't object to it being added here, but we'll then just need to remove it later unless it can be shown that it works properly.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please raise an issue if you haven't done so already noting why TTL doesn't work.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nevermind, I found it: #73 (comment)

@iherman
Copy link
Member

iherman commented Dec 29, 2023

I will check the vocabulary generation file soonish (probably on the week-end), but one immediate remark that should be handled somehow.

  • in contrast to the two other vocabularies, you chose to call the vocabulary file index.yml instead of vocabulary.yml
  • the yml2vocab script's default name for the vocabulary file is vocabulary.yml
  • the action script to include the vocabulary generation does not have an explicit name for the vocabulary file.
  • the generation of the ttl and jsonld file is such that the 'base name' of the vocabulary file is used, i.e., if index is used then it will be index.ttl and index.jsonld. The vocabulary template file, that refers to these formats, should reflect that.

All this means that the current setup will lead to a problem. I would suggest, to stay in line with the other vocabulary generation cases, to use vocabulary.yml file in instead of index.yml.

@msporny
Copy link
Member Author

msporny commented Dec 30, 2023

@iherman wrote:

All this means that the current setup will lead to a problem.

Yes, I've been meaning to chat with you about the defaults. One of the downsides to having all the files generated say "vocabulary.html" is that browsing to the directory doesn't load the vocabulary file. On Github, you're just given a 404 (without directory contents).

I can change it back if it's a pain (simple rename), but I'm wondering if we should consider using whatever name the individual that wrote the file has chosen instead of forcing a naming convention on the people that use the yml2vocab tool. You are, of course, the final arbiter in that decision since you wrote the tool. :)

@iherman
Copy link
Member

iherman commented Dec 30, 2023

I can change it back if it's a pain (simple rename), but I'm wondering if we should consider using whatever name the individual that wrote the file has chosen instead of forcing a naming convention on the people that use the yml2vocab tool. You are, of course, the final arbiter in that decision since you wrote the tool. :)

I would propose to leave this as a vocabulary.yml for now. Any change would involve (1) make a (very simple) change in the yml2vocab package (2) update the package on npm (3) make all the changes in the DI and VCDM vocabularies as well, because the package taken from npm would not work for them anymore. Nothing complicated, but with the avalanche of PR-s and issues for CR, it is just a distraction for now. This is the typical issue that we can handle when we get to more peaceful times with CRs all around.

@iherman
Copy link
Member

iherman commented Dec 30, 2023

@msporny while we are looking at those annoying minor issues... Is the namespace for this vocabulary (ie, https://www.w3.org/ns/credentials/status-list#) cast in concrete? The reason I am asking this is that we have now the following URL-s for the VC related vocabularies:

  1. Credentials namespace: https://www.w3.org/2018/credentials#
  2. DI namespace: https://w3id.org/security#
  3. Bitstring status namespace: https://www.w3.org/ns/credentials/status-list#

Three different vocabularies with three totally different namespace URL-s: that is a real reason for confusion. We had some discussions before regarding (1) and (2), and there is a general agreement that, well, this is what we inherited, and it would lead to more problems changing those that it would solve. Ie, we are stuck with (1) and (2). But if so, wouldn't it be less confusing to the community if the bitstring status namespece was https://www.w3.org/2018/status-list#?

Using /ns/credentials/... would clearly be, in theory, nicer and cleaner. But isn't this the case where practical and user considerations should win over theoretical purity?

CC @dlongley

@msporny
Copy link
Member Author

msporny commented Dec 30, 2023

@iherman wrote:

I would propose to leave this as a vocabulary.yml for now.

Done in eb561c1.

Is the namespace for this vocabulary (ie, https://www.w3.org/ns/credentials/status-list#) cast in concrete?

No, it's just a proposal for now. :)

It's based on our decision to do this in VCDM v2.0:

  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://www.w3.org/ns/credentials/examples/v2"
  ],

We didn't change the vocabulary URLs because we had deployed systems for VCDM v1.0 and v1.1 in production. The StatusList2021 specification used https://w3id.org/vc/status-list# as its vocabulary URL base.

However, when the group decided to rename from StatusList2021 we broke all backwards compatibility with all existing systems, and we had no systems that we knew of in production. So, this vocabulary URL is a bit of a green field exercise -- we are not held back by previous production deployments.

wouldn't it be less confusing to the community if the bitstring status namespece was https://www.w3.org/2018/status-list#?

Maybe? I wouldn't be opposed to that base URL. The only argument against it is that the status list vocabulary didn't exist in 2018. :)

So, if https://www.w3.org/ns/credentials/status-list# is "nicer and cleaner", then we can do that for this particular vocabulary URL.

@iherman
Copy link
Member

iherman commented Dec 30, 2023

@iherman wrote:

I would propose to leave this as a vocabulary.yml for now.

Done in eb561c1.

Thanks. Let us come back to these when the CR storm settles :-)

Is the namespace for this vocabulary (ie, https://www.w3.org/ns/credentials/status-list#) cast in concrete?

No, it's just a proposal for now. :)

[…]

wouldn't it be less confusing to the community if the bitstring status namespece was https://www.w3.org/2018/status-list#?

Maybe? I wouldn't be opposed to that base URL. The only argument against it is that the status list vocabulary didn't exist in 2018. :)

So, if https://www.w3.org/ns/credentials/status-list# is "nicer and cleaner", then we can do that for this particular vocabulary URL.

This would be o.k. only if we decided to use /ns/credentials/core# or something like that for the credential vocabulary. That is a big no-no I believe it is even more clean and nice if these two vocabularies live side by side, so to say.

Actually, in #81, I considered these terms to be simply added to the VCDM credential vocabulary... Would that be out of the question? Does it have a real value of keeping these two apart? (Just asking, I do not have strong feelings on that aspect.)

@msporny
Copy link
Member Author

msporny commented Dec 30, 2023

@iherman wrote:

Actually, in #81, I considered these terms to be simply added to the VCDM credential vocabulary... Would that be out of the question? Does it have a real value of keeping these two apart? (Just asking, I do not have strong feelings on that aspect.)

I'd be fine w/ this path as well, though, we might not want to get into a situation where the VC vocabulary becomes a massive vocabulary for all extensions to VCs as well. That would be a path towards centralization -- not everything important in VCs needs to go through the VCWG (or the VC vocabulary).

It would be good for us to provide an example of how to extend the core data model, which is what this PR does. But, as I said above, I don't have strong feelings about this. I prefer that we provide a good example of an extension that we can point to in the future when others want to extend VCs in some way.

@iherman
Copy link
Member

iherman commented Dec 31, 2023

Actually, in #81, I considered these terms to be simply added to the VCDM credential vocabulary... Would that be out of the question? Does it have a real value of keeping these two apart? (Just asking, I do not have strong feelings on that aspect.)

I'd be fine w/ this path as well, though, we might not want to get into a situation where the VC vocabulary becomes a massive vocabulary for all extensions to VCs as well. That would be a path towards centralization -- not everything important in VCs needs to go through the VCWG (or the VC vocabulary).

Just for the sake of argument: moving these vocabulary items into the VCDM vocabulary does not mean that this is for all extensions. It only means that we use it for extensions defined by this Working Group.

We already do something like that elsewhere: the few extra terms needed for the VC JSON Schema spec have been added to the VCDM vocabulary, instead of defining a separate vocabulary for those. I acknowledge that the comparison is not entirely ok, because this proposed vocabulary is a factor larger than the Schema spec's.

I would think this should be raised on the next WG call (I won't be there), and let the WG decide. I accept any decision done by the WG.

vocab/README.md Outdated Show resolved Hide resolved
vocab/README.md Outdated Show resolved Hide resolved
Comment on lines 25 to 26
shortName: "ns/credentials/status-list",
thisVersion: "https://www.w3.org/ns/credentials/status-list/",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just flagging this, so that we should not forget: these entries may have to change if the decision is to choose a different namespace URL.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in aa07c21.

vocab/template.html Outdated Show resolved Hide resolved
Comment on lines 160 to 156
the definition found in an external specification. For instance, this is so when
the term is needed to provide a consistent structure to the RDFS vocabulary,
such as when the term defines a common supertype for class instances that are
used as objects of specific properties, or when
<a href="https://www.w3.org/TR/rdf12-concepts/#section-rdf-graph">RDF Graphs</a>
are involved. For such cases, the extra definition is included in the current
document (and the `rdfs:comment` property is used to include them in the RDFS
representations).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this relevant? I.e., will this vocabulary ever deal with RDF Graphs? If not (which is probably the case) the whole section may be removed.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, this vocabulary will probably never deal w/ RDF Graphs. We can remove the statement about RDF Graphs.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mentions of RDF Graphs have been removed in the PR.

@@ -0,0 +1,91 @@
vocab:
- id: sl
value: https://www.w3.org/ns/credentials/status-list#
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as above: this may have to change.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about https://www.w3.org/ns/credentials/status# ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my answer below

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Per WG meeting /ns/credentials/status# should be o.k.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 636451d

@@ -0,0 +1,91 @@
vocab:
- id: sl
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be user friendly to chose a different prefix, say, slist? The problem is that it is difficult to differentiate between s1 and sl in many fonts, and this may be the source of stupid bugs...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(I made the mistake reviewing this file in github: I was wondering why on earth do we use the prefix s1, ie, "sh one"...)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now for the important question... if not sl, then what? :P

Would sv be better? For "Status Vocabulary"? and then perhaps shorten the URL to: https://www.w3.org/ns/credentials/status# ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think sv is really better.

As for the URL, for the reasons I started this discussions with, my personal preference is to put it into /2018/, alongside the VCDM vocabulary.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(but shorten it to .../status is indeed a good idea imho.)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to be precise, because I made a mistake in the original comment, what about https://www.w3.org/2018/credentials/status#

(Noting that we will have to update the .htaccess file in /2018/credentials/)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Per WG meeting this issue is getting closed. But I think using "sv" instead of "sl" would still be better, and that means that URL would be /ns/credentials/status#.

Once this is merged, the .htaccess in /ns/credentials will need some magic...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated in 636451d

vocab/vocabulary.yml Outdated Show resolved Hide resolved
vocab/template.html Outdated Show resolved Hide resolved
@iherman
Copy link
Member

iherman commented Jan 3, 2024

Just flagging this: before merging (if there is an approval to do so) some name changes that happened in other PR-s should be added here. See 35860ac (but there may be more).

@iherman
Copy link
Member

iherman commented Jan 10, 2024

The issue was discussed in a meeting on 2024-01-10

  • no resolutions were taken
View the transcript

3.1. Rename "status" to "message" for statusPurpose feature. (pr vc-bitstring-status-list#100)

See github pull request vc-bitstring-status-list#100.

Manu Sporny: we had 3 status purpose values: revocation, suspension and status.
… we have changed status to message.
… we have pre-pended the word status to some of the property names.

See github pull request vc-bitstring-status-list#105.

@iherman
Copy link
Member

iherman commented Jan 10, 2024

The issue was discussed in a meeting on 2024-01-10

  • no resolutions were taken
View the transcript

3.8. Add formal vocabulary definitions. (pr vc-bitstring-status-list#105)

See github pull request vc-bitstring-status-list#105.

Manu Sporny: what is the vocabulary URL for the status list?
… several proposals for this.

Manu Sporny: This could be one of the vocabulary URL prefixes: https://www.w3.org/ns/credentials/status-list#.

Manu Sporny: This could be one of the vocabulary URL prefixes: https://www.w3.org/2018/credentials/status#.

Manu Sporny: we need to pick one and go with it.

Manu Sporny: This could be one of the vocabulary URL prefixes: https://www.w3.org/ns/credentials/status#

Manu Sporny: but does not align with 2018 existing terms.
… should there be a date in the terms or not?

Brent Zundel: do we want to have a poll on the name?

POLL: What should the status list vocabulary URL be Choice A) https://www.w3.org/ns/credentials/status# and Choice B) https://www.w3.org/2018/credentials/status# ?

Ivan Herman: B.

Manu Sporny: A.

Andres Uribe: A.

Brent Zundel: A.

Phillip Long: A.

David Chadwick: B.

Paul Dietrich: A.

Joe Andrieu: B.

Kevin-Dean-GS1: A.

David Chadwick: The reason I wanted the date is if you want to change a definition, if you have date in there, change in definition could have a new date. I see how you can append/remove, but changing them is not possible.

Ted Thibodeau Jr.: I don't fully grok the pros and cons. A ns vs B 2018 (which is when the original VCWG started).

Ivan Herman: There might be a version in the vocabulary, but URL does not change.


@msporny
Copy link
Member Author

msporny commented Jan 13, 2024

Normative, multiple reviews, changes requested and made, no objections, merging.

@msporny msporny merged commit 2e20e10 into main Jan 13, 2024
1 of 2 checks passed
@msporny msporny deleted the msporny-add-vocab branch January 13, 2024 16:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants