[Tynstep-svn] r20 - in trunk/StepDataLoader: . data data/timeline lib sql sql/com sql/com/tyndalehouse sql/com/tyndalehouse/step sql/com/tyndalehouse/step/dataloader sql/com/tyndalehouse/step/dataloader/sql sql/com/tyndalehouse/step/dataloader/sql/create sql/com/tyndalehouse/step/dataloader/sql/drop sql/com/tyndalehouse/step/dataloader/sql/utils src src/com src/com/tyndalehouse src/com/tyndalehouse/step src/com/tyndalehouse/step/dataloader src/com/tyndalehouse/step/dataloader/beans src/com/tyndalehouse/step/dataloader/loaders src/com/tyndalehouse/step/dataloader/utils

ChrisBurrell at crosswire.org ChrisBurrell at crosswire.org
Tue Nov 10 15:52:18 MST 2009


Author: ChrisBurrell
Date: 2009-11-10 15:52:18 -0700 (Tue, 10 Nov 2009)
New Revision: 20

Added:
   trunk/StepDataLoader/.classpath
   trunk/StepDataLoader/.project
   trunk/StepDataLoader/data/
   trunk/StepDataLoader/data/timeline/
   trunk/StepDataLoader/data/timeline/TL_Africa.csv
   trunk/StepDataLoader/data/timeline/TL_Americas.csv
   trunk/StepDataLoader/data/timeline/TL_ArchCult.csv
   trunk/StepDataLoader/data/timeline/TL_Asia.csv
   trunk/StepDataLoader/data/timeline/TL_EarlyChurch.csv
   trunk/StepDataLoader/data/timeline/TL_Egypt.csv
   trunk/StepDataLoader/data/timeline/TL_Europe.csv
   trunk/StepDataLoader/data/timeline/TL_ExileAndReturn.csv
   trunk/StepDataLoader/data/timeline/TL_Global.csv
   trunk/StepDataLoader/data/timeline/TL_Intertestamental.csv
   trunk/StepDataLoader/data/timeline/TL_Jesus.csv
   trunk/StepDataLoader/data/timeline/TL_Monarchy.csv
   trunk/StepDataLoader/data/timeline/TL_NTChurch.csv
   trunk/StepDataLoader/data/timeline/TL_OTNeighbours.csv
   trunk/StepDataLoader/data/timeline/TL_PatriarchsToJudges.csv
   trunk/StepDataLoader/data/timeline/TL_Rome.csv
   trunk/StepDataLoader/lib/
   trunk/StepDataLoader/lib/SuperCSV-1.52.jar
   trunk/StepDataLoader/lib/commons-dbutils-1.2.jar
   trunk/StepDataLoader/lib/commons-dbutils_LICENSE.txt
   trunk/StepDataLoader/lib/commons-io-1.4.jar
   trunk/StepDataLoader/lib/commons-lang-2.4.jar
   trunk/StepDataLoader/lib/commons_io_LICENSE.txt
   trunk/StepDataLoader/lib/derbyclient.jar
   trunk/StepDataLoader/lib/spiffy-all-0.05.jar
   trunk/StepDataLoader/lib/spiffy_LICENSE.txt
   trunk/StepDataLoader/lib/supercsv_LICENSE.txt
   trunk/StepDataLoader/sql/
   trunk/StepDataLoader/sql/com/
   trunk/StepDataLoader/sql/com/tyndalehouse/
   trunk/StepDataLoader/sql/com/tyndalehouse/step/
   trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/
   trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/
   trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/
   trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/1.schema.sql
   trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/2.scripture_referencing.sql
   trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/3.timeline.sql
   trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/drop/
   trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/drop/drop_all.sql
   trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/utils/
   trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/utils/utils.sql
   trunk/StepDataLoader/src/
   trunk/StepDataLoader/src/com/
   trunk/StepDataLoader/src/com/tyndalehouse/
   trunk/StepDataLoader/src/com/tyndalehouse/step/
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/ClientDbProvider.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/Dataloader.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/DbBean.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/EventTypeBean.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/PartialDate.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/PrecisionType.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/TimelineBean.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/TimelineEventBean.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/AbstractLoader.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/SchemaLoader.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/TimelineLoader.java
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/utils/
   trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/utils/DerbyUtils.java
Log:


Added: trunk/StepDataLoader/.classpath
===================================================================
--- trunk/StepDataLoader/.classpath	                        (rev 0)
+++ trunk/StepDataLoader/.classpath	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="sql"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/StepWebApp"/>
+	<classpathentry kind="lib" path="lib/SuperCSV-1.52.jar"/>
+	<classpathentry kind="lib" path="lib/spiffy-all-0.05.jar"/>
+	<classpathentry kind="lib" path="lib/commons-io-1.4.jar"/>
+	<classpathentry kind="lib" path="lib/commons-dbutils-1.2.jar"/>
+	<classpathentry kind="lib" path="lib/commons-lang-2.4.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Added: trunk/StepDataLoader/.project
===================================================================
--- trunk/StepDataLoader/.project	                        (rev 0)
+++ trunk/StepDataLoader/.project	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>StepDataLoader</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Added: trunk/StepDataLoader/data/timeline/TL_Africa.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_Africa.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_Africa.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,5 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_Africa","Events in Africa",-3000,1000,,,"T_All",,,"T_All","Timeline",,,
+"E_AFR1","Bantu expansion from Cameroon to Central Africa","-3000","-1500",,,"T_Africa","200",,"T_Africa","Period",,,
+"E_AFR2","Bantu expansion from Central to SouthernAfrica","-1000","500",,,"T_Africa","200",,"T_Africa","Period",,,
+"E_AFR3","Kingdom of Axum in Ethiopia","1","1000",,,"T_Africa","50",,"T_Africa","Dynasty",,,

Added: trunk/StepDataLoader/data/timeline/TL_Americas.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_Americas.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_Americas.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,7 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_Americas","Events in the Americas",-4000,900,,,"T_All",,,"T_All","Timeline",,,"From Finegan, adding post-1917. Fuzzinesses mine. NB: these seem to assume a late Exodus"
+"E_AME1","First date on the Mayan Long Count calendar","-3112-08-11",,,,"T_Americas",,,"T_Americas","Event",,,
+"E_AME2","Mayan pre-classical period","-1000","250",,,"T_Americas","100/25",,"T_Americas","Period",,,
+"E_AME3","Mayan classical period","250","900",,,"T_Americas","25",,"T_Americas","Period",,,
+"E_AME4","Olmec civilisation","-1200","-400",,,"T_Americas","50",,"T_Americas","Period",,,
+"E_AME5","Hopewell tradition","-500","200",,,"T_Americas","50",,"T_Americas","Period","in eastern half of what's now the USA",,

Added: trunk/StepDataLoader/data/timeline/TL_ArchCult.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_ArchCult.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_ArchCult.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,38 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_ArchCult","Archaeological and Cultural ",,,,,"T_All",,,"T_All","Timeline","Archaeological and Cultural Periods in the Holy Land. These are based on general archaeology and history, rather than Biblical accounts, so diverge from Biblical chronology particularly before the Exodus. ",,"From Finegan, adding post-1917. Fuzzinesses mine. NB: these seem to assume a late Exodus"
+"T_ACBronzeAge","Bronze Age","-3300","-1200",,,"T_ArchCult","50/25",,"T_ArchCult","Timeline","Canaanite Period",,
+"T_ACIronAge","Iron Age","-1200","-586",,,"T_ArchCult","25/0",,"T_ArchCult","Timeline","Israelite Period",,
+"T_ACBabylonPersia","Babylonian and Persian Periods","-586","-332",,,"T_ACIronAge",,,"T_ACIronAge","Timeline",,,
+"T_ACHellenistic","Hellenistic Period","-332","-37",,,"T_ACBabylonPersia",,,"T_ACBabylonPersia","Timeline",,,
+"T_ACJewishPeriod","Jewish periods of Tanakh scholarship","-175","500",,,"T_ArchCult","25",,"T_ArchCult","Timeline",,,"(best description? David IB's the expert here!)"
+"T_ACRomeByzantium","Roman and Byzantine Periods","-37","638",,,"T_ArchCult",,,"T_ArchCult","Timeline",,,
+"T_ACModern","Early Arab Period","638","1099",,,"T_ArchCult",,,"T_ArchCult","Timeline",,,
+"E_AC1","Palaeolithic",,"-18000",,,"T_ArchCult","/100",,"T_ArchCult","Period","Old Stone Age",,
+"E_AC2","Epipalaeolithic","-18000","-8300",,,"T_ArchCult","100/50",,"T_ArchCult","Period","Middle Stone Age",,
+"E_AC3","Neolithic","-8300","-4500",,,"T_ArchCult","50",,"T_ArchCult","Period","New Stone Age",,
+"E_AC4","Chalcolithic","-4500","-3300",,,"T_ArchCult","50",,"T_ArchCult","Period","Copper-Stone Age",,
+"E_AC5","Early Bronze Age I","-3300","-3000",,,"T_ACBronzeAge","50/25",,"T_ACBronzeAge","Period",,,
+"E_AC6","Early Bronze Age II","-3000","-2700",,,"T_ACBronzeAge","25",,"T_ACBronzeAge","Period",,,
+"E_AC7","Early Bronze Age III","-2700","-2200",,,"T_ACBronzeAge","25",,"T_ACBronzeAge","Period",,,
+"E_AC8","Middle Bronze Age I","-2200","-2000",,,"T_ACBronzeAge","25",,"T_ACBronzeAge","Period",,,
+"E_AC9","Middle Bronze Age II","-2000","-1550",,,"T_ACBronzeAge","25",,"T_ACBronzeAge","Period",,,
+"E_AC10","Late Bronze Age I","-1550","-1400",,,"T_ACBronzeAge","25",,"T_ACBronzeAge","Period",,,
+"E_AC11","Late Bronze Age II","-1400","-1200",,,"T_ACBronzeAge","25",,"T_ACBronzeAge","Period",,,
+"E_AC12","Iron Age I ","-1200","-1000",,,"T_ACIronAge","25",,"T_ACIronAge","Period",,,
+"E_AC13","Iron Age II","-1000","-586",,,"T_ACIronAge","25/0",,"T_ACIronAge","Period",,,
+"E_AC14","Babylonian Period","-586","-538",,,"T_ArchCult",,,"T_ArchCult","Period",,,
+"E_AC15","Persian Period","-538","-332",,,"T_ACBabylonPersia",,,"T_ACBabylonPersia","Period",,,
+"E_AC16","Hellenistic Period I","-332","-167",,,"T_ACBabylonPersia",,,"T_ACBabylonPersia","Period",,,
+"E_AC17","Soferim and Tannaiam","-175","200",,,"T_ACJewishPeriod","25",,"T_ACJewishPeriod","Period",,,
+"E_AC18","Hellenistic Period II","-167","-37",,,"T_ACBabylonPersia",,,"T_ACBabylonPersia","Period",,,
+"E_AC19","Early Roman Period","-37","132",,,"T_ACRomeByzantium",,,"T_ACRomeByzantium","Period",,,
+"E_AC20","Herodian Period","-37","70",,,"T_ACRomeByzantium",,,"T_ACRomeByzantium","Period",,,
+"E_AC21","Late Roman Period","132","324",,,"T_ACRomeByzantium",,,"T_ACRomeByzantium","Period",,,
+"E_AC22","Amoraim","200","500",,,"T_ACJewishPeriod","25",,"T_ACJewishPeriod","Period",,,
+"E_AC23","Byzantine Period","324","638",,,"T_ACRomeByzantium",,,"T_ACRomeByzantium","Period",,,
+"E_AC24","Talmudic","350","500",,,"T_ACJewishPeriod","25",,"T_ACJewishPeriod","Period",,,
+"E_AC25","Crusader Period","1099","1291",,,"T_ACModern",,,"T_ACModern","Period",,,
+"E_AC26","Late Arab Period","1291","1516",,,"T_ACModern",,,"T_ACModern","Period","Fatimid and Mameluke",,
+"E_AC27","Ottoman Period","1516","1917",,,"T_ACModern",,,"T_ACModern","Period",,,
+"E_AC28","British Mandate","1917","1948",,,"T_ACModern",,,"T_ACModern","Period",,,
+"E_AC29","Israel and Palestine","1948",,,,"T_ACModern",,,"T_ACModern","Period","The area occupied by Biblical Israel has formed the modern state of Israel and various Palestinian entities. ",,"(need to word this one carefully)"

Added: trunk/StepDataLoader/data/timeline/TL_Asia.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_Asia.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_Asia.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,32 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_Asia","Events in Asia",-3300,600,,,"T_All",,,"T_All","Timeline",,,"From Finegan, adding post-1917. Fuzzinesses mine. NB: these seem to assume a late Exodus"
+"T_India","Indian subcontinent",-3300,600,,,"T_Asia",,,"T_Asia","Timeline",,,
+"T_China","China",-2070,420,,,"T_Asia",,,"T_Asia","Timeline",,,
+"E_ASIA1","Xia Dynasty","-2070","-1600",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA2","Shang Dynasty","-1600","-1046",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA3","Western Zhou Dynasty","-1046","-771",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA4","Eastern Zhou Dynasty","-770","-256",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA5","Spring and Autumn Period","-722","-476",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA6","Warring States Period","-475","-221",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA7","Qin Dynasty","-221","-206",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA8","Western Han Dynasty","-206","9",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA9","Xin Dynasty","9","23",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA10","Eastern Han Dynasty","23","220",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA11","Three Kingdoms","220","265",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA12","Western Jin Dynasty","265","317",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA13","Eastern Jin Dynasty","317","420",,,"T_China",,,"T_China","Dynasty",,,
+"E_ASIA14","Building of original Great Wall","-500","-221",,,"T_China",,,"T_China","Event","Current wall dates mainly from 15th century",,
+"E_ASIA15","Confucius","-551","-479",,,"T_China",,,"T_China","Life",,,
+"E_ASIA16","Lao Tzu","-600","-470",,,"T_China","50",,"T_China","Life","Traditional dates. Unclear whether he actually existed.",,
+"E_ASIA17","Indus Valley Civilisation","-3300","-1400",,,"T_India","100",,"T_India","Period","Mature phase 2600-1900 ",,
+"E_ASIA18","Vedic period","-1000","-321",,,"T_India","100/0",,"T_India","Period",,,
+"E_ASIA19","Composition of Rigveda","-1700","-1100",,,"T_India","100",,"T_India","Event",,,
+"E_ASIA20","Composition of Mahabharata and Ramayana","-750","-350",,,"T_India","100",,"T_India","Event",,,
+"E_ASIA21","Composition of Upanishads","-900","-600",,,"T_India","100",,"T_India","Event",,,
+"E_ASIA22","Mauryan Empire","-321","-184",,,"T_India","10",,"T_India","Dynasty",,,
+"E_ASIA23","Ashoka the Great","-269","-232",,,"T_India","10",,"T_India","Reign",,,
+"E_ASIA24","Sunga Dynasty","-183","-71",,,"T_India","10",,"T_India","Dynasty",,,
+"E_ASIA25","Kanva Dynasty","-71","-45",,,"T_India","10",,"T_India","Dynasty",,,
+"E_ASIA26","Sautavahana Empire","-230","220",,,"T_India","10",,"T_India","Dynasty",,,
+"E_ASIA27","Gupta Empire","320","550",,,"T_India","10",,"T_India","Dynasty",,,
+"E_ASIA28","Buddha","-560","-480",,,"T_India","10",,"T_India","Life",,,

Added: trunk/StepDataLoader/data/timeline/TL_EarlyChurch.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_EarlyChurch.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_EarlyChurch.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,40 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"E_EC1","First Council of Nicaea","325",,,,"T_EarlyChurch",,,"T_EarlyChurch","Council",,,"Dates taken from Wikipedia mainly. Need checking."
+"E_EC2","First Council of Constantinople","381",,,,"T_EarlyChurch",,,"T_EarlyChurch","Council",,,
+"E_EC3","First Council of Ephesus","431",,,,"T_EarlyChurch",,,"T_EarlyChurch","Council",,,
+"E_EC4","Council of Chalcedon","451",,,,"T_EarlyChurch",,,"T_EarlyChurch","Council",,,
+"E_EC5","Constantine converts to Christianity","312",,,,"T_EarlyChurch",,,"T_EarlyChurch","Event",,,
+"E_EC6","Edict of Milan","313",,,,"T_EarlyChurch",,,"T_EarlyChurch","Event",,,
+"E_EC7","Alexander of Alexandria","280","326",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC8","Athanasius","293","373",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC9","Arius","253","336",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC10","Eusebius of Caesarea","265","339",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC11","Justin Martyr","100","165",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC12","Gregory Nazianzus","330","389",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC13","John Chystostom","347","407",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC14","Cyril of Alexandria","378","444",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC15","Nestorius","386","451",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC16","Pelagius","354","420",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC17","Augustine of Hippo","354","430",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC18","Eutyches","380","456",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC19","Theodoret of Cyrus","393","457",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC20","Theodore of Mopsuestia","350","428",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC21","Apollinarius of Laodicea","330","390",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC22","Ambrose of Milan","338","397",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC23","Jerome","347","420",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC24","Ignatius of Antioch","50","117",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC25","Polycarp of Smyrna","69","155",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC26","Irenaeous of Lyons","150","202",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC27","Tertullian","160","220",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC28","Clement of Alexandria","150","215",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC29","Origen of Alexandria","185","254",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC30","Clement of Rome","40","101",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC31","Didache","100",,,,"T_EarlyChurch",,,"T_EarlyChurch","Book",,,
+"E_EC32","Shepherd of Hermas","120",,,,"T_EarlyChurch",,,"T_EarlyChurch","Book",,,
+"E_EC33","Marcion","85","160",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC34","Gregory of Nyssa","335","394",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC35","Basil of Caesarea","330","379",,,"T_EarlyChurch",,,"T_EarlyChurch","Life",,,
+"E_EC36","Persecution in Lyon","177",,,,"T_EarlyChurch",,,"T_EarlyChurch","Event",,,
+"E_EC37","Edict of Decius","250-01",,,,"T_EarlyChurch",,,"T_EarlyChurch","Event",,,
+"E_EC38","Persecution under Decius and Valerian","250","260",,,"T_EarlyChurch",,,"T_EarlyChurch","Event",,,
+"E_EC39","Persecution under Diocletian","303","311",,,"T_EarlyChurch",,,"T_EarlyChurch","Event",,,

