From: naath Date: Fri, 11 Apr 2014 16:44:37 +0000 (+0100) Subject: changed graphs to manual dot file; added pictures; faffed about with text X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~naath/git?a=commitdiff_plain;h=604cb075cd909d2b6bbc4ffef392c83148cd3199;p=familyTree.git changed graphs to manual dot file; added pictures; faffed about with text --- diff --git a/cgiFiles/ancestorGraph.py b/cgiFiles/ancestorGraph.py index a0e291d..36a9bf3 100755 --- a/cgiFiles/ancestorGraph.py +++ b/cgiFiles/ancestorGraph.py @@ -5,92 +5,59 @@ import cgitb cgitb.enable() import sys sys.path.append('/home/naath/familyTreeProject/familyTree') -import pygraph -from pygraph.classes.graph import graph -from pygraph.classes.digraph import digraph -from pygraph.algorithms.searching import breadth_first_search -from pygraph.readwrite.dot import write -import gv -import StringIO import askQuestion +import make_dot as d -def add_quotes(s): - s = str(s) - return '\"'+s+'\"' - -def parents(ID,name,gr,attr,couples): +def parents(ID,name): findParents = "SELECT Name,parentID FROM parents LEFT JOIN"\ +" people ON people.id=parents.parentid"\ +" WHERE parents.id=?;" - - ps = (); - for row in askQuestion.run_query(findParents,(ID,)): - if row[0]!=None: - thisN = row[0] + ' '+str(row[1]) - ps = ps + (thisN,) - if not gr.has_node(thisN): - gr.add_node(thisN,attr) - if not gr.has_edge((thisN,name)): - gr.add_edge((thisN,name)) - newName = thisN - newID = row[1] - [gr, couples] = \ - parents(newID,newName,gr,attr,couples) - - else: - thisN = row[1] + ' p' + str(ID) - if not gr.has_node(thisN): - ps = ps + (thisN,) - gr.add_node(thisN,attr) - gr.add_edge((thisN,name)) - if len(ps)==2: - if not gr.has_edge(ps): - gr.add_edge(ps) - gr.add_edge_attributes(ps,[('dir','none')]) - couples.append(ps) - return [gr, couples] -def make_graph(ID,conn): - - # Graph creation - gr = digraph() - attr = [('fontsize',8)] - # Add nodes and edges + pair =[] + for row in askQuestion.run_query(findParents,(ID,)): + if row[0]!=None: + thisN = row[0] + ' '+str(row[1]) + newName = thisN + newID = row[1] + if not d.has_node(thisN): + d.add_person(thisN) + parents(newID,newName) + pair.append(thisN) - couples = []; - s = "SELECT name, id FROM people WHERE ID = ?;" - for row in askQuestion.run_query(s,(ID,)): - gr.add_node(row[0],attr) - newName = (row[0]) - newID = row[1] + else: + thisN = row[1] + ',p ' + str(ID) + pair.append(thisN) + d.add_person(thisN) + d.add_marriage(pair[0],pair[1],[name],1) + +def make_graph(ID,conn): + global allAncestors - [gr,couples] = parents(newID,newName,gr,attr,couples) + d.start_dot() + + [out, allAncestors,trackLevel,aDict] = \ + askQuestion.all_ancestors(ID,'\n') + Self = allAncestors[0] - #Draw as jpg - dot = write(gr) + s = "SELECT name||', '|| id FROM people WHERE ID=?" + t = (Self,) + for row in askQuestion.run_query(s,t): + Self = row[0] + d.add_highlight(Self) - dot = dot[:-2] + parents(allAncestors[0],Self) - for couple in couples: - n1 = add_quotes(couple[0]) - n2 = add_quotes(couple[1]) - line = "\n{rank=same "+n1 + ' '\ - +n2 + "}" - dot = dot + line - dot = dot + '\n}' + d.add_subgraphs() + d.end_dot() - gvv = gv.readstring(dot) - gv.layout(gvv,'dot') + d.render_dot() - format = 'jpg' - print "Content-type: image/" + format + "\n" - print gv.render(gvv,format) askQuestion.close(conn) form = cgi.FieldStorage() diff --git a/cgiFiles/bigGraph.py b/cgiFiles/bigGraph.py index e5304e9..35d2b33 100755 --- a/cgiFiles/bigGraph.py +++ b/cgiFiles/bigGraph.py @@ -4,14 +4,8 @@ import cgi import cgitb import sys sys.path.append('/home/naath/familyTreeProject/familyTree') -import pygraph -from pygraph.classes.graph import graph -from pygraph.classes.digraph import digraph -from pygraph.algorithms.searching import breadth_first_search -from pygraph.readwrite.dot import write -import gv -import StringIO import askQuestion +import make_dot as d def add_quotes(s): s = str(s) @@ -24,69 +18,33 @@ conn = askQuestion.connect() famTree = askQuestion.list_people_parents() -gr = digraph() - -couples = [] - -attr = [('fontsize',8)] - +d.start_dot() for i in range(len(famTree)): +#for i in range(200): self = famTree[i][0] - if not gr.has_node(self): - gr.add_node(self,attr) + d.add_person(self) - for j in range(len(famTree[i][2])): - s = famTree[i][2][j] - ps = (self,s) - - if not gr.has_node(s): - gr.add_node(s,attr) - a =1 - if not gr.has_edge(ps): - gr.add_edge(ps) - a = ['dir','none'] - gr.add_edge_attribute(ps,a) - couples.append(ps) - ps = () + ps = [] for j in range(len(famTree[i][1])): p = famTree[i][1][j] - if p !='?': - ps = ps + (str(p),) - if not gr.has_node(p): - gr.add_node(p,attr) - if not gr.has_edge((p,self)): - gr.add_edge((p,self)) - - if len(ps)==2 and not gr.has_edge(ps) \ - and not gr.has_edge((ps[1],ps[0])): - gr.add_edge(ps) - a = ['dir','none'] - gr.add_edge_attribute(ps,a) - couples.append(ps) - -dot = write(gr) + ps.append(str(p)) -dot = write(gr) -dot = dot[:-2] + if len(ps)==2: + d.add_marriage(ps[0],ps[1],[self],0) + d.add_subgraph(ps) -for couple in couples: - line = "\n{rank=same "+add_quotes(couple[0]) + ' '\ - +add_quotes(couple[1])+"}" - dot = dot + line - -dot = dot + '\n}' - - -gvv = gv.readstring(dot) -format='dot' -gv.layout(gvv,format) + for j in range(len(famTree[i][2])): + s = famTree[i][2][j] + ps = (self,s) -format = "jpg" -print "Content-type: image/" + format + "\n" -print gv.render(gvv,format) + d.add_person(s) + d.add_marriage(self,s,[],0) + d.add_subgraph(ps) -#gv.render(gvv,'png','famTree.png') +d.add_subgraphs() +d.end_dot() +d.render_dot() askQuestion.close(conn) diff --git a/cgiFiles/everyPage.py b/cgiFiles/everyPage.py index 9f2d622..413b873 100755 --- a/cgiFiles/everyPage.py +++ b/cgiFiles/everyPage.py @@ -13,18 +13,21 @@ def base_url(): def links(): print '
' - print ' list of people' - print '
' - print ' list of territories' - print '
' - print ' count how many times first names are use' - print '
' - print ' At what age did people have children' - print '
' - print ' At what age did people die' - print '
' - print ' big graph' - + print '' print '
' def footer(): print '
' @@ -61,6 +64,12 @@ def html_start(titleNum): print "" print "" print ""+ title(titleNum) +"" + + print "" + print "" print "" page_header() diff --git a/cgiFiles/jointAncestorGraph.py b/cgiFiles/jointAncestorGraph.py index cbcdc1e..099f042 100755 --- a/cgiFiles/jointAncestorGraph.py +++ b/cgiFiles/jointAncestorGraph.py @@ -5,16 +5,10 @@ import cgitb cgitb.enable() import sys sys.path.append('/home/naath/familyTreeProject/familyTree') -import pygraph -from pygraph.classes.graph import graph -from pygraph.classes.digraph import digraph -from pygraph.algorithms.searching import breadth_first_search -from pygraph.readwrite.dot import write -import gv -import StringIO +import make_dot as d import askQuestion -def parents(ID,name,gr,attr,startLevel,stopLevel): +def parents(ID,name,startLevel,stopLevel): findParents = "SELECT Name,parentID FROM parents LEFT JOIN"\ +" people ON people.id=parents.parentid"\ @@ -22,60 +16,54 @@ def parents(ID,name,gr,attr,startLevel,stopLevel): startLevel = startLevel + 1 if int(startLevel) == int(stopLevel)+1: - return gr + return + pair=[] for row in askQuestion.run_query(findParents,(ID,)): if row[0]!=None: thisN = row[0] + ' '+str(row[1]) - if not gr.has_node(thisN): - gr.add_node(thisN,attr) - if gr.has_edge((thisN,name)): - return gr - gr.add_edge((thisN,name)) + + pair.append(thisN) newName = thisN newID = row[1] - gr = parents(newID,newName,gr,attr,startLevel,stopLevel) + if not d.has_node(thisN): + d.add_person(thisN) + parents(newID,newName,startLevel,stopLevel) else: - if not gr.has_node(row[1]): - gr.add_node(row[1],attr) - gr.add_edge((row[1],name)) - return gr + thisN = row[1] + ',p ' + str(ID) + pair.append(thisN) + d.add_person(thisN) -def make_graph(ID,ID2,LA,LB): - # Graph creation - gr = digraph() - attr = [('fontsize',8)] - # Add nodes and edges + + d.add_marriage(pair[0], pair[1],[name],1) + +def make_graph(ID,ID2,LA,LB): + + d.start_dot() if int(LA)!=0: s = "SELECT name, id FROM people WHERE ID = ?;" for row in askQuestion.run_query(s,(ID,)): thisN = row[0]+' ' + str(row[1]) - gr.add_node(thisN,attr) + d.add_highlight(thisN) newName = (thisN) newID = row[1] - gr = parents(newID,newName,gr,attr,0,LA) + parents(newID,newName,0,LA) if int(LB)!=0: s = "SELECT name, id FROM people WHERE ID = ?;" for row in askQuestion.run_query(s,(ID2,)): thisN = row[0] +' '+ str(row[1]) - gr.add_node(thisN,attr) + d.add_highlight(thisN) newName = (thisN) newID = row[1] + parents(newID,newName,0,LB) - gr = parents(newID,newName,gr,attr,0,LB) - - #Draw as jpg - dot = write(gr) - gvv = gv.readstring(dot) - gv.layout(gvv,'dot') - - format = 'jpg' - print "Content-type: image/" + format + "\n" - print gv.render(gvv,format) + d.add_subgraphs() + d.end_dot() + d.render_dot() askQuestion.close(conn) form = cgi.FieldStorage() diff --git a/cgiFiles/make_dot.py b/cgiFiles/make_dot.py new file mode 100755 index 0000000..9c9e20b --- /dev/null +++ b/cgiFiles/make_dot.py @@ -0,0 +1,177 @@ +#!/usr/bin/python + +import cgi +import cgitb +import gv +import re + +cgitb.enable() +def add_quotes(s): + return '\"'+str(s)+'\"' + +def add_node(node,node_attr): + global dot + global nodes + node_attr = attr_string(node_attr) + if node not in nodes: + dot = dot + add_quotes(node) + node_attr + ";\n" + nodes.append(node) + +def has_node(node): + if node in nodes: + return 1 + else: + return 0 +def has_edge(edge): + edge[0] = add_quotes(edge[0]) + edge[1] = add_quotes(edge[1]) + if edge in edges: + return 1 + else: + return 0 + +def add_edge(n1,n2,edge_attr): + global dot + global edges + edge = (add_quotes(n1),add_quotes(n2)) + edge_attr = attr_string(edge_attr) + if edge not in edges: + dot = dot + edge[0] + ' -> ' + edge[1] + edge_attr + ";" + edges.append(edge) + +def add_arrow(n1,n2): + add_edge(n1,n2,edge_attr) + +def add_no_arrow(n1,n2): + add_edge(n1,n2,nodir_attr) + +def add_marriage(n1,n2,children,joinChildren): + global cNodes + + jN = n1+n2 + jNRev = n2+n1 + if has_node(jNRev): + jN = jNRev + add_spot(jN) + add_person(n1) + add_person(n2) + + + + if len(children)>0 and joinChildren==1: + cNode = jN + 'c' + e = [cNode,children[0]] + if has_node(cNode): + tcNode = cNode + children[0] + if len(cNodes[cNode])>0: + last = cNodes[cNode][-1] + else: + last = cNode + add_spot(tcNode) + cNodes[cNode].append(tcNode) + add_no_arrow(last,tcNode) + add_subgraph([tcNode,cNode]) + else: + tcNode = cNode + add_spot(cNode) + cNodes[cNode] = [] + add_no_arrow(jN,cNode) + + elif len(children)>0: + tcNode = jN + + for c in children: + add_person(c) + add_arrow(tcNode,c) + for n in [n1, n2]: + add_edge(n,jN,marriage_attr) + add_subgraph([n1,n2]) + + +def add_subgraph(myG): + global subgraphs + subgraphs.append(myG) + +def add_subgraphs(): + global dot + for sg in subgraphs: + line = "\n{rank=same " + + for n in sg: + line = line +add_quotes(n) + ' ' + + line = line +"}" + + dot = dot + line + +def end_dot(): + global dot + dot = dot + "}" + +def start_dot(): + global dot + global nodes + global edges + global subgraphs + global cNodes + nodes=[] + edges=[] + cNodes={} + dot = "digraph G{\n" + dot = dot + "ranksep = 0.5 nodesep = 0\n" + subgraphs=[] + set_attr() + +def add_highlight(name): + add_node(name,highlight_attr) + +def add_person(name): + add_node(name,person_attr) + +def add_spot(name): + add_node(name,spot_attr) + + +def set_attr(): + global person_attr + global highlight_attr + global spot_attr + global edge_attr + global invis_attr + global ignored_attr + global nodir_attr + global marriage_attr + global debug_attr + global debug_edge_attr + zero_size = [('width','0'),('height','0')] + person_attr = [('fontsize','8'),('shape','plaintext')] + zero_size + highlight_attr = person_attr + \ + [('fontcolor','red'),('shape','box'),('color','red')] + debug_attr = person_attr + [('fontcolor','green')] + spot_attr = [('shape','point')] + zero_size + edge_attr = [('len','0'),('arrowsize','0.5')] + debug_edge_attr = edge_attr + [('color','green')] + invis_attr = edge_attr + [('style','invis')] + nodir_attr = edge_attr + [('dir','none')] + marriage_attr = nodir_attr + [('weight','10'),('color','red')] + ignored_attr =edge_attr + [('constraint','false')] + nodir_attr + +def attr_string(attr): + + attr_str = '[' + for a in attr: + attr_str = attr_str + a[0] + '=' + a[1] + if a != attr[-1]: + attr_str = attr_str +',' + + attr_str = attr_str + ']' + return attr_str + +def render_dot(): + gvv = gv.readstring(dot) + gv.layout(gvv,'dot') + + format = 'png' + + print "Content-type: image/" + format + "\n" + print gv.render(gvv,format) diff --git a/cgiFiles/searchname.py b/cgiFiles/searchname.py new file mode 100755 index 0000000..c798321 --- /dev/null +++ b/cgiFiles/searchname.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +# enable debugging +import cgi +import cgitb +import sys +import re +sys.path.append('/home/naath/familyTreeProject/familyTree') +import askQuestion +import everyPage + +cgitb.enable() + +[conn,form]=everyPage.top() + +name = form.getvalue('name') +if name == None: + printMe = "
" + printMe = printMe + \ + "Search for:
" + printMe = printMe +"" + printMe = printMe + "
" + + everyPage.good(printMe) + + +else: + result = re.match('[a-zA-z-% ]*$', name) + + if result == None: + everyPage.bad() + else: + printMe = askQuestion.search_name(name,'
') + if len(printMe)<10: + printMe = 'sorry, no data
' + + everyPage.good(printMe) + + +everyPage.bottom(conn) diff --git a/cgiFiles/smallGraph.py b/cgiFiles/smallGraph.py index eefee42..ee15269 100755 --- a/cgiFiles/smallGraph.py +++ b/cgiFiles/smallGraph.py @@ -2,93 +2,41 @@ import cgi import cgitb - -import pygraph -from pygraph.classes.graph import graph -from pygraph.classes.digraph import digraph -from pygraph.algorithms.searching import breadth_first_search -from pygraph.readwrite.dot import write -import gv -import StringIO +import make_dot as d cgitb.enable() -def add_quotes(s): - return '\"'+str(s)+'\"' - def make_graph(Self,parents,children,otherparents,spouses): - # Graph creation - gr = digraph() - - node_attr = [('fontsize',8)] - - # Add nodes and edges - gr.add_node(Self,node_attr) + d.start_dot() + d.add_highlight(Self) + + countSame = 2; + for i in range(1,len(parents)): + if parents[i]==parents[i-1]: + parents[1]=parents[1] + ' '+str(countSame) + countSame = countSame +1 - for p in parents: - if not gr.has_node(p): - gr.add_node(p,node_attr) - if not gr.has_edge((p,Self)): - gr.add_edge((p,Self)) - - couples=[] - if len(parents)==2: - ps = (parents[0],parents[1]) - if not gr.has_edge(ps): - gr.add_edge(ps) - attr = [('dir','none')] - gr.add_edge_attributes(ps,attr) - couples.append(ps) + d.add_marriage(parents[0],parents[1],[Self],1) - for i in range(len(children)): - if not gr.has_node(children[i]): - gr.add_node(children[i],node_attr) - if not gr.has_edge ((Self,children[i])): - gr.add_edge((Self,children[i])) - if not gr.has_node(otherparents[i]): - gr.add_node(otherparents[i],node_attr) - if not gr.has_edge((otherparents[i],children[i])): - gr.add_edge((otherparents[i],children[i])) + for i in range(len(otherparents)): + c = children[i] + op = otherparents[i] + d.add_marriage(Self,op,[c],1) - - if not gr.has_edge((otherparents[i],Self)): - e = (otherparents[i],Self) - attr = [('dir','none')] - gr.add_edge(e) - gr.add_edge_attributes(e,attr) - couples.append(e) + for i in range(len(spouses)): + s = spouses[i] + d.add_marriage(Self,s,[],1) - for s in spouses: - if not gr.has_node(s): - gr.add_node(s,node_attr) - if not gr.has_edge((s,Self)): - e = (s,Self) - attr = [('dir','none')] - gr.add_edge(e) - gr.add_edge_attributes(e,attr) - couples.append(e) + d.subgraphs.append(children) - - #Draw as jpg - dot = write(gr) - dot = dot[:-2] + d.add_subgraphs() - for couple in couples: - line = "\n{rank=same "+add_quotes(couple[0]) + ' '\ - +add_quotes(couple[1])+"}" - - dot = dot + line - - dot = dot + '\n}' - gvv = gv.readstring(dot) - gv.layout(gvv,'dot') - - format = 'jpg' + d.end_dot() + + d.render_dot() - print "Content-type: image/" + format + "\n" - print gv.render(gvv,format) form = cgi.FieldStorage() @@ -99,4 +47,3 @@ op = form.getlist('op') s = form.getlist('s') make_graph(Self,p,c,op,s) - diff --git a/familyTree/askQuestion.py b/familyTree/askQuestion.py index d841441..841df2f 100755 --- a/familyTree/askQuestion.py +++ b/familyTree/askQuestion.py @@ -5,7 +5,13 @@ import findYear from string import Template global link_Template -link_Template= Template("$text") +link_Template= Template(\ + "$text") +def add_quotes(s): + s = str(s) + return "'"+s+"'" + def run_query(s,t): c = make_cursor() return c.execute(s,t) @@ -39,15 +45,54 @@ def print_tagged_query(relationship,s,t,newLine): def relationship_html(ID,ID2,newLine): if newLine=='
': relationship = common_ancestors(ID,ID2,newLine)[2] - script = "ancestors.py?ID="+str(ID)+"&ID2="+str(ID2) - url = link_Template.substitute(script = script,text = "Common ancestors") - return relationship + ' '+url + newLine + + if relationship[-11:] != 'not related': + script = "ancestors.py?ID="+str(ID)+"&ID2="+str(ID2) + url = link_Template.substitute\ + (script = script,title = "Common ancestors"\ + ,text = "Common ancestors") + return relationship + ' '+url + newLine + else: + return relationship + newLine else: return '' -def terr_html(terr,newLine): +def terr_html(terr,newLine,start,stop): if newLine=='
': - return link_Template.substitute(script = "territory.py?terr="+terr, text=terr) + if start == 0 and stop ==0: + myTitle = add_quotes(terr) + + else: + s = "SELECT name,people.id"\ + +" FROM people INNER JOIN territories"\ + +" ON people.id = territories.id"\ + +" WHERE territory = ? AND stopyear <= ?"\ + +" ORDER BY startyear DESC;" + + t = (terr,start) + myTitle = '' + for row in run_query(s,t): + myTitle = myTitle +"previous - " + row[0] \ + + ',' + str(row[1]) + break + + u = "SELECT name,people.id"\ + +" FROM people INNER JOIN territories"\ + +" ON people.id = territories.id"\ + +" WHERE territory = ? AND startyear >= ?"\ + +" ORDER BY startyear;" + + v = (terr,stop) + for r in run_query(u,v): + myTitle = myTitle + ' ' +"next - " + r[0] \ + + ',' + str(r[1]) + break + + myTitle = add_quotes(myTitle) + + return link_Template.substitute(\ + script = "territory.py?terr="+terr, title=myTitle,\ + text = terr) else: return terr def name_html(row,html): @@ -63,7 +108,7 @@ def name_html(row,html): script = "person.py?ID=" + str(row[1]) name = row[0] return link_Template.substitute(script = script\ - , text = name) + ,title = add_quotes(name),text = name) else: return row[0] + "," +str(row[1]) @@ -77,7 +122,7 @@ def print_age_child_count(row,newLine): if newLine == '
': script = "age.py?age="+str(row[0]) link = link_Template.substitute(script = \ - script, text = row[0]) + script, title = add_quotes(row[0]), text = row[0]) out = str(row[1])+print_people(row[1]) out = out + 'had children at age '+ link + newLine @@ -88,7 +133,8 @@ def print_age_child_count(row,newLine): def print_age_death_count(row,newLine): if newLine =='
': script = "ageDeath.py?age="+str(row[0]) - link = link_Template.substitute(script = script,text = row[0]) + link = link_Template.substitute(script = script,\ + title = add_quotes(row[0]),text = row[0]) out = str(row[1])+print_people(row[1]) out = out + "died at age " + link + newLine return out @@ -99,7 +145,7 @@ def print_name_count(row,newLine): if newLine=='
': script = "name.py?name=" + row[0] link = link_Template.substitute(script =\ - script, text = row[0]) + script, title = add_quotes(row[0]),text = row[0]) return str(row[1]) + " people called "+link + newLine else: return print_row(row,newLine) @@ -168,7 +214,7 @@ def list_territories(newLine): out = '' for row in run_query(s,()): - out =out + terr_html(row[0],newLine) +newLine + out =out + terr_html(row[0],newLine,0,0) +newLine return out def list_people_parents(): @@ -206,8 +252,9 @@ def list_people_parents(): if r[0]!=None: spouses.append(r[0]+ ' '+str(r[1])) else: - spouses.append(r[1] + ' s' +\ - str(row[1])) + if len(r[1])>0: + spouses.append(r[1] + ' s' +\ + str(row[1])) myName = row[0] @@ -315,14 +362,45 @@ def count_names(newLine): return out + +def search_name(name,newLine): + s = "SELECT name, ID"\ + +" FROM people"\ + +" WHERE name LIKE ?;" + + out = '' + + out = out + 'Names start with ' + name + ':' + newLine + t = (name + '%',) + fullIDs=[] + for row in run_query(s,t): + out = out + name_html(row,newLine) + newLine + fullIDs.append(row[1]) + t = ('%' + name + '%',) + out = out+newLine + 'Names contain ' + name + ':' + newLine + for row in run_query(s,t): + if row[1] not in fullIDs: + out = out + name_html(row,newLine) + newLine + + s = "SELECT name,people.ID,style"\ + +" FROM people INNER JOIN styles"\ + +" ON styles.id = people.id"\ + +" WHERE style LIKE ?;" + out = out +newLine+ 'Styles contain ' + name + ':' + newLine + for row in run_query(s,t): + out = out + name_html(row,newLine)+' ' + row[2] + newLine + + return out + + def people_with_name(name,newLine): - s = "SELECT Name, ID"\ + s = "SELECT name, ID"\ +" FROM people"\ - +" WHERE Name LIKE ?;" + +" WHERE firstname LIKE ?;" out = '' - t = (name + '%',) + t = (name,) for row in run_query(s,t): out = out + name_html(row,newLine) + newLine @@ -448,27 +526,33 @@ def all_ancestors(personID,newLine): for row in run_query(t,id): out = out + name_html(row,newLine)+newLine + aDict={} + aDict[level] = ancestors while len(ancestors)>0: level = level+1 newA =[] - thisout = newLine + parent_level(level,'parent') +':' + newLine + thisout = newLine + parent_level(level,'parent') +\ + ':' + newLine for ancestor in ancestors: id = (ancestor,) for row in run_query(s,id): thisout = thisout + \ name_html(row,newLine)+newLine - if row[1] not in allAncestors and \ - is_number(row[1])!=0: + if row[1] not in allAncestors\ + and is_number(row[1]): newA.append(row[1]) allAncestors.append(row[1]) trackLevel.append(level) + ancestors = newA + if len(ancestors)>0: + aDict[level]=ancestors out = out+thisout image = "" out = out+newLine + image+newLine - return [out, allAncestors,trackLevel] + return [out, allAncestors,trackLevel,aDict] def common_ancestors(IDA, IDB,newLine): @@ -664,38 +748,52 @@ def rulers_of(aTerritory,newLine): out = '' for row in run_query(tq,(aTerritory+'%',)): if row[4]!=last and last!='': - out = out + 'Rulers of '+terr_html(last,newLine) +':'+ newLine +thisT +newLine + out = out + 'Rulers of '+terr_html(last,newLine,0,0) \ + +':'+ newLine +thisT +newLine thisT = '' thisT = thisT +name_html(row,newLine) thisT = thisT +' from ' + str(row[2])+' to '+str(row[3]) + newLine last = row[4] - out = out + 'Rulers of '+terr_html(row[4],newLine) +':'+ newLine +thisT + out = out + 'Rulers of '+terr_html(row[4],newLine,0,0) +':'+ \ + newLine +thisT return out def person_info(personID,newLine): t = (personID,) - output = ''; - + mainDiv = '' #Id, Name, Dates, Style, Style-Dates s = "SELECT * FROM people WHERE ID = ?" 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 + mainDiv = mainDiv + '

' + mainDiv = mainDiv + 'ID: '+str(row[0]) +newLine + mainDiv = mainDiv + print_tagged_name('Name',[row[1], row[0]]\ + ,newLine) + mainDiv = mainDiv + '

' name = row[1] - output = output + 'Born: '+row[3] + newLine + url = row[9] + picture = row[10] + + mainDiv = mainDiv + '

' + mainDiv = mainDiv + newLine + 'Born: '+row[3] + newLine bornYear = row[4] - output = output + 'Died: '+row[5] + ", aged " \ - +str(row[6]-row[4]) +newLine + mainDiv = mainDiv + 'Died: '+row[5] + + if row[6] != 0 and row[4] !=0: + mainDiv = mainDiv + ", aged " \ + +str(row[6]-row[4]) + mainDiv = mainDiv + '

' + s = "SELECT * FROM styles WHERE ID = ?" for row in run_query(s,t): - output = output +newLine+ 'Style: '+row[1] + newLine + mainDiv = mainDiv + '

' + mainDiv = mainDiv +newLine+ 'Style: '+row[1] + newLine - output = output + 'Territories:' + newLine + mainDiv = mainDiv + 'Territories:' + newLine u = "SELECT * FROM territories"\ +" WHERE ID =? AND startYear =? AND stopYear=?" @@ -703,23 +801,33 @@ def person_info(personID,newLine): any = 0 for r in run_query(u,v): - output = output + terr_html(r[1],newLine) +',' + mainDiv = mainDiv \ + + terr_html(r[1],newLine,r[3],r[5])\ + +',' any = 1 if any ==1: - output = output[:-1] + newLine + mainDiv = mainDiv[:-1] + newLine + + mainDiv = mainDiv + 'From: '+row[2] + newLine + mainDiv = mainDiv + 'To: '+row[4] + + mainDiv = mainDiv + '

' + - output = output + 'From: '+row[2] + newLine - output = output + 'To: '+row[4] + newLine + + mainDiv = mainDiv + '

' s = "SELECT people.Name,consort "\ +"FROM consorts LEFT JOIN people"\ +" ON people.ID = consorts.consort"\ +" WHERE consorts.ID = ?" for row in run_query(s,t): - output = output + print_tagged_name('Consort',row,newLine) + mainDiv = mainDiv + print_tagged_name\ + ('Consort of',row,newLine) + mainDiv = mainDiv + '

' - output = output + newLine #find parents + mainDiv = mainDiv + '

' s = "SELECT people.Name,parents.parentID FROM"\ +" parents LEFT JOIN people"\ +" ON parents.parentID = people.ID"\ @@ -727,13 +835,15 @@ def person_info(personID,newLine): parents =[] for row in run_query(s,t): - output = output + print_tagged_name('Parent',row,newLine) + mainDiv = mainDiv + print_tagged_name('Parent',row,newLine) if row[0]!=None: - parents.append(row[0] + ' ' + row[1]) + parents.append(row[0] + ', ' + row[1]) else: - parents.append(row[1] + ' p' + personID) - + parents.append(row[1] + ', p' + personID) + mainDiv = mainDiv + '

' #find spouses + + mainDiv = mainDiv + '

' s = "SELECT people.NAME, marriages.IDb from"\ +" marriages LEFT JOIN people"\ +" ON people.ID = marriages.IDb"\ @@ -742,12 +852,12 @@ def person_info(personID,newLine): 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) + spouses.append(row[0] + ', '+str(row[1])) + elif row[1]!='': + spouses.append(row[1] + ', s' + personID) + if row[1]!='': + mainDiv = mainDiv + print_tagged_name('Spouse',row,newLine) + mainDiv = mainDiv + relationship_html(personID,row[1],newLine) s = "SELECT people.NAME, marriages.IDa from"\ +" marriages LEFT JOIN people"\ @@ -756,14 +866,12 @@ def person_info(personID,newLine): +" ORDER BY IDa;" for row in run_query(s,t): if row[0]!=None: - spouses.append(row[0] + ' '+str(row[1])) + 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) - - output = output + newLine + spouses.append(row[1] + ', s' + personID) + mainDiv = mainDiv + print_tagged_name('Spouse',row,newLine) + mainDiv = mainDiv + relationship_html(personID,row[1],newLine) + mainDiv = mainDiv + '

' #find children s = "Select people.NAME, people.ID ,people.bornYear"\ @@ -774,13 +882,14 @@ def person_info(personID,newLine): children = [] ops =[] + top = '' for row in run_query(s,t): - output = output + print_tagged_name('Child',row,newLine) - children.append(row[0] + ' ' + str(row[1])) + thisChild = 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 INNER JOIN people"\ + +" parents LEFT JOIN people"\ +" ON people.ID = parents.parentID"\ +" WHERE parents.ID = ? AND parents.parentID <>?;" @@ -788,37 +897,69 @@ def person_info(personID,newLine): 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 r[0]!=None: + ops.append(r[0] + ', ' + str(r[1])) + else: + ops.append(r[1] + ', s' + personID) if op==0: - ops.append('?' + ' s' + personID) + ops.append('?' + ', s' + personID) + + if top!=ops[-1]: + mainDiv = mainDiv + '

' + mainDiv = mainDiv + '

' + mainDiv = mainDiv + print_tagged_name('With',r, newLine) + + + top = ops[-1] #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 + thisChild = thisChild[:-4] + \ + " at the age of "+str(age) + newLine + mainDiv = mainDiv + thisChild + mainDiv = mainDiv + '

' + output = '
'; + output = output + mainDiv + "
" - Self = name +' ' + str(personID) + output = output + "
" - image = "smallGraph.py?Self="+Self + imageDiv = '' + if picture!='.': + imageDiv = imageDiv + ""\ + +"wiki link"\ + + newLine + + elif url!='.' and url!='. ': + imageDiv = imageDiv + ""\ + +name + " (wiki link)"+newLine + + output = output + imageDiv + "
" + + Self = name +', ' + str(personID) + + graph = "smallGraph.py?Self="+Self for p in parents: - image = image + '&p='+p + graph = graph + '&p='+p for c in children: - image = image + '&c='+c + graph = graph + '&c='+c for op in ops: if op !=None: - image = image + '&op='+op + graph = graph + '&op='+op for s in spouses: if s !=None: - image = image + '&s='+str(s) + graph = graph + '&s='+str(s) - image = image.replace(' ','%20') - image ="" + output = output + graph + output = output + "" diff --git a/familyTree/makeTables.py b/familyTree/makeTables.py index 55ce97c..ca3f603 100755 --- a/familyTree/makeTables.py +++ b/familyTree/makeTables.py @@ -2,7 +2,8 @@ s = 'CREATE TABLE people\n(\nID int,\nName text,\nFirstName'\ +' text,\nBorn text,\nbornYear int,\nDied text,'\ - +'\ndiedYear int,\nbornMonth int,\ndiedMonth);' + +'\ndiedYear int,\nbornMonth int,\ndiedMonth,'\ + +'\nURL text,\nPicture text);' print s diff --git a/familyTree/text2SQL.py b/familyTree/text2SQL.py index 1749197..6185b7f 100755 --- a/familyTree/text2SQL.py +++ b/familyTree/text2SQL.py @@ -34,7 +34,11 @@ for line in f: if lastline == 'Name:': names = thisline.split() if len(names)>0: - firstName = add_quotes(names[0]) + notNames = ['Prince','Princess','St'] + if names[0] in notNames: + firstName = add_quotes(names[1]) + else: + firstName = add_quotes(names[0]) else: firstName = '' thisName = add_quotes(thisline) @@ -46,7 +50,11 @@ for line in f: yd = findYear.find_year(thisline) md = findYear.find_month(thisline) thisDied = add_quotes(thisline) - finishedRecord = 1 + finishedRecord=1 + if lastline == 'URL:': + url = add_quotes(thisline) + if lastline == 'Picture:': + picture = add_quotes(thisline) if lastline == 'Father:': a = is_number(thisline) s = make_insert('parents',[thisID, a]) @@ -58,7 +66,8 @@ for line in f: if finishedRecord ==1: s = make_insert('people',\ - [thisID,thisName,firstName,thisBorn,yb,thisDied,yd,mb,md]) + [thisID,thisName,firstName,thisBorn,yb,\ + thisDied,yd,mb,md,url,picture]) print s finishedRecord = 0 if lastline == 'Style:': diff --git a/familyTree/tree b/familyTree/tree index c4ada93..f1c9448 100644 --- a/familyTree/tree +++ b/familyTree/tree @@ -7,6 +7,9 @@ Alfred the Great URL: http://en.wikipedia.org/wiki/Alfred_the_Great +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Statue_d%27Alfred_le_Grand_%C3%A0_Winchester.jpg/220px-Statue_d%27Alfred_le_Grand_%C3%A0_Winchester.jpg + Born: 849 Died: @@ -41,6 +44,9 @@ Edward the Elder URL: http://en.wikipedia.org/wiki/Edward_the_Elder +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/4/4e/Edward_the_Elder_-_MS_Royal_14_B_VI.jpg/218px-Edward_the_Elder_-_MS_Royal_14_B_VI.jpg + Born: 874-877 Died: @@ -54,6 +60,7 @@ Mother: Spouses: 62 63 +64 Style: King of Wessex @@ -76,6 +83,9 @@ Aethelstan URL: http://en.wikipedia.org/wiki/%C3%86thelstan +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Athelstan.jpg/220px-Athelstan.jpg + Born: 893-895 Died: @@ -117,6 +127,9 @@ Edmund I URL: http://en.wikipedia.org/wiki/Edmund_I +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Edmund_I_-_MS_Royal_14_B_V.jpg/220px-Edmund_I_-_MS_Royal_14_B_V.jpg + Born: 921 Died: @@ -152,6 +165,9 @@ Eadred URL: http://en.wikipedia.org/wiki/Eadred +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/2/28/Eadred_penny.jpg/200px-Eadred_penny.jpg + Born: ? Died: @@ -183,6 +199,9 @@ Eadwig (Edwy) URL: http://en.wikipedia.org/wiki/Eadwig +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/0/09/Eadwig.jpg/220px-Eadwig.jpg + Born: 941? Died: @@ -217,6 +236,9 @@ Edgar the Peaceful URL: http://en.wikipedia.org/wiki/Edgar_the_Peaceful +Picture: +http://upload.wikimedia.org/wikipedia/commons/c/c2/Edgar_King_of_England.jpg + Born: 07/08/943 Died: @@ -253,6 +275,9 @@ Edward the Martyr URL: http://en.wikipedia.org/wiki/Edward_the_Martyr +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Edward_the_Martyr_by_Edwards_detail.jpg/220px-Edward_the_Martyr_by_Edwards_detail.jpg + Born: 962 Died: @@ -284,6 +309,9 @@ Aethelred the Unready URL: http://en.wikipedia.org/wiki/%C3%86thelred_the_Unready +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Ethelred_the_Unready.jpg/220px-Ethelred_the_Unready.jpg + Born: 966-968 Died: @@ -309,7 +337,7 @@ To: 1013 Style: -English +King of the English Territories: England @@ -329,6 +357,9 @@ Sweyn Forkbeard URL: http://en.wikipedia.org/wiki/Sweyn_Forkbeard +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Sweyn_Forkbeard.jpg/220px-Sweyn_Forkbeard.jpg + Born: 960 Died: @@ -393,6 +424,9 @@ Edmund Ironside URL: http://en.wikipedia.org/wiki/Edmund_Ironside +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/4/44/EdmundIronside_Canutethe_Dane1.jpg/220px-EdmundIronside_Canutethe_Dane1.jpg + Born: 989 Died: @@ -427,6 +461,9 @@ Cnut URL: http://en.wikipedia.org/wiki/Cnut_the_Great +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Cnut_the_Great_Obverse.jpg/220px-Cnut_the_Great_Obverse.jpg + Born: 985 Died: @@ -482,6 +519,9 @@ Harold I Harefoot URL: http://en.wikipedia.org/wiki/Harold_Harefoot +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Harold1_Harefoot_02.jpg/150px-Harold1_Harefoot_02.jpg + Born: c1015 Died: @@ -513,6 +553,9 @@ Harthacnut URL: http://en.wikipedia.org/wiki/Harthacnut +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Coin_danish_and_english_king_Harthacnut%2C_Hardeknut_%281018-1042%29.jpg/220px-Coin_danish_and_english_king_Harthacnut%2C_Hardeknut_%281018-1042%29.jpg + Born: c1018 Died: @@ -537,7 +580,7 @@ To: 08/06/1042 Style: -Denmark +King of Denmark Territories: Denmark @@ -557,6 +600,9 @@ Edward the Confessor URL: http://en.wikipedia.org/wiki/Edward_the_Confessor +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Bayeux_Tapestry_scene1_EDWARD_REX.jpg/220px-Bayeux_Tapestry_scene1_EDWARD_REX.jpg + Born: C1003-1005 Died: @@ -591,6 +637,9 @@ Harold II Godwinson URL: http://en.wikipedia.org/wiki/Harold_Godwinson +Picture: +http://upload.wikimedia.org/wikipedia/commons/f/fd/Harold2.jpg + Born: c1022 Died: @@ -626,6 +675,9 @@ William I the Conqueror URL: http://en.wikipedia.org/wiki/William_the_Conqueror +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Bayeuxtapestrywilliamliftshishelm.jpg/150px-Bayeuxtapestrywilliamliftshishelm.jpg + Born: c1028 Died: @@ -670,6 +722,9 @@ William II URL: http://en.wikipedia.org/wiki/William_II_of_England +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/9/92/William_II_of_England.jpg/221px-William_II_of_England.jpg + Born: c1056 Died: @@ -701,6 +756,9 @@ Henry I Beuclerc URL: http://en.wikipedia.org/wiki/Henry_I_of_England +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Henry1.jpg/230px-Henry1.jpg + Born: 1068 Died: @@ -737,6 +795,9 @@ Stephen URL: http://en.wikipedia.org/wiki/Stephen_of_England +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Stepan_Blois.jpg/218px-Stepan_Blois.jpg + Born: C1092-1096 Died: @@ -762,7 +823,7 @@ To: ?/04/1141 Style: -English +King of the English, Duke of the Normans Territories: England @@ -782,6 +843,9 @@ Matilda URL: http://en.wikipedia.org/wiki/Empress_Matilda +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Empress_Mathilda.png/220px-Empress_Mathilda.png + Born: 07/02/1102 Died: @@ -818,6 +882,9 @@ Henry II Plantagenet URL: http://en.wikipedia.org/wiki/Henry_II_of_England +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Henry_II_of_England_cropped.jpg/211px-Henry_II_of_England_cropped.jpg + Born: 05/03/1133 Died: @@ -855,6 +922,9 @@ Henry the young king URL: http://en.wikipedia.org/wiki/Henry_the_Young_King +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/BL_MS_Royal_14_C_VII_f.9_%28Henry_jr%29.jpg/160px-BL_MS_Royal_14_C_VII_f.9_%28Henry_jr%29.jpg + Born: 28/02/1155 Died: @@ -889,6 +959,9 @@ Richard I Lionheart URL: http://en.wikipedia.org/wiki/Richard_I_of_England +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Church_of_Fontevraud_Abbey_Richard_I_effigy.jpg/220px-Church_of_Fontevraud_Abbey_Richard_I_effigy.jpg + Born: 08/09/1157 Died: @@ -924,7 +997,10 @@ Name: John URL: -. +http://en.wikipedia.org/wiki/John,_King_of_England + +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Jan_tomb.jpg/220px-Jan_tomb.jpg Born: 24/12/1166 @@ -962,7 +1038,10 @@ Name: Henry III URL: -. +http://en.wikipedia.org/wiki/Henry_III_of_England + +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Henry_III_funeral_head.jpg/220px-Henry_III_funeral_head.jpg Born: 01/10/1207 @@ -1011,7 +1090,10 @@ Name: Edward I URL: -. +http://en.wikipedia.org/wiki/Edward_I_of_England + +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Gal_nations_edward_i.jpg/225px-Gal_nations_edward_i.jpg Born: 17/06/1239 @@ -1048,7 +1130,10 @@ Name: Edward II URL: -. +http://en.wikipedia.org/wiki/Edward_II_of_England + +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/Edward_II_-_British_Library_Royal_20_A_ii_f10_%28detail%29.jpg/220px-Edward_II_-_British_Library_Royal_20_A_ii_f10_%28detail%29.jpg Born: 25/04/1284 @@ -1084,7 +1169,10 @@ Name: Edward III URL: -. +http://en.wikipedia.org/wiki/Edward_III_of_England + +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Edward_III_of_England_%28Order_of_the_Garter%29.jpg/220px-Edward_III_of_England_%28Order_of_the_Garter%29.jpg Born: 13/11/1312 @@ -1132,7 +1220,10 @@ Name: Richard II URL: -. +http://en.wikipedia.org/wiki/Richard_II_of_England + +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Richard_II_King_of_England.jpg/220px-Richard_II_King_of_England.jpg Born: 06/01/1367 @@ -1182,7 +1273,10 @@ Name: Henry IV URL: -. +http://en.wikipedia.org/wiki/Henry_IV_of_England + +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/King_Henry_IV_from_NPG_%282%29.jpg/180px-King_Henry_IV_from_NPG_%282%29.jpg Born: 15/04/1367 @@ -1219,7 +1313,10 @@ Name: Henry V URL: -. +http://en.wikipedia.org/wiki/Henry_V_of_England + +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/1/18/King_Henry_V_from_NPG.jpg/220px-King_Henry_V_from_NPG.jpg Born: 16/09/1386 @@ -1267,7 +1364,10 @@ Name: Henry VI URL: -. +http://en.wikipedia.org/wiki/Henry_VI_of_England + +Picture: +http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/King_Henry_VI_from_NPG_%282%29.jpg/220px-King_Henry_VI_from_NPG_%282%29.jpg Born: 06/11/1421 @@ -1330,6 +1430,9 @@ Edward IV URL: . +Picture: +. + Born: 28/04/1442 Died: @@ -1379,6 +1482,9 @@ Edward V URL: . +Picture: +. + Born: 02/11/1470 Died: @@ -1412,6 +1518,9 @@ Richard III URL: . +Picture: +. + Born: 02/10/1452 Died: @@ -1448,6 +1557,9 @@ Henry VII URL: . +Picture: +. + Born: 28/01/1457 Died: @@ -1484,6 +1596,9 @@ Henry VIII URL: . +Picture: +. + Born: 28/06/1491 Died: @@ -1573,6 +1688,9 @@ Edward VI URL: . +Picture: +. + Born: 21/10/1537 Died: @@ -1609,6 +1727,9 @@ Jane Grey URL: . +Picture: +. + Born: C1536-1537 Died: @@ -1645,6 +1766,9 @@ Mary I URL: . +Picture: +. + Born: 18/02/1516 Died: @@ -1726,6 +1850,9 @@ Elizabeth I URL: . +Picture: +. + Born: 07/09/1533 Died: @@ -1759,6 +1886,9 @@ James VI & I URL: . +Picture: +. + Born: 19/06/1566 Died: @@ -1805,6 +1935,9 @@ Charles I URL: . +Picture: +. + Born: 19/11/1600 Died: @@ -1852,6 +1985,9 @@ Charles II URL: . +Picture: +. + Born: 26/05/1630 Died: @@ -1899,6 +2035,9 @@ James VII & II URL: . +Picture: +. + Born: 14/10/1633 Died: @@ -1910,7 +2049,8 @@ Mother: 113 Spouses: -115116 +115 +116 Style: By the Grace of God, King of England,Scotland, France, and Ireland, Defender of the Faith etc. @@ -1936,6 +2076,9 @@ Mary II URL: . +Picture: +. + Born: 30/04/1662 Died: @@ -1976,6 +2119,9 @@ William II & III URL: . +Picture: +. + Born: 04/11/1650 Died: @@ -2017,7 +2163,7 @@ Orange Nassau From: -04/06/1900 +28/11/1694 To: 08/03/1702 @@ -2032,6 +2178,9 @@ Anne URL: . +Picture: +. + Born: 06/02/1665 Died: @@ -2081,6 +2230,9 @@ George I URL: . +Picture: +. + Born: 28/05/1660 Died: @@ -2129,6 +2281,9 @@ George II URL: . +Picture: +. + Born: 10/11/1683 Died: @@ -2167,6 +2322,9 @@ George III URL: . +Picture: +. + Born: 04/06/1738 Died: @@ -2229,6 +2387,9 @@ George IV URL: . +Picture: +. + Born: 12/08/1762 Died: @@ -2265,6 +2426,9 @@ William IV URL: . +Picture: +. + Born: 21/08/1765 Died: @@ -2301,6 +2465,9 @@ Victoria URL: . +Picture: +. + Born: 24/05/1819 Died: @@ -2346,6 +2513,9 @@ Edward VII URL: . +Picture: +. + Born: 09/11/1841 Died: @@ -2382,6 +2552,9 @@ George V URL: . +Picture: +. + Born: 03/06/1865 Died: @@ -2431,6 +2604,9 @@ Edward VIII URL: . +Picture: +. + Born: 23/06/1894 Died: @@ -2468,6 +2644,9 @@ George VI URL: . +Picture: +. + Born: 14/11/1895 Died: @@ -2517,6 +2696,9 @@ Elizabeth II URL: . +Picture: +. + Born: 21/04/1926 Died: @@ -2553,6 +2735,9 @@ Ealhswith URL: . +Picture: +. + Born: ? Died: @@ -2577,6 +2762,9 @@ Ecgwyn URL: . +Picture: +. + Born: ? Died: @@ -2601,6 +2789,9 @@ Aelfflaed URL: . +Picture: +. + Born: ? Died: @@ -2627,6 +2818,9 @@ Eadgifu URL: . +Picture: +. + Born: ~903 Died: @@ -2653,6 +2847,9 @@ Aelfgifu of Shaftsbury URL: . +Picture: +. + Born: ? Died: @@ -2679,6 +2876,9 @@ Aethelflaed of Damerham URL: . +Picture: +. + Born: ? Died: @@ -2705,6 +2905,9 @@ Aelfgifu URL: . +Picture: +. + Born: ? Died: @@ -2731,6 +2934,9 @@ Aethelflaed URL: . +Picture: +. + Born: ? Died: @@ -2755,6 +2961,9 @@ Wulthryth URL: . +Picture: +. + Born: ? Died: @@ -2779,6 +2988,9 @@ Aelfthryth URL: . +Picture: +. + Born: c.945 Died: @@ -2806,6 +3018,9 @@ Aelfgifu of York URL: . +Picture: +. + Born: c. 970 Died: @@ -2832,6 +3047,9 @@ Emma of Normandy URL: . +Picture: +. + Born: c. 985 Died: @@ -2861,6 +3079,9 @@ Sigrid the Haughty URL: . +Picture: +. + Born: ? Died: @@ -2888,6 +3109,9 @@ Ealdgyth URL: . +Picture: +. + Born: c. 992 Died: @@ -2915,6 +3139,9 @@ Aelfgifu of Northampton URL: . +Picture: +. + Born: c. 990 Died: @@ -2939,6 +3166,9 @@ Edith of Wessex URL: . +Picture: +. + Born: C 1025 Died: @@ -2965,6 +3195,9 @@ Edith the Fair URL: . +Picture: +. + Born: C 1025 Died: @@ -2989,6 +3222,9 @@ Edith of Mercia URL: . +Picture: +. + Born: C 1057 Died: @@ -3016,6 +3252,9 @@ Matilda of Flanders URL: . +Picture: +. + Born: C 1031 Died: @@ -3042,6 +3281,9 @@ Matilda of Scotland URL: . +Picture: +. + Born: C 1080 Died: @@ -3068,6 +3310,9 @@ Adeliza of Louvain URL: . +Picture: +. + Born: C 1103 Died: @@ -3095,6 +3340,9 @@ Matilda of Boulogne URL: . +Picture: +. + Born: ? 1105 Died: @@ -3131,6 +3379,9 @@ Henry V URL: . +Picture: +. + Born: 11/08/1086 Died: @@ -3185,6 +3436,9 @@ Geoffrey V URL: . +Picture: +. + Born: 24/08/1113 Died: @@ -3219,6 +3473,9 @@ Eleanor of Aquitaine URL: . +Picture: +. + Born: 1122-1124 Died: @@ -3258,6 +3515,9 @@ Margaret of France URL: . +Picture: +. + Born: ?/11/1157 Died: @@ -3269,8 +3529,8 @@ Mother: 195 Spouses: -231 -96 +23 +196 Consort of: 96 @@ -3287,6 +3547,9 @@ Berengaria of Navarre URL: . +Picture: +. + Born: C 1165-1170 Died: @@ -3313,6 +3576,9 @@ Isabella of Gloucester URL: . +Picture: +. + Born: C 1173 Died: @@ -3339,6 +3605,9 @@ Isabella of Angouleme URL: . +Picture: +. + Born: C 1188 Died: @@ -3376,6 +3645,9 @@ Eleanor of Provence URL: . +Picture: +. + Born: C 1223 Died: @@ -3402,6 +3674,9 @@ Eleanor of Castile URL: . +Picture: +. + Born: 1241 Died: @@ -3438,6 +3713,9 @@ Margaret of France URL: . +Picture: +. + Born: C 1279 Died: @@ -3464,6 +3742,9 @@ Isabella of France URL: . +Picture: +. + Born: 1295 Died: @@ -3490,6 +3771,9 @@ Philippa of Hainault URL: . +Picture: +. + Born: 24/06/1314 Died: @@ -3516,6 +3800,9 @@ Anne of Bohemia URL: . +Picture: +. + Born: 11/05/1366 Died: @@ -3542,6 +3829,9 @@ Isabella of Valois URL: . +Picture: +. + Born: 09/11/1389 Died: @@ -3569,6 +3859,9 @@ Mary de Bohun URL: . +Picture: +. + Born: C 1368 Died: @@ -3593,6 +3886,9 @@ Joanna of Navarre URL: . +Picture: +. + Born: c1370 Died: @@ -3622,6 +3918,9 @@ Catherine of Valois URL: . +Picture: +. + Born: 27/10/1401 Died: @@ -3649,6 +3948,9 @@ Margaret of Anjou URL: . +Picture: +. + Born: 23/03/1430 Died: @@ -3675,6 +3977,9 @@ Elizabeth Woodville URL: . +Picture: +. + Born: c1437 Died: @@ -3702,6 +4007,9 @@ Anne Neville URL: . +Picture: +. + Born: 11/06/1456 Died: @@ -3729,6 +4037,9 @@ Elizabeth of York URL: . +Picture: +. + Born: 11/02/1466 Died: @@ -3755,6 +4066,9 @@ Catherine of Aragon URL: . +Picture: +. + Born: 16/12/1485 Died: @@ -3782,6 +4096,9 @@ Anne Boleyn URL: . +Picture: +. + Born: c1501 Died: @@ -3808,6 +4125,9 @@ Jane Seymour URL: . +Picture: +. + Born: c1508 Died: @@ -3834,6 +4154,9 @@ Anne of Cleves URL: . +Picture: +. + Born: 22/09/1515 Died: @@ -3860,6 +4183,9 @@ Catherine Howard URL: . +Picture: +. + Born: c1523 Died: @@ -3886,6 +4212,9 @@ Catherine Parr URL: . +Picture: +. + Born: 1512 Died: @@ -3900,10 +4229,10 @@ Spouses: 252 253 38 -354 +254 Consort of: -252,253,38,354 +252,253,38,254 ID: @@ -3915,6 +4244,9 @@ Guildford Dudley URL: . +Picture: +. + Born: 1535 Died: @@ -3939,6 +4271,9 @@ Philip II of Spain URL: . +Picture: +. + Born: 21/05/1527 Died: @@ -4009,6 +4344,9 @@ Anne of Denmark URL: . +Picture: +. + Born: 12/12/1574 Died: @@ -4035,6 +4373,9 @@ Henrietta Maria URL: . +Picture: +. + Born: 25/11/1609 Died: @@ -4061,6 +4402,9 @@ Catherine of Braganza URL: . +Picture: +. + Born: 25/11/1638 Died: @@ -4087,6 +4431,9 @@ Anne Hyde URL: . +Picture: +. + Born: 12/03/1637 Died: @@ -4111,6 +4458,9 @@ Mary of Modena URL: . +Picture: +. + Born: 05/10/1658 Died: @@ -4137,6 +4487,9 @@ George of Denmark URL: . +Picture: +. + Born: 02/04/1683 Died: @@ -4161,6 +4514,9 @@ Sophia Dorothea URL: . +Picture: +. + Born: 15/09/1666 Died: @@ -4187,6 +4543,9 @@ Caroline of Ansbach URL: . +Picture: +. + Born: 01/03/1683 Died: @@ -4213,6 +4572,9 @@ Charlotte of Mecklenburg-Strelitz URL: . +Picture: +. + Born: 19/05/1744 Died: @@ -4239,6 +4601,9 @@ Caroline of Brunswick URL: . +Picture: +. + Born: 17/05/1768 Died: @@ -4265,6 +4630,9 @@ Adelaide of Saxe Meiningen URL: . +Picture: +. + Born: 13/08/1792 Died: @@ -4291,6 +4659,9 @@ Albert URL: . +Picture: +. + Born: 26/08/1819 Died: @@ -4317,6 +4688,9 @@ Alexandra URL: . +Picture: +. + Born: 01/12/1844 Died: @@ -4343,6 +4717,9 @@ Mary of Teck URL: . +Picture: +. + Born: 26/05/1867 Died: @@ -4369,6 +4746,9 @@ Wallis Simpson URL: . +Picture: +. + Born: 19/06/1896 Died: @@ -4395,6 +4775,9 @@ Elizabeth Bowes-Lyon URL: . +Picture: +. + Born: 04/08/1900 Died: @@ -4421,6 +4804,9 @@ Robert I Duke of Normandy URL: . +Picture: +. + Born: 22/06/1000 Died: @@ -4452,6 +4838,9 @@ Herleva URL: . +Picture: +. + Born: 1003 Died: @@ -4473,6 +4862,9 @@ Stephen II URL: . +Picture: +. + Born: c1045 Died: @@ -4517,6 +4909,9 @@ Adela of Normandy URL: . +Picture: +. + Born: c1067 Died: @@ -4543,6 +4938,9 @@ Edward the Black Prince URL: . +Picture: +. + Born: 15/06/1330 Died: @@ -4567,6 +4965,9 @@ Joan of Kent URL: . +Picture: +. + Born: 19/09/1328 Died: @@ -4591,6 +4992,9 @@ John of Gaunt URL: . +Picture: +. + Born: 06/03/1340 Died: @@ -4615,6 +5019,9 @@ Blanche of Lancaster URL: . +Picture: +. + Born: 25/03/1345 Died: @@ -4639,6 +5046,9 @@ Richard Plantagenet URL: . +Picture: +. + Born: 21/09/1411 Died: @@ -4663,6 +5073,9 @@ Cecily Neville URL: . +Picture: +. + Born: 03/05/1415 Died: @@ -4687,6 +5100,9 @@ Richard of Conisburgh URL: . +Picture: +. + Born: 20/07/1375 Died: @@ -4711,6 +5127,9 @@ Anne de Mortimer URL: . +Picture: +. + Born: 27/12/1390 Died: @@ -4735,6 +5154,9 @@ Edmund of Langley URL: . +Picture: +. + Born: 05/06/1341 Died: @@ -4769,6 +5191,9 @@ Isabella of Castile URL: . +Picture: +. + Born: 1355 Died: @@ -4793,13 +5218,16 @@ Edmund Tudor URL: . +Picture: +. + Born: 1430? Died: 01-03/11/1456 Father: -Owen Tudor +223 Mother: 99 @@ -4817,6 +5245,9 @@ Margaret Beaufort URL: . +Picture: +. + Born: 31/05/1443 Died: @@ -4841,6 +5272,9 @@ John Beaufort URL: . +Picture: +. + Born: 1403 Died: @@ -4849,7 +5283,7 @@ Died: Father: 145 Mother: -Margaret Holland +409 Spouses: Margaret Beauchamp @@ -4865,6 +5299,9 @@ John Beaufort URL: . +Picture: +. + Born: 1373 Died: @@ -4876,7 +5313,7 @@ Mother: Katherine Swynford Spouses: -Margaret Holland +409 @@ -4889,6 +5326,9 @@ Henry Grey URL: . +Picture: +. + Born: 17/01/1517 Died: @@ -4913,6 +5353,9 @@ Frances Brandon URL: . +Picture: +. + Born: 16/07/1517 Died: @@ -4937,6 +5380,9 @@ Charles Brandon URL: . +Picture: +. + Born: 1484 Died: @@ -4961,6 +5407,9 @@ Mary Tudor URL: . +Picture: +. + Born: 18/03/1496 Died: @@ -4985,6 +5434,9 @@ Henry Stuart URL: . +Picture: +. + Born: 07/12/1545 Died: @@ -5029,6 +5481,9 @@ Mary Queen of Scots URL: . +Picture: +. + Born: 7-8/12/1542 Died: @@ -5065,6 +5520,9 @@ Margaret Douglas URL: . +Picture: +. + Born: 08/10/1515 Died: @@ -5089,6 +5547,9 @@ James V URL: . +Picture: +. + Born: 10/04/1512 Died: @@ -5123,6 +5584,9 @@ Margaret Tudor URL: . +Picture: +. + Born: 28/11/1489 Died: @@ -5149,6 +5613,9 @@ William II Prince of Orange URL: . +Picture: +. + Born: 27/05/1626 Died: @@ -5183,6 +5650,9 @@ Mary, Princess Royal URL: . +Picture: +. + Born: 04/11/1631 Died: @@ -5207,6 +5677,9 @@ Ernest Augustus URL: . +Picture: +. + Born: 20/11/1629 Died: @@ -5231,6 +5704,9 @@ Sophia of Hanover URL: . +Picture: +. + Born: 14/10/1630 Died: @@ -5255,6 +5731,9 @@ Elizabeth Stuart URL: . +Picture: +. + Born: 19/08/1596 Died: @@ -5281,6 +5760,9 @@ Frederick URL: . +Picture: +. + Born: 01/02/1707 Died: @@ -5305,6 +5787,9 @@ Augusta of Saxe-Gotha URL: . +Picture: +. + Born: 30/11/1719 Died: @@ -5329,6 +5814,9 @@ Prince Edward URL: . +Picture: +. + Born: 02/11/1767 Died: @@ -5364,6 +5852,9 @@ Sigehelm URL: . +Picture: +. + Born: ? Died: @@ -5398,6 +5889,9 @@ Wynflaed URL: . +Picture: +. + Born: ? Died: @@ -5419,6 +5913,9 @@ Aelfgar URL: . +Picture: +. + Born: ? Died: @@ -5453,6 +5950,9 @@ Aelfgifu URL: . +Picture: +. + Born: ? Died: @@ -5474,6 +5974,9 @@ Ordgar URL: . +Picture: +. + Born: ? Died: @@ -5508,6 +6011,9 @@ Aethelwald URL: . +Picture: +. + Born: ? Died: @@ -5532,6 +6038,9 @@ Thored URL: . +Picture: +. + Born: ? Died: @@ -5566,6 +6075,9 @@ Richard the Fearless URL: . +Picture: +. + Born: 933 Died: @@ -5600,6 +6112,9 @@ Gunnora URL: . +Picture: +. + Born: c950 Died: @@ -5626,6 +6141,9 @@ Mieszko I of Poland URL: . +Picture: +. + Born: c940 Died: @@ -5660,6 +6178,9 @@ Dobrawa of Bohemia URL: . +Picture: +. + Born: C940-945 Died: @@ -5686,6 +6207,9 @@ Erik the Victorious URL: . +Picture: +. + Born: c945 Died: @@ -5720,6 +6244,9 @@ Aelfhelm URL: . +Picture: +. + Born: ? Died: @@ -5754,6 +6281,9 @@ Godwin URL: . +Picture: +. + Born: 1001 Died: @@ -5788,6 +6318,9 @@ Gytha URL: . +Picture: +. + Born: c977 Died: @@ -5812,6 +6345,9 @@ Aelfgar of Mercia URL: . +Picture: +. + Born: c1000 Died: @@ -5846,6 +6382,9 @@ Gruffodd ap Llwelyn URL: . +Picture: +. + Born: c1007 Died: @@ -5901,6 +6440,9 @@ Baldwin V URL: . +Picture: +. + Born: 19/08/1012 Died: @@ -5935,6 +6477,9 @@ Adela of France URL: . +Picture: +. + Born: 1009 Died: @@ -5963,6 +6508,9 @@ Malcolm III URL: . +Picture: +. + Born: ? Died: @@ -5997,6 +6545,9 @@ St Margaret of Scotland URL: . +Picture: +. + Born: C 1045 Died: @@ -6023,6 +6574,9 @@ Godfrey I URL: . +Picture: +. + Born: C 1060 Died: @@ -6057,6 +6611,9 @@ Ida of Namur URL: . +Picture: +. + Born: 1078 Died: @@ -6081,6 +6638,9 @@ William d'Aubigny URL: . +Picture: +. + Born: c1109 Died: @@ -6125,6 +6685,9 @@ Eustace III URL: . +Picture: +. + Born: ? Died: @@ -6156,6 +6719,9 @@ Mary of Scotland URL: . +Picture: +. + Born: 1082 Died: @@ -6180,6 +6746,9 @@ Henry IV URL: . +Picture: +. + Born: 11/11/1050 Died: @@ -6214,6 +6783,9 @@ Fulk URL: . +Picture: +. + Born: 1089-1092 Died: @@ -6258,6 +6830,9 @@ Ermengarde URL: . +Picture: +. + Born: ? Died: @@ -6282,6 +6857,9 @@ William X URL: . +Picture: +. + Born: 1099 Died: @@ -6316,6 +6894,9 @@ Aenor de Chatellerault URL: . +Picture: +. + Born: c1103 Died: @@ -6340,6 +6921,9 @@ Louis VII URL: . +Picture: +. + Born: 1120 Died: @@ -6385,6 +6969,9 @@ Constance of Castile URL: . +Picture: +. + Born: c1140 Died: @@ -6409,6 +6996,9 @@ Bela III of Hungary URL: . +Picture: +. + Born: c1148 Died: @@ -6444,6 +7034,9 @@ Sancho VI URL: . +Picture: +. + Born: 21/04/1132 Died: @@ -6478,6 +7071,9 @@ Sancha of Castine URL: . +Picture: +. + Born: C 1139 Died: @@ -6504,6 +7100,9 @@ William Fitz Robert URL: . +Picture: +. + Born: ? Died: @@ -6538,6 +7137,9 @@ Hawise de Beaumont URL: . +Picture: +. + Born: ? Died: @@ -6562,6 +7164,9 @@ Geoffrey Fitz Geoffrey URL: . +Picture: +. + Born: c1191 Died: @@ -6606,6 +7211,9 @@ Hubert de Burgh URL: . +Picture: +. + Born: C 1160 Died: @@ -6640,6 +7248,9 @@ Aymer of Angouleme URL: . +Picture: +. + Born: C 1160 Died: @@ -6674,6 +7285,9 @@ Alice of Courtenay URL: . +Picture: +. + Born: 1160 Died: @@ -6700,6 +7314,9 @@ Hugh X of Lusignan URL: . +Picture: +. + Born: C 1183-1195 Died: @@ -6734,6 +7351,9 @@ Ramon Berenguer IV URL: . +Picture: +. + Born: 1198 Died: @@ -6778,6 +7398,9 @@ Beatrice of Savoy URL: . +Picture: +. + Born: 1205 Died: @@ -6802,6 +7425,9 @@ Ferdinand III URL: . +Picture: +. + Born: 05/08/1199 Died: @@ -6848,6 +7474,9 @@ Philip III URL: . +Picture: +. + Born: 30/04/1245 Died: @@ -6883,6 +7512,9 @@ Marie of Brabant URL: . +Picture: +. + Born: 13/05/1254 Died: @@ -6909,6 +7541,9 @@ Joan URL: . +Picture: +. + Born: C 1220 Died: @@ -6955,6 +7590,9 @@ Philip IV URL: . +Picture: +. + Born: 04-06/1268 Died: @@ -6991,6 +7629,9 @@ Joan I URL: . +Picture: +. + Born: 14/01/1273 Died: @@ -7028,6 +7669,9 @@ Joan of Valois URL: . +Picture: +. + Born: C 1294 Died: @@ -7052,6 +7696,9 @@ Charles IV URL: . +Picture: +. + Born: 14/05/1316 Died: @@ -7117,6 +7764,9 @@ Elizabeth of Pomerania URL: . +Picture: +. + Born: 1347 Died: @@ -7143,6 +7793,9 @@ Charles VI URL: . +Picture: +. + Born: 03/12/1368 Died: @@ -7177,6 +7830,9 @@ Isabeau of Bavaria URL: . +Picture: +. + Born: C 1370 Died: @@ -7203,6 +7859,9 @@ Charles URL: . +Picture: +. + Born: 24/11/1394 Died: @@ -7237,6 +7896,9 @@ Charles II URL: . +Picture: +. + Born: 10/10/1332 Died: @@ -7281,6 +7943,9 @@ Joan of Valois URL: . +Picture: +. + Born: 24/06/1343 Died: @@ -7307,6 +7972,9 @@ John V URL: . +Picture: +. + Born: 1339 Died: @@ -7341,6 +8009,9 @@ Owen Tudor URL: . +Picture: +. + Born: C 1400 Died: @@ -7365,6 +8036,9 @@ Humphrey de Bohun URL: . +Picture: +. + Born: 25/03/1341 Died: @@ -7401,6 +8075,9 @@ Joan URL: . +Picture: +. + Born: 1347 Died: @@ -7425,6 +8102,9 @@ Philip URL: . +Picture: +. + Born: 10/06/1921 Died: @@ -7449,6 +8129,9 @@ Princess Victoria URL: . +Picture: +. + Born: 17/08/1786 Died: @@ -7473,6 +8156,9 @@ Aelfgifu URL: . +Picture: +. + Born: ? Died: @@ -7497,6 +8183,9 @@ Bertha of Savoy URL: . +Picture: +. + Born: 21/09/1051 Died: @@ -7521,6 +8210,9 @@ William I, Count of Hainaut URL: . +Picture: +. + Born: C 1286 Died: @@ -7557,6 +8249,9 @@ Rene URL: . +Picture: +. + Born: 16/01/1409 Died: @@ -7647,6 +8342,9 @@ Isabella of Lorraine URL: . +Picture: +. + Born: 1400 Died: @@ -7681,6 +8379,9 @@ Richard Woodville URL: . +Picture: +. + Born: 1405 Died: @@ -7715,6 +8416,9 @@ Jacquetta of Luxembourg URL: . +Picture: +. + Born: 1415-1416 Died: @@ -7727,6 +8431,7 @@ Margherita Spouses: 133 +405 @@ -7739,6 +8444,9 @@ Sir John Grey URL: . +Picture: +. + Born: c.1432 Died: @@ -7763,6 +8471,9 @@ Richard Neville URL: . +Picture: +. + Born: 22/11/1428 Died: @@ -7797,6 +8508,9 @@ Anne de Beauchamp URL: . +Picture: +. + Born: 13/07/1426 Died: @@ -7831,6 +8545,9 @@ Edward of Westminster URL: . +Picture: +. + Born: 13/10/1453 Died: @@ -7865,6 +8582,9 @@ Ferdinand II URL: . +Picture: +. + Born: 10/03/1452 Died: @@ -7911,6 +8631,9 @@ Isabella I URL: . +Picture: +. + Born: 22/04/1451 Died: @@ -7946,6 +8669,9 @@ Arthur URL: . +Picture: +. + Born: 20/09/1486 Died: @@ -7982,6 +8708,9 @@ Thomas Boleyn URL: . +Picture: +. + Born: c1477 Died: @@ -8006,6 +8735,9 @@ Lady Elizabeth Howard URL: . +Picture: +. + Born: c1480 Died: @@ -8030,6 +8762,9 @@ John Seymour URL: . +Picture: +. + Born: c1471 Died: @@ -8054,6 +8789,9 @@ Margery Wentworth URL: . +Picture: +. + Born: c1478 Died: @@ -8078,6 +8816,9 @@ John III URL: . +Picture: +. + Born: 10/11/1490 Died: @@ -8112,6 +8853,9 @@ Maria of Julich-Berg URL: . +Picture: +. + Born: 03/08/1491 Died: @@ -8136,6 +8880,9 @@ Edmund Howard URL: . +Picture: +. + Born: c1478 Died: @@ -8160,6 +8907,9 @@ Joyce Culpepper URL: . +Picture: +. + Born: C 1480 Died: @@ -8184,6 +8934,9 @@ Thomas Parr URL: . +Picture: +. + Born: c1483 Died: @@ -8208,6 +8961,9 @@ Maud Green URL: . +Picture: +. + Born: 06/04/1492 Died: @@ -8232,6 +8988,9 @@ Edward Burgh URL: . +Picture: +. + Born: ? Died: @@ -8256,6 +9015,9 @@ John Neville URL: . +Picture: +. + Born: 17/11/1493 Died: @@ -8280,6 +9042,9 @@ Thomas Seymour URL: . +Picture: +. + Born: c1508 Died: @@ -8304,6 +9069,9 @@ John Dudley URL: . +Picture: +. + Born: 1504 Died: @@ -8338,6 +9106,9 @@ Jane Guildford URL: . +Picture: +. + Born: 1508-1509 Died: @@ -8362,6 +9133,9 @@ Charles V URL: . +Picture: +. + Born: 24/02/1500 Died: @@ -8419,6 +9193,9 @@ Isabella of Portugal URL: . +Picture: +. + Born: 24/10/1503 Died: @@ -8443,6 +9220,9 @@ Maria Manuela URL: . +Picture: +. + Born: 1527 Died: @@ -8467,6 +9247,9 @@ Elizabeth of Valois URL: . +Picture: +. + Born: 02/04/1545 Died: @@ -8491,6 +9274,9 @@ Anna of Austria URL: . +Picture: +. + Born: 01/11/1549 Died: @@ -8515,6 +9301,9 @@ Frederick II URL: . +Picture: +. + Born: 01/07/1534 Died: @@ -8550,6 +9339,9 @@ Sophie of Mecklenburg-Gustrow URL: . +Picture: +. + Born: 04/09/1557 Died: @@ -8574,6 +9366,9 @@ Henry IV URL: . +Picture: +. + Born: 13/12/1553 Died: @@ -8618,6 +9413,9 @@ Marie de'Medici URL: . +Picture: +. + Born: 26/04/1575 Died: @@ -8642,6 +9440,9 @@ John IV URL: . +Picture: +. + Born: 19/03/1604 Died: @@ -8687,6 +9488,9 @@ Luisa de Guzman URL: . +Picture: +. + Born: 13/10/1613 Died: @@ -8711,6 +9515,9 @@ Edward Hyde URL: . +Picture: +. + Born: 18/02/1609 Died: @@ -8745,6 +9552,9 @@ Frances Aylesbury URL: . +Picture: +. + Born: 25/08/1617 Died: @@ -8769,6 +9579,9 @@ Alfonso IV URL: . +Picture: +. + Born: 14/10/1634 Died: @@ -8803,6 +9616,9 @@ Laura Martinozzi URL: . +Picture: +. + Born: 24/05/1639 Died: @@ -8827,6 +9643,9 @@ Frederick III URL: . +Picture: +. + Born: 18/03/1609 Died: @@ -8892,6 +9711,9 @@ Sophie Amalie of Brunswick-Luneburg URL: . +Picture: +. + Born: 24/03/1628 Died: @@ -8916,6 +9738,9 @@ George William URL: . +Picture: +. + Born: 26/01/1624 Died: @@ -8950,6 +9775,9 @@ John Frederick URL: . +Picture: +. + Born: 18/10/1654 Died: @@ -8984,6 +9812,9 @@ Princess Eleonore Erdmuth of Saxe-Eisenach URL: . +Picture: +. + Born: 13/04/1662 Died: @@ -9008,6 +9839,9 @@ Charles William Ferdinand URL: . +Picture: +. + Born: 09/10/1735 Died: @@ -9042,6 +9876,9 @@ Princess Augusta Frederica URL: . +Picture: +. + Born: 31/07/1737 Died: @@ -9066,6 +9903,9 @@ George I URL: . +Picture: +. + Born: 04/02/1761 Died: @@ -9100,6 +9940,9 @@ Luise Eleonore of Hohenlohe-Langenburg URL: . +Picture: +. + Born: 11/08/1763 Died: @@ -9124,6 +9967,9 @@ Ernest I URL: . +Picture: +. + Born: 02/01/1784 Died: @@ -9168,6 +10014,9 @@ Louise URL: . +Picture: +. + Born: 21/12/1800 Died: @@ -9192,6 +10041,9 @@ Christian IX URL: . +Picture: +. + Born: 08/04/1818 Died: @@ -9226,6 +10078,9 @@ Louise of Hesse-Kassel URL: . +Picture: +. + Born: 07/09/1817 Died: @@ -9250,6 +10105,9 @@ Francis URL: . +Picture: +. + Born: 28/08/1837 Died: @@ -9284,6 +10142,9 @@ Princess Mary Adelaid URL: . +Picture: +. + Born: 27/11/1833 Died: @@ -9308,6 +10169,9 @@ Teackle Wallis Warfield URL: . +Picture: +. + Born: ? Died: @@ -9332,6 +10196,9 @@ Alice Montague URL: . +Picture: +. + Born: ? Died: @@ -9356,6 +10223,9 @@ Earl Winfield Spencer URL: . +Picture: +. + Born: 20/09/1888 Died: @@ -9380,6 +10250,9 @@ Erest Aldrich Simpson URL: . +Picture: +. + Born: 26/05/1897 Died: @@ -9404,6 +10277,9 @@ Claude Bowes-Lion URL: . +Picture: +. + Born: 14/03/1855 Died: @@ -9439,6 +10315,9 @@ Cecilia Cavendish-Bentinck URL: . +Picture: +. + Born: 11/09/1862 Died: @@ -9463,6 +10342,9 @@ Prince Andrew URL: . +Picture: +. + Born: 02/02/1882 Died: @@ -9487,6 +10369,9 @@ Princess Alice URL: . +Picture: +. + Born: 25/02/1885 Died: @@ -9511,6 +10396,9 @@ Eleonore Desmier d'Obreuse URL: . +Picture: +. + Born: 03/01/1639 Died: @@ -9535,6 +10423,9 @@ Charles Louis Frederick URL: . +Picture: +. + Born: 23/02/1708 Died: @@ -9579,6 +10470,9 @@ Pincess Elizabeth-Albertine URL: . +Picture: +. + Born: 04/08/1713 Died: @@ -9598,5 +10492,3215 @@ ID: 298 Name: +Aethelflaed + +URL: +. + +Picture: +. + +Born: +? +Died: +12/06/918 + +Father: +1 +Mother: +61 + +Spouses: +Aetelred + +Style: +Lady of the Mercians +Territories: +Mercia + +From: +911 +To: +918 + + + +ID: +299 + +Name: +Aethelgifu + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +1 +Mother: +61 + +Style: +Abbess of Shaftesbury +Territories: +Shaftsbury + +From: +? +To: +? + + + +ID: +300 + +Name: +Aethelweard + +URL: +. + +Picture: +. + +Born: +C 880 +Died: +920-922 + +Father: +1 +Mother: +61 + +Spouses: +? + + + +ID: +301 + +Name: +Aelthryth + +URL: +. + +Picture: +. + +Born: +877 +Died: +07/06/929 + +Father: +1 +Mother: +61 + +Spouses: +Baldwin II + + + +ID: +302 + +Name: +daughter + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +2 +Mother: +62 + +Spouses: +Sihtric Caech + + + +ID: +303 + +Name: +Eadgifu + +URL: +. + +Picture: +. + +Born: +902 +Died: +After 955 + +Father: +2 +Mother: +63 + +Spouses: +Charles II + Herbert the Old + + + +ID: +304 + +Name: +Aelfweard + +URL: +. + +Picture: +. + +Born: +c902 +Died: +02/08/924 + +Father: +2 +Mother: +63 + +Spouses: + + + + +ID: +305 + +Name: +Eadgyth + +URL: +. + +Picture: +. + +Born: +910 +Died: +26/01/946 + +Father: +2 +Mother: +63 + +Spouses: +Otto I + + + +ID: +306 + +Name: +Eadhild + +URL: +. + +Picture: +. + +Born: +? +Died: +937 + +Father: +2 +Mother: +63 + +Spouses: +Hugh + + + +ID: +307 + +Name: +Aelgifu + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +2 +Mother: +63 + +Spouses: +a print near the alps + + + +ID: +308 + +Name: +Eadflaed + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +2 +Mother: +63 + +Spouses: + + + + +ID: +309 + +Name: +Edwin of Wessex + +URL: +. + +Picture: +. + +Born: +? +Died: +933 + +Father: +2 +Mother: +63 + +Spouses: + + + + +ID: +310 + +Name: +St Eadburh of Winchester + +URL: +. + +Picture: +. + +Born: +? +Died: +15/06/960 + +Father: +2 +Mother: +64 + +Spouses: + + + + +ID: +311 + +Name: +Eadhgifu + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +2 +Mother: +64 + +Spouses: +Louis prince of Aquitaine + + + +ID: +312 + +Name: +St Edith of Wilton + +URL: +. + +Picture: +. + +Born: +961 +Died: +15/09/984 + +Father: +7 +Mother: +69 + +Spouses: + + + + +ID: +313 + +Name: +Edmund + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +7 +Mother: +70 + +Spouses: + + + + +ID: +314 + +Name: +Aethelstan Aetheling + +URL: +. + +Picture: +. + +Born: +? +Died: +25/06/1014 + +Father: +9 +Mother: +71 + +Spouses: + + + + +ID: +315 + +Name: +Ecgberht Aetheling + +URL: +. + +Picture: +. + +Born: +? +Died: +C 1005 + +Father: +9 +Mother: +71 + +Spouses: + + + + +ID: +316 + +Name: +Eadred Aetheling + +URL: +. + +Picture: +. + +Born: +? +Died: +1012 + +Father: +9 +Mother: +71 + +Spouses: + + + + +ID: +317 + +Name: +Eadwig Aetheling + +URL: +. + +Picture: +. + +Born: +? +Died: +c1017 + +Father: +9 +Mother: +71 + +Spouses: + + + + +ID: +318 + +Name: +Edgar Aetheling + +URL: +. + +Picture: +. + +Born: +? +Died: +C 1008 + +Father: +9 +Mother: +71 + +Spouses: + + + + +ID: +319 + +Name: +Eadgyth + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +9 +Mother: +71 + +Spouses: +Eadric Steona + + + +ID: +320 + +Name: +Aelfgifu + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +9 +Mother: +71 + +Spouses: +Uchtred the Bold + + + +ID: +321 + +Name: +Wulfhilda + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +9 +Mother: +71 + +Spouses: +Ulfcytel Snillingr + + + +ID: +322 + +Name: +daughter + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +9 +Mother: +71 + +Style: +Abbess of Wherwall Abbey +Territories: +Wherwall + +From: +? +To: +? + + + +ID: +323 + +Name: +Alfred Aetheling + +URL: +. + +Picture: +. + +Born: +? +Died: +1036 + +Father: +9 +Mother: +72 + +Spouses: + + + + +ID: +324 + +Name: +Goda of England + +URL: +. + +Picture: +. + +Born: +1004 +Died: +c1047 + +Father: +9 +Mother: +72 + +Spouses: +Drogo of Mantes + Eustace II + + + +ID: +325 + +Name: +Harald II + +URL: +. + +Picture: +. + +Born: +? +Died: +1018 + +Father: +10 +Mother: +73 + +Style: +King of Denmark +Territories: +Denmark + +From: +1014 +To: +1018 + + + +ID: +326 + +Name: +Gytha + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +10 +Mother: +73 + +Spouses: + + + + +ID: +327 + +Name: +Gunnhild + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +10 +Mother: +73 + +Spouses: + + + + +ID: +328 + +Name: +Santslaue + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +10 +Mother: +73 + +Spouses: + + + + +ID: +329 + +Name: +Thyra + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +10 +Mother: +73 + +Spouses: + + + + +ID: +330 + +Name: +Estrid Svendsdatter + +URL: +. + +Picture: +. + +Born: +990-997 +Died: +1057-1073 + +Father: +10 +Mother: +73 + +Spouses: +a Russian prince + Ulf Jarl + + + +ID: +331 + +Name: +Edward the Exile + +URL: +. + +Picture: +. + +Born: +1016 +Died: +08/1057 + +Father: +11 +Mother: +74 + +Spouses: +Agatha + + + +ID: +332 + +Name: +Edmund Aetheling + +URL: +. + +Picture: +. + +Born: +C1015-1017 +Died: +1046-1054 + +Father: +11 +Mother: +74 + +Spouses: + + + + +ID: +333 + +Name: +Sweyn Knutsson + +URL: +. + +Picture: +. + +Born: +c1016 +Died: +1035 + +Father: +12 +Mother: +75 + +Spouses: + + + + +ID: +334 + +Name: +Gunhilda of Denmark + +URL: +. + +Picture: +. + +Born: +c1020 +Died: +18/07/1038 + +Father: +12 +Mother: +72 + +Spouses: +Henry III + + + +ID: +335 + +Name: +Godwine + +URL: +. + +Picture: +. + +Born: +1049 +Died: +? + +Father: +16 +Mother: +77 + +Spouses: + + + + +ID: +336 + +Name: +Edmund + +URL: +. + +Picture: +. + +Born: +1049 +Died: +? + +Father: +16 +Mother: +77 + +Spouses: + + + + +ID: +337 + +Name: +Magnus + +URL: +. + +Picture: +. + +Born: +1051 +Died: +? + +Father: +16 +Mother: +77 + +Spouses: + + + + +ID: +338 + +Name: +Gunhild + +URL: +. + +Picture: +. + +Born: +1055 +Died: +1097 + +Father: +16 +Mother: +77 + +Spouses: +Alan Rufus + + + +ID: +339 + +Name: +Gytha of Wessex + +URL: +. + +Picture: +. + +Born: +? +Died: +1098-1107 + +Father: +16 +Mother: +77 + +Spouses: +Vladimir + + + +ID: +340 + +Name: +Harold + +URL: +. + +Picture: +. + +Born: +1067 +Died: +1098 + +Father: +16 +Mother: +78 + +Spouses: + + + + +ID: +341 + +Name: +Ulf + +URL: +. + +Picture: +. + +Born: +1066 +Died: +After 1087 + +Father: +16 +Mother: +78 + +Spouses: + + + + +ID: +342 + +Name: +Robert Curthose + +URL: +. + +Picture: +. + +Born: +c1054 +Died: +03/02/1134 + +Father: +17 +Mother: +79 + +Spouses: +Sybilla + +Style: +Duke of Normandy +Territories: +Normandy + +From: +1087 +To: +1106 + + + +ID: +343 + +Name: +Richard of Normandy + +URL: +. + +Picture: +. + +Born: +c1054 +Died: +1069-1075 + +Father: +17 +Mother: +79 + +Spouses: + + + + +ID: +344 + +Name: +Adeliza + +URL: +. + +Picture: +. + +Born: +? +Died: +Before 1113 + +Father: +17 +Mother: +79 + +Spouses: + + + + +ID: +345 + +Name: +Cecilia + +URL: +. + +Picture: +. + +Born: +c1056 +Died: +30/06/1126 + +Father: +17 +Mother: +79 + +Style: +Abbess of Holy Trinity +Territories: +Holy Trinity + +From: +1112 +To: +1126 + + + +ID: +346 + +Name: +Matilda + +URL: +. + +Picture: +. + +Born: +c1061 +Died: +c1086 + +Father: +17 +Mother: +79 + +Spouses: + + + + +ID: +347 + +Name: +Constance of Normandy + +URL: +. + +Picture: +. + +Born: +1057-1061 +Died: +13/08/1090 + +Father: +17 +Mother: +79 + +Spouses: +Alan IV + + + +ID: +348 + +Name: +Agatha + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +17 +Mother: +79 + +Spouses: + + + + +ID: +349 + +Name: +William Adelin + +URL: +. + +Picture: +. + +Born: +1103 +Died: +1120 + +Father: +19 +Mother: +80 + +Spouses: + + + + +ID: +350 + +Name: +Richard + +URL: +. + +Picture: +. + +Born: +? +Died: +? + +Father: +19 +Mother: +80 + +Spouses: + + + + +ID: +351 + +Name: +Eustace IV + +URL: +. + +Picture: +. + +Born: +c1129 +Died: +17/08/1153 + +Father: +20 +Mother: +82 + +Spouses: +Constance + +Style: +Count of Boulogne +Territories: +Boulogne + +From: +25/12/1146 +To: +17/08/1153 + + + +ID: +352 + +Name: +Matilda + +URL: +. + +Picture: +. + +Born: +? +Died: +Before 1141 + +Father: +20 +Mother: +82 + +Spouses: +Waleran de Beaumont + + + +ID: +353 + +Name: +Marie I + +URL: +. + +Picture: +. + +Born: +1136 +Died: +25/07/1182 + +Father: +20 +Mother: +82 + +Spouses: +Matthew of Alsace + +Style: +Countess of Boulogne +Territories: +Boulogne + +From: +1159 +To: +1170 + + + +ID: +354 + +Name: +Baldwin + +URL: +. + +Picture: +. + +Born: +? +Died: +Before 1135 + +Father: +20 +Mother: +82 + +Spouses: + + + + +ID: +355 + +Name: +Adela + +URL: +. + +Picture: +. + +Born: +? +Died: +Before 1146 + +Father: +20 +Mother: +82 + +Spouses: + + + + +ID: +356 + +Name: +William I + +URL: +. + +Picture: +. + +Born: +C 1137 +Died: +11/10/1159 + +Father: +20 +Mother: +82 + +Spouses: +Isabel de Warenne + +Style: +Count of Boulogne +Territories: +Boulogne + +From: +1153 +To: +1159 + + + +ID: +357 + +Name: +Geoffrey + +URL: +. + +Picture: +. + +Born: +01/06/1134 +Died: +27/07/1158 + +Father: +84 +Mother: +21 + +Style: +Count of Nantes +Territories: +Nantes + +From: +1156 +To: +1158 + + + +ID: +358 + +Name: +William FitzEmpress + +URL: +. + +Picture: +. + +Born: +22/07/1136 +Died: +30/01/1163-1164 + +Father: +84 +Mother: +21 + +Spouses: + + + + +ID: +359 + +Name: +Geoffrey + +URL: +. + +Picture: +. + +Born: +c1152 +Died: +12/12/1212 + +Father: +22 +Mother: +Ykenai + +Style: +Archbishop of York +Territories: +York + +From: +? +To: +? + + + +ID: +360 + +Name: +William IX + +URL: +. + +Picture: +. + +Born: +17/08/1153 +Died: +04/1156 + +Father: +22 +Mother: +85 + +Style: +Count of Poitiers +Territories: +Poitiers + +From: +17/08/1153 +To: +04/1156 + + + +ID: +361 + +Name: +Matilda / Maud + +URL: +. + +Picture: +. + +Born: +1156 +Died: +28/08/1189 + +Father: +22 +Mother: +85 + +Spouses: +Henry the Lion + + + +ID: +362 + +Name: +Geoffrey II + +URL: +. + +Picture: +. + +Born: +23/09/1158 +Died: +19/08/1186 + +Father: +22 +Mother: +85 + +Spouses: +Constance + + + +ID: +363 + +Name: +Eleanor of England + +URL: +. + +Picture: +. + +Born: +13/10/1162 +Died: +31/10/1214 + +Father: +22 +Mother: +85 + +Spouses: +Alfonso VIII + + + +ID: +364 + +Name: +Joan of England + +URL: +. + +Picture: +. + +Born: +10/1165 +Died: +04/09/1199 + +Father: +22 +Mother: +85 + +Spouses: +William II + Raymond VI + + + +ID: +365 + +Name: +William Longespee + +URL: +. + +Picture: +. + +Born: +c1176 +Died: +07/03/1226 + +Father: +22 +Mother: +Ida de Tosny + +Spouses: +Ela + + + +ID: +366 + +Name: +Richard + +URL: +. + +Picture: +. + +Born: +05/01/1209 +Died: +02/04/1272 + +Father: +25 +Mother: +89 + +Spouses: +Isabel Marshal +Sanchia +Beatrice of Falkenburg + +Style: +Count of Poitou +Territories: +Poitou + +From: +1225 +To: +1243 + +Style: +Earl of Cornwall +Territories: +Cornwall + +From: +1225 +To: +1272 + +Style: +King of the Romans +Territories: +Germany + +From: +13/01/1257 +To: +02/04/1272 + + + +ID: +367 + +Name: +Joan of England + +URL: +. + +Picture: +. + +Born: +22/07/1210 +Died: +04/03/1238 + +Father: +25 +Mother: +89 + +Spouses: +Alexander II + + + +ID: +368 + +Name: +Isabella + +URL: +. + +Picture: +. + +Born: +1214 +Died: +01/12/1241 + +Father: +25 +Mother: +89 + +Spouses: +Frederick II + + + +ID: +369 + +Name: +Eleanor + +URL: +. + +Picture: +. + +Born: +1215 +Died: +13/04/1275 + +Father: +25 +Mother: +89 + +Spouses: +William Marshal + Simon de Montfort + + + +ID: +370 + +Name: +Margaret + +URL: +. + +Picture: +. + +Born: +29/09/1240 +Died: +26/02/1275 + +Father: +26 +Mother: +90 + +Spouses: +Alexander III + + + +ID: +371 + +Name: +Beatrice + +URL: +. + +Picture: +. + +Born: +25/06/1242 +Died: +24/03/1275 + +Father: +26 +Mother: +90 + +Spouses: +John II + + + +ID: +372 + +Name: +Edmund + +URL: +. + +Picture: +. + +Born: +16/01/1245 +Died: +05/06/1296 + +Father: +26 +Mother: +90 + +Spouses: +Aveline de Forz + Blanche of Artois + +Style: +Earl of Lancaster and Leicester +Territories: +Lancaster +Leicester + +From: +? +To: +? + + + +ID: +373 + +Name: +Katherine + +URL: +. + +Picture: +. + +Born: +25/11/1253 +Died: +03/05/1257 + +Father: +26 +Mother: +90 + +Spouses: + + + + +ID: +374 + +Name: +daughter + +URL: +. + +Picture: +. + +Born: +05/1255 +Died: +29/05/1255 + +Father: +27 +Mother: +91 + +Spouses: + + + + +ID: +375 + +Name: +Katherine + +URL: +. + +Picture: +. + +Born: +Before 17/06/1264 +Died: +05/09/1264 + +Father: +27 +Mother: +91 + +Spouses: + + + + +ID: +376 + +Name: +Joan + +URL: +. + +Picture: +. + +Born: +summer or Januarry 1265 +Died: +Before 07/09/1265 + +Father: +27 +Mother: +91 + +Spouses: + + + + +ID: +377 + +Name: +John + +URL: +. + +Picture: +. + +Born: +13/07/1266 +Died: +03/08/1271 + +Father: +27 +Mother: +91 + +Spouses: + + + + +ID: +378 + +Name: +Henry + +URL: +. + +Picture: +. + +Born: +13/07/1267 +Died: +14/10/1274 + +Father: +27 +Mother: +91 + +Spouses: + + + + +ID: +379 + +Name: +Eleanor + +URL: +. + +Picture: +. + +Born: +18/06/1269 +Died: +29/08/1298 + +Father: +27 +Mother: +91 + +Spouses: +Henry III + + + +ID: +380 + +Name: +Juliana + +URL: +. + +Picture: +. + +Born: +After 05/1271 +Died: +05/09/1271 + +Father: +27 +Mother: +91 + +Spouses: + + + + +ID: +381 + +Name: +Joan + +URL: +. + +Picture: +. + +Born: +04/1272 +Died: +23/04/1307 + +Father: +27 +Mother: +91 + +Spouses: +Gilbert de Clare + Ralph de Monthermer + + + +ID: +382 + +Name: +Alphonso + +URL: +. + +Picture: +. + +Born: +24/11/1273 +Died: +19/08/1284 + +Father: +27 +Mother: +91 + +Style: +Earl of Chester +Territories: +Chester + +From: +? +To: +? + + + +ID: +383 + +Name: +Margaret + +URL: +. + +Picture: +. + +Born: +15/03/1275 +Died: +After 1333 + +Father: +27 +Mother: +91 + +Spouses: +John II + + + +ID: +384 + +Name: +Berengaria + +URL: +. + +Picture: +. + +Born: +01/05/1276 +Died: +1277-1278 + +Father: +27 +Mother: +91 + +Spouses: + + + + +ID: +385 + +Name: +daughter + +URL: +. + +Picture: +. + +Born: +12/1277 +Died: +01/1278 + +Father: +27 +Mother: +91 + +Spouses: + + + + +ID: +386 + +Name: +Mary + +URL: +. + +Picture: +. + +Born: +11-12/03/1279 +Died: +c1332 + +Father: +27 +Mother: +91 + +Spouses: + + + + +ID: +387 + +Name: +son + +URL: +. + +Picture: +. + +Born: +1280-1281 +Died: +1280-1281 + +Father: +27 +Mother: +91 + +Spouses: + + + + +ID: +388 + +Name: +Elizabeth + +URL: +. + +Picture: +. + +Born: +07/08/1282 +Died: +05/05/1316 + +Father: +27 +Mother: +91 + +Spouses: +John I + Humphrey de Bohun + + + +ID: +389 + +Name: +Thomas + +URL: +. + +Picture: +. + +Born: +01/06/1300 +Died: +08/1338 + +Father: +27 +Mother: +92 + +Spouses: +Alice de Hales + Mary de Brewes + + + +ID: +390 + +Name: +Edmund + +URL: +. + +Picture: +. + +Born: +05/08/1301 +Died: +19/03/1330 + +Father: +27 +Mother: +92 + +Spouses: +Margaret Wake + + + +ID: +391 + +Name: +Eleanor + +URL: +. + +Picture: +. + +Born: +06/05/1306 +Died: +1310 + +Father: +27 +Mother: +92 + +Spouses: + + + + +ID: +392 + +Name: +John of Eltham + +URL: +. + +Picture: +. + +Born: +15/08/1316 +Died: +13/09/1336 + +Father: +28 +Mother: +93 + +Spouses: + + + + +ID: +393 + +Name: +Eleanor of Woodstock + +URL: +. + +Picture: +. + +Born: +18/06/1318 +Died: +22/04/1355 + +Father: +28 +Mother: +93 + +Spouses: +Reginald II + + + +ID: +394 + +Name: +Joan + +URL: +. + +Picture: +. + +Born: +05/07/1321 +Died: +07/09/1362 + +Father: +28 +Mother: +93 + +Spouses: +David II + + + +ID: +395 + +Name: +Isabella + +URL: +. + +Picture: +. + +Born: +16/06/1332 +Died: +1379-1382 + +Father: +29 +Mother: +94 + +Spouses: +Enguerrand VII + + + +ID: +396 + +Name: +Joan + +URL: +. + +Picture: +. + +Born: +1333-1334 +Died: +01/07/1348 + +Father: +29 +Mother: +94 + +Spouses: + + + + +ID: +397 + +Name: +William of Hatfield + +URL: +. + +Picture: +. + +Born: +16/02/1337 +Died: +After 03/03/1337 + +Father: +29 +Mother: +94 + +Spouses: + + + + +ID: +398 + +Name: +Lionel of Antwerp + +URL: +. + +Picture: +. + +Born: +29/11/1338 +Died: +07/10/1368 + +Father: +29 +Mother: +94 + +Spouses: +Elizabeth de Burgh + Violante + +Style: +Duke of Clarence +Territories: +Clarence + +From: +? +To: +? + + + +ID: +399 + +Name: +Blanche + +URL: +. + +Picture: +. + +Born: +03/13472 +Died: +03/1342 + +Father: +29 +Mother: +94 + +Spouses: + + + + +ID: +400 + +Name: +Mary of Waltham + +URL: +. + +Picture: +. + +Born: +10/10/1344 +Died: +09/1361 + +Father: +29 +Mother: +94 + +Spouses: +John V + + + +ID: +401 + +Name: +Margaret + +URL: +. + +Picture: +. + +Born: +20/07/1346 +Died: +10-12/1361 + +Father: +29 +Mother: +94 + +Spouses: +John Hastings + + + +ID: +402 + +Name: +Thomas of Windsor + +URL: +. + +Picture: +. + +Born: +1347 +Died: +09/1348 + +Father: +29 +Mother: +94 + +Spouses: + + + + +ID: +403 + +Name: +Thomas of Woodstock + +URL: +. + +Picture: +. + +Born: +07/01/1355 +Died: +08-09/09/1397 + +Father: +29 +Mother: +94 + +Spouses: +Eleanor de Bohun + + + +ID: +404 + +Name: +Thomas of Lancaster + +URL: +. + +Picture: +. + +Born: +1387 +Died: +22/03/1421 + +Father: +31 +Mother: +97 + +Spouses: +409 + + + +ID: +405 + +Name: +John of Lancaster + +URL: +. + +Picture: +. + +Born: +20/06/1389 +Died: +14/09/1435 + +Father: +31 +Mother: +97 + +Spouses: +Anne +234 + +Style: +Duke of Bedford +Territories: +Bedford + +From: +? +To: +? + + + +ID: +406 + +Name: +Humphrey of Lancaster + +URL: +. + +Picture: +. + +Born: +03/10/1390 +Died: +23/02/1447 + +Father: +31 +Mother: +97 + +Spouses: +Jacqueline +Eleanor Cobham + +Style: +Duke of Gloucester +Territories: +Gloucester + +From: +? +To: +? + + + +ID: +407 + +Name: +Blanche of England + +URL: +. + +Picture: +. + +Born: +Spring 1392 +Died: +22/05/1409 + +Father: +31 +Mother: +97 + +Spouses: +Louis III + + + +ID: +408 + +Name: +Philippa + +URL: +. + +Picture: +. + +Born: +04/06/1394 +Died: +05/01/1430 + +Father: +31 +Mother: +97 + +Spouses: +Eric + + + +ID: +409 + +Name: +Margaret Holland + +URL: +. + +Picture: +. + +Born: +1385 +Died: +31/12/1439 + +Father: +Thomas Holland +Mother: +Alice Fitzalan + +Spouses: +145 +404 + diff --git a/familyTree/tree.db b/familyTree/tree.db index c14f71e..1f5e3c1 100644 Binary files a/familyTree/tree.db and b/familyTree/tree.db differ