Skip to content

fix(harvest): missing new (Geo)DCAT-AP mapping for dct:provenance and dct:*rights#3720

Merged
maudetes merged 1 commit intoopendatateam:mainfrom
ecolabdata:fix/rdf-provenance-rights-description
Apr 15, 2026
Merged

fix(harvest): missing new (Geo)DCAT-AP mapping for dct:provenance and dct:*rights#3720
maudetes merged 1 commit intoopendatateam:mainfrom
ecolabdata:fix/rdf-provenance-rights-description

Conversation

@streino
Copy link
Copy Markdown
Contributor

@streino streino commented Apr 13, 2026

Fix ecolabdata/ecospheres#1018

dct:provenance and dct:*rights used to contain a rdfs:label, but the GeoDCAT-AP 3 spec mentions that dct:description can be used (doc provenance, doc rights), and the SEMIC (main branch) and GeoNetwork converters now use that spec.

It is not clear where DCAT stands, and whether GeoDCAT-AP defines dct:description as a replacement or an addition to rdfs:label. Properties of dct:*Statements are not clearly defined so we can only rely on examples provided in the spec.

So we add resolution of dct:description but keep rdfs:label as well. If an element contains both properties, we take the rdfs:label as the more likely "title" of the element.

Even though the recent specs only give URI examples for licenses, we also apply the logic above to dct:license to preserve the already implemented coverage of free-text cases.

…*rights

dct:provenance and dct:*rights used to contain a rdfs:label, but the
GeoDCAT-AP 3 spec mentions that dct:description can be used, and the
SEMIC and GeoNetwork converters now use that spec.

It is not clear where DCAT stands, and whether GeoDCAT-AP defines
dct:description as a replacement or an addition to
rdfs:label. Properties of dct:*Statements are not clearly defined so
we can only rely on examples provided in the spec.

So we add resolution of dct:description but keep rdfs:label as
well. If an element contains both properties, we take the rdfs:label
as the more likely "title" of the element.

Even though the recent specs only give URI examples for licenses, we
also apply the logic above to dct:license to preserve the already
implemented coverage of free-text cases.
@streino streino changed the title fix(harvest): missing new DCAT-AP mapping for dct:provenance and dct:*rights fix(harvest): missing new (Geo)DCAT-AP mapping for dct:provenance and dct:*rights Apr 13, 2026
Comment thread udata/rdf.py


def serialize_value(value, parse_label=False):
def serialize_value(value, unwrap: list[URIRef] | None = None):
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I find the approach clean, nice 🎉

@maudetes maudetes merged commit 92921f3 into opendatateam:main Apr 15, 2026
1 check passed
@maudetes maudetes deleted the fix/rdf-provenance-rights-description branch April 15, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Régression csw-dcat + GeoDCAT-AP sur provenance et rights

2 participants