w3c / dxwg

Data Catalog Vocabulary (DCAT)
https://w3c.github.io/dxwg/dcat/
Other
144 stars 55 forks source link

Using dcat:next and dcat:version in Dataseries #1409

Closed sde01 closed 2 years ago

sde01 commented 2 years ago

Revising a dataset in a Dataserie

Status:

Identifier:

Creator: sde

Tags

dcat Dataserie pav:version

Problem statement

Should dcat:prev and dcat:next be updated when a dataset in the serie is revised ?

Let’s consider example 38


ex:budget a dcat:DatasetSeries ;
  dcterms:title "Budget data"@en ;
  .

ex:budget-2018 a dcat:Dataset ;
  dcterms:title "Budget data for year 2018"@en ;
  dcat:inSeries ex:budget ;
  dcterms:issued "2019-01-01"^^xsd:date ;
  dcat:next ex:budget-2019 ;
  .

ex:budget-2019 a dcat:Dataset ;
  dcterms:title "Budget data for year 2019"@en ;
  dcat:inSeries ex:budget ;
  dcterms:issued "2020-01-01"^^xsd:date ;
  dcat:prev ex:budget-2018 ;
  dcat:next ex:budget-2020 ;
  .

ex:budget-2020 a dcat:Dataset ;
  dcterms:title "Budget data for year 2020"@en ;
  dcat:inSeries ex:budget ;
  dcterms:issued "2021-01-01"^^xsd:date ;
  dcat:prev ex:budget-2019 ;
  .

Now let’s consider that budget-2019 is revised with a new dataset budget-2019-rev1

Dataserie can be updated in different ways

What will be the recommendation?

andrea-perego commented 2 years ago

@sde01 , apologies for the late reply.

The case you outline can be addressed by combining dataset series with dataset versions:

flowchart BT
C1(ex:budget-2019-rev1)
C0(ex:budget-2019-rev0)
B2(ex:budget-2020)
B1(ex:budget-2019)
B0(ex:budget-2018)
A(ex:budget)
C0 & C1--dcat:isVersionOf-->B1
B0 & B1 & B2--dcat:inSeries-->A

The link between versions is specified via property dcat:previousVersion:

flowchart RL
C1(ex:budget-2019-rev1)--dcat:previousVersion-->C0(ex:budget-2019-rev0)

So, Example 38 could be revised as follows:

ex:budget a dcat:DatasetSeries ;
  dcterms:title "Budget data"@en ;
  .

ex:budget-2018 a dcat:Dataset ;
  dcterms:title "Budget data for year 2018"@en ;
  dcat:inSeries ex:budget ;
  dcterms:issued "2019-01-01"^^xsd:date ;
  dcat:next ex:budget-2019 ;
  .

ex:budget-2019 a dcat:Dataset ;
  dcterms:title "Budget data for year 2019"@en ;
  dcat:inSeries ex:budget ;
  dcat:hasVersion ex:budget-2019-rev0 , ex:budget-2019-rev1 ;
  dcat:hasCurrentVersion ex:budget-2019-rev1 ;
  dcterms:issued "2020-01-01"^^xsd:date ;
  dcat:prev ex:budget-2018 ;
  dcat:next ex:budget-2020 ;
  .

ex:budget-2019-rev0 a dcat:Dataset ;
  dcterms:title "Budget data for year 2019"@en ;
  dcat:version "rev0" ;
  dcat:isVersionOf ex:budget-2019 ;
  dcterms:issued "2020-01-01"^^xsd:date ;
  .

ex:budget-2019-rev1 a dcat:Dataset ;
  dcterms:title "Budget data for year 2019"@en ;
  dcat:version "rev1" ;
  dcat:isVersionOf ex:budget-2019 ;
  dcat:previousVersion ex:budget-2019-rev0 ;
  dcterms:issued "2020-05-10"^^xsd:date ;
  .

ex:budget-2020 a dcat:Dataset ;
  dcterms:title "Budget data for year 2020"@en ;
  dcat:inSeries ex:budget ;
  dcterms:issued "2021-01-01"^^xsd:date ;
  dcat:prev ex:budget-2019 ;
  .
riccardoAlbertoni commented 2 years ago

I propose to close this issue if there are no further requests by @sde01.

sde01 commented 2 years ago

Hello Riccardo Thanks for your feedback. Your proposal is crystal clear.

Many thanks

Le 25 févr. 2022 à 21:32, Andrea Perego @.***> a écrit :

 @sde01 , apologies for the late reply.

The case you outline can be addressed by combining dataset series and dataset versions:

flowchart BT C0(ex:budget-2019-rev0)--dcat:isVersionOf-->B1 C1(ex:budget-2019-rev1)--dcat:isVersionOf-->B1 B0(ex:budget-2018)--dcat:inSeries-->A B1(ex:budget-2019)--dcat:inSeries-->A B2(ex:budget-2020)--dcat:inSeries-->A A(ex:budget) The link between versions is specified via property dcat:previousVersion:

flowchart RL C1(ex:budget-2019-rev1)--dcat:previousVersion-->C0(ex:budget-2019-rev0) So, Example 38 could be revised as follows:

ex:budget a dcat:DatasetSeries ; dcterms:title "Budget @.*** ; .

ex:budget-2018 a dcat:Dataset ; dcterms:title "Budget data for year @.*** ; dcat:inSeries ex:budget ; dcterms:issued "2019-01-01"^^xsd:date ; dcat:next ex:budget-2019 ; .

ex:budget-2019 a dcat:Dataset ; dcterms:title "Budget data for year @.*** ; dcat:inSeries ex:budget ; dcat:currentVersion ex:budget-2019-rev1 ; dcterms:issued "2020-01-01"^^xsd:date ; dcat:prev ex:budget-2018 ; dcat:next ex:budget-2020 ; .

ex:budget-2019-rev0 a dcat:Dataset ; dcterms:title "Budget data for year @.*** ; dcat:version "rev0" ; dcat:isVersionOf ex:budget-2019 ; dcterms:issued "2020-01-01"^^xsd:date ; .

ex:budget-2019-rev1 a dcat:Dataset ; dcterms:title "Budget data for year @.*** ; dcat:version "rev1" ; dcat:isVersionOf ex:budget-2019 ; dcat:previousVersion ex:budget-2019-rev0 ; dcterms:issued "2020-05-10"^^xsd:date ; .

ex:budget-2020 a dcat:Dataset ; dcterms:title "Budget data for year @.*** ; dcat:inSeries ex:budget ; dcterms:issued "2021-01-01"^^xsd:date ; dcat:prev ex:budget-2019 ; . — Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you were mentioned.

agbeltran commented 2 years ago

I think it would be great to revise the example as @andrea-perego suggested to include this use case in the spec.

andrea-perego commented 2 years ago

@sde01 , we have decided to add a consolidated version of your example in the specification. It is now included in the Editor's Draft (PR https://github.com/w3c/dxwg/pull/1473):

https://w3c.github.io/dxwg/dcat/#ex-dataset-series-and-versions

Thanks for your contribution.