chiark / gitweb /
Oops, forgot to commit. Lots of faffing arround with graphs, graphs will be added...
authornaath <naath@chiark.greenend.org.uk>
Wed, 9 Apr 2014 08:41:56 +0000 (09:41 +0100)
committernaath <naath@chiark.greenend.org.uk>
Wed, 9 Apr 2014 08:41:56 +0000 (09:41 +0100)
cgiFiles/everyPage.py
cgiFiles/listPeople.py
cgiFiles/person.py
familyTree/askQuestion.py
familyTree/findYear.py
familyTree/notes
familyTree/printLists.py
familyTree/printYearBorn.py
familyTree/tree
familyTree/tree.db

index d202b619a81b67579ddedc2555263538b8f455c0..9f2d622401ce2dbb60843a36483d835f83e78e3c 100755 (executable)
@@ -7,6 +7,7 @@ sys.path.append('/home/naath/familyTreeProject/familyTree')
 import askQuestion
 import everyPage
 
+cgitb.enable()
 def base_url():
        return 'http://www.chiark.greenend.org.uk/ucgi/~naath/'
 
@@ -19,7 +20,10 @@ def links():
        print '<a href='+base_url() + 'countNames.py> count how many times first names are use</a>'
        print '<br>'
        print '<a href='+base_url()+ 'listAge.py> At what age did people have children</a>'
-
+       print '<br>'
+       print '<a href='+base_url()+'listAgeDeath.py> At what age did people die</a>'
+       print '<br>'
+       print '<a href = bigGraph.py> big graph</a>'
 
        print '<hr>'
 def footer():
@@ -28,6 +32,14 @@ def footer():
        print '<a href=http://www.chiark.greenend.org.uk/~naath>naath</a>'
        print '<br>'
        print 'Thanks to <a href=http://www.chiark.greenend.org.uk>chiark</a> for hosting this'
+       print '<br>'
+       print 'Information sourced from <a href = en.wikipedia.org> wikipedia</a>'
+       print 'All errors in transcription are mine.'
+       print 'Reports of errors, or ideas of interesting questions to ask'
+       print 'my database by email to naath@chiark.greenend.org.uk'
+       print "(omissions of people are largely because I haven't got to them yet)."
+
+
 
 def title(titleNum):
        return 'Silly toy'
index d0e689761d7c3e8a17ec4efd9301dde0c807fafe..d6deedc099d0094bd80ce63fe3fea49972fcde67 100755 (executable)
@@ -9,12 +9,13 @@ import askQuestion
 import everyPage
 
 [conn,form]=everyPage.top()
+cgitb.enable()
 
 result = 1
 if result == None:
         everyPage.bad()
 else:   
-        printMe = askQuestion.list_people('<br>')
+       printMe = askQuestion.list_people('<br>')
         if len(printMe)<10:
                 printMe =  'sorry, no data <br>'
 
index 32d3807efabf671f88585e1dc7ce602d4b461334..fb0a08c0e50b1858e2abf870d1cebffb6e98ac1a 100755 (executable)
@@ -23,6 +23,7 @@ result = re.match('^[0-9]{1,3}$', str(ID))
 if result == None:
        everyPage.bad()
 else:   
+
        printMe  = askQuestion.person_info(ID,'<br>')
        if len(printMe)<10:
                printMe =  'sorry, no data <br>'
@@ -31,6 +32,5 @@ else:
                printMe = printMe + '<br>' + url
 
        everyPage.good(printMe)
-
-
+       
 everyPage.bottom(conn)
index 3c1b999930aa1eed2d4482dc7f51c0297c4b0aeb..d8414412ff2ce187223096dc5bb7470ba7a615b8 100755 (executable)
@@ -6,7 +6,6 @@ from string import Template
 
 global link_Template 
 link_Template= Template("<a href = http://www.chiark.greenend.org.uk/ucgi/~naath/$script>$text</a>")
-
 def run_query(s,t):
        c = make_cursor()
        return c.execute(s,t)
@@ -68,22 +67,33 @@ def name_html(row,html):
                else:
                        return row[0] + "," +str(row[1])
 
