Path: csiph.com!usenet.pasdenom.info!news.albasani.net!newsfeed.freenet.ag!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.004 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'skip:[ 20': 0.03; 'subject:Python': 0.05; 'preferably': 0.05; 'bash': 0.07; 'granted,': 0.07; 'python': 0.09; 'creator': 0.09; 'events.': 0.09; 'key)': 0.09; 'oh,': 0.09; 'page)': 0.09; "person's": 0.09; 'sure,': 0.09; 'tends': 0.09; 'aug': 0.13; '(the': 0.15; '(where': 0.15; 'conflicting': 0.16; 'dog': 0.16; 'existance': 0.16; 'invalid.': 0.16; 'merely': 0.16; 'multiples': 0.16; 'node.': 0.16; 'python-based': 0.16; 'received:internode.on.net': 0.16; 'received:on.net': 0.16; 'renamed': 0.16; 'sources,': 0.16; 'subject: \n ': 0.16; 'subject:object': 0.16; 'subject:oriented': 0.16; 'subject:programming': 0.16; 'tables,': 0.16; 'thread.': 0.16; 'word)': 0.16; 'later': 0.16; 'wed,': 0.16; 'wrote:': 0.17; '(or': 0.18; 'define': 0.20; 'skip:" 30': 0.20; 'bit': 0.21; 'location,': 0.22; 'planet': 0.22; 'absolute': 0.23; 'cheers': 0.24; 'non': 0.24; 'least': 0.25; 'header:In-Reply-To:1': 0.25; 'header:User-Agent:1': 0.26; 'appear': 0.26; 'creating': 0.26; 'topic': 0.27; '(as': 0.27; 'reports,': 0.27; 'tree': 0.27; 'interface': 0.27; '+0100,': 0.29; 'contrast,': 0.29; 'finds': 0.29; 'gis': 0.29; 'node': 0.29; 'parent': 0.29; 'recorded': 0.29; 'words': 0.29; 'source': 0.29; 'class': 0.29; "i'm": 0.29; 'becomes': 0.30; 'primary': 0.30; '(and': 0.32; 'implement': 0.32; 'could': 0.32; 'goes': 0.33; 'received:com.au': 0.33; 'subject: -- ': 0.33; 'to:addr:python-list': 0.33; 'another': 0.33; 'text': 0.34; 'minimum': 0.34; 'done': 0.34; 'list': 0.35; 'whatever': 0.35; 'direction': 0.35; 'exist': 0.35; 'open': 0.35; "won't": 0.35; 'there': 0.35; 'add': 0.36; 'but': 0.36; 'url:org': 0.36; 'child': 0.36; 'received:au': 0.36; 'totally': 0.36; 'subject:with': 0.36; 'does': 0.37; 'data': 0.37; 'subject:: ': 0.38; 'supports': 0.38; 'some': 0.38; 'things': 0.38; 'page': 0.38; 'to:addr:python.org': 0.39; 'takes': 0.39; 'skip:" 10': 0.40; 'your': 0.60; 'relationship': 0.60; 'link': 0.60; 'most': 0.61; 'free': 0.61; 'introduction': 0.62; 'capable': 0.63; 'different': 0.63; 'information': 0.63; 'love': 0.63; 'more': 0.63; 'date,': 0.65; 'difficulty': 0.65; 'mother': 0.65; 'records': 0.68; 'person.': 0.69; 'centers': 0.71; 'death': 0.71; 'guides': 0.71; 'children.': 0.75; 'introduce': 0.80; 'child,': 0.84; 'concepts,': 0.84; 'etc,': 0.84; 'father': 0.84; 'horse': 0.84; 'iterative': 0.84; 'photographs': 0.84; 'subject:Packages': 0.84; 'subject:good': 0.84; 'were,': 0.84; 'articles,': 0.91; 'dennis': 0.91; 'kat': 0.91; 'mean.': 0.91; 'birth': 0.93; 'received:118': 0.93 Date: Thu, 09 Aug 2012 13:51:23 +1000 From: Simon Cropper User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0 MIME-Version: 1.0 To: python-list@python.org Subject: Geneology Packages -- WAS: Looking for a good introduction to object oriented programming with Python References: <6-GdneHMxPM-QL3NnZ2dnUVZ8nSdnZ2d@bt.com> <502122ce$0$29978$c3e8da3$5496439d@news.astraweb.com> <0PWdnX8z0uIx1LzNnZ2dnUVZ8vmdnZ2d@bt.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - lincpan30.siteportal.com.au X-AntiAbuse: Original Domain - python.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - fossworkflowguides.com X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 95 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1344484291 news.xs4all.nl 6979 [2001:888:2000:d::a6]:59938 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:26776 On 09/08/12 12:59, Dennis Lee Bieber wrote: > On Wed, 08 Aug 2012 20:31:57 +0100, lipska the kat > 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 ) > 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