[Tynstep-svn] r109 - in trunk: . step-dataloader step-dataloader/.settings step-dataloader/src step-dataloader/src/main step-dataloader/src/main/java step-dataloader/src/main/java/com step-dataloader/src/main/java/com/tyndalehouse step-dataloader/src/main/java/com/tyndalehouse/step step-dataloader/src/main/java/com/tyndalehouse/step/dataloader step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/common step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/utils step-dataloader/src/main/resources step-dataloader/src/main/resources/data step-dataloader/src/main/resources/data/timeline step-dataloader/src/main/resources/sql step-dataloader/src/main/resources/sql/com step-dataloader/src/main/resources/sql/com/tyndalehouse step-dataloader/src/main/resources/sql/com/tyndalehouse/step step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data

ChrisBurrell at crosswire.org ChrisBurrell at crosswire.org
Wed Apr 14 14:29:50 MST 2010


Author: ChrisBurrell
Date: 2010-04-14 14:29:50 -0700 (Wed, 14 Apr 2010)
New Revision: 109

Added:
   trunk/step-dataloader/
   trunk/step-dataloader/.checkstyle
   trunk/step-dataloader/.classpath
   trunk/step-dataloader/.fbprefs
   trunk/step-dataloader/.project
   trunk/step-dataloader/.settings/
   trunk/step-dataloader/.settings/org.eclipse.jdt.core.prefs
   trunk/step-dataloader/.settings/org.maven.ide.eclipse.prefs
   trunk/step-dataloader/pom.xml
   trunk/step-dataloader/src/
   trunk/step-dataloader/src/main/
   trunk/step-dataloader/src/main/java/
   trunk/step-dataloader/src/main/java/com/
   trunk/step-dataloader/src/main/java/com/tyndalehouse/
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/ClientDbProvider.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/Dataloader.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/DbBean.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/EventTypeBean.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/PartialDate.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/PrecisionType.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TargetTypeEnum.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TimelineBean.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TimelineEventBean.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/common/
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/common/DateParsingException.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/AbstractLoader.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/SchemaLoader.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/TimelineLoader.java
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/utils/
   trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/utils/DerbyUtils.java
   trunk/step-dataloader/src/main/resources/
   trunk/step-dataloader/src/main/resources/data/
   trunk/step-dataloader/src/main/resources/data/timeline/
   trunk/step-dataloader/src/main/resources/data/timeline/TL_Africa.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_Americas.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_ArchCult.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_Asia.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_EarlyChurch.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_Egypt.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_Europe.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_ExileAndReturn.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_Global.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_Intertestamental.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_Jesus.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_Monarchy.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_NTChurch.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_OTNeighbours.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_PatriarchsToJudges.csv
   trunk/step-dataloader/src/main/resources/data/timeline/TL_Rome.csv
   trunk/step-dataloader/src/main/resources/data/timeline_reference_corrections.csv
   trunk/step-dataloader/src/main/resources/sql/
   trunk/step-dataloader/src/main/resources/sql/com/
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/1.schema.sql
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/2.scripture_referencing.sql
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/3.timeline.sql
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/1.timeband_units.sql
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/2.timeband_setup.sql
   trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/3.sub_timeband_units.sql
   trunk/step-dataloader/src/main/webapp/
Log:
committing dataloader

Added: trunk/step-dataloader/.checkstyle
===================================================================
--- trunk/step-dataloader/.checkstyle	                        (rev 0)
+++ trunk/step-dataloader/.checkstyle	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true">
+  <local-check-config name="step-checks" location="/step-parent/step-checks.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="all" enabled="true" check-config-name="step-checks" local="true">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+  <filter name="NonSrcDirs" enabled="true"/>
+</fileset-config>

