zazuko/cube-link

set `sh:maxCount` 1 for `sh:datatype` and `sh:nodeKind`

Closed this issue · 2 comments

... as multiple instances (parallel fullfillment of both conditions) are contradicting each other.

given an unconditional sh:datatype , thus all values within that cube need to be of that very datatype.
for values there is no way to have two distinct datatypes at once.
(in such cases multiple conditional datatypes are to be placed within sh:or as proposed recently)

same goes for

  • sh:nodeKind
  • sh:minInclusive
  • sh:maxInclusive
  • sh:in
  • maybe others?

might also be addressed by adding shsh to the list of validations to check our cube:Constraints right in here https://cube.link/#the-integrity-of-the-constraints ... if this really contains the relevant parts

FTR: closed by

sh:property
[
sh:path sh:datatype ;
sh:maxCount 1 ;
sh:not [ sh:hasValue rdf:langString ] ;
] ;

and
sh:property
[
sh:path sh:nodeKind ;
sh:in ( sh:IRI sh:Literal ) ;
sh:minCount 1 ;
] ;