-def print_age_count(row,newLine):
+def print_people(n):
+       if n>1:
+               return ' people '
+       else:
+               return ' person '
+
+def print_age_child_count(row,newLine):
        if newLine == '<br>':
                script = "age.py?age="+str(row[0])
                link = link_Template.substitute(script = \
                        script, text = row[0])
-               out = str(row[1])
-               if row[1]>1:
-                       out = out + ' people '
-               else:
-                       out = out + ' person '
+               out = str(row[1])+print_people(row[1])
 
                out = out + 'had children at age '+ link + newLine
                return out
        else:
                return print_row(row,newLine)
 
+def print_age_death_count(row,newLine):
+       if newLine =='<br>':
+               script = "ageDeath.py?age="+str(row[0])
+               link = link_Template.substitute(script = script,text = row[0])
+               out = str(row[1])+print_people(row[1])
+               out = out + "died at age " + link + newLine
+               return out
+       else:
+               return print_row(row,newLine)
 
 def print_name_count(row,newLine):
        if newLine=='<br>':
@@ -161,6 +171,50 @@ def list_territories(newLine):
                out =out + terr_html(row[0],newLine) +newLine
        return out
 
+def list_people_parents():
+       s = "SELECT name,id"\
+               +" FROM people"\
+               +" ORDER BY id;"
+
+       output = []
+       for row in run_query(s,()):
+               t = "SELECT parentid"\
+                       +" FROM parents"\
+                       +" WHERE id = ?;"
+
+               u = "SELECT name,id"\
+                       +" FROM people"\
+                       +" WHERE id = ?";
+
+               parents =[]
+               for r in run_query(t,(row[1],)):
+                       parentID = r[0]
+                       hasParent = 0
+                       for q in run_query(u,(r[0],)):
+                               parents.append(q[0] + ' ' + str(q[1]))
+                               hasParent=1
+                       if hasParent==0:
+                               parents.append(r[0] + ' p' +\
+                                str(row[1]))
+
+               spouses=[]
+               v = "SELECT name,idb"\
+                       +" FROM marriages LEFT JOIN people"\
+                       +" ON idb = id"\
+                       +" WHERE ida = ?"
+               for r in run_query(v,(row[1],)):
+                       if r[0]!=None:
+                               spouses.append(r[0]+ ' '+str(r[1]))
+                       else:
+                               spouses.append(r[1] + ' s' +\
+                               str(row[1]))
+
+
+               myName = row[0]
+               myID = str(row[1])
+               output.append([myName+ ' '+ myID,parents,spouses])
+       return output
+
 
 def list_people(newLine):
        s = "SELECT name,id,bornyear"\
@@ -326,7 +380,7 @@ def count_age_at_child(newLine):
 
        out = ''
        for row in run_query(s,()):
-               out = out + print_age_count(row,newLine)
+               out = out + print_age_child_count(row,newLine)
 
        return out
 
@@ -351,6 +405,27 @@ def people_had_child_at_age(age,newLine):
 
        return out
 
+def count_age_at_death(newLine):
+       s = "select diedYear-bornYear as age,count(*)"\
+               +" FROM people"\
+               +" WHERE diedYear<>0 AND bornYear<>0"\
+               +" GROUP BY age;"
+       out=''
+       for row in run_query(s,()):
+               out = out + print_age_death_count(row,newLine)
+
+       return out
+def people_died_at_age(age,newLine):
+       s = "SELECT diedYear-bornYear as age, name,ID"\
+               +" FROM people"\
+               +" WHERE age = ? AND bornYear<>0 AND diedYear<>0;"
+       t = (int(age),)
+       out =''
+       out = 'These people died at age ' +str(age) + ' :'
+       for row in run_query(s,t):
+               out = out +newLine
+               out = out + name_html([row[1],row[2]],newLine)
+       return out
 
 def all_ancestors(personID,newLine):
        #find parents
@@ -388,10 +463,11 @@ def all_ancestors(personID,newLine):
                                        allAncestors.append(row[1])
                                        trackLevel.append(level)
                ancestors = newA
-               if len(ancestors)>0:
-                       out  = out+thisout
-       
+               out  = out+thisout
 
+
+       image = "<img src = ancestorGraph.py?id="+str(personID)+">"
+       out = out+newLine + image+newLine
        return [out, allAncestors,trackLevel]
 
 
