A Tour of the Simpletons

Simpletons are the basic algorithmic building blocks of applications in KnownSpace. In order to give you a better feel for how Simpletons typically work and what they're capable of, this page offers a catalog of most of the Simpletons in the current source distribution.

You may find it helpful to browse the Simpleton package source or look at the Simpleton Javadoc.

  1. KernelGUISimpleton
  2. ThreadMonitorSimpleton
  3. BasicEmailReplySimpleton
  4. BasicEmailSearchViewerSimpleton
  5. BasicEmailViewerSimpleton
  6. BrowserLauncherSimpleton
  7. DocumentTermMatrixBuilderSimpleton
  8. EmailBundleSimpleton
  9. EmailCompositionInitiatorSimpleton
  10. EmailConfiguratorSimpleton
  11. EmailDisplaySimpleton
  12. EmailGuiCollectorSimpleton
  13. EmailMetadataSearchSimpleton
  14. EmailParametersRequestHandlerSimpleton
  15. EmailRetrieverSimpleton
  16. EntityViewerSimpleton
  17. InterpreterSimpleton
  18. KernelShutdownSimpleton
  19. SearchCollectorSimpleton
  20. SearchHandlerSimpleton
  21. SearchResultsViewerSimpleton
  22. ShutdownSimpleton
  23. SMTPSendSimpleton
  24. TextSearchSimpleton
  25. TouchgraphEmailDisplaySimpleton
  26. EventLoggerSimpleton


The KernelGUISimpleton is part of the basic KnownSpace infrastructure. It presents a window containing a list of all Simpletons configured in the knownspace_config.xml file. The user may doubleclick on a Simpleton name to start the refereneced.


ThreadMonitorSimpleton provides a basic GUI to view the details of all threads running inside the current Java process.


BasicEmailReplySimpleton listens for EmailReplyRequestEvents, produces windows in which to edit replies, and fires SMTPSendRequestEvents to indicate these replies should be delivered via SMTP.


Listens for SearchResultsFoundEvents and displays the results of an email search in a window. SearchResultsFoundEvents are fired by the SearchHandlerSimpleton and the EmailMetadataSearchSimpleton.


BasicEmailViewerSimpleton searches the pool when it starts for email messages (that is, entities with an attribute named "content-source" and with a value of "email"). It also subscribes to AddEntityPoolEvents for new email messages. It displays a window containing a summary listing of all the email messages in the pool.


Handles LaunchBrowserWithURLEvents by launching the user's default browser with the included URL.


Constructs a DocumentTermMatrix to be used for content analysis, searching and clustering. The matrix is built document by document by listening for AddEntityPoolEvents which specify new email messages.


Starts a whole collection of Simpletons which, together, comprise the Helium application: EmailGuiCollectorSimpleton, EmailConfiguratorSimpleton, EmailParametersRequestHandlerSimpleton, EmailRetrieverSimpleton, EmailMetadataSearchSimpleton, SearchHandlerSimpleton, BasicEmailViewerSimpleton, BasicEmailSearchViewerSimpleton, EmailDisplaySimpleton, BasicEmailReplySimpleton, BrowserLauncherSimpleton, SMTPSendSimpleton, TextSearchSimpleton, EmailCompositionInitiatorSimpleton, and TouchgraphEmailDisplaySimpleton.


Provides a GUI with a button to initiate the composition of new email messages. The request is reified as an EmailReplyRequestEvent.


Provides a GUI for the user to enter email configuration parameters. Those parameters are then stored in an EmailParametersEntityValue and announced with an EmailParametersEnteredCollectorEvent.


Provides a GUI to display a single email message. Listens for EntityDisplayRequestEvents (fired by both the BasicEmailViewerSimpleton and the TouchgraphEmailDisplaySimpleton) to indicate when an email message should be displayed.


Provides a JDesktopPane into which GUI components from other Simpletons are painted. Listens for ExportGuiRequestEvent and DisposeGuiRequestEvent, fired by the Simpletons, to manage these components.


Handles EmailMetadataSearchEvents (which it implements using simple constraints) and produces results which are announced using SearchResultsFoundEvents. The BasicEmailSearchViewerSimpleton hears that event and displays the results.


Handles EmailParametersRequestEvents. It begins by searching the pool for EmailParametersEntityValues. If none are found, it fires an EmailConfigurationRequestEvent to try to get fresh information from the user.


Upon hearing an EmailParametersEnteredCollectorEvent, connects to an IMAP server and downloads email messages to the pool. Also searches the pool as it goes to avoid downloading duplicate messages.


Provides a tree control in which to view all entities in the pool and all of their attributes.


Displays a GUI in which the user can interact with a DynamicJava interpreter to modify the KnownSpace session on the fly.


Handles KernelShutdownRequestEvents by calling System.exit(0).


Starts the following four search-related Simpletons: TextSearchSimpleton, SearchHandlerSimpleton, BasicEmailSearchViewerSimpleton, and EmailMetadataSearchSimpleton.


Handles SearchRequestEvents, which signify a request for an ordinary fulltext search of the email messages in the pool.


Lists the results from a SearchResultsFoundEvent in a window.


Provides the user with a convenient way to shut down the entire KnownSpace session. Presents a big shiny red button for shutdown enjoyment.


Listens for SMTPSendRequestEvents and sends email messages out via SMTP when received.


Provides a GUI for the user to enter fulltext search queries. When executed, they launch a SearchRequestEvent.


Displays a window containing a graph of all email messages in the pool, as well as clusters of how those messages relate to one another.


Logs every event fired to the pool on stdout. Very handy for debugging.