Skip Menu |

This queue is for tickets about the Tree-Family CPAN distribution.

Report information
The Basics
Id: 116516
Status: open
Priority: 0/
Queue: Tree-Family

People
Owner: Nobody in particular
Requestors: ALEENA [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: (no value)
Fixed in: (no value)



Subject: More relationships please?
Hello. I was wondering if you would add more relationships as this world has gotten more complicated. Families can be more than daddy and mommy with their kids. There are 2 types of spouses: current and ex. There are at least 4 types of parents and siblings: biological, step, adoptive, and foster. There is the additional singling type: half. Also, how do you differentiate between the relationship types like married, life partner, affair, etc? Examples I made up off the top of my head just now: Marge is married to Anne. Anne gets artificially inseminated by Bill. The resulting child is Steve. Steve is the biological son of Anne and Bill who are not married, the adoptive child of Marge who is married to Anne. There could also be poor Linda who is in the system with a string of foster placements. She has her biological parents but also a string of foster parents. She does not find a forever home before turning 18 when she is now out of the system. I am trying to build a fictional family tree where I only know X is a descendant of Y and Z, and where there are alternate reality relationships with alternate reality children. It is a mess. Would you think about adding other types of relationships?
Subject: Re: [rt.cpan.org #116516] More relationships please?
Date: Wed, 27 Jul 2016 11:22:30 -0400
To: Lady Aleena via RT <bug-Tree-Family [...] rt.cpan.org>
From: Brian Duggan <bduggan [...] matatu.org>
Thanks for the comments and great examples. You raise good points and I should first point out that this module is badly in need of a complete rewrite. Both the code and the data model are seriously outdated. The original scope of this was to try to represent and visualize some subset of networks of familial relations. One intentional limitation was to focus on handling a current point in time -- no notion of ex-anything -- as a way to manage the scope and complexity and also to distinguish this effort from that of e.g. genealogy (which I see as primarily concerned with history). The data model basically accommodates: 1. pairs of people being in relationships 2. each person having up to two parents The two items above are independent, and I used "spouses"/ "marriage" for the first, and "mom" and "dad" for the second (without defining those terms or assigning genders or even defining "gender"). Regardless, the data model above is definitely limiting and I'd love to see it expanded. Show quoted text
> There are 2 types of spouses: current and ex.
Only "current" is currently represented. I think adding "ex" would involve a notion of 'life events' (e.g. the GEDCOM format supports this) Show quoted text
> There are at least 4 types of parents and siblings: biological, step, adoptive, and foster. > There is the additional singling type: half.
For the derived relationships, it would be great to have the ability to infer them (not just siblings and half-siblings but also things like "third cousin twice removed"). For the ones that aren't derived, it would be cool to add new types of parental relationships. This would involve removing the second aspect of the data model. Show quoted text
> Also, how do you differentiate between the relationship types like married, life partner, affair, etc?
Only one committed relationship can be represented at a time. Yes, it would be nice to expand that (i.e. remove the the first constraining aspect of the data model). Show quoted text
> Examples I made up off the top of my head just now: > > > Marge is married to Anne. Anne gets artificially inseminated by Bill. The resulting child is Steve. Steve is the biological son of Anne and Bill who are not married, the adoptive child of Marge who is married to Anne. >
Right, representing this case would currently be limited until there's a way to have more than two parents per kid. Show quoted text
> There could also be poor Linda who is in the system with a string of foster placements. She has her biological parents but also a string of foster parents. She does not find a forever home before turning 18 when she is now out of the system. >
Yes, representing this would involve a notion of 'events' and taking on the issue of history. Show quoted text
> I am trying to build a fictional family tree where I only know X is a descendant of Y and Z, and where there are alternate reality relationships with alternate reality children. It is a mess. >
Yes, sure is! The test directory has a number of situations I wanted to accommodate, maybe you could add some tests there illustratingi how the interface should look, and how they should be visualized? Even if this module is rewritten, I think parts of the test suite may be salvageable. Show quoted text
> Would you think about adding other types of relationships?
Sure! I'd love to see this module expanded and modernized. Brian
If you are looking for a place to start, I would say start with "spouse". Rename it to add_partner. You might even want to add a field to indicate type of partner or at least the order... Here is an example from my own work with a fictional genealogy at the moment. Y was married to T until her "death". J had a liaison with B which produced an unnamed son. Y married an unnamed woman and had Bl. J and T eventually got married. (A long convoluted story with lots of magic.) So T has two spouses, Y has two spouses, and J has a lover and a spouse. And this brings up the name problem. Most of the names are only first names (no last names). I have unnamed parents, spouses, and children all over this genealogy. In an extreme case, I have 3 unnamed children who had an unnumbered amount of their own children. So, I'm dealing with a lot of complications in this fictional genealogy (including time travel of sorts). It's a challenge. Oh guh, I just came up with another type of mother: surrogate. I am sorry to make so much work for you. I would be worthless in helping rewrite the code since I never got my head around objects.