SEMICeu / DCAT-AP

This is the issue tracker for the maintenance of DCAT-AP
https://joinup.ec.europa.eu/solution/dcat-application-profile-data-portals-europe
72 stars 24 forks source link

[HVD 2.2] DataService - servesDataset, inconsistency with "A. Quick reference" #378

Open jimjyang opened 1 month ago

jimjyang commented 1 month ago

In A. Quick reference ..., the property "serves dataset" (dcat:servesDataset) in the class DataServices is marked as "recommended", while the cardinality for this property is 1..*.

We believe that when a DataService is included in an HVD-catalog (i.e., not a catalog in general), then the DataService is meant to serve at least one HVD-marked dataset. Therefore the cardinality should be 1..*, and the property should be categorized as "mandatory" in the table in A. Quick reference. So the Quick reference is wrong.

jimjyang commented 1 month ago

Hm... not necessarily.

A DataService may be included in an HVD-catalog via <Dataset> --<datasetDistribution>---> <Distribution> --<dcat:accessService>---> <DataService>.

So, the cardinality should be 0..* and the property is categorized correctly in "Quick reference".

bertvannuffelen commented 3 weeks ago

To close this issue,

A HVD Data Service should provided access to data in a HVD. The HVD IR does not describe any standalone (dataset agnostic) APIs.

To highlight that aspect dcat:servesDataset is set mandatory.

In case the Data Service is connected through a Distribution with a Dataset then one can derive a servesDataset to include that Dataset.

Thus either it is set explicit or it is derived. I will add this in the usage note of the property.

jimjyang commented 2 weeks ago

Yes, a DataService in the context of HVD must provide access to at least one HVD, but DCAT (DCAT-AP HVD) allows two different ways to express this:

  1. direct: <aDataService> --<dcat:servesDataset>---> <aDataset>
  2. indirect, via a distribution: <aDataset> --<dcat:Distribution>---> <aDistribution> --<dcat:accessService>---> <aDataService>, and as you @bertvannuffelen wrote, you may in this case get a derived assessment that the requirement is fulfilled.

However, modeling-wise and implementation-wise: Mandatory and 1..* for the property dcat:servesDataset mean that the property MUST have at least one value. So, in cases where a DataService is referred to via <aDataset> --<dcat:Distribution>---> <aDistribution> --<dcat:accessService>---> <aDataService>, one has to duplicate the same information by adding <aDataService> --<dcat:servesDataset>---> <aDataset> in order to conform to DCAT-AP HVD. Is this what you actually mean and what you really want to require?

With "recommended" and 0..* for this property, you may use the usage note for this property in combination with the usage note for the property dcat:accessService in dcat:Distribution, to emphasize that a DataService in the context of HVD MUST provide access to at least one Dataset (in one or the other way). An alternative to usage notes, is to add a new section under "10.5 Mapping the HVD IR to DCAT-AP", in a similar way as you did for "Legal information".