Information
|
Licensing
|
Technical Specs
|
Support
|
|
Limitations and Future Work
Limitations and Future Work
Current Limitations and Bugs
Some of the problems described below are fundamental limitations of
the Generic Frame Protocol or the various underlying frame systems,
and cannot be fixed until those problems are addressed. Others may be
patched shortly or fixed in future versions of the GKB-Editor.
Please report bugs, preferably with enough context for us to reproduce
the problem, to paley@ai.sri.com.
- There is minimal constraint checking. If the underlying FRS
does constraint checking, then the GKB-Editor may allow an
operation that the FRS forbids, which can cause a number of
problems, depending on how the violation is handled by the FRS,
e.g. the FRS may break to the lisp debugger, frames may be
marked incoherent, or the GKB-Editor may change its display to reflect
changes that never occurred. Even if the violation is handled
correctly, there may be little or no feedback to the user as to
why the operation failed. If the FRS does not do constraint
checking, then operations may be allowed that nevertheless
violate KB constraints. In order to address this limitation,
we would need either a) better communication between the FRS
and the GKB-Editor (through GFP) about which operations are
allowed, and whether or not an operation has succeeded, or b) a
mechanism by which constraints could be expressed using
GFP and taken advantage of by the GKB-Editor in a uniform
fashion.
- There is no way to enter such things as methods for computed
slots, complicated constraints that cannot be expressed using
simple facet values, or enumerated sets (other than with the
:one-of value-type). There also should be a more intuitive
graphical way to enter :and, :or and :one-of value-types.
- Most of the editing commands in the relationships editor will
not work (and may cause problems) if they are attempted while
browsing slot-types rather than slot-values.
- Facet and Annotation commands may break if these operations are
not supported by the FRS.
- There is no existing way to edit the list of KBs in the Knowledge Base
Open menu, for example, removing a KB that is no longer in use,
or changing the KB package.
- The Kill Ring does not work in all situations. For example, it
cannot be used in motif text gadgets. It also cannot handle
strings with embedded newlines (currently, we replace such
newlines with spaces).
- Many of the gadget-based dialogs will break or look awkward under Lucid CLIM
1.1 (which does not implement gadgets).
- Under CLIM 1.1, we sometimes get some residual display ghosts
that we think are CLIM
bugs. Most of these go away if you bury the window and then
bring it to the top again.
- Renaming an instance frame in Loom can cause problems (since that
operation is not supported by Loom) for frames that were linked
to the frame under its original name.
- Completion doesn't work properly in all cases. This is a bug.
- When working with Loom, the relationships viewer will not
expand slots (relations) with a domain of Thing (or no
specified domain).
- Various operations in the Frame Editor and the Relationships
Viewer may break or produce incorrect results with FRSs that do
not implement slotunits (such as Sipe).
Future Plans
Your comments and suggestions can have an impact on which changes we
make, and how we prioritize them. We will probably not implement all
of these items. Send suggestions to paley@ai.sri.com.
- Use multiple coordinated processes so that the user can
interact with multiple viewers simultaneously. Allow objects
selected using one viewer to be used as input for a request in
another viewer.
- Improve error-checking so that the graph doesn't get out of synch
with the KB when editing operations fail.
- In the relationships viewer, give the option of distinguishing
slots by using different color edges, with a key, instead of
labeling every edge.
- Add a spreadsheet-type viewer to edit selected slots in multiple frames.
- Make better use of color (suggestions?).
- Add some additional preferences (suggestions?), and revamp the
remaining dialogs left over from the previous release.
- Implement an Undo command
- Birds-eye view
- Add an interactive query generator
- Enhanced constraint checking
- Improve GFP to support more systems (e.g. CLOS), more operations.
- Port the GKB-Editor to the WWW
- Improve the KB Analysis tools
Remember that the current release of the GKB-Editor is a beta
release! Although most operations should work correctly when you do
the right thing, it is not hard to get into a broken or wedged state.
For example, if you are using Loom as your underlying FRS, and you
perform an operation that violates a Loom constraint or causes a Loom
or GFP error, there may not yet be a graceful way to get out of the
resultant inconsistent state, especially if the GKB-Editor thinks a
command has succeeded when it in fact failed, and it tries to update
the display accordingly. If you find yourself thrown into the
debugger in such a situation, first try to return to the GKB-Editor
command or top level, and fix the problem using GKB-Editor commands.
If you have some in-depth knowledge of the underlying FRS, you may
also try to fix the problem while in the debugger. (Sometimes after
returning from the debugger, the interface does not respond to pointer
clicks. Type Control-z and try again.) If the problem is not that
the KB itself is inconsistent, but that the current graph's view of
the KB doesn't match the state of the KB, try beginning a new browse:
this will eliminate the current graph's view of the KB, and
reconstruct a new one. If these attempts fail, probably the best
thing you can do is to revert to the saved version of the knowledge.
For this reason, it is important to save your work
frequently! Finally, if this fails to correct the problem,
you may need to quit and restart the application and/or the Lisp
process.
Q.
Why are all the commands in the command menus disabled?
A.
If there is no current KB (i.e. if you just started running and have
not opened a KB yet, or you have recently closed or destroyed the
current KB), the frame-editing and viewing commands will all be
disabled. Commands that should still be available to you are New, and Open in the Knowledge Base menu, and
Quit and Kill in the Application menu. Once
you open a KB, the other commands should become active. If
you have just created a new KB, there will be no frames to view or
manipulate. In this case, the only additional command to be enabled
is Create Class from the Frame menu. Once
you have created a single frame, the other commands should become
active also.
Q.
I changed a slot value while in the frame-editing viewer, but the
new value isn't showing up in the relationships graph. Why is that?
A.
You may be having package problems. If your current package is
different from the package your frames are in, then the new value you
typed may not be interpreted as corresponding to an actual frame, and
therefore will not show up in the relationships viewer (only values
that are frames show up in the relationships viewer). To ensure that
you get the correct frame in this case, when you enter the new value,
preface it with the appropriate package name
(e.g. sipe-cl::army rather than just army).
Q. I'm using Loom. I created a new slot while in
the frame-editing viewer, added a value, and exited the frame-editing
viewer. I have just started editing the same frame again, and notice
that the value I added is missing. What happened?
A. When you create a new slot, Loom doesn't know what
the slot range is supposed to be, so Loom assumes that the value you
added is supposed to be a frame, unless the value is obviously
something else. You can tell that Loom is expecting a frame because
when you enter a value that is not a frame, you will be asked whether
or not you wish to create the corresponding frame. If no frame
corresponding to the value you specified exists (or gets created),
then the value is rejected. The frame editor doesn't know the value
was rejected (our bug), so it goes ahead and displays the value.
However, next time you try to edit the frame, the value will be
missing. Possible ways to prevent this situation from occurring are:
- If you mean the value to be the name of the frame, make sure
the frame already exists or gets created.
- If you mean the value to be a symbol or string, you must quote
it (for a symbol) or surround it with double quotes (for a
string), OR
- Edit the slot specification, giving a value for the facet
:SLOT-VALUE-TYPE of either SYMBOL or
STRING . If you do this, you don't need to use
quotes when entering new values: the values will automatically
be interpreted correctly.
You can tell if you need to quote your values or not by looking at the
prompt in the pop-up window. If it says to enter a string or symbol,
then you know that your value will be interpreted as the appropriate
type, even without the quotes. If it says to enter a form, then Loom
doesn't know what type to expect, so you need to use the quotes.
Q. I'm using Loom, and when I try browsing (or
editing) the relationships graph, I am told that there are no slots to
follow. I know my KB has relations in it!
A. The relationships browser works by looking at the
roles of a concept or instance. Normally, when you create a Loom
relation using GFP, GFP alters the domain concept to take that
relation as a role. If the domain is Thing, however, then the domain
concept cannot be altered, so no role is created, and the relationship
cannot be detected. If your KB was created other than through GFP,
you may run into a similar problem, even if your relations have
domains defined other than Thing. This is a GFP problem for which we
currently have no solution (the workaround would be to examine every
relation in the KB, which would be too time-consuming). The only
thing you can do is to use the Frame Editor to change the domain of
your relations.
Links
Return to the GKB-Editor Overview page.
Return to the beginning of the GKB User Manual.
Suzanne M. Paley <paley@ai.sri.com>
Last modified: Wed May 29 15:53:42 1996
|