Added: trunk/StepDataLoader/data/timeline/TL_Egypt.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_Egypt.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_Egypt.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,71 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_Egypt","Egyptian Dynasties","-3005","-332",,,"T_All","45/0",,"T_All","Timeline","3050/2960-332",,"From Finegan except where noted. His ranges given in the description, which I've converted into our system by taking a middle date (except where noted)"
+"E_EgyptD1","1st Dynasty","-3005","-2820",,,"T_Egypt","45/40",,"T_Egypt","Reign","3050/2960-2860/2780",,
+"E_EgyptD2","2nd Dynasty","-2820","-2670",,,"T_Egypt","40/30",,"T_Egypt","Reign","2860/2780-2695/2640",,
+"E_EgyptD3","3rd Dynasty","-2670","-2600",,,"T_Egypt","30/30",,"T_Egypt","Reign","2695/2640-2630/2575",,
+"E_EgyptD4","4th Dynasty","-2600","-2480",,,"T_Egypt","30/25",,"T_Egypt","Reign","2630/2575-2505/2460",,
+"E_EgyptD5","5th Dynasty","-2480","-2330",,,"T_Egypt","25/20",,"T_Egypt","Reign","2505/2460-2345/2310",,
+"E_EgyptD6_8","6th - 8th Dynasties","-2330","-2147",,,"T_Egypt","20/13",,"T_Egypt","Reign","2345/2310-2160/2134",,
+"E_EgyptD9_10","9th and 10th Dynasties","-2147","-2040",,,"T_Egypt","13/7",,"T_Egypt","Reign","2160/2134-2047/2033",,
+"E_EgyptD11","11th Dynasty","-2134","-1991",,,"T_Egypt",,,"T_Egypt","Reign","2134-1991",,
+"T_EgyptD12","12th Dynasty","-1991","-1785",,,"T_Egypt",,,"T_Egypt","Timeline","1991-1785",,
+"E_EgyptD13_14","13th and 14th Dynasties","-1785","-1655",,,"T_Egypt","0/5",,"T_Egypt","Reign","1785-1660/1650",,
+"E_EgyptD15_17","15th-17th Dynasties","-1655","-1552",,,"T_Egypt","5/10",,"T_Egypt","Reign","1660/1651-1560/1541",,"Finegan gives a partial table of 15th dynasty pharaohs, but not enough to be useful, I think."
+"T_EgyptD18","18th Dynasty","-1552","-1295",,,"T_Egypt","5/7",,"T_Egypt","Timeline","1560/1551-1320/1306",,"Using dates from Finegan's Table 116. Note that the date given here for the 18/19 endpoint (1295) contradicts the (1320/1306) range in on xxxvi. Wikipedia gives 1292, or 1295 on a page citing Ian Shaw, so taking this one."
+"T_EgyptD19","19th Dynasty","-1295","-1196",,,"T_Egypt","7/8",,"T_Egypt","Timeline","1320/1306-1200/1185",,"Dates from Finnegan's Table 117"
+"E_EgyptD20","20th Dynasty","-1192","-1077",,,"T_Egypt","8/8",,"T_Egypt","Reign","1200/1185-1085/1070",,
+"E_EgyptD21","21st Dynasty","-1077","-944",,,"T_Egypt","8/4",,"T_Egypt","Reign","1085/1070-947/940",,
+"E_EgyptD22_24","22nd - 24th Dynasties","-944","-712",,,"T_Egypt","4/2",,"T_Egypt","Reign","947/940-714/711",,
+"E_EgyptD25","25th Dynasty","-712","-656",,,"T_Egypt","2/1",,"T_Egypt","Reign","714/711-656/655",,
+"E_EgyptD26","26th Dynasty","-664","-525",,,"T_Egypt",,,"T_Egypt","Reign","664-525",,
+"E_EgyptD27","27th Dynasty","-525","-404",,,"T_Egypt",,,"T_Egypt","Reign","525-404",,
+"E_EgyptD28","28th Dynasty","-404","-398",,,"T_Egypt",,,"T_Egypt","Reign","404-398",,
+"E_EgyptD29","29th Dynasty","-399","-380",,,"T_Egypt",,,"T_Egypt","Reign","399-380",,
+"E_EgyptD30","30th Dynasty","-380","-342",,,"T_Egypt",,,"T_Egypt","Reign","380-342",,
+"E_EgyptD31","31th Dynasty","-342","-332",,,"T_Egypt",,,"T_Egypt","Reign","342-332",,
+"T_EgyptPtolemaic","Ptolemaic Kingdom","-332","-30",,,"T_Egypt",,,"T_Egypt","Timeline","332-30. Incomplete.",,"IVP dictionary 323-180, filled out from Wikipedia"
+"E_EgyptP1","Amenemhet I","-1991","-1962",,,"T_EgyptD12",,,"T_EgyptD12","Reign",,,
+"E_EgyptP2","Sesostris I","-1962","-1928",,,"T_EgyptD12",,,"T_EgyptD12","Reign",,,
+"E_EgyptP3","Amenemhet II","-1928","-1895",,,"T_EgyptD12",,,"T_EgyptD12","Reign",,,
+"E_EgyptP4","Sesostris II","-1895","-1878",,,"T_EgyptD12",,,"T_EgyptD12","Reign",,,
+"E_EgyptP5","Sesostris III","-1878","-1842",,,"T_EgyptD12",,,"T_EgyptD12","Reign",,,
+"E_EgyptP6","Amenemhet III","-1842","-1797",,,"T_EgyptD12",,,"T_EgyptD12","Reign",,,
+"E_EgyptP7","Amenemhet IV","-1797","-1790",,,"T_EgyptD12",,,"T_EgyptD12","Reign",,,
+"E_EgyptP8","Nefrusobek","-1790","-1785",,,"T_EgyptD12",,,"T_EgyptD12","Reign",,,
+"E_EgyptP9","Ahmose","-1552","-1526",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP10","Ahmenhotep","-1526","-1506",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP11","Thutmose I","-1506","-1493",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP12","Thutmose II","-1493","-1479",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP13","Thutmose III","-1479","-1425",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP14","Hatshepsut","-1478","-1458",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP15","Amenhotep II","-1425","-1401",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP16","Thutmose IV","-1401","-1390",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP17","Amenhotep III","-1390","-1352",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP18","Amenhotep IV","-1352","-1348",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP19","Akhenaten","-1348","-1338",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP20","Smenkhkare","-1338","-1336",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP21","Tutenkhaten/Tutankhamen","-1336","-1327",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP22","Ay","-1327","-1323",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP23","Horemheb","-1323","-1295",,,"T_EgyptD18",,,"T_EgyptD18","Reign",,,
+"E_EgyptP24","Ramses I","-1295","-1294",,,"T_EgyptD19",,,"T_EgyptD19","Reign",,,
+"E_EgyptP25","Seti I","-1294","-1279",,,"T_EgyptD19",,,"T_EgyptD19","Reign",,,
+"E_EgyptP26","Ramses II","-1279","-1212",,,"T_EgyptD19",,,"T_EgyptD19","Reign",,,
+"E_EgyptP27","Merneptah","-1212","-1202",,,"T_EgyptD19",,,"T_EgyptD19","Reign",,,
+"E_EgyptP28","Amenmesse","-1202","-1199",,,"T_EgyptD19",,,"T_EgyptD19","Reign",,,
+"E_EgyptP29","Seti II","-1202","-1196",,,"T_EgyptD19",,,"T_EgyptD19","Reign",,,
+"E_EgyptP30","Shesonq I","-944","-924",,,"T_Egypt","2/0",,"T_Egypt","Reign","22nd Dynasty. Shishak of the Bible","1Kgs.11.29-40;1Kgs.14.25-26; 2Chr.12.2-12","This and next four entries from IVP dictionary."
+"E_EgyptP31","Osorkon IV","-727","-716",,,"T_Egypt",,,"T_Egypt","Reign","22nd Dynasty. Most likely candidate for So of the Bible","2Kgs.17.4","Kitchen gives accession date as 732/730"
+"E_EgyptP32","Taharqa","-690","-664",,,"T_Egypt",,,"T_Egypt","Reign","25th Dynasty. Tirhakah of the Bible (although before he became Pharaoh)","2Kgs.19.9",
+"E_EgyptP33","Necho II","-610","-595",,,"T_Egypt",,,"T_Egypt","Reign","26th Dynasty. Neco of the Bible","2Kgs.23.29-35; 2Chr.35.20-36.4;Jer.25.19",
+"E_EgyptP34","Apries","-589","-570",,,"T_Egypt",,,"T_Egypt","Reign","26th Dynasty. Hophra of the Bible","Jer.37.5-11; Ezek.17.17; Ezek.29.2-3",
+"E_EgyptP35","Alexander the Great","-332","-323",,,"T_EgyptPtolemaic",,,"T_EgyptPtolemaic","Reign",,,
+"E_EgyptP36","Ptolemy I Soter","-323","-282",,,"T_EgyptPtolemaic",,,"T_EgyptPtolemaic","Reign",,,
+"E_EgyptP37","Judaea annexed by Ptolemy I","-320",,,,"T_EgyptPtolemaic",,,"T_EgyptPtolemaic","Event",,,
+"E_EgyptP38","Ptolemy II Philadelphus","-282","-246",,,"T_EgyptPtolemaic",,,"T_EgyptPtolemaic","Reign",,,
+"E_EgyptP39","Ptolemy III Euergetes","-246","-222",,,"T_EgyptPtolemaic",,,"T_EgyptPtolemaic","Reign",,,
+"E_EgyptP40","Ptolemy IV Philopator","-222","-205",,,"T_EgyptPtolemaic",,,"T_EgyptPtolemaic","Reign",,,
+"E_EgyptP41","Ptolemy V Epiphanes","-204","-180",,,"T_EgyptPtolemaic",,,"T_EgyptPtolemaic","Reign",,,
+"E_EgyptP42","Battle of Panium","-198",,,,"T_EgyptPtolemaic",,,"T_EgyptPtolemaic","Battle","Most foreign possessions lost to Syria",,
+"E_EgyptP43","Cleopatra (VII)","-51","-30",,,"T_EgyptPtolemaic",,,"T_EgyptPtolemaic","Reign",,,
+"E_EgyptP44","Main pyramid-building period",-2630,-2400,,,"T_Egypt",50,,"T_Egypt","Period","(from Wikipedia. Needs review.)",,
+"E_EgyptP45 ","Twelfth dynasty pyramid-building period",-1991,-1820,,,"T_Egypt",50,,"T_Egypt","Period",,,

Added: trunk/StepDataLoader/data/timeline/TL_Europe.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_Europe.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_Europe.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,42 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_Europe","Events in Europe",,,,,"T_All",,,"T_All","Timeline","Archaeological and Cultural Periods in the Holy Land. These are based on general archaeology and history, rather than Biblical accounts, so diverge from Biblical chronology particularly before the Exodus. ",,"From Finegan, adding post-1917. Fuzzinesses mine. NB: these seem to assume a late Exodus"
+"T_Greece","Greece",,,,,"T_Europe",,,"T_Europe","Timeline",,,
+"E_EUR1","Minoan civilisation","-2000","-1450",,,"T_Greece","300/50",,"T_Greece","Period","Considerable debate as to start date, depending on what you define as ""civilisation""!",,
+"E_EUR2","Mycenaean civilisation","-1500","-1200",,,"T_Greece","50/50",,"T_Greece","Period","Wikipedia c1600-c1100",,
+"E_EUR3","Volcanic eruption on Thera","-1628",,,,"T_Greece","30 ",,"T_Greece","Event","Tree-counting date is 1628. Other datings up to 1600 or beyond",,
+"E_EUR4","Trojan War","-1190",,,,"T_Greece","50 ",,"T_Greece","War",,,
+"E_EUR5","Greek Dark Ages","-1200","-800",,,"T_Greece","50 ",,"T_Greece","Period",,,
+"E_EUR6","Growth of city states","-800","-510",,,"T_Greece","50/0",,"T_Greece","Period",,,
+"E_EUR7","Classical Greek period","-510","-323",,,"T_Greece",,,"T_Greece","Period",,,
+"E_EUR8","Persian Wars","-499","-450",,,"T_Greece","0/1",,"T_Greece","War",,,
+"E_EUR9","First Persion invasion of Greece","-492","-490",,,"T_Greece",,,"T_Greece","War",,,
+"E_EUR10","Battle of Marathon","-490-08",,,,"T_Greece","1",,"T_Greece","Battle",,,
+"E_EUR11","Second Persion invasion of Greece","-480-03","-479-07",,,"T_Greece",,,"T_Greece","War",,,
+"E_EUR12","Battle of Thermopylae","-480-08",,,,"T_Greece",,,"T_Greece","Battle",,,
+"E_EUR13","Battle of Salamis","-480-09",,,,"T_Greece",,,"T_Greece","Battle",,,
+"E_EUR14","Battles of Plataea and Mycale","-479-06",,,,"T_Greece",,,"T_Greece","Battle",,,
+"E_EUR15","Peloponnesian War","-431","-404",,,"T_Greece",,,"T_Greece","War",,,
+"E_EUR16","Hellenistic Greek period","-323","-146",,,"T_Greece",,,"T_Greece","Period",,,
+"E_EUR17","Annexation of Greece by Rome","-146",,,,"T_Greece",,,"T_Greece","Event",,,
+"E_EUR18","Hippocrates","-460","-370",,,"T_Greece","5",,"T_Greece","Life",,,
+"E_EUR19","Socrates","-469","-399",,,"T_Greece",,,"T_Greece","Life",,,
+"E_EUR20","Plato","-428","-348",,,"T_Greece",,,"T_Greece","Life",,,
+"E_EUR21","Aristotle","-384","-322",,,"T_Greece",,,"T_Greece","Life",,,
+"E_EUR22","Zeno of Citium","-334","-262",,,"T_Greece",,,"T_Greece","Life","Founder of Stoicism",,
+"E_EUR23","Epicurus","-341","-270",,,"T_Greece",,,"T_Greece","Life",,,
+"E_EUR24","Aeschylus","-525","-456",,,"T_Greece","5",,"T_Greece","Life",,,
+"E_EUR25","Sophocles","-495","-406",,,"T_Greece","5/0",,"T_Greece","Life",,,
+"E_EUR26","Euripedes","-480","-406",,,"T_Greece","5/0",,"T_Greece","Life",,,
+"E_EUR27","Aristophanes","-446","-388",,,"T_Greece","5",,"T_Greece","Life",,,
+"E_EUR28","Thales","-626","-546",,,"T_Greece",,,"T_Greece","Life",,,
+"E_EUR29","Pythagoras","-582","-507",,,"T_Greece","5",,"T_Greece","Life",,,
+"E_EUR30","Archimedes","-287","-212",,,"T_Greece",,,"T_Greece","Life",,,
+"E_EUR31","Euclid","-325","-265",,,"T_Greece",,,"T_Greece","Life",,,
+"E_EUR32","Hipparchus","-190","-120",,,"T_Greece",,,"T_Greece","Life",,,
+"E_EUR33","Eratosthenes","-276","-195",,,"T_Greece",,,"T_Greece","Life",,,
+"E_EUR34","Herodotus","-484","-425",,,"T_Greece","5",,"T_Greece","Life",,,
+"E_EUR35","Thucydides","-460","-395",,,"T_Greece","5",,"T_Greece","Life",,,
+"E_EUR36","Urnfield culture","-1300","-750",,,"T_Europe","50 ",,"T_Europe","Life","Celtic culture in central Europe",,
+"E_EUR37","Hallstatt culture","-750","-550",,,"T_Europe","50 ",,"T_Europe","Life","in central Europe",,
+"E_EUR38","La Tene culture","-450","-1",,,"T_Europe","50",,"T_Europe","Life","western and central Europe",,
+"E_EUR39","Stonehenge construction","-3100","-1600",,,"T_Europe","50",,"T_Europe","Life",,,

Added: trunk/StepDataLoader/data/timeline/TL_ExileAndReturn.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_ExileAndReturn.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_ExileAndReturn.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,70 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_EzraNehemiah","Books of Ezra and Nehemiah","-538","-445",,,"T_Return",,,"T_Return","Timeline","Timeline of the books of Ezra and Nehemiah","Ezra.*;Neh.*","Following Finnegan where available, otherwise IVP (which in some cases differ by a year where both list the same date). Need to confirm regnal dates with PDBC then adjust. Assuming (as Finnegan does) that Artaxerxes is Artaxerxes I, not II as per some scholars."
+"E_EzNe1","Proclamation of Cyrus","-538",,,,"T_Return",,,"T_Return","Event",,"Ezra.1",
+"E_EzNe2","Return of the exiles following the proclamation of Cyrus","-538",,,,"T_Return",,,"T_Return","Event",,"Ezra.2",
+"E_EzNe3","Rebuilding the altar","-538-07",,,,"T_Return",,,"T_Return","Event",,"Ezra.3.1-7",
+"E_EzNe4","Start of the rebuilding of the temple","-536-02",,,,"T_Return",,,"T_Return","Event",,"Ezra.3.8-13",
+"E_EzNe5","Opposition to the rebuilding of the temple","-536","-486",,,"T_Return",,,"T_Return","Event",,"Ezra.4.1-5","To end of Darius's reign"
+"E_EzNe6","Accusation in the reign of Ahaseurus (Xerxes)","-485",,,,"T_Return",,,"T_Return","Event",,"Ezra.4.6","Started reign 486"
+"E_EzNe7","Letter to King Artaxeres and his response","-455",,,,"T_Return","10Y",,"T_Return","Event",,"Ezra.4.7-23","Artaxerxes reigned 465-424. However, this must logically predate Nehemiah 1 (445)."
+"E_EzNe8","Rebuilding the temple resumes following the prophesies of Haggai and Zechariah","-520-06",,,,"T_Return",,,"T_Return","Event","Aug/Sep ","Ezra.4.24-5.5","Haggai's prophecy on -06-01, Aug 29th"
+"E_EzNe9","Darius confirms Cyrus's decree","-520-06","-520-12",,,"T_Return","EM",,"T_Return","Event",,"Ezra.5.6-6.12","Allowing some travel time!"
+"E_EzNe10","Temple rebuilt","-520-06-24","-516-12-03",,,"T_Return",,,"T_Return","Event","Completion Mar 12th 515","Ezra.6.13-15;Hag.1.15",
+"E_EzNe11","Celebration of rebuilding of the temple and the first Passover","-516-12","-515-01",,,"T_Return",,,"T_Return","Event","Mar/Apr 515","Ezra.6.16-22",
+"E_EzNe12","Ezra sent to Jerusalem by Artaxerxes ","-458-01-01","-458-05-01",,,"T_Return",,,"T_Return","Event","Apr 8-Aug4","Ezra.7-8.32",
+"E_EzNe13","Silver and gold deposited in the temple","-458-05-04",,,,"T_Return",,,"T_Return","Event","Aug 7","Ezra.8.33-36",
+"E_EzNe14","Ezra prays about the problem of intermarriage","-458-05","-458-09",,,"T_Return",,,"T_Return","Event",,"Ezra.9-10.6",
+"E_EzNe15","Ezra's proclamation that the men of Judah should assemble","-458-09-07",,,,"T_Return",,,"T_Return","Event",,"Ezra.10.7-8",
+"E_EzNe16","Ezra's teaching on intermarriage","-458-09-10",,,,"T_Return",,,"T_Return","Event",,"Ezra.10.9-44",
+"E_EzNe17","Nehemiah visited by Hanani; his prayer","-446-09",,,,"T_Return",,,"T_Return","Event","Nov/Dec 446","Neh.1","A problem with the dating here, as Kislev is after Nisan in the year. Finnegan doesn't discuss this. Williamson (WBC Ezra-Nehemiah p167), following Bickermann, suggests we should be following regnal, not calendar years. Whether that changes other datings relating to Persian kings is unclear."
+"E_EzNe18","Artaxerxes sends Nehemiah to Jerusalem","-445-01",,,,"T_Return",,,"T_Return","Event","Apr/May 445","Neh.2.1-10",
+"E_EzNe19","Nehemiah governor of Israel","-445","-433",,,"T_Return",,,"T_Return","Event",,"Neh.5.14",
+"E_EzNe20","Nehemiah arrives in Jerusalem","-445-04-28",,,,"T_Return",,,"T_Return","Event","Aug 7","Neh.2.11",
+"E_EzNe21","Nehemiah inspects the walls","-445-05-02",,,,"T_Return",,,"T_Return","Event","night of Aug 10","Neh.2.12-16",
+"E_EzNe22","Rebuilding of the walls of Jerusalem","-445-05-03","-445-06-25",,,"T_Return",,,"T_Return","Event","Aug 11-Oct 2","Neh.2.17-6.19","End date given, plus length of 52 days. (Not sure which months were 30 days, which 29, so may be one or two days off.)"
+"E_EzNe23","Appointing of gatekeepers, singers and Levites","-445-06-26","-445-06-29",,,"T_Return",,,"T_Return","Event","Oct 3-Oct 6","Neh.6.20-7.72",
+"E_EzNe24","Ezra reads the Law","-445-07-01","-445-07-08",,,"T_Return",,,"T_Return","Event","Oct 7-Oct 14","Neh.7.73-8.18",
+"E_EzNe25","The Israelites confess their sins","-445-07-24",,,,"T_Return",,,"T_Return","Event",,"Neh.9-10",
+"E_EzNe26","Resettlement in Jerusalem","-445","-444",,,"T_Return",,,"T_Return","Event",,"Neh.11-12.26","No end time. Months seem reasonable"
+"E_EzNe27","Dedication of the walls of Jerusalem","-445-08",,,,"T_Return","EM",,"T_Return","Event",,"Neh.12.27-43",
+"E_EzNe28","Nehemiah's final reforms","-432",,,,"T_Return","EY",,"T_Return","Event",,"Neh.12.44-13.6","After 433. A dating issue in that the implication of 12:44, 13:1 is that everything from 12:27 to 13:6 is at the same time, but Nehemiah is present at 12:38 but not 13:6. Following Williamson in that the dedication of the walls was not long afterwards, and 12:44 onwards is one block."
+"E_EzNe29","Nehemiah returns to Jerusalem","-430",,,,"T_Return","EY",,"T_Return","Event",,"Neh.13.6-31","After the previous. No information how much later. Worth seeing how this parallels Malachi."
+"T_HagZech","Prophecies of Haggai and Zechariah","-520-06-01","-500",,,"T_Return",,,"T_Return","Timeline",,"Hag.*;Zech.*",
+"B_Hag","Haggai","-520-06-01","-520-09-23",,,"T_Return",,,"T_HagZech","Book",,"Hag.*",
+"B_Zech","Zechariah","-520-08","-500",,,"T_Return","0/20Y",,"T_HagZech","Book",,"Zech.*","No information on when chapters 9-14 were written."
+"B_Mal","Malachi","-430",,,,"T_Return","10 ",,"T_Return","Book",,"Mal.*","Contemporary with Nehemiah's return to Jerusalem, perhaps. IVP gives 433 in one article, 460 in another."
+"E_HagZech1","Prophecy through Haggai to rebuild the Temple","-520-06-01",,,,"T_HagZech",,,"T_HagZech","Event",,"Hag.1",
+"E_HagZech2","Prophecy through Haggai to be strong because the Lord is with them","-520-07-21",,,,"T_HagZech",,,"T_HagZech","Event",,"Hag.2.1-9",
+"E_HagZech3","Prophecies through Haggai that the people will be blessed, and to Zerubbabel","-520-09-23",,,,"T_HagZech",,,"T_HagZech","Event",,"Hag.2.10-19",
+"E_HagZech4","Prophecy through Zechariah to return to the Lord","-520-08",,,,"T_HagZech",,,"T_HagZech","Event","Oct/Nov 520","Zech.1.1-6",
+"E_HagZech5","Prophecy through Zechariah of various images","-520-11-24",,,,"T_HagZech",,,"T_HagZech","Event","Feb 519","Zech.1.7-6.15",
+"E_HagZech6","Prophecy through Zechariah concerning fasting and feasting","-518-04-09",,,,"T_HagZech",,,"T_HagZech","Event","Nov 518. Unclear if all one day","Zech.7-8",
+"E_HagZech7","Zechariah's oracles concerning Israel and her enemies","-500",,,,"T_HagZech","20Y",,"T_HagZech","Event","No dating information","Zech.9-14",
+"T_Ezekiel","Prophecies of Ezekiel","-593","-570",,,"T_Exile",,,"T_Exile","Timeline","Prophecies in Ezekiel which are dated.","Ezek.*","IVP gives 593-570. Note there are quite a few textual difficulties with the numbers."
+"B_Ezek","Ezekiel","-593","-570",,,"T_Exile","0/10",,"T_Ezekiel","Book",,"Ezek.*",
+"E_Ezek1","Call of Ezekiel","-593-04-05",,,,"T_Ezekiel",,,"T_Ezekiel",,"Jul 31","Ezek.1.1-.3.14",
+"E_Ezek2","Warning to Israel of the siege of Jerusalem","-593-04-12",,,,"T_Ezekiel",,,"T_Ezekiel",,"Aug 7","Ezek.3.16-5.17",
+"E_Ezek3","Prophecy about the Temple and Israel's leaders","-592-06-05",,,,"T_Ezekiel",,,"T_Ezekiel",,"Sep 17","Ezek.8.1-11.25",
+"E_Ezek4","Prophecy about Israel rebelling","-591-05-10",,,,"T_Ezekiel",,,"T_Ezekiel",,,"Ezek.20.1-44",
+"E_Ezek5","Prophecy about a cooking pot","-589-10-10",,,,"T_Ezekiel",,,"T_Ezekiel",,"Jan 15 588","Ezek.24.1-14",
+"E_Ezek6","Prophecy against Tyre","-587-01-01",,,,"T_Ezekiel",,,"T_Ezekiel",,"First day of month, no month given. Assuming first month as per WBC best guess?","Ezek.26","Whatever month this is in, predates the fall of Jerusalem, which is surprising. Discussion in WBC about this."
+"E_Ezek7","Prophecy against Egypt","-588-10-12",,,,"T_Ezekiel",,,"T_Ezekiel",,,"Ezek.29.1-16",
+"E_Ezek8","Prophecy that Nebuchadnezzar will conquer Egypt","-571-01-01",,,,"T_Ezekiel",,,"T_Ezekiel",,,"Ezek.29.17-21",
+"E_Ezek9","Prophecy about Egypt and Babylon","-587-01-07",,,,"T_Ezekiel",,,"T_Ezekiel",,,"Ezek.30.20-26",
+"E_Ezek10","Prophecy to Egypt about Assyria (the cedar of Lebanon)","-587-03-01",,,,"T_Ezekiel",,,"T_Ezekiel",,,"Ezek.31",
+"E_Ezek11","Lament concerning Pharaoh","-586-12-01",,,,"T_Ezekiel",,,"T_Ezekiel",,,"Ezek.32.1-16",
+"E_Ezek12","Warning to Egypt that other nations have already been destroyed","-586-12-15",,,,"T_Ezekiel",,,"T_Ezekiel",,"No month, assuming same as previous","Ezek.32.17-32",
+"E_Ezek13","Explanation of Jerusalem's fall","-586-10-05",,,,"T_Ezekiel",,,"T_Ezekiel",,"Jan 8 585","Ezek.33.21-33",
+"E_Ezek14","Vision of the new Temple","-573-01-10",,,,"T_Ezekiel",,,"T_Ezekiel",,"Apr 28 573","Ezek.40-48",
+"B_Lam","Lamentations","-586",,,,"T_Exile","5",,"T_Exile","Book",,"Lam.*","(not IVP. Assuming 586 or shortly after.)"
+"B_Obad","Obadiah","-586",,,,"T_Exile",,,"T_Exile","Book",,"Obad.*","c586 or later, from IVP"
+"T_Esther","Timeline of Esther",-484,-475,,,"T_Return",,,"T_Return","Timeline",,"Esth.*",
+"E_Est1","Queen Vashti deposed",-484,,,,"T_Esther",,,"T_Esther","Event",,"Esth.1",
+"E_Est2","Esther becomes queen ",-481,-480,,,"T_Esther",,,"T_Esther","Event",,"Esth.2.1-18",
+"E_Est3","Mordecai discovers the plot to assassinate Xerxes",-479,,,,"T_Esther","EY",,"T_Esther","Event",,"Esth.2.19-23",
+"E_Est4","Haman honoured",-476,,,,"T_Esther","EY",,"T_Esther","Event",,"Esth.3.1-6",
+"E_Est5","The plot to kill the Jews; the Jews saved","-475-01","-475-12",,,"T_Esther",,,"T_Esther","Event",,"Esth.3.7-10.3",
+"B_Job","Job",-500,,,,"T_Return",100,,"T_Return","Book","Possible date for the book of Job in its present form. (Opinions vary from about 1500 to 150BC.) It is likely that the story in some form is much older. ","Job.*","WBC"
+"B_Eccl","Ecclesiastes",-500,-200,,,"T_Return",100,,"T_Return","Book","Likely date for Ecclesiastes in its present form. ","Eccl.*","WBC"
+"B_Prov","Proverbs",-500,-400,,,"T_Return",100,,"T_Return","Book","Likely date for Proverbs in its present form. (Chapters 10-31 probably pre-date the exile)","Prov.*","WBC"
+"B_Song","Song of Solomon",-1011,-971,,,"T_UnitedMonarchy",,,"T_UnitedMonarchy","Book","Reflecting Solomon's authorship.","Song.*","(don't have a commentary - need to check what opinions are)"

