Provided by: libtm-perl_1.56-10_all bug


       TM::Synchronizable::MapSphere - Topic Maps, trait for a syncing a hierarchical TM


          use TM;
          use base qw(TM);
          use Class::Trait ('TM::MapSphere',
                            'TM::Synchronizable::MLDBM' => {
                                exclude => [ "sync_in", "sync_out" ]


       This trait adds "sync_in" and "sync_out" functionality to a map sphere. The point here is
       that embedded child maps are also synced out or in.

   Map Meta Data


           $ms->sync_in ($path)

           A whole subtree of the map repository can be sync'ed in, i.e. synchronized with
           contents in an associated resource. If this method is triggered with a particular
           path, then the map there will be (a) synced in, (b) queried for sub-maps and (c) these
           sub-maps will be instantiated.  Recursively, these submaps will be sync'ed in, etc.
           All these sub maps will be mounted under this branch of the tree.

           When a map is instantiated, its implementation package will be extracted from the
           parent map using a "implementation" characteristic. The resource URL will be
           determined from one of the subject indicators, the base URI will be determined from
           the subject address of the map topic. If any of these are missing, this particular
           sub-map is ignored.

           Example: Let us assume that a map has a "baseuri" "http://whatever/" and a resource
           URL "". It is a materialized map using the XTM driver. If
           this map is mounted into a root map under "/foo/", then the entry will take the form
           (using AsTMa= 2.0 as notation):

              foo isa topicmap
              = http://whatever/
              implementation: TM::Materialized::XTM

           @@@ TODO: no path @@@@?

           $ms->sync_out ([ $path ], [ $depth ])

           This method syncs out not only the root map sphere object (at least if the resource
           "mtime" is earlier that any change on the map sphere). The method also consults the
           mount tab to find child maps and will sync them out as well.

           The optional "path" parameter controls which subtree should be synced out. It defaults
           to "/".

           The optional $depth controls how deep the subtree should be followed downwards.
           Default is "MAX_DEPTH" (see the source).


       Robert Barta, <>


       Copyright (C) 200[67] by Robert Barta

       This library is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of
       Perl 5 you may have available.