TM::PSI - Topic Maps, PSI (published subject identifiers)


This package provides predefined subjects, all of which will be preloaded in every map which is instantiated with the TM package hierarchy. When the subjects are defined also their relationship are kept here (example: isa is an instance of an assertion).

Every such subject is defined by its

item identifier

The internal identifier, which does not really mean much.

subject identifier

The subject indicator(s), which is ultimately the one which identifies any of the subjects here.

NOTE: For none of the subjects declared here a subject address exists. All concepts are TM-related concepts.

The subjects are sorted:

These are the minimal subjects which make a map what it is. Examples are isa and its related role (type) class and instance, and is-subclass-of and its related roles.

These are the additional concepts which are mandated by TMDM.

Here are more concepts which are needed by the AsTMa= language(s), such as template or ontology.

Here are more concepts which are needed by TMQL.

To learn about these predefined concepts, you can do one of the following

   use TM::PSI;
   warn Dumper ($TM::PSI::core, $TM::PSI::topicmaps_inc, $TM::PSI::astma_inc, $TM::PSI::tmql_inc);


Two association types are predefined by the standard(s): is-subclass-of and isa. Together with these roles are defined subclass, superclass and instance, class, respectively.

The TM::* suite of packages has these not only built in, but also works under the assumption that these association types and also the roles CANNOT be subclassed themselves. This means that no map is allowed to use, say, is-specialization-of as a subclass of is-subclass-of. The costs of this constraint is quite small compared to the performance benefits.

Infrastructure Concepts

To make the whole machinery work, every topic map must contain infrastructure topics such as name, occurrence etc. They are topics like the topics a user may put into the map. While this is the right thing to do, in practical situation you often will want to filter out these infrastructure topics. You can always get a list of these via

@@@ fix docu @@@@@

    $tm->mids (keys %{$TM::PSI::topicmaps->{mid2iid}});




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

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