Added: trunk/StepDataLoader/data/timeline/TL_Global.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_Global.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_Global.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,24 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_All","All","-3800","2000","-4112","2000",,,,"-","Timeline","Container for everything",,"All refs very approximate"
+"T_Bible","Bible ","-3800","400","-4112","400","T_All",,,"T_All","Timeline","All OT dates need sorting out",,
+"T_Patriarchs","Patriarchs","-4000","-1547","-4112","-1859","T_All",,,"T_Bible","Timeline",,"Gen.*",
+"T_AdamToAbraham","Adam to Abraham","-4000","-1854","-4000","-1854","T_Patriarchs",,,"T_Patriarchs","Timeline",,"Gen.1-11",
+"T_Abraham","Abraham","-1854","-1679","-1854","-1679","T_Patriarchs",,,"T_Patriarchs","Timeline",,"Gen.12.1-25.18","These divisions from ""These are the generations of"""
+"T_Isaac","Isaac","-1754","-1574","-1754","-1574","T_Patriarchs",,,"T_Patriarchs","Timeline",,"Gen.25.19-35.29","These divisions from ""These are the generations of"""
+"T_Jacob","Jacob","-1694","-1547","-1694","-1547","T_Patriarchs",,,"T_Patriarchs","Timeline",,"Gen.37.1-50.26","These divisions from ""These are the generations of"""
+"T_BirthOfTheNation","Birth of the Nation","-1250","-1045","-1446","-1045","T_Bible",,,"T_Bible","Timeline",,"Exod.*; Josh.*; Judg.*; 1Sam.*",
+"T_Exodus","Exodus","-1250-01-01","-1250-12-31","-1446-01-01","-1446-12-31","T_BirthOfTheNation",,,"T_BirthOfTheNation","Timeline",,,"[**] All timelines need to be a range"
+"T_Wilderness","Wilderness","-1250","-1210","-1446","-1406","T_BirthOfTheNation",,,"T_BirthOfTheNation","Timeline",,,"[**] Need to ensure that this links with the previous"
+"T_Conquest","Conquest","-1210","-1190","-1406","-1386","T_BirthOfTheNation",,,"T_BirthOfTheNation","Timeline",,,
+"T_Judges","Judges","-1190","-1045","-1386","-1045","T_BirthOfTheNation",,,"T_BirthOfTheNation","Timeline",,,
+"T_Monarchy","Monarchy","-1045","-586",,,"T_Bible",,,"T_Bible","Timeline","During this period, Israel was ruled by kings. At first one king ruled all the people, but in 931 the nation split into two, Israel or Samaria, and Judah. Both gradually turned away from God, and were conquered by other nations, leading to the people going into exile. ","1Sam.8-31; 2Sam.*;1Kgs.*; 2Kgs.*; 1Chr.10-29;  2Chr.*",
+"T_UnitedMonarchy","United monarchy","-1045","-931",,,"T_Monarchy",,,"T_Monarchy","Timeline","[subline of Monarchy] After a period being ruled by judges, the Israeli nation asked God for a king. God called Saul, who was then succeeded by David, then Solomon. After this the kingdom split in two.","1Sam.8-31; 2Sam.*;  1Kgs.1-11; 1Chr.10-29; 2Chr.1-9",
+"T_JudahMonarchy","Judah (split kingdom)","-931","-586",,,"T_Monarchy",,,"T_Monarchy","Timeline","[subline of Monarchy] Judah was the southern and smaller of the two Jewish kingdoms, and included the city of Jerusalem. It outlived its northern rival, and was finally conquered by Babylon in 586.","1Kgs.12-22; 2Kgs.*; 2Chr.10-36",
+"T_IsraelMonarchy","Israel (split kingdom)","-931","-723",,,"T_Monarchy",,,"T_Monarchy","Timeline","[subline of Monarchy] Israel, also known as Samaria after its capital city, was the northern and larger of the two Israeli kingdoms. It was conquered by Assyria in 722.",,
+"T_ExileAndReturn","Exile and return","-586","-432",,,"T_Bible",,,"T_Bible","Timeline",,"Ezra.*; Neh.*",
+"T_Exile ","Exile  ","-586","-537",,,"T_ExileAndReturn",,,"T_ExileAndReturn","Timeline",,,
+"T_Return","Return","-537","-432",,,"T_ExileAndReturn",,,"T_ExileAndReturn","Timeline",,,
+"T_NewTestament","New Testament period","-3-12","100",,,"T_All",,,"T_Bible","Timeline",,,
+"T_LifeOfJesus","Life of Jesus","-3-12","33-05-14",,,"T_NewTestament",,,"T_NewTestament","Timeline",,,
+"T_NTChurch","NT church","33-05-24","100",,,"T_NewTestament",,,"T_NewTestament","Timeline",,,
+"T_EarlyChurch","Early church","100","500",,,"T_All",,,"T_All","Timeline",,,

Added: trunk/StepDataLoader/data/timeline/TL_Intertestamental.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_Intertestamental.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_Intertestamental.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,25 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_Intertestamental","Intertestamental Period","-537","-1",,,"T_Bible",,,"T_Bible","Timeline","Intertestamental period. Needs further work",,
+"E_INT1","Judaea under Persian control","-537","-332",,,"T_Intertestamental",,,"T_Intertestamental","Event",,,
+"E_INT2","Judaea part of Alexander the Great's Empire","-331","-323",,,"T_Intertestamental",,,"T_Intertestamental","Event",,,
+"E_INT3","Judaea ruled by Egypt","-323","-198",,,"T_Intertestamental",,,"T_Intertestamental","Event",,,
+"E_INT4","Judaea ruled by Syria (the Seleucids)","-198","-164",,,"T_Intertestamental",,,"T_Intertestamental","Event",,,
+"T_Hasmonean","Hasmonean kingdom","-164",-37,,,"T_Intertestamental",,,"T_Intertestamental","Timeline",,,
+"E_INT5","Judea under Roman rule","-63","-1",,,"T_Intertestamental",,,"T_Intertestamental","Event","- and well after this of course",,
+"E_INT6","Maccabean Revolt","-167","-164",,,"T_Intertestamental",,,"T_Intertestamental","Event",,,
+"E_INT7","Judas Maccabaeus","-166","-161",,,"T_Hasmonean",,,"T_Hasmonean","Reign",,,
+"E_INT8","Jonathan Maccabaeus","-161","-143",,,"T_Hasmonean",,,"T_Hasmonean","Reign",,,
+"E_INT9","Simon Maccabaeus","-143","-135",,,"T_Hasmonean",,,"T_Hasmonean","Reign",,,
+"E_INT10","John Hyrcanus I","-135","-104",,,"T_Hasmonean",,,"T_Hasmonean","Reign",,,
+"E_INT11","Aristobalus I","-104",,,,"T_Hasmonean",,,"T_Hasmonean","Reign",,,
+"E_INT12","Alexander Jannaeus","-103","-76",,,"T_Hasmonean",,,"T_Hasmonean","Reign",,,
+"E_INT13","Queen Salome Alexandra and Hyrcanus II","-76","-67",,,"T_Hasmonean",,,"T_Hasmonean","Reign",,,
+"E_INT14","Hyrcanus II and Aristobalus II","-67",-40,,,"T_Hasmonean",,,"T_Hasmonean","Reign",,,
+"E_INT15","Pompey establishes Roman protection","-63",,,,"T_Hasmonean",,,"T_Hasmonean","Event",,,
+"E_INT16","Antigonus",-40,-36,,,"T_Hasmonean",,,"T_Hasmonean","Event",,,
+"T_Herodians","Herodian rulers of Judea",-40,44,,,"T_Intertestamental",,,"T_Intertestamental","Timeline","Overlaps with Jesus's ministry and beyond",,
+"E_INT17","Herod the Great",-36,-1,,,"T_Herodians",,,"T_Herodians","Reign",,,
+"E_INT18","Herod Archelaus, ethnarch of Samaria, Judea and Edom",-4,6,,,"T_Herodians",,,"T_Herodians","Reign",,,
+"E_INT19","Herod Antipas, tetrarch of Galilee",-4,39,,,"T_Herodians",,,"T_Herodians","Reign",,,
+"E_INT20","Herod Philip II, tetrarch of Iturea and Trachonitis",-4,34,,,"T_Herodians",,,"T_Herodians","Reign",,,
+"E_INT21","Herod Agrippa I, king of Israel",39,44,,,"T_Herodians",,,"T_Herodians","Reign","The Herod who died in Acts 12",,

Added: trunk/StepDataLoader/data/timeline/TL_Jesus.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_Jesus.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_Jesus.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,64 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Source"
+"T_JesusEarly","Early Years of Jesus Christ and John the Baptist","-04-10","11",,,"T_LifeOfJesus",,,"T_LifeOfJesus","Timeline",,,
+"T_JesusJohn","John's ministry and the start of Jesus's","29-01","31-02",,,"T_LifeOfJesus",,,"T_LifeOfJesus","Timeline","Jesus mainly in Judea",,
+"T_JesusGalilee","Jesus's ministry in Galilee","31-02","31-12",,,"T_LifeOfJesus",,,"T_LifeOfJesus","Timeline",,,
+"T_JesusGalileeArea","Jesus's minstry in areas around Galilee","32-01","32-09",,,"T_LifeOfJesus",,,"T_LifeOfJesus","Timeline","Phoenicia, Mt Hermon, Decapolis",,
+"T_JesusJudea","Jesus's minstry in Judea","32-09","32-12",,,"T_LifeOfJesus",,,"T_LifeOfJesus","Timeline",,,
+"T_JesusPerea","Jesus's minstry in Perea","33-01","33-03",,,"T_LifeOfJesus",,,"T_LifeOfJesus","Timeline",,,
+"T_PassionWeek","Passion Week","33-03-28","33-04-05",,,"T_LifeOfJesus",,,"T_LifeOfJesus","Timeline",,,
+"T_JesusResurrected","The resurrected Jesus","33-04-05","33-05-14",,,"T_LifeOfJesus",,,"T_LifeOfJesus","Timeline",,,
+"E_JES1","Birth of John the Baptist promised","-04-10",,,,"T_JesusEarly",,,"T_JesusEarly","Event",,"Luke.1.5-25",
+"E_JES2","Birth of Jesus promised","-03-04",,,,"T_JesusEarly",,,"T_JesusEarly","Event",,"Luke.1.26-56;Matt.1.18-24",
+"E_JES3","Birth of John the Baptist","-03-07",,,,"T_JesusEarly",,,"T_JesusEarly","Event",,"Luke.1.57-80",
+"E_JES4","Birth of Jesus ","-02-01",,,,"T_JesusEarly",,,"T_JesusEarly","Event",,"Luke.2.1-20; Matt.1.25",
+"E_JES5","Jesus presented in the Temple","-02-01",,,,"T_JesusEarly",,,"T_JesusEarly","Event",,"Luke.2.21-40",
+"E_JES6","Visit of the Magi","-02-09",,,,"T_JesusEarly",,,"T_JesusEarly","Event","Two theories in Finnegan (550-551). Summer/late-fall, or Dec 25. Star seen on Jun 17th","Matt.2.1-12",
+"E_JES7","Flight to Egypt","-02-10",,,,"T_JesusEarly",,,"T_JesusEarly","Event",,"Matt.2.13-18",
+"E_JES8","Herod's death","-01-04",,,,"T_JesusEarly",,,"T_JesusEarly","Event","Between January and Passover, probably later rather than earlier",,
+"E_JES9","Return from Egypt",1,,,,"T_JesusEarly",,,"T_JesusEarly","Event","By tradition two years after the flight","Matt.2.19-23",
+"E_JES10","Jesus in the Temple at age 12","11-05",,,,"T_JesusEarly",,,"T_JesusEarly","Event",,"Luke.2.41-52",
+"E_JES11","Public ministry of John the Baptist","29-01","29-09",,,"T_JesusJohn",,,"T_JesusJohn","Event",,"Matt.3.1-12;Mark.1.1-8;Luke.3.1-20;John.1.19-28",
+"E_JES12","Jesus's baptism","29-09",,,,"T_JesusJohn","EM",,"T_JesusJohn","Event",,"Matt.3.13-17;Mark.1.9-11;Luke.3.21-22;John.1.29-34",
+"E_JES13","Jesus's temptation in the desert","29-10","29-11",,,"T_JesusJohn","EM",,"T_JesusJohn","Event",,"Matt.4.1-11;Mark.1.12-13;Luke.4.1-13",
+"E_JES14","End of John's Ministry and the beginning of Jesus's.","29-09","31-02",,,"T_JesusJohn",,,"T_JesusJohn","Event","Autumn 29. John 2:20 in Spring 30. John 4:35 in Jan/Feb 31","Matt.4.12;Mark.1.14;Luke.4.14;John.1.35-4.45",
+"E_JES15","Opposition at home and a new headquarters","31-03",,,,"T_JesusGalilee","EM",,"T_JesusGalilee","Event",,"Matt.4.13-17;Mark.1.14-15;Luke.4.14-31;John.4.46-54",
+"E_JES16","Disciples called","31-03",,,,"T_JesusGalilee","EM",,"T_JesusGalilee","Event",,"Matt.4.18-24;Matt.8.2-4;Matt.8.14-17;Matt.9.1-17;Mark.1.16-2.22;Luke.4.31-5.39",
+"E_JES17","Sabbath controversies","31-05","31-10",,,"T_JesusGalilee",,,"T_JesusGalilee","Event","Matt 12:1 and parallels around Passover 31. John 5:1 Oct 31","Matt.4.25;Matt.12.1-21;Mark.2.23-3.12;Luke.6.1-11;John.5.1-47",
+"E_JES18","Appointment of the Twelve and Sermon on the Mount","31-11",,,,"T_JesusGalilee","EM",,"T_JesusGalilee","Event",,"Matt.5.1-7.29;Mark.3.13-19;Luke.6.12-49",
+"E_JES19","Growing fame; emphasis on repentance","31-11",,,,"T_JesusGalilee","EM",,"T_JesusGalilee","Event",,"Matt.8.1;Matt.8.5-13;Matt.11.2-30;Luke.7.1-50",
+"E_JES20","First public rejection by Jewish leaders","31-11",,,,"T_JesusGalilee","EM",,"T_JesusGalilee","Event",,"Matt.12.22-50;Mark.3.20-35;Luke.8.1-3;Luke.8.19-21",
+"E_JES21","Secrets about the kingdom taught in parables","31-11",,,,"T_JesusGalilee","EM",,"T_JesusGalilee","Event",,"Matt.13.1-52;Mark.4.1-34;Luke.8.4-18",
+"E_JES22","Continuing opposition","31-11",,,,"T_JesusGalilee","EM",,"T_JesusGalilee","Event",,"Matt.8.18;Matt.8.23-34;Matt.9.18-34;Matt.13.54-58;Mark.4.35-6.6;Luke.8.22-56",
+"E_JES23","Final Galilean campaign","31-11",,,,"T_JesusGalilee","EM",,"T_JesusGalilee","Event",,"Matt.9.35-11.1;Matt.14.1-12;Mark.6.6-30;Luke.9.1-10",
+"E_JES24","Lesson on the bread of life","32-04",,,,"T_JesusGalileeArea",,,"T_JesusGalileeArea","Event","April 32","Matt.14.13-36;Mark.6.31-56;Luke.9.10-17;John.6.1-71",
+"E_JES25","Lesson on the yeast of the Pharisees, Sadducees and Herodians","32-04",,,,"T_JesusGalileeArea","EM",,"T_JesusGalileeArea","Event",,"Matt.15.1-16.12;Mark.7.1-8.26;John.7.1",
+"E_JES26","Lesson of Messiahship learned and confirmed","32-04",,,,"T_JesusGalileeArea","EM",,"T_JesusGalileeArea","Event",,"Matt.16.13-17.13;Mark.8.27-9.13;Luke.9.18-36",
+"E_JES27","Lessons on responsibility to others","32-04",,,,"T_JesusGalileeArea","EM",,"T_JesusGalileeArea","Event",,"Matt.17.14-18.35;Mark.9.14-50;Luke.9.37-50",
+"E_JES28","Journey to Jerusalem for Tabernacles","32-09",,,,"T_JesusGalileeArea","EM",,"T_JesusGalileeArea","Event",,"Matt.8.19-22;Luke.9.51-62;John.7.2-10",
+"E_JES29","Teachings at Tabernacles","32-09",,,,"T_JesusJudea",,,"T_JesusJudea","Event","Sep 32","John.7.11-8.59",
+"E_JES30","Private lessons on loving service and prayer","32-10",,,,"T_JesusJudea","EM",,"T_JesusJudea","Event",,"Luke.10.1-11.13",
+"E_JES31","Second debate with the scribes and Pharisees","32-11",,,,"T_JesusJudea","EM",,"T_JesusJudea","Event",,"Luke.11.14-13.21",
+"E_JES32","Teaching at the Feast of Dedication","32-12",,,,"T_JesusJudea",,,"T_JesusJudea","Event","Dec 32","John.9.1-10.39",
+"E_JES33","Principles of discipleship","33-01",,,,"T_JesusPerea","EM",,"T_JesusPerea","Event",,"Luke.13.22-17.10;John.10.40-42",
+"E_JES34","Raising of Lazarus and a brief tour through Samaria and Galilee","33-01",,,,"T_JesusPerea","EM",,"T_JesusPerea","Event",,"Luke.17.11-37;John.11.1-54",
+"E_JES35","Teaching on final journey to Jerusalem","33-02",,,,"T_JesusPerea","EM",,"T_JesusPerea","Event",,"Matt.19.1-20.34;Mark.10.1-52;Luke.18.1-19.28",
+"E_JES36","Arrived at Bethany","33-03-28",,,,"T_PassionWeek",,,"T_PassionWeek","Event","Bethany over the Jordan, not the same Bethany as in Matt.26","John.12.1-8",
+"E_JES37","Crowd came to see Jesus","33-03-29",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"John.12.9-11",
+"E_JES38","Triumphal Entry into Jerusalem","33-03-30",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.21.1-11;Mark.11.1-11; Luke.19.28-44;John.12.12-19",
+"E_JES39","Jesus curses the fig tree","33-03-31",,,,"T_PassionWeek",,,"T_PassionWeek","Event","NB: discrepancy between Matthew and Mark here","Mark.11.12-14",
+"E_JES40","Cleansing of the temple","33-03-31",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.21.12-17;Mark.11.15-19;Luke.19.45-46",
+"E_JES41","The fig tree is withered","33-04-01",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.21.18-22;Mark.11.20-25",
+"E_JES42","Jesus teaches and disputes in the temple","33-04-01",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.21.23-23.39; Mark.11.27-12.44;Luke.19.47-21:4",
+"E_JES43","Jesus on the Mount of Olives","33-04-01",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.24.1-25.46;Mark.13.1-37;Luke.21.5-36",
+"E_JES44","Jesus anointed at Bethany","33-04-01",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.26.4-13;Mark.14.1-9",
+"E_JES45","Judas arranges to betray Jesus","33-04-01",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.26.14-16;Mark.14.10-11;Luke.22.1-6",
+"E_JES46","The Last Supper","33-04-02",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.26.17-30;Mark.14.12-26;Luke.22.7-30;John.13.1-30",
+"E_JES47","Jesus's last teaching","33-04-02",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.26.31-35;Mark.14.27-31;Luke.22.31-38;John.13.31-17.26",
+"E_JES48","The garden of Gethsemane","33-04-02",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.26.36-46;Mark.14.32-42;Luke.22.39-46;John.18.1",
+"E_JES49","Jesus is arrested","33-04-03",,,,"T_PassionWeek",,,"T_PassionWeek","Event","(With Hastings) assuming arrested around midnight, so start a new day here.","Matt.26.47-56;Mark.14.43-52;Luke.22.47-53;John.18.2-12",
+"E_JES50","Jesus's trials","33-04-03",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.26.57-27.26;Mark.14.53-15.15;Luke.22.54-23.25;John.18.13-19.16",
+"E_JES51","Crucifixion","33-04-03",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.27.27-56;Mark.15.16-41;Luke.22.26-49;John.19.17-37",
+"E_JES52","Burial","33-04-03",,,,"T_PassionWeek",,,"T_PassionWeek","Event","NB: the ""next day"" would start at sunset. Assuming this happened that evening","Matt.27.57-66;Mark.15.42-47;Luke.22.50-56;John.19.38-42",
+"E_JES53","Resurrection","33-04-05",,,,"T_PassionWeek",,,"T_PassionWeek","Event",,"Matt.28.1-15;Mark.16.1-11;Luke.24.1-12;John.20.1-18",
+"E_JES54","Post-resurrection appearances","33-04-05","33-05-14",,,"T_JesusResurrected",,,"T_JesusResurrected","Event",,"Matt.28.16-20;Mark.16.12-18;Luke.24.13-49;John.20.19-21.25;Acts.1.3-8",
+"E_JES55","Ascension","33-05-14",,,,"T_JesusResurrected",,,"T_JesusResurrected","Event",,"Luke.24.50-53;Mark.16.19-20;Acts.1.9-11",

