TODO for Parse-Taxonomy

TODO list for Perl module Parse::Taxonomy

Filehandle as argument

What would it mean for a Parse::Taxonomy subclass to accept a filehandle as an argument, rather than a file? Would that be difficult to implement?

Data migration example

Cookbook: Include recipe for predicting the result of a data migration between relational database tables.

Remove child_counts() and get_child_count()

In Internet discussions of hierarchical data, one often sees a distinction between the children of a node and the descendants of a node. The former term usually means "first-generation only", whereas the latter usually means "all subsequent generations."

Parse::Taxonomy::MaterializedPath::child_counts() and get_child_count() are documented as returning the count of all descendants of a node, i.e., a multi-generational count for either all nodes (child_counts()) or for one particular node (get_child_count()). Hence, these methods would be better named descendant_counts() and get_descendant_count(), respectively.

child_counts() and get_child_count() are deprecated as of v0.16. Remove them and their associated unit tests in the first CPAN release after January 1, 2016.

Nested Sets

Methods in existing packages

A method in Parse::Taxonomy::MaterializedPath that would generate a Perl data structure holding a taxonomy-by-nested-set equivalent to that in the object.

A method in Parse::Taxonomy::AdjacentList that would generate a Perl data structure holding a taxonomy-by-nested-set equivalent to that in the object.

New package

Explore creation of a Parse::Taxonomy::NestedSet package which would take as input a taxonomy-by-nested-set (via a CSV file or via a components interface), created a NestedSet object against which methods such as descendant_counts(), pathify() and adjacentify() would be callable.

Speed Up descendant_counts() and get_descendant_count()

Up through v0.16, these methods in Parse::Taxonomy::MaterializedPath are extremely slow. See if they can be sped up. IN PROGRESS. Next step: explore generation of path depth table from inside descendant_counts() to end of new().