Open list alternative of sh:in?

Hello!

We are looking at SHACL lists, such as:

|sh:path rdf:type ;
sh:in (foaf:Person, dbo:Person) ;
|

The question is what is the best way to make this more inclusive. As 
specified, this would check the type for a given object is either 
foaf:Person or dbo:Person (or both/none). However, it is possible that 
the same object may have other types which we do not want to validate. 
For example, dbo:Actor.

At the moment, we use a combination of sh:or and sh:hasValue for this:

|sh:path rdf:type ;
sh:or ( [ sh:hasValue foaf:Person] [ sh:hasValue dbo:Person ] ) ;|

This is significantly more verbose, and repetitive. Is there a better 
way? One example that has been suggested internally was:

|sh:property [
     sh:path rdf:type ;
     sh:in (foaf:Person, dbo:Person) ;
]
sh:ignoredProperties (rdf:type)
|

However, ignoredProperties is used for a completely different thing and 
I don't believe it is a valid option at all. Is this something better 
left for DASH, for example by defining dash:valueIn that takes a list 
and is open?

Thanks,
Radostin Nanov | Ontotext Software Developer

||

||

Received on Friday, 5 June 2020 19:08:14 UTC