XTM is not Topic Maps
For some reason a large number of people continue to believe that XTM is Topic Maps, which just isn't the case. This happens over and over again, and has all kinds of consequences. Sometimes it's no worse than people calling the technology "XML Topic Maps", other times people will make mathematical models of XTM or really implement the syntax as their model, which can be bad enough to render their work irrelevant. Which is of course a shame.
The fact is that Topic Maps is not an XML technology. Topic Maps is a technology of its own, with its own data model, query language, and constraint language. It also has a standardized interchange syntax, and that syntax happens to use XML. Other syntaxes for Topic Maps (such as LTM and AsTMa=) do not use XML at all. This is actually the sum of the relationship between Topic Maps and XML.
At this point people may be protesting that if this is the case, why do they hear about Topic Maps at all the XML conferences? Well, there are two reasons for this. The first is historical, in that Topic Maps came out of the same technical community that created XML (in fact, the ISO committee responsible for SGML). The other is that XML is an information-centric technology, and so are Topic Maps, so there are certain commonalities between the two.
But if it's not XML, what is it?
That's quite simple. It's Topic Maps. A topic map consists of topics, associations, occurrences, and so on. When you describe something using Topic Maps, these are the building blocks you have to play with, and similarly when you make a schema for a topic map, or query a topic map.
It's true that there is something called "XML Topic Maps", but this is a syntax. That is, if you want to send a topic map from one place to another, or store it in a file, you may find yourself using XTM. You should not, however, make the mistake of confusing this with Topic Maps.
So, if you start making an API, or database schema, or some other kind of model for Topic Maps there should be no topicRefs in there, nor any mergeMaps, or similar things. These are artifacts of the syntax and do not actually exist in a topic map.
So what is a topic map, then?
So how to know what's part of a topic map, then? Well, that's actually easy. ISO is developing a data model for Topic Maps to answer exactly this question. If it's in there it's part of Topic Maps, and if it's not, then, well, sorry, it's just not part of Topic Maps.
Another thing worth remembering is that XTM is not the only syntax for Topic Maps. You can also store your topic maps using LTM or AsTMa=. And soon there will be another ISO-standardized syntax for Topic Maps to replace these two, called CTM.
To put it another way, a topic map is only an XML document when it's not in use, when it's sitting dead in a file or being transferred over the network. When the topic map is in use it's a network of topics, associations, and occurrences. If anyone tells you otherwise chances are they've missed out on this difference.
Similar posts
TM/XML
The design of TM/XML, first heard of at TMRA'05, has now at long last been finalized, and the paper about it sent off to the publishers
Read | 2005-12-03 16:35
Comparing Topic Maps and RDF
The Topic Maps and RDF technology stacks are quite complex, and it's not easy to see how the various pieces compare
Read | 2007-01-06 18:52
TMRA'05 — second day
(Second day of semi-live coverage from the TMRA'05 Topic Maps research workshop.)
Today we again start with Jack Park, this time speaking on "Just for Me: Topic Maps and Ontologies"
Read | 2005-10-07 13:33