Re: Need help developing Camera model

> Hi Folks,
> 
> Thanks a lot for all your suggestions on modeling camera data!  I
> haven't yet had the chance to digest all your suggestions.  I will do
> that tomorrow.
> 
> In the meantime, I have a question:
> 
> Suppose the I were to model the Camera class like this:
> 
> Camera = unionOf(Body, Lens)
> 
> Read this as: "The Camera class is the union of the Body class and the
> Lens class."
> 
Yes, you can read it as such. But, the essential meaning is as follows:
A Camera is a Body, or a Lens.

I'm afraid it's not what you wanted.

> Suppose that Body has this property: shutter-speed.
> Suppose that Lens has these properties: compatibleWith, f-stop, and
> focal-length.
> 
> Question: does Camera inherit all the properties from Body and Lens?  

Strictly speaking, there is no inheritance issue. It's not the same as in OOPLs.

If class X is an rdfs:subClassOf Y, and a property p is applicable to Y,  then property p is also applicable to Y. 

Yes, you can view this as "inheritance", or IMO "quasi inheritance"

In your example, there are no rdfs:subClassOf  relationships between these classes. So, there is no "quasi inheritance".

> If so, then I see that the above way of modeling the Camera data has a
> major flaw: it allows compatibleWith to be a property of Camera, i.e., 
> 
> <Camera rdf:ID="Olympus-OM-10">
>    <compatibleWith rdf:resource="..."/>
>    <shutter-speed>1/2000 - 10 sec.</shutter-speed>
>    <f-stop>4.0-4.5</f-stop>
>    <focal-length>75-300mm zoom</focal-length>
> </Camera>
> 
> I can probably accept shutter-speed, f-stop, and focal-length as
> properties of Camera.  But compatibleWith is clearly not reasonable.
> 
> Okay, I have convinced myself that this is NOT the way to model the
> Camera data.  Comments?  

You can specify the rdfs:domain and/or rdfs:range of ompatibleWith to meet your requirment.


> /Roger
> 
[snip]

BTW, Your example shows that current OWL lacks the power to directly support the following case:

Supposing an instance of Class X consists of an instance of Y and an instance of Z.
Some peoperties on Y and/or Z  can be promoted as properties of X (similar to property promotion in OOP)

Logically, p(x) equals (p o q)(x) for x belonging to X. 

Isn't it?

Maybe we could do something to add some mechanism into the OWL DL without .mangling the elegance of  OWL DL.


Yuzhong Qu

Received on Tuesday, 15 April 2003 22:13:26 UTC