[protege-owl] Longstanding problem with instance editor
This one's subtle but very inconvenient:
I have an individual "ind" in class A and also in class B, and an
object property A p1 R.
The range constraints defined for A p1 R help users populate ind p1
r, so that r conforms to those constraints.
Say, for example, that R is LatLongLocation - when the user populates
ind p1 r (via the I* button), r is automatically instantiated as an
individual in LatLongLocation.
That works fine, until I save the ontology and come back to edit it later.
When I reopen the ontology file, the range constraints on "r" are no
longer active - r is no longer constrained to being an individual in
That's because - and here's the subtlety - the serialization of the
ontology file did not preserve the order of instantiation, ind is in
A and in B. Reloading the ontology brings ind back, but now ind is in
B and also in A.
That reversal makes all of the difference. If I remove the assertion
that ind is in B and then reassert it, the range constraints are reactivated.
It would seem that the problem is not the order of class affiliation
- that should be irrelevant. It's that the individual editor seems
only to take its constraints from the first class encountered. It
might be fixed by pegging the instantiation ordering, but that would
probably be a hack.
Any idea whether this is something that can be repaired?