man XTM::LTM () - Topic Map Parsing of LTM instances.
NAME
XTM::LTM - Topic Map Parsing of LTM instances.
SYNOPSIS
# reading a topic map description from a file/url $ltm = new XTM::LTM (file => 'mymap.ltm'); $tm = $ltm->sync_in();
DESCRIPTION
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:
- comments:
- The parser does NOT recognizes nested comments. Any closest following */ sequence terminates a comment.
- scope:
- Only exactly ONE topic can be specified for a scope, but violations are currently not captured (open issue).
- role type:
- 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:
- 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.
- encoding:
- Only the encodings supported by the local Text::Iconv module are supported.
- BASEURI directive:
- Not (yet) implemented.
- TOPICMAP directive:
- 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.
- MERGEMAP directive:
- 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).
INTERFACE
Constructor
The constructor expects a hash as parameter containing one of the following fields:
- url:
- If given, then the LTM instance will be read from this url.
- file:
- 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).
- text:
- If given, then the LTM instance will be read directly from this text.
If several fields (CWfile, CWurl, CWtext) 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. CWundef 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 CWconsistency. It will be used when building the map while reading the LTM instance. See XTM for details. Notes:
- All undefined topics will be defined automatically. There is no way to suppress this.
- Automatically generated topic will NOT have any baseName
- is not implemented.
SEE ALSO
XTM::base
AUTHOR INFORMATION
Copyright 200[2], Robert Barta <rho@telecoma.net>, 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