Added: trunk/step-dataloader/.classpath
===================================================================
--- trunk/step-dataloader/.classpath	                        (rev 0)
+++ trunk/step-dataloader/.classpath	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Added: trunk/step-dataloader/.fbprefs
===================================================================
--- trunk/step-dataloader/.fbprefs	                        (rev 0)
+++ trunk/step-dataloader/.fbprefs	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,127 @@
+#FindBugs User Preferences
+#Mon Apr 05 12:13:43 BST 2010
+detectorAppendingToAnObjectOutputStream=AppendingToAnObjectOutputStream|true
+detectorBadAppletConstructor=BadAppletConstructor|false
+detectorBadResultSetAccess=BadResultSetAccess|true
+detectorBadSyntaxForRegularExpression=BadSyntaxForRegularExpression|true
+detectorBadUseOfReturnValue=BadUseOfReturnValue|true
+detectorBadlyOverriddenAdapter=BadlyOverriddenAdapter|true
+detectorBooleanReturnNull=BooleanReturnNull|true
+detectorCallToUnsupportedMethod=CallToUnsupportedMethod|false
+detectorCheckImmutableAnnotation=CheckImmutableAnnotation|true
+detectorCheckTypeQualifiers=CheckTypeQualifiers|true
+detectorCloneIdiom=CloneIdiom|true
+detectorComparatorIdiom=ComparatorIdiom|true
+detectorConfusedInheritance=ConfusedInheritance|true
+detectorConfusionBetweenInheritedAndOuterMethod=ConfusionBetweenInheritedAndOuterMethod|true
+detectorCrossSiteScripting=CrossSiteScripting|true
+detectorDoInsideDoPrivileged=DoInsideDoPrivileged|true
+detectorDontCatchIllegalMonitorStateException=DontCatchIllegalMonitorStateException|true
+detectorDontIgnoreResultOfPutIfAbsent=DontIgnoreResultOfPutIfAbsent|true
+detectorDontUseEnum=DontUseEnum|true
+detectorDroppedException=DroppedException|true
+detectorDumbMethodInvocations=DumbMethodInvocations|true
+detectorDumbMethods=DumbMethods|true
+detectorDuplicateBranches=DuplicateBranches|true
+detectorEmptyZipFileEntry=EmptyZipFileEntry|true
+detectorEqualsOperandShouldHaveClassCompatibleWithThis=EqualsOperandShouldHaveClassCompatibleWithThis|true
+detectorFinalizerNullsFields=FinalizerNullsFields|true
+detectorFindBadCast2=FindBadCast2|true
+detectorFindBadForLoop=FindBadForLoop|true
+detectorFindCircularDependencies=FindCircularDependencies|false
+detectorFindDeadLocalStores=FindDeadLocalStores|true
+detectorFindDoubleCheck=FindDoubleCheck|true
+detectorFindEmptySynchronizedBlock=FindEmptySynchronizedBlock|true
+detectorFindFieldSelfAssignment=FindFieldSelfAssignment|true
+detectorFindFinalizeInvocations=FindFinalizeInvocations|true
+detectorFindFloatEquality=FindFloatEquality|true
+detectorFindHEmismatch=FindHEmismatch|true
+detectorFindInconsistentSync2=FindInconsistentSync2|true
+detectorFindJSR166LockMonitorenter=FindJSR166LockMonitorenter|true
+detectorFindLocalSelfAssignment2=FindLocalSelfAssignment2|true
+detectorFindMaskedFields=FindMaskedFields|true
+detectorFindMismatchedWaitOrNotify=FindMismatchedWaitOrNotify|true
+detectorFindNakedNotify=FindNakedNotify|true
+detectorFindNonSerializableStoreIntoSession=FindNonSerializableStoreIntoSession|true
+detectorFindNonSerializableValuePassedToWriteObject=FindNonSerializableValuePassedToWriteObject|true
+detectorFindNonShortCircuit=FindNonShortCircuit|true
+detectorFindNullDeref=FindNullDeref|true
+detectorFindNullDerefsInvolvingNonShortCircuitEvaluation=FindNullDerefsInvolvingNonShortCircuitEvaluation|true
+detectorFindOpenStream=FindOpenStream|true
+detectorFindPuzzlers=FindPuzzlers|true
+detectorFindRefComparison=FindRefComparison|true
+detectorFindReturnRef=FindReturnRef|true
+detectorFindRunInvocations=FindRunInvocations|true
+detectorFindSelfComparison=FindSelfComparison|true
+detectorFindSelfComparison2=FindSelfComparison2|true
+detectorFindSleepWithLockHeld=FindSleepWithLockHeld|true
+detectorFindSpinLoop=FindSpinLoop|true
+detectorFindSqlInjection=FindSqlInjection|true
+detectorFindTwoLockWait=FindTwoLockWait|true
+detectorFindUncalledPrivateMethods=FindUncalledPrivateMethods|true
+detectorFindUnconditionalWait=FindUnconditionalWait|true
+detectorFindUninitializedGet=FindUninitializedGet|true
+detectorFindUnrelatedTypesInGenericContainer=FindUnrelatedTypesInGenericContainer|true
+detectorFindUnreleasedLock=FindUnreleasedLock|true
+detectorFindUnsatisfiedObligation=FindUnsatisfiedObligation|true
+detectorFindUnsyncGet=FindUnsyncGet|true
+detectorFindUselessControlFlow=FindUselessControlFlow|true
+detectorFormatStringChecker=FormatStringChecker|true
+detectorHugeSharedStringConstants=HugeSharedStringConstants|true
+detectorIDivResultCastToDouble=IDivResultCastToDouble|true
+detectorIncompatMask=IncompatMask|true
+detectorInconsistentAnnotations=InconsistentAnnotations|true
+detectorInefficientMemberAccess=InefficientMemberAccess|false
+detectorInefficientToArray=InefficientToArray|true
+detectorInfiniteLoop=InfiniteLoop|true
+detectorInfiniteRecursiveLoop=InfiniteRecursiveLoop|true
+detectorInfiniteRecursiveLoop2=InfiniteRecursiveLoop2|false
+detectorInheritanceUnsafeGetResource=InheritanceUnsafeGetResource|true
+detectorInitializationChain=InitializationChain|true
+detectorInstantiateStaticClass=InstantiateStaticClass|true
+detectorInvalidJUnitTest=InvalidJUnitTest|true
+detectorIteratorIdioms=IteratorIdioms|true
+detectorLazyInit=LazyInit|true
+detectorLoadOfKnownNullValue=LoadOfKnownNullValue|true
+detectorLostLoggerDueToWeakReference=LostLoggerDueToWeakReference|true
+detectorMethodReturnCheck=MethodReturnCheck|true
+detectorMultithreadedInstanceAccess=MultithreadedInstanceAccess|true
+detectorMutableLock=MutableLock|true
+detectorMutableStaticFields=MutableStaticFields|true
+detectorNaming=Naming|true
+detectorNumberConstructor=NumberConstructor|true
+detectorOverridingEqualsNotSymmetrical=OverridingEqualsNotSymmetrical|true
+detectorPreferZeroLengthArrays=PreferZeroLengthArrays|true
+detectorPublicSemaphores=PublicSemaphores|false
+detectorQuestionableBooleanAssignment=QuestionableBooleanAssignment|true
+detectorReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass=ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass|true
+detectorReadReturnShouldBeChecked=ReadReturnShouldBeChecked|true
+detectorRedundantInterfaces=RedundantInterfaces|true
+detectorRepeatedConditionals=RepeatedConditionals|true
+detectorRuntimeExceptionCapture=RuntimeExceptionCapture|true
+detectorSerializableIdiom=SerializableIdiom|true
+detectorStartInConstructor=StartInConstructor|true
+detectorStaticCalendarDetector=StaticCalendarDetector|true
+detectorStringConcatenation=StringConcatenation|true
+detectorSuperfluousInstanceOf=SuperfluousInstanceOf|true
+detectorSuspiciousThreadInterrupted=SuspiciousThreadInterrupted|true
+detectorSwitchFallthrough=SwitchFallthrough|true
+detectorSynchronizeAndNullCheckField=SynchronizeAndNullCheckField|true
+detectorSynchronizeOnClassLiteralNotGetClass=SynchronizeOnClassLiteralNotGetClass|true
+detectorSynchronizingOnContentsOfFieldToProtectField=SynchronizingOnContentsOfFieldToProtectField|true
+detectorURLProblems=URLProblems|true
+detectorUncallableMethodOfAnonymousClass=UncallableMethodOfAnonymousClass|true
+detectorUnnecessaryMath=UnnecessaryMath|true
+detectorUnreadFields=UnreadFields|true
+detectorUseObjectEquals=UseObjectEquals|false
+detectorUselessSubclassMethod=UselessSubclassMethod|false
+detectorVarArgsProblems=VarArgsProblems|true
+detectorVolatileUsage=VolatileUsage|true
+detectorWaitInLoop=WaitInLoop|true
+detectorWrongMapIterator=WrongMapIterator|true
+detectorXMLFactoryBypass=XMLFactoryBypass|true
+detector_threshold=2
+effort=default
+filter_settings=Medium|BAD_PRACTICE,CORRECTNESS,MT_CORRECTNESS,PERFORMANCE,STYLE|false
+filter_settings_neg=MALICIOUS_CODE,NOISE,I18N,SECURITY,EXPERIMENTAL|
+run_at_full_build=true