@@ -471,8 +547,10 @@ def common_ancestors(IDA, IDB,newLine):
        +" WHERE id=?"
 
        out  = out + newLine + 'Most Recent Common Ancestors:' + newLine
+       mrca = []
        for a in indexA:
                t = (common[a],)
+               mrca.append(common[a])
                out = out + print_tagged_query('',s,t,newLine)
                if a!=indexA[-1]:
                        out = out + 'and' + newLine
@@ -502,6 +580,15 @@ def common_ancestors(IDA, IDB,newLine):
        related = relationship(al,bl,names)
        out = out+newLine + related
 
+
+       image = "<img src = jointAncestorGraph.py?id="+str(IDA)\
+               +"&id2="+str(IDB) + "&LA=" + str(min(aLevels)) \
+               +"&LB=" + str(min(bLevels))+">"
+
+
+
+        out = out+newLine + image+newLine
+
        return [out,common,related]
 
 def relationship(level1, level2,names):
@@ -598,9 +685,11 @@ def person_info(personID,newLine):
        for row in run_query(s,t):
                output = output + 'ID: '+str(row[0]) +newLine
                output = output + print_tagged_name('Name',[row[1], row[0]],newLine) +newLine
+               name = row[1]
                output = output + 'Born: '+row[3] + newLine
                bornYear = row[4]
-               output = output + 'Died: '+row[5] + newLine
+               output = output + 'Died: '+row[5] + ", aged " \
+                       +str(row[6]-row[4]) +newLine
 
        s = "SELECT * FROM styles WHERE ID = ?"
        for row in run_query(s,t):
@@ -635,15 +724,27 @@ def person_info(personID,newLine):
                +" parents LEFT JOIN people"\
                +" ON parents.parentID = people.ID"\
                +" WHERE parents.ID = ?"
+
+       parents =[]
        for row in run_query(s,t):
                output = output + print_tagged_name('Parent',row,newLine)
+               if row[0]!=None:
+                       parents.append(row[0] + ' ' + row[1])
+               else:
+                       parents.append(row[1] + ' p' + personID)
 
        #find spouses
        s = "SELECT people.NAME, marriages.IDb from"\
                +" marriages LEFT JOIN people"\
                +" ON people.ID = marriages.IDb"\
-               +" WHERE marriages.IDa = ?"
+               +" WHERE marriages.IDa = ?"\
+               +" ORDER BY IDb;"
+       spouses = []
        for row in run_query(s,t):
+               if row[0]!=None:
+                       spouses.append(row[0] + ' '+str(row[1]))
+               else:
+                       spouses.append(row[1] + ' s' + personID) 
                output = output + newLine
                 output = output + print_tagged_name('Spouse',row,newLine)
                output = output + relationship_html(personID,row[1],newLine)
@@ -651,8 +752,13 @@ def person_info(personID,newLine):
        s = "SELECT people.NAME, marriages.IDa from"\
                 +" marriages LEFT JOIN people"\
                 +" ON people.ID = marriages.IDa"\
-                +" WHERE marriages.IDb = ?"
+                +" WHERE marriages.IDb = ?"\
+               +" ORDER BY IDa;"
        for row in run_query(s,t):    
+               if row[0]!=None:
+                       spouses.append(row[0] + ' '+str(row[1]))
+               else:
+                       spouses.append(row[1] + ' s' + personID)
                output = output + newLine
                 output = output + print_tagged_name('Spouse',row,newLine)
                output = output + relationship_html(personID,row[1],newLine)
@@ -666,26 +772,55 @@ def person_info(personID,newLine):
                +" WHERE parents.parentID = ?"\
                +" ORDER BY people.bornYear;"
 
+       children = []
+       ops =[]
        for row in run_query(s,t):
                output = output  + print_tagged_name('Child',row,newLine)
-
+               children.append(row[0] + ' ' + str(row[1]))
+               
                 #find children's other parent
                 u = "Select people.NAME, parents.parentID FROM"\
-                +" parents LEFT JOIN people"\
+                +" parents INNER JOIN people"\
                 +" ON people.ID = parents.parentID"\
