W3C home > Mailing lists > Public > w3c-rdfcore-wg@w3.org > September 2002

Re: datatype property in the statement object pair

From: Patrick Stickler <patrick.stickler@nokia.com>
Date: Fri, 27 Sep 2002 16:43:03 +0300
Message-ID: <003f01c2662b$cdd57320$e180720a@NOE.Nokia.com>
To: "ext Jos De_Roo" <jos.deroo.jd@belgium.agfa.com>
Cc: "w3c-rdfcore-wg" <w3c-rdfcore-wg@w3.org>



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


----- Original Message ----- 
From: "ext Jos De_Roo" <jos.deroo.jd@belgium.agfa.com>
To: "Patrick Stickler" <patrick.stickler@nokia.com>
Cc: "w3c-rdfcore-wg" <w3c-rdfcore-wg@w3.org>
Sent: 27 September, 2002 16:15
Subject: Re: datatype property in the statement object pair


> 
> 
> > > there's actually a simple way to make desirable non entailments
> > >
> > > if, for datatype property #bar we interpret
> > >   <rdf:Description about="#foo">
> > >     <bar>abc</bar>
> > >   </rdf:Description>
> > >
> > > as
> > >   <#foo> <#bar> (<#bar> "abc")
> >
> > As Brian pointed out some time ago, this does not
> > work with generic membership properties. E.g.
> >
> >    <foo:BagOfStrings>
> >       <rdf:li>10</rdf:li> <!-- meant to be a string -->
> >    </foo:BagOfStrings>
> >
> >    <bar:BagOfIntegers>
> >       <rdf:li>10</rdf:li> <!-- meant to be an integer -->
> >    </bar:BagOfIntegers>
> >
> > both give us
> >
> >    _:x rdf:li (rdf:li "10")
> 
> are we really prepared to go that far in
> saying that rdf:li rdf:type rdfs:Datatype ?
> I would say no, that's not the case

Well. That's my point. Your interpretation seems to impose
some closure rule whereby in the absence of an explicit
datatype, the property is used as the datatype, and hence
any property may be a datatype.

And since membership properties which assert no actual
datatype on their objects, such as rdf:li, would 
introduce ambiguity, I don't see that your mechanism
would work.

Is it really that much different to just map

   <rdf:Description rdf:about="#foo">
      <bar>10</bar>
   </rdf:Description>

   <foo:BagOfStrings rdf:about="#str">
      <rdf:li>10</rdf:li> <!-- meant to be a string -->
   </foo:BagOfStrings>

   <bar:BagOfIntegers rdf:about="#int">
     <rdf:li>10</rdf:li> <!-- meant to be an integer -->
   </bar:BagOfIntegers>

to

   <#foo> <#bar> (_:a "10")
   <#str> rdf:li (_:b "10")
   <#int> rdf:li (_:c "10")

where either

1. The interpretation of each literal is left up to the application.

or

2. There is additional knowledge in the graph that clarifies the
   interpretation of those literals. 

E.g.

{ 
  ?g rdf:type rdf:Bag . 
  ?b rdf:li (?d ?l) . 
  ?l rdf:type rdf:Literal .
  ?b ex:collectionType xsd:integer . 
}
log:implies
{ 
  ?d ex:equalTo xsd:integer .
}

etc.


Patrick
Received on Friday, 27 September 2002 09:45:14 EDT

This archive was generated by hypermail pre-2.1.9 : Wednesday, 3 September 2003 09:51:04 EDT