Current definition says:
A validation result must be produced for each value node that is not a
literal, or is a literal with a mismatching datatype, whereby the datatype
of a literal is determined following the datatype function of SPARQL 1.1
The datatype links to the SPARQL datatype function which has the following
definition
17.4.2.7 datatype
Returns the datatype IRI of a literal.
If the literal is a typed literal, return the datatype IRI.
If the literal is a simple literal, return xsd:string
If the literal is literal with a language tag, return rdf:langString
so sh:datatype covers rdf:langString without the clarification added by
Holger
On Wed, Nov 30, 2016 at 3:02 PM, Karen Coyle <kcoyle@kcoyle.net> wrote:
> What I see in the SPARQL document [1] is:
>
> 17.4.2.6 lang
> simple literal LANG (literal ltrl)
> Returns the language tag of ltrl, if it has one. It returns "" if ltrl has
> no language tag. Note that the RDF data model does not include literals
> with an empty language tag.
>
> SPARQL uses the function "lang" not rdf:langString, and it is not a
> datatype, it's a separate function (will look for that in the doc). So
> something needs to be said here.
>
> kc
>
> On 11/29/16 11:14 PM, Dimitris Kontokostas wrote:
>
>> 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
>> <mailto: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-co
>> ncepts/#section-Datatypes
>> <https://www.w3.org/TR/rdf11-c
>> oncepts/#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
>> <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-sh
>> apes/commit/94e68840b9d11e6ce0abdc79e296b607f8c024be
>> <https://github.com/w3c/data-s
>> hapes/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-sh
>> apes/commit/eb8eca7d23a91ab884949bc337b5e1a0cee2f747
>> <https://github.com/w3c/data-s
>> hapes/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
>> <https://www.w3.org/TR/sparql1
>> 1-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-sh
>> apes/track/issues/198
>> <http://www.w3.org/2014/data-s
>> hapes/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
>> <https://www.w3.org/TR/2014/RE
>> C-rdf-schema-20140225/#ch_langstring>
>> [2]https://lists.w3.org/Archiv
>> es/Public/public-data-shapes-wg/2016Nov/0001.html
>> <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 <mailto:kcoyle@kcoyle.net> http://kcoyle.net
>> m: 1-510-435-8234
>> skype: kcoylenet/+1-510-984-3600 <tel:%2B1-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
>>
>>
> --
> 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