Revision history for Perl extension TM

Note: Entries marked with 
    - ! indicate a break of backwards compatibility.
    - ~ indicate a future break of compatibility, marked as deprecated

1.56  Mon Nov  8 07:49:21 CET 2010
        - fix: removed lingering test/performance code (rho)

1.55  Sun Nov  7 15:44:43 CET 2010
        - fix: TM::IndexAble misbehaved with closed indices and empty lists
        ~ mod: pumped up to Perl 5.10 as prereq (rho)
	- fix: TM::IndexAble small memory leak at deindex (rho)
	- add: TM::IndexAble deindex parameters (rho)
	- fix: BDB did not properly store top-level keys (rho)
	- add: first version of TM::ObjectAble (rho)
	- fix: LibXML operator overloading changed and triggered fails in 06*xtmserializ (rho)
	- mod: relaxed speedup tests to diagnostics (fails on some platforms, difficult to control) (rho)
	~ mod: MemCached, BDB files will soon go into separate distribution (rho)

1.54  Tue Aug  3 12:25:03 CEST 2010
        - add: TM axes: one more to compute characteristics based on oc types (rho)
        - fix: newly introduced problem with XTM serialization (rho)
	- add: TM::Index::Taxonomy for taxo intensive apps (rho)
	- fix: MLDBM could be fooled into empty maps if file existed with size 0 (rho)
	- add: TM::IndexAble, an experimental trait to provide index functionality for maps (rho)
	- add: EXPERIMENTAL & undocumented TM::ResourceAble::BDB, a Berkeley DB backed store (rho)
	- fix: speed problems with MLDBM backed store (rho)
	- fix: speed problems with AsTMa serializer (rho)
	- mod: speedup when parsing LARGE AsTMa streams (rho)
	- add: EXPERIMENTAL TM::ResourceAble::MemCached, a memcached backed store (rho)

1.53  Sat Jun  5 16:17:56 CEST 2010
        - add: extended Serializable::CSV serialization (rho)
	- mod: sync_in/out and source_in/out allow to pass through parameters (rho)
        - fix: added dependency
	- add: Serializable::CSV has also first serialize support (rho)
        - fix: XTM serialization: namespaces, instanceOf (rho)
	- add: TM::Index::Reified for apps which excessively call is_reified (rho), TODO: more tests

1.52  Tue Jun  1 07:27:10 CEST 2010
        - fix: missing dependency :/ (rho)

1.51  Sun May 30 19:14:21 CEST 2010
        - fix: internalize will get 'undef' when invoking it with undef => 'http:...' (perl 5.10, az, rho)
	- fix: tids did not recognize reified subject addresses of assocs (az)
	- add: TM::Serializable::CSV deserialize (rho)
	- ~: all workbench related stuff is now marked "deprecated", will be replaced by ts (TempleScript)

1.50  Sun May  2 17:25:23 CEST 2010
        - fixed: version 0.42 of BerkeleyDB does not like empty files to tie with (rho)

1.49  Tue Apr 13 20:44:25 CEST 2010
        - fixed: dependency on YAML::Syck missing (az)
	- fixed: cparser target mentions TM::QL (az)

1.48  Mon Apr 12 07:51:27 CEST 2010
        - fix: removed test code in TM::Serializable::AsTMa with unsatisfied dependency (rho)

1.47  Sat Apr 10 11:01:06 CEST 2010
        - fix: &TM::add and &TM::clear did not touch map subcomponents so that MLDBM picked that up (rho)
	- mod: retrieve uses now shorthands not to confuse MLDBM trait (created huge memory problems) (rho)
	- add: TM::Analysis::entropy (rho)
	- add: TM::Graph::neighborhood (rho)
	- fix: TM::Serialize::AsTMa: missing eol at end of file added (rho)
	- fix: TM::Serialize::AsTMa: inline data with \n's treated correctly (rho)
	- fix: TM::toplets & asserts did not play well with DBM-backed store - memory hog (rho)
	- mod: removed implicit dependency from URI::Escape (produced wrong version numbers with dh-make-perl) (rho)
	- add: JTM support via JSON and YAML (az)