Added: trunk/step-dataloader/.project
===================================================================
--- trunk/step-dataloader/.project	                        (rev 0)
+++ trunk/step-dataloader/.project	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>step-dataloader</name>
+	<comment>NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
+	</natures>
+</projectDescription>

Added: trunk/step-dataloader/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/step-dataloader/.settings/org.eclipse.jdt.core.prefs	                        (rev 0)
+++ trunk/step-dataloader/.settings/org.eclipse.jdt.core.prefs	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,10 @@
+#Mon Apr 05 11:59:37 BST 2010
+eclipse.preferences.version=1
+encoding//src/main/java=iso-8859-1
+encoding//src/main/resources=iso-8859-1
+encoding//src/test/java=iso-8859-1
+encoding//src/test/resources=iso-8859-1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.5

Added: trunk/step-dataloader/.settings/org.maven.ide.eclipse.prefs
===================================================================
--- trunk/step-dataloader/.settings/org.maven.ide.eclipse.prefs	                        (rev 0)
+++ trunk/step-dataloader/.settings/org.maven.ide.eclipse.prefs	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,9 @@
+#Mon Apr 05 11:59:34 BST 2010
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+skipCompilerPlugin=true
+version=1

Added: trunk/step-dataloader/pom.xml
===================================================================
--- trunk/step-dataloader/pom.xml	                        (rev 0)
+++ trunk/step-dataloader/pom.xml	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,75 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<parent>
+		<groupId>com.tyndalehouse</groupId>
+		<artifactId>step-parent</artifactId>
+		<version>1.0-SNAPSHOT</version>
+		<relativePath>..</relativePath>
+	</parent>
+
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>com.tyndalehouse</groupId>
+	<artifactId>step-dataloader</artifactId>
+	<packaging>jar</packaging>
+	<name>step-dataloader</name>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>exec-maven-plugin</artifactId>
+				<configuration>
+					<mainClass>com.tyndalehouse.step.dataloader.Dataloader</mainClass>
+					<systemProperties>
+						<systemProperty>
+							<key>db.location</key>
+							<value>${db.directory}</value>
+						</systemProperty>
+					</systemProperties>
+					<classpathScope>runtime</classpathScope>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+
+		<dependency>
+			<groupId>org.crosswire</groupId>
+			<artifactId>jsword</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>commons-dbutils</groupId>
+			<artifactId>commons-dbutils</artifactId>
+			<version>1.3</version>
+		</dependency>
+
+		<dependency>
+			<groupId>commons-io</groupId>
+			<artifactId>commons-io</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>commons-lang</groupId>
+			<artifactId>commons-lang</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>net.sf.opencsv</groupId>
+			<artifactId>opencsv</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.derby</groupId>
+			<artifactId>derbyclient</artifactId>
+			<scope>runtime</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.derby</groupId>
+			<artifactId>derby</artifactId>
+		</dependency>
+
+	</dependencies>
+</project>

Added: trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/ClientDbProvider.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/ClientDbProvider.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/ClientDbProvider.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,31 @@
+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:";
+	private static Connection connection = null;
+	
+	public static Connection getConnection(String dbPath) throws SQLException {
+		if(connection == null) {
+			String connectionString = clientConnection + dbPath + ";create=true";
+			System.out.println("Using connection string: " + connectionString);
+			connection = DriverManager.getConnection(connectionString);
+		}
+		
+		return connection;
+	}
+
+	public static void finaliseConnection(Connection connection) throws SQLException {
+		if(connection != null && !connection.isClosed()) {
+			connection.close();
+		}
+	}
+
+	public static Connection getConnection() {
+		return connection;
+	}
+}

Added: trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/Dataloader.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/Dataloader.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/Dataloader.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,41 @@
+package com.tyndalehouse.step.dataloader;
+
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.Calendar;
+
+import org.apache.commons.dbutils.DbUtils;
+import org.crosswire.jsword.passage.NoSuchKeyException;
+
+import com.tyndalehouse.step.dataloader.common.DateParsingException;
+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, DateParsingException, NoSuchKeyException {
+		if(System.getProperty("driver") != null) {
+			DbUtils.loadDriver(System.getProperty("org.apache.derby.jdbc.ClientDriver"));
+		} else {
+			DbUtils.loadDriver("org.apache.derby.jdbc.EmbeddedDriver");	
+		}
+	
+		SchemaLoader sl = new SchemaLoader();
+		TimelineLoader tl = new TimelineLoader();
+	
+		
+		
+		
+		long startTime= Calendar.getInstance().getTimeInMillis();
+
+		sl.recreateAll();
+		long currentTime = Calendar.getInstance().getTimeInMillis();
+		System.out.println("Took " + (currentTime-startTime ) + "ms to create schema");
+		startTime = currentTime;
+		tl.loadData();
+		
+		currentTime = Calendar.getInstance().getTimeInMillis();
+		System.out.println("Took " + (currentTime-startTime ) + "ms to load data");
+			
+	}
+
+}

