-
Notifications
You must be signed in to change notification settings - Fork 128
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
[Policy Proposal] Versioning Resources #1166
Comments
Also see https://github.com/w3c/wot-thing-description/blob/main/VERSIONING.md. We need to be clear about whether this applies to 1.1 or 1.0 spec resources as well. Even though it can apply to them, there are issues with it:
I strongly think that we need this for 2.0 resources, even more strongly for bindings since they also have similar resources to our specs (ontology and schemas at least). We also need to clarify if this policy includes such resources made public before a REC release. See the points under "Do we version anything until a REC release" in the link above. |
I will make an effort to join the TD call on Jan 25 to discuss - in the meantime let's collect input here. |
from today's WG planning session:
|
|
In the linked doc in TD the need for "beta" versions is noted. This is useful for testing (where we do need things available at specific URLs). I'd like to also suggest we have "release candidates", but we can also keep it simple and just have M.m.p.b where M, m, p are numbers (semantic versioning) and b is an optional letter (a,b,c, etc) for "testing" versions (and these are NOT referenced as the "latest", only the last "patch" version is referenced by the "generic" URLs.) |
Another constraint: to make the web master's job easier, the URL structure and the directory structure in the wot-resources repo should match, so we avoid having to maintain complicated mappings. The only redirection we may have to update is where the "generic" URLs point (unless we want duplicate files in the repo, although we could do that, it would be inelegant and subject to error). |
As for updating "old" files to use versioning: we need to keep the old URLs around for compatibility, but that leads to multiple URLs for the same thing, which makes them look like different entities to RDF. So I vote we DON'T do that, and just establish a mechanism "going forward" and avoid (except, maybe for versioned/generic URLs for the "latest" version - but see next point) different URLs for the same entity. |
We should investigate if there is a general mechanism for "synonyms" in RDF. The other option is to NOT have "generic" URLs and always have versions - URLs are hidden anyway by the context mechanism that defines prefixes. I think we can consider the prefixes to be the "generic" reference, then you could always include a "versioned" context URL, avoiding ambiguity and the synonym problem. |
TD call of 25.01:
Overall comments:
What do we want to achieve by versioning:
Next steps:
|
I have copied the points above to w3c/wot-thing-description#1965 |
There needs to be also some supplementary metadata that needs to be provided in versioned ontologies like |
According to OWL2 specification, for every ontology we can define an Ontology IRI (generic reference, should stay the same through versions) and a Ontology Version IRI. In particular, mentions:
The difference is during dereferencing of the IRIs, the ontology IRI should redirect to the most recent version and the version IRI to the specific version. |
There is also a proposed standard, MOD2.0 specification for describing ontology metada and semantic artifacts. It has some metadata we could reuse for our versioned ontologies. |
I think aligning our versioning with the OWL2 capabilities makes sense. We do have non-ontology resources but I think we should "group" version them consistently. |
Also, the use of a "generic" IRI (points to the latest "production" version - may need another generic IRI for "testing" versions, though) and "version" IRIs for specific version aligns with what I was thinking. Seems like "synonyms" are not a problem according to this, either. |
To support CBOR-LD, we need to "freeze" each version of ontologies. Some specs even go so far as to publishes SHA-256 hashes as part of specifications. This is necessary so assignment of numbers for fields in CBOR-LD is fixed. It also means that given the URL of a context, a device can assume it and "compile it in" rather than dereferencing it when reading the TD. So for ontologies at least, we should not change ontologies at all when publishing them under a specific, even for "small" changes. |
just for understanding: Do we need to freeze each used ontologies within the TD context file or would it be enough just to freeze the TD context file and register |
Resources should be versioned and old resource files available at specific URLs. There can also be a URL to access the "latest" version. HTML files for ontologies, etc. should indicate the version and have a change log.
Even minor bug-fixes should be versioned, and the most specific link to a resource should refer to a "write-only" file that is guaranteed not to change.
Semantic versioning can be used, e.g. 1.0.1.
To discuss...
See also w3c/wot-discovery#535
The text was updated successfully, but these errors were encountered: