Re: Define a property to have an EMPTY range ... use owl:Nothing?

Roger L. Costello wrote:

> Oscar Corcho sent me an interesting idea - use owl:Nothing to represent
> EMPTY, e.g., 
> 
>     <rdf:Property rdf:ID="secret">
>         <rdfs:domain rdf:resource="#Document"/>
>         <rdfs:range rdf:resource="&owl;Nothing"/>
>     </rdf:Property>
> 
> A very interesting idea!  Are there any drawbacks to this?  Does it
> achieve the desired result of requiring secret to have an EMPTY range,
> e.g.,
> 
>     <Document>
>         <secret/>
>     </Document

This would not have the desired effect, though the thought is good. 
Your ontology now indeed does specify that there can be no legal 
values of a secret property. Sofar, so good.

However, it is an intrinsic part of the RDF data model that all 
statements have subject, predicate *and* object. You simply cannot 
have a property without a specified value. Thus, what your ontology 
definition leads to is that you can not use the 'secret' property at 
all, on any Document.

Having looked at your initial post, I would suggest a simple 
modeling along these lines:

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

   <DocumentTag rdf:ID="secret"/>

   <rdf:Property rdf:ID="tag">
       <rdfs:domain rdf:resource="#Document"/>
       <rdfs:range rdf:resource="#DocumentTag"/>
   </rdf:Property>

   <Document>
     <tag rdf:resource="#secret"/>
   </Document>

(Maybe I'm being far too practical here, but I'm just sharing what
  came to mind :)).

Jeen
-- 
jeen.broekstra@aidministrator.nl
aidministrator nederland bv - http://www.aidministrator.nl/
julianaplein 14b, 3817 cs amersfoort, the netherlands
tel. +31-(0)33-4659987, fax. +31-(0)33-4659987

Received on Wednesday, 14 May 2003 10:47:07 UTC