Added: trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/DbBean.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/DbBean.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/DbBean.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/EventTypeBean.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/EventTypeBean.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/EventTypeBean.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/PartialDate.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/PartialDate.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/PartialDate.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,123 @@
+package com.tyndalehouse.step.dataloader.beans;
+
+import java.text.ParseException;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
+import org.apache.commons.lang.StringUtils;
+
+import com.tyndalehouse.step.dataloader.common.DateParsingException;
+
+/**
+ * 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;
+	}
+	
+	/**
+	 * 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 DateParsingException {
+		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 DateParsingException("The date " + date + " was not long enough.");
+			}
+		
+			//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 DateParsingException("The date " + date + " could not be parsed.");
+				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 DateParsingException("Too many parts to the date: " + date);
+					
+			}
+		} catch(NumberFormatException nfe) {
+			throw new DateParsingException("Could not parse date into year, month or day.");
+		}
+
+		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/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/PrecisionType.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/PrecisionType.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/PrecisionType.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TargetTypeEnum.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TargetTypeEnum.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TargetTypeEnum.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,17 @@
+package com.tyndalehouse.step.dataloader.beans;
+
+public enum TargetTypeEnum {
+	TIMELINE_EVENT(1);
+	
+	private final int id;
+
+	TargetTypeEnum(int id) {
+		this.id = id;
+		
+	}
+	
+	public int getId() {
+		return id;
+	}
+	
+}

Added: trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TimelineBean.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TimelineBean.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TimelineBean.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,71 @@
+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.timeband(timeband_id, timeband_code, timeband_description) values(")
+			.append(getTimelineId())
+			.append(", ")
+			.append(getDbString(getTimelineCode()))			
+			.append(", ")
+			.append(getDbString(getTimelineDescription()))
+			.append(");");
+		
+		return statement.toString();
+	}
+
+	/**
+	 * TODO: this is a bit hacky. make it with the own POJO
+	 * @return
+	 */
+	public String getSubTimebandInsertStatement() {
+		StringBuffer statement = new StringBuffer();
+		statement.append("insert into step.sub_timeband(sub_timeband_id, sub_timeband_code, sub_timeband_description) values(")
+			.append(getTimelineId())
+			.append(", ")
+			.append(getDbString(getTimelineCode()))			
+			.append(", ")
+			.append(getDbString(getTimelineDescription()))
+			.append(");");
+		
+		return statement.toString();
+	}
+}
+
+

Added: trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TimelineEventBean.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TimelineEventBean.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/beans/TimelineEventBean.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,265 @@
+package com.tyndalehouse.step.dataloader.beans;
+
+
+//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 String timebandId;
+
+	private static final String alternativeDateInsertStatement = "insert into step.alternative_date" +
+			"(event_id, from_date, to_date, from_date_precision, to_date_precision) values" +
+			"(?,?,?,?,?)";
+	
+	private static final String eventInsert = "insert into step.event(" +
+		"event_id, event_text_id, name, from_date, to_date, from_precision, to_precision, timeband_id, sub_timeband_id, importance_id, certainty, " +
+		"flags, event_type_id, description, source, notes) values(" +
+		"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
+	
+	private static final String scriptureReferenceInsertStatement = "insert into scripture_reference(" +
+			"target_id, target_type, start_verse_id, end_verse_id) values (?, ?, ?, ?)";
+	
+	/*create table scripture_reference (
+	target_id						int,
+	target_type						int,
+	verse_id						int
+
+);*/
+	
+	public static String getInsertStatement() {
+		return eventInsert;
+	}
+
+
+
+
+
+	/**
+	 * @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;
+	}
+
+
+
+	/**
+	 * @return the timeband_id
+	 */
+	public String getTimebandId() {
+		return timebandId;
+	}
+
+
+
+
+
+	/**
+	 * @param timebandId the timeband_id to set
+	 */
+	public void setTimebandId(String timebandId) {
+		this.timebandId = timebandId;
+	}
+
+
+
+	public static String getAlternativeDateStatement() {
+		return alternativeDateInsertStatement;
+	}
+
+
+
+
+	//TODO: move this out to a seperate logical unit
+	public static String getScriptureReferenceStatement() {
+		return scriptureReferenceInsertStatement;
+	}
+	
+}

Added: trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/common/DateParsingException.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/common/DateParsingException.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/common/DateParsingException.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,23 @@
+package com.tyndalehouse.step.dataloader.common;
+
+public class DateParsingException extends Exception {
+
+	/**
+	 * generated serial version UID
+	 */
+	private static final long serialVersionUID = -5685008606295145634L;
+	private final String message;
+
+	public DateParsingException(final String message) {
+		this.message = message;
+	}
+
+	/**
+	 * @return the message
+	 */
+	public String getMessage() {
+		return message;
+	}
+	
+	
+}

