Have you tried to write down your family tree? I woke up today and tried; and I must say that the geek quotient of the exercise almost made me like my family, even :)
Read on for a rambling tour through knowledge representation, Graph Viz and DSLs.
My first attempt was a simple text-based tree:
- timeline code borrowed from graphviz sample
- probs: too complex code
- cannot represent each person separately
- relationship labels may get onerous when the tree gets big
- already seeing opportunity to convert from "how" code to "what code.
itn2:
- solves each person, but way more complex code
itn 3:
dsl emerging. thinking of a tool that outputs this gv
Read on for a rambling tour through knowledge representation, Graph Viz and DSLs.
My first attempt was a simple text-based tree:
- couple
- me
- my wife
- parents
- mine
- father
- mother
- my wife's
- father
- mother
- children
- daughter
- son
(Nouns have been replaced with pronouns, but you get the idea, right?)
Finding this a bit too textual (sic), I thought mindmap software might help. The problem with mind maps, though, is that they implicitly expect a central idea/concept. A "family tree" is indeed one such, but any instance of a family tree cannot have a central anything - the moment you make something (or someone) central, it is but one view into the tree (what you would see from one person's POV, for example).
My next tool was Graphviz. I've found Graphviz to be one of those timeless tools that I keep coming back to, and discover new things every time; not to mention its barrier to entry is so low (who can't type text and create graphs?). So the same data from above became this graphviz script:
- timeline code borrowed from graphviz sample
- probs: too complex code
- cannot represent each person separately
- relationship labels may get onerous when the tree gets big
- already seeing opportunity to convert from "how" code to "what code.
itn2:
- solves each person, but way more complex code
itn 3:
dsl emerging. thinking of a tool that outputs this gv