-                +" WHERE parents.ID = ? AND parents.parentID <> ?"
+                +" WHERE parents.ID = ? AND parents.parentID <>?;"
 
                ids = (row[1],t[0])
 
+               op = 0
                for r in run_query(u,ids):
                        output = output + print_tagged_name('With',r,newLine)
+                       op = 1
+                       ops.append(r[0] + ' ' + str(r[1]))
+               if op==0:
+                       ops.append('?' + ' s' + personID)
 
                #age when child born
                if row[2] !=0 and bornYear != 0:
                        age = row[2]-bornYear
                        output = output[:-4] + " at the age of "+str(age) + newLine
 
-       output = output + newLine
+
+       Self = name +' ' + str(personID)
+
+       image =  "smallGraph.py?Self="+Self
+       for p in parents:
+               image = image + '&p='+p
+       for c in children:
+               image = image + '&c='+c
+       for op in ops:
+               if op !=None:
+                       image = image + '&op='+op
+       for s in spouses:
+               if s !=None:
+                       image = image + '&s='+str(s)
+
+       image = image.replace(' ','%20')
+       image ="<img src ="+ image + '>'
+
+       
+       output = newLine+ output+ image+newLine
+
+
 
        return output
 
index 3b3e8dd82d8adaf39ddc6e91d20e18a308e93135..873d269da6ce017db0f7158400e387550e077ace 100755 (executable)
@@ -7,21 +7,27 @@ def find_year(date):
        dates = date.split('/')
 
        if len(dates)==3:
-               return dates[2]
+               year =  dates[2]
 
-       if len(dates)==2:
-               return dates[1]
+       elif len(dates)==2:
+               year =  dates[1]
 
-       if len(dates)==1:
-               parts = date.split('-')
+       elif len(dates)==1:
+               year = dates[0]
+
+       else:
+               year = 0
+
+       parts = year.split('-')
+
+       matches = re.search('[0-9]{1,4}',parts[0])
+       if matches==None:
+               year =  0
+       else:
+               year =  matches.group(0)
 
-               matches = re.search('[0-9]{1,4}',parts[0])
-               if matches==None:
-                       return 0
-               else:
-                       return matches.group(0)
 
-       return 0
+       return year
 
 
 def find_month(date):
index 50e1e91c7b31ed3ca0b453fcb95a42addb85a0e6..61295ee28c359b52b8b34419eb9f1410ff7133eb 100644 (file)
@@ -6,10 +6,11 @@
 
 Deal with Consorts, this means including DATES OF MARRIAGE AND DIVORCE
 
-ELEANOR OF CASTILE has the WRONG PARENTS!!!!
 check others with bad age-at-child numbers
-edmund tudor's birth year is wrong
-Kathering Swynford is spelled wrong
 
-territories - some numbers got in there.
+.ods has John Beufort right, .csv does not.  CHECK EXPORT.
 
+fl.c. means "flourish circa" and should not be confused with "born circa"
+see especially Edith of Mercia
+
+Sigehelm (163) was NOT MARRIED TO Prince Edward (162)
index 0332d8e43da8f917ede3261217ebcf40b428d922..75ba3b2884b9be1244b2d41f4ab78f7e510ef690 100755 (executable)
@@ -11,11 +11,11 @@ o = askQuestion.count_names('\n')
 
 print o
 
-#o = askQuestion.count_birth_month('\n')
-#print o
+o = askQuestion.count_birth_month('\n')
+print o
 
-#o = askQuestion.count_death_month('\n')
-#print o
+o = askQuestion.count_death_month('\n')
+print o
 
 #o = askQuestion.list_territories('\n')
 
index 64e992e87d60de6148e68a4ba7032cbbf5965513..ee2c38cf1964eeda3b7a908ee62b103e4d6a8d4b 100755 (executable)
@@ -1,18 +1,15 @@
 #!/usr/bin/python
 
-import askQuestion
+import findYear
 import sys     
 
 
-conn = askQuestion.connect()
-
 
 if len(sys.argv) < 2:
-       o = askQuestion.find_year_born(1,'\n')
+       o = findYear.find_year(1)
 else:   
      for i in range(1,len(sys.argv)):
-       o = askQuestion.find_year_born(sys.argv[i],'\n')
+       o = findYear.find_year(sys.argv[i])
 
 
 print o
