- From: Holger Knublauch <holger@topquadrant.com>
- Date: Tue, 23 Dec 2014 13:47:03 +1000
- To: public-data-shapes-wg@w3.org
On 12/22/2014 9:01, Holger Knublauch wrote: > > The situation seems to be sufficiently tricky that there is no clean > solution and we need to pick the least bad compromise out of several > bad options. I just had another idea. We could separate the value type from the node type, allowing different combinations. E.g. ex:MyClass :property [ :predicate ex:myProperty ; :valueType rdfs:Resource ; :nodeType :BlankNode ; ] would allow any bnode. ex:MyClass :property [ :predicate ex:myProperty ; :valueType ex:OtherClass ; :nodeType :IRINode ; ] would allow any instance of OtherClass that is also an IRI - no blank node. ex:MyClass :property [ :predicate ex:myProperty ; :nodeType :LiteralNode ; ] would allow any literal. Neither :valueType nor :nodeType would mean any node. By separating :valueType and :nodeType we actually would have a more expressive language, e.g. allowing users to explicitly state whether bnodes are allowed or not. A class :BlankOrIRINode could be used for both. This approach would also allow us to use rdfs:Resource as the :valueType, without introducing a parallel class tree, i.e. it should work with the current (inherited) specs. Does anyone see problems with that? Holger
Received on Tuesday, 23 December 2014 03:50:12 UTC