Traditionally, XML serves two primary purposes (and serves them very well, in fact):
- XML provides wonderful tools for defining and enforcing document structure and organization, and for presenting the content inside such documents
- XML supports explicit, complete and well-structured syntax, which means that applications know what to do with XML files and also makes it easy to move data from one application to another, thanks especially to XSLT and various related XML processors
This means that documents become better understood, that document processing becomes much more straightforward and that applications can intercommunicate more effectively. But what isn't delivered thereby is a road map of where the "good stuff" may be found or indeed what the "good stuff" might actually consist of.
As this tip's topic might have forewarned you, that's where topic maps can play an important role. Topic maps permit those who know and understand their documents to build an index of information that resides outside the documents themselves. Thus, a topic map essentially describes information found inside other documents and information repositories and also links into those external objects by means of various types of links (such as URLs or URIs).
In its best form, a topic map describes and organizes the key information contained in documents and other kinds of information repositories (databases, catalogs, file systems, archives, and so forth). It defines a set of relationships among these elements as well as offering descriptions of the elements involved. This lets those who must manage large bodies of related information (such as user manuals, FAQs, troubleshooting guides, training materials, how-tos and best practices documents, all of which relate to a single product or set of products, for example) describe how those bits and pieces fit together. It also permits them to explain (and map out) how and why you might want to use one or more of the items in a collection.
To pick a couple of likely examples, this could be helpful to a user who might want to move from the user manual to a FAQ or troubleshooting guide to address some specific topic or question, or from the user manual to some training materials to learn about how to interpret data produced as program output.
Topics maps are mostly used to drive Web site structures nowadays, where the topic map basically describes the structures between and among information elements and helps to lay down well-trodden paths from one class of items and another. But topic maps can also be used to describe how the documents and information items in a content management system are related and organized, or how the components of an expert or knowledge-based system relate to one another.
Topic maps are described in the XML Topic Maps (XTM) specification, originally published at TopicMaps.org in 2001, and adopted as an annex to ISO 13250 (best approached through the isotopicmaps.org site) near the end of that same year. You can even find a document transformation between XTM 1.0 and ISO 13250 that's pretty well-defined, too. A little digging, a little learning and a little experimentation and you'll probably start figuring out some interesting ways to put this technology to work as well.
About the author
Ed Tittel is a full-time writer and trainer whose interests include XML and development topics, along with IT Certification and information security topics. Among his many XML projects is the 2002 Sybex book XML Schemas, which he co-authored with Chelsea Valentine and Lucinda Dykes (ISBN: 0792140459). E-mail Ed at firstname.lastname@example.org with comments, questions or suggested topics or tools for review.