Description
EDIT (2024) to provide some context (no pun intended): In the Verifiable Credentials work, an argument to add @vocab
to the core VC context was made (notably, I recommended against it) which caused this question to come up. Some arguing for it were happy to be able to change the @vocab
value in subsequent contexts as current processors allow and the group moved on. Recently, others have been surprised not necessarily that this can happen, but even that terms that would have been caught by a "catch all" @vocab
can be defined in subsequent contexts. See my comment below on how, when followed to its logical conclusion, it seems that the current behavior is the only possible way for a "catch all" use of the @vocab
feature to work.
When @vocab
is used in an @protected
context, the terms it auto-defines should do not receive the same protection that any other terms receive. Any processor that only checks an @context
value (i.e., a URL w/an immutable context value) should cannot be guaranteed to have the same view on the term mappings generated as a processor that, for example, transforms the data to another @context
. This is the value and purpose of @protected
.
However, The steps currently expressed in the API spec do not cause @vocab
(and @base
as well, because these are specially-called out keywords for processing) to run through the protection processing code. IMO, this should be considered errata. Any keyword values in an EDIT: IMO, the combination of @protected
context that establish term definitions should receive the same protection that the terms do -- as changing the values of those keywords would change the term definitions, breaking the expected protection and unified processing model.@vocab
and @base
with @protected
do not make sense and would produce results that are even more unexpected than a naive guess at what would happen if they did work together.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status