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

Specification's version in the manifest #16

Closed
gregoriopellegrino opened this issue Feb 14, 2019 · 14 comments
Closed

Specification's version in the manifest #16

gregoriopellegrino opened this issue Feb 14, 2019 · 14 comments

Comments

@gregoriopellegrino
Copy link
Contributor

Since we created a first propotype of Web Publication based on the current specifications, I wondered how to indicate in the manifest that it refers to the current specifications alpha or beta version.

In general, if in a few years we will define Web Publication 2.0, how will a User Agent distinguish current Web Publications from future ones?

@iherman
Copy link
Member

iherman commented Feb 15, 2019

There is a version term in schema.org, but I do not think it is appropriate here. The manifest terms give metadata about the publication and we are talking about a metadata on the specification that governs it.

We could come up with some special, publication specific term, something on the form:

 "governingSpecification" : {
     "url" : "https://www.w3.org/TR/2019/WD-wpub-20190101/",
     "name": "Web Publications",
     "date": "2019-01-01"
 }

a bit verbose, but probably better than sticking to a version number; we never discussed the whole issue of versioning yet.

There may be several specifications, and that could be listed: audiobook profile, packaging spec, etc.

@mattgarrish
Copy link
Member

There is a version term in schema.org, but I do not think it is appropriate here.

We had the same problem with the EPUB Accessibility specification. We ultimately had to make do with dcterms:conformsTo, which is appropriate but lacked the ability to specify additional information (in our case, what level of WCAG conformance was achieved).

@HadrienGardeur
Copy link

HadrienGardeur commented Feb 15, 2019 via email

@iherman
Copy link
Member

iherman commented Feb 15, 2019

What was exactly the problem with dcterms:conformsTo? Per the DCTERM specification, the range of that term is dcterm:Standard, which seems to be a generic class. In other words, my example above, using dcterms:conformsTo instead of governingSpecification would work wouldn't it?

(We can also use other dcterm values in the body instead of schema.org terms like in my example.)

@mattgarrish
Copy link
Member

What was exactly the problem with dcterms:conformsTo?

EPUB was more the problem, as we were limited to a URI because of the lack of nesting so had to hack values into the URL as parameters. I had it in my head that conformsTo also only supported a URI.

@iherman
Copy link
Member

iherman commented Feb 15, 2019

If we stick to dcterms for the full data (which probably makes sense) then we can use

"dcterms:conformsTo" : {
     "dcterms:identifier" : "https://www.w3.org/TR/2019/WD-wpub-20190101/",
     "dcterms:title": "Web Publications",
     "dcterms:date": "2019-01-01"
 }

@llemeurfr
Copy link
Contributor

Apart from the complexity of such a structure compared to a simple integer versioning (1, then 2 etc.) or an URL equivalent (seen as a Subject supporting RDF properties), it must be underlined that namespaces are unknown from the json world and colons are badly supported in most languages as object properties (json being an object serialization ...).

@iherman
Copy link
Member

iherman commented Feb 15, 2019

Hm. I never heard complains using JSON-LD with short URL-s, ie, colons in the terms...

There is no need for namespaces, b.t.w. The schema.org context file includes the dcterms prefix, so we can use it out of the box as is.

Of course, if we want to define some sort of a versioning scheme, we can do that, and indeed it makes it simpler. But I am always a bit wary of just saying 'version 1'. We can then have happy discussion about whether some changes mean '1.1' '2.0', or possibly '1.0.1.'...

We can also simply say:

"dcterms:conformsTo" : "https://www.w3.org/TR/2019/WD-wpub-20190101"

@BigBlueHat
Copy link
Member

JSON-LD-based documents are more or less versions by their @context references--at least when the context files referenced are themselves "fixed" to a specification release.

You can see this sort of usage in the Verifiable Claims Data Model's @context usage.

Their specification text requires that conforming documents use that specific (versioned) context reference and that the reference (identifier) always be equivalent to the context object published in the specific (so that it can be cached permanently after publication).

Building the specifications this way also makes verification of conformance something that can be validated programmatically vs. the documentation-style references of dcterms:conformsTo.

@iherman
Copy link
Member

iherman commented Mar 16, 2019

