Why is it so hard to lean topicmaps?

Some ideas on why many people hit a wall when trying to learn topicmaps.

Topicmaps are a powerful standard for managing ontology-like metadata. It’s kinda hard to get your head around topicmaps, but this is not because they are especially complex or hard to grasp (Not harder than object orientation, relational databases or XML for example). They’re really not that bad. It’s because of the lack of easy to understand real world applications that you could hack together in order to learn topicmaps data structures and concepts.

When you learn about databases, you’ll start by programming a simple script to organize your CD’s or something.

Manage your contacts, organize your income – there are thousands of beginners tutorials like this for almost any programming language available. After you’ve wrapped your head around the basic concepts (relations and ID’s), you can then learn about more advanced ideas like normalization or joins.

If you had to read about the conceptual underpinnings of databases in order to get your head around them, they would never have taken off the way they did.

There are no hackable applications that I know of you can use to learn topicmaps. This means that there are no beginners tutorials that let you hack a useful application together based on topicmaps. All the tutorials I’ve seen teach you topicmap concepts and how to create a topicmap. They don’t help you create an application to organize your CD’s.

In a recent post to the topicmaps list, I asked to come up with something that was easily hackable, useful and would help people understand topicmaps. There were some ideas, but we couldn’t come up with an acceptable example. (This is not to say that it can’t be done. We should think about what exactly is missing here.)

So when you’re interested in topicmaps, you read the specs or one of these tutorials, and unless you’re familiar with data models and a bunch of advanced metadata concepts (reification anyone?), it’s gonna blow your head. Many people give up right there.

The distance between the topicmap model and a real life application seems larger than the distance between the relational database model and a real life application.


Topicmap tools are at the topicmap level, not at the real-life usefulness level. In other words, topicmap tools let you manage, create, and merge topicmaps. But they don’t let you do anything specifically useful outside of the topicmap realm (like create a simple application for managing your CD’s, like Access lets you do).

The level of abstraction of topicmaps is higher (which provides great Power and Flexibility) than that of databases. But that means that, to get from a topicmap to a useful application, you need more stuff in between. RDF seems to be resolving this problem: the stuff in between are useful standards like FOAF. Topicmaps need standards like that, that let you do something useful with topicmaps, and thus make the tools useful and topicmaps understandable.

0 thoughts on “Why is it so hard to lean topicmaps?

  1. I’ve been reading through the EasyTopicMaps.com site and it sounds interesting– but one thing that would help me (and I have never seen or heard of this before) would be a sample topicmap!! I keep reading and reading about them, but don’t see any instantiations…

  2. (Posted on behalf of T. Passin)

    (Posted on behalf of Thomas B. Passin)

    This is really valuable to me because I have some 2500 bookmarks organized in over 1000 folders, and I can’t keep track of them any other way I have tried.

    The app is built on my TM4Jscript topic map engine, which runs in a browser. It is available as a Sourceforge project at


    Now I won’t pretend that this particular app is easy to hack up, because a lot of thought went into the design, and the UI was not that easy to write, but the system can be used to hack up various simpler apps.

    Unfortunately the docs are still rudimentary, and I don’t yet have a tutorial to walk you through creating an app – there is a tutorial for creating and editing a topic map with the editor app, though.

    One interesting thing I have learned is that that designing a topic map app requires similar kinds of data modeling as a relational database app. Details are of course different. For your CD app, you would work out topics, association types, and role types instead of entities, tables, and foreign keys, but it is still very similar.

    OTOH, a relational database may be just perfect for your needs. You want to consider a topic map where you want more flexibility, or more serendipity, or less structured data, or better support for navigating the information, than a relational database will be able to give you.

    Once you have the data (i.e., topic map) model more or less worked out, you have the same kind of UI design and building problems as any other app would have. In TM4JScript, I chose to use a browser for the UI framework, since I know how to write the javascript to make the UI work.

    With this system I have also built an app to help me track and review peer review comments to a manuscript, and another to overlay new navigation onto an existing set of web pages.

    When I get time (might be a month or more), I hope to get back to documenting the system and working up a tutorial.

  3. The previous comment should have a paragraph added that explains Thomas has a bookmark managing tool that lets him merge and search bookmarks. For some reason, that paragraph triggered my blacklist.

  4. Pingback: Column Two
  5. Pingback: hebig.org/blog
  6. Pingback: hebig.org/blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s