-askQuestion.close(conn)
index e7d80ec98d71370ef2300e759814e58468654031..c4ada9367438e52d03d2b0d51e60bb86c90ae273 100644 (file)
@@ -5,7 +5,7 @@ Name:
 Alfred the Great\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Alfred_the_Great\r
 \r
 Born:\r
 849\r
@@ -39,7 +39,7 @@ Name:
 Edward the Elder\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Edward_the_Elder\r
 \r
 Born:\r
 874-877\r
@@ -74,7 +74,7 @@ Name:
 Aethelstan\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/%C3%86thelstan\r
 \r
 Born:\r
 893-895\r
@@ -115,7 +115,7 @@ Name:
 Edmund I\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Edmund_I\r
 \r
 Born:\r
 921\r
@@ -150,7 +150,7 @@ Name:
 Eadred\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Eadred\r
 \r
 Born:\r
 ?\r
@@ -181,7 +181,7 @@ Name:
 Eadwig (Edwy)\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Eadwig\r
 \r
 Born:\r
 941?\r
@@ -215,10 +215,10 @@ Name:
 Edgar the Peaceful\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Edgar_the_Peaceful\r
 \r
 Born:\r
-07/28/943\r
+07/08/943\r
 Died:\r
 08/07/975\r
 \r
@@ -251,7 +251,7 @@ Name:
 Edward the Martyr\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Edward_the_Martyr\r
 \r
 Born:\r
 962\r
@@ -282,7 +282,7 @@ Name:
 Aethelred the Unready\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/%C3%86thelred_the_Unready\r
 \r
 Born:\r
 966-968\r
@@ -327,7 +327,7 @@ Name:
 Sweyn Forkbeard\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Sweyn_Forkbeard\r
 \r
 Born:\r
 960\r
@@ -391,7 +391,7 @@ Name:
 Edmund Ironside\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Edmund_Ironside\r
 \r
 Born:\r
 989\r
@@ -425,7 +425,7 @@ Name:
 Cnut\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Cnut_the_Great\r
 \r
 Born:\r
 985\r
@@ -480,7 +480,7 @@ Name:
 Harold I Harefoot\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Harold_Harefoot\r
 \r
 Born:\r
 c1015\r
@@ -511,7 +511,7 @@ Name:
 Harthacnut\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Harthacnut\r
 \r
 Born:\r
 c1018\r
@@ -555,7 +555,7 @@ Name:
 Edward the Confessor\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Edward_the_Confessor\r
 \r
 Born:\r
 C1003-1005\r
@@ -589,7 +589,7 @@ Name:
 Harold II Godwinson\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Harold_Godwinson\r
 \r
 Born:\r
 c1022\r
@@ -624,7 +624,7 @@ Name:
 William I the Conqueror\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/William_the_Conqueror\r
 \r
 Born:\r
 c1028\r
@@ -668,7 +668,7 @@ Name:
 William II\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/William_II_of_England\r
 \r
 Born:\r
 c1056\r
@@ -699,7 +699,7 @@ Name:
 Henry I Beuclerc\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Henry_I_of_England\r
 \r
 Born:\r
 1068\r
@@ -735,7 +735,7 @@ Name:
 Stephen\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Stephen_of_England\r
 \r
 Born:\r
 C1092-1096\r
@@ -780,7 +780,7 @@ Name:
 Matilda\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Empress_Matilda\r
 \r
 Born:\r
 07/02/1102\r
@@ -816,7 +816,7 @@ Name:
 Henry II Plantagenet\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Henry_II_of_England\r
 \r
 Born:\r
 05/03/1133\r
@@ -853,7 +853,7 @@ Name:
 Henry the young king\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Henry_the_Young_King\r
 \r
 Born:\r
 28/02/1155\r
@@ -887,7 +887,7 @@ Name:
 Richard I Lionheart\r
 \r
 URL:\r
-.\r
+http://en.wikipedia.org/wiki/Richard_I_of_England\r
 \r
 Born:\r
 08/09/1157\r
@@ -3410,7 +3410,7 @@ Died:
 Father:\r
 208\r
 Mother:\r
-209\r
+211\r
 \r
 Spouses:\r
 27\r
