Re: Datatype was RE: Confusion about Collections

[Patrick Stickler, Nokia/Finland, (+358 40) 801 9690, patrick.stickler@nokia.com]


----- Original Message ----- 
From: "ext Shelley Powers" <shelleyp@burningbird.net>
To: "Patrick Stickler" <patrick.stickler@nokia.com>; <fmanola@mitre.org>
Cc: <www-rdf-comments@w3.org>; "Brian McBride" <bwm@hplb.hpl.hp.com>
Sent: 26 November, 2002 14:03
Subject: RE: Datatype was RE: Confusion about Collections


> 
> 
> > [Patrick Stickler, Nokia/Finland, (+358 40) 801 9690,
> > patrick.stickler@nokia.com]
> > >
> > > > Also, Frank, a question on dates: I've seen references to
> > > > multiple documents about what date types are supported. I imagine
> > > > that we can use RDFS to provide instructions to consumers of our
> > > > vocabulary as to which date format is being supported. Or do we
> > > > use rdf:datatype? There's quite a bit of discussion on data
> > > > types, but it seems disjointed. I can't help thinking that the
> > > > primer could bring this together.
> > > >
> > > > Also question: you all aren't really going to support values of
> > > > '"1999-08-16"^^xsd:date', are you? No offense, but this horrid.
> > > > No offense again, but this is absolutely horrid. What's wrong
> > > > with using RDFS to define the data type, rather than making the
> > > > value into an intelligent value (ie data type is incorporated
> > > > into the instance, rather than the vocabulary definition)?
> > > > Embedding intelligence into values is the worst thing you can do
> > > > for a data model, regardless of model meta-structure.
> > > >
> > > > This is a broader question to group, or a request clarification
> > > > if I'm reading this wrong. I'm hoping I'm reading this wrong.
> > > >
> > > > Shelley
> > > >
> > >
> > > As a point of clarification on this, it isn't the format that
> > bothers me --
> > > it's the tying the datatype to instances rather than
> > vocabulary. I know that
> > > RDF/xml uses rdf:datatype rather than
> > '"1999-08-16"^^xsd:date', but this
> > > again attaches the datatype to the instance, rather than the
> > vocabulary. So,
> > > I could use http://www.w3.org/2001/XMLSchema#date for a date
> > column that has
> > > data of 199-10-10, and use http://www.w3.org/2001/XMLSchema#integer for
> > > another instance of the vocabulary (another document), and this
> > means time
> > > in seconds from a set date. Both are accurate, but neither is
> > compatible.
> > >
> > > See the problems?
> > >
> > > However, if we attach the rdf:datatype to the definition of the
> > vocabulary
> > > itself rather than any specific document, then the creators of the
> > > vocabulary can say that this property takes integers
> > representing number of
> > > seconds since whatever. And all instances (documents) based on the
> > > vocabulary would be compatible.
> > >
> > > Sorry, I know this is my strong data background talking, but I can see a
> > > nightmare in the making with this one.
> > >
> > > Shelley
> >
> > Shelley,
> >
> > You can specify the datatype range of a property using rdfs:range to
> > accomplish this. E.g.
> >
> >    my:dateProperty rdfs:range xsd:date .
> >
> > And this asserts that all values of my:dateProperty are expected
> > to be of type xsd:date.
> >
> > Cheers,
> >
> > Patrick
> 
> 
> That's good to know Patrick. I must have missed this in the vocab document.
> And one can also assume, then, that people who create instances of a
> vocabulary (a specific document) can't override the data type that's shown
> in the schema. Is that correct?

In a sense, yes, in that if they do they will introduce a contradiction
into the graph. But this is of course true of any RDF range, not just
for datatyping. E.g. if one asserts that

   my:property rdfs:range foo:Blargh .

and someone else asserts

   my:property rdfs:range bar:Foodle .

and if it is known (e.g. by OWL assertions) that the classes
foo:Blargh and bar:Foodle have disjunct membership, then there
arises a conflict between the two range assertions, and its
resolution will likely be based on some concept of authority
(though RDFS doesn't explicitly say how to do this).

Likewise, if one asserted

   my:property rdfs:range foo:Blargh .

   some:Thing my:property _:x .
   _:x rdf:type bar:Foodle .

then an RDF reasoner may infer

   _:x rdf:type foo:Blargh .

then again if the two classes have disjunct membership, these two 
type assertions  for _:x conflict with each other and that
conflict may be used by an application as the basis for type
checking, taking the explicit range assertion as primary.

Note that with RDF datatyping

   some:Thing some:property "LLL"^^some:Datatype .

implies

   "LLL"^^some:Datatype rdf:type some:Datatype .

though we can't actually express the latter as literals are not allowed
to be subjects, but the semantics are "understood" -- i.e. that 
the thing denoted by a typed literal node is a member of the
value space (the class extension) of the datatype class specified
in the typed literal.

I hope the above is helpfull.

Cheers,

Patrick

Received on Tuesday, 26 November 2002 07:49:53 UTC