Added: trunk/StepDataLoader/data/timeline/TL_Monarchy.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_Monarchy.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_Monarchy.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,175 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_Saul","Saul","-1042","-1011","-1050","-1011","T_UnitedMonarchy",,,"T_UnitedMonarchy","Timeline",,,
+"T_David","David ","-1011","-971",,,"T_UnitedMonarchy",,,"T_UnitedMonarchy","Timeline",,,
+"T_Solomon","Solomon","-971","-931",,,"T_UnitedMonarchy",,,"T_UnitedMonarchy","Timeline",,,
+"E_MON1","Saul","-1042","-1011","-1050","-1011",,"10Y",,"T_Saul","Reign",,"1Sam.9-31",
+"E_MON2","Saul anointed as king; Samuel retires","-1042",,"-1050",,"T_Saul","10Y",,"T_Saul","Event",,"1Sam.9-12",
+"E_MON3","Saul fights the Philistines at Gibeah","-1040",,"-1048",,"T_Saul","10Y",,"T_Saul","Event",,"1Sam.13-14",
+"E_MON4","Saul fights the Amalekites; rejected by God","-1026",,"-1034",,"T_Saul","10Y",,"T_Saul","Event",,"1Sam.15",
+"E_MON5","David anointed by Samuel","-1018",,,,"T_Saul",,,"T_Saul","Event",,"1Sam.16",
+"E_MON6","David and Goliath","-1018",,,,"T_Saul",,,"T_Saul","Event",,"1Sam.17",
+"E_MON7","Saul's later reign","-1018","-1011",,,"T_Saul",,,"T_Saul","Event",,"1Sam.18-30","Needs splitting up"
+"E_MON8","Saul's death","-1011",,,,"T_Saul",,,"T_Saul","Event",,"1Sam.31; 1Chr.10",
+"E_MON9","Genealogies",,,,,,,,"T_Bible","Event","not clear what to do with this","1Chr.1-9",
+"E_MON10","David hears of Saul's death","-1011",,,,"T_David",,,"T_David","Event",,"2Sam.1",
+"E_MON11","David ","-1011","-971",,,"T_David",,,"T_David","Reign",,"2Sam.2-24;1Kgs.1-2.9;1Chr.11-29",
+"E_MON12","David king over Judah; fighting with the house of Saul","-1011","-1004",,,"T_David",,,"T_David","Event",,"2Sam.2-4",
+"E_MON13","David anointed king over Israel at Hebron","-1004",,,,"T_David",,,"T_David","Event",,"2Sam.5.1-5; 1Chr.11.1-3; 1Chr.11.10-12.40",
+"E_MON14","David conquers Jerusalem","-1004",,,,"T_David",,,"T_David","Event",,"2Sam.5.6-16; 1Chr.11.4-9",
+"E_MON15","David defeats the Philisines in the Valley of Rephaim","-1003",,,,"T_David",,,"T_David","Event",,"2Sam.5.17-23; 1Chr.17",
+"E_MON16","David brings the Ark to Jerusalem; promise of the Temple","-1001",,,,"T_David",,,"T_David","Event",,"2Sam.6-7;1Chr.13.1-14; 1Chr.15-16","Split?"
+"E_MON17","David builds his palace","-1001",,,,"T_David",,,"T_David","Event",,"1Chr.14.1-7",
+"E_MON18","David's various victories","-1001","-996",,,"T_David",,,"T_David","Event",,"2Sam.8; 1Chr.18",
+"E_MON19","David and Mephibosheth","-996",,,,"T_David",,,"T_David","Event",,"2Sam.9",
+"E_MON20","David defeats the Ammonites","-993",,,,"T_David",,,"T_David","Event",,"2Sam.10; 1Chr.19",
+"E_MON21","David and Bathsheba","-991",,,,"T_David",,,"T_David","Event",,"2Sam.11;1Chr.20.1-3",
+"E_MON22","Nathan rebukes David; death of Bathsheba's child","-990",,,,"T_David",,,"T_David","Event",,"2Sam.12",
+"E_MON23","Amnon and Tamar","-988",,,,"T_David",,,"T_David","Event",,"2Sam.13.1-22",
+"E_MON24","Absalom kills Amnon","-986",,,,"T_David",,,"T_David","Event",,"2Sam.13.23-36",
+"E_MON25","Absalom in Geshur","-986","-983",,,"T_David",,,"T_David","Event",,"2Sam.13.37-39",
+"E_MON26","Absalom returns to Jerusalem","-983",,,,"T_David",,,"T_David","Event",,"2Sam.14",
+"E_MON27","Absalom's rebellion and death","-983","-979",,,"T_David",,,"T_David","Event",,"2Sam.15-19","Split?"
+"E_MON28","Sheba rebels against David","-978",,,,"T_David",,,"T_David","Event",,"2Sam.20",
+"E_MON29","David avenges the Gibeonites","-977",,,,"T_David",,,"T_David","Event",,"2Sam.21.1-14",
+"E_MON30","Wars against the Philistines","-977","-974",,,"T_David",,,"T_David","Event",,"2Sam.21.15-22",
+"E_MON31","David's last words","-972",,,,"T_David",,,"T_David","Event",,"2Sam.22-23",
+"E_MON32","David's census","-971",,,,"T_David",,,"T_David","Event",,"2Sam.24.1-17;1Chr.21.1-17",
+"E_MON33","David's preparations for the building of the Temple and organisation of worship","-971",,,,"T_David",,,"T_David","Event",,"2Sam.24.18-25;1Chr.21.18-29.20",
+"E_MON34","Adonijah's rebellion","-971",,,,"T_David",,,"T_David","Event",,"1Kgs.1",
+"E_MON35","David names Solomon his successor; instructions to Solomon","-971",,,,"T_David",,,"T_David","Event",,"1Kgs.2.1-9;1Chr.22.5-19;1Chr.29.21-25",
+"E_MON36","David's death","-971",,,,"T_David",,,"T_David","Event",,"1Kgs.2.10-12;1Chr.29.26-30",
+"E_MON37","Solomon","-971","-931",,,"T_Solomon",,,"T_Solomon","Reign",,"1Kgs.1.28-11.43;2Chr.1.1-9.31",
+"E_MON38","Solomon establishes his kingdom, granted wisdom","-971","-968",,,"T_Solomon",,,"T_Solomon","Event",,"1Kgs.2.13-4.34;2Chr.1",
+"E_MON39","Building of the Temple","-967-02-02","-960-08",,,"T_Solomon",,,"T_Solomon","Event",,"1Kgs.5-6;1Kgs.7.13-21;2Chr.2-4","See Finnegan S424 for exact 480  dating issue"
+"E_MON40","Building of Solomon's Palace","-960","-947",,,"T_Solomon",,,"T_Solomon","Event",,"1Kgs.7.1-12",
+"E_MON41","Dedication of the Temple","-959-07",,,,"T_Solomon",,,"T_Solomon","Event",,"1Kgs.8;2Chr.5-7",
+"E_MON42","Further activities of Solomon","-958","-936",,,"T_Solomon","EY",,"T_Solomon","Event",,"1Kgs.9.1-11.13;2Chr.8-9",
+"E_MON43","Solomon fights Hadad and Rezon","-936",,,,"T_Solomon","EY",,"T_Solomon","Event",,"1Kgs.11.14-25",
+"E_MON44","Jeroboam rebels against Solomon and flees to Egypt","-934",,,,"T_Solomon","EY",,"T_Solomon","Event",,"1Kgs.11.26-40",
+"E_MON45","Solomon's death","-931",,,,"T_Solomon",,,"T_Solomon","Event",,"1Kgs.11.41-43",
+"E_MON46","Jeroboam I","-931","-910",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"1Kgs.12.16-14.20",
+"E_MON47","Prophecy against Jeroboam by the man of Judah","-930",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"1Kgs.13",
+"E_MON48","Prophecy against Jeroboam by Ahijah","-928",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"1Kgs.14.1-18",
+"E_MON49","Nadab","-910","-909",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"1Kgs.15.25-32",
+"E_MON50","Baasha","-909","-886",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"1Kgs.15.33-16.7",
+"E_MON51","Elah","-886","-885-01-01",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"1Kgs.16.8-14",
+"E_MON52","Zimri","-885-01-01","-885-01-07",,,"T_IsraelMonarchy","EM",,"T_IsraelMonarchy","Reign",,"1Kgs.16.15-20",
+"E_MON53","Tibni","-885-01-07","-885-04",,,"T_IsraelMonarchy","EM",,"T_IsraelMonarchy","Reign","Arguable whether he counts as a king ","1Kgs.16.21-22",
+"E_MON54","Omri","-885-01-07","-874",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"1Kgs.16.21-28",
+"E_MON55","Capital of Israel moved from Tirzah to Samaria","-879",,,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Event",,"1Kgs.16.23-24",
+"E_MON56","Ahab","-874","-853",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"1Kgs.16.29-22.40",
+"E_MON57","Elijah prophesies a drought; fed by ravens","-861",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"1Kgs.17.1-6",
+"E_MON58","The widow at Zarephath","-860",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"1Kgs.17.7-24",
+"E_MON59","Elijah and the prophets of Baal at Mount Carmel","-857",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"1Kgs.18-19.18","Three years after the previous"
+"E_MON60","Elijah calls Elisha","-857",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"1Kgs.19.19-21",
+"E_MON61","Ahab defeats Ben-Hadad of Aram","-856",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"1Kgs.20.1-34",
+"E_MON62","Naboth's vineyard","-855",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"1Kgs.21",
+"E_MON63","Micaiah prophesies against Ahab; Ahab dies in battle at Ramoth Gilead","-853",,,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Event","Attested in Assyrian records as the battle of Qarqar, summer 853. See Finnegan S422","1Kgs.22.1-40;2Chr.18.1-19.3",
+"E_MON64","Ahaziah","-853","-852",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"1Kgs.22.51-53;2Kgs.1.1-18",
+"E_MON65","Joram","-852","-841",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Event","Also Jehoram in the Hebrew, but not to be confused with Jehoram of Judah","2Kgs.3.1-27;2Kgs.9.14-26",
+"E_MON66","Elijah taken up into heaven","-852",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"2Kgs.2.1-18","Usher's estimate. Not even clear in which reign this happens!"
+"E_MON67","Elisha heals the water supply; Elisha jeered for being bald","-851",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"2Kgs.2.19-25",
+"E_MON68","Moab revolts","-850",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"2Kgs.3.14-27",
+"E_MON69","Elisha performs various miracles including healing Naaman","-850",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"2Kgs.4.1-6.23","Split?"
+"E_MON70","Siege of Samaria","-849",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"2Kgs.6.24-7.20",
+"E_MON71","Shunammite woman's land restored","-849","-842",,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event","Takes seven years","2Kgs.8.1-6",
+"E_MON72","Ben-Hadad of Aram murdered and succeeded by Hazael","-842",,,,"T_IsraelMonarchy","EY",,"T_IsraelMonarchy","Event",,"2Kgs.8.7-15",
+"E_MON73","Jehu","-841","-814",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"2Kgs.9.1-10.36",
+"E_MON74","Jehoahaz","-814","-798",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"2Kgs.13.1-9",
+"E_MON75","Jehoash","-798","-782",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"2Kgs.13.10-25",
+"E_MON76","Jeroboam II","-793","-753-06",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign","Co-regent 793-782","2Kgs.14.23-29",
+"E_MON77","Zechariah","-753-06","-752-01",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"2Kgs.15.8-12",
+"E_MON78","Shallum","-752-01","-752-02",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"2Kgs.15.13-16",
+"E_MON79","Menahem","-752-02","-742",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"2Kgs.15.17-22",
+"E_MON80","Pekahiah","-742","-740",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"2Kgs.15.23-26",
+"E_MON81","Pekah","-740","-732",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"2Kgs.15.27-31",
+"E_MON82","Hoshea","-732","-723",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Reign",,"2Kgs.17.1-6",
+"E_MON83","Siege of Samaria","-726","-723",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Event",,"2Kgs.17.4-6",
+"E_MON84","Israel expelled and Samaria resettled","-723","-720",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Event",,"2Kgs.17.7-41;2Kgs.18.9-12",
+"E_MON85","Rehoboam","-931","-913",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign",,"1Kgs.12.1-24;1Kgs.14.21-31;2Chr.10.1-12.16",
+"E_MON86","Accession of Rehoboam and split of the kingdom","-931",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"1Kgs.12.1-24;2Chr.10",
+"E_MON87","Attack by Shishak of Egypt","-927",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"1Kgs.14.25-26;2Chr.12.1-9",
+"E_MON88","Abijah","-913","-911",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Abijam in 1 Kings","1Kgs.15.1-8;2Chr.13.1-22",
+"E_MON89","Asa","-911","-870",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign",,"1Kgs.15.9-24;2Chr.14.1-16.14",
+"E_MON90","Attack by Zerah the Cushite","-901",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Chr.14.9-15",
+"E_MON91","Prophecy by Azariah son of Oded and Asa's reforms","-896-03",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Chr.15.1-19",
+"E_MON92","Asa at war with Baasha of Israel","-895",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event","Dating issue here. Cannot be the 36th year of Asa's reign, since Baasha is dead. Usher proposed 36th year of the split kingdom, which I've followed, but need to check with other sources (Thiele preferably).","1Kgs.15.16-22;2Chr.16.1-10",
+"E_MON93","Asa afflicted with a disease in his foot","-873",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Chr.16.12",
+"E_MON94","Jehoshaphat","-870","-848",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Co-regent 873-871","1Kgs.22.41-50;2Chr.17.1-21.1",
+"E_MON95","Jehoshaphat appoints officials to teach the Law","-867",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Chr.17.7-9",
+"E_MON96","Jehoshaphat marries his son Jehoram to Athaliah of Israel","-864",,,,"T_JudahMonarchy","EY",,"T_JudahMonarchy","Event",,"2Chr.18.1","Needs to be before 863 when their son is born!"
+"E_MON97","Jehoshaphat appoints judges","-852",,,,"T_JudahMonarchy","EY",,"T_JudahMonarchy","Event",,"2Chr.19.4-11","After Ahab dies"
+"E_MON98","Jehoshaphat defeats the Moabites and Ammonites","-850",,,,"T_JudahMonarchy","EY",,"T_JudahMonarchy","Event",,"2Chr.20.1-30",
+"E_MON99","Jehoram","-848","-841",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Co-regent 856-848","2Kgs.8.16-24;2Chr.21.1-20",
+"E_MON100","Ahaziah","-841",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign",,"2Kgs.8.25-29;2Kgs.9.27-29;2Chr.22.1-9",
+"E_MON101","Athaliah","-841","-835",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign",,"2Kgs.11.1-20;2Chr.22.10-23.15",
+"E_MON102","Joash","-835","-796",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Also Jehoash","2Kgs.11.21-12.21;2Chr.23.16-24.27",
+"E_MON103","Joash repairs the Temple","-813",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Kgs.12.4-16;2Chr.24.1-14",
+"E_MON104","Joash killed by the Arameans","-796",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Chr.24.23-27",
+"E_MON105","Amaziah","-796","-767",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Kgs.14.1-22;2Chr.25.1-28",
+"E_MON106","Azariah","-767","-739",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Also Uzziah. Co-regent 790-767","2Kgs.15.1-7;2Chr.26.1-23",
+"E_MON107","Jotham","-739","-732",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Co-regent 750-739","2Kgs.15.32-38;2Chr.27.1-9",
+"E_MON108","Ahaz","-732","-715-01",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Co-regent 736-732","2Kgs.16.1-20;2Chr.28-1.27",
+"E_MON109","Hezekiah","-715-01","-687",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign",,"2Kgs.18.1-20.21;2Chr.29.1-32.33",
+"E_MON110","Hezekiah reconsecrates the Temple and re-establishes Passover","-715-01","-715-03",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Chr.29.3-31.20",
+"E_MON111","Sennacherib attacks Judah","-701-06",,,,"T_JudahMonarchy","EM",,"T_JudahMonarchy","Event",,"2Kgs.18.13-19.37;2Chr.32.1-23",
+"E_MON112","Hezekiah's illness","-701-08",,,,"T_JudahMonarchy","EM",,"T_JudahMonarchy","Event",,"2Kgs.20.1-11",
+"E_MON113","Hezekiah receives messengers from Merodach-Baladan of Bablyon","-701-09",,,,"T_JudahMonarchy","EM",,"T_JudahMonarchy","Event",,"2Kgs.20.12-19",
+"E_MON114","Manasseh","-687","-643",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Co-regent 698-687","2Kgs.21.1-18;2Chr.33.1-20",
+"E_MON115","Amon","-643","-641",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign",,"2Kgs.21.19-26;2Chr.33.21-25",
+"E_MON116","Josiah","-641","-609-04",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign",,"2Kgs.22.1-23.30;2Chr.34.1-35.27",
+"E_MON117","Book of the Law found; renewal of the covenant","-628",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Kgs.22.3-23.25;2Chr.34.3-35.19",
+"E_MON118","Battle of Megiddo","-609-04",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event","June/July","2Kgs.23.29-30;2Chr.35.20-24",
+"E_MON119","Jehoahaz","-609-04","-609-07",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign",,"2Kgs.23.31-35;2Chr.36.1-4",
+"E_MON120","Jehoiakim","-609-07","-598-07-22",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Dec 9th [really? check]","2Kgs.23.36-24.7;2Chr.36.5-8",
+"E_MON121","Jehoiachin","-598-07-22","-597-01-10",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Dec 9th - Mar 16th","2Kgs.24.7-17;2Chr.36.9-11",
+"E_MON122","Zedekiah","-597-01-10","-586-04-09",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Reign","Mar 16th - July 18th","2Kgs.24.18-25.7;2Chr.36.11-21",
+"E_MON123","Capture of Jerusalem and beginning of Exile","-597-01-10",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event","Mar 16th","2Kgs.24.10-14",
+"E_MON124","Final fall of Jerusalem","-586-04-09",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event","July 18th ","2Kgs.25.1-7",
+"E_MON125","Destruction of the Temple","-586-05-07",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Kgs.25.8-21",
+"E_MON126","Gedaliah murdered and the exile to Egypt","-586-07","-586-12",,,"T_JudahMonarchy","EM ",,"T_JudahMonarchy","Event",,"2Kgs.25.22-26",
+"E_MON127","Jehoiachin released","-562",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Kgs.25.27-30; Jer.52.31-34",
+"B_Isa","Isaiah","-740","-700",,,"T_JudahMonarchy",,,"T_Isaiah","Book","Estimated dates that the prophet was active","Isa.*","IVP dates for these books. Need confirming"
+"B_Jer","Jeremiah","-627","-586",,,"T_JudahMonarchy",,,"T_Jeremiah","Book",,"Jer.*",
+"B_Dan","Daniel","-605","-535",,,"T_Exile",,,"T_Exile","Book",,"Dan.*",
+"B_Hos","Hosea","-760","-722",,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Book",,"Hos.*",
+"B_Joel","Joel","-810","-750",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Book",,"Joel.*",
+"B_Amos","Amos","-760",,,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Book",,"Amos.*",
+"B_Jonah","Jonah","-760",,,,"T_IsraelMonarchy",,,"T_IsraelMonarchy","Book",,"Jonah.*",
+"B_Mic","Micah","-742","-687",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Book",,"Mic.*",
+"B_Nah","Nahum","-664","-612",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Book",,"Nah.*",
+"B_Zeph","Zephaniah","-640",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Book",,"Zeph.*",
+"B_Hab","Habakkuk","-605",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Book",,"Hab.*",
+"E_MON128","Start of siege of Jerusalem","-588-10-10",,,,"T_JudahMonarchy",,,"T_JudahMonarchy","Event",,"2Kgs.25.1",
+"T_Jeremiah","Timeline of Jeremiah","-627","-586",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Timeline",,"Jer.*",
+"E_Jer1","Call and initial prophecies","-627",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.1.4-3.5",
+"E_Jer2","Prophecy during the reign of Josiah","-627","-609",,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.3.6-6.30",
+"E_Jer3","Prophecies foretelling the exile ","-627","-597",,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.7.1-20.18",
+"E_Jer4","Request from Zedekiah","-588",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.21",
+"E_Jer5","Prophecies against kings of Judah","-609","-586",,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.22",
+"E_Jer6","Vision of two baskets of figs","-597",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.24",
+"E_Jer7","Prophecy of disaster but a return after 70 years","-605",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.25",
+"E_Jer8","Jeremiah threatened with death","-609",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.26",
+"E_Jer9","Symbol of the yoke, and Hananiah","-594",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.27-28",
+"E_Jer10","Letter to the exiles","-597","-586",,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.29-31",
+"E_Jer11","Jeremiah buys a field; prophecy of destruction but later healing","-587",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.32-33",
+"E_Jer12","A warning to Zedekiah that Jerusalem will fall","-588","-586",,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.34.1-7",
+"E_Jer13","Freeing the slaves and re-enslavement","-597","-586",,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.34.8-22",
+"E_Jer14","The Recabites","-609","-598",,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.35",
+"E_Jer15","Burning Jeremiah's scroll","-605",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.36",
+"E_Jer16","Jeremiah in prison and in a cistern","-597",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.37-38",
+"E_Jer17","The fall of Jerusalem","-588","-586",,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.39;Jer.52.1-30",
+"E_Jer18","Jerusalem freed and the exile to Egypt","-586-07","-586-12",,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.40-44",
+"E_Jer19","Message to Baruch ","-605",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.45",
+"E_Jer20","Prophecy against Egypt at the time of Carchemish","-605",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.46",
+"E_Jer21","Prophecy about Elam","-597",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.49.34-39",
+"E_Jer22","Prophecies against Babylon ","-594",,,,"T_Jeremiah",,,"T_Jeremiah","Event",,"Jer.50-51",
+"T_Isaiah","Timeline of Isaiah","-740","-520",,,"T_JudahMonarchy",,,"T_JudahMonarchy","Timeline",,"Isa.*",
+"T_Isa1","Commission of Isaiah","-739",,,,"T_Isaiah",,,"T_Isaiah","Event",,"Isa.6",
+"T_Isa2","Prophecy about Emmanuel and Assyria","-732",,,,"T_Isaiah",,,"T_Isaiah","Event","It isn't clear where this prophecy ends, possibly as late as chapter 12.","Isa.7-8.10",
+"T_Isa3","Prophecy against the Philistines","-715",,,,"T_Isaiah",,,"T_Isaiah","Event",,"Isa.14.28-32",
+"T_Isa4","Prophecy against Egypt and Cush","-712",,,,"T_Isaiah",,,"T_Isaiah","Event",,"Isa.20",
+"T_Isa5","Sennacherib's invasion","-701",,,,"T_Isaiah",,,"T_Isaiah","Event",,"Isa.36-39",
+"T_Isa6","Setting of ""Second Isaiah""","-540",,,,"T_Isaiah","5",,"T_Isaiah","Event",,"Isa.40-55",
+"T_Isa7","Setting of ""Third Isaiah""","-520",,,,"T_Isaiah","5",,"T_Isaiah","Event",,"Isa.56-66",
+"B_Ps","Psalms","-1018","-971",,,"T_UnitedMonarchy",,,"T_UnitedMonarchy","Book","Dating the Psalms is in many cases difficult or impossible, and they seem to have been composed over a wide timeframe. Placed here given the large number written by David (and Asaph, his contemporary) and the traditional association with him.","Ps.*",

