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

Re: test case A revisited

From: Patrick Stickler <patrick.stickler@nokia.com>
Date: Tue, 02 Jul 2002 10:11:17 +0300
To: ext Brian McBride <bwm@hplb.hpl.hp.com>, Jeremy Carroll <jjc@hplb.hpl.hp.com>, RDF Core <w3c-rdfcore-wg@w3.org>
Message-ID: <B9472CC5.17B70%patrick.stickler@nokia.com>

On 2002-07-01 20:37, "ext Brian McBride" <bwm@hplb.hpl.hp.com> wrote:


>> + containers cannot contain globally typed literals (i.e. the literals are
>> either self-denoting or untyped)
> 
> Hmm, the question is which.  The later seems to imply, if one puts a
> literal in a container, then one doesn't know what it denotes.

What is needed, and has been needed for a long time, is a new
range property for containers. E.g.

   rdfs:memberRange a rdf:Property ;
      rdfs:domain rdfs:Container ;
      rdfs:comment "Used to indicate the class(es) that
                    the members of an instance of the
                    container class will be members of." .

where the following closure rule apply

IF
   ?x a rdfs:Container .
   ?x a ?c .
   ?c rdfs:memberRange ?r .
   ?x rdfs:member ?m .
THEN
   ?m rdf:type ?r .


So, if we had some container type 'foo:WidgetScores':

   foo:WidgetScores rdfs:subClassOf rdf:Bag .
   foo:WidgetScores rdfs:memberRange xsd:integer .

then given an instance of foo:WidgetScores:

   _:i a foo:WidgetScores ;
      rdf:_1 "10" ;
      rdf:_2 "9288" ;
      rdf:_3 "821" ;
      rdf:_4 "4" ;

which, given the above closure rule for rdfs:memberRange
semantics, means that each of the literal node members
of the collection denote integer values.

The datatyping is not associated with the property, but
with the collection.

Of course, the above presumes (a) untidy literal semantics
and (b) literals (at least implicitly) as subjects.

I.e. it equates to the following interpretation:

   _:i a foo:WidgetScores ;
      rdf:_1 _:a"10" ;
      rdf:_2 _:b"9288" ;
      rdf:_3 _:c"821" ;
      rdf:_4 _:d"4" ;
   _:a"10" rdf:type xsd:integer .
   _:b"9288" rdf:type xsd:integer .
   _:c"821" rdf:type xsd:integer .
   _:d"4" rdf:type xsd:integer .

And of course, the memberRange need not be a datatype. It
can be any RDF class whatsoever.

And also, we need not introduce literals as subjects at
this time in order to adopt such an approach as above. The
rdf:type'ing can simply be left implicit in the interpretation.
But, if/when literals can be subjects, it all fits right
in perfectly with untidy literals and rdfs:range based datatyping.
 

Patrick

--
               
Patrick Stickler              Phone: +358 50 483 9453
Senior Research Scientist     Fax:   +358 7180 35409
Nokia Research Center         Email: patrick.stickler@nokia.com
Received on Tuesday, 2 July 2002 03:11:17 EDT

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