RDF Schema Question: range of values of an rdfs:Class?

Roger L. Costello costello at mitre.org
Tue May 4 13:38:00 BST 1999

I will state my question, then give an example to demonstrate my
question, and then restate my question.

Question: if I create an RDF Schema Class, then what is its rdf:range of

Example: In section 7 of the RDF Schema spec there are a number
examples.  My question pertains to Example 1.  In Example 1 a Person
Class is defined.  A maritalStatus property is then defined and its
domain property is set to Person (i.e., the maritalStatus property can
be used with Person).  The range of maritalStatus is the Class
MaritalStatus.  Here are the definitions:

<rdfs:Class rdf:ID="Person">
  <rdfs:comment>The class of people.</rdfs:comment>

<rdf:Property ID="maritalStatus">
  <rdfs:range rdf:resource="#MaritalStatus"/>
  <rdfs:domain rdf:resource="#Person"/>

<rdfs:Class rdf:ID="MaritalStatus"/>

In the example it says that the possible values for the maritalStatus
property are: {Married, Divorced, Single, Widowed}.  Here is where I
have a question.  How did the range of possible values for maritalStatus
suddenly get restricted to these four values?  In the example it creates
four instances of the MaritalStatus Class:

<MaritalStatus rdf:ID="Married"/>
<MaritalStatus rdf:ID="Divorced"/>
<MaritalStatus rdf:ID="Single"/>
<MaritalStatus rdf:ID="Widowed"/>

Presumably, this is where the four values were gotten from.  Something
seems fishy here.  I am having difficulty relating this to my Java
background.  In Java, if I create a class MaritalStatus:

public class MaritalStatus {...}

then in another class create some instances of MaritalStatus:

MaritalStatus married = new MaritalStatus();
MaritalStatus divorced = new MaritalStatus();
MaritalStatus single = new MaritalStatus();
MaritalStatus widowed = new MaritalStatus();

and now if I create a variable maritalStatus, of type MaritalStatus:

MaritalStatus maritalStatus;

then its range of possible values is not {married, divorced, single,
widowed}.  Certainly, maritalStatus can be set equal to one of these
instance variables.  For example:

maritalStatus = married;

However, it can take on values other than these as well.  For example:

maritalStatus = new MaritalStatus();

Okay, now that I've convinced myself that I don't understand the example
in the RDF Schema spec, let me restate my question:  how did that
example come up with just those four values for the maritalStatus
property?  In general, if I create a Class, how do I specify its range
of values?  Cheers!  /Roger

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)

More information about the Xml-dev mailing list