Added: trunk/StepDataLoader/data/timeline/TL_NTChurch.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_NTChurch.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_NTChurch.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,115 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"E_NTC1","Pentecost","33-05-24",,,,"T_NewTestament",,,"T_NTChurch","Event",,"Acts.2",
+"E_NTC2","Execution of James","41-03",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.12.1-2",
+"E_NTC3","Imprisonment of Peter","41-04","41-05",,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.12.3-5",
+"E_NTC4","Death of Herod Agrippa","44-05-01",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.12.23",
+"E_NTC5","Council of Jerusalem","49-01",,,,"T_NewTestament",,,"T_NTChurch","Event",,"Acts.15",
+"E_NTC6","Confrontation of Peter and Paul in Antioch","49-03",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Gal.2.11",
+"E_NTC7","Paul and Barnabas separate","49-04",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.15.36-39",
+"E_NTC8","Execution of Peter and Paul","67-06-29",,,,"T_NewTestament",,,"T_NTChurch","Event",,,
+"E_NTC9","Conversion of Paul ","36-06",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.9.1-7",
+"T_PaulMJ1","Paul's first missionary journey","47-04","48-09",,,"T_NewTestament",,,"T_NTChurch","Timeline",,"Acts.13-14",
+"T_PaulMJ2","Paul's second missionary journey","49-04","51-11",,,"T_NewTestament",,,"T_NTChurch","Timeline",,"Acts.15.36-18.23",
+"T_PaulMJ3","Paul's third missionary journey","52-04","55-05-27",,,"T_NewTestament",,,"T_NTChurch","Timeline",,"Acts.18.23-21.16",
+"E_NTC10","Paul imprisoned in Caesarea","55-05-29","57",,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.24.27",
+"T_PaulToRome","Paul's shipwreck journey to Rome","57-08","58-02",,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.27.1-28.16",
+"E_NTC12","Paul in custody in Rome","58","60",,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.28.30-31",
+"E_NTC13","Peter's second sermon","33-07",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.4.31",
+"E_NTC14","Death of Ananias and Sapphira","33-12",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.4.32-5.11",
+"E_NTC15","Peter brought before Sanhedrin","34-06",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.5.12-42",
+"E_NTC16","Selection of deacons","34-12",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.6.1-7",
+"E_NTC17","Death of Stephen","35-04",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.6.8-7.60",
+"E_NTC18","Paul in Damascus and Arabia","36-06","37-05",,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.9.8-25; Gal.1.16-17",
+"E_NTC19","Paul to Jerusalem","37-06",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.9.26-29; Gal.1.18-20",
+"E_NTC20","Paul to Tarsus and Syria-Cilicia","37-10",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.9.30; Gal.1.21",
+"E_NTC21","Peter's ministry to Gentiles","38",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.11-18",
+"E_NTC22","Barnabas to Antioch","39",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.11.19-24",
+"E_NTC23","Paul to Antioch","40-01",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.11.25-26",
+"E_NTC24","Agabus's prediction of famine","41-01",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.11.27-28","[** when was the famine?]"
+"E_NTC25","Paul and Barnabas's relief visit to Jerusalem","41-02",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.11.30",
+"E_NTC26","Paul and Barnabas sent from Antioch","47-04",,,,"T_PaulMJ1",,,"T_PaulMJ1","Event",,"Acts.13.1-4",
+"E_NTC27","Paul and Barnabas on Cyprus","47-04","47-06",,,"T_PaulMJ1",,,"T_PaulMJ1","Event",,"Acts.13.5-12",
+"E_NTC28","Paul and Barnabas at Pamphylia","47-07-01","47-07-15",,,"T_PaulMJ1",,,"T_PaulMJ1","Event",,"Acts.13.13",
+"E_NTC29","Paul and Barnabs at Pisidian Antioch","47-07-15","47-09-15",,,"T_PaulMJ1",,,"T_PaulMJ1","Event",,"Acts.13.14-52",
+"E_NTC30","Paul and Barnanas at Iconium","47-10","48-02",,,"T_PaulMJ1",,,"T_PaulMJ1","Event",,"Acts.14.1-7",
+"E_NTC31","Paul and Barnabas at Lystra","48-03","48-04",,,"T_PaulMJ1",,,"T_PaulMJ1","Event",,"Acts.14.8-19",
+"E_NTC32","Paul and Barnabas at Derbe","48-05","48-06",,,"T_PaulMJ1",,,"T_PaulMJ1","Event",,"Acts.14.20-23",
+"E_NTC33","Paul and Barnabas return visits","48-06","48-08",,,"T_PaulMJ1",,,"T_PaulMJ1","Event",,"Acts.14.24-25",
+"E_NTC34","Paul and Barnabas return to Antioch","48-09",,,,"T_PaulMJ1",,,"T_PaulMJ1","Event",,"Acts.14.26",
+"B_Gal","BOOK: Galatians","49-04",,,,"T_NTChurch",,,"T_NTChurch","Book",,"Gal.*","written in Antioch immediately after the events"
+"E_NTC36","Paul departs from Antioch","49-04",,,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.15.40",
+"E_NTC37","Paul in Syria and Cilicia","49-04",,,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.15.41",
+"E_NTC38","Paul in Lystra and Derbe ","49-05",,,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.16.1",
+"E_NTC39","Paul in Iconium","49-06",,,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.16.4",
+"E_NTC40","Paul in Pisidian Antioch","49-06","49-07",,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.16.4",
+"E_NTC41","Paul from Antoich to Troas","49-07",,,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.16.6-10",
+"E_NTC42","Paul in Philippi","49-08","49-10",,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.16.11-40",
+"E_NTC43","Paul in Thessalonica","49-10","50-01",,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.17.1-9",
+"E_NTC44","Paul in Berea","50-02",,,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.17.10-15",
+"E_NTC45","Paul in Athens","50-02","50-03",,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.17.16-34",
+"E_NTC46","Paul in Corinth","50-03","51-09",,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.18.1-17",
+"E_NTC47","Silas and Timothy arrive from Berea","50-04",,,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.18.5",
+"B_1Thess","BOOK: 1 Thessalonians","50-06",,,,"T_PaulMJ2",,,"T_PaulMJ2","Book",,"1Thess.*","written in Corinth"
+"B_2Thess","BOOK: 2 Thessalonians","50-08",,,,"T_PaulMJ2",,,"T_PaulMJ2","Book",,"2Thess.*","written in Corinth"
+"E_NTC50","Paul in Ephesus","51-09",,,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.18.19-20",
+"E_NTC51","Paul in Jerusalem (fourth visit)","51-09-30",,,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.18.22",
+"E_NTC52","Paul in Antioch again","51-11",,,,"T_PaulMJ2",,,"T_PaulMJ2","Event",,"Acts.18.22",
+"E_NTC53","Paul departs from Antioch","52-04",,,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.18.23",
+"E_NTC54","Paul visits Galatian churches","52-04","52-06",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.18.23",
+"E_NTC55","Paul in Ephesus","52-06","54-07",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.19.1-41",
+"E_NTC56","Paul in Macedonia","54-08","54-11",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.1",
+"B_1Cor","BOOK: 1 Corinthians","54-03",,,,"T_NTChurch",,,"T_NTChurch","Book",,"1Cor.*","written in Ephesus late in stay"
+"B_2Cor","BOOK: 2 Corinthians","54-09",,,,"T_NTChurch",,,"T_NTChurch","Book",,"2Cor.*","written in Macedonia"
+"E_NTC59","Paul in Corinth","54-11","55-02",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.2-3",
+"B_Rom","BOOK: Romans","54-12",,,,"T_NTChurch",,,"T_NTChurch","Book",,"Rom.*","written in Corinth"
+"E_NTC61","Paul in Philippi","55-04-06","55-04-14",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.3-5","dates from here on need calibrating for festival dates in 55, not 57"
+"E_NTC62","Paul in Troas","55-04-19","55-04-25",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.6",
+"E_NTC63","Eutychus raised from the dead","55-04-24",,,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.7-12",
+"E_NTC64","Troas to Assos","55-04-25",,,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.13","a Monday!"
+"E_NTC65","Assos to Mitylene","55-04-26",,,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.14",
+"E_NTC66","Mitylene to Chios","55-04-27",,,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.15",
+"E_NTC67","Chios to Trogyllium","55-04-28",,,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.15",
+"E_NTC68","Trogyllium to Miletus","55-04-29",,,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.15",
+"E_NTC69","Ephesian elders' visit Paul","55-04-30","55-05-02",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.20.7-38",
+"E_NTC70","Miletus to Patara","55-05-02","55-05-04",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.21.1 ",
+"E_NTC71","Patara to Tyre","55-05-05","55-05-09",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.21.2-3",
+"E_NTC72","Paul at Tyre","55-05-10","55-05-16",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.21.4-6",
+"E_NTC73","Tyre to Caeserea","55-05-17","55-05-19",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.21.7",
+"E_NTC74","Paul at Caeserea","55-05-19","55-05-25",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.21.8-14",
+"E_NTC75","Caeserea to Jerusalem","55-05-25","55-05-27",,,"T_PaulMJ3",,,"T_PaulMJ3","Event",,"Acts.21.15-16",
+"E_NTC76","Paul in Jerusalem (fifth visit)","55-05-27",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.21.17","eve of Pentecost"
+"E_NTC77","Paul's meeting with James","55-05-28",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.21.18-26",
+"E_NTC78","Paul's arrest and trial before Felix","55-05-29","55-06-09",,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.21.27-24.22","House includes breakdown of this event"
+"E_NTC79","Paul before Felix and Drusilla","55-06",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.24.24-26","Last event needing calibration"
+"E_NTC80","Paul's trial before Festus","57-07",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.25.7-12",
+"E_NTC81","Paul's trial before Agrippa","57-08-01",,,,"T_NTChurch",,,"T_NTChurch","Event",,"Acts.26",
+"E_NTC82","Paul departs from Caesarea","57-08-15",,,,"T_PaulToRome",,,"T_PaulToRome","Event",,"Acts.27.1-4",
+"E_NTC83","Paul at Myra","57-09-01",,,,"T_PaulToRome",,,"T_PaulToRome","Event",,"Acts.27.5-6",
+"E_NTC84","Paul at Fair Havens","57-10-05","57-10-10",,,"T_PaulToRome",,,"T_PaulToRome","Event",,"Acts.27.8",
+"E_NTC85","Paul shipwrecked at Malta","57-10-31",,,,"T_PaulToRome",,,"T_PaulToRome","Event",,"Acts.27.39-44",
+"E_NTC85a","Paul on Malta","58-11-01","58-01-31",,,"T_PaulToRome",,,"T_PaulToRome","Event",,"Acts.28.1-10",
+"E_NTC86","Paul leaves Malta","58-02-01",,,,"T_PaulToRome",,,"T_PaulToRome","Event",,"Acts.28.11",
+"E_NTC87","Paul arrives at Rome","58-02-25",,,,"T_PaulToRome",,,"T_PaulToRome","Event",,"Acts.28.16",
+"B_Eph","BOOK: Ephesians","58-09",,,,"T_NTChurch",,,"T_NTChurch","Book",,"Eph.*",
+"B_Col","BOOK: Colossians","59-09",,,,"T_NTChurch",,,"T_NTChurch","Book",,"Col.*",
+"B_Philemon","BOOK: Philemon","59-09",,,,"T_NTChurch",,,"T_NTChurch","Book",,"Phlm.*",
+"B_Phil","BOOK: Philippians","60-03",,,,"T_NTChurch",,,"T_NTChurch","Book",,"Phil.*",
+"E_NTC92","Martyrdom of James, brother of Jesus","62-03",,,,"T_NTChurch",,,"T_NTChurch","Event",,,"Spring 62 in House. Other sources give 62 or sometimes 61. (Thought Finegan said 61 but cannot find again.)"
+"E_NTC93","Paul's further journeys","60-04","67-01",,,"T_NTChurch",,,"T_NTChurch","Event",,,"Following Moody and Hoehner (in House). They reconstruct similar schemes but have Paul dying in early 68, not our 67. Killed in the 3 or 4 month interregnum after Porcius Festus died."
+"B_1Tim","BOOK: 1 Timothy","62-09",,,,"T_NTChurch",,,"T_NTChurch","Book",,"1Tim.*",
+"B_Tit","BOOK: Titus","66-06",,,,"T_NTChurch",,,"T_NTChurch","Book",,"Titus.*",
+"B_2Tim","BOOK: 2 Timothy","66-09",,,,"T_NTChurch",,,"T_NTChurch","Book",,"2Tim.*","Moody/Hoehner give autumn of 67. Moved a year to fit in with Paul's lifespan"
+"B_Luke","BOOK: Luke","60",,,,"T_NTChurch",,,"T_NTChurch","Book",,"Luke.*","This and remainder from House. Need to substitute Carson/Moo or Moody dates."
+"B_Acts","BOOK: Acts ","61",,,,"T_NTChurch",,,"T_NTChurch","Book",,"Acts.*",
+"B_Mark","BOOK: Mark","62",,,,"T_NTChurch",,,"T_NTChurch","Book",,"Mark.*",
+"B_1Pet","BOOK: 1 Peter","63",,,,"T_NTChurch",,,"T_NTChurch","Book",,"1Pet.*",
+"B_2Pet","BOOK: 2 Peter","64",,,,"T_NTChurch",,,"T_NTChurch","Book","63 or 64","2Pet.*",
+"B_Matt","BOOK: Matthew","67",,,,"T_NTChurch",,,"T_NTChurch","Book","60s","Matt.*",
+"B_Heb","BOOK: Hebrews","67",,,,"T_NTChurch",,,"T_NTChurch","Book","60s","Heb.*",
+"B_Jude","BOOK: Jude","70",,,,"T_NTChurch",,,"T_NTChurch","Book","60s or 70s","Jude.*",
+"B_John","BOOK: John","90",,,,"T_NTChurch",,,"T_NTChurch","Book","late 80s or early 90s","John.*",
+"B_1John","BOOK: 1 John","90",,,,"T_NTChurch",,,"T_NTChurch","Book","late 80s or early 90s","1John.*",
+"B_2John","BOOK: 2 John","90",,,,"T_NTChurch",,,"T_NTChurch","Book","late 80s or early 90s","2John.*",
+"B_3John","BOOK: 3 John","90",,,,"T_NTChurch",,,"T_NTChurch","Book","late 80s or early 90s","3John.*",
+"B_Rev","BOOK: Revelation","90",,,,"T_NTChurch",,,"T_NTChurch","Book","late 80s or early 90s","Rev.*",
+"B_Jas","BOOK: James","45",,,,"T_NTChurch",,,"T_NTChurch","Book","c45 from House. Considerable uncertainty","Jas.*",

Added: trunk/StepDataLoader/data/timeline/TL_OTNeighbours.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_OTNeighbours.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_OTNeighbours.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,57 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_Persia","Persian kings","-539","-331",,,"T_All",,,"T_All","Timeline","List of the kings of Persia and Media during their period of dominance.",,"From IVP dictionary, entry on Ezra. Finnegan has some slight differences. He's working from source PDBC - check with that"
+"E_PER1","Cyrus","-539","-530",,,"T_Persia",,,"T_Persia","Reign",,,
+"E_PER2","Cambyses","-530","-522",,,"T_Persia",,,"T_Persia","Reign",,,
+"E_PER3","Darius I Hystaspes","-522","-486",,,"T_Persia",,,"T_Persia","Reign",,,
+"E_PER4","Xerxes I","-486","-465",,,"T_Persia",,,"T_Persia","Reign",,,
+"E_PER5","Artaxerxes I Longimanus","-465","-424",,,"T_Persia",,,"T_Persia","Reign","F has 464-424",,
+"E_PER6","Darius II Nothus","-423","-404",,,"T_Persia",,,"T_Persia","Reign","F has 423-405",,
+"E_PER7","Artaxerxes II Mnemon","-404","-359",,,"T_Persia",,,"T_Persia","Reign",,,
+"E_PER8","Artaxerxes III Ochus","-359","-338",,,"T_Persia","0/1",,"T_Persia","Reign","Latter is 338/7, ditto with next few unclear dates",,
+"E_PER9","Arses","-338","-336",,,"T_Persia","1",,"T_Persia","Reign",,,
+"E_PER10","Darius III Codomanus","-336","-331",,,"T_Persia","1/0",,"T_Persia","Reign",,,
+"E_PER11","Alexander of Macedon","-331","-323",,,"T_Persia",,,"T_Persia","Reign",,,
+"E_PER12","Persians take Babylon","-539-10-12",,,,"T_Persia",,,"T_Persia","Battle","Tashritu 16 = Oct 12th",,"From Finnegan. S454. Two other related dates here too"
+"T_Mesopotamia","Mesopotamia","-1894","-1329",,,"T_All",,,"T_All","Timeline",,,"From IVP dictionary, entry on Chronology. Certainties are my guesses for now."
+"E_MES1","First Dynasty of Bablyon","-1894","-1595",,,"T_Mesopotamia","100/20",,"T_Mesopotamia","Dynasty",,,
+"E_MES2","Hammurabi","-1792","-1750",,,"T_Mesopotamia","50",,"T_Mesopotamia","Reign",,,
+"E_MES3","Kessite Dynasty","-1500","-1329",,,"T_Mesopotamia","25",,"T_Mesopotamia","Dynasty",,,
+"E_MES4","Burnaburiash I","-1500",,,,"T_Mesopotamia","25",,"T_Mesopotamia","Reign",,,
+"E_MES5","Kurigalzu I","-1350",,,,"T_Mesopotamia","25",,"T_Mesopotamia","Reign",,,
+"E_MES6","Kuilgalzu II","-1345","-1329",,,"T_Mesopotamia","25",,"T_Mesopotamia","Reign",,,
+"T_Assyria","Assyria","-1274","-609",,,"T_All",,,"T_All","Timeline",,,
+"E_ASS1","Shalmeneser I","-1274","-1245",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS2","Tukulti-Ninurta I","-1244","-1208",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS3","Adad-shuma-iddina","-1244","-1219",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS4","Nebuchadrezzar I","-1124","-1103",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS5","Tiglath-pileser I","-1115","-1077",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS6","Ashur-dan II","-933",,,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS7","Ashurnasirpal II","-883","-859",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS8","Shalmaneser III","-859","-824",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS9","Tiglath-pileser III","-745","-727",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS10","Shalmaneser V","-727","-722",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS11","Sargon II","-722","-705",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS12","Sennacherib","-705","-681",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS13","Esarhaddon","-681","-669",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS14","Ashurbanipal","-669","-627",,,"T_Assyria",,,"T_Assyria","Reign",,,
+"E_ASS15","Fall of Ninevah","-612",,,,"T_Assyria",,,"T_Assyria","Event",,,
+"E_ASS16","End of Assyria","-609",,,,"T_Assyria",,,"T_Assyria","Event",,,
+"T_Babylon","Babylon","-626","-539",,,"T_All",,,"T_All","Timeline",,,
+"E_BAB1","Nabopolassar","-626","-605",,,"T_Babylon",,,"T_Babylon","Reign",,,
+"E_BAB2","Nebuchadrezzar II","-605","-562",,,"T_Babylon",,,"T_Babylon","Reign",,,
+"E_BAB3","Amel-Marduk (Evil-merodach)","-562","-560",,,"T_Babylon",,,"T_Babylon","Reign",,,
+"E_BAB4","Neriglissar","-560","-556",,,"T_Babylon",,,"T_Babylon","Reign",,,
+"E_BAB5","Labshi-Marduk","-556",,,,"T_Babylon",,,"T_Babylon","Reign",,,
+"E_BAB6","Nabonidus","-556","-539",,,"T_Babylon",,,"T_Babylon","Reign",,,
+"T_Syria","Syria","-312","-129",,,"T_All",,,"T_All","Timeline",,,
+"E_SYR1","Seleucus I Nicator","-312","-281",,,"T_Syria",,,"T_Syria","Reign",,,
+"E_SYR2","Antiochus I Soter","-281","-261",,,"T_Syria",,,"T_Syria","Reign",,,
+"E_SYR3","Antiochus II Theos","-261","-246",,,"T_Syria",,,"T_Syria","Reign",,,
+"E_SYR4","Seleucus II","-246 ","-226",,,"T_Syria",,,"T_Syria","Reign",,,
+"E_SYR5","Seleucus III Soter","-226","-223",,,"T_Syria",,,"T_Syria","Reign",,,
+"E_SYR6","Antiochus III the Great","-223","-187",,,"T_Syria",,,"T_Syria","Reign",,,
+"E_SYR7","Seleucus IV","-187","-175",,,"T_Syria",,,"T_Syria","Reign",,,
+"E_SYR8","Antiochus IV Epiphanes","-175","-163",,,"T_Syria",,,"T_Syria","Reign",,,
+"E_SYR9","Antiochus V","-163","-162",,,"T_Syria",,,"T_Syria","Reign",,,
+"E_SYR10","Demetrius I","-162","-150",,,"T_Syria",,,"T_Syria","Reign",,,
+"E_SYR11","Antiochus VII Sidetes","-139","-129",,,"T_Syria",,,"T_Syria","Reign",,,

