Open rubensworks opened 5 years ago
See PR #77 for more.
PROPOSAL: If @prefix
is present in a term definition, and its value is a string, then the term may only be used as a prefix. Additionally, including @id
in the same term definition is an error.
Note that this adds additional complexity to processing as we would now have a new class of term that has no @id
. I'm not sure how complex it would be.
To be clear, this would be different from treating @prefix: <string>
as just syntactic sugar for @id: <string>, @prefix: true
as I believe was originally proposed in this issue. Instead, this syntax would be a way to define a prefix that cannot be used on its own as a term.
@pchampin -- Does the above sound like what we meant on the call?
PROPOSAL: If
@prefix
is present in a term definition, and its value is a string, then the term may only be used as a prefix. Additionally, including@id
in the same term definition is an error.
So this would mean that if @id
and @prefix: true
would be used, that the term can be used as both a prefix and a property, right?
This would only be useful for some exotic use cases, but indeed important for backwards-compatibility with 1.0 behaviour. (We may want to clarify that this kind of usage is discouraged)
@rubensworks,
So this would mean that if
@id
and@prefix
: true would be used, that the term can be used as both a prefix and a property, right?
Yes.
This would only be useful for some exotic use cases, but indeed important for backwards-compatibility with 1.0 behaviour. (We may want to clarify that this kind of usage is discouraged)
And yes. +1
@dlongley yes, that's how I understand the outcome of our discussion. and +1 as well to @rubensworks comment above.
This issue was discussed in a meeting.
RESOLVED: dlongley and pchampin to craft alternate proposal to #76 with @prefix having 3 values
This may be mixing topics, but another potential @prefix
feature would be to use it to limit the scope of prefixes to the current context. We've had the issue of wanting a local prefix alias within a context, but didn't want the prefix to leak out and pollute the outer scope namespace. One of many possible syntaxes for this would be a flag like "@prefix": "@context"
which may need consideration while discussing string values of @prefix
.
This issue was discussed in a meeting.
@prefix:
false without @id
works as expected (Pierre-Antoine Champin) #87@prefix
to avoid this@prefix
must be accompanied by @id
@prefix
is only used during compaction as a hint to the algo@prefix
would radically change the meaning of @prefix,
to add an effect during expansion@prefix
to work both ways@prefixis
only meaningful during compaction@prefix
to overcome them@prefix
very long either!@prefix
@prefix
would be a good way to solve it if it were@prefix
would be challenging@prefix
was introduced for other reasons@prefix
is not how we should address it@vocab
= trueIf this is eventually revisited (POST 1.1 I presume), I strongly recommend that another form is considered:
{
"@context": {
"@prefix": {
"dc": "http://purl.org/dc/terms/",
"tag": "tag:example.org,2020:ns:",
"compact-iris": "http://example.com/compact-iris-"
}
},
}
This should be the way to declare "prefix-only" prefixes, and keep them cleanly separated from regular term declarations (and the latter should never be considered as prefixes if a @prefix
map is defined within the context).
Currently,
@prefix
has boolean as range, and can be used as follows:In most cases,
@prefix
will probably be used together with@id
. For this reason, it might be beneficial to also allow the following as equivalent representation:As far as I can see, this should not cause conflicts or major performance issues when processing.