What Are Topic Maps
by Lars Marius Garshol
|
Pages: 1, 2, 3
How to Use Topic Maps
There are two quetions here -- "how do I create a topic map?" and "how do I build an application once I have my topic map?" For creating a topic map there are four main approaches:
- Have humans author the topic maps manually. This usually gives very high-quality and rich topic maps, but at the cost of human labor. This is appropriate for some projects, while prohibitively expensive for others.
- Automatically generate the topic map from existing source data. This can give very good results if the existing data are well-structured (sound familiar?); if not, there are various natural-language processing tools that might help.
- Automatically produce the topic map from structured source data like XML, RDBMSs, LDAP servers, and more specialized applications.
This all sounds very fancy, but to produce a simple topic map (or even a fancy one) you don't need anything more than a text editor, and for automatic generation XSLT stylesheets can be used perfectly well. This won't be enough for all uses, of course, and therefore there is specialized software for topic map editing and automatic generation of topic maps.
The next step is the question of where the topic map is going to live, that is, be stored and maintained. For simpler applications storing XTM documents in files suffices, but for most real applications some form of database storage will be necessary. Most topic map implementations support some form of database storage, using various approaches.
Generally, the heart of every topic map application is what is known as the topic map engine, which is roughly equivalent to an RDBMS database engine, but designed for topic maps. This component knows how to import and export XTM (and other topic map syntaxes), store, update, and query topic maps, and so on. The engine will handle the storage, and any updates will happen through it. For example, applications that implement a topic map-driven portal will sit on top of the engine and use it to access the topic map. More advanced topic map implementations have special frameworks that simplify the work of creating such applications.
But Wait, There's More
There are three additional features in topic maps that you really need to know about. The first of these is scope, which can be attached to any name, occurrence, or association in a topic map. Basically, scope ca be attached to anything you can say in a topic map. Scope allows you to qualify a statement, but still express it.
Imagine you are making a topic map about languages, and basing it on the ISO 639 and Ethnologue lists of language codes. In that case you might want to record that ISO 639 assigns English to the Germanic language group, while Ethnologue considers it a West Germanic language. This can be done by scoping the association between English and Germanic with a topic representing ISO 639, and the association between English and West Germanic with a topic representing Ethnologue. Similarly, one might use scope to record that what Ethnologue calls Maldivian, ISO 639 calls Divehi.
Users can then choose to see all information in all scopes, or only those in particular scopes, basically tailoring their view of the world as they want to see it. One common use of scope is to create topic maps where the topics have names in multiple languages, allowing topic maps to be converted between languages at the press of a button.
Another interesting feature of topic maps is the use of URIs to identify subjects. A topic may have any number of subject identifiers (URIs) which identify the subject the topic is about. These URIs should point to resources which describe the subject to a human; the resources are known as subject indicators. This allows subjects to be uniquely identified across topic maps and the entire web. For example, the URI http://www.topicmaps.org/xtm/1.0/core.xtm#superclass-subclass uniquely identifies the subclassing association type.
This unambiguous identification of subjects is used in topic maps to merge topics that, through these identifiers, are known to have the same subject. Basically, what happens is that two topics with the same subject are replaced by a new topic that has the union of the characteristics (names, occurrences, and associations) of the two originals. There is in fact a well-defined procedure for automatically merging topic maps based on this rule. The combination of globally unique identifiers and the merging procedure makes integration of diverse information sources and reuse of information very much easier.
One aspect related to this is the published subjects activity of OASIS, which is developing guidelines for how to create, publish, and maintain subject indicators intended for wide usage. One example of this is well-known URIs for all the countries in the world (based on the ISO 3166 country codes), which will allow us to tell that when you say 'Norway' in one topic map and I say 'Norge' in another, we mean the same thing. More on this in a future article.
Putting Topic Maps in Context
A question you may be asking yourself at this point is how something like topic maps fits into the larger family of XML standards. As I hinted at the beginning, topic maps are really an add-on to XML, something that adds extra value beyond what XML itself can do. You can in fact use topic maps without using XML at all. In a very real way, the two standards are similar without competing. They both have data models, interchange syntaxes, query languages, schema languages, and so on. Being developed for different purposes and doing different things well they can peacefully coexist and complement one another.
The relationship between RDF and topic maps is less obvious, however. Structurally, they are very similar, and their semantics are very close, although the distinctions in topic maps between base names, occurrences, and associations do not exist in RDF. At first glance it may appear that they are nearly the same, but on closer inspection it turns out that their respective communities think of the technologies in very different ways, and that features such as scope and merging actually make them rather different after all. Again, the conclusion seems to be that they are good for different things, and that there is room for both.
So what should be used where? Generally, use XML for interchange and document contents, RDF for fine-grained metadata, and topic maps for making information findable and anything that is mostly about relationships.
Conclusion
So, to sum up, topic maps make information findable by giving every concept in the information its own identity and providing multiple redundant navigation paths through the information space. These paths are semantic, and all points on the way are clearly identified with names and types that tell you what they are. This means you always know where you are, which prompted Charles Goldfarb to call topic maps "the GPS of the information universe."
Topic maps also help by making it possible to relate together information that comes from different sources through merging and published subjects. A future article will discuss this.
Tools and references
The following is a very partial list of places where you can find useful information about topic maps.
- The TAO of topic maps, the classic introduction to topic maps.
- TM4J is an open source topic map engine project in Java.
- Perl XTM is an open source topic map engine in Perl.
- tmproc is an open source topic map engine in Python.
- The Omnigator is a free (as in beer) topic map browser that can display any topic map. There's also an online demo.
- easytopicmaps.com is a wiki site about topic maps.
- topicmap.com is a useful site about topic maps.
- XTM 1.0 is currently the most important specification. It has now been incorporated in the second edition of the topic map ISO standard.
- isotopicmaps.com tells you where the topic map standards are headed next.
- TOPICMAPMAIL is a general mailing list about topic maps, suitable for newbies.
- LTM, the Linear Topic Map notation, is a text-based syntax for topic maps that is easier to read and write for humans than XTM.
- Jan Algermissen maintains a registry of publicly available topic maps.
If you want to start creating your own topic maps I recommend downloading the Omnigator and writing an XTM or LTM file (see above). You can then browse your topic map in the Omnigator immediately, without any programming or stylesheets.
- #1 Carpet Rugs Upholstery Cleaning Studio City call 1-818-386-1022
2009-06-11 15:06:56 whats - תכנון , ביצוע ואחזקה למערכות כיבוי אש ומערכות אלקטרו מכאניות
2009-05-05 02:10:05 toolmannet - tmproc is not Open Source
2002-09-17 02:10:53 Lutz Horn - New book on XML Topic Maps
2002-09-12 22:10:23 Jack Park