From: Naath (Helen) Cousins Date: Sat, 29 Mar 2014 16:58:15 +0000 (+0000) Subject: initial commit X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~naath/git?a=commitdiff_plain;h=cfada61886cd0e998d20ec4002c0c157dc25d3aa;p=familyTree.git initial commit --- cfada61886cd0e998d20ec4002c0c157dc25d3aa diff --git a/ancestors.py b/ancestors.py new file mode 100755 index 0000000..a03afa6 --- /dev/null +++ b/ancestors.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +# enable debugging +import cgi +import cgitb +import sys +import re +sys.path.append('/home/naath/familyTree') +import askQuestion +import everyPage + +[conn,form]=everyPage.top() + +ID = form.getvalue('ID') +if ID == None: + ID = 1 + +ID2 = form.getvalue('ID2') +if ID2 == None: + type =1 +else: + type =2 + +result = re.match('^[0-9]{1,3}$', str(ID)) +if type==2: + result2 = re.match('^[0-9]{1,3}$', str(ID2)) +else: + result2 = 1 + +if result == None or result2==None: + everyPage.bad() +else: + if type==1: + printMe = askQuestion.all_ancestors(ID,'
')[0] + + else: + printMe = askQuestion.common_ancestors(ID,ID2,'
')[0] + if len(printMe)<10: + printMe = 'sorry, no data
' + + everyPage.good(printMe) + + +everyPage.bottom(conn) diff --git a/countNames.py b/countNames.py new file mode 100755 index 0000000..2a66ecf --- /dev/null +++ b/countNames.py @@ -0,0 +1,25 @@ +#!/usr/bin/python + +import cgi +import cgitb +import sys +import re +sys.path.append('/home/naath/familyTree') +import askQuestion +import everyPage + +[conn,form]=everyPage.top() + +result = 1 +if result == None: + everyPage.bad() +else: + printMe = askQuestion.count_names('
') + if len(printMe)<10: + printMe = 'sorry, no data
' + + everyPage.good(printMe) + + +everyPage.bottom(conn) + diff --git a/everyPage.py b/everyPage.py new file mode 100755 index 0000000..8bdc2ce --- /dev/null +++ b/everyPage.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +import cgi +import cgitb +import sys +import re +sys.path.append('/home/naath/familyTree') +import askQuestion +import everyPage + +def base_url(): + return 'http://www.chiark.greenend.org.uk/ucgi/~naath/' + +def links(): + print '
' + print ' list of people' + print '
' + print ' list of territories' + print '
' + print ' count how many times first names are use' + + print '
' +def footer(): + print '
' + print 'This somewhat silly thing made by ' + print 'naath' + print '
' + print 'Thanks to chiark for hosting this' + +def title(titleNum): + return 'Silly toy' + +def page_header(): + print 'This is a silly toy for exploring the genealogy of the monarchs of England' +def top(): + + + print "Content-Type: text/html;charset=utf-8" + print + + conn = askQuestion.connect() + + form = cgi.FieldStorage() + return [conn,form] + +def html_start(titleNum): + print "" + print "" + print ""+ title(titleNum) +"" + print "" + print "" + page_header() + links() + +def bad(): + html_start(1) + print 'Go Away' + +def good(printMe): + html_start(2) + print printMe + +def bottom(conn): + links() + footer() + print "" + print "" + askQuestion.close(conn) + diff --git a/everyPage.pyc b/everyPage.pyc new file mode 100644 index 0000000..af844d9 Binary files /dev/null and b/everyPage.pyc differ diff --git a/familyTree/askQuestion.py b/familyTree/askQuestion.py new file mode 100755 index 0000000..42621f3 --- /dev/null +++ b/familyTree/askQuestion.py @@ -0,0 +1,471 @@ +#!/usr/bin/python + +import sqlite3 +import findYear + +def run_query(s,t): + c = make_cursor() + return c.execute(s,t) + +def print_row(row,newLine): + out = '' + for item in row: + out = out + str(item)+'|' + return out[:-1] + newLine + +def print_query(s,t,newLine): + printMe = '' + for row in run_query(s,t): + printMe = printMe + print_row(row,newLine) + return printMe + +def is_number(s): + try: + float(s) + return 1 + except ValueError: + return 0 + +def print_relation(relationship,s,t,newLine): + mine = '' + for row in run_query(s,t): + mine = mine + print_none_value(relationship,row,newLine) + return mine + +def relationship_html(ID,ID2,newLine): + if newLine=='
': + relationship = common_ancestors(ID,ID2,newLine)[2] + url="http://www.chiark.greenend.org.uk/ucgi/~naath/ancestors.py?ID="+ID+"&ID2="\ + +str(ID2) + return relationship + ': Common Ancestors'+newLine + else: + return '' + +def terr_html(terr,newLine): + if newLine=='
': + url = "http://www.chiark.greenend.org.uk/ucgi/~naath/territory.py?terr=" + return ''+terr+'' + + else: + return terr +def row_html(row,html): + if html == 1: + url = "http://www.chiark.greenend.org.uk/ucgi/~naath/person.py?ID=" + str(row[1]) + name = row[0] + return ""+name+"" + if row[0] == None: + return row[1] + else: + return row[0] + "," +str(row[1]) + +def print_none_value(relationship,row,newLine): + if row[0]==None: + out = relationship + " not yet entered: " + row[1] + else: + if newLine == '
': + html = 1 + else: + html=0 + if relationship =='': + out = row_html(row,html) + ' ' + else: + out = relationship + ": " + row_html(row,html) + return out + newLine + +def list_territories(newLine): + s = "SELECT DISTINCT territory"\ + +" FROM territories"\ + +" ORDER BY territory;" + + out = '' + for row in run_query(s,()): + out =out + terr_html(row[0],newLine) +newLine + return out + +def list_people(newLine): + s = "SELECT name,id,bornyear"\ + +" FROM people"\ + +" ORDER BY bornyear;" + + out = '' + year = 0 + out = out + 'born in unknown year:' +newLine + for row in run_query(s,()): + if row[2]!=0 and row[2]/100==0: + out = out +newLine+ 'born in 1st century:' +newLine + + if row[2]/100!=year/100: + century = row[2]/100 + 1 + out = out +newLine+ 'born in ' + str(century) + + if century==21: + out = out + 'st' + elif century==2: + out = out + 'nd' + else: + out = out + 'th' + + out = out + ' century:' + newLine + + out = out + print_none_value('',row,newLine) + year = row[2] + return out + +def count_names(newLine): + s = "SELECT firstName, count(*)"\ + +" FROM people"\ + +" GROUP BY firstName"\ + +" ORDER BY count(*) DESC;" + + out = print_query(s,(),newLine) + + + return out + +def all_ancestors(personID,newLine): + #find parents + s = "SELECT people.Name,parents.parentID FROM"\ + +" parents LEFT JOIN people"\ + +" ON parents.parentID = people.ID"\ + +" WHERE parents.ID = ?"\ + +" AND parents.parentID <> '.';" + + + ancestors = [personID] + allAncestors = [personID] + trackLevel = [0] + level = 0 + + t = "SELECT name,id FROM people WHERE id==?" + id = (personID,) + + out = "Ancestors of " + for row in run_query(t,id): + out = out + print_none_value('',row,newLine) + + while len(ancestors)>0: + level = level+1 + newA =[] + out = out+newLine + parent_level(level) +':' + newLine + for ancestor in ancestors: + id = (ancestor,) + for row in run_query(s,id): + out = out + print_none_value('',row,newLine) + if row[1] not in allAncestors and is_number(row[1])!=0: + newA.append(row[1]) + allAncestors.append(row[1]) + trackLevel.append(level) + ancestors = newA + + + return [out, allAncestors,trackLevel] + + +def common_ancestors(IDA, IDB,newLine): + out = 'Common ancestors of:' + newLine + + s = "SELECT name,id FROM people WHERE id==?" + + + names=[] + for id in (IDA,IDB): + t = (id,) + for row in run_query(s,t): + out = out + print_none_value('',row,newLine) + names.append(row[0]) + if id==IDA: + out = out + 'and' + out = out + newLine + + if len(names)!=2: + related = 'No details held on one party' + out = out + related + return [out,[],related] + + + a = all_ancestors(IDA,newLine) + b = all_ancestors(IDB,newLine) + + ancestorsB = set(b[1]) + ancestorsA = set(a[1]) + + common = ancestorsA.intersection(ancestorsB) + common = list(common) + + + aLevels=[] + bLevels=[] + for c in common: + i = a[1].index(c) + aLevels.append(a[2][i]) + i = b[1].index(c) + bLevels.append(b[2][i]) + + s = "SELECT Name, ID, bornyear"\ + +" FROM people"\ + +" WHERE ID IN (" + for i in range(len(common)): + s = s+ "?," + if len(common)>0: + s = s[:-1] + + + s = s+") ORDER BY bornyear;" + + + if len(common)==0: + related = names[0]+' and '+names[1]+' are not related' + out = out + newLine + related + return [out, common,related] + + + out = out + print_relation('',s,common,newLine) + + indexA=[] + indexB=[] + + for i in range(len(common)): + if aLevels[i] == min(aLevels): + indexA.append(i) + if bLevels[i] == min(bLevels): + indexB.append(i) + + + + s = "SELECT name, id"\ + +" FROM people"\ + +" WHERE id=?" + + out = out + newLine + 'Most Recent Common Ancestors:' + newLine + for a in indexA: + t = (common[a],) + out = out + print_relation('',s,t,newLine) + if a!=indexA[-1]: + out = out + 'and' + newLine + + out = out + parent_level(aLevels[indexA[0]]) + if len(indexA) >1: + out = out + 's' + + out = out + ' of ' + print_none_value('',[names[0],IDA],newLine) + + out = out + newLine + for b in indexB: + t = (common[b],) + out = out + print_relation('',s,t,newLine) + if b!=indexB[-1]: + out = out + 'and' + newLine + + out = out + parent_level(bLevels[indexB[0]]) + if len(indexB)>1: + out = out + 's' + out = out + ' of ' + print_none_value('',[names[1],IDB],newLine) + + + al = aLevels[indexA[0]] + bl = bLevels[indexB[0]] + + related = relationship(al,bl,names) + out = out+newLine + related + + return [out,common,related] + +def relationship(level1, level2,names): + + if level1==0 and level2==0: + return names[0] + ' is ' +names[1] + if level1==0: + return names[0] + ' is ' + names[1] + '\'s '+ parent_level(level2) + if level2==0: + return names[1] + ' is ' + names[0] + '\'s '+ parent_level(level1) + + if level1==level2: + remove = 0 + if level1==1: + return names[0] +' and '+names[1] +' are '+' siblings' + else: + cousinNum = level1-1 + + if level1>level2: + remove = level1-level2 + cousinNum = level2-1 + else: + remove = level2-level1 + cousinNum = level1-1 + + if cousinNum==0: + if level1< level2: + return names[0] + ' is ' + names[1] + '\'s uncle or aunt' + + if level2 ?" + + ids = (row[1],t[0]) + + for row in run_query(u,ids): + output = output + print_none_value('With',row,newLine) + + output = output + newLine + + return output + +def connect(): + global conn + conn = sqlite3.connect('/home/naath/familyTree/tree.db') + return conn + +def make_cursor(): + return conn.cursor() + +def close(conn): + conn.close + +#def main(): + +# [c, conn] = connect() +# +# person_info(1,c) +# person_info(17,c) +# person_info(38,c) +# person_info(90,c) +# +# close(conn) diff --git a/familyTree/askQuestion.pyc b/familyTree/askQuestion.pyc new file mode 100644 index 0000000..00fac13 Binary files /dev/null and b/familyTree/askQuestion.pyc differ diff --git a/familyTree/findYear.py b/familyTree/findYear.py new file mode 100755 index 0000000..179460a --- /dev/null +++ b/familyTree/findYear.py @@ -0,0 +1,26 @@ +#!/usr/bin/python + +import re + +def find_year(date): + + dates = date.split('/') + + if len(dates)==3: + return dates[2] + + if len(dates)==2: + return dates[1] + + if len(dates)==1: + parts = date.split('-') + + matches = re.search('[0-9]{1,4}',parts[0]) + if matches==None: + return 0 + else: + return matches.group(0) + + return 0 + + diff --git a/familyTree/findYear.pyc b/familyTree/findYear.pyc new file mode 100644 index 0000000..1557a83 Binary files /dev/null and b/familyTree/findYear.pyc differ diff --git a/familyTree/makeDataBase b/familyTree/makeDataBase new file mode 100755 index 0000000..027d96b --- /dev/null +++ b/familyTree/makeDataBase @@ -0,0 +1,6 @@ + rm tree.db +./makeTables.py | sqlite3 tree.db +./makeMarriageTable.py |sqlite3 tree.db +./marriageSQL.py | sqlite3 tree.db +./text2SQL.py | sqlite3 tree.db + diff --git a/familyTree/makeMarriageTable.py b/familyTree/makeMarriageTable.py new file mode 100755 index 0000000..2e49d46 --- /dev/null +++ b/familyTree/makeMarriageTable.py @@ -0,0 +1,5 @@ +#!/usr/bin/python + +s = 'CREATE TABLE marriages\n(\nIDa int,\nIDb text);' + +print s diff --git a/familyTree/makeTables.py b/familyTree/makeTables.py new file mode 100755 index 0000000..b1667a5 --- /dev/null +++ b/familyTree/makeTables.py @@ -0,0 +1,21 @@ +#!/usr/bin/python + +s = 'CREATE TABLE people\n(\nID int,\nName text,\nFirstName'\ + +' text,\nBorn text,\nbornYear int,\nDied text,\ndiedYear int);' + +print s + +s = 'CREATE TABLE styles\n(\nID int,\nStyle text,\nStart text,\nstartYear int'\ + +',\nStop text,\nstopYear int);' + +print s + +s = 'CREATE TABLE territories\n(\nID int,\nTerritory text,'\ + +'\nStart text,\nstartYear,\nStop text,\nstopYear);' + +print s + +s = 'CREATE TABLE parents\n(\nID int,\nparentID text);' + +print s + diff --git a/familyTree/marriageSQL.py b/familyTree/marriageSQL.py new file mode 100755 index 0000000..bf6f895 --- /dev/null +++ b/familyTree/marriageSQL.py @@ -0,0 +1,54 @@ +#!/usr/bin/python + +def add_quotes(s): + return '\''+s+'\'' + +def is_number(s): + try: + float(s) + return s + except ValueError: + return add_quotes(s) + +def make_insert(table,fields): + s = 'INSERT INTO ' + table + ' VALUES(' + for f in fields: + s = s + f + ',' + s = s[:-1] + s = s+');' + return s + +f = open('tree','r') + +lastline=''; + +s = 0; +for line in f: + thisline = line + if thisline[-2:] == '\r\n': + thisline = thisline[:-2] + if lastline=='ID:': + thisID = is_number(thisline) + if s == 1: + if thisline =='': + s=0 + for spouse in spouses: + try: + if float(thisID) < float(spouse): + s = make_insert('marriages', + [thisID,spouse]) + print s + except ValueError: + s = make_insert('marriages', + [thisID,spouse]) + print s + + else: + spouses.append(is_number(thisline)) + if lastline == 'Spouses:': + spouses = [is_number(thisline)] + s = 1; + + lastline = thisline + + diff --git a/familyTree/notes b/familyTree/notes new file mode 100644 index 0000000..a0708a0 --- /dev/null +++ b/familyTree/notes @@ -0,0 +1,19 @@ +`convert-to-sql-inserts 0: + print back[2] + +askQuestion.close(conn) + + + + diff --git a/familyTree/text2SQL.py b/familyTree/text2SQL.py new file mode 100755 index 0000000..6b9d310 --- /dev/null +++ b/familyTree/text2SQL.py @@ -0,0 +1,94 @@ +#!/usr/bin/python +import findYear + +def add_quotes(s): + return '\''+s+'\'' + +def is_number(s): + try: + float(s) + return s + except ValueError: + return add_quotes(s) + +def make_insert(table,fields): + s = 'INSERT INTO ' + table + ' VALUES(' + for f in fields: + s = s + str(f) + ',' + s = s[:-1] + s = s+');' + return s + +f = open('tree','r') + +lastline=''; +finishedRecord = 0; +hasStyle = 0; +terr = 0; +for line in f: + thisline = line + if thisline[-2:] == '\r\n': + thisline = thisline[:-2] + if lastline == 'ID:': + thisID = thisline + if lastline == 'Name:': + names = thisline.split() + if len(names)>0: + firstName = add_quotes(names[0]) + else: + firstName = '' + thisName = add_quotes(thisline) + if lastline == 'Born:': + yb = findYear.find_year(thisline) + thisBorn = add_quotes(thisline) + if lastline == 'Died:': + yd = findYear.find_year(thisline) + thisDied = add_quotes(thisline) + finishedRecord = 1 + if lastline == 'Father:': + a = is_number(thisline) + s = make_insert('parents',[thisID, a]) + print s + if lastline=='Mother:': + a=is_number(thisline) + s = make_insert('parents',[thisID, a]) + print s + + if finishedRecord ==1: + s = make_insert('people',\ + [thisID,thisName,firstName,thisBorn,yb,thisDied,yd]) + print s + finishedRecord = 0 + if lastline == 'Style:': + thisStyle = add_quotes(thisline) + hasStyle = 1; + if terr ==1: + if thisline=='': + terr=0; + else: + thisTerr.append(add_quotes(thisline)) + if lastline == 'Territories:': + thisTerr=[add_quotes(thisline)] + terr = 1; + if hasStyle == 1: + if lastline=='From:': + yf = findYear.find_year(thisline) + thisFrom = add_quotes(thisline) + if lastline =='To:': + yt = findYear.find_year(thisline) + thisTo = add_quotes(thisline) + s = make_insert('styles',[thisID,thisStyle,thisFrom,\ + yf,thisTo,yt]) + print s + + for terr in thisTerr: + s = make_insert('territories',[thisID,terr,\ + thisFrom,yf,thisTo,yt]) + + print s + + hasStyle = 0 + + lastline = thisline + + diff --git a/familyTree/tree b/familyTree/tree new file mode 100644 index 0000000..70bb633 --- /dev/null +++ b/familyTree/tree @@ -0,0 +1,4781 @@ +ID: +1 + +Name: +Alfred the Great + +Born: +849 +Died: +26/10/899 + +Father: +Aethelwulf +Mother: +Osburh + +Spouses: +61 + +Style: +King of Wessex +Territories: +Wessex + +From: +871 +To: +899 + + + +ID: +2 + +Name: +Edward the Elder + +Born: +874-877 +Died: +17/07/924 + +Father: +1 +Mother: +61 + +Spouses: +62 +63 + +Style: +King of Wessex +Territories: +Wessex + +From: +26/10/899 +To: +17/07/924 + + + +ID: +3 + +Name: +Aethelstan + +Born: +893-895 +Died: +27/10/939 + +Father: +2 +Mother: +62 + +Style: +King of the Anlgo-Saxons +Territories: +Anglo-Saxons + +From: +924 +To: +927 + +Style: +English +Territories: +England + +From: +927 +To: +939 + + + +ID: +4 + +Name: +Edmund I + +Born: +921 +Died: +26/05/946 + +Father: +2 +Mother: +64 + +Spouses: +65 +66 + +Style: +King of the English +Territories: +England + +From: +936 +To: +26/05/946 + + + +ID: +5 + +Name: +Eadred + +Born: +? +Died: +23/11/955 + +Father: +2 +Mother: +64 + +Style: +King of the English +Territories: +England + +From: +26/05/946 +To: +23/11/955 + + + +ID: +6 + +Name: +Eadwig (Edwy) + +Born: +941? +Died: +01/10/959 + +Father: +4 +Mother: +65 + +Spouses: +67 + +Style: +King of the English +Territories: +England + +From: +23/11/955 +To: +01/10/959 + + + +ID: +7 + +Name: +Edgar the Peaceful + +Born: +07/28/943 +Died: +08/07/975 + +Father: +4 +Mother: +65 + +Spouses: +68 +69 +70 + +Style: +King of the English +Territories: +England + +From: +01/10/959 +To: +08/07/975 + + + +ID: +8 + +Name: +Edward the Martyr + +Born: +962 +Died: +18/03/978 + +Father: +7 +Mother: +68 or 69 + +Style: +King of the English +Territories: +England + +From: +08/07/975 +To: +18/03/978 + + + +ID: +9 + +Name: +Aethelred the Unready + +Born: +966-968 +Died: +23/04/1016 + +Father: +7 +Mother: +70 + +Spouses: +71 +72 + +Style: +King of the English +Territories: +England + +From: +18/03/978 +To: +1013 + +Style: +English +Territories: +England + +From: +1014 +To: +23/04/1016 + + + +ID: +10 + +Name: +Sweyn Forkbeard + +Born: +960 +Died: +03/02/1014 + +Father: +Harald Bluetooth +Mother: +Gunhild/Tove + +Spouses: +73 + +Style: +King of the English +Territories: +England + +From: +1013 +To: +03/02/1014 + +Style: +Denmark +Territories: +Denmark + +From: +986 +To: +03/02/1014 + +Style: +Norway +Territories: +Norway + +From: +986 +To: +995 + +Style: +Norway +Territories: +Norway + +From: +999 +To: +03/02/14 + + + +ID: +11 + +Name: +Edmund Ironside + +Born: +989 +Died: +30/11/1016 + +Father: +9 +Mother: +71 + +Spouses: +74 + +Style: +King of the English +Territories: +England + +From: +23/04/1016 +To: +30/11/1016 + + + +ID: +12 + +Name: +Cnut + +Born: +985 +Died: +12/11/1035 + +Father: +10 +Mother: +73 + +Spouses: +75 +72 + +Style: +King of the English +Territories: +England + +From: +1016 +To: +1035 + +Style: +Denmark +Territories: +Denmark + +From: +1018 +To: +1035 + +Style: +Norway +Territories: +Norway + +From: +1028 +To: +1035 + + + +ID: +13 + +Name: +Harold I Harefoot + +Born: +c1015 +Died: +17/03/1040 + +Father: +12 +Mother: +75 + +Style: +King of the English +Territories: +England + +From: +1035 +To: +17/03/1040 + + + +ID: +14 + +Name: +Harthacnut + +Born: +c1018 +Died: +08/06/1042 + +Father: +12 +Mother: +72 + +Style: +King of the English +Territories: +England + +From: +17/03/1040 +To: +08/06/1042 + +Style: +Denmark +Territories: +Denmark + +From: +1035 +To: +1042 + + + +ID: +15 + +Name: +Edward the Confessor + +Born: +C1003-1005 +Died: +4-5/01/1066 + +Father: +9 +Mother: +72 + +Spouses: +76 + +Style: +King of the English +Territories: +England + +From: +08/06/1042 +To: +4-5/01/1066 + + + +ID: +16 + +Name: +Harold II Godwinson + +Born: +c1022 +Died: +14/10/1066 + +Father: +176 +Mother: +177 + +Spouses: +77 +78 + +Style: +King of the English +Territories: +England + +From: +4-5/01/1066 +To: +14/10/1066 + + + +ID: +17 + +Name: +William I the Conqueror + +Born: +c1028 +Died: +09/09/1087 + +Father: +128 +Mother: +129 + +Spouses: +79 + +Style: +King of the English +Territories: +England + +From: +25/11/1066 +To: +09/09/1087 + +Style: +Duke of Normandy +Territories: +Normandy + +From: +03/07/1035 +To: +09/09/1087 + + + +ID: +18 + +Name: +William II + +Born: +c1056 +Died: +02/08/1100 + +Father: +17 +Mother: +79 + +Style: +King of the English +Territories: +England + +From: +09/09/1087 +To: +02/08/1100 + + + +ID: +19 + +Name: +Henry I Beuclerc + +Born: +1068 +Died: +01/12/1135 + +Father: +17 +Mother: +79 + +Spouses: +80 +81 + +Style: +King of the English, Duke of the Normans +Territories: +England +Normandy + +From: +02/08/1100 +To: +01/12/1135 + + + +ID: +20 + +Name: +Stephen + +Born: +C1092-1096 +Died: +25/10/1154 + +Father: +130 +Mother: +131 + +Spouses: +82 + +Style: +King of the English, Duke of the Normans +Territories: +England +Normandy + +From: +22/11/1135 +To: +?/04/1141 + +Style: +English +Territories: +England + +From: +?/11/1141 +To: +25/10/1154 + + + +ID: +21 + +Name: +Matilda + +Born: +07/02/1102 +Died: +10/09/1167 + +Father: +19 +Mother: +80 + +Spouses: +83 +84 + +Style: +Queen of England, Duke of Normans +Territories: +England +Normandy + +From: +?/04/1141 +To: +?/11/1141 + + + +ID: +22 + +Name: +Henry II Plantagenet + +Born: +05/03/1133 +Died: +06/07/1189 + +Father: +84 +Mother: +21 + +Spouses: +85 + +Style: +King of England, Duke of Normandy, and of Aquitaine and Count of Anjou +Territories: +England +Normandy +Aquitaine +Anjou + +From: +25/10/1154 +To: +06/07/1189 + + + +ID: +23 + +Name: +Henry the young king + +Born: +28/02/1155 +Died: +11/06/1183 + +Father: +22 +Mother: +85 + +Spouses: +86 + +Style: +English (junior king) +Territories: +England + +From: +28/02/155 +To: +11/06/1183 + + + +ID: +24 + +Name: +Richard I Lionheart + +Born: +08/09/1157 +Died: +06/04/1199 + +Father: +22 +Mother: +85 + +Spouses: +87 + +Style: +King of England, Duke of Normandy, and of Aquitaine and Count of Anjou +Territories: +England +Normandy +Aquitaine +Anjou + +From: +06/07/1189 +To: +06/04/1199 + + + +ID: +25 + +Name: +John + +Born: +24/12/1166 +Died: +18-19/10/1216 + +Father: +22 +Mother: +85 + +Spouses: +88 +89 + +Style: +King of England, Lord of Ireland, Duke of Normandy and Duke of Aquitaine +Territories: +England +Ireland +Normandy +Aquitaine + +From: +06/04/1199 +To: +18-19/10/1216 + + + +ID: +26 + +Name: +Henry III + +Born: +01/10/1207 +Died: +16/11/1272 + +Father: +25 +Mother: +89 + +Spouses: +90 + +Style: +King of England, Lord of Ireland, Duke of Normandy and Duke of Aquitaine +Territories: +England +Ireland +Normandy +Aquitaine + +From: +18-19/10/1216 +To: +1259 + +Style: +King of England, Lord of Ireland, and Duke of Aquitaine +Territories: +England +Ireland +Aquitaine + +From: +1259 +To: +16/11/1272 + + + +ID: +27 + +Name: +Edward I + +Born: +17/06/1239 +Died: +07/07/1307 + +Father: +26 +Mother: +90 + +Spouses: +91 +92 + +Style: +King of England, Lord of Ireland, and Duke of Aquitaine +Territories: +England +Ireland +Aquitaine + +From: +16/11/1272 +To: +07/07/1307 + + + +ID: +28 + +Name: +Edward II + +Born: +25/04/1284 +Died: +21/09/1327 + +Father: +27 +Mother: +91 + +Spouses: +93 + +Style: +King of England, Lord of Ireland, and Duke of Aquitaine +Territories: +England +Ireland +Aquitaine + +From: +07/07/1307 +To: +25/01/1327 + + + +ID: +29 + +Name: +Edward III + +Born: +13/11/1312 +Died: +21/06/1377 + +Father: +28 +Mother: +93 + +Spouses: +94 + +Style: +King of England, Lord of Ireland, and Duke of Aquitaine +Territories: +England +Ireland +Aquitaine + +From: +25/01/1327 +To: +1340 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +1340 +To: +21/06/1377 + + + +ID: +30 + +Name: +Richard II + +Born: +06/01/1367 +Died: +14/02/1400 + +Father: +132 +Mother: +133 + +Spouses: +95 +96 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +21/06/1377 +To: +1397 + +Style: +King of England and of France, Lord of Ireland, and Prince of Chester +Territories: +England +France +Ireland +Chester + +From: +1397 +To: +14/02/1400 + + + +ID: +31 + +Name: +Henry IV + +Born: +15/04/1367 +Died: +20/03/1413 + +Father: +134 +Mother: +135 + +Spouses: +97 +98 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +14/02/1400 +To: +20/03/1413 + + + +ID: +32 + +Name: +Henry V + +Born: +16/09/1386 +Died: +31/08/1422 + +Father: +31 +Mother: +97 + +Spouses: +99 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +20/03/1413 +To: +1420 + +Style: +King of England, Heir and Regent of France and Lord of Ireland +Territories: +England +Ireland +Aquitaine + +From: +1420 +To: +31/08/1422 + + + +ID: +33 + +Name: +Henry VI + +Born: +06/11/1421 +Died: +21/05/1471 + +Father: +32 +Mother: +99 + +Spouses: +100 + +Style: +King of England, Heir and Regent of France and Lord of Ireland +Territories: +England +Ireland +Normandy +Aquitaine + +From: +31/08/1422 +To: +1422 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +1422 +To: +04/03/1461 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +30/08/1471 +To: +11/04/1471 + + + +ID: +34 + +Name: +Edward IV + +Born: +28/04/1442 +Died: +09/04/1483 + +Father: +136 +Mother: +137 + +Spouses: +101 + +Style: +King of England, Heir and Regent of France and Lord of Ireland +Territories: +England +Ireland +Normandy +Aquitaine + +From: +04/03/1461 +To: +03/10/1470 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +11/04/1471 +To: +09/04/1483 + + + +ID: +35 + +Name: +Edward V + +Born: +02/11/1470 +Died: +c1483 + +Father: +34 +Mother: +101 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +09/04/1483 +To: +26/06/1483 + + + +ID: +36 + +Name: +Richard III + +Born: +02/10/1452 +Died: +22/08/1485 + +Father: +136 +Mother: +137 + +Spouses: +102 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +26/06/1483 +To: +22/08/1485 + + + +ID: +37 + +Name: +Henry VII + +Born: +28/01/1457 +Died: +21/04/1509 + +Father: +142 +Mother: +143 + +Spouses: +103 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +22/08/1485 +To: +21/04/1509 + + + +ID: +38 + +Name: +Henry VIII + +Born: +28/06/1491 +Died: +28/01/1547 + +Father: +37 +Mother: +103 + +Spouses: +104 +105 +106 +107 +108 +109 + +Style: +King of England and of France and Lord of Ireland +Territories: +England +France +Ireland + +From: +21/04/1509 +To: +1521 + +Style: +By the Grace of God, King of England and France, Defender of the Faith and Lord of Ireland +Territories: +England +France +Ireland + +From: +1521 +To: +1535 + +Style: +By the Grace of God, King of england and France, Defender of the Faith, Lord of Ireland, and of the Church of England in Earth Supreme Head +Territories: +England +France +Ireland + +From: +1535 +To: +1536 + +Style: +By the Grace of God, King of England and France, Defender of the Faith, Lord of Ireland and of the Church of England and of Ireland in Earth Supreme Head +Territories: +England +France +Ireland + +From: +1536 +To: +1542 + +Style: +By the Grace of God, King of England, France and Ireland, Defender of the Faith, and of the Church of England and of Ireland in Earth Supreme Head +Territories: +England +France +Ireland + +From: +1542 +To: +28/01/1547 + + + +ID: +39 + +Name: +Edward VI + +Born: +21/10/1537 +Died: +06/07/1553 + +Father: +38 +Mother: +106 + +Style: +By the Grace of God, King of England, France and Ireland, Defender of the Faith, and of the Church of England and of Ireland in Earth Supreme Head +Territories: +England +France +Ireland + +From: +28/01/1547 +To: +06/07/1553 + + + +ID: +40 + +Name: +Jane Grey + +Born: +C1536-1537 +Died: +12/02/1554 + +Father: +146 +Mother: +147 + +Spouses: +110 + +Style: +By the Grace of God, King of England, France and Ireland, Defender of the Faith, and of the Church of England and of Ireland in Earth Supreme Head +Territories: +England +France +Ireland + +From: +10/07/1553 +To: +19/07/1553 + + + +ID: +41 + +Name: +Mary I + +Born: +18/02/1516 +Died: +17/11/1558 + +Father: +38 +Mother: +104 + +Spouses: +111 + +Style: +By the Grace of God, King of England, France and Ireland, Defender of the Faith, and of the Church of England and of Ireland in Earth Supreme Head +Territories: +England +France +Ireland + +From: +19/07/1553 +To: +1554 + +Style: +By the Grace of God, King and Queen of England and France, Naples, Jerusalem and Ireland, Defenders of the Faith, Princes of Spain and Sicily, Archdukes of Austria, Dukes of Milan, Burgundy, and Brabant, Count and Countess of Habsburg, Flanders, and Tyrol +Territories: +England +France +Naples +Jerusalem +Ireland +Spain +Sicily +Austria +Milan +Burgundy +Brabant +Habsburg +Flanders +Tyrol + +From: +1554 +To: +1556 + +Style: +By the Grade of God, King and Queen of england, Spain, France, Jerusalem, both the Sicilies and Ireland, Defenders of the Faith, Archduke and Archduchess of Austria, Duke and Duchess of Burgundy, Milan and Brabant, Count and Countess of Habsburg, Flanders and Tyrol +Territories: +England +Spain +France +Jerusalem +Sicilies +Ireland +Austria +Burgundy +Milan +Brabant +Habsburg +Flanders +Tyrol + +From: +1556 +To: +17/11/1558 + + + +ID: +42 + +Name: +Elizabeth I + +Born: +07/09/1533 +Died: +24/03/1603 + +Father: +38 +Mother: +105 + +Style: +By the Grace of God, Queen of England, France and Ireland, Defender of the Faith, etc +Territories: +England +France +Ireland + +From: +17/11/1558 +To: +24/03/1603 + + + +ID: +43 + +Name: +James VI & I + +Born: +19/06/1566 +Died: +27/03/1625 + +Father: +150 +Mother: +151 + +Spouses: +112 + +Style: +By the Grace of God, King of England, France, and Ireland, Defender of the Faith etc. +Territories: +England +France +Ireland + +From: +24/03/1603 +To: +27/03/1625 + +Style: +King of Scots +Territories: +Scotland + +From: +24/07/1567 +To: +27/03/1625 + + + +ID: +44 + +Name: +Charles I + +Born: +19/11/1600 +Died: +30/01/1649 + +Father: +43 +Mother: +112 + +Spouses: +113 + +Style: +By the Grace of God, King of England,Scotland, France, and Ireland, Defender of the Faith etc. +Territories: +England +Scotland +France +Ireland + +From: +27/03/1625 +To: +30/01/1649 + +Style: +King of Scots +Territories: +Scotland + +From: +27/03/1625 +To: +30/01/1649 + + + +ID: +45 + +Name: +Charles II + +Born: +7 +Died: +06/02/1685 + +Father: +44 +Mother: +113 + +Spouses: +114 + +Style: +By the Grace of God, King of England,Scotland, France, and Ireland, Defender of the Faith etc. +Territories: +England +Scotland +France +Ireland + +From: +29/05/1660 +To: +06/02/1685 + +Style: +King of Scots +Territories: +Scotland + +From: +30/01/1649 +To: +03/09/1651 + + + +ID: +46 + +Name: +James VII & II + +Born: +14/10/1633 +Died: +16/09/1701 + +Father: +44 +Mother: +113 + +Spouses: +115 +116 + +Style: +By the Grace of God, King of England,Scotland, France, and Ireland, Defender of the Faith etc. +Territories: +England +Scotland +France +Ireland + +From: +06/02/1685 +To: +11/11/1688 + + + +ID: +47 + +Name: +Mary II + +Born: +30/04/1662 +Died: +28/11/1694 + +Father: +46 +Mother: +115 + +Spouses: +48 + +Style: +By the Grace of God, King and Queen of England, Scotland, France and Ireland, Stadholther of the Republic of the Seven United Netherlands, Prince of Orange, Count of Nassau, Defenders of the Faith, etc. +Territories: +England +Scotland +France +Ireland +Netherlands +Orange +Nassau + +From: +13/02/1689 +To: +28/11/1694 + + + +ID: +48 + +Name: +William II & III + +Born: +04/11/1650 +Died: +08/03/1702 + +Father: +155 +Mother: +156 + +Spouses: +47 + +Style: +By the Grace of God, King and Queen of England, Scotland, France and Ireland, Stadholther of the Republic of the Seven United Netherlands, Prince of Orange, Count of Nassau, Defenders of the Faith, etc. +Territories: +England +Scotland +France +Ireland +Netherlands +Orange +Nassau + +From: +13/02/1689 +To: +28/11/1694 + +Style: +By the Grace of God, King of England, Scotland, France and Ireland, Stadholther of the Republic of the Seven United Netherlands, Prince of Orange, Count of Nassau, Defenders of the Faith, etc. +Territories: +England +Scotland +France +Ireland +Netherlands +Orange +Nassau + +From: +04/06/1900 +To: +08/03/1702 + + + +ID: +49 + +Name: +Anne + +Born: +06/02/1665 +Died: +01/08/1714 + +Father: +46 +Mother: +115 + +Spouses: +117 + +Style: +By the Grace of God, Queen of England, Scotland, France and Ireland, Defender of the Faith, etc. +Territories: +England +Scotland +France +Ireland + +From: +08/03/1702 +To: +1707 + +Style: +By the Grace of God, Queen of Great Britain, France and Ireland, Defender of the Faith, etc. +Territories: +GB +France +Ireland + +From: +1707 +To: +01/08/1714 + + + +ID: +50 + +Name: +George I + +Born: +28/05/1660 +Died: +11/06/1727 + +Father: +157 +Mother: +158 + +Spouses: +118 + +Style: +By the Grace of God, King of Great Britain, France and Ireland, Defender of the Faith, Archtreasurer and Prince-Elector of the Holy Roman Empire, Duke of Brunswick-Luneburg +Territories: +GB +France +Ireland +Elector of HRE +Brunswick-Luneburg + +From: +01/08/1714 +To: +11/06/1727 + +Style: +Hanover +Territories: +Hanover + +From: +23/01/1698 +To: +11/06/1727 + + + +ID: +51 + +Name: +George II + +Born: +10/11/1683 +Died: +25/10/1760 + +Father: +50 +Mother: +118 + +Spouses: +119 + +Style: +By the Grace of God, King of Great Britain, France and Ireland, Defender of the Faith, Archtreasurer and Prince-Elector of the Holy Roman Empire, Duke of Brunswick-Luneburg +Territories: +GB +France +Ireland +Elector of HRE +Brunswick-Luneburg + +From: +11/06/1727 +To: +25/10/1760 + + + +ID: +52 + +Name: +George III + +Born: +04/06/1738 +Died: +29/01/1820 + +Father: +160 +Mother: +161 + +Spouses: +120 + +Style: +By the Grace of God, King of Great Britain, France and Ireland, Defender of the Faith, Archtreasurer and Prince-Elector of the Holy Roman Empire, Duke of Brunswick-Luneburg +Territories: +GB +France +Ireland +Elector of HRE +Brunswick-Luneburg + +From: +25/10/1760 +To: +1801 + +Style: +By the Grace of God, of the United Kingdom of Great Britain and Ireland King, Defender of the Faith, Arch-treasurer and Prince-Elector of the Holy Roman Empire, Duke of Brunswick-Luneburg +Territories: +UK +Brunswick-Luneburg + +From: +1801 +To: +1814 + +Style: +By the Grace of God, of the United Kingdom of Great Britain and Ireland King, Defender of the Faith, King of Hanover, Duke of Brunswick +Territories: +UK +Ireland +Hanover +Brunswick + +From: +1814 +To: +29/01/1820 + + + +ID: +53 + +Name: +George IV + +Born: +12/08/1762 +Died: +26/06/1830 + +Father: +52 +Mother: +120 + +Spouses: +121 + +Style: +By the Grace of God, of the United Kingdom of Great Britain and Ireland King, Defender of the Faith, King of Hanover, Duke of Brunswick +Territories: +UK +Hanover +Brunswick + +From: +29/01/1820 +To: +26/06/1830 + + + +ID: +54 + +Name: +William IV + +Born: +21/08/1765 +Died: +20/06/1837 + +Father: +52 +Mother: +120 + +Spouses: +122 + +Style: +By the Grace of God, of the United Kingdom of Great Britain and Ireland King, Defender of the Faith, King of Hanover, Duke of Brunswick +Territories: +UK +Hanover +Brunswick + +From: +26/06/1830 +To: +20/06/1837 + + + +ID: +55 + +Name: +Victoria + +Born: +24/05/1819 +Died: +22/01/1901 + +Father: +162 +Mother: +163 + +Spouses: +123 + +Style: +By the Grace of God, of the United Kingdom of Great Britain and Ireland Queen, Defender of the Faith +Territories: +UK + +From: +20/06/1837 +To: +1876 + +Style: +By the Grace of God, of the United Kingdom of Great Britain and Ireland Queen, Defender of the Faith, Empress of India +Territories: +UK +India + +From: +1876 +To: +22/01/1901 + + + +ID: +56 + +Name: +Edward VII + +Born: +09/11/1841 +Died: +06/05/1910 + +Father: +123 +Mother: +55 + +Spouses: +124 + +Style: +By the Grace of God, of the United Kingdom of Great Britain and Ireland and of the British Dominions beyond the Seas King, Defender of the Faith, Emperor of India +Territories: +UK +British Dominions +India + +From: +22/01/1901 +To: +06/05/1910 + + + +ID: +57 + +Name: +George V + +Born: +03/06/1865 +Died: +20/01/1936 + +Father: +56 +Mother: +124 + +Spouses: +125 + +Style: +By the Grace of God, of the United Kingdom of Great Britain and Ireland and of the British Dominions beyond the Seas King, Defender of the Faith, Emperor of India +Territories: +UK +British Dominions +India + +From: +06/05/1910 +To: +1927 + +Style: +By the Grace of God, of Great Britain, Ireland and the British Dominions beyond the Seas King, Defender of the Faith, Emperor of India +Territories: +GB +Ireland +Dominions +India + +From: +1927 +To: +20/01/1936 + + + +ID: +58 + +Name: +Edward VIII + +Born: +23/06/1894 +Died: +28/05/1972 + +Father: +57 +Mother: +125 + +Spouses: +126 + +Style: +By the Grace of God, of Great Britain, Ireland and the British Dominions beyond the Seas King, Defender of the Faith, Emperor of India +Territories: +GB +Ireland +British Dominions +India + +From: +20/01/1936 +To: +11/11/1936 + + + +ID: +59 + +Name: +George VI + +Born: +14/11/1895 +Died: +06/02/1952 + +Father: +57 +Mother: +125 + +Spouses: +127 + +Style: +By the Grace of God, of Great Britain, Ireland and the British Dominions beyond the Seas King, Defender of the Faith, Emperor of India +Territories: +GB +Ireland +British Dominions +India + +From: +11/11/1936 +To: +1948 + +Style: +By the Grace of God, of Great Britain, Ireland and the British Dominions beyond the Seas King, Defender of the Faith +Territories: +GB +Ireland +Dominions + +From: +1948 +To: +06/02/1952 + + + +ID: +60 + +Name: +Elizabeth II + +Born: +21/04/1926 +Died: +present + +Father: +59 +Mother: +127 + +Spouses: +226 + +Style: +By the Grace of God, of the United Kingdom of Great Britain and Northern Ireland and of Her other Realms and Territories Queen, Head of the Commonwealth, Defender of the Faith +Territories: +UK +Realms and Territories +Commonwealth + +From: +06/02/1952 +To: +present + + + +ID: +61 + +Name: +Ealhswith + +Born: +? +Died: +05/11/902 + +Father: +Aethelred Mucel +Mother: +Eadburh + +Spouses: +1 + + + +ID: +62 + +Name: +Ecgwyn + +Born: +? +Died: +? + +Father: +? +Mother: +? + +Spouses: +2 + + + +ID: +63 + +Name: +Aelfflaed + +Born: +? +Died: +? + +Father: +? +Mother: +? + +Spouses: +2 + +Style: +Queen Consort of Wessex +Territories: +Wessex + +From: + + + +ID: +64 + +Name: +Eadgifu + +Born: +~903 +Died: +~966 + +Father: +166 +Mother: +? + +Spouses: +2 + +Style: +Queen Consort of the Anglo-Saxons +Territories: +Anglo-Saxons + +From: + + + +ID: +65 + +Name: +Aelfgifu of Shaftsbury + +Born: +? +Died: +~944 + +Father: +? +Mother: +164 + +Spouses: +4 + +Style: +Queen Consort of England +Territories: +England + +From: + + + +ID: +66 + +Name: +Aethelflaed of Damerham + +Born: +? +Died: +? + +Father: +165 +Mother: +? + +Spouses: +4 + +Style: +Queen Consort of England +Territories: +England + +From: +944 +To: +26/05/946 + + + +ID: +67 + +Name: +Aelfgifu + +Born: +? +Died: +? + +Father: +? +Mother: +166 + +Spouses: +6 + +Style: +Queen Consort of England +Territories: +England + +From: +23/11/955 +To: +01/10/959 + + + +ID: +68 + +Name: +Aethelflaed + +Born: +? +Died: +? + +Father: +? +Mother: +? + +Spouses: +7 + + + +ID: +69 + +Name: +Wulthryth + +Born: +? +Died: +? + +Father: +? +Mother: +? + +Spouses: +7 + + + +ID: +70 + +Name: +Aelfthryth + +Born: +c.945 +Died: +c1000 + +Father: +167 +Mother: +? + +Spouses: +168 +7 + +Style: +Queen Consort of England +Territories: +England + +From: +964/965 +To: +08/07/975 + + + +ID: +71 + +Name: +Aelfgifu of York + +Born: +c. 970 +Died: +1002 + +Father: +169 +Mother: +? + +Spouses: +9 + +Style: +Queen Consort of England +Territories: +England + +From: +?980 +To: +28/09/1902 + + + +ID: +72 + +Name: +Emma of Normandy + +Born: +c. 985 +Died: +06/03/1052 + +Father: +170 +Mother: +171 + +Spouses: +9 +12 + +Style: +Queen Consort of England +Territories: +England + +From: +1002 +To: +Summer 1013 + +Style: +Queen Consort of England +Territories: +England + +From: +03/02/1014 +To: +23/04/1016 + +Style: +Queen Consort of England +Territories: +England + +From: +07/1017 +To: +12/11/1035 + +Style: +Queen Consort of Denmark +Territories: +Denmark + +From: +1018 +To: +12/11/1035 + +Style: +Queen Consort of Norway +Territories: +Norway + +From: +1028 +To: +12/11/1035 + + + +ID: +73 + +Name: +Sigrid the Haughty + +Born: +? +Died: +? + +Father: +172 +Mother: +173 + +Spouses: +174 +10 + +Style: +Queen Consort of Sweden,Denmark,Norway,England +Territories: +Sweden +Denmark +Norway +England + +From: + + + +ID: +74 + +Name: +Ealdgyth + +Born: +c. 992 +Died: +Post 1016 + +Father: +? +Mother: +? + +Spouses: +Sigeferth +11 + +Style: +Queen Consort of England +Territories: +England + +From: +23/04/1016 +To: +30/11/1016 + + + +ID: +75 + +Name: +Aelfgifu of Northampton + +Born: +c. 990 +Died: +Post 1040 + +Father: +175 +Mother: +? + +Spouses: +12 + + + +ID: +76 + +Name: +Edith of Wessex + +Born: +C 1025 +Died: +18/12/1075 + +Father: +176 +Mother: +177 + +Spouses: +15 + +Style: +Queen Consort of England +Territories: +England + +From: +1045 +To: +05/01/1066 + + + +ID: +77 + +Name: +Edith the Fair + +Born: +C 1025 +Died: +1086 + +Father: +? +Mother: +? + +Spouses: +16 + + + +ID: +78 + +Name: +Edith of Mercia + +Born: +C 1057 +Died: +1066 + +Father: +177 +Mother: +178 + +Spouses: +179 +16 + +Style: +Queen Consort of England +Territories: +England + +From: +01/1066 +To: +14/10/1066 + + + +ID: +79 + +Name: +Matilda of Flanders + +Born: +C 1031 +Died: +02/11/1083 + +Father: +180 +Mother: +181 + +Spouses: +17 + +Style: +Queen Consort of England +Territories: +England + +From: +25/12/1066 +To: +02/11/1083 + + + +ID: +80 + +Name: +Matilda of Scotland + +Born: +C 1080 +Died: +01/05/1118 + +Father: +182 +Mother: +183 + +Spouses: +19 + +Style: +Queen Consort of England +Territories: +England + +From: +11/11/1100 +To: +01/05/1118 + + + +ID: +81 + +Name: +Adeliza of Louvain + +Born: +C 1103 +Died: +23/04/1151 + +Father: +184 +Mother: +185 + +Spouses: +19 +186 + +Style: +Queen Consort of England +Territories: +England + +From: +24/01/1121 +To: +01/12/1135 + + + +ID: +82 + +Name: +Matilda of Boulogne + +Born: +? 1105 +Died: +03/05/1152 + +Father: +187 +Mother: +188 + +Spouses: +20 + +Style: +Queen Consort of England +Territories: +England + +From: +22/11/1135 +To: +07/04/1141 + +Style: +Queen Consort of England +Territories: +England + +From: +01/11/1141 +To: +03/05/1152 + +Style: +Countess of Boulogne +Territories: +Boulogne + +From: +C 1125 +To: +03/05/1152 + + + +ID: +83 + +Name: +Henry V + +Born: +11/08/1086 +Died: +23/05/1125 + +Father: +189 +Mother: +190 + +Spouses: +21 + +Style: +Holy Roman Emperor +Territories: +HRE + +From: +1111 +To: +1125 + +Style: +King of Germany +Territories: +Germany + +From: +1099 +To: +1125 + +Style: +King of Italy +Territories: +Italy + +From: +1098 +To: +1125 + + + +ID: +84 + +Name: +Geoffrey V + +Born: +24/08/1113 +Died: +07/09/1151 + +Father: +190 +Mother: +191 + +Spouses: +21 + +Style: +Count of Anjou +Territories: +Anjou + +From: +1129 +To: +07/09/1151 + + + +ID: +85 + +Name: +Eleanor of Aquitaine + +Born: +1122-1124 +Died: +01/04/1204 + +Father: +192 +Mother: +193 + +Spouses: +194 +22 + +Style: +Queen Consort of England +Territories: +England + +From: +25/10/1154 +To: +06/07/1189 + +Style: +Queen Consort of France +Territories: +France + +From: +01/08/1137 +To: +21/03/1152 + +Style: +Duchess of Aquitaine +Territories: +Aquitaine + +From: +09/04/37 +To: +01/04/1204 + + + +ID: +86 + +Name: +Margaret of France + +Born: +?/11/1157 +Died: +08-09/1197 + +Father: +194 +Mother: +195 + +Spouses: +23 +196 + +Style: +Junior Queen Consort of England +Territories: +England + +From: +1170 +To: +11/06/1183 + +Style: +Queen Consort of Hungary +Territories: +Hungary + +From: +1186 +To: +1196 + + + +ID: +87 + +Name: +Berengaria of Navarre + +Born: +C 1165-1170 +Died: +23/11/1230 + +Father: +197 +Mother: +198 + +Spouses: +24 + +Style: +Queen Consort of England +Territories: +England + +From: +12/05/1191 +To: +06/04/1199 + + + +ID: +88 + +Name: +Isabella of Gloucester + +Born: +C 1173 +Died: +14/10/1217 + +Father: +199 +Mother: +200 + +Spouses: +25 +201 +202 + + + +ID: +89 + +Name: +Isabella of Angouleme + +Born: +C 1188 +Died: +04/06/1246 + +Father: +203 +Mother: +204 + +Spouses: +25 +205 + +Style: +Countess of Angouleme +Territories: +Angouleme + +From: +16/05/1202 +To: +04/06/1246 + +Style: +Queen Consort of England +Territories: +England + +From: +24/08/1200 +To: +19/10/1216 + + + +ID: +90 + +Name: +Eleanor of Provence + +Born: +C 1223 +Died: +24-25/05/1291 + +Father: +206 +Mother: +207 + +Spouses: +26 + +Style: +Queen Consort of England +Territories: +England + +From: +14/01/1236 +To: +16/11/1272 + + + +ID: +91 + +Name: +Eleanor of Castile + +Born: +1241 +Died: +28/11/1290 + +Father: +208 +Mother: +209 + +Spouses: +27 + +Style: +Queen Consort of England +Territories: +England + +From: +16-11-1272 +To: +28-11-1209 + +Style: +Countess of Ponthieu +Territories: +Ponthieu + +From: +1279 +To: +1290 + + + +ID: +92 + +Name: +Margaret of France + +Born: +C 1279 +Died: +14-02-1318 + +Father: +209 +Mother: +210 + +Spouses: +27 + +Style: +Queen Consort of England +Territories: +England + +From: +08/09/1299 +To: +07/07/1307 + + + +ID: +93 + +Name: +Isabella of France + +Born: +1295 +Died: +22/08/1358 + +Father: +212 +Mother: +213 + +Spouses: +28 + +Style: +Queen Consort of England +Territories: +England + +From: +25/01/1308 +To: +20/01/1327 + + + +ID: +94 + +Name: +Philippa of Hainault + +Born: +24/06/1314 +Died: +15/08/1369 + +Father: +213 +Mother: +213 + +Spouses: +29 + +Style: +Queen Consort of England +Territories: +England + +From: +24/01/1328 +To: +15/08/1369 + + + +ID: +95 + +Name: +Anne of Bohemia + +Born: +11/05/1366 +Died: +07/06/1394 + +Father: +215 +Mother: +216 + +Spouses: +30 + +Style: +Queen Consort of England +Territories: +England + +From: +20/01/1382 +To: +07/06/1394 + + + +ID: +96 + +Name: +Isabella of Valois + +Born: +09/11/1389 +Died: +13/09/1409 + +Father: +217 +Mother: +218 + +Spouses: +30 +219 + +Style: +Queen Consort of England +Territories: +England + +From: +01/11/1396 +To: +30/09/1399 + + + +ID: +97 + +Name: +Mary de Bohun + +Born: +C 1368 +Died: +04/06/1394 + +Father: +224 +Mother: +225 + +Spouses: +31 + + + +ID: +98 + +Name: +Joanna of Navarre + +Born: +c1370 +Died: +10/06/1437 + +Father: +220 +Mother: +221 + +Spouses: +222 +31 + +Style: +Dunchess Consort of Brittany +Territories: +Brittany + +From: +02/10/1386 +To: +01/11/1399 + +Style: +Queen Consort of England +Territories: +England + +From: +07/01/1403 +To: +20/03/1413 + + + +ID: +99 + +Name: +Catherine of Valois + +Born: +27/10/1401 +Died: +03/01/1437 + +Father: +217 +Mother: +218 + +Spouses: +32 +223 + +Style: +Queen Consort of England +Territories: +England + +From: +02/06/1420 +To: +31/08/1422 + + + +ID: +100 + +Name: +Margaret of Anjou + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +101 + +Name: +Elizabeth Woodville + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +102 + +Name: +Anne Neville + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +103 + +Name: +Elizabeth of York + +Born: +. +Died: +. + +Father: +34 +Mother: +101 + + + +ID: +104 + +Name: +Catherine of Aragon + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +105 + +Name: +Anne Boleyn + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +106 + +Name: +Jane Seymour + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +107 + +Name: +Anne of Cleves + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +108 + +Name: +Catherine Howard + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +109 + +Name: +Catherine Parr + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +110 + +Name: +Guildford Dudley + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +111 + +Name: +Philip II of Spain + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +112 + +Name: +Anne of Denmark + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +113 + +Name: +Henrietta Maria + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +114 + +Name: +Catherine of Braganza + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +115 + +Name: +Anne Hyde + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +116 + +Name: +Mary of Modena + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +117 + +Name: +George of Denmark + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +118 + +Name: +Sophia Dorothea + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +119 + +Name: +Caroline of Ansbach + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +120 + +Name: +Charlotte of Mecklenburg-Strelitz + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +121 + +Name: +Caroline of Brunswick + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +122 + +Name: +Adelaide of Saxe Meiningen + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +123 + +Name: +Albert + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +124 + +Name: +Alexandra + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +125 + +Name: +Mary of Teck + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +126 + +Name: +Wallis Simpson + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +127 + +Name: +Elizabeth Bowes-Lyon + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +128 + +Name: +Robert I Duke of Normandy + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +129 + +Name: +Herleva + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +130 + +Name: +Stehpen II + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +131 + +Name: +Adela + +Born: +. +Died: +. + +Father: +17 +Mother: +79 + + + +ID: +132 + +Name: +Edward the Black Prince + +Born: +. +Died: +. + +Father: +29 +Mother: +94 + + + +ID: +133 + +Name: +Joan + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +134 + +Name: +John of Gaunt + +Born: +. +Died: +. + +Father: +29 +Mother: +94 + + + +ID: +135 + +Name: +Blanche of Lancaster + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +136 + +Name: +Richard Plantagenet + +Born: +. +Died: +. + +Father: +138 +Mother: +139 + + + +ID: +137 + +Name: +Cecilly Neville + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +138 + +Name: +Richard of Conisburgh + +Born: +. +Died: +. + +Father: +140 +Mother: +141 + + + +ID: +139 + +Name: +Anne de Mortimer + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +140 + +Name: +Edmund of Langley + +Born: +. +Died: +. + +Father: +29 +Mother: +94 + + + +ID: +141 + +Name: +Isabella of Castile + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +142 + +Name: +Margaret Beufort + +Born: +. +Died: +. + +Father: +144 +Mother: +. + + + +ID: +143 + +Name: +John Beaufort + +Born: +. +Died: +. + +Father: +145 +Mother: +. + + + +ID: +144 + +Name: +John Beaufort + +Born: +. +Died: +. + +Father: +134 +Mother: +. + + + +ID: +145 + +Name: +Henry Grey + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +146 + +Name: +Frances Brandon + +Born: +. +Died: +. + +Father: +148 +Mother: +149 + + + +ID: +147 + +Name: +Charles Brandon + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +148 + +Name: +Mary Tudor + +Born: +. +Died: +. + +Father: +37 +Mother: +103 + + + +ID: +149 + +Name: +Henry Stuard + +Born: +. +Died: +. + +Father: +. +Mother: +152 + + + +ID: +150 + +Name: +Mary Queen of Scots + +Born: +. +Died: +. + +Father: +. +Mother: +150 + + + +ID: +151 + +Name: +Margaret Douglas + +Born: +. +Died: +. + +Father: +. +Mother: +154 + + + +ID: +152 + +Name: +James V + +Born: +. +Died: +. + +Father: +. +Mother: +154 + + + +ID: +153 + +Name: +Margaret Tudor + +Born: +. +Died: +. + +Father: +37 +Mother: +103 + + + +ID: +154 + +Name: +William II Prince of Orange + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +155 + +Name: +Mary, Princess Royal + +Born: +. +Died: +. + +Father: +44 +Mother: +113 + + + +ID: +156 + +Name: +Ernest Augustus + +Born: +. +Died: +. + +Father: +. +Mother: +. + +Spouses: + + + + +ID: +157 + +Name: +Sophia of Hanover + +Born: +. +Died: +. + +Father: +159 +Mother: +157 + + + +ID: +158 + +Name: +Elizabeth Stuart + +Born: +. +Died: +. + +Father: +43 +Mother: +112 + + + +ID: +159 + +Name: +Frederick + +Born: +. +Died: +. + +Father: +51 +Mother: +119 + + + +ID: +160 + +Name: +Augusta + +Born: +. +Died: +. + +Father: +. +Mother: +. + + + +ID: +161 + +Name: +Prince Edward + +Born: +. +Died: +. + +Father: +52 +Mother: +120 + + + +ID: +162 + +Name: +Princess Victoria + +Born: +. +Died: +. + +Father: +. +Mother: +. + +Spouses: + + + + +ID: +163 + +Name: + + diff --git a/familyTree/tree.db b/familyTree/tree.db new file mode 100644 index 0000000..fcce1ff Binary files /dev/null and b/familyTree/tree.db differ diff --git a/listPeople.py b/listPeople.py new file mode 100755 index 0000000..5b96bd7 --- /dev/null +++ b/listPeople.py @@ -0,0 +1,25 @@ +#!/usr/bin/python + +import cgi +import cgitb +import sys +import re +sys.path.append('/home/naath/familyTree') +import askQuestion +import everyPage + +[conn,form]=everyPage.top() + +result = 1 +if result == None: + everyPage.bad() +else: + printMe = askQuestion.list_people('
') + if len(printMe)<10: + printMe = 'sorry, no data
' + + everyPage.good(printMe) + + +everyPage.bottom(conn) + diff --git a/listTerr.py b/listTerr.py new file mode 100755 index 0000000..087855d --- /dev/null +++ b/listTerr.py @@ -0,0 +1,25 @@ +#!/usr/bin/python + +import cgi +import cgitb +import sys +import re +sys.path.append('/home/naath/familyTree') +import askQuestion +import everyPage + +[conn,form]=everyPage.top() + +result = 1 +if result == None: + everyPage.bad() +else: + printMe = askQuestion.list_territories('
') + if len(printMe)<10: + printMe = 'sorry, no data
' + + everyPage.good(printMe) + + +everyPage.bottom(conn) + diff --git a/person.py b/person.py new file mode 100755 index 0000000..3b30c86 --- /dev/null +++ b/person.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +# enable debugging +import cgi +import cgitb +import sys +import re +sys.path.append('/home/naath/familyTree') +import askQuestion +import everyPage + +cgitb.enable() + +[conn,form]=everyPage.top() + +ID = form.getvalue('ID') +if ID == None: + ID = 1 + +result = re.match('^[0-9]{1,3}$', str(ID)) + +if result == None: + everyPage.bad() +else: + printMe = askQuestion.person_info(ID,'
') + if len(printMe)<10: + printMe = 'sorry, no data
' + else: + url = "Ancestors" + printMe = printMe + '
' + url + + everyPage.good(printMe) + + +everyPage.bottom(conn) diff --git a/territory.py b/territory.py new file mode 100755 index 0000000..03602c9 --- /dev/null +++ b/territory.py @@ -0,0 +1,29 @@ +#!/usr/bin/python + +import cgi +import cgitb +import sys +import re +sys.path.append('/home/naath/familyTree') +import askQuestion +import everyPage + +[conn,form]=everyPage.top() + +terr = form.getvalue('terr') +if terr == None: + terr = 'Wessex' +result = re.match('^[A-Za-z-]{1,20}$', str(terr)) + + +if result == None: + everyPage.bad() +else: + printMe = askQuestion.rulers_of(terr,'
') + if len(printMe)<10: + printMe = 'sorry, no data
' + + everyPage.good(printMe) + + +everyPage.bottom(conn)