There has been lots of discussions in the past whether it is a good idea to add version number into the URL of a file like a context file (though the discussion centered around the URL-s used for namespaces). One of the examples from the past is foaf which, up to today, uses the http://xmlns.com/foaf/0.1/ URL for its namespace, although 0.1 is really not a reflection of its original state, afaik. The problem is that once deployment happens, the community sticks with a specific URL in their deployment data, and that seems to create issues when trying to move on.

I do not have strong feelings about it; I am mildly more in favour of using a stable URL for our context and push the versioning information into the data if needed.

@iherman
Copy link
Member

iherman commented Mar 16, 2019

@llemeurfr, per https://github.com/w3c/wpub/issues/404#issuecomment-464092661: actually, the example in https://github.com/w3c/wpub/issues/404#issuecomment-464087617 can be further simplified by:

"conformsTo" : {
     "identifier" : "https://www.w3.org/TR/2019/WD-wpub-20190101/",
     "title": "Web Publications",
     "date": "2019-01-01"
 }

if we want, by adding explicit URL-s into our context file. We have the absolute freedom to do so, although we have to be careful not to create a clash with schema.org terms. So really the question is whether we want to have such structures or we simply use a URL/literal as the value of conformsTo.

If we go for the latter, we will have to define some sort of a versioning scheme that we stick to for the years to come. Great dinner table discussion:-)

@HadrienGardeur
Copy link

HadrienGardeur commented Mar 23, 2019

To illustrate my proposal based the profile value for a rel:

"links": [
  {
    "url": "https://www.w3.org/TR/2019/WD-wpub-20190101/",
    "rel": "profile"
  }
]

This information can also be expressed in HTTP headers, which could be quite useful.

@mattgarrish mattgarrish transferred this issue from w3c/wpub Aug 7, 2019
@iherman
Copy link
Member

iherman commented Sep 10, 2019

This issue was discussed in a meeting.

  • RESOLVED: close #16 without action (not adding version numbering)
  • ACTION: add an informational text on using dcterms (Matt Garrish)
View the transcript 5.1. Issue #16 Specification’s version in the manifest
Garth Conboy: See Issue #16
Garth Conboy: One other wasn’t postponed, and hasn’t been addressed for some time - issue 16 - to do with version in the manifest.
… is this obviated or are we still live?
… we didn’t get to a satisfying conclusion…
all: silence
Wendy Reid: I do love the aspirational nature of the question
Charles LaPierre: Looking at this, because it also goes in line with the accessibility specification, with the conforms-to suggestion, I like that you can specify the version number and have all the information right there…
… we have that already as a basis for conformance to the a11y spec…
… but we’re trying to avoid compatibility issues, if we have a version in the future which requires special handling, if we don’t put it in there now we could be in trouble…
Dave Cramer: I hope we can avoid having version numbers on this.
Wendy Reid: +1
Dave Cramer: it feels like a nightmare of incompatibility and writing special paths and code etc.…
… we’ve managed to avoid it in HTML and CSS, let’s really try not to go there…
Garth Conboy: One can also argue that even if we do choose to go there, we don’t have to go there at the first try…
Ivan Herman: I agree - if we look back at the comments; if we want to express conformance with a version of the specification, there is a comment I made in Feb which said you can put this kind of information in the manifest…
… there’s a way of using dc terms to do that…
… if this information is necessary in the document, we can do that with the manifest…
Proposed resolution: close #16 without action (not adding version numbering) (Garth Conboy)
Wendy Reid: +1
Ivan Herman: +1
Dave Cramer: +1
Garth Conboy: +1
Nellie McKesson: +1
Geoff Jukes: +1
Charles LaPierre: +1
Benjamin Young: +1
Deborah Kaplan: +1
Simon Collinson: +1
Resolution #6: close #16 without action (not adding version numbering)
Ivan Herman: I agree with this, maybe we can ask Matt to put in an example of how this would be provided as an information - if someone were to do that, how they would go about it
Ivan Herman: … a full example with DC or a simpler version thereof
Garth Conboy: This is with dc terms ‘conforms to’?
Ivan Herman: Yes, conformsTo.
Action #1: add an informational text on using dcterms (Matt Garrish)

@mattgarrish
Copy link
Member

Closing this with #59

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

No branches or pull requests

6 participants