Looking for a good introduction to object oriented programming with Python

lipska the kat lipskathekat at yahoo.co.uk
Wed Aug 8 15:31:57 EDT 2012


On 08/08/12 17:42, Dennis Lee Bieber wrote:
> On Wed, 08 Aug 2012 10:51:45 +0100, lipska the kat
> <lipskathekat at yahoo.co.uk>  declaimed the following in
> gmane.comp.python.general:
>
>>
>> The point I'm obviously struggling to make is that words convey concepts
>> The word Person conveys a whole lifetime of experience of People and as
>> imperfect human beings many of us are unable to tease out 'bits of being
>> a person' that are relevant to the system we are developing. Inevitably
>> other seemingly irreversibly entwined bits keep popping up to cloud our
>> thinking. This is my experience, not an isolated case but one that has
>> popped up again and again.
>>
> 	You've never considered writing a genealogy program, have you? One
> that never acknowledges "Person"?
>
Before I start let me say that this thread really has been the most 
enormous fun and I can take any amount of ridicule so don't hold back.

Normally when I have a bath I think of the best way to stop the mice 
from feasting on my herb patch without killing them. This evening I lay 
there thinking about this outwardly tricky problem when I realised that 
what we have here, at it's most basic, is a Tree.

I am not a genealogy expert, the nearest I've been to a family tree is 
the ones my old mum thrusts under my nose at Christmas, Sunday lunch, 
birthdays,funerals etc etc . They are increasing large, beautifully hand 
drawn and most definitely a Tree

So here is my off the cuff, in the bath design for a genealogy system

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 
virtue of an enumeration e.g enum Gender{MALE, FEMALE, HERMAPHRODITE, 
NON_GENDER_SPECIFIC_CHIMERA, ...}) A male sibling of a parent is an 
uncle, a female an aunt and a cousin is ...I  have no idea but hopefully 
you can see where I'm going with this. Furthermore our system can work 
for Horses and Dogs and Zoomorphs and Epiphytes, Parasites and 
Zygomorphs and Fungi and Parrots and anything else you can possibly 
think of ...

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.

Well you don't need me to answer this one do you, we could have a class 
called Ephemera ... but then I prefer the Just In Time concept to 
loading data, I'd store the gubbins in a 'database' (don't get me 
started on databases) or I may decide to pickle the data out to disk and 
pull it out when someone requests it and probably charge them a small 
fortune for the privilige of looking at their own families historical 
information.

And not a 'Person' in sight

Of course you may be a genealogy expert and just waiting to shoot me 
down in flames, go ahead, I'll have a good smile about it next time I'm 
in the bath.

lipska

-- 
Lipska the Kat: Troll hunter, sandbox destroyer
and farscape dreamer of Aeryn Sun



More information about the Python-list mailing list