<s>[INST] If A is the sister of B, B is the sister of C, and C is the mother of D, then what relation is D to A? [/INST] Yes! I love word problems and data structures.

Let's think through this step by step.

A is the sister of B
B is the sister of C
C is the mother of D

Calculating...

A is the sister of C
A is the aunt of D

Answer: D is A's niece.

Generalized algorithm:
1. Use a directed graph to model the connections where person is a vertex and each relationship is an edge.
2. Add edges based on a set of rules. In this case the rules are:
  * 'mother'/'sister' edges create an 'aunt' edge
  * two 'sister' edges create a direct 'sister' edge
3. Repeatedly apply rules until there are no longer any new edges added.</s>\ <s>[INST] That seems correct. What are all - or most of - the edges I need to create a family tree going back to my great great grandparents? [/INST] It depends on the specifics of your family tree, but to build a family tree, you will typically need information on parent-child relationships, sibling relationships, and perhaps relationships between spouses. To represent this information, you can use a directed graph, where each person is a vertex and each relationship is an edge connecting the vertices.

For example, you can have a directed edge from parent to child, from spouse to spouse, and from sibling to sibling. To go back multiple generations, you can keep following the edges from one vertex to another until you reach the desired number of generations.

Note that, depending on the complexity of your family tree and the information you have, you may need to incorporate additional relationships and edges, such as step-parent or step-sibling relationships, into your graph representation.</s>\ <s>[INST] Okk, can you write a python script to create a family tree. [/INST] 