Added: trunk/StepDataLoader/data/timeline/TL_PatriarchsToJudges.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_PatriarchsToJudges.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_PatriarchsToJudges.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,186 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"E_PAT1","Birth of Abraham","-1854",,"-2166",,"T_Abraham","20",,"T_Abraham","Event",,"Gen.11.27",
+"E_PAT2","Call of Abraham; Abraham goes from Haran to Canaan","-1779",,"-2091",,"T_Abraham","20",,"T_Abraham","Event",,"Gen.12.1-9",
+"E_PAT3","Birth of Ishmael","-1768",,"-2080",,"T_Abraham","20",,"T_Abraham","Event",,"Gen.16.15-17",
+"E_PAT4","Birth of Isaac","-1754",,"-2066",,"T_Abraham","20",,"T_Abraham","Event",,"Gen.21.1-5",
+"E_PAT5","Mount Moriah","-1739",,"-2051",,"T_Abraham","20",,"T_Abraham","Event",,"Gen.22",
+"E_PAT6","Isaac marries Rebekah","-1714",,"-2026",,"T_Abraham","20",,"T_Abraham","Event",,"Gen.24",
+"E_PAT7","Birth of Jacob and Esau","-1694",,"-2006",,"T_Isaac","20",,"T_Isaac","Event",,"Gen.25.19-26",
+"E_PAT8","Death of Abraham","-1679",,"-1991",,"T_Isaac","20",,"T_Isaac","Event",,"Gen.25.7-11",
+"E_PAT9","Jacob goes to Haran","-1617-02",,"-1929-02",,"T_Isaac","20Y",,"T_Isaac","Event",,"Gen.28-29.14",
+"E_PAT10","Jacob marries Leah and Rachel","-1610",,"-1922",,"T_Isaac","20",,"T_Isaac","Event",,"Gen.29.21-30; Gen.30.1; Gen.30.22-26",
+"E_PAT11","Isaac dies","-1574",,"-1886",,"T_Isaac","20",,"T_Isaac","Event",,"Gen.35.23-29",
+"E_PAT12","Jacob and family move to Egypt","-1564",,"-1876",,"T_Isaac","20",,"T_Isaac","Event",,"Gen.46.1-47.11",
+"E_PAT13","Jacob dies","-1547-01",,"-1859-01",,"T_Isaac","20Y",,"T_Isaac","Event",,"Gen.47.28-49.33",
+"E_PAT14","Birth of Joseph ","-1604",,"-1916",,"T_Isaac","20",,"T_Isaac","Event",,"Gen.30.22-24",
+"E_PAT15","Joseph sold into slavery","-1587",,"-1899",,"T_Jacob","20",,"T_Jacob","Event",,"Gen.37.1-36",
+"E_PAT16","Joseph enters the service of Pharaoh","-1574",,"-1886",,"T_Jacob","20",,"T_Jacob","Event",,"Gen.41.1-45",
+"E_PAT17","Seven years of plenty","-1574","-1567","-1886","-1879","T_Jacob","20",,"T_Jacob","Event",,"Gen.41.46-53",
+"E_PAT18","Seven years of famine","-1567","-1560","-1879","-1872","T_Jacob","20",,"T_Jacob","Event",,"Gen.41.53-47.26",
+"E_PAT19","Joseph dies","-1494",,"-1806",,"T_Jacob","20",,"T_Jacob","Event",,"Gen.50.22-26",
+"E_PAT20","Creation","-3800-09",,"-4112-09",,"T_AdamToAbraham","150Y",,"T_AdamToAbraham","Event",,"Gen.1-2","made up"
+"E_PAT21","The Fall","-3800-10",,"-4112-10",,"T_AdamToAbraham","125Y",,"T_AdamToAbraham","Event",,"Gen.3","made up"
+"E_PAT22","Cain and Abel","-3700","-3670","-4012","-3982","T_AdamToAbraham","100",,"T_AdamToAbraham","Event",,"Gen.4","made up"
+"E_PAT23","The Flood","-2145",,"-2457",,"T_AdamToAbraham","70",,"T_AdamToAbraham","Event",,"Gen.6.1-8.17",
+"E_PAT24","Table of Nations","-2145","-2045","-2457","-2357",,"70","EY","T_AdamToAbraham","Event",,"Gen.10","and probably later, but a reasonable place to put it on the timeline"
+"E_PAT25","Tower of Babel","-2045",,"-2357",,"T_AdamToAbraham","70",,"T_AdamToAbraham","Event",,"Gen.11.1-9","Usher dates here on the grounds of Gen 10:25 (at Peleg's birth)"
+"E_PAT26","Abraham in Egypt","-1775",,"-2087",,"T_Abraham","20","EY","T_Abraham","Event",,"Gen.12.10-20","Usher puts in same year as vv1-9"
+"E_PAT27","Abraham returns from Egypt","-1773",,"-2085",,"T_Abraham","20","EY","T_Abraham","Event",,"Gen.13","ditto"
+"E_PAT28","Abraham rescues Lot","-1770-01",,"-2082-01",,"T_Abraham","20Y","EY","T_Abraham","Event",,"Gen.14","Usher's dating"
+"E_PAT29","God's first covenant with Abraham","-1770-07",,"-2082-07",,"T_Abraham","20Y","EY","T_Abraham","Event",,"Gen.15","ditto"
+"E_PAT30","Abraham sleeps with Hagar","-1769",,"-2081",,"T_Abraham","20",,"T_Abraham","Event",,"Gen.16.1-14","10 years after Gen 12:1-9 (v3)"
+"E_PAT31","Circumcision covenant ","-1755-01",,"-2067-01",,"T_Abraham","20Y","EM","T_Abraham","Event",,"Gen.17",
+"E_PAT32","The three visitors; Abraham pleads for Sodom","-1755-04",,"-2067-04",,"T_Abraham","20Y","EY","T_Abraham","Event",,"Gen.18","Usher has same year as previous"
+"E_PAT33","Destruction of Sodom and Gomorrah","-1755-05",,"-2067-05",,"T_Abraham","20Y","EY","T_Abraham","Event",,"Gen.19",
+"E_PAT34","Abraham in Gerar with Abimelech","-1755-09",,"-2067-09",,"T_Abraham","20Y","EY","T_Abraham","Event",,"Gen.20",
+"E_PAT35","Hagar and Ishmael sent away","-1750-01",,"-2062-01",,"T_Abraham","20Y","EY","T_Abraham","Event",,"Gen.21.8-21",
+"E_PAT36","Treaty at Beersheba","-1750-07",,"-2062-07",,"T_Abraham","20Y","EY","T_Abraham","Event",,"Gen.21.22-34",
+"E_PAT37","Death of Sarah; purchase of field at Machpelah","-1717",,"-2029",,"T_Abraham","20",,"T_Abraham","Event",,"Gen.23",
+"E_PAT38","Abraham marries Keturah","-1711",,"-2023",,"T_Abraham","20","EY","T_Abraham","Event",,"Gen.25.1-6","(from Thompson cross-reference, shifted. Not in Usher.)"
+"E_PAT39","Ishmael's descendents","-1738","-1708","-2050","-2020","T_Abraham","20","EY","T_Abraham","Event",,"Gen.25.12-16","made up"
+"E_PAT40","Death of Ishmael","-1629",,"-1941",,"T_Abraham","20",,"T_Abraham","Event",,"Gen.25.17-18",
+"E_PAT41","Isaac in Gerar with Abimelech","-1670","-1660","-1982","-1972","T_Isaac","20","EY","T_Isaac","Event",,"Gen.26.1-33","made up"
+"E_PAT42","Esau marries Judith and Basemath","-1654",,"-1966",,"T_Isaac","20",,"T_Isaac","Event",,"Gen.26.34-35",
+"E_PAT43","Jacob steals Esau's birthright","-1617",,"-1929",,"T_Isaac","20",,"T_Isaac","Event",,"Gen.27",
+"E_PAT44","Birth of Jacob's oldest ten sons","-1610","-1604","-1922","-1916","T_Isaac","20","EY","T_Isaac","Event",,"Gen.29.31-30.21",
+"E_PAT45","Jacob leaves Laban and returns to Israel","-1598",,"-1910",,"T_Jacob","20",,"T_Jacob","Event",,"Gen.30.25-33.20","split into bits?"
+"E_PAT46","Dinah and the Shechenites","-1595",,"-1907",,"T_Jacob","20","EY","T_Jacob","Event",,"Gen.34","Thompson again (no evidence)"
+"E_PAT47","Jacob builds an altar at Bethel","-1592",,"-1904",,"T_Jacob","20","EY","T_Jacob","Event",,"Gen.35.1-15","ditto"
+"E_PAT48","Rachel dies","-1576",,"-1888",,"T_Jacob","20","EY","T_Jacob","Event",,"Gen.35.16-20","before Jacob dies, but not clear how much"
+"E_PAT49","Reuben sleeps with Bilhah","-1575",,"-1887",,"T_Jacob","20","EY","T_Jacob","Event",,"Gen.35.21-22",
+"E_PAT50","Esau's descendants","-1644","-1544","-1956","-1856","T_Jacob","20","EY","T_Jacob","Event",,"Gen.36","made up"
+"E_PAT51","Judith and Tamar","-1587",,"-1899",,"T_Jacob","20","EY","T_Jacob","Event",,"Gen.38",
+"E_PAT52","Joseph and Potiphar's wife","-1582",,"-1894",,"T_Jacob","20","EY","T_Jacob","Event",,"Gen.39","made up"
+"E_PAT53","Joseph, the cupbearer and the baker","-1576",,"-1888",,"T_Jacob","20","EY","T_Jacob","Event",,"Gen.40",
+"E_PAT54","Joseph's brothers visit Egypt","-1566",,"-1878",,"T_Jacob","20",,"T_Jacob","Event",,"Gen.42",
+"E_PAT55","Joseph's brothers visit Egypt a second time ","-1565",,"-1877",,"T_Jacob","20",,"T_Jacob","Event",,"Gen.43-45",
+"E_PAT56","Joseph buries Jacob","-1547-07",,"-1859-07",,"T_Jacob","20Y",,"T_Jacob","Event",,"Gen.50-1-21",
+"E_PAT57","Adam","-3800","-2870","-4112","-3182","T_AdamToAbraham","100",,"T_AdamToAbraham","Event",,"Gen.1.26-28; Gen.2.15-3.24; Gen.5.1-5",
+"E_PAT58","Seth","-3670","-2758","-3982","-3070","T_AdamToAbraham","100",,"T_AdamToAbraham","Event",,"Gen.5.6-8",
+"E_PAT59","Enosh","-3565","-2660","-3877","-2972","T_AdamToAbraham","100",,"T_AdamToAbraham","Event",,"Gen.5.9-11",
+"E_PAT60","Kenan","-3475","-2565","-3787","-2877","T_AdamToAbraham","100",,"T_AdamToAbraham","Event",,"Gen.5.12-14",
+"E_PAT61","Mahalaleel","-3405","-2510","-3717","-2822","T_AdamToAbraham","95",,"T_AdamToAbraham","Event",,"Gen.5.15-17",
+"E_PAT62","Jared","-3340","-2378","-3652","-2690","T_AdamToAbraham","90",,"T_AdamToAbraham","Event",,"Gen.5.18-20",
+"E_PAT63","Enoch","-3178","-2813","-3490","-3125","T_AdamToAbraham","85",,"T_AdamToAbraham","Event",,"Gen.5.21-24",
+"E_PAT64","Methusaleh","-3113","-2144","-3425","-2456","T_AdamToAbraham","80",,"T_AdamToAbraham","Event",,"Gen.5.25-27",
+"E_PAT65","Lamech","-2926","-2149","-3238","-2461","T_AdamToAbraham","75",,"T_AdamToAbraham","Event",,"Gen.5.28-30",
+"E_PAT66","Noah","-2744","-1794","-3056","-2106","T_AdamToAbraham","70",,"T_AdamToAbraham","Event",,"Gen.5.31-9.29",
+"E_PAT67","Shem","-2244","-1644","-2556","-1956","T_AdamToAbraham","65",,"T_AdamToAbraham","Event",,"Gen.5.32;Gen.11.10-11",
+"E_PAT68","Arphaxad","-2144","-1706","-2456","-2018","T_AdamToAbraham","60",,"T_AdamToAbraham","Event",,"Gen.11.12-13",
+"E_PAT69","Shelah","-2109","-1676","-2421","-1988","T_AdamToAbraham","55",,"T_AdamToAbraham","Event",,"Gen.11.14-15",
+"E_PAT70","Eber","-2079","-1615","-2391","-1927","T_AdamToAbraham","50",,"T_AdamToAbraham","Event",,"Gen.11.16-17",
+"E_PAT71","Peleg","-2045","-1806","-2357","-2118","T_AdamToAbraham","45",,"T_AdamToAbraham","Event",,"Gen.11.18-19",
+"E_PAT72","Reu","-2015","-1776","-2327","-2088","T_AdamToAbraham","40",,"T_AdamToAbraham","Event",,"Gen.11.20-21",
+"E_PAT73","Serug","-1983","-1753","-2295","-2065","T_AdamToAbraham","35",,"T_AdamToAbraham","Event",,"Gen.11.22-23",
+"E_PAT74","Nahor","-1953","-1805","-2265","-2117","T_AdamToAbraham","30",,"T_AdamToAbraham","Event",,"Gen.11.24-25",
+"E_PAT75","Terah","-1924","-1719","-2236","-2031","T_AdamToAbraham","25",,"T_AdamToAbraham","Event",,"Gen.11.26-32",
+"E_PAT76","Sojourn in Egypt","-1564","-1251","-1876","-1446","T_BirthOfTheNation","20/10",,"T_BirthOfTheNation","Event",,"Exod.1.1-7",
+"E_PAT79","Joshua and the Elders","-1210","-1200","-1406","-1385","T_Judges","10Y",,"T_Judges","Reign",,,
+"E_PAT80","Mesopotamia/Cushan-rishathaim","-1200","-1192","-1385","-1377","T_Judges","10Y",,"T_Judges","Reign",,"Judg.3.8",
+"E_PAT81","Othniel","-1192","-1152","-1377","-1337","T_Judges","10Y",,"T_Judges","Reign",,"Judg.3.9-11",
+"E_PAT82","Moabites/Eglon","-1200","-1182","-1337","-1319","T_Judges","10Y",,"T_Judges","Reign",,"Judg.3.12-14",
+"E_PAT83","Ehud (and peace)","-1182","-1102","-1319","-1239","T_Judges","10Y",,"T_Judges","Reign",,"Judg.3.15-30",
+"E_PAT84","Philistines","-1175","-1170","-1265","-1260","T_Judges","10Y",,"T_Judges","Reign","No time information given. Allotted a random 5 years","Judg.3.31",
+"E_PAT85","Shamgar","-1170",,"-1260","-1250","T_Judges","10Y",,"T_Judges","Reign","No idea why Walton picks 10 years, or this particular time frame","Judg.3.31",
+"E_PAT86","Canaanites/Jabin","-1180","-1160","-1259","-1239","T_Judges","10Y",,"T_Judges","Reign",,"Judg.4.2-3",
+"E_PAT87","Deborah","-1165","-1150","-1239","-1199","T_Judges","10Y",,"T_Judges","Reign",,"Judg.4.4-5.31",
+"E_PAT88","Midianites/Oreb etc","-1186","-1179","-1199","-1192","T_Judges","10Y",,"T_Judges","Reign",,"Judg.6.1-6",
+"E_PAT89","Gideon","-1179","-1139","-1192","-1152","T_Judges","10Y",,"T_Judges","Reign",,"Judg.6.7-8.35",
+"E_PAT90","Civil War of Abimelech","-1139","-1136","-1152","-1149","T_Judges","10Y",,"T_Judges","Reign",,"Judg.9",
+"E_PAT91","Tola","-1136","-1113","-1149","-1126","T_Judges","10Y",,"T_Judges","Reign",,"Judg.10.1-2",
+"E_PAT92","Jair","-1113","-1091","-1126","-1104","T_Judges","10Y",,"T_Judges","Reign",,"Judg.10.3-6",
+"E_PAT93","Ammonites","-1091","-1073","-1104","-1086","T_Judges","10Y",,"T_Judges","Reign",,"Judg.10.7-9",
+"E_PAT94","Jepthtah","-1073","-1067","-1086","-1080","T_Judges","10Y",,"T_Judges","Reign",,"Judg.10.10-12.7",
+"E_PAT95","Ibzan","-1067","-1060","-1080","-1072","T_Judges","10Y",,"T_Judges","Reign",,"Judg.12.8-10",
+"E_PAT96","Elon","-1060","-1050","-1072","-1062","T_Judges","10Y",,"T_Judges","Reign",,"Judg.12.11-12",
+"E_PAT97","Abdon","-1050","-1042","-1062","-1055","T_Judges","10Y",,"T_Judges","Reign",,"Judg.12.13-15",
+"E_PAT98","Philistines again","-1100","-1060","-1115","-1075","T_Judges","10Y",,"T_Judges","Reign",,"Judg.13.1",
+"E_PAT99","Samson","-1080","-1060","-1075","-1055","T_Judges","10Y",,"T_Judges","Reign",,"Judg.13.2-16.31",
+"E_PAT100","Eli","-1102","-1062","-1100","-1060","T_Judges","10Y",,"T_Judges","Reign","Walton puts 1Sam4 at 1060, 1Sam7 at 1050 so this and next entry inferred","1Sam.1-4",
+"E_PAT101","Samuel","-1062","-1042","-1060","-1050","T_Judges","10Y",,"T_Judges","Reign",,"1Sam.3-12",
+"E_PAT102","Pharoah oppresses Israel and orders the death of the children","-1332",,"-1528",,"T_Exodus","10Y",,"T_Exodus","Event","All month/days are in the Jewish calendar","Exod.1.8-22",
+"E_PAT103","Birth of Moses","-1330",,"-1526",,"T_Exodus","10Y",,"T_Exodus","Event",,"Exod.2.1-10",
+"E_PAT104","Moses flees to Midian","-1290",,"-1486",,"T_Exodus","10Y",,"T_Exodus","Event",,"Exod.2.11-22",
+"E_PAT105","God hears Israel's groaning","-1290","-1252","-1486","-1448",,"10Y",,"T_Exodus","Event",,"Exod.2.23-25",
+"E_PAT106","Burning Bush and call of Moses","-1251-02",,"-1447-02",,"T_Exodus","10Y",,"T_Exodus","Event",,"Exod.3-4.17",
+"E_PAT107","Moses returns to Egypt and meets Pharaoh","-1251-06",,"-1447-06",,"T_Exodus","10Y",,"T_Exodus","Event",,"Exod.4.18-6.30",
+"E_PAT108","Moses and Aaron before Pharaoh; the threat of the plagues","-1251-10",,"-1447-10",,"T_Exodus","10Y",,"T_Exodus","Event",,"Exod.7.1-13",
+"E_PAT109","1st plague: water turned to blood","-1251-12-18","-1251-12-24","-1447-12-18","-1447-12-24","T_Exodus","10Y","EM","T_Exodus","Event",,"Exod.7.14-25","No evidence to suggest how separated the plagues were"
+"E_PAT110","2nd plague: frogs","-1251-12-25","-1251-12-26","-1447-12-25","-1447-12-26","T_Exodus","10Y","EM","T_Exodus","Event",,"Exod.8.1-15",
+"E_PAT111","3rd plague: gnats","-1251-12-27",,"-1447-12-27",,"T_Exodus","10Y","EM","T_Exodus","Event",,"Exod.8.16-19",
+"E_PAT112","4th plague: flies","-1251-12-28","-1251-12-30","-1447-12-28","-1447-12-30","T_Exodus","10Y","EM","T_Exodus","Event",,"Exod.8.20-32",
+"E_PAT113","5th plague: livestock die","-1250-01-01",,"-1446-01-01",,"T_Exodus","10Y","EM","T_Exodus","Event",,"Exod.9.1-7",
+"E_PAT114","6th plague: boils","-1250-01-03",,"-1446-01-03",,"T_Exodus","10Y","EM","T_Exodus","Event",,"Exod.9.8-12",
+"E_PAT115","7th plague: hail","-1250-01-04","-1250-01-05","-1446-01-04","-1446-01-05","T_Exodus","10Y","EM","T_Exodus","Event",,"Exod.9.13-35",
+"E_PAT116","8th plague: locusts","-1250-01-07","-1250-01-09","-1446-01-07","-1446-01-09","T_Exodus","10Y","EM","T_Exodus","Event",,"Exod.10.1-20",
+"E_PAT117","9th plague: darkness","-1250-01-11","-1250-01-13","-1446-01-11","-1446-01-13","T_Exodus","10Y","EM","T_Exodus","Event",,"Exod.10.21-23",
+"E_PAT118","Moses before Pharaoh for the last time; last plague promised","-1250-01-14",,"-1446-01-14",,"T_Exodus","10Y",,"T_Exodus","Event",,"Exod.10.24-11.10",
+"E_PAT119","Passover commanded","-1250-01-14",,"-1446-01-14",,"T_Exodus","10Y",,"T_Exodus","Event",,"Exod.12.1-28",
+"E_PAT120","10th plague: death of the firstborn","-1250-01-15",,"-1446-01-15",,"T_Exodus","10Y",,"T_Exodus","Event",,"Exod.12.29-32",
+"E_PAT121","Departure from Egypt","-1250-01-15","-1250-01-20","-1446-01-15","-1446-01-20","T_Exodus","10Y",,"T_Exodus","Event",,"Exod.12.33-13.22",
+"E_PAT122","Crossing the Red Sea","-1250-01-21",,"-1446-01-21",,"T_Exodus","10Y",,"T_Exodus","Event","Jewish tradition is that this is on the 21st.","Exod.14-15.21",
+"E_PAT123","Red Sea to Marah","-1250-01-22","-1250-01-24","-1446-01-22","-1446-01-24","T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.15.22",
+"E_PAT124","At Marah","-1250-01-24",,"-1446-01-24",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.15.23-26",
+"E_PAT125","At Elim","-1250-02-01","-1250-02-08","-1446-02-01","-1446-02-08","T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.15.27",
+"E_PAT126","Giving of Manna","-1250-02-15","-1250-02-21","-1446-02-15","-1446-02-21","T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.16",
+"E_PAT127","Water from the Rock at Rephidim","-1250-02-22",,"-1446-02-22",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.17.1-7",
+"E_PAT128","Israel defeats Amalek","-1250-02-24",,"-1446-02-24",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.17-8-16",
+"E_PAT129","Jethro visits Moses","-1250-02-25","-1250-02-28","-1446-02-25","-1446-02-28","T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.18",
+"E_PAT130","Israel arrive at Mount Sinai","-1250-03-01",,"-1446-03-01",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.19.1-15",
+"E_PAT131","Giving of the Ten Commandments","-1250-03-03",,"-1446-03-03",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.19-16-20.21",
+"E_PAT132","Moses given the Law","-1250-03-04",,"-1446-03-04",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.20.22-23.33",
+"E_PAT133","The seventy elders worship God","-1250-03-05",,"-1446-03-05",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.24.1-14",
+"E_PAT134","Moses on the mountain for 40 days","-1250-03-06","-1250-04-15","-1446-03-06","-1446-04-15","T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.24.15-31.18",
+"E_PAT135","The Golden Calf","-1250-04-16","-1250-04-17","-1446-04-16","-1446-04-17","T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.32",
+"E_PAT136","Moss on the mountain a second time for 40 days","-1250-04-21","-1250-05-30","-1446-04-21","-1446-05-30","T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.33.1-34.28",
+"E_PAT137","Construction of the Tabernacle","-1250-06-01","-1250-12-30","-1446-06-01","-1446-12-30","T_Wilderness","10Y","EM","T_Wilderness","Event",,"Exod.34.29-39.43",
+"E_PAT138","Erection of the Tabernacle","-1249-01-01",,"-1445-01-01",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Exod.40",
+"E_PAT139","Giving of the Levitical Law and other commands","-1249-01-01","-1249-02-19","-1445-01-01","-1445-02-19","T_Wilderness","10Y",,"T_Wilderness","Event",,"Lev.*; Num.6-8; Num.10.1-10",
+"E_PAT140","Celebrating the Passover at Sinai","-1249-01-14",,"-1445-01-14",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Num.9",
+"E_PAT141","Taking a census at Sinai","-1249-02-01",,"-1445-02-01",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Num.1-5",
+"E_PAT142","The Israelites leave Sinai","-1249-02-20",,"-1445-02-20",,"T_Wilderness","10Y",,"T_Wilderness","Event",,"Num.10.11-36",
+"E_PAT143","Sinai to Paran","-1249-03-01","-1249-04-30","-1445-03-01","-1445-04-30","T_Wilderness","10Y","EM","T_Wilderness","Event","timing is Ussher","Num.11-12",
+"E_PAT144","Exploring Canaan","-1249-05-01","-1249-06-30","-1445-05-01","-1445-06-30","T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.13-14",
+"E_PAT145","Israel in the Wilderness","-1249-07-01","-1212-12-30","-1445-07-07","-1408-12-30","T_Wilderness","10Y",,"T_Wilderness","Event","No dating information here","Num.15.1-19.22",
+"E_PAT146","Death of Miriam","-1211-01-01",,"-1407-01-01","-1407-01-01","T_Wilderness","10Y",,"T_Wilderness","Event","20.1 has ""in the first month"". Ussher reads this as the last year. Scattered events across the year","Num.20.1",
+"E_PAT147","Waters of Meribah","-1211-01-15",,"-1407-01-15",,"T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.20.1-13",
+"E_PAT148","Edom refuses passage","-1211-02",,"-1407-02",,"T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.20.14-21",
+"E_PAT149","Death of Aaron ","-1211-03",,"-1407-03",,"T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.20.22-28",
+"E_PAT150","Defeat of Arad, Sihon king of the Amorites and Og king of Bashan","-1211-04",,"-1407-04",,"T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.21",
+"E_PAT151","Balak and Balaam","-1211-05",,"-1407-05",,"T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.22-24",
+"E_PAT152","The plague of Peor","-1211-06-07",,"-1407-06-07",,"T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.25",
+"E_PAT153","Census of the new generation","-1211-06-21",,"-1407-06-21",,"T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.26.1-27.11",
+"E_PAT154","Joshua consecrated as successor to Moses","-1211-07",,"-1407-07",,"T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.27.12-23",
+"E_PAT155","Laws concerning offerings and vows","-1211-07",,"-1407-07",,,"10Y","EM","T_Wilderness","Event",,"Num.28-30",
+"E_PAT156","Vengeance on Midian","-1211-08",,"-1407-08",,"T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.31",
+"E_PAT157","Reuben and Gad settle in Gilead","-1211-09",,"-1407-09",,"T_Wilderness","10Y","EM","T_Wilderness","Event",,"Num.32",
+"E_PAT158","Summary of the journey","-1250","-1211","-1446","-1407",,"10Y","EM","T_Wilderness","Event",,"Num.33",
+"E_PAT159","Further commandments","-1211-10",,"-1407-10",,,"10Y","EM","T_Wilderness","Event",,"Num.34-36",
+"E_PAT160","Moses speaks to Israel in Moab","-1211-11-01","-1211-11-30","-1407-11-01","-1407-11-30","T_Wilderness","10Y",,"T_Wilderness","Event","Unclear how long all this takes","Deut.1-33",
+"E_PAT161","Moses's death","-1211-12-01","-1211-12-01","-1407-12-01","-1407-12-01","T_Wilderness","10Y",,"T_Wilderness","Event",,"Deut.34",
+"E_PAT162","Commissioning of Joshua","-1210-01-01",,"-1406-01-01",,"T_Conquest","10Y",,"T_Conquest","Event",,"Josh.1","First available day after the mourning period."
+"E_PAT163","Spies sent to Jericho","-1210-01-03","-1210-01-08","-1406-01-03","-1406-01-08","T_Conquest","10Y",,"T_Conquest","Event",,"Josh.2","Hid for three days, plus travelling time"
+"E_PAT164","Crossing of the Jordan ","-1210-01-10",,"-1406-01-10",,"T_Conquest","10Y",,"T_Conquest","Event",,"Josh.3-4","Stated date (4:19)"
+"E_PAT165","Circumcision of the new generation","-1210-01-11","-1210-01-13","-1406-01-11","-1406-01-13","T_Conquest","10Y",,"T_Conquest","Event",,"Josh.5.1-9",
+"E_PAT166","First Passover in Canaan","-1210-01-14",,"-1406-01-14",,"T_Conquest","10Y",,"T_Conquest","Event",,"Josh.5.10-12","Stated date (5:10)"
+"E_PAT167","Fall of Jericho","-1210-01-18","-1210-01-24","-1406-01-18","-1406-01-24","T_Conquest","10Y","EM","T_Conquest","Event",,"Josh.5.13-6.27","7 days, presumably not long after Passover"
+"E_PAT168","Defeat at Ai","-1210-02-01",,"-1406-02-01",,"T_Conquest","10Y","EM","T_Conquest","Event",,"Josh.7","Spread these events out a bit"
+"E_PAT169","Fall of Ai","-1210-02-08",,"-1406-02-08",,"T_Conquest","10Y","EM","T_Conquest","Event",,"Josh.8.1-29",
+"E_PAT170","Renewal of the covenant","-1210-02-14",,"-1406-02-14",,"T_Conquest","10Y","EM","T_Conquest","Event",,"Josh.8.30-35",
+"E_PAT171","Treaty with the Gibeonites","-1210-04",,"-1406-04",,"T_Conquest","10Y","EM","T_Conquest","Event",,"Josh.9",
+"E_PAT172","Battle with the five kings of the Amorites","-1210-05",,"-1406-05",,"T_Conquest","10Y","EM","T_Conquest","Event",,"Josh.10.1-28",
+"E_PAT173","Conquest of Southern Canaan","-1209","-1208","-1405","-1404","T_Conquest","10Y","EY","T_Conquest","Event",,"Josh.10.29-43",
+"E_PAT174","Conquest of Northern Canaan","-1207","-1206","-1403","-1402","T_Conquest","10Y","EY","T_Conquest","Event",,"Josh.11 ","We have four years before chapter 13, so split N and S 50/50"
+"E_PAT175","Summaries of conquests","-1211","-1206","-1407","-1402",,"10Y","EY","T_Conquest","Event",,"Josh.12 ",
+"E_PAT176","Division of the land of Canaan","-1204-01",,"-1200-01",,"T_Conquest","10Y","EM","T_Conquest","Event",,"Josh.13-21","45 years after Num13-14 (vv7-10)"
+"E_PAT177","Eastern tribes return home and build an altar","-1204-02",,"-1200-02",,"T_Conquest","10Y","EM","T_Conquest","Event",,"Josh.22","Immediately after previous"
+"E_PAT178","Joshua's death","-1200",,"-1385",,"T_Conquest","10Y",,"T_Conquest","Event",,"Josh.23-24","Joshua 110, but this is of no use given no other dating for him"
+"E_PAT179","Samuel's birth","-1092",,"-1090",,"T_Judges","10Y",,"T_Judges","Event",,"1Sam.1.1-23",
+"E_PAT180","Samuel's dedication","-1089",,"-1087",,"T_Judges","10Y","EY","T_Judges","Event",,"1Sam.1.24-2.11","Age 3 seems reasonable given other events"
+"E_PAT181","Prophecies against Eli's sons","-1089","-1086","-1087","-1084","T_Judges","10Y",,"T_Judges","Event",,"1Sam.2.12-36",
+"E_PAT182","Samuel called as a prophet","-1086",,"-1084",,"T_Judges","10Y",,"T_Judges","Event",,"1Sam.3.1-18",
+"E_PAT183","Samuel recognised as a prophet","-1086","-1062","-1084","-1060","T_Judges","10Y",,"T_Judges","Event",,"1Sam.3.19-21",
+"E_PAT184","Philistines capture the Ark; Death of Eli","-1062",,"-1060",,"T_Judges","10Y",,"T_Judges","Event",,"1Sam.4-5",
+"E_PAT185","Ark returned to Israel at Kiriath Jearim","-1042",,"-1050",,"T_Judges","10Y",,"T_Judges","Event",,"1Sam.6-7.1",
+"E_PAT186","Samuel defeats the Philistines at Mizpah","-1042",,"-1050",,"T_Judges","10Y",,"T_Judges","Event",,"1Sam.7.2-17",
+"E_PAT187","Israel asks for a king","-1042",,"-1050",,"T_Judges","10Y",,"T_Judges","Event",,"1Sam.8",

