[data-shapes] add `sh:uniqueLang` to SHACL-SHACL (#848)

VladimirAlexiev has just created a new issue for https://github.com/w3c/data-shapes:

== add `sh:uniqueLang` to SHACL-SHACL ==
@MikiDi1 at https://gitlab.com/era-europa-eu/public/interoperable-data-programme/era-ontology/era-ontology/-/work_items/323
criticizes some duplicate ERA SHACL shapes with slightly diffferent `sh:message` that Jena rejects.

I think Jena does the right thing because 1.2 states in https://www.w3.org/TR/shacl12-core/#message
> A subject should not have more than one value for sh:message with the same language tag.

The intent is to avoid the situation Miki decribed (implementers shouldn't have such discretion!):
> at implementers discretion to pick one of multiple shacl messages to display

I think that SHACL-SHACL about `sh:message` should include `sh:uniqueLang true`.
That's around https://github.com/w3c/data-shapes/blob/gh-pages/shacl12-vocabularies/shacl-shacl.ttl#L153 .

`sh:message` is the only prop that mentions langString
(more precisely it's `sh:or ( [ sh:datatype xsd:string ] [ sh:datatype rdf:langString ] )`)

But I'd guess that there should be more "string or langString" props???


Please view or discuss this issue at https://github.com/w3c/data-shapes/issues/848 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 2 April 2026 08:24:25 UTC