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