@@ -3705,7 +3705,7 @@ URL:
 Born:\r
 11/06/1456\r
 Died:\r
-06/031485\r
+06/03/1485\r
 \r
 Father:\r
 236\r
@@ -3942,7 +3942,7 @@ URL:
 Born:\r
 21/05/1527\r
 Died:\r
-1309/1598\r
+13/09/1598\r
 \r
 Father:\r
 257\r
@@ -4489,22 +4489,22 @@ Spouses:
 Style:\r
 Count of Blois\r
 Territories:\r
-1089\r
+Blois\r
 \r
 From:\r
-19/05/1102\r
+1089\r
 To:\r
-Count of Chartres\r
+19/05/1102\r
 \r
 Style:\r
-Chartres\r
+Count of Chartres\r
 Territories:\r
-?\r
+Chartres\r
 \r
 From:\r
 ?\r
 To:\r
-\r
+?\r
 \r
 \r
 \r
@@ -4794,7 +4794,7 @@ URL:
 .\r
 \r
 Born:\r
-1403?\r
+1430?\r
 Died:\r
 01-03/11/1456\r
 \r
@@ -4868,12 +4868,12 @@ URL:
 Born:\r
 1373\r
 Died:\r
-21/04/10\r
+21/04/1410\r
 \r
 Father:\r
 134\r
 Mother:\r
-Jatherine Swynford\r
+Katherine Swynford\r
 \r
 Spouses:\r
 Margaret Holland\r
@@ -5340,7 +5340,7 @@ Mother:
 120\r
 \r
 Spouses:\r
-163\r
+227\r
 \r
 Style:\r
 Duke of Kent and Strathearn\r
@@ -5533,9 +5533,9 @@ URL:
 .\r
 \r
 Born:\r
-972\r
+?\r
 Died:\r
-992\r
+992-994\r
 \r
 Father:\r
 Gunnar or Oslac\r
@@ -5634,10 +5634,10 @@ Died:
 Father:\r
 Siemomyst\r
 Mother:\r
-173\r
+?\r
 \r
 Spouses:\r
-73\r
+173\r
 \r
 Style:\r
 Duke of Poland\r
@@ -6285,7 +6285,7 @@ URL:
 Born:\r
 1099\r
 Died:\r
-09/04/37\r
+19/04/1137\r
 \r
 Father:\r
 William IX\r
@@ -6588,12 +6588,12 @@ To:
 Style:\r
 Earl of Gloucester\r
 Territories:\r
-1213\r
+Gloucester\r
 \r
 From:\r
-1216\r
+1213\r
 To:\r
-\r
+1216\r
 \r
 \r
 \r
@@ -6886,7 +6886,7 @@ URL:
 Born:\r
 13/05/1254\r
 Died:\r
-12/01/132\r
+12/01/1321\r
 \r
 Father:\r
 Henry III Duke of Brabant\r
@@ -7716,7 +7716,7 @@ URL:
 .\r
 \r
 Born:\r
-1415/1416\r
+1415-1416\r
 Died:\r
 30/05/1472\r
 \r
@@ -7952,12 +7952,12 @@ Died:
 02/03/1502\r
 \r
 Father:\r
-103\r
+37\r
 Mother:\r
-104\r
+103\r
 \r
 Spouses:\r
-37\r
+104\r
 \r
 Style:\r
 Print of Wales, Earl of Chester, Duke of Cornwall\r
@@ -8137,9 +8137,9 @@ URL:
 .\r
 \r
 Born:\r
-c1523\r
+c1478\r
 Died:\r
-13/02/1542\r
+19/03/1539\r
 \r
 Father:\r
 Thomas Howard\r
@@ -9095,7 +9095,7 @@ ID:
 280\r
 \r
 Name:\r
-Luise Eleonor of Hohenlohe-Langenburg\r
+Luise Eleonore of Hohenlohe-Langenburg\r
 \r
 URL:\r
 .\r
index c1f6bccfdd3d461b78170dd0c3e1132a6b7c6f8c..c14f71edef43f6455d7bd82c6b5b8a6a22036bc4 100644 (file)
Binary files a/familyTree/tree.db and b/familyTree/tree.db differ