Re: using "undeclared" properties and classes

From: Ian Horrocks (
Date: 12/26/00

I think this is covered by the "ID" versus "about" answer - the names
are just URIs and although it is good style to declare them it is not
mandatory. It is certainly legal from a daml+oil perspective to use
undeclared class and property names.


On December 25, Frank van Harmelen writes:
> In the ammended version of our introductory example (at there are a few places where I refer to a property without having declared it as a property first. 
> For example:
> <rdfs:Class rdf:about="#Person">
>   <restrictedBy>
>     <Restriction>
>       <onProperty rdf:resource="#spouse"/>
>       <maxcardinalityQ>1</maxcardinalityQ>
>       <hasClassQ rdf:resource="#Person"/>
>     </Restriction>
>   </restrictedBy>
> </rdfs:Class>
> places a qualified cardinality restriction on the property spouse applied to persons, while there has never been a statement declaring spouse to be a property, ie nothing like
>   <rdf:Property rdf:ID="spouse/>
> appears anywhere (earlier or later) in the file. 
> QUESTION: is this legal? In DAML? In RDF? in RDF Schema? 
> The same happens with a class that is mentioned but never defined:
> <Disjoint parseType="daml:collection">
>   <rdfs:Class rdf:about="#Car">
>   <rdfs:Class rdf:about="#Person">
>   <rdfs:Class rdf:about="#Plant">
> </Disjoint>
> appears without there ever being anywere anything like:
> <rdfs:Class rdf:ID="Plant"/>
> Frank.
>    ----

This archive was generated by hypermail 2.1.4 : 04/02/02 EST