Negation of object properties (class NotEdgyShape should be equal to RoundShape)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Negation of object properties (class NotEdgyShape should be equal to RoundShape)

Peter Teloff
Hello,

Assume I have a simple class Shape which is equivalent to {Edgy, Round},
where Edgy and Round are defined as different individuals.

RoundShape is defined as equivalent to "hasShape value Round".
NotEdgyShape is defined as equivalent to "not (hasShape value Edgy)"

hasShape is an object property with a range defined as "hasShape exactly
1 Shape". It is also defined as "functional".

The inferred class hierarchy is close, but not exactly what I want:

NotEdgyShape is a superclass of RoundShape, while I would like them to
be equivalent.

What else do I need to define to enforce this in the ontology?

A related question is, why are these two classes not equivalent?

"not {Edgy}"
and
"not (hasShape value Edgy}


I guess it has something to do with the open world assumption, but I
can't figure out how to add the necessary constraints.

I basically want to defined an enumeration {Edgy, Round} which is closed
for changes, so that I can do normal set operation and classes that
represent certain subsets.

Best regards,
Peter

P.S.: The ontology is in the attachment.

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

NotEdgyExample.owl (5K) Download Attachment