tm(1) Topic Map client and work-bench


Invocation of the work-bench

   tm <command line switch>...
   # interactive version using persistent local store
   tm --mapsphere=file:/tmp/
   # using remote store
   tm --mapsphere=http://host:13131/
   # batch version
   cat commands | tm -
   # using extensions
   tm --source '^dns:'=TM::Virtual::DNS --extension ....
   # providing your own plugins
   tm --plugin=/some/directory/ --plugin=/some/other/directory/

Commands within the work-bench

   # getting help
   tm> help                           this command
   tm> help tm                        all help on the work-bench
   tm> help tau                       help on Tau expressions
   # reading in commands
   tm> do <file>                      execute a history (config) file
   # listing all loaded plugins
   tm> plugins:
   # deploy implementations
   tm> source /<regexp>/ <package>    load the package and register it as source implementation
   tm> filter /<regexp>/ <package>    load the package and register it as filter implementation
   # dealing with history
   tm> history                        show some past commands
   tm> !<integer>                     execute command with nr <integer> in history
   tm> <cursor-up> or <cursor-down>   get previous/next command in the history (if Term::ReadLine is installed)
   # doing several things in sequence
   tm> <cmd1> ; <cmd2> ; ...          do all commands in a sequence
   # getting out
   tm> exit                           leave the bench
   tm> quit                           ditto
   tm> ^D                             ditto (Control-d)
   # making comments
   tm> # nice weather today           is ignored


This simple, text-oriented user interface gives access to some Topic Map functions. This program is mainly thought for quick prototyping and testing Topic Maps and/or TM software, not so much to provide eye-candy.

There are two modi operandi:

Whenever you invoke the program with the parameter "-" then it will expect commands coming from STDIN. It will process them one by one and will then terminate.

  cat my-commands | tm -
If you invoke the program without a parameter


then you will be welcomed by a command prompt. Type 'help' within this shell to get an overview over available commands. See TM::Tau for information about the language.


Following command line switches are understood by the program:
history (boolean, default: on)
If this option is turned on, a history file will be consumed before the interactive loops starts. At the end of the session the history will be updated. See FILES for details on the location.

Note: History handling only applies to the interactive mode. Still, nothing can stop you to take a history file (which contains simply lines of commands) and pipe it into this program:

  cat myhistory | tm -
source (default: undef)
This multiple option allows to add new map implementations for resourceable maps. To add, for instance, a virtualized map covering the DNS (domain name service), you would add

  --source '^dns:'=TM::Virtual::DNS

The first value is a regular expression which specifies under which circumstances the processor is supposed to use that extension if it parses a source as part of a Tau expression (TM::Tau). The other value is the name of the package which is associated with that pattern. The package is 'use'd at startup time, a warning will be issued if that fails.

Several such extensions can be provided. There is no order which can be controlled.

filter (default: undef)
This multiple option allows to add new filter implementations.

  --filter '^stats:'=TM::Tau::Filter::Statistics'
plugin (default: none means take the installed ones)
This multiple option allows to override and specify the directories where plugins are searched for. If you specify one, then none of the default ones will be loaded!
mapsphere (default: undef)
This URL defines where the background map store has to persistently live in which the maps are stored and from which they can be retrieved later.

If it is left undefined, then the store will be simulated in memory only. In the local file system case (using a URL like "file:/tmp/"), all data will be stored in the local file system. If you happen to have the server package TM::Server installed, then you may also provide a URL:

In that case all maps would be stored and retrieve from there.

logfile (default: "tm.log")
Controls the file name where the log messages should be written to. This mainly applies to debugging TM components as all error messages will be output directly.
loglevel (default: INFO)
The log level can be set to any of the following values: OFF FATAL ERROR WARN INFO DEBUG ALL
...does hopefully what you would expect.


The interpreter will look for history files:

in this order taking only the first it will find. It will only use the last 100 lines.


Copyright 200[1-68], Robert Barta <[email protected]>, All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.