Added: trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/AbstractLoader.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/AbstractLoader.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/AbstractLoader.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,65 @@
+package com.tyndalehouse.step.dataloader.loaders;
+
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.apache.commons.dbutils.QueryRunner;
+import org.apache.commons.io.IOUtils;
+
+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 = IOUtils.toString(getClass().getResourceAsStream((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/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/SchemaLoader.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/SchemaLoader.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/SchemaLoader.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,22 @@
+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 {
+		//delete database first
+		//the recreate
+		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/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/TimelineLoader.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/TimelineLoader.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/loaders/TimelineLoader.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,377 @@
+package com.tyndalehouse.step.dataloader.loaders;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.crosswire.jsword.passage.KeyFactory;
+import org.crosswire.jsword.passage.NoSuchKeyException;
+import org.crosswire.jsword.passage.NoSuchVerseException;
+import org.crosswire.jsword.passage.PassageKeyFactory;
+import org.crosswire.jsword.passage.RestrictionType;
+import org.crosswire.jsword.passage.RocketPassage;
+import org.crosswire.jsword.passage.Verse;
+import org.crosswire.jsword.passage.VerseRange;
+
+import au.com.bytecode.opencsv.CSVReader;
+import au.com.bytecode.opencsv.bean.ColumnPositionMappingStrategy;
+import au.com.bytecode.opencsv.bean.CsvToBean;
+
+import com.tyndalehouse.step.dataloader.beans.EventTypeBean;
+import com.tyndalehouse.step.dataloader.beans.PartialDate;
+import com.tyndalehouse.step.dataloader.beans.TargetTypeEnum;
+import com.tyndalehouse.step.dataloader.beans.TimelineBean;
+import com.tyndalehouse.step.dataloader.beans.TimelineEventBean;
+import com.tyndalehouse.step.dataloader.common.DateParsingException;
+
+public class TimelineLoader extends AbstractLoader {
+	private HashMap<String, TimelineBean> subTimebands;
+	private HashMap<String, TimelineBean> timebands;
+	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(new FileFilter() {
+
+			public boolean accept(File file) {
+				if (!file.getName().endsWith(".csv")) {
+					return false;
+				}
+				return true;
+			}
+		});
+
+		List<TimelineEventBean> events = new ArrayList<TimelineEventBean>();
+		int count = 0;
+
+
+		for (File f : listOfFiles) {
+			// TODO: use log4j
+			CSVReader reader = new CSVReader(new FileReader(f));	
+			reader.readNext();
+			ColumnPositionMappingStrategy<TimelineEventBean> mappings = new ColumnPositionMappingStrategy<TimelineEventBean>();
+			mappings.setType(TimelineEventBean.class);
+			mappings.captureHeader(reader);
+			mappings.setColumnMapping(new String[] { "ID","Name","From","To","From2","To2","Importance","Certainty","Flags","Timeline","Type","Description","Refs","Notes" });
+			
+			CsvToBean<TimelineEventBean> csv = new CsvToBean<TimelineEventBean>();
+			
+			List<TimelineEventBean> beans = csv.parse(mappings, reader);
+			
+			for(TimelineEventBean tb : beans) {
+				tb.setTimebandId(f.getName().substring(0, f.getName().length()-4));
+			}
+			count += beans.size();
+			events.addAll(beans);
+		}
+		System.out.println(String.format("Read %d events", 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 subTimebandCode
+	 */
+	public void addSubTimebandIfNotExists(final String subTimebandCode) {
+		if(subTimebandCode == null) {
+			//do nothing, it is not attached to a subtimeband or an importance
+			return;
+		}
+		
+		if (!subTimebands.containsKey(subTimebandCode)) {
+			// debatable as to whether or not we want to set the id here...
+			TimelineBean tb = new TimelineBean(subTimebands.size() + 1, subTimebandCode, subTimebandCode);
+			subTimebands.put(subTimebandCode, tb);
+		}
+	}
+
+	/**
+	 * 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 addTimebandIfNotExists(final String timelineCode) {
+		if (!timebands.containsKey(timelineCode)) {
+			// debatable as to whether or not we want to set the id here...
+			TimelineBean tb = new TimelineBean(timebands.size() + 1, timelineCode, timelineCode);
+			timebands.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 NoSuchKeyException
+	 * @throws ParseException
+	 *             unable to parse dates contained in timeline source files
+	 */
+	public void loadData() throws SQLException, IOException, DateParsingException, NoSuchKeyException {
+		String directoryPath = getClass().getResource("/data/timeline").getPath();
+		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		
+		cleanupInputFile(events);
+		
+		populateTimebandTable(events);
+		populateSubTimebandTable(events);
+		populateEventTypeTable(events);
+		populateEventsTable(events);
+		executeTimebandUnitUpdates();
+	}
+
+	/** 
+	 * If the importance field or subtimeband field are empty, then set to null
+	 * @param events
+	 */
+	private void cleanupInputFile(List<TimelineEventBean> events) {
+		for(int ii = 0; ii < events.size(); ii++) {
+			TimelineEventBean teb = events.get(ii);
+			if(teb.getTimeline() != null && 
+					(teb.getTimeline().equals("-") ||
+					teb.getTimeline().equals(" "))) {
+				events.remove(ii);
+			
+				//readjust ii, so that we're looking at the next event
+				ii--;
+			} else if(teb.getTimeline() != null && teb.getTimeline().length() == 0) {
+				teb.setTimeline(null);
+			} else if(teb.getImportance() != null && teb.getImportance().length() == 0) {
+				teb.setImportance(null);
+			}
+		}
+	}
+
+	private void executeTimebandUnitUpdates() throws IOException, SQLException {
+		executeFile("/sql/com/tyndalehouse/step/dataloader/sql/data/1.timeband_units.sql");
+		executeFile("/sql/com/tyndalehouse/step/dataloader/sql/data/2.timeband_setup.sql");
+		executeFile("/sql/com/tyndalehouse/step/dataloader/sql/data/3.sub_timeband_units.sql");
+	}
+
+	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);
+		}
+	}
+
+	/**
+	 * sets a nullable integer
+	 * @param ps prepared statement
+	 * @param index, the index of the parameter
+	 * @param value the value
+	 * @throws SQLException
+	 */
+	private void setInt(PreparedStatement ps, int index, Integer value) throws SQLException {
+		if (value == null) {
+			ps.setNull(index, Types.INTEGER);
+		} else {
+			ps.setInt(index, value);
+		}
+	}
+
+	// TODO: all foreign key constraint, indexes and checks
+	// TODO: Rewrite to get rid of all the parameter indexes. It should be
+	// feasible to give a bunch
+	// of things to a function, and it add it to the right function.
+	private void populateEventsTable(List<TimelineEventBean> events) throws SQLException, DateParsingException, NoSuchKeyException {
+		PreparedStatement timelineInsert = c.prepareStatement(TimelineEventBean.getInsertStatement());
+		PreparedStatement alternativeDates = c.prepareStatement(TimelineEventBean.getAlternativeDateStatement());
+		PreparedStatement scriptureReferences = c.prepareStatement(TimelineEventBean.getScriptureReferenceStatement());
+		RocketPassage rp = null;
+		int currentId = 1;
+
+		// set up the key factory once
+		KeyFactory keyFactory = PassageKeyFactory.instance();
+
+		try {
+			for (TimelineEventBean event : events) {
+				// System.out.println(event.getName() + " " + event.getID() +
+				// " " + event.getTimeline());
+				int timelineParameterIndex = 1;
+				int alternativeDateParameterIndex = 1;
+
+				PartialDate from = PartialDate.parseDate(event.getFrom(), '-');
+				PartialDate to = PartialDate.parseDate(event.getTo(), '-');
+
+				timelineInsert.setInt(timelineParameterIndex++, currentId);
+				setString(timelineInsert, timelineParameterIndex++, event.getID()); // event_text_id
+				setString(timelineInsert, timelineParameterIndex++, event.getName()); // name
+				setDate(timelineInsert, timelineParameterIndex++, from); // from_date
+				setDate(timelineInsert, timelineParameterIndex++, to); // to_date
+				setString(timelineInsert, timelineParameterIndex++, "" + from.getPrecision().getShortCode()); // from_precision
+				setString(timelineInsert, timelineParameterIndex++, "" + to.getPrecision().getShortCode()); // to_precision
+				timelineInsert.setInt(timelineParameterIndex++, timebands.get(event.getTimebandId()).getTimelineId()); // timeband_id
+				timelineInsert.setInt(timelineParameterIndex++, subTimebands.get(event.getTimeline()).getTimelineId()); // timeband_id
+				setInt(timelineInsert, timelineParameterIndex++, event.getImportance() == null ? null : subTimebands.get(event.getImportance()).getTimelineId()); // importance_id
+				setString(timelineInsert, timelineParameterIndex++, event.getCertainty()); // certainty
+				setString(timelineInsert, timelineParameterIndex++, event.getFlags()); // flags
+				timelineInsert.setInt(timelineParameterIndex++, eventTypes.get(event.getType()).getEventTypeId()); // event_type_id
+				setString(timelineInsert, timelineParameterIndex++, event.getDescription()); // description
+				setString(timelineInsert, timelineParameterIndex++, event.getSource()); // source
+				setString(timelineInsert, timelineParameterIndex++, event.getNotes()); // notes
+
+				// Now do the alternative dates bit
+				PartialDate from2 = PartialDate.parseDate(event.getFrom2(), '-');
+				PartialDate to2 = PartialDate.parseDate(event.getTo2(), '-');
+				timelineInsert.addBatch();
+
+				//TODO: bug - alternative dates aren't being pulled through at the moment, due to the condition clause
+				//which is inverted.
+				if (from2.getDate() == null && to2.getDate() == null) {
+					// set event_id from previous timeline insert
+					alternativeDates.setInt(alternativeDateParameterIndex++, currentId);
+					setDate(alternativeDates, alternativeDateParameterIndex++, from2); // from_date
+					setDate(alternativeDates, alternativeDateParameterIndex++, to2); // to_date
+					setString(alternativeDates, alternativeDateParameterIndex++, "" + from2.getPrecision().getShortCode()); // from_precision
+					setString(alternativeDates, alternativeDateParameterIndex++, "" + to2.getPrecision().getShortCode()); // to_precision
+					alternativeDates.addBatch();
+				}
+
+				// now do the insert into scripture bit!
+				if (event.getRefs() != null && event.getRefs().length() != 0) {
+					try {
+						rp = (RocketPassage) keyFactory.getKey(event.getRefs());
+						for (int ii = 0; ii < rp.countRanges(RestrictionType.NONE); ii++) {
+							VerseRange vr = rp.getRangeAt(ii, RestrictionType.NONE);
+							Verse start = vr.getStart();
+							Verse end = vr.getEnd();
+
+							int startVerseId = start.getOrdinal();
+							int endVerseId = end.getOrdinal();
+
+							scriptureReferences.setInt(1, currentId);
+							scriptureReferences.setInt(2, TargetTypeEnum.TIMELINE_EVENT.getId());
+							scriptureReferences.setInt(3, startVerseId);
+							scriptureReferences.setInt(4, endVerseId);
+							scriptureReferences.addBatch();
+						}
+					} catch(NoSuchVerseException nsve) {
+						//Nehemiah 6.20 might not exist for example...
+						//TODO: proper logging
+						System.err.println(event.getRefs() + " => " + nsve.getMessage());
+						}
+				}
+				currentId++;
+			}
+
+			timelineInsert.executeBatch();
+			alternativeDates.executeBatch();
+			scriptureReferences.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 populateTimebandTable(final List<TimelineEventBean> events) throws SQLException {
+		timebands = new HashMap<String, TimelineBean>();
+
+		for (TimelineEventBean event : events) {
+			addTimebandIfNotExists(event.getTimebandId());
+		}
+
+		for (TimelineBean timeline : timebands.values()) {
+			executeSQLText(timeline.getInsertStatement());
+		}
+	}
+
+	/**
+	 * populates the sub timeband table in a similar way to above
+	 * @param events
+	 * @throws SQLException
+	 */
+	private void populateSubTimebandTable(final List<TimelineEventBean> events) throws SQLException {
+		subTimebands = new HashMap<String, TimelineBean>();
+
+		for (TimelineEventBean event : events) {
+			addSubTimebandIfNotExists(event.getTimeline());
+			addSubTimebandIfNotExists(event.getImportance());
+		}
+
+		for (TimelineBean timeline : subTimebands.values()) {
+			executeSQLText(timeline.getSubTimebandInsertStatement());
+			//TODO: in any case this is poor as not using prepared statement
+		}
+	}
+	
+	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());
+			//TODO: in any case this is poor as not using prepared statement
+		}
+	}
+}

Added: trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/utils/DerbyUtils.java
===================================================================
--- trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/utils/DerbyUtils.java	                        (rev 0)
+++ trunk/step-dataloader/src/main/java/com/tyndalehouse/step/dataloader/utils/DerbyUtils.java	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,31 @@
+package com.tyndalehouse.step.dataloader.utils;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import com.tyndalehouse.step.dataloader.ClientDbProvider;
+
+
+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");
+		Connection conn = ClientDbProvider.getConnection();
+		
+		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();
+	}
+}

