Re: Terminology: How to call "IRI or blank node"?

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