chiark / gitweb /
changed graphs to manual dot file; added pictures; faffed about with text
authornaath <naath@chiark.greenend.org.uk>
Fri, 11 Apr 2014 16:44:37 +0000 (17:44 +0100)
committernaath <naath@chiark.greenend.org.uk>
Fri, 11 Apr 2014 16:44:37 +0000 (17:44 +0100)
12 files changed:
cgiFiles/ancestorGraph.py
cgiFiles/bigGraph.py
cgiFiles/everyPage.py
cgiFiles/jointAncestorGraph.py
cgiFiles/make_dot.py [new file with mode: 0755]
cgiFiles/searchname.py [new file with mode: 0755]
cgiFiles/smallGraph.py
familyTree/askQuestion.py
familyTree/makeTables.py
familyTree/text2SQL.py
familyTree/tree
familyTree/tree.db

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