Capabilities and Limitations

! Capabilities

JTMA implements most of the Topic Maps Standard as it can be expressed in XTM. The User Interface uses much, but not all, of the capabilities of the topic map engine.

Core Capabilities

Supports topic maps, topics, associations, and scopes.

Supports subject indicators

Multiple, scoped base names.

Scoped occurrences.

Scoped associations

Association members may have more than one role-playing topic.

Topic map objects may be deleted.

Uses several types of indexes to improve speed.

Objects may be filtered by a list of scope topics in either AND or OR mode ("OR" mode is an extension that is not specified in the Topic Maps standard).

User Interface Capabilities

Create topics, occurrences, and associations.

Add scopes to basenames, occurrences, and associations.

Delete topics and associations.

Edit basename strings.

Edit occurrence data.

Change the type of a topic (i.e., its instanceOf value).

Specific controls for creating subclass (using the standard "superclass-subclass" PSI) and subtype associations.

Add roles and role-playing topics to an association even after it has been created.

Save topic maps in either XTM or the JTMA javascript format.

Convert XTM files to the JTMA javascript format using XSLT stylesheets.

Provide extensive browsing capabilities for topics, associations, scopes, and occurrences.

Filter displayed lists of topics or associations by scopes (for certain displays only).

Provide a general-purpose topic map browser.

Load saved topic maps.

Produce a report-format listing of all topics in the map, optionally including all their associations.

New topic maps are created with a useful set of "starter" topics, assocation types, and role types.

Limitations

Core Limitations

Only one instanceOf is allowed for a topic.

InstanceOf values for all topic map objects must be topicRefs pointing to topics within the map.

There is no merging capability

No checking is done to prevent illegal id values.

No checking is done to prevent using the same name for multiple topics.

No checking is done to discover if several topics have the same subject identity.

Scope values can only be topicRefs to topics within the map.

An association may only have one member with a particular role, but this is not checked for (however, the member is allowed to have more than one role-playing topic).

Variant names are not supported.

The xml:base attribute is neither recognized nor supported.

User Interface Limitations

Roles and role-playing topics can not be removed from associations once they have been added (entire associations can be deleted, though). Removal would require hand-editing the javascript of the saved topic map.

Only one basename can be added to a topic, even though the core engine supports multiple basenames.

Scopes can only be assigned to occurrences when they are created, not afterwards (scopes can be added to topics and basenames anytime).

In order to be listed in certain select lists, scope, role, and occurrence types must be created as instances of topics "Scope Type", "Role Type" and "Occurrence Type" respectively.

The other displays of the topic map properties will work perfectly, but you will not be able to add more of those types because they will not be listed in the select lists.

You can only add one scoping topic to an occurrence.

You cannot filter occurrence displays by scope.