Skip to content

DatasetMetadata RDFS: URI-typed Dataset attributes have no rdfs:domain since 489c5c5 — class binding not derivable from RDFS, while SHACL still requires them #92

Description

@Haigutus

Affected artifacts

Ref NCP/**/RDFS/DatasetMetadata-AP-Voc-RDFS2020.rdf rdfs:domain / rdf:Property
ncp-v2-4-1 @ 6c13098b not affected 51 / 49
ncp-v2-4-2 @ a115032b (current HEAD) affected 40 / 49
main @ d113c048 (2.5 draft, NCP/CurrentRelease) affected 40 / 49

Introduced by commit 489c5c51ac4f (2026-05-27, "Correct RDFS for NCP dataset metadata to
remove the record <rdfs:domain rdf:resource="http://www.w3.org/ns/dcat#Dataset"/> for
literal attributes with datatype <cims:dataType rdf:resource="#URI"/>").

Problem

After that commit, these 11 properties are still declared as rdf:Property with
cims:dataType #URI, cims:multiplicity and stereotypes, but carry no rdfs:domain
(or any other class linkage)
:

dcterms:accessRights, dcterms:accrualPeriodicity, dcterms:conformsTo,
dcterms:license, nc:processType (type), dcterms:publisher, dcterms:source,
dcterms:spatial, dcterms:type, dcatcim:usedSettings, prov:wasGeneratedBy.

For tooling that derives the exchange schema from the RDFS2020 vocabulary (which class
carries which attribute), these properties are orphaned — they can no longer be
associated with dcat:Dataset, so generated serializers/validators silently drop the
corresponding header statements. All string-typed Dataset attributes (dcat:keyword,
dcterms:title, dcterms:description, dcterms:identifier, …) still carry
rdfs:domain, so the vocabulary is now internally inconsistent about how attribute
membership is expressed.

Meanwhile the constraints artifact of the same release still binds all of them to the
Dataset/DifferenceSet node shapes and even requires some of them, e.g. in
NCP/SHACL/DatasetMetadata-AP-Con-SHACL.ttl (ncp-v2-4-2):

dm:conformsTo-cardinality
        rdf:type        sh:PropertyShape;
        sh:message      "Cardinality violation. Lower bound shall be 1";
        sh:minCount     1;
        sh:path         dcterms:conformsTo;
        sh:severity     sh:Violation .

So an implementation that derives its writer from the RDFS cannot emit
dcterms:conformsTo, and the emitted document then fails the release's own SHACL.

If the motivation was RDF-semantics hygiene (a global rdfs:domain on shared
dcterms/dcat vocabulary terms entails class membership for every user of the term),
that concern applies equally to the string-typed properties that kept their domain —
and the RDFS2020 application-profile files are already profile-scoped artifacts, not
global vocabulary definitions.

Reproduce

git diff 489c5c51ac4f^ 489c5c51ac4f -- NCP/CurrentRelease/RDFS/DatasetMetadata-AP-Voc-RDFS2020.rdf
# 11 properties lose <rdfs:domain rdf:resource="http://www.w3.org/ns/dcat#Dataset"/>

Questions / proposal

  1. If the removal is intentional: what is the intended machine-readable way to derive,
    from the RDFS package alone, that these properties are exchanged on dcat:Dataset?
  2. If profile-scoped domains are acceptable (as for the string-typed attributes),
    please restore rdfs:domain for the 11 URI-typed properties on ncp-v2-4-2-line
    and main so the vocabulary is consistent and matches the SHACL.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions