XTM is not Topic Maps
Posted in Technology on 2005-10-02 23:24
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.
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
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
Murray - 2005-10-06 20:41:01
Lars Marius, I understand and agree with your essential point, but methinks thou doth protest too much. XTM is certainly a serialization of a Topic Map, and while that is not technically a Topic Map (it's a serialization), to say that an XTM document is not a Topic Map is pushing the point to exhaustion. An XTM document is for all intents and purposes functional as a Topic Map, a reliable description of a Topic Map, etc. Yes, we should avoid mistaking the syntax for the model (as in any similar situation), but I don't think we're doing ourselves any marketing favours by postulating that XTM is *not* a Topic Map. The TMDM is not a Topic Map either (it's a data model). I think it's much more important to simply differentiate (as you've done above) that XTM is a serialization or interchange syntax for Topic Maps, explain how that's different from the abstract concept (which isn't a Topic Map) or in-memory representation of a Topic Map (which isn't a Topic Map either), and just leave it as all part-of-a-piece. Otherwise we just confuse our audience and make it seem that Topic Maps are even more mysterious and inscrutable than they already are... not a good thing to do.
Lars Marius - 2005-10-10 18:00:01
Murray, I realize now I may not have been 100% clear. I certainly don't mean to imply that an XTM document is not a topic map; my point is only that XTM is not Topic Maps in the sense that there is more to Topic Maps than XTM. (I'm trying to be consistent and use "Topic Maps" for the technology, and "topic map(s)" for any actual data sets.) So I think overall we agree, even if I created room for a little confusion on this point.
Roger Sperberg - 2005-10-14 23:22:14
Speaking as someone who comes to Topic Maps from the outside and not as a participant in building the technology, I'd have to say I've made this mistake often. One reason is that XTM changed some things from how it was expressed in SGML. Another is that LTM doesn't express all of Topic Maps.
So even though I hear "You don't author a Topic Map in XTM" and "XTM is a syntax for interchange," I also am confronted with the fact that it's the only complete and current representation of all those aspects that make up the technology.
That's why I was interested to see the notes on that alternate XML syntax (which looks RDF influenced).
As a non-programmer who has to go back to the book everytime I write a regular expression, compactness (and its concomitant obscurity) is far less significant to me than readability. Honestly, I don't mind typing three or four or five characters instead of a punctuation mark.
Lars Marius - 2005-10-16 16:38:22
Roger, it is true that if you want to represent a topic map today you have only one standard alternative that really covers everything, and that is XTM. However, the different implementations provide different ways to represent a topic map which are not XTM. And TMAPI is another alternative.
Not that this makes any difference, though. Topic Maps is what the standard says it is, and the standard says it's a structure consisting of topics, associations, and occurrences. XTM is just one of many possible representations of that structure. Whether it's convenient or not is not really the issue. The point is that the structure itself is something else.
As for the paper, that's going to be in the proceedings, to be published by Springer in a few months. As far as I know I'm not allowed to publish it anywhere else. A proper spec for the TM/XML syntax will probably be going up somewhere before that, though.