On these pages I would like to present a way to visualise topic maps. If you want to know more about topic maps, start at http://topicmap.com.
The applets shown here are a very simplified view on topic maps. Real topic maps very often have several hundreds of nodes which are almost impossible to show at the same time. But most of these topics aren't interesting for the standard user, maybe they are "only" used to present the underlying structure. In the examples I try to show as much information as possible while keeping the graph as small as possible.
Construction of the graph
Each topic is represented as a node in the graph except of those that don't participate in an association. The nodes are labeled using the different basenames of the topic.
Each binary association is represented as an edge in the graph connecting the two topics. The edge is labeled using the unconstrained scope of the association, if you pause with the mouse over the edge, a tooltip is shown with more information about the association.
After creating the nodes and edges for topics and associations, all nodes that don't have an edge are removed from the graph. I assume that only those topics participating in an association are interesting.
"Instance of" relations, roles and occurences are not shown in the graph. The "instance of" relationship as well as occurences could be shown as a tooltip for a topic, roles in an association are used to determine the description of the association edges.
Properties of the graph
Shows all relevant topics and associations together with the most important information about these objects.
gives an overview about the whole topic map. This might be very useful to navigate and to give a first impression of the topics.
Allows to determine connected components. While editing topic maps, it might happen that several "islands" are created that have nothing in common. Such islands can be picked very fast using this visualisation technique.
Open issues :
The program is only in a test phase yet, so there are a lot of things to add.
Improvement of labeling : The labels are created in an "ad hoc" way, definitely needs to be revisited.
Improvement of the layout : I use a force directed layout, which tries to optimize the "energy" of the graph globally. It might be useful to layout the connected components separately.
Handling of n-ary associations (n>2).