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

On 11/21/16 1:59 PM, Holger Knublauch wrote:
>
>
> On 22/11/2016 1:43, Karen Coyle wrote:
>>
>>
>> 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".
>
> No, sh:datatype works for every datatype, including user-defined ones.
> We compare the IRIs.

OK, I see that it says: "A literal matches a datatype if the literal's 
datatype has the same IRI and, for the datatypes supported by SPARQL 
1.1, is not an ill-typed literal." So the datatypes should be defined as 
the ones supported by SPARQL and the comparison is the one provided by 
SPARQL. That it is the SPARQL-defined datatypes (even though possibly 
the same as the RDF ones) should be the definition in the terminology 
section.

I think we should talk about this in the group and see if this meets 
peoples' needs. I believe that Ted had strong feelings about this one. 
Also, it does seem like a good idea to begin reviewing document changes. 
We have now identified two that may have been different to what was 
actually said at the meeting. Not that either is wrong, but it is useful 
to see the detail of how those decisions can be implemented.

kc

>
> Holger
>
>
>> 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 22:45:02 UTC