1.46  Sat Nov 14 17:36:21 CET 2009
        - mod: dependency to URI and not URI::file
	- !del: TM::QL and all related packages (problem with smoke testers, decoupling)

1.45  Mon Apr 13 16:45:08 CEST 2009
	- fix: deserialization to astma1 "topic reifies non-assoc" handled properly (az)
	- fix: bug in TM::asserts (comparison based on mem address and not on LID!)
	- add: added TM::clear method to remove all content in one go
	- mod: CTM parser: deserializes now returns map object
	- mod: AsTMa deserializer: additional omit_provenance option

1.44  Sat Oct  4 19:40:52 CEST 2008
	- fix:    toplets did not return correct results (rho)
	- adapt:  new LWP::Simple chokes on non-absolute URLs and causes hiccups (rho)
	- fix:    TM: synopsis wrong (retrieve, asserts), (rho)
	- change: test files do not show STDERR messages (rho)
	- add:    TM::Coverage to display coverage information (rho)

1.43  Mon Jul 21 20:44:09 CEST 2008
	- change: Makefile.PL adapted to new mcpani version
	- change: Makefile.PL uses 5.8 (instead of v5.8) to not upset 5.5 interpreters
	- fix:    diff handling (az)

1.42  Mon Jun 30 21:09:29 CEST 2008
	- fix:    bug (03resource) made wrong assumption about inline: resources
	- fix:    bug (TM.pm) getting all assertions ARRAY ref'ed
	- fix:    version bug when creating the TM::Axes pod
	~ add:    package TM::Materialized::MLDBM2 is replaced/renamed to TM::ResourceAble::MLDBM (old now deprecated)
	- change: README updated
	- fix:    infrastructure was only initialized by first new TM => one could not access it before a dummy instantiation
	- change: default configuration for Log4Perl does not any longer write a file tm.log, but logs to STDERR
	- change: TM::Materialized::MLDBM uses Storable for serializing
	- change: moved smallest working version up to Perl v5.8 (from v5.6)
	- update: TM::FAQ
	- fix:    AsTMa= 1.x identifiers could not start with is-a-...., in-, ex-, oc-, bn because of clashes with symbols IN, EX, ...
	- fix:    AsTMa= 1.x comment chars can now be escaped: \# will suppress comment, \\# will escape the escape
	- change: $TM::toplet_ctr is now made 'our' instead of 'my'
	- add:    EXPERIMENTAL read support for CTM

1.41  Sat May 17 13:05:24 CEST 2008
	- fix:    MLDBM2 did not properly address $TM::log
	- add:    more test cases for XTM support
	- add:    DTDs for the zoo of XTM versions

1.40  Mon May 12 21:18:12 CEST 2008
	- add:    XTM 1.0 serialize/deserialize support (based on az-ware)
	- add:    XTM 2.0 preliminary support (serialize, deserialize)

1.39  Thu May  8 08:11:29 CEST 2008
	- add:    TM::Graph: improved documentation
	- fix:    TM::DM: doc
	- change: tm workbench got plugin infrastructure
	- add:    TM::Bulk: added vortex axes peers* and peers**, plus test cases
	- add:    TM: methods types, typesT, instances, ... generalized to handle lists of tids
	- fix:    AsTMa 1.x deserializer did not allow identifiers with _- to reify assocs
	- fix:    TM::QL::PE needed to load XML::LibXML if use it loose context
	- add:    precompiled CParser version for TM::QL (reduces start-up time by 10 secs)
	- fix:    bug in TM::DM::toplets when using local identifiers

1.38  Fri Apr 11 21:45:50 CEST 2008
	- TM::Graph: doc fixes, fixed bug for nesting repeats
	- TM::* : analysis: fixed missing test cases

1.37  Wed Apr  9 20:08:00 CEST 2008
	- importing into private trac
	- test autoupload

1.36  Sa 29. Mär 15:58:42 CET 2008
	- README: overhaul
	- TM: diff: added missing differential assertions (fix, rho), TODO: this all needs more test cases