Added: trunk/step-dataloader/src/main/resources/data/timeline/TL_Africa.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_Africa.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_Africa.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_Americas.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_Americas.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_Americas.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_ArchCult.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_ArchCult.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_ArchCult.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_Asia.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_Asia.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_Asia.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_EarlyChurch.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_EarlyChurch.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_EarlyChurch.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_Egypt.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_Egypt.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_Egypt.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_Europe.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_Europe.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_Europe.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_ExileAndReturn.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_ExileAndReturn.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_ExileAndReturn.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_Global.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_Global.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_Global.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_Intertestamental.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_Intertestamental.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_Intertestamental.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_Jesus.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_Jesus.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_Jesus.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_Monarchy.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_Monarchy.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_Monarchy.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_NTChurch.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_NTChurch.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_NTChurch.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_OTNeighbours.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_OTNeighbours.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_OTNeighbours.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_PatriarchsToJudges.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_PatriarchsToJudges.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_PatriarchsToJudges.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline/TL_Rome.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline/TL_Rome.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline/TL_Rome.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/data/timeline_reference_corrections.csv
===================================================================
--- trunk/step-dataloader/src/main/resources/data/timeline_reference_corrections.csv	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/data/timeline_reference_corrections.csv	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,76 @@
+SUB_TIMEBAND_CODE,
+T_EgyptD12,CENTURY
+,#DELETE#
+T_BirthOfTheNation,CENTURY
+T_ArchCult,CENTURY
+T_Ezekiel,DECADE
+T_LifeOfJesus,YEAR
+T_Europe,CENTURY
+T_EgyptD19,CENTURY
+T_PaulToRome,YEAR
+T_China,CENTURY
+T_ACModern,CENTURY
+T_All,MILLENIUM
+T_EgyptD18,CENTURY
+T_Abraham,YEAR
+T_Bible,MILLENIUM
+T_PaulMJ1,MONTH
+T_Isaac,YEAR
+T_NewTestament,DECADE
+T_PaulMJ3,MONTH
+T_PaulMJ2,MONTH
+T_Babylon,MILLENIUM
+T_JesusGalilee,MONTH
+T_Monarchy,DECADE
+T_JesusPerea,MONTH
+T_ACBronzeAge,MILLENIUM
+T_JudahMonarchy,DECADE
+T_Patriarchs,YEAR
+T_Syria,MILLENIUM
+T_Wilderness,DECADE
+T_ACIronAge,MILLENIUM
+T_Herodians,CENTURY
+T_Africa,MILLENIUM
+-,#DELETE#
+T_Rome,CENTURY
+T_Assyria,CENTURY
+T_PassionWeek,DAY
+T_JesusEarly,YEAR
+T_EgyptPtolemaic,MILLENIUM
+T_Judges,DECADE
+T_Solomon,DECADE
+T_JesusResurrected,WEEK
+T_Jacob,YEAR
+T_ExileAndReturn,YEAR
+T_UnitedMonarchy,YEAR
+T_Persia,CENTURY
+T_Isaiah,CENTURY
+T_ACBabylonPersia,CENTURY
+T_Saul,YEAR
+T_Americas,MILLENIUM
+T_ACRomeByzantium,MILLENIUM
+T_Mesopotamia,MILLENIUM
+T_David,DECADE
+T_EarlyChurch,YEAR
+T_India,CENTURY
+T_Hasmonean,CENTURY
+T_AdamToAbraham,MILLENIUM
+T_NTChurch,YEAR
+T_Conquest,YEAR
+T_Greece,CENTURY
+T_JesusJudea,MONTH
+T_RomanRepublic,CENTURY
+T_Jeremiah,DECADE
+T_IsraelMonarchy,DECADE
+T_ACJewishPeriod,CENTURY
+T_Esther,YEAR
+T_Return,YEAR
+T_JesusJohn,MONTH
+T_Exile,YEAR
+T_Asia,CENTURY
+T_Exodus,YEAR
+T_Intertestamental,DECADE
+T_JesusGalileeArea,MONTH
+T_RomanEmpire,CENTURY
+T_Egypt,MILLENIUM
+T_HagZech,YEAR

