Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!feeder2.ecngs.de!ecngs!feeder.ecngs.de!border1.nntp.ams.giganews.com!nntp.giganews.com!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!newsgate.cistron.nl!newsgate.news.xs4all.nl!194.109.133.85.MISMATCH!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!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.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'skip:[ 20': 0.03; 'subject:Python': 0.05; 'preferably': 0.05; 'granted,': 0.07; 'events.': 0.09; 'key)': 0.09; 'oh,': 0.09; 'page)': 0.09; "person's": 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 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; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'sources,': 0.16; 'subject:object': 0.16; 'subject:oriented': 0.16; 'subject:programming': 0.16; 'tables,': 0.16; 'word)': 0.16; 'later': 0.16; 'wed,': 0.16; '(or': 0.18; 'define': 0.20; 'skip:" 30': 0.20; 'bit': 0.21; 'location,': 0.22; 'planet': 0.22; 'absolute': 0.23; 'non': 0.24; 'least': 0.25; 'appear': 0.26; 'creating': 0.26; 'reports,': 0.27; 'tree': 0.27; 'interface': 0.27; 'header:X-Complaints-To:1': 0.28; '+0100,': 0.29; 'contrast,': 0.29; 'finds': 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; 'url:home': 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; "won't": 0.35; 'there': 0.35; 'add': 0.36; 'received:org': 0.36; 'but': 0.36; 'child': 0.36; 'subject:with': 0.36; 'charset:us-ascii': 0.36; 'does': 0.37; 'data': 0.37; 'subject:: ': 0.38; 'supports': 0.38; 'some': 0.38; 'things': 0.38; 'to:addr:python.org': 0.39; 'takes': 0.39; 'skip:" 10': 0.40; 'header:Received:5': 0.40; 'your': 0.60; 'relationship': 0.60; 'link': 0.60; 'most': 0.61; 'capable': 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; '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:good': 0.84; 'were,': 0.84; 'articles,': 0.91; 'dennis': 0.91; 'kat': 0.91; 'received:108': 0.91; 'birth': 0.93 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Dennis Lee Bieber Subject: Re: Looking for a good introduction to object oriented programming with Python Date: Wed, 08 Aug 2012 22:59:34 -0400 Organization: > Bestiaria Support Staff < References: <6-GdneHMxPM-QL3NnZ2dnUVZ8nSdnZ2d@bt.com> <502122ce$0$29978$c3e8da3$5496439d@news.astraweb.com> <0PWdnX8z0uIx1LzNnZ2dnUVZ8vmdnZ2d@bt.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Gmane-NNTP-Posting-Host: adsl-108-68-176-208.dsl.klmzmi.sbcglobal.net X-Newsreader: Forte Agent 3.3/32.846 X-No-Archive: YES 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: 73 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1344481189 news.xs4all.nl 6869 [2001:888:2000:d::a6]:52337 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:26775 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 ) -- Wulfraed Dennis Lee Bieber AF6VN wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/