ATM [autonomous topic maps] :Overview


Lutz Maicher (

Last update: 2007-04-12


Autonomous Topic Maps contain workflow definitions. The execution of these workflows produces new topic maps according to the modelling method defined by the workflows. Broadcasting your Autonomous Topic Maps scales the omnipresence production of new topic maps according to the construction plans you have designed and you want to establish. Take a minute and learn more about Autonomous Topic Maps.

ATMs in one minute

Let’s start with an example: Creating a small topic map containing the metadata for a website using the Dublin Core vocabulary seems to be a simple task. Once this task has been started, confusion arises rapidly. Should the creator of the website be represented as an occurrence or as an association? If the association option is chosen, which terms should be used for representing the roles? Furthermore, what is the meaning of the Dublin Core term “contributor”? And is the Dublin Core term “title” the same as the FOAF term “title”? Can I use them synonymously?

In fact, most of the ad hoc projects of creating small topic maps containing the metadata for a website or any other information resource will fail. And the small number of topic maps which will be created will be hardly mergeable, because all authors applied different modelling methods derived from the best practice they assume. Querying the merged topic maps using tolog will become really awkward: How to get the creator of a website? Querying the associations (using which roles) or querying the occurrences? It might be better to stop at this point.

A tool is needed to broadcast one modelling method. Firstly, if the modelling method can be applied and executed easily, a lot of topic maps will be created. And secondly, all of the created topic maps will be instances of the same modelling method which ease their integration and their integrated use, like querying, enormously.

Autonomous Topic Maps (ATM) are this tool. An ATM represents a modelling method (which is internally a Petri net) as topic map. These topic maps can be broadcasted and the best practice for creating topic maps (or any other kind of models) will be broadcasted with them. An ATM contains a workflow which can be executed by ATM interpreters. Each workflow can be executed by various ATM interpreters; each of them might be best suited for different usage contexts (stand alone, website, mobile environments, integrated in office production systems). For all operations which will be executed in the workflows, only a set of minimal requirements is defined an the ATM Interpreters can implement these operators appropriate for the intended usage context. The users interact conveniently with the interpreters and the results are mergeable topic maps according to the modelling methods defined by the ATM.

One reference implementation of an ATM interpreter is fluidS, which can be downloaded here. Please be aware that FluidS is a technology showcase and other ATM interpreters can be indiscernibly integrated in applications (i.e. by using AJAX in web applications). FluidS is a Java application and requires Java SDK 1.5 or newer.

The vision

We foresee the future of topic mapping in the decentralised creation of very small topic maps, each of them comprising only some facts. ATM should support the fast and easy creation of these small topic maps.

In a second step these small topic maps must be accessible in an integrated fashion. The quantity creates a new quality due to the unseen linkage density we will achieve by having an integrated view on these topic maps.

Two possible scenarios are imaginable. The “Google“ scenario foresees large topic maps repositories where the small topic maps will be registered, indexed and stored. Crawlers might support the search for published small topic maps. Getting information about a subject will mean querying the centralised repositories. In the “Ant” scenario there will be a lot of small topic maps repositories, talking via web services in a P2P fashion. Getting information about a subject will mean querying the network. In the query results, both approaches will yield the linkage density we are looking for.

Both scenarios will lift off if the creation of (mergeable) topic maps will be an easy, very convenient task, applicable in any kind of usage contexts. When we reach the point o mass creation of small topics, we can start to speak about seamless knowledge.

Getting Started

Getting started with Autonomous Topic Maps is straightforward. Download and install fluidS, the Autonomous Topic Maps Engine, load an ATM into fluids and start the workflow.

1. Download the latest fluids distribution from here ( [5 MB]. Save the file into your program folder (i.e. “C:\programs”) and directly unzip the file into this folder. A new subfolder with name “fluids” will be created.

2. Make sure that the Java 2 Software Development Kit (SDK) version 1.5 or newer is available at your system. Your system variable JAVA_HOME must be set to the java home directory.

3. Create a system variable FLUIDS_HOME and set the value of this variable to the name of the new subfolder (i.e. “C:\programs\fluidS”).

4. To start the program run: %FLUIDS_HOME%\bin\fluids.bat (i.e. “C:\programs\fluidS\bin\fluids.bat”).

5. The welcome dialog appears and you have successfully installed fluids.

Note: fluids is only tested in Windows XP environments.

Now you can start working with ATMs and fluids. In a first step it is recommended to open an ATM which is included in the distribution:

1. Open the file %FLUIDS_HOME%\ATMs\ATM_PersonTopic by clicking at the button load new file. The ATM will be opened and simultaneously indexed by the system. If the file is not an ATM, this topic map will only be indexed for the topic map index.

2. Choose the file in the box “Files containing workflows”. Than choose the workflow “Add Person” and click the button “run workflow”.

3. You will be asked for a name of a person. Type a string into the text field an click proceed. You will be asked for a topic map where the result of the workflow have to be stored in. Choose an existing topic map or type the name of a new topic map in. Press OK and you will have the result in the specified topic map. Have a look in this topic map.

4. Try the other ATMs delivered in the fluids distribution. And if you recognise a bug or you have a comment, please start the ATM_bug.xtm, store the result in a topic map and send the topic map to

5. Create you own ATMs by following the tutorial and broadcast these ATMs and fluidS.

The Topic Map Index

All topic maps loaded to fluidS will be added to the default topic maps index. This index can be used to extract appropriate PSIs for Persons, Organisations or any other subjects. Using already seen PSIs increases the mergeability of the created topic maps and should be enforced by all ATMs.

To have a large PSI repository available, we recommend loading all available topic maps into fluidS. We have already included the bibMap (available here) into the topic maps index. You have PSIs for most authors in the community available. Test it: start “ATM_QueryIndex.xtm” and type in “Steve”.


The tutorial guides you to create your first ATMs. Learn more here.

Comments and Bugs

We want to propagate the idea of Autonomous Topic Maps (and fluidS) to populate the world with reasonable topic maps. For this reason we need powerful software. We permanently improve fluidS, but we require your input.

We are always interested in you comments and thoughts to fluidS and the Autonomous Topic Maps. Please send an email to us:

If you want to report a bug, please start the ATM_bug.xtm in fluidS and describe your bug. Send the created Topic Map to us via email. If the bug occurs in the context of a executed ATM, please send this ATM to us, too.

Download existing ATMs

You always need the MWP Ontology definition:

·      MWP_Ontology.ltm
This topic map contains the ontology for MWPs. It is used in all given examples.

Productive ATM:

·      DC4TM-ATM.xtm (the graphical notation as pdf)
This ATM guides you to document the metadata about a resource as topic map in a precise and standardised way, using the Dublin Core Vocabulary.

ATMs from the tutorial:

·      ATM_Bug.ltm (ATM_Bug.xtm incl. Ontology)
This ATM should be used to report a bug. Save the result of the ATM and send this topic map to us. If the bug has any correlation to an ATM, please send this ATM to us, too.

·      ATM_HalloWelt.ltm (ATM_HalloWelt.xtm incl. Ontology)
This ATM prints “Hello World” to the user.

·      ATM_WessenWelt.ltm (ATM_WessenWelt.xtm incl. Ontology)
This ATM asks the user for his name and welcomes him personalized.

·      ATM_WessenWeltQ.ltm (ATM_WessenWeltQ.xtm incl. Ontology)
This ATM asks the user for his name and whether he is interested in a personalized welcome message. If he is interested, the user is welcomed personalized.

·      ATM_PersonTopic.ltm (ATM_PersonTopic.xtm incl. Ontology)
This ATM asks the user for the name of a person and stores an according topic of type foaf:Person in a topic map to be specified by the user.

·      ATM_QueryIndex.ltm (ATM_QueryIndex.xtm incl. Ontology)
This ATM allows the user to enter a query which will be sent to the topic maps index of the current ATM interpreter. The query result is presented to the user.

·      ATM_TologQuery.ltm (ATM_TologQuery.xtm incl. Ontology)
This ATM allows the user to enter a tolog query which will be sent to a topic map the user can choose. The query result is presented to the user.

Formal Specification

A draft of the formal specification of the fundament of ATMs (Petri Net Data Model and Petri Net Process Model) is available here.

Overview about implemented Operators

Namespace: à mwp




Presents a string to the user.


Gets a binary decision from the user as answer to a question presented to him.


Gets a string from the user as answer to a question presented to him.


Gets the decision of the user which rows of a Table should be marked.


Creates a new Topic Map Data Handler from a specified source.


Queries a topic map data handler with a specified tolog query to get the whole result set.


Queries a topic map index data handler with a specified query (string) to get the whole result set.


Queries a topic map data handler with a specified tolog query to get one value.


Serialises the content of a Topic Map Datahandler as XTM Topic Map.


Updates a Topic Map with a given LTM statement.


Latest modification: Thursday, 12 April 2007