XTM::LTM - Topic Map Parsing of LTM instances.
# reading a topic map description from a file/url$ltm = new XTM::LTM (file => 'mymap.ltm');$tm = $ltm->sync_in();
This package provides parsing functionality for LTM instances as described in the package documentation (doc directory) or at
http://www.ontopia.net/download/ltm.html
Following clarifications and deviations relative to the LTM specification hold: The parser does NOT recognizes nested comments. Any closest following */ sequence terminates a comment. Only exactly ONE topic can be specified for a scope, but violations are currently not captured (open issue). If a role is not specified, it will remain empty and not - as the specification mandates - will be substituted by the topic type.
The reasons for this are that, first, a topic might have several types (which one to use?), secondly that there might be several topics in a member and thirdly, a role should generally NOT be the type of a member.
This approach would somehow violate the idea of roles in associations, so this should not be encouraged by any tool. Merging happens according to the XTM standard. This may affect the item 4 of section 3.2 according to which topics may be merged without error having different subject addresses. Only the encodings supported by the local Text::Iconv module are supported. Not (yet) implemented. Not implemented.
This directive can give a name to the current topic map. The idea is that this name can be used inside the map to point to the map. An example would be a topic reifying the map.
As the map is a resource (either explicit or via a map expression, XTM::Virtual), there seems to be no good reason to provide an additional name. The HyTime, ISO13250 format is not implemented as there is currently no driver in XTM::base. The strings determining the format are checked case-insensitive, so ASTMA and AsTMa are treated equally.
The location of the map can be defined via any URI handled by LWP::Simple. If no scheme is provided file: will be assumed.
The format string can be omitted. Then the parser will interpret the location string as tau expression (XTM::Virtual).
Constructor The constructor expects a hash as parameter containing one of the following fields: If given, then the LTM instance will be read from this url. If given, then the LTM data will be read from this file (This is just a convenience function as it will be mapped to url). If given, then the LTM instance will be read directly from this text. If several fields ("file", "url", "text") are specified, it is undefined which one will be taken. Examples:
$ltm = new XTM::LTM (file => 'here.ltm');$ltm = new XTM::LTM (text => '/* this is LTM */ [ ltm ]');
Methods $time = $ltm->last_mod
returns the UNIX time when the resource has been modified last. "undef" is returned if the result cannot be determined. $tmmemory = $ltm->sync_in
loads an LTM instance and returns a XTM::Memory object. The only optional parameter is "consistency". It will be used when building the map while reading the LTM instance. See XTM for details.
Notes: is not implemented. XTM::base Copyright 200[2], 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