A Taste of Taxonomies



James E Keenan

The Perl Conference: YAPC::NA::2016
June 21 2016


Table of Contents

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

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

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

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

41. Summary, References and Image Credits
42. References
43. Image Credits
44. Bonus Slides

45. Anything-Separated Values
47. CSV Variations