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

Revision to the versioning section in DCAT3 FPWD #1295

Merged
merged 36 commits into from Mar 10, 2021

Conversation

andrea-perego
Copy link
Contributor

@andrea-perego andrea-perego commented Feb 13, 2021

This PR includes a new draft for discussion on versioning support in DCAT, as per ACTION-438.

Preview: https://raw.githack.com/w3c/dxwg/dcat-versioning-v2/dcat/index.html#dataset-versions

Diff: https://services.w3.org/htmldiff?doc1=https%3A%2F%2Fw3c.github.io%2Fdxwg%2Fdcat%2F&doc2=https://raw.githack.com/w3c/dxwg/dcat-versioning-v2/dcat/index.html#dataset-versions

Summary of changes:

Compared with the first draft in the DCAT3 FPWD, the versioning section has been revised to focus specifically on versions derived from the revision of a resource, and by following the approach of the PAV ontology for the specification of version chains and hierarchies (the version history).

In particular, the introductory text has been revised according to the new scope, the section on version types has been removed, and a new section has been added to describe how to specify relationships between versions, whereas backward compatibility aspects, originally included in §10.2 Version information have been removed (see #1258). Moreover, a new section has been added at the end to compare the DCAT versioning approach with those used in OWL and DCTERMS.

The other sections include only editorial changes.

EDNOTEs have been added to highlighted the relevant revisions.

NB: All the properties described in this section are yet to be added to §6. Vocabulary specification and to the RDF definition of DCAT.

@andrea-perego andrea-perego added this to In Progress in DCAT Sprint: Versioning via automation Feb 14, 2021
@andrea-perego andrea-perego added this to the DCAT3 2PWD milestone Feb 14, 2021
@dr-shorthair
Copy link
Contributor

Nice work guys. Reads well. (also the dataset series section)


<aside class="ednote">
<p>This is a new draft for discussion on versioning support in DCAT.</p>
<p>Compared with the first draft in [[VOCAB-DCAT-3-20201217]], this section has been revised to focus specifically on versions derived from the revision of a resource, and by following the [[PAV]] approach for the specification of version chains and hierarchies - previous, next, current, last version.</p>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Limiting the scope in this way is pragmatic and sensible.

dcat/index.html Outdated
<li><code>dcat:previousVersion</code> (equivalent to <a data-cite="?PAV#d4e459"><code>pav:previousVersion</code></a>)</li>
<li><p><code>dcat:hasVersion</code> (equivalent to <a data-cite="?PAV#d4e395"><code>pav:hasVersion</code></a>), plus the following additional properties:</p>
<ul>
<li><code>dcat:isVersionOf</code> (inverse of <code>dcat:hasVersion</code>);</li>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general inverse-properties are to be avoided (you can always add the reverse triple to a graph) but occasionally there is a pretty compelling case from usage. This is probably such.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. In the text I tried to make it clear that the only key properties are dcat:hasVersion and dcat:previousVersion, whereas the other ones should be used if needed by the relevant use case.

dcat/index.html Outdated
<li><a data-cite="VOCAB-ADMS#adms-last"><code>adms:last</code></a> is defined as <q>A link to the current or latest version of the Asset</q>, whereas in [[PAV]] the current and latest versions of a resource may be different, and link to by using different properties.</li>
</ul>
<p>Moreover, although the definitions of the [[VOCAB-ADMS]] properties states explicitly that they are meant to be used for "versions", they are subproperties of the corresponding terms in [[XHTML-VOCAB]], where they are used to link resources in a collection (e.g., the set of pages of a Web site). E.g., the definition of <a data-cite="XHTML-VOCAB#last"><code>xhv:last</code></a> reads as follows: <q>last refers to the last resource in a collection of resources.</q>.</p>
<p>Based on that, in this draft, [[PAV]]-equivalent properties are used for versions, whereas the [[VOCAB-ADMS]] ones are used for dataset series (<a href="#dataset-series"></a>). Properties <code>dct:hasVersion</code> / <code>dct:isVersionOf</code> are not used.</p>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will you include owl:equivalentProperty axioms in the RDF?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW - I agree with not using PAV directly. It was nicely designed but has rarely been used, and thus would be an unnecessary and out-of-date dependency. I was on a call with Stian Soiland-Reyes and he expressed some surprise that there was continued interest in PAV. So I think we can assume that PAV itself is no longer a going concern.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's very useful, @dr-shorthair .

About your first question, equivalence in the RDF can be stated either formally or informally. What would you suggest?

dcat/index.html Outdated
<div class="issue" data-number="1271"></div>

<aside class="ednote">
<p>This draft proposes the definition of a new property <code>dcat:version</code>, to use instead of <code>owl:versionInfo</code> of the first draft.</p>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good.

@andrea-perego
Copy link
Contributor Author

Nice work guys. Reads well. (also the dataset series section)

Thanks, Simon. I've just added a new section, to explain how DCAT can be used to describe versioning complementarily with other vocabularies. Could you please have a look at it?

https://raw.githack.com/w3c/dxwg/dcat-versioning-v2/dcat/index.html#versioning-complementary-approaches

@griddigit
Copy link

griddigit commented Feb 16, 2021 via email

@riccardoAlbertoni
Copy link
Contributor

Thank Andrea, for preparing this PR. I agree on the line of extending the DCAT support taking into account PAV's equivalent terms and I like the way the versioning is presented.

I report some observations that have crossed my mind reading the draft. I hope they might help the discussion in the next DCAT call.

  • I think that the ability to determine the latest/current version is a very fundamental use case when people look for data (what is the latest (official or draft) version released?). Considered this, I wonder if we need to bind more explicitly the semantics of dcat:currentVersion and dcat:lastVersion to the dct:replaces and dcat:previousVersion chains. For example, saying " dcat:lastVersion is the head of the dcat:previousVersion property chain and dcat:currentVersion is the 'head' of the dct:replaces chain". That might provide an agreed way to work out the latest version and current version, which might help maintain the metadata consistent and updated.
  • Is owl:versionInfo a sub-property of dcat:version? Is owl:priorVersion sub-property of owl:priorVersion? Or do we want to keep DCAT versioning and OWL versioning as two distinct alternative approaches?
  • Should we align the DCAT versioning with DCAT provenance? PAV aligns with DCT, and PROV (see SPRINT on Versioning for a summary). If we state the owl:equivalentProperty to PAV's terms, that will induce these alignments for the DCAT's, but that is quite an indirect way to have DCAT versioning align with DCT and PROV for versioning. In case we want to keep the alignments provided by PAV for DCT and PROV, I suggest restating them explicitly in DCAT. This could be also the occasion to double-check that these alignments hold and fit well in DCAT. Whether these alignments will be normative or not is another issue that we might need to debate.

@andrea-perego
Copy link
Contributor Author

I am wondering if it is possible to also add some detail on the linkage between DCAT and PROV-O.
It is true that there are some hints in the document on multiple places, but it would be nice to state in on place the overall picture. For instance Resource, Dataset, Distribution, .... are members of prov:Entity and explain in which cases etc. if there is some difference
Prov also has wasRevisionOf and some related so these can be mentioned in the tale under the versioning

Thanks for your feedback, @griddigit . We are still finalising the versioning part, and including an alignment with PROV is one of the aspects that we will consider.

@griddigit , a comparison with PROV has been added via commit 3b9371f - see https://raw.githack.com/w3c/dxwg/dcat-versioning-v2/dcat/index.html#versioning-complementary-approaches

@andrea-perego andrea-perego changed the title Revision to the versioning section Revision to the versioning section in DCAT3 FPWD Mar 5, 2021
@andrea-perego
Copy link
Contributor Author

All the discussed revisions have been implemented.

Unless there are any objections, I would merge this PR, and create a new one for future changes.

@agbeltran
Copy link
Member

thanks @andrea-perego - I agree it should be merged as comments have been addressed.

@riccardoAlbertoni
Copy link
Contributor

Yes, please merge this.

@andrea-perego andrea-perego merged commit 0cbbc79 into gh-pages Mar 10, 2021
DCAT Sprint: Versioning automation moved this from reviewer Approved to Done Mar 10, 2021
@andrea-perego andrea-perego deleted the dcat-versioning-v2 branch March 10, 2021 19:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
5 participants