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

KernelGUISimpleton

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

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

BasicEmailReplySimpleton

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

BasicEmailSearchViewerSimpleton

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

BasicEmailViewerSimpleton

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.

BrowserLauncherSimpleton

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

DocumentTermMatrixBuilderSimpleton

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.

EmailBundleSimpleton

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.

EmailCompositionInitiatorSimpleton

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

EmailConfiguratorSimpleton

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

EmailDisplaySimpleton

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.

EmailGuiCollectorSimpleton

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.

EmailMetadataSearchSimpleton

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.

EmailParametersRequestHandlerSimpleton

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.

EmailRetrieverSimpleton

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.

EntityViewerSimpleton

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

InterpreterSimpleton

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

KernelShutdownSimpleton

Handles KernelShutdownRequestEvents by calling System.exit(0).

SearchCollectorSimpleton

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

SearchHandlerSimpleton

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

SearchResultsViewerSimpleton

Lists the results from a SearchResultsFoundEvent in a window.

ShutdownSimpleton

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

SMTPSendSimpleton

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

TextSearchSimpleton

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

TouchgraphEmailDisplaySimpleton

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.

EventLoggerSimpleton

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