SWAG >> LSEdit

DMS: The LSEdit Shared Canvas Extension

LSEdit is a tool that permits viewing, manipulating, querying, layout and clustering of higraphs. An overview of LSEdit's capabilities can be found here.

This extension permits LSEdit to load shared-canvas graphs, and then manipulate them as any other graph might be manipulated.

Download DMS

DMS is easy to install and use; it is Java-based and works well on many platforms, including Windows, Linux and Macintosh.

The latest builds of DMS are available for download here.

Setup and usage

You need to have Sun's Java installed for DMS to work since LSEdit uses the Swing foundational classes. If you encounter problems running DMS as an applet, make sure you are using Sun's JVM. This can be downloaded and installed from http://java.sun.com. You can ensure that you are using the right version of java by typing javac -version. If you are using the wrong version you may need to invoke the right version explicitly or change your search path.

Launching: Once you have downloaded the dms jar file, you should be able to run DMS with the following command (all on one line):

[<path>/]java[.exe] -classpath dms[<version>].jar dms.DmsEditorFrame -l simplex dms:[<URL>]

Eg:
"C:/Program Files/Java/jdk1.6.0_12/bin/java.exe" -classpath dms-1.0.0.jar dms.DmsEditorFrame -l simplex dms:

If your dms.jar file is not in your current directory you will need to provide the path to it as part of your classpath statement. If you wish to use extended capabilities of LSEdit, you may need to include further jar files, as described in the LSEdit documentation.

The '-l simplex' is optional and simply requests layout using the simplex algorithm. The argument 'dms:' indicates that you wish to load the default demonstration shared canvas, located on the shared canvas web site.

To load an alternative shared canvas extend 'dms:' with the URL of the desired XML/RDF source file. Absent the 'dms:' parameter you will be interacting with the standard LSEdit graphical viewer.

Since the command to invoke LSEdit is rather long, and typing it out by hand each time is rather cumbersome, it is advisable to create a batch file or shell script that would invoke the command for you.

Compiling: If you wish to compile or recompile the source code for DMS and/or LSEdit, obtain the source code for LSEdit and DMS here. Change into the directory above the source code, and check that you can now see a directory called lsedit containing the LSEdit java source code, and the directory dms containing the DMS extension. Set your CLASSPATH environment variable to '.', and then issue the command javac.exe -g lsedit/*.java dms/*.java. The program javac.exe will need to be specified by its full path name (where ever you installed it as part of installing sun's java), if the appropriate java bin directory is not listed in your PATH environment variable. If you distrust the pre-existing class files in the lsedit directory, remove them before initiating the compile.

Using xming: If you are willingness to accept very slow painting, DMS can also be run remotely using ssh and xming. For details see LSEdit Documentation.

Memory: When operating on very large graphs, the memory allocated by java may become exhausted. It is recommended that to avoid this possibility, memory be explicitly requested when running lsedit. See LSEdit documentation for further details about java and lsedit options.

Namespaces

DMS recognises the following namespaces and uses the following abbreviations for them:

NamespacePrefix
http://www.w3.org/XML/1998/namespacexml
http://www.w3.org/2008/content#cnt
http://www.w3.org/1999/02/22-rdf-syntax-ns#rdf
http://www.w3.org/2003/12/exif/ns#exif
http://purl.org/dc/elements/1.1/dc
http://purl.org/dc/terms/dcterms
http://purl.org/dc/dcmitype/dcmitype
http://www.openannotation.org/ns/oac
http://xmlns.com/foaf/0.1/foaf
http://www.openarchives.org/ore/terms/ore
http://example.org/stuff/1.0/ex
http://dms.stanford.edu/ns/dms

Spanning Tree

A well chosen spanning tree will greatly simplify navigation and comprehension of a shared-canvas. To create a spanning tree, or view the current spanning tree rules, right click on the legend (in an empty grey area) and choose [Forms Hierarchy] from the popup menu.

The spanning forest is constructed as follows. In the order of highlighed edges all edges of this type which may be added to the spanning forest are added to it. An edge may be added whenever the target node addressed by this edge is not yet in the spanning forest, or it is the root node of an existing tree in the spanning forest. Once all such spanning edges have been used to constructed the spanning forest, this forest is converted into a tree by placing root nodes of the spanning forest under the introduced root node of the graph.

Currently the default spanning edges attempt to achieve the following goals.

  1. Hide the detail of how link lists are formed by showing the logical nodes that form target nodes of this link list, above the nodes that actually implement the linked list itself. This strange behaviour is achieved by using the rdf:first relationship as a primary spanning edge, while for the purposes of forming the spanning tree reversing the direction of this edge.
  2. Place linked lists under the node that addresses the head of this linked list. This effect is achieved by using rdf:rest as a spanning edge.
  3. Show aggregations in a natural hierarchy by using the ore:aggregates, dcterms:isPartOf reversed, and ore:isDescribedBy edges.
  4. Emphasis annotations by placing the items addressed by "oac:hasBody" and "oac:hasTarget" under the annotation having this body and target. One might here change the spanning tree rules by removing the importance of oac:hasTarget as a spanning relationship to instead emphasis that target nodes should occur under the item that they target, as an alternative presentation strategy.

Relation inheritance

Since LSEdit must assign exactly one type to both nodes and edges, the following inheritance rules are presumed for edges. The deepest subtype given for an edge becomes its type:

TypeInherits from
oac:SvgConstraintcnt:ContentAsText
dcmitype:Textcnt:ContentAsText
ore:Aggregationrdf:List
dms:AnnotationListore:Aggregation
dms:TextAnnotationListdms:AnnotationList
dms:ImageAnnotationListdms:AnnotationList
dms:Sequenceore:Aggregation
dms:Manifestore:Aggregation
dms:TextAnnotationoac:Annotation
dms:ImageBodydcmitype:Image
dms:InitialBodydcmitype:Image
dms:RubricBodydcmitype:Text
Simple navigation Navigate down by double clicking on a node. Navigate up by pressing shift and enter. Open and close nodes by pressing C. Ask what edges lead from a node by single clicking that node to select it and then pressing F. Similarly to ask what edges target a node press B. ResourceMap nodes should have a black arrow on their top right. Clicking on this arrow will load the resource map data obtained from a new XML/RDF file. To navigate back to old diagrams use the Window Menu option in the title bar. To magnify use Shift-Alt-M, to reduce magnification Alt-M and to resize to viewport Alt-D. To enlarge nodes select edge point and drag, to move nodes select internal and drag.

The Table of Contents provides a useful alternative view of the spanning tree, and can be opened and closed by right clicking on the TOC box (in a gray area). Navigation to any node shown in the table of contents is achieved by right clicking on the name of this node, and selecting "go to entity". The history shows every place visited and can be revisited by clicking on the named item.

All functionality is available from menu items, or from right clicking items you wish to operate upon. Right clicking on a menu item should bring up help describing this menu item.

Contact information

For more information on DMS please contact us at .