How to put "universal" restrictions to members of two classes?

I'm building an ontology for Audio Visual devices, and wondering how to put
"universal" restrictions to members of two classes.
(I'm not sure if this wording is appropriate though...)

What I want to do is to make every pair of members of two classes to have
designated relations.

For example, suppose we have my:BDRecorder Class representing all
instance of Blu-ray recorders
and my:BD-R Class representing all instance of BD-R Discs.

Now I want to force force every instance of my:BDRecorder able to record
to any instance of my:BD-R.

In n3, I think I can write:

{ ?rec a my:BDRecorder. ?disc a my:BD-R } => { ?rec my:recordableTo ?disc }.

but how can I do in OWL 2 (if possible)?

If possible, I'd like to do so by stating some "Class level" relation
between the two Classes,
and make a statement entailing the corresponding "Instance level"
relation between the instances of the Classes.

I first tried to do so by introducing my:classRecordableToInstanceOf and
my:hasInstance (as owl:inverseOf rdf:type) and then
stating:

my:BDRecorder my:classRecordableToInstanceOf my:BD-R.

my:recordableTo owl:propertyChainAxiom
( rdf:type my:classRecordableToInstanceOf my:hasInstance).

hoping to entail, if my:MyRecorder a my:BDRecorder and my:MyDisc a my:BD-R,

my:MyRecorder my:recordableTo my:MyDisc.

but failed.

I think the reason was owl:propertyChainAxiom can be used only to list of
owl:ObjectProperty's which is not the case with
my:classRecordableToInstanceOf
nor rdf:type nor my:hasInstance.

Could someone help?

Thanks in advance,

Yoshio Fukushige,
Panasonic Corporation.

Received on Tuesday, 31 August 2010 07:38:45 UTC