- From: Patrick Stickler <patrick.stickler@nokia.com>
- Date: Tue, 02 Jul 2002 10:57:16 +0300
- To: Patrick Stickler <patrick.stickler@nokia.com>, ext Brian McBride <bwm@hplb.hpl.hp.com>, Jeremy Carroll <jjc@hplb.hpl.hp.com>, RDF Core <w3c-rdfcore-wg@w3.org>
On 2002-07-02 10:11, "ext Patrick Stickler" <patrick.stickler@nokia.com> wrote: > > 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 ; Hmmm.... actually, that's not quite right. The domain really is a meta-class of which rdfs:Container is a member. Anyway, I'm sure folks get the gist... Patrick > 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 > > > -- 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:57:15 UTC