Closed ruebot closed 8 years ago
I think it would be initially valuable to have common agreement on the frequency of releases:
If we go with option 2, should we target quarterly? biannually? other? with a process for invoking impromptu releases?
"Releases" should probably be numbered, semantically, although it pains me to say it.
Currently, releases are indicated by their date, such as: https://github.com/duraspace/pcdm/blob/2ecbbf47cc679737eef4ccce6ca99b32d5b1ccbc/models.rdf#L19
And associated URI: http://pcdm.org/2015/09/28/models
@tpendragon, are you suggesting something else?
We currently use the date as a means for distinguishing between versions. The W3C document describing best practices for publishing RDF suggests using either date or some form of semantic versioning.
http://www.w3.org/TR/swbp-vocab-pub/
Given that pcdm vocabularies are already using the date convention, I'd be -1 (as a non committer) for changing it, unless there was a really compelling reason to do so.
A key publication on the issue of ontology versioning is: https://files.ifi.uzh.ch/ddis/iswc_archive/iswc/ih/SWWS-2001/program/full/paper56a.pdf
I'm not sure we should adopt anything like what they suggest, but it's worth a read for the fairly rigorous accounting of cases where forward and/or backward compatibility for terminology is maintained.
@no-reply: TLDR version?
@no-reply: TLDR version?
Presented (hopefully) faithfully, avoiding personal interpretation:
Ontology changes are motivated by:
Changes impact:
Backward compatible revisions can be considered as those for which interpretations of data using the previous version are correct. Prospective use (of the ontology) is possible; e.g. simple addition of a class is always backward compatible.
Forward ("upward" in the text) compatible revisions can be considered as those for which interpretations based on the old version of the ontology are correct against data using the new version. Retrospective use is possible; e.g. simple removal of a class is always forward compatible.
Fully compatible and incompatible revisions are those for which both or neither of these hold (respectively). An example of a fully compatible revision is one in which there is a non-lossy revision of the abstract syntax (e.g. RDF 1.0 to 1.1, for most ontologies).
There are (counter-intuitively) cases where an unannounced change leads to better results for instance data than if revisions are announced, but the relationship between the versions is un/under-specified.
A versioning scheme should aim to:
Identification is served by:
Change specification and evolution are served by:
And now some of my own commentary:
I'm not sure, given actual practice, that it's reasonable to expect software to infer compatibility of any sort based on version number or namespace contents. In RightsStatements.org, we opted for opaque version numbers (1.0, etc.., but with no guarantees about the weight or meaning of the "major/minor" portions). I think I stand by that decision.
Some of the details of compatibility depend on the commitments of the ontology, instance data, and applications. It's likely worth considering what can safely be considered forward/backward compatible changes for us as publishers of PCDM.
Likewise, it's not immediately obvious how often (if ever) we'll be in a position to publish backward compatible changes, or whether "transparent evolution" is achievable for the kinds of updates we will typically encounter.
In any case, my sense is that all of this points to some release process beyond just merging to master and bumping the modified date. What that should be... /shrug
.
IMHO, updates have been pretty infrequent (see https://github.com/duraspace/pcdm/commits/master/models.rdf), and we can just release after every commit.
@escowles I agree, and that's basically what we have been doing. Especially since we don't have really have another option on the table now.
In any case, my sense is that all of this points to some release process beyond just merging to master and bumping the modified date. What that should be... /shrug.
Rolling releases are definitely better than no releases.
I am happy to release the updates to the PCDM ontologies since their last, respective, releases: http://pcdm.org/
Are there any on that list that should not be released?
On a related note, we should probably have regular, scheduled PCDM committer calls for general base-touching and housekeeping... quarterly?
On a related note, we should probably have regular, scheduled PCDM committer calls for general base-touching and housekeeping
:+1: Quarterly or monthly is fine by me.
@awoods I don't know of any ontologies that shouldn't be released. And I agree that we should have a regular call to keep in touch and keep things moving.
There do not appear to be any substantive updates to:
I propose we only release:
..pending: https://github.com/duraspace/pcdm/pull/64
@duraspace/pdcm-committers see above about meeting.
Determine and document when and how to do a release.
See discussion on #50, specially https://github.com/duraspace/pcdm/pull/50#issuecomment-211630172 and below.