Re: Difference between cardinality=1 and FunctionalProperty?

From: "Roger L. Costello" <costello@mitre.org>
Subject: Difference between cardinality=1 and FunctionalProperty?
Date: Wed, 26 Mar 2003 06:39:07 -0500

> 
> Hi Folks,
> 
> Aren't the below two forms essentially stating the same thing:
> 
>      <owl:Class rdf:ID="Gun">
>           <rdfs:subClassOf>
>                 <owl:Restriction>
>                         <owl:onProperty rdf:resource="#serial"/>
>                         <owl:cardinality>1</owl:cardinality>
>                 </owl:Restriction>
>           </rdfs:subClassOf>
>      </owl:Class>
> 
>      <owl:ObjectProperty rdf:ID="serial">
>            <rdfs:domain rdf:resource="#Gun"/>
>            <rdfs:range rdf:resource="&rdfs;#Literal"/>
>      </owl:ObjectProperty>
> 
> VERSUS
> 
>      <owl:Class rdf:ID="Gun"/>
> 
>      <owl:FunctionalProperty rdf:ID="serial">
>           <rdfs:domain rdf:resource="Gun" />
>           <rdfs:range  rdf:resource="&rdfs;#Literal"/>
>      </owl:FunctionalProperty>
> 
> Both forms state that an instance of Gun must have exactly one value for
> the serial property; e.g.,
> 
>      <Gun rdf:ID="SmithWesson">
>           <serial>ABCD</serial>
>      </Gun>
> 
> Correct?  /Roger
> 

Not correct.  Functional properties are only partial functional.  Making
functional properties be total functional would cause extreme problems.

However, replacing cardinality with maxCardinality above would do the
trick.

Peter F. Patel-Schneider
Bell Labs Research
Lucent Technologies

PS: It would be better to make the range of serial be xsd:string.

Received on Wednesday, 26 March 2003 06:52:16 UTC