Release 6: SHACL constraint for cv:email should use sh:nodeKind sh:IRI instead of sh:Literal
In the current SHACL definition of :ContactPoint_Shape, the constraint for cv:email is defined as:
sh:property [
sh:path cv:email ;
sh:nodeKind sh:Literal ;
sh:severity sh:Violation ;
sh:message "cv:email must be a literal value."
] ;
However, this constraint is inconsistent with the examples provided in the specification and with RDF best practices for representing email addresses.
Email addresses are represented in RDF as IRIs using the mailto: scheme (e.g., mailto:publisher-contact@example.com), not as plain literals.
In the Publisher (dct:publisher) and HDAB examples, the value of cv:email is correctly expressed as an IRI:
cv:email <mailto:publisher-contact@example.com> ;
<https://fair.healthdata.be/dataset/d43a158e-7d13-4660-bbc3-9d3f8d5501e5>
a dcat:Dataset ;
dct:publisher [
a foaf:Agent;
dct:description "Publisher Note description"@en;
dct:type <http://13.81.34.152:1101/resource/authority/publisher-type/public-health-registry>;
foaf:name "Germany Publisher";
cv:contactPoint <internalURI:contactPointPublisher>
] .
<internalURI:contactPointPublisher> a cv:ContactPoint ;
cv:email <mailto:publisher-contact@example.com> ;
cv:contactPage <https://www.publisher.com/contact> ;
cv:telephone "+32 257 25757" ;
cv:openingHours ex:oh ;
cv:specialOpeningHoursSpecification ex:sohs .
However:
The SHACL constraint enforces sh:nodeKind sh:Literal The Custodian (geodcatap:custodian) example uses a literal:
ex:dataset a dcat:Dataset ;
geodcatap:custodian [
a foaf:Agent ;
foaf:name "Kadaster"@nl ;
dct:type <http://13.81.34.152:1101/resource/authority/publisher-type/non-gov-org> ;
cv:contactPoint ex:cp
] .
ex:cp a cv:ContactPoint ;
cv:email "info@kadaster.nl" ;
cv:contactPage <https://www.kadaster.nl/contact> ;
cv:telephone "+32 257 25757" ;
cv:openingHours ex:oh ;
cv:specialOpeningHoursSpecification ex:sohs .
This creates an inconsistency: The SHACL shape requires a literal The Custodian example uses a literal The Publisher & HDAB examples use an IRI RDF best practice recommends mailto: IRIs
Proposed change
Update the SHACL constraint for cv:email to:
sh:property [
sh:path cv:email ;
sh:nodeKind sh:IRI ;
sh:severity sh:Violation ;
sh:message "cv:email must be provided as a mailto: IRI."
] ;