Search Mailing List Archives
[protege-discussion] Problem with removal of an included project
Richard Dunlap
rdunlap at asinc.com
Fri Feb 2 10:34:14 PST 2007
We've found a problem that occurs when removing an included project from
another project where the included project provided base classes from
which the master classes build derived classes. I'll say up front that
I'm in general happy with the way Protege handles this situation...
except in this case. :-)
Open up a new project. Build a subclass of :STANDARD-SLOT called
:CUSTOM-SLOT, and add to :CUSTOM-SLOT a new slot called
:SLOT-CUSTOM-VALUE. Give it single cardinality and make it of type String.
Build a new subclass of :THING called Class. Add a slot to it called
classSlot, move to the Slots Tab, and change the slot metaclass to
:CUSTOM-SLOT. (In the actual case from which this bug report is derived,
this happens without the Slots Tab via a custom widget on a
:DIRECT-TEMPLATE-SLOTS subslot.) Go back to Class, open up the top-level
slot view of the slot, and enter a value of "baseValue" for
:SLOT-CUSTOM-VALUE.
Save this project as baseProject.
Open up a new project. Save it as derivedProject, and then add
baseProject as an included project. Class will now be available; add a
subclass called DerivedClass. If at this point, baseProject is removed
from the list of included projects, Protege will reload derivedProject
with readily understandable errors related to the non-existence of Class
and place both Class and DerivedClass under an :UNDEFINED superclass.
Hard to see a better solution.
Here's the problem. Open up the "at class" view of classSlot in
DerivedClass, and change the value of :SLOT-CUSTOM-VALUE to
"derivedValue". Save the project and remove baseProject. This time,
the errors are parse errors from the .pont file; even more disturbingly,
while DerivedClass is loaded, it does not show up on the Classes Tab (it
and Class both show up as instances of :STANDARD-CLASS on the Instances
Tab.) What I'd expect is the same resolution as in the previous
paragraph, except that the slot override of the custom value in the
custom slot would be irretrievably lost (unfortunate, but forced).
As one would expect, the situation does not change if the :CUSTOM-SLOT
definition is placed in its own project included by both baseProject and
derivedProject.
Thanks for any help possible in advance!
-- Richard Dunlap
Applied Systems Intelligence, Inc.
More information about the protege-discussion
mailing list