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

[Roger L. Costello]
> 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
>

Exactly what is it you want to achieve?  I do not think it is clear yet.  Do
you mean that a Document that is tagged "secret" is not allowed to have any
character content?  Any element content?  Do you mean that the element
"secret" is supposed to empty, which seems to be what you have illustrated?
Or something else?

If you mean that a "secret" document is supposed to be empty, I don't get
it.  I read my share of Secret documents when I was at MITRE, and none of
them were empty.  Or do you mean that when retrieved by a person without the
right credentials, the document as retrieved should not include sections
contained in a "secret" element?  This would make sense to me.

Each one of these possibilities is different and none of them seem to be
particularly well-suited to description with RDF.  At least, you would have
to invent the vocabulary to use. For example, you could probably have the
concept of an EmptyElement, and then assert that for the class of secret
documents, the value of all "secret" elements have to be the xml literal
"<secret/>".  I am not sure that even this quite captures what you want,
which I think is actually fairly complex.

Probably you would do better with a boolean property "elideSecretContent",
and assert that members of the class of secret documents have a true value
for this property.

In any event, you need some vocabulary for thses specialized assertions.

Cheers,

Tom P

Received on Thursday, 15 May 2003 00:53:53 UTC