RE: How to add the constraining facets of XML schema.

> -----Original Message-----
> From: www-rdf-logic-request@w3.org [mailto:www-rdf-logic-request@w3.org]
> On Behalf Of Bijan Parsia
> Sent: Saturday, June 18, 2005 12:31 PM
> To: Geoff Chappell; 'Kenichi Taniuchi'; www-rdf-logic@w3.org
> Subject: RE: How to add the constraining facets of XML schema.
> 
> 
[...]
> >There's a good doc about xml datatypes and rdf at:
> >
> >	http://www.w3.org/TR/swbp-xsch-datatypes/
> >
> >Unfortunately, it doesn't offer an rdf-only solution.
> 
> I didn't quite understand that. Do you mean it doesn't offer a solution
> that
> doesn't require you to create an XML schema document? That's certainly the
> design choice for rdf datatyping in general.

Is it? I imagine most systems, if they support datatypes at all, are
supporting just the primitive types. I'd agree that if you want to support
arbitrary derived types, the only suggested approach is to somehow reference
an external xsd (the pitfalls of which are one of the main topics of the
best practices doc I mentioned). But while I appreciate the goal of re-using
xml schema datatypes in rdf -- for purposes of not reinventing the wheel and
general interoperability -- I don't see why there can't exist an equivalent
means to describe a datatype wholly within rdf (it is a _description_
language after all and certainly hasn't been shy about describing aspects of
itself in other regards).
 
> >In my own work I've done things like this:
> >
> >:myproperty a owl:DatatypeProperty;
> >	rdfs:domain :MyClass;
> >	rdfs:range [rdfs:subClassOf xsd:integer;
> >		xsd:maxInclusive "10"^^xsd:integer;
> >		xsd:minInclusive "1"^^xsd:integer]
> 
> I'd feel happier if you named the type, I guess.
> 
> >i.e. I create a derived datatype with appropriate facet restrictions as
> >needed. Most systems will likely not interpret the facets as meaningful,
> but
> >they should at least respect the base type.
> 
> I'd be surprised if they did!

You'd be surprised if they did something with the facets, or you'd be
surprised if they understood that any value of myproperty was a xsd:integer?
I'd hope that most reasoners would do the latter since it's just rdfs
reasoning.

 
> >I usually use the base type on
> >actual values - e.g.:
> >
> >	:x :myproperty "5"^^xsd:integer
> >
> >rather than naming the derived type and using that.
> 
> This sort of violates the "local" typing of properties. Hmm. Maybe not! As
> long
> as the actual value is in the intersection of the types, you probably
> won't get a
> clash.

Yeah, I don't think it does violate anything. That's the reason I kind of
like the approach - it degrades reasonably while providing useful info to
any system that happens to be able to make use of it.

 
> >I haven't seen this method used in the wild, so I gather it's not a
> >wide-spread practice.
> 
> Nope.
> 
> > Anyone else do anything like this?
> 
> There is something similar in Jeff Pan's extensions to OWL to allow for
> multiple
> arity datatype predicates and user defined types.
> 
> > Or see reasons not
> >to?
> 
> I'd be surprised if this became a sanctioned solution.
> 
> I've thought of embedding fragments of XML schema in rdf documents (via
> XMLLiterals) which at least sortof respects the "use Schema for datatype
> specification" while giving us "one document/local" datatype definitions.

Yeah, this has an appeal also (though it currently would have to rely on
convention also - either some added vocabulary to tie a datatype description
with a datatype or some means of referencing embedded xml frags). I chose
not to go this route because my tools currently can't look inside xml
literals during the reasoning process (except by treating them as strings).
 
> Cheers,
> Bijan.

Best,

Geoff

Received on Saturday, 18 June 2005 18:27:51 UTC