Motivation

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.]

Original announcement on Ning.

System Requirements

Any system with Java6 installed.

Install & Execution

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.

Getting Started 

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. 

ss1Example_sm.pngThe 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.

Version 0.2

Added connection display to source pane.

connectionExample.xml_sm.png

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.

Version 0.2 download.

Version 0.1

Initial version.

Functions

Create Project with source from text file

Create a new project that will use an existing text file as the source to work with.

Create Project with source from clipboard

Create a new project that will use text pasted from the clipboard as the source to work with.

Create Node

Select text in the source pane and right-click to access the create node menu item. 

Edit Node

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.

Create Connection

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.

Edit/Delete Connection

To edit or delete a connection, go to the edit node mode.  (Right click in the map pane and select edit node in the popup menu.)  Then click on the connection in the map pane to bring up the connection editor.

Export to HTML

Use the Project > Export > as HTML... menu item.

Help contents

Loads this page into web browser.  [v0.2]  Use Help > Contents to access.

QA

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....)

Limitations

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.]

Geek notes

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).

Discussion

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, ...).

...

History

version 0.1

initial version

version 0.2

adds painting of connections in the source pane.

adds Help > Contents menu item to launch browser on this web page.

Version 0.2 download.

Tag page

Files 6

FileSizeDateAttached by 
 connectionExample.xml
example designed to show drawing of connections between elements of the source text
11.66 kB20:30, 13 Aug 2008AndyStreichActions
 exampleProject.xml
purely a test file
14.71 kB00:37, 12 Aug 2008AndyStreichActions
gsmDiscussionExample.xml
a real discussion
12.23 kB01:01, 12 Aug 2008AndyStreichActions
 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 kB17:41, 12 Aug 2008AndyStreichActions
 GSmEditor.release0.1.zip
GSm Editor source and binary, GPL3 license
518.58 kB02:59, 12 Aug 2008AndyStreichActions
 GSmEditor.release0.2.zip
GSm Editor source and binary, GPL3 license
538.71 kB20:30, 13 Aug 2008AndyStreichActions
Viewing 5 of 5 comments: view all
Andy, Wow, I can't believe how quickly you put this together (or that you even put any of it in code at all.) That's terrific progress. As an idea-centric person it is very clear to me where this implementation is leading but I'm not sure that a prose-centric person would be able to easily go to the same place since the connections between ideas are encapsulated in links that are apart from the text. If we are hoping to target prose-centric users then might it be possible to use the prose itself as the context with the links shown as overlays directly on that text? Of course, we will quickly run into the problem of destination highlights not being visible from source highlights but when a user clicks on highlighted text in order to make a connection we could use a quick popup of abbreviated highlighted text to facilitate the linkage step. I think if we are somehow able to preserve the prose context with inlaid links then people will quickly grasp what is happening and then if we have an option to simply switch the entire presentation to its idea-centric equivalent then we can teach them what we might consider to be a more efficient presentation of the same material that excludes the fluff; I think that combining these two views (prose and nodes) may present usability/learning curve issues whereas building the structure in the prose form with which they are familiar and then wholly converting on command would be quite instructional. Again, you are off to a fantastic start. Congratulations! You make me wish for circumstances where I could do the same. jack
Posted 06:21, 12 Aug 2008
Great work, Andy. And, as the first new, GPL software to emerge from the GSm group, an historic moment too. Thank you! David
Posted 08:49, 12 Aug 2008
Thanks very much, Jack and David. Means a lot to have one's work acknowledged. Jack, I think you are exactly right about the importance of enabling the user to work with just the plain source text as opposed to requiring the use of the node display. That's part of what I'd like to accomplish if I can find the time. What you see in version 0.1 is essentially a snapshot of my bootstrapping/learning process. It dawned on me the other day that it was functional enough (and robust enough) to let other people play with it. Now I'm pondering what to do next and hoping some of you who are bold enough to have a go at it will help me pick a direction.
Posted 13:30, 12 Aug 2008
[Isn't it frustrating that this commenting facility doesn't preserve line/paragraph breaks?]
Posted 13:32, 12 Aug 2008
Yes: this aspect of the commenting facility is peculiar and frustrating... ...and v0.2 deserves a double Wow! Well done again! The canonical map editor suggestion feels as if it should be the archetypal GSm project.
Posted 21:28, 14 Aug 2008
Viewing 5 of 5 comments: view all
You must login to post a comment.