More questions about negation and uniqueLang

Hi,

I have some more questions about negation and uniqueLang.

This is my SHACL:


ex:PersonShape
  a sh:NodeShape  ;
  sh:targetClass foaf:Person ;
  sh:property ex:PersonShapeProperty .

ex:PersonShapeProperty 
  sh:path foaf:name ;
  sh:not [sh:uniqueLang true ].


Essentially. Every person may not have names that are unique by their language tag.

Here are three examples.

——————

ex:peter a foaf:Person ;
  foaf:name "name"@en ,  "name2"@en  .

——————

ex:peter a foaf:Person ;
  foaf:name "name"@en   .

——————

ex:peter a foaf:Person ;
  foaf:name 1   .

——————


I would argue that at the first dataset should be valid, the second should be invalid and the third is somewhat undefined.

I have tested these examples against the TopBraid reference implementation, which doesn’t implement this functionality. It also doesn’t implement  sh:not [sh:minCount 1 ] og sh:not [sh:maxCount 1 ]. Here is the kind of error message I get:

SHACL Validation Failure: No suitable validator found for constraint Constraint UniqueLangConstraintComponent at be6038563d3eba1a2f570dfa212bc4bd

Could anyone share some insight into how this was meant to work? Maybe it was discussed while the SHACL standard was created?

Cheers,
Håvard

Received on Wednesday, 22 May 2019 08:40:05 UTC