On Feb 4, 2011, at 7:28 AM, Hayden Wimmer wrote:

> to all:

>

> say i have 2 classes A and B

> i have a property X

>

> i want to express A X B

>

> so, ClassA doesSomePropertyWith ClassB

It isn't completely clear what you mean with this at the class level. I will assume that the next sentence is a clarification.

> so, all instances of classA doesSomePropertyWith all instances of ClassB

So with A, B and X is it correct that what you want to say, in logic, would be that you want the cross product of the individuals in A and B related by X.

Forall i of type A

Forall j of type B

i X j

There isn't any standard description logic form that says this. But by coincidence I just recently recommended a paper that describes this:

http://knoesis.wright.edu/faculty/pascal/resources/publications/dl08-mice.pdfIt would be possible to write this sort of rule in a first order logic reasoner, but any rule that involves a cross product has the potential to be rather inefficient.

> i am fine with expressing this as a SQRL rule...i cannot figure out how to do this in protoge/OWL or in SWRL.

As a SWRL rule, it should be fairly straightforward to write:

A(?x) ^ B(?y) -> X(?x, ?y)

_______________________________________________

protege-owl mailing list

[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owlInstructions for unsubscribing:

http://protege.stanford.edu/doc/faq.html#01a.03