- From: Holger Knublauch <holger@topquadrant.com>
- Date: Fri, 9 Sep 2016 10:58:54 +1000
- To: "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
- Message-ID: <1462fb16-9be3-1676-5340-d25c2af618f5@topquadrant.com>
I was given the task of writing up sh:langShape today. I already did a few months back: https://lists.w3.org/Archives/Public/public-data-shapes-wg/2016Mar/0262.html From the list of requirements at https://www.w3.org/2014/data-shapes/wiki/Proposals#ISSUE-137_Missing_constraint_for_language_tag * In SKOS, there can be only one prefLabel per language tag Already exists: sh:uniqueLang true * Constrain the valid language tags to a provided set, e.g. (@en, @de, @fr) See my email, sh:langShape [ sh:in ( "en" "de" "fr" ) ] * Require that all literals have/do not have a language tag Already exists: sh:datatype rdf:langString * Require that a particular property have a set of literals, one each language tag, e.g. "there must be 3 instances of dct:abstract; the values must be literals; there must be one literal for each valid language code (@en, @de, @fr)" Can be expressed through a combination of sh:minCount = 3, sh:maxCount = 3, sh:uniqueLang. (What are "instances of dct:abstract"?) * Check that the language tag is 2-letter | 3-letter | does/does not have hyphens sh:langShape [ sh:minLength 2 ; sh:maxLength 2 ; or: sh:pattern "... regex ..." ] * Check that the 2 or 3-letter tag is valid Assuming that the list of valid tags is stored somewhere, e.g. in an rdf:List iso:ValidLanguages: sh:langShape [ sh:in iso:ValidLanguages ] I don't think maintaining such a list ourselves is within the scope of the WG, yet it could be expressed in the Core language. PROPOSAL: Add sh:langShape as outlined. Meaning: if a value node has a language tag then the string of the language tag itself needs to have the given sh:Shape. Holger
Received on Friday, 9 September 2016 00:59:26 UTC