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()
.