W3C home > Mailing lists > Public > public-data-shapes-wg@w3.org > March 2015

Value type constraints

From: Holger Knublauch <holger@topquadrant.com>
Date: Fri, 27 Mar 2015 10:02:37 +1000
Message-ID: <55149E1D.7020405@topquadrant.com>
To: RDF Data Shapes Working Group <public-data-shapes-wg@w3.org>
Could we try to agree on the high-level property names for value type 
restrictions? This topic is comparable to rdfs:range.

There are obviously two kinds of value types:
a) data types (xsd:string etc)
b) classes (ex:Person etc)

This is complicated a bit by the fact that RDF theoretically allows 
things like

     ex:MyInteger rdf:type xsd:integer .

I see a couple of questions now:

1) Should we use one or two properties to specify the value type?
2) What should be the names of those properties?

Resource Shapes suggests two properties:
- oslc:range (for object properties)
- oslc:valueType (for datatype properties)

That naming sounds a bit unintuitive to me (e.g. clashed with 
rdfs:range), so if we had two properties then I'd prefer

- sh:valueClass (or sh:valueType, for object properties)
- sh:datatype (for datatype properties)

Alternatively we could try to get away with just a single property, say 
sh:valueType. The implementation of this would roughly be:

- if the ?valueType is a rdfs:Datatype, then values must be literals 
with equal datatype
- otherwise, the values must be instances of the ?valueType via rdf:type

On the plus side, just having sh:valueType looks more user friendly 
(e.g. because people cannot use both valueClass and datatype at the same 
property anyway). RDFS also just has one property for such things 

On the negative side, the validation needs to do a little bit of extra 
work to check whether the ?valueType is a datatype. Also note that this 
would rule out those reified datatype instances mentioned earlier, but I 
have not seen real-world evidence that those are needed, ever.

Properties that can take either node kind just leave the sh:valueType 
empty. Any of these can be combined with sh:nodeKind. We had long 
discussions about the interpretation of rdfs:Resource in the olden days, 
yet I think sh:nodeKind has helped resolve this a bit.

Could I get input on this topic? I have no strong opinions at this stage.

Received on Friday, 27 March 2015 00:03:54 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:30:18 UTC