See Jack Paulus' idea. With that and the discussion which followed in mind, I (AndyStreich) created the little desktop prototype described here. In this initial release it doesn't realize Jack's vision but takes a step in that direction. The license is GPL3.
Imagine a fleshed out GSmEditor not just as a desktop application (which it is in this version) but also as a gadget (ala Google Gadgets) that could be included on a web page, a plugin for OpenOffice, an add-on for Firefox, .... For development, starting with the desktop application strikes me as the most efficient way to explore UI and other design issues. [And, as a gentle reminder to the Compendium folks, we need Compendium to be open sourced so GPL code like this can be integrated into it.]
Download and unzip this file (version 0.2, see attached files at bottom of page for details) which contains source and binary for the program (and the NetBeans project files). Typically unpacking of the zip file will produce a GSmEditor directory under which you'll find a dist directory which in turn contains GSmEditor.jar.
On Windows you may be able start the program by double-clicking on GSmEditor.jar in the File
Manager.
On any system with Java6 installed you can run from the command line with something like
java -jar "/your/path/to/GSmEditor/dist/GSmEditor.jar"
On Windows it would be
java -jar "\your\path\to\GSmEditor\dist\GSmEditor.jar"
Also changing to the dist directory and executing
java -jar GSmEditor.jar
should launch the program.
Only the contents of the dist directory and its lib subdirectory are needed to run the program. You can safely throw away the rest of the downloaded files.
Note: the program will create a directory on your machine (~/.GSmEditor on GNU/Linux, something like .../Glosem/GSmEditor in the application data area under Windows) to store session data, information used to save and restore application state between runs.
GSm Editor couples a source text with a set of nodes and connections. That is, you provide source material, then create nodes and connections related to that source (in the spirit of Jack Paulus' idea). Currently the only export format is HTML but imagine Compendium XML or the ability to upload to Cohere or Debategraph in the future.
Here are two test files that you can use to explore the program:
1. gsmDiscussionExample.xml -- with apologies to Bob Parks whose text I used as an example.
2. exampleProject.xml -- a "lorem ipsum" example to show the bare bones.
3. connectionExample.xml -- another "lorem ipsum" example to show display of connections in the source text pane.
Download, then use "Project > Open..." to load them into GSm Editor. After exploring, use "Project > Export > as HTML..." to view the results in your browser.
The source text is shown in the left pane, the node map in the right. Create nodes by selecting text in the source (left) pane and right-clicking to popup a menu. Each new node includes a quote from the source text. Nodes displayed in the map (right) pane are ordered by where their quoted text appears in the source. See the screenshot on the right.
One of the features of GSm Editor is the ability to quickly create nodes from a source. After doing so you can create connections between them. Use the right-click popup menu to edit nodes and add connections.
Left-clicking on a node in the map pane or on quoted text in the source pane will make that node the "current" node; the color of the text in the source pane and the background in the map pane will change to indicate its status as the "current" or selected node. Both panes scroll as needed to show the current node.
Added connection display to source pane.
It's a bit of a hack but moves one step closer to Jack's vision. Note: this adds the painting of lines between connected nodes but doesn't provide an editing capability in the source pane. That's one reason it's a "bit of hack." A good solution requires a lot more work.
Create a new project that will use an existing text file as the source to work with.
Create a new project that will use text pasted from the clipboard as the source to work with.
Right click in the map pane to access the edit node menu item which puts the node editor in the left pane. Once in this mode, click in the map pane to edit a node.
Right click in the map pane to access the add connection menu item. Then click on the target node to create the connection. To cancel the process right click again.
Shown to work on GNU/Linux (Debian 3.1), Windows XP (thank you David), and Mac OS X 10.5+ (thanks Mark K.). WORA still works.
GSmEditor v0.1 appears to be surprisingly robust. (I haven't broken it yet in spite of best efforts. Famous last words....)
Lot's of them, you can only do so much in a few days:
Nodes can only be created by selecting text in the source pane and using the popup menu to create a new node with the selected text as its source material (which becomes the text of the "quote" field in the node).
Both nodes and connections are "generic" or "typeless." (i.e. there is no notion of "type" for nodes or connections expressed in the UI as there needs to be in a useful tool). [The goal in this regard is to provide a plugin/template capability so the user can select and work in a context designed for a particular task like creating a truthmap, Debagegraph, Compendium map, .... Even translate between them.]
Nodes can not be deleted. [Frankly, I just forget.]
Node can not be rearraged. They are always ordered by the occurence of their related "quote" in the source text.
All connections have a direction. A bi-directional relationship requires two connections with opposite polarity.
When connections are deleted in v0.2, the source pane does not automatically update. You have to force it by resizing the window (i.e. shifting the split pane divider or resizing the main frame).
Source text input from a file or clipboard is taken as plain text (MIME type text/plain). Would like to handle HTML input gracefully.
Once loaded the source text can not be modified. [Not sure yet if this is a limitation or a feature, but it was a good constraint to use to get a release out.]
The source of the source text is not displayed in the HTML export and there's nothing in the UI to let the user provide a statement about the source. [If the the source is a file, its path is retain but not exposed or used after initially reading it in.]
There is no warning for exiting the program with a changes not saved. [Forgot to handle that too.]
As Jack mentions in the first comment below, it would be nice to enable the user to work in the source pane and have connections between nodes displayed there. [That is the goal, didn't have time to implement it. Requires a lot more code (e.g. custom drawing in the JTextPane). In v0.2 connections between nodes are show in the source pane.]
A GSmEditor project file contains the nodes, connections, project title, project id, and a copy of the source text used to create the nodes. The project file format is that produced by the XML encoder for JavaBeans.
The program depends on the org.jdesktop.application library (supplied in the download) -- from JSR 261 if I recall correctly. It's a SingleFrameApplication.
The split pane in the main view hosts two JTextPanes, one for the source text using a StyledDocument and one for the map with an HTMLDocument. These need to evolve into custom panes and documents to get the end behavior we want.
Development environment: NetBeans IDE 6.1, Java 1.6.0_01, Linux version 2.6.8-2-386 on Debian 3.1 (Sarge).
My take-away after creating v0.2 is acknowledging the utility of creating standard UI components for sensemaking maps. We need not only a source text editor like Jack describes but a canoncial map editor. That is, we need to support users and service providers by supplying a standard way of handling sensemaking maps.
Think of it in terms of MIME types. I'd like to build UI components to handle a GSm MIME type, say, application/x-gsm or application/gsm+xml (I'm no expert on MIME types).
As presented in v0.2, GSmEditor associates a map with a particular source text. One elaboration is to specify the "type" of that map (Cohere, Debategraph, ...).
...
| File | Size | Date | Attached by | |||
|---|---|---|---|---|---|---|
| connectionExample.xml example designed to show drawing of connections between elements of the source text | 11.66 kB | 20:30, 13 Aug 2008 | AndyStreich | Actions | ||
| exampleProject.xml purely a test file | 14.71 kB | 00:37, 12 Aug 2008 | AndyStreich | Actions | ||
| gsmDiscussionExample.xml a real discussion | 12.23 kB | 01:01, 12 Aug 2008 | AndyStreich | Actions | ||
| gsmDiscussionExample.html.zip HTML export from gsmDiscussionExample.xml. (The wiki prevents HTML from being uploaded so you have to download and unzip to view in your browser.) | 2.29 kB | 17:41, 12 Aug 2008 | AndyStreich | Actions | ||
| GSmEditor.release0.1.zip GSm Editor source and binary, GPL3 license | 518.58 kB | 02:59, 12 Aug 2008 | AndyStreich | Actions | ||
| GSmEditor.release0.2.zip GSm Editor source and binary, GPL3 license | 538.71 kB | 20:30, 13 Aug 2008 | AndyStreich | Actions | ||