SYNOPSIS

  # this is not an end-user package
  # see the source of TM::Materialized::LTM

DESCRIPTION

This package provides parsing functionality for \s-1LTM\s0 1.3 instances with the exceptions listed below. \s-1LTM\s0 1.3 is backwards compatible with version 1.2. As \s-1LTM\s0 1.3 is not yet public, please contact the author (Lars M. Garshol) for a copy.

   http://www.ontopia.net/download/ltm.html

Deviations from the \s-1LTM\s0 Specification

comments:

The parser does \s-1NOT\s0 recognizes nested comments. Any closest following */ sequence terminates a comment. The parser does also not distinguish between comments within or outside strings. Justification: Speed of parsing and complexity of the parser.

scope:

Only exactly \s-1ONE\s0 topic can be specified for a scope. Justification: Multiple topics per scope are allowed by the standard, but are undefined in their semantics. The underlying \s-1TM\s0 representation does \s-1NOT\s0 allow for multiple topics per scope.

variants

Variants are currently not supported. This also includes sort names and display names. Justification: Will be added later.

syntax

Any number of statements are allowed in \s-1LTM\s0 files (also 0). Justification: There is no reason to do otherwise.

\s-1TOPICMAP\s0 directive

This is currently not implemented. Justification: There are better ways to do that.

\s-1MERGEMAP\s0 directive

The HyTime, \s-1ISO13250\s0 format is not implemented as there is currently no driver in the \s-1TM\s0 suite. Justification: As long as there is no interest (read: bribe money), it never will.

\s-1BASEURI\s0 directive

\s-1BASEURI\s0 is currently not honored for all local URIs. Justification: I do not understand its purpose.

encoding

This is currently ignored. Justification: Will be added later.

Subject Locators

It is a violation to use more than one subject locator per topic. Justification: This is enforced by the underlying model.

Source Locators

No source locators are created. Justification: There is no such concept (thankfully) in the \s-1TM\s0 suite.

role type:

If a role is not specified, it will remain default to \*(C`thing\*(C' and not - as the specification mandates - will be substituted by the topic type. Justification: First, a topic might have several types (which one to use?), secondly there might be several topics in a member and thirdly, a role should generally \s-1NOT\s0 be the type of a member.

Notes

Merging

The parser (like any other in the \s-1TM\s0 suite) does \s-1NOT\s0 perform merging automatically. You have to trigger that explicitely with the method \*(C`consolidate\*(C'.

\s-1MERGEMAP\s0 directive

The strings determining the format are checked case-insensitive, so \s-1ASTMA\s0 and AsTMa are treated equally. The location of the map can be defined via any \s-1URI\s0 handled by LWP::Simple. If no scheme is provided file: will be assumed.

INTERFACE

Methods

deserialize

This method tries to parse the passed in text stream as \s-1LTM\s0 instance. It will raise an exception on the first parse error.

serialize

This is not implemented.

RELATED TO TM::Serializable::LTM…

\s-1TM\s0

AUTHOR INFORMATION

Copyright 200[1-6], 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. http://www.perl.com/perl/misc/Artistic.html