Re: shapes-ISSUE-198 (rdf:langString): rdf:langString not included in datatypes [SHACL Spec]

On 11/19/16 2:57 PM, Holger Knublauch wrote:
>
>
> On 20/11/2016 3:16, Karen Coyle wrote:
>>
>>
>> On 11/17/16 10:50 PM, Holger Knublauch wrote:
>>> Hi Karen,
>>>
>>> - RDF 1.1 *does* mention rdf:langString (see the NOTE in
>>> https://www.w3.org/TR/rdf11-concepts/#section-Datatypes)
>>
>> Yes, and it says there:
>> "Language-tagged strings have the datatype IRI
>> http://www.w3.org/1999/02/22-rdf-syntax-ns#langString. No datatype is
>> formally defined for this IRI because the definition of datatypes does
>> not accommodate language tags in the lexical space. The value space
>> associated with this datatype IRI is the set of all pairs of strings
>> and language tags."
>>
>> So it treats it as an exception, and says that it is not defined as a
>> datatype.
>>
>> SKOS also describes language strings as an exception, of sorts:
>> "Formally, a lexical label is an RDF plain literal [RDF-CONCEPTS]. An
>> RDF plain literal is composed of a lexical form, which is a string of
>> UNICODE characters, and an optional language tag, which is a string of
>> characters conforming to the syntax defined by [BCP47]."
>>
>> This says to me that RDF plain literals are NOT included in datatypes.
>> xsd has xsd:string but that is not the same as the rdf literal.
>>
>> I can't say that this is crystal clear to me, but language strings
>> will be very important so I want it to be clear how they are handled
>> in SHACL.
>
> I have added a clarification to highlight the sh:datatype rdf:langString
> trick:
>
> https://github.com/w3c/data-shapes/commit/94e68840b9d11e6ce0abdc79e296b607f8c024be
>
>
> HTH
> Holger

Digging into datatypes, I'm given to understand that RDF allows 
arbitrary datatypes to be defined and used.

"The datatype abstraction used in RDF is compatible with XML Schema 
[XMLSCHEMA11-2]. Any datatype definition that conforms to this 
abstraction may be used in RDF, even if not defined in terms of XML Schema."

I assume SHACL will be limited to the datatypes in XMLSchema, which are 
the datatypes listed as "XML Schema Built-in Types". The spec should 
state that it is only those built-in datatypes that can be validated. 
The clause ", and datatype" needs to be removed from the terminology 
section, and the datatype constraint should say:

"The values of sh:datatype must be the IRIs of datatypes from the list 
of XML Schema built-in types in RDF Concepts 1.1, plus the 
rdf:langString, which can be used to test if value nodes that are 
strings also have a language tag.

kc

>
>
>> We do have a use case (U21) that requires that SHACL can be used to
>> validate SKOS vocabularies. I will try to find someone from the SKOS
>> community who has more knowledge of this.
>>
>> kc
>>
>>
>>
>>>
>>> - I see no need to explicitly enumerate all datatypes, because RDF 1.1
>>> itself allows arbitrary IRIs to be used, including user-defined
>>> datatypes. I don't see why rdf:langString would be special.
>>>
>>> - I noticed however that with our recent edit to the semantics of
>>> sh:datatype we have lost an important detail, namely that the definition
>>> of what is the datatype of a literal must follow the semantics of the
>>> datatype operator in SPARQL [1]. I have added this clarification:
>>>
>>> https://github.com/w3c/data-shapes/commit/eb8eca7d23a91ab884949bc337b5e1a0cee2f747
>>>
>>>
>>>
>>> If you follow the SPARQL 1.1 link below, you will see that this
>>> explicitly mentions rdf:langString, so I think we are covered.
>>>
>>> Please let me know if this addresses your issue.
>>>
>>> Thanks,
>>> Holger
>>>
>>> [1] https://www.w3.org/TR/sparql11-query/#func-datatype
>>>
>>>
>>> On 18/11/2016 8:34, RDF Data Shapes Working Group Issue Tracker wrote:
>>>> shapes-ISSUE-198 (rdf:langString): rdf:langString not included in
>>>> datatypes [SHACL Spec]
>>>>
>>>> http://www.w3.org/2014/data-shapes/track/issues/198
>>>>
>>>> Raised by: Karen Coyle
>>>> On product: SHACL Spec
>>>>
>>>> >From email of 31 October 2016:[2]
>>>>>> *Karen*
>>>>>> This checks the ^^xsd:X literals. sh:nodeKind checks for IRI, bnode,
>>>>>> or literal. There's one more type in RDF 1.1 [1] which is the
>>>>>> "language-tagged string". We have sh:uniqueLang and sh:languageIn,
>>>>>> but
>>>>>> is there also a need to check that a literal is language-tagged?
>>>>> *Holger*
>>>>> Being language-tagged is already checked via sh:datatype
>>>>> rdf:langString.
>>>>> So I think that's handled OK.
>>>> OK, but the terminology entry for "datatype" cites RDF 1.1 concepts,
>>>> and
>>>> rdf:langString doesn't appear in that document. It is defined in RDF
>>>> Schema 1.1, though.[1] Does that mean it should be listed specifically
>>>> with RDFS as its reference?
>>>>
>>>> kc
>>>> [1] https://www.w3.org/TR/2014/REC-rdf-schema-20140225/#ch_langstring
>>>> [2]https://lists.w3.org/Archives/Public/public-data-shapes-wg/2016Nov/0001.html
>>>>
>>>>
>>>>
>>>> ***Proposal***
>>>>
>>>> Modify definition of datatypes in SHACL to include rdf:langString from
>>>> RDF schema. Also, is rdfs:Literal also needed?
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>
>
>

-- 
Karen Coyle
kcoyle@kcoyle.net http://kcoyle.net
m: 1-510-435-8234
skype: kcoylenet/+1-510-984-3600

Received on Monday, 21 November 2016 15:44:39 UTC