Re: Domain/Range Woes


A few remarks in addition to Peter's.

If you wish to stay just with RDFS:

It might be worth thinking about what the domain/range statements might be 
used for.  Possible answers include:

   - validating data
   - inferring the types of things from their properties
   - adaptive user interfaces (only showing options that are appropriate to 

As you point out, sometimes one can have properties that are pretty general 
in nature.  Lets take name as an example.  One option is, for each such 
property, is to define a class for its domain, say Nameable.  Then you, or 
anyone else, can define, each class that can take a name to be a subclass 
of Nameable.  This approach can support data validation and adaptive user 
interfaces, but its not much good for inferring types of things from their 

An alternative which is better for type inference, is as you suggest, 
define different properties for each class, such as directorsName, songName 
etc.  You can define an appropriate domain for each such property, which 
would allow an RDFS reasoner to make more meaningful type deductions about 
resources with those properties. It may also be useful to make each such 
property a subproperty a subproperty of a more general property, say name, 
so one can, for example query for all names.


These might defeat your desire for simplicity.


At 17:42 30/01/2003 -0500, Stephen K. Rhoads wrote:

>So, given the new "conjunctive" rule governing domain and range constraints,
>I'm running into problems in the production of my very first
>(read newbie) RDF schema.  In particular, I find that I have many predicates
>which apply equally to seemingly disparate types of classes.
>Here are some examples:
>-- Predicate "name" could be applied to both "Person" and "ContentProvider"
>-- Predicate "directedBy" could be applied to the classes "Movie" and
>"TelevisionProgram", but not to "Song", even though all are subclasses of
>I do have an appreciation for the fact that the new rule forces you to think
>harder about classification of objects, and that in the above
>examples there is likely some (obscure) superclass to which the predicates
>can be safely applied (eg "ObjectsWithNames" ... "DirectedContent").  But in
>the interest of encouraging adoption for this nascent protocol, I want to
>keep it very simple.
>What are my options (short of copping out and using, for example,
>"movieDirectedBy" / "programDirectedBy" or "personName" / "providerName")?
>--- Stephen

Received on Friday, 31 January 2003 00:55:56 UTC