1.35  Do 27. Mär 18:52:36 CET 2008
	- TM: more documentation fixes (rho)
	- TM: constructor psis parameter now not any long official (rho)
	! TM: everything is a subclass of 'thing' (rho, it was actually always the case)
	- added examples directory
	! TM: are_instances operates now on lists and not anymore on references (rho)

1.34  Mo 24. Mär 10:50:05 CET 2008
	- fixed: spurious error message in t/096 because of whacky tmp file creation (rho)
	- fixed: deactivated speed test for indices (rho), TODO systematic test

1.33  So 23. Mär 20:39:55 CET 2008
	- TM::* removed dependency from Test::Deeply::NoTest (conflicts with Class::Trait under Perl 5.10)
	- TM: reactivated diff code and added test cases for it (rho, TODO identification stuff flaky)

1.32  Mi 19. Mär 17:17:11 CET 2008
	- t/*.t trying to massage Class::Trait invocations such that they work with Perl 5.10

1.31  Di 18. Mär 13:37:54 CET 2008
	- TM::Bulk: added peers and peers* (rho)
	- TM::Bulk: added associations (rho)
	- TM::Bulk: fixed broken test cases (rho)
	- TM::DM: fixed names, occurrences bug (a->z)
	- TM: major reorg of the documentation (rho/a->z)
	- TM::hash: no longer publicly documented (but works as before) (rho)
	- TM::Axes: documentation of match search specifications (rho)
	- TM: duplicate subject indicators are now systematically suppressed (a->z)
	- TM::Tau: added some magic to treat < and * the same (rho)
	- TM::Serializable::AsTMa: changed default omit_trivia to 1 (rho)
	- TM: 'add' method now tries to protect _local_ LIDs, see doc (rho)
	- TM: 'insane' method tries to detect inconsistencies in the TM structure (rho)
	! TM: 'toplets' return ***REAL*** structures, not just IDs (rho)
	- TM: 'asserts' return assertions, analog to toplets (rho)
	- TM::Statistics: you have to ask for nr_toplets and nr_asserts (rho)
	! TM: had to rename 'hash' because of a possible collision with another package (CPAN smoke tests), (rho)
	- mldbm2.t: added "real" temp file handling (triggered spurious errors at smoke tests) (rho)
	! TM: toplets return now only topic-like things (not assertions) (rho)
	- TM: asserts returns now assertions, names, assocs, occs (rho)
	! TM: toplets does not try anymore to make the list unique (rho)
	! TM: methods is_reified and reifies aligned to canonical TMDM interpretation (rho)
	- TM::Serializable::AsTMa: newly introduced directive %trace allows a bit more debugging (rho)

1.30  Sa 28. Jul 18:40:45 CEST 2007
	! TM::Bulk: renaming of basenames to names, documentation
	! TM::Bulk: vortex request fields aligned with modern TMDM/TMRM view
	! TM::ResourceAble::mtime now returns 0 (not undef) when the resource cannot be determined
	! TM::Tree: cluster moved into TM::Graph (just rename your use trait from TM::Tree to TM::Graph)
	- TM : get_players has now the role optional
	- TM::Graph added: (contains cluster, frontier and is_path)

1.29  Mo 16. Jul 21:14:31 CEST 2007
	- made Log4Perl log object native into TM.pm (should now work stand-alone)
	- TM: internalize always took (undef, \ 'http://some.uri') parameters, documented now
	- bugfix: TM::Synchronizable::MapSphere did not find child map implementation

1.28  Do 28. Jun 19:33:06 CEST 2007
	- TM::MapSphere: mounted map topics get additional meta information as occurrences

1.27  Mi 27. Jun 19:00:04 CEST 2007
	- added TM::Bulk trait (for mass retrieval)

1.26  Mon Apr 16 14:13:57 EST 2007
	- added: diff for maps (EXPERIMENTAL, test cases missing, az)

1.25  Fri Jan  5 18:51:12 EST 2007
	- added: TODO list
	- rearranged (and generalized): TS.pm atomification handling
	- TMQL: added || shortcut, removed computed_content
	- TMQL: rearranged grammar, generalized to content whereever possible
	- TMQL: XML generation, content variable, attribute values variable
	- 16tmql.t now responds to parameter (id of test case)
	- fixed: TS ts_uo_eq treated one tuple sequence as set, the other as bag
	- added dependencies: Term::ReadLine, XML::Simple (was missing in previous version)

1.24  Sun Dec 24 17:52:02 EST 2006
	- added: parameter control of things to ask in TM::Analysis
	- added: workbench tm
	- added: TM::Serializable::Summary: creates a short overview of the map content
	- moved: selection mechanism of TMDM::topics is also available for TM::midlets
	- ! changed: TM::midlet() expects that all IDs passed in are already absolute
	- added: TM/QL/*
	- aligned TMQL support with latest spec (not complete yet, though)
	- added: rudimentary AsTMa 1.0 serialization support (az)

1.23  Fri Dec  1 17:56:09 EST 2006
	- modified: TM: match_forall hook char.irole -> char.topic, old deprecated
	- created: TM::Index to hold all index-related functionality
	- modified: TM index handling now can used lists of indices in match_forall

1.22  Thu Nov 30 18:22:51 EST 2006
	- improved: TM::DM documentation
	- rearranged traits to do 'inheritance'
	- improved: TM::Tau documentation
	- re-added: TM::Overview (tutorials missing)
	- created: TM::FAQ (draft state)
	- fixed: taxonomy bug in types (variable scoping wrong)
	- changed: meaning of 'instances': a thing has _ALL_ topics as instances (even itself)
	- added: TM::Analysis orphanage: figures out topics which have no instances, no types, ...
	- added: TM::DM has more sophistication in selecting topics from a map
	- changed: TM::Analysis is now a trait

1.21  Sun Oct  1 11:01:40 EST 2006
	- added: first experimental TMQL support (test cases not yet included)
	- improved: PSI docu (somewhat)
	- introduced: traits (Class::Trait) to solve some architectural problems
	- reintroduced: tree analysis
	- improved: TM docu
	- added: first support for indices, significant speedup
	- patched: identifiers in AsTMa[12] can also contain . (dot)

1.20  Sun Oct  1 08:33:21 EST 2006
	- added TM::Tau::Filter
	- added TM::Analysis (first part)

1.19  Thu Sep 28 18:18:42 EST 2006
	- split mapsphere test into two parts (MLDBM does not like it to be used with different serializers in one program)
	- added torture test for hierarchical MLDBM2 databases

1.18  Sun Sep 24 18:24:11 EST 2006
	- added first MapSphere support (experimental)
	- added more subjects in TM::PSI

1.17  Sat Sep 23 09:26:42 EST 2006
	- added BerkeleyDB based MLDBM map implementation (TM::Materialized::MLDBM2)
	- fixed/reduced package dependencies

1.16  Tue Sep 19 20:15:49 EST 2006
	- added driver for maps stored via MLDBM

1.15  Sun Sep 17 12:03:54 EST 2006
	- added AsTMa 2.0 parser
	- added merging tests

1.14  Sat Sep 16 17:08:10 EST 2006
	- reanimated AsTMa 1.x parser
	- added TM::Resource to capture generic resource handling (adapted TM::M::File)

1.13  Sat Sep 16 10:27:01 EST 2006
	- another consolidation after much infrastructure work

... only internal distributions for experimentation...

1.10  Tue Jul 27 13:48:21 EST 2004
	- complete reorganisation and new (yeah) basic data structures

-- COMPATIBILITY LEAP ----------------------------------------------

1.05  Tue Jan 13 08:29:29 EST 2004
	- public version, packaging

1.01-1.04 pure internal development version
	- added abstraction layer for virtual maps and tau expressions
	- added transactions
	- reorganised driver infrastructure 10 times
	- update AsTMa= parser to latest spec

1.00  Sun Jun 29 19:56:20 EST 2003
	- feature poor reimplementation with completely revamped data structure

-- COMPATIBILITY LEAP ----------------------------------------------

0.36  Not published
	- added freeze and thaw commands to xtm.pl

0.35  Mon Aug  5 21:20:43 EST 2002
	- added missing maps/test.ltm (need better cpan simulator)

0.34  Sun Aug  4 21:32:45 EST 2002
	- added LTM/CParser (would not build automatically on some systems?)
	- more speed improvements in XTM::Memory (topics query)
	- fixed documentation bug for induced_topic_tree
	- added class-instance as special association type to induced_topic_tree
	- added loop support (via shared trees) in induced_topic_tree, pruning reduces runtime
	- added some PSIs to XTM::PSI
	- added method descriptions to the most important base classes

0.33  Fri Jul 26 21:35:17 EST 2002
	- fixed bug which raises exception when XTM::Path creating /topic[@id = '...']
	- changed simple search syntax in XTM::Memory 'regexp' -> 'regexps'
	- added commands 'merge', 'duplicate_suppression', 'follow_maps' to xtm.pl
	- added consistency to be passed through all sync_ins also through XTM::Virtual
	- added t/08topic.t for simple tests
	- added 'is-reified-by' clauses in AsTMa (XTM::AsTMa::Parser) for topics and associations
	- added AsTMa directive auto_complete
	- added AsTMa directive encoding to occur several times in a document
	- added first (still experimental) version of LTM parsing, see XTM::LTM
	- fixed strange 'cannot add to undefined' error in XTM::Path when using XTM::Path::create and find inside one program (workaround, not solved yet)
	- allowed several scope topics for an association (follows XTM and LTM)
	- added caching to XTM::Path, already parsed expressions are cached
	- added variable to XTM::Path (similar to SQL prepare/expecute)
	- added method add_defaults to XTM::topic to add default type/scope to topic components if missing
	- modified Memory, generic for major performance improvements when merging (still some potential to be used)
	- modified Memory: merging dies if a topic is merged with an existing but both have a
	     different addressable resource
	- fixed bug in XTM::Path not detecting correctly strings '0'

0.32  Sun Jun 30 20:36:01 EST 2002
	- added XTM::grammar, a package to hold element dependencies and nesting (internal mainly)
	- added XTM::Path, XPath-like navigation through XTM::base data structures
	- XTM::Memory::id: setting of id added
	- XTM::topic, doc corrections
	- using a precompiled version of the Parse::Recdescent (considerable AsTMa= speedup)
	- fixed potential problems in XTM::generic
	- added merging code to XTM::Memory, is controlled via a hash in XTM constructor (BACKWARD COMPATIBILITY?)
	- fixed docu/code mismatch in XTM::topic (occurrences)
	- added scope_eq to XTM::scope
	- added canonicalize to XTM::topic (removes duplicates, sorts things)
	- added more query clauses for the simple query language in XTM::Memory
	- more directives for XTM::AsTMa (naming, encoding). Use with care.

0.31  Thu May 16 16:56:40 EST 2002
	- got rid of XTM::XML::ParseError and used XML::SAX::Exception instead	

0.30  Wed May  8 17:50:02 EST 2002
	- removed dependency of File::Slurp (weird version number), reported by az
	- fixed bug in incorrectly reporting line numbers in AsTMa::Parser, reported by az
	- various documention bugs fixed (still much to do)
	- astma2xtm.pl: some minor changes in switches (see man page)
	- AsTMa parser: local comments MUST have at least one blank before the '#' (see docs, may break some maps, sorry)
	- activated tests (old XML::LibXML core dump error has disappeared)

0.29  Feb 25 07:23 EST 2002
	- Debian test version

0.28  Wed Jan 16 22:17:57 EST 2002
	- fixed empty character handling in AsTMa::Parser, added line number for better debugging
	- added more accurate dependencies
	- added some explanation to the README
	- fixed XTM::XML::MemoryBuilder to work with SAX::Expat, LibXML::SAX and PurePerl (still a problem there)
	- AsTMa parser: added directives %cancel, %log

0.27  Mon Jan 14 12:23:41 EST 2002
	- added missing XTM::AsTMA::MemoryBuilder
	- fixed test suite bugs which occur at some other Perl installations

0.26  Mon Dec 31 21:49:37 EST 2001
	- add xml output serialization for (most) classes
	- revamped XML::ATM into XML::AsTMa, XML::ATM is not distributed any more
	- added astma2xtm.pl into bin/ (converter), this obsoletes atm2xtm.pl
	- fixed some bugs in XTM::XML
	- added connected methods to topic and association to return all topic refs mentioned there
	- added test for topic IDs in XTM::topic.pm (experimental), have to be valid XML identifiers
	- started to move to Test::More for testing
	- added bin/prettifyxtm.pl
	- fixed unclean code in XTM::topic::has_instanceOf, checking for URIs now
	- moved XML parsing to XML::LibXML::SAX using the XML::SAX factory
	- moved most testing to Test::More, added numerous tests
	- added population mechanism into XTM::topic to load default values
	- added auto_complete parameter to all XTM::IO subclasses to control auto_completion, default is 1
	- updated README to reflect Perl version 5.6.1
	- added support rt.cpan.org to README 
	- added 'stats' command to xtm.pl
	- added commands 'topics' and 'assocs' to xtm.pl
	- modified URIs handling in xtm.pl: URIs without a scheme will default as file: URIs

0.25  Mon Dec 17 18:06:24 EST 2001
	- added statistics to info() in XTM
	- added clusters() in XTM

0.24  Sat Oct 20 18:46:32 EST 2001
	- fixed bug of not escaping & in XTM::ATM for occurrences
	- fixed bug of not checking for all URI schemes in XTM::ATM
	- fixed too restrictive pattern in XTM::ATM to allow valid XML ids as topic ids

0.23  Sat Oct 13 12:32:11 EST 2001
	- added XTM::ATM support, documentation in docs/astma.html
	- fixed hickup in pod in XTM::Virtual
	- silenced 'Uninitialized value....' during make test in XTM::XML and XTM::ATM
	- fixed some documentation errors, formatting
	- added more map debugging facility in XTM (see XTM::info)
	- added map meta information to XTM and xtm.pl
	- distinguished between topic and assoc searches in xtm.pl
	- straightened syntax for XTM::topics 'assocs .....' to allow no trailing characters
	- changed meaning of parameters of induced_vortex in a subtle but dangerous way

0.22  Sat Mar 17 10:22:40 EST 2001
	- fixed test maps which made 'make test' fail
	- fixed nr of subtests in 04virtual.t
	- removed debugging output from XTM::Virtual
	- fixed missing use XTM::generic in XTM::subjectIndicatorRef

0.21  Sat Mar 10 11:24:10 EST 2001
	- added XTM::Virtual
	- added virtual map support into xtm.pl
	- added commodity function (induce*) to XTM
		induced_vortex
		induced_assoc_tree
	- added XTM::base as introductory package
	- moved XTM::XML::PSI to XTM::PSI
	- removed _massage from XTM::XML::Grove2TM
	- relaxed is-a ... pattern for queryingto allow for PSIs
	- unified various redundant subroutines in XTM::Memory

0.20  Sat Feb 24 23:28:45 EST 2001
	- minor release gap because of completely reorganised package structure
	- honoring XTM-1.0 http://www.topicmaps.org/xtm/1.0/xtm1-20010223.html (modulo TNC)
	- consolidated topics and c_topics into some simple query language driven routine
	- moved all thread code into separate server distribution
	- added xtm.pl workbench

0.12  Sat Feb 17 10:15:39 EST 2001
        - fixed memory management which cause loooong hangs on the server at some requests
	- fixed small bug in xtmctrl which made it complain in interactive mode
        - optimized a bit assoc via <topic> with <topic> queries
	- optimized XTM::Virtual cache management, small reorgs there
        - introduced config management via additional switch to xtmd.pl

0.11..0.07 not documented, intermediate panic releases


0.06  Fri Feb  9 13:49:13 EST 2001
        - fixed daemonization
        - optimized XTM::Memory::_topic_tree handling a bit
	- XTM December version of the standard implemented, not fully complete

0.04  Sun Dec 31 14:18:45 2000
	- original version; created by h2xs 1.19
        - cloned from inofficial TM-0.04 version

0.01  Tue Jul 27 13:27:54 2004
	- original version; created by h2xs 1.23 with options
		-n TM -X