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.
Similarly:
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.