Re: Enumerations

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