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 = ""
+
+ 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 + "
"\
+ +"
"\
+ + 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