Geneology Packages -- WAS: Looking for a good introduction to object oriented programming with Python

Simon Cropper simoncropper at fossworkflowguides.com
Wed Aug 8 23:51:23 EDT 2012


On 09/08/12 12:59, Dennis Lee Bieber wrote:
> On Wed, 08 Aug 2012 20:31:57 +0100, lipska the kat
> <lipskathekat at yahoo.co.uk> declaimed the following in
> gmane.comp.python.general:
>
>> A Tree consists of Node(s) and Leaf(s), relationships are modelled by
>> following the Line(s) in the Tree diagram and that is it. Line may be a
>> class as in 'the patriarchal line' I'm not sure, it would come out in
>> the iterative wash.
>>
>> We can infer whatever we want from this simple model. A Leaf is a child,
>> until it becomes a parent when it becomes a Node. To anthropomorphize a
>> bit more (I love that word) and introduce non species specific words and
>> concepts, a Node can be a father or mother (simple to implement by
>
> 	If a "node" is a father or mother, and it takes one of each to
> produce a "leaf", your "tree" has just collapsed.
>
> 	In genealogy, a "tree" is merely the representation -- in one
> direction -- of relationships from a single Person to either all
> ancestors, or to all descendents.
>
> 	"Father", "mother", "son", "daughter" (or to simplify, "parent",
> "child") are merely roles taken on by a person in relationship to
> another person. A Person can exist even if we do not know who the
> parents were, nor if there are any children.
>
>> But what of all the ephemeral data that goes with a sentient existance
>> on this planet such as birth certificates, newspaper articles,
>> christenings, death certificates, photographs etc etc, what about
>> pegigree certificates, innoculation records and any other trivia,
>> information and flotsam that goes with a pedigree Dog or Horse or indeed
>> Parrot.
>>
> 	Those documents are the /evidence/ used to prove the linkages of the
> Person.
>
> 	Granted, the most popular genealogy program tends to be the least
> capable -- it won't let one add a person without creating a "family"
> first; and most all evidence is recorded as just a text memo.
>
> 	In contrast, TMG, provides for "Sources" (the documents),
> "Citations" (references to sources, used in the events in the person's
> life), "Repositories" (where the source can be found). Events cover
> things like "Birth", "Marriage", "Death", "Graduation", etc. [one can
> create custom events too]. Events have a date, a location, and can have
> multiple citations to the source the provides evidence that the event
> took place and involved the person to which it is linked. In TMG, there
> is no "family" as such -- only the linkages from relationship events (a
> "birth" event does not link a child to its parents; that is done via a
> pair of parent-child relationships [father-relationship,
> mother-relationship] and TMG supports having multiples -- only the pair
> marked a "primary" is used to produce "tree-like" reports, but the
> system supports having birth-parents and adoptive-parents at the same
> time in the data). It even supports having multiple "Birth" events too,
> if one finds conflicting evidence and can not determine if some is
> invalid.
>
> 	I'm not going to go into depth, but the TMG (v8) database consists
> of 29 tables, and the user interface centers on displaying a list of
> events for a person. Oh, and the person can have more than one name too,
> though only one can be listed as primary (shows at the top of the page)
> -- the others appear as name events.
>
> 	The absolute minimum to define a person in TMG is an ID number (the
> internal primary key) and preferably a "primary" name (and the name
> could be all blanks -- though having multiple people with no names, just
> ID numbers, makes for difficulty when later adding relationships: does
> this person connect to "(---unknown---)(---unknown---)" #2718 or to
> "(---unknown---)(---unknown---)" #3145 <G>)
>

Since we have graduated to a completely different topic I have renamed 
the thread.

If people are interested in a totally python-based open source FREE (as 
in no $$) package that can do all the above try gramps...

http://gramps-project.org/

I have used this package for a few years now and it is fantastic. Check 
out the features page to see what I mean.

http://gramps-project.org/features/

-- 
Cheers Simon

    Simon Cropper - Open Content Creator

    Free and Open Source Software Workflow Guides
    ------------------------------------------------------------
    Introduction               http://www.fossworkflowguides.com
    GIS Packages           http://www.fossworkflowguides.com/gis
    bash / Python    http://www.fossworkflowguides.com/scripting



More information about the Python-list mailing list