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

What's a version? #40

Closed
baskaufs opened this issue Apr 16, 2016 · 10 comments
Closed

What's a version? #40

baskaufs opened this issue Apr 16, 2016 · 10 comments

Comments

@baskaufs
Copy link

The model described in the documentation specification discusses versions in a generic way and indicates that the version model can apply to any resource. As a practical matter, how does generating a new version affect versions of resources at a higher level in the hierarchy? Or does it even effect the higher levels? For example, if there is a change to the definition of a single term in Darwin Core, do we now have a new version of Darwin Core? Or is this a new release? If so, what's the difference between a release and a version? Do we only spawn a new version at the vocabulary level when there is a Decision recorded? Maybe we don't have versions of standards at all, just versions of documents and vocabularies included in the standard.

How does this issue affect the "packaging" of standards? The old documentation specification said "Standards take the form of a logical folder or directory, but may be distributed as a zip or tar archive file." Those frozen "packages" were uploaded to OJS where they were neither safe from destruction, nor easily visible to the public. How do we update this idea that a standard is stable and "frozen" in the age of GitHub and Terms Wikis?

@tucotuco
Copy link
Member

I believe the new paradigm would do well to center around releases in
GitHub, as that is where everything is being managed.

On Sat, Apr 16, 2016 at 3:16 PM, Steve Baskauf notifications@github.com
wrote:

The model described in the documentation specification discusses versions
in a generic way and indicates that the version model can apply to any
resource. As a practical matter, how does generating a new version affect
versions of resources at a higher level in the hierarchy? Or does it even
effect the higher levels? For example, if there is a change to the
definition of a single term in Darwin Core, do we now have a new version of
Darwin Core? Or is this a new release? If so, what's the difference between
a release and a version? Do we only spawn a new version at the vocabulary
level when there is a Decision recorded? Maybe we don't have versions of
standards at all, just versions of documents and vocabularies included in
the standard.

How does this issue affect the "packaging" of standards? The old
documentation specification said "Standards take the form of a logical
folder or directory, but may be distributed as a zip or tar archive file."
Those frozen "packages" were uploaded to OJS where they were neither safe
from destruction, nor easily visible to the public. How do we update this
idea that a standard is stable and "frozen" in the age of GitHub and Terms
Wikis?


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#40

@baskaufs
Copy link
Author

The details of this are problems to be handled as part of the vocabulary maintenance and management processes and aren’t a concern of the documentation specification. There is now a section 5 of the draft Standards Documentation Specification (formerly the first of two badly numbered sections 3.3), which describes in a general way the requirements for archiving standards documents without specifying the mechanics of how that archiving will be achieved.

I have removed this issue from blocking revision of the draft documentation specification. However, I've also labeled it as an issue to be examined in the context of vocabulary management.

@baskaufs
Copy link
Author

didn't mean to close this one!

@baskaufs baskaufs reopened this May 12, 2016
@baskaufs
Copy link
Author

The completed draft of the Vocabulary Maintenance Specification specifies conditions that will trigger version changes for terms (Section 3.3.4.1) and documents (Section 3.4.3). The document currently does not deal with the issue of what triggers a version change for the whole vocabulary, nor does clarify the relationship between "release" and "version" on the vocabulary level. It is not clear to me whether this is in scope for the Vocabulary Maintenance Specification or if it is an implementation issue to be handled by the people who are actually doing the maintaining.

@jar398
Copy link

jar398 commented Jun 23, 2016 via email

@ramorrismorris
Copy link
Contributor

(I think this is relevant, but if not feel free to delete it.)
In what is now dwcFP, several elements originally began with <rdfs:comment lang="en"> (they should have had xml:lang) and were therefore not valid RDF. If the only changes I make are correcting these comments, does the Vocabulary Maintenance Spec draft offer me any guidance on whether I should make the corrected ontology a new version?

Does @jar398's remark imply yes? Or am I being insufficiently rigid here.

@jar398
Copy link

jar398 commented Jun 24, 2016

I think yes. The question posed by the policy (as I understand it) is, what
do implementations in the wild actually do - would any [conforming to
spec #1] be nonconformant with spec #2, where spec #2 is the owl file that
is the same spec #1 but with lang= replaced by xml:lang= ? It would be
easy for an adversary to arrange incompatibility, but very hard to imagine
incompatibility in a good-faith implementation.

(You raise another question, which I suppose belongs in a different thread,
which is how you are supposed to use an OWL file as a specification. You
can't really; you need to be told the conformance criteria independently,
because there are too many different ways one might interpret OWL as spec.
For dwcFP I presume this is done in a separate prose document; haven't
checked...)

@baskaufs
Copy link
Author

With respect to Bob's question, I think that incrementing the version of an ontology, document, or term is a signal to pay attention - this change matters. If the RDF isn't valid, then parsers may balk at importing the triples. Fixing that problem is a change that matters and a change that prevents things from being "broken", so I'd increment the version to try to make people pay attention. Maybe there should be some general statement about the purpose of advancing a version, or is that implicitly understood?

Jonathan, can you suggest some wording that might clarify or tighten up section 3.2.2? I think that I probably appropriated the wordings "the correction is likely to impact existing implementations" and "minimizes adverse effects on existing applications" from the DwC Namespace policy without carefully thinking through the definitions of "implementations" and "applications", or the differences between those words.

In Section 3.1 I articulate the general principle that there is a need to maintain "facilitation of data sharing" and in section 3.3.1 I say that a change shouldn't "adversely affect the interoperability of existing applications". "Interoperability" was a word for which I looked up the definition, and it seems to describe the requirement that what a sender generates must be understandable by a receiver. But I don't actually say that changes should promote interoperability. Should I, or is that covered by maintaining "facilitation of data sharing"? I would welcome wording suggestions that would help address Jonathan's concerns.

@jar398
Copy link

jar398 commented Jun 28, 2016 via email

@baskaufs
Copy link
Author

I have made several changes and additions to the Vocabulary Maintenance Specification draft to address the issues raised in this thread.

  • I added a definition for "implementation". I wrote it with the "implementation experience report" (described in the new Section 4.3.2) in mind. I welcome any feedback on this.
  • I changed all instances of "application" to "implementation" for consistency.
  • I added section 3.1.1 to focus attention on the significance of version changes in informing inplementers about possible effects on their implementations. This section comes ahead of the various sections that say "[blah, blah, blah] will trigger a version change".
  • I really didn't micromanage how the Interest Groups should organize versioning/releases of the entire vocabulary relative to the version changes of component documents and terms with the vocabulary. They can manage that as they see fit. However, I did say that the IG should maintain some sort of a version log that summarizes the changes that have occurred with the version changes associated with the vocabulary.

I feel that this issue has been addressed well enough to close this issue. If anyone has further suggestions, please include them in the comments on the draft that I'm going to make available ahead of the next TG Google Hangout.

@baskaufs baskaufs mentioned this issue Jul 25, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants