opendatateam / udata

Customizable and skinnable social platform dedicated to open data.
http://udata.readthedocs.org
GNU Affero General Public License v3.0
238 stars 87 forks source link

DCAT minor compatibility issues #2854

Closed AlainVagner closed 1 year ago

AlainVagner commented 1 year ago

We have recently analysed the compatibility of the DCAT implementation in udata 4 with the latest DCAT-AP specification (2.1.1) and we have found some minor issues.

Detailed Description

Context

The DCAT-AP compatibility is important for the interoperability between data portals in Europe.

Your Environment

This has been tested on data.gouv.fr.

maudetes commented 1 year ago

Thank you for the detailed issue!

I haven't checked all these in details, but they seem legit and we should indeed make an iteration to improve the DCAT export for interoperability. Have you used a tool for automatic compliance check?

You're obviously welcome to contribute on udata to fix these, if so please let us know. If you don't plan to, we'll see to deal with it in the next sprints.

AlainVagner commented 1 year ago

Hi, thanks for your feedback! There is a checker here: https://data.europa.eu/mqa/shacl-validator-ui/ but I am not totally sure how to use it, it seems to be quite permissive compared to the specification.

I have mainly checked the documentation and schema available there https://github.com/SEMICeu/DCAT-AP/releases/tag/v2.1.1 inside source-code.zip, the file DCAT-AP-2.1.1/releases/2.1.1/dcat-ap_2.1.1.pdf

AlainVagner commented 1 year ago

@maudetes I have checked with our team and I'm afraid we won't be able to contribute with a PR on this topic. Sorry for that.

maudetes commented 1 year ago

I've had a go at these issues in https://github.com/opendatateam/udata/pull/2860. You can take a look if that seems okay for you.

In the case of PeriodOfType, the datatype xsd:date is automatically added since we're actually exposing dates and not dateTimes. The way I understand the specification, xsd:date is allowed. In the spec:

rdfs:Literal typed as xsd:date, xsd:dateTime, xsd:gYear or xsd:gYearMonth

But we should probably use dcat:startDate instead of schema:startDate? Do you agree on this interpretation?

AlainVagner commented 1 year ago

Thanks a lot for these changes! I misread the spec for the class PeriodOfTime, and you are right, xsd:date is ok there. I don't have access to a computer at this time, so I am not really sure what schema: was about, but the spec mentions dcat:.