A Taste of Taxonomies



James E Keenan

New York Perlmongers
November 17 2015


Table of Contents

1. Introduction
2. The Problem
3. The Path Column
4. 'autos' Table in Database
5. One Row
6. How Do You Get from Here to There?
7. Objectives

8. Taxonomy: A Tree-Like Data Structure
9. Diagram 2: Root, Branch and Leaf Nodes
10. About that Root Node
11. Must Nodes Have Unique Names?
12. Diagram 3: Valid Taxonomy
13. Diagram 4: Invalid Taxonomy
14. Taxonomies as Aid to Human Thinking

17. Hierarchical Data in Row-Column Format
18. Diagram 3 (redux)
19. Diagram 5: First Attempt at CSV Representation
20. Diagram 6: Introduce a "Path" Column
21. Taxonomy by Materialized Path
22. Diagram 7: Give Each Record an "Id" Number
23. Diagram 8: Identify Each Record's "Parent Id"
24. Diagram 9: Remove the "Path" Column
25. Taxonomy by Adjacent List
26. Dual Representation

27. Using Taxonomies
28. In the Digital Marketing Industry
29. Diagram 10: A Taxonomy for Audiences for Automobiles
30. Problem: Is the Taxonomy Valid?
31. Solution: Parse::Taxonomy
32. Parse::Taxonomy::MaterializedPath
33. Parse::Taxonomy::MaterializedPath::hashify()
34. Parse::Taxonomy::MaterializedPath::adjacentify()
35. Parse::Taxonomy::MaterializedPath::write_adjacentified_to_csv()
36. Parse::Taxonomy::AdjacentList
37. Parse::Taxonomy::AdjacentList::pathify()

38. Summary, References and Image Credits
39. References
40. Image Credits
41. Bonus Slides

42. Anything-Separated Values
44. CSV Variations