Closed vcharpenay closed 5 years ago
Note @ashimura volunteered to take over making this change, in February 15, 2019 TD telecon.
@ashimura please also see https://github.com/w3c/wot-thing-description/issues/287
what is the status here?
I thought there was some discussion during the TD calls including Manu's suggestion https://github.com/w3c/wot-thing-description/issues/442 , and I think we should clarify which URIs should be used in the end (and close the issue 442).
e.g.)
Also please remember that we can set a redirection from www.w3.org to w3c.github.io so that we can maintain the vocabulary easily. For that purpose, we should clarify which URIs under w3c.github.io to be mapped from which URIs under www.w3.org .
Also please remember that we can set a redirection from www.w3.org to w3c.github.io
That's what we have been asking Dave since the beginning. It would be great if you could set this up!
I still have some questions about that versioning but we can at least go on with the changes. Here is what I suggest:
Other context files must no longer be published, as everything can be embedded in a JSON-LD 1.1 context. I followed guidelines from #442.
If content negotiation can be also configured, then, we can add the following:
On w3.org | Accepted Content-Type | On w3c.github.io |
---|---|---|
https://www.w3.org/2019/td | text/html |
http://w3c.github.io/wot-thing-description/ontology/td.html |
https://www.w3.org/2019/wot-security | text/html |
http://w3c.github.io/wot-thing-description/ontology/wotsec.html |
https://www.w3.org/2019/web-linking | text/html |
http://w3c.github.io/wot-thing-description/ontology/lnk.html |
https://www.w3.org/2019/json-schema | text/html |
http://w3c.github.io/wot-thing-description/ontology/jsonschema.html |
@ashimura, can you proceed with that? There should be a validation by the group but because we have to take this decision and implement the changes before next week, we can maybe do both in parallel.
Note: I updated the JSON-LD context URI (aligned with the latest draft on github.io). What's the status about publishing, @ashimura?
We have multiple issues here:
Following @draggett we started using http://www.w3.org/ns/td, http://www.w3.org/ns/wot-security, and http://www.w3.org/ns/json-schema.
To my understanding, Kaz wants us to continue what we started there. However, we cannot really, because there was no year included and we do not have just one "folder", but several (td, wot-security, json-schema).
Without the year, the namespace under /ns/ usually points to the latest vocabulary. For compatibility reasons, we do not want that, but use the year to clearly know which version of the vocabulary we are using (this follows @msporny 's recommendation).
As indicated above, the year is for versioning the vocabulary, which should be stable over quite some time.
The version number is only intended for the context file, the URI given in the @context
, which must point to an application/ld+json
(".jsonld") file.
The main confusion is probably that we used the same URI for both: http://www.w3.org/ns/td serves either the vocabulary in Turtle or the context file in JSON-LD. This is done with HTTP content negotiation (Accept header field).
However, @msporny also commented that content negotiation does not work smoothly in the field as many implementations fail to do it correctly. Thus, it would be better to have "proactive content negotiation", meaning that there are two separate URIs, one for the vocabulary, one for the context file.
The URI for the vocabulary would only have the year, as it should be rather stable.
The URI for the context file should reflect the year of the vocabulary it is based on, but also have a version of the JSON-LD context file. A semantic versioning (e.g., td-context-1.0.1.jsonld
) would allow us to evolve the context file easily: the first number increases when there is a breaking change ("major version"). The second number increases when features/terms are added that do not break existing implementations in the field ("minor version"). The third number increases for changes irrelevant to the user/API such as reformatting or bugfixes (yes, this is not irrelevant, but it does not change any definitions).
Victor's table above already reflects this, but I think this was not clear for all during the discussions.
In today's TD call, we discussed whether web-linking
was a relevant name for the namespace that would include Link
. Indeed, the class Form
also belongs in this namespace, which is more about hypermedia control than pure Web linking. This view is consistent with the wording of the WoT Architecture document.
Related works on hypermedia control with RDF include:
All these proposals are quite close to what we have developed in the TD model. However, terminology differs significantly. For instance, Hydra's Link
s have supportedOperation
s, which effectively is equivalent to TD Form
s.
The simplest alternative may be to stick to the WoT terminology and call the namespace hypermedia-control
. If that name is too generic, I otherwise suggest wot-rest
, as RESTfulness is foundational in this context.
I would +1 something reflecting the term "hypermedia controls". To my understanding, namespaces should not be excessively long, so maybe http://www.w3.org/2019/hypermedia
might be a choice.
@ektrah , @chrysn what do you think about naming the namespace?
Our concern is that picking "web-linking" might be frowned upon from the Big Web community...
See final namespace IRIs in CR-request version:
JSON-LD context file: https://www.w3.org/2019/wot/td/v1
Vocabulary | Namespace IRI |
---|---|
Core | https://www.w3.org/2019/wot/td# |
Data Schema | https://www.w3.org/2019/wot/json-schema# |
Security | https://www.w3.org/2019/wot/security# |
Hypermedia Controls | https://www.w3.org/2019/wot/hypermedia# |
I had been working with the Webmaster and have set up the following redirection/content negotiation: [[ https://www.w3.org/2019/wot/td/v1 => http://w3c.github.io/wot-thing-description/context/td-context-1.1.jsonld (application/ld+json)
https://www.w3.org/2019/wot/td => http://w3c.github.io/wot-thing-description/ontology/td.ttl (text/turtle) => http://w3c.github.io/wot-thing-description/ontology/td.html (text/html)
https://www.w3.org/2019/wot/json-schema => http://w3c.github.io/wot-thing-description/ontology/json-schema.ttl (text/turtle) => http://w3c.github.io/wot-thing-description/ontology/jsonschema.html (text/html)
https://www.w3.org/2019/wot/security => http://w3c.github.io/wot-thing-description/ontology/wot-security.ttl (text/turtle) => http://w3c.github.io/wot-thing-description/ontology/wotsec.html (text/html)
https://www.w3.org/2019/wot/hypermedia => http://w3c.github.io/wot-thing-description/ontology/hypermedia.ttl (text/turtle) => http://w3c.github.io/wot-thing-description/ontology/hyperm.html (text/html) ]]
I checked the result using curl command and it seems the setting works well :)
Please note that we need to change the CSS style for the HTML files above because they're not W3C group Notes yet.
Great, thanks Kaz!
@vcharpenay , @ashimura I guess we need to become a bit more restrictive about updating those files. PRs from now on should not include all the render noise anymore (@mmccool ;) ).
Note: at the moment, Turtle files are bare lists of terms and do not include any axiom. I removed initial axioms before CR transition as they were long outdated. Axioms are yet to be (re)defined, I believe I will do that before moving to PR. It does not impact in any way the main TD rec, though.
See issues in Sec. 7.2 of the TD spec:
/context/td-context.jsonld
/context/wot-security-context.jsonld
/context/json-schema-context.jsonld
@draggett, I think you are the one to make these changes?