CPAN-ID: DRRHO After browsing the CPAN for quite a while a dare to ask for Name DSLI Description Info ------------- ---- -------------------------------------------- ----- TM bdpO Topic Maps, base module DRRHO TM::DBI bdpO Topic Maps, synced with a relational DB DRRHO TM::XML bdpO Topic Maps, read/write from/to XML DRRHO TM::Simple bdpO Topic Maps, read/write from/to simple format DRRHO TM::MLDBM bdpO Topic Maps, tied with MLDBM DRRHO TM::Server bdpO Topic Maps, stand-alone SOAP server DRRHO Aside from the dry definition of being a multi-something topic space, you can find intros/background info about TMs at http://www.ontopia.net/topicmaps/index.html http://www.infoloom.com/tmarticl.htm There is also an (older, inferior) implementation at http://people.telecoma.net/rho/cpan/TM-0.03.tar.gz The Perli would go along these lines: TM(3pm) User Contributed Perl Documentation TM(3pm) NAME TM - Topic Map management Topic Maps are defined in an international standard, ISO/IEC 13250 Topic Maps for layering multidimensional topic spaces on top of information assets. The standard covers concepts like topics, associations, occurrences and facets/metadata. Topic Maps are expected to have a major impact on future information systems. The Topic Map processor supports importing, exporting, querying and manipulating Topic Maps. SYNOPSIS use TM; #-- loading ----------------------------------------------------- # from a file, XML use TM::XML; $tm = thaw ("beatles.tm"); # from some web server, still XML $tm2 = thaw ("http://www.allmusic.org/beatles.tm"); # using a more sophisticated specification, join, versioning $tm3 = thaw ("beatles.tm v 1.2 [ music.map ] portishead.tm"); # from a file, simple format use TM::Simple; $tm = thaw ("beatles.stm"); #-- saving ------------------------------------------------------ # in classical XML, default use TM::XML; $tm->freeze (file => 'beatlemania.tm'); #-- tieing and untieing ----------------------------------------- $tm->tie ('beatlemania'); $tm->untie(); #-- manipulation ------------------------------------------------ # creating an empty map $tm = new TM; # get rid superfluous information (topics, assocs), see MINIMIZATION $tm2 = $tm->minimize (); # only filter out particular scope ... rgds, \rho