Added: trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/1.schema.sql
===================================================================
--- trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/1.schema.sql	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/1.schema.sql	2010-04-14 21:29:50 UTC (rev 109)
@@ -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/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/2.scripture_referencing.sql
===================================================================
--- trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/2.scripture_referencing.sql	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/2.scripture_referencing.sql	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,27 @@
+set schema step;
+
+
+call dropIfExists('scripture_reference');
+
+
+-- should probably add index on start_verse_id and end_verse_id
+
+/** need to define standards and whether we want to include seperate creates in each file
+ * or one file per area
+ */
+create table scripture_reference (
+	scripture_reference_id		int NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
+	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...
+	start_verse_id				int NOT NULL,	
+	end_verse_id				int	NOT NULL -- this may be a single verse so can be null here? 
+);
+
+create index target_id_target_type_id_ind 
+on scripture_reference(target_id, target_type);
+
+create index start_verse_id_ind
+on scripture_reference(start_verse_id);
+
+create index end_verse_id_ind
+on scripture_reference(end_verse_id);

Added: trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/3.timeline.sql
===================================================================
--- trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/3.timeline.sql	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/create/3.timeline.sql	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,84 @@
+set schema step;
+
+call dropIfExists('alternative_date');
+call dropIfExists('event');
+call dropIfExists('timeband');
+call dropIfExists('sub_timeband');
+call dropIfExists('event_type');
+
+/**
+ * Timeline table indicating different types of timelines.
+ */
+create table timeband (
+	timeband_id 				int PRIMARY KEY,
+	timeband_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...
+	timeband_code				varchar(50),
+	timeband_unit				varchar(10) default 'DECADE',
+	is_biblical					char(1)
+);
+
+/**
+ * Timeline table indicating different types of timelines.
+ */
+create table sub_timeband (
+	sub_timeband_id 				int PRIMARY KEY,
+	sub_timeband_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...
+	sub_timeband_code				varchar(50),
+	sub_timeband_unit				varchar(10) default 'DECADE'
+);
+
+
+/**
+ * Timeline table indicating different types of timelines.
+ */
+create table event_type (
+	event_type_id 			int PRIMARY KEY,
+	event_description		varchar(50),			
+	event_code				varchar(50)
+);
+
+/**
+ * the main event table that holds all the events of the timeline widget
+ *  
+ */
+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),
+	timeband_id					int CONSTRAINT timeband_id_fk REFERENCES timeband (timeband_id),
+	sub_timeband_id 			int CONSTRAINT sub_timeband_id_fk REFERENCES sub_timeband (sub_timeband_id),	
+	importance_id 				int CONSTRAINT importance_id_fk REFERENCES sub_timeband (sub_timeband_id),
+	certainty 					varchar(25),	
+	flags 						varchar(50),
+	event_type_id				int CONSTRAINT event_type_id_fk REFERENCES event_type(event_type_id),
+	description 				varchar(512),	
+	source 						varchar(512),
+	notes 						varchar(512)
+);
+
+create table alternative_date (
+	alternative_date_id			int PRIMARY KEY GENERATED BY DEFAULT as IDENTITY,
+    event_id 					int CONSTRAINT event_id_fk REFERENCES event (event_id),
+	from_date 					bigint,
+	to_date 					bigint,
+	from_date_precision 		char(1),
+	to_date_precision			char(1)
+);
+
+
+-- finally create indexes:
+-- do some performance tests - it may be that full table scans might be better.
+-- TODO: these are just guesses at the moment!
+-- can't remember if we need to created indexes on foreign keys in javaDB
+create index timeband_id_ind on event(timeband_id);
+create index sub_timeband_id_ind on event(sub_timeband_id);
+create index from_date_from_precision_ind on event(from_date, from_precision);
+create index to_date_to_precision_ind on event(from_date, from_precision);