Added: trunk/StepDataLoader/data/timeline/TL_Rome.csv
===================================================================
--- trunk/StepDataLoader/data/timeline/TL_Rome.csv	                        (rev 0)
+++ trunk/StepDataLoader/data/timeline/TL_Rome.csv	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,36 @@
+"ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes"
+"T_Rome","Ancient Rome","-753","476",,,"T_All",,,"T_All","Timeline",,,"Taken from House (selected items)"
+"E_RomanKingdom","Roman Kingdom","-753","-509",,,"T_Rome",,,"T_Rome","Event","Rome ruled by seven kings",,"(Not enough for a timeline?)"
+"T_RomanRepublic","Roman Republic","-508","-27",,,"T_Rome",,,"T_Rome","Timeline","Rome a republic",,
+"T_RomanEmpire","Roman Empure","-27","476",,,"T_Rome",,,"T_Rome","Timeline","Period of the Roman Empire until its fall in the west",,
+"E_Rome1","Roman capture of Jerusalem","-63",,,,"T_RomanRepublic",,,"T_RomanRepublic","Event","Pompey captures Jerusalem",,
+"E_Rome2","Julius Caesar's invasions of Britain","-55","-54",,,"T_RomanRepublic",,,"T_RomanRepublic","Event",,,
+"E_Rome3","Assassination of Julius Caesar","-44-03-15",,,,"T_RomanRepublic",,,"T_RomanRepublic","Event",,,
+"E_Rome4","Roman annexation of Egypt","-30",,,,"T_RomanRepublic",,,"T_RomanRepublic","Event",,,
+"E_Rome5","Augustus","-27","14",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome6","Tiberius","14","37",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome7","Caligula","37","41",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome8","Claudius","41","54",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome9","Nero","54","68-06-09",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome10","Galba","68-06-09","69-01-15",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome11","Otho","69-01-15","69-04-16",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome12","Vitellius","69-04-26","69-12-20",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome13","Vespasian","69-12-21","79",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome14","Titus","79","81",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome15","Domitian","81","96",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome16","Nerva","96","98",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome17","Trajan ","98","117",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome18","Hadrian","117","138",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome19","Roman annexation of Galatia","-25",,,,"T_RomanEmpire",,,"T_RomanEmpire","Event",,,
+"E_Rome20","Roman invasion of Britain","43",,,,"T_RomanEmpire",,,"T_RomanEmpire","Event",,,
+"E_Rome21","Great Fire of Rome","64",,,,"T_RomanEmpire",,,"T_RomanEmpire","Event",,,
+"E_Rome22","Destruction of Jerusalem","70",,,,"T_RomanEmpire",,,"T_RomanEmpire","Event",,,"(Needs to go into both Roman and Jewish timelines)"
+"E_Rome23","Destruction of Pompeii and Herculaneum","79",,,,"T_RomanEmpire",,,"T_RomanEmpire","Event",,,
+"E_Rome24","Revolt of the Jews in the East","132","134",,,"T_RomanEmpire",,,"T_RomanEmpire","Event",,,
+"E_Rome25","Constantine converts to Christianity",312,,,,"T_RomanEmpire",,,"T_RomanEmpire","Event",,,
+"E_Rome26","Theodosius I","379","395",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome27","Constantine I","306","337",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome28","Marcus Aurelius","161","180",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome29","Decius","249","251",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome30","Valerian","253","260",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,
+"E_Rome31","Dicocletian","284","305",,,"T_RomanEmpire",,,"T_RomanEmpire","Reign",,,

Added: trunk/StepDataLoader/lib/SuperCSV-1.52.jar
===================================================================
(Binary files differ)


Property changes on: trunk/StepDataLoader/lib/SuperCSV-1.52.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: trunk/StepDataLoader/lib/commons-dbutils-1.2.jar
===================================================================
(Binary files differ)


Property changes on: trunk/StepDataLoader/lib/commons-dbutils-1.2.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: trunk/StepDataLoader/lib/commons-dbutils_LICENSE.txt
===================================================================
--- trunk/StepDataLoader/lib/commons-dbutils_LICENSE.txt	                        (rev 0)
+++ trunk/StepDataLoader/lib/commons-dbutils_LICENSE.txt	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

Added: trunk/StepDataLoader/lib/commons-io-1.4.jar
===================================================================
(Binary files differ)


Property changes on: trunk/StepDataLoader/lib/commons-io-1.4.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: trunk/StepDataLoader/lib/commons-lang-2.4.jar
===================================================================
(Binary files differ)


Property changes on: trunk/StepDataLoader/lib/commons-lang-2.4.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: trunk/StepDataLoader/lib/commons_io_LICENSE.txt
===================================================================
--- trunk/StepDataLoader/lib/commons_io_LICENSE.txt	                        (rev 0)
+++ trunk/StepDataLoader/lib/commons_io_LICENSE.txt	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,203 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+

Added: trunk/StepDataLoader/lib/derbyclient.jar
===================================================================
(Binary files differ)


Property changes on: trunk/StepDataLoader/lib/derbyclient.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: trunk/StepDataLoader/lib/spiffy-all-0.05.jar
===================================================================
(Binary files differ)


Property changes on: trunk/StepDataLoader/lib/spiffy-all-0.05.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: trunk/StepDataLoader/lib/spiffy_LICENSE.txt
===================================================================
--- trunk/StepDataLoader/lib/spiffy_LICENSE.txt	                        (rev 0)
+++ trunk/StepDataLoader/lib/spiffy_LICENSE.txt	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,203 @@
+/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      "License" shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      "Licensor" shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      "Legal Entity" shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      "control" means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      "You" (or "Your") shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      "Source" form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      "Object" form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      "Work" shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      "Derivative Works" shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      "Contribution" shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, "submitted"
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *      "Contributor" shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a "NOTICE" text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an "AS IS" BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets "[]"
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same "printed page" as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright 2007 Kasper B. Graversen
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ */

Added: trunk/StepDataLoader/lib/supercsv_LICENSE.txt
===================================================================
--- trunk/StepDataLoader/lib/supercsv_LICENSE.txt	                        (rev 0)
+++ trunk/StepDataLoader/lib/supercsv_LICENSE.txt	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,203 @@
+/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      "License" shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      "Licensor" shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      "Legal Entity" shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      "control" means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      "You" (or "Your") shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      "Source" form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      "Object" form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      "Work" shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      "Derivative Works" shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      "Contribution" shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, "submitted"
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *      "Contributor" shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a "NOTICE" text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an "AS IS" BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets "[]"
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same "printed page" as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright 2007 Kasper B. Graversen
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ */

Added: trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/1.schema.sql
===================================================================
--- trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/1.schema.sql	                        (rev 0)
+++ trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/1.schema.sql	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,11 @@
+create schema step;
+set schema step;
+
+drop procedure step.dropIfExists;
+
+
+create procedure step.dropIfExists(tableName varchar(30))
+parameter style java
+language java
+external name 'com.tyndalehouse.step.dataloader.utils.DerbyUtils.dropIfExists';
+

Added: trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/2.scripture_referencing.sql
===================================================================
--- trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/2.scripture_referencing.sql	                        (rev 0)
+++ trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/2.scripture_referencing.sql	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,25 @@
+set schema step;
+
+/** need to define standards and whether we want to include seperate creates in each file
+ * or one file per area
+ */
+call dropIfExists('scripture_reference_map');
+create table scripture_reference_map (
+	scripture_reference_id		int NOT NULL,
+	target_id  					int NOT NULL, -- could be for eg. a timeline event, or an article, etc. no referential integrity here
+    target_type					int  NOT NULL -- description of the event, defined in enum in java code...
+);
+
+/**
+ * This tables defines the reference. An event may have several references
+ * For eg. Exodus 3:1-5,9-10 would be represented twice here...
+ */
+call dropIfExists('scripture_reference');
+create table scripture_reference (
+	scripture_reference_id		int PRIMARY KEY,
+	book_id						int NOT NULL,
+	start_verse_number			int NOT NULL,
+	end_verse_number			int				-- this may be a single verse so can be null here 
+												-- or should we put the start verse and have a neat non-nullable field? 
+);
+

Added: trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/3.timeline.sql
===================================================================
--- trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/3.timeline.sql	                        (rev 0)
+++ trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/create/3.timeline.sql	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,69 @@
+set schema step;
+
+-- TODO: add foreign key constraints...
+-- timeline_id and importance_id should be tied to the the timeline table
+
+/**
+ * the main event table that holds all the events of the timeline widget
+ *  
+ */
+call dropIfExists('event');
+create table event (
+	event_id 					int PRIMARY KEY generated by default as IDENTITY,
+	event_text_id 				varchar(20) 	NOT NULL,	
+	name 						varchar(100) 	NOT NULL,	
+	from_date 					bigint 			,				
+	to_date 					bigint,			-- nullable, may a point in time.
+	from_precision 				char(1), 		-- D/M/Y:: D=> take the whole date, M=>only month and year, Y=>only year is relevant
+	to_precision				char(1),
+	timeline_id 				int,	
+	importance_id 				int,
+	certainty 					varchar(25),	
+	flags 						varchar(50),
+	event_type_id				int,
+	description 				varchar(512),	
+	source 						varchar(512),
+	notes 						varchar(512)
+);
+
+/**
+ * Timeline table indicating different types of timelines.
+ */
+call dropIfExists('timeline');
+create table timeline (
+	timeline_id 				int PRIMARY KEY,
+	timeline_description		varchar(50),			-- TODO: this should probably be made an ID to timeline_description
+														-- table, so that we can localise, or remove this
+														-- and localise in the java layer...
+	timeline_code				varchar(50)
+);
+
+/**
+ * Timeline table indicating different types of timelines.
+ */
+call dropIfExists('event_type');
+create table event_type (
+	event_type_id 			int PRIMARY KEY,
+	event_description		varchar(50),			
+	event_code				varchar(50)
+);
+
+
+/** events may have alternative dates associated to them...
+ * 
+ */
+call dropIfExists('alternative_event_date');
+create table alternative_event_date (
+	event_id					int,
+	alternative_date_id			int
+);
+
+call dropIfExists('alternative_date');
+create table alternative_date (
+    alternative_date_id int PRIMARY KEY generated by default as identity ,
+	from_date 					date 	NOT NULL,
+	to_date 					date,
+	from_date_precision 		date,
+	to_date_precision			date
+);
+

Added: trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/drop/drop_all.sql
===================================================================
--- trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/drop/drop_all.sql	                        (rev 0)
+++ trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/drop/drop_all.sql	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,6 @@
+drop table "STEP".ALTERNATIVE_DATE;
+drop table "STEP".ALTERNATIVE_EVENT_DATE;
+drop table "STEP".EVENT;
+drop table "STEP".SCRIPTURE_REFERENCE;
+drop table "STEP".SCRIPTURE_REFERENCE_MAP; 
+drop schema "STEP" RESTRICT;

