Semantic DB GUI

We have now added a graphical user interface to the project that significantly improves the usability of the SDB. It should be noted this is a strict superset of the command line version, since all operators in the command line version are still available in this version. One advantage of the new interface is that many things are now just a click away. For example, if you click on a ket, a window will pop up with information about that ket. If you click on a literal operator, then a window will pop up with its information. If you hold down shift while you click on objects, you will get a special window displaying information about all those objects at once. And if you click on a operator that is in the operator library, the appropriate usage frame will be displayed.


New, creates a new file.
Open, opens an existing file.
Save, saves current panel to disk.
Inserts the selected object into the current panel.
Insert Window
Opens a small window of the selected object type, and allows you to insert elements into the current panel by clicking on those objects. The intention was that this would allow quick insertion of commonly used objects.
Ket Map, shows the back end mapping of strings to unique integers. It has no practical value.
Command, switches to the command panel interface.
Edit, switches to the edit panel interface.
Active Table, opens a window that helps you build a table from common components.
Opens the relevant example on the semantic-db website.
Opens the usage frame for the selected object.
Open web usage
Open website
About, opens the app about box.


Here is the command panel, as seen when you first open the app (and filled with some sample knowledge):

SDB command panel

Here is the command panel after pressing Run All (noting that blue objects are clickable or shift-clickable):

SDB command panel

Here are all the insert windows:

SDB insert windows

Here is the edit panel (yes, deliberately minimalist in contrast to the command panel):

SDB edit panel

Here is the knowledge frame (invoked by holding down shift while clicking on objects and then releasing the shift key):

SDB knowledge frame

Here is the general operators window after loading and running the family tree example, followed by the family-relations example, invoked by clicking the "General operators" checkbox in the knowledge frame:

SDB general operators frame

Here is the usage frame (invoked by clicking on an operator, or from the Usage menu):

SDB usage frame

Here is the active table dialog (found in the Visualize menu):

SDB active table

Here is the resulting table, after pressing Run:

SDB table

Here is the active table dialog after loading the temperature conversion example:

SDB active temperature table

Here is the resulting table, after pressing Run:

SDB temperature table

Here is a sketch of an if-then machine, our abstract model of a neuron:

SDB if-then machine sketch

Here is the if-then machine dialog (found in the Insert->Misc->if-then machine menu):

SDB if-then machine

Here is the if-then operator dialog (found in the Insert->Misc->if-then operator menu):

SDB if-then operator

Next up, we have the command panel and the edit panel.