Re: sh:uniqueLang "1"^^xsd:boolean .

In the technical sense of SHACL? (It's legal Turtle)

The test has a comment in it:

# Note that the value above is "1"^^xsd:boolean, which is distinct from
> "true"^^xsd:boolean.
> # Only true is mentioned in the spec, meaning that "1" will not activate
> the constraint
> # and the constraint is being ignored.


which goes with the SHACL spec saying:

 The property sh:uniqueLang can be set to true to specify that no pair of value
> nodes <https://www.w3.org/TR/shacl/#dfn-value-nodes> may use the same
> language tag.


and
sh:uniqueLang true to activate this constraint.
it's not SHACL-true so this is not active.

I'm hesitant to say "invalid syntax" because it begs the question of "which
syntax?"


On Mon, 25 Mar 2019 at 18:36, Håvard Ottestad <hmottestad@gmail.com> wrote:

> Hi Andy,
>
> Thanks for chiming in.
>
> Do you feel that "1"^^xsd:boolean should be invalid syntax?
>
> Håvard
>
> On 25 Mar 2019, at 19:12, Andy Seaborne <andy.seaborne@topquadrant.com>
> wrote:
>
>
>
> On Mon, 25 Mar 2019 at 16:56, Håvard Ottestad <hmottestad@gmail.com>
> wrote:
>
>> Hi,
>>
>> I came across this little bugger in the test-suite and I would like to
>> propose to have it removed.
>>
>> I’m talking about the uniqueLang-002 test which contains:   sh:uniqueLang
>>  "1"^^xsd:boolean .
>>
>> The W3C RDF Turtle 1.1 spec mentions that there are only two legal values
>> for booleans (true or false): https://www.w3.org/TR/turtle/#booleans
>>
>
> That is referring to the short forms true and false in syntax.
>
> The Turtle spec ought really to say which RDF term it is short for; the
> canonical form being the obvious choice.
> (It is supposed to be the same as SPARQL sec 4.1.2 - seems the text didn't
> get copied over.)
>
>
>> It links to the XML Schema definition of xsd:boolean where there are four
>> legal syntax values for boolean: true, false, 1, 0
>>
>> It furthermore states that there are only two canonical values for
>> boolean: true, false
>>
>
>> https://www.w3.org/TR/xmlschema-2/#boolean
>>
>> The definition in the SHACL spec is as follows:
>> ###########
>> If $uniqueLang is true then for each non-empty language tag that is used
>> by at least two value nodes, there is a validation result.
>> ###########
>>
>> My argument is that, unless the SHACL spec specifies the syntactical
>> representation of the boolean, then it is moot to have a test that checks
>> the syntax rather than the semantics.
>>
>
> I agree that  "true"^^xsd:boolean or true should be used in line with the
> end of sec 1.2
>
>     Andy
>
>
>
>> Regards,
>> Håvard M. Ottestad
>> (developer of the RDF4J incremental SHACL engine)
>>
>
>

Received on Monday, 25 March 2019 19:25:05 UTC