Added: trunk/StepDataLoader/sql/com/tyndalehouse/step/dataloader/sql/utils/utils.sql
===================================================================
Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/ClientDbProvider.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/ClientDbProvider.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/ClientDbProvider.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,23 @@
+package com.tyndalehouse.step.dataloader;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
+public class ClientDbProvider {
+	//TODO: shove this in a properties file
+	private static String clientConnection = "jdbc:derby:";
+
+	
+	public static Connection getConnection(String dbPath) throws SQLException {
+		String connectionString = clientConnection + dbPath;
+		System.out.println("Using connection string: " + connectionString);
+		return DriverManager.getConnection(connectionString );
+	}
+
+	public static void finaliseConnection(Connection connection) throws SQLException {
+		if(connection != null && !connection.isClosed()) {
+			connection.close();
+		}
+	}
+}

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/Dataloader.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/Dataloader.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/Dataloader.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,39 @@
+package com.tyndalehouse.step.dataloader;
+
+import java.io.IOException;
+import java.sql.SQLException;
+import java.text.ParseException;
+import java.util.Calendar;
+
+import org.apache.commons.dbutils.DbUtils;
+
+import com.tyndalehouse.step.dataloader.loaders.SchemaLoader;
+import com.tyndalehouse.step.dataloader.loaders.TimelineLoader;
+
+public class Dataloader {
+	public static void main(String args[]) throws SQLException, ClassNotFoundException, IOException, ParseException {
+		if(System.getProperty("driver") != null) {
+			DbUtils.loadDriver(System.getProperty("org.apache.derby.jdbc.ClientDriver"));
+		} else {
+			DbUtils.loadDriver("org.apache.derby.jdbc.EmbeddedDriver");	
+		}
+		
+		
+		
+	
+//		long l = -156805891185278L;
+//		Calendar c = Calendar.getInstance();
+//		c.setTimeInMillis(l);
+//		
+//		System.out.println(c.get(Calendar.ERA));
+//		System.out.println(c.get(Calendar.YEAR));
+//		System.out.println(c.get(Calendar.MONTH));
+//		System.out.println(c.get(Calendar.DAY_OF_MONTH));
+//		System.out.println(c.get(Calendar.HOUR_OF_DAY));
+//		
+		
+		new SchemaLoader().recreateAll();
+		TimelineLoader tl = new TimelineLoader();
+		tl.loadData("data/timeline");
+	}
+}

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/DbBean.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/DbBean.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/DbBean.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,60 @@
+package com.tyndalehouse.step.dataloader.beans;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
+
+public class DbBean {
+	public void appendString(StringBuffer sb, String value) {
+		if(StringUtils.isEmpty(value)) {
+			sb.append("null");
+		} else {
+			sb.append(getDbString(value));
+		}
+	}	
+
+	public void appendString(StringBuffer sb, char value) {
+		sb.append(getDbString(value));
+	}	
+
+	
+	//TODO: so much string manipulation here, need to rewrite properly at some point!
+	protected void appendString(StringBuffer event, Calendar date) {
+		if(date == null) {
+			event.append("null");
+		} else {
+			event.append(getDbDate(date));
+		}
+		
+	}
+
+	//TODO: shocking, this could be done much much better...
+	protected String getDbDate(Calendar date) {
+		StringBuffer sb = new StringBuffer();
+		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
+		
+		sb.append('\'')
+			.append(StringEscapeUtils.escapeSql(sdf.format(date.getTime())))
+			.append('\'');
+		
+		return sb.toString();
+		
+	}
+
+	public static String getDbString(Object value) {
+		StringBuffer sb = new StringBuffer();
+		
+		sb.append('\'')
+			.append(StringEscapeUtils.escapeSql(value.toString()))
+			.append('\'');
+		
+		return sb.toString();
+	}
+	
+	public void appendComma(StringBuffer event) {
+		event.append(", ");
+	}
+
+}

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/EventTypeBean.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/EventTypeBean.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/EventTypeBean.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,52 @@
+package com.tyndalehouse.step.dataloader.beans;
+
+public class EventTypeBean extends DbBean {
+	private final int eventTypeId;
+	private final String eventType;
+	private final String eventTypeDescription;
+
+	public EventTypeBean(int id, String eventType, String eventDescription) {
+		this.eventTypeId = id;
+		this.eventType = eventType;
+		this.eventTypeDescription = eventDescription;	
+	}
+
+	/**
+	 * @return the id
+	 */
+	public int getEventTypeId() {
+		return eventTypeId;
+	}
+
+	/**
+	 * @return the eventType
+	 */
+	public String getEventTypeCode() {
+		return eventType;
+	}
+
+	/**
+	 * @return the eventDescription
+	 */
+	public String getEventTypeDescription() {
+		return eventTypeDescription;
+	}
+
+	/**
+	 * returns the insert statement to fill up the event_type table
+	 * @return the insert statement
+	 */
+	public String getInsertStatement() {
+		StringBuffer statement = new StringBuffer();
+		statement.append("insert into step.event_type(event_type_id, event_code, event_description) values(")
+			.append(getEventTypeId())
+			.append(", ")
+			.append(getDbString(getEventTypeCode()))			
+			.append(", ")
+			.append(getDbString(getEventTypeDescription()))
+			.append(");");
+		
+		return statement.toString();
+
+	}
+}

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/PartialDate.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/PartialDate.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/PartialDate.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,124 @@
+package com.tyndalehouse.step.dataloader.beans;
+
+import java.text.ParseException;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+import org.apache.commons.lang.StringUtils;
+
+/**
+ * This class is the way dates are represented in the databased
+ * and they should be parsed back into this object on their way out!
+ * 
+ * The date field indicates when the event (or start of the event) took 
+ * place, the precision type indicates whether how much of the date
+ * can be trusted...
+ * 
+ * This means we can store dates such as (01/03/1900, MONTH), meaning
+ * March 1900 (and not 1st March 1900).
+ * @author CJBurrell
+ */
+public class PartialDate {
+	/**
+	 * The date to be represented (whether fully accurate or not)
+	 */
+	private final Calendar c;
+	
+	/**
+	 * The precision specifier which tells us just quite
+	 * how accurate the date is (year, month, day)
+	 * @see com.tyndalehouse.step.dataloader.beans.PrecisionType
+	 */
+	private final PrecisionType precision;
+
+	/**
+	 * Public constructor to give us a partial date.
+	 * @param c date partial reprentation of a date
+	 * @param precision precision indicating how much of the 
+	 * date can be trusted day/month/year or month/year or just year
+	 */
+	public PartialDate(final Calendar c, final PrecisionType precision) {
+		this.c = c;
+		this.precision = precision;
+	}
+	
+	//TODO: change the ParseException to something slightly better.
+	/**
+	 * Date is specified in yy-mm-dd or yyyy-mm-dd and gets parsed in to a date.
+	 * the mm and dd are optional which is what determines the precision of the date.
+	 * @param date date to be parsed as a string
+	 * @param delimiter delimiter in the date, say a - or a /
+	 * @return a PartialDate
+	 * @throws ParseException an error during the parsing of the date
+	 */
+	public static PartialDate parseDate(final String date, char delimiter) throws ParseException {
+		String[] parts;
+		Calendar c = Calendar.getInstance();
+		PrecisionType p;
+		int yearSign = 1;										// -1 for negative
+		
+		//if passed in empty, return null and be done with empty strings!
+		if(StringUtils.isEmpty(date)) {
+			return new PartialDate(null, PrecisionType.NONE);
+		}
+		
+		//the date might start with a dash, so best not to split and do it character by character?
+		if(date.charAt(0) == '-') {
+			yearSign = -1;
+			
+			//check we have more than one character left after substring:
+			if(date.length() < 2) {
+				throw new ParseException("The date " + date + " was not long enough.", 0);
+			}
+		
+			//split the remainder of the date into parts
+			parts = date.substring(1).trim().split("" + delimiter);	// ignore first character
+		} else {
+ 			parts = date.trim().split(""+delimiter);
+		}
+		
+		try {
+			//length of field determines how much of the date has been specified
+			switch(parts.length) {
+				case 0: throw new ParseException("The date " + date + " could not be parsed.", 0);
+				case 1:
+					//only the year is specified, so use 1st of Jan Year
+					c.set(Integer.parseInt(parts[0]), 1, 1);
+					p = PrecisionType.YEAR;
+					if(yearSign == -1) { c.set(Calendar.ERA, GregorianCalendar.BC); }
+					c.set(Calendar.HOUR_OF_DAY, 0);
+					c.set(Calendar.MINUTE, 0);
+					break;
+				case 2: 
+					c.set(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]), 1);
+					p = PrecisionType.MONTH;
+					break;
+				case 3:
+					c.set(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]), Integer.parseInt(parts[2]));
+					p = PrecisionType.DAY;
+					break;
+				default: throw new ParseException("Too many parts to the date: ", 0);
+					
+			}
+		} catch(NumberFormatException nfe) {
+			throw new ParseException("Could not parse date into year, month or day.", 0);
+		}
+
+		c.set(Calendar.HOUR_OF_DAY, 0);
+		c.set(Calendar.MINUTE, 0);
+		if(yearSign == -1) { c.set(Calendar.ERA, GregorianCalendar.BC); }
+		return new PartialDate(c, p);
+	}
+
+	public Calendar getDate() {
+		return c;
+	}
+	
+	public PrecisionType getPrecision() {
+		return precision;
+	}
+}
+
+

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/PrecisionType.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/PrecisionType.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/PrecisionType.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,44 @@
+package com.tyndalehouse.step.dataloader.beans;
+
+public enum PrecisionType {
+	/**
+	 * This means the associated date is only meaningful until the year
+	 */
+	YEAR ('Y'),
+	
+	/**
+	 * This means the month and year are to be taken as accurate 
+	 */
+	MONTH ('M'),
+	
+	/**
+	 * The day, month and year are accurate
+	 */
+	DAY ('D'),
+	
+	//TODO: should this actually be null that goes into the database? probably yes...
+	/**
+	 * No date available so, we'll set to none.
+	 */
+	NONE ('N')
+	; 
+	
+	/**
+	 * precision type
+	 */
+	private final char pt;
+
+	private PrecisionType(char pt) {
+		this.pt = pt;
+		
+	}
+
+	/**
+	 * @return the pt
+	 */
+	public char getShortCode() {
+		return pt;
+	}
+	
+	
+}

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/TimelineBean.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/TimelineBean.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/TimelineBean.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,54 @@
+package com.tyndalehouse.step.dataloader.beans;
+
+/**
+ * Timeline bean represents the different timelines on which events can be found...
+ * @author CJBurrell
+ *
+ */
+public class TimelineBean extends DbBean {
+	private final int timelineId;
+	private final String timelineDescription;
+	private final String timelineCode;
+	
+	public TimelineBean(int timelineId, String timelineDescription, String timelineCode) {
+		this.timelineId = timelineId;
+		this.timelineDescription = timelineDescription;
+		this.timelineCode = timelineCode;
+	}
+	
+	/**
+	 * @return the timelineId
+	 */
+	public int getTimelineId() {
+		return timelineId;
+	}
+
+	/**
+	 * @return the timelineDescription
+	 */
+	public String getTimelineDescription() {
+		return timelineDescription;
+	}
+
+	/**
+	 * @return the timelineCode
+	 */
+	public String getTimelineCode() {
+		return timelineCode;
+	}
+
+	public String getInsertStatement() {
+		StringBuffer statement = new StringBuffer();
+		statement.append("insert into step.timeline(timeline_id, timeline_code, timeline_description) values(")
+			.append(getTimelineId())
+			.append(", ")
+			.append(getDbString(getTimelineCode()))			
+			.append(", ")
+			.append(getDbString(getTimelineDescription()))
+			.append(");");
+		
+		return statement.toString();
+	}
+}
+
+

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/TimelineEventBean.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/TimelineEventBean.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/beans/TimelineEventBean.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,272 @@
+package com.tyndalehouse.step.dataloader.beans;
+
+import java.text.ParseException;
+import java.util.Calendar;
+import java.util.HashMap;
+
+//TODO: Refactor eventually so use as we load data out of the database...
+public class TimelineEventBean extends DbBean {
+	private String ID;	
+	private String name;	
+	private String from;
+	private String to;	
+	private String from2;	
+	private String to2;
+	private String importance;	
+	private String certainty;	
+	private String flags;
+	private String timeline;	
+	private String type;
+	private String description;	
+	private String refs;
+	private String source;
+	private String notes;
+
+	private static final String eventInsert = "insert into step.event(" +
+		"event_text_id, name, from_date, to_date, from_precision, to_precision, timeline_id, importance_id, certainty, " +
+		"flags, event_type_id, description, source, notes) values(" +
+		"?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
+
+	
+	public static String getInsertStatement() {
+		return eventInsert;
+		
+		
+//			HashMap<String, TimelineBean> timelines, 
+//			HashMap<String, EventTypeBean> eventTypes) throws ParseException {
+//		StringBuffer event = new StringBuffer(eventInsert);
+//		
+//		PartialDate from = PartialDate.parseDate(getFrom(), '-');
+//		PartialDate to = PartialDate.parseDate(getTo(), '-');
+//
+//		//this will be interesting: TODO: add alternative dates
+//		PartialDate from2 = PartialDate.parseDate(getFrom2(), '-');
+//		PartialDate to2 = PartialDate.parseDate(getTo2(), '-');
+//		
+//		//TODO: refactor so that this is way less verbose!
+//		appendString(event, getID());
+//		appendComma(event);
+//		appendString(event, getName());
+//		appendComma(event);
+//		
+//		appendString(event, from.getDate());
+//		appendComma(event);
+//		appendString(event, to.getDate());
+//		appendComma(event);
+//		appendString(event, from.getPrecision().getShortCode());
+//		appendComma(event);
+//		appendString(event, to.getPrecision().getShortCode());
+//		appendComma(event);
+//		
+//		//importance_id refers to a table that may not be in the timeline table, but let's assume
+//		//for now, and refactor later by setting a flag...
+//		event.append(timelines.get(getTimeline()).getTimelineId());
+//		appendComma(event);
+//		event.append(timelines.get(getImportance()).getTimelineId());
+//		appendComma(event);
+//
+//		appendString(event, getCertainty());
+//		appendComma(event);
+//		appendString(event, getFlags());
+//		appendComma(event);
+//		
+//		event.append(eventTypes.get(getType()).getEventTypeId());
+//		appendComma(event);
+//		
+//		appendString(event, getDescription());
+//		appendComma(event);
+//		appendString(event, getSource());
+//		appendComma(event);
+//		appendString(event, getNotes());
+//		
+//		event.append(");");
+//		
+//		return event.toString();
+	}
+
+
+
+
+
+	/**
+	 * @return the notes
+	 */
+	public String getNotes() {
+		return notes;
+	}
+	/**
+	 * @param notes the notes to set
+	 */
+	public void setNotes(String notes) {
+		this.notes = notes;
+	}
+	/**
+	 * @return the iD
+	 */
+	public String getID() {
+		return ID;
+	}
+	/**
+	 * @param id the iD to set
+	 */
+	public void setID(String id) {
+		ID = id;
+	}
+	/**
+	 * @return the name
+	 */
+	public String getName() {
+		return name;
+	}
+	/**
+	 * @param name the name to set
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+	/**
+	 * @return the from
+	 */
+	public String getFrom() {
+		return from;
+	}
+	/**
+	 * @param from the from to set
+	 */
+	public void setFrom(String from) {
+		this.from = from;
+	}
+	/**
+	 * @return the to
+	 */
+	public String getTo() {
+		return to;
+	}
+	/**
+	 * @param to the to to set
+	 */
+	public void setTo(String to) {
+		this.to = to;
+	}
+	/**
+	 * @return the from2
+	 */
+	public String getFrom2() {
+		return from2;
+	}
+	/**
+	 * @param from2 the from2 to set
+	 */
+	public void setFrom2(String from2) {
+		this.from2 = from2;
+	}
+	/**
+	 * @return the to2
+	 */
+	public String getTo2() {
+		return to2;
+	}
+	/**
+	 * @param to2 the to2 to set
+	 */
+	public void setTo2(String to2) {
+		this.to2 = to2;
+	}
+	/**
+	 * @return the importance
+	 */
+	public String getImportance() {
+		return importance;
+	}
+	/**
+	 * @param importance the importance to set
+	 */
+	public void setImportance(String importance) {
+		this.importance = importance;
+	}
+	/**
+	 * @return the certainty
+	 */
+	public String getCertainty() {
+		return certainty;
+	}
+	/**
+	 * @param certainty the certainty to set
+	 */
+	public void setCertainty(String certainty) {
+		this.certainty = certainty;
+	}
+	/**
+	 * @return the flags
+	 */
+	public String getFlags() {
+		return flags;
+	}
+	/**
+	 * @param flags the flags to set
+	 */
+	public void setFlags(String flags) {
+		this.flags = flags;
+	}
+	/**
+	 * @return the timeline
+	 */
+	public String getTimeline() {
+		return timeline;
+	}
+	/**
+	 * @param timeline the timeline to set
+	 */
+	public void setTimeline(String timeline) {
+		this.timeline = timeline;
+	}
+	/**
+	 * @return the type
+	 */
+	public String getType() {
+		return type;
+	}
+	/**
+	 * @param type the type to set
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+	/**
+	 * @return the description
+	 */
+	public String getDescription() {
+		return description;
+	}
+	/**
+	 * @param description the description to set
+	 */
+	public void setDescription(String description) {
+		this.description = description;
+	}
+	/**
+	 * @return the refs
+	 */
+	public String getRefs() {
+		return refs;
+	}
+	/**
+	 * @param refs the refs to set
+	 */
+	public void setRefs(String refs) {
+		this.refs = refs;
+	}
+	/**
+	 * @return the source
+	 */
+	public String getSource() {
+		return source;
+	}
+	/**
+	 * @param source the source to set
+	 */
+	public void setSource(String source) {
+		this.source = source;
+	}
+	
+}

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/AbstractLoader.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/AbstractLoader.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/AbstractLoader.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,67 @@
+package com.tyndalehouse.step.dataloader.loaders;
+
+import java.io.File;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.apache.commons.dbutils.DbUtils;
+import org.apache.commons.dbutils.QueryRunner;
+import org.apache.commons.io.FileUtils;
+
+import com.tyndalehouse.step.dataloader.ClientDbProvider;
+
+public abstract class AbstractLoader {
+	final protected Connection c;
+	
+	public AbstractLoader() throws SQLException {
+		
+		c = ClientDbProvider.getConnection(System.getProperty("db.location"));
+	}
+	
+
+	protected void executeFile(final String filename) throws IOException, SQLException {
+		executeFile(filename, false);
+	}
+	
+	//TODO: there must be a better way, since at the moment it doesn't cope with 
+	// semi colons in the sql file comments., nor i guess in default values and so on...
+	protected void executeFile(final String filename, boolean allowErrors) throws IOException, SQLException {
+		String sql = FileUtils.readFileToString(new File(filename));
+		runSQLText(sql, allowErrors);
+	}
+
+	protected void executeSQLText(final String sqlText)  throws SQLException {
+		runSQLText(sqlText, false);
+	}
+	
+	protected void runSQLText(final String sqlText, boolean allowErrors) throws SQLException {
+		QueryRunner qr = new QueryRunner();
+				
+		String[] statements = sqlText.split(";");
+		for(String s : statements) {
+			if(s.trim().length() != 0) {
+				try {
+					qr.update(c, s.replace("\n", " "));
+				} catch(SQLException ex) {
+					System.err.println(ex.getMessage());
+					if(!allowErrors) {
+						throw ex;
+					}
+				}
+			}
+		}
+	}
+	
+	protected void error(String errorMsg) {
+		error(errorMsg, true);
+	}
+
+	private void error(String errorMsg, boolean exit) {
+		System.out.println("errorMsg");
+		if(exit) {
+			System.exit(-1);
+		}
+	}
+
+}

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/SchemaLoader.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/SchemaLoader.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/SchemaLoader.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,20 @@
+package com.tyndalehouse.step.dataloader.loaders;
+
+import java.io.IOException;
+import java.sql.SQLException;
+
+
+public class SchemaLoader extends AbstractLoader {
+	
+	public SchemaLoader() throws SQLException {
+		super();
+	}
+	
+	public SchemaLoader recreateAll() throws IOException, SQLException {		
+		executeFile("sql/com/tyndalehouse/step/dataloader/sql/create/1.schema.sql", true);
+		executeFile("sql/com/tyndalehouse/step/dataloader/sql/create/2.scripture_referencing.sql");
+		executeFile("sql/com/tyndalehouse/step/dataloader/sql/create/3.timeline.sql");
+		return this;
+	}
+
+}

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/TimelineLoader.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/TimelineLoader.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/loaders/TimelineLoader.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,210 @@
+package com.tyndalehouse.step.dataloader.loaders;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.sql.Date;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.List;
+
+import org.apache.commons.dbutils.DbUtils;
+import org.supercsv.io.CsvBeanReader;
+import org.supercsv.io.ICsvBeanReader;
+import org.supercsv.prefs.CsvPreference;
+
+import com.tyndalehouse.step.dataloader.beans.EventTypeBean;
+import com.tyndalehouse.step.dataloader.beans.PartialDate;
+import com.tyndalehouse.step.dataloader.beans.TimelineBean;
+import com.tyndalehouse.step.dataloader.beans.TimelineEventBean;
+
+
+public class TimelineLoader extends AbstractLoader {
+	private HashMap<String, TimelineBean> timelines;
+	private HashMap<String, EventTypeBean> eventTypes;
+	
+	public TimelineLoader() throws SQLException {
+		super();
+	}
+	
+	/**
+	 * Reads the timeline directory into beans...
+	 * @param directoryPath directory path
+	 * @throws FileNotFoundException the directory specified was not found
+	 * @throws IOException an error occured while reading the data
+	 */
+	private List<TimelineEventBean> readDataFromTimelineDirectory(String directoryPath)
+			throws FileNotFoundException, IOException {
+		File directory = new File(directoryPath);
+		
+		if(!directory.isDirectory()) {
+			error("The directory specified is not a valid directory");
+		}
+		
+		//then get list of files in directory
+		File[] listOfFiles = directory.listFiles();
+		List<TimelineEventBean> events = new ArrayList<TimelineEventBean>();
+		TimelineEventBean tb;
+		
+		//each file should be its own CSVObject
+		for(File f : listOfFiles) {
+			System.out.print(String.format("%s", f.getName()));
+			ICsvBeanReader inFile = new CsvBeanReader(new FileReader(f), CsvPreference.EXCEL_PREFERENCE);
+			final String[] header = inFile.getCSVHeader(true);
+			int count = 0;
+			
+			//add processors to aid conversion?
+			while( (tb = inFile.read(TimelineEventBean.class, header)) != null) {
+		        events.add(tb);
+		        count++;
+		      }
+		
+			System.out.println(String.format("\t\t\t %d events - READ", count));
+		}
+		
+		return events;
+	}
+
+	/**
+	 * Adds the timeline to the hashmap passed in, assuming it is not already in there
+	 * This is just a helper function really
+	 * @param timelineCode
+	 */
+	public void addTimelineIfNotExists(final String timelineCode) {
+		if(!timelines.containsKey(timelineCode)) {
+			//debatable as to whether or not we want to set the id here...
+			TimelineBean tb = new TimelineBean(timelines.size() + 1, timelineCode, timelineCode);
+			timelines.put(timelineCode, tb);
+		} 
+	}
+
+	
+	private void addEventTypeIfNotExists(final String eventType) {
+		if(!eventTypes.containsKey(eventType)) {
+			//debatable as to whether or not we want to set the id here...
+			EventTypeBean tb = new EventTypeBean(eventTypes.size() + 1, eventType, eventType);
+			eventTypes.put(eventType, tb);
+		} 
+	}
+	
+	/**
+	 * main entry function to read in the timeline data into the database
+	 * @param directoryPath path to the timeline directory
+	 * @throws SQLException sql exception occuring when trying to load the data 
+	 * @throws IOException unable to read the timeline from the disk
+	 * @throws ParseException unable to parse dates contained in timeline source files
+	 */
+	public void loadData(String directoryPath) throws SQLException, IOException, ParseException {
+		List<TimelineEventBean> events = readDataFromTimelineDirectory(directoryPath);
+
+		//first parse - get all the different timeline and populate timeline table
+		//also add what's in the importance field in case it's not there already
+		populateTimelineTable(events);
+		populateEventTypeTable(events);
+		populateEventsTable(events);
+	}
+
+	private void setDate(PreparedStatement ps, int index, PartialDate d) throws SQLException {
+		if(d == null || d.getDate() == null) {
+			ps.setNull(index, Types.BIGINT);
+		} else {
+			ps.setLong(index, d.getDate().getTimeInMillis());
+		}
+	}
+	
+	private void setString(PreparedStatement ps, int index, String value) throws SQLException {
+		if(value == null || value.length() == 0) {
+			ps.setNull(index, Types.VARCHAR);
+		} else {
+			ps.setString(index, value);
+		}
+	}
+	
+	//TODO: rewrite to use prepared statements instead!
+	private void populateEventsTable(List<TimelineEventBean> events) throws SQLException, ParseException {
+		PreparedStatement ps = c.prepareStatement(TimelineEventBean.getInsertStatement());
+		
+		try {				
+		for(TimelineEventBean event : events) {
+				System.out.println(event.getName() + " " + event.getID() + " " + event.getTimeline());
+			
+				PartialDate from = PartialDate.parseDate(event.getFrom(), '-');
+				PartialDate to = PartialDate.parseDate(event.getTo(), '-');
+		
+				//this will be interesting: TODO: add alternative dates
+				PartialDate from2 = PartialDate.parseDate(event.getFrom2(), '-');
+				PartialDate to2 = PartialDate.parseDate(event.getTo2(), '-');
+
+				setString(ps, 1, event.getID()); //	event_text_id 
+				setString(ps, 2, event.getName()); //	name 
+				setDate(ps, 3, from); //	from_date 
+				setDate(ps, 4, to); //	to_date
+				setString(ps, 5, ""+from.getPrecision().getShortCode()); //	from_precision 
+				setString(ps, 6, ""+to.getPrecision().getShortCode()); //	to_precision
+				ps.setInt(7, timelines.get(event.getTimeline()).getTimelineId()); //	timeline_id 
+				ps.setInt(8, timelines.get(event.getImportance()).getTimelineId()); //	importance_id 
+				setString(ps, 9, event.getCertainty()); //	certainty
+				setString(ps, 10, event.getFlags()); //	flags
+				ps.setInt(11, eventTypes.get(event.getType()).getEventTypeId()); //	event_type_id 
+				setString(ps, 12, event.getDescription()); //	description
+				setString(ps, 13, event.getSource()); //	source 
+				setString(ps, 14, event.getNotes()); //	notes
+					
+				ps.addBatch();
+				
+				try {
+					ps.executeBatch();
+				} catch(SQLException ex) {
+					System.err.println(ex.getMessage());
+					ex.printStackTrace();
+				}
+			}
+		
+			//int[] results = ps.executeBatch();
+			
+		} catch(SQLException ex) {
+			//TODO: get some proper logging framework in there...
+			//output warnings here...
+			System.err.println(ex.getMessage());
+			ex.printStackTrace();
+			
+		}
+	}
+
+	/**
+	 * populates the timeline table, ie. the different timelines
+	 * @param events the list of all the events to be uploaded.
+	 * @throws SQLException error running the sql statement 
+	 */
+	private void populateTimelineTable(final List<TimelineEventBean> events) throws SQLException {
+		timelines = new HashMap<String, TimelineBean>();
+		
+		for(TimelineEventBean event : events) {
+			addTimelineIfNotExists(event.getTimeline());
+			addTimelineIfNotExists(event.getImportance());
+		}
+		
+		for(TimelineBean timeline : timelines.values()) {
+			executeSQLText(timeline.getInsertStatement());
+		}
+	}
+	private void populateEventTypeTable(List<TimelineEventBean> events) throws SQLException {
+		eventTypes = new HashMap<String, EventTypeBean>();
+		
+		for(TimelineEventBean event : events) {
+			addEventTypeIfNotExists(event.getType());
+		}
+		
+		for(EventTypeBean eventType: eventTypes.values()) {
+			executeSQLText(eventType.getInsertStatement());
+		}		
+	}
+
+}
+

Added: trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/utils/DerbyUtils.java
===================================================================
--- trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/utils/DerbyUtils.java	                        (rev 0)
+++ trunk/StepDataLoader/src/com/tyndalehouse/step/dataloader/utils/DerbyUtils.java	2009-11-10 22:52:18 UTC (rev 20)
@@ -0,0 +1,28 @@
+package com.tyndalehouse.step.dataloader.utils;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public class DerbyUtils {
+	
+	//TODO: optimize: creating a new connection each time sounds like a waste of time...
+	public static void dropIfExists(String tableName) throws SQLException {
+		Connection conn = DriverManager.getConnection("jdbc:default:connection");
+		
+		PreparedStatement exists = conn.prepareStatement("select count(*) from sys.systables where tablename = upper('" + tableName + "')");
+		ResultSet exRs = exists.executeQuery();
+		
+		exRs.next();
+		//get count out:
+		int count = exRs.getInt(1);
+		if(count > 0) {
+			System.out.println("Dropping table " + tableName);
+			PreparedStatement s = conn.prepareStatement("drop table " + tableName);	
+			s.executeUpdate();
+		}		
+		conn.close();
+	}
+}




More information about the Tynstep-svn mailing list