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

New profile for DCAT US v3 #314

Merged
merged 32 commits into from
Oct 31, 2024
Merged

New profile for DCAT US v3 #314

merged 32 commits into from
Oct 31, 2024

Conversation

amercader
Copy link
Member

@amercader amercader commented Oct 9, 2024

This PR adds a new profile class for the DCAT-US v3 application profile.

All mandatory properties and most of the recommended and optional ones are supported. The few remaining can be implemented later on if there's interest for them. The full list of implemented properties can be found here.

During the implementation of this work a few adjustments have been done to the base DCAT profile:

  • Support for temporal and spatial resolutions in distributions, which were missing on the DCAT AP profiles
  • Support for parsing and serialising multiple Agents, and allow multiple values for dct:creator in DCAT AP (4c18b71)

Includes #313

Todo:

  • schema with just recommended properties
  • update documentation

Use the same files in examples used in the shacl tests, don't use
separate dataset dicts on each test.
For the parsing ones we are using the existing dataset.rdf file which
has a DCAT AP flavour. We can replace it with a US centric if we can
come up with a good existing example.
Use org:Organization and add a skos:prefLabel property
From landing page and documentation if there is no title defined
for them. See Usage note in
https://doi-do.github.io/dcat-us/#properties-for-document
As they are modeled as Data Services, the outputs fails validation
because they don't contain publisher and contact point. We can revisit
this if we implement first class support for Data Services
Rather than just include a Literal, add it as a node
(with a class if provided) with a RDFS.label property, eg:

    dct:accessRights [ a dct:RightsStatement ;
	rdfs:label "Statement about access rights" ] ;

An URI can also be used:

    dct:accessRights <https://example.org/vocab/access-right/TODO/PUBLIC> ;

    [...]

    <https://example.org/vocab/access-right/TODO/PUBLIC> a dct:RightsStatement .

This is in line with the recommendation in the DCAT 3 spec:

https://www.w3.org/TR/vocab-dcat-3/#ex-license-and-access-rights
Values like floats caused an exception here, and the fields get index
as text in Solr anyway
Both at the dataset and distribution level. This are implemented as
(single) repeating subfields with url, format and license properties
supported.

Potential future improvements: license fallback to dataset's and link to
datastore data dictionary automatically
This was already supported in DCAT AP 2, so moved the handling of these
two properties to the DCAT AP 2 profile so all profiles support it
Adds support for dct:contributor to dcat-us, and fixes dct:creator in
dcat-ap to allow multiple values. The logic for parsing and serializing
has been updated to support multiple instances by default, and we
special case dct:publisher which is the only Agent property that has a
0..1 requirement.
@amercader amercader marked this pull request as ready for review October 21, 2024 13:58
@amercader
Copy link
Member Author

cc @jqnatividad
If you know of a site where this could be tested that would be really nice

@jqnatividad
Copy link

WOOOOOHOOOOO!!!!

Sorry, been busy and missed this... but WOW!

We'll make this the foundation for the Phase II work we're doing with Water Data clients for sure!

Will start using it too for all the projects we're involved in! Amazing!

@amercader amercader merged commit bf5cf51 into master Oct 31, 2024
8 checks passed
@amercader amercader deleted the dcat-us-3 branch October 31, 2024 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants