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

Hi Karen, the current wording is inline with the recent discussions we had
(and with Ted)
I see the "(This also implies that using rdf:langString as value of
sh:datatype can be used to test if value nodes have a language tag.) " as
reduntant can be removed as it is covered by the SPARQL and RDF definitions

On Tue, Nov 22, 2016 at 12:44 AM, Karen Coyle <kcoyle@kcoyle.net> wrote:

>
>
> 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/94e68840b9d11e6ce0
>>>> abdc79e296b607f8c024be
>>>>
>>>>
>>>>
>>>> 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/eb8eca7d23a91ab884
>>>>>> 949bc337b5e1a0cee2f747
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 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_langs
>>>>>>> tring
>>>>>>> [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
>
>


-- 
Dimitris Kontokostas
Department of Computer Science, University of Leipzig & DBpedia Association
Projects: http://dbpedia.org, http://rdfunit.aksw.org,
http://aligned-project.eu
Homepage: http://aksw.org/DimitrisKontokostas
Research Group: AKSW/KILT http://aksw.org/Groups/KILT

Received on Wednesday, 30 November 2016 07:15:26 UTC