- From: Mor Peleg <peleg@SMI.Stanford.EDU>
- Date: Wed, 27 Sep 2000 14:42:26 -0700
- To: Tom Van Eetvelde <tom.van_eetvelde@alcatel.be>
- Cc: rdf interest <www-rdf-interest@w3.org>, Erik De Blieck <Erik.De_Blieck@alcatel.be>
Hi Tom, Thank you very much for your answer. The example really helped me to understand it. Regards, Mor At 12:47 PM 09/27/2000 +0200, Tom Van Eetvelde wrote: >Hello Mor, > >You can use classes or strings (even mix them in one set!), but I think >you prefer the following >implementation example: > ><!---------------------------> ><!-- RDF M&S extension --> ><!---------------------------> > ><rdfs:ConstraintProperty rdf:ID="literalRange"> > <rdfs:Label> literalRange </rdfs:Label> > <rdfs:comment> > This property is introduced to allow the implementation of > enumerations, which can > hardly be seen as classes (the setelements do not have to obey a certain > classproperty). When property A has literalRange = bag B, then when A > gets a value, > typechecking software should check if this value belongs to the bag > B. If so, then > types match, otherwise return an RDF validation error. > </rdfs:comment> > <rdfs:domain rdf:resource="rdfs:#Property"/> > <rdfs:range rdf:resource="rdfs:#Bag"/> ></rdfs:ConstraintProperty> > ><!--------------> ><!-- Example --> ><!--------------> > ><!-- my application schema --> > ><rdf:Bag rdf:ID="DaySet"> > <rdf:li> Monday </rdf:li> > <rdf:li> Tuesday </rdf:li> > <rdf:li> Wednesday </rdf:li> > <rdf:li> Thursday</rdf:li> > <rdf:li> Friday </rdf:li> ></rdf:Bag> > ><rdfs:Class rdf:ID="Person"/> > ><rdfs:Property rdf:ID="availableOn"> > <rdfs:domain rdf:resource="#Person"> > <schema_extension:literalRange rdf:resource="#DaySet"> ></rdfs:Property> > ><!-- my schema instance --> > ><s:Person rdf:ID="Mor"> > <s:availableOn> Monday </s:availableOn> ></s:Person> > >When tyechecking is needed, the definition of "availableOn" tells us that >values of this property >are restricted to the literals in the DaySet bag. The value 'Monday' is in >this set, so typechecking >returns OK. This means adding some code to your validation software to >support literalRanges (in the >same way that it supports ranges now). As you can see, it doesn't matter >what you put in the bag >(literals or classes). Typechecking just comes down to determining if the >value belongs to the set. > >Greetings, > >Tom. > >Mor Peleg wrote: > > > Hi tom, > > > > Thank you very much for your answer. > > > > I am not clear about one thing: in the Bag, are the different enumerations > > Classes or String Literals? > > > > Thanks very much, > > > > Mor > > ******************************************** Mor Peleg, Ph.D. Stanford Medical Informatics Medical School Office Building x-208, 251 Campus Drive Stanford, CA 94305-5479 Phone: (650) 723-7711 Fax: (650) 725-7944 E-Mail: peleg@smi.stanford.edu URL: http://smi-web.stanford.edu/people/peleg/
Received on Wednesday, 27 September 2000 17:43:20 UTC