Added: trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/1.timeband_units.sql
===================================================================
--- trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/1.timeband_units.sql	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/1.timeband_units.sql	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,21 @@
+set schema step;
+
+-- updating the timeband units 
+update step.timeband set timeband_unit = 'YEAR' 		where timeband_code = 'TL_Jesus';
+update step.timeband set timeband_unit = 'YEAR' 		where timeband_code = 'TL_NTChurch';
+update step.timeband set timeband_unit = 'DECADE' 		where timeband_code = 'TL_PatriarchsToJudges';
+update step.timeband set timeband_unit = 'DECADE' 		where timeband_code = 'TL_Rome';
+update step.timeband set timeband_unit = 'DECADE' 		where timeband_code = 'TL_Egypt';
+update step.timeband set timeband_unit = 'DECADE' 		where timeband_code = 'TL_Monarchy';
+update step.timeband set timeband_unit = 'DECADE' 		where timeband_code = 'TL_EarlyChurch';
+update step.timeband set timeband_unit = 'CENTURY' 		where timeband_code = 'TL_ArchCult';
+update step.timeband set timeband_unit = 'DECADE' 		where timeband_code = 'TL_OTNeighbours';
+update step.timeband set timeband_unit = 'CENTURY'		where timeband_code = 'TL_Global';
+update step.timeband set timeband_unit = 'YEAR' 		where timeband_code = 'TL_ExileAndReturn';
+update step.timeband set timeband_unit = 'CENTURY' 		where timeband_code = 'TL_Intertestamental';
+update step.timeband set timeband_unit = 'MILLENIUM' 	where timeband_code = 'TL_Africa';
+update step.timeband set timeband_unit = 'CENTURY'		where timeband_code = 'TL_Asia';
+update step.timeband set timeband_unit = 'DECADE' 		where timeband_code = 'TL_Europe';
+update step.timeband set timeband_unit = 'MILLENIUM' 	where timeband_code = 'TL_Americas';
+
+

Added: trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/2.timeband_setup.sql
===================================================================
--- trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/2.timeband_setup.sql	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/2.timeband_setup.sql	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,11 @@
+set schema step;
+
+update timeband 
+set is_biblical = 'Y'
+where timeband_id in ( 
+    select timeband_id from scripture_reference, event
+    where target_type = 1
+      and target_id = event_id
+    group by timeband_id
+);
+

Added: trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/3.sub_timeband_units.sql
===================================================================
--- trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/3.sub_timeband_units.sql	                        (rev 0)
+++ trunk/step-dataloader/src/main/resources/sql/com/tyndalehouse/step/dataloader/sql/data/3.sub_timeband_units.sql	2010-04-14 21:29:50 UTC (rev 109)
@@ -0,0 +1,77 @@
+set schema step;
+
+-- updating the sub timeband units
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_EgyptD12';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_BirthOfTheNation';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_ArchCult';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_Europe';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_EgyptD19';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_China';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_ACModern';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_EgyptD18';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_Herodians';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_Rome';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_Assyria';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_Persia';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_Isaiah';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_ACBabylonPersia';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_India';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_Hasmonean';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_Greece';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_RomanRepublic';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_ACJewishPeriod';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_Asia';
+update step.sub_timeband set sub_timeband_unit = 'CENTURY' where sub_timeband_code = 'T_RomanEmpire';
+update step.sub_timeband set sub_timeband_unit = 'DAY' where sub_timeband_code = 'T_PassionWeek';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_Ezekiel';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_NewTestament';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_Monarchy';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_JudahMonarchy';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_Wilderness';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_Judges';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_Solomon';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_David';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_Jeremiah';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_IsraelMonarchy';
+update step.sub_timeband set sub_timeband_unit = 'DECADE' where sub_timeband_code = 'T_Intertestamental';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_All';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_Bible';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_Babylon';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_ACBronzeAge';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_Syria';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_ACIronAge';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_Africa';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_EgyptPtolemaic';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_Americas';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_ACRomeByzantium';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_Mesopotamia';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_AdamToAbraham';
+update step.sub_timeband set sub_timeband_unit = 'MILLENIUM' where sub_timeband_code = 'T_Egypt';
+update step.sub_timeband set sub_timeband_unit = 'MONTH' where sub_timeband_code = 'T_PaulMJ1';
+update step.sub_timeband set sub_timeband_unit = 'MONTH' where sub_timeband_code = 'T_PaulMJ3';
+update step.sub_timeband set sub_timeband_unit = 'MONTH' where sub_timeband_code = 'T_PaulMJ2';
+update step.sub_timeband set sub_timeband_unit = 'MONTH' where sub_timeband_code = 'T_JesusGalilee';
+update step.sub_timeband set sub_timeband_unit = 'MONTH' where sub_timeband_code = 'T_JesusPerea';
+update step.sub_timeband set sub_timeband_unit = 'MONTH' where sub_timeband_code = 'T_JesusJudea';
+update step.sub_timeband set sub_timeband_unit = 'MONTH' where sub_timeband_code = 'T_JesusJohn';
+update step.sub_timeband set sub_timeband_unit = 'MONTH' where sub_timeband_code = 'T_JesusGalileeArea';
+update step.sub_timeband set sub_timeband_unit = 'WEEK' where sub_timeband_code = 'T_JesusResurrected';
+update step.sub_timeband set sub_timeband_unit = 'WEEK' where sub_timeband_code = 'T_Exodus';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_LifeOfJesus';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_PaulToRome';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_Abraham';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_Isaac';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_Patriarchs';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_JesusEarly';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_Jacob';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_ExileAndReturn';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_UnitedMonarchy';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_Saul';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_EarlyChurch';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_NTChurch';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_Conquest';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_Esther';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_Return';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_Exile';
+update step.sub_timeband set sub_timeband_unit = 'YEAR' where sub_timeband_code = 'T_HagZech';
+




More information about the Tynstep-svn mailing list