diff --git a/.gitignore b/.gitignore
index 156e4b34ca9eac5b9261e03bded0a0af1524b8f0..3a1e5cc52598a02ff651d7c267a4d1ef273d3050 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,6 +15,7 @@ import/solrmarc.log*
 /node_modules
 /public/swagger-ui
 /.vagrant
+/import
 /solr
 /auth.json
 /core
diff --git a/import/README.md b/import/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d71d07c1c1477ae173ed6eea0726f93822cd5a54
--- /dev/null
+++ b/import/README.md
@@ -0,0 +1,4 @@
+All finc import scripts and schema files are maintained at https://git.sc.uni-leipzig.de/ubl/finc/index .
+
+For the used import scripts and schema file of the current finc VuFind based on release-5.1 refer to:
+https://git.sc.uni-leipzig.de/ubl/finc/index/vufind-5.1//blob/master/import/
diff --git a/import/bin/deletefields b/import/bin/deletefields
deleted file mode 100644
index eb768bfeea7480305f02144bfea5dbd6ef58165d..0000000000000000000000000000000000000000
--- a/import/bin/deletefields
+++ /dev/null
@@ -1,30 +0,0 @@
-#! /bin/bash
-# deletefields
-# delete specified fields or subfields from records
-# $Id: deletefields
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    echo "    Usage: cat /path/to/big/marcfile.mrc | `basename $0` 'fieldspec/search_string'"
-    echo "      would get the records in the file that have search_string in the fieldspec  (e.g. '245a/Jefferson')" 
-    exit $E_BADARGS
-  fi
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -Dmarc.delete_subfields="$1" -Dmarc.combine_records="" -jar $scriptdir/SolrMarc.jar translate $2 $3 
-
-exit 0
-
diff --git a/import/bin/deletefields.bat b/import/bin/deletefields.bat
deleted file mode 100644
index 7f209aa359770cad5b14b586e6e3443f78144063..0000000000000000000000000000000000000000
--- a/import/bin/deletefields.bat
+++ /dev/null
@@ -1,20 +0,0 @@
-@echo off
-:: filterrecords.bat
-:: Grep for marc records
-:: $Id: filterrecords.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -Dmarc.delete_subfields="%1" -Dmarc.combine_records="" -jar %scriptdir%SolrMarc.jar translate %2 %3 
-goto done
-
-:done
diff --git a/import/bin/filterrecords b/import/bin/filterrecords
deleted file mode 100644
index 7c62bb6f1a16cf1a63ffa9d2b51fb227278bd10d..0000000000000000000000000000000000000000
--- a/import/bin/filterrecords
+++ /dev/null
@@ -1,34 +0,0 @@
-#! /bin/bash
-# filterrecords
-# Grep for marc records:  selects only those records that contain certain fields or certain values in certain fields.
-# $Id: filterrecords
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    echo "    Usage: cat /path/to/big/marcfile.mrc | `basename $0` 'fieldspec/search_string'"
-    echo "      would get the records in the file that have search_string in the fieldspec  (e.g. '245a/Jefferson')" 
-    exit $E_BADARGS
-  fi
-fi
-if [[ "${1:0:1}" == "-" ]] 
-then 
-    parm=`echo $1 | sed -e 's/.//'`
-    java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -Dmarc.include_if_missing="$parm" -Dmarc.combine_records="" -jar $scriptdir/SolrMarc.jar translate $2 $3 
-else
-    java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -Dmarc.include_if_present="$1" -Dmarc.combine_records="" -jar $scriptdir/SolrMarc.jar translate $2 $3 
-fi
-exit 0
-
diff --git a/import/bin/filterrecords.bat b/import/bin/filterrecords.bat
deleted file mode 100644
index 6d78a79674465b9773d40fd38d7560539d649294..0000000000000000000000000000000000000000
--- a/import/bin/filterrecords.bat
+++ /dev/null
@@ -1,25 +0,0 @@
-@echo off
-:: filterrecords.bat
-:: Grep for marc records
-:: $Id: filterrecords.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-set arg=%1
-if "%arg:~0,1%" == "-" goto missing
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -Dmarc.include_if_present="%1" -Dmarc.combine_records="" -jar %scriptdir%SolrMarc.jar translate %2 %3 
-goto done
-:missing
-set arg1=%arg:~1%
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -Dmarc.include_if_missing="%arg1%" -Dmarc.combine_records="" -jar %scriptdir%SolrMarc.jar translate %2 %3 
-
-:done
diff --git a/import/bin/getdefaultconfig b/import/bin/getdefaultconfig
deleted file mode 100644
index f53cc01126b35d2633c1a10efd673d729a7ba5be..0000000000000000000000000000000000000000
--- a/import/bin/getdefaultconfig
+++ /dev/null
@@ -1,17 +0,0 @@
-#! /bin/bash
-# getdefaultconfig
-# return the name of the default configuration file
-# $Id: getdefaultconfig
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.GetDefaultConfig" -jar $scriptdir/SolrMarc.jar 
-
-exit 0
-
diff --git a/import/bin/getdefaultconfig.bat b/import/bin/getdefaultconfig.bat
deleted file mode 100644
index 21aba44af1550f6bea40596bdebd3a1534dd9043..0000000000000000000000000000000000000000
--- a/import/bin/getdefaultconfig.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-:: getdefaultconfig.bat
-:: Grep for marc records
-:: $Id: getdefaultconfig.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-::echo BatchPath = %scriptdir%
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.GetDefaultConfig" -jar %scriptdir%SolrMarc.jar 
diff --git a/import/bin/getfromsolr b/import/bin/getfromsolr
deleted file mode 100644
index 49069329d06ba95f4d2db7976e4e547fad564ec7..0000000000000000000000000000000000000000
--- a/import/bin/getfromsolr
+++ /dev/null
@@ -1,81 +0,0 @@
-#! /bin/bash
-# getfromsolr.sh
-# extracts complete MARC records from Solr index documents.
-# $Id: getfromsolr.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` http://remoteMachine:port/solr id:u30980"
-    echo "    Usage: `basename $0` id:u38989"
-    exit $E_BADARGS
-fi
-
-id=
-url=
-config=
-flag=
-field=
-
-handle_arg() {
-  if [ ! -z "$arg" ]
-  then
-    case "$arg" in
-      http*) url="$arg" ;;
-      *.properties) config="$arg" ;;
-      *:*) query="$arg" ;;
-      [A-Za-z0-9]*)
-         if [[ "$id" == ""  && "$query" == "" ]]
-         then
-            id="$arg"
-         else
-            field="$arg"
-         fi
-         ;;
-      -v) flag="$arg" ;;
-     -vv) flag="$arg" ;;
-     esac
-   fi
-}
-
-arg=$1
-handle_arg
-arg=$2
-handle_arg
-arg=$3
-handle_arg
-arg=$4
-handle_arg 
-arg=$5
-handle_arg
-
-if [[ "$query" == "" && "$id" != "" ]]
-then
-    query="id:$id"
-fi
-
-if [[ "$flag" == "-vv" ]] 
-then
-  echo config = $config 1>&2
-  echo url = $url 1>&2
-  echo query = $query 1>&2
-  echo id = $id 1>&2
-  echo field = $field 1>&2
-fi
-
-if [ "$url" == "" ]
-then
-    java -Dsolrmarc.main.class="org.solrmarc.marc.SolrReIndexer" -jar $scriptdir/SolrMarc.jar $config "$query" $field 2> /dev/null
-else
-    java -Dsolrmarc.main.class="org.solrmarc.solr.RemoteSolrSearcher" -jar $scriptdir/SolrMarc.jar $flag $url "$query" $field 
-fi
-
-exit 0
-
diff --git a/import/bin/getfromsolr.bat b/import/bin/getfromsolr.bat
deleted file mode 100644
index 2f2136237578817a30b3028393c4fbdbb72bac95..0000000000000000000000000000000000000000
--- a/import/bin/getfromsolr.bat
+++ /dev/null
@@ -1,68 +0,0 @@
-@echo off
-:: getfromsolr.bat
-:: Program to extract one or more MARC records from a solr index 
-:: $Id: getfromsolr.bat 
-::Get the current batch file's short path
-setlocal
-::
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-::
-if "%1" EQU "" goto usage
-::
-set id=
-set url=
-set query=
-set field=
-set config=
-::
-if "%1" NEQ "" call :set_arg %1
-if "%2" NEQ "" call :set_arg %2
-if "%3" NEQ "" call :set_arg %3
-::echo id=%id%
-::echo url=%url%
-::
-if "%query%" == "" if "%id%" NEQ "" set query=id:%id%
-::echo query=%query%
-::
-if "%url%" == "" java -Dsolrmarc.main.class=org.solrmarc.marc.SolrReIndexer -jar %scriptdir%SolrMarc.jar %config% "%query%" "%field%" 2> NUL
-if "%url%" NEQ "" java -Dsolrmarc.main.class="org.solrmarc.solr.RemoteSolrSearcher" -jar %scriptdir%SolrMarc.jar %url% "%query%" "%field%"
-::
-goto done
-::
-:usage
-echo Usage: %0 field:term (field_name_containing_marc_record) 
-goto done
-::
-:set_arg
-::
-set arg=%1
-if "%arg:~-17%" == "config.properties" goto setconfig
-if "%arg:~0,4%" == "http" goto set_url
-if "%id%" NEQ "" goto :have_query
-if "%query%" NEQ "" goto :have_query
-for /f "tokens=1,2 delims=:" %%g in ("%arg%") do set a1=%%g&set a2=%%h
-if "%a2%" == "" set id=%a1%
-if "%a2%" NEQ "" set query=%arg%
-goto :eof
-::
-:set_url
-set url=%arg%
-goto :eof
-::
-:setconfig
-set config=%arg%
-goto :eof
-::
-:have_query
-set field=%arg%
-goto :eof
-::
-:done
diff --git a/import/bin/getrecord b/import/bin/getrecord
deleted file mode 100644
index 4195bad15c01409707424cd301d57cd98f0286b8..0000000000000000000000000000000000000000
--- a/import/bin/getrecord
+++ /dev/null
@@ -1,43 +0,0 @@
-#! /bin/bash
-# getrecord
-# Get specific record(s) from larger file of marc records.
-# $Id: getrecord
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` ./path/to/marcfile.mrc regex_of_ids_to_extract"
-    echo "    Usage: `basename $0` ./path/to/marcfile.mrc -h field_that_must_be_present"
-    echo "    Usage: `basename $0` ./path/to/marcfile.mrc file_with_list_of_ids.txt"
-    
-    exit $E_BADARGS
-  fi
-  arg1=$1
-  arg2=$2
-  arg3=$3
-  arg4=$4
-  arg5=$5
-  arg6=$6
-else
-  arg1=-
-  arg2=$1
-  arg3=$2
-  arg4=$3
-  arg5=$4
-  arg6=$5
-  arg7=$6
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.RawRecordReader" -jar $scriptdir/SolrMarc.jar $arg1 $arg2 $arg3 $arg4 $arg5 $arg6 $arg7
-
-exit 0
-
diff --git a/import/bin/getrecord.bat b/import/bin/getrecord.bat
deleted file mode 100644
index 41053129cb882b8518cf2352f9f33c5356a84d34..0000000000000000000000000000000000000000
--- a/import/bin/getrecord.bat
+++ /dev/null
@@ -1,30 +0,0 @@
-@echo off
-:: getrecord.bat
-:: Program to extract one or more MARC records from a file 
-:: $Id: getrecord.bat 
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-set inarg=%1
-
-set arg1=-
-for /f "delims=" %%a in ('echo %inarg% ^| findstr "\.mrc"') do @set arg1=%%a
-
-if "%arg1%" EQU "-" set arg2=%1
-if "%arg1%" NEQ "-" set arg2=%2
-
-if "%arg1%" EQU "-" set arg3=%2 
-if "%arg1%" NEQ "-" set arg3=%3
-
-if "%arg1%" EQU "-" set arg4=%3 
-if "%arg1%" NEQ "-" set arg4=%4
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.RawRecordReader" -jar %scriptdir%SolrMarc.jar %arg1% %arg2% %arg3% %arg4%
diff --git a/import/bin/getz3950 b/import/bin/getz3950
deleted file mode 100644
index ee821d3771263cdd9fa32b15e5e12697b3a0c061..0000000000000000000000000000000000000000
--- a/import/bin/getz3950
+++ /dev/null
@@ -1,46 +0,0 @@
-#! /bin/bash
-# getz3950
-# Get specific record(s) over a z3950 connection
-# $Id: getz3950
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/MarcFetch.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-if ! [ -e $scriptdir/MarcFetch.jar ] 
-then
-  echo "Error:  Optional MarcFetch.jar not found in the SolrMarc distribution directory. (exiting)"
-  exit 1
-fi
-
-server=
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` url_of_z3950_server:port id1 id2 id3 id4 id5 ..."
-    echo "    Usage: `basename $0` url_of_z3950_server:port file_with_list_of_ids.txt"
-    echo "    Usage: cat file_with_list_of_ids.txt  | `basename $0` url_of_z3950_server:port -"
-    
-    exit $E_BADARGS
-  fi
-  if  [ "`echo $1 | egrep '[A-Za-z0-9]+[.][A-Za-z0-9]+[.][A-Za-z0-9]+[.][A-Za-z0-9]+:[0-9]+'`" != "" ]
-  then
-    server=$1
-    shift
-  fi
-else
-  if [ "`echo $1 | egrep '[A-Za-z0-9]+[.][A-Za-z0-9]+[.][A-Za-z0-9]+[.][A-Za-z0-9]+:[0-9]+'`" != "" ]
-  then
-    server=$1
-    shift
-  fi
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.z3950.Z3950MarcReader" -jar $scriptdir/MarcFetch.jar $server $*
-
-exit 0
diff --git a/import/bin/hathifetch b/import/bin/hathifetch
deleted file mode 100644
index 6ebd4ad87f9ebb802d6d0f4ffff625350a530bb8..0000000000000000000000000000000000000000
--- a/import/bin/hathifetch
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /bin/bash
-# hathifetch.sh
-# Program to retrieve JSON records from Hathi Trust and extract the marc records from those JSON records.
-# $Id: hathifetch.sh
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ]
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [-s NumToSkip] [-n NumToReturn] file_with_ids "
-    echo "      or : `basename $0` [-s NumToSkip] [-n NumToReturn] url_with_ids "
-    echo "      or : cat file_with_hathi_ids | `basename $0` [-s NumToSkip] [-n NumToReturn]"
-    echo "      other options  -d = debug     retrieve and print the recordURL strings only"
-    echo "                     -v = verbose   fetch records and print them out as Ascii Marc"
-    echo "                     -856 = add 856   add 856 fields to the records based on the 974 fields"
-    echo "      Note: file_with_ids can be Hathi Record numbers only (one per line), or Hathi Data listings"
-    echo "            like the following line where the Hathi Record number is one of several entries on a line."
-    echo "      Note also that the program supports reading gzipped input files."
-    exit $E_BADARGS
-  fi
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.HathiPlunderer" -jar $scriptdir/SolrMarc.jar $1 $2 $3 $4 $5 $6 $7 $8 $9
-
-exit $?
diff --git a/import/bin/hathifetch.bat b/import/bin/hathifetch.bat
deleted file mode 100644
index 84d55e78c6a2bdeae4daf660e1df3520e291c20c..0000000000000000000000000000000000000000
--- a/import/bin/hathifetch.bat
+++ /dev/null
@@ -1,33 +0,0 @@
-@echo off
-:: hathifetch.bat
-:: Program to retrieve JSON records from Hathi Trust and extract the 
-:: marc records from those JSON records.
-:: $Id: hathifetch.bat 
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto checkargs
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:checkargs
-if "%1"=="" GOTO doit
-    echo "    Usage: hathifetch.bat [-s NumToSkip] [-n NumToReturn] file_with_ids "
-    echo "      or : hathifetch.bat [-s NumToSkip] [-n NumToReturn] url_with_ids "
-    echo "      or : cat file_with_hathi_ids | hathifetch.bat [-s NumToSkip] [-n NumToReturn]"
-    echo "      other options  -d = debug     retrieve and print the recordURL strings only"
-    echo "                     -v = verbose   fetch records and print them out as Ascii Marc"
-    echo "                     -856 = add856   add 856 fields to the records based on the 974 fields"
-    echo "      Note: file_with_ids can be Hathi Record numbers only (one per line), or Hathi Data listings"
-    echo "            like the following line where the Hathi Record number is one of several entries on a line."
-    echo "      Note also that the program supports reading gzipped input files."
-GOTO done
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.HathiPlunderer" -jar %scriptdir%SolrMarc.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
-
-:done
diff --git a/import/bin/import.bat b/import/bin/import.bat
deleted file mode 100644
index 66eac1edfdc132cf4b65050538020d6f9c88189d..0000000000000000000000000000000000000000
--- a/import/bin/import.bat
+++ /dev/null
@@ -1,89 +0,0 @@
-@echo off
-:: $Id: index_file.sh 17 2008-06-20 14:40:13Z wayne.graham $
-::
-:: Batch script to start the import of a binary marc file for Solr indexing.
-::
-:: VUFIND_HOME
-::	Path to the vufind installation
-:: SOLRMARC_HOME
-::	Path to the solrmarc installation
-:: JAVA_HOME
-::	Path to the java
-:: INDEX_OPTIONS
-::	Options to pass to the JVM
-::
-setlocal
-
-set E_BADARGS=65
-set EXPECTED_ARGS=1
-
-if "$1" NEQ "" goto havearg
-  for %%g in (%0) do set basename=%%~nxg
-  echo "    Usage: %basename% .\path\to\marc.mrc"
-  goto done 
-
-:havearg
-
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:: Set INDEX_OPTIONS
-:: 	Tweak these in accordance to your needs
-:: Xmx and Xms set the heap size for the Java Virtual Machine
-:: You may also want to add the following:
-:: -XX:+UseParallelGC
-:: -XX:+AggressiveOpts
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-set INDEX_OPTIONS=-Xms512m -Xmx512m
-
-
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:: Set SOLRCORE
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-if "%SOLRCORE%" EQU "" set SOLRCORE="biblio"
-
-
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:: Set SOLR_HOME
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-if "%VUFIND_HOME%" NEQ "" goto havevufindhome
-echo You need to set the VUFIND_HOME environmental variable before running this script.
-goto done
-
-:havevufindhome
-if "%SOLR_HOME%" NEQ "" goto havesolrhome
-set SOLR_HOME=%VUFIND_HOME%\solr
-
-:havesolrhome
-
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:: Set SOLRMARC_HOME
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-if "%SOLRMARC_HOME%" EQU "" set SOLRMARC_HOME=%VUFIND_HOME%\import
-
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:: Build java command
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-set JAVA=java
-if "%JAVA_HOME%" NEQ "" set JAVA="%JAVA_HOME%\bin\java"
-
-
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:: Set Command Options
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-set JAR_FILE="%VUFIND_HOME%\import\@CUSTOM_JAR_NAME@"
-set PROPERTIES_FILE="vufind_config.properties"
-set ERROR_LOG="import\error-log"
-set IMPORT_LOG="import\import-log"
-set SOLRWARLOCATIONORJARDIR=%VUFIND_HOME%\solr\jetty\webapps\solr.war
-set SOLR_JAR_DEF=@SOLR_JAR_DEF@
-
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:: Execute Importer
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
-pushd %SOLRHOME%
-echo "Now Importing %1 ..."
-%JAVA% %INDEX_OPTIONS% %SOLR_JAR_DEF% -Dsolr.core.name=%SOLRCORE% -Dsolrmarc.path=%SOLRMARC_HOME% -Dsolr.path=%SOLR_HOME% -jar %JAR_FILE% %PROPERTIES_FILE% %1 > %IMPORT_LOG% 2> %ERROR_LOG%
-popd
-
-:done
-endlocal
diff --git a/import/bin/import.sh b/import/bin/import.sh
deleted file mode 100644
index afb93bd0bb1e1c3b19ea2010aa81f67afd74d1da..0000000000000000000000000000000000000000
--- a/import/bin/import.sh
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/bin/bash
-# $Id: index_file.sh 17 2008-06-20 14:40:13Z wayne.graham $
-#
-# Bash script to start the import of a binary marc file for Solr indexing.
-#
-# VUFIND_HOME
-#	Path to the vufind installation
-# SOLRMARC_HOME
-#	Path to the solrmarc installation
-# JAVA_HOME
-#	Path to the java
-# INDEX_OPTIONS
-#	Options to pass to the JVM
-#
-
-E_BADARGS=65
-EXPECTED_ARGS=1
-
-if [ $# -ne $EXPECTED_ARGS ]
-then
-  echo "    Usage: `basename $0` ./path/to/marc.mrc"
-  exit $E_BADARGS
-fi
-
-##################################################
-# Set INDEX_OPTIONS
-# 	Tweak these in accordance to your needs
-# Xmx and Xms set the heap size for the Java Virtual Machine
-# You may also want to add the following:
-# -XX:+UseParallelGC
-# -XX:+AggressiveOpts
-##################################################
-INDEX_OPTIONS='-Xms512m -Xmx512m'
-
-
-##################################################
-# Set SOLRCORE
-##################################################
-if [ -z "$SOLRCORE" ]
-then
-  SOLRCORE="biblio"
-fi
-
-
-##################################################
-# Set VUFIND_HOME
-##################################################
-if [ -z "$VUFIND_HOME" ]
-then
-  # set VUFIND_HOME to the absolute path of the directory containing this script
-  # https://stackoverflow.com/questions/4774054/reliable-way-for-a-bash-script-to-get-the-full-path-to-itself
-  VUFIND_HOME="$(cd "$(dirname "$0")" && pwd -P)"/../..
-  if [ "$VUFIND_HOME" = /../.. ]
-  then
-    exit 1
-  fi
-fi
-
-
-##################################################
-# Set SOLR_HOME
-##################################################
-if [ -z "$SOLR_HOME" ]
-then
-  SOLR_HOME="$VUFIND_HOME/solr"
-fi
-
-
-##################################################
-# Set SOLRMARC_HOME
-##################################################
-if [ -z "$SOLRMARC_HOME" ]
-then
-  SOLRMARC_HOME="$VUFIND_HOME/import/solrmarc"
-fi
-
-
-#####################################################
-# Build java command
-#####################################################
-if [ "$JAVA_HOME" ]
-then
-  JAVA="$JAVA_HOME/bin/java"
-else
-  JAVA="java"
-fi
-
-
-##################################################
-# Set Command Options
-##################################################
-JAR_FILE="$VUFIND_HOME/import/@CUSTOM_JAR_NAME@"
-PROPERTIES_FILE="vufind_config.properties"
-ERROR_LOG="import/error-log"
-IMPORT_LOG="import/import-log"
-SOLRWARLOCATIONORJARDIR=%VUFIND_HOME%/solr/jetty/webapps/solr.war
-TEST_SOLR_JAR_DEF=@SOLR_JAR_DEF@
-SOLR_JAR_DEF=`echo $TEST_SOLR_JAR_DEF | sed -e"s|-Done-jar.class.path=.*|-Done-jar.class.path=\"$SOLRWARLOCATIONORJARDIR\"|"`
-
-#####################################################
-# Execute Importer
-#####################################################
-
-pushd $SOLRHOME
-RUN_CMD="$JAVA $INDEX_OPTIONS $SOLR_JAR_DEF -Dsolr.core.name=$SOLRCORE -Dsolrmarc.path=$SOLRMARC_HOME -Dsolr.path=$SOLR_HOME -jar $JAR_FILE $PROPERTIES_FILE $1"
-exec > $IMPORT_LOG
-exec 2> $ERROR_LOG
-echo "Now Importing $1 ..."
-exec $RUN_CMD
-popd
-
-exit 0
diff --git a/import/bin/indexfile b/import/bin/indexfile
deleted file mode 100644
index 494fdba5b9c49fb67ef7a7de38410b59e1285e82..0000000000000000000000000000000000000000
--- a/import/bin/indexfile
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /bin/bash
-# index_file.sh
-# Import a single marc file into a Solr index
-# $Id: indexfile.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    exit $E_BADARGS
-  fi
-fi
-
-if [[ "$SOLRMARC_MEM_ARGS" == "" ]] 
-then
-    SOLRMARC_MEM_ARGS='-Xms512m -Xmx512m'
-fi
-
-java $SOLRMARC_MEM_ARGS -jar $scriptdir/SolrMarc.jar $1 $2 $3
-
-exit 0
-
diff --git a/import/bin/indexfile.bat b/import/bin/indexfile.bat
deleted file mode 100644
index a92bec7a55191b96866e0a9a698179527a9e1b14..0000000000000000000000000000000000000000
--- a/import/bin/indexfile.bat
+++ /dev/null
@@ -1,20 +0,0 @@
-@echo off
-:: indexfile.bat
-:: Import a single marc file into a Solr index
-:: # $Id: indexfile.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-::echo BatchPath = %scriptdir%
-::
-if "%SOLRMARC_MEM_ARGS%" EQU ""  set SOLRMARC_MEM_ARGS=-Xms512m -Xmx512m
-::
-java %SOLRMARC_MEM_ARGS% -jar %scriptdir%SolrMarc.jar %1 %2 %3
diff --git a/import/bin/indextest b/import/bin/indextest
deleted file mode 100644
index bba9cb67ad578debf07cec9e3f58f9d44ec6eea8..0000000000000000000000000000000000000000
--- a/import/bin/indextest
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /bin/bash
-# indextest.sh
-# Diagnostic program to show how a set of marc records would be indexed,
-# without actually adding any records to Solr.
-# $Id: indextest.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    exit $E_BADARGS
-  fi
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar $scriptdir/SolrMarc.jar index $1 $2 $3 $4 $5 $6
-
-exit 0
-
diff --git a/import/bin/indextest.bat b/import/bin/indextest.bat
deleted file mode 100644
index 95c6596f3ee850b6d25cb566c335f043c61b0b8d..0000000000000000000000000000000000000000
--- a/import/bin/indextest.bat
+++ /dev/null
@@ -1,19 +0,0 @@
-@echo off
-:: indextest.bat
-:: Diagnostic program to show how a set of marc records would be indexed,
-:: without actually adding any records to Solr.
-:: $Id: indextest.bat 
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-::echo BatchPath = %scriptdir%
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar %scriptdir%SolrMarc.jar index %1 %2 %3 %4 %5 %6
diff --git a/import/bin/indextest2 b/import/bin/indextest2
deleted file mode 100644
index 675bbfa0ef66e3f8c3d6cad024623ae53b4b7c85..0000000000000000000000000000000000000000
--- a/import/bin/indextest2
+++ /dev/null
@@ -1,34 +0,0 @@
-#! /bin/bash
-# indextest.sh
-# Diagnostic program to show how a set of marc records would be indexed,
-# without actually adding any records to Solr.
-# $Id: indextest.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    exit $E_BADARGS
-  fi
-fi
-
-if [[ "$SOLRMARC_MEM_ARGS" == "" ]] 
-then
-    SOLRMARC_MEM_ARGS='-Xms512m -Xmx512m'
-fi
-
-java $SOLRMARC_MEM_ARGS -Dmarc.just_index_dont_add="true" -jar $scriptdir/SolrMarc.jar $1 $2 $3 
-
-exit 0
-
diff --git a/import/bin/indextest2.bat b/import/bin/indextest2.bat
deleted file mode 100644
index 5927ff560de34c55a014875543f067a66fa7b3cb..0000000000000000000000000000000000000000
--- a/import/bin/indextest2.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-@echo off
-:: indextest2.bat
-:: Diagnostic program to show how a set of marc records would be indexed,
-:: without actually adding any records to Solr.
-:: $Id: indextest2.bat 
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-::echo BatchPath = %scriptdir%
-::
-if "%SOLRMARC_MEM_ARGS%" EQU ""  set SOLRMARC_MEM_ARGS=-Xms512m -Xmx512m
-::
-java %SOLRMARC_MEM_ARGS% -Dmarc.just_index_dont_add="true" -jar %scriptdir%SolrMarc.jar %1 %2 %3 
-
-
diff --git a/import/bin/jettystart b/import/bin/jettystart
deleted file mode 100644
index 60abf648661922bd4a8bd81ab1aa331aad9d5fdb..0000000000000000000000000000000000000000
--- a/import/bin/jettystart
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/bash
-# A simple script to start jetty given the default configuration of solr for solrmarc
-# $Id: jettystart
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-solrmarcdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $solrmarcdir/SolrMarc.jar ] 
-then
-  solrmarcdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-JAVAARG=
-config=`$scriptdir/getdefaultconfig`
-for i in "$@" 
-do
-case "$i" in
-*config.properties) config="$i" ;;
--*) JAVAARG=$i
-esac
-done
-
-if [[ $JETTY_HOME == "" ]] 
-then
-    JETTY_HOME=$solrmarcdir/jetty
-fi
-
-if [[ $JETTY_SOLR_HOME == "" ]] 
-then
-    if [ -f "$solrmarcdir/$config" ] 
-    then
-        JETTY_SOLR_HOME=`egrep "^solr[.]path[ ]*=" "$solrmarcdir/$config" | sed -e 's/solr[.]path[ ]*=[ ]*//' -e 's/REMOTE//'`
-    fi
-fi
-if [[ $JETTY_SOLR_HOME == "" ]] 
-then
-    JETTY_SOLR_HOME=$JETTY_HOME/solr
-fi
-
-if [[ $JETTY_SOLR_PORT == "" ]] 
-then
-    if [ -f "$solrmarcdir/$config" ] 
-    then
-        JETTY_SOLR_PORT=`egrep "^solr[.]hosturl[ ]*=" "$solrmarcdir/$config" | sed -e 's/solr[.]hosturl[ ]*=[ ]*//' -e 's#http[s]*://[^:]*:\([0-9]*\).*#\1#'`
-    fi
-fi
-if [[ $JETTY_SOLR_PORT == "" ]] 
-then
-    JETTY_SOLR_PORT=8983
-fi
-
-if [[ "$JETTY_MEM_ARGS" == "" ]] 
-then
-    JETTY_MEM_ARGS='-Xms512m -Xmx512m'
-fi
-
-baseconfig=${config%.*}
-outfile=$solrmarcdir/$baseconfig.jetty.out
-
-pushd $JETTY_HOME
-
-echo Starting jetty webserver 
-echo  based on SolrMarc config file: $config
-echo  using solr home of $JETTY_SOLR_HOME
-echo  using port $JETTY_SOLR_PORT
-echo  writing output to logs directory
-
-#if [[ -f $outfile ]]
-#then
-#    mv -f $outfile $outfile.bak
-#fi
-
-if [[ $JAVAARG == "" ]]
-then
-    java $JETTY_MEM_ARGS -DSTOP.PORT=0 -Dsolr.solr.home="$JETTY_SOLR_HOME" -Djetty.port=$JETTY_SOLR_PORT -jar start.jar etc/jetty-logging.xml etc/jetty.xml > $outfile  & 
-else
-    echo  adding ARGS $JAVAARG
-    java $JETTY_MEM_ARGS "$JAVAARG" -DSTOP.PORT=0 -Dsolr.solr.home="$JETTY_SOLR_HOME" -Djetty.port=$JETTY_SOLR_PORT -jar start.jar etc/jetty-logging.xml etc/jetty.xml > $outfile  & 
-fi
-sleep 4
-
diff --git a/import/bin/jettystart.bat b/import/bin/jettystart.bat
deleted file mode 100644
index 8d3eb545bb6a8ffe9a01824c6824e1a6a85a03b0..0000000000000000000000000000000000000000
--- a/import/bin/jettystart.bat
+++ /dev/null
@@ -1,82 +0,0 @@
-@echo off
-:: A simple script to start jetty given the default configuration of solr for solrmarc
-:: $Id: jettystart.bat
-
-setlocal
-
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-set solrmarcdir=%scriptdir%
-if EXIST %solrmarcdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set solrmarcdir=%%~sx\
-popd
-
-:doit
-
-for /f "usebackq delims=" %%g in (`%scriptdir%getdefaultconfig`) do set config=%%g
-
-if "%1" NEQ "" call :set_arg %1
-
-if "%JETTY_HOME%" NEQ "" goto :have_jetty_home
-set JETTY_HOME=%solrmarcdir%jetty
-
-:have_jetty_home
-
-if "%JETTY_SOLR_HOME%" NEQ "" goto :have_solr_home
-if EXIST "%solrmarcdir%%config%" ( 
-pushd %solrmarcdir%
-for /f "usebackq tokens=3 delims= " %%H in (`findstr /B "solr.path" %solrmarcdir%%config%`) do set JETTY_SOLR_HOME=%%~fH
-popd
-)
-
-echo jetty solr home = %JETTY_SOLR_HOME%
-
-if "%JETTY_SOLR_HOME%" == "REMOTE" goto :get_solr_home 
-if "%JETTY_SOLR_HOME%" NEQ "" goto :have_solr_home
-:get_solr_home
-set JETTY_SOLR_HOME=%JETTY_HOME%/solr
-
-:have_solr_home
-
-if "%JETTY_SOLR_PORT%" NEQ "" goto :have_solr_port 
-
-if EXIST "%solrmarcdir%%config%" ( 
-for /f "usebackq tokens=4 delims=:/= " %%G in (`findstr "^solr.hosturl" %solrmarcdir%%config%`) do set JETTY_SOLR_PORT=%%G 
-)
-if "%JETTY_SOLR_PORT%" NEQ "" goto :have_solr_port 
-set JETTY_SOLR_PORT=8983
-
-:have_solr_port
-if "%JETTY_MEM_ARGS%" == ""  set JETTY_MEM_ARGS=-Xms512m -Xmx512m
-if "%JETTY_MEM_ARGS:0,1%" == "@"  set JETTY_MEM_ARGS=-Xmx256m
-
-set baseconfig=%config:~0,-11%
-set outfile=%solrmarcdir%%baseconfig%.jetty.out
-
-echo Starting jetty webserver 
-echo  based on SolrMarc config file: %config% 
-echo  using solr home of %JETTY_SOLR_HOME%
-echo  using port %JETTY_SOLR_PORT% 
-echo  writing output to %outfile%
-
-pushd %JETTY_HOME%
-
-::move /Y %outfile% %outfile%.bak > NUL 2>&1
-start /B java %JETTY_MEM_ARGS% -DSTOP.PORT=0 -Dsolr.solr.home="%JETTY_SOLR_HOME%" -Djetty.port=%JETTY_SOLR_PORT% -jar start.jar etc\jetty-logging.xml etc\jetty.xml > %outfile% 
-
-:: sleep for 2 seconds
-ping 1.1.1.1 -n 2 -w 1000 > NUL 2>&1
-
-endlocal
-GOTO :done
-
-:set_arg
-
-set arg=%1
-if "%arg:~-17%" == "config.properties" set config=%arg%
-
-goto :eof
-
-:done
diff --git a/import/bin/jettystop b/import/bin/jettystop
deleted file mode 100644
index bc852fb93e9f5b3831783e9dc6089558440cd2c6..0000000000000000000000000000000000000000
--- a/import/bin/jettystop
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/bash
-# A simple script to start jetty given the default configuration of solr for solrmarc
-# $Id: jettystart
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-solrmarcdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $solrmarcdir/SolrMarc.jar ] 
-then
-  solrmarcdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-config=`$scriptdir/getdefaultconfig`
-for i in "$@" 
-do
-case "$i" in
-*config.properties) config="$i" ;;
-esac
-done
-
-if [[ $JETTY_HOME == "" ]] 
-then
-    JETTY_HOME=$solrmarcdir/jetty
-fi
-
-if [[ $JETTY_SOLR_HOME == "" ]] 
-then
-    if [ -f "$solrmarcdir/$config" ] 
-    then
-        JETTY_SOLR_HOME=`egrep "^solr[.]path[ ]*=" "$solrmarcdir/$config" | sed -e 's/solr[.]path[ ]*=[ ]*//' -e 's/REMOTE//'`
-    fi
-fi
-if [[ $JETTY_SOLR_HOME == "" ]] 
-then
-    JETTY_SOLR_HOME=$JETTY_HOME/solr
-fi
-
-if [[ $JETTY_SOLR_PORT == "" ]] 
-then
-    if [ -f "$solrmarcdir/$config" ] 
-    then
-        JETTY_SOLR_PORT=`egrep "^solr[.]hosturl[ ]*=" "$solrmarcdir/$config" | sed -e 's/solr[.]hosturl[ ]*=[ ]*//' -e 's#http[s]*://[^:]*:\([0-9]*\).*#\1#'`
-    fi
-fi
-if [[ $JETTY_SOLR_PORT == "" ]] 
-then
-    JETTY_SOLR_PORT=8983
-fi
-
-if [[ "$JETTY_MEM_ARGS" == "" ]] 
-then
-    JETTY_MEM_ARGS='-Xms512m -Xmx512m'
-fi
-
-pushd $JETTY_HOME
-
-baseconfig=${config%.*}
-outfile=$solrmarcdir/$baseconfig.jetty.out
-
-echo Stopping jetty webserver 
-echo  based on SolrMarc config file: $config 
-echo  using solr home of $JETTY_SOLR_HOME
-echo  using port $JETTY_SOLR_PORT 
-
-stopport=`head -1 $outfile`
-stopkey=`head -2 $outfile | tail -1`
-
-java -DSTOP.PORT=$stopport $stopkey -jar start.jar --stop
-
-
-
diff --git a/import/bin/jettystop.bat b/import/bin/jettystop.bat
deleted file mode 100644
index 66f171cf24c2d129f9fdfd7b83e0fb9112eafc14..0000000000000000000000000000000000000000
--- a/import/bin/jettystop.bat
+++ /dev/null
@@ -1,82 +0,0 @@
-@echo off
-:: A simple script to start jetty given the default configuration of solr for solrmarc
-:: $Id: jettystart.bat
-
-setlocal enabledelayedexpansion
-
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-set solrmarcdir=%scriptdir%
-if EXIST %solrmarcdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set solrmarcdir=%%~sx\
-popd
-
-:doit
-
-for /f "usebackq delims=" %%g in (`%scriptdir%getdefaultconfig`) do set config=%%g
-
-if "%1" NEQ "" call :set_arg %1
-
-if "%JETTY_HOME%" NEQ "" goto :have_jetty_home
-set JETTY_HOME=%solrmarcdir%jetty
-
-:have_jetty_home
-
-if "%JETTY_SOLR_HOME%" NEQ "" goto :have_solr_home
-if EXIST "%solrmarcdir%%config%" ( 
-pushd %solrmarcdir%
-for /f "usebackq tokens=3 delims= " %%H in (`findstr /B "solr.path" %solrmarcdir%%config%`) do set JETTY_SOLR_HOME=%%~fH
-popd
-)
-
-if "%JETTY_SOLR_HOME%" == "REMOTE" goto :get_solr_home 
-if "%JETTY_SOLR_HOME%" NEQ "" goto :have_solr_home
-:get_solr_home
-set JETTY_SOLR_HOME=%JETTY_HOME%/solr
-
-:have_solr_home
-
-if "%JETTY_SOLR_PORT%" NEQ "" goto :have_solr_port 
-
-if EXIST "%scriptdir%%config%" ( 
-for /f "usebackq tokens=4 delims=:/= " %%G in (`findstr "^solr.hosturl" %solrmarcdir%%config%`) do set JETTY_SOLR_PORT=%%G 
-)
-if "%JETTY_SOLR_PORT%" NEQ "" goto :have_solr_port 
-set JETTY_SOLR_PORT=8983
-
-:have_solr_port
-
-set baseconfig=%config:~0,-11%
-set outfile=%solrmarcdir%%baseconfig%.jetty.out
-
-echo Stopping jetty webserver 
-echo  based on SolrMarc config file: %config% 
-echo  using solr home of %JETTY_SOLR_HOME%
-echo  using port %JETTY_SOLR_PORT% 
-
-set stopport=
-set stopkey=
-for /f "usebackq delims=" %%a in (`type %outfile%`) do (
-if "!stopport!" == ""  ( set stopport=%%a ) else if "!stopkey!" == ""  set stopkey=%%a
-if "!stopkey!" NEQ ""  goto gotstopport
-)
-:gotstopport
-
-pushd %JETTY_HOME%
-
-java -DSTOP.PORT=%stopport% %stopkey% -jar %JETTY_HOME%\start.jar --stop 
-
-GOTO :done
-
-:set_arg
-
-set arg=%1
-if "%arg:~-17%" == "config.properties" set config=%arg%
-
-goto :eof
-
-
-endlocal
-:done
diff --git a/import/bin/marcdiff b/import/bin/marcdiff
deleted file mode 100644
index 0e30d8ccb52cff0de937f9f268dc1c80199b872f..0000000000000000000000000000000000000000
--- a/import/bin/marcdiff
+++ /dev/null
@@ -1,23 +0,0 @@
-#! /bin/bash
-# marcdiff.sh
-# Diagnostic program to show look for differences between Marc record files.
-# $Id: marcdiff.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if [ $# -eq 0 ]
-then
-    echo "    Usage: `basename $0` ./path/to/marc.mrc ./path/to/marc.mrc "
-    exit $E_BADARGS
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.MarcDiff" -jar $scriptdir/SolrMarc.jar $1 $2 $3
-
-exit 0
-
diff --git a/import/bin/marcdiff.bat b/import/bin/marcdiff.bat
deleted file mode 100644
index 17fab6a9839be8b73cc748c735689856586d904f..0000000000000000000000000000000000000000
--- a/import/bin/marcdiff.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-@echo off
-:: marcdiff.sh
-:: Diagnostic program to show look for differences between Marc record files.
-:: $Id: marcdiff.sh 
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.MarcDiff" -jar %scriptdir%SolrMarc.jar %1 %2 %3 
diff --git a/import/bin/marcerror b/import/bin/marcerror
deleted file mode 100644
index f4b6134eff2e9d753fe339930228f8eff9eeadd6..0000000000000000000000000000000000000000
--- a/import/bin/marcerror
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /bin/bash
-# marcerror.sh
-# Diagnostic program to show look for errors in Marc records.
-# $Id: marcerror.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [-v|-vv] ./path/to/marc.mrc "
-    exit $E_BADARGS
-  fi
-
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.PermissiveReaderTest" -jar $scriptdir/SolrMarc.jar $1 $2 $3
-
-exit 0
-
diff --git a/import/bin/marcerror.bat b/import/bin/marcerror.bat
deleted file mode 100644
index ea03583903fda9d9d93aabdd405c59de73feda14..0000000000000000000000000000000000000000
--- a/import/bin/marcerror.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-:: marcerror.sh
-:: Diagnostic program to show look for errors in Marc records.
-:: $Id: marcerror.sh 
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-::echo BatchPath = %scriptdir%
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.PermissiveReaderTest" -jar %scriptdir%SolrMarc.jar %1 %2 %3
diff --git a/import/bin/marcsort b/import/bin/marcsort
deleted file mode 100644
index b63a2c650357750caabd68f984f28c545ca369fd..0000000000000000000000000000000000000000
--- a/import/bin/marcsort
+++ /dev/null
@@ -1,23 +0,0 @@
-#! /bin/bash
-# marcsorter.sh
-# Program to sort marc records numerically based on 001 field
-# $Id: marcsorter.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if [ $# -eq 0 ]
-then
-    echo "    Usage: `basename $0` ./path/to/marc.mrc > sorted_output_file.mrc"
-    exit $E_BADARGS
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcSorter" -jar $scriptdir/SolrMarc.jar $1 $2 $3
-
-exit 0
-
diff --git a/import/bin/marcsort.bat b/import/bin/marcsort.bat
deleted file mode 100644
index da1ce332180cb4497a2ee9b3b575ecf2b86e4e9c..0000000000000000000000000000000000000000
--- a/import/bin/marcsort.bat
+++ /dev/null
@@ -1,21 +0,0 @@
-@echo off
-:: marcerror.sh
-:: Diagnostic program to show look for errors in Marc records.
-:: $Id: marcerror.sh 
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-set inarg=%1
-
-set arg1=-
-for /f "delims=" %%a in ('echo %inarg% ^| findstr "\.mrc"') do @set arg1=%%a
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcSorter" -jar %scriptdir%SolrMarc.jar %arg1% 
diff --git a/import/bin/marcupdate b/import/bin/marcupdate
deleted file mode 100644
index 7bae1904e3f0a8a87ed106bbf61854626dcbde56..0000000000000000000000000000000000000000
--- a/import/bin/marcupdate
+++ /dev/null
@@ -1,23 +0,0 @@
-#! /bin/bash
-# marcupdate.sh
-# Program to copy a marc record file, merging in updates and deletions
-# $Id: marcupdate.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` ./path/to/marc.mrc ./path/to/update"
-    exit $E_BADARGS
-  fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcMerger" -jar $scriptdir/SolrMarc.jar $1 $2 $3 $4 $5 $6 $7 $8 $9
-
-exit $?
-
diff --git a/import/bin/marcupdate.bat b/import/bin/marcupdate.bat
deleted file mode 100644
index e1ba03bfd7ec995407479511b80dfbfd9d6247d1..0000000000000000000000000000000000000000
--- a/import/bin/marcupdate.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-@echo off
-:: marcupdate.bat
-:: Program to copy a marc record file, merging in updates and deletions
-:: $Id:marcupdate.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcMerger" -jar %scriptdir%SolrMarc.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/import/bin/optimizesolr b/import/bin/optimizesolr
deleted file mode 100644
index ed98ceba702a6805c9424d557eca7a93105866c9..0000000000000000000000000000000000000000
--- a/import/bin/optimizesolr
+++ /dev/null
@@ -1,22 +0,0 @@
-#! /bin/bash
-# optimizesolr
-# Run an optimize process on the solr index
-# $Id: optimizesolr
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if [[ "$SOLRMARC_MEM_ARGS" == "" ]] 
-then
-    SOLRMARC_MEM_ARGS='-Xms512m -Xmx512m'
-fi
-
-java $SOLRMARC_MEM_ARGS -Dmarc.source="NONE" -Dsolr.optimize_at_end="true" -jar $scriptdir/SolrMarc.jar $1 
-
-exit 0
-
diff --git a/import/bin/optimizesolr.bat b/import/bin/optimizesolr.bat
deleted file mode 100644
index 8e0b9cc463d378c9543611b484749efcd3fe4020..0000000000000000000000000000000000000000
--- a/import/bin/optimizesolr.bat
+++ /dev/null
@@ -1,21 +0,0 @@
-@echo off
-:: optimizesolr.bat
-:: Run an optimize process on the solr index
-:: $Id: optimizesolr.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-::echo BatchPath = %scriptdir%
-::
-if "%SOLRMARC_MEM_ARGS%" EQU ""  set SOLRMARC_MEM_ARGS=-Xms512m -Xmx512m
-::
-java %SOLRMARC_MEM_ARGS% -Dmarc.source="NONE" -Dsolr.optimize_at_end="true" -jar %scriptdir%SolrMarc.jar %1 
-
diff --git a/import/bin/printrecord b/import/bin/printrecord
deleted file mode 100644
index d0242db06cb7d3a3a5684ae5853a0ecf34618e9c..0000000000000000000000000000000000000000
--- a/import/bin/printrecord
+++ /dev/null
@@ -1,28 +0,0 @@
-#! /bin/bash
-# printrecord.sh
-# Diagnostic program to display marc records.
-# $Id: printrecord.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    exit $E_BADARGS
-  fi
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar $scriptdir/SolrMarc.jar print $1 $2 
-
-exit 0
-
diff --git a/import/bin/printrecord.bat b/import/bin/printrecord.bat
deleted file mode 100644
index b817c504ff38c821ec561a265d9bf46a32f4e04f..0000000000000000000000000000000000000000
--- a/import/bin/printrecord.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-:: printrecord.bat
-:: Diagnostic program to display marc records.
-:: $Id: printrecord.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-::echo BatchPath = %scriptdir%
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar %scriptdir%SolrMarc.jar print %1 %2 %3
diff --git a/import/bin/setdefaultconfig b/import/bin/setdefaultconfig
deleted file mode 100644
index 7235678dd6d57eca71325143c2d0cffb23a14423..0000000000000000000000000000000000000000
--- a/import/bin/setdefaultconfig
+++ /dev/null
@@ -1,34 +0,0 @@
-#! /bin/bash
-# setdefaultconfig
-# Set the name of the default config file to use.
-# $Id: setdefaultconfig
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-for i in "$@" 
-do
-case "$i" in
-*config.properties) config="$i" ;;
-esac
-done
-
-if [[ $config == "" ]]
-then
-  echo  "Usage: setdefaultconfig your_config.properties"
-  exit 0
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.PropertyFileFetcher" -jar $scriptdir/SolrMarc.jar JarUtils.jar $scriptdir
-
-java -classpath $scriptdir/JarUtils.jar JarUpdate $scriptdir/SolrMarc.jar "META-INF/MANIFEST.MF" "Default-Config-File: $config" > /dev/null
-echo Default configuration in SolrMarc.jar set to $config
-
-rm -f $scriptdir/JarUtils.jar
-
-exit 0
diff --git a/import/bin/setdefaultconfig.bat b/import/bin/setdefaultconfig.bat
deleted file mode 100644
index 4306f10bbc3f90f65df32d415413a0a0ddd01ea2..0000000000000000000000000000000000000000
--- a/import/bin/setdefaultconfig.bat
+++ /dev/null
@@ -1,40 +0,0 @@
-@echo off
-:: setdefaultconfig.bat
-:: Set the name of the default config file to use.
-:: $Id: setdefaultconfig.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-if "%1" NEQ "" call :set_arg %1
-if "%config%" NEQ "" goto :do_it
-echo  Usage: setdefaultconfig your_config.properties
-goto :done
-
-:do_it
-java -Dsolrmarc.main.class="org.solrmarc.tools.PropertyFileFetcher" -jar %scriptdir%SolrMarc.jar JarUtils.jar %scriptdir%
-
-java -classpath %scriptdir%JarUtils.jar JarUpdate %scriptdir%SolrMarc.jar "META-INF/MANIFEST.MF" "Default-Config-File: %config%" > NUL
-echo Default configuration in SolrMarc.jar set to %config%
-
-del /q %scriptdir%JarUtils.jar
-
-endlocal
-GOTO :done
-
-:set_arg
-
-set arg=%1
-if "%arg:~-17%" == "config.properties" set config=%arg%
-
-goto :eof
-
-:done
diff --git a/import/bin/to_json b/import/bin/to_json
deleted file mode 100644
index 483dc191d328409f7d3d546c3ec83b6cac2fcf06..0000000000000000000000000000000000000000
--- a/import/bin/to_json
+++ /dev/null
@@ -1,28 +0,0 @@
-#! /bin/bash
-# to_json.sh
-# Diagnostic program to display marc records.
-# $Id: to_json.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    exit $E_BADARGS
-  fi
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar $scriptdir/SolrMarc.jar to_json $1 $2 
-
-exit 0
-
diff --git a/import/bin/to_json.bat b/import/bin/to_json.bat
deleted file mode 100644
index eeae9dd8a3adad4eba7ce8c29399a42bb987273c..0000000000000000000000000000000000000000
--- a/import/bin/to_json.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-:: to_json.bat
-:: Diagnostic program to display marc records.
-:: $Id: to_json.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-::echo BatchPath = %scriptdir%
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar %scriptdir%SolrMarc.jar to_json %1 %2 %3
diff --git a/import/bin/to_marc8 b/import/bin/to_marc8
deleted file mode 100644
index 6f3de6067bc993dfacdb1bd21aa9a358031ef0ff..0000000000000000000000000000000000000000
--- a/import/bin/to_marc8
+++ /dev/null
@@ -1,28 +0,0 @@
-#! /bin/bash
-# to_marc8.sh
-# Diagnostic program to display marc records.
-# $Id: to_marc8.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    exit $E_BADARGS
-  fi
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar $scriptdir/SolrMarc.jar untranslate $1 $2 
-
-exit 0
-
diff --git a/import/bin/to_marc8.bat b/import/bin/to_marc8.bat
deleted file mode 100644
index 5573b48d91fa8728cd367c8dd84b0f80628b6d73..0000000000000000000000000000000000000000
--- a/import/bin/to_marc8.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-:: printrecord.bat
-:: Diagnostic program to display marc records.
-:: $Id: printrecord.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-::echo BatchPath = %scriptdir%
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar %scriptdir%SolrMarc.jar untranslate %1 %2 %3
diff --git a/import/bin/to_ncr b/import/bin/to_ncr
deleted file mode 100644
index 4e05df00d059365aa3039a75c6db3a00673a21e2..0000000000000000000000000000000000000000
--- a/import/bin/to_ncr
+++ /dev/null
@@ -1,28 +0,0 @@
-#! /bin/bash
-# to_marc8.sh
-# Diagnostic program to display marc records.
-# $Id: to_marc8.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    exit $E_BADARGS
-  fi
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar $scriptdir/SolrMarc.jar untranslateNCR $1 $2 
-
-exit 0
-
diff --git a/import/bin/to_ncr.bat b/import/bin/to_ncr.bat
deleted file mode 100644
index 3c59e9e545ea65b88d1ef9290eb2c8593a08bb75..0000000000000000000000000000000000000000
--- a/import/bin/to_ncr.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-:: printrecord.bat
-:: Diagnostic program to display marc records.
-:: $Id: printrecord.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-::echo BatchPath = %scriptdir%
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar %scriptdir%SolrMarc.jar untranslateNCR %1 %2 %3
diff --git a/import/bin/to_utf8 b/import/bin/to_utf8
deleted file mode 100644
index 7b41ffb1c518d1b5bc478f6c33676d385a7230ef..0000000000000000000000000000000000000000
--- a/import/bin/to_utf8
+++ /dev/null
@@ -1,28 +0,0 @@
-#! /bin/bash
-# to_marc8.sh
-# Diagnostic program to display marc records.
-# $Id: to_marc8.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    exit $E_BADARGS
-  fi
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar $scriptdir/SolrMarc.jar translate $1 $2 
-
-exit 0
-
diff --git a/import/bin/to_utf8.bat b/import/bin/to_utf8.bat
deleted file mode 100644
index 80e7ee69d9a9db33f05da3bb1e55771cb65c2489..0000000000000000000000000000000000000000
--- a/import/bin/to_utf8.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-:: printrecord.bat
-:: Diagnostic program to display marc records.
-:: $Id: printrecord.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-::echo BatchPath = %scriptdir%
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar %scriptdir%SolrMarc.jar translate %1 %2 %3
diff --git a/import/bin/to_xml b/import/bin/to_xml
deleted file mode 100644
index 349bb2342eddeecc65e8f7de8fd33a7193eb0cb8..0000000000000000000000000000000000000000
--- a/import/bin/to_xml
+++ /dev/null
@@ -1,28 +0,0 @@
-#! /bin/bash
-# to_marc8.sh
-# Diagnostic program to display marc records.
-# $Id: to_marc8.sh 
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-if ! [ -p /dev/stdin ]
-then  
-  if [ $# -eq 0 ]
-  then
-    echo "    Usage: `basename $0` [config.properties] ./path/to/marc.mrc "
-    echo "      Note that if the config.properties file is not specified the Jarfile will be searched for"
-    echo "      a file whose name ends with \"config.properties\""
-    exit $E_BADARGS
-  fi
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar $scriptdir/SolrMarc.jar to_xml $1 $2 
-
-exit 0
-
diff --git a/import/bin/to_xml.bat b/import/bin/to_xml.bat
deleted file mode 100644
index 1be6fe8f8b3613784bbed67ef2ced17c21f2c09d..0000000000000000000000000000000000000000
--- a/import/bin/to_xml.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-:: printrecord.bat
-:: Diagnostic program to display marc records.
-:: $Id: printrecord.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-::echo BatchPath = %scriptdir%
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-
-java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter" -jar %scriptdir%SolrMarc.jar to_xml %1 %2 %3
diff --git a/import/bin/updatesolrserver b/import/bin/updatesolrserver
deleted file mode 100644
index 88d3170eab000e6f2c15f2eade3e16ff47fccdd0..0000000000000000000000000000000000000000
--- a/import/bin/updatesolrserver
+++ /dev/null
@@ -1,17 +0,0 @@
-#! /bin/bash
-# updatesolrserver
-# send an update message to a running solr server, 
-# $Id: updatesolrserver
-
-E_BADARGS=65
-
-scriptdir=$( (cd -P $(dirname $0) && pwd) )
-if ! [ -e $scriptdir/SolrMarc.jar ] 
-then
-  scriptdir=$( (cd -P $(dirname $0)/.. && pwd) )
-fi
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.SolrUpdate" -jar $scriptdir/SolrMarc.jar $1 
-
-exit 0
-
diff --git a/import/bin/updatesolrserver.bat b/import/bin/updatesolrserver.bat
deleted file mode 100644
index 5d88fb41dddb2b97face1a97c743cdf7b9e79400..0000000000000000000000000000000000000000
--- a/import/bin/updatesolrserver.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-:: updatesolrserver.bat
-:: send an update message to a running solr server, 
-:: $Id: updatesolrserver.bat
-setlocal
-::Get the current batch file's short path
-for %%x in (%~f0) do set scriptdir=%%~dpsx
-for %%x in (%scriptdir%) do set scriptdir=%%~dpsx
-
-if EXIST %scriptdir%SolrMarc.jar goto doit
-pushd %scriptdir%..
-for %%x in (%CD%) do set scriptdir=%%~sx\
-popd
-
-:doit
-::echo BatchPath = %scriptdir%
-
-java -Dsolrmarc.main.class="org.solrmarc.tools.SolrUpdate" -jar %scriptdir%SolrMarc.jar %1
diff --git a/import/browse-indexing.jar b/import/browse-indexing.jar
deleted file mode 100644
index 33c3cc8c7314035197f020b4cf26659c4b3476e5..0000000000000000000000000000000000000000
Binary files a/import/browse-indexing.jar and /dev/null differ
diff --git a/import/doaj.properties b/import/doaj.properties
deleted file mode 100644
index cc7cdf6e32cca5992dcf2e34f04c3c2d5d979465..0000000000000000000000000000000000000000
--- a/import/doaj.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-; XSLT Import Settings for Directory of Open Access Journals' doajArticle format
-; (see http://www.doaj.org/schemas/doajArticle.xsd for details)
-[General]
-; REQUIRED: Name of XSLT file to apply.  Path is relative to the import/xsl directory
-; of the VuFind installation (or your local override directory).
-xslt = doaj.xsl
-; OPTIONAL: PHP function(s) to register for use within XSLT file.  You may repeat
-; this line to register multiple PHP functions.
-;php_function[] = str_replace
-; OPTIONAL: PHP class filled with public static functions for use by the XSLT file.
-; The class must live within a PHP namespace.  You may specify a fully-qualified
-; name; if you do not include a namespace, the class will automatically be assumed
-; to live in the \VuFind\XSLT\Import namespace.
-custom_class[] = VuFind
-; OPTIONAL: If true, all custom_class settings above will be passed to the XSLT with
-; their namespaces stripped off; for example, \VuFind\XSLT\Import\VuFind would be
-; treated as \VuFind in XSLT files.  This allows more compact syntax within XSLT
-; files, but it can lead to name conflicts if used carelessly.  If set to false, you
-; must use fully-qualified names in your XSLT.  The false setting is recommended, but
-; the current default is "true" for compatibility with legacy configurations.
-truncate_custom_class = true
-
-; XSLT parameters -- any key/value pairs set here will be passed as parameters to
-; the XSLT file, allowing local values to be set without modifying XSLT code.
-[Parameters]
-institution = "My University"
-collection = "DOAJ"
diff --git a/import/dspace-dim.properties b/import/dspace-dim.properties
deleted file mode 100644
index e9e9e2a257cc7c246d52c2e79830e27caad0cc5b..0000000000000000000000000000000000000000
--- a/import/dspace-dim.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-; XSLT Import Settings for DSpace (using DIM metadata)
-[General]
-; REQUIRED: Name of XSLT file to apply.  Path is relative to the import/xsl directory
-; of the VuFind installation (or your local override directory).
-xslt = dspace-dim.xsl
-; OPTIONAL: PHP function(s) to register for use within XSLT file.  You may repeat
-; this line to register multiple PHP functions.
-;php_function[] = str_replace
-; OPTIONAL: PHP class filled with public static functions for use by the XSLT file.
-; The class must live within a PHP namespace.  You may specify a fully-qualified
-; name; if you do not include a namespace, the class will automatically be assumed
-; to live in the \VuFind\XSLT\Import namespace.
-custom_class[] = VuFind
-; OPTIONAL: If true, all custom_class settings above will be passed to the XSLT with
-; their namespaces stripped off; for example, \VuFind\XSLT\Import\VuFind would be
-; treated as \VuFind in XSLT files.  This allows more compact syntax within XSLT
-; files, but it can lead to name conflicts if used carelessly.  If set to false, you
-; must use fully-qualified names in your XSLT.  The false setting is recommended, but
-; the current default is "true" for compatibility with legacy configurations.
-truncate_custom_class = true
-
-; XSLT parameters -- any key/value pairs set here will be passed as parameters to
-; the XSLT file, allowing local values to be set without modifying XSLT code.
-[Parameters]
-institution = "My University"
-collection = "DSpace"
-; By default, any URL beginning with "http" will be indexed; however, you can
-; specify a more narrow prefix here if you wish to filter to a particular subset
-; of URLs indexed into VuFind.
-;urlPrefix = "http://hdl.handle.net"
diff --git a/import/dspace.properties b/import/dspace.properties
deleted file mode 100644
index 85304a4cf0617a534e5b08589653ef96f103dfe1..0000000000000000000000000000000000000000
--- a/import/dspace.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-; XSLT Import Settings for DSpace
-[General]
-; REQUIRED: Name of XSLT file to apply.  Path is relative to the import/xsl directory
-; of the VuFind installation (or your local override directory).
-xslt = dspace.xsl
-; OPTIONAL: PHP function(s) to register for use within XSLT file.  You may repeat
-; this line to register multiple PHP functions.
-;php_function[] = str_replace
-; OPTIONAL: PHP class filled with public static functions for use by the XSLT file.
-; The class must live within a PHP namespace.  You may specify a fully-qualified
-; name; if you do not include a namespace, the class will automatically be assumed
-; to live in the \VuFind\XSLT\Import namespace.
-custom_class[] = VuFind
-; OPTIONAL: If true, all custom_class settings above will be passed to the XSLT with
-; their namespaces stripped off; for example, \VuFind\XSLT\Import\VuFind would be
-; treated as \VuFind in XSLT files.  This allows more compact syntax within XSLT
-; files, but it can lead to name conflicts if used carelessly.  If set to false, you
-; must use fully-qualified names in your XSLT.  The false setting is recommended, but
-; the current default is "true" for compatibility with legacy configurations.
-truncate_custom_class = true
-
-; XSLT parameters -- any key/value pairs set here will be passed as parameters to
-; the XSLT file, allowing local values to be set without modifying XSLT code.
-[Parameters]
-institution = "My University"
-collection = "DSpace"
-; By default, any URL beginning with "http" will be indexed; however, you can
-; specify a more narrow prefix here if you wish to filter to a particular subset
-; of URLs indexed into VuFind.
-;urlPrefix = "http://hdl.handle.net"
diff --git a/import/gsdl.properties b/import/gsdl.properties
deleted file mode 100644
index fb258cbb9cc06e7f4aaa74e3a91e7cfbfa2cee57..0000000000000000000000000000000000000000
--- a/import/gsdl.properties
+++ /dev/null
@@ -1,29 +0,0 @@
-; XSLT Import Settings for Greenstone Digital Library (GSDL)
-[General]
-; REQUIRED: Name of XSLT file to apply.  Path is relative to the import/xsl directory
-; of the VuFind installation (or your local override directory).
-xslt = gsdl.xsl
-; OPTIONAL: PHP function(s) to register for use within XSLT file.  You may repeat
-; this line to register multiple PHP functions.
-;php_function[] = str_replace
-; OPTIONAL: PHP class filled with public static functions for use by the XSLT file.
-; The class must live within a PHP namespace.  You may specify a fully-qualified
-; name; if you do not include a namespace, the class will automatically be assumed
-; to live in the \VuFind\XSLT\Import namespace.
-custom_class[] = VuFind
-; OPTIONAL: If true, all custom_class settings above will be passed to the XSLT with
-; their namespaces stripped off; for example, \VuFind\XSLT\Import\VuFind would be
-; treated as \VuFind in XSLT files.  This allows more compact syntax within XSLT
-; files, but it can lead to name conflicts if used carelessly.  If set to false, you
-; must use fully-qualified names in your XSLT.  The false setting is recommended, but
-; the current default is "true" for compatibility with legacy configurations.
-truncate_custom_class = true
-
-; XSLT parameters -- any key/value pairs set here will be passed as parameters to
-; the XSLT file, allowing local values to be set without modifying XSLT code.
-[Parameters]
-institution = "My Institute"
-collection = "GSDL"
-
-; This URL will be used to resolve urn: identifiers.
-gsdlurl = "http://localhost/greenstone/cgi-bin/library.cgi?a=d&c=demo&d="
diff --git a/import/import-xsl.php b/import/import-xsl.php
deleted file mode 100644
index 30a4b1ca9bb2e4a1b722b9a885702dc575dddbf9..0000000000000000000000000000000000000000
--- a/import/import-xsl.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * XSLT importer support methods.
- *
- * PHP version 7
- *
- * Copyright (c) Demian Katz 2010.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category VuFind
- * @package  Utilities
- * @author   Andrew S. Nagy <vufind-tech@lists.sourceforge.net>
- * @author   Demian Katz <demian.katz@villanova.edu>
- * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
- * @link     https://vufind.org/wiki/indexing Wiki
- */
-
-// Manipulate command line to load correct route, then load Zend Framework:
-array_unshift($_SERVER['argv'], array_shift($_SERVER['argv']), 'import', 'import-xsl');
-$_SERVER['argc'] += 2;
-require_once __DIR__ . '/../public/index.php';
diff --git a/import/import.properties b/import/import.properties
deleted file mode 100644
index 28a465ccb2124540b860632e814af55e1bd54236..0000000000000000000000000000000000000000
--- a/import/import.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-# Properties for the SolrMarc import program
-
-# IMPORTANT NOTE FOR WINDOWS USERS:
-#      Use forward slashes, not back slashes (i.e.  c:/vufind/..., not c:\vufind\...)
-
-# Solr settings
-solr.core.name = biblio
-solr.indexer.properties = marc.properties, marc_local.properties
-solr.hosturl = http://localhost:8080/solr/biblio/update
-
-# where to look for properties files, translation maps, and custom scripts
-# note that . refers to the directory where the jarfile for SolrMarc is located.
-solrmarc.path = /usr/local/vufind/import
-
-# Path to your marc file
-marc.to_utf_8 = true
-marc.permissive = true
-marc.default_encoding = BESTGUESS
-marc.include_errors = true
-
-# Perform Unicode normalization (ignored unless marc.to_utf_8 is true).
-#
-# Allowed values are:
-#
-#   C  - Normalization Form C (NFC)
-#   D  - Normalization Form D (NFD)
-#   KC - Normalization Form KC (NFKC)
-#   KD - Normalization Form KD (NFKD)
-#
-# For the differences of the normalization forms see the Unicode
-# Standards Annex #15, located at <http://unicode.org/reports/tr15/>.
-#
-# marc.unicode_normalize = C
diff --git a/import/import_auth.properties b/import/import_auth.properties
deleted file mode 100644
index f2b66f6216d02c1db04dcd990d43cdcd8be3d360..0000000000000000000000000000000000000000
--- a/import/import_auth.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-# Properties for the SolrMarc import program (used for importing authority records)
-
-# IMPORTANT NOTE FOR WINDOWS USERS:
-#      Use forward slashes, not back slashes (i.e.  c:/vufind/..., not c:\vufind\...)
-
-# Solr settings
-solr.core.name = authority
-solr.indexer.properties = marc_auth.properties
-solr.hosturl = http://localhost:8080/solr/authority/update
-
-# where to look for properties files, translation maps, and custom scripts
-# note that . refers to the directory where the jarfile for SolrMarc is located.
-solrmarc.path = /usr/local/vufind/import
-
-# Path to your marc file
-marc.to_utf_8 = true
-marc.permissive = true
-marc.default_encoding = BESTGUESS
-marc.include_errors = true
-
-# Perform Unicode normalization (ignored unless marc.to_utf_8 is true).
-#
-# Allowed values are:
-#
-#   C  - Normalization Form C (NFC)
-#   D  - Normalization Form D (NFD)
-#   KC - Normalization Form KC (NFKC)
-#   KD - Normalization Form KD (NFKD)
-#
-# For the differences of the normalization forms see the Unicode
-# Standards Annex #15, located at <http://unicode.org/reports/tr15/>.
-#
-# marc.unicode_normalize = C
diff --git a/import/index_java/.gitignore b/import/index_java/.gitignore
deleted file mode 100644
index ae3c1726048cd06b9a143e0376ed46dd9b9a8d53..0000000000000000000000000000000000000000
--- a/import/index_java/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/import/index_java/src/org/vufind/index/CallNumberTools.java b/import/index_java/src/org/vufind/index/CallNumberTools.java
deleted file mode 100644
index 00138e4e1e533d5c400b9916e29ad7cbef7709a5..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/CallNumberTools.java
+++ /dev/null
@@ -1,517 +0,0 @@
-package org.vufind.index;
-/**
- * Call number indexing routines.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.VariableField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import org.solrmarc.callnum.DeweyCallNumber;
-import org.solrmarc.callnum.LCCallNumber;
-import org.solrmarc.index.SolrIndexer;
-import org.solrmarc.tools.CallNumUtils;
-
-/**
- * Call number indexing routines.
- */
-public class CallNumberTools
-{
-    /**
-     * Extract the full call number from a record, stripped of spaces
-     * @param record MARC record
-     * @return Call number label
-     * @deprecated Obsolete as of VuFind 2.4.
-     *          This method exists only to support the VuFind call number search, version <= 2.3.
-     *          As of VuFind 2.4, the munging for call number search in handled entirely in Solr.
-     */
-    @Deprecated
-    public String getFullCallNumber(final Record record) {
-
-        return(getFullCallNumber(record, "099ab:090ab:050ab"));
-    }
-
-    /**
-     * Extract the full call number from a record, stripped of spaces
-     * @param record MARC record
-     * @param fieldSpec taglist for call number fields
-     * @return Call number label
-     * @deprecated Obsolete as of VuFind 2.4.
-     *          This method exists only to support the VuFind call number search, version <= 2.3.
-     *          As of VuFind 2.4, the munging for call number search in handled entirely in Solr.
-     */
-    @Deprecated
-    public String getFullCallNumber(final Record record, String fieldSpec) {
-
-        String val = SolrIndexer.instance().getFirstFieldVal(record, fieldSpec);
-
-        if (val != null) {
-            return val.toUpperCase().replaceAll(" ", "");
-        } else {
-            return val;
-        }
-    }
-
-    /**
-     * Extract the call number label from a record
-     * @param record MARC record
-     * @return Call number label
-     */
-    public String getCallNumberLabel(final Record record) {
-
-        return getCallNumberLabel(record, "090a:050a");
-    }
-
-    /**
-     * Extract the call number label from a record
-     * @param record MARC record
-     * @param fieldSpec taglist for call number fields
-     * @return Call number label
-     */
-    public String getCallNumberLabel(final Record record, String fieldSpec) {
-
-        String val = SolrIndexer.instance().getFirstFieldVal(record, fieldSpec);
-
-        if (val != null) {
-            int dotPos = val.indexOf(".");
-            if (dotPos > 0) {
-                val = val.substring(0, dotPos);
-            }
-            return val.toUpperCase();
-        } else {
-            return val;
-        }
-    }
-
-    /**
-     * Extract the subject component of the call number
-     *
-     * Can return null
-     *
-     * @param record MARC record
-     * @return Call number subject letters
-     */
-    public String getCallNumberSubject(final Record record) {
-
-        return(getCallNumberSubject(record, "090a:050a"));
-    }
-
-    /**
-     * Extract the subject component of the call number
-     *
-     * Can return null
-     *
-     * @param record current MARC record
-     * @return Call number subject letters
-     */
-    public String getCallNumberSubject(final Record record, String fieldSpec) {
-
-        String val = SolrIndexer.instance().getFirstFieldVal(record, fieldSpec);
-
-        if (val != null) {
-            String [] callNumberSubject = val.toUpperCase().split("[^A-Z]+");
-            if (callNumberSubject.length > 0)
-            {
-                return callNumberSubject[0];
-            }
-        }
-        return(null);
-    }
-
-    /**
-     * Normalize a single LC call number
-     * @param record current MARC record
-     * @return String Normalized LCCN
-     */
-    public String getFullCallNumberNormalized(final Record record) {
-
-        return(getFullCallNumberNormalized(record, "099ab:090ab:050ab"));
-    }
-
-    /**
-     * Normalize a single LC call number
-     * @param record current MARC record
-     * @param fieldSpec which MARC fields / subfields need to be analyzed
-     * @return String Normalized LC call number
-     */
-    public String getFullCallNumberNormalized(final Record record, String fieldSpec) {
-
-        // TODO: is the null fieldSpec still an issue?
-        if (fieldSpec != null) {
-            String cn = SolrIndexer.instance().getFirstFieldVal(record, fieldSpec);
-            return (new LCCallNumber(cn)).getShelfKey();
-        }
-        // If we got this far, we couldn't find a valid value:
-        return null;
-    }
-
-    /**
-     * Get call numbers of a specific type.
-     * 
-     * <p>{@code fieldSpec} is of form {@literal 098abc:099ab}, does not accept subfield ranges.
-     *
-     *
-     * @param record  current MARC record
-     * @param fieldSpec  which MARC fields / subfields need to be analyzed
-     * @param callTypeSf  subfield containing call number type, single character only
-     * @param callType  literal call number code
-     * @param result  a collection to gather the call numbers
-     * @return collection of call numbers, same object as {@code result}
-     */
-    public static Collection<String> getCallNumberByTypeCollector(
-            Record record, String fieldSpec, String callTypeSf, String callType, Collection<String> result) {
-        for (String tag : fieldSpec.split(":")) {
-            // Check to ensure tag length is at least 3 characters
-            if (tag.length() < 3) {
-                //TODO: Should this go to a log? Better message for a bad tag in a field spec?
-                System.err.println("Invalid tag specified: " + tag);
-                continue;
-            }
-            String dfTag = tag.substring(0, 3);
-            String sfSpec = null;
-            if (tag.length() > 3) {
-                    sfSpec = tag.substring(3);
-            }
-
-            // do all fields for this tag
-            for (VariableField vf : record.getVariableFields(dfTag)) {
-                // Assume tag represents a DataField
-                DataField df = (DataField) vf;
-                boolean callTypeMatch = false;
-                
-                // Assume call type subfield could repeat
-                for (Subfield typeSf : df.getSubfields(callTypeSf)) {
-                    if (callTypeSf.indexOf(typeSf.getCode()) != -1 && typeSf.getData().equals(callType)) {
-                        callTypeMatch = true;
-                    }
-                }
-                System.err.println("callTypeMatch after loop: " + callTypeMatch);
-                if (callTypeMatch) {
-                    result.add(df.getSubfieldsAsString(sfSpec));
-                }
-            } // end loop over variable fields
-        } // end loop over fieldSpec
-        return result;
-    }
-    
-
-    /**
-     * Get call numbers of a specific type.
-     * 
-     * <p>{@code fieldSpec} is of form {@literal 098abc:099ab}, does not accept subfield ranges.
-     *
-     * @param record  current MARC record
-     * @param fieldSpec  which MARC fields / subfields need to be analyzed
-     * @param callTypeSf  subfield containing call number type, single character only
-     * @param callType  literal call number code
-     * @return set of call numbers
-     */
-    public static Set<String> getCallNumberByType(Record record, String fieldSpec, String callTypeSf, String callType) {
-        return (Set<String>) getCallNumberByTypeCollector(record, fieldSpec, callTypeSf, callType,
-                new LinkedHashSet<String>());
-    }
-
-    /**
-     * Get call numbers of a specific type.
-     * 
-     * <p>{@code fieldSpec} is of form {@literal 098abc:099ab}, does not accept subfield ranges.
-     *
-     * @param record  current MARC record
-     * @param fieldSpec  which MARC fields / subfields need to be analyzed
-     * @param callTypeSf  subfield containing call number type, single character only
-     * @param callType  literal call number code
-     * @return list of call numbers
-     */
-    public static List<String> getCallNumberByTypeAsList(Record record, String fieldSpec, String callTypeSf, String callType) {
-        return (List<String>) getCallNumberByTypeCollector(record, fieldSpec, callTypeSf, callType,
-                new ArrayList<String>());
-    }
-
-    /**
-     * Normalize LC numbers for sorting purposes (use only the first valid number!).
-     * Will return first call number found if none pass validation,
-     * or empty string if no call numbers.
-     *
-     * @param  record current MARC record
-     * @param  fieldSpec which MARC fields / subfields need to be analyzed
-     * @return sortable shelf key of the first valid LC number encountered, 
-     *         otherwise shelf key of the first call number found.
-     */
-    public String getLCSortable(Record record, String fieldSpec) {
-        // Loop through the specified MARC fields:
-        Set<String> input = SolrIndexer.instance().getFieldList(record, fieldSpec);
-        String firstCall = "";
-        for (String current : input) {
-            // If this is a valid LC number, return the sortable shelf key:
-            LCCallNumber callNum = new LCCallNumber(current);
-            if (callNum.isValid()) {
-                return callNum.getShelfKey();   // RETURN first valid
-            }
-            if (firstCall.length() == 0) {
-                firstCall = current;
-            }
-        }
-
-        // If we made it this far, did not find a valid LC number, so use what we have:
-        return new LCCallNumber(firstCall).getShelfKey();
-    }
-
-    /**
-     * Get sort key for first LC call number, identified by call type.
-     * 
-     * <p>{@code fieldSpec} is of form {@literal 098abc:099ab}, does not accept subfield ranges.
-     *
-     *
-     * @param record  current MARC record
-     * @param fieldSpec  which MARC fields / subfields need to be analyzed
-     * @param callTypeSf  subfield containing call number type, single character only
-     * @param callType  literal call number code
-     * @return sort key for first identified LC call number
-     */
-    public String getLCSortableByType(
-            Record record, String fieldSpec, String callTypeSf, String callType) {
-        String sortKey = null;
-        for (String tag : fieldSpec.split(":")) {
-            // Check to ensure tag length is at least 3 characters
-            if (tag.length() < 3) {
-                //TODO: Should this go to a log? Better message for a bad tag in a field spec?
-                System.err.println("Invalid tag specified: " + tag);
-                continue;
-            }
-            String dfTag = tag.substring(0, 3);
-            String sfSpec = null;
-            if (tag.length() > 3) {
-                    sfSpec = tag.substring(3);
-            }
-
-            // do all fields for this tag
-            for (VariableField vf : record.getVariableFields(dfTag)) {
-                // Assume tag represents a DataField
-                DataField df = (DataField) vf;
-                boolean callTypeMatch = false;
-                
-                // Assume call type subfield could repeat
-                for (Subfield typeSf : df.getSubfields(callTypeSf)) {
-                    if (callTypeSf.indexOf(typeSf.getCode()) != -1 && typeSf.getData().equals(callType)) {
-                        callTypeMatch = true;
-                    }
-                }
-                // take the first call number coded as LC
-                if (callTypeMatch) {
-                    sortKey = new LCCallNumber(df.getSubfieldsAsString(sfSpec)).getShelfKey();
-                    break;
-                }
-            } // end loop over variable fields
-        } // end loop over fieldSpec
-        return sortKey;
-    }
-
-    /**
-     * Extract a numeric portion of the Dewey decimal call number
-     *
-     * Can return null
-     *
-     * @param record current MARC record
-     * @param fieldSpec which MARC fields / subfields need to be analyzed
-     * @param precisionStr a decimal number (represented in string format) showing the
-     *  desired precision of the returned number; i.e. 100 to round to nearest hundred,
-     *  10 to round to nearest ten, 0.1 to round to nearest tenth, etc.
-     * @return Set containing requested numeric portions of Dewey decimal call numbers
-     */
-    public Set<String> getDeweyNumber(Record record, String fieldSpec, String precisionStr) {
-        // Initialize our return value:
-        Set<String> result = new LinkedHashSet<String>();
-
-        // Precision comes in as a string, but we need to convert it to a float:
-        float precision = Float.parseFloat(precisionStr);
-
-        // Loop through the specified MARC fields:
-        Set<String> input = SolrIndexer.instance().getFieldList(record, fieldSpec);
-        for (String current: input) {
-            DeweyCallNumber callNum = new DeweyCallNumber(current);
-            if (callNum.isValid()) {
-                // Convert the numeric portion of the call number into a float:
-                float currentVal = Float.parseFloat(callNum.getClassification());
-                
-                // Round the call number value to the specified precision:
-                Float finalVal = new Float(Math.floor(currentVal / precision) * precision);
-                
-                // Convert the rounded value back to a string (with leading zeros) and save it:
-                // TODO: Provide different conversion to remove CallNumUtils dependency
-                result.add(CallNumUtils.normalizeFloat(finalVal.toString(), 3, -1));
-            }
-        }
-
-        // If we found no call number matches, return null; otherwise, return our results:
-        if (result.isEmpty())
-            return null;
-        return result;
-    }
-
-    /**
-     * Normalize Dewey numbers for searching purposes (uppercase/stripped spaces)
-     *
-     * Can return null
-     *
-     * @param record current MARC record
-     * @param fieldSpec which MARC fields / subfields need to be analyzed
-     * @return Set containing normalized Dewey numbers extracted from specified fields.
-     */
-    public Set<String> getDeweySearchable(Record record, String fieldSpec) {
-        // Initialize our return value:
-        Set<String> result = new LinkedHashSet<String>();
-
-        // Loop through the specified MARC fields:
-        Set<String> input = SolrIndexer.instance().getFieldList(record, fieldSpec);
-        Iterator<String> iter = input.iterator();
-        while (iter.hasNext()) {
-            // Get the current string to work on:
-            String current = iter.next();
-
-            // Add valid strings to the set, normalizing them to be all uppercase
-            // and free from whitespace.
-            DeweyCallNumber callNum = new DeweyCallNumber(current);
-            if (callNum.isValid()) {
-                result.add(callNum.toString().toUpperCase().replaceAll(" ", ""));
-            }
-        }
-
-        // If we found no call numbers, return null; otherwise, return our results:
-        if (result.isEmpty())
-            return null;
-        return result;
-    }
-
-    /**
-     * Normalize Dewey numbers for sorting purposes (use only the first valid number!)
-     *
-     * Can return null
-     *
-     * @param record current MARC record
-     * @param fieldSpec which MARC fields / subfields need to be analyzed
-     * @return String containing the first valid Dewey number encountered, normalized
-     *         for sorting purposes.
-     */
-    public String getDeweySortable(Record record, String fieldSpec) {
-        // Loop through the specified MARC fields:
-        Set<String> input = SolrIndexer.instance().getFieldList(record, fieldSpec);
-        Iterator<String> iter = input.iterator();
-        while (iter.hasNext()) {
-            // Get the current string to work on:
-            String current = iter.next();
-
-            // If this is a valid Dewey number, return the sortable shelf key:
-            DeweyCallNumber callNum = new DeweyCallNumber(current);
-            if (callNum.isValid()) {
-                return callNum.getShelfKey();
-            }
-        }
-
-        // If we made it this far, we didn't find a valid sortable Dewey number:
-        return null;
-    }
-
-    /**
-     * Get sort key for first Dewey call number, identified by call type.
-     * 
-     * <p>{@code fieldSpec} is of form {@literal 098abc:099ab}, does not accept subfield ranges.
-     *
-     *
-     * @param record  current MARC record
-     * @param fieldSpec  which MARC fields / subfields need to be analyzed
-     * @param callTypeSf  subfield containing call number type, single character only
-     * @param callType  literal call number code
-     * @return sort key for first identified Dewey call number
-     */
-    public static String getDeweySortableByType(
-            Record record, String fieldSpec, String callTypeSf, String callType) {
-        String sortKey = null;
-        for (String tag : fieldSpec.split(":")) {
-            // Check to ensure tag length is at least 3 characters
-            if (tag.length() < 3) {
-                //TODO: Should this go to a log? Better message for a bad tag in a field spec?
-                System.err.println("Invalid tag specified: " + tag);
-                continue;
-            }
-            String dfTag = tag.substring(0, 3);
-            String sfSpec = null;
-            if (tag.length() > 3) {
-                    sfSpec = tag.substring(3);
-            }
-
-            // do all fields for this tag
-            for (VariableField vf : record.getVariableFields(dfTag)) {
-                // Assume tag represents a DataField
-                DataField df = (DataField) vf;
-                boolean callTypeMatch = false;
-                
-                // Assume call type subfield could repeat
-                for (Subfield typeSf : df.getSubfields(callTypeSf)) {
-                    if (callTypeSf.indexOf(typeSf.getCode()) != -1 && typeSf.getData().equals(callType)) {
-                        callTypeMatch = true;
-                    }
-                }
-                // take the first call number coded as Dewey
-                if (callTypeMatch) {
-                    sortKey = new DeweyCallNumber(df.getSubfieldsAsString(sfSpec)).getShelfKey();
-                    break;
-                }
-            } // end loop over variable fields
-        } // end loop over fieldSpec
-        return sortKey;
-    }
-
-    
-    /**
-     * Normalize Dewey numbers for AlphaBrowse sorting purposes (use all numbers!)
-     *
-     * Can return null
-     *
-     * @param record current MARC record
-     * @param fieldSpec which MARC fields / subfields need to be analyzed
-     * @return List containing normalized Dewey numbers extracted from specified fields.
-     */
-    public List<String> getDeweySortables(Record record, String fieldSpec) {
-        // Initialize our return value:
-        List<String> result = new LinkedList<String>();
-
-        // Loop through the specified MARC fields:
-        Set<String> input = SolrIndexer.instance().getFieldList(record, fieldSpec);
-        Iterator<String> iter = input.iterator();
-        while (iter.hasNext()) {
-            // Get the current string to work on:
-            String current = iter.next();
-
-            // gather all sort keys, even if number is not valid
-            DeweyCallNumber callNum = new DeweyCallNumber(current);
-            result.add(callNum.getShelfKey());
-        }
-
-        // If we found no call numbers, return null; otherwise, return our results:
-        if (result.isEmpty())
-            return null;
-        return result;
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/ConfigManager.java b/import/index_java/src/org/vufind/index/ConfigManager.java
deleted file mode 100644
index 454aace2374ad201cfaac91e5022869626680d69..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/ConfigManager.java
+++ /dev/null
@@ -1,245 +0,0 @@
-package org.vufind.index;
-/**
- * VuFind configuration manager
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import java.io.File;
-import java.io.FileReader;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.ConcurrentHashMap;
-import org.solrmarc.index.indexer.ValueIndexerFactory;
-import org.solrmarc.tools.PropertyUtils;
-import org.solrmarc.tools.SolrMarcIndexerException;
-import org.ini4j.Ini;
-import org.apache.log4j.Logger;
-
-/**
- * VuFind configuration manager
- */
-public class ConfigManager
-{
-    // Initialize logging category
-    static Logger logger = Logger.getLogger(ConfigManager.class.getName());
-    private static ConcurrentHashMap<String, Ini> configCache = new ConcurrentHashMap<String, Ini>();
-    private Properties vuFindConfigs = null;
-    private static ThreadLocal<ConfigManager> managerCache = 
-        new ThreadLocal<ConfigManager>()
-        {
-            @Override
-            protected ConfigManager initialValue()
-            {
-                return new ConfigManager();
-            }
-        };
-
-    public ConfigManager()
-    {
-        try {
-            vuFindConfigs = PropertyUtils.loadProperties(ValueIndexerFactory.instance().getHomeDirs(), "vufind.properties");
-        } catch (IllegalArgumentException e) {
-            // If the properties load failed, don't worry about it -- we'll use defaults.
-        }
-    }
-
-    public static ConfigManager instance()
-    {
-        return managerCache.get();
-    }
-
-    /**
-     * Given the base name of a configuration file, locate the full path.
-     * @param filename base name of a configuration file
-     */
-    private File findConfigFile(String filename) throws IllegalStateException
-    {
-        // Find VuFind's home directory in the environment; if it's not available,
-        // try using a relative path on the assumption that we are currently in
-        // VuFind's import subdirectory:
-        String vufindHome = System.getenv("VUFIND_HOME");
-        if (vufindHome == null) {
-            // this shouldn't happen since import-marc.sh and .bat always set VUFIND_HOME
-            throw new IllegalStateException("VUFIND_HOME must be set");
-        }
-
-        // Check for VuFind 2.0's local directory environment variable:
-        String vufindLocal = System.getenv("VUFIND_LOCAL_DIR");
-
-        // Get the relative VuFind path from the properties file, defaulting to
-        // the 2.0-style config/vufind if necessary.
-        String relativeConfigPath = PropertyUtils.getProperty(
-            vuFindConfigs, "vufind.config.relative_path", "config/vufind"
-        );
-
-        // Try several different locations for the file -- VuFind 2 local dir,
-        // VuFind 2 base dir, VuFind 1 base dir.
-        File file;
-        if (vufindLocal != null) {
-            file = new File(vufindLocal + "/" + relativeConfigPath + "/" + filename);
-            if (file.exists()) {
-                return file;
-            }
-        }
-        file = new File(vufindHome + "/" + relativeConfigPath + "/" + filename);
-        if (file.exists()) {
-            return file;
-        }
-        file = new File(vufindHome + "/web/conf/" + filename);
-        return file;
-    }
-
-    /**
-     * Sanitize a VuFind configuration setting.
-     * @param str configuration setting
-     */
-    private String sanitizeConfigSetting(String str)
-    {
-        // Drop comments if necessary:
-        int pos = str.indexOf(';');
-        if (pos >= 0) {
-            str = str.substring(0, pos).trim();
-        }
-
-        // Strip wrapping quotes if necessary (the ini reader won't do this for us):
-        if (str.startsWith("\"")) {
-            str = str.substring(1, str.length());
-        }
-        if (str.endsWith("\"")) {
-            str = str.substring(0, str.length() - 1);
-        }
-        return str;
-    }
-
-    /**
-     * Load an ini file.
-     * @param filename name of {@code .ini} file
-     */
-    public Ini loadConfigFile(String filename)
-    {
-        // Retrieve the file if it is not already cached.
-        if (!configCache.containsKey(filename)) {
-            Ini ini = new Ini();
-            File configFile = null;
-            try {
-                configFile = findConfigFile(filename);
-            } catch (IllegalStateException e) {
-                dieWithError("Illegal State: " + e.getMessage());
-            } catch (Throwable e) {
-                dieWithError("Unable to locate " + filename);
-            }
-            try {
-                if (configFile != null) {
-                    ini.load(new FileReader(configFile));
-                    configCache.putIfAbsent(filename, ini);
-                }
-            } catch (Throwable e) {
-                dieWithError("Unable to access " + configFile.getAbsolutePath());
-            }
-        }
-        return configCache.get(filename);
-    }
-
-    /**
-     * Get a section from a VuFind configuration file.
-     * @param filename configuration file name
-     * @param section section name within the file
-     */
-    public Map<String, String> getConfigSection(String filename, String section)
-    {
-        // Grab the ini file.
-        Ini ini = loadConfigFile(filename);
-        Map<String, String> retVal = ini.get(section);
-
-        String parent = ini.get("Parent_Config", "path");
-        while (parent != null) {
-            Ini parentIni = loadConfigFile(parent);
-            Map<String, String> parentSection = parentIni.get(section);
-            for (String key : parentSection.keySet()) {
-                if (!retVal.containsKey(key)) {
-                    retVal.put(key, parentSection.get(key));
-                }
-            }
-            parent = parentIni.get("Parent_Config", "path");
-        }
-
-        // Check to see if we need to worry about an override file:
-        String override = ini.get("Extra_Config", "local_overrides");
-        if (override != null) {
-            Map<String, String> overrideSection = loadConfigFile(override).get(section);
-            for (String key : overrideSection.keySet()) {
-                retVal.put(key, overrideSection.get(key));
-            }
-        }
-        return retVal;
-    }
-
-    /**
-     * Get a setting from a VuFind configuration file.
-     * @param filename configuration file name
-     * @param section section name within the file
-     * @param setting setting name within the section
-     */
-    public String getConfigSetting(String filename, String section, String setting)
-    {
-        String retVal = null;
-
-        // Grab the ini file.
-        Ini ini = loadConfigFile(filename);
-
-        // Check to see if we need to worry about an override file:
-        String override = ini.get("Extra_Config", "local_overrides");
-        if (override != null) {
-            Ini overrideIni = loadConfigFile(override);
-            retVal = overrideIni.get(section, setting);
-            if (retVal != null) {
-                return sanitizeConfigSetting(retVal);
-            }
-        }
-
-        // Try to find the requested setting:
-        retVal = ini.get(section, setting);
-
-        //  No setting?  Check for a parent configuration:
-        while (retVal == null) {
-            String parent = ini.get("Parent_Config", "path");
-            if (parent !=  null) {
-                try {
-                    ini.load(new FileReader(new File(parent)));
-                } catch (Throwable e) {
-                    dieWithError("Unable to access " + parent);
-                }
-                retVal = ini.get(section, setting);
-            } else {
-                break;
-            }
-        }
-
-        // Return the processed setting:
-        return retVal == null ? null : sanitizeConfigSetting(retVal);
-    }
-
-    /**
-     * Log an error message and throw a fatal exception.
-     * @param msg message to log
-     */
-    private void dieWithError(String msg)
-    {
-        logger.error(msg);
-        throw new SolrMarcIndexerException(SolrMarcIndexerException.EXIT, msg);
-    }
-}
diff --git a/import/index_java/src/org/vufind/index/CreatorTools.java b/import/index_java/src/org/vufind/index/CreatorTools.java
deleted file mode 100644
index 3a50dd9ad89fb8144528229fdc9638533c5f7bb6..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/CreatorTools.java
+++ /dev/null
@@ -1,725 +0,0 @@
-package org.vufind.index;
-/**
- * Indexing routines for dealing with creators and relator terms.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.Subfield;
-import org.marc4j.marc.DataField;
-import org.solrmarc.index.SolrIndexer;
-import org.apache.log4j.Logger;
-import java.util.Arrays;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * Indexing routines for dealing with creators and relator terms.
- */
-public class CreatorTools
-{
-    // Initialize logging category
-    static Logger logger = Logger.getLogger(CreatorTools.class.getName());
-
-    private ConcurrentHashMap<String, String> relatorSynonymLookup = RelatorContainer.instance().getSynonymLookup();
-    private Set<String> knownRelators = RelatorContainer.instance().getKnownRelators();
-
-    /**
-     * Extract all valid relator terms from a list of subfields using a whitelist.
-     * @param subfields        List of subfields to check
-     * @param permittedRoles   Whitelist to check against
-     * @param indexRawRelators Should we index relators raw, as found
-     * in the MARC (true) or index mapped versions (false)?
-     * @return Set of valid relator terms
-     */
-    public Set<String> getValidRelatorsFromSubfields(List<Subfield> subfields, List<String> permittedRoles, Boolean indexRawRelators)
-    {
-        Set<String> relators = new LinkedHashSet<String>();
-        for (int j = 0; j < subfields.size(); j++) {
-            String raw = subfields.get(j).getData();
-            String current = normalizeRelatorString(raw);
-            if (permittedRoles.contains(current)) {
-                relators.add(indexRawRelators ? raw : mapRelatorStringToCode(current));
-            }
-        }
-        return relators;
-    }
-
-    /**
-     * Is this relator term unknown to author-classification.ini?
-     * @param current relator to check
-     * @return True if unknown
-     */
-    public Boolean isUnknownRelator(String current)
-    {
-        // If we haven't loaded known relators yet, do so now:
-        if (knownRelators.size() == 0) {
-            Map<String, String> all = ConfigManager.instance().getConfigSection("author-classification.ini", "RelatorSynonyms");
-            for (String key : all.keySet()) {
-                knownRelators.add(normalizeRelatorString(key));
-                for (String synonym: all.get(key).split("\\|")) {
-                    knownRelators.add(normalizeRelatorString(synonym));
-                }
-            }
-        }
-        return !knownRelators.contains(normalizeRelatorString(current));
-    }
-
-    /**
-     * Extract all valid relator terms from a list of subfields using a whitelist.
-     * @param subfields      List of subfields to check
-     * @return Set of valid relator terms
-     */
-    public Set<String> getUnknownRelatorsFromSubfields(List<Subfield> subfields)
-    {
-        Set<String> relators = new LinkedHashSet<String>();
-        for (int j = 0; j < subfields.size(); j++) {
-            String current = subfields.get(j).getData().trim();
-            if (current.length() > 0 && isUnknownRelator(current)) {
-                logger.info("Unknown relator: " + current);
-                relators.add(current);
-            }
-        }
-        return relators;
-    }
-
-    /**
-     * Extract all values that meet the specified relator requirements.
-     * @param authorField           Field to analyze
-     * @param noRelatorAllowed      Array of tag names which are allowed to be used with
-     * no declared relator.
-     * @param relatorConfig         The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @param unknownRelatorAllowed Array of tag names whose relators should be indexed 
-     * even if they are not listed in author-classification.ini.
-     * @param indexRawRelators      Set to "true" to index relators raw, as found
-     * in the MARC or "false" to index mapped versions.
-     * @return Set
-     */
-    public Set<String> getValidRelators(DataField authorField,
-        String[] noRelatorAllowed, String relatorConfig,
-        String[] unknownRelatorAllowed, String indexRawRelators
-    ) {
-        // get tag number from Field
-        String tag = authorField.getTag();
-        List<Subfield> subfieldE = authorField.getSubfields('e');
-        List<Subfield> subfield4 = authorField.getSubfields('4');
-
-        Set<String> relators = new LinkedHashSet<String>();
-
-        // if no relator is found, check to see if the current tag is in the "no
-        // relator allowed" list.
-        if (subfieldE.size() == 0 && subfield4.size() == 0) {
-            if (Arrays.asList(noRelatorAllowed).contains(tag)) {
-                relators.add("");
-            }
-        } else {
-            // If we got this far, we need to figure out what type of relation they have
-            List permittedRoles = normalizeRelatorStringList(Arrays.asList(loadRelatorConfig(relatorConfig)));
-            relators.addAll(getValidRelatorsFromSubfields(subfieldE, permittedRoles, indexRawRelators.toLowerCase().equals("true")));
-            relators.addAll(getValidRelatorsFromSubfields(subfield4, permittedRoles, indexRawRelators.toLowerCase().equals("true")));
-            if (Arrays.asList(unknownRelatorAllowed).contains(tag)) {
-                Set<String> unknown = getUnknownRelatorsFromSubfields(subfieldE);
-                if (unknown.size() == 0) {
-                    unknown = getUnknownRelatorsFromSubfields(subfield4);
-                }
-                relators.addAll(unknown);
-            }
-        }
-        return relators;
-    }
-
-    /**
-     * Parse a SolrMarc fieldspec into a map of tag name to set of subfield strings
-     * (note that we need to map to a set rather than a single string, because the
-     * same tag may repeat with different subfields to extract different sections
-     * of the same field into distinct values).
-     *
-     * @param tagList The field specification to parse
-     * @return HashMap
-     */
-    protected HashMap<String, Set<String>> getParsedTagList(String tagList)
-    {
-        String[] tags = tagList.split(":");//convert string input to array
-        HashMap<String, Set<String>> tagMap = new HashMap<String, Set<String>>();
-        //cut tags array up into key/value pairs in hash map
-        Set<String> currentSet;
-        for(int i = 0; i < tags.length; i++){
-            String tag = tags[i].substring(0, 3);
-            if (!tagMap.containsKey(tag)) {
-                currentSet = new LinkedHashSet<String>();
-                tagMap.put(tag, currentSet);
-            } else {
-                currentSet = tagMap.get(tag);
-            }
-            currentSet.add(tags[i].substring(3));
-        }
-        return tagMap;
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for separating different types of authors.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @param acceptUnknownRelators Colon-delimited list of tags whose relators
-     * should be indexed even if they are not listed in author-classification.ini.
-     * @param indexRawRelators      Set to "true" to index relators raw, as found
-     * in the MARC or "false" to index mapped versions.
-     * @param firstOnly            Return first result only?
-     * @return List result
-     */
-    public List<String> getAuthorsFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig,
-        String acceptUnknownRelators, String indexRawRelators, Boolean firstOnly
-    ) {
-        List<String> result = new LinkedList<String>();
-        String[] noRelatorAllowed = acceptWithoutRelator.split(":");
-        String[] unknownRelatorAllowed = acceptUnknownRelators.split(":");
-        HashMap<String, Set<String>> parsedTagList = getParsedTagList(tagList);
-        List fields = SolrIndexer.instance().getFieldSetMatchingTagList(record, tagList);
-        Iterator fieldsIter = fields.iterator();
-        if (fields != null){
-            DataField authorField;
-            while (fieldsIter.hasNext()){
-                authorField = (DataField) fieldsIter.next();
-                // add all author types to the result set; if we have multiple relators, repeat the authors
-                for (String iterator: getValidRelators(authorField, noRelatorAllowed, relatorConfig, unknownRelatorAllowed, indexRawRelators)) {
-                    for (String subfields : parsedTagList.get(authorField.getTag())) {
-                        String current = SolrIndexer.instance().getDataFromVariableField(authorField, "["+subfields+"]", " ", false);
-                        // TODO: we may eventually be able to use this line instead,
-                        // but right now it's not handling separation between the
-                        // subfields correctly, so it's commented out until that is
-                        // fixed.
-                        //String current = authorField.getSubfieldsAsString(subfields);
-                        if (null != current) {
-                            result.add(current);
-                            if (firstOnly) {
-                                return result;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        return result;
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for separating different types of authors.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @return List result
-     */
-    public List<String> getAuthorsFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig
-    ) {
-        // default firstOnly to false!
-        return getAuthorsFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptWithoutRelator, "false", false
-        );
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for separating different types of authors.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @return List result
-     * @param acceptUnknownRelators Colon-delimited list of tags whose relators
-     * should be indexed even if they are not listed in author-classification.ini.
-     */
-    public List<String> getAuthorsFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig,
-        String acceptUnknownRelators
-    ) {
-        // default firstOnly to false!
-        return getAuthorsFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptUnknownRelators, "false", false
-        );
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for separating different types of authors.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @return List result
-     * @param acceptUnknownRelators Colon-delimited list of tags whose relators
-     * should be indexed even if they are not listed in author-classification.ini.
-     * @param indexRawRelators      Set to "true" to index relators raw, as found
-     * in the MARC or "false" to index mapped versions.
-     */
-    public List<String> getAuthorsFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig,
-        String acceptUnknownRelators, String indexRawRelators
-    ) {
-        // default firstOnly to false!
-        return getAuthorsFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptUnknownRelators, indexRawRelators, false
-        );
-    }
-
-    /**
-     * If the provided relator is included in the synonym list, convert it back to
-     * a code (for better standardization/translation).
-     *
-     * @param relator Relator code to check
-     * @return Code version, if found, or raw string if no match found.
-     */
-    public String mapRelatorStringToCode(String relator)
-    {
-        String normalizedRelator = normalizeRelatorString(relator);
-        return relatorSynonymLookup.containsKey(normalizedRelator)
-            ? relatorSynonymLookup.get(normalizedRelator) : relator;
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for separating different types of authors.
-     *
-     * @param record                The record (fed in automatically)
-     * @param tagList               The field specification to read
-     * @param acceptWithoutRelator  Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig         The setting in author-classification.ini which
-     * defines which relator terms  are acceptable (or a colon-delimited list)
-     * @param acceptUnknownRelators Colon-delimited list of tags whose relators
-     * should be indexed even if they are not listed in author-classification.ini.
-     * @param indexRawRelators      Set to "true" to index relators raw, as found
-     * in the MARC or "false" to index mapped versions.
-     * @return String
-     */
-    public String getFirstAuthorFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig,
-        String acceptUnknownRelators, String indexRawRelators
-    ) {
-        List<String> result = getAuthorsFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptUnknownRelators, indexRawRelators, true
-        );
-        for (String s : result) {
-            return s;
-        }
-        return null;
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for separating different types of authors.
-     *
-     * @param record                The record (fed in automatically)
-     * @param tagList               The field specification to read
-     * @param acceptWithoutRelator  Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig         The setting in author-classification.ini which
-     * defines which relator terms  are acceptable (or a colon-delimited list)
-     * @return String
-     */
-    public String getFirstAuthorFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig
-    ) {
-        return getFirstAuthorFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptWithoutRelator, "false"
-        );
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for separating different types of authors.
-     *
-     * @param record                The record (fed in automatically)
-     * @param tagList               The field specification to read
-     * @param acceptWithoutRelator  Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig         The setting in author-classification.ini which
-     * defines which relator terms  are acceptable (or a colon-delimited list)
-     * @param acceptUnknownRelators Colon-delimited list of tags whose relators
-     * should be indexed even if they are not listed in author-classification.ini.
-     * @return String
-     */
-    public String getFirstAuthorFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig,
-        String acceptUnknownRelators
-    ) {
-        return getFirstAuthorFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptUnknownRelators, "false"
-        );
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for saving relators of authors separated by different
-     * types.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @param acceptUnknownRelators Colon-delimited list of tags whose relators
-     * should be indexed even if they are not listed in author-classification.ini.
-     * @param indexRawRelators      Set to "true" to index relators raw, as found
-     * in the MARC or "false" to index mapped versions.
-     * @param firstOnly            Return first result only?
-     * @return List result
-     */
-    public List getRelatorsFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig,
-        String acceptUnknownRelators, String indexRawRelators, Boolean firstOnly
-    ) {
-        List result = new LinkedList();
-        String[] noRelatorAllowed = acceptWithoutRelator.split(":");
-        String[] unknownRelatorAllowed = acceptUnknownRelators.split(":");
-        HashMap<String, Set<String>> parsedTagList = getParsedTagList(tagList);
-        List fields = SolrIndexer.instance().getFieldSetMatchingTagList(record, tagList);
-        Iterator fieldsIter = fields.iterator();
-        if (fields != null){
-            DataField authorField;
-            while (fieldsIter.hasNext()){
-                authorField = (DataField) fieldsIter.next();
-                //add all author types to the result set
-                result.addAll(getValidRelators(authorField, noRelatorAllowed, relatorConfig, unknownRelatorAllowed, indexRawRelators));
-            }
-        }
-        return result;
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for saving relators of authors separated by different
-     * types.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @param acceptUnknownRelators Colon-delimited list of tags whose relators
-     * should be indexed even if they are not listed in author-classification.ini.
-     * @param indexRawRelators      Set to "true" to index relators raw, as found
-     * in the MARC or "false" to index mapped versions.
-     * @return List result
-     */
-    public List getRelatorsFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig,
-        String acceptUnknownRelators, String indexRawRelators
-    ) {
-        // default firstOnly to false!
-        return getRelatorsFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptUnknownRelators, indexRawRelators, false
-        );
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for saving relators of authors separated by different
-     * types.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @param acceptUnknownRelators Colon-delimited list of tags whose relators
-     * should be indexed even if they are not listed in author-classification.ini.
-     * @return List result
-     */
-    public List getRelatorsFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig,
-        String acceptUnknownRelators
-    ) {
-        // default firstOnly to false!
-        return getRelatorsFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptUnknownRelators, "false", false
-        );
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for saving relators of authors separated by different
-     * types.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @return List result
-     */
-    public List getRelatorsFilteredByRelator(Record record, String tagList,
-        String acceptWithoutRelator, String relatorConfig
-    ) {
-        // default firstOnly to false!
-        return getRelatorsFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptWithoutRelator, "false", false
-        );
-    }
-
-    /**
-     * This method fetches relator definitions from ini file and casts them to an
-     * array. If a colon-delimited string is passed in, this will be directly parsed
-     * instead of resorting to .ini loading.
-     *
-     * @param setting Setting to load from .ini or colon-delimited list.
-     * @return String[]
-     */
-    protected String[] loadRelatorConfig(String setting){
-        StringBuilder relators = new StringBuilder();
-
-        // check for pipe-delimited string
-        String[] relatorSettings = setting.split("\\|");
-        for (String relatorSetting: relatorSettings) {
-            // check for colon-delimited string
-            String[] relatorArray = relatorSetting.split(":");
-            if (relatorArray.length > 1) {
-                for (int i = 0; i < relatorArray.length; i++) {
-                    relators.append(relatorArray[i]).append(",");
-                }
-            } else {
-                relators.append(ConfigManager.instance().getConfigSetting(
-                    "author-classification.ini", "AuthorRoles", relatorSetting
-                )).append(",");
-            }
-        }
-
-        return relators.toString().split(",");
-    }
-
-    /**
-     * Normalizes a relator string and returns a list containing the normalized
-     * relator plus any configured synonyms.
-     *
-     * @param relator Relator term to normalize
-     * @return List of strings
-     */
-    public List<String> normalizeRelatorAndAddSynonyms(String relator)
-    {
-        List<String> newList = new ArrayList<String>();
-        String normalized = normalizeRelatorString(relator);
-        newList.add(normalized);
-        String synonyms = ConfigManager.instance().getConfigSetting(
-            "author-classification.ini", "RelatorSynonyms", relator
-        );
-        if (null != synonyms && synonyms.length() > 0) {
-            for (String synonym: synonyms.split("\\|")) {
-                String normalizedSynonym = normalizeRelatorString(synonym);
-                relatorSynonymLookup.put(normalizedSynonym, relator);
-                newList.add(normalizedSynonym);
-            }
-        }
-        return newList;
-    }
-
-    /**
-     * Normalizes the strings in a list.
-     *
-     * @param stringList List of strings to be normalized
-     * @return Normalized List of strings 
-     */
-    protected List<String> normalizeRelatorStringList(List<String> stringList)
-    {
-        List<String> newList = new ArrayList<String>();
-        for (String relator: stringList) {
-            newList.addAll(normalizeRelatorAndAddSynonyms(relator));
-        }
-        return newList;
-    }
-
-    /**
-     * Normalizes a string
-     *
-     * @param string String to be normalized
-     * @return string
-     */
-    protected String normalizeRelatorString(String string)
-    {
-        return string
-            .trim()
-            .toLowerCase()
-            .replaceAll("\\p{Punct}+", "");    //POSIX character class Punctuation: One of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for separating different types of authors.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @param acceptUnknownRelators Colon-delimited list of tags whose relators
-     * should be indexed even if they are not listed in author-classification.ini.
-     * @param indexRawRelators      Set to "true" to index relators raw, as found
-     * in the MARC or "false" to index mapped versions.
-     * @return List result
-     */
-    public List<String> getAuthorInitialsFilteredByRelator(Record record,
-        String tagList, String acceptWithoutRelator, String relatorConfig,
-        String acceptUnknownRelators, String indexRawRelators
-    ) {
-        List<String> authors = getAuthorsFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptUnknownRelators, indexRawRelators
-        );
-        List<String> result = new LinkedList<String>();
-        for (String author : authors) {
-            result.add(processInitials(author));
-        }
-        return result;
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for separating different types of authors.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @return List result
-     */
-    public List<String> getAuthorInitialsFilteredByRelator(Record record,
-        String tagList, String acceptWithoutRelator, String relatorConfig
-    ) {
-        return getAuthorInitialsFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptWithoutRelator, "false"
-        );
-    }
-
-    /**
-     * Filter values retrieved using tagList to include only those whose relator
-     * values are acceptable. Used for separating different types of authors.
-     *
-     * @param record               The record (fed in automatically)
-     * @param tagList              The field specification to read
-     * @param acceptWithoutRelator Colon-delimited list of tags whose values should
-     * be accepted even if no relator subfield is defined
-     * @param relatorConfig        The setting in author-classification.ini which
-     * defines which relator terms are acceptable (or a colon-delimited list)
-     * @param acceptUnknownRelators Colon-delimited list of tags whose relators
-     * should be indexed even if they are not listed in author-classification.ini.
-     * @return List result
-     */
-    public List<String> getAuthorInitialsFilteredByRelator(Record record,
-        String tagList, String acceptWithoutRelator, String relatorConfig,
-        String acceptUnknownRelators
-    ) {
-        return getAuthorInitialsFilteredByRelator(
-            record, tagList, acceptWithoutRelator, relatorConfig,
-            acceptUnknownRelators, "false"
-        );
-    }
-    
-    /**
-     * Takes a name and cuts it into initials
-     * @param authorName e.g. Yeats, William Butler
-     * @return initials e.g. w b y wb
-     */
-    protected String processInitials(String authorName) {
-        Boolean isPersonalName = false;
-        // we guess that if there is a comma before the end - this is a personal name
-        if ((authorName.indexOf(',') > 0) 
-            && (authorName.indexOf(',') < authorName.length()-1)) {
-            isPersonalName = true;
-        }
-        // get rid of non-alphabet chars but keep hyphens and accents 
-        authorName = authorName.replaceAll("[^\\p{L} -]", "").toLowerCase();
-        String[] names = authorName.split(" "); //split into tokens on spaces
-        // if this is a personal name we'll reorganise to put lastname at the end
-        String result = "";
-        if (isPersonalName) {
-            String lastName = names[0]; 
-            for (int i = 0; i < names.length-1; i++) {
-                names[i] = names[i+1];
-            }
-            names[names.length-1] = lastName;
-        }
-        // put all the initials together in a space separated string
-        for (String name : names) {
-            if (name.length() > 0) {
-                String initial = name.substring(0,1);
-                // if there is a hyphenated name, use both initials
-                int pos = name.indexOf('-');
-                if (pos > 0 && pos < name.length() - 1) {
-                    String extra = name.substring(pos+1, pos+2);
-                    initial = initial + " " + extra;
-                }
-                result += " " + initial; 
-            }
-        }
-        // grab all initials and stick them together
-        String smushAll = result.replaceAll(" ", "");
-        // if it's a long personal name, get all but the last initials as well
-        // e.g. wb for william butler yeats
-        if (names.length > 2 && isPersonalName) {
-            String smushPers = result.substring(0,result.length()-1).replaceAll(" ","");
-            result = result + " " + smushPers;
-        }
-        // now we have initials separate and together
-        if (!result.trim().equals(smushAll)) {
-            result += " " + smushAll; 
-        }
-        result = result.trim();
-        return result;
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/DatabaseManager.java b/import/index_java/src/org/vufind/index/DatabaseManager.java
deleted file mode 100644
index 43a4cb429d8aa74b451684978649cc280da05f66..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/DatabaseManager.java
+++ /dev/null
@@ -1,156 +0,0 @@
-package org.vufind.index;
-/**
- * Database manager.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import org.apache.log4j.Logger;
-import org.solrmarc.tools.SolrMarcIndexerException;
-import java.sql.*;
-
-/**
- * Database manager.
- */
-public class DatabaseManager
-{
-    // Initialize logging category
-    static Logger logger = Logger.getLogger(DatabaseManager.class.getName());
-
-    // Initialize VuFind database connection (null until explicitly activated)
-    private Connection vufindDatabase = null;
-
-    // Shutdown flag:
-    private boolean shuttingDown = false;
-
-    private static ThreadLocal<DatabaseManager> managerCache = 
-        new ThreadLocal<DatabaseManager>()
-        {
-            @Override
-            protected DatabaseManager initialValue()
-            {
-                return new DatabaseManager();
-            }
-        };
-
-    public static DatabaseManager instance()
-    {
-        return managerCache.get();
-    }
-
-    /**
-     * Log an error message and throw a fatal exception.
-     * @param msg message to log
-     */
-    private void dieWithError(String msg)
-    {
-        logger.error(msg);
-        throw new SolrMarcIndexerException(SolrMarcIndexerException.EXIT, msg);
-    }
-
-    /**
-     * Connect to the VuFind database if we do not already have a connection.
-     */
-    private void connectToDatabase()
-    {
-        // Already connected?  Do nothing further!
-        if (vufindDatabase != null) {
-            return;
-        }
-
-        String dsn = ConfigManager.instance().getConfigSetting("config.ini", "Database", "database");
-
-        try {
-            // Parse key settings from the PHP-style DSN:
-            String username = "";
-            String password = "";
-            String classname = "invalid";
-            String prefix = "invalid";
-            if (dsn.substring(0, 8).equals("mysql://")) {
-                classname = "com.mysql.jdbc.Driver";
-                prefix = "mysql";
-            } else if (dsn.substring(0, 8).equals("pgsql://")) {
-                classname = "org.postgresql.Driver";
-                prefix = "postgresql";
-            }
-
-            Class.forName(classname).newInstance();
-            String[] parts = dsn.split("://");
-            if (parts.length > 1) {
-                parts = parts[1].split("@");
-                if (parts.length > 1) {
-                    dsn = prefix + "://" + parts[1];
-                    parts = parts[0].split(":");
-                    username = parts[0];
-                    if (parts.length > 1) {
-                        password = parts[1];
-                    }
-                }
-            }
-
-            // Connect to the database:
-            vufindDatabase = DriverManager.getConnection("jdbc:" + dsn, username, password);
-        } catch (Throwable e) {
-            dieWithError("Unable to connect to VuFind database");
-        }
-
-        Runtime.getRuntime().addShutdownHook(new DatabaseManagerShutdownThread(this));
-    }
-
-    private void disconnectFromDatabase()
-    {
-        if (vufindDatabase != null) {
-            try {
-                vufindDatabase.close();
-            } catch (SQLException e) {
-                System.err.println("Unable to disconnect from VuFind database");
-                logger.error("Unable to disconnect from VuFind database");
-            }
-        }
-    }
-
-    public void shutdown()
-    {
-        disconnectFromDatabase();
-        shuttingDown = true;
-    }
-
-    public Connection getConnection()
-    {
-        connectToDatabase();
-        return vufindDatabase;
-    }
-
-    public boolean isShuttingDown()
-    {
-        return shuttingDown;
-    }
-
-    class DatabaseManagerShutdownThread extends Thread
-    {
-        private DatabaseManager manager;
-
-        public DatabaseManagerShutdownThread(DatabaseManager m)
-        {
-            manager = m;
-        }
-
-        public void run()
-        {
-            manager.shutdown();
-        }
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/DateTools.java b/import/index_java/src/org/vufind/index/DateTools.java
deleted file mode 100644
index 343b382df1cf3376150ec12df90cc61be3a57f71..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/DateTools.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package org.vufind.index;
-/**
- * Date indexing routines.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.VariableField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import org.solrmarc.tools.DataUtil;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Date indexing routines.
- */
-public class DateTools
-{
-    /**
-     * Get all available dates from the record.
-     *
-     * @param  record MARC record
-     * @return set of dates
-     */
-    public Set<String> getDates(final Record record) {
-        Set<String> dates = new LinkedHashSet<String>();
-
-        // First check old-style 260c date:
-        List<VariableField> list260 = record.getVariableFields("260");
-        for (VariableField vf : list260) {
-            DataField df = (DataField) vf;
-            List<Subfield> currentDates = df.getSubfields('c');
-            for (Subfield sf : currentDates) {
-                String currentDateStr = DataUtil.cleanDate(sf.getData());
-                if (currentDateStr != null) dates.add(currentDateStr);
-            }
-        }
-
-        // Now track down relevant RDA-style 264c dates; we only care about
-        // copyright and publication dates (and ignore copyright dates if
-        // publication dates are present).
-        Set<String> pubDates = new LinkedHashSet<String>();
-        Set<String> copyDates = new LinkedHashSet<String>();
-        List<VariableField> list264 = record.getVariableFields("264");
-        for (VariableField vf : list264) {
-            DataField df = (DataField) vf;
-            List<Subfield> currentDates = df.getSubfields('c');
-            for (Subfield sf : currentDates) {
-                String currentDateStr = DataUtil.cleanDate(sf.getData());
-                char ind2 = df.getIndicator2();
-                switch (ind2)
-                {
-                    case '1':
-                        if (currentDateStr != null) pubDates.add(currentDateStr);
-                        break;
-                    case '4':
-                        if (currentDateStr != null) copyDates.add(currentDateStr);
-                        break;
-                }
-            }
-        }
-        if (pubDates.size() > 0) {
-            dates.addAll(pubDates);
-        } else if (copyDates.size() > 0) {
-            dates.addAll(copyDates);
-        }
-
-        return dates;
-    }
-
-    /**
-     * Get the earliest publication date from the record.
-     *
-     * @param  record MARC record
-     * @return earliest date
-     */
-    public String getFirstDate(final Record record) {
-        String result = null;
-        Set<String> dates = getDates(record);
-        for(String current: dates) {
-            if (result == null || Integer.parseInt(current) < Integer.parseInt(result)) {
-                result = current;
-            }
-        }
-        return result;
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/FormatCalculator.java b/import/index_java/src/org/vufind/index/FormatCalculator.java
deleted file mode 100644
index 0c97299cae8c73a1a52fd399e2024bf16480d9c5..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/FormatCalculator.java
+++ /dev/null
@@ -1,327 +0,0 @@
-package org.vufind.index;
-/**
- * Format determination logic.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.VariableField;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Format determination logic.
- */
-public class FormatCalculator
-{
-    /**
-     * Determine Record Format(s)
-     *
-     * @param  record MARC record
-     * @return set of record formats
-     */
-    public Set<String> getFormat(final Record record){
-        Set<String> result = new LinkedHashSet<String>();
-        String leader = record.getLeader().toString();
-        char leaderBit;
-        ControlField fixedField = (ControlField) record.getVariableField("008");
-        DataField title = (DataField) record.getVariableField("245");
-        String formatString;
-        char formatCode = ' ';
-        char formatCode2 = ' ';
-        char formatCode4 = ' ';
-
-        // check if there's an h in the 245
-        if (title != null) {
-            if (title.getSubfield('h') != null){
-                if (title.getSubfield('h').getData().toLowerCase().contains("[electronic resource]")) {
-                    result.add("Electronic");
-                    return result;
-                }
-            }
-        }
-
-        // check the 007 - this is a repeating field
-        List<VariableField> fields = record.getVariableFields("007");
-        Iterator<VariableField> fieldsIter = fields.iterator();
-        if (fields != null) {
-            // TODO: update loop to for(:) syntax, but problem with type casting.
-            ControlField formatField;
-            while(fieldsIter.hasNext()) {
-                formatField = (ControlField) fieldsIter.next();
-                formatString = formatField.getData().toUpperCase();
-                formatCode = formatString.length() > 0 ? formatString.charAt(0) : ' ';
-                formatCode2 = formatString.length() > 1 ? formatString.charAt(1) : ' ';
-                formatCode4 = formatString.length() > 4 ? formatString.charAt(4) : ' ';
-                switch (formatCode) {
-                    case 'A':
-                        switch(formatCode2) {
-                            case 'D':
-                                result.add("Atlas");
-                                break;
-                            default:
-                                result.add("Map");
-                                break;
-                        }
-                        break;
-                    case 'C':
-                        switch(formatCode2) {
-                            case 'A':
-                                result.add("TapeCartridge");
-                                break;
-                            case 'B':
-                                result.add("ChipCartridge");
-                                break;
-                            case 'C':
-                                result.add("DiscCartridge");
-                                break;
-                            case 'F':
-                                result.add("TapeCassette");
-                                break;
-                            case 'H':
-                                result.add("TapeReel");
-                                break;
-                            case 'J':
-                                result.add("FloppyDisk");
-                                break;
-                            case 'M':
-                            case 'O':
-                                result.add("CDROM");
-                                break;
-                            case 'R':
-                                // Do not return - this will cause anything with an
-                                // 856 field to be labeled as "Electronic"
-                                break;
-                            default:
-                                result.add("Software");
-                                break;
-                        }
-                        break;
-                    case 'D':
-                        result.add("Globe");
-                        break;
-                    case 'F':
-                        result.add("Braille");
-                        break;
-                    case 'G':
-                        switch(formatCode2) {
-                            case 'C':
-                            case 'D':
-                                result.add("Filmstrip");
-                                break;
-                            case 'T':
-                                result.add("Transparency");
-                                break;
-                            default:
-                                result.add("Slide");
-                                break;
-                        }
-                        break;
-                    case 'H':
-                        result.add("Microfilm");
-                        break;
-                    case 'K':
-                        switch(formatCode2) {
-                            case 'C':
-                                result.add("Collage");
-                                break;
-                            case 'D':
-                                result.add("Drawing");
-                                break;
-                            case 'E':
-                                result.add("Painting");
-                                break;
-                            case 'F':
-                                result.add("Print");
-                                break;
-                            case 'G':
-                                result.add("Photonegative");
-                                break;
-                            case 'J':
-                                result.add("Print");
-                                break;
-                            case 'L':
-                                result.add("Drawing");
-                                break;
-                            case 'O':
-                                result.add("FlashCard");
-                                break;
-                            case 'N':
-                                result.add("Chart");
-                                break;
-                            default:
-                                result.add("Photo");
-                                break;
-                        }
-                        break;
-                    case 'M':
-                        switch(formatCode2) {
-                            case 'F':
-                                result.add("VideoCassette");
-                                break;
-                            case 'R':
-                                result.add("Filmstrip");
-                                break;
-                            default:
-                                result.add("MotionPicture");
-                                break;
-                        }
-                        break;
-                    case 'O':
-                        result.add("Kit");
-                        break;
-                    case 'Q':
-                        result.add("MusicalScore");
-                        break;
-                    case 'R':
-                        result.add("SensorImage");
-                        break;
-                    case 'S':
-                        switch(formatCode2) {
-                            case 'D':
-                                result.add("SoundDisc");
-                                break;
-                            case 'S':
-                                result.add("SoundCassette");
-                                break;
-                            default:
-                                result.add("SoundRecording");
-                                break;
-                        }
-                        break;
-                    case 'V':
-                        switch(formatCode2) {
-                            case 'C':
-                                result.add("VideoCartridge");
-                                break;
-                            case 'D':
-                                switch(formatCode4) {
-                                    case 'S':
-                                        result.add("BRDisc");
-                                        break;
-                                    case 'V':
-                                    default:
-                                        result.add("VideoDisc");
-                                        break;
-                                }
-                                break;
-                            case 'F':
-                                result.add("VideoCassette");
-                                break;
-                            case 'R':
-                                result.add("VideoReel");
-                                break;
-                            default:
-                                result.add("Video");
-                                break;
-                        }
-                        break;
-                }
-            }
-            if (!result.isEmpty()) {
-                return result;
-            }
-        }
-
-        // check the Leader at position 6
-        leaderBit = leader.charAt(6);
-        switch (Character.toUpperCase(leaderBit)) {
-            case 'C':
-            case 'D':
-                result.add("MusicalScore");
-                break;
-            case 'E':
-            case 'F':
-                result.add("Map");
-                break;
-            case 'G':
-                result.add("Slide");
-                break;
-            case 'I':
-                result.add("SoundRecording");
-                break;
-            case 'J':
-                result.add("MusicRecording");
-                break;
-            case 'K':
-                result.add("Photo");
-                break;
-            case 'M':
-                result.add("Electronic");
-                break;
-            case 'O':
-            case 'P':
-                result.add("Kit");
-                break;
-            case 'R':
-                result.add("PhysicalObject");
-                break;
-            case 'T':
-                result.add("Manuscript");
-                break;
-        }
-        if (!result.isEmpty()) {
-            return result;
-        }
-
-        // check the Leader at position 7
-        leaderBit = leader.charAt(7);
-        switch (Character.toUpperCase(leaderBit)) {
-            // Monograph
-            case 'M':
-                if (formatCode == 'C') {
-                    result.add("eBook");
-                } else {
-                    result.add("Book");
-                }
-                break;
-            // Component parts
-            case 'A':
-                result.add("BookComponentPart");
-                break;
-            case 'B':
-                result.add("SerialComponentPart");
-                break;
-            // Serial
-            case 'S':
-                // Look in 008 to determine what type of Continuing Resource
-                formatCode = fixedField.getData().toUpperCase().charAt(21);
-                switch (formatCode) {
-                    case 'N':
-                        result.add("Newspaper");
-                        break;
-                    case 'P':
-                        result.add("Journal");
-                        break;
-                    default:
-                        result.add("Serial");
-                        break;
-                }
-        }
-
-        // Nothing worked!
-        if (result.isEmpty()) {
-            result.add("Unknown");
-        }
-
-        return result;
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/FullTextTools.java b/import/index_java/src/org/vufind/index/FullTextTools.java
deleted file mode 100644
index 3e11eade3d9c70f18f70b082c38b32ea17873797..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/FullTextTools.java
+++ /dev/null
@@ -1,334 +0,0 @@
-package org.vufind.index;
-/**
- * Full text retrieval indexing routines.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import org.marc4j.marc.Record;
-import java.io.*;
-import java.util.Iterator;
-import java.util.Set;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.apache.log4j.Logger;
-import org.solrmarc.index.SolrIndexer;
-import org.solrmarc.tools.SolrMarcIndexerException;
-
-/**
- * Full text retrieval indexing routines.
- */
-public class FullTextTools
-{
-    // Initialize logging category
-    static Logger logger = Logger.getLogger(FullTextTools.class.getName());
-
-    /**
-     * Load configurations for the full text parser.  Return an array containing the
-     * parser type in the first element and the parser configuration in the second
-     * element.
-     *
-     * @return String[]
-     */
-    public String[] getFulltextParserSettings()
-    {
-        String parserType = ConfigManager.instance().getConfigSetting(
-            "fulltext.ini", "General", "parser"
-        );
-        if (null != parserType) {
-            parserType = parserType.toLowerCase();
-        }
-
-        // Is Aperture active?
-        String aperturePath = ConfigManager.instance().getConfigSetting(
-            "fulltext.ini", "Aperture", "webcrawler"
-        );
-        if ((null == parserType && null != aperturePath)
-            || (null != parserType && parserType.equals("aperture"))
-        ) {
-            String[] array = { "aperture", aperturePath };
-            return array;
-        }
-
-        // Is Tika active?
-        String tikaPath = ConfigManager.instance().getConfigSetting(
-            "fulltext.ini", "Tika", "path"
-        );
-        if ((null == parserType && null != tikaPath)
-            || (null != parserType && parserType.equals("tika"))
-        ) {
-            String[] array = { "tika", tikaPath };
-            return array;
-        }
-
-        // No recognized parser found:
-        String[] array = { "none", null };
-        return array;
-    }
-
-    /**
-     * Extract full-text from the documents referenced in the tags
-     *
-     * @param Record record current MARC record
-     * @param String field spec to search for URLs
-     * @param String only harvest files matching this extension (null for all)
-     * @return String The full-text
-     */
-    public String getFulltext(Record record, String fieldSpec, String extension) {
-        String result = "";
-
-        // Get the web crawler settings (and return no text if it is unavailable)
-        String[] parserSettings = getFulltextParserSettings();
-        if (parserSettings[0].equals("none")) {
-            return null;
-        }
-
-        // Loop through the specified MARC fields:
-        Set<String> fields = SolrIndexer.instance().getFieldList(record, fieldSpec);
-        Iterator<String> fieldsIter = fields.iterator();
-        if (fields != null) {
-            while(fieldsIter.hasNext()) {
-                // Get the current string to work on (and sanitize spaces):
-                String current = fieldsIter.next().replaceAll(" ", "%20");
-                // Filter by file extension
-                if (extension == null || current.endsWith(extension)) {
-                    // Load the parser output for each tag into a string
-                    result = result + harvestWithParser(current, parserSettings);
-                }
-            }
-        }
-        // return string to SolrMarc
-        return result;
-    }
-
-    /**
-     * Extract full-text from the documents referenced in the tags
-     *
-     * @param Record record current MARC record
-     * @param String field spec to search for URLs
-     * @return String The full-text
-     */
-    public String getFulltext(Record record, String fieldSpec) {
-        return getFulltext(record, fieldSpec, null);
-    }
-
-    /**
-     * Extract full-text from the documents referenced in the tags
-     *
-     * @param Record record current MARC record
-     * @return String The full-text
-     */
-    public String getFulltext(Record record) {
-        return getFulltext(record, "856u", null);
-    }
-
-    /**
-     * Clean up XML data generated by Aperture
-     *
-     * @param f file to clean
-     * @return a fixed version of the file
-     */
-    public File sanitizeApertureOutput(File f) throws IOException
-    {
-        //clean up the aperture xml output
-        File tempFile = File.createTempFile("buffer", ".tmp");
-        FileOutputStream fw = new FileOutputStream(tempFile);
-        OutputStreamWriter writer = new OutputStreamWriter(fw, "UTF8");
-
-        //delete this control character from the File and save
-        FileReader fr = new FileReader(f);
-        BufferedReader br = new BufferedReader(fr);
-        while (br.ready()) {
-            writer.write(sanitizeFullText(br.readLine()));
-        }
-        writer.close();
-        br.close();
-        fr.close();
-
-        return tempFile;
-    }
-
-    /**
-     * Clean up bad characters in the full text.
-     *
-     * @param text text to clean
-     * @return cleaned text
-     */
-    public String sanitizeFullText(String text)
-    {
-        String badChars = "[^\\u0009\\u000A\\u000D\\u0020-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]+";
-        return text.replaceAll(badChars, " ");
-    }
-
-    /**
-     * Harvest the contents of a document file (PDF, Word, etc.) using Aperture.
-     * This method will only work if Aperture is properly configured in the
-     * fulltext.ini file.  Without proper configuration, this will simply return an
-     * empty string.
-     *
-     * @param url the url extracted from the MARC tag.
-     * @param aperturePath The path to Aperture
-     * @return full-text extracted from url
-     */
-    public String harvestWithAperture(String url, String aperturePath) {
-        String plainText = "";
-        // Create temp file.
-        File f = null;
-        try {
-            f = File.createTempFile("apt", ".txt");
-        } catch (Throwable e) {
-            dieWithError("Unable to create temporary file for full text harvest.");
-        }
-
-        // Delete temp file when program exits.
-        f.deleteOnExit();
-
-        // Construct the command to call Aperture
-        String cmd = aperturePath + " -o " + f.getAbsolutePath().toString()  + " -x " + url;
-
-        // Call Aperture
-        //System.out.println("Loading fulltext from " + url + ". Please wait ...");
-        try {
-            Process p = Runtime.getRuntime().exec(cmd);
-
-            // Debugging output
-            /*
-            BufferedReader stdInput = new BufferedReader(new
-                InputStreamReader(p.getInputStream()));
-            String s;
-            while ((s = stdInput.readLine()) != null) {
-                System.out.println(s);
-            }
-            */
-
-            // Wait for Aperture to finish
-            p.waitFor();
-        } catch (Throwable e) {
-            logger.error("Problem executing Aperture -- " + e.getMessage());
-        }
-
-        // Parse Aperture XML output
-        Document xmlDoc = null;
-        try {
-            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-            DocumentBuilder db = dbf.newDocumentBuilder();
-            File tempFile = sanitizeApertureOutput(f);
-            xmlDoc = db.parse(tempFile);
-            NodeList nl = xmlDoc.getElementsByTagName("plainTextContent");
-            if(nl != null && nl.getLength() > 0) {
-                Node node = nl.item(0);
-                if (node.getNodeType() == Node.ELEMENT_NODE) {
-                    plainText = plainText + node.getTextContent();
-                }
-            }
-
-            // we'll hold onto the temp file if it failed to parse for debugging;
-            // only set it up to be deleted if we've made it this far successfully.
-            tempFile.deleteOnExit();
-        } catch (Throwable e) {
-            logger.error("Problem parsing Aperture XML -- " + e.getMessage());
-        }
-
-        return plainText;
-    }
-
-    class ErrorStreamHandler extends Thread {
-        InputStream stdErr;
-
-        ErrorStreamHandler(InputStream stdErr) {
-            this.stdErr = stdErr;
-        }
-
-        public void run()
-        {
-            try {
-                InputStreamReader isr = new InputStreamReader(stdErr, "UTF8");
-                BufferedReader br = new BufferedReader(isr);
-                String line = null;
-                while ((line = br.readLine()) != null) {
-                    logger.debug(line);
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    /**
-     * Harvest the contents of a document file (PDF, Word, etc.) using Tika.
-     * This method will only work if Tika is properly configured in the fulltext.ini
-     * file.  Without proper configuration, this will simply return an empty string.
-     *
-     * @param url the url extracted from the MARC tag.
-     * @param scraperPath path to Tika
-     * @return the full-text
-     */
-    public String harvestWithTika(String url, String scraperPath) {
-        StringBuilder stringBuilder= new StringBuilder();
-
-        // Call our scraper
-        //System.out.println("Loading fulltext from " + url + ". Please wait ...");
-        try {
-            ProcessBuilder pb = new ProcessBuilder(
-                "java", "-jar", scraperPath, "-t", "-eutf8", url
-            );
-            Process p = pb.start();
-            ErrorStreamHandler esh = new ErrorStreamHandler(p.getErrorStream());
-            esh.start();
-            BufferedReader stdInput = new BufferedReader(new
-                InputStreamReader(p.getInputStream(), "UTF8"));
-
-            // We'll build the string from the command output
-            String s;
-            while ((s = stdInput.readLine()) != null) {
-                stringBuilder.append(s);
-            }
-        } catch (Throwable e) {
-            logger.error("Problem with Tika -- " + e.getMessage());
-        }
-
-        return sanitizeFullText(stringBuilder.toString());
-    }
-
-    /**
-     * Harvest the contents of a document file (PDF, Word, etc.) using the active parser.
-     *
-     * @param url the URL extracted from the MARC tag.
-     * @param settings configuration settings from {@code getFulltextParserSettings}.
-     * @return the full-text
-     */
-    public String harvestWithParser(String url, String[] settings) {
-        if (settings[0].equals("aperture")) {
-            return harvestWithAperture(url, settings[1]);
-        } else if (settings[0].equals("tika")) {
-            return harvestWithTika(url, settings[1]);
-        }
-        return null;
-    }
-
-    /**
-     * Log an error message and throw a fatal exception.
-     * @param msg message to log
-     */
-    private void dieWithError(String msg)
-    {
-        logger.error(msg);
-        throw new SolrMarcIndexerException(SolrMarcIndexerException.EXIT, msg);
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/GeoTools.java b/import/index_java/src/org/vufind/index/GeoTools.java
deleted file mode 100644
index 4d9a33b4977e662fb42b7acd0b2a3d39466eb99a..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/GeoTools.java
+++ /dev/null
@@ -1,504 +0,0 @@
-package org.vufind.index;
-/**
- * Geographic indexing routines.
- *
- * This code is designed to get latitude and longitude coordinates.
- * Records can have multiple coordinates sets of points and/or rectangles.
- * Points are represented by coordinate sets where N=S E=W.
- *
- * code adapted from xrosecky - Moravian Library
- * https://github.com/moravianlibrary/VuFind-2.x/blob/master/import/index_scripts/geo.bsh
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import java.io.*;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.Set;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import org.apache.log4j.Logger;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.Subfield;
-import org.marc4j.marc.VariableField;
-import org.solrmarc.index.indexer.ValueIndexerFactory;
-import org.solrmarc.index.SolrIndexer;
-import org.solrmarc.tools.PropertyUtils;
-import org.solrmarc.tools.SolrMarcIndexerException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * Geographic indexing routines.
- */
-public class GeoTools
-{
-    private static final Pattern COORDINATES_PATTERN = Pattern.compile("^([eEwWnNsS])(\\d{3})(\\d{2})(\\d{2})");
-    private static final Pattern HDMSHDD_PATTERN = Pattern.compile("^([eEwWnNsS])(\\d+(\\.\\d+)?)");
-    private static final Pattern PMDD_PATTERN = Pattern.compile("^([-+]?\\d+(\\.\\d+)?)");
-    static String datePrefix = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
-    static String vufindLocal = System.getenv("VUFIND_LOCAL_DIR");
-    static String vufindHome = System.getenv("VUFIND_HOME");
-    private static Properties vufindConfigs = null;
-
-    // Initialize logging category
-    static Logger logger = Logger.getLogger(GeoTools.class.getName());
-
-    /**
-     * Constructor
-     */
-    public GeoTools()
-    {
-        try {
-            vufindConfigs = PropertyUtils.loadProperties(ValueIndexerFactory.instance().getHomeDirs(), "vufind.properties");
-        } catch (IllegalArgumentException e) {
-            // If the properties load failed, don't worry about it -- we'll use defaults.
-        }
-    }
-
-    /**
-     * Convert MARC coordinates into long_lat format.
-     *
-     * @param  Record record
-     * @return List   geo_coordinates
-     */
-    public List<String> getAllCoordinates(Record record) {
-        List<String> geo_coordinates = new ArrayList<String>();
-        List<VariableField> list034 = record.getVariableFields("034");
-        if (list034 != null) {
-            for (VariableField vf : list034) {
-                HashMap<Character, String> coords = getCoordinateValues(vf);
-
-                // Check for null coordinates
-                if (validateCoordinateValues(record, coords)) {
-                    // Check and convert coordinates to +/- decimal degrees
-                    Double west = convertCoordinate(coords.get('d'));
-                    Double east = convertCoordinate(coords.get('e'));
-                    Double north = convertCoordinate(coords.get('f'));
-                    Double south = convertCoordinate(coords.get('g'));
-                    if (validateDDCoordinates(record, west, east, north, south)) {
-                        // New Format for indexing coordinates in Solr 5.0 - minX, maxX, maxY, minY
-                        // Note - storage in Solr follows the WENS order, but display is WSEN order
-                        String result = String.format("ENVELOPE(%s,%s,%s,%s)", new Object[] { west, east, north, south });
-                        geo_coordinates.add(result);
-                    } 
-                }
-            }
-        }
-        return geo_coordinates;
-    }
-
-    /**
-     * Get all available coordinates from the record.
-     *
-     * @param  Record record
-     * @return List   geo_coordinates
-     */
-    public List<String> getDisplayCoordinates(Record record) {
-        List<String> geo_coordinates = new ArrayList<String>();
-        List<VariableField> list034 = record.getVariableFields("034");
-        if (list034 != null) {
-            for (VariableField vf : list034) {
-                HashMap<Character, String> coords = getCoordinateValues(vf);
-                // Check for null coordinates
-                if (validateCoordinateValues(record, coords)) {
-                    String result = String.format("%s %s %s %s", new Object[] {  coords.get('d'),  coords.get('e'),  coords.get('f'),  coords.get('g') });
-                    geo_coordinates.add(result);
-                }
-            }
-        }
-        return geo_coordinates;
-    }
-
-    /**
-     * Log coordinate indexing errors to external log file.
-     *
-     * @param  Record record
-     * @param  HashMap coords
-     * @param  String error message
-     */
-    public static void logErrorMessage(Record record, HashMap coords, String message) {
-        // Initialize error logging variables
-        String msgError = message;
-        String recNum = "Not available";
-        ControlField recID = (ControlField) record.getVariableField("001");
-        if (recID != null) {
-            recNum = recID.getData().trim();
-        }
-        String coordinates = "Coordinates:  {" + coords.get('d') + "} {" + coords.get('e') + "} {" + coords.get('f') + "} {" + coords.get('g') + "}";
-
-        String logPath = getLogPath();
-        String logFilename = datePrefix + "_CoordinateErrors.txt";
-        String outPath = logPath + "/" + logFilename;
-
-        // Output Error message
-        logger.error("Not indexing INVALID coordinates for Record ID: " + recNum);
-        logger.error("... " + msgError);
-
-        if (logPath != null) {
-            logger.error("... Check coordinate error log: " + outPath);
-            // Log ID and error message and coordinates in error file
-            try {
-                 PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outPath, true)));
-                 out.println(logFilename + "\t" + recNum + "\t" + msgError + "\t" + coordinates);
-                 out.close();
-            } catch (IOException e) {
-                 System.out.println("io exception occurred");
-                 e.printStackTrace();
-            }
-        } else {
-        // output error that log file cannot be created
-            logger.error("..... No coordinate error log. Check vufind.properties settings...");
-        }
-  
-    }
-
-    /**
-    * Get path for coordinate error log file.
-    *
-    * @return String logPath
-    */
-   public static String getLogPath() {
-        // Get coordinate error log path setting
-        String coordLogPath = PropertyUtils.getProperty(vufindConfigs, "coordinate.log.path");
-
-        //If coordinate.log.path doesn't exist or is not set, try some other places
-        if (coordLogPath == null) {
-            if (vufindLocal != null) {
-                File dir = new File(vufindLocal + "/import");
-                if (dir.exists()) {
-                  coordLogPath = vufindLocal + "/import";
-                }
-            } else if (vufindLocal == null && vufindHome != null) {
-                File dir = new File(vufindHome + "/import");
-                if (dir.exists()) {
-                  coordLogPath = vufindHome + "/import";
-                }
-            } else {
-                coordLogPath = null;
-            }
-        }
-        return coordLogPath;
-    }
-
-    /**
-     * Get all coordinate values from list034
-     *
-     * @param  VariableField vf
-     * @return HashMap full_coords
-     */
-    protected HashMap<Character, String> getCoordinateValues(VariableField vf) {
-        DataField df = (DataField) vf;
-        HashMap<Character, String> coords = new HashMap();
-        for (char code = 'd'; code <= 'g'; code++) {
-            Subfield subfield = df.getSubfield(code);
-            if (subfield != null) {
-                coords.put(code, subfield.getData());
-            }
-        }
-        // If coordinate set is a point with 2 coordinates, fill the empty values.
-        HashMap<Character, String> full_coords = fillEmptyPointCoordinates(coords);
-        return full_coords;
-    }
-
-    /**
-     * If coordinates are a point, fill empty N/S or E/W coordinate
-     *
-     * @param  HashMap coords
-     * @return HashMap full_coords
-     */
-    protected HashMap<Character, String> fillEmptyPointCoordinates(HashMap coords) {
-        HashMap<Character, String> full_coords = coords;
-        if (coords.containsKey('d') && !coords.containsKey('e') && coords.containsKey('f') && !coords.containsKey('g')) {
-            full_coords.put('e', coords.get('d').toString());
-            full_coords.put('g', coords.get('f').toString());
-        }
-        if (coords.containsKey('e') && !coords.containsKey('d') && coords.containsKey('g') && !coords.containsKey('h')) {
-            full_coords.put('d', coords.get('e').toString());
-            full_coords.put('f', coords.get('g').toString());
-        }
-        return full_coords;
-    }
-
-    /**
-    * Check record coordinates to make sure they do not contain null values.
-    *
-    * @param  Record record
-    * @param  HashMap coords
-    * @return boolean
-    */
-   protected boolean validateCoordinateValues(Record record, HashMap coords) {
-        if (coords.containsKey('d') && coords.containsKey('e') && coords.containsKey('f') && coords.containsKey('g')) {
-            return true;
-        }
-        String msgError = "Coordinate values contain null values.";
-        logErrorMessage(record, coords, msgError);
-        return false;
-    }
-
-    /**
-     * Check coordinate type HDMS HDD or +/-DD.
-     *
-     * @param  String coordinateStr
-     * @return Double coordinate
-     */
-    protected Double convertCoordinate(String coordinateStr) {
-        Double coordinate = Double.NaN;
-        Matcher HDmatcher = HDMSHDD_PATTERN.matcher(coordinateStr);
-        Matcher PMDmatcher = PMDD_PATTERN.matcher(coordinateStr);
-        if (HDmatcher.matches()) {
-            String hemisphere = HDmatcher.group(1).toUpperCase();
-            Double degrees = Double.parseDouble(HDmatcher.group(2));
-            // Check for HDD or HDMS
-            if (hemisphere.equals("N") || hemisphere.equals("S")) {
-                if (degrees > 90) {
-                    String hdmsCoordinate = hemisphere+"0"+HDmatcher.group(2);
-                    coordinate = coordinateToDecimal(hdmsCoordinate);
-                } else {
-                    coordinate = Double.parseDouble(HDmatcher.group(2));
-                    if (hemisphere.equals("S")) {
-                        coordinate *= -1;
-                    }
-                }
-            }
-            if (hemisphere.equals("E") || hemisphere.equals("W")) {
-                if (degrees > 180) {
-                    String hdmsCoordinate = HDmatcher.group(0);
-                    coordinate = coordinateToDecimal(hdmsCoordinate);
-                } else {
-                    coordinate = Double.parseDouble(HDmatcher.group(2));
-                    if (hemisphere.equals("W")) {
-                        coordinate *= -1;
-                    }
-                }
-            }
-            return coordinate;
-        } else if (PMDmatcher.matches()) {
-            coordinate = Double.parseDouble(PMDmatcher.group(1));
-            return coordinate;
-        } else {
-            return Double.NaN;
-        }
-    }
-
-    /**
-     * Convert HDMS coordinates to decimal degrees.
-     *
-     * @param  String coordinateStr
-     * @return Double coordinate
-     */
-    protected Double coordinateToDecimal(String coordinateStr) {
-        Matcher matcher = COORDINATES_PATTERN.matcher(coordinateStr);
-        if (matcher.matches()) {
-            String hemisphere = matcher.group(1).toUpperCase();
-            int degrees = Integer.parseInt(matcher.group(2));
-            int minutes = Integer.parseInt(matcher.group(3));
-            int seconds = Integer.parseInt(matcher.group(4));
-            double coordinate = degrees + (minutes / 60.0) + (seconds / 3600.0);
-            if (hemisphere.equals("W") || hemisphere.equals("S")) {
-                coordinate *= -1;
-            }
-            return coordinate;
-        }
-        return Double.NaN;
-    }
-
-    /**
-     * Check decimal degree coordinates to make sure they are valid.
-     *
-     * @param  Record record
-     * @param  Double west, east, north, south
-     * @return boolean
-     */
-    protected boolean validateDDCoordinates(Record record, Double west, Double east, Double north, Double south) {
-        boolean validValues = true;
-        boolean validLines = true;
-        boolean validExtent = true;
-        boolean validNorthSouth = true;
-        boolean validEastWest = true;
-        boolean validCoordDist = true;
-
-        if (validateValues(record, west, east, north, south)) {
-            validLines = validateLines(record, west, east, north, south);
-            validExtent = validateExtent(record, west, east, north, south);
-            validNorthSouth = validateNorthSouth(record, north, south);
-            validEastWest = validateEastWest(record, east, west);
-            validCoordDist = validateCoordinateDistance(record, west, east, north, south);
-        } else {
-            return false;
-        }
-
-        // Validate all coordinate combinations
-        if (!validLines || !validExtent || !validNorthSouth || !validEastWest || !validCoordDist) {
-            return false;
-        } else {
-            return true;
-        }
-    }
-
-    /**
-    * Check decimal degree coordinates to make sure they do not form a line at the poles.
-    *
-    * @param  Record record
-    * @param  Double west, east, north, south
-    * @return boolean
-    */
-   public boolean validateLines(Record record, Double west, Double east, Double north, Double south) {
-    if ((!west.equals(east) && north.equals(south)) && (north == 90 || south == -90)) {
-        String msgError = "Coordinates form a line at the pole";
-        HashMap<Character, String> coords = buildCoordinateHashMap(west, east, north, south);
-        logErrorMessage(record, coords, msgError);
-        return false;
-    }
-    return true;
-   }
-
-    /**
-    * Check decimal degree coordinates to make sure they do not contain null values.
-    *
-    * @param  Record record
-    * @param  Double west, east, north, south
-    * @return boolean
-    */
-   public boolean validateValues(Record record, Double west, Double east, Double north, Double south) {
-     if (west.isNaN() || east.isNaN() || north.isNaN() || south.isNaN()) {
-        String msgError = "Decimal Degree coordinates contain invalid values";
-        HashMap<Character, String> coords = buildCoordinateHashMap(west, east, north, south);
-        logErrorMessage(record, coords, msgError);
-        return false;
-    }
-    return true;
-   }
-
-    /**
-    * Check decimal degree coordinates to make sure they are within map extent.
-    *
-    * @param  Record record
-    * @param  Double west, east, north, south
-    * @return boolean
-    */
-   public boolean validateExtent(Record record, Double west, Double east, Double north, Double south) {
-    if (west > 180.0 || west < -180.0 || east > 180.0 || east < -180.0
-        || north > 90.0 || north < -90.0 || south > 90.0 || south < -90.0
-    ) {
-        String msgError = "Coordinates exceed map extent.";
-        HashMap<Character, String> coords = buildCoordinateHashMap(west, east, north, south);
-        logErrorMessage(record, coords, msgError);
-        return false;
-    }
-    return true;
-   }
-
-    /**
-    * Check decimal degree coordinates to make sure that north is not less than south.
-    *
-    * @param  Record record
-    * @param  Double north, south
-    * @return boolean
-    */
-   public boolean validateNorthSouth(Record record, Double north, Double south) {
-    if (north < south) {
-        String msgError = "North < South.";
-        HashMap<Character, String> coords = buildCoordinateHashMap(Double.NaN, Double.NaN, north, south);
-        logErrorMessage(record, coords, msgError);
-        return false;
-    }
-    return true;
-   }
-
-    /**
-    * Check decimal degree coordinates to make sure that east is not less than west.
-    *
-    * @param  Record record
-    * @param  Double east, west
-    * @return boolean
-    */
-   public boolean validateEastWest(Record record, Double east, Double west) {
-    if (east < west) {
-       // Convert to 360 degree grid
-       if (east <= 0) {
-           east = 360 + east;
-       }
-       if (west < 0) {
-           west = 360 + west;
-       }
-       // Check again
-       if (east < west) {
-           String msgError = "East < West.";
-           HashMap<Character, String> coords = buildCoordinateHashMap(west, east, Double.NaN, Double.NaN);
-           logErrorMessage(record, coords, msgError);
-           return false;
-       }
-    }
-    return true;
-   }
-
-    /**
-     * Check decimal degree coordinates to make sure they are not too close.
-     * Coordinates too close will cause Solr to run out of memory during indexing.
-     *
-     * @param  Record record
-     * @param  Double west, east, north, south
-     * @return boolean
-     */
-    public boolean validateCoordinateDistance(Record record, Double west, Double east, Double north, Double south) {
-        Double distEW = east - west;
-        Double distNS = north - south;
-
-        //Check for South Pole coordinate distance
-        if ((north == -90 || south == -90) && (distNS > 0 && distNS < 0.167)) {
-            String msgError = "Coordinates < 0.167 degrees from South Pole. Coordinate Distance: "+distNS;
-            HashMap<Character, String> coords = buildCoordinateHashMap(west, east, north, south);
-            logErrorMessage(record, coords, msgError);
-            return false;
-        }
-
-        //Check for East-West coordinate distance
-        if ((west == 0 || east == 0) && (distEW > -2 && distEW <0)) {
-            String msgError = "Coordinates within 2 degrees of Prime Meridian. Coordinate Distance: "+distEW;
-            HashMap<Character, String> coords = buildCoordinateHashMap(west, east, north, south);
-            logErrorMessage(record, coords, msgError);
-            return false;
-        }
-        return true;
-    }
-
-    /**
-    * Build coordinate hash map for logging.
-    *
-    * @param  Double west, east, north, south
-    * @return HashMap coords
-    */
-   public HashMap buildCoordinateHashMap (Double west, Double east, Double north, Double south) {
-        HashMap<Character, String> coords = new HashMap();
-        coords.put('d', Double.toString(west));
-        coords.put('e', Double.toString(east));
-        coords.put('f', Double.toString(north));
-        coords.put('g', Double.toString(south));
-        return coords;
-   }
-}
diff --git a/import/index_java/src/org/vufind/index/IllustrationTools.java b/import/index_java/src/org/vufind/index/IllustrationTools.java
deleted file mode 100644
index 36578eff7df8653ad77581a3147a747932830f97..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/IllustrationTools.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package org.vufind.index;
-/**
- * Illustration indexing routines.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import java.util.Iterator;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.VariableField;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.List;
-
-/**
- * Illustration indexing routines.
- */
-public class IllustrationTools
-{
-    /**
-     * Determine if a record is illustrated.
-     *
-     * @param record  current MARC record
-     * @return "Illustrated" or "Not Illustrated"
-     */
-    public String isIllustrated(Record record) {
-        String leader = record.getLeader().toString();
-
-        // Does the leader indicate this is a "language material" that might have extra
-        // illustration details in the fixed fields?
-        if (leader.charAt(6) == 'a') {
-            String currentCode = "";         // for use in loops below
-
-            // List of 008/18-21 codes that indicate illustrations:
-            String illusCodes = "abcdefghijklmop";
-
-            // Check the illustration characters of the 008:
-            ControlField fixedField = (ControlField) record.getVariableField("008");
-            if (fixedField != null) {
-                String fixedFieldText = fixedField.getData().toLowerCase();
-                for (int i = 18; i <= 21; i++) {
-                    if (i < fixedFieldText.length()) {
-                        currentCode = fixedFieldText.substring(i, i + 1);
-                        if (illusCodes.contains(currentCode)) {
-                            return "Illustrated";
-                        }
-                    }
-                }
-            }
-
-            // Now check if any 006 fields apply:
-            List<VariableField> fields = record.getVariableFields("006");
-            Iterator<VariableField> fieldsIter = fields.iterator();
-            if (fields != null) {
-                while(fieldsIter.hasNext()) {
-                    fixedField = (ControlField) fieldsIter.next();
-                    String fixedFieldText = fixedField.getData().toLowerCase();
-                    for (int i = 1; i <= 4; i++) {
-                         if (i < fixedFieldText.length()) {
-                            currentCode = fixedFieldText.substring(i, i + 1);
-                            if (illusCodes.contains(currentCode)) {
-                                return "Illustrated";
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        // Now check for interesting strings in 300 subfield b:
-        List<VariableField> fields = record.getVariableFields("300");
-        Iterator<VariableField> fieldsIter = fields.iterator();
-        if (fields != null) {
-            DataField physical;
-            while(fieldsIter.hasNext()) {
-                physical = (DataField) fieldsIter.next();
-                List<Subfield> subfields = physical.getSubfields('b');
-                for (Subfield sf: subfields) {
-                    String desc = sf.getData().toLowerCase();
-                    if (desc.contains("ill.") || desc.contains("illus.")) {
-                        return "Illustrated";
-                    }
-                }
-            }
-        }
-
-        // If we made it this far, we found no sign of illustrations:
-        return "Not Illustrated";
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/LccnTools.java b/import/index_java/src/org/vufind/index/LccnTools.java
deleted file mode 100644
index 65536146eca97e2d4b1ee2191e8f1e4eb7ec3f9b..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/LccnTools.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package org.vufind.index;
-/**
- * LCCN indexing routines.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import org.marc4j.marc.Record;
-import org.solrmarc.index.SolrIndexer;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-/**
- * LCCN indexing routines.
- */
-public class LccnTools
-{
-    /**
-     * Normalize a single LCCN using the procedure specified at:
-     *      http://www.loc.gov/marc/lccn-namespace.html#normalization
-     * @param lccn
-     * @return Normalized LCCN
-     */
-    public String getNormalizedLCCN(String lccn) {
-        // Remove whitespace:
-        lccn = lccn.replaceAll(" ", "");
-
-        // Chop off anything following a forward slash:
-        String[] parts = lccn.split("/", 2);
-        lccn = parts[0];
-
-        // Normalize any characters following a hyphen to at least six digits:
-        parts = lccn.split("-", 2);
-        if (parts.length > 1) {
-            String secondPart = parts[1];
-            while (secondPart.length() < 6) {
-                secondPart = "0" + secondPart;
-            }
-            lccn = parts[0] + secondPart;
-        }
-
-        // Send back normalized LCCN:
-        return lccn;
-    }
-
-    /**
-     * Extract LCCNs from a record and return them in a normalized format
-     * @param record
-     * @param fieldSpec
-     * @return Set of normalized LCCNs
-     */
-    public Set getNormalizedLCCNs(Record record, String fieldSpec) {
-        // Initialize return value:
-        Set result = new LinkedHashSet();
-
-        // Loop through relevant fields and normalize everything:
-        Set<String> lccns = SolrIndexer.instance().getFieldList(record, fieldSpec);
-        Iterator<String> lccnIter = lccns.iterator();
-        if (lccns != null) {
-            String current;
-            while(lccnIter.hasNext()) {
-                current = getNormalizedLCCN(lccnIter.next());
-                if (current != null && current.length() > 0) {
-                    result.add(current);
-                }
-            }
-        }
-
-        // Send back results:
-        return result;
-    }
-
-    /**
-     * Extract LCCNs from a record and return them in a normalized format
-     * @param record
-     * @return Set of normalized LCCNs
-     */
-    public Set getNormalizedLCCNs(Record record) {
-        // Send in a default fieldSpec if none was provided by the user:
-        return getNormalizedLCCNs(record, "010a");
-    }
-
-    /**
-     * Extract the first valid LCCN from a record and return it in a normalized format
-     * with an optional prefix added (helpful for guaranteeing unique IDs)
-     * @param indexer
-     * @param record
-     * @param fieldSpec
-     * @param prefix
-     * @return Normalized LCCN
-     */
-    public String getFirstNormalizedLCCN(SolrIndexer indexer, 
-        Record record, String fieldSpec, String prefix) {
-        // Loop through relevant fields in search of first valid LCCN:
-        Set<String> lccns = SolrIndexer.instance().getFieldList(record, fieldSpec);
-        Iterator<String> lccnIter = lccns.iterator();
-        if (lccns != null) {
-            String current;
-            while(lccnIter.hasNext()) {
-                current = getNormalizedLCCN(lccnIter.next());
-                if (current != null && current.length() > 0) {
-                    return prefix + current;
-                }
-            }
-        }
-
-        // If we got this far, we couldn't find a valid value:
-        return null;
-    }
-
-    /**
-     * Extract the first valid LCCN from a record and return it in a normalized format
-     * with an optional prefix added (helpful for guaranteeing unique IDs)
-     * @param record
-     * @param fieldSpec
-     * @param prefix
-     * @return Normalized LCCN
-     */
-    public String getFirstNormalizedLCCN(Record record, String fieldSpec, String prefix) {
-        return getFirstNormalizedLCCN(SolrIndexer.instance(), record, fieldSpec, prefix);
-    }
-
-    /**
-     * Extract the first valid LCCN from a record and return it in a normalized format
-     * @param record
-     * @param fieldSpec
-     * @return Normalized LCCN
-     */
-    public String getFirstNormalizedLCCN(Record record, String fieldSpec) {
-        // Send in a default prefix if none was provided by the user:
-        return getFirstNormalizedLCCN(SolrIndexer.instance(), record, fieldSpec, "");
-    }
-
-    /**
-     * Extract the first valid LCCN from a record and return it in a normalized format
-     * @param record
-     * @return Normalized LCCN
-     */
-    public String getFirstNormalizedLCCN(Record record) {
-        // Send in a default fieldSpec/prefix if none were provided by the user:
-        return getFirstNormalizedLCCN(SolrIndexer.instance(), record, "010a", "");
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/PublisherTools.java b/import/index_java/src/org/vufind/index/PublisherTools.java
deleted file mode 100644
index 2fe8f2e3c69c4db9fd4f1d08965631c04355ccd2..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/PublisherTools.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.vufind.index;
-/**
- * Publisher indexing routines.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.VariableField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Publisher indexing routines.
- */
-public class PublisherTools
-{
-    /**
-     * Get all available publishers from the record.
-     *
-     * @param  record MARC record
-     * @return set of publishers
-     */
-    public Set<String> getPublishers(final Record record) {
-        Set<String> publishers = new LinkedHashSet<String>();
-
-        // First check old-style 260b name:
-        List<VariableField> list260 = record.getVariableFields("260");
-        for (VariableField vf : list260)
-        {
-            DataField df = (DataField) vf;
-            String currentString = "";
-            for (Subfield current : df.getSubfields('b')) {
-                currentString = currentString.trim().concat(" " + current.getData()).trim();
-            }
-            if (currentString.length() > 0) {
-                publishers.add(currentString);
-            }
-        }
-
-        // Now track down relevant RDA-style 264b names; we only care about
-        // copyright and publication names (and ignore copyright names if
-        // publication names are present).
-        Set<String> pubNames = new LinkedHashSet<String>();
-        Set<String> copyNames = new LinkedHashSet<String>();
-        List<VariableField> list264 = record.getVariableFields("264");
-        for (VariableField vf : list264)
-        {
-            DataField df = (DataField) vf;
-            String currentString = "";
-            for (Subfield current : df.getSubfields('b')) {
-                currentString = currentString.trim().concat(" " + current.getData()).trim();
-            }
-            if (currentString.length() > 0) {
-                char ind2 = df.getIndicator2();
-                switch (ind2)
-                {
-                    case '1':
-                        pubNames.add(currentString);
-                        break;
-                    case '4':
-                        copyNames.add(currentString);
-                        break;
-                }
-            }
-        }
-        if (pubNames.size() > 0) {
-            publishers.addAll(pubNames);
-        } else if (copyNames.size() > 0) {
-            publishers.addAll(copyNames);
-        }
-
-        return publishers;
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/PunctuationTools.java b/import/index_java/src/org/vufind/index/PunctuationTools.java
deleted file mode 100644
index e71f2b62490913d5b8af3d0a70e2862785e289d0..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/PunctuationTools.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.vufind.index;
-/**
- * Punctuation indexing routines.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import org.marc4j.marc.Record;
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.regex.Pattern;
-import org.solrmarc.index.SolrIndexer;
-
-/**
- * Punctuation indexing routines.
- */
-public class PunctuationTools
-{
-    /**
-     * Normalize trailing punctuation. This mimics the functionality built into VuFind's
-     * textFacet field type, so that you can get equivalent values when indexing into
-     * a string field. (Useful for docValues support).
-     *
-     * Can return null
-     *
-     * @param record current MARC record
-     * @param fieldSpec which MARC fields / subfields need to be analyzed
-     * @return Set containing normalized values
-     */
-    public Set<String> normalizeTrailingPunctuation(Record record, String fieldSpec) {
-        // Initialize our return value:
-        Set<String> result = new LinkedHashSet<String>();
-
-        // Loop through the specified MARC fields:
-        Set<String> input = SolrIndexer.instance().getFieldList(record, fieldSpec);
-        Pattern pattern = Pattern.compile("(?<!\b[A-Z])[.\\s]*$");
-        for (String current: input) {
-            result.add(pattern.matcher(current).replaceAll(""));
-        }
-
-        // If we found no matches, return null; otherwise, return our results:
-        return result.isEmpty() ? null : result;
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/ReadingProgramTools.java b/import/index_java/src/org/vufind/index/ReadingProgramTools.java
deleted file mode 100644
index e342bab130082bded56a9e853b6c60cbcea967f6..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/ReadingProgramTools.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.vufind.index;
-/**
- * Reading program logic courtesy of Chanel Wheeler
- *
- * Example usage:
- *
- * #### In marc_local.properties, insert this:
- * arLvel = custom, getARLevel, (pattern_map.level)
- * rcLevel = custom, getRCLevel, (pattern_map.level)
- * pattern_map.level.pattern_0 = ([0-9]\\.[0-9]).*=>$1
- *
- * #### In solr/vufind/biblio/conf/schema.xml (I'm not aware of any way to localize this),
- * #### add this in the <types> section:
- * <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
- *
- * #### In solr/vufind/biblio/conf/schema.xml, add this in the <fields> section
- * <field name="arLevel" type="tfloat" indexed="true" stored="true"/>
- * <field name="rcLevel" type="tfloat" indexed="true" stored="true"/>
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.VariableField;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Reading program logic courtesy of Chanel Wheeler
- */
-public class ReadingProgramTools
-{
-    /**
-     * Get reading level for Accelerated Reader items
-     *
-     * @param  record
-     * @return AR level
-     */
-     public String getARLevel(Record record) {
-        List readingprograms = record.getVariableFields("526");
-        if (readingprograms != null) {
-            Iterator<VariableField> rpIter = readingprograms.iterator();
-            while(rpIter.hasNext()) {
-                DataField rp = (DataField) rpIter.next();
-                if (rp.getSubfield('a') != null){
-                    if (rp.getSubfield('a').getData().toLowerCase().contains("accelerated reader")) {
-                        return rp.getSubfield('c').getData();
-                    }
-                }
-            }
-        }
-        return null;
-     }
-
-     /**
-     * Get reading level for Reading Counts items
-     *
-     * @param  record
-     * @return RC level
-     */
-     public String getRCLevel(Record record) {
-        List readingprograms = record.getVariableFields("526");
-        if (readingprograms != null) {
-            Iterator<VariableField> rpIter = readingprograms.iterator();
-            while(rpIter.hasNext()) {
-                DataField rp = (DataField) rpIter.next();
-                if (rp.getSubfield('a') != null){
-                    if (rp.getSubfield('a').getData().toLowerCase().contains("reading counts")) {
-                        return rp.getSubfield('c').getData();
-                    }
-                }
-            }
-        }
-        return null;
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/RelatorContainer.java b/import/index_java/src/org/vufind/index/RelatorContainer.java
deleted file mode 100644
index 5d2177e80a35519e466162533de6a767b12921e3..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/RelatorContainer.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.vufind.index;
-/**
- * Singleton for storing relator information.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * Singleton for storing relator information.
- */
-public class RelatorContainer
-{
-   private static ThreadLocal<RelatorContainer> containerCache = 
-        new ThreadLocal<RelatorContainer>()
-        {
-            @Override
-            protected RelatorContainer initialValue()
-            {
-                return new RelatorContainer();
-            }
-        };
-
-    private ConcurrentHashMap<String, String> relatorSynonymLookup = new ConcurrentHashMap<String, String>();
-    private Set<String> knownRelators = new LinkedHashSet<String>();
-
-    public ConcurrentHashMap<String, String> getSynonymLookup()
-    {
-        return relatorSynonymLookup;
-    }
-
-    public Set<String> getKnownRelators()
-    {
-        return knownRelators;
-    }
-
-    public static RelatorContainer instance()
-    {
-        return containerCache.get();
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/UpdateDateTools.java b/import/index_java/src/org/vufind/index/UpdateDateTools.java
deleted file mode 100644
index e09517266d1ff734f222d6d19801c0673d0107bf..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/UpdateDateTools.java
+++ /dev/null
@@ -1,223 +0,0 @@
-package org.vufind.index;
-/**
- * Indexing routines using the UpdateDateTracker.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import java.util.Iterator;
-import java.util.Set;
-import java.text.SimpleDateFormat;
-import org.solrmarc.index.SolrIndexer;
-import org.solrmarc.tools.SolrMarcIndexerException;
-import org.marc4j.marc.Record;
-import org.apache.log4j.Logger;
-
-/**
- * Indexing routines using the UpdateDateTracker.
- */
-public class UpdateDateTools
-{
-    // Initialize logging category
-    static Logger logger = Logger.getLogger(UpdateDateTools.class.getName());
-
-    // the SimpleDateFormat class is not Thread-safe the below line were changes to be not static 
-    // which given the rest of the design of SolrMarc will make them work correctly.
-    private SimpleDateFormat marc005date = new SimpleDateFormat("yyyyMMddHHmmss.S");
-    private SimpleDateFormat marc008date = new SimpleDateFormat("yyMMdd");
-
-    /**
-     * Support method for getLatestTransaction.
-     * @return Date extracted from 005 (or very old date, if unavailable)
-     */
-    private java.util.Date normalize005Date(String input)
-    {
-        // Normalize "null" strings to a generic bad value:
-        if (input == null) {
-            input = "null";
-        }
-
-        // Try to parse the date; default to "millisecond 0" (very old date) if we can't
-        // parse the data successfully.
-        java.util.Date retVal;
-        try {
-            retVal = marc005date.parse(input);
-        } catch(java.text.ParseException e) {
-            retVal = new java.util.Date(0);
-        }
-        return retVal;
-    }
-
-    /**
-     * Support method for getLatestTransaction.
-     * @return Date extracted from 008 (or very old date, if unavailable)
-     */
-    private java.util.Date normalize008Date(String input)
-    {
-        // Normalize "null" strings to a generic bad value:
-        if (input == null || input.length() < 6) {
-            input = "null";
-        }
-
-        // Try to parse the date; default to "millisecond 0" (very old date) if we can't
-        // parse the data successfully.
-        java.util.Date retVal;
-        try {
-            retVal = marc008date.parse(input.substring(0, 6));
-        } catch(java.lang.StringIndexOutOfBoundsException e) {
-            retVal = new java.util.Date(0);
-        } catch(java.text.ParseException e) {
-            retVal = new java.util.Date(0);
-        }
-        return retVal;
-    }
-
-    /**
-     * Extract the latest transaction date from the MARC record.  This is useful
-     * for detecting when a record has changed since the last time it was indexed.
-     *
-     * @param record MARC record
-     * @return Latest transaction date.
-     */
-    public java.util.Date getLatestTransaction(Record record) {
-        // First try the 005 -- this is most likely to have a precise transaction date:
-        Set<String> dates = SolrIndexer.instance().getFieldList(record, "005");
-        if (dates != null) {
-            Iterator<String> dateIter = dates.iterator();
-            if (dateIter.hasNext()) {
-                return normalize005Date(dateIter.next());
-            }
-        }
-
-        // No luck with 005?  Try 008 next -- less precise, but better than nothing:
-        dates = SolrIndexer.instance().getFieldList(record, "008");
-        if (dates != null) {
-            Iterator<String> dateIter = dates.iterator();
-            if (dateIter.hasNext()) {
-                return normalize008Date(dateIter.next());
-            }
-        }
-
-        // If we got this far, we couldn't find a valid value; return an arbitrary date:
-        return new java.util.Date(0);
-    }
-
-
-    /**
-     * Update the index date in the database for the specified core/ID pair.  We
-     * maintain a database of "first/last indexed" times separately from Solr to
-     * allow the history of our indexing activity to be stored permanently in a
-     * fashion that can survive even a total Solr rebuild.
-     */
-    public void updateTracker(String core, String id, java.util.Date latestTransaction)
-    {
-        // Update the database (if necessary):
-        try {
-            UpdateDateTracker.instance().index(core, id, latestTransaction);
-        } catch (java.sql.SQLException e) {
-            // If we're in the process of shutting down, an error is expected:
-            if (!DatabaseManager.instance().isShuttingDown()) {
-                dieWithError("Unexpected database error");
-            }
-        }
-    }
-
-    /**
-     * Get the "first indexed" date for the current record.  (This is the first
-     * time that SolrMarc ever encountered this particular record).
-     *
-     * @param record current MARC record
-     * @param fieldSpec fields / subfields to be analyzed
-     * @param core core name
-     * @return ID string
-     */
-    public String getFirstIndexed(Record record, String fieldSpec, String core) {
-        // Update the database, then send back the first indexed date:
-        updateTracker(core, SolrIndexer.instance().getFirstFieldVal(record, fieldSpec), getLatestTransaction(record));
-        return UpdateDateTracker.instance().getFirstIndexed();
-    }
-
-    /**
-     * Get the "first indexed" date for the current record.  (This is the first
-     * time that SolrMarc ever encountered this particular record).
-     *
-     * @param record current MARC record
-     * @param fieldSpec fields / subfields to be analyzed
-     * @return ID string
-     */
-    public String getFirstIndexed(Record record, String fieldSpec) {
-        return getFirstIndexed(record, fieldSpec, "biblio");
-    }
-
-    /**
-     * Get the "first indexed" date for the current record.  (This is the first
-     * time that SolrMarc ever encountered this particular record).
-     *
-     * @param record current MARC record
-     * @return ID string
-     */
-    public String getFirstIndexed(Record record) {
-        return getFirstIndexed(record, "001", "biblio");
-    }
-
-    /**
-     * Get the "last indexed" date for the current record.  (This is the last time
-     * the record changed from SolrMarc's perspective).
-     *
-     * @param record current MARC record
-     * @param fieldSpec fields / subfields to be analyzed
-     * @param core core name
-     * @return ID string
-     */
-    public String getLastIndexed(Record record, String fieldSpec, String core) {
-        // Update the database, then send back the last indexed date:
-        updateTracker(core, SolrIndexer.instance().getFirstFieldVal(record, fieldSpec), getLatestTransaction(record));
-        return UpdateDateTracker.instance().getLastIndexed();
-    }
-
-    /**
-     * Get the "last indexed" date for the current record.  (This is the last time
-     * the record changed from SolrMarc's perspective).
-     *
-     * @param record current MARC record
-     * @param fieldSpec fields / subfields to analyze
-     * @return ID string
-     */
-    public String getLastIndexed(Record record, String fieldSpec) {
-        return getLastIndexed(record, fieldSpec, "biblio");
-    }
-
-    /**
-     * Get the "last indexed" date for the current record.  (This is the last time
-     * the record changed from SolrMarc's perspective).
-     *
-     * @param record current MARC record
-     * @return ID string
-     */
-    public String getLastIndexed(Record record) {
-        return getLastIndexed(record, "001", "biblio");
-    }
-
-    /**
-     * Log an error message and throw a fatal exception.
-     * @param msg message to log
-     */
-    private void dieWithError(String msg)
-    {
-        logger.error(msg);
-        throw new SolrMarcIndexerException(SolrMarcIndexerException.EXIT, msg);
-    }
-}
\ No newline at end of file
diff --git a/import/index_java/src/org/vufind/index/UpdateDateTracker.java b/import/index_java/src/org/vufind/index/UpdateDateTracker.java
deleted file mode 100644
index c43aa7a4077fb946e55b5a3d45bd36b76e310bb7..0000000000000000000000000000000000000000
--- a/import/index_java/src/org/vufind/index/UpdateDateTracker.java
+++ /dev/null
@@ -1,208 +0,0 @@
-package org.vufind.index;
-/**
- * Class for managing record update dates.
- *
- * Copyright (C) Villanova University 2017.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-import java.sql.*;
-import java.text.SimpleDateFormat;
-
-/**
- * Class for managing record update dates.
- */
-public class UpdateDateTracker
-{
-    private Connection db;
-    private String core;
-    private String id;
-    private SimpleDateFormat iso8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
-
-    private Timestamp firstIndexed;
-    private Timestamp lastIndexed;
-    private Timestamp lastRecordChange;
-    private Timestamp deleted;
-
-    PreparedStatement insertSql;
-    PreparedStatement selectSql;
-    PreparedStatement updateSql;
-
-    private static ThreadLocal<UpdateDateTracker> trackerCache = 
-        new ThreadLocal<UpdateDateTracker>()
-        {
-            @Override
-            protected UpdateDateTracker initialValue()
-            {
-                try {
-                    return new UpdateDateTracker(DatabaseManager.instance().getConnection());
-                } catch (SQLException e) {
-                    throw new RuntimeException(e.getMessage());
-                }
-            }
-        };
-
-    public static UpdateDateTracker instance()
-    {
-        return trackerCache.get();
-    }
-
-    /* Private support method: create a row in the change_tracker table.
-     */
-    private void createRow(Timestamp newRecordChange) throws SQLException
-    {
-        // Save new values to the object:
-        java.util.Date rightNow = new java.util.Date();
-        firstIndexed = lastIndexed = new Timestamp(rightNow.getTime());
-        lastRecordChange = newRecordChange;
-        
-        // Save new values to the database:
-        insertSql.setString(1, core);
-        insertSql.setString(2, id);
-        insertSql.setTimestamp(3, firstIndexed);
-        insertSql.setTimestamp(4, lastIndexed);
-        insertSql.setTimestamp(5, lastRecordChange);
-        insertSql.executeUpdate();
-    }
-
-    /* Private support method: read a row from the change_tracker table.
-     */
-    private boolean readRow() throws SQLException
-    {
-        selectSql.setString(1, core);
-        selectSql.setString(2, id);
-        ResultSet result = selectSql.executeQuery();
-        
-        // No results?  Free resources and return false:
-        if (!result.first()) {
-            result.close();
-            return false;
-        }
-        
-        // If we got this far, we have results -- load them into the object:
-        firstIndexed = result.getTimestamp(1);
-        lastIndexed = result.getTimestamp(2);
-        lastRecordChange = result.getTimestamp(3);
-        deleted = result.getTimestamp(4);
-
-        // Free resources and report success:
-        result.close();
-        return true;
-    }
-
-    /* Private support method: update a row in the change_tracker table.
-     */
-    private void updateRow(Timestamp newRecordChange) throws SQLException
-    {
-        // Save new values to the object:
-        java.util.Date rightNow = new java.util.Date();
-        lastIndexed = new Timestamp(rightNow.getTime());
-        // If first indexed is null, we're restoring a deleted record, so
-        // we need to treat it as new -- we'll use the current time.
-        if (firstIndexed == null) {
-            firstIndexed = lastIndexed;
-        }
-        lastRecordChange = newRecordChange;
-
-        // Save new values to the database:
-        updateSql.setTimestamp(1, firstIndexed);
-        updateSql.setTimestamp(2, lastIndexed);
-        updateSql.setTimestamp(3, lastRecordChange);
-        updateSql.setNull(4, java.sql.Types.NULL);
-        updateSql.setString(5, core);
-        updateSql.setString(6, id);
-        updateSql.executeUpdate();
-    }
-
-    /* Constructor:
-     */
-    public UpdateDateTracker(Connection dbConnection) throws SQLException
-    {
-        db = dbConnection;
-        insertSql = db.prepareStatement(
-            "INSERT INTO change_tracker(core, id, first_indexed, last_indexed, last_record_change) " +
-            "VALUES(?, ?, ?, ?, ?);");
-        selectSql = db.prepareStatement(
-            "SELECT first_indexed, last_indexed, last_record_change, deleted " +
-            "FROM change_tracker WHERE core = ? AND id = ?;",
-            ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
-        updateSql = db.prepareStatement("UPDATE change_tracker " +
-            "SET first_indexed = ?, last_indexed = ?, last_record_change = ?, deleted = ? " +
-            "WHERE core = ? AND id = ?;");
-    }
-
-    /* Finalizer
-     */
-    protected void finalize() throws SQLException, Throwable
-    {
-        insertSql.close();
-        selectSql.close();
-        updateSql.close();
-        super.finalize();
-    }
-
-    /* Get the first indexed date (IMPORTANT: index() must be called before this method)
-     */
-    public String getFirstIndexed()
-    {
-        return iso8601.format(new java.util.Date(firstIndexed.getTime()));
-    }
-
-    /* Get the last indexed date (IMPORTANT: index() must be called before this method)
-     */
-    public String getLastIndexed()
-    {
-        return iso8601.format(new java.util.Date(lastIndexed.getTime()));
-    }
-
-    /* Update the database to indicate that the record has just been received by the indexer:
-     */
-    public void index(String selectedCore, String selectedId, java.util.Date recordChange) throws SQLException
-    {
-        // If core and ID match the values currently in the class, we have already
-        // indexed the record and do not need to repeat ourselves!
-        if (selectedCore.equals(core) && selectedId.equals(id)) {
-            return;
-        }
-
-        // If we made it this far, we need to update the database, so let's store
-        // the current core/ID pair we are operating on:
-        core = selectedCore;
-        id = selectedId;
-
-        // Convert incoming java.util.Date to a Timestamp:
-        Timestamp newRecordChange = new Timestamp(recordChange.getTime());
-
-        // No row?  Create one!
-        if (!readRow()) {
-            createRow(newRecordChange);
-        // Row already exists?  See if it needs to be updated:
-        } else {
-            // Are we restoring a previously deleted record, or was the stored 
-            // record change date before current record change date?  Either way,
-            // we need to update the table!
-            //
-            // Note that we check for a time difference of at least one second in
-            // order to count as a change.  Because dates are stored with second
-            // precision, some of the date conversions have been known to create
-            // minor inaccuracies in the millisecond range, which used to cause
-            // false positives.
-            if (deleted != null || 
-                Math.abs(lastRecordChange.getTime() - newRecordChange.getTime()) > 999) {
-                updateRow(newRecordChange);
-            }
-        }
-    }
-}
diff --git a/import/index_scripts/README_SCRIPTS b/import/index_scripts/README_SCRIPTS
deleted file mode 100644
index 69ad62c6d21c5964a59c60c466afd69f0e5d206d..0000000000000000000000000000000000000000
--- a/import/index_scripts/README_SCRIPTS
+++ /dev/null
@@ -1,3 +0,0 @@
-This is the directory in which you should place java-like beanshell scripts for handling custom indexing functions via dynamic scripts.
-
-Note that use of beanshell is discouraged now that java can be dynamically compiled; see the index_java directory instead.
\ No newline at end of file
diff --git a/import/index_scripts/accessInf.bsh b/import/index_scripts/accessInf.bsh
deleted file mode 100644
index 0eb06fa8f83fa58b727415282a3c985f5aecd4fd..0000000000000000000000000000000000000000
--- a/import/index_scripts/accessInf.bsh
+++ /dev/null
@@ -1,630 +0,0 @@
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/*
- * Copyright (C) 2012 Leander Seige, seige@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Leander Seige
- * @author   Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-static final Logger logger = Logger.getLogger("de.ubl.import.accessInf");
-static final HashMap quocosaMap = new HashMap(){{
-    put( "article"          , "ElectronicArticle" );
-    put( "bachelorthesis"   , "ElectronicThesis" );
-    put( "book"             , "eBook" );
-    put( "bookpart"         , "ElectronicArticle" );
-    put( "conferenceobject" , "ElectronicArticle" );
-    put( "doctoralthesis"   , "ElectronicThesis" );
-    put( "lecture"          , "ElectronicArticle" );
-    put( "masterthesis"     , "ElectronicThesis" );
-    put( "musicalnotation"  , "ElectronicMusicalScore" );
-    put( "other"            , "ElectronicResourceRemoteAccess" );
-    put( "periodical"       , "ElectronicJournal" );
-    put( "periodicalpart"   , "ElectronicArticle" );
-    put( "preprint"         , "ElectronicArticle" );
-    put( "report"           , "eBook" );
-    put( "studythesis"      , "ElectronicThesis" );
-    put( "workingpaper"     , "ElectronicArticle" );
-}};
-// Ticket #2061
-// List of source id's
-static final HashSet erSet = new HashSet() {{
-    add("16");
-    add("17");
-    add("18");
-    add("19");
-}};
-
-public Set getAccessInfOld( Record record ) {
-
-	Set result = new LinkedHashSet();
-
-	String source_id = indexer.getFirstFieldVal(record, "980b");
-
-	// check the 007 - this is a repeating field
-	List fields = record.getVariableFields("007");
-	Iterator fieldsIter = fields.iterator();
-	if (fields != null) {
-		ControlField formatField;
-		while(fieldsIter.hasNext()) {
-			formatField = (ControlField) fieldsIter.next();
-			formatCode = formatField.getData().toUpperCase().charAt(0);
-			switch (formatCode) {
-				case 'A':
-					switch(formatField.getData().toUpperCase().charAt(1)) {
-						case 'D':
-							result.add("Atlas");
-							break;
-						default:
-							result.add("Map");
-							break;
-					}
-					break;
-				case 'C':
-					switch(formatField.getData().toUpperCase().charAt(1)) {
-						case 'A':
-							result.add("TapeCartridge");
-							break;
-						case 'B':
-							result.add("ChipCartridge");
-							break;
-						case 'C':
-							result.add("DiscCartridge");
-							break;
-						case 'F':
-							result.add("TapeCassette");
-							break;
-						case 'H':
-							result.add("TapeReel");
-							break;
-						case 'J':
-							result.add("FloppyDisk");
-							break;
-						case 'M':
-						case 'O':
-							result.add("CDROM");
-							break;
-						case 'R':
-							// Do not return - this will cause anything with an
-							// 856 field to be labeled as "Electronic"
-							break;
-						default:
-							result.add("Software");
-							break;
-					}
-					break;
-				case 'D':
-					result.add("Globe");
-					break;
-				case 'F':
-					result.add("Braille");
-					break;
-				case 'G':
-					switch(formatField.getData().toUpperCase().charAt(1)) {
-						case 'C':
-						case 'D':
-							result.add("Filmstrip");
-							break;
-						case 'T':
-							result.add("Transparency");
-							break;
-						default:
-							result.add("Slide");
-							break;
-					}
-					break;
-				case 'H':
-					result.add("Microfilm");
-					break;
-				case 'K':
-					switch(formatField.getData().toUpperCase().charAt(1)) {
-						case 'C':
-							result.add("Collage");
-							break;
-						case 'D':
-							result.add("Drawing");
-							break;
-						case 'E':
-							result.add("Painting");
-							break;
-						case 'F':
-							result.add("Print");
-							break;
-						case 'G':
-							result.add("Photonegative");
-							break;
-						case 'J':
-							result.add("Print");
-							break;
-						case 'L':
-							result.add("Drawing");
-							break;
-						case 'O':
-							result.add("FlashCard");
-							break;
-						case 'N':
-							result.add("Chart");
-							break;
-						default:
-							result.add("Photo");
-							break;
-					}
-					break;
-				case 'M':
-					switch(formatField.getData().toUpperCase().charAt(1)) {
-						case 'F':
-							result.add("VideoCassette");
-							break;
-						case 'R':
-							result.add("Filmstrip");
-							break;
-						default:
-							result.add("MotionPicture");
-							break;
-					}
-					break;
-				case 'O':
-					result.add("Kit");
-					break;
-				case 'Q':
-					result.add("MusicalScore");
-					break;
-				case 'R':
-					result.add("SensorImage");
-					break;
-				case 'S':
-					switch(formatField.getData().toUpperCase().charAt(1)) {
-						case 'D':
-							result.add("SoundDisc");
-							break;
-						case 'S':
-							result.add("SoundCassette");
-							break;
-						default:
-							result.add("SoundRecording");
-							break;
-					}
-					break;
-				case 'V':
-					switch(formatField.getData().toUpperCase().charAt(1)) {
-						case 'C':
-							result.add("VideoCartridge");
-							break;
-						case 'D':
-							result.add("VideoDisc");
-							break;
-						case 'F':
-							result.add("VideoCassette");
-							break;
-						case 'R':
-							result.add("VideoReel");
-							break;
-						default:
-							result.add("Video");
-							break;
-					}
-					break;
-			}
-		}
-	}
-    if (!result.isEmpty()) return result;
-
-	// check the Leader at position 6
-	String leader = record.getLeader().toString();
-    char leaderBit = leader.charAt(6);
-	switch (Character.toUpperCase(leaderBit)) {
-		case 'C':
-		case 'D':
-			result.add("MusicalScore");
-			break;
-		case 'E':
-		case 'F':
-			result.add("Map");
-			break;
-		case 'G':
-			result.add("Slide");
-			break;
-		case 'I':
-			result.add("SoundRecording");
-			break;
-		case 'J':
-			result.add("MusicRecording");
-			break;
-		case 'K':
-			result.add("Photo");
-			break;
-		case 'M':
-			result.add("Electronic");
-			break;
-		case 'O':
-		case 'P':
-			result.add("Kit");
-			break;
-		case 'R':
-			result.add("PhysicalObject");
-			break;
-		case 'T':
-			result.add("Manuscript");
-			break;
-	}
-    if (!result.isEmpty()) return result;
-
-    ControlField fixedField = (ControlField) record.getVariableField("008");
-	// check the Leader at position 7
-	leaderBit = leader.charAt(7);
-	switch (Character.toUpperCase(leaderBit)) {
-		// Monograph
-		case 'M':
-			if (formatCode == 'C') {
-				result.add("eBook");
-			} else {
-				result.add("Book");
-			}
-			break;
-			// Serial
-		case 'S':
-			// Look in 008 to determine what type of Continuing Resource
-			formatCode = fixedField.getData().toUpperCase().charAt(21);
-			switch (formatCode) {
-				case 'N':
-					result.add("Newspaper");
-                    break;
-                case 'P':
-                    result.add("Journal");
-                    break;
-                default:
-                    result.add("Serial");
-                    break;
-            }
-    }
-
-	// Nothing worked!
-	if ( result.isEmpty() ) {
-        result.add("Unknown");
-    }
-
-    return result;
-}
-
-public Set getAccessInf( Record record ) {
-
-    logger.setLevel( Level.WARNING ); // WARNING,FINE,INFO,ALL and so on
-
-	Set result = new LinkedHashSet();
-
-	String source_id = indexer.getFirstFieldVal(record, "980b");
-
-    // Ticket #2061
-    if( erSet.contains( source_id ) ) {
-		result.add( "Electronic" );
-		return result;
-    }
-
-    // Source Id '008' wird wie Source Id '000' behandelt
-
-    if (source_id.equals("3")) { // um NEP Facette erweitern
-		result.add("NewPublications");
-		logger.info( "access: 3 New Pub..");
-		return result;
-	} else if(source_id.equals("4")) { // um PDA erweitern
-		result.add("Electronic");
-		logger.info( "access: 4 Elec.. Res..");
-		return result;
-	} else if(source_id.equals("6")) { // Alle Datensätze mit 006 in Feld 980 b werden als ElectronicResources gekennzeichnet. #652
-		result.add("Electronic");
-		logger.info( "access: 6 Elec.. Res..");
-		return result;
-	} else if(source_id.equals("7")) { // HMT # PAO # Anpassung von format.bsh und accessInf.bsh für die Indexierung #655
-		result.add("Electronic");
-		logger.info( "access: 7 Elec.. Res..");
-		return result;
-	} else if(source_id.equals("8")) { // HMT # LFER # Anpassung von format.bsh und accessInf.bsh für die Indexierung #658
-		result.add("Electronic");
-		logger.info( "access: 8 Elec.. Res..");
-		return result;
-	} else if(source_id.equals("9")) { // HMT # Early Music Online # Anpassung von format.bsh und accessInf.bsh für die Indexierung #664
-		result.add("Electronic");
-		logger.info( "access: 9 Elec.. Res..");
-		return result;
-	} else if(source_id.equals("10")) { // MTC # Early Music Online # Anpassung von format.bsh und accessInf.bsh für die Indexierung #664
-		result.add("Electronic");
-		logger.info( "access: 10 Elec.. Res.." );
-		return result;
-	} else if(source_id.equals("15")) { // IMSLP # 015
-		result.add("Electronic");
-		logger.info( "access: 15 Elec.. Res..");
-		return result;
-	} else if(source_id.equals("20")) { // GALLICA Ticket #1258 und NEU #1574
-		result.add("ElectronicMusicalScore");
-		logger.info( "access: 20 Elec.. Res.. GALLICA");
-		return result;
-	}
-
-
-	String leader = record.getLeader().toString();
-	char leaderBit;
-	ControlField fixedField = (ControlField) record.getVariableField("008");
-	char formatCode = ' ';
-
-	String val;
-	Subfield s;
-
-	fs = record.getVariableFields("935");
-	if (fs != null) {
-		fsI = fs.iterator();
-		DataField hsf;
-		while (fsI.hasNext()) {
-
-			hsf = (DataField) fsI.next();
-
-            Subfield bSubfield = hsf.getSubfield('b');
-
-			List ss = hsf.getSubfields('c');
-			if (ss != null) {
-				Iterator ssI = ss.iterator();
-				while (ssI.hasNext()) {
-					s = (Subfield) ssI.next();
-					val = s.getData();
-					if(val.contains("hs")) {
-                        // Ticket #1055
-                        if( bSubfield != null && bSubfield.getData().contains("cofz")) {
-                            result.add("Electronic");
-                        }
-                    }
-				}
-			}
-		}
-	}
-
-    // Ticket #1555 Qucosa
-    if( source_id.equals( "22" ) ) {
-
-        List fields = record.getVariableFields( "500" );
-        if (fields != null) {
-            Iterator fieldsIter = fields.iterator();
-            while( fieldsIter.hasNext() ) {
-                DataField dataField = (DataField) fieldsIter.next();
-                List subfields = dataField.getSubfields( 'a' );
-                Iterator subfieldsIter = subfields.iterator();
-                if( subfields != null ) {
-                    if( subfieldsIter.hasNext() ) {
-                        String data = subfieldsIter.next().getData().toLowerCase();
-                        String value = quocosaMap.get( data );
-                        if( value != null ) {
-                            String record_id = indexer.getFirstFieldVal( record, "980a" );
-                            result.add( value );
-                            logger.info( "FOUND QUCOSA record_id => " + record_id + ", VALUE => " + value );
-                            return result;
-					}
-                    }
-                }
-            }
-        }
-    }
-
-    // Ticket #1496 #7
-    if( source_id.equals( "9" ) || source_id.equals( "10" )
-        || source_id.equals( "14" ) || source_id.equals( "15" ) ) {
-        result.add( "ElectronicMusicalScore" );
-        return result;
-    }
-
-    if(source_id.equals("12")) { // Ticket #595
-		result.add("Electronic");
-        logger.info( "format: 12 Elec.. Res.." );
-		return result;
-	}
-
-    if(source_id.equals("13")) { // Ticket #597
-		result.add("Electronic");
-        logger.info( "format: 13 Elec.. Res.." );
-		return result;
-	}
-
-    String leader = record.getLeader().toString();
-
-    if( source_id.equals( "0" ) || source_id.equals( "8" ) ) {
-
-        // check the Leader at position 7
-        // Distinguish serials, articles, monographs
-        leaderBit = leader.charAt(7);
-
-        DataField field935 = (DataField) record.getVariableField("935");
-
-        Set f935b = new LinkedHashSet();
-        Set f935c = new LinkedHashSet();
-
-        fs = record.getVariableFields("935");
-        if (fs != null) {
-            fsI = fs.iterator();
-            DataField hsf;
-            while (fsI.hasNext()) {
-                hsf = (DataField) fsI.next();
-                List ss = hsf.getSubfields('c');
-                if (ss != null) {
-                    Iterator ssI = ss.iterator();
-                    while (ssI.hasNext()) {
-                        s = (Subfield) ssI.next();
-                        val = s.getData();
-                        f935c.add(val);
-					}
-                }
-                ss = hsf.getSubfields('b');
-                if (ss != null) {
-                    Iterator ssI = ss.iterator();
-                    while (ssI.hasNext()) {
-                        s = (Subfield) ssI.next();
-                        val = s.getData();
-                        f935b.add(val);
-                    }
-                }
-            }
-        }
-
-        char leaderBit7 = Character.toUpperCase(leaderBit);
-        if( leaderBit7 == 'S' ) {
-            // Serial
-            // Look in 008 to determine what type of Continuing Resource
-            ControlField fixedField800 = (ControlField) record.getVariableField("008");
-            formatCode = fixedField800.getData().toUpperCase().charAt(21);
-            switch (formatCode) {
-                case 'N':
-                    if( f935b.contains( "cofz" )) {
-                        result.add( "ElectronicNewspaper" );
-                    } else {
-                        result.add( "Newspaper" );
-                    }
-					break;
-                case 'P':
-                    if( f935b.contains("cofz")) {
-							result.add("ElectronicJournal");
-                    } else if( f935b.contains( "soerd" )) {
-                        result.add( "ElectronicResourceDataCarrier" );
-                    } else {
-                        result.add("Journal");
-						}
-                    break;
-                case 'M':
-                    if( f935b.contains("cofz")) {
-                        result.add( "ElectronicSerial" );
-                    } else {
-					result.add("Serial");
-                    }
-					break;
-			}
-			// Article
-        } else if( leaderBit7 == 'A') {
-            if( f935b.contains( "cofz" )) {
-                result.add( "ElectronicArticle" );
-            } else {
-                result.add("Article");
-            }
-        // Monograph
-        } else if( leaderBit7 == 'M' ) {
-
-            if( f935c.contains( "hs" )) {
-                if( f935b.contains( "cofz" )) {
-                    result.add( "ElectronicThesis" );
-                } else {
-                    result.add( "Thesis" );
-                }
-                return result;
-            } else if( f935b.contains( "cofz" )) {
-                result.add( "eBook" );
-            } else {
-                // Check 935c (PICA 1140) to identify notated music and maps
-                if( f935c.contains( "muno" )) {
-                    result.add( "NotatedMusic" );
-                } else if( f935c.contains( "kart" )) {
-                    result.add( "Map" );
-                    // #1997
-                    if( f935b.contains("cofz") ) result.add( "ElectronicResourceRemoteAccess" );
-                // Check 935b (PICA 1130) to identify all kinds of formats
-                } else if( f935b.contains( "arbtrans" )) {
-                    result.add( "Transparency" );
-                } else if( f935b.contains("cdda") ) {
-                    result.add( "CD" );
-                } else if( f935b.contains("crom") ) {
-                    result.add( "CDROM" );
-                } else if( f935b.contains("dias") ) {
-                    result.add( "Slide" );
-                } else if( f935b.contains("disk") ) {
-                    result.add( "FloppyDisk" );
-                } else if( f935b.contains("druck") ) {
-                    result.add( "Book" );
-                } else if( f935b.contains("dvda") ) {
-                    result.add( "DVDAudio" );
-                } else if( f935b.contains("dvdr") ) {
-                    result.add( "DVDROM" );
-                } else if( f935b.contains("dvdv") ) {
-                    result.add( "DVDVideo" );
-                } else if( f935b.contains("anfi") ) {
-                    result.add( "AudioVisualMedia" );
-                } else if( f935b.contains("foto") ) {
-                    result.add( "Photo" );
-                } else if( f935b.contains("handschr") ) {
-                    result.add( "Manuscript" );
-                } else if( f935b.contains("kunstbl") ) {
-                    result.add( "ArtPrint" );
-                } else if( f935b.contains("nachl") ) {
-                    result.add( "Nachlass" );
-                } else if( f935b.contains("plakat") ) {
-                    result.add( "Placard" );
-                } else if( f935b.contains("scha") ) {
-                    result.add( "Record" );
-                } else if( f935b.contains("soerd") ) {
-                    result.add( "ElectronicResourceDataCarrier" );
-                } else if( f935b.contains("sobildtt") ) {
-                    result.add( "AudioVisualMedia" );
-                } else if( f935b.contains("sott") ) {
-                    result.add( "SoundRecordingMedium" );
-                } else if( f935b.contains("tonbd") ) {
-                    result.add( "AudioTape" );
-                } else if( f935b.contains("tonks") ) {
-                    result.add( "AudioTape" );
-                } else if( f935b.contains("vika") ) {
-                    result.add( "VideoTape" );
-                } else if( f935b.contains("blindendr") ) {
-                    result.add( "Braille" );
-                } else if( f935b.contains("bray") ) {
-                    result.add( "BluRayDisc" );
-                } else if( f935b.contains("ckop") ) {
-                    result.add( "Microfiche" );
-                } else if( f935b.contains("cofz") ) {
-                    result.add( "ElectronicResourceRemoteAccess" );
-                } else if( f935b.contains("gegenst") ) {
-                    result.add( "PhysicalObject" );
-                } else if( f935b.contains("lkop") ) {
-                    result.add( "Microfilm" );
-                } else if( f935b.contains("skop") ) {
-                    result.add( "Microform" );
-                } else {
-                    result.add( "Book" );
-                }
-            }
-        } // 'S', 'A' und 'M'
-
-        if (!result.isEmpty()) {
-            return result;
-        }
-
-        // Check for Combination of Media (Kit)
-        // if 007 = zm return "Kit" break
-        ControlField fixedField700 = (ControlField) record.getVariableField("007");
-        if( fixedField700 != null && fixedField700.equals( "zm")) {
-            result.add( "Kit" );
-        } else if( leader.charAt(6) == 'o') { // if LDR[6] = o return "Kit" break
-            result.add( "Kit" );
-        } 
-
-    } // source_id 0 or 8
-
-    if (!result.isEmpty()) {
-        return result;
-    }
-
-    return getAccessInfOld( record );
-}
diff --git a/import/index_scripts/attached_DE-15.bsh b/import/index_scripts/attached_DE-15.bsh
deleted file mode 100644
index 457b98457778e4d61ab2e23e8fc4c9b4976a8571..0000000000000000000000000000000000000000
--- a/import/index_scripts/attached_DE-15.bsh
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2014 finc team, team@finc.info
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-import org.marc4j.marc.Record;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-static final Logger logger    = Logger.getLogger("de.ubl.import.attached_DE15");
-static final Set institutions = new LinkedHashSet(){{
-    add( "DE-15" );
-}};
-
-/*
- * Ticket #2048
- */
-public String getAttached( Record record ) {
-
-    logger.setLevel( Level.WARNING ); // FINE,INFO,ALL,WARNING and so on
-
-    String result = "";
-    String institution = indexer.getFirstFieldVal(record, "852a");
-    if( institution != null && institutions.contains( institution ) ) {
-        String timestamp = indexer.getFirstFieldVal(record, "852z");
-        if( timestamp != null ) result = timestamp;
-    }
-    return result;
-}
diff --git a/import/index_scripts/finc_class.bsh b/import/index_scripts/finc_class.bsh
deleted file mode 100644
index e6eea4bef3af8dba1184c7c8518f16a9fdd126e7..0000000000000000000000000000000000000000
--- a/import/index_scripts/finc_class.bsh
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * Copyright (C) 2012 finc team, team@finc.info
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   finc team
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-static final Logger logger = Logger.getLogger("de.ubl.import.finc_class");
-
-public Set getFincClass(Record record) {
-
-    logger.setLevel( Level.WARNING ); // FINE,INFO,ALL,WARNING and so on
-
-    Set result = new LinkedHashSet();
-    String val;
-    Subfield s;
-
-    HashMap rvk_sMap = new HashMap();
-    HashMap ddc_sMap = new HashMap();
-    HashMap bic_sMap = new HashMap();
-    HashMap rvk_rMap = new HashMap();
-    HashMap ddc_rMap = new HashMap();
-    HashMap bic_rMap = new HashMap();
-
-    // sMap.put("1","A[A-Z] [0-9]+.*");
-    // rMap.put("1","Allgemeines");
-
-    // RVK	
-    rvk_sMap.put("0", "A[A-Z] [0-9]+.*");
-    rvk_rMap.put("0", "Allgemeines");
-    rvk_sMap.put("1", "B[A-Z] [0-9]+.*");
-    rvk_rMap.put("1", "Theologie und Religionswissenschaft");
-    rvk_sMap.put("2", "C[A-I] [0-9]+.*");
-    rvk_rMap.put("2", "Philosophie");
-    rvk_sMap.put("3", "C[L-Z] [0-9]+.*");
-    rvk_rMap.put("3", "Psychologie");
-    rvk_sMap.put("4", "D[A-Z] [0-9]+.*");
-    rvk_rMap.put("4", "Pädagogik");
-    rvk_sMap.put("5", "E[A-Z] [0-9]+.*");
-    rvk_rMap.put("5", "Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäische Sprachen und Literaturen");
-    rvk_sMap.put("6", "G[A-Z] [0-9]+.*");
-    rvk_rMap.put("6", "Germanistik, Niederlandistik, Skandinavistik");
-    rvk_sMap.put("7", "H[A-Z] [0-9]+.*");
-    rvk_rMap.put("7", "Anglistik, Amerikanistik");
-    rvk_sMap.put("8", "I[A-Z] [0-9]+.*");
-    rvk_rMap.put("8", "Romanistik");
-    rvk_sMap.put("9", "K[A-Z] [0-9]+.*");
-    rvk_rMap.put("9", "Slawistik");
-    rvk_sMap.put("10", "L[A-C] [0-9]+.*");
-    rvk_rMap.put("10", "Ethnologie (Volks- und Völkerkunde)");
-    rvk_sMap.put("11", "(LD [1-2][0-9]+)|(L[E-G] [0-9]+).*");
-    rvk_rMap.put("11", "Klassische Archäologie");
-    rvk_sMap.put("12", "(LD [3-7][0-9]+)|(L[H-O] [0-9]+).*");
-    rvk_rMap.put("12", "Kunst und Kunstgeschichte");
-    rvk_sMap.put("13", "(LD [8-9][0-9]+)|(L[P-Y] [0-9]+).*");
-    rvk_rMap.put("13", "Musikwissenschaft");
-    rvk_sMap.put("14", "M[A-L] [0-9]+.*");
-    rvk_rMap.put("14", "Politologie");
-    rvk_sMap.put("15", "M[N-W] [0-9]+.*");
-    rvk_rMap.put("15", "Soziologie");
-    rvk_sMap.put("16", "M[X-Z] [0-9]+.*");
-    rvk_rMap.put("16", "Militärwissenschaft");
-    rvk_sMap.put("17", "N[A-Z] [0-9]+.*");
-    rvk_rMap.put("17", "Geschichte");
-    rvk_sMap.put("18", "P[A-Z] [0-9]+.*");
-    rvk_rMap.put("18", "Rechtswissenschaft");
-    rvk_sMap.put("19", "Q[A-Z] [0-9]+.*");
-    rvk_rMap.put("19", "Wirtschaftswissenschaften");
-    rvk_sMap.put("20", "R[A-Z] [0-9]+.*");
-    rvk_rMap.put("20", "Geographie");
-    rvk_sMap.put("21", "S[A-P] [0-9]+.*");
-    rvk_rMap.put("21", "Mathematik");
-    rvk_sMap.put("22", "S[Q-U] [0-9]+.*");
-    rvk_rMap.put("22", "Informatik");
-    rvk_sMap.put("23", "T[A-D] [0-9]+.*");
-    rvk_rMap.put("23", "Allgemeine Naturwissenschaft");
-    rvk_sMap.put("24", "T[E-Z] [0-9]+.*");
-    rvk_rMap.put("24", "Geologie und Paläontologie");
-    rvk_sMap.put("25", "U[A-Z] [0-9]+.*");
-    rvk_rMap.put("25", "Physik");
-    rvk_sMap.put("26", "V[A-Z] [0-9]+.*");
-    rvk_rMap.put("26", "Chemie und Pharmazie");
-    rvk_sMap.put("27", "W[A-Z] [0-9]+.*");
-    rvk_rMap.put("27", "Biologie");
-    rvk_sMap.put("28", "(W[W-Z]|X[A-Z]|Y[A-V]) [0-9]+.*");
-    rvk_rMap.put("28", "Medizin");
-    rvk_sMap.put("29", "Z[A-E] [0-9]+.*");
-    rvk_rMap.put("29", "Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft");
-    rvk_sMap.put("30", "Z[G-S] [0-9]+.*");
-    rvk_rMap.put("30", "Technik");
-    rvk_sMap.put("31", "Z[X-Y] [0-9]+.*");
-    rvk_rMap.put("31", "Sport");
-    rvk_sMap.put("32", "(F[BCEHNOPQTX] [0-9]+)|(FF [1-2][0-9]+).*");
-    rvk_rMap.put("32", "Klassische Philologie");
-    rvk_sMap.put("33", "(FK [0-9]+)|(FF [5-6][0-9]+).*");
-    rvk_rMap.put("33", "Byzantinistik");
-    rvk_sMap.put("34", "F[RUY] [0-9]+.*");
-    rvk_rMap.put("34", "Mittellateinische Philologie");
-    rvk_sMap.put("35", "(F[GL] [0-9]+)|(FD [1-2][0-9]+).*");
-    rvk_rMap.put("35", "Neugriechische Philologie");
-    rvk_sMap.put("36", "F[SVZ] [0-9]+.*");
-    rvk_rMap.put("36", "Neulateinische Philologie");
-    // DDC
-    ddc_sMap.put("37", "^0[1-35-9][0-9].*");
-    ddc_rMap.put("37", "Allgemeines");
-    ddc_sMap.put("38", "((^2[0-9]{2})|(^1[37][0-9])).*");
-    ddc_rMap.put("38", "Theologie und Religionswissenschaft");
-    ddc_sMap.put("39", "^((1[0-46-9])|21)[0-9].*");
-    ddc_rMap.put("39", "Philosophie");
-    ddc_sMap.put("40", "^1[35][0-9].*");
-    ddc_rMap.put("40", "Psychologie");
-    ddc_sMap.put("41", "^37[0-9].*");
-    ddc_rMap.put("41", "Pädagogik");
-    ddc_sMap.put("42", "^(4[019][0-9])|(8[09][0-9]).*");
-    ddc_rMap.put("42", "Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäische Sprachen und Literaturen");
-    ddc_sMap.put("43", "^(43[0-9])|(83[0-9]).*");
-    ddc_rMap.put("43", "Germanistik, Niederlandistik, Skandinavistik");
-    ddc_sMap.put("44", "^(42[0-9])|(8[12][0-9]).*");
-    ddc_rMap.put("44", "Anglistik, Amerikanistik");
-    ddc_sMap.put("45", "^(4[4-6][0-9])|(8[4-6][0-9]).*");
-    ddc_rMap.put("45", "Romanistik");
-    ddc_sMap.put("46", "^39[0-9].*");
-    ddc_rMap.put("46", "Ethnologie (Volks- und Völkerkunde)");
-    ddc_sMap.put("47", "^93[0-9].*");
-    ddc_rMap.put("47", "Klassische Archäologie");
-    ddc_sMap.put("48", "^7[0234-7][0-9].*");
-    ddc_rMap.put("48", "Kunst und Kunstgeschichte");
-    ddc_sMap.put("49", "^78[0-9].*");
-    ddc_rMap.put("49", "Musikwissenschaft");
-    ddc_sMap.put("50", "^32[0-9].*");
-    ddc_rMap.put("50", "Politologie");
-    ddc_sMap.put("51", "^3[0-367][0-9].*");
-    ddc_rMap.put("51", "Soziologie");
-    ddc_sMap.put("52", "^35[0-9].*");
-    ddc_rMap.put("52", "Militärwissenschaft");
-    ddc_sMap.put("53", "^((9[012-9])|(1[89])|27)[0-9].*");
-    ddc_rMap.put("53", "Geschichte");
-    ddc_sMap.put("54", "^3[45][0-9].*");
-    ddc_rMap.put("54", "Rechtswissenschaft");
-    ddc_sMap.put("55", "^(3[38][0-9])|(65[0-9]).*");
-    ddc_rMap.put("55", "Wirtschaftswissenschaften");
-    ddc_sMap.put("56", "^(91|55)[0-9].*");
-    ddc_rMap.put("56", "Geographie");
-    ddc_sMap.put("57", "^(51|16|31)[0-9].*");
-    ddc_rMap.put("57", "Mathematik");
-    ddc_sMap.put("58", "^(00|77)[0-9].*");
-    ddc_rMap.put("58", "Informatik");
-    ddc_sMap.put("59", "^50[0-9].*");
-    ddc_rMap.put("59", "Allgemeine Naturwissenschaft");
-    ddc_sMap.put("60", "^5[56][0-9].*");
-    ddc_rMap.put("60", "Geologie und Paläontologie");
-    ddc_sMap.put("61", "^5[23][0-9].*");
-    ddc_rMap.put("61", "Physik");
-    ddc_sMap.put("62", "^(54[0-9])|(66[0-9]).*");
-    ddc_rMap.put("62", "Chemie und Pharmazie");
-    ddc_sMap.put("63", "^5[7-9][0-9].*");
-    ddc_rMap.put("63", "Biologie");
-    ddc_sMap.put("64", "^(61|57)[0-9].*");
-    ddc_rMap.put("64", "Medizin");
-    ddc_sMap.put("65", "^(6[34][0-9])|(7[134][0-9]).*");
-    ddc_rMap.put("65", "Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft");
-    ddc_sMap.put("66", "^((6[0-789])|72)[0-9].*");
-    ddc_rMap.put("66", "Technik");
-    ddc_sMap.put("67", "^79[0-9].*");
-    ddc_rMap.put("67", "Sport");
-    ddc_sMap.put("68", "^((4[78])|8[78])[0-9].*");
-    ddc_rMap.put("68", "Klassische Philologie");
-    ddc_sMap.put("69", "^[48]8[0-9].*");
-    ddc_rMap.put("69", "Neugriechische Philologie");
-    ddc_sMap.put("70", "^[48]7[0-9].*");
-    ddc_rMap.put("70", "Neulateinische Philologie");
-    ddc_sMap.put("71", "^04[0-9].*");
-    ddc_rMap.put("71", "no subject assigned");
-    //BIC
-    bic_sMap.put("72", "((^[BGW]$)|(^((B[GJMT])|(G[BLMPT])|(WZ))([A-Z]|$)))");
-    bic_rMap.put("72", "Allgemeines");
-    bic_sMap.put("73", "^HR([A-Z]|$)");
-    bic_rMap.put("73", "Theologie und Religionswissenschaft");
-    bic_sMap.put("74", "^HP([A-Z]|$)");
-    bic_rMap.put("74", "Philosophie");
-    bic_sMap.put("75", "^JM([A-Z]|$)");
-    bic_rMap.put("75", "Psychologie");
-    bic_sMap.put("76", "((^E$)|(^((CJ)|(E[BLS])|(JN)|(YQ))([A-Z]|$)))");
-    bic_rMap.put("76", "Pädagogik");
-    bic_sMap.put("77", "((^[CD]$)|(^((C[BF])|(D[CDNQS]))([A-Z]|$)))");
-    bic_rMap.put("77", "Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäische Sprachen und Literaturen");
-    bic_sMap.put("78", "^E[BLS]([A-Z]|$)");
-    bic_rMap.put("78", "Anglistik, Amerikanistik");
-    bic_sMap.put("79", "^HD([A-Z]|$)");
-    bic_rMap.put("79", "Klassische Archäologie");
-    bic_sMap.put("80", "((^A$)|(^((A[BCFGJKMNPS])|(WF))([A-Z]|$)))");
-    bic_rMap.put("80", "Kunst und Kunstgeschichte");
-    bic_sMap.put("81", "(((^AS)|(^AV))([A-Z]|$))");
-    bic_rMap.put("81", "Musikwissenschaft");
-    bic_sMap.put("82", "^JP([A-Z]|$)");
-    bic_rMap.put("82", "Politologie");
-    bic_sMap.put("83", "((^J$)|(^J[FHK]([A-Z]|$)))");
-    bic_rMap.put("83", "Soziologie");
-    bic_sMap.put("84", "^JW([A-Z]|$)");
-    bic_rMap.put("84", "Militärwissenschaft");
-    bic_sMap.put("85", "((^H$)|(^(HB|WQ|BG)([A-Z]|$)))");
-    bic_rMap.put("85", "Geschichte");
-    bic_sMap.put("86", "((^L$)|(^L[ABNR]([A-Z]|$)))");
-    bic_rMap.put("86", "Rechtswissenschaft");
-    bic_sMap.put("87", "((^K$)|(^((K[CFJN])|AK|TR|UF)([A-Z]|$)))");
-    bic_rMap.put("87", "Wirtschaftswissenschaften");
-    bic_sMap.put("88", "((^R$)|(^RG([A-Z]|$)))");
-    bic_rMap.put("88", "Geographie");
-    bic_sMap.put("89", "^PB([A-Z]|$)");
-    bic_rMap.put("89", "Mathematik");
-    bic_sMap.put("90", "((^U$)|(^((U[BDFGKLMNQRTY])|TJ)([A-Z]|$)))");
-    bic_rMap.put("90", "Informatik");
-    bic_sMap.put("91", "((^P$)|(^PD([A-Z]|$)))");
-    bic_rMap.put("91", "Allgemeine Naturwissenschaft");
-    bic_sMap.put("92", "^(RB|TH)([A-Z]|$)");
-    bic_rMap.put("92", "Geologie und Paläontologie");
-    bic_sMap.put("93", "^P[GH]([A-Z]|$)");
-    bic_rMap.put("93", "Physik");
-    bic_sMap.put("94", "^(PN|TD|TC)([A-Z]|$)");
-    bic_rMap.put("94", "Chemie und Pharmazie");
-    bic_sMap.put("95", "^(MZ|PS|TC|RN)([A-Z]|$)");
-    bic_rMap.put("95", "Biologie");
-    bic_sMap.put("96", "((^M$)|(^M[BFJMNQRX]([A-Z]|$)))");
-    bic_rMap.put("96", "Medizin");
-    bic_sMap.put("97", "^(RP|TV|WB|WF|WK|WM)([A-Z]|$)");
-    bic_rMap.put("97", "Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft");
-    bic_sMap.put("98", "((^T$)|(^(AM|RN|RP|TC|TD|TH|(T[BGJNQRT]))([A-Z]|$)))");
-    bic_rMap.put("98", "Technik");
-    bic_sMap.put("99", "^WS([A-Z]|$)");
-    bic_rMap.put("99", "Sport");
-    bic_sMap.put("100", "((^[FVY]$)|(^((F[ACFHJKLMPQRTVWXYZ])|(V[FSX])|(W[CDGHJNT])|(Y[BDFNRXZ]))([A-Z]|$)))");
-    bic_rMap.put("100", "no subject assigned");
-
-
-    // sMap.put("28","(W[W-Z]|X[A-Z]|Y[A-V]) [0-9]+.*");
-    // rMap.put("28","Medizin");
-
-    // LCC
-    HashMap lcc_pMap = new HashMap();
-    lcc_pMap.put("^[AZ]+.*", "Allgemeines");
-    lcc_pMap.put("^B[0-9CDHJ]+.*", "Philosophie");
-    lcc_pMap.put("^BF+.*", "Psychologie");
-    lcc_pMap.put("^B[LMPQRSTVX]+.*", "Theologie und Religionswissenschaften");
-    lcc_pMap.put("^C[0-9BDEJNRST]+.*", "Geschichte");
-    lcc_pMap.put("^CC+.*", "Klassische Archäologie");
-    lcc_pMap.put("^[DEF]+.*", "Geschichte");
-    lcc_pMap.put("^G[0-9ABCEF]+.*", "Geographie");
-    lcc_pMap.put("^G[NRT]+.*", "Ethnologie (Volks- und Völkerkunde)");
-    lcc_pMap.put("^GV+.*", "Sport");
-    lcc_pMap.put("^H[0-9AMNQSTVX]+.*", "Soziologie");
-    lcc_pMap.put("^H[BCDEFGJ]+.*", "Wirtschaftswissenschaften");
-    lcc_pMap.put("^J+.*", "Politologie");
-    lcc_pMap.put("^K+.*", "Rechtswissenschaft");
-    lcc_pMap.put("^L+.*", "Pädagogik");
-    lcc_pMap.put("^M+.*", "Musikwissenschaft");
-    lcc_pMap.put("^N+.*", "Kunst und Kunstgeschichte");
-    lcc_pMap.put("^P[0-9BHJKLMNZ]+.*", "Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäische Sprachen und Literaturen");
-    lcc_pMap.put("^PA+.*", "Klassische Philologie");
-    lcc_pMap.put("^P[CQ]+.*", "Romanistik");
-    lcc_pMap.put("^P[DFT]+.*", "Germanistik, Niederlandistik, Skandinavistik");
-    lcc_pMap.put("^P[ERS]+.*", "Anglistik, Amerikanistik");
-    lcc_pMap.put("^PG+.*", "Slawistik");
-    lcc_pMap.put("^Q[0-9]+.*", "Allgemeine Naturwissenschaft");
-    lcc_pMap.put("^QA+.*", "Mathematik");
-    lcc_pMap.put("^Q[BC]+.*", "Physik");
-    lcc_pMap.put("^QD+.*", "Chemie und Pharmazie");
-    lcc_pMap.put("^QE+.*", "Geologie und Paläontologie");
-    lcc_pMap.put("^Q[HKLMPR]+.*", "Biologie");
-    lcc_pMap.put("^R+.*", "Medizin");
-    lcc_pMap.put("^S+.*", "Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft");
-    lcc_pMap.put("^T+.*", "Technik");
-    lcc_pMap.put("^[UV]+.*", "Militärwissenschaft");
-
-    List fs = record.getVariableFields("084");
-    Iterator fsI = fs.iterator();
-    // RVK
-    if (fs != null) {
-        DataField rvk;
-        while (fsI.hasNext()) {
-            rvk = (DataField) fsI.next();
-            List ss = rvk.getSubfields('2');
-            Iterator ssI = ss.iterator();
-            if (ss != null) {
-                while (ssI.hasNext()) {
-                    s = (Subfield) ssI.next();
-                    if (s.getData().toLowerCase().contains("rvk")) {
-                        val = rvk.getSubfield('a').getData();
-
-                        for (String key : rvk_sMap.keySet()) {
-                            if (val.matches(rvk_sMap.get(key))) {
-                                result.add(rvk_rMap.get(key));
-                                logger.info( "finc_class RVK => " + rvk_rMap.get( key ) );
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    fs = record.getVariableFields("082");
-    fsI = fs.iterator();
-    // DDC
-    if (fs != null) {
-        DataField ddc;
-        while (fsI.hasNext()) {
-            ddc = (DataField) fsI.next();
-            List ss = ddc.getSubfields('a');
-            Iterator ssI = ss.iterator();
-            if (ss != null) {
-                while (ssI.hasNext()) {
-                    s = (Subfield) ssI.next();
-                    val = s.getData();
-                    for (String key : ddc_sMap.keySet()) {
-                        if (val.matches(ddc_sMap.get(key))) {
-                            result.add(ddc_rMap.get(key));
-                            logger.info( "finc_class DDC => " + ddc_rMap.get( key ) );
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    fs = record.getVariableFields("072");
-    fsI = fs.iterator();
-    // BIC
-    if (fs != null) {
-        DataField bic;
-        while (fsI.hasNext()) {
-            bic = (DataField) fsI.next();
-            List ss = bic.getSubfields('2');
-            Iterator ssI = ss.iterator();
-            if (ss != null) {
-                while (ssI.hasNext()) {
-                    s = (Subfield) ssI.next();
-                    if (s.getData().toLowerCase().contains("bic")) {
-                        val = bic.getSubfield('a').getData();
-
-                        for (String key : bic_sMap.keySet()) {
-                            if (val.matches(bic_sMap.get(key))) {
-                                result.add(bic_rMap.get(key));
-                                logger.info( "finc_class BIC => " + bic_rMap.get( key ) );
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-
-    fs = record.getVariableFields("050");
-    fsI = fs.iterator();
-    // LCC
-    if (fs != null) {
-        DataField lcc;
-        while (fsI.hasNext()) {
-            lcc = (DataField) fsI.next();
-            List ss = lcc.getSubfields('a');
-            Iterator ssI = ss.iterator();
-            if (ss != null) {
-                while (ssI.hasNext()) {
-                    s = (Subfield) ssI.next();
-                    val = s.getData();
-                    // System.out.println("LCC: " + val);
-                    for (String key : lcc_pMap.keySet()) {
-                        if (val.matches(key)) {
-                            result.add(lcc_pMap.get(key));
-                            logger.info( "finc_class LCC => " + lcc_pMap.get( key ) );
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-
-    if (result.isEmpty()) result.add("no subject assigned");
-    return result;
-}
diff --git a/import/index_scripts/format_de105.bsh b/import/index_scripts/format_de105.bsh
deleted file mode 100644
index 101d439bfc5ec5639155e41e905ec15e8570c4bd..0000000000000000000000000000000000000000
--- a/import/index_scripts/format_de105.bsh
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2014 Project finc http://finc.info
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import java.util.LinkedHashSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/*
- * Ticket #2897, TUF: Icons zuweisen
- *
- * @author   Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-static final Logger logger = Logger.getLogger("de.ubl.import.format_de105");
-
-static final HashMap qucosaMap = new HashMap(){{
-    put( "article"          , "QucosaArticles" );
-    put( "bachelorthesis"   , "QucosaThesis" );
-    put( "book"             , "EBOOK" );
-    put( "bookpart"         , "QucosaArticles" );
-    put( "conferenceobject" , "QucosaConferenceproceeding" );
-    put( "doctoralthesis"   , "QucosaThesis" );
-    put( "lecture"          , "QucosaArticles" );
-    put( "masterthesis"     , "QucosaThesis" );
-    put( "musicalnotation"  , "QucosaScore" );
-    put( "other"            , "QucosaElectronicResource" );
-    put( "periodical"       , "QucosaArticles" );
-    put( "periodicalpart"   , "QucosaArticles" );
-    put( "preprint"         , "QucosaArticles" );
-    put( "report"           , "EBOOK" );
-    put( "studythesis"      , "QucosaThesis" );
-    put( "workingpaper"     , "QucosaArticles" );
-}};
-
-
-public Set getFormat( Record record ) {
-
-    logger.setLevel( Level.WARNING ); // WARNING,FINE,INFO,ALL and so on
-
-	Set result = new LinkedHashSet();
-
-    String format_de105 = indexer.getFirstFieldVal( record, "972c" );
-
-    // Ticket #1555 Qucosa
-    if( format_de105 == null || format_de105.isEmpty() ) {
-        String source_id = indexer.getFirstFieldVal( record, "980b" );
-        if( source_id.equals( "22" ) ) {
-            String data = indexer.getFirstFieldVal( record, "500a" );
-            if( data != null ) {
-                format_de105 = qucosaMap.get( data.toLowerCase() );
-            }
-        }
-    }
-
-    if (format_de105 != null) {
-        logger.info( "TUF Format => " + format_de105);
-        result.add(format_de105);
-    } else {
-        logger.info( "TUF Format NOT FOUND" );
-    }
-
-    return result;
-}
diff --git a/import/index_scripts/geogr_code.bsh b/import/index_scripts/geogr_code.bsh
deleted file mode 100644
index 723fb6ca265a806d35ff7df88b5ed84d2dc1197a..0000000000000000000000000000000000000000
--- a/import/index_scripts/geogr_code.bsh
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2012 Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-import org.marc4j.marc.Record;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Logger logger = Logger.getLogger("de.ubl.import.geogrcode");
-
-public Set getGeogrCode(Record record) {
-
-    logger.setLevel(Level.WARNING); // WARNING,FINE,INFO,ALL and so on
-
-    Set result = new LinkedHashSet();
-
-    Set geogrCodeList = indexer.getFieldList(record, "951a");
-
-    for( String geogr_code : geogrCodeList ) {
-        geogr_code = geogr_code.trim();
-        if(geogr_code.length() > 0) {
-            String[] split = geogr_code.split( "-" );
-            StringBuilder b = new StringBuilder();
-            for( String s : split ) {
-                if( b.length() > 0 ) b.append( "-" );
-                b.append(s);
-                String code = b.toString();
-                result.add(code);
-            }
-        }
-    }
-
-    return result;
-}
diff --git a/import/index_scripts/getBranches.bsh b/import/index_scripts/getBranches.bsh
deleted file mode 100644
index 415724cc999424c04f32ffaf13a17cea73ca86aa..0000000000000000000000000000000000000000
--- a/import/index_scripts/getBranches.bsh
+++ /dev/null
@@ -1,181 +0,0 @@
-import java.io.*;
-import java.sql.*;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Properties properties = new Properties();
-static final String sDbDrv = "com.mysql.jdbc.Driver";
-static Connection cn = null;
-static PreparedStatement st = null, stp = null;
-static final Logger logger = Logger.getLogger("de.ubl.import.getbranches");
-static final HashMap patternCache = new HashMap();
-
-/*
- * Copyright (C) 2012 Leander Seige, seige@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Leander Seige
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-public Set getBranches(Record record, String pattern) {  
-    
-    logger.setLevel(Level.WARNING); // FINE,INFO,ALL and so on
-
-    String vufindHome = System.getenv( "VUFIND_HOME_SOLR4" );
-    if (vufindHome == null) {
-        vufindHome = "";
-    }
-
-    Set result = new LinkedHashSet();
-
-    String source_id = indexer.getFirstFieldVal(record, "980b");
-
-    // Ticket #1625
-    if(source_id.equals("23")) {
-        result.add("GR");
-        return(result);
-    }
-
-    if(source_id == null || !source_id.equals("0")) {
-        return(result); 
-    }
-
-    Set sigelfs = indexer.getFieldList(record, "852a");
-
-    Matcher m = patternCache.get(pattern);
-    if(m == null) {
-        m = Pattern.compile(pattern).matcher("");
-        patternCache.put(pattern, m);
-    }
-    
-    String currentSigel = null;
-    for( String current : sigelfs) {
-        m.reset(current);
-        if(m.find()) {
-            currentSigel = current;
-            break;
-        }
-    }
-    
-    if(currentSigel == null) {
-        logger.info(">>> exiting due to pattern mismatch " + pattern);
-        return(result);
-    }
-
-    logger.info(">>> getting branches for " + currentSigel);
-
-    synchronized(properties) {
-        if(properties.size() == 0) {
-            Class.forName( sDbDrv );
-            try {
-                String ppPath = vufindHome + "/import/index_scripts/mddb.conf";
-                properties.load(new FileInputStream( ppPath ));
-                properties.put("LOAD","true");
-            } catch (IOException e) {
-                logger.severe("ERROR gB reading config file (mddb.conf)");
-                return(result);
-            }
-            String sDbUrl=properties.getProperty("DatabaseUrl");
-            String sUsr=properties.getProperty("DatabaseUser");
-            String sPwd=properties.getProperty("DatabasePassword");
-            try {
-                logger.info("CONNECT gB to " + sDbUrl);
-                cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
-                st = cn.prepareStatement(
-                    "SELECT DISTINCT(branch) " +
-                    "FROM item " + 
-                    "WHERE finc_id = ? " +
-                        "AND sigel = ?"
-                );
-                stp = cn.prepareStatement(
-                    "SELECT DISTINCT(i.branch) " +
-                    "FROM parents p, item i " +
-                    // "WHERE p.parent_record_id = CONCAT('(DE-576)', ?) " +
-                    "WHERE p.parent_record_id = ? " + // #4087
-                        "AND i.finc_id = p.finc_id " +
-                        "AND i.sigel = ?"
-                );
-                logger.info("CONNECT gB OK => " + sDbUrl);
-            } catch(Exception e) {
-                logger.severe("ERROR gB create database connection: " + e.getMessage());
-                return(result);
-            }
-            logger.info("CONNECT gB to " + sDbUrl);
-            Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
-                public void run() {
-                    logger.info("SHUTTING DOWN gB 1st statement");
-                    try { if( null != stp ) stp.close(); } catch( Exception ex ) {}
-                    logger.info("SHUTTING DOWN gB 2nd statement");
-                    try { if( null != st ) st.close(); } catch( Exception ex ) {}
-                    logger.info("DISCONNECT gB from " + sDbUrl);
-                    try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
-                }
-            }));
-        }
-    }
-      
-    String finc_id = indexer.getFirstFieldVal(record, "001");
-    Long fincNumber = Long.valueOf(finc_id);
-    String record_id = indexer.getFirstFieldVal(record, "980a");
-
-    logger.info("checking gB " + finc_id + " " + source_id + " " + record_id);
-
-    ResultSet          rs = null;
-
-    try {
-
-        st.setLong( 1, fincNumber);
-        st.setString( 2, currentSigel);
-        rs = st.executeQuery();
-        while( rs.next() ) {
-            if( rs.getString(1) == null ) continue;
-            result.add(rs.getString(1));
-            logger.info("ADDING gB : " + rs.getString(1));
-        }
-        try { rs.close(); } catch( Exception ex ) {}
-        if( result.isEmpty() ) rs = null;
-
-        if( rs == null ) {
-            stp.setString( 1, record_id);
-            stp.setString( 2, currentSigel);
-            rs = stp.executeQuery();
-            while( rs.next() ) {
-                if( rs.getString(1) == null ) continue;
-                result.add(rs.getString(1));
-                logger.info("ADDING gB : " + rs.getString(1));
-            }
-        }
-
-    } catch( Exception ex ) {
-        logger.severe( "ERROR gB => " + ex.getMessage() );
-    } finally {
-        try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
-    }
-
-    return result;
-}
diff --git a/import/index_scripts/getCollCode.bsh b/import/index_scripts/getCollCode.bsh
deleted file mode 100644
index f1cb887aa78ccc401639d91b7c5d227a2ebf188d..0000000000000000000000000000000000000000
--- a/import/index_scripts/getCollCode.bsh
+++ /dev/null
@@ -1,168 +0,0 @@
-import java.io.*;
-import java.sql.*;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Properties properties = new Properties();
-static final String sDbDrv = "com.mysql.jdbc.Driver";
-static Connection cn = null;
-static PreparedStatement st = null, stc = null;
-static final Logger logger = Logger.getLogger("de.ubl.import.getcollcode");
-
-/*
- * Copyright (C) 2012 Leander Seige, seige@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Leander Seige
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-public Set getCollCodes(Record record, String sigel) {  
-
-    logger.setLevel(Level.WARNING); // FINE,INFO,ALL and so on
-
-    String vufindHome = System.getenv( "VUFIND_HOME_SOLR4" );
-    if (vufindHome == null) {
-        vufindHome = "";
-    }
-
-    Set result = new LinkedHashSet();
-    
-    String source_id = indexer.getFirstFieldVal(record, "980b");
-    if(!source_id.equals("0")) {
-        return(result); 
-    }
-
-    Set sigelfs = indexer.getFieldList(record, "852a");
-
-    Iterator sigelfs_iter = sigelfs.iterator();
-
-    int conti = 0;
-
-    while (sigelfs_iter.hasNext() && conti==0) {
-        String current = sigelfs_iter.next();
-        logger.info(">>> comparing " + sigel + " " + current);
-        if(sigel.equals(current)) {
-            conti = 1;
-        }
-    }
-
-    if(conti==0) {
-        logger.info(">>> exiting due to sigel mismatch " + sigel);
-        return(result);
-    }
-
-    logger.info(">>> getting collcodes for " + sigel);
-    
-    synchronized(properties) {
-        if(properties.size() == 0) {
-            Class.forName( sDbDrv );
-            try {
-                String ppPath = vufindHome + "/import/index_scripts/mddb.conf";
-                properties.load(new FileInputStream( ppPath ));
-                properties.put( "LOAD", "true");
-            } catch (IOException e) {
-                logger.severe("ERROR gCC reading config file => " + ppPath);
-                return(result);
-            }
-            String sDbUrl = properties.getProperty("DatabaseUrl");
-            String sUsr   = properties.getProperty("DatabaseUser");
-            String sPwd   = properties.getProperty("DatabasePassword");
-            try {
-                logger.info("CONNECT gCC to " + sDbUrl);
-                cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
-                st = cn.prepareStatement(
-                    "SELECT DISTINCT(collection_code) " +
-                    "FROM item " + 
-                    "WHERE finc_id = ? " +
-                        "AND sigel = ?"
-                );
-                stc = cn.prepareStatement(
-                    "SELECT DISTINCT(i.collection_code) " +
-                    "FROM parents p, item i " +
-                    // "WHERE p.parent_record_id = CONCAT('(DE-576)', ?) " +
-                    "WHERE p.parent_record_id = ? " + // #4087
-                        "AND i.finc_id = p.finc_id " +
-                        "AND i.sigel = ?"
-                );
-                logger.info("CONNECT gCC OK => " + sDbUrl);
-            } catch(Exception e) {
-                logger.severe("ERROR gCC create database connection: " + e.getMessage());
-                return(result);
-            }
-            logger.info("CONNECT gCC to " + sDbUrl);
-            Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
-                public void run() {
-                    logger.info("SHUTTING DOWN gCC 1st statement");
-                    try { if( null != stc ) stc.close(); } catch( Exception ex ) {}
-                    logger.info("SHUTTING DOWN gCC 2nd statement");
-                    try { if( null != st ) st.close(); } catch( Exception ex ) {}
-                    logger.info("DISCONNECT gCC from " + sDbUrl);
-                    try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
-                }
-            }));
-        }
-    }
-
-    String finc_id = indexer.getFirstFieldVal(record, "001");
-    Long fincNumber = Long.valueOf(finc_id);
-    String record_id = indexer.getFirstFieldVal(record, "980a");
-
-    logger.info("checking gCC " + finc_id + " " + source_id + " " + record_id);
-
-    ResultSet  rs  = null;
-
-    try {
-
-        st.setLong( 1, fincNumber);
-        st.setString( 2, sigel);
-        rs = st.executeQuery();
-        while( rs.next() ) {
-            if( rs.getString(1) == null ) continue;
-            result.add(rs.getString(1));
-            logger.info("ADDING gCC : " + rs.getString(1));
-        }
-        try { rs.close(); } catch( Exception ex ) {}
-        if( result.isEmpty() ) rs = null;
-
-        if( rs == null ) {
-            stc.setString( 1, record_id);
-            stc.setString( 2, sigel);
-            rs = stc.executeQuery();
-            while( rs.next() ) {
-                if( rs.getString(1) == null ) continue;
-                result.add(rs.getString(1));
-                logger.info("ADDING gCC : " + rs.getString(1));
-            }
-        }
-
-    } catch( Exception ex ) {
-        logger.severe( "ERROR gCC => " + ex.getMessage() );
-    } finally {
-        try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
-    }
-
-    return result;
-}
diff --git a/import/index_scripts/getFieldRegex.bsh b/import/index_scripts/getFieldRegex.bsh
deleted file mode 100644
index 11a6c4ced2c815a72b442eb1bd21a9a63c5b6173..0000000000000000000000000000000000000000
--- a/import/index_scripts/getFieldRegex.bsh
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Leander Seige */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-
-public Set getFieldRegex(Record record, String fieldnums, String subfield, String match, String search, String replace) {
-
-    Set result = new LinkedHashSet();
-
-    String[] fields=fieldnums.split(":");
-
-    for(int i =0; i < fields.length ; i++) {
-        field=fields[i];
-
-        List fs = record.getVariableFields(field);
-        Iterator fsI = fs.iterator();
-
-        if (fs != null) {
-            DataField author;
-            while(fsI.hasNext()) {
-                author = (DataField) fsI.next();
-                String val;
-
-                List ss = author.getSubfields(subfield.charAt(0));
-                Iterator ssI = ss.iterator();
-                if (ss != null) {
-                    while (ssI.hasNext()) {
-                        val=ssI.next().getData();
-                        if (val.matches(match)) { 
-                            val=val.replaceAll(search,replace);
-                            val=val.trim();
-                            if(val.length()>0) {
-                                // System.out.println(">>> Value: "+val);
-                                result.add(val);
-                            }
-                        }
-                    }
-                } else {
-                }
-            }
-        } else {
-        }
-     }
-    return result;
-}
-
diff --git a/import/index_scripts/getFincFulltext.bsh b/import/index_scripts/getFincFulltext.bsh
deleted file mode 100644
index 66ad42ac7ddc31ee640122b64daf0157b9d8beb9..0000000000000000000000000000000000000000
--- a/import/index_scripts/getFincFulltext.bsh
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Copyright (C) 2012 Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-/*
- * Suche in Inhaltsverzeichnis etc. ("Volltextsuche") als Option gestalten
- * Zum deserialisieren von JSON wird die Google JSON Software Bibliothek
- * benötigt (http://code.google.com/p/google-gson/).
- */
-
-import java.io.*;
-import java.sql.*;
-import java.net.*;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.marc4j.marc.*;
-import com.google.gson.Gson;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-
-static final Properties fftProperties = new Properties();
-static final Logger logger            = Logger.getLogger("de.ubl.import.getfincfulltext");
-static final Gson gson                = new com.google.gson.GsonBuilder().create();
-
-static final String config = "getFincFulltext.conf";
-static String[] fields;
-
-static final Properties properties_22 = new Properties();
-static final String sDbDrv = "com.mysql.jdbc.Driver";
-static Connection cn = null;
-static PreparedStatement st = null;
-
-public String getFincFulltext(Record record) {
-
-    logger.setLevel(Level.WARNING); // FINE,INFO,WARNING,ALL and so on
-
-    String vufindHome = System.getenv( "VUFIND_HOME_SOLR4" );
-    if (vufindHome == null) {
-        vufindHome = "";
-    }
-
-    // nicht alle durchsuchen, da Z.b. NAXOS eine URL als RECORD ID enthält!!!
-    String source_id = indexer.getFirstFieldVal(record, "980b");
-
-    // Ticket #15555, Qucosa
-    if(source_id != null && source_id.equals( "22" ) ) {
-
-        String qucosaText = "";
-
-        // Datenbank Konfiguration aus 'mddb.conf'
-        synchronized(properties_22) {
-            if(properties_22.size() == 0) {
-                Class.forName( sDbDrv );
-                try {
-                    // mddb3 Datenbankverbindung Einstellungen
-                    String ppPath = vufindHome + "/import/index_scripts/mddb.conf";
-                    // if( vufindHome == null ) ppPath = bsh.cwd + "/../import/index_scripts/mddb.conf";
-                    properties_22.load(new FileInputStream( ppPath ));
-                    properties_22.put("LOAD","true");
-                } catch (IOException e) {
-                    logger.severe("ERROR 'CUCOSA FULLTEXT' reading config file (getFincFulltext)");
-                    return(result);
-                }
-                String sDbUrl = properties_22.getProperty("DatabaseUrl");
-                String sUsr   = properties_22.getProperty("DatabaseUser");
-                String sPwd   = properties_22.getProperty("DatabasePassword");
-
-                try {
-                    logger.info("TRY TO OPEN A CONNECTION 'CUCOSA FULLTEXT': " + sDbUrl);
-                    cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
-                    st = cn.prepareStatement(
-                        "SELECT value " +
-                        "FROM annotation " + 
-                        "WHERE source_id = ? " +
-                            "AND sha1sum = ?"
-                    );
-                    logger.info("CONNECTION ESTABLISHED 'CUCOSA FULLTEXT' OK: " + sDbUrl);
-                } catch(Exception e) {
-                    logger.severe("ERROR 'CUCOSA FULLTEXT' create database connection: " + e.getMessage());
-                    return(result);
-                }
-                Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
-                    public void run() {
-                        logger.info("SHUTTING DOWN 'CUCOSA FULLTEXT' statement");
-                        try { if( null != st ) st.close(); } catch( Exception ex ) {}
-                        logger.info("DISCONNECT 'CUCOSA FULLTEXT': " + sDbUrl);
-                        try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
-                    }
-                }));
-            }
-        }
-
-        List fields_520 = record.getVariableFields( "520" );
-        if (fields_520 != null) {
-            Iterator fieldsIter = fields_520.iterator();
-            while( fieldsIter.hasNext() ) {
-                DataField dataField = (DataField) fieldsIter.next();
-                List subfields = dataField.getSubfields( '9' );
-                if( subfields != null && !subfields.isEmpty() ) {
-                    // Ist der erste Indikator "2" handelt es sich um das Inhaltsverzeichnis (TOC).
-                    // Ist der erste Indikator "3" handelt es sich um die Zusammenfassung (Abstract).
-                    // char indicator = dataField.getIndicator1();
-                    Iterator subfieldsIter = subfields.iterator();
-                    if( subfields != null ) {
-                        if( subfieldsIter.hasNext() ) {
-
-                            String sha1sum = subfieldsIter.next().getData();
-                            ResultSet          rs = null;
-
-                            try {
-                                st.setString( 1, source_id );
-                                st.setString( 2, sha1sum );
-                                rs = st.executeQuery();
-                                if( rs.next() ) {
-                                    qucosaText = rs.getString(1);
-                                }
-                                try { rs.close(); } catch( Exception ex ) {}
-                                rs = null;
-
-                            } catch( Exception ex ) {
-                                logger.severe( "ERROR 'CUCOSA FULLTEXT' => " + ex.getMessage() );
-                                qucosaText = "";
-                            } finally {
-                                try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
-                            }
-
-                            if( !qucosaText.isEmpty() ) {
-                                String record_id = indexer.getFirstFieldVal( record, "980a" );
-                                logger.info( "FOUND 'CUCOSA FULLTEXT' record_id => " + record_id + ", text => " + qucosaText);
-                                return qucosaText;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    if(source_id == null || (!source_id.equals( "0" ) && !source_id.equals( "8" )) ) {
-        logger.info( "FULLTEXT: IGNORE SOURCE ID => " + source_id );
-        return ""; 
-    }
-
-    String record_id = indexer.getFirstFieldVal(record, "980a");
-    if( record_id == null ) {
-        logger.severe( "ERROR FULLTEXT: could't not found record id");
-        return "ERROR FULLTEXT: RECORD ID NOT FOUND";
-    }
-
-    synchronized( fftProperties ) {
-
-        if( fftProperties.size() == 0 ) {
-            logger.info( "FULLTEXT: Read config file => " + config);
-            String ppFile = vufindHome + "/import/index_scripts/" + config;
-            fftProperties.load( new FileInputStream( ppFile ) );
-
-            if ( !fftProperties.containsKey( "keywords" ) ) {
-                Strng errmsg = "ERROR FULLTEXT: Could't find property 'keywords'";
-                logger.severe( errmsg );
-                return errmsg;
-            }
-
-            fftProperties.put( "read", true);
-            fields = fftProperties.get( "keywords" ).toString().trim().split( "," );
-        }
-    }
-            
-    URL url = new URL( fftProperties.get( "solrService" ) + "?q=ppn:" + record_id + "&version=2.2&start=0&wt=json" );
-    URLConnection urlConnection = url.openConnection();
-
-    InputStreamReader in = new InputStreamReader( urlConnection.getInputStream(), "UTF-8" );
-
-    StringBuilder builder = new StringBuilder();
-
-    int c = 0;
-    char[] buff = new char[1024 * 8];
-
-    while( ( c = in.read( buff, 0, buff.length ) ) > 0 ) {
-        builder.append( buff, 0, c );
-    }
-
-    in.close();
-    in = null;
-
-    Map o = gson.fromJson( builder.toString(), Object.class );
-
-    if( o == null ) return "ERROR FULLTEXT: FROM JSON";
-
-    Object mapObj = o.get("response");
-    if( mapObj == null ) return "";
-    Map response = (Map)mapObj;
-
-    Object docsObj = response.get( "docs" );
-    if( docsObj == null ) return "";
-    List docs = (List)docsObj;
-
-    StringBuilder b = new StringBuilder();
-    for(Map docMap : docs) {
-        for(String s : fields) {
-            Object obj = docMap.get(s.trim());
-            if( obj != null ) {
-                b.append(b.length() > 0 ? " " : "").append( obj.toString().trim().replaceAll("\\s+"," "));
-            }
-        }
-    }
-
-    String text = b.toString();
-    if ( text.length() > 0) {
-        logger.info( "FULLTEXT: " + record_id + " => " + ( text.length() <= 80 ? text : text.substring( 0, 80 )));
-    }
-
-    return text;
-
-}
diff --git a/import/index_scripts/getFincFulltext.conf b/import/index_scripts/getFincFulltext.conf
deleted file mode 100644
index 7c91f351be9cfda34265cf67baaf43b3a892515b..0000000000000000000000000000000000000000
--- a/import/index_scripts/getFincFulltext.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# Suche in Inhaltsverzeichnis etc. ("Volltextsuche") als Option gestalten
-#
-
-solrService = http://172.18.85.120:8983/solr/select/
-
-# search for this keys in 'docs' list, separate them with komma (,)
-keywords    = tableofcontents,abstract,publishinginfo,introduction,errata,formulary,chapter,bibliography,review,excerpt,blurb,index,preface,epilogue
-
-#
-#
-#
diff --git a/import/index_scripts/getFincFulltextSwbp.bsh b/import/index_scripts/getFincFulltextSwbp.bsh
deleted file mode 100644
index 9eaca8dfa8b805de866e21bf6d29f54018553bb6..0000000000000000000000000000000000000000
--- a/import/index_scripts/getFincFulltextSwbp.bsh
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2012 Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-/*
- * Suche Volltexte in Swb Plus Datenbank.
- * Siehe Ticket #2483 {@link https://intern.finc.info/issues/2483}
- */
-
-import java.io.*;
-import java.sql.*;
-import java.net.*;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.marc4j.marc.*;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-
-static final String baseURL = "http://139.18.19.240:8080/swbp/webresources/swbplus";
-static final Logger logger            = Logger.getLogger("de.ubl.import.getfincfulltext");
-static final Set acceptedSourceIds = new HashSet(){{
-    add("0");
-    add("8");
-    add("22");
-}};
-
-public String getFincFulltextSwbp(Record record) {
-
-    logger.setLevel(Level.WARNING); // FINE,INFO,WARNING,ALL and so on
-
-    String vufindHome = System.getenv( "VUFIND_HOME_SOLR4" );
-    if (vufindHome == null) {
-        vufindHome = "";
-    }
-
-    String finc_id = indexer.getFirstFieldVal( record, "001");
-
-    // nicht alle durchsuchen, da Z.b. NAXOS eine URL als RECORD ID enthält!!!
-    String source_id = indexer.getFirstFieldVal( record, "980b");
-
-    if(source_id == null || (!acceptedSourceIds.contains( source_id )) ) {
-        logger.info( "FULLTEXT: IGNORE SOURCE ID => " + source_id );
-        return ""; 
-    }
-
-    String record_id = indexer.getFirstFieldVal(record, "980a");
-    if( record_id == null ) {
-        logger.severe( "ERROR 'SWB+ FULLTEXT': could't not found record id");
-        return "ERROR 'SWB+ FULLTEXT': RECORD ID NOT FOUND";
-    }
-
-    // sind Resourcen vorhanden?
-    Set urlList = indexer.getFieldList(record, "856u");
-    if( urlList.isEmpty() ) return "";
-
-    // Indikator 1('4') und 2('0') beachten
-    boolean urlFound = false;
-    List list = record.getVariableFields( "856" );
-    Iterator urlFields = list.iterator();
-    while( urlFields.hasNext() ) {
-        DataField dataField = (DataField) urlFields.next();
-        urlFound = dataField.getIndicator1() == '4';
-        if( urlFound ) break;
-    }
-    if( !urlFound ) return "";
-
-    URL url = new URL( baseURL + "/" + finc_id);
-    URLConnection urlConnection = url.openConnection();
-
-    InputStreamReader in = new InputStreamReader( urlConnection.getInputStream(), "UTF-8" );
-
-    StringBuilder builder = new StringBuilder();
-
-    int c = 0;
-    char[] buff = new char[1024 * 8];
-
-    while( ( c = in.read( buff, 0, buff.length ) ) > 0 ) {
-        builder.append( buff, 0, c );
-    }
-
-    in.close();
-    in = null;
-
-    String text = builder.toString();
-    if ( text.length() > 0) {
-        logger.info( "SWB+ FULLTEXT: record_id => " + record_id + ", finc_id => " + finc_id + " => " + ( text.length() <= 80 ? text : text.substring( 0, 80 )));
-    }
-
-    return text;
-
-}
diff --git a/import/index_scripts/getGnd.bsh b/import/index_scripts/getGnd.bsh
deleted file mode 100644
index f1c25736e9b2aa31ec57e156e2eede293c96ea44..0000000000000000000000000000000000000000
--- a/import/index_scripts/getGnd.bsh
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- * Ticket Allgemein #1750
- *
- * Beanshell zum Befüllen vorbereiten, dabei müssen wir flexibel versch. Datenquellen abfragen 
- * speziell GND und DBpedia, ich habe mappings ;-) * zB Titel, die "118540238" im author_id haben,
- * können "4053309-8" in connotation_id bekommen, siehe RDF Link in http://d-nb.info/gnd/118540238 *
- * lokales Cache-System konzipieren, ich habe momentan einen mysql cache laufen,
- * der genutzt werden kann performs some cool foo and then generates a lot of bar.
- */
-
-import java.io.*;
-import java.net.*;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-static final Logger logger = Logger.getLogger("de.ubl.import.getGnd");
-org.solrmarc.index.SolrIndexer indexer = null;
-
-static final Matcher gndM = Pattern.compile( "gnd/(.+)$").matcher( "" );
-static final Matcher fieldM = Pattern.compile("\\(DE-588\\)(\\S+)$").matcher( "" );
-static final Matcher rm = Pattern.compile( "<dc:relation>(.+?)</dc:relation>", Pattern.MULTILINE).matcher( "" );
-
-/* Service URL */
-static final URL url = new URL( "http://139.18.19.243/lulknows/index.php" );
-
-/*
- * Copyright (C) 2013 Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-public Set getGnd(Record record) {  
-
-    logger.setLevel( Level.WARNING ); // FINE,INFO,ALL,WARNING and so on
-
-    Set result = new LinkedHashSet();
-
-    List gnd = record.getVariableFields("689");
-    Iterator gndIter = gnd.iterator();
-    if (gnd != null) {
-        while(gndIter.hasNext()) {
-            DataField gnd_df = (DataField) gndIter.next();
-            List subfields = gnd_df.getSubfields( '0' );
-            if ( subfields != null ) {
-                Iterator subfieldsIter = subfields.iterator();
-                while( subfieldsIter.hasNext() ) {
-                    String data = subfieldsIter.next().getData();
-                    fieldM.reset( data.trim() );
-                    if( fieldM.find() ) {
-                        result.add( fieldM.group( 1 ) );
-                    }
-                }
-            }
-        }
-    }
-
-    if( result.isEmpty() ) { return result; }
-
-    // sort for cache
-    result = new TreeSet( result );
-    logger.info( "GND: search for => " + result );
-
-    StringBuilder queryList = new StringBuilder();
-    for ( String GND : result ) {
-        queryList.append( queryList.length() == 0 ? "" : "," ).append(GND);
-    }
-
-    result.clear();
-    
-    StringBuilder xml = new StringBuilder();
-
-    HttpURLConnection con = (HttpURLConnection)url.openConnection();
-    con.setRequestMethod( "POST" );
-    con.setDoInput( true );
-    con.setDoOutput( true );
-    con.setUseCaches( false );
-    con.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded" );
-
-    OutputStreamWriter writer = new OutputStreamWriter( con.getOutputStream() );
-
-    writer.write( "template=finc_solr_context&gnd=" + queryList.toString());
-    writer.flush();
-
-    String line;
-    BufferedReader reader = new BufferedReader( new InputStreamReader( con.getInputStream() ) );
-    while ((line = reader.readLine()) != null) {
-      xml.append( line ).append( System.getProperty( "line.separator" ) );
-    }
-    writer.close();
-    reader.close();
-
-    con.disconnect();
-
-    // REGEX Methode
-    rm.reset( xml.toString() );
-    while( rm.find() ) {
-        gndM.reset( rm.group( 1 ) );
-        if( gndM.find() && result.add( gndM.group( 1 )) ) {}
-    }
-    
-    if( !result.isEmpty() ) logger.info( "GND: got gnd => " + result );
-    
-    return result;
-}
\ No newline at end of file
diff --git a/import/index_scripts/getInstitution.bsh b/import/index_scripts/getInstitution.bsh
deleted file mode 100644
index fb7cc876b0aa2035e262f708b8b06c16c87107c3..0000000000000000000000000000000000000000
--- a/import/index_scripts/getInstitution.bsh
+++ /dev/null
@@ -1,117 +0,0 @@
-import java.io.*;
-import java.sql.*;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Properties properties = new Properties();
-static final String sDbDrv = "com.mysql.jdbc.Driver";
-static Connection cn = null;
-static PreparedStatement st = null;
-static final Logger logger = Logger.getLogger("de.ubl.import.getinstitution");
-static final HashMap patternCache = new HashMap();
-
-/*
- * Copyright (C) 2013 Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * Ticket #2048, mdma: ansigeln via mddb3
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-public Set getInstitution( Record record ) {
-    
-    logger.setLevel(Level.WARNING); // WARNING,FINE,INFO,ALL and so on
-
-    String vufindHome = System.getenv( "VUFIND_HOME_SOLR4" );
-    if (vufindHome == null) {
-        vufindHome = "";
-    }
-
-    Set result = new LinkedHashSet();
-
-    synchronized(properties) {
-        if(properties.size() == 0) {
-            Class.forName( sDbDrv );
-            try {
-                String ppPath = vufindHome + "/import/index_scripts/mddb.conf";
-                properties.load(new FileInputStream( ppPath ));
-                properties.put("LOAD","true");
-            } catch (IOException e) {
-                logger.severe("ERROR gI reading config file (getInstitution)");
-                return(result);
-            }
-            String sDbUrl=properties.getProperty("DatabaseUrl");
-            String sUsr=properties.getProperty("DatabaseUser");
-            String sPwd=properties.getProperty("DatabasePassword");
-            try {
-                logger.info("CONNECT gI to " + sDbUrl);
-                cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
-                st = cn.prepareStatement(
-                    "SELECT DISTINCT(isil) " +
-                    "FROM sigels " + 
-                    "WHERE finc_id = ?"
-                );
-                logger.info("CONNECT gI OK => " + sDbUrl);
-            } catch(Exception e) {
-                logger.severe("ERROR gI create database connection: " + e.getMessage());
-                return(result);
-            }
-            logger.info("CONNECT gI to " + sDbUrl);
-            Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
-                public void run() {
-                    logger.info("SHUTTING DOWN gI statement");
-                    try { if( null != st ) st.close(); } catch( Exception ex ) {}
-                    logger.info("DISCONNECT gI from " + sDbUrl);
-                    try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
-                }
-            }));
-        }
-    }
-      
-    String finc_id = indexer.getFirstFieldVal(record, "001");
-
-    ResultSet          rs = null;
-
-    try {
-
-        st.setLong( 1, Long.valueOf(finc_id) );
-        rs = st.executeQuery();
-        while( rs.next() ) {
-            if( rs.getString(1) == null ) continue;
-            result.add(rs.getString(1));
-        }
-
-    } catch( Exception ex ) {
-        logger.severe( "ERROR gI => " + ex.getMessage() );
-    } finally {
-        try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
-    }
-
-    logger.info( "Institution: " + finc_id + " => " + result);
-
-    return result;
-}
diff --git a/import/index_scripts/getItemData.bsh b/import/index_scripts/getItemData.bsh
deleted file mode 100644
index ed28564857451f886c1ca3d151d6fe9bb9d058a0..0000000000000000000000000000000000000000
--- a/import/index_scripts/getItemData.bsh
+++ /dev/null
@@ -1,141 +0,0 @@
-import java.io.*;
-import java.sql.*;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Properties properties = new Properties();
-static final String sDbDrv = "com.mysql.jdbc.Driver";
-static Connection cn = null;
-static PreparedStatement st = null;
-static final Logger logger  = Logger.getLogger("de.ubl.import.getitemdata");
-static Pattern isilPattern;
-
-/*
- * Copyright (C) 2012 Leander Seige, seige@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hospe that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-/**
-* Ticket #2648
-* Ticket #3962
-*
-*/
-public Set getItemData( Record record, String namespace, String isilRegex ) {  
-
-    logger.setLevel(Level.WARNING); // WARNING,FINE,INFO,ALL and so on
-
-    String vufindHome = System.getenv( "VUFIND_HOME_SOLR4" );
-    if (vufindHome == null) {
-        vufindHome = "";
-    }
-
-    Set result = new LinkedHashSet();
-
-    String source_id = indexer.getFirstFieldVal(record, "980b");
-    if(source_id == null || !source_id.equals("0")) {
-        return result; 
-    }
-
-    synchronized(properties) {
-        if(properties.size() == 0) {
-            Class.forName( sDbDrv );
-            try {
-                String ppPath = vufindHome + "/import/index_scripts/mddb.conf";
-                properties.load(new FileInputStream( ppPath ));
-                properties.put("LOAD","true");
-            } catch (IOException e) {
-                logger.severe("ERROR gID reading config file (getItemData)");
-                return result;
-            }
-            String sDbUrl=properties.getProperty("DatabaseUrl");
-            String sUsr=properties.getProperty("DatabaseUser");
-            String sPwd=properties.getProperty("DatabasePassword");
-            try {
-                logger.info("CONNECT gID to " + sDbUrl);
-                cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
-                st = cn.prepareStatement(
-                    "SELECT   sigel,barcode,call_number " +
-                    "FROM     item " + 
-                    "WHERE    finc_id = ? " +
-                    "ORDER BY sigel"
-                );
-                logger.info("CONNECT gID OK => " + sDbUrl);
-            } catch(Exception e) {
-                logger.severe("ERROR gID create database connection: " + e.getMessage());
-                return result;
-            }
-            logger.info("CONNECT gID to " + sDbUrl);
-            Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
-                public void run() {
-                    logger.info("SHUTTING DOWN gID statement");
-                    try { if( null != st ) st.close(); } catch( Exception ex ) {}
-                    logger.info("DISCONNECT gID from " + sDbUrl);
-                    try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
-                }
-            }));
-            isilPattern = Pattern.compile(isilRegex);
-        }
-    }
-
-    String finc_id  = indexer.getFirstFieldVal(record, "001");
-    Long fincNumber = Long.valueOf(finc_id);
-    ResultSet    rs = null;
-
-    try {
-        Matcher m = isilPattern.matcher("");
-        HashMap sigelMap = new HashMap();
-        st.setLong( 1, fincNumber);
-        rs = st.executeQuery();
-        while( rs.next() ) {
-            m.reset( rs.getString(1) );
-            if( m.find()) {
-                String value = "";
-                switch ( namespace ) {
-                    case "barcode" :
-                        value = rs.getString(2); // barcode
-                        break;
-                    case "signatur" :
-                        value = rs.getString(3); // call_number
-                        break;
-                    default :
-                        throw new Exception( "Unknown namespace " + namespace);
-                }
-                result.add( "(" + rs.getString(1) + ")" + value);
-            }
-        }
-        try { rs.close(); } catch( Exception ex ) {}
-        logger.info( "gID: " + namespace + " => " + result);
-    } catch( Exception ex ) {
-        logger.severe( "ERROR gID => " + ex.getMessage() );
-    } finally {
-        try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
-    }
-
-    return result;
-}
diff --git a/import/index_scripts/getItemDataJSON.bsh b/import/index_scripts/getItemDataJSON.bsh
deleted file mode 100644
index ab7d82f7a5f79202643d66c93faf3be33e862fc4..0000000000000000000000000000000000000000
--- a/import/index_scripts/getItemDataJSON.bsh
+++ /dev/null
@@ -1,136 +0,0 @@
-import java.io.*;
-import java.sql.*;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import com.google.gson.Gson;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Properties properties = new Properties();
-static final String sDbDrv = "com.mysql.jdbc.Driver";
-static Connection cn = null;
-static PreparedStatement st = null;
-static final Logger logger  = Logger.getLogger("de.ubl.import.getitemdatajson");
-static final Gson gson      = new com.google.gson.GsonBuilder().create();
-
-/*
- * Copyright (C) 2012 Leander Seige, seige@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hospe that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-/**
-* Ticket #2648, #3962
-*
-*/
-public String getItemDataJSON( Record record ) {  
-    
-    logger.setLevel(Level.WARNING); // WARNING,FINE,INFO,ALL and so on
-
-    String vufindHome = System.getenv( "VUFIND_HOME_SOLR4" );
-    if (vufindHome == null) {
-        vufindHome = "";
-    }
-
-    String result = "";
-
-    String source_id = indexer.getFirstFieldVal(record, "980b");
-    if(source_id == null || !source_id.equals("0")) {
-        return result; 
-    }
-
-    synchronized(properties) {
-        if(properties.size() == 0) {
-            Class.forName( sDbDrv );
-            try {
-                String ppPath = vufindHome + "/import/index_scripts/mddb.conf";
-                properties.load(new FileInputStream( ppPath ));
-                properties.put("LOAD","true");
-            } catch (IOException e) {
-                logger.severe("ERROR gIDJ reading config file (getItemDataJSON)");
-                return result;
-            }
-            String sDbUrl=properties.getProperty("DatabaseUrl");
-            String sUsr=properties.getProperty("DatabaseUser");
-            String sPwd=properties.getProperty("DatabasePassword");
-            try {
-                logger.info("CONNECT gIDJ to " + sDbUrl);
-                cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
-                st = cn.prepareStatement(
-                    "SELECT   sigel,barcode,call_number " +
-                    "FROM     item " + 
-                    "WHERE    finc_id = ? " +
-                    "ORDER BY sigel"
-                );
-                logger.info("CONNECT gIDJ OK => " + sDbUrl);
-            } catch(Exception e) {
-                logger.severe("ERROR gIDJ create database connection: " + e.getMessage());
-                return result;
-            }
-            logger.info("CONNECT gIDJ to " + sDbUrl);
-            Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
-                public void run() {
-                    logger.info("SHUTTING DOWN gIDJ statement");
-                    try { if( null != st ) st.close(); } catch( Exception ex ) {}
-                    logger.info("DISCONNECT gIDJ from " + sDbUrl);
-                    try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
-                }
-            }));
-        }
-    }
-
-    String finc_id  = indexer.getFirstFieldVal(record, "001");
-    Long fincNumber = Long.valueOf(finc_id);
-    ResultSet    rs = null;
-
-    try {
-
-        HashMap sigelMap = new HashMap();
-        st.setLong( 1, fincNumber);
-        rs = st.executeQuery();
-        while( rs.next() ) {
-            List itemList = sigelMap.get( rs.getString(1) );
-            if( itemList == null ) {
-                itemList = new ArrayList();
-                sigelMap.put( rs.getString(1), itemList);
-            }
-            HashMap bccn = new HashMap();
-            bccn.put( "bc", rs.getString(2) );
-            bccn.put( "cn", rs.getString(3) );
-            itemList.add( bccn );
-            // logger.info("ADDING gID : " + rs.getString(1));
-        }
-        try { rs.close(); } catch( Exception ex ) {}
-        result = gson.toJson( sigelMap );
-        logger.info( result );
-    } catch( Exception ex ) {
-        logger.severe( "ERROR gIDJ => " + ex.getMessage() );
-    } finally {
-        try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
-    }
-
-    return result;
-}
diff --git a/import/index_scripts/getParentData.bsh b/import/index_scripts/getParentData.bsh
deleted file mode 100644
index 75e91efb419f5fe4750fa0ae9035a0cd74fe9989..0000000000000000000000000000000000000000
--- a/import/index_scripts/getParentData.bsh
+++ /dev/null
@@ -1,172 +0,0 @@
-import java.io.*;
-import java.sql.*;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Properties properties = new Properties();
-static final String sDbDrv = "com.mysql.jdbc.Driver";
-static Connection cn = null;
-static PreparedStatement st = null;
-static final Logger logger  = Logger.getLogger("de.ubl.import.getparentdata");
-static Pattern isilPattern;
-
-/*
- * Copyright (C) 2012 Leander Seige, seige@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hospe that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Finc Team
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-/**
-* Ticket #4087
-* 
-* # marc_local.properties:
-* hierarchytype="series" // todo
-* hierarchy_top_id       = script(getParentData.bsh), getParentData(parent_id)
-* hierarchy_top_title    = script(getParentData.bsh), getParentData(parent_title)
-* hierarchy_parent_id    = script(getParentData.bsh), getParentData(parent_id)
-* hierarchy_parent_title = script(getParentData.bsh), getParentData(parent_title)
-* # hierarchy_sequence =
-* is_hierarchy_id        = script(getParentData.bsh), getParentData(is_hierarchy_id)
-* is_hierarchy_title     = script(getParentData.bsh), getParentData(is_hierarchy_title)
-* 
-*/
-public Set getParentData( Record record, String attribute ) {  
-
-    logger.setLevel(Level.WARNING); // WARNING,FINE,INFO,ALL and so on
-
-    String vufindHome = System.getenv( "VUFIND_HOME_SOLR4" );
-    if (vufindHome == null) {
-        vufindHome = "";
-    }
-
-    Set result = new LinkedHashSet();
-
-    String source_id = indexer.getFirstFieldVal(record, "980b");
-    if(source_id == null || !source_id.equals("0")) {
-        return result; // todo: open up
-    }
-
-    synchronized(properties) {
-        if(properties.size() == 0) {
-            Class.forName( sDbDrv );
-            String ppPath = vufindHome + "/import/index_scripts/mddb.conf";            
-            try {
-                properties.load(new FileInputStream( ppPath ));
-                properties.put("LOAD","true");
-            } catch (IOException e) {
-                logger.severe("ERROR (getParentData) cannot read " + ppPath);
-                return result;
-            }
-            String sDbUrl=properties.getProperty("DatabaseUrl");
-            String sUsr=properties.getProperty("DatabaseUser");
-            String sPwd=properties.getProperty("DatabasePassword");
-            try {
-                logger.info("CONNECT getParentData to " + sDbUrl);
-                cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
-                st = cn.prepareStatement(
-                    //"select lpad(t.finc_id,10,0), t.title from parents p, finc_mapping f, parent_titles t where t.finc_id=f.finc_id and f.source_id=p.parent_source_id and f.record_id=p.parent_record_id and p.finc_id=?"
-                    "select lpad(t.finc_id,10,0), t.title, f.finc_id, null from parents p, finc_mapping f, parent_titles t where t.finc_id=f.finc_id and f.source_id=p.parent_source_id and f.record_id=p.parent_record_id and p.finc_id=? UNION select distinct null,null,null,lpad(f.finc_id,10,0) from parents p, finc_mapping f where f.source_id=p.parent_source_id and f.record_id=p.parent_record_id and f.finc_id=?"
-                    // result set has entries when there are parents involved, ie when there's hierarchy. rs(4) is null when current finc_id has no parents but is parent (rs(4) actually not needed).
-                );
-                logger.info("CONNECT getParentData OK => " + sDbUrl);
-            } catch(Exception e) {
-                logger.severe("ERROR getParentData create database connection: " + e.getMessage());
-                return result;
-            }
-            logger.info("CONNECT getParentData to " + sDbUrl);
-            Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
-                public void run() {
-                    logger.info("SHUTTING DOWN getParentData statement");
-                    try { if( null != st ) st.close(); } catch( Exception ex ) {}
-                    logger.info("DISCONNECT getParentData from " + sDbUrl);
-                    try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
-                }
-            }));
-        }
-    }
-
-    String is_hierarchy_title = indexer.getFirstFieldVal(record, "245ab");
-    String finc_id  = indexer.getFirstFieldVal(record, "001");
-    Long fincNumber = Long.valueOf(finc_id);
-    ResultSet    rs = null;
-
-    try {
-        st.setLong( 1, fincNumber);
-        st.setLong( 2, fincNumber);
-        rs = st.executeQuery();
-        while( rs.next() ) {
-            String value = "";
-            switch ( attribute ) {
-                case "parent_id" :
-                    value = rs.getString(1); // finc_id
-                    break;
-                case "parent_title" :
-                    value = rs.getString(2); // title
-                    break;
-                case "is_hierarchy_id" :
-                    // value = rs.getString(4); // returns current finc_id (001) iff we are parent
-                    // if (rs.wasNull()) {
-                    //     value = "";
-                    value = finc_id; // we have result set so there's hierarchy
-                    break;
-                case "is_hierarchy_title" :
-                    //value = rs.getString(4); // returns current finc_id (001) iff we are parent
-                    //if (rs.wasNull()) {
-                    value = is_hierarchy_title;
-                    break;
-                case "hierarchy_top_id" :
-                    //value = rs.getString(4); // returns current finc_id (001) iff we are parent
-                    value = rs.getString(1); // parent finc_id
-                    if (rs.wasNull()) {
-                        value = finc_id;
-                    }
-                    break;
-                case "hierarchy_top_title" :
-                    //value = rs.getString(4); // returns current finc_id (001) iff we are parent
-                    value = rs.getString(1); // parent finc_id
-                    if (rs.wasNull()) {
-                        value = is_hierarchy_title;
-                    }
-                    break;
-                default :
-                    throw new Exception( "Unknown attribute " + attribute);
-            }
-            if (value != null) {
-                result.add(value);
-            }
-        }
-        try { rs.close(); } catch( Exception ex ) {}
-        logger.info( "getParentData: " + attribute + " => " + result);
-    } catch( Exception ex ) {
-        logger.severe( "ERROR getParentData => " + ex.getMessage() );
-    } finally {
-        try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
-    }
-
-    return result;
-}
diff --git a/import/index_scripts/getPublishDateSort.bsh b/import/index_scripts/getPublishDateSort.bsh
deleted file mode 100644
index d21b787cc6c889dd751b5ccf0b7d9eab062288c5..0000000000000000000000000000000000000000
--- a/import/index_scripts/getPublishDateSort.bsh
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (C) 2014 finc team, team@finc.info
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-import java.io.*;
-import java.sql.*;
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Logger logger = Logger.getLogger("de.ubl.import.getpublishdatesort");
-
-static final Matcher dm = Pattern.compile("^\\d{4}$").matcher( "" );
-static final Matcher dateMatcher = Pattern.compile("^\\d{2}[^0-9][^0-9]$").matcher( "" );
-static final Matcher date260cMatcher = Pattern.compile("(\\d{2}[0-9a-zA-Z][0-9a-zA-Z])").matcher( "" );
-
-static final Properties properties = new Properties();
-static final String sDbDrv = "com.mysql.jdbc.Driver";
-static Connection cnPDS = null;
-static PreparedStatement stPDS = null;
-
-/**
-* Ticket Allgemein #1748
-*
-* Datum z.B. '19uu' nach '1999'.
-*/
-public String getPublishDateSort(Record record) {
-
-    logger.setLevel( Level.WARNING ); // FINE,INFO,ALL,WARNING and so on
-
-    returndate = "";
-
-    ControlField fixedField = (ControlField) record.getVariableField("008");
-    if (fixedField != null) {
-        String val = fixedField.getData();
-        if( val != null) {
-            String date = val.substring( 7, 11 );
-            if( dm.reset( date ).find()) {
-                logger.info( "NEW publishDateSort 008 exact match => " + date );
-                returndate = date;
-            } else if( dateMatcher.reset( date ).find() ) { // ..uu pattern
-                logger.info( "publishDateSort 008 GESAMTAUFNAHME");
-                String db = getPublishDateSortDB( record );
-                if( db.isEmpty() ) return date.replaceAll( ".{2}$" , "99" );
-                returndate = db;
-            } else { // match field 260 c, see #2258
-                List fields = record.getVariableFields( "260" );
-                List result = new ArrayList();
-                if (fields != null) {
-                    Iterator fieldsIter = fields.iterator();
-                    while( fieldsIter.hasNext() ) {
-                        DataField dataField = (DataField) fieldsIter.next();
-                        List subfields = dataField.getSubfields( 'c' );
-                        Iterator subfieldsIter = subfields.iterator();
-                        if( subfields != null ) {
-                            if( subfieldsIter.hasNext() ) {
-                                String data = subfieldsIter.next().getData();
-                                if( data != null && date260cMatcher.reset( data ).find() ) {
-                                    result.add( date260cMatcher.group( 1 ) );
-                                }
-                            }
-                        }
-                    }
-                }
-                if( result.size() > 0 ) {
-                    Collections.sort( result);
-                    logger.info( "NEW publishDateSort 260c '" + date + "' => " + result.get( 0 ) );
-                    returndate = result.get( 0 );
-                }
-            }
-        }
-    }
-    // Ticket #2966
-    year_current = Calendar.getInstance().get(Calendar.YEAR);
-    String maxokyear = (year_current + 2).toString();
-    logger.info(year_current + " " + maxokyear + " " + returndate + " " + returndate.compareTo(maxokyear));
-    if (returndate.compareTo(maxokyear) <= 0) { // year+2 ok
-        return returndate;
-    } else {
-        logger.warning("publishDateSort ignoring future value of " + returndate);
-    }
-    return "";
-}
-
-/*
-* Allgemein #2330
-* Gesamtaufnahmen erhalten für die Sortierung das Datum des ältesten Bandes
-*
-* *** NUR BEI SOURCE ID 0 ***
-*/
-private String getPublishDateSortDB( Record record ) {
-
-    String vufindHome = System.getenv( "VUFIND_HOME_SOLR4" );
-    if (vufindHome == null) {
-        vufindHome = "";
-    }
-
-    String result = "";
-
-    String source_id = indexer.getFirstFieldVal( record, "980b" );
-    String record_id = indexer.getFirstFieldVal( record, "980a");
-
-    if( source_id == null || !source_id.equals( "0" ) ) {
-        return( result ); 
-    }
-
-    synchronized(properties) {
-        if(properties.size() == 0) {
-            Class.forName( sDbDrv );
-            try {
-                String ppPath = vufindHome + "/import/index_scripts/mddb.conf";
-                properties.load(new FileInputStream( ppPath ));
-                properties.put("LOAD","true");
-            } catch (IOException e) {
-                logger.severe("ERROR 'getPublishedDateSortDB' reading config file (getItemData)");
-                return(result);
-            }
-            String sDbUrl = properties.getProperty("DatabaseUrl");
-            String sUsr   = properties.getProperty("DatabaseUser");
-            String sPwd   = properties.getProperty("DatabasePassword");
-            try {
-                logger.info("CONNECT 'getPublishedDateSortDB' to " + sDbUrl);
-                cnPDS = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
-                stPDS = cnPDS.prepareStatement(
-                    "SELECT MIN(year) " +
-                    "FROM   parents " +
-                    "WHERE  parent_record_id = ?"
-                );
-                logger.info("CONNECT 'getPublishedDateSortDB' OK => " + sDbUrl);
-            } catch(Exception e) {
-                logger.severe("ERROR 'getPublishedDateSortDB' create database connection: " + e.getMessage());
-                return(result);
-            }
-            logger.info( "CONNECT 'getPublishedDateSortDB' to " + sDbUrl );
-            Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
-                public void run() {
-                    logger.info("SHUTTING DOWN 'getPublishedDateSortDB' statement");
-                    try { if( null != stPDS ) stPDS.close(); } catch( Exception ex ) {}
-                    logger.info("DISCONNECT 'getPublishedDateSortDB' from " + sDbUrl);
-                    try { if( null != cnPDS ) cnPDS.close(); } catch( Exception ex ) {}
-                }
-            }));
-        }
-    }
-
-    // logger.info("CHECKING 'getPublishedDateSortDB', RECORD_ID => " + record_id);
-
-    ResultSet          rsPDS = null;
-
-    try {
-
-        stPDS.setString( 1, "(DE-576)" + record_id );  // ist immer Sigel DE-576
-        stPDS.setString( 1, record_id ); // #4087
-        rsPDS = stPDS.executeQuery();
-        if( rsPDS.next() ) {
-            String minYear = rsPDS.getString( 1 );
-            if( minYear != null ) {
-                result = minYear;
-                logger.info( "getPublishedDateSortDB - ADDING : " + record_id + ", YEAR => " + minYear );
-            } else { result = ""; }
-        } else {
-            result = "";
-        }
-        rsPDS.close(); rsPDS = null;
-
-    } catch( Exception ex ) {
-        logger.severe( "ERROR 'getPublishedDateSortDB' => " + ex.getMessage() );
-    } finally {
-        if( rsPDS != null ) try { rsPDS.close(); } catch( Exception ex ) {}
-    }
-
-    return result;
-}
diff --git a/import/index_scripts/getSuperMP.bsh b/import/index_scripts/getSuperMP.bsh
deleted file mode 100644
index 26d29735db3a86fbcb718d93631480a18707c07c..0000000000000000000000000000000000000000
--- a/import/index_scripts/getSuperMP.bsh
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2012 Leander Seige, seige@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Leander Seige
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import org.apache.commons.lang.StringUtils;
-import java.util.HashMap;
-
-
-public Set getSuperMP(Record record, String fieldnums) {
-
-    Set retval = new LinkedHashSet();
-
-    //HashMap<String, String> resvalues = new HashMap<String, String> ();
-    HashMap resvalues = new HashMap();
-    //HashMap<String, Integer> resscores = new HashMap<String, Integer> ();
-    HashMap resscores = new HashMap();
-
-    String value;
-    String id;
-    Integer score;
-    Integer cscore;
-
-    String[] fields=fieldnums.split(":");
-
-    for(int i =0; i < fields.length ; i++) {
-        field=fields[i];
-
-        fnum=field.substring(0,3);
-        fsfc=field.substring(3,4);
-
-        List fs = record.getVariableFields(fnum);
-        Iterator fsI = fs.iterator();
-
-        if (fs != null) {
-            DataField df;
-            while(fsI.hasNext()) {
-                df = (DataField) fsI.next();
-
-                Subfield fw = df.getSubfield('w');
-                if (fw == null) { // qucosa
-                    fw = df.getSubfield('6');
-                }
-                if (fw != null) {
-                    Subfield fsubany = df.getSubfield(fsfc.charAt(0));
-                    if(fsubany != null) {
-                        value=fsubany.getData().trim();
-                        id=fw.getData().replaceAll("^\\([^\\)]+\\)","");
-                        score=StringUtils.countMatches(value,",");
-
-                        if(resvalues.containsKey(id)) {
-                            cscore=resscores.get(id);
-                            if(cscore>score) {
-                                // System.out.println(">>> skipping: "+fnum+fsfc+": "+value);
-                                continue;
-                            }
-                        }
-                        // System.out.println(">>> choosing: "+fnum+fsfc+": "+value);
-                        resvalues.put(id,value);
-                        resscores.put(id,score);
-                    }
-                }
-            }
-        }
-    }
-    
-    for (String key : resvalues.keySet()) {
-        value="("+key+")"+resvalues.get(key);
-        // System.out.println(">>> adding: "+value);
-        retval.add(value);
-    }
-    
-    return retval;
-}
-
-
diff --git a/import/index_scripts/imprint.bsh b/import/index_scripts/imprint.bsh
deleted file mode 100644
index d0c71cd533210fa7df6cbcd8fdb4bc2bccb68707..0000000000000000000000000000000000000000
--- a/import/index_scripts/imprint.bsh
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * Custom 260abc script
- *
- */
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.apache.commons.lang.StringUtils;
-
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-
-/**
- * Read first values of 260abc.
- * Ticket #3314
- *
- * @param  Record    record
- * @return String    of first 260: first a, first b, first c
- */
-
-static final Logger logger = Logger.getLogger("de.ubl.import.imprint");
-
-public String getImprint(Record record) {
-
-    // logger.setLevel( Level.INFO );
-
-    char[] subfield_codes = new char[]{'a', 'b', 'c'};
-    List result_parts = new ArrayList();
-    List fields = record.getVariableFields("260");
-    Iterator fieldsIter = fields.iterator();
-    if (fields != null) {
-        DataField df;
-        while(fieldsIter.hasNext()) {
-            df = (DataField) fieldsIter.next();
-            for (char subfield_code : subfield_codes) {
-                List subfields = df.getSubfields(subfield_code);
-                Iterator subfieldsIter = subfields.iterator();
-                if (subfields != null) {
-                    while (subfieldsIter.hasNext()) {
-                        String val = subfieldsIter.next().getData();
-                        // logger.info("imprint val: " + val);
-                        result_parts.add(val);
-                        break; // first subfield value only
-                    }
-                }
-            }
-            // break; // first 260 field only
-            return StringUtils.join(result_parts, " ");
-        }
-    }
-    return null;
-}
diff --git a/import/index_scripts/ismn.bsh b/import/index_scripts/ismn.bsh
deleted file mode 100644
index bf8def4e1b40182852b310cb7513c57f5a5b30f9..0000000000000000000000000000000000000000
--- a/import/index_scripts/ismn.bsh
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2013 Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Logger logger = Logger.getLogger("de.ubl.import.ismn");
-
-/**
-* Da in dem Feld '024a' aber auch allerhand andere Sachen stehen (können) -
-* siehe Ticket #1538 -, müssen wir genauer unterscheiden.
-* Das Beanshell soll den Inhalt von 024a zurückliefern unter folgender
-* Bedingung: 1. Indikator = 2
-*/
-public String getIsmn( Record record ) {
-
-    logger.setLevel( Level.WARNING ); // WARNING,FINE,INFO,ALL and so on
-
-    List fields = record.getVariableFields( "024" );
-    if (fields != null) {
-        Iterator fieldsIter = fields.iterator();
-        while( fieldsIter.hasNext() ) {
-            DataField dataField = (DataField) fieldsIter.next();
-            List subfields = dataField.getSubfields( 'a' );
-            if( subfields != null && !subfields.isEmpty() && dataField.getIndicator1() == '2') {
-                Iterator subfieldsIter = subfields.iterator();
-                if( subfields != null ) {
-                    if( subfieldsIter.hasNext() ) {
-                        String data = subfieldsIter.next().getData().toLowerCase();
-                        String record_id = indexer.getFirstFieldVal( record, "980a" );
-                        logger.info( "FOUND ISMN record_id => " + record_id + ", ismn => " + data);
-                        return data;
-                    }
-                }
-            }
-        }
-    }
-
-    return "";
-}
diff --git a/import/index_scripts/mddb.conf b/import/index_scripts/mddb.conf
deleted file mode 100644
index daa801789fd0b4126f1a8d1cb9c62ef88e05da6b..0000000000000000000000000000000000000000
--- a/import/index_scripts/mddb.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-DatabaseUrl = jdbc:mysql://172.18.113.101:3306/mddb3
-DatabaseUser = vufind2
-DatabasePassword = vufind2
-
diff --git a/import/index_scripts/mddb.conf_default b/import/index_scripts/mddb.conf_default
deleted file mode 100644
index 564099d6d05024e32d59dc4bd56fe768e2282651..0000000000000000000000000000000000000000
--- a/import/index_scripts/mddb.conf_default
+++ /dev/null
@@ -1,4 +0,0 @@
-DatabaseUrl = jdbc:mysql://localhost:3306/mddb3
-DatabaseUser = USER
-DatabasePassword = PASS
-
diff --git a/import/index_scripts/mddb.conf_finc_hw1 b/import/index_scripts/mddb.conf_finc_hw1
deleted file mode 100644
index 1344411b326ec0563b4fd49c7714374d96b76c05..0000000000000000000000000000000000000000
--- a/import/index_scripts/mddb.conf_finc_hw1
+++ /dev/null
@@ -1,4 +0,0 @@
-DatabaseUrl = jdbc:mysql://172.18.85.101:3306/mddb
-DatabaseUser = mddb
-DatabasePassword = mddb
-
diff --git a/import/index_scripts/mega_collection.bsh b/import/index_scripts/mega_collection.bsh
deleted file mode 100644
index ffc2e0b4ec82b8ed13bf54a43de4b51ac6e95dde..0000000000000000000000000000000000000000
--- a/import/index_scripts/mega_collection.bsh
+++ /dev/null
@@ -1,96 +0,0 @@
-import org.marc4j.marc.Record;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/*
- * Copyright (C) 2012 Leander Seige, seige@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Leander Seige
- * @author   Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Logger logger = Logger.getLogger("de.ubl.import.getMegaCollection");
-
-public Set getMegaCollection(Record record) {
-
-    logger.setLevel( Level.WARNING ); // FINE,INFO,ALL,WARNING and so on
-
-    Set result = new LinkedHashSet();
-
-    String sid = indexer.getFirstFieldVal(record, "980b");
-    String rid = indexer.getFirstFieldVal(record, "980a");
-
-    List list = record.getVariableFields("912");
-    if( list != null && list.size() > 0 ) {
-        for( Object df_obj : list ) {
-            DataField df = (DataField)df_obj;
-            Subfield sbData = df.getSubfield( 'a' );
-            if ( sbData != null ) {
-                String data = sbData.getData();
-                data = data.trim();
-                // Ticket #1629: 912a=qucosa could be in sid 0, 8, 13 (22)
-                // check 912a for qucosa in any sid
-                if ( data.equals( "qucosa" ) || data.equals( "KEY" ) ) {
-                    logger.info( "QUCOSA => " + rid + " - " + data );
-                    result.add( data );
-                }
-                if ( sid.equals( "17" ) ) {
-                    result.add( data );
-                }
-            }
-        }
-    }
-
-    if ( sid.equals( "0") ) {
-
-        // Tickets #1565, #2038, #2399
-        // multiple 935 possible
-        List list935 = record.getVariableFields("935");
-        if( list935 != null && list935.size() > 0 ) {
-            for( Object df_obj : list935 ) {
-                DataField df = (DataField)df_obj;
-                Subfield sbData = df.getSubfield( 'a' );
-                if ( sbData != null ) {
-                    String data = sbData.getData();
-                    data = data.trim();
-                    if ( data.equals("TRCS") || data.equals("AMSP") ) {
-                        logger.info("935a => " + data);
-                        result.add(data);
-                    }
-                }
-            }	
-        }
-
-        // Ticket #1773, safe to assume single 971
-        String val = indexer.getFirstFieldVal( record, "971p" );
-        if ( val != null && val.equals( "pdam" ) ) {
-            logger.info( "971p => " + val );
-            result.add( val );
-        }
-
-    }
-
-    result.add( sid );
-    return result;
-}
diff --git a/import/index_scripts/misc_del152.bsh b/import/index_scripts/misc_del152.bsh
deleted file mode 100644
index 623951b3782cf12635225d412f5258d3a7e9aecc..0000000000000000000000000000000000000000
--- a/import/index_scripts/misc_del152.bsh
+++ /dev/null
@@ -1,85 +0,0 @@
-        /*
- * Copyright (C) 2013 Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Logger logger = Logger.getLogger("de.ubl.import.miscdel52");
-
-/**
-* Allgemein #1680
-* Beanshell (neu) für misc_del152
-* Wenn source_id = 15, dann gib den Inhalt von 590 $b zurück. Und 590 $a. #872
-* Wenn source_id = 21 und 655 $2 = DE-Wim8, dann gib den Inhalt von 655 $a zurück.
-*/
-public Set misc_del152( Record record ) {
-
-    logger.setLevel( Level.WARNING ); // WARNING,FINE,INFO,ALL and so on
-
-    Set result = new LinkedHashSet();
-    String source_id = indexer.getFirstFieldVal( record, "980b" );
-
-    if( source_id.equals( "15" ) ) {
-        List fs = record.getVariableFields("590");
-        Iterator fsIter = fs.iterator();
-        if (fs != null) {
-            while(fsIter.hasNext()) {
-                DataField df = (DataField) fsIter.next();
-                if (df.getSubfield('a') != null){
-                    String value = df.getSubfield('a').getData().trim();
-                    result.add( value );
-                }
-                if (df.getSubfield('b') != null){
-                    String value = df.getSubfield('b').getData().trim();
-                    result.add( value );
-                }
-            }
-        }
-    } else if( source_id.equals( "21" ) ) {
-        List rvk = record.getVariableFields("655");
-        Iterator rvkIter = rvk.iterator();
-        if (rvk != null) {
-            while(rvkIter.hasNext()) {
-                DataField rvk_df = (DataField) rvkIter.next();
-                if ( rvk_df.getSubfield( '2' ) != null ) {
-                    if ( rvk_df.getSubfield( '2' ).getData().equals( "DE-Wim8" ) ) {
-                        if ( rvk_df.getSubfield( 'a' ) != null ) {
-                            String value = rvk_df.getSubfield('a').getData().trim();
-                            logger.info( "MISCDEL152 655a => " + value);
-                            result.add( value );
-                        }
-                    } 
-                }
-            }
-        }
-    }
-    
-    if( result.isEmpty() ) { result.add( "" ); } // leer
-
-    return result;
-}
\ No newline at end of file
diff --git a/import/index_scripts/purchaseInfo.bsh b/import/index_scripts/purchaseInfo.bsh
deleted file mode 100644
index 841c669fe3d15589432c1daf5f33bf68c4a4c664..0000000000000000000000000000000000000000
--- a/import/index_scripts/purchaseInfo.bsh
+++ /dev/null
@@ -1,72 +0,0 @@
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import org.marc4j.marc.Subfield;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/*
- * Copyright (C) 2013 Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Logger logger = Logger.getLogger("de.ubl.import.purchaseinfo");
-static final Map m = Collections.synchronizedMap( new LinkedHashMap() );
-
-/**
- * Determine Record Format(s)
- *
- * @param  Record record
- * @return Set of sigel
- */
-public Set purchaseInfo( Record record ) {
-
-    logger.setLevel(Level.WARNING); // FINE,INFO,ALL and so on
-	
-    Set result = new LinkedHashSet();
-
-    if( m.size() == 0 ) {
-        logger.info( "PURCHASE INFO => init sigel map" );
-        m.put( "969m", "DE-15" );
-        m.put( "970m", "DE-L152" );
-        m.put( "971m", "DE-Ch1" );
-        m.put( "972m", "DE-105" );
-        m.put( "973m", "DE-520" );
-        m.put( "974m", "DE-L189" );
-        m.put( "975m", "DE-Zwi2" );
-        m.put( "976m", "DE-Zi4" );
-        m.put( "977m", "DE-D117" );
-        m.put( "978m", "DE-540" );
-        m.put( "979m", "DE-L242" );
-    }
-
-    for( String field : m.keySet() ) {
-        String e = indexer.getFirstFieldVal( record, field );
-        if(e != null && e.equals( "e" )) {
-            result.add( m.get( field ) );
-            logger.info( "PURCHASE INFO => added sigel " + m.get( field ) );
-        }
-    }
-
-    return result;
-}
diff --git a/import/index_scripts/rvk.bsh b/import/index_scripts/rvk.bsh
deleted file mode 100644
index 8736fa7ca3fc11fa1055a9236b1ff486eebb20bf..0000000000000000000000000000000000000000
--- a/import/index_scripts/rvk.bsh
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2012 finc team, team@finc.info
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   finc team
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-import org.marc4j.marc.Record;
-import org.marc4j.marc.DataField;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-
-public Set getRvk(Record record){
-	Set result = new LinkedHashSet();
-	// DataField rvk = (DataField) record.getVariableField("084");
-	// DataField rvkSecond = (DataField) record.getVariableField("936");
-
-    // check if there's "rvk" in the 084 $2; ignore if it isn't
-	// return RVK-Notation from 084 $a
-	List rvk = record.getVariableFields("084");
-	Iterator rvkIter = rvk.iterator();
-    if (rvk != null) {
-		while(rvkIter.hasNext()) {
-            DataField rvk_df = (DataField) rvkIter.next();
-			if (rvk_df.getSubfield('2') != null){
-				if (rvk_df.getSubfield('2').getData().toLowerCase().contains("rvk")) {
-	    			// result.add(indexer.getFirstFieldVal(record, "084a"));
-					result.add(rvk_df.getSubfield('a').getData());
-				} 
-			}
-		}
-	}
-	
-	// In 936 stehen die gleichen RVK-Notationen, die sich schon in 084 finden.
-	// Sie sind lediglich durch Benennung und Identnummer ergänzt.
-	// Diese Notationen müssen also nicht zusätzlich
-	// check if there's 936 and return RVK-Notation from 936 $a
-/*    List fields = record.getVariableFields("936");
-    Iterator fieldsIter = fields.iterator();
-    if (fields != null) {
-		while(fieldsIter.hasNext()) {
-			result.add(indexer.getFirstFieldVal(record, "936a"));
-		}
-	}
-*/
-
-	if (!result.isEmpty()) {
-		return result;
-    }
-
-	// Nothing worked!
-	if (result.isEmpty()) {
-		result.add("No subject assigned");
-    }
-    return result;		
-}
diff --git a/import/index_scripts/signatur.bsh b/import/index_scripts/signatur.bsh
deleted file mode 100644
index 139a2b0fb8ba1b6e8cc50f910675b0746f67fd55..0000000000000000000000000000000000000000
--- a/import/index_scripts/signatur.bsh
+++ /dev/null
@@ -1,126 +0,0 @@
-import org.marc4j.marc.Record;
-import org.marc4j.marc.ControlField;
-import org.marc4j.marc.DataField;
-import java.util.regex.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/*
- * Copyright (C) 2012 Leander Seige, seige@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Leander Seige
- * @author   Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-static final Logger logger = Logger.getLogger("de.ubl.import.format");
-
-public Set getSignatur(Record record) {
-
-    logger.setLevel( Level.WARNING ); // WARNING,FINE,INFO,ALL and so on
-
-	Pattern pattern = Pattern.compile("^(.*):([^:]*)$");
-
-	Set result = new LinkedHashSet();
-
-	List fields,subfields;
-	Iterator fields_it,subfields_it;
-	DataField field;
-	String value,temp;
-	String[] values;
-
-	fields = record.getVariableFields("971");
-    if (fields != null) {
-        fields_it = fields.iterator();
-        while(fields_it.hasNext()) {
-            field = (DataField) fields_it.next();
-            subfields = field.getSubfields( 'j' );
-            if( subfields != null ) {
-                subfields_it= subfields.iterator();
-                while( subfields_it.hasNext() ) {
-                    value=subfields_it.next().getData();
-                    Matcher matcher = pattern.matcher(value);
-                    if( matcher.find() ) {
-                        for( int i = 1; i <= matcher.groupCount(); i++ ) {
-                            if( i > 1 ) {
-                                temp = "(DE-Ch1)" + matcher.group(i); 
-                                result.add(temp);
-                            }
-                        }
-                    }
-                    result.add(value);	
-                }
-            }
-        }
-    }
-
-	fields = record.getVariableFields("972");
-    if (fields != null) {
-        fields_it = fields.iterator();
-        while(fields_it.hasNext()) {
-            field = (DataField) fields_it.next();
-            subfields = field.getSubfields('i');
-            if (subfields != null) {
-                subfields_it= subfields.iterator();
-                while (subfields_it.hasNext()) {
-                    value=subfields_it.next().getData();
-                    result.add(value);
-                }
-            }
-        }
-    }
-
-	fields = record.getVariableFields("981");
-    if (fields != null) {
-        fields_it = fields.iterator();
-        while(fields_it.hasNext()) {
-            field = (DataField) fields_it.next();
-            subfields = field.getSubfields('a');
-            if (subfields != null) {
-                subfields_it= subfields.iterator();
-                while (subfields_it.hasNext()) {
-                    value = subfields_it.next().getData();
-                    result.add(value);
-                }
-            }
-        }
-    }
-
-    // #1302 - Zwickau Finc-Kategorie
-	fields = record.getVariableFields("975");
-    if (fields != null) {
-        fields_it = fields.iterator();
-        while(fields_it.hasNext()) {
-            field = (DataField) fields_it.next();
-            subfields = field.getSubfields('o');
-            if (subfields != null) {
-                subfields_it= subfields.iterator();
-                while (subfields_it.hasNext()) {
-                    value = subfields_it.next().getData();
-                    result.add( "(DE-Zwi2)" + value);
-                }
-            }
-        }
-    }
-
-    logger.info( "SIGNATUR => " + result);
-
-    return result;
-
-}
diff --git a/import/index_scripts/zdb.bsh b/import/index_scripts/zdb.bsh
deleted file mode 100644
index d81c0276c883fdf016798c839a7b8ca4e7b2f106..0000000000000000000000000000000000000000
--- a/import/index_scripts/zdb.bsh
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2012 Polichronis Tsolakidis, tsolakidis@ub.uni-leipzig.de
- * Leipzig University Library, Project finc
- * http://www.ub.uni-leipzig.de
- * 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * @author   Polichronis Tsolakidis
- * @license  http://opensource.org/licenses/gpl-3.0.html GNU General Public License
- * @link     http://finc.info
- */
-
-import org.marc4j.marc.Record;
-import java.util.*;
-import java.util.regex.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-org.solrmarc.index.SolrIndexer indexer = null;
-static final Logger logger = Logger.getLogger("de.ubl.import.zdb");
-static final Matcher m = Pattern.compile( "ZDB(.+)$" ).matcher( "" );
-
-public String getZdb( Record record ) {
-
-    logger.setLevel( Level.WARNING ); // WARNING,FINE,INFO,ALL and so on
-
-    String zdbString = indexer.getFirstFieldVal( record, "035a" );
-
-    if( zdbString != null ) {
-        zdbString = zdbString.trim();
-        if( zdbString.length() > 0 ) {
-            m.reset( zdbString );
-            if( m.find() ) {
-                String zdb = m.group( 1 );
-                String record_id = indexer.getFirstFieldVal(record, "980a");
-                logger.info( "ZDB record_id => " + record_id + ", zdb => " + zdb );
-                return zdb;
-            }
-        }
-    }
-
-    return "";
-}
diff --git a/import/lib/bsh-2.0b5.jar b/import/lib/bsh-2.0b5.jar
deleted file mode 100644
index e326510007373f0a5f96acf121e97fb58c4fc8ed..0000000000000000000000000000000000000000
Binary files a/import/lib/bsh-2.0b5.jar and /dev/null differ
diff --git a/import/lib/classgraph-4.1.6.jar b/import/lib/classgraph-4.1.6.jar
deleted file mode 100644
index a0788bc1b2d882cd446e304b5ad1843ed221e802..0000000000000000000000000000000000000000
Binary files a/import/lib/classgraph-4.1.6.jar and /dev/null differ
diff --git a/import/lib/commons-lang3-3.3.2.jar b/import/lib/commons-lang3-3.3.2.jar
deleted file mode 100644
index bb069797f1d28d388a7711443b0da889d24f4bcd..0000000000000000000000000000000000000000
Binary files a/import/lib/commons-lang3-3.3.2.jar and /dev/null differ
diff --git a/import/lib/gson-2.2.2.jar b/import/lib/gson-2.2.2.jar
deleted file mode 100644
index f2108e00c632f672f108bf4d0282f5bcdb953307..0000000000000000000000000000000000000000
Binary files a/import/lib/gson-2.2.2.jar and /dev/null differ
diff --git a/import/lib/java-cup-11b-runtime.jar b/import/lib/java-cup-11b-runtime.jar
deleted file mode 100644
index b248460839d0ec0bfc4326e157860e563ec1dd08..0000000000000000000000000000000000000000
Binary files a/import/lib/java-cup-11b-runtime.jar and /dev/null differ
diff --git a/import/lib/jopt-simple-5.0.2.jar b/import/lib/jopt-simple-5.0.2.jar
deleted file mode 100644
index 2c7a0872d2f164d78ae877922ea15af92baf8290..0000000000000000000000000000000000000000
Binary files a/import/lib/jopt-simple-5.0.2.jar and /dev/null differ
diff --git a/import/lib/log4j-1.2.17.jar b/import/lib/log4j-1.2.17.jar
deleted file mode 100644
index 1d425cf7d7e25f81be64d32c406ff66cfb6c4766..0000000000000000000000000000000000000000
Binary files a/import/lib/log4j-1.2.17.jar and /dev/null differ
diff --git a/import/lib/marc4j-2.8.3.jar b/import/lib/marc4j-2.8.3.jar
deleted file mode 100644
index 370ee8e3c874474711da77264f15f7002983138b..0000000000000000000000000000000000000000
Binary files a/import/lib/marc4j-2.8.3.jar and /dev/null differ
diff --git a/import/lib/miglayout15-swing.jar b/import/lib/miglayout15-swing.jar
deleted file mode 100644
index 2d6a62f1bfcaf5282cc3496371e2a9e1fafaac7c..0000000000000000000000000000000000000000
Binary files a/import/lib/miglayout15-swing.jar and /dev/null differ
diff --git a/import/lib/slf4j-log4j12-1.7.16.jar b/import/lib/slf4j-log4j12-1.7.16.jar
deleted file mode 100644
index a6aef80e9eed61f717d2f7c2655bebd2b3290b68..0000000000000000000000000000000000000000
Binary files a/import/lib/slf4j-log4j12-1.7.16.jar and /dev/null differ
diff --git a/import/lib/sqlitejdbc-v053.jar b/import/lib/sqlitejdbc-v053.jar
deleted file mode 100644
index 776fbe311c008d29e1cf9fd1a53c9cf76cf4e7fc..0000000000000000000000000000000000000000
Binary files a/import/lib/sqlitejdbc-v053.jar and /dev/null differ
diff --git a/import/lib_local/README.md b/import/lib_local/README.md
deleted file mode 100644
index f5ff428ebd44c5d00040192aa5efd080adf973e5..0000000000000000000000000000000000000000
--- a/import/lib_local/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-This folder contains dependencies specific to VuFind's custom indexing functions.
-
-Core SolrMarc dependencies are found in the regular lib directory.
diff --git a/import/lib_local/ini4j-0.5.2-SNAPSHOT.jar b/import/lib_local/ini4j-0.5.2-SNAPSHOT.jar
deleted file mode 100644
index 85707732290732acd99e4444dd750ff1b1134897..0000000000000000000000000000000000000000
Binary files a/import/lib_local/ini4j-0.5.2-SNAPSHOT.jar and /dev/null differ
diff --git a/import/lib_local/mysql-connector-java-5.0.8-bin.jar b/import/lib_local/mysql-connector-java-5.0.8-bin.jar
deleted file mode 100644
index 0170c3e53a223416f427809065a7f98ef60ce1bc..0000000000000000000000000000000000000000
Binary files a/import/lib_local/mysql-connector-java-5.0.8-bin.jar and /dev/null differ
diff --git a/import/lib_local/postgresql-9.1-902.jdbc4.jar b/import/lib_local/postgresql-9.1-902.jdbc4.jar
deleted file mode 100644
index 078f37936c4ec69efe53fdcc8b4b2bbdff91e2e1..0000000000000000000000000000000000000000
Binary files a/import/lib_local/postgresql-9.1-902.jdbc4.jar and /dev/null differ
diff --git a/import/log4j.properties b/import/log4j.properties
deleted file mode 100644
index 59a6adaa0a6a6dd61f33bd791bf8132720983604..0000000000000000000000000000000000000000
--- a/import/log4j.properties
+++ /dev/null
@@ -1,49 +0,0 @@
-# Properties file for logging via log4j
-#
-# $Id: log4j.properties 396 2009-02-13 15:24:07Z rh9ec@virginia.edu $
-
-log4j.rootLogger=info, stdout, file
-
-# Application logging level
-# 	Valid options are TRACE,DEBUG,INFO,WARN,ERROR,FATAL
-log4j.logger.org.solrmarc=DEBUG
-log4j.logger.org.solrmarc.index.extractor.impl.java.JavaValueExtractorUtils=INFO
-log4j.logger.org.solrmarc.index.utils.FastClasspathUtils=INFO
-log4j.logger.org.solrmarc.marc.MarcHandler=INFO
-log4j.logger.org.solrmarc.tools.PropertyUtils=INFO
-log4j.logger.org.solrmarc.tools.DataUtil=INFO
-log4j.logger.org.solrmarc.index.mapping.impl.TranslationMappingFactory=INFO
-log4j.logger.org.solrmarc.driver.ThreadedIndexer=INFO
-log4j.logger.org.solrmarc.driver.ChunkIndexerWorker=INFO
-log4j.logger.org.solrmarc.driver.IndexDriver=DEBUG
-log4j.logger.org.solrmarc.index.indexer.FullConditionalParser=INFO
-log4j.logger.org.solrmarc.index.indexer.VerboseSymbolFactory=INFO
-log4j.logger.org.apache.solr=INFO
-
-# stdout appender
-# Output the file name and line number to the console
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
-log4j.appender.stdout.target=System.out
-
-# Log file appender
-# Use a RollingFileAppender
-# named solrmarc.log
-# with a max file size of 100KB
-# and keep 1 previous log file
-log4j.appender.file=org.apache.log4j.RollingFileAppender
-log4j.appender.file.File=${solrmarc.jar.dir}/solrmarc.log
-log4j.appender.file.MaxFileSize=100KB
-log4j.appender.file.MaxBackupIndex=1
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %t %c - %m%n
-
-#smtp
-#log4j.appender.appMail=org.apache.log4j.net.SMTPAppender
-#log4j.appender.appMail.From=bounce@myuniversity.edu
-#log4j.appender.appMail.SMTPHost=smtp.myuniversity.edu
-#log4j.appender.appMail.Subject=VuFind Import Log
-#log4j.appender.appMail.To=you@myuniversity.edu
-#log4j.appender.appMail.layout=org.apache.log4j.PatternLayout
-#log4j.appender.appMail.layout.ConversionPattern=%p %d{dd/MM/yyyy HH:mm:ss} %F %L %m%n
diff --git a/import/marc.properties b/import/marc.properties
deleted file mode 100644
index e061dae9f6e615bc1b2f39ddc57262a8447bd0a6..0000000000000000000000000000000000000000
--- a/import/marc.properties
+++ /dev/null
@@ -1,116 +0,0 @@
-###############################################################################
-# marc.properties -- standard VuFind MARC mappings.  If you wish to customize #
-#                    these settings, it is recommended that you edit          #
-#                    marc_local.properties to make upgrades simpler.          #
-###############################################################################
-id = 001, first
-lccn = 010a, first
-ctrlnum = 035a
-collection = "Catalog"
-institution = "MyInstitution"
-building = "Library A"
-
-fullrecord = FullRecordAsMarc
-recordtype = "marc"
-allfields = custom, getAllSearchableFieldsAsSet(100, 900)
-
-language = 008[35-37]:041a:041d:041h:041j, language_map.properties
-format = custom, getFormat, format_map.properties
-
-# All of the *FilteredByRelator() indexing functions take the same list of
-# parameters:
-#
-# 1. The field specification for retrieving author names
-# 2. A colon-delimited list of tags whose contents should be accepted even if no
-#    relator term is specified.
-# 3. Either a colon-delimited list of relator terms whose corresponding authors
-#    should be indexed into the field, or a setting name from the [AuthorRoles]
-#    section of author-classification.ini containing such a list.
-# 4. A colon-delimited list of tags whose contents should be accepted if an
-#    unknown (not defined in author-classification.ini's [RelatorSynonyms] section)
-#    relator term is encountered. You can set this to "none" to ignore all unknown
-#    relator terms. Optional; defaults to the same list as parameter 2.
-# 5. Whether to index raw relator terms instead of mapping them according to
-#    [RelatorSynonyms] in author-classification.ini. Default value is 'false' (do
-#    not index raw values).
-#
-# It is VERY IMPORTANT to pass identical values for all 5 parameters to all related
-# fields. Thus, author/author_variant/author_fuller/author_role/author_sort should
-# all receive the same parameters, as should the groupings of
-# author2/author2_variant/author2_fuller/author2_role and
-# author_corporate/author_corporate_role. If the parameters are not kept in sync,
-# the index may contain mismatched author names and relator values.
-#
-# see $VUFIND_HOME/config/vufind/author-classification.ini for relator definitions
-author                = custom, getAuthorsFilteredByRelator(100abcd:700abcd,100,firstAuthorRoles)
-author_variant        = custom, getAuthorInitialsFilteredByRelator(100a:700a,100,firstAuthorRoles)
-author_fuller         = custom, getAuthorsFilteredByRelator(100q:700q,100,firstAuthorRoles)
-author_role           = custom, getRelatorsFilteredByRelator(100abcd:700abcd,100,firstAuthorRoles)
-author2               = custom, getAuthorsFilteredByRelator(100abcd:700abcd,700,secondAuthorRoles)
-author2_variant       = custom, getAuthorInitialsFilteredByRelator(100a:700a,700,secondAuthorRoles)
-author2_fuller        = custom, getAuthorsFilteredByRelator(100q:700q,700,secondAuthorRoles)
-author2_role          = custom, getRelatorsFilteredByRelator(100abcd:700abcd,700,secondAuthorRoles)
-author_corporate      = custom, getAuthorsFilteredByRelator(110ab:111abc:710ab:711ab,110:111:710:711,firstAuthorRoles|secondAuthorRoles)
-author_corporate_role = custom, getRelatorsFilteredByRelator(110ab:111abc:710ab:711ab,110:111:710:711,firstAuthorRoles|secondAuthorRoles)
-author_sort           = custom, getFirstAuthorFilteredByRelator(100abcd:110ab:111abc:700abcd,100:110:111:700,firstAuthorRoles)
-author_additional     = 505r
-
-title = 245ab, first
-title_sub = 245b, first
-title_short = 245a, first
-title_full = custom, getAllAlphaSubfields(245, first)
-title_auth = 245ab, first
-title_alt = 100t:130adfgklnpst:240a:246a:505t:700t:710t:711t:730adfgklnpst:740a
-title_old = 780ast
-title_new = 785ast
-title_sort = custom, getSortableTitle
-#title_sort = 245ab, join(" "), titleSortLower
-series = 440ap:800abcdfpqt:830ap
-series2 = 490a
-
-publisher = custom, getPublishers
-publishDate = custom, getDates
-publishDateSort = custom, getFirstDate
-
-physical = 300abcefg:530abcd
-dateSpan = 362a
-edition = 250a, first
-#description =
-contents = 505a:505t
-
-isbn = 020a:773z
-issn = 022a:440x:490x:730x:773x:776x:780x:785x
-
-callnumber-first = 099a[0]:090a[0]:050a[0], callnumber_map.properties, first
-callnumber-subject = custom, getCallNumberSubject(090a:050a), callnumber_subject_map.properties
-callnumber-label = custom, getCallNumberLabel(090a:050a)
-callnumber-sort = custom, getLCSortable(099ab:090ab:050ab)
-callnumber-raw = 099ab:090ab:050ab
-
-topic = custom, getAllSubfields(600:610:611:630:650:653:656, " ")
-genre = custom, getAllSubfields(655, " ")
-geographic = custom, getAllSubfields(651, " ")
-era = custom, getAllSubfields(648, " ")
-
-topic_facet = 600x:610x:611x:630x:648x:650a:650x:651x:655x
-genre_facet = 600v:610v:611v:630v:648v:650v:651v:655a:655v
-geographic_facet = 600z:610z:611z:630z:648z:650z:651a:651z:655z
-era_facet = 600d:610y:611y:630y:648a:648y:650y:651y:655y
-
-url = 856u:555u
-
-illustrated = custom, isIllustrated
-
-dewey-hundreds = custom, getDeweyNumber(082a:083a, 100), ddc22_map.properties(hundreds)
-dewey-tens = custom, getDeweyNumber(082a:083a, 10), ddc22_map.properties(tens)
-dewey-ones = custom, getDeweyNumber(082a:083a, 1), ddc22_map.properties(ones)
-dewey-full = custom, getDeweySearchable(082a:083a)
-dewey-sort = custom, getDeweySortable(082a:083a)
-dewey-raw = 082a:083a
-
-# Extract the numeric portion of the OCLC number using a pattern map:
-oclc_num = 035a, (pattern_map.oclc_num)
-pattern_map.oclc_num.pattern_0 = [(][Oo][Cc][Oo][Ll][Cc][)][^0-9]*[0]*([0-9]+)=>$1
-pattern_map.oclc_num.pattern_1 = ocm[0]*([0-9]+)[ ]*[0-9]*=>$1
-pattern_map.oclc_num.pattern_2 = ocn[0]*([0-9]+).*=>$1
-pattern_map.oclc_num.pattern_3 = on[0]*([0-9]+).*=>$1
diff --git a/import/marc_auth.properties b/import/marc_auth.properties
deleted file mode 100644
index e4aadb68f039f1a09f8aa29ca0a5c2411e46f3d6..0000000000000000000000000000000000000000
--- a/import/marc_auth.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################################
-# marc_auth.properties -- VuFind MARC mappings for authority records. See     #
-#                         marc.properties for the more commonly changed       #
-#                         bibliographic settings.                             #
-###############################################################################
-id = custom, getFirstNormalizedLCCN("010a")
-record_format = "marc"
-lccn = custom, getNormalizedLCCNs("010a")
-
-# These values should be overridden in a second properties file (for example,
-# see marc_auth_fast_*.properties). This allows the basic authority mappings to
-# be used for multiple sources/types of authority records.
-source = "Unknown"
-record_type = "Unknown"
-
-fullrecord = FullRecordAsMarc
-allfields = custom, getAllSearchableFieldsAsSet(100, 900)
-
-# These are just artificial examples -- as with source and record_type, they
-# should be overridden in a second properties file:
-heading = custom, getAllSubfields(100:110:111, " ")
-use_for = custom, getAllSubfields(400:410:411, " ")
-see_also = custom, getAllSubfields(500:510:511, " ")
-scope_note = custom, getAllSubfields(665:663:360, " ")
-
-# RDA fields
-birth_date = 046f, first
-death_date = 046g, first
-birth_place = 370a, first
-death_place = 370b, first
-country = 370c
-related_place = 370f
-field_of_activity = 372a
-occupation = 374a
-gender = 375a
-language = 377a, language_map.properties
diff --git a/import/marc_auth_fast_chronological.properties b/import/marc_auth_fast_chronological.properties
deleted file mode 100644
index 249d2214fc45cdbedb656c2ca9b0df34f1a355b8..0000000000000000000000000000000000000000
--- a/import/marc_auth_fast_chronological.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Mappings for loading FAST Chronological authority records using the         #
-# import-marc-auth script.  For more details on FAST, see:                    #
-#      http://www.oclc.org/research/activities/fast/download.htm              #
-###############################################################################
-id = 001
-source = "FAST"
-record_type = "Chronological"
-heading = 100abcdegjqt:110abcdegjqt:111abcdegjqt:130abcdegjqt:148avxyz:150abvxyz:151avxyz:155avxyz:180vxyz:181vxyz:182vxyz:185vxyz
-use_for = 400abcdegjqt:410abcdegjqt:411abcdegjqt:430abcdegjqt:448avxyz:450abvxyz:451avxyz:455avxyz:480vxyz:481vxyz:482vxyz:485vxyz
-see_also = 500abcdegjqt:510abcdegjqt:511abcdegjqt:530abcdegjqt:548avxyz:550abvxyz:551avxyz:555avxyz:580vxyz:581vxyz:582vxyz:585vxyz
-form_facet_str_mv = 150v:151v:155v:180v:181v:182v:185v
-general_facet_str_mv = 150x:151x:155x:180x:181x:182x:185x
-chronological_facet_str_mv = 150y:151y:155y:180y:181y:182y:185y
-geographic_facet_str_mv = 150z:151z:155z:180z:181z:182z:185z
diff --git a/import/marc_auth_fast_corporate.properties b/import/marc_auth_fast_corporate.properties
deleted file mode 100644
index 909b6a3863eee98ae07b80984b8f02a89025dc6c..0000000000000000000000000000000000000000
--- a/import/marc_auth_fast_corporate.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Mappings for loading FAST Corporate Names authority records using the       #
-# import-marc-auth script.  For more details on FAST, see:                    #
-#      http://www.oclc.org/research/activities/fast/download.htm              #
-###############################################################################
-id = 001
-source = "FAST"
-record_type = "Corporate Names"
-heading = 100abcdegjqt:110abcdegjqt:111abcdegjqt:130abcdegjqt:150abvxyz:151avxyz:155avxyz:180vxyz:181vxyz:182vxyz:185vxyz
-use_for = 400abcdegjqt:410abcdegjqt:411abcdegjqt:430abcdegjqt:450abvxyz:451avxyz:455avxyz:480vxyz:481vxyz:482vxyz:485vxyz
-see_also = 500abcdegjqt:510abcdegjqt:511abcdegjqt:530abcdegjqt:550abvxyz:551avxyz:555avxyz:580vxyz:581vxyz:582vxyz:585vxyz
-form_facet_str_mv = 150v:151v:155v:180v:181v:182v:185v
-general_facet_str_mv = 150x:151x:155x:180x:181x:182x:185x
-chronological_facet_str_mv = 150y:151y:155y:180y:181y:182y:185y
-geographic_facet_str_mv = 150z:151z:155z:180z:181z:182z:185z
diff --git a/import/marc_auth_fast_event.properties b/import/marc_auth_fast_event.properties
deleted file mode 100644
index abdfc58434ab5fc091dbb3fbeefed214e58dcbf0..0000000000000000000000000000000000000000
--- a/import/marc_auth_fast_event.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Mappings for loading FAST Event authority records using the                 #
-# import-marc-auth script.  For more details on FAST, see:                    #
-#      http://www.oclc.org/research/activities/fast/download.htm              #
-###############################################################################
-id = 001
-source = "FAST"
-record_type = "Event"
-heading = 100abcdegjqt:110abcdegjqt:111abcdegjqt:130abcdegjqt:150abvxyz:151avxyz:155avxyz:180vxyz:181vxyz:182vxyz:185vxyz
-use_for = 400abcdegjqt:410abcdegjqt:411abcdegjqt:430abcdegjqt:450abvxyz:451avxyz:455avxyz:480vxyz:481vxyz:482vxyz:485vxyz
-see_also = 500abcdegjqt:510abcdegjqt:511abcdegjqt:530abcdegjqt:550abvxyz:551avxyz:555avxyz:580vxyz:581vxyz:582vxyz:585vxyz
-form_facet_str_mv = 150v:151v:155v:180v:181v:182v:185v
-general_facet_str_mv = 150x:151x:155x:180x:181x:182x:185x
-chronological_facet_str_mv = 150y:151y:155y:180y:181y:182y:185y
-geographic_facet_str_mv = 150z:151z:155z:180z:181z:182z:185z
diff --git a/import/marc_auth_fast_formgenre.properties b/import/marc_auth_fast_formgenre.properties
deleted file mode 100644
index bc16130e2bb866d0d73cb1ae9ab4d77231cc70c4..0000000000000000000000000000000000000000
--- a/import/marc_auth_fast_formgenre.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Mappings for loading FAST Form/Genre authority records using the            #
-# import-marc-auth script.  For more details on FAST, see:                    #
-#      http://www.oclc.org/research/activities/fast/download.htm              #
-###############################################################################
-id = 001
-source = "FAST"
-record_type = "Form/Genre"
-heading = 100abcdegjqt:110abcdegjqt:111abcdegjqt:130abcdegjqt:150abvxyz:151avxyz:155avxyz:180vxyz:181vxyz:182vxyz:185vxyz
-use_for = 400abcdegjqt:410abcdegjqt:411abcdegjqt:430abcdegjqt:450abvxyz:451avxyz:455avxyz:480vxyz:481vxyz:482vxyz:485vxyz
-see_also = 500abcdegjqt:510abcdegjqt:511abcdegjqt:530abcdegjqt:550abvxyz:551avxyz:555avxyz:580vxyz:581vxyz:582vxyz:585vxyz
-form_facet_str_mv = 150v:151v:155v:180v:181v:182v:185v
-general_facet_str_mv = 150x:151x:155x:180x:181x:182x:185x
-chronological_facet_str_mv = 150y:151y:155y:180y:181y:182y:185y
-geographic_facet_str_mv = 150z:151z:155z:180z:181z:182z:185z
diff --git a/import/marc_auth_fast_geographic.properties b/import/marc_auth_fast_geographic.properties
deleted file mode 100644
index bf60930b4a925bd08ab13c3166ba42d6f200f8ee..0000000000000000000000000000000000000000
--- a/import/marc_auth_fast_geographic.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Mappings for loading FAST Geographic authority records using the            #
-# import-marc-auth script.  For more details on FAST, see:                    #
-#      http://www.oclc.org/research/activities/fast/download.htm              #
-###############################################################################
-id = 001
-source = "FAST"
-record_type = "Geographic"
-heading = 100abcdegjqt:110abcdegjqt:111abcdegjqt:130abcdegjqt:150abvxyz:151avxyz:155avxyz:180vxyz:181vxyz:182vxyz:185vxyz
-use_for = 400abcdegjqt:410abcdegjqt:411abcdegjqt:430abcdegjqt:450abvxyz:451avxyz:455avxyz:480vxyz:481vxyz:482vxyz:485vxyz
-see_also = 500abcdegjqt:510abcdegjqt:511abcdegjqt:530abcdegjqt:550abvxyz:551avxyz:555avxyz:580vxyz:581vxyz:582vxyz:585vxyz
-form_facet_str_mv = 150v:151v:155v:180v:181v:182v:185v
-general_facet_str_mv = 150x:151x:155x:180x:181x:182x:185x
-chronological_facet_str_mv = 150y:151y:155y:180y:181y:182y:185y
-geographic_facet_str_mv = 150z:151z:155z:180z:181z:182z:185z
diff --git a/import/marc_auth_fast_personal.properties b/import/marc_auth_fast_personal.properties
deleted file mode 100644
index e2611287477c2e3c2a31164b0aa5b47165cf9ebe..0000000000000000000000000000000000000000
--- a/import/marc_auth_fast_personal.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Mappings for loading FAST Personal Names authority records using the        #
-# import-marc-auth script.  For more details on FAST, see:                    #
-#      http://www.oclc.org/research/activities/fast/download.htm              #
-###############################################################################
-id = 001
-source = "FAST"
-record_type = "Personal Names"
-heading = 100abcdegjqt:110abcdegjqt:111abcdegjqt:130abcdegjqt:150abvxyz:151avxyz:155avxyz:180vxyz:181vxyz:182vxyz:185vxyz
-use_for = 400abcdegjqt:410abcdegjqt:411abcdegjqt:430abcdegjqt:450abvxyz:451avxyz:455avxyz:480vxyz:481vxyz:482vxyz:485vxyz
-see_also = 500abcdegjqt:510abcdegjqt:511abcdegjqt:530abcdegjqt:550abvxyz:551avxyz:555avxyz:580vxyz:581vxyz:582vxyz:585vxyz
-form_facet_str_mv = 150v:151v:155v:180v:181v:182v:185v
-general_facet_str_mv = 150x:151x:155x:180x:181x:182x:185x
-chronological_facet_str_mv = 150y:151y:155y:180y:181y:182y:185y
-geographic_facet_str_mv = 150z:151z:155z:180z:181z:182z:185z
diff --git a/import/marc_auth_fast_title.properties b/import/marc_auth_fast_title.properties
deleted file mode 100644
index 1b1a141c44d8bed5d5d30137062122bcfc89cb03..0000000000000000000000000000000000000000
--- a/import/marc_auth_fast_title.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Mappings for loading FAST Uniform Titles authority records using the        #
-# import-marc-auth script.  For more details on FAST, see:                    #
-#      http://www.oclc.org/research/activities/fast/download.htm              #
-###############################################################################
-id = 001
-source = "FAST"
-record_type = "Uniform Titles"
-heading = 100abcdegjqt:110abcdegjqt:111abcdegjqt:130abcdegjqt:150abvxyz:151avxyz:155avxyz:180vxyz:181vxyz:182vxyz:185vxyz
-use_for = 400abcdegjqt:410abcdegjqt:411abcdegjqt:430abcdegjqt:450abvxyz:451avxyz:455avxyz:480vxyz:481vxyz:482vxyz:485vxyz
-see_also = 500abcdegjqt:510abcdegjqt:511abcdegjqt:530abcdegjqt:550abvxyz:551avxyz:555avxyz:580vxyz:581vxyz:582vxyz:585vxyz
-form_facet_str_mv = 150v:151v:155v:180v:181v:182v:185v
-general_facet_str_mv = 150x:151x:155x:180x:181x:182x:185x
-chronological_facet_str_mv = 150y:151y:155y:180y:181y:182y:185y
-geographic_facet_str_mv = 150z:151z:155z:180z:181z:182z:185z
diff --git a/import/marc_auth_fast_topical.properties b/import/marc_auth_fast_topical.properties
deleted file mode 100644
index 3e3eef243cd63118d94180027939a23e0d1a16dc..0000000000000000000000000000000000000000
--- a/import/marc_auth_fast_topical.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Mappings for loading FAST Topical authority records using the               #
-# import-marc-auth script.  For more details on FAST, see:                    #
-#      http://www.oclc.org/research/activities/fast/download.htm              #
-###############################################################################
-id = 001
-source = "FAST"
-record_type = "Topical"
-heading = 100abcdegjqt:110abcdegjqt:111abcdegjqt:130abcdegjqt:150abvxyz:151avxyz:155avxyz:180vxyz:181vxyz:182vxyz:185vxyz
-use_for = 400abcdegjqt:410abcdegjqt:411abcdegjqt:430abcdegjqt:450abvxyz:451avxyz:455avxyz:480vxyz:481vxyz:482vxyz:485vxyz
-see_also = 500abcdegjqt:510abcdegjqt:511abcdegjqt:530abcdegjqt:550abvxyz:551avxyz:555avxyz:580vxyz:581vxyz:582vxyz:585vxyz
-form_facet_str_mv = 150v:151v:155v:180v:181v:182v:185v
-general_facet_str_mv = 150x:151x:155x:180x:181x:182x:185x
-chronological_facet_str_mv = 150y:151y:155y:180y:181y:182y:185y
-geographic_facet_str_mv = 150z:151z:155z:180z:181z:182z:185z
diff --git a/import/marc_auth_ils.properties b/import/marc_auth_ils.properties
deleted file mode 100644
index ccdc98cc71c08909713c391298521576adf5c0bf..0000000000000000000000000000000000000000
--- a/import/marc_auth_ils.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-###############################################################################
-# marc_auth_ils.properties -- VuFind MARC mappings for authority records from #
-#                             an ILS.                                         #
-###############################################################################
-id = 001
\ No newline at end of file
diff --git a/import/marc_local.properties b/import/marc_local.properties
deleted file mode 100644
index 82a9654b9034a7fe2a89c9bac99611b6a6a55fa3..0000000000000000000000000000000000000000
--- a/import/marc_local.properties
+++ /dev/null
@@ -1,297 +0,0 @@
-###############################################################################
-# marc_local.properties -- local overrides to standard VuFind MARC mappings.  #
-#                          All settings in this file override equivalent      #
-#                          settings in marc.properties.                       #
-###############################################################################
-
-# Uncomment the following settings to insert appropriate values for your site:
-#collection = "Catalog"
-#institution = "MyInstitution"
-#building = "Library A"
-
-# Uncomment the following lines to track history of indexing times for RSS feeds,
-# OAI-PMH server and other updates.  The parameter to these functions must be the
-# same fieldspec as the id setting above!
-# IMPORTANT: Indexing this extra information will make extra database calls during
-#            the indexing process and will likely slow things down significantly.
-#first_indexed = custom, getFirstIndexed(001)
-#last_indexed = custom, getLastIndexed(001)
-
-# Uncomment the following line to index full text from URLs found in your MARC
-# records.  All sorts of document formats are supported (PDF, Word Doc, ASCII
-# text, HTML, etc.) The first parameter is a fieldspec showing which fields to use
-# for URL retrieval.  The second parameter is optional -- if included, only files
-# matching the specified suffix will be indexed.  Note that this functionality
-# depends on a full text tool being installed on your system.  See the wiki for
-# details:
-#       https://vufind.org/wiki/indexing:full_text_tools
-#fulltext = custom, getFulltext(856u, pdf)
-
-# Uncomment the following if you want to use the OpenLayers3 Geographic Search
-# and OpenLayers3 Geo-Display functionality
-# See searches.ini for configuration options for Geographic Searching.
-# See config.ini for configuration options for Geo-Display.
-#long_lat = custom, getAllCoordinates
-#long_lat_display = custom, getDisplayCoordinates
-#long_lat_label = 034z
-
-# Uncomment the following lines if you are indexing journal article data that uses
-# the 773 field to describe the journal containing the article.  These settings
-# assume the records have been formatted according to recommendation 4.1 found at:
-#     http://www.loc.gov/marc/marbi/2003/2003-dp01.html
-# If you have records using a different 773 format, you may need to write a custom
-# indexing script to parse out volume/issue/number.
-# Additionally, you will need to make sure articles have a format value of "Article."
-# You can hard-code this if all of your records are articles, but if you need to
-# distinguish between articles and non-articles, you will need to build a custom
-# getFormat script.
-#format = "Article"
-#container_volume = 773v
-#container_issue = 773l
-#container_start_page = 773q
-#container_reference = 773g
-#container_title = 773s
-
-##############################################
-# finc-spezifisch, bibliotheksuebergreifend
-
-# ID des Datensatzes innerhalb der Quelle
-record_id = 980a
-# ID der Quelle
-source_id = 980b
-# bibliographic level
-mrc0007=000[7]
-# category of material
-# mrc0070=007[0] first
-# collection / source_name
-mega_collection = script(mega_collection.bsh), getMegaCollection(), collection_map.properties
-authorized_mode = "true"
-# ISIL / internationales Bibiothekssigel
-# institution = 852a
-institution = script(getInstitution.bsh), getInstitution()
-rsn = 983a
-# Zugangsfacette - Unterscheidung zw. Online-Ressourcen und lokalen Bestaenden
-access_facet = script(format.bsh), getFormat, access_map.properties
-# IDs fuer Personen und Schlagw\u00c3\u00b6rter (Normdatenerweiterung)
-author_id = script(getFieldRegex.bsh), getFieldRegex("100:110:111:700:710:711","0","^\\(DE\\-588\\).*$","\\(DE\\-588\\)","")
-topic_id = script(getFieldRegex.bsh), getFieldRegex("600:610:611:648:650:651:689","0","^\\(DE\\-588\\).*$","\\(DE\\-588\\)","")
-# Normdaten :: Verweisungsformen
-author_ref = 900a
-author_corp_ref = 910a:911a
-topic_ref = 950a
-# MBW und Serien (..., #2063, #2418)
-multipart_set = 000[19]
-# multipart_set = 000[19]:000[7], multipart_set.properties, first
-multipart_link = 773w[8-16]:800w[8-16]:810w[8-16]:811w[8-16]:830w[8-16]:8306
-multipart_part = script(getSuperMP.bsh), getSuperMP("773q:800q:800g:773g:800v:810v:811v:830v:830g")
-# Erwerbungsinformation (#959)
-purchase = script(purchaseInfo.bsh), purchaseInfo()
-
-##############################################
-# finc-spezifisch UND bibliotheksspezifisch
-
-# Sammelfeld fuer bibliotheksspezifische Informationen; Bsp. DE-CH1: Lizenzinformationen
-# misc_de15 = xxx
-misc_del152 = script(misc_del152.bsh), misc_del152
-misc_dech1 = 971g
-# misc-Feld f\u00fcr die TUF, enth\u00e4lt den Libero-Code f\u00fcr den Medientyp
-# (zur Darstellung der Icons in der Ergebnisliste)
-# misc_de105 = 972c # redundant to format_de105
-# misc_de520 = xxx
-# misc_del189 = xxx
-# misc_dezwi2 = xxx
-# misc_dezi4 = xxx
-# misc_ded117 = xxx
-# misc_de540 = xxx
-# misc_del242 = xxx
-# Zweigbibliothek - Kommentar entfernen, wenn Facettierung gewuenscht
-branch_de15 = script(getBranches.bsh), getBranches("^DE-15(-.+)?$"), branch_map_de15.properties
-# CH1 971a
-branch_dech1 = script(getBranches.bsh), getBranches("^DE-Ch1$"), branch_map_dech1.properties
-# DE105 972a
-branch_de105 = script(getBranches.bsh), getBranches("^DE-105$"), branch_map_de105.properties
-branch_de520 = script(getBranches.bsh), getBranches("^DE-520$"), branch_map_de520.properties
-# branch_del189 = 974a
-# branch_dezwi2 = 975a
-branch_dezwi2 = script(getBranches.bsh), getBranches("^DE-Zwi2$"), branch_map_dezwi2.properties
-branch_dezi4 = script(getBranches.bsh), getBranches("^DE-Zi4$"), branch_map_dezi4.properties
-# branch_dezi4 = 976a
-# branch_ded117 = 977a
-# branch_de540 = 978a
-# branch_del242 = 979a
-# Standort/Literaturabteilung - Kommentar entfernen, wenn Facettierung gewuenscht
-collcode_de15 = 969b, collcode_map_de15.properties
-#collcode_dech1 = 971b, collcode_map_dech1.properties
-collcode_dech1 = script(getCollCode.bsh), getCollCodes(DE-Ch1), collcode_map_dech1.properties
-#collcode_de105 = 972b, collcode_map_de105.properties
-collcode_de105 = script(getCollCode.bsh), getCollCodes(DE-105), collcode_map_de105.properties
-collcode_de520 = script(getCollCode.bsh), getCollCodes(DE-520), collcode_map_de520.properties
-# collcode_del189 = 974b
-collcode_dezwi2 = script(getCollCode.bsh), getCollCodes(DE-Zwi2), collcode_map_dezwi2.properties
-# In Zittau basieren Zweigstelle und Collection Code auf den Libero-Zweigstellen, deshalb
-# verwenden wir ein Skript f\u00fcr beide Felder
-collcode_dezi4 = script(getBranches.bsh), getBranches("^DE-Zi4$"), collcode_map_dezi4.properties
-# collcode_dezi4 = 976b
-# collcode_ded117 = 977b
-# collcode_de540 = 978b
-# collcode_del242 = 979b
-# Format/Medientyp - Kommentar entfernen, wenn individuelle Formatfacettierung erwuenscht
-format_de15 = script(format.bsh), getFormat, format_map_de15.properties
-format_del152 = 970c, format_map_del152.properties(del152)
-# dech1 nutzt ubl formate vgl https://intern.finc.info/issues/2086#note-7
-format_dech1 = 971c, format_map_dech1.properties(dech1)
-format_de105 = script(format_de105.bsh),getFormat,format_map_de105.properties(de105)
-format_de520 = 973c, format_map_de520.properties
-format_del189 = script(format.bsh), getFormat, format_map_del189.properties
-format_dezwi2 = 975c, format_map_dezwi2.properties
-format_dezi4 = 976c:980b, format_map_dezi4.properties
-format_de540 = script(format.bsh), getFormat, format_map_de540.properties
-format_ded117 = script(format.bsh), getFormat, format_map_ded117.properties
-# format_ded117 = 977c, format_map_ded117.properties
-# format_de540 = 978c, format_map_de540.properties
-# format_del242 = 979c, format_map_del242.properties
-# HMT # local subject headings
-local_heading_facet_del152 = 970d
-# WHZ (Zwickau) Lokales Schlagwort aus PICA 6800, BSZ-MARC-LOKAL 689 $a
-local_heading_dezwi2 = 975q
-local_heading_facet_dezwi2 = 975q:600a:600x:610a:610x:611a:611x:630a:630x:648x:650a:650x:651x:655x:689a
-# TUBAF und HTWK # UDK fuer Anzeige und Facette
-udk_raw_de105 = 972f
-udk_facet_de105 = 972f, tuf_udk_map.properties(tuf_udk)
-udk_raw_del189 = 974f
-# HTWK will keine UDK-Facette
-# udk_facet_del189 = 974f, htwk_udk_map.properties(htwk_udk)
-# HGB Lokales Schlagwort aus PICA 6800, BSZ-MARC-LOKAL 689 $a
-local_heading_del242 = 979q
-# HGB Lokale Notation aus PICA 6700, BSZ-MARC-LOKAL 936 $a. Und Ausschrift aus 979|9 Ticket #4209
-local_class_del242 = 979f:9799
-# UBL # finc-Klassifikation
-finc_class_facet = script(finc_class.bsh), getFincClass()
-
-##############################################
-# allgemeingueltig
-
-# allfields without urls (856)
-allfields = custom, getAllSearchableFields(100, 831)
-zdb = script(zdb.bsh), getZdb
-format = script(format.bsh), getFormat
-language = 008[35-37]:041a:041d:041h:130l:730l, language_map.properties
-author = 100abcd
-author_orig = custom, getLinkedField(100abcd)
-author2 = 700abcd
-author2_orig = custom, getLinkedField(700abcd)
-author_corp = 110ab:111acde
-author_corp_orig = custom, getLinkedField(110ab:111acde)
-author_corp2 = 710ab:711acde
-author_corp2_orig = custom, getLinkedField(710ab:711acde)
-author2-role = 700e:710e
-# author_fuller = 100q
-author_letter = 100a
-# author_additional = 505r
-# fuer gemeinsame Facette von Verfasser, beteiligten Personen u. Koerperschaften
-author_facet = 100abcd:700abcd:110ab:111acde:710ab:711acde
-title = 245ab
-title_part = 245np
-title_sub = 245b first
-title_short = 245a
-# title_full = custom, getAllSubfields(245, " ")
-# keine Verfasserwiederholung mehr in title_full
-title_full = 245abdefgknp
-title_alt = custom, getLinkedFieldCombined(130ap:240ap:246abp:730ap:740ap:920t)
-# musikalische EST
-title_uniform = 130adfgklmnoprst:240adfghklmnoprs
-title_old = 780ast
-title_new = 785ast
-title_sort = custom, getSortableTitle
-title_orig = custom, getLinkedField(245abnp)
-series = 800abcdefgmnopqt:810abcdefgmnoprst:811acdegjnpqstuv:830adgmnoprst
-series2 = 490a
-series_orig = custom, getLinkedField(800abcdefgmnopqt:810abcdefgmnoprst:811acdegjnpqstuv:830adgmnoprst:490a)
-publisher = custom, getLinkedFieldCombined(260b)
-# publishDate = script(getdate.bsh), getDate
-publishDate = custom, removeTrailingPunct(260c)
-# publishDateSort = 008[7-10]
-publishDateSort = script(getPublishDateSort.bsh), getPublishDateSort
-publishPlace = custom, getLinkedFieldCombined(260a)
-imprint = 260abc, first
-# imprint = custom, removeTrailingPunct(260abc), first
-physical = custom, getLinkedFieldCombined(300abcefg)
-footnote = custom, getLinkedFieldCombined(500a)
-dissertation_note = custom, getLinkedFieldCombined(502abcd)
-performer_note = 511a
-illustrated = script(illustrated.bsh), isIllustrated
-contents = custom, getLinkedFieldCombined(505agrt:520ab)
-# Uncomment the following line to index full text from URLs found in your MARC
-# records.  All sorts of document formats are supported (PDF, Word Doc, ASCII
-# text, HTML, etc.) The first parameter is a fieldspec showing which fields to use
-# for URL retrieval.  The second parameter is optional -- if included, only files
-# matching the specified suffix will be indexed.  Note that this functionality
-# depends on Aperture being installed on your system.  See the wiki for details:
-#      http://vufind.org/wiki/aperture
-# old version: fulltext = custom, getFulltext(856u, pdf)
-# fulltext = script(getFincFulltext.bsh), getFincFulltext
-fulltext = script(getFincFulltextSwbp.bsh), getFincFulltextSwbp
-# fulltext_inh = script(swbplus.bsh), getSWBPlusText(001[10-18],inh)
-isbn = 020a:776z:780z:785z
-# NOTE: 029a ist \u00c3\u00bcberregional definiertes, anwenderspezifisches Feld, kein MARC-Standard
-issn = 022a:029a:490x:730x:776x:780x:785x:800x:810x:811x:830x
-# ismn = 024a
-ismn = script(ismn.bsh), getIsmn
-isbn_canc = 020z
-issn_canc = 022yz
-# topic enthaelt 970de f\u00c3\u00bcr lokale SW der HMT und 937abc f\u00c3\u00bcr Filmgattungen
-topic = 600abcdefghjklmnopqrstuvxyz:610abcdefghklmnoprstuvxyz:611acdefghjklnpqstuvxyz:630adefghklmnoprstvxyz:650abcdevxyz:689a:655abvxyz:651avxyz:648avxyz:970de:937abc
-topic_facet = 600a:600x:610a:610x:611a:611x:630a:630x:648x:650a:650x:651x:655x:689a
-# fuer Geofacette #1028
-geogr_code = script(geogr_code.bsh), getGeogrCode, geogr_code_map.properties
-# fuer Geographische Codes f\u00c3\u00bcr Personen (HMT) #1567
-geogr_code_person = 951b, geogr_code_map.properties
-# fuer Facette Zeitcode HMT #1571
-timecode = 046j, timecode_map.properties
-# fuer Suche in separatem Feld, Indexfunktion, fuer Browsing ggf. noch aufsplitten (Ticket #284)
-music_heading = 937def
-# fuer Facettierung der Filmgattungen
-film_heading = 937a
-dewey-hundreds = script(dewey.bsh), getDeweyNumber(082a:083a, 100), ddc22_map.properties(hundreds)
-dewey-tens = script(dewey.bsh), getDeweyNumber(082a:083a, 10), ddc22_map.properties(tens)
-dewey-ones = script(dewey.bsh), getDeweyNumber(082a:083a, 1), ddc22_map.properties(ones)
-dewey-full = script(dewey.bsh), getDeweySearchable(082a:083a)
-dewey-sort = script(dewey.bsh), getDeweySortable(082a:083a)
-dewey-raw = 082a:083a, first
-# RVK - Notation fuer Facette und Ausschrift zur Einbindung in die Suche
-rvk_facet = script(rvk.bsh), getRvk
-rvk_label = 936k
-rvk_path = 0849
-# GND = script(getGnd.bsh), getGnd
-# Uncomment the following lines to track history of indexing times for RSS feeds,
-# OAI-PMH server and other updates.  The parameter to these functions must be the
-# same fieldspec as the id setting above!
-# IMPORTANT: Indexing this extra information will make extra database calls during
-#           the indexing process and will likely slow things down significantly.
-# first_indexed = custom, getFirstIndexed(001)
-# last_indexed = custom, getLastIndexed(001)
-
-# Ticket #2048
-attached_de15 = script(attached_DE-15.bsh), getAttached()
-
-# Ticket #2648, #3962
-itemdata = script(getItemDataJSON.bsh), getItemDataJSON
-
-# Ticket #3962, Barcode und Signatur aus MARC entfernen. Daten kommen jetzt aus mddb
-# Maskiere '(', ')' und '.'.  '[' und ']' auch? Viel Gl\u00fcck. Aber Testen ist besser!
-barcode  = script(getItemData.bsh), getItemData( "barcode"  , "\(DE-Ch1|DE-105|DE-Zwi2|DE-15\)")
-signatur = script(getItemData.bsh), getItemData( "signatur" , "\\.*")
-
-# Ticket #3674
-urn=024a:037n:856u, (pattern_map.urly_urn)
-pattern_map.urly_urn.pattern_0=^.*(urn:.*)$=>$1
-
-# Ticket #4087
-# hierarchytype =
-hierarchy_top_id       = script(getParentData.bsh), getParentData(hierarchy_top_id)
-hierarchy_top_title    = script(getParentData.bsh), getParentData(hierarchy_top_title)
-hierarchy_parent_id    = script(getParentData.bsh), getParentData(parent_id)
-hierarchy_parent_title = script(getParentData.bsh), getParentData(parent_title)
-# hierarchy_sequence =
-is_hierarchy_id        = script(getParentData.bsh), getParentData(is_hierarchy_id)
-is_hierarchy_title     = script(getParentData.bsh), getParentData(is_hierarchy_title)
diff --git a/import/ndltd.properties b/import/ndltd.properties
deleted file mode 100644
index b962661fdd70cfc75abf86ad7e53831874aa5eb5..0000000000000000000000000000000000000000
--- a/import/ndltd.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-; XSLT Import Settings for NDLTD Union Catalog (see http://alcme.oclc.org/ndltd/)
-[General]
-; REQUIRED: Name of XSLT file to apply.  Path is relative to the import/xsl directory
-; of the VuFind installation (or your local override directory).
-xslt = ndltd.xsl
-; OPTIONAL: PHP function(s) to register for use within XSLT file.  You may repeat
-; this line to register multiple PHP functions.
-;php_function[] = strtolower
-; OPTIONAL: PHP class filled with public static functions for use by the XSLT file.
-; The class must live within a PHP namespace.  You may specify a fully-qualified
-; name; if you do not include a namespace, the class will automatically be assumed
-; to live in the \VuFind\XSLT\Import namespace.
-custom_class[] = VuFind
-; OPTIONAL: If true, all custom_class settings above will be passed to the XSLT with
-; their namespaces stripped off; for example, \VuFind\XSLT\Import\VuFind would be
-; treated as \VuFind in XSLT files.  This allows more compact syntax within XSLT
-; files, but it can lead to name conflicts if used carelessly.  If set to false, you
-; must use fully-qualified names in your XSLT.  The false setting is recommended, but
-; the current default is "true" for compatibility with legacy configurations.
-truncate_custom_class = true
-
-; XSLT parameters -- any key/value pairs set here will be passed as parameters to
-; the XSLT file, allowing local values to be set without modifying XSLT code.
-[Parameters]
-institution = "My University"
-collection = "NDLTD"
-urnresolver = "http://nbn-resolving.de/"
-
diff --git a/import/nlm_ojs.properties b/import/nlm_ojs.properties
deleted file mode 100644
index bc4821750ce15f11e5b6be5e85c43c1103c3d509..0000000000000000000000000000000000000000
--- a/import/nlm_ojs.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-; XSLT Import Settings for OJS
-[General]
-; REQUIRED: Name of XSLT file to apply.  Path is relative to the import/xsl directory
-; of the VuFind installation (or your local override directory).
-xslt = nlm_ojs.xsl
-; OPTIONAL: PHP function(s) to register for use within XSLT file.  You may repeat
-; this line to register multiple PHP functions.
-php_function[] = strtolower
-; OPTIONAL: PHP class filled with public static functions for use by the XSLT file.
-; The class must live within a PHP namespace.  You may specify a fully-qualified
-; name; if you do not include a namespace, the class will automatically be assumed
-; to live in the \VuFind\XSLT\Import namespace.
-custom_class[] = VuFind
-; OPTIONAL: If true, all custom_class settings above will be passed to the XSLT with
-; their namespaces stripped off; for example, \VuFind\XSLT\Import\VuFind would be
-; treated as \VuFind in XSLT files.  This allows more compact syntax within XSLT
-; files, but it can lead to name conflicts if used carelessly.  If set to false, you
-; must use fully-qualified names in your XSLT.  The false setting is recommended, but
-; the current default is "true" for compatibility with legacy configurations.
-truncate_custom_class = true
-
-; XSLT parameters -- any key/value pairs set here will be passed as parameters to
-; the XSLT file, allowing local values to be set without modifying XSLT code.
-[Parameters]
-institution = "My University"
-collection = "OJS"
\ No newline at end of file
diff --git a/import/ojs.properties b/import/ojs.properties
deleted file mode 100644
index 0e62e1b660fb6f3d9cc91ea6213b22fed7056f5e..0000000000000000000000000000000000000000
--- a/import/ojs.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-; XSLT Import Settings for Open Journal Systems
-[General]
-; REQUIRED: Name of XSLT file to apply.  Path is relative to the import/xsl directory
-; of the VuFind installation (or your local override directory).
-xslt = ojs.xsl
-; OPTIONAL: PHP function(s) to register for use within XSLT file.  You may repeat
-; this line to register multiple PHP functions.
-;php_function[] = str_replace
-; OPTIONAL: PHP class filled with public static functions for use by the XSLT file.
-; The class must live within a PHP namespace.  You may specify a fully-qualified
-; name; if you do not include a namespace, the class will automatically be assumed
-; to live in the \VuFind\XSLT\Import namespace.
-custom_class[] = VuFind
-; OPTIONAL: If true, all custom_class settings above will be passed to the XSLT with
-; their namespaces stripped off; for example, \VuFind\XSLT\Import\VuFind would be
-; treated as \VuFind in XSLT files.  This allows more compact syntax within XSLT
-; files, but it can lead to name conflicts if used carelessly.  If set to false, you
-; must use fully-qualified names in your XSLT.  The false setting is recommended, but
-; the current default is "true" for compatibility with legacy configurations.
-truncate_custom_class = true
-
-; XSLT parameters -- any key/value pairs set here will be passed as parameters to
-; the XSLT file, allowing local values to be set without modifying XSLT code.
-[Parameters]
-institution = "My University"
-collection = "OJS"
diff --git a/import/sitemap.properties b/import/sitemap.properties
deleted file mode 100644
index ea7a8eaf76aa0b159072524f327f5a022e376d10..0000000000000000000000000000000000000000
--- a/import/sitemap.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-; XSLT Import Settings for sitemaps (used for populating the special website core)
-[General]
-; REQUIRED: Name of XSLT file to apply.  Path is relative to the import/xsl directory
-; of the VuFind installation (or your local override directory).
-xslt = sitemap.xsl
-; OPTIONAL: PHP function(s) to register for use within XSLT file.  You may repeat
-; this line to register multiple PHP functions.
-;php_function[] = str_replace
-; OPTIONAL: PHP class filled with public static functions for use by the XSLT file.
-; The class must live within a PHP namespace.  You may specify a fully-qualified
-; name; if you do not include a namespace, the class will automatically be assumed
-; to live in the \VuFind\XSLT\Import namespace.
-custom_class[] = VuFindSitemap
-; OPTIONAL: If true, all custom_class settings above will be passed to the XSLT with
-; their namespaces stripped off; for example, \VuFind\XSLT\Import\VuFind would be
-; treated as \VuFind in XSLT files.  This allows more compact syntax within XSLT
-; files, but it can lead to name conflicts if used carelessly.  If set to false, you
-; must use fully-qualified names in your XSLT.  The false setting is recommended, but
-; the current default is "true" for compatibility with legacy configurations.
-truncate_custom_class = true
-
-; XSLT parameters -- any key/value pairs set here will be passed as parameters to
-; the XSLT file, allowing local values to be set without modifying XSLT code.
-[Parameters]
diff --git a/import/solrmarc_core_3.2.jar b/import/solrmarc_core_3.2.jar
deleted file mode 100644
index 57a4769999664fb277dadefef5235c877ab42a73..0000000000000000000000000000000000000000
Binary files a/import/solrmarc_core_3.2.jar and /dev/null differ
diff --git a/import/translation_maps/README_MAPS b/import/translation_maps/README_MAPS
deleted file mode 100644
index b7f4196cd5f607f02928cb609de54687fcf9773f..0000000000000000000000000000000000000000
--- a/import/translation_maps/README_MAPS
+++ /dev/null
@@ -1 +0,0 @@
-This is the directory in which you should place locally defined translation maps.
diff --git a/import/translation_maps/access_map.properties b/import/translation_maps/access_map.properties
deleted file mode 100644
index f899ba2413eea52a3eaa3ebe5db22a0fae035861..0000000000000000000000000000000000000000
--- a/import/translation_maps/access_map.properties
+++ /dev/null
@@ -1,74 +0,0 @@
-ArtPrint                           = Local Holdings
-Article                            = Local Holdings
-Atlas                              = Local Holdings
-AudioTape                          = Local Holdings
-AudioVisualMedia                   = Local Holdings
-BluRayDisc                         = Local Holdings
-Book                               = Local Holdings
-Braille                            = Local Holdings
-CD                                 = Local Holdings
-CDROM                              = Local Holdings
-Chart                              = Local Holdings
-ChipCartridge                      = Local Holdings
-Collage                            = Local Holdings
-DiscCartridge                      = Local Holdings
-Drawing                            = Local Holdings
-DVDAudio                           = Local Holdings
-DVDROM                             = Local Holdings
-DVDVideo                           = Local Holdings
-eBook                              = Electronic Resources
-Electronic                         = Electronic Resources
-ElectronicArticle                  = Electronic Resources
-ElectronicJournal                  = Electronic Resources
-ElectronicMusicalScore             = Electronic Resources
-ElectronicNewspaper                = Electronic Resources
-ElectronicResourceDataCarrier      = Local Holdings
-ElectronicResourceRemoteAccess     = Electronic Resources
-ElectronicSerial                   = Electronic Resources
-ElectronicThesis                   = Electronic Resources
-Filmstrip                          = Local Holdings
-FlashCard                          = Local Holdings
-FloppyDisk                         = Local Holdings
-Globe                              = Local Holdings
-Journal                            = Local Holdings
-Kit                                = Local Holdings
-Manuscript                         = Local Holdings
-Map                                = Local Holdings
-Microfiche                         = Local Holdings
-Microfilm                          = Local Holdings
-Microform                          = Local Holdings
-MotionPicture                      = Local Holdings
-MusicalScore                       = Local Holdings
-MusicRecording                     = Local Holdings
-Nachlass                           = Local Holdings
-Newspaper                          = Local Holdings
-NotatedMusic                       = Local Holdings
-Painting                           = Local Holdings
-Photo                              = Local Holdings
-Photonegative                      = Local Holdings
-PhysicalObject                     = Local Holdings
-Placard                            = Local Holdings
-Print                              = Local Holdings
-Record                             = Local Holdings
-RegionalHoldings                   = Regional Holdings
-SensorImage                        = Local Holdings
-Serial                             = Local Holdings
-Slide                              = Local Holdings
-Software                           = Local Holdings
-SoundRecordingMedium               = Local Holdings
-SoundCassette                      = Local Holdings
-SoundDisc                          = Local Holdings
-SoundRecording                     = Local Holdings
-TapeCartridge                      = Local Holdings
-TapeCassette                       = Local Holdings
-TapeReel                           = Local Holdings
-Thesis                             = Local Holdings
-Transparency                       = Local Holdings
-Unknown                            = Local Holdings
-Video                              = Local Holdings
-VideoTape                          = Local Holdings
-VideoCartridge                     = Local Holdings
-VideoCassette                      = Local Holdings
-VideoDisc                          = Local Holdings
-VideoReel                          = Local Holdings
-# NewPublications                     = New Publications
diff --git a/import/translation_maps/branch_map_de105.properties b/import/translation_maps/branch_map_de105.properties
deleted file mode 100644
index a7bf638b5cb102bc8116f492aa0235c1b49c01d4..0000000000000000000000000000000000000000
--- a/import/translation_maps/branch_map_de105.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Zweigstellen der UB Freiberg, aus LIB_BRANCH_DESC
-# Siehe auch Ticket #748
-
-HB		= Hauptbibliothek
-#IN      = Internet
-3       = Zw 3 - Chemie / Biologie
-15      = Zw 15 - Fremdsprachen
-#18      = Zw 18
-#23      = Zw 23
-#27      = Zw 27
-73      = Zw 7/3 - Reiche Zeche
-#92      = Wärmetechnik/Thermodynamik
-102     = Zw 10/2 - Technikgeschichte (IWTG)
diff --git a/import/translation_maps/branch_map_de15.properties b/import/translation_maps/branch_map_de15.properties
deleted file mode 100644
index 02cc36a5b5bc6ba891dd2c2a34e1f97e934767f9..0000000000000000000000000000000000000000
--- a/import/translation_maps/branch_map_de15.properties
+++ /dev/null
@@ -1,97 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Zweigstellen der UBL, aus LIB_BRANCH_DESC
-11		= Musik
-12		= Psychologie
-13		= Sudhoffinstitut
-31		= Rechtswissenschaft
-#36		= Wirtschaftswiss. (ab 09/2009 nicht mehr benutzen!)
-41		= Orientwissenschaften
-46		= Erziehungswissenschaft
-51		= Theologie
-#56		= Mathematik (ab 12/06 nicht mehr benutzen!)
-#61		= Informatik (ab 12/06 nicht mehr benutzen!)
-66		= Geowissenschaften
-71		= Physik
-76		= Chemie/Physik
-81		= Biowissenschaften
-81idiv	= iDiv
-86		= Veterinärmedizin
-#91		= ZB Medizin 
-91		= Zentralbibliothek Medizin
-96		= Sportwissenschaft
-#91004	= Rechtsmedizin (ab 09/2009 nicht mehr benutzen!)
-91006	= Apotheke
-#91007	= ZB Medizin, Zweigstelle Härtelstraße (ab 08/2009 nicht mehr benutzen!)
-#91016	= Zentralbibliothek Medizin 2
-91016	= Zentralbibliothek Medizin 2
-91018	= Kopfkliniken
-#91050	= Mikrobiologie  (ab 10/2009 nicht mehr benutzen!)
-#91163	= Kinderklinik u. Kinderchirurgie (ab 2008 nicht mehr benutzen!)
-91166	= Neurochirurgie
-#91204	= Paul-Flechsig-Institut  (ab 01/2011 nicht mehr benutzen!)
-#91271	= Arbeitsmed. u. Sozialmed. (ab 01/2011 nicht mehr benutzen!)
-#00		= 00
-#01	= Hauptbibliothek
-01		= Bibliotheca Albertina
-#01FL	= HB Fernleihe
-#01com	= Hauptbibliothek/Comenius (ab 2007 nicht mehr benutzen!)
-#01mag	= Hauptbibliothek Mag. (ab 2007 nicht mehr benutzen!)
-#01rara	= Hauptbibliothek Raramag. (ab 2007 nicht mehr benutzen!)
-#01sm	= Hauptbibliothek Sondermag (ab 2007 nicht mehr benutzen!)
-01theat	= Theaterwissenschaften
-#01zw1	= Hauptbibliothek 02 (ab 09/2009 nicht mehr benutzen!)
-02		= Campus-Bibliothek
-02kmw	= Kommunikations- und Medienwissenschaft
-#02mag	= Zw1 Mag. (ab 2007 nicht mehr benutzen!)
-#03		= Orientwiss.  (ab 2009 nicht mehr benutzen!)
-05		= Archäologie
-#06		= DLL
-06		= Deutsches Literaturinstitut Leipzig
-07		= Geographie
-08		= Kunst
-08akl	= Kunst/AKL
-#08mag	= Kunst Mag. (ab 2007 nicht mehr benutzen!)
-#09		= Herder (nicht mehr benutzen!)
-11instr	= Museum für Musikinstrumente
-#36mag	= Wirtschaftswiss. Mag (ab 2007 nicht mehr benutzen!)
-#41alt	= Orientwiss., Altorientalistik
-41alt	= Orientwissenschaften, Altorientalistik
-#41ori	= Orientwiss., Ägyptologie
-41ori	= Orientwissenschaften, Ägyptologie
-#46mag	= Erziehungswiss. Mag. (ab 2007 nicht mehr benutzen!)
-#51mag	= Theologie Mag. (ab 2007 nicht mehr benutzen!)
-71thph	= Theoretische Physik
-76thph  = Theoretische Physik
-76min	= Mineralogie
-#86amb	= Ambulator u. Geburtshilfl. Tierklinik
-86amb	= Ambulator und Geburtshilfliche Tierklinik
-#86ana	= Vet.-Anatomie
-86ana	= Veterinäranatomie
-#86bak	= Bakteriologie u. Mykologie
-86bak	= Bakteriologie und Mykologie
-#86bio	= Vet.-Physiol.-Chem. Inst.
-86bio	= Veterinär-physiologisch-chemisches Institut
-#86chir	= Chirurg. Tierklinik
-86chir	= Chirurgische Tierklinik
-#86hyg	= Tierhyg. u. öffentl. Veterinärwesen
-86hyg	= Tierhygiene und öffentliches Veterinärwesen
-#86imm	= Immunologie (ab 10/2009 nicht mehr benutzen!)
-86kle	= Kleintierklinik
-#86leb	= Lebensmitelhyg.  (ab 10/2009 nicht mehr benutzen!)
-86par	= Parasitologie
-#86pat	= Vet.-Pathologie
-86pat	= Veterinärpathologie
-86pha	= Pharmakologie, Pharmazie, Toxikologie
-#86phy	= Vet.-Physiologie
-86phy	= Veterinärphysiologie
-86te	= Tierernährung
-#86tie	= Med. Tierklinik
-86tie	= Medizinische Tierklinik
-86vir	= Virologie
-86vog	= Poliklinik Vögel, Reptilien
-#91mag	= ZB Medizin Mag. (ab 2007 nicht mehr benutzen!)
-#96mag	= Sportwiss. Mag. (ab 2007 nicht mehr benutzen!)
-#SG13	= Allg. Verw. SG13
-SG13	= Allgemeine Verwaltung SG13
diff --git a/import/translation_maps/branch_map_de520.properties b/import/translation_maps/branch_map_de520.properties
deleted file mode 100644
index 612ea0b4d870e00633d89d9204c72348f228f709..0000000000000000000000000000000000000000
--- a/import/translation_maps/branch_map_de520.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Zweigstellen der HTW Dresden, aus LIB_BRANCH_DESC
-
-A      = Zentralbibliothek, A.-Schubert-Str. 8
-B      = Zentralbibliothek, A.-Schubert-Str. 8
-BUBI   = Zentralbibliothek, A.-Schubert-Str. 8
-D      = Zentralbibliothek, A.-Schubert-Str. 8
-EF     = Zentralbibliothek, A.-Schubert-Str. 8
-FS     = Zentralbibliothek, A.-Schubert-Str. 8
-GR     = Zentralbibliothek, A.-Schubert-Str. 8
-KE     = Zentralbibliothek, A.-Schubert-Str. 8
-KF     = Zentralbibliothek, A.-Schubert-Str. 8
-KS     = Zentralbibliothek, A.-Schubert-Str. 8
-L      = Zentralbibliothek, A.-Schubert-Str. 8
-M      = Zentralbibliothek, A.-Schubert-Str. 8
-M1     = Zentralbibliothek, A.-Schubert-Str. 8
-R      = Zentralbibliothek, A.-Schubert-Str. 8
-SAL    = Zentralbibliothek, A.-Schubert-Str. 8
-SDA    = Zentralbibliothek, A.-Schubert-Str. 8
-SEN    = Zentralbibliothek, A.-Schubert-Str. 8
-SFR    = Zentralbibliothek, A.-Schubert-Str. 8
-SON    = Zentralbibliothek, A.-Schubert-Str. 8
-SRU    = Zentralbibliothek, A.-Schubert-Str. 8
-SSI    = Zentralbibliothek, A.-Schubert-Str. 8
-T      = Zentralbibliothek, A.-Schubert-Str. 8
-ZB     = Zentralbibliothek, A.-Schubert-Str. 8
-P1     = Zweigbibliothek Pillnitz
-P2     = Zweigbibliothek Pillnitz
-P3     = Zweigbibliothek Pillnitz
-P4     = Zweigbibliothek Pillnitz
-P5     = Zweigbibliothek Pillnitz
\ No newline at end of file
diff --git a/import/translation_maps/branch_map_dech1.properties b/import/translation_maps/branch_map_dech1.properties
deleted file mode 100644
index 9c7a7249e670e5eac79f167c3521452b16b6831d..0000000000000000000000000000000000000000
--- a/import/translation_maps/branch_map_dech1.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Zweigstellen der UB Chemnitz, aus LIB_BRANCH_DESC
-ZB		= Zentralbibliothek
-CBI     = Campusbibliothek I
-CBII    = Campusbibliothek II
\ No newline at end of file
diff --git a/import/translation_maps/branch_map_dezi4.properties b/import/translation_maps/branch_map_dezi4.properties
deleted file mode 100644
index 185c5e303c7834f5ea2a6442916ffdedaa33e78e..0000000000000000000000000000000000000000
--- a/import/translation_maps/branch_map_dezi4.properties
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Zweigstellen der HSZG Zittau/Görlitz, aus LIB_BRANCH_DESC
-
-# komplette Code-Liste aus P99:
-# Teile sind bei uns als "Bereich" bezeichnet:
-
-# BB   = Buchbinder in Bearbeitung [nicht in finc, ANFRAGE]
-# BW   = Bücherwagen [nicht in finc]
-FH     = Zittau
-FHGR   = Görlitz
-FHMGR  = Görlitz
-FHMZI  = Zittau
-# FL   = Fernleihe [nicht in finc]
-GR     = Görlitz
-# HS   = Hochschule Zittau/Görlitz [nicht in finc]
-# IHI  = Internationales Hochschulinstitut [nicht in finc]
-# K    = Kst. Zeitschriften Zittau [nicht in finc]
-# KM   = Magazin Zittau [nicht in finc]
-# L    = LIBERO [nicht in finc]
-LBGR   = Görlitz
-LBS    = Zittau
-LBSP   = Zittau
-LR     = Zittau
-LRGR   = Görlitz
-LRKS   = Zittau
-M      = Zittau
-MGR    = Görlitz
-# MGRB = Magazin Görlitz zum Buchbinder [nicht in finc]
-MOG    = Zittau
-MP     = Zittau
-MS     = Zittau
-PGR    = Görlitz
-# RFL  = Reservierung Fernleihe [nicht in finc]
-# RGR  = Reservierung Görlitz [nicht in finc]
-# RZI  = Reservierung Zittau [nicht in finc]
-SAPP   = Görlitz
-TGR    = Görlitz        
-THEKE  = Zittau
-VIZI   = Zittau
-ZI     = Zittau
\ No newline at end of file
diff --git a/import/translation_maps/branch_map_dezwi2.properties b/import/translation_maps/branch_map_dezwi2.properties
deleted file mode 100644
index 57d3e21ee2aef5786e8de0efef7f6e2c79c0988b..0000000000000000000000000000000000000000
--- a/import/translation_maps/branch_map_dezwi2.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Zweigstellen der WH Zwickau, aus LIB_BRANCH_DESC
-
-
-
-E8 = ZB Scheffelstraße
-H1 = Hauptbibliothek
-M6 = ZB Markneukirchen
-R9 = ZB Reichenbach
-S7 = ZB Schneeberg
-T  = In Transfer
-B  = In Bearbeitung
-BI = Buchbinder
diff --git a/import/translation_maps/callnumber_map.properties b/import/translation_maps/callnumber_map.properties
deleted file mode 100644
index 75aa08c8248053831de57cbff4649ef10d5b89fa..0000000000000000000000000000000000000000
--- a/import/translation_maps/callnumber_map.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-A = A - General Works
-B = B - Philosophy, Psychology, Religion
-C = C - Historical Sciences
-D = D - World History
-E = E - United States History
-F = F - General American History
-G = G - Geography, Anthropology, Recreation
-H = H - Social Science
-J = J - Political Science
-K = K - Law
-L = L - Education
-M = M - Music
-N = N - Fine Arts
-P = P - Language and Literature
-Q = Q - Science
-R = R - Medicine
-S = S - Agriculture
-T = T - Technology
-U = U - Military Science
-V = V - Naval Science
-Z = Z - Library Science
diff --git a/import/translation_maps/callnumber_subject_map.properties b/import/translation_maps/callnumber_subject_map.properties
deleted file mode 100644
index 7a172bd9296ab8fc3b44269ad1de2420a7e54842..0000000000000000000000000000000000000000
--- a/import/translation_maps/callnumber_subject_map.properties
+++ /dev/null
@@ -1,225 +0,0 @@
-AC = AC - Collections and Collected Works
-AE = AE - Encyclopedias
-AG = AG - Dictionaries and Reference
-AI = AI - Indexes
-AM = AM - Museums and Collecting
-AN = AN - Newspapers
-AP = AP - Periodicals
-AS = AS - Academies
-AY = AY - Yearbooks, Almanacs, Directories
-AZ = AZ - History of Scholarship
-B = B - Philosophy
-BC = BC - Logic
-BD = BD - Speculative Philosophy
-BF = BF - Psychology
-BH = BH - Aesthetics
-BJ = BJ - Ethics
-BL = BL - Religions, Mythology, Rationalism
-BM = BM - Judaism
-BP = BP - Islam, Bahaism, Theosophy
-BQ = BQ - Buddhism
-BR = BR - Christianity
-BS = BS - The Bible
-BT = BT - Doctrinal Theology
-BV = BV - Practical Theology
-BX = BX - Christian Denominations
-C = C - General History
-CB = CB - History of Civilization
-CC = CC - Archaeology
-CD = CD - Diplomatics, Archives, Seals
-CE = CE - Technical Chronology, Calendar
-CJ = CJ - Numismatics
-CN = CN - Inscriptions, Epigraphy
-CR = CR - Heraldry
-CS = CS - Genealogy
-CT = CT - Biography
-D = D - General History
-DA = DA - Great Britain
-DAW = DAW - Central Europe
-DB = DB - Austria, Liechtenstein, Hungary, Czechoslovakia
-DC = DC - France, Andorra, Monaco
-DD = DD - Germany
-DE = DE - Grecco-Roman World
-DF = DF - Greece
-DG = DG - Italy, Malta
-DH = DH - Low Countries
-DJ = DJ - Netherlands (Holland)
-DJK = DJK - Eastern Europe (General)
-DK = DK - Russia, Soviet Union, Former Soviet Republics, Poland
-DL = DL - Northern Europe, Scandinavia
-DP = DP - Spain, Portugal
-DQ = DQ - Switzerland
-DR = DR - Balkan Peninsula
-DS = DS - Asia
-DT = DT - Africa
-DU = DU - Oceania (South Seas)
-DX = DX - Gypsies
-E = E - United States History
-F = F - General American History
-G = G - General Geography
-GA = GA - Mathematical Geography and Cartography
-GB = GB - Physical Geography
-GC = GC - Oceanography
-GE = GE - Environmental Sciences
-GF = GF - Human Ecology and Anthropogeography
-GN = GN - Anthropology
-GR = GR - Folklore
-GT = GT - Manners and Customs
-GV = GV - Leisure and Recreation
-H = H - Social Science
-HA = HA - Statistics
-HB = HB - Economic Theory and Demography
-HC = HC - Economic History and Conditions
-HD = HD - Industries, Land Use, Labor
-HE = HE - Transportation and Communications
-HF = HF - Commerce
-HG = HG - Finance
-HJ = HJ - Public Finance
-HM = HM - Sociology
-HN = HN - Social History and Conditions
-HQ = HQ - Family, Marriage, Women
-HS = HS - Societies
-HT = HT - Communities, Classes, Races
-HV = HV - Social Pathology, Criminology
-HX = HX - Socialism, Communism, Anarchism
-J = J - General Legislature
-JA = JA - Political Science
-JC = JC - Political Theory
-JF = JF - Public Administration
-JJ = JJ - North America
-JK = JK - United States
-JL = JL - Canada and Central America
-JQ = JQ - Europe
-JS = JS - Local and Municipal Government
-JV = JV - Colonization, Immigration
-JX = JX - International Law
-JZ = JZ - International Relations
-K = K - General Law
-KB = KB - Religious Law
-KBM = KBM - Jewish Law
-KBP = KBP - Islamic Law
-KBR = KBR - History of Canon Law
-KBU = KBU - Catholic Law
-KD = KD - United Kingdom and Ireland
-KDZ = KDZ - North America
-KE = KE - Canada
-KF = KF - United States
-KG = KG - Mexico and Central America
-KH = KH - South America
-KJ = KJ - Europe
-KL = KL - Asia, Africa, Pacific
-KZ = KZ - Law of Nations
-L = L - General Education
-LA = LA - History of Education
-LB = LB - Theory and Practice of Education
-LC = LC - Social Aspects of Education
-LD = LD - United States
-LE = LE - Canada and Central America
-LF = LF - Europe
-LG = LG - Asia, Africa, Australia, Pacific
-LH = LH - School Magazine and Papers
-LJ = LJ - Student Fraternities and Societies
-LT = LT - Textbooks
-M = M - Music
-ML = ML - Literature on Music
-MT = MT - Instruction and Study
-N = N - Visual Arts
-NA = NA - Architecture
-NB = NB - Sculpture
-NC = NC - Drawing, Design, Illustration
-ND = ND - Painting
-NE = NE - Print Media
-NK = NK - Decorative Arts
-NX = NX - Arts in General
-P = P - Philology and Linguistics
-PA = PA - Latin and Greek
-PB = PB - Modern and Celtic Languages
-PC = PC - Romanic Languages
-PD = PD - Germanic Languages
-PE = PE - English Languages
-PF = PF - West Germanic Languages
-PG = PG - Slavic, Baltic, Abanian Languages
-PH = PH - Uralic, Basque Languages
-PJ = PJ - Oriental
-PK = PK - Indo-Iranian
-PL = PL - Eastern Asia, Africa, Oceania
-PM = PM - Hyperborean, Indian, and Artificial Languages
-PN = PN - General Literature
-PQ = PQ - French, Italian, Spanish, Portuguese Literature
-PR = PR - English Literature
-PS = PS - American Literature
-PT = PT - European, Asian and African Literature
-PZ = PZ - Fiction
-Q = Q - General Science
-QA = QA - Mathematics
-QB = QB - Astronomy
-QC = QC - Physics
-QD = QD - Chemistry
-QE = QE - Geology
-QH = QH - Natural History and Biology
-QK = QK - Botany
-QL = QL - Zoology
-QM = QM - Human Anatomy
-QP = QP - Physiology
-QR = QR - Microbiology
-R = R - General Medicine
-RA = RA - Public Medicine
-RB = RB - Pathology
-RC = RC - Internal Medicine
-RD = RD - Surgery
-RE = RE - Ophthalmology
-RF = RF - Otorhinolarynhology
-RG = RG - Gynecology and Obstetrics
-RJ = RJ - Pediatrics
-RK = RK - Dentistry
-RL = RL - Dermatology
-RM = RM - Therapeutics and Pharmacology
-RS = RS - Pharmacy
-RT = RT - Nursing
-RV = RV - Botanic, Thomsonia, Eclectic Medicine
-RX = RX - Homeopathy
-RZ = RZ - Other Systems of Medicine
-S = S - General Agriculture
-SB = SB - Plant Culture
-SD = SD - Forestry
-SF = SF - Animal Culture
-SH = SH - Aquaculture, Fisheries, Angling
-SK = SK - Hunting Sports
-T = T - General Technology
-TA = TA - General and Civil Engineering
-TC = TC - Hydraulic and Ocean Engineering
-TD = TD - Environmental Technology
-TE = TE - Highway Engineering
-TF = TF - Railroad Engineering and Operation
-TG = TG - Bridge Engineering
-TH = TH - Building Construction
-TJ = TJ - Mechanical Engineering and Machinery
-TK = TK - Electrical and Nuclear Engineering
-TL = TL - Motor Vehicles and Aeronautics
-TN = TN - Mining Engineering and Metallurgy
-TP = TP - Chemical Technology
-TR = TR - Photography
-TS = TS - Manufactures
-TT = TT - Arts and Crafts
-TX = TX - Home Economics
-U = U - General Military Science
-UA = UA - Armies
-UB = UB - Military Administration
-UC = UC - Maintenance and Transportation
-UD = UD - Infantry
-UE = UE - Cavalry and Armor
-UF = UF - Artillery
-UG = UG - Military Engineering and Air Forces
-UH = UH - Other Services
-V = V - General Naval Science
-VA = VA - Navies
-VB = VB - Naval Administration
-VC = VC - Naval Maintenance
-VD = VD - Naval Seamen
-VE = VE - Marines
-VF = VF - Naval Ordnance
-VG = VG - Minor Services
-VK = VK - Navigation and Merchant Marine
-VM = VM - Naval Architecture, Shipbuilding, Marine Engineering
-Z = Z - Books and Writing
-ZA = ZA - Information Resources
diff --git a/import/translation_maps/collcode_map_de105.properties b/import/translation_maps/collcode_map_de105.properties
deleted file mode 100644
index 60cb3c67646d85c04b2461ac5dd965cbeb000930..0000000000000000000000000000000000000000
--- a/import/translation_maps/collcode_map_de105.properties
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Standorte der UB Freiberg, aus LIB_COLLECTION_CODE_DESC
-# Siehe auch Ticket #748
-
-# alt
-##BAI			= Bibliographischer Apparat I
-##BAII        = Bibliographischer Apparat II
-#CD          = CD-ROM
-#DBOD	    = Datenbank (DBoD)
-#EBOOK       = Ebook (Einzelkauf)
-##EDV         = EDV-Abteilung
-#FBF         = Fachbuchfreihand (FBF)
-#FDLN        = QUCOSA - Publikationsserver
-#FFFH        = Freiberger Forschungshefte (FBF)
-#FKDB        = Kieler Diskussionsbeiträge (FBF)
-#FVDI        = VDI-Berichte (FBF)
-##LEER        = 
-#LFFH        = Freiberger Forschungshefte (LS)
-#LS          = Lesesaal (LS)
-#MAG         = Magazin
-#MAGZw8      = Magazin Zw8
-##NA          = Nicht vormerkbar
-#WA          = Wissenschaftlicher Altbestand
-
-# jetzt neu: regular expressions wegen Ticket #1573 (doppelte Zuordnung von UBE_DBOD)
-pattern_0 = ^CD$=>CD-ROM
-pattern_1 = DBOD=>Datenbanken (DBoD)
-pattern_2 = ^EBOOK$=>Ebook (Einzelkauf)
-pattern_3 = ^FBF$=>Fachbuchfreihand (FBF)
-# Ticket #1703: FDLN ausblenden
-#pattern_4 = ^FDLN$=>QUCOSA - Publikationsserver
-pattern_4 = ^FFFH$=>Freiberger Forschungshefte (FBF)
-pattern_5 = ^FKDB$=>Kieler Diskussionsbeiträge (FBF)
-pattern_6 = ^FVDI$=>VDI-Berichte (FBF)
-pattern_7 = ^LFFH$=>Freiberger Forschungshefte (LS)
-pattern_8 = ^LS$=>Lesesaal (LS)
-pattern_9 = ^MAG$=>Magazin
-pattern_10 = ^MAGZw8$=>Magazin Zw8
-pattern_11 = ^WA$=>Wissenschaftlicher Altbestand
-pattern_12 = UBE=>Einzelplatz
diff --git a/import/translation_maps/collcode_map_de15.properties b/import/translation_maps/collcode_map_de15.properties
deleted file mode 100644
index a9d8bcac353ff56534d5a78c276f1508417f8b50..0000000000000000000000000000000000000000
--- a/import/translation_maps/collcode_map_de15.properties
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Standorte der UBL, aus LIB_COLLECTION_CODE_DESC
-
-Anw = Magazin / Sonstige
-Ausk = Magazin / Sonstige
-Bank = Magazin / Sonstige
-Ethn = Freihandbereich
-FH = Freihandbereich
-FHAfr = Freihandbereich
-FHAllg = Freihandbereich
-FHAmer = Freihandbereich
-FHAngl = Freihandbereich
-FHArch = Freihandbereich
-FHBio = Freihandbereich
-FHChem = Freihandbereich
-FHEthn = Freihandbereich
-FHGeogr = Freihandbereich
-FHGeolog = Freihandbereich
-FHGerm = Freihandbereich
-FHGesch = Freihandbereich
-FHGlobStud = Freihandbereich
-FHInf = Freihandbereich
-FHKinder = Freihandbereich
-FHKult = Freihandbereich
-FHKunst = Freihandbereich
-FHLandw = Freihandbereich
-FHLit = Freihandbereich
-FHMath = Freihandbereich
-FHMed = Freihandbereich
-FHMus = Freihandbereich
-FHNaturw = Freihandbereich
-FHNiederl = Freihandbereich
-FHPaed = Freihandbereich
-FHPhilol = Freihandbereich
-FHPhilos = Freihandbereich
-FHPhys = Freihandbereich
-FHPolitik = Freihandbereich
-FHPsych = Freihandbereich
-FHRecht = Freihandbereich
-FHRoman = Freihandbereich
-FHSOSA = Freihandbereich
-FHSkand = Freihandbereich
-FHSlaw = Freihandbereich
-FHSoz = Freihandbereich
-FHSport = Freihandbereich
-FHSprach = Freihandbereich
-FHTechn = Freihandbereich
-FHTheater = Freihandbereich
-FHTheol = Freihandbereich
-FHWirtsch = Freihandbereich
-Frueh = Freihandbereich
-GK = Magazin / Sonstige
-Indol = Freihandbereich
-Jap = Freihandbereich
-Keine = Magazin / Sonstige
-Klass = Freihandbereich
-Korea = Freihandbereich
-LBS = Lehrbuchsammlung
-LS = Freihandbereich
-Oeff = Magazin / Sonstige
-Orient = Freihandbereich
-Rel = Freihandbereich
-SSG1 = Freihandbereich
-Sin = Freihandbereich
-Straf = Magazin / Sonstige
-ZLS = Freihandbereich
-Zas = Freihandbereich
-Zivil = Magazin / Sonstige
diff --git a/import/translation_maps/collcode_map_de520.properties b/import/translation_maps/collcode_map_de520.properties
deleted file mode 100644
index d867e95eb5a9bfbf133b51b93acd3819abd56243..0000000000000000000000000000000000000000
--- a/import/translation_maps/collcode_map_de520.properties
+++ /dev/null
@@ -1,211 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Standorte der HTW Dresden, aus LIB_COLLECTION_CODE_DESC
-
-A   = Bestellung
-AA  = Bibliographien, Verzeichnisse 
-AB  = Bibliographien, Verzeichnisse
-AC  = Bibliographien, Verzeichnisse
-AD  = Bibliographien, Verzeichnisse
-AE  = Nachschlagewerke, Wörterbücher
-AF  = Nachschlagewerke, Wörterbücher
-AG  = Nachschlagewerke, Wörterbücher
-AH  = Nachschlagewerke, Wörterbücher
-AK  = Wissenschaftskunde, Museumswesen
-AL  = Hochschulwesen
-AM  = Schriftkunde
-AN  = Buch-, Bibliothekwesen, Informationswiss.
-AP1 = Medien-u. Kommunikationswiss.
-AP3 = Medien-u. Kommunikationswiss.
-AP9 = Medien-u. Kommunikationswiss.
-AP995  = Medien-u. Kommunikationswiss.
-AR  = Umweltschutz, Raumordnung
-AV  = Serien, Zeitschriften
-AW  = Serien, Zeitschriften
-AX  = Serien, Zeitschriften
-AY  = Serien, Zeitschriften
-AZ  = Serien, Zeitschriften
-B   = Theologie
-Best  = Bestellung
-CA  = Philosophie
-CB  = Philosophie
-CC  = Philosophie
-CD  = Philosophie
-CE  = Philosophie
-CF  = Philosophie
-CG  = Philosophie
-CH  = Philosophie
-CI  = Philosophie
-CL  = Psychologie
-CM  = Psychologie
-CN  = Psychologie
-CO  = Psychologie
-CP  = Psychologie
-CQ  = Psychologie
-CR  = Psychologie
-CS  = Psychologie
-CT  = Psychologie
-CU  = Psychologie
-CV  = Psychologie
-CW  = Psychologie
-CX  = Psychologie
-CY  = Psychologie
-CZ  = Psychologie
-D  = Pädagogik
-E  = Sprachen, Sprachwissenschaft
-F  = Philologie
-FL  = Fernleihe
-G  = Sprachen, Sprachwissenschaft
-H  = Sprachen, Sprachwissenschaft
-I  = Sprachen, Sprachwissenschaft
-K  = Sprachen, Sprachwissenschaft
-L  = Libero
-LA  = Ethnologie
-LB  = Ethnologie
-LC  = Ethnologie
-LD  = Archäologie, Kunstgeschichte
-LE  = Archäologie, Kunstgeschichte
-LF  = Archäologie, Kunstgeschichte
-LG  = Archäologie, Kunstgeschichte
-LH  = Archäologie, Kunstgeschichte
-LI  = Archäologie, Kunstgeschichte
-LJ  = Archäologie, Kunstgeschichte
-LK  = Archäologie, Kunstgeschichte
-LL  = Archäologie, Kunstgeschichte
-LM  = Archäologie, Kunstgeschichte
-LN  = Archäologie, Kunstgeschichte
-LO  = Archäologie, Kunstgeschichte
-LP  = Musikwiss.
-LQ  = Musikwiss.
-LR  = Musikwiss.
-LS  = Musikwiss.
-LT  = Musikwiss.
-LU  = Musikwiss.
-LV  = Musikwiss.
-LW  = Musikwiss.
-LX  = Musikwiss.
-LY  = Musikwiss.
-LZ  = Musikwiss.
-MA  = Politologie
-MB  = Politologie
-MC  = Politologie
-MD  = Politologie
-ME  = Politologie
-MF  = Politologie
-MG  = Politologie
-MH  = Politologie
-MI  = Politologie
-MJ  = Politologie
-MK  = Politologie
-ML  = Politologie
-MM  = Politologie
-MN  = Soziologie
-MO  = Soziologie
-MP  = Soziologie
-MQ  = Soziologie
-MR  = Soziologie
-MS  = Soziologie
-MX  = Militärwiss.
-MY  = Militärwiss.
-MZ  = Militärwiss.
-N  = Geschichte
-P  = Recht
-Q  = Wirtschaft
-R  = Geographie
-SA  = Mathematik
-SB  = Mathematik
-SC  = Mathematik
-SD  = Mathematik
-SE  = Mathematik
-SF  = Mathematik
-SG  = Mathematik
-SH  = Mathematik
-SI  = Mathematik
-SJ  = Mathematik
-SK  = Mathematik
-SL  = Mathematik
-SM  = Mathematik
-SN  = Mathematik
-SO  = Mathematik
-SP  = Mathematik
-SQ  = Informatik
-SR  = Informatik
-SS  = Informatik
-ST  = Informatik
-SU  = Informatik
-TA  = Naturwissenschaften allg. 
-TB  = Naturwissenschaften allg.
-TC  = Naturwissenschaften allg.
-TD  = Naturwissenschaften allg.
-TE  = Geologie, Paläontologie
-TF  = Geologie, Paläontologie
-TG  = Geologie, Paläontologie
-TH  = Geologie, Paläontologie
-TI  = Geologie, Paläontologie
-TJ  = Geologie, Paläontologie
-TK  = Geologie, Paläontologie
-TL  = Geologie, Paläontologie
-TM  = Geologie, Paläontologie
-TN  = Geologie, Paläontologie
-TO  = Geologie, Paläontologie
-TP  = Geologie, Paläontologie
-TQ  = Geologie, Paläontologie
-TR  = Geologie, Paläontologie
-TS  = Geologie, Paläontologie
-TT  = Geologie, Paläontologie
-TU  = Geologie, Paläontologie
-TV  = Geologie, Paläontologie
-TW  = Geologie, Paläontologie
-TX  = Geologie, Paläontologie
-TY  = Geologie, Paläontologie
-TZ  = Geologie, Paläontologie
-U  = Physik
-V  = Chemie, Pharmazie
-WA  = Biologie
-WB  = Biologie
-WC  = Biologie
-WD  = Biologie
-WE  = Biologie
-WF  = Biologie
-WG  = Biologie
-WH  = Biologie
-WI  = Biologie
-WJ  = Biologie
-WK  = Biologie
-WL  = Biologie
-WM  = Biologie
-WN  = Biologie
-WO  = Biologie
-WP  = Biologie
-WQ  = Biologie
-WR  = Biologie
-WS  = Biologie
-WT  = Biologie
-WU  = Biologie
-WV  = Biologie
-WW  = Medizin
-WX  = Medizin
-WY  = Medizin
-WZ  = Medizin
-X  = Medizin
-Y  = Medizin
-XX  = Datenübernahme
-ZA  = Landwirtschaft, Gartenbau
-ZB  = Landwirtschaft, Gartenbau
-ZC  = Landwirtschaft, Gartenbau
-ZD  = Nutztierwiss., Landbautechnik
-ZE  = Ernährungswiss., Hauswirtschaft
-ZG  = Technik allg. 
-ZH  = Architektur
-ZI  = Bauingenieur- u. Vermessungswesen
-ZK  = Bergbau- u. Hüttenwesen
-ZL  = Maschinenbau
-ZM  = Werkstoffwiss., Fertigungstechnik
-ZN  = Elektrotechnik, Nachrichtentechnik
-ZO  = Verkehr, Transport
-ZP  = Energietechnik
-ZQ  = MSR-Technik, Automatisierungstechnik
-ZS  = Handwerk, Gewerbe, Industrien
-ZX  = Sport
-ZY  = Sport
\ No newline at end of file
diff --git a/import/translation_maps/collcode_map_dech1.properties b/import/translation_maps/collcode_map_dech1.properties
deleted file mode 100644
index 2576b14b11e864f7c2040df1c42ed6355a0059f7..0000000000000000000000000000000000000000
--- a/import/translation_maps/collcode_map_dech1.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Standorte der UB Chemnitz, aus LIB_COLLECTION_CODE_DESC
-# Zur Gruppierung siehe Ticket #750.
-
-
-BK05        = Magazin
-F           = Freihand
-FNA         = Freihand
-K           = 
-KS          = Magazin
-LS          = Lesesaal
-LSCZ        = Lesesaal
-LSSLS       = Lesesaal
-M           = Magazin
-
-#BK05		= Kellermagazin BK05, Bereitstellung am folgenden Öffnungstag
-#CDROMNetz   = Campuslizenz
-#FL          = Fernleihe nehmend
-#FNA         = Freihand nicht ausleihbar
-#HB          = Handbestand
-#KS          = Kartenschrank, Bereitstellung am folgenden Öffnungstag
-#LSCZ        = Lesesaal - Sammlung "Prof. Czok"
-#LSSLS       = Lesesaal - Sammlung "Stiftung Land Sachsen"
-#M           = Magazin, Bereitstellung am folgenden Öffnungstag
-#VW          = Verwaltung
-#X           = Datenübernahme
-
-#CDROMNetz, FL, VW, X, HB = entfernen
-#BK05, KS, M = Magazin
-#LS, LSCZ, LSSLS = Lesesaal
-#F, FNA = Freihand
diff --git a/import/translation_maps/collcode_map_dezi4.properties b/import/translation_maps/collcode_map_dezi4.properties
deleted file mode 100644
index 8fed19fc1b04f69940b02c714d95660503777bb7..0000000000000000000000000000000000000000
--- a/import/translation_maps/collcode_map_dezi4.properties
+++ /dev/null
@@ -1,42 +0,0 @@
-###
-# DATA FROM INDEXER = Label
-#
-# Libero-Standorte der HSZG Zittau/G\u00f6rlitz, aus LIB_COLLECTION_CODE_DESC
-
-# komplette Code-Liste aus P99:
-# Teile sind bei uns als "Bereich" bezeichnet:
-
-# BB   = Buchbinder in Bearbeitung [nicht in finc, ANFRAGE]
-# BW   = B\u00fccherwagen [nicht in finc]
-FH     = Freihand
-FHGR   = Freihand
-FHMGR  = Medienregal
-FHMZI  = Medienregal
-# FL   = Fernleihe [nicht in finc]
-# GR   = Zweigbibliothek G\u00f6rlitz [nicht in "Bereich" ]
-# HS   = Hochschule Zittau/G\u00f6rlitz [nicht in finc]
-# IHI  = Internationales Hochschulinstitut [nicht in finc ]
-# K    = Kst. Zeitschriften Zittau [nicht in finc]
-# KM   = Magazin Zittau [nicht in finc]
-# L    = LIBERO [nicht in finc]
-LBGR = Loseblattausgabe
-LBS    = Lehrbuchsammlung
-LBSP   = Lehrbuchsammlung Pr\u00e4senz
-LR     = Freihand Pr\u00e4senz
-LRGR   = Freihand Pr\u00e4senz
-LRKS   = Kartenschrank Pr\u00e4senz
-M      = Magazin
-MGR    = Magazin
-# MGRB = Magazin G\u00f6rlitz zum Buchbinder [nicht in finc]
-MOG    = Magazin
-MP     = Magazin Pr\u00e4senz
-MS     = Magazin Sonderbestand
-PGR    = Freihand Pr\u00e4senz
-# RFL  = Reservierung Fernleihe [nicht in finc]
-# RGR  = Reservierung G\u00f6rlitz [nicht in finc]
-# RZI  = Reservierung Zittau [nicht in finc]
-SAPP = Semesterapparat
-TGR    = Theke
-THEKE  = Theke
-VIZI   = Sonderbestand
-# ZI   = Hochschulbibliothek Zittau [nicht in "Bereich"]
\ No newline at end of file
diff --git a/import/translation_maps/collcode_map_dezwi2.properties b/import/translation_maps/collcode_map_dezwi2.properties
deleted file mode 100644
index 479f49093bd9754ffdc7d6de7cc9e0ae50fef1a2..0000000000000000000000000000000000000000
--- a/import/translation_maps/collcode_map_dezwi2.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Standorte der WHZ, aus LIB_COLLECTION_CODE_DESC
-
-1.OG            = 1.OG Zeitschriften
-2.OG            = 2.OG Zeitschriften
-BUBI            = Magazin / Buchbinder
-Buchbinder      = beim Buchbinder
-Dis             = Diskettenschrank
-EG              = EG Zeitschriften
-F1              = Medientrog
-F2              = Infobestand
-F3              = Ausstellung
-F3E             = Freihand
-F3R             = Freihand
-F4              = Zeitschriften
-F5              = Freihand
-F6              = Mediothek
-F7              = Altbestand
-F8              = Belletristik
-F8K             = Mini-Kinderbibliothek
-F9              = Hörbücher
-FL              = Fernleihe
-GG              = Geschäftsgang 1.OG
-IN              = Internet (siehe Link)
-INT             = Intranet
-KL              = KL
-Mag             = Magazin
-Map             = Mappenschrank
-NOR             = Normen
-UG              = UG Zeitschriften
-ZLS             = Zeitschriftenlesesaal
diff --git a/import/translation_maps/collection_map.properties b/import/translation_maps/collection_map.properties
deleted file mode 100644
index 30d89a6a09884cd115fc21be03a6e6be73ef9cb0..0000000000000000000000000000000000000000
--- a/import/translation_maps/collection_map.properties
+++ /dev/null
@@ -1,88 +0,0 @@
-# Nationallizenzen
-ZDB-1-DFL = Deutschsprachige Frauenliteratur des 18. & 19. Jahrhunderts, Teil 1 und 2
-ZDB-1-ECC = Eighteenth Century Collection Online
-ZDB-1-EEB = Early English books online
-ZDB-1-ELW = English Language Womens' Literature of the 18th & 19th Centuries
-ZDB-1-MME = Making of the Modern World
-ZDB-1-MML = Making of the Modern Law - Legal Treatises 1800-1926 / MOML 1
-ZDB-1-WFR = Wales related fiction of the romantic period
-# ZDB-1-NEL = E-Books Net Library
-ZDB-1-NEL = EBSCOhost eBook Collection
-ZDB-1-MYA = Mystik & Aszese des 16. - 19. Jahrhunderts
-ZDB-1-RTH = Religion & Theologie des 16. - 19. Jahrhunderts
-ZDB-1-EIO = Casalini - Editoria Italiana Online
-# ZDB-1-NEF = E-Books von NetLibrary
-ZDB-1-NEF = EBSCOhost eBook Collection
-ZDB-1-EAI = Early American Imprints, Series I - Evans 1639-1800 / EAI
-ZDB-1-BEC = Brill Nijhoff E-Books Collections, Human Rights and Humanitarian Law
-ZDB-1-KEB = Karger eBooks Collection 1997-2009
-ZDB-1-RSE = RSC eBook Collection, Royal Society of Chemistry, 1968-2009
-ZDB-1-DLC = Digital Library of the Catholic Reformation
-ZDB-1-DLP = Digital Library of the Classic Protestant Texts
-ZDB-1-CLF = Corpus de la première littérature francophone de l'Afrique noire
-ZDB-1-ELC = Elsevier eBook Collection on Science Direct - Mathematics
-ZDB-1-TES = Teatro Espanol del Siglo de Oro / TESO
-ZDB-1-CDC = Corvey Digital Collection - Literature of the 18th and 19th Centuries
-ZDB-1-ALD = Aristoteles Latinus Database
-ZDB-1-SOT = Social Theory
-ZDB-1-LEO = Der Literarische Expressionismus Online
-ZDB-1-EMO = Empire Online
-ZDB-1-MOR = Music Online Reference
-ZDB-1-EAP = Early American Imprints, Series II - Shaw/Shoemaker 1801-1819 / EAI II
-ZDB-1-SSB = Primary Sources / Slavic Studies Bundle
-ZDB-1-WBA = World Bank E-Library Archive
-ZDB-1-SSB = Primary Sources / Slavic Studies
-ZDB-1-SCM = Springer eBook Collection / Chemistry and Materials Science 2005-2008
-ZDB-1-SMI = Springer eBook Collection / Medicine 2005-2008
-ZDB-1-PAO = Periodicals Archive Online / PAO 1802-2000
-# "echte" Quellen
-0 = Verbunddaten SWB
-1 = Project Gutenberg
-3 = Nielsen Book Data - NE print
-4 = Schweitzer EBL - PDA
-5 = Naxos Music Library
-6 = Music Online Reference
-7 = Periodicals Archive Online
-8 = Lizenzfreie Online-Ressourcen
-9 = Early Music Online
-10 = Music Treasures Consortium
-11 = Bibliographie des Musikschrifttums online
-12 = B3Kat
-13 = Diss online
-14 = Répertoire International des Sources Musicale
-15 = Petrucci Musikbibliothek
-16 = Elsevier E-Books
-#17 = Nationallizenzen E-Books # Ticket #2117 (default value? map to null - #17 = null)
-18 = Oxford Scholarship Online
-19 = Kubon & Sagner Digital
-20 = Gallica (BNF)
-# 21 = GBV, zur Zeit nur Ausschnitt Hochschule f\u00fcr Musik Weimar
-21 = GBV Musikdigitalisate
-22 = Qucosa
-24 = ebrary E-Books
-26 = DOAB Directory of Open Access Books
-27 = Munzinger
-28 = DOAJ Directory of Open Access Journals
-29 = Handwörterbuch der musikalischen Terminologie
-30 = SSOAR Social Science Open Access Repository
-31 = Opera in Video
-#
-34 = PQDT Open
-35 = Hathi Trust
-#
-39 = Persée
-40 = Dance in Video
-41 = Classical Music in Video
-42 = Classical Scores Library II
-44 = Deutsches Textarchiv
-#
-46 = de Gruyter eBooks
-47 = Vahlen eLibrary
-#
-# Kollektionen, die Bestandteil einer Quelle sind
-AMSP = American Space
-DFG1 = Sammlung C. F. Becker
-TRCS = Taiwan Resource Center for Chinese Studies
-qucosa = Qucosa
-pdam = MyiLibrary
-KEY = Schlüssel
diff --git a/import/translation_maps/composition_era_map.properties b/import/translation_maps/composition_era_map.properties
deleted file mode 100644
index dc3376e1434c31e081bb9bc773a67632e485cf73..0000000000000000000000000000000000000000
--- a/import/translation_maps/composition_era_map.properties
+++ /dev/null
@@ -1,57 +0,0 @@
-a = B.C.
-b = B.C.
-c = B.C.
-d = B.C.
-e = 1st Century
-f = 2nd Century
-g = 3rd Century
-h = 4th Century
-i = 5th Century
-j = 6th Century
-k = 7th Century
-l = 8th Century
-m = 9th Century
-n = 10th Century
-o = 11th Century
-p = 12th Century
-q = 13th Century
-r = 14th Century
-s = 15th Century
-t = 16th Century
-u = 17th Century
-v = 18th Century
-v0 = 1700's
-v1 = 1710's
-v2 = 1720's
-v3 = 1730's
-v4 = 1740's
-v5 = 1750's
-v6 = 1760's
-v7 = 1770's
-v8 = 1780's
-v9 = 1790's
-w = 19th Century
-w0 = 1800's
-w1 = 1810's
-w2 = 1820's
-w3 = 1830's
-w4 = 1840's
-w5 = 1850's
-w6 = 1860's
-w7 = 1870's
-w8 = 1880's
-w9 = 1890's
-x = 20th Century
-x0 = 1900's
-x1 = 1910's
-x2 = 1920's
-x3 = 1930's
-x4 = 1940's
-x5 = 1950's
-x6 = 1960's
-x7 = 1970's
-x8 = 1980's
-x9 = 1990's
-y = 21st Century
-y0 = 2000's
-y1 = 2010's
diff --git a/import/translation_maps/country_map.properties b/import/translation_maps/country_map.properties
deleted file mode 100644
index 852a9ecb7d63eab2fd4c37dc7fb1769e4efa2758..0000000000000000000000000000000000000000
--- a/import/translation_maps/country_map.properties
+++ /dev/null
@@ -1,379 +0,0 @@
-# Map 3 letter Country/Location Code (in 008, bytes 15-17) to User Friendly Name
-# includes discontinued codes, because they're probably in our data
-
-#Two-character codes are left justified and the unused position contains a blank 
-
-aa = Albania
-abc = Alberta, Canada
-ac = Ashmore and Cartier Islands
-aca = Australian Capital Territory
-ae = Algeria
-af = Afghanistan
-ag = Argentina
-ai = Anguilla
-ai = Armenia (Republic)
-air = Armenia (Republic)
-aj = Azerbaijan
-ajr = Azerbaijan
-aku = Alaska, United States
-alu = Alabama, United States
-am = Anguilla
-an = Andorra
-ao = Angola
-aq = Antigua and Barbuda
-aru = Arkansas, United States
-as = American Samoa
-at = Australia
-au = Austria
-aw = Aruba
-ay = Antarctica
-azu = Arizona, United States
-ba = Bahrain
-bb = Barbados
-bcc = British Columbia, Canada
-bd = Burundi
-be = Belgium
-bf = Bahamas
-bg = Bangladesh
-bh = Belize
-bi = British Indian Ocean Territory
-bl = Brazil
-bm = Bermuda Islands
-bn = Bosnia and Hercegovina
-bo = Bolivia
-bp = Solomon Islands
-br = Burma
-bs = Botswana
-bt = Bhutan
-bu = Bulgaria
-bv = Bouvet Island
-bw = Belarus
-bwr = Belarus
-bx = Brunei
-cau = California, United States
-cb = Cambodia
-cc = China
-cd = Chad
-ce = Sri Lanka
-cf = Congo (Brazzaville)
-cg = Congo (Democratic Republic)
-ch = China (Republic : 1949- )
-ci = Croatia
-cj = Cayman Islands
-ck = Colombia
-cl = Chile
-cm = Cameroon
-cn = Canada
-cou = Colorado, United States
-cp = Canton and Enderbury Islands
-cq = Comoros
-cr = Costa Rica
-cs = Czechoslovakia
-ctu = Connecticut, United States
-cu = Cuba
-cv = Cape Verde
-cw = Cook Islands
-cx = Central African Republic
-cy = Cyprus
-cz = Canal Zone
-dcu = District of Columbia, United States
-deu = Delaware, United States
-dk = Denmark
-dm = Benin
-dq = Dominica
-dr = Dominican Republic
-ea = Eritrea
-ec = Ecuador
-eg = Equatorial Guinea
-em = East Timor
-enk = England, United Kingdom
-er = Estonia
-err = Estonia
-es = El Salvador
-et = Ethiopia
-fa = Faroe Islands
-fg = French Guiana
-fi = Finland
-fj = Fiji
-fk = Falkland Islands
-flu = Florida, United States
-fm = Micronesia (Federated States)
-fp = French Polynesia
-fr = France
-fs = Terres australes et antarctiques françaises
-ft = Djibouti
-gau = Georgia, United States
-gb = Kiribati
-gd = Grenada
-ge = Germany (East)
-gh = Ghana
-gi = Gibraltar
-gl = Greenland
-gm = Gambia
-gn = Gilbert and Ellice Islands
-go = Gabon
-gp = Guadeloupe
-gr = Greece
-gs = Georgia (Republic)
-gsr = Georgia (Republic)
-gt = Guatemala
-gu = Guam
-gv = Guinea
-gw = Germany
-gy = Guyana
-gz = Gaza Strip
-hiu = Hawaii, United States
-hk = Hong Kong
-hm = Heard and McDonald Islands
-ho = Honduras
-ht = Haiti
-hu = Hungary
-iau = Iowa, United States
-ic = Iceland
-idu = Idaho, United States
-ie = Ireland
-ii = India
-ilu = Illinois, United States
-inu = Indiana, United States
-io = Indonesia
-iq = Iraq
-ir = Iran
-is = Israel
-it = Italy
-iu = Israel-Syria Demilitarized Zones
-iv = Côte d'Ivoire
-iw = Israel-Jordan Demilitarized Zones
-iy = Iraq-Saudi Arabia Neutral Zone
-ja = Japan
-ji = Johnston Atoll
-jm = Jamaica
-jn = Jan Mayen
-jo = Jordan
-ke = Kenya
-kg = Kyrgyzstan
-kgr = Kyrgyzstan
-kn = Korea (North)
-ko = Korea (South)
-ksu = Kansas, United States
-ku = Kuwait
-kv = Kosovo
-kyu = Kentucky, United States
-kz = Kazakhstan
-kzr = Kazakhstan
-lau = Louisiana, United States
-lb = Liberia
-le = Lebanon
-lh = Liechtenstein
-li = Lithuania
-lir = Lithuania
-ln = Central and Southern Line Islands
-lo = Lesotho
-ls = Laos
-lu = Luxembourg
-lv = Latvia
-lvr = Latvia
-ly = Libya
-mau = Massachusetts, United States
-mbc = Manitoba, Canada
-mc = Monaco
-mdu = Maryland, United States
-meu = Maine, United States
-mf = Mauritius
-mg = Madagascar
-mh = Macao
-miu = Michigan, United States
-mj = Montserrat
-mk = Oman
-ml = Mali
-mm = Malta
-mnu = Minnesota, United States
-mo = Montenegro
-mou = Missouri, United States
-mp = Mongolia
-mq = Martinique
-mr = Morocco
-msu = Mississippi, United States
-mtu = Montana, United States
-mu = Mauritania
-mv = Moldova
-mvr = Moldova
-mw = Malawi
-mx = Mexico
-my = Malaysia
-mz = Mozambique
-na = Netherlands Antilles
-nbu = Nebraska, United States
-ncu = North Carolina, United States
-ndu = North Dakota, United States
-ne = Netherlands
-nfc = Newfoundland and Labrador, Canada
-ng = Niger
-nhu = New Hampshire, United States
-nik = Northern Ireland, United Kingdom
-nju = New Jersey, United States
-nkc = New Brunswick, Canada
-nl = New Caledonia
-nm = Northern Mariana Islands
-nmu = New Mexico, United States
-nn = Vanuatu
-no = Norway
-np = Nepal
-nq = Nicaragua
-nr = Nigeria
-nsc = Nova Scotia, Canada
-ntc = Northwest Territories, Canada
-nu = Nauru
-nuc = Nunavut, Canada
-nvu = Nevada, United States
-nw = Northern Mariana Islands
-nx = Norfolk Island
-nyu = New York (State), United States
-nz = New Zealand
-ohu = Ohio, United States
-oku = Oklahoma, United States
-onc = Ontario, Canada
-oru = Oregon, United States
-ot = Mayotte
-pau = Pennsylvania, United States
-pc = Pitcairn Island
-pe = Peru
-pf = Paracel Islands
-pg = Guinea-Bissau
-ph = Philippines
-pic = Prince Edward Island, Canada
-pk = Pakistan
-pl = Poland
-pn = Panama
-po = Portugal
-pp = Papua New Guinea
-pr = Puerto Rico
-pt = Portuguese Timor
-pw = Palau
-py = Paraguay
-qa = Qatar
-qea = Queensland, Australia
-quc = Québec (Province), Canada
-rb = Serbia
-re = Réunion
-rh = Zimbabwe
-riu = Rhode Island, United States
-rm = Romania
-ru = Russia (Federation)
-rur = Russia (Federation)
-rw = Rwanda
-ry = Ryukyu Islands, Southern
-sa = South Africa
-sb = Svalbard
-scu = South Carolina, United States
-sdu = South Dakota, United States
-se = Seychelles
-sf = Sao Tome and Principe
-sg = Senegal
-sh = Spanish North Africa
-si = Singapore
-sj = Sudan
-sk = Sikkim
-sl = Sierra Leone
-sm = San Marino
-snc = Saskatchewan, Canada
-so = Somalia
-sp = Spain
-sq = Swaziland
-sr = Surinam
-ss = Western Sahara
-stk = Scotland, United Kingdom
-su = Saudi Arabia
-sv = Swan Islands
-sw = Sweden
-sx = Namibia
-sy = Syria
-sz = Switzerland
-ta = Tajikistan
-tar = Tajikistan
-tc = Turks and Caicos Islands
-tg = Togo
-th = Thailand
-ti = Tunisia
-tk = Turkmenistan
-tkr = Turkmenistan
-tl = Tokelau
-tma = Tasmania, Australia
-tnu = Tennessee, United States
-to = Tonga
-tr = Trinidad and Tobago
-ts = United Arab Emirates
-tt = Trust Territory of the Pacific Islands
-tu = Turkey
-tv = Tuvalu
-txu = Texas, United States
-tz = Tanzania
-ua = Egypt
-uc = United States Misc. Caribbean Islands
-ug = Uganda
-ui = United Kingdom Misc. Islands
-uik = United Kingdom Misc. Islands
-uk = United Kingdom
-un = Ukraine
-unr = Ukraine
-up = United States Misc. Pacific Islands
-ur = Soviet Union
-us = United States
-utu = Utah, United States
-uv = Burkina Faso
-uy = Uruguay
-uz = Uzbekistan
-uzr = Uzbekistan
-vau = Virginia, United States
-vb = British Virgin Islands
-vc = Vatican City
-ve = Venezuela
-vi = Virgin Islands of the United States
-vm = Vietnam
-vn = Vietnam, North
-#vp = Various places
-vra = Victoria, Australia
-vs = Vietnam, South
-vtu = Vermont, United States
-wau = Washington (State), United States
-wb = West Berlin
-wea = Western Australia
-wf = Wallis and Futuna
-wiu = Wisconsin, United States
-wj = West Bank of the Jordan River
-wk = Wake Island
-wlk = Wales, United Kingdom
-ws = Samoa
-wvu = West Virginia, United States
-wyu = Wyoming, United States
-xa = Christmas Island (Indian Ocean)
-xb = Cocos (Keeling) Islands
-xc = Maldives
-xd = Saint Kitts-Nevis
-xe = Marshall Islands
-xf = Midway Islands
-xga = Coral Sea Islands Territory, Australia
-xh = Niue
-xi = Saint Kitts-Nevis-Anguilla
-xj = Saint Helena
-xk = Saint Lucia
-xl = Saint Pierre and Miquelon
-xm = Saint Vincent and the Grenadines
-xn = Macedonia
-xna = New South Wales, Australia
-xo = Slovakia
-xoa = Northern Territory, Australia
-xp = Spratly Island
-xr = Czech Republic
-xra = South Australia
-xs = South Georgia and the South Sandwich Islands
-xv = Slovenia
-#xx = No place, unknown, or undetermined
-xxc = Canada
-xxk = United Kingdom
-xxr = Soviet Union
-xxu = United States
-ye = Yemen
-ykc = Yukon Territory, Canada
-ys = Yemen (People's Democratic Republic)
-yu = Serbia and Montenegro
-za = Zambia
diff --git a/import/translation_maps/ddc22_map.properties b/import/translation_maps/ddc22_map.properties
deleted file mode 100644
index 550cd845a35313b238c36700f728abd57c31058f..0000000000000000000000000000000000000000
--- a/import/translation_maps/ddc22_map.properties
+++ /dev/null
@@ -1,1113 +0,0 @@
-hundreds.000 = 000 - Computer science, information & general works
-hundreds.100 = 100 - Philosophy & psychology
-hundreds.200 = 200 - Religion
-hundreds.300 = 300 - Social sciences
-hundreds.400 = 400 - Language
-hundreds.500 = 500 - Science
-hundreds.600 = 600 - Technology
-hundreds.700 = 700 - Arts & recreation
-hundreds.800 = 800 - Literature
-hundreds.900 = 900 - History & geography
-hundreds = [Unassigned]
-tens.000 = 000 - Computer science, knowledge & systems
-tens.010 = 010 - Bibliographies
-tens.020 = 020 - Library & information sciences
-tens.030 = 030 - Encyclopedias & books of facts
-tens.040 = 040 - [Unassigned]
-tens.050 = 050 - Magazines, journals & serials
-tens.060 = 060 - Associations, organizations & museums
-tens.070 = 070 - News media, journalism & publishing
-tens.080 = 080 - Quotations
-tens.090 = 090 - Manuscripts & rare books
-tens.100 = 100 - Philosophy
-tens.110 = 110 - Metaphysics
-tens.120 = 120 - Epistemology
-tens.130 = 130 - Parapsychology & occultism
-tens.140 = 140 - Philosophical schools of thought
-tens.150 = 150 - Psychology
-tens.160 = 160 - Logic
-tens.170 = 170 - Ethics
-tens.180 = 180 - Ancient, medieval & eastern philosophy
-tens.190 = 190 - Modern western philosophy
-tens.200 = 200 - Religion
-tens.210 = 210 - Philosophy & theory of religion
-tens.220 = 220 - The Bible
-tens.230 = 230 - Christianity & Christian theology
-tens.240 = 240 - Christian practice & observance
-tens.250 = 250 - Christian pastoral practice & religious orders
-tens.260 = 260 - Christian organization, social work & worship
-tens.270 = 270 - History of Christianity
-tens.280 = 280 - Christian denominations
-tens.290 = 290 - Other religions
-tens.300 = 300 - Social sciences, sociology & anthropology
-tens.310 = 310 - Statistics
-tens.320 = 320 - Political science
-tens.330 = 330 - Economics
-tens.340 = 340 - Law
-tens.350 = 350 - Public administration & military science
-tens.360 = 360 - Social problems & social services
-tens.370 = 370 - Education
-tens.380 = 380 - Commerce, communications & transportation
-tens.390 = 390 - Customs, etiquette & folklore
-tens.400 = 400 - Language
-tens.410 = 410 - Linguistics
-tens.420 = 420 - English & Old English languages
-tens.430 = 430 - German & related languages
-tens.440 = 440 - French & related languages
-tens.450 = 450 - Italian, Romanian & related languages
-tens.460 = 460 - Spanish & Portuguese languages
-tens.470 = 470 - Latin & Italic languages
-tens.480 = 480 - Classical & modern Greek languages
-tens.490 = 490 - Other languages
-tens.500 = 500 - Science
-tens.510 = 510 - Mathematics
-tens.520 = 520 - Astronomy
-tens.530 = 530 - Physics
-tens.540 = 540 - Chemistry
-tens.550 = 550 - Earth sciences & geology
-tens.560 = 560 - Fossils & prehistoric life
-tens.570 = 570 - Life sciences; biology
-tens.580 = 580 - Plants (Botany)
-tens.590 = 590 - Animals (Zoology)
-tens.600 = 600 - Technology
-tens.610 = 610 - Medicine & health
-tens.620 = 620 - Engineering
-tens.630 = 630 - Agriculture
-tens.640 = 640 - Home & family management
-tens.650 = 650 - Management & public relations
-tens.660 = 660 - Chemical engineering
-tens.670 = 670 - Manufacturing
-tens.680 = 680 - Manufacture for specific uses
-tens.690 = 690 - Building & construction
-tens.700 = 700 - Arts
-tens.710 = 710 - Landscaping & area planning
-tens.720 = 720 - Architecture
-tens.730 = 730 - Sculpture, ceramics & metalwork
-tens.740 = 740 - Drawing & decorative arts
-tens.750 = 750 - Painting
-tens.760 = 760 - Graphic arts
-tens.770 = 770 - Photography & computer art
-tens.780 = 780 - Music
-tens.790 = 790 - Sports, games & entertainment
-tens.800 = 800 - Literature, rhetoric & criticism
-tens.810 = 810 - American literature in English
-tens.820 = 820 - English & Old English literatures
-tens.830 = 830 - German & related literatures
-tens.840 = 840 - French & related literatures
-tens.850 = 850 - Italian, Romanian & related literatures
-tens.860 = 860 - Spanish & Portuguese literatures
-tens.870 = 870 - Latin & Italic literatures
-tens.880 = 880 - Classical & modern Greek literatures
-tens.890 = 890 - Other literatures
-tens.900 = 900 - History
-tens.910 = 910 - Geography & travel
-tens.920 = 920 - Biography & genealogy
-tens.930 = 930 - History of ancient world (to ca. 499)
-tens.940 = 940 - History of Europe
-tens.950 = 950 - History of Asia
-tens.960 = 960 - History of Africa
-tens.970 = 970 - History of North America
-tens.980 = 980 - History of South America
-tens.990 = 990 - History of other areas
-tens = [Unassigned]
-ones.000 = 000 - Computer science, information & general works
-ones.001 = 001 - Knowledge
-ones.002 = 002 - The book
-ones.003 = 003 - Systems
-ones.004 = 004 - Data processing & computer science
-ones.005 = 005 - Computer programming, programs & data
-ones.006 = 006 - Special computer methods
-ones.007 = 007 - [Unassigned]
-ones.008 = 008 - [Unassigned]
-ones.009 = 009 - [Unassigned]
-ones.010 = 010 - Bibliography
-ones.011 = 011 - Bibliographies
-ones.012 = 012 - Bibliographies of individuals
-ones.013 = 013 - [Unassigned]
-ones.014 = 014 - Bibliographies of anonymous & pseudonymous works
-ones.015 = 015 - Bibliographies of works from specific places
-ones.016 = 016 - Bibliographies of works on specific subjects
-ones.017 = 017 - General subject catalogs
-ones.018 = 018 - Catalogs arranged by author, date, etc.
-ones.019 = 019 - Dictionary catalogs
-ones.020 = 020 - Library & information sciences
-ones.021 = 021 - Library relationships
-ones.022 = 022 - Administration of physical plant
-ones.023 = 023 - Personnel management
-ones.024 = 024 - [Unassigned]
-ones.025 = 025 - Library operations
-ones.026 = 026 - Libraries for specific subjects
-ones.027 = 027 - General libraries
-ones.028 = 028 - Reading & use of other information media
-ones.029 = 029 - [Unassigned]
-ones.030 = 030 - General encyclopedic works
-ones.031 = 031 - Encyclopedias in American English
-ones.032 = 032 - Encyclopedias in English
-ones.033 = 033 - Encyclopedias in other Germanic languages
-ones.034 = 034 - Encyclopedias in French, Occitan & Catalan
-ones.035 = 035 - Encyclopedias in Italian, Romanian & related languages
-ones.036 = 036 - Encyclopedias in Spanish & Portuguese
-ones.037 = 037 - Encyclopedias in Slavic languages
-ones.038 = 038 - Encyclopedias in Scandinavian languages
-ones.039 = 039 - Encyclopedias in other languages
-ones.040 = 040 - [Unassigned]
-ones.041 = 041 - [Unassigned]
-ones.042 = 042 - [Unassigned]
-ones.043 = 043 - [Unassigned]
-ones.044 = 044 - [Unassigned]
-ones.045 = 045 - [Unassigned]
-ones.046 = 046 - [Unassigned]
-ones.047 = 047 - [Unassigned]
-ones.048 = 048 - [Unassigned]
-ones.049 = 049 - [Unassigned]
-ones.050 = 050 - General serial publications
-ones.051 = 051 - Serials in American English
-ones.052 = 052 - Serials in English
-ones.053 = 053 - Serials in other Germanic languages
-ones.054 = 054 - Serials in French, Occitan & Catalan
-ones.055 = 055 - Serials in Italian, Romanian & related languages
-ones.056 = 056 - Serials in Spanish & Portuguese
-ones.057 = 057 - Serials in Slavic languages
-ones.058 = 058 - Serials in Scandinavian languages
-ones.059 = 059 - Serials in other languages
-ones.060 = 060 - General organizations & museum science
-ones.061 = 061 - Organizations in North America
-ones.062 = 062 - Organizations in British Isles; in England
-ones.063 = 063 - Organizations in central Europe; in Germany
-ones.064 = 064 - Organizations in France & Monaco
-ones.065 = 065 - Organizations in Italy & adjacent islands
-ones.066 = 066 - Organizations in Iberian Peninsula & adjacent islands
-ones.067 = 067 - Organizations in eastern Europe; in Russia
-ones.068 = 068 - Organizations in other geographic areas
-ones.069 = 069 - Museum science
-ones.070 = 070 - News media, journalism & publishing
-ones.071 = 071 - Newspapers in North America
-ones.072 = 072 - Newspapers in British Isles; in England
-ones.073 = 073 - Newspapers in central Europe; in Germany
-ones.074 = 074 - Newspapers in France & Monaco
-ones.075 = 075 - Newspapers in Italy & adjacent islands
-ones.076 = 076 - Newspapers in Iberian Peninsula & adjacent islands
-ones.077 = 077 - Newspapers in eastern Europe; in Russia
-ones.078 = 078 - Newspapers in Scandinavia
-ones.079 = 079 - Newspapers in other geographic areas
-ones.080 = 080 - General collections
-ones.081 = 081 - Collections in American English
-ones.082 = 082 - Collections in English
-ones.083 = 083 - Collections in other Germanic languages
-ones.084 = 084 - Collections in French, Occitan & Catalan
-ones.085 = 085 - Collections in Italian, Romanian & related languages
-ones.086 = 086 - Collections in Spanish & Portuguese
-ones.087 = 087 - Collections in Slavic languages
-ones.088 = 088 - Collections in Scandinavian languages
-ones.089 = 089 - Collections in other languages
-ones.090 = 090 - Manuscripts & rare books
-ones.091 = 091 - Manuscripts
-ones.092 = 092 - Block books
-ones.093 = 093 - Incunabula
-ones.094 = 094 - Printed books
-ones.095 = 095 - Books notable for bindings
-ones.096 = 096 - Books notable for illustrations
-ones.097 = 097 - Books notable for ownership or origin
-ones.098 = 098 - Prohibited works, forgeries & hoaxes
-ones.099 = 099 - Books notable for format
-ones.100 = 100 - Philosophy & psychology
-ones.101 = 101 - Theory of philosophy
-ones.102 = 102 - Miscellany
-ones.103 = 103 - Dictionaries & encyclopedias
-ones.104 = 104 - [Unassigned]
-ones.105 = 105 - Serial publications
-ones.106 = 106 - Organizations & management
-ones.107 = 107 - Education, research & related topics
-ones.108 = 108 - Kinds of persons treatment
-ones.109 = 109 - Historical & collected persons treatment
-ones.110 = 110 - Metaphysics
-ones.111 = 111 - Ontology
-ones.112 = 112 - [Unassigned]
-ones.113 = 113 - Cosmology
-ones.114 = 114 - Space
-ones.115 = 115 - Time
-ones.116 = 116 - Change
-ones.117 = 117 - Structure
-ones.118 = 118 - Force & energy
-ones.119 = 119 - Number & quantity
-ones.120 = 120 - Epistemology, causation & humankind
-ones.121 = 121 - Epistemology
-ones.122 = 122 - Causation
-ones.123 = 123 - Determinism & indeterminism
-ones.124 = 124 - Teleology
-ones.125 = 125 - [Unassigned]
-ones.126 = 126 - The self
-ones.127 = 127 - The unconscious & the subconscious
-ones.128 = 128 - Humankind
-ones.129 = 129 - Origin & destiny of individual souls
-ones.130 = 130 - Parapsychology & occultism
-ones.131 = 131 - Parapsychological & occult methods
-ones.132 = 132 - [Unassigned]
-ones.133 = 133 - Specific topics in parapsychology & occultism
-ones.134 = 134 - [Unassigned]
-ones.135 = 135 - Dreams & mysteries
-ones.136 = 136 - [Unassigned]
-ones.137 = 137 - Divinatory graphology
-ones.138 = 138 - Physiognomy
-ones.139 = 139 - Phrenology
-ones.140 = 140 - Specific philosophical schools
-ones.141 = 141 - Idealism & related systems
-ones.142 = 142 - Critical philosophy
-ones.143 = 143 - Bergsonism & intuitionism
-ones.144 = 144 - Humanism & related systems
-ones.145 = 145 - Sensationalism
-ones.146 = 146 - Naturalism & related systems
-ones.147 = 147 - Pantheism & related systems
-ones.148 = 148 - Eclecticism, liberalism & traditionalism
-ones.149 = 149 - Other philosophical systems
-ones.150 = 150 - Psychology
-ones.151 = 151 - [Unassigned]
-ones.152 = 152 - Perception, movement, emotions & drives
-ones.153 = 153 - Mental processes & intelligence
-ones.154 = 154 - Subconscious & altered states
-ones.155 = 155 - Differential & developmental psychology
-ones.156 = 156 - Comparative psychology
-ones.157 = 157 - [Unassigned]
-ones.158 = 158 - Applied psychology
-ones.159 = 159 - [Unassigned]
-ones.160 = 160 - Logic
-ones.161 = 161 - Induction
-ones.162 = 162 - Deduction
-ones.163 = 163 - [Unassigned]
-ones.164 = 164 - [Unassigned]
-ones.165 = 165 - Fallacies & sources of error
-ones.166 = 166 - Syllogisms
-ones.167 = 167 - Hypotheses
-ones.168 = 168 - Argument & persuasion
-ones.169 = 169 - Analogy
-ones.170 = 170 - Ethics
-ones.171 = 171 - Ethical systems
-ones.172 = 172 - Political ethics
-ones.173 = 173 - Ethics of family relationships
-ones.174 = 174 - Occupational ethics
-ones.175 = 175 - Ethics of recreation & leisure
-ones.176 = 176 - Ethics of sex & reproduction
-ones.177 = 177 - Ethics of social relations
-ones.178 = 178 - Ethics of consumption
-ones.179 = 179 - Other ethical norms
-ones.180 = 180 - Ancient, medieval & eastern philosophy
-ones.181 = 181 - Eastern philosophy
-ones.182 = 182 - Pre-Socratic Greek philosophies
-ones.183 = 183 - Socratic & related philosophies
-ones.184 = 184 - Platonic philosophy
-ones.185 = 185 - Aristotelian philosophy
-ones.186 = 186 - Skeptic & Neoplatonic philosophies
-ones.187 = 187 - Epicurean philosophy
-ones.188 = 188 - Stoic philosophy
-ones.189 = 189 - Medieval western philosophy
-ones.190 = 190 - Modern western philosophy
-ones.191 = 191 - Philosophy of United States & Canada
-ones.192 = 192 - Philosophy of British Isles
-ones.193 = 193 - Philosophy of Germany & Austria
-ones.194 = 194 - Philosophy of France
-ones.195 = 195 - Philosophy of Italy
-ones.196 = 196 - Philosophy of Spain & Portugal
-ones.197 = 197 - Philosophy of former Soviet Union
-ones.198 = 198 - Philosophy of Scandinavia
-ones.199 = 199 - Philosophy in other geographic areas
-ones.200 = 200 - Religion
-ones.201 = 201 - Religious mythology & social theology
-ones.202 = 202 - Doctrines
-ones.203 = 203 - Public worship & other practices
-ones.204 = 204 - Religious experience, life & practice
-ones.205 = 205 - Religious ethics
-ones.206 = 206 - Leaders & organization
-ones.207 = 207 - Missions & religious education
-ones.208 = 208 - Sources
-ones.209 = 209 - Sects & reform movements
-ones.210 = 210 - Philosophy & theory of religion
-ones.211 = 211 - Concepts of God
-ones.212 = 212 - Existence, knowability & attributes of God
-ones.213 = 213 - Creation
-ones.214 = 214 - Theodicy
-ones.215 = 215 - Science & religion
-ones.216 = 216 - [Unassigned]
-ones.217 = 217 - [Unassigned]
-ones.218 = 218 - Humankind
-ones.219 = 219 - [Unassigned]
-ones.220 = 220 - Bible
-ones.221 = 221 - Old Testament (Tanakh)
-ones.222 = 222 - Historical books of Old Testament
-ones.223 = 223 - Poetic books of Old Testament
-ones.224 = 224 - Prophetic books of Old Testament
-ones.225 = 225 - New Testament
-ones.226 = 226 - Gospels & Acts
-ones.227 = 227 - Epistles
-ones.228 = 228 - Revelation (Apocalypse)
-ones.229 = 229 - Apocrypha & pseudepigrapha
-ones.230 = 230 - Christianity & Christian theology
-ones.231 = 231 - God
-ones.232 = 232 - Jesus Christ & his family
-ones.233 = 233 - Humankind
-ones.234 = 234 - Salvation & grace
-ones.235 = 235 - Spiritual beings
-ones.236 = 236 - Eschatology
-ones.237 = 237 - [Unassigned]
-ones.238 = 238 - Creeds & catechisms
-ones.239 = 239 - Apologetics & polemics
-ones.240 = 240 - Christian moral & devotional theology
-ones.241 = 241 - Christian ethics
-ones.242 = 242 - Devotional literature
-ones.243 = 243 - Evangelistic writings for individuals
-ones.244 = 244 - [Unassigned]
-ones.245 = 245 - [Unassigned]
-ones.246 = 246 - Use of art in Christianity
-ones.247 = 247 - Church furnishings & articles
-ones.248 = 248 - Christian experience, practice & life
-ones.249 = 249 - Christian observances in family life
-ones.250 = 250 - Christian orders & local church
-ones.251 = 251 - Preaching
-ones.252 = 252 - Texts of sermons
-ones.253 = 253 - Pastoral office & work
-ones.254 = 254 - Parish administration
-ones.255 = 255 - Religious congregations & orders
-ones.256 = 256 - [Unassigned]
-ones.257 = 257 - [Unassigned]
-ones.258 = 258 - [Unassigned]
-ones.259 = 259 - Pastoral care of families & kinds of persons
-ones.260 = 260 - Social & ecclesiastical theology
-ones.261 = 261 - Social theology
-ones.262 = 262 - Ecclesiology
-ones.263 = 263 - Days, times & places of observance
-ones.264 = 264 - Public worship
-ones.265 = 265 - Sacraments, other rites & acts
-ones.266 = 266 - Missions
-ones.267 = 267 - Associations for religious work
-ones.268 = 268 - Religious education
-ones.269 = 269 - Spiritual renewal
-ones.270 = 270 - History of Christianity & Christian church
-ones.271 = 271 - Religious orders in church history
-ones.272 = 272 - Persecutions in church history
-ones.273 = 273 - Doctrinal controversies & heresies
-ones.274 = 274 - History of Christianity in Europe
-ones.275 = 275 - History of Christianity in Asia
-ones.276 = 276 - History of Christianity in Africa
-ones.277 = 277 - History of Christianity in North America
-ones.278 = 278 - History of Christianity in South America
-ones.279 = 279 - History of Christianity in other areas
-ones.280 = 280 - Christian denominations & sects
-ones.281 = 281 - Early church & Eastern churches
-ones.282 = 282 - Roman Catholic Church
-ones.283 = 283 - Anglican churches
-ones.284 = 284 - Protestants of Continental origin
-ones.285 = 285 - Presbyterian, Reformed & Congregational
-ones.286 = 286 - Baptist, Disciples of Christ & Adventist
-ones.287 = 287 - Methodist & related churches
-ones.288 = 288 - [Unassigned]
-ones.289 = 289 - Other denominations & sects
-ones.290 = 290 - Other religions
-ones.291 = 291 - [Unassigned]
-ones.292 = 292 - Greek & Roman religion
-ones.293 = 293 - Germanic religion
-ones.294 = 294 - Religions of Indic origin
-ones.295 = 295 - Zoroastrianism
-ones.296 = 296 - Judaism
-ones.297 = 297 - Islam, Babism & Bahai Faith
-ones.298 = 298 - (Optional number)
-ones.299 = 299 - Religions not provided for elsewhere
-ones.300 = 300 - Social sciences
-ones.301 = 301 - Sociology & anthropology
-ones.302 = 302 - Social interaction
-ones.303 = 303 - Social processes
-ones.304 = 304 - Factors affecting social behavior
-ones.305 = 305 - Social groups
-ones.306 = 306 - Culture & institutions
-ones.307 = 307 - Communities
-ones.308 = 308 - [Unassigned]
-ones.309 = 309 - [Unassigned]
-ones.310 = 310 - Collections of general statistics
-ones.311 = 311 - [Unassigned]
-ones.312 = 312 - [Unassigned]
-ones.313 = 313 - [Unassigned]
-ones.314 = 314 - General statistics of Europe
-ones.315 = 315 - General statistics of Asia
-ones.316 = 316 - General statistics of Africa
-ones.317 = 317 - General statistics of North America
-ones.318 = 318 - General statistics of South America
-ones.319 = 319 - General statistics of other areas
-ones.320 = 320 - Political science
-ones.321 = 321 - Systems of governments & states
-ones.322 = 322 - Relation of state to organized groups
-ones.323 = 323 - Civil & political rights
-ones.324 = 324 - The political process
-ones.325 = 325 - International migration & colonization
-ones.326 = 326 - Slavery & emancipation
-ones.327 = 327 - International relations
-ones.328 = 328 - The legislative process
-ones.329 = 329 - [Unassigned]
-ones.330 = 330 - Economics
-ones.331 = 331 - Labor economics
-ones.332 = 332 - Financial economics
-ones.333 = 333 - Economics of land & energy
-ones.334 = 334 - Cooperatives
-ones.335 = 335 - Socialism & related systems
-ones.336 = 336 - Public finance
-ones.337 = 337 - International economics
-ones.338 = 338 - Production
-ones.339 = 339 - Macroeconomics & related topics
-ones.340 = 340 - Law
-ones.341 = 341 - Law of nations
-ones.342 = 342 - Constitutional & administrative law
-ones.343 = 343 - Military, tax, trade & industrial law
-ones.344 = 344 - Labor, social, education & cultural law
-ones.345 = 345 - Criminal law
-ones.346 = 346 - Private law
-ones.347 = 347 - Civil procedure & courts
-ones.348 = 348 - Laws, regulations & cases
-ones.349 = 349 - Law of specific jurisdictions & areas
-ones.350 = 350 - Public administration & military science
-ones.351 = 351 - Public administration
-ones.352 = 352 - General considerations of public administration
-ones.353 = 353 - Specific fields of public administration
-ones.354 = 354 - Administration of economy & environment
-ones.355 = 355 - Military science
-ones.356 = 356 - Infantry forces & warfare
-ones.357 = 357 - Mounted forces & warfare
-ones.358 = 358 - Air & other specialized forces
-ones.359 = 359 - Sea forces & warfare
-ones.360 = 360 - Social problems & services; associations
-ones.361 = 361 - Social problems & social welfare in general
-ones.362 = 362 - Social welfare problems & services
-ones.363 = 363 - Other social problems & services
-ones.364 = 364 - Criminology
-ones.365 = 365 - Penal & related institutions
-ones.366 = 366 - Associations
-ones.367 = 367 - General clubs
-ones.368 = 368 - Insurance
-ones.369 = 369 - Miscellaneous kinds of associations
-ones.370 = 370 - Education
-ones.371 = 371 - Schools & their activities; special education
-ones.372 = 372 - Elementary education
-ones.373 = 373 - Secondary education
-ones.374 = 374 - Adult education
-ones.375 = 375 - Curricula
-ones.376 = 376 - [Unassigned]
-ones.377 = 377 - [Unassigned]
-ones.378 = 378 - Higher education
-ones.379 = 379 - Public policy issues in education
-ones.380 = 380 - Commerce, communications & transportation
-ones.381 = 381 - Commerce
-ones.382 = 382 - International commerce
-ones.383 = 383 - Postal communication
-ones.384 = 384 - Communications; telecommunication
-ones.385 = 385 - Railroad transportation
-ones.386 = 386 - Inland waterway & ferry transportation
-ones.387 = 387 - Water, air & space transportation
-ones.388 = 388 - Transportation; ground transportation
-ones.389 = 389 - Metrology & standardization
-ones.390 = 390 - Customs, etiquette & folklore
-ones.391 = 391 - Costume & personal appearance
-ones.392 = 392 - Customs of life cycle & domestic life
-ones.393 = 393 - Death customs
-ones.394 = 394 - General customs
-ones.395 = 395 - Etiquette (Manners)
-ones.396 = 396 - [Unassigned]
-ones.397 = 397 - [Unassigned]
-ones.398 = 398 - Folklore
-ones.399 = 399 - Customs of war & diplomacy
-ones.400 = 400 - Language
-ones.401 = 401 - Philosophy & theory
-ones.402 = 402 - Miscellany
-ones.403 = 403 - Dictionaries & encyclopedias
-ones.404 = 404 - Special topics
-ones.405 = 405 - Serial publications
-ones.406 = 406 - Organizations & management
-ones.407 = 407 - Education, research & related topics
-ones.408 = 408 - Kinds of persons treatment
-ones.409 = 409 - Geographic & persons treatment
-ones.410 = 410 - Linguistics
-ones.411 = 411 - Writing systems
-ones.412 = 412 - Etymology
-ones.413 = 413 - Dictionaries
-ones.414 = 414 - Phonology & phonetics
-ones.415 = 415 - Grammar
-ones.416 = 416 - [Unassigned]
-ones.417 = 417 - Dialectology & historical linguistics
-ones.418 = 418 - Standard usage & applied linguistics
-ones.419 = 419 - Sign languages
-ones.420 = 420 - English & Old English
-ones.421 = 421 - English writing system & phonology
-ones.422 = 422 - English etymology
-ones.423 = 423 - English dictionaries
-ones.424 = 424 - [Unassigned]
-ones.425 = 425 - English grammar
-ones.426 = 426 - [Unassigned]
-ones.427 = 427 - English language variations
-ones.428 = 428 - Standard English usage
-ones.429 = 429 - Old English (Anglo-Saxon)
-ones.430 = 430 - Germanic languages; German
-ones.431 = 431 - German writing systems & phonology
-ones.432 = 432 - German etymology
-ones.433 = 433 - German dictionaries
-ones.434 = 434 - [Unassigned]
-ones.435 = 435 - German grammar
-ones.436 = 436 - [Unassigned]
-ones.437 = 437 - German language variations
-ones.438 = 438 - Standard German usage
-ones.439 = 439 - Other Germanic languages
-ones.440 = 440 - Romance languages; French
-ones.441 = 441 - French writing systems & phonology
-ones.442 = 442 - French etymology
-ones.443 = 443 - French dictionaries
-ones.444 = 444 - [Unassigned]
-ones.445 = 445 - French grammar
-ones.446 = 446 - [Unassigned]
-ones.447 = 447 - French language variations
-ones.448 = 448 - Standard French usage
-ones.449 = 449 - Occitan & Catalan
-ones.450 = 450 - Italian, Romanian & related languages
-ones.451 = 451 - Italian writing systems & phonology
-ones.452 = 452 - Italian etymology
-ones.453 = 453 - Italian dictionaries
-ones.454 = 454 - [Unassigned]
-ones.455 = 455 - Italian grammar
-ones.456 = 456 - [Unassigned]
-ones.457 = 457 - Italian language variations
-ones.458 = 458 - Standard Italian usage
-ones.459 = 459 - Romanian & related languages
-ones.460 = 460 - Spanish & Portuguese languages
-ones.461 = 461 - Spanish writing systems & phonology
-ones.462 = 462 - Spanish etymology
-ones.463 = 463 - Spanish dictionaries
-ones.464 = 464 - [Unassigned]
-ones.465 = 465 - Spanish grammar
-ones.466 = 466 - [Unassigned]
-ones.467 = 467 - Spanish language variations
-ones.468 = 468 - Standard Spanish usage
-ones.469 = 469 - Portuguese
-ones.470 = 470 - Italic languages; Latin
-ones.471 = 471 - Classical Latin writing & phonology
-ones.472 = 472 - Classical Latin etymology
-ones.473 = 473 - Classical Latin dictionaries
-ones.474 = 474 - [Unassigned]
-ones.475 = 475 - Classical Latin grammar
-ones.476 = 476 - [Unassigned]
-ones.477 = 477 - Old, postclassical & Vulgar Latin
-ones.478 = 478 - Classical Latin usage
-ones.479 = 479 - Other Italic languages
-ones.480 = 480 - Hellenic languages; classical Greek
-ones.481 = 481 - Classical Greek writing & phonology
-ones.482 = 482 - Classical Greek etymology
-ones.483 = 483 - Classical Greek dictionaries
-ones.484 = 484 - [Unassigned]
-ones.485 = 485 - Classical Greek grammar
-ones.486 = 486 - [Unassigned]
-ones.487 = 487 - Preclassical & postclassical Greek
-ones.488 = 488 - Classical Greek usage
-ones.489 = 489 - Other Hellenic languages
-ones.490 = 490 - Other languages
-ones.491 = 491 - East Indo-European & Celtic languages
-ones.492 = 492 - Afro-Asiatic languages; Semitic languages
-ones.493 = 493 - Non-Semitic Afro-Asiatic languages
-ones.494 = 494 - Altaic, Uralic, Hyperborean & Dravidian
-ones.495 = 495 - Languages of East & Southeast Asia
-ones.496 = 496 - African languages
-ones.497 = 497 - North American native languages
-ones.498 = 498 - South American native languages
-ones.499 = 499 - Austronesian & other languages
-ones.500 = 500 - Natural sciences & mathematics
-ones.501 = 501 - Philosophy & theory
-ones.502 = 502 - Miscellany
-ones.503 = 503 - Dictionaries & encyclopedias
-ones.504 = 504 - [Unassigned]
-ones.505 = 505 - Serial publications
-ones.506 = 506 - Organizations & management
-ones.507 = 507 - Education, research & related topics
-ones.508 = 508 - Natural history
-ones.509 = 509 - Historical, geographic & persons treatment
-ones.510 = 510 - Mathematics
-ones.511 = 511 - General principles of mathematics
-ones.512 = 512 - Algebra
-ones.513 = 513 - Arithmetic
-ones.514 = 514 - Topology
-ones.515 = 515 - Analysis
-ones.516 = 516 - Geometry
-ones.517 = 517 - [Unassigned]
-ones.518 = 518 - Numerical analysis
-ones.519 = 519 - Probabilities & applied mathematics
-ones.520 = 520 - Astronomy & allied sciences
-ones.521 = 521 - Celestial mechanics
-ones.522 = 522 - Techniques, equipment & materials
-ones.523 = 523 - Specific celestial bodies & phenomena
-ones.524 = 524 - [Unassigned]
-ones.525 = 525 - Earth (Astronomical geography)
-ones.526 = 526 - Mathematical geography
-ones.527 = 527 - Celestial navigation
-ones.528 = 528 - Ephemerides
-ones.529 = 529 - Chronology
-ones.530 = 530 - Physics
-ones.531 = 531 - Classical mechanics; solid mechanics
-ones.532 = 532 - Fluid mechanics; liquid mechanics
-ones.533 = 533 - Gas mechanics
-ones.534 = 534 - Sound & related vibrations
-ones.535 = 535 - Light & infrared & ultraviolet phenomena
-ones.536 = 536 - Heat
-ones.537 = 537 - Electricity & electronics
-ones.538 = 538 - Magnetism
-ones.539 = 539 - Modern physics
-ones.540 = 540 - Chemistry & allied sciences
-ones.541 = 541 - Physical chemistry
-ones.542 = 542 - Techniques, equipment & materials
-ones.543 = 543 - Analytical chemistry
-ones.544 = 544 - [Unassigned]
-ones.545 = 545 - [Unassigned]
-ones.546 = 546 - Inorganic chemistry
-ones.547 = 547 - Organic chemistry
-ones.548 = 548 - Crystallography
-ones.549 = 549 - Mineralogy
-ones.550 = 550 - Earth sciences
-ones.551 = 551 - Geology, hydrology & meteorology
-ones.552 = 552 - Petrology
-ones.553 = 553 - Economic geology
-ones.554 = 554 - Earth sciences of Europe
-ones.555 = 555 - Earth sciences of Asia
-ones.556 = 556 - Earth sciences of Africa
-ones.557 = 557 - Earth sciences of North America
-ones.558 = 558 - Earth sciences of South America
-ones.559 = 559 - Earth sciences of other areas
-ones.560 = 560 - Paleontology; paleozoology
-ones.561 = 561 - Paleobotany; fossil microorganisms
-ones.562 = 562 - Fossil invertebrates
-ones.563 = 563 - Fossil marine & seashore invertebrates
-ones.564 = 564 - Fossil mollusks & molluscoids
-ones.565 = 565 - Fossil arthropods
-ones.566 = 566 - Fossil chordates
-ones.567 = 567 - Fossil cold-blooded vertebrates; fossil fishes
-ones.568 = 568 - Fossil birds
-ones.569 = 569 - Fossil mammals
-ones.570 = 570 - Life sciences; biology
-ones.571 = 571 - Physiology & related subjects
-ones.572 = 572 - Biochemistry
-ones.573 = 573 - Specific physiological systems in animals
-ones.574 = 574 - [Unassigned]
-ones.575 = 575 - Specific parts of & systems in plants
-ones.576 = 576 - Genetics & evolution
-ones.577 = 577 - Ecology
-ones.578 = 578 - Natural history of organisms
-ones.579 = 579 - Microorganisms, fungi & algae
-ones.580 = 580 - Plants (Botany)
-ones.581 = 581 - Specific topics in natural history
-ones.582 = 582 - Plants noted for characteristics & flowers
-ones.583 = 583 - Dicotyledons
-ones.584 = 584 - Monocotyledons
-ones.585 = 585 - Gymnosperms; conifers
-ones.586 = 586 - Seedless plants
-ones.587 = 587 - Vascular seedless plants
-ones.588 = 588 - Bryophytes
-ones.589 = 589 - [Unassigned]
-ones.590 = 590 - Animals (Zoology)
-ones.591 = 591 - Specific topics in natural history
-ones.592 = 592 - Invertebrates
-ones.593 = 593 - Marine & seashore invertebrates
-ones.594 = 594 - Mollusks & molluscoids
-ones.595 = 595 - Arthropods
-ones.596 = 596 - Chordates
-ones.597 = 597 - Cold-blooded vertebrates; fishes
-ones.598 = 598 - Birds
-ones.599 = 599 - Mammals
-ones.600 = 600 - Technology
-ones.601 = 601 - Philosophy & theory
-ones.602 = 602 - Miscellany
-ones.603 = 603 - Dictionaries & encyclopedias
-ones.604 = 604 - Special topics
-ones.605 = 605 - Serial publications
-ones.606 = 606 - Organizations
-ones.607 = 607 - Education, research & related topics
-ones.608 = 608 - Inventions & patents
-ones.609 = 609 - Historical, geographic & persons treatment
-ones.610 = 610 - Medicine & health
-ones.611 = 611 - Human anatomy, cytology & histology
-ones.612 = 612 - Human physiology
-ones.613 = 613 - Personal health & safety
-ones.614 = 614 - Incidence & prevention of disease
-ones.615 = 615 - Pharmacology & therapeutics
-ones.616 = 616 - Diseases
-ones.617 = 617 - Surgery & related medical specialties
-ones.618 = 618 - Gynecology, obstetrics, pediatrics & geriatrics
-ones.619 = 619 - [Unassigned]
-ones.620 = 620 - Engineering & allied operations
-ones.621 = 621 - Applied physics
-ones.622 = 622 - Mining & related operations
-ones.623 = 623 - Military & nautical engineering
-ones.624 = 624 - Civil engineering
-ones.625 = 625 - Engineering of railroads & roads
-ones.626 = 626 - [Unassigned]
-ones.627 = 627 - Hydraulic engineering
-ones.628 = 628 - Sanitary & municipal engineering
-ones.629 = 629 - Other branches of engineering
-ones.630 = 630 - Agriculture & related technologies
-ones.631 = 631 - Techniques, equipment & materials
-ones.632 = 632 - Plant injuries, diseases & pests
-ones.633 = 633 - Field & plantation crops
-ones.634 = 634 - Orchards, fruits & forestry
-ones.635 = 635 - Garden crops (Horticulture)
-ones.636 = 636 - Animal husbandry
-ones.637 = 637 - Processing dairy & related products
-ones.638 = 638 - Insect culture
-ones.639 = 639 - Hunting, fishing & conservation
-ones.640 = 640 - Home & family management
-ones.641 = 641 - Food & drink
-ones.642 = 642 - Meals & table service
-ones.643 = 643 - Housing & household equipment
-ones.644 = 644 - Household utilities
-ones.645 = 645 - Household furnishings
-ones.646 = 646 - Sewing, clothing & personal living
-ones.647 = 647 - Management of public households
-ones.648 = 648 - Housekeeping
-ones.649 = 649 - Child rearing & home care of persons
-ones.650 = 650 - Management & auxiliary services
-ones.651 = 651 - Office services
-ones.652 = 652 - Processes of written communication
-ones.653 = 653 - Shorthand
-ones.654 = 654 - [Unassigned]
-ones.655 = 655 - [Unassigned]
-ones.656 = 656 - [Unassigned]
-ones.657 = 657 - Accounting
-ones.658 = 658 - General management
-ones.659 = 659 - Advertising & public relations
-ones.660 = 660 - Chemical engineering
-ones.661 = 661 - Industrial chemicals
-ones.662 = 662 - Explosives, fuels & related products
-ones.663 = 663 - Beverage technology
-ones.664 = 664 - Food technology
-ones.665 = 665 - Industrial oils, fats, waxes & gases
-ones.666 = 666 - Ceramic & allied technologies
-ones.667 = 667 - Cleaning, color & coating technologies
-ones.668 = 668 - Technology of other organic products
-ones.669 = 669 - Metallurgy
-ones.670 = 670 - Manufacturing
-ones.671 = 671 - Metalworking & primary metal products
-ones.672 = 672 - Iron, steel & other iron alloys
-ones.673 = 673 - Nonferrous metals
-ones.674 = 674 - Lumber processing, wood products & cork
-ones.675 = 675 - Leather & fur processing
-ones.676 = 676 - Pulp & paper technology
-ones.677 = 677 - Textiles
-ones.678 = 678 - Elastomers & elastomer products
-ones.679 = 679 - Other products of specific materials
-ones.680 = 680 - Manufacture for specific uses
-ones.681 = 681 - Precision instruments & other devices
-ones.682 = 682 - Small forge work (Blacksmithing)
-ones.683 = 683 - Hardware & household appliances
-ones.684 = 684 - Furnishings & home workshops
-ones.685 = 685 - Leather, fur goods & related products
-ones.686 = 686 - Printing & related activities
-ones.687 = 687 - Clothing & accessories
-ones.688 = 688 - Other final products & packaging
-ones.689 = 689 - [Unassigned]
-ones.690 = 690 - Buildings
-ones.691 = 691 - Building materials
-ones.692 = 692 - Auxiliary construction practices
-ones.693 = 693 - Specific materials & purposes
-ones.694 = 694 - Wood construction & carpentry
-ones.695 = 695 - Roof covering
-ones.696 = 696 - Utilities
-ones.697 = 697 - Heating, ventilating & air-conditioning
-ones.698 = 698 - Detail finishing
-ones.699 = 699 - [Unassigned]
-ones.700 = 700 - The arts; fine & decorative arts
-ones.701 = 701 - Philosophy of fine & decorative arts
-ones.702 = 702 - Miscellany of fine & decorative arts
-ones.703 = 703 - Dictionaries of fine & decorative arts
-ones.704 = 704 - Special topics in fine & decorative arts
-ones.705 = 705 - Serial publications of fine & decorative arts
-ones.706 = 706 - Organizations & management
-ones.707 = 707 - Education, research & related topics
-ones.708 = 708 - Galleries, museums & private collections
-ones.709 = 709 - Historical, geographic & persons treatment
-ones.710 = 710 - Civic & landscape art
-ones.711 = 711 - Area planning
-ones.712 = 712 - Landscape architecture
-ones.713 = 713 - Landscape architecture of trafficways
-ones.714 = 714 - Water features
-ones.715 = 715 - Woody plants
-ones.716 = 716 - Herbaceous plants
-ones.717 = 717 - Structures in landscape architecture
-ones.718 = 718 - Landscape design of cemeteries
-ones.719 = 719 - Natural landscapes
-ones.720 = 720 - Architecture
-ones.721 = 721 - Architectural structure
-ones.722 = 722 - Architecture to ca. 300
-ones.723 = 723 - Architecture from ca. 300 to 1399
-ones.724 = 724 - Architecture from 1400
-ones.725 = 725 - Public structures
-ones.726 = 726 - Buildings for religious purposes
-ones.727 = 727 - Buildings for education & research
-ones.728 = 728 - Residential & related buildings
-ones.729 = 729 - Design & decoration
-ones.730 = 730 - Plastic arts; sculpture
-ones.731 = 731 - Processes, forms & subjects of sculpture
-ones.732 = 732 - Sculpture to ca. 500
-ones.733 = 733 - Greek, Etruscan & Roman sculpture
-ones.734 = 734 - Sculpture from ca. 500 to 1399
-ones.735 = 735 - Sculpture from 1400
-ones.736 = 736 - Carving & carvings
-ones.737 = 737 - Numismatics & sigillography
-ones.738 = 738 - Ceramic arts
-ones.739 = 739 - Art metalwork
-ones.740 = 740 - Drawing & decorative arts
-ones.741 = 741 - Drawing & drawings
-ones.742 = 742 - Perspective
-ones.743 = 743 - Drawing & drawings by subject
-ones.744 = 744 - [Unassigned]
-ones.745 = 745 - Decorative arts
-ones.746 = 746 - Textile arts
-ones.747 = 747 - Interior decoration
-ones.748 = 748 - Glass
-ones.749 = 749 - Furniture & accessories
-ones.750 = 750 - Painting & paintings
-ones.751 = 751 - Techniques, equipment, materials & forms
-ones.752 = 752 - Color
-ones.753 = 753 - Symbolism, allegory, mythology & legend
-ones.754 = 754 - Genre paintings
-ones.755 = 755 - Religion
-ones.756 = 756 - [Unassigned]
-ones.757 = 757 - Human figures
-ones.758 = 758 - Other subjects
-ones.759 = 759 - Historical, geographic & persons treatment
-ones.760 = 760 - Graphic arts; printmaking & prints
-ones.761 = 761 - Relief processes (Block printing)
-ones.762 = 762 - [Unassigned]
-ones.763 = 763 - Lithographic processes
-ones.764 = 764 - Chromolithography & serigraphy
-ones.765 = 765 - Metal engraving
-ones.766 = 766 - Mezzotinting, aquatinting & related processes
-ones.767 = 767 - Etching & drypoint
-ones.768 = 768 - [Unassigned]
-ones.769 = 769 - Prints
-ones.770 = 770 - Photography, photographs & computer art
-ones.771 = 771 - Techniques, equipment & materials
-ones.772 = 772 - Metallic salt processes
-ones.773 = 773 - Pigment processes of printing
-ones.774 = 774 - Holography
-ones.775 = 775 - Digital photography
-ones.776 = 776 - Computer art (Digital art)
-ones.777 = 777 - [Unassigned]
-ones.778 = 778 - Fields & kinds of photography
-ones.779 = 779 - Photographs
-ones.780 = 780 - Music
-ones.781 = 781 - General principles & musical forms
-ones.782 = 782 - Vocal music
-ones.783 = 783 - Music for single voices; the voice
-ones.784 = 784 - Instruments & instrumental ensembles
-ones.785 = 785 - Ensembles with one instrument per part
-ones.786 = 786 - Keyboard & other instruments
-ones.787 = 787 - Stringed instruments
-ones.788 = 788 - Wind instruments
-ones.789 = 789 - (Optional number)
-ones.790 = 790 - Recreational & performing arts
-ones.791 = 791 - Public performances
-ones.792 = 792 - Stage presentations
-ones.793 = 793 - Indoor games & amusements
-ones.794 = 794 - Indoor games of skill
-ones.795 = 795 - Games of chance
-ones.796 = 796 - Athletic & outdoor sports & games
-ones.797 = 797 - Aquatic & air sports
-ones.798 = 798 - Equestrian sports & animal racing
-ones.799 = 799 - Fishing, hunting & shooting
-ones.800 = 800 - Literature & rhetoric
-ones.801 = 801 - Philosophy & theory
-ones.802 = 802 - Miscellany
-ones.803 = 803 - Dictionaries & encyclopedias
-ones.804 = 804 - [Unassigned]
-ones.805 = 805 - Serial publications
-ones.806 = 806 - Organizations & management
-ones.807 = 807 - Education, research & related topics
-ones.808 = 808 - Rhetoric & collections of literature
-ones.809 = 809 - History, description & criticism
-ones.810 = 810 - American literature in English
-ones.811 = 811 - American poetry in English
-ones.812 = 812 - American drama in English
-ones.813 = 813 - American fiction in English
-ones.814 = 814 - American essays in English
-ones.815 = 815 - American speeches in English
-ones.816 = 816 - American letters in English
-ones.817 = 817 - American humor & satire in English
-ones.818 = 818 - American miscellaneous writings
-ones.819 = 819 - (Optional number)
-ones.820 = 820 - English & Old English literatures
-ones.821 = 821 - English poetry
-ones.822 = 822 - English drama
-ones.823 = 823 - English fiction
-ones.824 = 824 - English essays
-ones.825 = 825 - English speeches
-ones.826 = 826 - English letters
-ones.827 = 827 - English humor & satire
-ones.828 = 828 - English miscellaneous writings
-ones.829 = 829 - Old English (Anglo-Saxon)
-ones.830 = 830 - Literatures of Germanic languages
-ones.831 = 831 - German poetry
-ones.832 = 832 - German drama
-ones.833 = 833 - German fiction
-ones.834 = 834 - German essays
-ones.835 = 835 - German speeches
-ones.836 = 836 - German letters
-ones.837 = 837 - German humor & satire
-ones.838 = 838 - German miscellaneous writings
-ones.839 = 839 - Other Germanic literatures
-ones.840 = 840 - Literatures of Romance languages
-ones.841 = 841 - French poetry
-ones.842 = 842 - French drama
-ones.843 = 843 - French fiction
-ones.844 = 844 - French essays
-ones.845 = 845 - French speeches
-ones.846 = 846 - French letters
-ones.847 = 847 - French humor & satire
-ones.848 = 848 - French miscellaneous writings
-ones.849 = 849 - Occitan & Catalan literatures
-ones.850 = 850 - Italian, Romanian & related literatures
-ones.851 = 851 - Italian poetry
-ones.852 = 852 - Italian drama
-ones.853 = 853 - Italian fiction
-ones.854 = 854 - Italian essays
-ones.855 = 855 - Italian speeches
-ones.856 = 856 - Italian letters
-ones.857 = 857 - Italian humor & satire
-ones.858 = 858 - Italian miscellaneous writings
-ones.859 = 859 - Romanian & related literatures
-ones.860 = 860 - Spanish & Portuguese literatures
-ones.861 = 861 - Spanish poetry
-ones.862 = 862 - Spanish drama
-ones.863 = 863 - Spanish fiction
-ones.864 = 864 - Spanish essays
-ones.865 = 865 - Spanish speeches
-ones.866 = 866 - Spanish letters
-ones.867 = 867 - Spanish humor & satire
-ones.868 = 868 - Spanish miscellaneous writings
-ones.869 = 869 - Portuguese literature
-ones.870 = 870 - Italic literatures; Latin literature
-ones.871 = 871 - Latin poetry
-ones.872 = 872 - Latin dramatic poetry & drama
-ones.873 = 873 - Latin epic poetry & fiction
-ones.874 = 874 - Latin lyric poetry
-ones.875 = 875 - Latin speeches
-ones.876 = 876 - Latin letters
-ones.877 = 877 - Latin humor & satire
-ones.878 = 878 - Latin miscellaneous writings
-ones.879 = 879 - Literatures of other Italic languages
-ones.880 = 880 - Hellenic literatures; classical Greek
-ones.881 = 881 - Classical Greek poetry
-ones.882 = 882 - Classical Greek dramatic poetry & drama
-ones.883 = 883 - Classical Greek epic poetry & fiction
-ones.884 = 884 - Classical Greek lyric poetry
-ones.885 = 885 - Classical Greek speeches
-ones.886 = 886 - Classical Greek letters
-ones.887 = 887 - Classical Greek humor & satire
-ones.888 = 888 - Classical Greek miscellaneous writings
-ones.889 = 889 - Modern Greek literature
-ones.890 = 890 - Literatures of other languages
-ones.891 = 891 - East Indo-European & Celtic literatures
-ones.892 = 892 - Afro-Asiatic literatures; Semitic literatures
-ones.893 = 893 - Non-Semitic Afro-Asiatic literatures
-ones.894 = 894 - Altaic, Uralic, Hyperborean & Dravidian
-ones.895 = 895 - Literatures of East & Southeast Asia
-ones.896 = 896 - African literatures
-ones.897 = 897 - North American native literatures
-ones.898 = 898 - South American native literatures
-ones.899 = 899 - Austronesian & other literatures
-ones.900 = 900 - History & geography
-ones.901 = 901 - Philosophy & theory
-ones.902 = 902 - Miscellany
-ones.903 = 903 - Dictionaries & encyclopedias
-ones.904 = 904 - Collected accounts of events
-ones.905 = 905 - Serial publications
-ones.906 = 906 - Organizations & management
-ones.907 = 907 - Education, research & related topics
-ones.908 = 908 - Kinds of persons treatment
-ones.909 = 909 - World history
-ones.910 = 910 - Geography & travel
-ones.911 = 911 - Historical geography
-ones.912 = 912 - Atlases, maps, charts & plans
-ones.913 = 913 - Geography of & travel in ancient world
-ones.914 = 914 - Geography of & travel in Europe
-ones.915 = 915 - Geography of & travel in Asia
-ones.916 = 916 - Geography of & travel in Africa
-ones.917 = 917 - Geography of & travel in North America
-ones.918 = 918 - Geography of & travel in South America
-ones.919 = 919 - Geography of & travel in other areas
-ones.920 = 920 - Biography, genealogy & insignia
-ones.921 = 921 - (Optional number)
-ones.922 = 922 - (Optional number)
-ones.923 = 923 - (Optional number)
-ones.924 = 924 - (Optional number)
-ones.925 = 925 - (Optional number)
-ones.926 = 926 - (Optional number)
-ones.927 = 927 - (Optional number)
-ones.928 = 928 - (Optional number)
-ones.929 = 929 - Genealogy, names & insignia
-ones.930 = 930 - History of ancient world to ca. 499
-ones.931 = 931 - China to 420
-ones.932 = 932 - Egypt to 640
-ones.933 = 933 - Palestine to 70
-ones.934 = 934 - India to 647
-ones.935 = 935 - Mesopotamia & Iranian Plateau to 637
-ones.936 = 936 - Europe north & west of Italy to ca. 499
-ones.937 = 937 - Italy & adjacent territories to 476
-ones.938 = 938 - Greece to 323
-ones.939 = 939 - Other parts of ancient world to ca. 640
-ones.940 = 940 - History of Europe
-ones.941 = 941 - British Isles
-ones.942 = 942 - England & Wales
-ones.943 = 943 - Central Europe; Germany
-ones.944 = 944 - France & Monaco
-ones.945 = 945 - Italian Peninsula & adjacent islands
-ones.946 = 946 - Iberian Peninsula & adjacent islands
-ones.947 = 947 - Eastern Europe; Russia
-ones.948 = 948 - Scandinavia
-ones.949 = 949 - Other parts of Europe
-ones.950 = 950 - History of Asia; Far East
-ones.951 = 951 - China & adjacent areas
-ones.952 = 952 - Japan
-ones.953 = 953 - Arabian Peninsula & adjacent areas
-ones.954 = 954 - South Asia; India
-ones.955 = 955 - Iran
-ones.956 = 956 - Middle East (Near East)
-ones.957 = 957 - Siberia (Asiatic Russia)
-ones.958 = 958 - Central Asia
-ones.959 = 959 - Southeast Asia
-ones.960 = 960 - History of Africa
-ones.961 = 961 - Tunisia & Libya
-ones.962 = 962 - Egypt & Sudan
-ones.963 = 963 - Ethiopia & Eritrea
-ones.964 = 964 - Northwest African coast & offshore islands
-ones.965 = 965 - Algeria
-ones.966 = 966 - West Africa & offshore islands
-ones.967 = 967 - Central Africa & offshore islands
-ones.968 = 968 - Southern Africa; Republic of South Africa
-ones.969 = 969 - South Indian Ocean islands
-ones.970 = 970 - History of North America
-ones.971 = 971 - Canada
-ones.972 = 972 - Middle America; Mexico
-ones.973 = 973 - United States
-ones.974 = 974 - Northeastern United States
-ones.975 = 975 - Southeastern United States
-ones.976 = 976 - South central United States
-ones.977 = 977 - North central United States
-ones.978 = 978 - Western United States
-ones.979 = 979 - Great Basin & Pacific Slope region
-ones.980 = 980 - History of South America
-ones.981 = 981 - Brazil
-ones.982 = 982 - Argentina
-ones.983 = 983 - Chile
-ones.984 = 984 - Bolivia
-ones.985 = 985 - Peru
-ones.986 = 986 - Colombia & Ecuador
-ones.987 = 987 - Venezuela
-ones.988 = 988 - Guiana
-ones.989 = 989 - Paraguay & Uruguay
-ones.990 = 990 - History of other areas
-ones.991 = 991 - [Unassigned]
-ones.992 = 992 - [Unassigned]
-ones.993 = 993 - New Zealand
-ones.994 = 994 - Australia
-ones.995 = 995 - Melanesia; New Guinea
-ones.996 = 996 - Other parts of Pacific; Polynesia
-ones.997 = 997 - Atlantic Ocean islands
-ones.998 = 998 - Arctic islands & Antarctica
-ones.999 = 999 - Extraterrestrial worlds
-ones = [Unassigned]
\ No newline at end of file
diff --git a/import/translation_maps/fincClassification.properties b/import/translation_maps/fincClassification.properties
deleted file mode 100644
index 74add618a1a9df4bb3437176bd1f639384b651a4..0000000000000000000000000000000000000000
--- a/import/translation_maps/fincClassification.properties
+++ /dev/null
@@ -1,360 +0,0 @@
-# RVK
-fincclass.pattern_0 = A[A-Z] [0-9]+.*=>Allgemeines
-fincclass.pattern_1 = B[A-Z] [0-9]+.*=>Theologie und Religionswissenschaft
-fincClass.pattern_2 = C[A-I] [0-9]+.*=>Philosophie
-fincClass.pattern_3 = C[L-Z] [0-9]+.*=>Psychologie
-fincClass.pattern_4 = D[A-Z] [0-9]+.*=>Pädagogik
-fincClass.pattern_5 = E[A-Z] [0-9]+.*=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäische Sprachen und Literaturen
-fincClass.pattern_6 = G[A-Z] [0-9]+.*=>Germanistik, Niederlandistik, Skandinavistik
-fincClass.pattern_7 = H[A-Z] [0-9]+.*=>Anglistik, Amerikanistik
-fincClass.pattern_8 = I[A-Z] [0-9]+.*=>Romanistik
-fincClass.pattern_9 = K[A-Z] [0-9]+.*=>Slawistik
-fincClass.pattern_10 = L[A-C] [0-9]+.*=>Ethnologie (Volks- und Völkerkunde)
-fincClass.pattern_11 = (LD [1-2][0-9]+)|(L[E-G] [0-9]+).*=>Klassische Archäologie
-fincClass.pattern_12 = (LD [3-7][0-9]+)|(L[H-O] [0-9]+).*=>Kunst und Kunstgeschichte
-fincClass.pattern_13 = (LD [8-9][0-9]+)|(L[P-Y] [0-9]+).*=>Musikwissenschaft
-fincClass.pattern_14 = M[A-L] [0-9]+.*=>Politologie
-fincClass.pattern_15 = M[N-W] [0-9]+.*=>Soziologie
-fincClass.pattern_16 = M[X-Z] [0-9]+.*=>Militärwissenschaft
-fincClass.pattern_17 = N[A-Z] [0-9]+.*=>Geschichte
-fincClass.pattern_18 = P[A-Z] [0-9]+.*=>Rechtswissenschaft
-fincClass.pattern_19 = Q[A-Z] [0-9]+.*=>Wirtschaftswissenschaften
-fincClass.pattern_20 = R[A-Z] [0-9]+.*=>Geographie
-fincClass.pattern_21 = S[A-P] [0-9]+.*=>Mathematik
-fincClass.pattern_22 = S[Q-U] [0-9]+.*=>Informatik
-fincClass.pattern_23 = T[A-D] [0-9]+.*=>Allgemeine Naturwissenschaft
-fincClass.pattern_24 = T[E-Z] [0-9]+.*=>Geologie und Paläontologie
-fincClass.pattern_25 = U[A-Z] [0-9]+.*=>Physik
-fincClass.pattern_26 = V[A-Z] [0-9]+.*=>Chemie und Pharmazie
-fincClass.pattern_27 = W[A-Z] [0-9]+.*=>Biologie
-fincClass.pattern_28 = (W[W-Z]|X[A-Z]|Y[A-V]) [0-9]+.*=>Medizin
-fincClass.pattern_29 = Z[A-E] [0-9]+.*=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-fincClass.pattern_30 = Z[G-S] [0-9]+.*=>Technik
-fincClass.pattern_31 = Z[X-Y] [0-9]+.*=>Sport
-fincClass.pattern_32 = (F[BCEHNOPQTX] [0-9]+)|(FF [1-2][0-9]+).*=>Klassische Philologie
-fincClass.pattern_33 = (FK [0-9]+)|(FF [5-6][0-9]+).*=>Byzantinistik
-fincClass.pattern_34 = F[RUY] [0-9]+.*=>Mittellateinische Philologie
-fincClass.pattern_35 = (F[GL] [0-9]+)|(FD [1-2][0-9]+).*=>Neugriechische Philologie
-fincClass.pattern_36 = F[SVZ] [0-9]+.*=>Neulateinische Philologie
-# DDC
-fincClass.pattern_37 = ^0[1-35-9][0-9]=>Allgemeines
-fincClass.pattern_38 = (^2[0-9]{2})|(^1[37][0-9])=>Theologie und Religionswissenschaften
-fincClass.pattern_39 = ^((1[0-46-9])|21)[0-9]=>Philosophie
-fincClass.pattern_40 = ^1[35][0-9]=>Psychologie
-fincClass.pattern_41 = ^37[0-9]=>Pädagogik
-fincClass.pattern_42 = ^(4[019][0-9])|(8[09][0-9])=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-fincClass.pattern_43 = ^(43[0-9])|(83[0-9])=>Germanistik, Niederlandistik, Skandinavistik
-fincClass.pattern_44 = ^(42[0-9])|(8[12][0-9])=>Anglistik, Amerikanistik
-fincClass.pattern_45 = ^(4[4-6][0-9])|(8[4-6][0-9])=>Romanistik
-fincClass.pattern_46 = ^39[0-9]=>Ethnologie (Volks- und Völkerkunde)
-fincClass.pattern_47 = ^93[0-9]=>Klassische Archäologie
-fincClass.pattern_48 = ^7[0234-7][0-9]=>Kunst und Kunstgeschichte
-fincClass.pattern_49 = ^78[0-9]=>Musikwissenschaft
-fincClass.pattern_50 = ^32[0-9]=>Politologie
-fincClass.pattern_51 = ^3[0-367][0-9]=>Soziologie
-fincClass.pattern_52 = ^35[0-9]=>Militärwissenschaft
-fincClass.pattern_53 = ^((9[012-9])|(1[89])|27)[0-9]=>Geschichte
-fincClass.pattern_54 = ^3[45][0-9]=>Rechtswissenschaft
-fincClass.pattern_55 = ^(3[38][0-9])|(65[0-9])=>Wirtschaftswissenschaften
-fincClass.pattern_56 = ^(91|55)[0-9]=>Geographie
-fincClass.pattern_57 = ^(51|16|31)[0-9]=>Mathematik
-fincClass.pattern_58 = ^(00|77)[0-9]=>Informatik
-fincClass.pattern_59 = ^50[0-9]=>Allgemeine Naturwissenschaft
-fincClass.pattern_60 = ^5[56][0-9]=>Geologie und Paläontologie
-fincClass.pattern_61 = ^5[23][0-9]=>Physik
-fincClass.pattern_62 = ^(54[0-9])|(66[0-9])=>Chemie und Pharmazie
-fincClass.pattern_63 = ^5[7-9][0-9]=>Biologie
-fincClass.pattern_64 = ^(61|57)[0-9]=>Medizin
-fincClass.pattern_65 = ^(6[34][0-9])|(7[134][0-9])=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-fincClass.pattern_66 = ^((6[0-789])|72)[0-9]=>Technik
-fincClass.pattern_67 = ^79[0-9]=>Sport
-fincClass.pattern_68 = ^((4[78])|8[78])[0-9]=>Klassische Philologie
-fincClass.pattern_69 = ^[48]8[0-9]=>Neugriechische Philologie
-fincClass.pattern_70 = ^[48]7[0-9]=>Neulateinische Philologie
-fincClass.pattern_71 = ^04[0-9]=>no subject assigned
-#BIC
-fincClass.pattern_72 = ((^[BGW]$)|(^((B[GJMT])|(G[BLMPT])|(WZ))([A-Z]|$)))=>Allgemeines
-fincClass.pattern_73 = ^HR([A-Z]|$)=>Theologie und Religionswissenschaften
-fincClass.pattern_74 = ^HP([A-Z]|$)=>Philosophie
-fincClass.pattern_75 = ^JM([A-Z]|$)=>Psychologie
-fincClass.pattern_76 = ((^E$)|(^((CJ)|(E[BLS])|(JN)|(YQ))([A-Z]|$)))=>Pädagogik
-fincClass.pattern_77 = ((^[CD]$)|(^((C[BF])|(D[CDNQS]))([A-Z]|$)))=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäische Sprachen und Literaturen
-fincClass.pattern_78 = ^E[BLS]([A-Z]|$)=>Anglistik, Amerikanistik
-fincClass.pattern_79 = ^HD([A-Z]|$)=>Klassische Archäologie
-fincClass.pattern_80 = ((^A$)|(^((A[BCFGJKMNPS])|(WF))([A-Z]|$)))=>Kunst und Kunstgeschichte
-fincClass.pattern_81 = (((^AS)|(^AV))([A-Z]|$))=>Musikwissenschaft
-fincClass.pattern_82 = ^JP([A-Z]|$)=>Politologie
-fincClass.pattern_83 = ((^J$)|(^J[FHK]([A-Z]|$)))=>Soziologie
-fincClass.pattern_84 = ^JW([A-Z]|$)=>Militärwissenschaft
-fincClass.pattern_85 = ((^H$)|(^(HB|WQ|BG)([A-Z]|$)))=>Geschichte
-fincClass.pattern_86 = ((^L$)|(^L[ABNR]([A-Z]|$)))=>Rechtswissenschaft
-fincClass.pattern_87 = ((^K$)|(^((K[CFJN])|AK|TR|UF)([A-Z]|$)))=>Wirtschaftswissenschaften
-fincClass.pattern_88 = ((^R$)|(^RG([A-Z]|$)))=>Geographie
-fincClass.pattern_89 = ^PB([A-Z]|$)=>Mathematik
-fincClass.pattern_90 = ((^U$)|(^((U[BDFGKLMNQRTY])|TJ)([A-Z]|$)))=>Informatik
-fincClass.pattern_91 = ((^P$)|(^PD([A-Z]|$)))=>Allgemeine Naturwissenschaft
-fincClass.pattern_92 = ^(RB|TH)([A-Z]|$)=>Geologie und Paläontologie
-fincClass.pattern_93 = ^P[GH]([A-Z]|$)=>Physik
-fincClass.pattern_94 = ^(PN|TD|TC)([A-Z]|$)=>Chemie und Pharmazie
-fincClass.pattern_95 = ^(MZ|PS|TC|RN)([A-Z]|$)=>Biologie
-fincClass.pattern_96 = ((^M$)|(^M[BFJMNQRX]([A-Z]|$)))=>Medizin
-fincClass.pattern_97 = ^(RP|TV|WB|WF|WK|WM)([A-Z]|$)=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-fincClass.pattern_98 = ((^T$)|(^(AM|RN|RP|TC|TD|TH|(T[BGJNQRT]))([A-Z]|$)))=>Technik
-fincClass.pattern_99 = ^WS([A-Z]|$)=>Sport
-fincClass.pattern_100 = ((^[FVY]$)|(^((F[ACFHJKLMPQRTVWXYZ])|(V[FSX])|(W[CDGHJNT])|(Y[BDFNRXZ]))([A-Z]|$)))=>no subject assigned
-
-#DDC
-#fincClass.pattern_37 = ^00[0-9]=>Informatik
-#fincClass.pattern_38 = ^01[0-9]=>Allgemeines
-#fincClass.pattern_39 = ^02[0-9]=>Allgemeines
-#fincClass.pattern_40 = ^03[0-9]=>Allgemeines
-#fincClass.pattern_41 = ^04[0-9]=>no subject assigned
-#fincClass.pattern_42 = ^05[0-9]=>Allgemeines
-#fincClass.pattern_43 = ^06[0-9]=>Allgemeines
-#fincClass.pattern_44 = ^07[0-9]=>Allgemeines
-#fincClass.pattern_45 = ^08[0-9]=>Allgemeines
-#fincClass.pattern_46 = ^09[0-9]=>Allgemeines
-#fincClass.pattern_47 = ^10[0-9]=>Philosophie
-#fincClass.pattern_48 = ^11[0-9]=>Philosophie
-#fincClass.pattern_49 = ^12[0-9]=>Philosophie
-#fincClass.pattern_50 = ^13[0-9]=>Philosophie
-#fincClass.pattern_51 = ^14[0-9]=>Philosophie
-#fincClass.pattern_52 = ^15[0-9]=>Psychologie
-#fincClass.pattern_53 = ^16[0-9]=>Philosophie
-#fincClass.pattern_54 = ^17[0-9]=>Philosophie
-#fincClass.pattern_55 = ^18[0-9]=>Philosophie
-#fincClass.pattern_56 = ^19[0-9]=>Philosophie
-#fincClass.pattern_57 = ^20[0-9]=>Theologie und Religionswissenschaften
-#fincClass.pattern_58 = ^21[0-9]=>Theologie und Religionswissenschaften
-#fincClass.pattern_59 = ^22[0-9]=>Theologie und Religionswissenschaften
-#fincClass.pattern_60 = ^23[0-9]=>Theologie und Religionswissenschaften
-#fincClass.pattern_61 = ^24[0-9]=>Theologie und Religionswissenschaften
-#fincClass.pattern_62 = ^25[0-9]=>Theologie und Religionswissenschaften
-#fincClass.pattern_63 = ^26[0-9]=>Theologie und Religionswissenschaften
-#fincClass.pattern_64 = ^27[0-9]=>Theologie und Religionswissenschaften
-#fincClass.pattern_65 = ^28[0-9]=>Theologie und Religionswissenschaften
-#fincClass.pattern_66 = ^29[0-9]=>Theologie und Religionswissenschaften
-#fincClass.pattern_67 = ^30[0-9]=>Soziologie
-#fincClass.pattern_68 = ^31[0-9]=>Soziologie
-#fincClass.pattern_69 = ^32[0-9]=>Politologie
-#fincClass.pattern_70 = ^33[0-9]=>Wirtschaftswissenschaften
-#fincClass.pattern_71 = ^34[0-9]=>Rechtswissenschaft
-#fincClass.pattern_72 = ^35[0-9]=>Militärwissenschaft
-#fincClass.pattern_73 = ^36[0-9]=>Soziologie
-#fincClass.pattern_74 = ^37[0-9]=>Pädagogik
-#fincClass.pattern_75 = ^38[0-9]=>Wirtschaftswissenschaften
-#fincClass.pattern_76 = ^39[0-9]=>Ethnologie (Volks- und Völkerkunde)
-#fincClass.pattern_77 = ^40[0-9]=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_78 = ^41[0-9]=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_79 = ^42[0-9]=>Anglistik, Amerikanistik
-#fincClass.pattern_80 = ^43[0-9]=>Germanistik, Niederlandistik, Skandinavistik
-#fincClass.pattern_81 = ^44[0-9]=>Romanistik
-#fincClass.pattern_82 = ^45[0-9]=>Romanistik
-#fincClass.pattern_83 = ^46[0-9]=>Romanistik
-#fincClass.pattern_84 = ^47[0-9]=>Klassische Philologie
-#fincClass.pattern_85 = ^48[0-9]=>Klassische Philologie
-#fincClass.pattern_86 = ^49[0-9]=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_87 = ^50[0-9]=>Allgemeine Naturwissenschaft
-#fincClass.pattern_88 = ^51[0-9]=>Mathematik
-#fincClass.pattern_89 = ^52[0-9]=>Physik
-#fincClass.pattern_90 = ^53[0-9]=>Physik
-#fincClass.pattern_91 = ^54[0-9]=>Chemie und Pharmazie
-#fincClass.pattern_92 = ^55[0-9]=>Geologie und Paläontologie
-#fincClass.pattern_93 = ^56[0-9]=>Geologie und Paläontologie
-#fincClass.pattern_94 = ^57[0-9]=>Biologie
-#fincClass.pattern_95 = ^58[0-9]=>Biologie
-#fincClass.pattern_96 = ^59[0-9]=>Biologie
-#fincClass.pattern_97 = ^60[0-9]=>Technik
-#fincClass.pattern_98 = ^61[0-9]=>Medizin
-#fincClass.pattern_99 = ^62[0-9]=>Technik
-#fincClass.pattern_100 = ^63[0-9]=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-#fincClass.pattern_101 = ^64[0-9]=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-#fincClass.pattern_102 = ^65[0-9]=>Wirtschaftswissenschaften
-#fincClass.pattern_103 = ^66[0-9]=>Chemie und Pharmazie
-#fincClass.pattern_104 = ^67[0-9]=>Technik
-#fincClass.pattern_105 = ^68[0-9]=>Technik
-#fincClass.pattern_106 = ^69[0-9]=>Technik
-#fincClass.pattern_107 = ^70[0-9]=>Kunst und Kunstgeschichte
-#fincClass.pattern_108 = ^71[0-9]=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-#fincClass.pattern_109 = ^72[0-9]=>Kunst und Kunstgeschichte
-#fincClass.pattern_110 = ^73[0-9]=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-#fincClass.pattern_111 = ^74[0-9]=>Kunst und Kunstgeschichte
-#fincClass.pattern_112 = ^75[0-9]=>Kunst und Kunstgeschichte
-#fincClass.pattern_113 = ^76[0-9]=>Kunst und Kunstgeschichte
-#fincClass.pattern_114 = ^77[0-9]=>Kunst und Kunstgeschichte
-#fincClass.pattern_115 = ^78[0-9]=>Musikwissenschaft
-#fincClass.pattern_116 = ^79[0-9]=>Sport
-#fincClass.pattern_117 = ^80[0-9]=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_118 = ^81[0-9]=>Anglistik, Amerikanistik
-#fincClass.pattern_119 = ^82[0-9]=>Anglistik, Amerikanistik
-#fincClass.pattern_120 = ^83[0-9]=>Germanistik, Niederlandistik, Skandinavistik
-#fincClass.pattern_121 = ^84[0-9]=>Romanistik
-#fincClass.pattern_122 = ^85[0-9]=>Romanistik
-#fincClass.pattern_123 = ^86[0-9]=>Romanistik
-#fincClass.pattern_124 = ^87[0-9]=>Neulateinische Philologie
-#fincClass.pattern_125 = ^88[0-9]=>Neugriechische Philologie
-#fincClass.pattern_126 = ^89[0-9]=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_127 = ^90[0-9]=>Geschichte
-#fincClass.pattern_128 = ^91[0-9]=>Geographie
-#fincClass.pattern_129 = ^92[0-9]=>Geschichte
-#fincClass.pattern_130 = ^93[0-9]=>Geschichte
-#fincClass.pattern_131 = ^94[0-9]=>Geschichte
-#fincClass.pattern_132 = ^95[0-9]=>Geschichte
-#fincClass.pattern_133 = ^96[0-9]=>Geschichte
-#fincClass.pattern_134 = ^97[0-9]=>Geschichte
-#fincClass.pattern_135 = ^98[0-9]=>Geschichte
-#fincClass.pattern_136 = ^99[0-9]=>Geschichte
-# BIC
-#fincClass.pattern_137 = ^A$=>Kunst und Kunstgeschichte
-#fincClass.pattern_138 = ^AB([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_139 = ^AC([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_140 = ^AF([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_141 = ^AG([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_142 = ^AJ([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_143 = ^AK([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_144 = ^AM([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_145 = ^AN([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_146 = ^AP([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_147 = ^AS([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_148 = ^AV([A-Z]|$)=>Musikwissenschaft
-#fincClass.pattern_149 = ^B$=>Allgemeines
-#fincClass.pattern_150 = ^BG([A-Z]|$)=>Allgemeines
-#fincClass.pattern_151 = ^BJ([A-Z]|$)=>Allgemeines
-#fincClass.pattern_152 = ^BM([A-Z]|$)=>Allgemeines
-#fincClass.pattern_153 = ^BT([A-Z]|$)=>Allgemeines
-#fincClass.pattern_154 = ^C$=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäische Sprachen und Literaturen
-#fincClass.pattern_155 = ^CB([A-Z]|$)=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_156 = ^CF([A-Z]|$)=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_157 = ^CJ([A-Z]|$)=>Pädagogik
-#fincClass.pattern_158 = ^D$=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäische Sprachen und Literaturen
-#fincClass.pattern_159 = ^DC([A-Z]|$)=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_160 = ^DD([A-Z]|$)=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_161 = ^DN([A-Z]|$)=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_162 = ^DQ([A-Z]|$)=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_163 = ^DS([A-Z]|$)=>Allgemeine und vergleichende Sprach- und Literaturwissenschaft, Indogermanistik, Außereuropäche Sprachen und Literaturen
-#fincClass.pattern_164 = ^E$=>Pädagogik
-#fincClass.pattern_165 = ^EB([A-Z]|$)=>Pädagogik
-#fincClass.pattern_166 = ^EL([A-Z]|$)=>Pädagogik
-#fincClass.pattern_167 = ^ES([A-Z]|$)=>Pädagogik
-#fincClass.pattern_168 = ^F$=>unassigned
-#fincClass.pattern_169 = ^FA([A-Z]|$)=>unassigned
-#fincClass.pattern_170 = ^FC([A-Z]|$)=>unassigned
-#fincClass.pattern_171 = ^FF([A-Z]|$)=>unassigned
-#fincClass.pattern_172 = ^FH([A-Z]|$)=>unassigned
-#fincClass.pattern_173 = ^FJ([A-Z]|$)=>unassigned
-#fincClass.pattern_174 = ^FK([A-Z]|$)=>unassigned
-#fincClass.pattern_175 = ^FL([A-Z]|$)=>unassigned
-#fincClass.pattern_176 = ^FM([A-Z]|$)=>unassigned
-#fincClass.pattern_177 = ^FP([A-Z]|$)=>unassigned
-#fincClass.pattern_178 = ^FQ([A-Z]|$)=>unassigned
-#fincClass.pattern_179 = ^FR([A-Z]|$)=>unassigned
-#fincClass.pattern_180 = ^FT([A-Z]|$)=>unassigned
-#fincClass.pattern_181 = ^FV([A-Z]|$)=>unassigned
-#fincClass.pattern_182 = ^FW([A-Z]|$)=>unassigned
-#fincClass.pattern_183 = ^FX([A-Z]|$)=>unassigned
-#fincClass.pattern_184 = ^FY([A-Z]|$)=>unassigned
-#fincClass.pattern_185 = ^FZ([A-Z]|$)=>unassigned
-#fincClass.pattern_186 = ^G$=>Allgemeines
-#fincClass.pattern_187 = ^GB([A-Z]|$)=>Allgemeines
-#fincClass.pattern_188 = ^GL([A-Z]|$)=>Allgemeines
-#fincClass.pattern_189 = ^GM([A-Z]|$)=>Allgemeines
-#fincClass.pattern_190 = ^GP([A-Z]|$)=>Allgemeines
-#fincClass.pattern_191 = ^GT([A-Z]|$)=>Allgemeines
-#fincClass.pattern_192 = ^H$=>Geschichte
-#fincClass.pattern_193 = ^HB([A-Z]|$)=>Geschichte
-#fincClass.pattern_194 = ^HD([A-Z]|$)=>Klassische Archäologie
-#fincClass.pattern_195 = ^HP([A-Z]|$)=>Philosophie
-#fincClass.pattern_196 = ^HR([A-Z]|$)=>Theologie und Religionswissenschaften
-#fincClass.pattern_197 = ^J$=>Soziologie
-#fincClass.pattern_198 = ^JF([A-Z]|$)=>Soziologie
-#fincClass.pattern_199 = ^JH([A-Z]|$)=>Soziologie
-#fincClass.pattern_200 = ^JK([A-Z]|$)=>Soziologie
-#fincClass.pattern_201 = ^JM([A-Z]|$)=>Psychologie
-#fincClass.pattern_202 = ^JN([A-Z]|$)=>Pädagogik
-#fincClass.pattern_203 = ^JP([A-Z]|$)=>Politologie
-#fincClass.pattern_204 = ^JW([A-Z]|$)=>Militärwissenschaft
-#fincClass.pattern_205 = ^K$=>Wirtschaftswissenschaften
-#fincClass.pattern_206 = ^KC([A-Z]|$)=>Wirtschaftswissenschaften
-#fincClass.pattern_207 = ^KF([A-Z]|$)=>Wirtschaftswissenschaften
-#fincClass.pattern_208 = ^KJ([A-Z]|$)=>Wirtschaftswissenschaften
-#fincClass.pattern_209 = ^KN([A-Z]|$)=>Wirtschaftswissenschaften
-#fincClass.pattern_210 = ^L$=>Rechtswissenschaft
-#fincClass.pattern_211 = ^LA([A-Z]|$)=>Rechtswissenschaft
-#fincClass.pattern_212 = ^LB([A-Z]|$)=>Rechtswissenschaft
-#fincClass.pattern_213 = ^LN([A-Z]|$)=>Rechtswissenschaft
-#fincClass.pattern_214 = ^LR([A-Z]|$)=>Rechtswissenschaft
-#fincClass.pattern_215 = ^M$=>Medizin
-#fincClass.pattern_216 = ^MB([A-Z]|$)=>Medizin
-#fincClass.pattern_217 = ^MF([A-Z]|$)=>Medizin
-#fincClass.pattern_218 = ^MJ([A-Z]|$)=>Medizin
-#fincClass.pattern_219 = ^MM([A-Z]|$)=>Medizin
-#fincClass.pattern_220 = ^MN([A-Z]|$)=>Medizin
-#fincClass.pattern_221 = ^MQ([A-Z]|$)=>Medizin
-#fincClass.pattern_222 = ^MR([A-Z]|$)=>Medizin
-#fincClass.pattern_223 = ^MX([A-Z]|$)=>Medizin
-#fincClass.pattern_224 = ^MZ([A-Z]|$)=>Biologie
-#fincClass.pattern_225 = ^P$=>Allgemeine Naturwissenschaft
-#fincClass.pattern_226 = ^PB([A-Z]|$)=>Mathematik
-#fincClass.pattern_227 = ^PD([A-Z]|$)=>Allgemeine Naturwissenschaft
-#fincClass.pattern_228 = ^PG([A-Z]|$)=>Physik
-#fincClass.pattern_229 = ^PH([A-Z]|$)=>Physik
-#fincClass.pattern_230 = ^PN([A-Z]|$)=>Chemie und Pharmazie
-#fincClass.pattern_231 = ^PS([A-Z]|$)=>Biologie
-#fincClass.pattern_232 = ^R$=>Geographie
-#fincClass.pattern_233 = ^RB([A-Z]|$)=>Geologie und Paläontologie
-#fincClass.pattern_234 = ^RG([A-Z]|$)=>Geographie
-#fincClass.pattern_235 = ^RN([A-Z]|$)=>Technik
-#fincClass.pattern_236 = ^RP([A-Z]|$)=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-#fincClass.pattern_237 = ^T$=>Technik
-#fincClass.pattern_238 = ^TB([A-Z]|$)=>Technik
-#fincClass.pattern_239 = ^TC([A-Z]|$)=>Biologie
-#fincClass.pattern_240 = ^TD([A-Z]|$)=>Chemie und Pharmazie
-#fincClass.pattern_241 = ^TG([A-Z]|$)=>Technik
-#fincClass.pattern_242 = ^TH([A-Z]|$)=>Geologie und Paläontologie
-#fincClass.pattern_243 = ^TJ([A-Z]|$)=>Technik
-#fincClass.pattern_244 = ^TN([A-Z]|$)=>Technik
-#fincClass.pattern_245 = ^TQ([A-Z]|$)=>Technik
-#fincClass.pattern_246 = ^TR([A-Z]|$)=>Technik
-#fincClass.pattern_247 = ^TT([A-Z]|$)=>Technik
-#fincClass.pattern_248 = ^TV([A-Z]|$)=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-#fincClass.pattern_249 = ^U$=>Informatik
-#fincClass.pattern_250 = ^UB([A-Z]|$)=>Informatik
-#fincClass.pattern_251 = ^UD([A-Z]|$)=>Informatik
-#fincClass.pattern_252 = ^UF([A-Z]|$)=>Informatik
-#fincClass.pattern_253 = ^UG([A-Z]|$)=>Informatik
-#fincClass.pattern_254 = ^UK([A-Z]|$)=>Informatik
-#fincClass.pattern_255 = ^UL([A-Z]|$)=>Informatik
-#fincClass.pattern_256 = ^UM([A-Z]|$)=>Informatik
-#fincClass.pattern_257 = ^UN([A-Z]|$)=>Informatik
-#fincClass.pattern_258 = ^UQ([A-Z]|$)=>Informatik
-#fincClass.pattern_259 = ^UR([A-Z]|$)=>Informatik
-#fincClass.pattern_260 = ^UT([A-Z]|$)=>Informatik
-#fincClass.pattern_261 = ^UY([A-Z]|$)=>Informatik
-#fincClass.pattern_262 = ^V$=>unassigned
-#fincClass.pattern_263 = ^VF([A-Z]|$)=>unassigned
-#fincClass.pattern_264 = ^VS([A-Z]|$)=>unassigned
-#fincClass.pattern_265 = ^VX([A-Z]|$)=>unassigned
-#fincClass.pattern_266 = ^W$=>Allgemeines
-#fincClass.pattern_267 = ^WB([A-Z]|$)=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-#fincClass.pattern_268 = ^WC([A-Z]|$)=>unassigned
-#fincClass.pattern_269 = ^WD([A-Z]|$)=>unassigned
-#fincClass.pattern_270 = ^WF([A-Z]|$)=>Kunst und Kunstgeschichte
-#fincClass.pattern_271 = ^WG([A-Z]|$)=>unassigned
-#fincClass.pattern_272 = ^WH([A-Z]|$)=>unassigned
-#fincClass.pattern_273 = ^WJ([A-Z]|$)=>unassigned
-#fincClass.pattern_274 = ^WK([A-Z]|$)=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-#fincClass.pattern_275 = ^WM([A-Z]|$)=>Land- und Forstwirtschaft, Gartenbau, Fischereiwirtschaft, Hauswirtschaft
-#fincClass.pattern_276 = ^WN([A-Z]|$)=>unassigned
-#fincClass.pattern_277 = ^WQ([A-Z]|$)=>Geschichte
-#fincClass.pattern_278 = ^WS([A-Z]|$)=>Sport
-#fincClass.pattern_279 = ^WT([A-Z]|$)=>unassigned
-#fincClass.pattern_280 = ^WZ([A-Z]|$)=>Allgemeines
-#fincClass.pattern_281 = ^Y$=>unassigned
-#fincClass.pattern_282 = ^YB([A-Z]|$)=>unassigned
-#fincClass.pattern_283 = ^YD([A-Z]|$)=>unassigned
-#fincClass.pattern_284 = ^YF([A-Z]|$)=>unassigned
-#fincClass.pattern_285 = ^YN([A-Z]|$)=>unassigned
-#fincClass.pattern_286 = ^YQ([A-Z]|$)=>Pädagogik
-#fincClass.pattern_287 = ^YR([A-Z]|$)=>unassigned
-#fincClass.pattern_288 = ^YX([A-Z]|$)=>unassigned
-#fincClass.pattern_289 = ^YZ([A-Z]|$)=>unassigned
\ No newline at end of file
diff --git a/import/translation_maps/format_map.properties b/import/translation_maps/format_map.properties
deleted file mode 100644
index 48cd864c98e60e1b19b02c3bc6cfc286b9e02572..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map.properties
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-Atlas               = Map
-Book                = Book
-BookComponentPart   = Book Chapter
-Braille             = Braille
-BRDisc              = Blu-ray Disc
-CDROM               = Software
-Chart               = Photo
-ChipCartridge       = Software
-Collage             = Photo
-DiscCartridge       = Software
-Drawing             = Photo
-eBook               = eBook
-Electronic          = Electronic
-Filmstrip           = Video
-FlashCard           = Photo
-FloppyDisk          = Software
-Globe               = Globe
-Journal             = Journal
-Kit                 = Kit
-Manuscript          = Manuscript
-Map                 = Map
-Microfilm           = Microfilm
-MotionPicture       = Video
-MusicalScore        = Musical Score
-MusicalScore        = Musical Score
-MusicRecording      = Audio
-Newspaper           = Newspaper
-Painting            = Photo
-Photonegative       = Photo
-Photo               = Photo
-PhysicalObject      = Physical Object
-Print               = Photo
-SensorImage         = Sensor Image
-SerialComponentPart = Article
-Serial              = Serial
-Slide               = Slide
-Software            = Software
-SoundCassette       = Cassette
-SoundDisc           = CD
-SoundRecording      = Audio
-TapeCartridge       = Software
-TapeCassette        = Software
-TapeReel            = Software
-Transparency        = Slide
-Unknown             = Unknown
-VideoCartridge      = Video
-VideoCassette       = VHS
-VideoDisc           = DVD
-VideoReel           = Video
-Video               = Video
diff --git a/import/translation_maps/format_map_de105.properties b/import/translation_maps/format_map_de105.properties
deleted file mode 100644
index c0f3be614f5bdcf60a44a1861a5eb59f8f5b0786..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map_de105.properties
+++ /dev/null
@@ -1,330 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Formate der UB Freiberg, aus LIB_GMD_DESC
-
-#Folgende Gruppierung für Facetten (Basis siehe weiter unten):
-
-de105.pattern_0 = ^AT$=>Book
-de105.pattern_1 = ^B$=>Book
-de105.pattern_2 = ^CD$=>Multimedia
-de105.pattern_3 = ^CDB$=>Book
-de105.pattern_4 = ^CD[ST]$=>Multimedia
-de105.pattern_5 = ^CDD$=>Database
-de105.pattern_6 = ^CDK$=>Map
-de105.pattern_7 = Z$=>Journal
-de105.pattern_8 = ZR=>Book
-de105.pattern_9 = ^D$=>Book
-de105.pattern_10 = ^DA$=>Book
-de105.pattern_11 = ^DA$=>Thesis
-de105.pattern_12 = ^DB$=>Database
-de105.pattern_13 = ^DIA$=>Image / Photo
-de105.pattern_14 = ^DISK$=>Multimedia
-de105.pattern_15 = ^DVD$=>Multimedia
-de105.pattern_16 = ^DVDB$=>Book
-de105.pattern_17 = ^DVDD$=>Database
-de105.pattern_18 = ^DVDK$=>Map
-de105.pattern_19 = ^DVD[RSV]=>Multimedia
-de105.pattern_20 = ^E=>Ebook
-de105.pattern_21 = ^EBOOK$=>Electronic Resource
-de105.pattern_22 = ^EBOOK$=>Book
-de105.pattern_23 = HS=>Thesis
-de105.pattern_24 = ^EHS$=>Book
-de105.pattern_25 = FI$|MF|FIHS=>Microform
-de105.pattern_26 = ^FI[HL]=>Book
-de105.pattern_27 = ^FIL=>Ebook
-de105.pattern_28 = ^FILE$=>Thesis
-de105.pattern_29 = ^FILE$=>Electronic Resource
-de105.pattern_30 = ^HS=>Book
-de105.pattern_31 = ^H$=>Manuscript
-de105.pattern_32 = ^K$=>Image / Photo
-de105.pattern_33 = ^KT$=>Map
-de105.pattern_34 = ^KTA$=>Book
-de105.pattern_35 = ^L[BO]=>Book
-de105.pattern_36 = [OBR]E$=>Ebook
-de105.pattern_37 = ^LOE$=>Book
-de105.pattern_38 = ^M[BD]=>Book
-de105.pattern_39 = ^MBE$=>Electronic Resource
-de105.pattern_40 = ^MD$=>Multimedia
-de105.pattern_41 = ^S[CK]=>Multimedia
-de105.pattern_42 = ^VK$=>Multimedia
-de105.pattern_43 = ^ZRE$=>Electronic Resource
-de105.pattern_44 = ^Z[ST]=>Journal
-de105.pattern_45 = ^Z[ST]E$=>Electronic Resource
-de105.pattern_46 = ^UR$=>Deed
-de105.pattern_47 = ^OV$=>Multimedia
-de105.pattern_48 = ^OV$=>Lecture Recording
-de105.pattern_49 = ^A$=>Contained Article
-de105.pattern_50 = ^CDDA$=>Thesis
-de105.pattern_51 = ^CDDA$=>Book
-de105.pattern_52 = ^BEIL$=>Book
-de105.pattern_53 = ^BL$=>Book
-de105.pattern_54 = ^IPAD$=>iPad / Multimedia
-de105.pattern_55 = ^APP$=>iPad / Multimedia
-de105.pattern_56 = ^DVDDA$=>Thesis
-de105.pattern_57 = ^DVDDA$=>Book
-
-de105.pattern_58 = QucosaArticles=>QucosaArticles
-de105.pattern_59 = QucosaThesis=>Thesis
-de105.pattern_60 = QucosaConferenceproceeding=>QucosaConferenceproceeding
-de105.pattern_61 = QucosaScore=>QucosaScore
-de105.pattern_62 = QucosaElectronicResource=>QucosaElectronicResource
-de105.pattern_63 = QucosaEBOOK=>QucosaEBOOK
-
-de105.pattern_64 = Map=>Map
-
-###########################
-# old:
-#de105.pattern_0 = ^B$=>Book
-#de105.pattern_1 = ^CDB$=>Book
-#de105.pattern_2 = CD=>Multimedia
-#de105.pattern_3 = ^H$=>Book
-#de105.pattern_4 = ^H$=>Manuscript
-#de105.pattern_5 = ^LB$=>Book
-#de105.pattern_6 = ^LO=>Book
-#de105.pattern_7 = ^M[BD]$=>Book
-#de105.pattern_8 = ^BEIL$=>Book
-#de105.pattern_9 = ^AT$=>Book
-#de105.pattern_10 = ^BL$=>Book
-#de105.pattern_11 = ^CDZ=>Journal / Serial
-#de105.pattern_12 = ^Z=>Journal / Serial
-#de105.pattern_13 = ^FI$=>Microform
-#de105.pattern_14 = ^MF$=>Microform
-#de105.pattern_15 = HS=>Thesis
-#de105.pattern_16 = ^DA$=>Thesis
-#de105.pattern_17 = ^CDK$=>Map
-#de105.pattern_18 = ^KT=>Map
-#de105.pattern_19 = ^DIA$=>Multimedia
-#de105.pattern_20 = SK$=>Multimedia
-#de105.pattern_21 = ^VK$=>Multimedia
-#de105.pattern_22 = DVD=>Multimedia
-#de105.pattern_23 = ^SCH$=>Multimedia
-#de105.pattern_24 = ^DB$=>Online Resource
-#de105.pattern_25 = ^MBE$=>Online Resource
-#de105.pattern_26 = ^FILE$=>Online Resource
-#de105.pattern_27 = ^Z[RST]E$=>Online Resource
-#de105.pattern_28 = ^BDIS$=>Multimedia
-#de105.pattern_29 = ^EBOOK$=>E-Book
-#de105.pattern_30 = ^MBE$=>E-Book
-#de105.pattern_31 = ^EBOOK$=>Online Resource
-#de105.pattern_32 = ^D$=>Book
-#de105.pattern_33 = ^NL$=>Book
-#de105.pattern_34 = ^K$=>Map
-#de105.pattern_35 = ^SP$=>Map
-#de105.pattern_36 = ^UR$=>Deed
-#de105.pattern_37 = ^FILE$=>Thesis
-
-########################################
-# Veränderung laut Ticket #1348
-
-#neue Format-Facette:
-#Datenbanken - darunter gruppiert: CDD, DB
-#Bild / Foto - darunter gruppiert: DIA, K
-
-#Codes ohne Erklärung bleiben unverändert so wie bisher
-#entfällt bald -> erstmal noch im Mapping belassen
-#die auflistung hier ist maßgebend: wenn bei der vorherigen Liste z.B. KTA in die Format-Facette Karte ging, geht sie jetzt nur noch in BUch
-
-#Format-Codes à la DVDK etc. gibts bei uns in Libero noch nicht. da stricken wir gerade rum. die werden dann - solange es auch noch  keine #Titel findet, nicht befüllt, richtig!?
-
-############
-#AT -> entfällt bald
-#B 
-#CD -> entfällt bald, geht auf in CD-SPezifika
-#CDB 
-#CDD -> Facette Datenbanken
-#CDK -> Facette Karte
-#CDS -> Facette Multimedia
-#CDT -> Facette Multimedia
-#CDZ -> Facette Zeitschrift
-#CDZR -> Facette Buch
-#D -> Facette Buch
-#DA -> Facette Buch, Hoschulschrift
-#DB -> Facette Datenbanken
-#DIA -> Facette Bild / Foto
-#DISK -> Facette Multimedia
-#DVD -> entfällt bald, geht auf in DVD-Spezifika
-#DVDA -> bitte löschen
-#DVDB -> neu, Facette Buch
-#DVDD -> neu, Facette Datenbanken
-#DVDK -> neu, Facette Karte
-#DVDROM -> entfällt bald, geht auf in DVD-Spezifika
-#DVDV -> Facette Multimedia
-#DVDZ -> Facette Zeitschrift
-#EBOOK -> Facette Ebook, Online-Ressource, Buch
-#EHS -> Facette Ebook, Hochschulschrift, Buch
-#FI
-#MF
-#FIHS -> Facette Hochschulschrift, Mikroform, Buch, Ebook
-#FILE -> Facette Hochschulschrift, Online-Ressource, Buch, Ebook
-#H
-#HS -> Facette Hochschulschrift, Buch
-#K -> Facette Bild / Foto
-#KT
-#KTA -> Facette Buch
-#LB
-#LO
-#LOE -> Facette Buch, Ebook
-#MB
-#MBE -> Facette Ebook, Online-Ressource, Buch
-#MD -> Facette Buch, Multimedia
-#SCH
-#SK
-#SP -> Facette _blank>nicht zugeordnet
-#VK
-#ZR -> Facette Buch
-#ZRE -> Facette Buch, Ebook, Online-Ressource
-#ZS -> Facette Zeitschrift
-#ZSE -> Facette Zeitschrift, Online-Ressource
-#ZT -> Facette Zeitschrift
-#ZTE -> Facette Zeitschrift, Online-Ressource
-#UR
-
-########################################
-# Veränderung laut Ticket #1083
-# FILE auch zusätzlich "Hochschulschrift"
-
-########################################
-# Veränderung laut Ticket #946
-
-#"Digitale Medien" soll weg.
-
-#"Online-Ressourcen"
-#FILE
-#ZRE
-#ZSE
-#ZTE
-#MBE
-#DB
-#EBOOK
-    
-#"Multimedia"
-#CDB
-#CDD
-#CDK
-#CDS
-#CDZ
-#CDZR
-#DISK
-#BCD
-#BDIS
-#BSK
-#BCDTU
-#DVDROM
-#DVDZ
-
-#"E-Book"
-#EBOOK
-#MBE
-
-####################################################
-
-#Facette: Buch
-#B
-#CDB
-#H
-#LB
-#LO
-#LOE
-#MB
-#MD
-#BEIL
-#AT
-#BL
-
-#Facette: Zeitschrift / Reihe
-#CDZ
-#CDZR
-#ZR
-#ZRE
-#ZS
-#ZSE
-#ZT
-#ZTE
-
-#Facette: Mikroform
-#FI
-#MF
-
-#Facette: Hochschulschrift
-#EHS
-#HS
-#FIHS
-#DA
-
-#Facette: Karte
-#CDK
-#KT
-
-#Facette: Multimedia
-#DIA
-#SK
-#VK
-#BDVD
-#DVD
-#SCH
-#DVDA
-#DVDV
-#CDT
-#CD
-
-#Facette: Manuskript
-#H
-
-##################################################
-#AT	    = Arbeitstransparent
-#B           = Monographie
-#BCD         = CD-ROM als Beilage
-#BCDTU       = CD-ROM als Beilage (nur für Angehörige der TUBAF)
-#BDIS        = Diskette als Beilage
-#BDVD        = DVD als Beilage
-#BEIL        = Beilage
-#BL          = Booklet
-#BSK         = Kassette als Beilage
-#CD          = CD-ROM
-#CDB         = Monographie auf CD-ROM
-#CDD         = Datenbank auf CD-ROM
-#CDK         = Karte auf CD-ROM
-#CDS         = Sprachkurs auf CD-ROM
-#CDT         = Tonträger auf CD-ROM
-#CDZ         = Zeitschrift auf CD-ROM
-#CDZR        = Zeitschr.artige Reihe auf CD-R
-#D           = Sonderdruck
-#DA          = Abschlussarbeit
-#DB          = Datenbanken im Netz
-#DIA         = Kleinbilddia
-#DISK        = Diskette
-#DVD         = DVD
-#DVDA        = Tonträger auf DVD
-#DVDROM      = Daten auf DVD-ROM
-#DVDV        = Bildmaterial auf DVD
-#DVDZ        = DVD für Fortsetzungen
-#EBOOK       = E-Book
-#EHS         = Hochschulschrift in elektron. Form
-#FEHL        = Datenübernahme
-#FI          = Mikrofiche
-#FIHS        = Hochschulschrift auf Mikrofiche
-#FILE        = Online-Ressource
-#H           = Handschrift
-#HS          = Hochschulschrift
-#K           = Kalender
-#KT          = Karte
-#KTA         = Einblattmaterial
-#LB          = Lehrbrief
-#LO          = Loseblattausgabe
-#LOE         = Loseblattausgabe elektronisch
-#MB          = Mehrbändiges Werk
-#MBE         = Mehrbändiges Werk elektronisch
-#MD          = Medienkombination
-#MF          = Mikrofilm
-#NL          = Nachlaß
-#SCH         = Schallplatte
-#SK          = Sprachkurs auf Kassette
-#SP          = Spiel
-#VK          = Videokassette
-#ZR          = Zeitschriftenartige Reihe
-#ZRE         = Elektron. Form Zeitschriftenartige Reihe
-#ZS          = Zeitschrift
-#ZSE         = Elektronische Zeitschrift
-#ZT          = Zeitung
-#ZTE         = Elektronische Zeitung
diff --git a/import/translation_maps/format_map_de15.properties b/import/translation_maps/format_map_de15.properties
deleted file mode 100644
index 099b0c212e242903c9becaef97faafd1b82bded8..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map_de15.properties
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-Book                               = Book, E-Book
-eBook                              = Book, E-Book
-ElectronicJournal                  = Journal, E-Journal
-ElectronicSerial                   = Journal, E-Journal
-Journal                            = Journal, E-Journal
-Serial                             = Journal, E-Journal
-ElectronicNewspaper                = Journal, E-Journal
-Newspaper                          = Journal, E-Journal
-Article                            = Article, E-Article
-ElectronicArticle                  = Article, E-Article
-ElectronicThesis                   = Thesis
-Thesis                             = Thesis
-Atlas                              = Map
-Globe                              = Map
-Map                                = Map
-AudioTape                          = Audio
-CD                                 = Audio
-DVDAudio                           = Audio
-MusicRecording                     = Audio
-Record                             = Audio
-SoundRecordingMedium               = Audio
-SoundCassette                      = Audio
-SoundDisc                          = Audio
-SoundRecording                     = Audio
-AudioVisualMedia                   = Video
-BluRayDisc                         = Video
-DVDVideo                           = Video
-Filmstrip                          = Video
-MotionPicture                      = Video
-Video                              = Video
-VideoTape                          = Video
-VideoCartridge                     = Video
-VideoCassette                      = Video
-VideoDisc                          = Video
-VideoReel                          = Video
-ArtPrint                           = Visual Media
-Chart                              = Visual Media
-Collage                            = Visual Media
-Drawing                            = Visual Media
-FlashCard                          = Visual Media
-Painting                           = Visual Media
-Photo                              = Visual Media
-Photonegative                      = Visual Media
-Placard                            = Visual Media
-Print                              = Visual Media
-SensorImage                        = Visual Media
-Slide                              = Visual Media
-Transparency                       = Visual Media
-CDROM                              = Software
-ChipCartridge                      = Software
-DiscCartridge                      = Software
-DVDROM                             = Software
-FloppyDisk                         = Software
-Software                           = Software
-TapeCartridge                      = Software
-TapeCassette                       = Software
-TapeReel                           = Software
-Microfiche                         = Microform
-Microfilm                          = Microform
-Microform                          = Microform
-MusicalScore                       = Musical Score
-NotatedMusic                       = Musical Score
-ElectronicMusicalScore             = Musical Score
-Braille                            = Braille
-Kit                                = Kit
-Manuscript                         = Manuscript
-Nachlass                           = Nachlass
-PhysicalObject                     = Physical Object
-Unknown                            = Unknown Format
-Electronic                         = Website
-ElectronicResourceDataCarrier      = Electronic Resource (Data Carrier)
-ElectronicResourceRemoteAccess     = Electronic Resource (Remote Access)
diff --git a/import/translation_maps/format_map_de520.properties b/import/translation_maps/format_map_de520.properties
deleted file mode 100644
index 6e41b1c52a82de349f2d67bd7dbc5d92156ee45e..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map_de520.properties
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Formate der HTW Dresden, aus LIB_GMD_DESC
-
-B    = Book
-MK   = Book
-LMK  = Book
-MT   = Book
-LBS  = Book
-N    = Book
-HS   = Book
-KT   = Map
-LF   = Loose leaf edition
-ZS   = Journal/Newspaper print
-ZT   = Journal/Newspaper print
-CDZ  = Journal on data carrier
-CD   = Audio
-CDS  = Audio
-DVDA = Audio
-SK   = Audio
-DVDV = Video
-VKA  = Video
-CDB  = eBook on data carrier
-CDMT = eBook on data carrier
-DVDR = eBook on data carrier
-CDD  = eBook on data carrier
-FI   = eBook on data carrier
-EB   = eBook online
-DB   = Database online
-ZSE  = Journal online
-ZTE  = Journal online
-MB   = Multi volume set
-SE   = Multi volume set
-ZR   = Multi volume set
-ZRE  = Multi volume set
-CDZR = Multi volume set
-Aufsatz = Article online
-
-# Medientypen in deutscher Sprache:
-#B    = Buch
-#MK   = Buch
-#LMK  = Buch
-#MT   = Buch
-#LBS  = Buch
-#N    = Buch
-#HS   = Buch
-#KT   = Karte
-#LF   = Loseblattausgabe
-#ZS   = Zeitschrift/Zeitung Print
-#ZT   = Zeitschrift/Zeitung Print
-#CDZ  = Zeitschrift auf Datenträger
-#CD   = Audio
-#CDS  = Audio
-#DVDA = Audio
-#SK   = Audio
-#DVDV = Video
-#VKA  = Video
-#CDB  = eBook auf Datenträger
-#CDMT = eBook auf Datenträger
-#DVDR = eBook auf Datenträger
-#CDD  = eBook auf Datenträger
-#FI   = eBook auf Datenträger
-#EB   = eBook online
-#DB   = Datenbank online
-#ZSE  = Zeitschrift online
-#ZTE  = Zeitschrift online
-#MB   = Gesamttitel
-#SE   = Gesamttitel
-#ZR   = Gesamttitel
-#ZRE  = Gesamttitel
-#CDZR = Gesamttitel
-#Aufsatz = Aufsatz online
\ No newline at end of file
diff --git a/import/translation_maps/format_map_de540.properties b/import/translation_maps/format_map_de540.properties
deleted file mode 100644
index 147375826f7766eeb40d2774b36de8de8033dab2..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map_de540.properties
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-Book                               = Book, E-Book
-eBook                              = Book, E-Book
-ElectronicJournal                  = Journal, E-Journal
-ElectronicSerial                   = Journal, E-Journal
-Journal                            = Journal, E-Journal
-Serial                             = Journal, E-Journal
-ElectronicNewspaper                = Newspaper, E-Paper
-Newspaper                          = Newspaper, E-Paper
-Article                            = Article, E-Article
-ElectronicArticle                  = Article, E-Article
-ElectronicThesis                   = Thesis
-Thesis                             = Thesis
-Atlas                              = Map
-Globe                              = Map
-Map                                = Map
-AudioTape                          = Audio
-CD                                 = Audio
-DVDAudio                           = Audio
-MusicRecording                     = Audio
-Record                             = Audio
-SoundRecordingMedium               = Audio
-SoundCassette                      = Audio
-SoundDisc                          = Audio
-SoundRecording                     = Audio
-AudioVisualMedia                   = Video
-BluRayDisc                         = Video
-DVDVideo                           = Video
-Filmstrip                          = Video
-MotionPicture                      = Video
-Video                              = Video
-VideoTape                          = Video
-VideoCartridge                     = Video
-VideoCassette                      = Video
-VideoDisc                          = Video
-VideoReel                          = Video
-ArtPrint                           = Visual Media
-Chart                              = Visual Media
-Collage                            = Visual Media
-Drawing                            = Visual Media
-FlashCard                          = Visual Media
-Painting                           = Visual Media
-Photo                              = Visual Media
-Photonegative                      = Visual Media
-Placard                            = Visual Media
-Print                              = Visual Media
-SensorImage                        = Visual Media
-Slide                              = Visual Media
-Transparency                       = Visual Media
-CDROM                              = Software
-ChipCartridge                      = Software
-DiscCartridge                      = Software
-DVDROM                             = Software
-FloppyDisk                         = Software
-Software                           = Software
-TapeCartridge                      = Software
-TapeCassette                       = Software
-TapeReel                           = Software
-Microfiche                         = Microform
-Microfilm                          = Microform
-Microform                          = Microform
-MusicalScore                       = Musical Score
-NotatedMusic                       = Musical Score
-ElectronicMusicalScore             = Musical Score
-Braille                            = Braille
-Kit                                = Kit
-Manuscript                         = Manuscript
-Nachlass                           = Nachlass
-PhysicalObject                     = Physical Object
-Unknown                            = Unknown Format
-Electronic                         = Website
-ElectronicResourceDataCarrier      = Electronic Resource (Data Carrier)
-ElectronicResourceRemoteAccess     = Electronic Resource (Remote Access)
diff --git a/import/translation_maps/format_map_dech1.properties b/import/translation_maps/format_map_dech1.properties
deleted file mode 100644
index 9f7970d5bb07197d9fd33772ef18b863681084cc..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map_dech1.properties
+++ /dev/null
@@ -1,120 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-
-# Libero-Formate der UB Chemnitz, aus LIB_GMD_DESC, gruppiert und als pattern-based
-# translation map, um Mehrfachzuordnungen zu realisieren
-
-dech1.pattern_0 = Z=>Zeitschrift / Reihe
-dech1.pattern_1 = ^RE$=>Zeitschrift / Reihe
-dech1.pattern_2 = [AK]T=>Karte / Bild
-dech1.pattern_3 = ^D$=>Karte / Bild
-dech1.pattern_4 = ^DA$=>Karte / Bild
-dech1.pattern_5 = ^DIA$=>Karte / Bild
-dech1.pattern_6 = ^B$=>Buch
-dech1.pattern_7 = ^DISS$=>Buch
-dech1.pattern_8 = ^LO$=>Buch
-dech1.pattern_9 = ^MB$=>Buch
-dech1.pattern_10 = ^MKO$=>Buch
-dech1.pattern_11 = ^R$=>Buch
-dech1.pattern_12 = ^CD$=>Multimedia
-dech1.pattern_13 = ^DV=>Multimedia
-dech1.pattern_14 = ^KA$=>Multimedia
-dech1.pattern_15 = ^MK=>Multimedia
-dech1.pattern_16 = ^SLP$=>Multimedia
-dech1.pattern_17 = ^SP=>Multimedia
-dech1.pattern_18 = ^V$=>Multimedia
-dech1.pattern_19 = ^CD[BDEKN]=>Elektronische Ressource
-dech1.pattern_20 = ^CDZ[ENR]=>Elektronische Ressource
-dech1.pattern_21 = ^DB$=>Elektronische Ressource
-dech1.pattern_22 = ^DBV$=>Elektronische Ressource
-dech1.pattern_23 = ^DCD$=>Elektronische Ressource
-dech1.pattern_24 = ^DISK$=>Elektronische Ressource
-dech1.pattern_25 = ^DO$=>Elektronische Ressource
-dech1.pattern_26 = ^DVD[EN]=>Elektronische Ressource
-dech1.pattern_27 = ^EBOOK$=>Elektronische Ressource
-dech1.pattern_28 = ^EHS$=>Elektronische Ressource
-dech1.pattern_29 = ^FILE$=>Elektronische Ressource
-dech1.pattern_30 = ^SPR$=>Elektronische Ressource
-dech1.pattern_31 = ^ZE=>Elektronische Ressource
-dech1.pattern_32 = ^DA$=>Hochschulschrift
-dech1.pattern_33 = ^DCD$=>Hochschulschrift
-dech1.pattern_34 = ^DISS$=>Hochschulschrift
-dech1.pattern_35 = ^DMF$=>Hochschulschrift
-dech1.pattern_36 = ^DO$=>Hochschulschrift
-dech1.pattern_37 = HS$=>Hochschulschrift
-dech1.pattern_38 = MF$=>Mikroform
-dech1.pattern_39 = ^ZM=>Mikroform
-dech1.pattern_40 = ^KA$=>Noten
-dech1.pattern_41 = ^NOT$=>Noten
-
-# Libero-Formate der UB Chemnitz, aus LIB_GMD_DESC, gruppiert, Stand 15.05.2012
-
-# AT          = Karte / Bild
-# B           = Buch
-# CD          = Multimedia
-# CDB         = Elektronische Ressource
-# CDD         = Elektronische Ressource
-# CDE         = Elektronische Ressource
-# CDK         = Elektronische Ressource
-# CDN         = Elektronische Ressource
-# CDZA        = Zeitschrift / Reihe
-# CDZE        = Elektronische Ressource
-# CDZE        = Zeitschrift / Reihe
-# CDZN        = Elektronische Ressource
-# CDZN        = Zeitschrift / Reihe
-# CDZR        = Elektronische Ressource
-# CDZR        = Zeitschrift / Reihe
-# D           = Karte / Bild
-# DA          = Hochschulschrift
-# DA          = Karte / Bild
-# DB          = Elektronische Ressource
-# DBV         = Elektronische Ressource
-# DCD         = Elektronische Ressource
-# DCD         = Hochschulschrift
-# DIA         = Karte / Bild
-# DISK        = Elektronische Ressource
-# DISS        = Buch
-# DISS        = Hochschulschrift
-# DMF         = Hochschulschrift
-# DMF         = Mikroform
-# DO          = Elektronische Ressource
-# DO          = Hochschulschrift
-# DVDE        = Elektronische Ressource
-# DVDE        = Multimedia
-# DVDN        = Elektronische Ressource
-# DVDN        = Multimedia
-# EBOOK       = Elektronische Ressource
-# EHS         = Elektronische Ressource
-# EHS         = Hochschulschrift
-# FILE        = Elektronische Ressource
-# HS          = Hochschulschrift
-# KA          = Multimedia
-# KA          = Noten
-# KT          = Karte / Bild
-# LO          = Buch
-# MB          = Buch
-# MF          = Mikroform
-# MKO         = Buch
-# MKO         = Multimedia
-# MKZ         = Multimedia
-# MKZ         = Zeitschrift / Reihe
-# NOT         = Noten
-# R           = Buch
-# RE          = Zeitschrift / Reihe
-# SLP         = Multimedia
-# SP          = Multimedia
-# SPR         = Elektronische Ressource
-# SPR         = Multimedia
-# V           = Multimedia
-# Z           = Zeitschrift / Reihe
-# ZA          = Zeitschrift / Reihe
-# ZE          = Elektronische Ressource
-# ZE          = Zeitschrift / Reihe
-# ZEA         = Elektronische Ressource
-# ZEA         = Zeitschrift / Reihe
-# ZM          = Mikroform
-# ZM          = Zeitschrift / Reihe
-# ZMA         = Mikroform
-# ZMA         = Zeitschrift / Reihe
-# ZR          = Zeitschrift / Reihe
\ No newline at end of file
diff --git a/import/translation_maps/format_map_ded117.properties b/import/translation_maps/format_map_ded117.properties
deleted file mode 100644
index 147375826f7766eeb40d2774b36de8de8033dab2..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map_ded117.properties
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-Book                               = Book, E-Book
-eBook                              = Book, E-Book
-ElectronicJournal                  = Journal, E-Journal
-ElectronicSerial                   = Journal, E-Journal
-Journal                            = Journal, E-Journal
-Serial                             = Journal, E-Journal
-ElectronicNewspaper                = Newspaper, E-Paper
-Newspaper                          = Newspaper, E-Paper
-Article                            = Article, E-Article
-ElectronicArticle                  = Article, E-Article
-ElectronicThesis                   = Thesis
-Thesis                             = Thesis
-Atlas                              = Map
-Globe                              = Map
-Map                                = Map
-AudioTape                          = Audio
-CD                                 = Audio
-DVDAudio                           = Audio
-MusicRecording                     = Audio
-Record                             = Audio
-SoundRecordingMedium               = Audio
-SoundCassette                      = Audio
-SoundDisc                          = Audio
-SoundRecording                     = Audio
-AudioVisualMedia                   = Video
-BluRayDisc                         = Video
-DVDVideo                           = Video
-Filmstrip                          = Video
-MotionPicture                      = Video
-Video                              = Video
-VideoTape                          = Video
-VideoCartridge                     = Video
-VideoCassette                      = Video
-VideoDisc                          = Video
-VideoReel                          = Video
-ArtPrint                           = Visual Media
-Chart                              = Visual Media
-Collage                            = Visual Media
-Drawing                            = Visual Media
-FlashCard                          = Visual Media
-Painting                           = Visual Media
-Photo                              = Visual Media
-Photonegative                      = Visual Media
-Placard                            = Visual Media
-Print                              = Visual Media
-SensorImage                        = Visual Media
-Slide                              = Visual Media
-Transparency                       = Visual Media
-CDROM                              = Software
-ChipCartridge                      = Software
-DiscCartridge                      = Software
-DVDROM                             = Software
-FloppyDisk                         = Software
-Software                           = Software
-TapeCartridge                      = Software
-TapeCassette                       = Software
-TapeReel                           = Software
-Microfiche                         = Microform
-Microfilm                          = Microform
-Microform                          = Microform
-MusicalScore                       = Musical Score
-NotatedMusic                       = Musical Score
-ElectronicMusicalScore             = Musical Score
-Braille                            = Braille
-Kit                                = Kit
-Manuscript                         = Manuscript
-Nachlass                           = Nachlass
-PhysicalObject                     = Physical Object
-Unknown                            = Unknown Format
-Electronic                         = Website
-ElectronicResourceDataCarrier      = Electronic Resource (Data Carrier)
-ElectronicResourceRemoteAccess     = Electronic Resource (Remote Access)
diff --git a/import/translation_maps/format_map_del152.properties b/import/translation_maps/format_map_del152.properties
deleted file mode 100644
index 5a9fe24d38acf9b129a4a67edfd944c2bd41ebe0..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map_del152.properties
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-# Libero-Formate der HMT Leipzig, aus LIB_GMD_DESC, gruppiert und als pattern-based
-# translation map, um Mehrfachzuordnungen zu realisieren
-
-del152.pattern_0 = ^A$=>Aufsatz
-del152.pattern_1 = ^B$=>Buch
-del152.pattern_2 = CD$=>CD
-del152.pattern_3 = TIT=>Hierarchie
-del152.pattern_4 = ^TIT$=>Buch
-del152.pattern_5 = CDD$=>CD-ROM
-del152.pattern_6 = ^DVD$=>DVD
-del152.pattern_7 = MK=>Medienkombination
-del152.pattern_8 = ^N$=>Noten
-del152.pattern_9 = [DFT]N$=>Noten
-del152.pattern_10 = OD$=>E-Text
-del152.pattern_11 = SP$=>Schallplatte
-del152.pattern_12 = VV=>Videokassette
-del152.pattern_13 = ^DN$=>Elektronisch
-del152.pattern_14 = ^SF=>Mikrofilm
-del152.pattern_15 = ^SF$=>Buch
-del152.pattern_16 = ^AU$=>Noten
-del152.pattern_17 = ^DB$=>Datenbank
-del152.pattern_18 = ^H$=>Handschrift
-del152.pattern_19 = ^HS$=>Buch
-del152.pattern_20 = ^K$=>Kassette
-del152.pattern_21 = ^LB$=>Buch
-del152.pattern_22 = ZS$=>Zeitschrift
-del152.pattern_23 = ^OZS$=>Elektronisch
-#speziell fuer BMS online
-del152.pattern_24 = ^WL$=>Weitere Literaturnachweise
-#speziell fuer Naxos Music Library
-del152.pattern_25 = ^ECD=>Elektronisch
-del152.pattern_26 = ^PN$=>Petrucci-Noten
-del152.pattern_27 = ^DVDO$=>DVDO
-del152.pattern_28 = ^DVDV$=>DVD
-#3193: HideFacetValue Aufsatz but have own icon for AufsatzBuch
-del152.pattern_29 = ^[A]$=>Buch
diff --git a/import/translation_maps/format_map_del189.properties b/import/translation_maps/format_map_del189.properties
deleted file mode 100644
index 733f29dff7bd21cb3a6ffb2eb65c624c07a9d4cc..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map_del189.properties
+++ /dev/null
@@ -1,79 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-# Siehe #1499.
-#
-# IMPORTANT NOTE: No spaces on the left hand side, please.
-
-ArtPrint                           = Art Print
-Collage                            = Art Print
-Drawing                            = Art Print
-Painting                           = Art Print
-Article                            = Article
-ElectronicArticle                  = Article
-Atlas                              = Map
-AudioTape                          = Audio
-CD                                 = Audio
-DVDAudio                           = Audio
-MusicRecording                     = Audio
-Record                             = Audio
-SoundRecordingMedium               = Audio
-SoundCassette                      = Audio
-SoundDisc                          = Audio
-SoundRecording                     = Audio
-TapeCartridge                      = Audio
-TapeCassette                       = Audio
-TapeReel                           = Audio
-AudioVisualMedia                   = Electronic Resource (Data Carrier)
-BluRayDisc                         = Electronic Resource (Data Carrier)
-CDROM                              = Electronic Resource (Data Carrier)
-ChipCartridge                      = Electronic Resource (Data Carrier)
-DiscCartridge                      = Electronic Resource (Data Carrier)
-DVDROM                             = Electronic Resource (Data Carrier)
-DVDVideo                           = Electronic Resource (Data Carrier)
-ElectronicResourceDataCarrier      = Electronic Resource (Data Carrier)
-FloppyDisk                         = Electronic Resource (Data Carrier)
-Book                               = Book
-Manuscript                         = Book
-Braille                            = Braille
-Chart                              = Offprint
-FlashCard                          = Offprint
-Map                                = Offprint
-Placard                            = Offprint
-Print                              = Offprint
-Slide                              = Offprint
-Transparency                       = Offprint
-eBook                              = E-Book
-ElectronicThesis                   = E-Book
-Electronic                         = Online Resource
-ElectronicResourceRemoteAccess     = Online Resource
-ElectronicJournal                  = Electronic Journal
-ElectronicSerial                   = Electronic Journal
-ElectronicNewspaper                = Electronic Newspaper
-Filmstrip                          = Film
-MotionPicture                      = Film
-Globe                              = Physical Object
-Kit                                = Physical Object
-PhysicalObject                     = Physical Object
-Journal                            = Journal
-Microfiche                         = Microform
-Microfilm                          = Microform
-Microform                          = Microform
-Photonegative                      = Microform
-MusicalScore                       = Musical Score
-NotatedMusic                       = Musical Score
-ElectronicMusicalScore             = Musical Score
-Nachlass                           = Inheritance
-Newspaper                          = Newspaper
-Photo                              = Photo
-SensorImage                        = Sensor Image
-Serial                             = Serial
-Software                           = Software
-Thesis                             = Book
-HTWK-Thesis						   = HTWK Thesis
-Unknown                            = Unknown Format
-Video                              = Video
-VideoTape                          = Video
-VideoCartridge                     = Video
-VideoCassette                      = Video
-VideoDisc                          = Video
-VideoReel                          = Video
diff --git a/import/translation_maps/format_map_dezi4.properties b/import/translation_maps/format_map_dezi4.properties
deleted file mode 100644
index c85a7c76e2e24cac18d02eb5db6fec16e2463a01..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map_dezi4.properties
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-## Libero-Formate der HS Zittau/Görlitz, aus der LIB_GMD_DESC
-B    	= Book
-CDROM   = CD-ROM
-DA   	= Bachelor-/Master-/Diploma-Theses
-DISK   	= Disk
-DVD   	= DVD
-EB   	= e-Book
-FI   	= Microfiche
-HS   	= Dissertation
-KT   	= Map
-LB   	= Loose-leaf edition
-MB   	= Multi volume set_1
-MBDVD   = Multi volume DVD
-MW   	= Multi volume set_2
-SE   	= Multi volume set_3
-SOTO   	= Audio
-SP   	= Game
-VID   	= Video
-ZR   	= Multi volume set_4
-ZS   	= Journal
-ZSCROM  = Journal on data carrier
-ZT   	= Newspaper
-# Medientypen in deutscher Sprache:
-#B    	= Monographie
-#CDROM  = CD-ROM
-#DA   	= Bachelor-/Master-/Diplomarbeit
-#DISK   = Disketten
-#DVD   	= DVD
-#EB   	= E-Book
-#FI   	= Mikrofiche
-#HS   	= Hochschulschrift
-#KT  	= Karte
-#LB   	= Loseblattsammlung
-#MB   	= mehrbändige Werke
-#MBDVD  = mehrbändige DVD
-#MW   	= mehrbändige Werke in Reihe
-#SE   	= Schriftenreihe (Serie)
-#SOTO   = Sonstige Tonträger
-#SP   	= Spiel
-#VID   	= Video
-#ZR   	= Zeitschriftenartige Reihe
-#ZS   	= Zeitschrift
-#ZSCROM = Zeitschriftenjahrgang CDROM
-#ZT   	= Zeitung
-8 = e-Book
-17 = e-Book
diff --git a/import/translation_maps/format_map_dezwi2.properties b/import/translation_maps/format_map_dezwi2.properties
deleted file mode 100644
index 9b599b94e98c2ad36cdbf65e6a389d0dd5f6b5a2..0000000000000000000000000000000000000000
--- a/import/translation_maps/format_map_dezwi2.properties
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# DATA FROM INDEXER = Label
-#
-## Libero-Formate der Westsächsischen Hochschule Zwickau [https://www.katalog.fh-zwickau.de], aus der LIB_GMD_DESC
-B		= Book
-BCD		= Book with CD
-CD		= Audio CD
-CDROM	= CD-ROM
-CDZ		= Journal on CD-ROM
-DISK	= Disk
-DVDR	= DVD-ROM
-DVDV	= DVD
-EB		= Ebook
-HB		= Talking book
-HS		= Academic publication
-KAS		= Cassette
-KT		= Map
-LF		= Loose-leaf edition
-LP		= Record
-MB		= Multi-volume edition
-MK		= Media combination
-NOT		= Music notes
-SE		= Series
-SVB		= Book (in several parts)
-SVC		= Audio CD (in several parts)
-SVCR	= CD-ROM (in several parts)
-SVDVD	= DVD-ROM (in several parts)
-SVHB	= Talking book (in several parts)
-SVK		= Cassette (in several parts)
-SVMK	= Media combination (in several parts)
-SVV 	= Video (in several parts)
-V		= Video
-ZS		= Journal
-ZT		= Newspaper
-# Medientypen in deutscher Sprache:
-#B 		= Buch
-#BCD 	= Buch mit CD
-#CD		= Audio-CD
-#CDROM 	= CD-ROM
-#CDZ 	= Zeitschrift auf CD-ROM
-#DISK 	= Diskette
-#DVDR 	= DVD-ROM
-#DVDV 	= DVD-Video
-#EB 		= eBook
-#HB 		= Hörbuch
-#HS 		= Hochschulschrift
-#KAS 	= Kassette
-#KT 		= Karte
-#LF 		= Loseblattsammlung
-#LP 		= Schallplatte
-#MB 		= Mehrbändiges Werk
-#MK 		= Medienkombination
-#NOT 	= Noten
-#SE		= Serie
-#SVB		= Buch (mehrteilig)
-#SVC		= Audio-CD (mehrteilig)
-#SVCR	= CD-ROM (mehrteilig)
-#SVDVD 	= DVD (mehrteilig)
-#SVHB	= Hörbuch (mehrteilig)
-#SVK		= Kassette (mehrteilig)
-#SVMK 	= Medienkombination (mehrteilig)
-#SVV 	= Video (mehrteilig)
-#V		= Video
-#ZS		= Zeitschrift
-#ZT		= Zeitung
\ No newline at end of file
diff --git a/import/translation_maps/geogr_code_map.properties b/import/translation_maps/geogr_code_map.properties
deleted file mode 100644
index bfb70c2b8936ecd7700debc0d35512a24c378a44..0000000000000000000000000000000000000000
--- a/import/translation_maps/geogr_code_map.properties
+++ /dev/null
@@ -1,373 +0,0 @@
-# Geographical codes according to DIN ISO 3166
-# based on this document provided by the German National Library http://www.dnb.de/SharedDocs/Downloads/DE/DNB/standardisierung/inhaltserschliessung/laendercodesSyst.pdf
-
-# translation based on Wikipedia; for the German translation please see de.ini
-
-# Europa
-XA        = Europe
-XA-AD     = Andorra
-XA-AL     = Albania
-XA-AT     = Austria
-XA-AT-1   = Austria / Burgenland
-XA-AT-2   = Austria / Carinthia
-XA-AT-3   = Austria / Lower Austria
-XA-AT-4   = Austria / Upper Austria
-XA-AT-5   = Austria / Salzburg
-XA-AT-6   = Austria / Styria
-XA-AT-7   = Austria / Tyrol
-XA-AT-8   = Austria / Vorarlberg
-XA-AT-9   = Austria / Vienna
-XA-AX     = Ã…land Islands
-XA-BA     = Bosnia and Herzegovina
-XA-BE     = Belgium
-XA-BG     = Bulgaria
-XA-BY     = Belarus
-XA-CH     = Switzerland
-XA-CH-AG  = Switzerland / Aargau
-XA-CH-AI  = Switzerland / Appenzell Innerrhoden
-XA-CH-AR  = Switzerland / Appenzell Ausserrhoden
-XA-CH-BE  = Switzerland / Bern
-XA-CH-BL  = Switzerland / Basel-Landschaft
-XA-CH-BS  = Switzerland / Basel
-XA-CH-FR  = Switzerland / Fribourg
-XA-CH-GE  = Switzerland / Geneva
-XA-CH-GL  = Switzerland / Glarus
-XA-CH-GR  = Switzerland / Graubünden
-XA-CH-JU  = Switzerland / Jura
-XA-CH-LU  = Switzerland / Lucerne
-XA-CH-NE  = Switzerland / Neuchâtel
-XA-CH-NW  = Switzerland / Nidwalden
-XA-CH-OW  = Switzerland / Obwalden
-XA-CH-SG  = Switzerland / St. Gallen
-XA-CH-SH  = Switzerland / Schaffhausen
-XA-CH-SO  = Switzerland / Solothurn
-XA-CH-SZ  = Switzerland / Schwyz
-XA-CH-TG  = Switzerland / Thurgau
-XA-CH-TI  = Switzerland / Ticino
-XA-CH-UR  = Switzerland / Uri
-XA-CH-VD  = Switzerland / Vaud
-XA-CH-VS  = Switzerland / Valais
-XA-CH-ZG  = Switzerland / Zug
-XA-CH-ZH  = Switzerland / Zurich
-XA-CY     = Cyprus
-XA-CZ     = Czech Republic
-XA-DE     = Germany
-XA-DE-BB  = Germany / Brandenburg
-XA-DE-BE  = Germany / Berlin
-XA-DE-BW  = Germany / Baden-Württemberg
-XA-DE-BY  = Germany / Bavaria
-XA-DE-HB  = Germany / Bremen
-XA-DE-HE  = Germany / Hesse
-XA-DE-HH  = Germany / Hamburg
-XA-DE-MV  = Germany / Mecklenburg-Vorpommern
-XA-DE-NI  = Germany / Lower Saxony
-XA-DE-NW  = Germany / North Rhine-Wesphalia
-XA-DE-RP  = Germany / Rhineland-Palatinate
-XA-DE-SH  = Germany / Schleswig-Holstein
-XA-DE-SL  = Germany / Saarland
-XA-DE-SN  = Germany / Saxony
-XA-DE-ST  = Germany / Saxony-Anhalt
-XA-DE-TH  = Germany / Thuringia
-XA-DK     = Denmark
-XA-EE     = Estonia
-XA-ES     = Spain
-XA-FI     = Finland
-XA-FR     = France
-XA-GB     = United Kingdom
-XA-GG     = Guernsey
-XA-GI     = Gibraltar
-XA-GR     = Greece
-XA-HR     = Croatia
-XA-HU     = Hungary
-XA-IE     = Ireland
-XA-IM     = Isle of Man
-XA-IS     = Iceland
-XA-IT     = Italy
-XA-IT-32  = Italy / Trentino-Alto Adige
-XA-JE     = Jersey
-XA-LI     = Liechtenstein
-XA-LT     = Lithuania
-XA-LU     = Luxembourg
-XA-LV     = Latvia
-XA-MC     = Monaco
-XA-MD     = Moldova
-XA-ME     = Montenegro
-XA-MK     = Macedonia
-XA-MT     = Malta
-XA-NL     = Netherlands
-XA-NO     = Norway
-XA-PL     = Poland
-XA-PT     = Portugal
-XA-RO     = Romania
-XA-RS     = Serbia
-XA-RU     = Russia
-XA-SE     = Sweden
-XA-SI     = Slovenia
-XA-SK     = Slovakia
-XA-SM     = San Marino
-XA-UA     = Ukraine
-XA-VA     = Vatican City
-# Asien
-XB        = Asia
-XB-AE     = United Arab Emirates
-XB-AF     = Afghanistan
-XB-AM     = Armenia
-XB-AZ     = Azerbaijan
-XB-BD     = Bangladesh
-XB-BH     = Bahrain
-XB-BN     = Brunei
-XB-BT     = Bhutan
-XB-CN     = China
-XB-CN-54  = Tibet
-XB-GE     = Georgia
-XB-HK     = Hong Kong
-XB-ID     = Indonesia
-XB-IL     = Israel
-XB-IN     = India
-XB-IQ     = Iraq
-XB-IR     = Iran
-XB-JO     = Jordan
-XB-JP     = Japan
-XB-KG     = Kyrgyzstan
-XB-KH     = Cambodia
-XB-KP     = North Korea
-XB-KR     = South Korea
-XB-KW     = Kuwait
-XB-KZ     = Kazakhstan
-XB-LA     = Laos
-XB-LB     = Lebanon
-XB-LK     = Sri Lanka
-XB-MM     = Myanmar
-XB-MN     = Mongolia
-XB-MO     = Macao
-XB-MV     = Maldives
-XB-MY     = Malaysia
-XB-NP     = Nepal
-XB-OM     = Oman
-XB-PH     = Philippines
-XB-PK     = Pakistan
-XB-PS     = Palestinian territories
-XB-QA     = Qatar
-XB-SA     = Saudi Arabia
-XB-SG     = Singapore
-XB-SY     = Syria
-XB-TH     = Thailand
-XB-TJ     = Tajikistan
-XB-TL     = Timor-Leste
-XB-TM     = Turkmenistan
-XB-TR     = Turkey
-XB-TW     = Taiwan
-XB-UZ     = Uzbekistan
-XB-VN     = Vietnam
-XB-YE     = Yemen
-# Afrika
-XC        = Africa
-XC-AO     = Angola
-XC-BF     = Burkina Faso
-XC-BI     = Burundi
-XC-BJ     = Benin
-XC-BW     = Botswana
-XC-CD     = Congo, Democratic Republic of the Congo
-XC-CF     = Central African Republic
-XC-CG     = Congo, Republic of the Congo
-XC-CI     = Côte d'Ivoire
-XC-CM     = Cameroon
-XC-CV     = Cape Verde
-XC-DJ     = Djibouti
-XC-DZ     = Algeria
-XC-EG     = Egypt
-XC-EH     = Western Sahara
-XC-ER     = Eritrea
-XC-ET     = Ethiopia
-XC-GA     = Gabon
-XC-GH     = Ghana
-XC-GM     = Gambia
-XC-GN     = Guinea
-XC-GQ     = Equatorial Guinea
-XC-GW     = Guinea-Bissau
-XC-KE     = Kenya
-XC-KM     = Comoros
-XC-LR     = Liberia
-XC-LS     = Lesotho
-XC-LY     = Libya
-XC-MA     = Morocco
-XC-MG     = Madagascar
-XC-ML     = Mali
-XC-MR     = Mauritania
-XC-MU     = Mauritius
-XC-MW     = Malawi
-XC-MZ     = Mozambique
-XC-NA     = Namibia
-XC-NE     = Niger
-XC-NG     = Nigeria
-XC-RW     = Rwanda
-XC-SC     = Seychelles
-XC-SD     = Sudan
-XC-SL     = Sierra Leone
-XC-SN     = Senegal
-XC-SO     = Somalia
-XC-SS     = South Sudan
-XC-ST     = São Tomé and Príncipe
-XC-SZ     = Swaziland
-XC-TD     = Chad
-XC-TG     = Togo
-XC-TN     = Tunisia
-XC-TZ     = Tanzania
-XC-UG     = Uganda
-XC-YT     = Mayotte
-XC-ZA     = South Africa
-XC-ZM     = Zambia
-XC-ZW     = Zimbabwe
-# Amerika
-XD        = America
-XD-AG     = Antigua and Barbuda
-XD-AI     = Anguilla
-XD-AR     = Argentina
-XD-AS     = American Samoa
-XD-AW     = Aruba
-XD-BB     = Barbados
-XD-BL     = Saint Barthélemy
-XD-BM     = Bermuda
-XD-BO     = Bolivia
-XD-BQ     = Bonaire, Sint Eustatius, Saba (Caribbean Netherlands)
-XD-BR     = Brazil
-XD-BS     = Bahamas
-XD-BZ     = Belize
-XD-CA     = Canada
-XD-CL     = Chile
-XD-CO     = Colombia
-XD-CR     = Costa Rica
-XD-CU     = Cuba
-XD-CW     = Curaçao
-XD-DM     = Dominica
-XD-DO     = Dominican Republic
-XD-EC     = Ecuador
-XD-GD     = Grenada
-XD-GF     = French Guiana
-XD-GP     = Guadeloupe
-XD-GT     = Guatemala
-XD-GY     = Guyana
-XD-HN     = Honduras
-XD-HT     = Haiti
-XD-JM     = Jamaica
-XD-KN     = Saint Kitts und Nevis
-XD-KY     = Cayman Islands
-XD-LC     = Saint Lucia
-XD-MF     = Saint Martin
-XD-MQ     = Martinique
-XD-MS     = Montserrat
-XD-MX     = Mexico
-XD-NI     = Nicaragua
-XD-PA     = Panama
-XD-PE     = Peru
-XD-PM     = Saint Pierre and Miquelon
-XD-PR     = Puerto Rico
-XD-PY     = Paraguay
-XD-SR     = Suriname
-XD-SV     = El Salvador
-XD-SX     = Sint Maarten
-XD-TC     = Turks and Caicos Islands
-XD-TT     = Trinidad and Tobago
-XD-US     = USA
-XD-UY     = Uruguay
-XD-VC     = Saint Vincent and the Grenadines
-XD-VE     = Venezuela
-XD-VG     = Virgin Islands, British
-XD-VI     = Virgin Islands, United States
-# Australien, Ozeanien
-XE        = Australia and Oceania
-XE-AU     = Australia
-XE-CC     = Cocos (Keeling) Islands
-XE-CK     = Cook Islands
-XE-CX     = Christmas Island <Australia>
-XE-FJ     = Fiji
-XE-FM     = Micronesia, Federated States of
-XE-GU     = Guam
-XE-KI     = Kiribati
-XE-MH     = Marshall Islands
-XE-MP     = Northern Mariana Islands
-XE-NC     = New Caledonia
-XE-NF     = Norfolk Island
-XE-NR     = Nauru
-XE-NZ     = New Zealand
-XE-PF     = French Polynesia
-XE-PG     = Papua New Guinea
-XE-PW     = Palau
-XE-SB     = Solomon Islands
-XE-TK     = Tokelau
-XE-TO     = Tonga
-XE-TV     = Tuvalu
-XE-VU     = Vanuatu
-XE-WF     = Wallis and Futuna
-XE-WS     = Samoa
-# Arktis und Antarktis
-XH        = Arctic
-XI        = Antarctic
-XI-AQ     = Antarctica
-XI-HM     = Heard Islands and McDonald Islands
-# Atlantischer Ozean
-XK        = Atlantic Ocean
-XK-BV     = Bouvet Island
-XK-FK     = Falkland Islands
-XK-FO     = Faroe Islands
-XK-GL     = Greenland
-XK-GS     = South Georgia and the South Sandwich Islands
-XK-SH     = Saint Helena, Ascension and Tristan da Cunha
-XK-SJ     = Svalbard and Jan Mayen
-# Indischer Ozean
-XL        = Indian Ocean
-XL-IO     = British Indian Ocean Territory
-XL-RE     = Réunion
-XL-TF     = French Southern and Antarctic Lands
-# Pazifischer Ozean
-XM        = Pacific Ocean
-XM-NU     = Niue
-XM-PN     = Pitcairn
-XM-UM     = United States Minor Outlying Islands
-# Kontinentübergreifende Staatengruppen, Sonstiges
-XN        = Outer Space
-XP        = International organisations and communities of states
-XQ        = Entire world
-XW        = Palestinian people
-XX        = Arab people
-XY        = Jewish people
-XZ        = Fictitious places
-ZZ        = Other places
-XR        = Ancient Near East
-XS        = Ancient Greece
-XT        = Roman Empire
-XU        = Byzantine Empire
-XV        = Ottoman Empire
-# Historische Bezeichnungen
-NTHH      = Saudi-Iraqi neutral zone (-1993)
-XA-AAAT   = Austria (- 12.11.1918)
-XA-CSHH   = Czechoslovakia (-1993)
-XA-CSXX   = Serbia and Montenegro (2003-2006)
-XA-DDDE   = German Democratic Republic (-1990)
-XA-DXDE   = German Reich
-XA-FXFR   = Metropolitan France (1993-1997)
-XA-SUHH   = Soviet Union (-1992)
-XA-YUCS   = Yugoslavia (-2003)
-XB-BUMM   = Burma (-1989)
-XB-SKIN   = Sikkim (-1975)
-XB-TPTL   = East Timor (-2002)
-XB-VDVN   = Vietnam, Republic of (i.e. South Vietnam) (-1977)
-XB-YDYE   = Yemen (i.e. South Yemen) (-1990)
-XC-AIDJ   = Djibouti (French Territory of the Afars and the Issas) (-1977)
-XC-DYBJ   = Benin (Dahomey) (-1977)
-XC-HVBF   = Burkina Faso (Upper Volta) (-1984)
-XC-RHZW   = Zimbabwe (Southern Rhodesia) (-1980)
-XC-ZRCD   = Congo, Democratic Republic of the Congo (Zaire) (-1997)
-XD-ANHH   = Netherlands Antilles (1974-2011)
-XD-PZPA   = Panama Canal Zone (-1980)
-XE-CTKI   = Canton and Enderbury Islands (-1984)
-XE-GEHH   = Gilbert and Ellice Islands (-1979)
-XE-NHVU   = Vanuatu (New Hebrides) (-1980)
-XE-PCHH   = Pacific Islands, Trust Territory of the (-1986)
-XI-BQAQ   = British Antarctic Territory (-1979)
-XI-FQHH   = French Southern and Antarctic Lands (-1979)
-XI-NQAQ   = Queen Maud Land (-1983)
-XM-JTUM   = Johnston Island (-1986)
-XM-MIUM   = Midway Islands (-1986)
-XM-PUUM   = United States Miscellaneous Pacific Islands (-1986)
-XM-WKUM   = Wake Island (-1986)
\ No newline at end of file
diff --git a/import/translation_maps/getformat_mixin_map.properties b/import/translation_maps/getformat_mixin_map.properties
deleted file mode 100644
index 941ebcd2550ba9f2be96413f6693a9999822a4d1..0000000000000000000000000000000000000000
--- a/import/translation_maps/getformat_mixin_map.properties
+++ /dev/null
@@ -1,218 +0,0 @@
-#ContentType
-ContentType.Art = Visual Materials
-ContentType.ArtReproduction = Visual Materials
-ContentType.Atlas = Map|Atlas
-ContentType.Book = Book
-ContentType.BookCollection = Book
-ContentType.BookComponentPart = Book
-ContentType.BookSeries = Journal/Magazine
-ContentType.BookSubunit = Book
-ContentType.Chart = Visual Materials
-ContentType.ComputerBibliographicData = Computer Resource
-ContentType.ComputerCombination = Computer Resource
-ContentType.ComputerDocument = null
-ContentType.ComputerFile = Computer Resource
-ContentType.ComputerFont = Computer Resource
-ContentType.ComputerGame = Computer Resource
-ContentType.ComputerInteractiveMultimedia = Computer Resource
-ContentType.ComputerNumericData = Computer Resource
-ContentType.ComputerOnlineSystem = Computer Resource
-ContentType.ComputerProgram = Computer Resource
-ContentType.ComputerRepresentational = Computer Resource
-ContentType.ComputerSound = Computer Resource
-ContentType.Database = Computer Resource
-ContentType.Diorama = Physical Object
-ContentType.Filmstrip = Visual Materials
-ContentType.FlashCard = Visual Materials
-ContentType.Game = Physical Object
-ContentType.GovernmentDocumentFederal = Government Document
-ContentType.GovernmentDocumentState = Government Document
-ContentType.GovernmentDocumentStateUniversity = null
-ContentType.GovernmentDocumentLocal = null
-ContentType.GovernmentDocumentInternational = Government Document
-ContentType.GovernmentDocumentOther = null
-ContentType.Globe = Map|Globe|Physical Object
-ContentType.Graphic = Visual Materials
-ContentType.Image = Visual Materials
-ContentType.Kit = Kit
-ContentType.LooseLeaf = Journal/Magazine|Looseleaf
-ContentType.Manuscript = Manuscript
-ContentType.Map = Map
-ContentType.MapBound = Map
-ContentType.MapManuscript = Map|Manuscript
-ContentType.MapSeparate = Map
-ContentType.MapSerial = Map
-ContentType.MapSeries = Map
-ContentType.MapSingle = Map
-ContentType.MicroscopeSlide = Physical Object
-ContentType.MixedMaterial = Mixed Materials
-ContentType.Model = Physical Object
-ContentType.MotionPicture = Film
-ContentType.MusicalScore = Musical Score
-ContentType.MusicalScoreManuscript = Musical Score|Manuscript
-ContentType.MusicRecording = Sound Recording
-ContentType.Newspaper = Journal/Magazine|Newspaper
-ContentType.Pamphlet = Visual Materials
-ContentType.Periodical = Journal/Magazine|Periodical
-ContentType.PhysicalObject = Physical Object
-ContentType.Picture = Visual Materials
-ContentType.ProjectedMedium = Visual Materials
-ContentType.Realia = Visual Materials
-ContentType.Serial = Journal/Magazine
-ContentType.SerialComponentPart = Journal/Magazine
-ContentType.SerialIntegratingResource = Journal/Magazine
-ContentType.Slide = Visual Materials
-ContentType.SoundRecording = Sound Recording
-ContentType.SpecialInstructionalMaterial = Special Instructional Material
-ContentType.TechnicalDrawing = Visual Materials
-ContentType.Thesis = Thesis/Dissertation
-ContentType.Toy = Physical Object
-ContentType.Transparency = Visual Materials
-ContentType.Video = Video
-ContentType.VisualKit = Visual Materials
-ContentType.Website = Online|Computer Resource
-
-#MediaType
-MediaType.ActivityCard = Visual Materials
-MediaType.Atlas = Map|Atlas
-MediaType.Braille = Braille
-MediaType.Broadside = Broadside
-MediaType.Chart = Visual Materials
-MediaType.Collage = Visual Materials
-MediaType.ComputerCard = Computer Media
-MediaType.ComputerChipCartridge =  Computer Media
-MediaType.ComputerDiscCartridge =  Computer Media
-MediaType.ComputerDisk =  Computer Media
-MediaType.ComputerFloppyDisk =  Computer Media
-MediaType.ComputerMagnetoOpticalDisc =  Computer Media
-MediaType.ComputerOpticalDisc =  Computer Media
-MediaType.ComputerOpticalDiscCartridge =  Computer Media
-MediaType.ComputerOther =  Computer Media
-MediaType.ComputerTapeCartridge =  Computer Media
-MediaType.ComputerTapeCassette =  Computer Media
-MediaType.ComputerTapeReel =  Computer Media
-MediaType.Drawing = Visual Materials
-MediaType.Electronic = Computer Resource
-MediaType.Electronic245 = null
-MediaType.ElectronicDirect = Computer Resource
-MediaType.FilmCassette = Visual Materials
-MediaType.FilmOther = Visual Materials
-MediaType.Filmslip = Visual Materials
-MediaType.Filmstrip = Visual Materials|Filmstrip
-MediaType.FilmstripCartridge = Visual Materials|Filmstrip
-MediaType.FilmstripRoll = Visual Materials|Filmstrip
-MediaType.FlashCard = Visual Materials
-MediaType.Globe = Map|Globe
-MediaType.GlobeCelestial = Map|Globe
-MediaType.GlobeEarthMoon = Map|Globe
-MediaType.GlobeOther = Map|Globe
-MediaType.GlobePlanetary = Map|Globe
-MediaType.GlobeTerrestrial = Map|Globe
-MediaType.Icon = Visual Materials
-MediaType.ImageOther = Visual Materials
-MediaType.ImagePrint = Visual Materials
-MediaType.Kit = Kit
-MediaType.LooseLeaf = Journal/Magazine|Looseleaf
-MediaType.Map = Map
-MediaType.MapDiagram = Map
-MediaType.MapModel = Map
-MediaType.MapOther = Map
-MediaType.MapProfile = Map
-MediaType.MapSection = Map
-MediaType.MapView = Map
-MediaType.Microfiche = Microform
-MediaType.MicroficheCassette = Microform
-MediaType.Microfilm = Microform
-MediaType.MicrofilmCartridge = Microform
-MediaType.MicrofilmCassette = Microform
-MediaType.MicrofilmReel = Microform
-MediaType.MicrofilmRoll = Microform
-MediaType.MicrofilmSlip = Microform
-MediaType.Microform = Microform
-MediaType.MicroformApetureCard = Microform
-MediaType.Microopaque = Microform
-MediaType.MusicalScore = Musical Score
-MediaType.Online = Online
-MediaType.Painting = Visual Materials
-MediaType.Photo = Visual Materials
-MediaType.PhotomechanicalPrint = Visual Materials
-MediaType.Photonegative = Visual Materials
-MediaType.PhotoPrint = Visual Materials
-MediaType.Picture = Visual Materials
-MediaType.Postcard = Visual Materials
-MediaType.Poster = Visual Materials
-MediaType.Print = Print
-MediaType.PrintLarge = Large Print
-MediaType.ProjectedMediumOther = Visual Materials
-MediaType.Radiograph = Visual Materials
-MediaType.SensorImage = Visual Materials
-MediaType.Slide = Visual Materials
-MediaType.Software = Computer Resource
-MediaType.SoundCartridge = Cartridge
-MediaType.SoundCassette = Cassette
-MediaType.SoundCylinder = Cylinder
-MediaType.SoundDisc = null
-MediaType.SoundDiscCD = CD
-MediaType.SoundDiscLP = LP
-MediaType.SoundRecordingOther = Other Media
-MediaType.SoundRecordingOnline = Streaming Audio
-MediaType.SoundRoll = Roll
-MediaType.SoundTapeReel = Tape Reel
-MediaType.SoundTrackFilm = Sound Track Film
-MediaType.SoundWireRecording = Wire Recording
-MediaType.StudyPrint = Visual Materials
-MediaType.TactileCombination = Physical Object
-MediaType.TactileMoon = Physical Object
-MediaType.TactileNoWritingSystem = Physical Object
-MediaType.TactileOther = Physical Object
-MediaType.TextOther = Book
-MediaType.Transparency = Visual Materials
-MediaType.Video8mm = Video|Video 8mm
-MediaType.VideoBeta = Video|Video Beta
-MediaType.VideoBetacam = Video|Video Betacam
-MediaType.VideoBetacamSP = Video|Video Betacam SP
-MediaType.VideoBluRay = Video|DVD|Blu-Ray
-MediaType.VideoCartridge = Video|Video Other
-MediaType.VideoCassette = Video|Video Other
-MediaType.VideoCapacitance = Video|Video CED
-MediaType.VideoD2 = Video|Video D-2
-MediaType.VideoDisc = Video|Video Disc
-MediaType.VideoDVD = Video|DVD
-MediaType.VideoEIAJ = Video|Video EIAJ
-MediaType.VideoHi8 = Video|Video Hi 8mm
-MediaType.VideoLaserdisc = Video|Laserdisc
-MediaType.VideoMII = Video|Video M-II
-MediaType.VideoOther = Video|Video Other
-MediaType.VideoOnline = Video|Online Video
-MediaType.VideoQuadruplex = Video|Video Quadraplex
-MediaType.VideoReel = Video|Video Other
-MediaType.VideoSuperVHS = Video|Super-VHS
-MediaType.VideoTypeC = Video|Video Type C
-MediaType.VideoUMatic = Video|Video U-Matic
-MediaType.VideoVHS = Video|VHS
-MediaType.VideoVHS_From500 = VHS
-MediaType.VideoDVD_From500 = DVD
-MediaType.VideoLaserdisc_From500 = Laserdisc
-MediaType.VideoBeta_From500 = Video Beta
-MediaType.VideoVHS_From300 = VHS
-MediaType.VideoDVD_From300 = DVD
-MediaType.VideoLaserdisc_From300 = Laserdisc
-
-
-#FormOfItem
-FormOfItem.Microfilm = Microform
-FormOfItem.Microfiche = Microform
-FormOfItem.Microopaque = Microform
-FormOfItem.PrintLarge = Large Print
-FormOfItem.Braille = Braille
-FormOfItem.Online = Online
-FormOfItem.ElectronicDirect = null
-FormOfItem.Electronic = null
-FormOfItem.Print = Print
-
-#CombinedType
-CombinedType.EBook = EBook
-CombinedType.EJournal = EJournal
-
-#ControlType
-ControlType.Archive = Archive
diff --git a/import/translation_maps/getformat_mixin_unmap_map.properties b/import/translation_maps/getformat_mixin_unmap_map.properties
deleted file mode 100644
index dad1b5dd2ab50a607ca58ec7569ce0fe136cd2b2..0000000000000000000000000000000000000000
--- a/import/translation_maps/getformat_mixin_unmap_map.properties
+++ /dev/null
@@ -1,220 +0,0 @@
-#ContentType
-ContentType.Art = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=a OR 006[16]=a)
-ContentType.ArtReproduction = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=c OR 006[16]=c)
-ContentType.Book = Leader[67]=am
-ContentType.BookCollection = Leader[67]=ac
-ContentType.BookComponentPart = Leader[67]=aa
-ContentType.BookSeries = (Leader[67]=as OR 006[0]=s) AND (008[21]=m OR 006[4]=m)
-ContentType.BookSubunit = Leader[67]=ad
-ContentType.Chart = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=n OR 006[16]=n)
-ContentType.ComputerBibliographicData = (Leader[6]=m OR 006[0]=m) AND (008[26]=e OR 006[9]=e)
-ContentType.ComputerCombination = (Leader[6]=m OR 006[0]=m) AND (008[26]=m OR 006[9]=m)
-ContentType.ComputerDocument = (Leader[6]=m OR 006[0]=m) AND (008[26]=d OR 006[9]=d)
-ContentType.ComputerFile = (Leader[6]=m OR 006[0]=m)
-ContentType.ComputerFont = (Leader[6]=m OR 006[0]=m)AND 008[26]=f OR 006[9]=f)
-ContentType.ComputerGame = (Leader[6]=m OR 006[0]=m) AND (008[26]=g OR 006[9]=g)
-ContentType.ComputerInteractiveMultimedia = (Leader[6]=m OR 006[0]=m) AND (008[26]=i OR 006[9]=i)
-ContentType.ComputerNumericData = (Leader[6]=m OR 006[0]=m) AND (008[26]=a OR 006[9]=a)
-ContentType.ComputerOnlineSystem = (Leader[6]=m OR 006[0]=m) AND (008[26]=j OR 006[9]=j)
-ContentType.ComputerProgram = (Leader[6]=m OR 006[0]=m) AND (008[26]=b OR 006[9]=b)
-ContentType.ComputerRepresentational = (Leader[6]=m OR 006[0]=m) AND (008[26]=c OR 006[9]=c)
-ContentType.ComputerSound = (Leader[6]=m OR 006[0]=m) AND (008[26]=h OR 006[9]=h)
-ContentType.Database = (Leader[67]=as OR 006[0]=s) AND (008[21]=d OR 006[4]=d)
-ContentType.Diorama = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=d OR 006[16]=d)
-ContentType.Filmstrip = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=f OR 006[16]=f)
-ContentType.FlashCard = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=o OR 006[16]=o)
-ContentType.Game = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=g OR 006[16]=g)
-ContentType.GovernmentDocumentFederal = Leader[6]=a s  AND (008[28]=f  OR 006[11]=f )
-ContentType.GovernmentDocumentState = Leader[6]=a s  AND (008[28]=s m  OR 006[11]= s m )
-ContentType.GovernmentDocumentStateUniversity = Leader[6]=a s  AND (008[28]=s  OR 006[11]= s AND 260b contains University)
-ContentType.GovernmentDocumentLocal = Leader[6]=a s  AND (008[28]=c l  OR 006[11]= c l )
-ContentType.GovernmentDocumentInternational = Leader[6]=a s  AND (008[28]=i  OR 006[11]= i )
-ContentType.GovernmentDocumentOther = Leader[6]=a s  AND (008[28]=a o z  OR 006[11]= a o z )
-ContentType.Graphic = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=k OR 006[16]=k)
-ContentType.Image = (Leader[6]=k OR 006[0]=k)
-ContentType.Kit = (Leader[6]=o OR 006[0]=o)
-ContentType.LooseLeaf = (Leader[6]=as OR 006[0]=s) AND (008[21]=l OR 006[4]=l)
-ContentType.Manuscript = (Leader[6]=t OR 006[0]=t)
-ContentType.Map = (Leader[6]=e OR 006[0]=e)
-ContentType.MapAtlas = (Leader[6]=e OR 006[0]=e) OR f AND (008[25]=e OR 006[8]=e)
-ContentType.MapBound = (Leader[6]=e OR 006[0]=e) OR f AND (008[25]=g OR 006[8]=g)
-ContentType.MapGlobe = (Leader[6]=e OR 006[0]=e) OR f AND (008[25]=d OR 006[8]=d)
-ContentType.MapManuscript = (Leader[6]=f OR 006[0]=f)
-ContentType.MapSeparate = (Leader[6]=e OR 006[0]=e) OR f AND (008[25]=f OR 006[8]=f)
-ContentType.MapSerial = (Leader[6]=e OR 006[0]=e) OR f AND (008[25]=c OR 006[8]=c)
-ContentType.MapSeries = (Leader[6]=e OR 006[0]=e) OR f AND (008[25]=b OR 006[8]=b)
-ContentType.MapSingle = (Leader[6]=e OR 006[0]=e) OR f AND (008[25]=a OR 006[8]=a)
-ContentType.MicroscopeSlide = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=p OR 006[16]=p)
-ContentType.MixedMaterial = (Leader[6]=p OR 006[0]=p)
-ContentType.Model = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=q OR 006[16]=q)
-ContentType.MotionPicture = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=m OR 006[16]=m)
-ContentType.MusicalScore = (Leader[6]=c OR 006[0]=c)
-ContentType.MusicalScoreManuscript = (Leader[6]=d OR 006[0]=d)
-ContentType.MusicRecording = (Leader[6]=j OR 006[0]=j)
-ContentType.Newspaper = (Leader[67]=as OR 006[0]=s) AND (008[21]=n OR 006[4]=n)
-ContentType.Pamphlet = (Leader[6]=p OR 006[0]=p)
-ContentType.Periodical = (Leader[67]=as OR 006[0]=s) AND (008[21]=p OR 006[4]=p)
-ContentType.PhysicalObject = (Leader[6]=r OR 006[0]=r)
-ContentType.Picture = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=i OR 006[16]=i)
-ContentType.ProjectedMedium = (Leader[6]=g OR 006[0]=g)
-ContentType.Realia = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=r OR 006[16]=r)
-ContentType.Serial = (Leader[67]=as OR 006[0]=s)
-ContentType.SerialComponentPart = Leader[67]=ab
-ContentType.SerialIntegratingResource = Leader[67]=ai
-ContentType.Slide = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=s OR 006[16]=s)
-ContentType.SoundRecording = (Leader[6]=i OR 006[0]=i)
-ContentType.SpecialInstructionalMaterial = (Leader[6]=n OR 006[0]=n)
-ContentType.TechnicalDrawing = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=l OR 006[16]=l)
-ContentType.Thesis = Field 502 Not Empty
-ContentType.Toy = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=w OR 006[16]=w)
-ContentType.Transparency = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=t OR 006[16]=t)
-ContentType.Video = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=v OR 006[16]=v)
-ContentType.VisualKit = (Leader[6]=g k o r OR 006[0]=g k o r) AND (008[33]=b OR 006[16]=b)
-ContentType.Website = (Leader[67]=as OR 006[0]=s) AND (008[21]=w OR 006[4]=w)
-
-#MediaType
-MediaType.ActivityCard = 007[01]=ka
-MediaType.Atlas = 007[01]=ad
-MediaType.Braille = 007[01]=fb OR 007[01]=tc
-MediaType.Broadside = Heuristic (300 field)
-MediaType.Chart = 007[01]=kn
-MediaType.Collage = 007[01]=kc
-MediaType.ComputerCard = 007[01]=ck
-MediaType.ComputerChipCartridge = 007[01]=cb
-MediaType.ComputerDiscCartridge = 007[01]=ce
-MediaType.ComputerDisk = 007[01]=cd
-MediaType.ComputerFloppyDisk = 007[01]=cj
-MediaType.ComputerMagnetoOpticalDisc = 007[01]=cm
-MediaType.ComputerOpticalDisc = 007[01]=co
-MediaType.ComputerOpticalDiscCartridge = 007[01]=cc
-MediaType.ComputerOther = 007[0]=c 007[1]!={abcdefhjkmor}
-MediaType.ComputerTapeCartridge = 007[01]=ca
-MediaType.ComputerTapeCassette = 007[01]=cf
-MediaType.ComputerTapeReel = 007[01]=ch
-MediaType.Drawing = 007[01]=kd
-MediaType.Electronic = Computer Resource
-MediaType.Electronic245 = 245h contains [electronic resource]
-MediaType.ElectronicDirect = Computer Resource
-MediaType.FilmCartridge = 007[01]=mc
-MediaType.FilmCassette = 007[01]=mf
-MediaType.FilmOther = 007[0]=m 007[1]!={cfor}
-MediaType.FilmRoll = 007[01]=mo
-MediaType.FilmReel = 007[01]=mr
-MediaType.Filmslip = 007[01]=gd
-MediaType.Filmstrip = 007[01]=gf
-MediaType.FilmstripCartridge = 007[01]=gc
-MediaType.FilmstripRoll = 007[01]=go
-MediaType.FlashCard = 007[01]=ko
-MediaType.GlobeCelestial = 007[01]=da
-MediaType.GlobeEarthMoon = 007[01]=de
-MediaType.GlobeOther = 007[0]=d 007[1]!={abce}
-MediaType.GlobePlanetary = 007[01]=db
-MediaType.GlobeTerrestrial = 007[01]=dc
-MediaType.Icon = 007[01]=kq
-MediaType.ImageOther = 007[0]=a 007[1]!={acdefghijklnopqrsv}
-MediaType.ImagePrint = 007[01]=kj
-MediaType.Kit = 007[0]=o
-MediaType.LooseLeaf = 007[01]=td
-MediaType.Map = 007[01]=aj
-MediaType.MapDiagram = 007[01]=ag
-MediaType.MapModel = 007[01]=aq
-MediaType.MapOther = 007[0]=a 007[1]!={dgjkqrsy}
-MediaType.MapProfile = 007[01]=ak
-MediaType.MapSection = 007[01]=as
-MediaType.MapView = 007[01]=ay
-MediaType.Microfiche = 007[01]=he
-MediaType.MicroficheCassette = 007[01]=hf
-MediaType.Microfilm = 007[0]=h 007[1]!={abcdefghj}
-MediaType.MicrofilmCartridge = 007[01]=hb
-MediaType.MicrofilmCassette = 007[01]=hc
-MediaType.MicrofilmReel = 007[01]=hd
-MediaType.MicrofilmRoll = 007[01]=hj
-MediaType.MicrofilmSlip = 007[01]=hh
-MediaType.Microform = Microform
-MediaType.MicroformApetureCard = 007[01]=ha
-MediaType.Microopaque = 007[01]=hg
-MediaType.MusicalScore = 007[0]=q
-MediaType.Online = 007[01]=cr OR has 856 field with indicator 40
-MediaType.Painting = 007[01]=ke
-MediaType.Photo = 007[01]=kv
-MediaType.PhotomechanicalPrint = 007[01]=kf
-MediaType.Photonegative = 007[01]=kg
-MediaType.PhotoPrint = 007[01]=kh
-MediaType.Picture = 007[01]=ki
-MediaType.Postcard = 007[01]=kp
-MediaType.Poster = 007[01]=kk
-MediaType.Print = 007[01]=ta
-MediaType.PrintLarge = 007[01]=tb
-MediaType.ProjectedMediumOther = 007[0]=g 007[1]!={cdfost}
-MediaType.Radiograph = 007[01]=kr
-MediaType.SensorImage = 007[01]=ar OR 007[0]=r
-MediaType.Slide = 007[01]=gs
-MediaType.Software = Computer Resource
-MediaType.SoundCartridge = 007[01]=sg
-MediaType.SoundCassette = 007[01]=ss
-MediaType.SoundCylinder = 007[01]=se
-MediaType.SoundDisc = 007[01]=sd
-MediaType.SoundDiscCD = 007[01]=sd AND 007[3]=f
-MediaType.SoundDiscLP = 007[01]=sd AND 007[3]=abde
-MediaType.SoundRecordingOther = 007[0]=s 007[1]!={cdefgirqstw}
-MediaType.SoundRecordingOnline = 007[0]=s 007[1]=z AND Online
-MediaType.SoundRoll = 007[01]=sq
-MediaType.SoundTapeReel = 007[01]=st
-MediaType.SoundTrackFilm = 007[01]=si
-MediaType.SoundWireRecording = 007[01]=sw
-MediaType.StudyPrint = 007[01]=ks
-MediaType.TactileCombination = 007[01]=fc
-MediaType.TactileMoon = 007[01]=fa
-MediaType.TactileNoWritingSystem = 007[01]=fd
-MediaType.TactileOther = 007[0]=f 007[1]!={abcd}
-MediaType.TextOther = 007[0]=t 007[1]!={abcd}
-MediaType.TechnicalDrawing = 007[01]=kl
-MediaType.Transparency = 007[01]=gt
-MediaType.Video8mm = 007[01]=vf AND 007[4]=p
-MediaType.VideoBeta = 007[01]=vf AND 007[4]=a
-MediaType.VideoBetacam = 007[01]=vf AND 007[4]=i
-MediaType.VideoBetacamSP = 007[01]=vf AND 007[4]=j
-MediaType.VideoBluRay = 007[01]=vd AND 007[4]=s
-MediaType.VideoCartridge = 007[01]=vc
-MediaType.VideoCassette = 007[01]=vf
-MediaType.VideoCapacitance = 007[01]=vd AND 007[4]=h
-MediaType.VideoD2 = 007[01]=vf AND 007[4]=o
-MediaType.VideoDisc = 007[01]=vd
-MediaType.VideoDVD = 007[01]=vd AND 007[4]=v
-MediaType.VideoEIAJ = 007[01]=vr AND 007[4]=d
-MediaType.VideoHi8 = 007[01]=vf AND 007[4]=q
-MediaType.VideoLaserdisc = 007[01]=vd AND 007[4]=g
-MediaType.VideoMII = 007[01]=vf AND 007[4]=m
-MediaType.VideoOther = 007[0]=v AND (007[1]!= {cdfr}  OR  007[4]!={abcdefghijkmopqsv}) AND NOT isOnline
-MediaType.VideoOnline = 007[0]=v AND (007[1]!= {cdfr}  OR  007[4]!={abcdefghijkmopqsv}) AND isOnline
-MediaType.VideoQuadruplex = 007[01]=vr AND 007[4]=f
-MediaType.VideoReel = 007[01]=vr
-MediaType.VideoSuperVHS = 007[01]=vf AND 007[4]=k
-MediaType.VideoTypeC = 007[01]=vr AND 007[4]=e
-MediaType.VideoUMatic = 007[01]=vf AND 007[4]=c
-MediaType.VideoVHS = 007[01]=vf AND 007[4]=b
-MediaType.VideoVHS_From500 = 500 or 538 field contains VHS
-MediaType.VideoDVD_From500 = 500 or 538 field contains DVD
-MediaType.VideoLaserdisc_From500 = 500 or 538 field contains Laserdisc
-MediaType.VideoBeta_From500 = 500 or 538 field contains Beta
-MediaType.VideoVHS_From300 = 300 field contains videocassette -- 1/2
-MediaType.VideoDVD_From300 = 300 field contains videodisc -- 4 1/2
-MediaType.VideoLaserdisc_From300 = 300 field contains videodisc -- 12
-
-#FormOfItem
-FormOfItem.Microfilm = 008[23]=a OR 006[6]=a OR 008[29]=a OR 006[12]=a
-FormOfItem.Microfiche = 008[23]=b OR 006[6]=b OR 008[29]=b OR 006[12]=b
-FormOfItem.Microopaque = 008[23]=c OR 006[6]=c OR 008[29]=c OR 006[12]=c
-FormOfItem.PrintLarge = 008[23]=d OR 006[6]=d OR 008[29]=d OR 006[12]=d
-FormOfItem.Braille = 008[23]=f OR 006[6]=f OR 008[29]=f OR 006[12]=f
-FormOfItem.Online = 008[23]=o OR 006[6]=o OR 008[29]=o OR 006[12]=o
-FormOfItem.ElectronicDirect = 008[23]=q OR 006[6]=q OR 008[29]=q OR 006[12]=q
-FormOfItem.Electronic = 008[23]=s OR 006[6]=s OR 08[29]=s OR 006[12]=s
-FormOfItem.Print = 008[23]=r OR 006[6]=r OR 008[29]=r OR 006[12]=r
-
-#CombinedType
-CombinedType.EBook = Is Book AND is Online
-CombinedType.EJournal = Is Serial AND is Online
-
-#ControlType
-ControlType.Archive = Archive
diff --git a/import/translation_maps/htwk_udk_map.properties b/import/translation_maps/htwk_udk_map.properties
deleted file mode 100644
index 4fe478407792ece17418e2ab62f3bbc5e57fd55d..0000000000000000000000000000000000000000
--- a/import/translation_maps/htwk_udk_map.properties
+++ /dev/null
@@ -1,142 +0,0 @@
-# UDK to Facet mapping file HTWK => trunk/import/translation_maps
-# Copy of mapping file for TUBAF - to be changed.
-
-# UDK 1978
-htwk_udk.pattern_0 = ^DK 0=>Allgemeines
-htwk_udk.pattern_1 = ^DK 1=>Philosophie. Psychologie
-htwk_udk.pattern_2 = ^DK 2=>Religion. Theologie
-htwk_udk.pattern_3 = ^DK 3$=>Sozialwissenschaften. Statistik. Politik. Volkswirtschaft. Handel. Recht. Verwaltung. Kriegskunst. Fürsorge. Versicherung. Erziehung. Volkskunde
-htwk_udk.pattern_4 = ^DK 30=>Soziologie. Soziale Fragen. Soziographie
-htwk_udk.pattern_5 = ^DK 31=>Statistik
-htwk_udk.pattern_6 = ^DK 32=>Politik
-htwk_udk.pattern_7 = ^DK 33=>Wirtschaft. Wirtschaftswissenschaften
-htwk_udk.pattern_8 = ^DK 34=>Recht. Rechtswissenschaften
-htwk_udk.pattern_9 = ^DK 35=>Öffentliche Verwaltung. Kriegskunst. Kriegswissenschaften
-htwk_udk.pattern_10 = ^DK 36=>Fürsorge. Volkshilfe. Versicherung
-htwk_udk.pattern_11 = ^DK 37=>Erziehung. Bildung. Unterricht. Freizeitgestaltung
-htwk_udk.pattern_12 = ^DK 38=>Metrologie. Maß- und Gewichtswesen
-htwk_udk.pattern_13 = ^DK 39=>Völkerkunde. Volkskunde. Sitte. Brauchtum. Volksleben. Folklore
-htwk_udk.pattern_14 = ^DK 3\D=>Sozialwissenschaften. Statistik. Politik. Volkswirtschaft. Handel. Recht. Verwaltung. Kriegskunst. Fürsorge. Versicherung. Erziehung. Volkskunde
-htwk_udk.pattern_15 = ^DK 5$=>Mathematik. Naturwissenschaften
-htwk_udk.pattern_16 = ^DK 502=>Naturschutz
-htwk_udk.pattern_17 = ^DK 504=>Umweltwissenschaften
-htwk_udk.pattern_18 = ^DK 50[\D1]=>Allgemeines über die Naturwissenschaften
-htwk_udk.pattern_19 = ^DK 51=>Mathematik
-htwk_udk.pattern_20 = ^DK 52=>Astronomie. Gedäsie
-htwk_udk.pattern_21 = ^DK 53$=>Physik
-htwk_udk.pattern_22 = ^DK 530=>Theoretische Physik
-htwk_udk.pattern_23 = ^DK 531=>Mechanik starrer Körper
-htwk_udk.pattern_24 = ^DK 534=>Mechnische Schwingungen
-htwk_udk.pattern_25 = ^DK 535=>Optik
-htwk_udk.pattern_26 = ^DK 536=>Wärmelehre
-htwk_udk.pattern_27 = ^DK 539$=>Physikalischer Aufbau der Materie
-htwk_udk.pattern_28 = ^DK 539\.1=>Kern- und Atomphysik
-htwk_udk.pattern_29 = ^DK 539\.2=>Festkörperphysik
-htwk_udk.pattern_30 = ^DK 539\.[3-8]=>Deformation. Festigkeit
-htwk_udk.pattern_31 = ^DK 53[23]=>Mechanik der Flüssigkeiten und Gase
-htwk_udk.pattern_32 = ^DK 53[78]=>Elektrizität. Magnetismus
-htwk_udk.pattern_33 = ^DK 53\D=>Physik
-htwk_udk.pattern_34 = ^DK 54$=>Chemie. Mineralogie
-htwk_udk.pattern_35 = ^DK 541=>Physikalische Chemie
-htwk_udk.pattern_36 = ^DK 542=>Experimentalchemie
-htwk_udk.pattern_37 = ^DK 543=>Analytische Chemie
-htwk_udk.pattern_38 = ^DK 546=>Anorganische Chemie
-htwk_udk.pattern_39 = ^DK 547=>Organische Chemie
-htwk_udk.pattern_40 = ^DK 548=>Kristallographie
-htwk_udk.pattern_41 = ^DK 549=>Mineralogie
-htwk_udk.pattern_42 = ^DK 54\D=>Chemie. Mineralogie
-htwk_udk.pattern_43 = ^DK 55=>Geologwissenschaften ohne Paläontologie
-htwk_udk.pattern_44 = ^DK 56=>Paläontologie
-htwk_udk.pattern_45 = ^DK 57=>Biologie
-htwk_udk.pattern_46 = ^DK 58=>Botanik
-htwk_udk.pattern_47 = ^DK 59=>Zoologie
-htwk_udk.pattern_48 = ^DK 5\D=>Mathematik. Naturwissenschaften
-htwk_udk.pattern_49 = ^DK 6$=>Angewandte Wissenschaften. Medizin. Technik
-htwk_udk.pattern_50 = ^DK 61=>Medizin
-htwk_udk.pattern_51 = ^DK 62$=>Ingenieurwesen. Technik im Allgemeinen
-htwk_udk.pattern_52 = ^DK 620=>Werkstoffprüfung. Warenkunde. Kraftzentralen. Energiewirtschaft
-htwk_udk.pattern_53 = ^DK 621$=>Maschinen-, Anlagen- & Energietechnik
-htwk_udk.pattern_54 = ^DK 621\.3=>Elektrotechnik, Elektronik
-htwk_udk.pattern_55 = ^DK 621\.7=>Fertigungstechnik. Fügen. Oberflächenbehandlung
-htwk_udk.pattern_56 = ^DK 621\.8=>Maschinenelemente. Fördermittel. Schmierung
-htwk_udk.pattern_57 = ^DK 621\.9=>Spanende Umformtechnik. Zerkleinerungs- und Abscheidevorrichtungen. Blechbearbeitung
-htwk_udk.pattern_58 = ^DK 621\.[0-24-6]=>Maschinen-, Anlagen- & Energietechnik
-htwk_udk.pattern_59 = ^DK 622=>Bergbau. Rohstoffgewinnung
-htwk_udk.pattern_60 = ^DK 623=>Wehrtechnik
-htwk_udk.pattern_61 = ^DK 624=>Geotechnik. Bauingenieurwesen
-htwk_udk.pattern_62 = ^DK 625=>Technik der Verkehrswege zu Lande. Eisenbahnbau. Straßenbau. Wegebau
-htwk_udk.pattern_63 = ^DK 626=>Allgemeiner Wasserbau. Kanalbau. Landeskulturbau
-htwk_udk.pattern_64 = ^DK 627=>Wasserbau. Hafen- und Seebau
-htwk_udk.pattern_65 = ^DK 628=>Gesundheitstechnik. Wasser. Sanitäre Anlagen. Lichttechnik
-htwk_udk.pattern_66 = ^DK 629=>Fahrzeugtechnik
-htwk_udk.pattern_67 = ^DK 62\(038\)$=>Technik - Wörterbücher
-htwk_udk.pattern_68 = ^DK 62\(083\.7\)$=>Technik - Normen, Standards
-htwk_udk.pattern_69 = ^DK 62\D=>Ingenieurwesen. Technik im Allgemeinen
-htwk_udk.pattern_70 = ^DK 63$=>Landwirtschaft und verwandte Wissenschaften und Techniken
-htwk_udk.pattern_71 = ^DK 631$=>Landwirtschaft und verwandte Wissenschaften und Techniken
-htwk_udk.pattern_72 = ^DK 631\.4=>Bodenkunde
-htwk_udk.pattern_73 = ^DK 631\.[0-35-9]=>Landwirtschaft und verwandte Wissenschaften und Techniken
-htwk_udk.pattern_74 = ^DK 63[02-9\D]=>Landwirtschaft und verwandte Wissenschaften und Techniken
-htwk_udk.pattern_75 = ^DK 64=>Hauswirtschaft
-htwk_udk.pattern_76 = ^DK 65=>Betriebsführung und Organisation von Industrie, Handel und Verkehr
-htwk_udk.pattern_77 = ^DK 66$=>Chemische Technik. Chemische Industrie. Verwandte Industriezweige
-htwk_udk.pattern_78 = ^DK 66-=>Chemische Technik. Chemische Industrie. Verwandte Industriezweige
-htwk_udk.pattern_79 = ^DK 666=>Glas. Email. Keramik. Kunststeine. Zement (Gesteinshüttenkunde)
-htwk_udk.pattern_80 = ^DK 667=>Farbtechnische Industrien
-htwk_udk.pattern_81 = ^DK 669=>Metallurgie. Metalle und Legierungen
-htwk_udk.pattern_82 = ^DK 66[1-5]=>Verschiedene Industriezweige
-htwk_udk.pattern_83 = ^DK 66\.0=>Verfahrenstechnik
-htwk_udk.pattern_84 = ^DK 67$=>Verschiedene Industrien und Gewerbe. Mechanische Technologie
-htwk_udk.pattern_85 = ^DK 671=>Gegenstände aus Edelmetall und Edelsteinen
-htwk_udk.pattern_86 = ^DK 672=>Gegenstände aus Eisen und Stahl
-htwk_udk.pattern_87 = ^DK 673=>Gegenstände aus Nichteisenmetallen außer Edelmetallen
-htwk_udk.pattern_88 = ^DK 674=>Holzindustrie
-htwk_udk.pattern_89 = ^DK 675=>Lederindustrie. Pelze. Kunstleder
-htwk_udk.pattern_90 = ^DK 676=>Papierindustrie
-htwk_udk.pattern_91 = ^DK 677=>Textilindustrie. Textilveredelung. Kabelindustrie
-htwk_udk.pattern_92 = ^DK 678=>Industrie der natürlichen und synthetischen makromolekularen Stoffe. Gummiindustrie. Kunststoffindustrie
-htwk_udk.pattern_93 = ^DK 679=>Technologie der Steine. Industrie der Steine und Erden
-htwk_udk.pattern_94 = ^DK 67\D=>Verschiedene Industrien und Gewerbe. Mechanische Technologie
-htwk_udk.pattern_95 = ^DK 68$=>Verschiedene Industrien und Gewerbe
-htwk_udk.pattern_96 = ^DK 681$=>Feinmechanik
-htwk_udk.pattern_97 = ^DK 681\.3=>IT. Informatik. Software
-htwk_udk.pattern_98 = ^DK 681\.[0-24-9]=>Feinmechanik
-htwk_udk.pattern_99 = ^DK 682=>Schmiedegewerbe. Hufbeschlag
-htwk_udk.pattern_100 = ^DK 683=>Eisenwaren. Schlosserei
-htwk_udk.pattern_101 = ^DK 684=>Möbelindustrie und verwandte Industrien
-htwk_udk.pattern_102 = ^DK 685=>Sattlerei. Riemerei. Schuhmacherei. Handschuhmacherei. Reiseartikel und Sportgeräte. Spielartikel
-htwk_udk.pattern_103 = ^DK 686=>Buchbinderei. Metallisierung. Glaserei. Bürogeräte
-htwk_udk.pattern_104 = ^DK 687=>Bekleidungsindustrie. Schönheitspflege
-htwk_udk.pattern_105 = ^DK 688=>Kunstdrechselei. Spielwaren. Dekorationsartikel
-htwk_udk.pattern_106 = ^DK 689=>Technische und handwerkliche Liebhaberarbeiten. Bastelarbeiten
-htwk_udk.pattern_107 = ^DK 68\D=>Verschiedene Industrien und Gewerbe
-htwk_udk.pattern_108 = ^DK 69=>Baustoffe. Bauhandwerk. Bauarbeiten
-htwk_udk.pattern_109 = ^DK 6\D=>Angewandte Wissenschaften. Medizin. Technik
-htwk_udk.pattern_110 = ^DK 7$=>Kunst. Kunstgewerbe. Photographie. Musik. Spiel. Sport
-htwk_udk.pattern_111 = ^DK 71=>Raumordnung. Landesplanung. Städtebau. Landschaftsgestaltung. Gartenarchitektur
-htwk_udk.pattern_112 = ^DK 72=>Architektur. Baukunst
-htwk_udk.pattern_113 = ^DK 73=>Bildhauerei. Münzkunde. Künstlerische Metallverarbeitung
-htwk_udk.pattern_114 = ^DK 74=>Zeichenkunst. Kunstgewerbe
-htwk_udk.pattern_115 = ^DK 75=>Malerei
-htwk_udk.pattern_116 = ^DK 76=>Graphische Künste. Graphik
-htwk_udk.pattern_117 = ^DK 77=>Photographie
-htwk_udk.pattern_118 = ^DK 78=>Musik
-htwk_udk.pattern_119 = ^DK 79=>Unterhaltung. Spiele. Sport
-htwk_udk.pattern_120 = ^DK 7\D=>Kunst. Kunstgewerbe. Photographie. Musik. Spiel. Sport
-htwk_udk.pattern_121 = ^DK 8=>Sprachwissenschaften. Philologie. Schöne Literatur. Literaturwissenschaft
-htwk_udk.pattern_122 = ^DK 9$=>Geographie. Biographien. Geschichte
-htwk_udk.pattern_123 = ^DK 91$=>Geographie. Erforschung der Erde und Länder. Reisen. Länderkunde. Landeskunde
-htwk_udk.pattern_124 = ^DK 910=>Allg. Fragen der Geographie
-htwk_udk.pattern_125 = ^DK 911=>Physische Geographie & Anthropogeographie
-htwk_udk.pattern_126 = ^DK 912=>Karten und Atlanten
-htwk_udk.pattern_127 = ^DK 91[3-9]=>Geographie. Erforschung der Erde und Länder. Reisen. Länderkunde. Landeskunde
-htwk_udk.pattern_128 = ^DK 92=>Biographien. Genealogie. Heraldik
-htwk_udk.pattern_129 = ^DK 93=>Geschichtswissenschaft. Alte Geschichte
-htwk_udk.pattern_130 = ^DK 94=>Geschichte Europas
-htwk_udk.pattern_131 = ^DK 95=>Geschichte Asiens
-htwk_udk.pattern_132 = ^DK 96=>Geschichte Afrikas
-htwk_udk.pattern_133 = ^DK 97=>Geschichte Nordamerikas
-htwk_udk.pattern_134 = ^DK 98=>Geschichte Südamerikas
-htwk_udk.pattern_135 = ^DK 99=>Geschichte der ozeanischen und polarischen Gebiete
-htwk_udk.pattern_136 = ^DK 9[0\D]=>Geographie. Biographien. Geschichte
-
diff --git a/import/translation_maps/instrument_map.properties b/import/translation_maps/instrument_map.properties
deleted file mode 100644
index 7f5f7841729ce82f8af4cc9c685b662c0dc1019d..0000000000000000000000000000000000000000
--- a/import/translation_maps/instrument_map.properties
+++ /dev/null
@@ -1,101 +0,0 @@
-# Mapping of Instrument Codes from 048 to User Friendly Term
-
-ba = Horn
-bb = Trumpet
-bc = Cornet
-bd = Trombone
-be = Tuba
-bf = Baritone horn
-bn = Brass, Unspecified
-bu = Brass, Unknown
-by = Brass, Ethnic
-bz = Brass, Other
-ca = Choruses, Mixed
-cb = Chorus, Women's
-cc = Choruses, Men's
-cd = Choruses, Children's
-cn = Choruses, Unspecified
-cu = Chorus, Unknown
-cy = Choruses, Ethnic
-ea = Synthesizer
-eb = Electronic Tape
-ec = Computer
-ed = Ondes Martinot
-en = Electronic, Unspecified
-eu = Electronic, Unknown
-ez = Electronic, Other
-ka = Piano
-kb = Organ
-kc = Harpsichord
-kd = Clavichord
-ke = Continuo
-kf = Celeste
-kn = Keyboard, Unspecified
-ku = Keyboard, Unknown
-ky = Keyboard, Ethnic
-kz = Keyboard, Other
-oa = Full orchestra
-ob = Chamber orchestra
-oc = String orchestra
-od = Band
-oe = Dance orchestra
-of = Brass band
-on = Larger ensemble, Unspecified
-ou = Larger ensemble, Unknown
-oy = Larger ensemble, Ethnic
-oz = Larger ensemble, Other
-pa = Timpani
-pb = Xylophone
-pc = Marimba
-pd = Drum
-pn = Percussion, Unspecified
-pu = Percussion, Unknown
-py = Percussion, Ethnic
-pz = Percussion, Other
-sa = Violin
-sb = Viola
-sc = Violoncello
-sd = Double bass
-se = Viol
-sf = Viola d'amore
-sg = Viola da gamba
-sn = Bowed Strings, Unspecified
-su = Bowed Strings, Unknown
-sy = Bowed Strings, Ethnic
-sz = Bowed Strings, Other
-ta = Harp
-tb = Guitar
-tc = Lute
-td = Mandolin
-tn = Plucked Strings, Unspecified
-tu = Plucked Strings, Unknown
-ty = Plucked Strings, Ethnic
-tz = Plucked Strings, Other
-va = Soprano voice
-vb = Mezzo soprano voice
-vc = Alto voice
-vd = Tenor voice
-ve = Baritone voice
-vf = Bass voice
-vg = Counter tenor voice
-vh = High voice
-vi = Medium voice
-vj = Low voice
-vn = Voices, Unspecified
-vu = Voices, Unknown
-vy = Voices, Ethnic
-wa = Flute
-wb = Oboe
-wc = Clarinet
-wd = Bassoon
-we = Piccolo
-wf = English horn
-wg = Bass clarinet
-wh = Recorder
-wi = Saxophone
-wn = Woodwinds, Unspecified
-wu = Woodwinds, Unknown
-wy = Woodwinds, Ethnic
-wz = Woodwinds, Other
-zn = Unspecified instruments
-zu = Unknown
diff --git a/import/translation_maps/language_map.properties b/import/translation_maps/language_map.properties
deleted file mode 100644
index 399fcfbca90062dc675abebb5fd0766890f9f3e3..0000000000000000000000000000000000000000
--- a/import/translation_maps/language_map.properties
+++ /dev/null
@@ -1,539 +0,0 @@
-aar = Afar
-aav = Austro-Asiatic
-abk = Abkhazian
-ace = Achinese
-ach = Acoli
-ada = Adangme
-ady = Adyghe
-afa = Afro-Asiatic
-afh = Afrihili
-afr = Afrikaans
-ain = Ainu
-aka = Akan
-akk = Akkadian
-alb = Albanian
-ale = Aleut
-alg = Algonquian
-alt = Southern Altai
-alv = Atlantic-Congo
-amh = Amharic
-ang = Old English
-anp = Angika
-apa = Apache
-aqa = Alacalufan
-aql = Algic
-ara = Arabic
-arc = Aramaic
-arg = Aragonese
-arm = Armenian
-arn = Mapudungun
-arp = Arapaho
-art = Artificial
-arw = Arawak
-asm = Assamese
-ast = Asturian
-ath = Athapascan
-auf = Arauan
-aus = Australian
-ava = Avaric
-ave = Avestan
-awa = Awadhi
-awd = Arawakan
-aym = Aymara
-azc = Uto-Aztecan
-aze = Azerbaijani
-bad = Banda
-bai = Bamileke
-bak = Bashkir
-bal = Baluchi
-bam = Bambara
-ban = Balinese
-baq = Basque
-bas = Basa
-bat = Baltic
-bej = Beja
-bel = Belarusian
-bem = Bemba
-ben = Bengali
-ber = Berber
-bho = Bhojpuri
-bih = Bihari
-bik = Bikol
-bin = Bini
-bis = Bislama
-bla = Siksika
-bnt = Bantu
-bos = Bosnian
-bra = Braj
-bre = Breton
-btk = Batak
-bua = Buriat
-bug = Buginese
-bul = Bulgarian
-bur = Burmese
-byn = Blin
-cad = Caddo
-cai = Central American Indian
-car = Galibi Carib
-cat = Catalan
-cau = Caucasian
-cba = Chibchan
-ccn = North Caucasian
-ccs = South Caucasian
-cdc = Chadic
-cdd = Caddoan
-ceb = Cebuano
-cel = Celtic
-cha = Chamorro
-chb = Chibcha
-che = Chechen
-chg = Chagatai
-chi = Chinese
-chk = Chuukese
-chm = Mari
-chn = Chinook
-cho = Choctaw
-chp = Chipewyan
-chr = Cherokee
-chu = Church Slavic
-chv = Chuvash
-chy = Cheyenne
-cmc = Chamic
-cop = Coptic
-cor = Cornish
-cos = Corsican
-cpe = Creole
-cpf = Creole
-cpp = Creole
-cre = Cree
-crh = Crimean Tatar
-crp = Creoles
-csb = Kashubian
-csu = Central Sudanic
-cus = Cushitic
-cze = Czech
-dak = Dakota
-dan = Danish
-dar = Dargwa
-day = Land Dayak
-del = Delaware
-den = Slave
-dgr = Dogrib
-din = Dinka
-div = Divehi
-dmn = Mande
-doi = Dogri
-dra = Dravidian
-dsb = Lower Sorbian
-dua = Duala
-dum = Dutch
-dut = Dutch
-dyu = Dyula
-dzo = Dzongkha
-efi = Efik
-egx = Egyptian
-egy = Ancient Egyptian
-eka = Ekajuk
-elx = Elamite
-eng = English
-enm = Middle English
-epo = Esperanto
-est = Estonian
-esx = Eskimo-Aleut
-euq = Basque
-ewe = Ewe
-ewo = Ewondo
-fan = Fang
-fao = Faroese
-fat = Fanti
-fij = Fijian
-fil = Filipino
-fin = Finnish
-fiu = Finno-Ugrian
-fon = Fon
-fox = Formosan
-fre = French
-frm = Middle French
-fro = Old French
-frr = Northern Frisian
-frs = Eastern Frisian
-fry = Western Frisian
-ful = Fulah
-fur = Friulian
-gaa = Ga
-gay = Gayo
-gba = Gbaya
-gem = Germanic
-geo = Georgian
-ger = German
-gez = Geez
-gil = Gilbertese
-gla = Gaelic
-gle = Irish
-glg = Galician
-glv = Manx
-gme = East Germanic
-gmh = Middle High German
-gmq = North Germanic
-gmw = West Germanic
-goh = Old High German
-gon = Gondi
-gor = Gorontalo
-got = Gothic
-grb = Grebo
-grc = Ancient Greek
-gre = Greek
-grk = Greek
-grn = Guarani
-gsw = Swiss German
-guj = Gujarati
-gwi = Gwich`in
-hai = Haida
-hat = Haitian
-hau = Hausa
-haw = Hawaiian
-heb = Hebrew
-her = Herero
-hil = Hiligaynon
-him = Himachali
-hin = Hindi
-hit = Hittite
-hmn = Hmong
-hmo = Hiri Motu
-hmx = Hmong-Mien
-hok = Hokan
-hrv = Croatian
-hsb = Upper Sorbian
-hun = Hungarian
-hup = Hupa
-hyx = Armenian
-iba = Iban
-ibo = Igbo
-ice = Icelandic
-ido = Ido
-iii = Sichuan Yi
-iir = Indo-Iranian
-ijo = Ijo
-iku = Inuktitut
-ile = Interlingue
-ilo = Iloko
-ina = Interlingua
-inc = Indic
-ind = Indonesian
-ine = Indo-European
-inh = Ingush
-ipk = Inupiaq
-ira = Iranian
-iro = Iroquoian
-ita = Italian
-itc = Italic
-jav = Javanese
-jbo = Lojban
-jpn = Japanese
-jpr = Judeo-Persian
-jpx = Japanese
-jrb = Judeo-Arabic
-kaa = Kara-Kalpak
-kab = Kabyle
-kac = Kachin
-kal = Kalaallisut
-kam = Kamba
-kan = Kannada
-kar = Karen
-kas = Kashmiri
-kau = Kanuri
-kaw = Kawi
-kaz = Kazakh
-kbd = Kabardian
-kdo = Kordofanian
-kha = Khasi
-khi = Khoisan
-khm = Central Khmer
-kho = Khotanese
-kik = Kikuyu
-kin = Kinyarwanda
-kir = Kirghiz
-kmb = Kimbundu
-kok = Konkani
-kom = Komi
-kon = Kongo
-kor = Korean
-kos = Kosraean
-kpe = Kpelle
-krc = Karachay-Balkar
-krl = Karelian
-kro = Kru languages
-kru = Kurukh
-kua = Kuanyama
-kum = Kumyk
-kur = Kurdish
-kut = Kutenai
-lad = Ladino
-lah = Lahnda
-lam = Lamba
-lao = Lao
-lat = Latin
-lav = Latvian
-lez = Lezghian
-lim = Limburgan
-lin = Lingala
-lit = Lithuanian
-lol = Mongo
-loz = Lozi
-ltz = Luxembourgish
-lua = Luba-Lulua
-lub = Luba-Katanga
-lug = Ganda
-lui = Luiseno
-lun = Lunda
-luo = Luo
-lus = Lushai
-mac = Macedonian
-mad = Madurese
-mag = Magahi
-mah = Marshallese
-mai = Maithili
-mak = Makasar
-mal = Malayalam
-man = Mandingo
-mao = Maori
-map = Austronesian
-mar = Marathi
-mas = Masai
-may = Malay
-mdf = Moksha
-mdr = Mandar
-men = Mende
-mga = Middle Irish
-mic = Mi-kmaq
-min = Minangkabau
-mkh = Mon-Khmer
-mlg = Malagasy
-mlt = Maltese
-mnc = Manchu
-mni = Manipuri
-mno = Manobo
-moh = Mohawk
-mol = Moldavian
-mon = Mongolian
-mos = Mossi
-mun = Munda
-mus = Creek
-mwl = Mirandese
-mwr = Marwari
-myn = Mayan
-myv = Erzya
-nah = Nahuatl
-nai = North American Indian
-nap = Neapolitan
-nau = Nauru
-nav = Navajo
-nbl = Ndebele
-nde = North Ndebele
-ndo = Ndonga
-nds = Low German
-nep = Nepali
-new = Nepal Bhasa
-ngf = Trans-New Guinea
-nia = Nias
-nic = Niger-Kordofanian
-niu = Niuean
-nno = Norwegian Nynorsk
-nob = Norwegian Bokmål
-nog = Nogai
-non = Old Norse
-nor = Norwegian
-nqo = N'Ko
-nso = Pedi
-nub = Nubian
-nwc = Classical Newari
-nya = Chichewa
-nym = Nyamwezi
-nyn = Nyankole
-nyo = Nyoro
-nzi = Nzima
-oci = Occitan
-oji = Ojibwa
-omq = Oto-Manguean
-omv = Omotic
-ori = Oriya
-orm = Oromo
-osa = Osage
-oss = Ossetian
-ota = Ottoman Turkish
-oto = Otomian
-paa = Papuan
-pag = Pangasinan
-pal = Pahlavi
-pam = Pampanga
-pan = Panjabi
-pap = Papiamento
-pau = Palauan
-peo = Old Persian
-per = Persian
-phi = Philippine
-phn = Phoenician
-plf = Central Malayo-Polynesian
-pli = Pali
-pol = Polish
-pon = Pohnpeian
-por = Portuguese
-poz = Malayo-Polynesian
-pqe = Eastern Malayo-Polynesian
-pqw = Western Malayo-Polynesian
-pra = Prakrit languages
-pro = Old Provençal
-pus = Pushto
-que = Quechua
-qwe = Quechuan
-raj = Rajasthani
-rap = Rapanui
-rar = Rarotongan
-rcf = Reunionese, Reunion Creole
-roa = Romance
-roh = Romansh
-rom = Romany
-rum = Romanian
-run = Rundi
-rup = Aromanian
-rus = Russian
-sad = Sandawe
-sag = Sango
-sah = Yakut
-sai = South American Indian
-sal = Salishan
-sam = Samaritan Aramaic
-san = Sanskrit
-sas = Sasak
-sat = Santali
-scc = Serbian
-scn = Sicilian
-sco = Scots
-scr = Croatian
-sdv = Eastern Sudanic
-sel = Selkup
-sem = Semitic
-sga = Old Irish
-sgn = Sign Language
-shn = Shan
-sid = Sidamo
-sin = Sinhala
-sio = Siouan
-sit = Sino-Tibetan
-sla = Slavic
-slo = Slovak
-slv = Slovenian
-sma = Southern Sami
-sme = Northern Sami
-smi = Sami languages
-smj = Lule Sami
-smn = Inari Sami
-smo = Samoan
-sms = Skolt Sami
-sna = Shona
-snd = Sindhi
-snk = Soninke
-sog = Sogdian
-som = Somali
-son = Songhai
-sot = Southern Sotho
-spa = Spanish
-sqi = Albanian
-srd = Sardinian
-srn = Sranan Tongo
-srr = Serer
-ssa = Nilo-Saharan
-ssw = Swati
-suk = Sukuma
-sun = Sundanese
-sus = Susu
-sux = Sumerian
-swa = Swahili
-swe = Swedish
-syc = Classical Syriac
-syd = Samoyedic
-syr = Syriac
-tah = Tahitian
-tai = Tai
-tam = Tamil
-tat = Tatar
-tbq = Tibeto-Burman
-tel = Telugu
-tem = Timne
-ter = Tereno
-tet = Tetum
-tgk = Tajik
-tgl = Tagalog
-tha = Thai
-tib = Tibetan
-tig = Tigre
-tir = Tigrinya
-tiv = Tiv
-tkl = Tokelau
-tlh = Klingon
-tli = Tlingit
-tmh = Tamashek
-tog = Tonga
-ton = Tonga
-tpi = Tok
-trk = Turkic
-tsi = Tsimshian
-tsn = Tswana
-tso = Tsonga
-tuk = Turkmen
-tum = Tumbuka
-tup = Tupi
-tur = Turkish
-tut = Altaic
-tuw = Tungus
-tvl = Tuvalu
-twi = Twi
-tyv = Tuvinian
-udm = Udmurt
-uga = Ugaritic
-uig = Uighur
-ukr = Ukrainian
-umb = Umbundu
-und = Undetermined
-urd = Urdu
-urj = Uralic
-uzb = Uzbek
-vai = Vai
-ven = Venda
-vie = Vietnamese
-vol = Volapük
-vot = Votic
-wak = Wakashan
-wal = Walamo
-war = Waray
-was = Washo
-wel = Welsh
-wen = Sorbian
-wln = Walloon
-wol = Wolof
-xal = Kalmyk
-xgn = Mongolian
-xho = Xhosa
-xnd = Na-Dene
-yao = Yao
-yap = Yapese
-yid = Yiddish
-yor = Yoruba
-ypk = Yupik
-zap = Zapotec
-zbl = Blissymbols
-zen = Zenaga
-zgh = Tamazight
-zha = Zhuang
-zhx = Chinese
-zle = East Slavic
-zls = South Slavic
-zlw = West Slavic
-znd = Zande
-zul = Zulu
-zun = Zuni
-zza = Zaza
-zxx = No linguistic content
-??? = Unknown
-mul = Multiple
-mis = Unknown
diff --git a/import/translation_maps/language_map_iso639-1.properties b/import/translation_maps/language_map_iso639-1.properties
deleted file mode 100644
index 55896f276c73f5647d07251bb50197a55f481b1f..0000000000000000000000000000000000000000
--- a/import/translation_maps/language_map_iso639-1.properties
+++ /dev/null
@@ -1,97 +0,0 @@
-ab = Abkhazian
-af = Afrikaans
-an = Aragonese
-ar = Arabic
-as = Assamese
-az = Azerbaijani
-be = Belarusian
-bg = Bulgarian
-bn = Bengali
-bo = Tibetan
-br = Breton
-bs = Bosnian
-ca = Catalan / Valencian
-ce = Chechen
-co = Corsican
-cs = Czech
-cu = Church Slavic
-cy = Welsh
-da = Danish
-de = German
-el = Greek
-en = English
-eo = Esperanto
-es = Spanish / Castilian
-et = Estonian
-eu = Basque
-fa = Persian
-fi = Finnish
-fj = Fijian
-fo = Faroese
-fr = French
-fy = Western Frisian
-ga = Irish
-gd = Gaelic / Scottish Gaelic
-gl = Galician
-gv = Manx
-he = Hebrew
-hi = Hindi
-hr = Croatian
-ht = Haitian; Haitian Creole
-hu = Hungarian
-hy = Armenian
-id = Indonesian
-is = Icelandic
-it = Italian
-ja = Japanese
-jv = Javanese
-ka = Georgian
-kg = Kongo
-ko = Korean
-ku = Kurdish
-kw = Cornish
-ky = Kirghiz
-la = Latin
-lb = Luxembourgish; Letzeburgesch
-li = Limburgan; Limburger; Limburgish
-ln = Lingala
-lt = Lithuanian
-lv = Latvian
-mg = Malagasy
-mk = Macedonian
-mn = Mongolian
-mo = Moldavian
-ms = Malay
-mt = Maltese
-my = Burmese
-nb = Norwegian (Bokmål)
-ne = Nepali
-nl = Dutch
-nn = Norwegian (Nynorsk)
-no = Norwegian
-oc = Occitan (post 1500); Provençal
-pl = Polish
-pt = Portuguese
-rm = Raeto-Romance
-ro = Romanian
-ru = Russian
-sc = Sardinian
-se = Northern Sami
-sk = Slovak
-sl = Slovenian
-so = Somali
-sq = Albanian
-sr = Serbian
-sv = Swedish
-sw = Swahili
-tk = Turkmen
-tr = Turkish
-ty = Tahitian
-uk = Ukrainian
-ur = Urdu
-uz = Uzbek
-vi = Vietnamese
-vo = Volapuk
-yi = Yiddish
-zh = Chinese
-
diff --git a/import/translation_maps/rvk_map.properties b/import/translation_maps/rvk_map.properties
deleted file mode 100644
index 63cbdaa5ea1b519d80354c6c7e11bd88e556b6f2..0000000000000000000000000000000000000000
--- a/import/translation_maps/rvk_map.properties
+++ /dev/null
@@ -1,210 +0,0 @@
-A		=		Allgemeines
-B		=		Theologie und Religionswissenschaften
-CA 	=		Philosophie
-CB	=		Philosophie
-CC	=		Philosophie
-CD	=		Philosophie
-CE	= 		Philosophie
-CF	=		Philosophie
-CG	=		Philosophie
-CH	=		Philosophie
-CI		=		Philosophie
-CL 	=		Psychologie
-CM 	=		Psychologie
-CN 	=		Psychologie
-CO 	=		Psychologie
-CP 	=		Psychologie
-CQ 	=		Psychologie
-CR 	=		Psychologie
-CS 	=		Psychologie
-CT 	=		Psychologie
-CU 	=		Psychologie
-CV 	=		Psychologie
-CW 	=		Psychologie
-CX 	=		Psychologie
-CY 	=		Psychologie
-CZ 	=		Psychologie
-D 		= 		Pädagogik
-E		=		Allgemeine und vergleichende Sprach- und Literaturwissenschaft. Indogermanistik. Außereuropäische Sprachen und Literaturen
-F		= 		Klassische Philologie. Byzantinistik. Mittellateinische und Neugriechische Philologie. Neulatein
-G 	=		Germanistik. Niederlandistik. Skandinavistik
-H		=		Anglistik. Amerikanistik
-I		=		Romanistik
-K		=		Slawistik
-LA	=		Ethnologie(Volks- und Völkerkunde)
-LB	=		Ethnologie(Volks- und Völkerkunde)
-LC	=		Ethnologie(Volks- und Völkerkunde)
-LD	=		Zeitschriften für Klassische Archäologie, Kunstgeschichte, Musikwissenschaft, Architektur und Baukunst
-LE	=		Klassische Archäologie
-LF	=		Klassische Archäologie
-LG	=		Klassische Archäologie
-LH	=		Kunstgeschichte
-LI		=		Kunstgeschichte
-LJ	=		Kunstgeschichte
-LK	=		Kunstgeschichte
-LL	=		Kunstgeschichte
-LM	=		Kunstgeschichte
-LN	=		Kunstgeschichte
-LO	=		Kunstgeschichte
-LP	=		Musikwissenschaft
-LQ	=		Musikwissenschaft
-LR	=		Musikwissenschaft
-LS	=		Musikwissenschaft
-LT	=		Musikwissenschaft
-LU	=		Musikwissenschaft
-LV	=		Musikwissenschaft
-LW	=		Musikwissenschaft
-LX	=		Musikwissenschaft
-LY	=		Musikwissenschaft
-MA	=		Politologie
-MB	=		Politologie
-MC	=		Politologie
-MD	=		Politologie
-ME	=		Politologie
-MF	=		Politologie
-MG	=		Politologie
-MH	=		Politologie
-MI	=		Politologie
-MJ	=		Politologie
-MK	=		Politologie
-ML	=		Politologie
-MN	=		Soziologie
-MO	=		Soziologie
-MP	=		Soziologie
-MQ	=		Soziologie
-MR	=		Soziologie
-MS	=		Soziologie
-MT	=		Soziologie
-MU	=		Soziologie
-MV	=		Soziologie
-MW	=		Soziologie
-MX	=		Militärwissenschaft
-MY	=		Militärwissenschaft
-MZ	=		Militärwissenschaft
-N		=		Geschichte
-P		=		Rechtswissenschaft
-Q		=		Wirtschaftswissenschaften
-R		=		Geographie
-SA	=		Mathematik
-SB	=		Mathematik
-SC	=		Mathematik
-SD	=		Mathematik
-SE	=		Mathematik
-SF	=		Mathematik
-SG	=		Mathematik
-SH	=		Mathematik
-SI		=		Mathematik
-SJ	=		Mathematik
-SK	=		Mathematik
-SL	=		Mathematik
-SM	=		Mathematik
-SN	=		Mathematik
-SO	=		Mathematik
-SP	=		Mathematik
-SQ	=		Informatik
-SR	=		Informatik
-SS	=		Informatik
-ST	=		Informatik
-SU	=		Informatik
-TA	=		Allgemeine Naturwissenschaft
-TB	=		Allgemeine Naturwissenschaft
-TC	=		Allgemeine Naturwissenschaft
-TD	=		Allgemeine Naturwissenschaft
-TE	=		Geologie und Paläontologie
-TF	=		Geologie und Paläontologie
-TG	=		Geologie und Paläontologie
-TH	=		Geologie und Paläontologie
-TI	=		Geologie und Paläontologie
-TJ	=		Geologie und Paläntologiie
-TK	=		Geologie und Paläontologie
-TL	=		Geologie und Paläontologie
-TM	=		Geologie und Paläontologie
-TN	=		Geologie und Paläontologie
-TO	=		Geologie und Paläontologie
-TP	=		Geologie und Paläontologie
-TQ	=		Geologie und Paläontologie
-TR	=		Geologie und Paläontologie
-TS	=		Geologie und Paläontologie
-TT	=		Geologie und Paläontologie
-TU	=		Geologie und Paläontologie
-TV	=		Geologie und Paläontologie
-TW	=		Geologie und Paläontologie
-TX	=		Geologie und Paläontologie
-TY	=		Geologie und Paläontologie
-TZ	=		Geologie und Paläontologie
-U		=		Physik
-V 		=		Chemie und Pharmazie
-W		=		Biologie
-WW 	=		Biologie
-WX 	=		Biologie
-WY 	=		Biologie
-WZ 	=		Biologie
-XA 	=		Medizin
-XB 	=		Medizin
-XC 	=		Medizin
-XD 	=		Medizin
-XE 	=		Medizin
-XF 	=		Medizin
-XG 	=		Medizin
-XH 	=		Medizin
-XI 	=		Medizin
-XJ 	=		Medizin
-XK 	=		Medizin
-XL 	=		Medizin
-XM 	=		Medizin
-XN 	=		Medizin
-XO 	=		Medizin
-XP 	=		Medizin
-XQ 	=		Medizin
-XR 	=		Medizin
-XS 	=		Medizin
-XT 	=		Medizin
-XU 	=		Medizin
-XV 	=		Medizin
-XW 	=		Medizin
-XX 	=		Medizin
-XY 	=		Medizin
-XZ 	=		Medizin
-YA 	=		Medizin
-YB 	=		Medizin
-YC 	=		Medizin
-YD 	=		Medizin
-YE 	=		Medizin
-YF 	=		Medizin
-YG 	=		Medizin
-YH 	=		Medizin
-YI 	=		Medizin
-YJ 	=		Medizin
-YK 	=		Medizin
-YL 	=		Medizin
-YM 	=		Medizin
-YN 	=		Medizin
-YO 	=		Medizin
-YP 	=		Medizin
-YQ 	=		Medizin
-YR 	=		Medizin
-YS 	=		Medizin
-YT 	=		Medizin
-YU 	=		Medizin
-YV 	=		Medizin
-ZA	=		Land- und Forstwirtschaft. Gartenbau. Fischereiwirtschaft. Hauswirtschaft
-ZB	=		Land- und Forstwirtschaft. Gartenbau. Fischereiwirtschaft. Hauswirtschaft
-ZC	=		Land- und Forstwirtschaft. Gartenbau. Fischereiwirtschaft. Hauswirtschaft
-ZD	=		Land- und Forstwirtschaft. Gartenbau. Fischereiwirtschaft. Hauswirtschaft
-ZE	=		Land- und Forstwirtschaft. Gartenbau. Fischereiwirtschaft. Hauswirtschaft
-ZG	=		Technik
-ZH	=		Technik
-ZI		=	Technik
-ZJ	=		Technik
-ZK	=		Technik
-ZL	=		Technik
-ZM	=		Technik
-ZN	=		Technik
-ZO	=		Technik
-ZP	=		Technik
-ZQ	=		Technik
-ZR	=		Technik
-ZS	=		Technik
-ZX	=		Sport
-ZY	=		Sport
-No subject assigned = No subject assigned
\ No newline at end of file
diff --git a/import/translation_maps/timecode_map.properties b/import/translation_maps/timecode_map.properties
deleted file mode 100644
index c850c6abe5e2b6af7ab78e1db8cefeed9914f93e..0000000000000000000000000000000000000000
--- a/import/translation_maps/timecode_map.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-ad01 = 0 \u2013 100
-ad02 = 101 \u2013 200
-ad03 = 201 \u2013 300
-ad04 = 301 \u2013 400
-ad05 = 401 \u2013 500
-ad06 = 501 \u2013 600
-ad07 = 601 \u2013 700
-ad08 = 701 \u2013 800
-ad09 = 801 \u2013 900
-ad10 = 901 \u2013 1000
-ad11 = 1001 \u2013 1100
-ad12 = 1101 \u2013 1200
-ad13 = 1201 \u2013 1300
-ad14 = 1301 \u2013 1400
-ad15 = 1401 \u2013 1500
-ad16 = 1501 \u2013 1600
-ad17 = 1601 \u2013 1700
-ad18 = 1701 \u2013 1800
-a19a = 1801 \u2013 1850
-a19b = 1851 \u2013 1900
-
diff --git a/import/translation_maps/tuf_udk_map.properties b/import/translation_maps/tuf_udk_map.properties
deleted file mode 100644
index e17d7627a44335bd28a11f9e6146896d6a3d95b9..0000000000000000000000000000000000000000
--- a/import/translation_maps/tuf_udk_map.properties
+++ /dev/null
@@ -1,218 +0,0 @@
-# UDK to facet mapping file TUBAF => trunk/import/translation_maps
-# Generated by CreateUDKFacetPatternMatching.py
-
-# UDK 1978
-tuf_udk.pattern_0 = ^DK 0$=>Allgemeines
-tuf_udk.pattern_1 = ^DK 001=>Wissenschaft, Allgemeines
-tuf_udk.pattern_2 = ^DK 00[2-9]=>Allgemeines
-tuf_udk.pattern_3 = ^DK 01=>Bibliographie
-tuf_udk.pattern_4 = ^DK 02=>Bibliothekswesen
-tuf_udk.pattern_5 = ^DK 06$=>Organisationen
-tuf_udk.pattern_6 = ^DK 061$=>Organisationen
-tuf_udk.pattern_7 = ^DK 061\.3=>Kongresse
-tuf_udk.pattern_8 = ^DK 061\.4=>Ausstellungen
-tuf_udk.pattern_9 = ^DK 061\.[125679]=>Organisationen
-tuf_udk.pattern_10 = ^DK 069=>Museen
-tuf_udk.pattern_11 = ^DK 06\.=>Organisationen
-tuf_udk.pattern_12 = ^DK 0[345789]=>Allgemeines
-tuf_udk.pattern_13 = ^DK 1$=>Philosophie. Psychologie
-tuf_udk.pattern_14 = ^DK 15=>Psychologie
-tuf_udk.pattern_15 = ^DK 1[0-46-9]=>Philosophie
-tuf_udk.pattern_16 = ^DK 2=>Religion. Theologie
-tuf_udk.pattern_17 = ^DK 3$=>Sozialwissenschaften. Statistik. Politik. Volkswirtschaft. Handel. Recht. Verwaltung. Kriegskunst. Fürsorge. Versicherung. Erziehung. Volkskunde
-tuf_udk.pattern_18 = ^DK 30=>Soziologie. Methoden
-tuf_udk.pattern_19 = ^DK 31=>Statistik
-tuf_udk.pattern_20 = ^DK 316=>Soziologie
-tuf_udk.pattern_21 = ^DK 31[\D1-57-9]=>Statistik
-tuf_udk.pattern_22 = ^DK 32=>Politik
-tuf_udk.pattern_23 = ^DK 33=>Wirtschaft. Wirtschaftswissenschaften
-tuf_udk.pattern_24 = ^DK 34$=>Recht. Rechtswissenschaften
-tuf_udk.pattern_25 = ^DK 340=>Recht im Allgemeinen
-tuf_udk.pattern_26 = ^DK 341=>Internationales Recht
-tuf_udk.pattern_27 = ^DK 342=>Staatsrecht. Verfassungsrecht. Verwaltungsrecht
-tuf_udk.pattern_28 = ^DK 347=>Zivilrecht
-tuf_udk.pattern_29 = ^DK 348=>Kirchenrecht
-tuf_udk.pattern_30 = ^DK 349$=>Spezielle Rechtszweige. Rechtszweige gemischten Charakters
-tuf_udk.pattern_31 = ^DK 349\.2=>Arbeitsrecht
-tuf_udk.pattern_32 = ^DK 349\.3=>Sozialrecht
-tuf_udk.pattern_33 = ^DK 349\.4=>Bodenrecht. Baurecht
-tuf_udk.pattern_34 = ^DK 349\.6=>Umweltrecht
-tuf_udk.pattern_35 = ^DK 349\.7=>Atomrecht. Energierecht
-tuf_udk.pattern_36 = ^DK 34[34]=>Strafrecht
-tuf_udk.pattern_37 = ^DK 35=>Verwaltung. Militärwissenschaft
-tuf_udk.pattern_38 = ^DK 36=>Fürsorge. Versicherung
-tuf_udk.pattern_39 = ^DK 37$=>Bildungswesen. Pädagogik. Freizeitgestaltung
-tuf_udk.pattern_40 = ^DK 378$=>Hochschulwesen
-tuf_udk.pattern_41 = ^DK 378\.2$=>Hochschulwesen
-tuf_udk.pattern_42 = ^DK 378\.24$=>Hochschulwesen
-tuf_udk.pattern_43 = ^DK 378\.245$=>Dissertationen
-tuf_udk.pattern_44 = ^DK 378\.24[0-46-9]=>Hochschulwesen
-tuf_udk.pattern_45 = ^DK 378\.2[1-35-9]=>Hochschulwesen
-tuf_udk.pattern_46 = ^DK 378\.[013-9]=>Hochschulwesen
-tuf_udk.pattern_47 = ^DK 379=>Freizeitgestaltung
-tuf_udk.pattern_48 = ^DK 37[\D0-7]=>Bildungswesen. Pädagogik
-tuf_udk.pattern_49 = ^DK 38=>Metrologie. Maß- und Gewichtswesen
-tuf_udk.pattern_50 = ^DK 39=>Völkerkunde
-tuf_udk.pattern_51 = ^DK 3\D=>Sozialwissenschaften. Statistik. Politik. Volkswirtschaft. Handel. Recht. Verwaltung. Kriegskunst. Fürsorge. Versicherung. Erziehung. Volkskunde
-tuf_udk.pattern_52 = ^DK 5$=>Mathematik. Naturwissenschaften
-tuf_udk.pattern_53 = ^DK 502=>Naturschutz
-tuf_udk.pattern_54 = ^DK 504=>Umweltwissenschaften
-tuf_udk.pattern_55 = ^DK 50[\D1]=>Allgemeines über die Naturwissenschaften
-tuf_udk.pattern_56 = ^DK 51=>Mathematik
-tuf_udk.pattern_57 = ^DK 52=>Astronomie. Geodäsie
-tuf_udk.pattern_58 = ^DK 53$=>Physik
-tuf_udk.pattern_59 = ^DK 530=>Theoretische Physik
-tuf_udk.pattern_60 = ^DK 531=>Mechanik starrer Körper
-tuf_udk.pattern_61 = ^DK 534=>Mechnische Schwingungen
-tuf_udk.pattern_62 = ^DK 535=>Optik
-tuf_udk.pattern_63 = ^DK 536=>Wärmelehre
-tuf_udk.pattern_64 = ^DK 539$=>Physikalischer Aufbau der Materie
-tuf_udk.pattern_65 = ^DK 539\.1=>Kern- und Atomphysik
-tuf_udk.pattern_66 = ^DK 539\.2=>Festkörperphysik
-tuf_udk.pattern_67 = ^DK 539\.[3-8]=>Deformation. Festigkeit
-tuf_udk.pattern_68 = ^DK 53[23]=>Mechanik der Flüssigkeiten und Gase
-tuf_udk.pattern_69 = ^DK 53[78]=>Elektrizität. Magnetismus
-tuf_udk.pattern_70 = ^DK 53\D=>Physik
-tuf_udk.pattern_71 = ^DK 54$=>Chemie. Mineralogie
-tuf_udk.pattern_72 = ^DK 541=>Physikalische Chemie
-tuf_udk.pattern_73 = ^DK 542=>Experimentalchemie
-tuf_udk.pattern_74 = ^DK 543=>Analytische Chemie
-tuf_udk.pattern_75 = ^DK 546=>Anorganische Chemie
-tuf_udk.pattern_76 = ^DK 547=>Organische Chemie
-tuf_udk.pattern_77 = ^DK 548=>Kristallographie
-tuf_udk.pattern_78 = ^DK 549=>Mineralogie
-tuf_udk.pattern_79 = ^DK 54\D=>Chemie. Mineralogie
-tuf_udk.pattern_80 = ^DK 55=>Geolog. Wissenschaften ohne Paläontologie
-tuf_udk.pattern_81 = ^DK 56=>Paläontologie
-tuf_udk.pattern_82 = ^DK 57=>Biologie
-tuf_udk.pattern_83 = ^DK 58=>Botanik
-tuf_udk.pattern_84 = ^DK 59=>Zoologie
-tuf_udk.pattern_85 = ^DK 5\D=>Mathematik. Naturwissenschaften
-tuf_udk.pattern_86 = ^DK 6$=>Angewandte Wissenschaften. Medizin. Technik
-tuf_udk.pattern_87 = ^DK 61=>Medizin
-tuf_udk.pattern_88 = ^DK 62$=>Ingenieurwesen. Technik im Allgemeinen
-tuf_udk.pattern_89 = ^DK 620=>Werkstoffprüfung. Warenkunde. Kraftzentralen. Energiewirtschaft
-tuf_udk.pattern_90 = ^DK 621$=>Maschinen-, Anlagen- & Energietechnik
-tuf_udk.pattern_91 = ^DK 621\.3=>Elektrotechnik, Elektronik
-tuf_udk.pattern_92 = ^DK 621\.7=>Fertigungstechnik. Fügen. Oberflächenbehandlung
-tuf_udk.pattern_93 = ^DK 621\.8=>Maschinenelemente. Fördermittel. Schmierung
-tuf_udk.pattern_94 = ^DK 621\.9=>Spanende Umformtechnik. Zerkleinerungs- und Abscheidevorrichtungen. Blechbearbeitung
-tuf_udk.pattern_95 = ^DK 621\.[0-24-6]=>Maschinen-, Anlagen- & Energietechnik
-tuf_udk.pattern_96 = ^DK 622=>Bergbau. Rohstoffgewinnung
-tuf_udk.pattern_97 = ^DK 623=>Wehrtechnik
-tuf_udk.pattern_98 = ^DK 624=>Geotechnik. Bauingenieurwesen
-tuf_udk.pattern_99 = ^DK 625=>Technik der Verkehrswege zu Lande. Eisenbahnbau. Straßenbau. Wegebau
-tuf_udk.pattern_100 = ^DK 626=>Allgemeiner Wasserbau. Kanalbau. Landeskulturbau
-tuf_udk.pattern_101 = ^DK 627=>Wasserbau. Hafen- und Seebau
-tuf_udk.pattern_102 = ^DK 628=>Gesundheitstechnik. Wasser. Sanitäre Anlagen. Lichttechnik
-tuf_udk.pattern_103 = ^DK 629=>Fahrzeugtechnik
-tuf_udk.pattern_104 = ^DK 62\(038\)$=>Technik - Wörterbücher
-tuf_udk.pattern_105 = ^DK 62\(083\.7\)$=>Technik - Normen, Standards
-tuf_udk.pattern_106 = ^DK 62\D=>Ingenieurwesen. Technik im Allgemeinen
-tuf_udk.pattern_107 = ^DK 63$=>Landwirtschaft und verwandte Wissenschaften und Techniken
-tuf_udk.pattern_108 = ^DK 631$=>Landwirtschaft und verwandte Wissenschaften und Techniken
-tuf_udk.pattern_109 = ^DK 631\.4=>Bodenkunde
-tuf_udk.pattern_110 = ^DK 631\.[0-35-9]=>Landwirtschaft und verwandte Wissenschaften und Techniken
-tuf_udk.pattern_111 = ^DK 63[02-9\D]=>Landwirtschaft und verwandte Wissenschaften und Techniken
-tuf_udk.pattern_112 = ^DK 64=>Hauswirtschaft
-tuf_udk.pattern_113 = ^DK 65=>Betriebsführung und Organisation von Industrie, Handel und Verkehr
-tuf_udk.pattern_114 = ^DK 66$=>Chemische Technik. Chemische Industrie. Verwandte Industriezweige
-tuf_udk.pattern_115 = ^DK 66-=>Chemische Technik. Chemische Industrie. Verwandte Industriezweige
-tuf_udk.pattern_116 = ^DK 666=>Glas. Email. Keramik. Kunststeine. Zement (Gesteinshüttenkunde)
-tuf_udk.pattern_117 = ^DK 667=>Farbtechnische Industrien
-tuf_udk.pattern_118 = ^DK 669=>Metallurgie. Metalle und Legierungen
-tuf_udk.pattern_119 = ^DK 66[1-5]=>Verschiedene Industriezweige
-tuf_udk.pattern_120 = ^DK 66\.0=>Verfahrenstechnik
-tuf_udk.pattern_121 = ^DK 67$=>Verschiedene Industrien und Gewerbe. Mechanische Technologie
-tuf_udk.pattern_122 = ^DK 671=>Gegenstände aus Edelmetall und Edelsteinen
-tuf_udk.pattern_123 = ^DK 672=>Gegenstände aus Eisen und Stahl
-tuf_udk.pattern_124 = ^DK 673=>Gegenstände aus Nichteisenmetallen außer Edelmetallen
-tuf_udk.pattern_125 = ^DK 674=>Holzindustrie
-tuf_udk.pattern_126 = ^DK 675=>Lederindustrie. Pelze. Kunstleder
-tuf_udk.pattern_127 = ^DK 676=>Papierindustrie
-tuf_udk.pattern_128 = ^DK 677=>Textilindustrie. Textilveredelung. Kabelindustrie
-tuf_udk.pattern_129 = ^DK 678=>Industrie der natürlichen und synthetischen makromolekularen Stoffe. Gummiindustrie. Kunststoffindustrie
-tuf_udk.pattern_130 = ^DK 679=>Technologie der Steine. Industrie der Steine und Erden
-tuf_udk.pattern_131 = ^DK 67\D=>Verschiedene Industrien und Gewerbe. Mechanische Technologie
-tuf_udk.pattern_132 = ^DK 68$=>Verschiedene Industrien und Gewerbe
-tuf_udk.pattern_133 = ^DK 681$=>Feinmechanik
-tuf_udk.pattern_134 = ^DK 681\.3=>IT. Informatik. Software
-tuf_udk.pattern_135 = ^DK 681\.[012456789]=>Feinmechanik
-tuf_udk.pattern_136 = ^DK 682=>Schmiedegewerbe. Hufbeschlag
-tuf_udk.pattern_137 = ^DK 683=>Eisenwaren. Schlosserei
-tuf_udk.pattern_138 = ^DK 684=>Möbelindustrie und verwandte Industrien
-tuf_udk.pattern_139 = ^DK 685=>Sattlerei. Riemerei. Schuhmacherei. Handschuhmacherei. Reiseartikel und Sportgeräte. Spielartikel
-tuf_udk.pattern_140 = ^DK 686=>Buchbinderei. Metallisierung. Glaserei. Bürogeräte
-tuf_udk.pattern_141 = ^DK 687=>Bekleidungsindustrie. Schönheitspflege
-tuf_udk.pattern_142 = ^DK 688=>Kunstdrechselei. Spielwaren. Dekorationsartikel
-tuf_udk.pattern_143 = ^DK 689=>Technische und handwerkliche Liebhaberarbeiten. Bastelarbeiten
-tuf_udk.pattern_144 = ^DK 68\D=>Verschiedene Industrien und Gewerbe
-tuf_udk.pattern_145 = ^DK 69=>Baustoffe. Bauhandwerk. Bauarbeiten
-tuf_udk.pattern_146 = ^DK 6[\D0]=>Angewandte Wissenschaften. Medizin. Technik
-tuf_udk.pattern_147 = ^DK 7$=>Kunst. Kunstgewerbe. Photographie. Musik. Spiel. Sport
-tuf_udk.pattern_148 = ^DK 7-=>Kunst. Kunstgewerbe. Photographie. Musik. Spiel. Sport
-tuf_udk.pattern_149 = ^DK 71=>Raumordnung. Landesplanung. Städtebau. Gartenarchitektur
-tuf_udk.pattern_150 = ^DK 72$=>Architektur. Baukunst
-tuf_udk.pattern_151 = ^DK 725$=>Architektur. Baukunst
-tuf_udk.pattern_152 = ^DK 725\.4=>Industriebauten
-tuf_udk.pattern_153 = ^DK 725\.[0-35-9]=>Architektur. Baukunst
-tuf_udk.pattern_154 = ^DK 72[0-46-9]=>Architektur. Baukunst
-tuf_udk.pattern_155 = ^DK 72\.025=>Denkmalschutz
-tuf_udk.pattern_156 = ^DK 72\.02[0-46-9]=>Architektur. Baukunst
-tuf_udk.pattern_157 = ^DK 72\.0[013-9]=>Architektur. Baukunst
-tuf_udk.pattern_158 = ^DK 73$=>Bildhauerei. Münzkunde. Künstlerische Metallverarbeitung
-tuf_udk.pattern_159 = ^DK 737=>Münzkunde. Numismatik
-tuf_udk.pattern_160 = ^DK 73[0-689]=>Bildhauerei. Künstlerische Metallverarbeitung
-tuf_udk.pattern_161 = ^DK 74=>Zeichenkunst. Kunstgewerbe
-tuf_udk.pattern_162 = ^DK 75=>Malerei
-tuf_udk.pattern_163 = ^DK 76=>Graphik
-tuf_udk.pattern_164 = ^DK 77=>Photographie
-tuf_udk.pattern_165 = ^DK 78=>Musik
-tuf_udk.pattern_166 = ^DK 79=>Unterhaltung. Sport
-tuf_udk.pattern_167 = ^DK 7\.025=>Kunsttechnik: Verfall, Pflege, Schutz
-tuf_udk.pattern_168 = ^DK 7\.02[0-46-9]=>Kunst. Kunstgewerbe. Photographie. Musik. Spiel. Sport
-tuf_udk.pattern_169 = ^DK 7\.0[013-9]=>Kunst. Kunstgewerbe. Photographie. Musik. Spiel. Sport
-tuf_udk.pattern_170 = ^DK 8$=>Sprach- und Literaturwissenschaft. Schöne Literatur
-tuf_udk.pattern_171 = ^DK 80=>Linguistik
-tuf_udk.pattern_172 = ^DK 82=>Literaturwissenschaft
-tuf_udk.pattern_173 = ^DK 9$=>Geographie. Biographien. Geschichte
-tuf_udk.pattern_174 = ^DK 904=>Reste der Kulturen der historischen Zeit. Industriearchäologie
-tuf_udk.pattern_175 = ^DK 90[0-35-9]=>Archäologie. Vor- und Frühgeschichte. Reste der Kulturen
-tuf_udk.pattern_176 = ^DK 91$=>Geographie. Erforschung der Erde und Länder. Reisen. Länderkunde. Landeskunde
-tuf_udk.pattern_177 = ^DK 910=>Allg. Fragen der Geographie
-tuf_udk.pattern_178 = ^DK 911=>Physische Geographie und Anthropogeographie
-tuf_udk.pattern_179 = ^DK 912=>Karten und Atlanten
-tuf_udk.pattern_180 = ^DK 913=>Orte der alten Welt. Legendäre und vermutete Länder
-tuf_udk.pattern_181 = ^DK 914$=>Europa
-tuf_udk.pattern_182 = ^DK 914\.30=>Deutschland
-tuf_udk.pattern_183 = ^DK 914\.3[1-9]=>Europa
-tuf_udk.pattern_184 = ^DK 914\.[0-24-9]=>Europa
-tuf_udk.pattern_185 = ^DK 915=>Asien
-tuf_udk.pattern_186 = ^DK 916=>Afrika
-tuf_udk.pattern_187 = ^DK 917=>Nord- und Mittelamerika
-tuf_udk.pattern_188 = ^DK 918=>Südamerika
-tuf_udk.pattern_189 = ^DK 919$=>Ozeanien
-tuf_udk.pattern_190 = ^DK 919\.8=>Arktis
-tuf_udk.pattern_191 = ^DK 919\.9=>Antarktis
-tuf_udk.pattern_192 = ^DK 919\.[1-7]=>Ozeanien
-tuf_udk.pattern_193 = ^DK 92=>Biographien. Genealogie. Heraldik
-tuf_udk.pattern_194 = ^DK 93$=>Geschichte allgemein
-tuf_udk.pattern_195 = ^DK 930=>Geschichtswissenschaft
-tuf_udk.pattern_196 = ^DK 93[1-9]=>Alte Geschichte
-tuf_udk.pattern_197 = ^DK 94$=>Mittelalterliche und neuere Geschichte im allgemeinen
-tuf_udk.pattern_198 = ^DK 943\.0$=>Geschichte Deutschlands
-tuf_udk.pattern_199 = ^DK 943\.01=>Geschichte Bundesrepublik Deutschland
-tuf_udk.pattern_200 = ^DK 943\.02=>Geschichte Deutsche Demokratische Republik
-tuf_udk.pattern_201 = ^DK 943\.0\D=>Geschichte Deutschlands
-tuf_udk.pattern_202 = ^DK 943\.5$=>Geschichte Deutschlands
-tuf_udk.pattern_203 = ^DK 943\.59=>Geschichte Europas
-tuf_udk.pattern_204 = ^DK 943\.6=>Geschichte Europas
-tuf_udk.pattern_205 = ^DK 943\.[1-4]=>Geschichte Deutschlands
-tuf_udk.pattern_206 = ^DK 94[0-24-9]=>Geschichte Europas
-tuf_udk.pattern_207 = ^DK 95=>Geschichte Asiens
-tuf_udk.pattern_208 = ^DK 96=>Geschichte Afrikas
-tuf_udk.pattern_209 = ^DK 97=>Geschichte Nordamerikas
-tuf_udk.pattern_210 = ^DK 98=>Geschichte Südamerikas
-tuf_udk.pattern_211 = ^DK 99=>Geschichte der ozeanischen und polarischen Gebiete
-tuf_udk.pattern_212 = ^DK 9\D=>Geographie. Biographien. Geschichte
-tuf_udk.pattern_213 = ^Q=>Wirtschaftswissenschaften
diff --git a/import/translation_maps/udc_map.properties b/import/translation_maps/udc_map.properties
deleted file mode 100644
index 73267566357b773c44e16a47d6707b688da94559..0000000000000000000000000000000000000000
--- a/import/translation_maps/udc_map.properties
+++ /dev/null
@@ -1,1112 +0,0 @@
-hundreds.000 = 000 - Science and Knowledge. Organization. Computer Science. Information. Documentation. Librarianship. Institutions. Publications
-hundreds.100 = 100 - Philosophy. Psychology
-hundreds.200 = 200 - Religion. Theology
-hundreds.300 = 300 - Social sciences
-hundreds.400 = 400 - [Unassigned]
-hundreds.500 = 500 - Mathematics. Natural sciences
-hundreds.600 = 600 - Applied sciences. Medicine. Technology
-hundreds.700 = 700 - The arts. Recreation. Entertainment. Sport
-hundreds.800 = 800 - Language. Linguistics. Literature
-hundreds.900 = 900 - Geography. Biography. History
-hundreds = [Unassigned]
-tens.000 = 000 - Prolegomena. Fundamentals of knowledge and culture. Propaedeutics
-tens.010 = 010 - Bibliography and bibliographies. Catalogues
-tens.020 = 020 - Librarianship
-tens.030 = 030 - [Unassigned]
-tens.040 = 040 - [Unassigned]
-tens.050 = 050 - [Unassigned]
-tens.060 = 060 - Organizations of a general nature
-tens.070 = 070 - [Unassigned]
-tens.080 = 080 - Polygraphies. Collective works
-tens.090 = 090 - Manuscripts. Rare and remarkable works
-tens.100 = 100 - [Unassigned]
-tens.110 = 110 - Metaphysics
-tens.120 = 120 - [Unassigned]
-tens.130 = 130 - Philosophy of mind and spirit. Metaphysics of spiritual life
-tens.140 = 140 - Philosophical systems and points of view
-tens.150 = 150 - [Unassigned]
-tens.160 = 160 - Logic. Epistemology. Theory of knowledge. Methodology of logic
-tens.170 = 170 - Moral philosophy. Ethics. Practical philosophy
-tens.180 = 180 - [Unassigned]
-tens.190 = 190 - [Unassigned]
-tens.200 = 200 - [Unassigned]
-tens.210 = 210 - Prehistoric and primitive religions
-tens.220 = 220 - Religions originating in the Far East
-tens.230 = 230 - Religions originating in Indian sub-continent. Hindu religion in the broad sense
-tens.240 = 240 - Buddhism
-tens.250 = 250 - Religions of antiquity. Minor cults and religions
-tens.260 = 260 - Judaism
-tens.270 = 270 - Christianity. Christian churches and denominations
-tens.280 = 280 - Islam
-tens.290 = 290 - Modern spiritual movements
-tens.300 = 300 - [Unassigned]
-tens.310 = 310 - [Unassigned]
-tens.320 = 320 - Politics
-tens.330 = 330 - Economics. Economic science
-tens.340 = 340 - Law. Jurisprudence
-tens.350 = 350 - Public administration. Government. Military affairs
-tens.360 = 360 - Safeguarding the mental and material necessities of life
-tens.370 = 370 - Education
-tens.380 = 380 - [Unassigned]
-tens.390 = 390 - Cultural anthropology. Ethnography. Customs. Manners. Traditions. Way of life. Folklore
-tens.400 = 400 - [Unassigned]
-tens.410 = 410 - [Unassigned]
-tens.420 = 420 - [Unassigned]
-tens.430 = 430 - [Unassigned]
-tens.440 = 440 - [Unassigned]
-tens.450 = 450 - [Unassigned]
-tens.460 = 460 - [Unassigned]
-tens.470 = 470 - [Unassigned]
-tens.480 = 480 - [Unassigned]
-tens.490 = 490 - [Unassigned]
-tens.500 = 500 - [Unassigned]
-tens.510 = 510 - Mathematics
-tens.520 = 520 - Astronomy. Astrophysics. Space research. Geodesy
-tens.530 = 530 - Physics
-tens.540 = 540 - Chemistry. Crystallography. Mineralogy
-tens.550 = 550 - Earth Sciences. Geological sciences
-tens.560 = 560 - Palaeontology
-tens.570 = 570 - Biological sciences in general
-tens.580 = 580 - Botany
-tens.590 = 590 - Zoology
-tens.600 = 600 - Biotechnology
-tens.610 = 610 - Medical Sciences
-tens.620 = 620 - Engineering. Technology in general
-tens.630 = 630 - Agriculture and related sciences and techniques. Forestry. Farming. Wildlife exploitation
-tens.640 = 640 - Home economics. Domestic science. Housekeeping
-tens.650 = 650 - Communication and transport industries. Accountancy. Business management. Public relations
-tens.660 = 660 - Chemical technology. Chemical and related industries
-tens.670 = 670 - Various industries, trades and crafts
-tens.680 = 680 - Industries, crafts and trades for finished or assembled articles
-tens.690 = 690 - Building (construction) trade. Building materials. Building practice and procedure
-tens.700 = 700 - [Unassigned]
-tens.710 = 710 - Physical planning. Regional, town and country planning. Landscapes, parks, gardens
-tens.720 = 720 - Architecture
-tens.730 = 730 - Plastic arts
-tens.740 = 740 - Drawing. Design. Applied arts and crafts
-tens.750 = 750 - Painting
-tens.760 = 760 - Graphic arts. Graphics
-tens.770 = 770 - Photography and similar processes
-tens.780 = 780 - Music
-tens.790 = 790 - Recreation. Entertainment. Games. Sport
-tens.800 = 800 - General questions relating to both linguistics and literature. Philology
-tens.810 = 810 - Linguistics and languages
-tens.820 = 820 - Literature
-tens.830 = 830 - [Unassigned]
-tens.840 = 840 - [Unassigned]
-tens.850 = 850 - [Unassigned]
-tens.860 = 860 - [Unassigned]
-tens.870 = 870 - [Unassigned]
-tens.880 = 880 - [Unassigned]
-tens.890 = 890 - [Unassigned]
-tens.900 = 900 - [Unassigned]
-tens.910 = 910 - Geography. Exploration of the Earth and of individual countries. Travel. Regional geography
-tens.920 = 920 - Biographical studies. Genealogy. Heraldry. Flags
-tens.930 = 930 - [Unassigned]
-tens.940 = 940 - General history
-tens.950 = 950 - [Unassigned]
-tens.960 = 960 - [Unassigned]
-tens.970 = 970 - [Unassigned]
-tens.980 = 980 - [Unassigned]
-tens.990 = 990 - [Unassigned]
-tens = [Unassigned]
-ones.001 = 001 - Science and knowledge in general. Organization of intellectual work
-ones.002 = 002 - Documentation. Books. Writings. Authorship
-ones.003 = 003 - Writing systems and scripts
-ones.004 = 004 - Computer science and technology. Computing. Data processing
-ones.005 = 005 - Management
-ones.006 = 006 - Standardization of products, operations, weights, measures and time
-ones.007 = 007 - Activity and organizing. Communication and control theory generally (cybernetics). 'Human engineering'
-ones.008 = 008 - Civilization. Culture. Progress
-ones.009 = 009 - [Unassigned]
-ones.010 = 010 - [Unassigned]
-ones.011 = 011 - Universal and general bibliographies
-ones.012 = 012 - Author bibliographies. Individual bibliographies
-ones.013 = 013 - Collective bibliographies
-ones.014 = 014 - Bibliographies of works of particular characteristics
-ones.015 = 015 - Bibliographies of place
-ones.016 = 016 - Special subject bibliographies
-ones.017 = 017 - Catalogues in general. Subject catalogues
-ones.018 = 018 - Name catalogues
-ones.019 = 019 - Dictionary catalogues
-ones.020 = 020 - [Unassigned]
-ones.021 = 021 - Function, value, utility, creation, development of libraries
-ones.022 = 022 - Library site, building, premises. Equipment
-ones.023 = 023 - Library administration. Staff. Personnel
-ones.024 = 024 - Relations with the public. Regulations for library use
-ones.025 = 025 - Administrative departments of libraries
-ones.026 = 026 - Special libraries
-ones.027 = 027 - General libraries
-ones.028 = 028 - [Unassigned]
-ones.029 = 029 - [Unassigned]
-ones.030 = 030 - General reference works (as subject)
-ones.031 = 031 - [Unassigned]
-ones.032 = 032 - [Unassigned]
-ones.033 = 033 - [Unassigned]
-ones.034 = 034 - [Unassigned]
-ones.035 = 035 - [Unassigned]
-ones.036 = 036 - [Unassigned]
-ones.037 = 037 - [Unassigned]
-ones.038 = 038 - [Unassigned]
-ones.039 = 039 - [Unassigned]
-ones.040 = 040 - [Unassigned]
-ones.041 = 041 - [Unassigned]
-ones.042 = 042 - [Unassigned]
-ones.043 = 043 - [Unassigned]
-ones.044 = 044 - [Unassigned]
-ones.045 = 045 - [Unassigned]
-ones.046 = 046 - [Unassigned]
-ones.047 = 047 - [Unassigned]
-ones.048 = 048 - [Unassigned]
-ones.049 = 049 - [Unassigned]
-ones.050 = 050 - Serial publications, periodicals (as subject)
-ones.051 = 051 - [Unassigned]
-ones.052 = 052 - [Unassigned]
-ones.053 = 053 - [Unassigned]
-ones.054 = 054 - [Unassigned]
-ones.055 = 055 - [Unassigned]
-ones.056 = 056 - [Unassigned]
-ones.057 = 057 - [Unassigned]
-ones.058 = 058 - [Unassigned]
-ones.059 = 059 - [Unassigned]
-ones.060 = 060 - [Unassigned]
-ones.061 = 061 - Organizations and other types of cooperation
-ones.062 = 062 - [Unassigned]
-ones.063 = 063 - [Unassigned]
-ones.064 = 064 - [Unassigned]
-ones.065 = 065 - [Unassigned]
-ones.066 = 066 - [Unassigned]
-ones.067 = 067 - [Unassigned]
-ones.068 = 068 - [Unassigned]
-ones.069 = 069 - Museums. Permanent exhibitions
-ones.070 = 070 - Newspapers. The Press
-ones.071 = 071 - [Unassigned]
-ones.072 = 072 - [Unassigned]
-ones.073 = 073 - [Unassigned]
-ones.074 = 074 - [Unassigned]
-ones.075 = 075 - [Unassigned]
-ones.076 = 076 - [Unassigned]
-ones.077 = 077 - [Unassigned]
-ones.078 = 078 - [Unassigned]
-ones.079 = 079 - [Unassigned]
-ones.080 = 080 - [Unassigned]
-ones.081 = 081 - [Unassigned]
-ones.082 = 082 - Collective polygraphy
-ones.083 = 083 - [Unassigned]
-ones.084 = 084 - Pictorial material
-ones.085 = 085 - [Unassigned]
-ones.086 = 086 - Documents of particular form
-ones.087 = 087 - Documents of particular origin or destination
-ones.088 = 088 - [Unassigned]
-ones.089 = 089 - [Unassigned]
-ones.090 = 090 - [Unassigned]
-ones.091 = 091 - Manuscripts
-ones.092 = 092 - Xylographic books
-ones.093 = 093 - Incunabula
-ones.094 = 094 - Other precious, remarkable or rare printed works
-ones.095 = 095 - Books remarkable for their binding
-ones.096 = 096 - Books remarkable for their illustrations or for materials used
-ones.097 = 097 - Marks of ownership or origin
-ones.098 = 098 - [Unassigned]
-ones.099 = 099 - [Unassigned]
-ones.100 = 100 - [Unassigned]
-ones.101 = 101 - Nature and role of philosophy
-ones.102 = 102 - [Unassigned]
-ones.103 = 103 - [Unassigned]
-ones.104 = 104 - [Unassigned]
-ones.105 = 105 - [Unassigned]
-ones.106 = 106 - [Unassigned]
-ones.107 = 107 - [Unassigned]
-ones.108 = 108 - [Unassigned]
-ones.109 = 109 - [Unassigned]
-ones.110 = 110 - [Unassigned]
-ones.111 = 111 - General metaphysics. Ontology
-ones.112 = 112 - [Unassigned]
-ones.113 = 113 - [Unassigned]
-ones.114 = 114 - [Unassigned]
-ones.115 = 115 - [Unassigned]
-ones.116 = 116 - [Unassigned]
-ones.117 = 117 - [Unassigned]
-ones.118 = 118 - [Unassigned]
-ones.119 = 119 - [Unassigned]
-ones.120 = 120 - [Unassigned]
-ones.121 = 121 - [Unassigned]
-ones.122 = 122 - [Unassigned]
-ones.123 = 123 - [Unassigned]
-ones.124 = 124 - [Unassigned]
-ones.125 = 125 - [Unassigned]
-ones.126 = 126 - [Unassigned]
-ones.127 = 127 - [Unassigned]
-ones.128 = 128 - [Unassigned]
-ones.129 = 129 - [Unassigned]
-ones.130 = 130 - [Unassigned]
-ones.131 = 131 - [Unassigned]
-ones.132 = 132 - [Unassigned]
-ones.133 = 133 - [Unassigned]
-ones.134 = 134 - [Unassigned]
-ones.135 = 135 - [Unassigned]
-ones.136 = 136 - [Unassigned]
-ones.137 = 137 - [Unassigned]
-ones.138 = 138 - [Unassigned]
-ones.139 = 139 - [Unassigned]
-ones.140 = 140 - Possible philosophical attitudes. System typology
-ones.141 = 141 - Kinds of viewpoint
-ones.142 = 142 - [Unassigned]
-ones.143 = 143 - [Unassigned]
-ones.144 = 144 - [Unassigned]
-ones.145 = 145 - [Unassigned]
-ones.146 = 146 - [Unassigned]
-ones.147 = 147 - [Unassigned]
-ones.148 = 148 - [Unassigned]
-ones.149 = 149 - [Unassigned]
-ones.150 = 150 - [Unassigned]
-ones.151 = 151 - [Unassigned]
-ones.152 = 152 - [Unassigned]
-ones.153 = 153 - [Unassigned]
-ones.154 = 154 - [Unassigned]
-ones.155 = 155 - [Unassigned]
-ones.156 = 156 - [Unassigned]
-ones.157 = 157 - [Unassigned]
-ones.158 = 158 - [Unassigned]
-ones.159 = 159 - [Unassigned]
-ones.160 = 160 - [Unassigned]
-ones.161 = 161 - [Unassigned]
-ones.162 = 162 - [Unassigned]
-ones.163 = 163 - [Unassigned]
-ones.164 = 164 - Logistic. Symbolic logic. Mathematical logic. Logical calculus
-ones.165 = 165 - Theory of knowledge. Epistemology
-ones.166 = 166 - [Unassigned]
-ones.167 = 167 - [Unassigned]
-ones.168 = 168 - [Unassigned]
-ones.169 = 169 - [Unassigned]
-ones.170 = 170 - [Unassigned]
-ones.171 = 171 - Individual ethics. Human duties to oneself
-ones.172 = 172 - Social ethics. Duties to one`s fellow humans
-ones.173 = 173 - Family ethics
-ones.174 = 174 - [Unassigned]
-ones.175 = 175 - [Unassigned]
-ones.176 = 176 - Sexual ethics. Sexual morality
-ones.177 = 177 - Ethics and society
-ones.178 = 178 - [Unassigned]
-ones.179 = 179 - [Unassigned]
-ones.180 = 180 - [Unassigned]
-ones.181 = 181 - [Unassigned]
-ones.182 = 182 - [Unassigned]
-ones.183 = 183 - [Unassigned]
-ones.184 = 184 - [Unassigned]
-ones.185 = 185 - [Unassigned]
-ones.186 = 186 - [Unassigned]
-ones.187 = 187 - [Unassigned]
-ones.188 = 188 - [Unassigned]
-ones.189 = 189 - [Unassigned]
-ones.190 = 190 - [Unassigned]
-ones.191 = 191 - [Unassigned]
-ones.192 = 192 - [Unassigned]
-ones.193 = 193 - [Unassigned]
-ones.194 = 194 - [Unassigned]
-ones.195 = 195 - [Unassigned]
-ones.196 = 196 - [Unassigned]
-ones.197 = 197 - [Unassigned]
-ones.198 = 198 - [Unassigned]
-ones.199 = 199 - [Unassigned]
-ones.200 = 200 - [Unassigned]
-ones.201 = 201 - [Unassigned]
-ones.202 = 202 - [Unassigned]
-ones.203 = 203 - [Unassigned]
-ones.204 = 204 - [Unassigned]
-ones.205 = 205 - [Unassigned]
-ones.206 = 206 - [Unassigned]
-ones.207 = 207 - [Unassigned]
-ones.208 = 208 - [Unassigned]
-ones.209 = 209 - [Unassigned]
-ones.210 = 210 - [Unassigned]
-ones.211 = 211 - [Unassigned]
-ones.212 = 212 - Prehistoric religions
-ones.213 = 213 - Primitive religions
-ones.214 = 214 - [Unassigned]
-ones.215 = 215 - [Unassigned]
-ones.216 = 216 - [Unassigned]
-ones.217 = 217 - [Unassigned]
-ones.218 = 218 - [Unassigned]
-ones.219 = 219 - [Unassigned]
-ones.220 = 220 - [Unassigned]
-ones.221 = 221 - Religions of China
-ones.222 = 222 - [Unassigned]
-ones.223 = 223 - Religions of Korea
-ones.224 = 224 - [Unassigned]
-ones.225 = 225 - Religions of Japan
-ones.226 = 226 - [Unassigned]
-ones.227 = 227 - [Unassigned]
-ones.228 = 228 - [Unassigned]
-ones.229 = 229 - [Unassigned]
-ones.230 = 230 - [Unassigned]
-ones.231 = 231 - [Unassigned]
-ones.232 = 232 - [Unassigned]
-ones.233 = 233 - Hinduism narrowly
-ones.234 = 234 - Jainism
-ones.235 = 235 - Sikhism
-ones.236 = 236 - [Unassigned]
-ones.237 = 237 - [Unassigned]
-ones.238 = 238 - [Unassigned]
-ones.239 = 239 - [Unassigned]
-ones.240 = 240 - [Unassigned]
-ones.241 = 241 - Hinayana Buddhism. The lesser vehicle. Theravada Buddhism. Pali school
-ones.242 = 242 - Mahayana Buddhism. The great vehicle
-ones.243 = 243 - Lamaism
-ones.244 = 244 - Japanese Buddhism
-ones.245 = 245 - [Unassigned]
-ones.246 = 246 - [Unassigned]
-ones.247 = 247 - [Unassigned]
-ones.248 = 248 - [Unassigned]
-ones.249 = 249 - [Unassigned]
-ones.250 = 250 - [Unassigned]
-ones.251 = 251 - Ancient Egyptian religion
-ones.252 = 252 - Religions of Mesopotamia
-ones.253 = 253 - [Unassigned]
-ones.254 = 254 - Religions of Iran
-ones.255 = 255 - Religions of classical antiquity
-ones.256 = 256 - [Unassigned]
-ones.257 = 257 - Religions of Europe
-ones.258 = 258 - Religions of South and Central America. Pre-Columbian indigenous religions
-ones.259 = 259 - [Unassigned]
-ones.260 = 260 - [Unassigned]
-ones.261 = 261 - Religion of the Biblical period. Ancient Judaism. Old Testament religion
-ones.262 = 262 - Ashkenazi Judaism
-ones.263 = 263 - [Unassigned]
-ones.264 = 264 - Sephardi Judaism
-ones.265 = 265 - Orthodox Judaism
-ones.266 = 266 - Progressive Judaism
-ones.267 = 267 - Modern movements arising from Judaism
-ones.268 = 268 - [Unassigned]
-ones.269 = 269 - [Unassigned]
-ones.270 = 270 - [Unassigned]
-ones.271 = 271 - Eastern church
-ones.272 = 272 - Roman Catholic church
-ones.273 = 273 - Non-Roman Catholic episcopal churches
-ones.274 = 274 - Protestantism generally. Protestants. Dissenters. Puritans
-ones.275 = 275 - Re-formed churches
-ones.276 = 276 - Anabaptists
-ones.277 = 277 - Free churches. Non-conformists
-ones.278 = 278 - Other protestant churches
-ones.279 = 279 - Other Christian movements and churches
-ones.280 = 280 - [Unassigned]
-ones.281 = 281 - Sufism
-ones.282 = 282 - Sunni. Sunnite Islam
-ones.283 = 283 - [Unassigned]
-ones.284 = 284 - Shi'a. Shi'ite Islam
-ones.285 = 285 - Babi-Baha'i
-ones.286 = 286 - Baha'i
-ones.287 = 287 - [Unassigned]
-ones.288 = 288 - [Unassigned]
-ones.289 = 289 - [Unassigned]
-ones.290 = 290 - [Unassigned]
-ones.291 = 291 - [Unassigned]
-ones.292 = 292 - [Unassigned]
-ones.293 = 293 - [Unassigned]
-ones.294 = 294 - [Unassigned]
-ones.295 = 295 - [Unassigned]
-ones.296 = 296 - [Unassigned]
-ones.297 = 297 - [Unassigned]
-ones.298 = 298 - [Unassigned]
-ones.299 = 299 - [Unassigned]
-ones.300 = 300 - [Unassigned]
-ones.301 = 301 - [Unassigned]
-ones.302 = 302 - [Unassigned]
-ones.303 = 303 - Methods of the social sciences
-ones.304 = 304 - Social questions. Social practice. Cultural practice. Way of life (Lebensweise)
-ones.305 = 305 - Gender studies
-ones.306 = 306 - [Unassigned]
-ones.307 = 307 - [Unassigned]
-ones.308 = 308 - Sociography. Descriptive studies of society (both qualitative and quantitative)
-ones.309 = 309 - [Unassigned]
-ones.310 = 310 - [Unassigned]
-ones.311 = 311 - Statistics as a science. Statistical theory
-ones.312 = 312 - [Unassigned]
-ones.313 = 313 - [Unassigned]
-ones.314 = 314 - Demography. Population studies
-ones.315 = 315 - [Unassigned]
-ones.316 = 316 - Sociology
-ones.317 = 317 - [Unassigned]
-ones.318 = 318 - [Unassigned]
-ones.319 = 319 - [Unassigned]
-ones.320 = 320 - [Unassigned]
-ones.321 = 321 - Forms of political organization. States as political powers
-ones.322 = 322 - Relations between church and state. Policy towards religion. Church policy
-ones.323 = 323 - Home affairs. Internal policy
-ones.324 = 324 - Elections. Plebiscites. Referendums. Election campaigns. Electoral corruption, malpractice. Election results
-ones.325 = 325 - Opening up of territories. Colonization. Colonialism
-ones.326 = 326 - Slavery
-ones.327 = 327 - International relations. World, global politics. International affairs. Foreign policy
-ones.328 = 328 - Parliaments. Congresses. Representation of the people. Governments
-ones.329 = 329 - Political parties and movements
-ones.330 = 330 - Economics in general
-ones.331 = 331 - Labour. Employment. Work. Labour economics. Organization of labour
-ones.332 = 332 - Regional economics. Territorial economics. Land economics. Housing economics
-ones.333 = 333 - [Unassigned]
-ones.334 = 334 - Forms of organization and cooperation in the economy
-ones.335 = 335 - [Unassigned]
-ones.336 = 336 - Finance
-ones.337 = 337 - [Unassigned]
-ones.338 = 338 - Economic situation. Economic policy. Management of the economy. Economic planning. Production. Services. Prices
-ones.339 = 339 - Trade. Commerce. International economic relations. World economy
-ones.340 = 340 - Law in general. Legal methods and auxiliary sciences
-ones.341 = 341 - International law
-ones.342 = 342 - Public law. Constitutional law. Administrative law
-ones.343 = 343 - Criminal law. Penal offences
-ones.344 = 344 - Special criminal law. Military, naval, air force laws
-ones.345 = 345 - [Unassigned]
-ones.346 = 346 - Economic law. Law of government control of the economy
-ones.347 = 347 - Civil law
-ones.348 = 348 - Ecclesiastical law. Canon law. Religious law (option)
-ones.349 = 349 - Special branches of law. Miscellaneous legal matters
-ones.350 = 350 - [Unassigned]
-ones.351 = 351 - Particular activities of public administration
-ones.352 = 352 - Lowest levels of administration. Local government. Municipal administration. Local authorities
-ones.353 = 353 - Middle levels of administration. Regional, provincial government. Regional authorities
-ones.354 = 354 - High level, top level of administration. Central, national government
-ones.355 = 355 - Military affairs generally
-ones.356 = 356 - Army service generally. Infantry. Foot soldiers
-ones.357 = 357 - Cavalry. Mounted troops. Motorized troops
-ones.358 = 358 - Artillery. Engineers. Aviation. Various technical units and their function
-ones.359 = 359 - Naval forces. Military fleet. Navy: personnel, organization
-ones.360 = 360 - [Unassigned]
-ones.361 = 361 - [Unassigned]
-ones.362 = 362 - [Unassigned]
-ones.363 = 363 - [Unassigned]
-ones.364 = 364 - Social welfare
-ones.365 = 365 - Accommodation desires and their fulfilment. Safeguarding accommodation
-ones.366 = 366 - Consumerism
-ones.367 = 367 - [Unassigned]
-ones.368 = 368 - Insurance. Communal provision through sharing of risk
-ones.369 = 369 - [Unassigned]
-ones.370 = 370 - [Unassigned]
-ones.371 = 371 - [Unassigned]
-ones.372 = 372 - [Unassigned]
-ones.373 = 373 - Kinds of school providing general education
-ones.374 = 374 - Education and training out of school. Further education
-ones.375 = 375 - [Unassigned]
-ones.376 = 376 - Education, teaching, training of special groups of persons. Special schools
-ones.377 = 377 - Specialized instruction. Vocational, technical, professional training. Vocational colleges, institutes. Polytechnics
-ones.378 = 378 - Higher education. Universities. Academic study
-ones.379 = 379 - [Unassigned]
-ones.380 = 380 - [Unassigned]
-ones.381 = 381 - [Unassigned]
-ones.382 = 382 - [Unassigned]
-ones.383 = 383 - [Unassigned]
-ones.384 = 384 - [Unassigned]
-ones.385 = 385 - [Unassigned]
-ones.386 = 386 - [Unassigned]
-ones.387 = 387 - [Unassigned]
-ones.388 = 388 - [Unassigned]
-ones.389 = 389 - [Unassigned]
-ones.390 = 390 - [Unassigned]
-ones.391 = 391 - Costume. Clothing. National dress. Fashion. Adornment
-ones.392 = 392 - Customs, manners, usage in private life
-ones.393 = 393 - Death. Treatment of corpses. Funerals. Death rites
-ones.394 = 394 - Public life. Pageantry. Social life. Life of the people
-ones.395 = 395 - Social ceremonial. Etiquette. Good manners. Social forms. Rank. Title
-ones.396 = 396 - [Unassigned]
-ones.397 = 397 - [Unassigned]
-ones.398 = 398 - Folklore in the strict sense
-ones.399 = 399 - [Unassigned]
-ones.400 = 400 - [Unassigned]
-ones.401 = 401 - [Unassigned]
-ones.402 = 402 - [Unassigned]
-ones.403 = 403 - [Unassigned]
-ones.404 = 404 - [Unassigned]
-ones.405 = 405 - [Unassigned]
-ones.406 = 406 - [Unassigned]
-ones.407 = 407 - [Unassigned]
-ones.408 = 408 - [Unassigned]
-ones.409 = 409 - [Unassigned]
-ones.410 = 410 - [Unassigned]
-ones.411 = 411 - [Unassigned]
-ones.412 = 412 - [Unassigned]
-ones.413 = 413 - [Unassigned]
-ones.414 = 414 - [Unassigned]
-ones.415 = 415 - [Unassigned]
-ones.416 = 416 - [Unassigned]
-ones.417 = 417 - [Unassigned]
-ones.418 = 418 - [Unassigned]
-ones.419 = 419 - [Unassigned]
-ones.420 = 420 - [Unassigned]
-ones.421 = 421 - [Unassigned]
-ones.422 = 422 - [Unassigned]
-ones.423 = 423 - [Unassigned]
-ones.424 = 424 - [Unassigned]
-ones.425 = 425 - [Unassigned]
-ones.426 = 426 - [Unassigned]
-ones.427 = 427 - [Unassigned]
-ones.428 = 428 - [Unassigned]
-ones.429 = 429 - [Unassigned]
-ones.430 = 430 - [Unassigned]
-ones.431 = 431 - [Unassigned]
-ones.432 = 432 - [Unassigned]
-ones.433 = 433 - [Unassigned]
-ones.434 = 434 - [Unassigned]
-ones.435 = 435 - [Unassigned]
-ones.436 = 436 - [Unassigned]
-ones.437 = 437 - [Unassigned]
-ones.438 = 438 - [Unassigned]
-ones.439 = 439 - [Unassigned]
-ones.440 = 440 - [Unassigned]
-ones.441 = 441 - [Unassigned]
-ones.442 = 442 - [Unassigned]
-ones.443 = 443 - [Unassigned]
-ones.444 = 444 - [Unassigned]
-ones.445 = 445 - [Unassigned]
-ones.446 = 446 - [Unassigned]
-ones.447 = 447 - [Unassigned]
-ones.448 = 448 - [Unassigned]
-ones.449 = 449 - [Unassigned]
-ones.450 = 450 - [Unassigned]
-ones.451 = 451 - [Unassigned]
-ones.452 = 452 - [Unassigned]
-ones.453 = 453 - [Unassigned]
-ones.454 = 454 - [Unassigned]
-ones.455 = 455 - [Unassigned]
-ones.456 = 456 - [Unassigned]
-ones.457 = 457 - [Unassigned]
-ones.458 = 458 - [Unassigned]
-ones.459 = 459 - [Unassigned]
-ones.460 = 460 - [Unassigned]
-ones.461 = 461 - [Unassigned]
-ones.462 = 462 - [Unassigned]
-ones.463 = 463 - [Unassigned]
-ones.464 = 464 - [Unassigned]
-ones.465 = 465 - [Unassigned]
-ones.466 = 466 - [Unassigned]
-ones.467 = 467 - [Unassigned]
-ones.468 = 468 - [Unassigned]
-ones.469 = 469 - [Unassigned]
-ones.470 = 470 - [Unassigned]
-ones.471 = 471 - [Unassigned]
-ones.472 = 472 - [Unassigned]
-ones.473 = 473 - [Unassigned]
-ones.474 = 474 - [Unassigned]
-ones.475 = 475 - [Unassigned]
-ones.476 = 476 - [Unassigned]
-ones.477 = 477 - [Unassigned]
-ones.478 = 478 - [Unassigned]
-ones.479 = 479 - [Unassigned]
-ones.480 = 480 - [Unassigned]
-ones.481 = 481 - [Unassigned]
-ones.482 = 482 - [Unassigned]
-ones.483 = 483 - [Unassigned]
-ones.484 = 484 - [Unassigned]
-ones.485 = 485 - [Unassigned]
-ones.486 = 486 - [Unassigned]
-ones.487 = 487 - [Unassigned]
-ones.488 = 488 - [Unassigned]
-ones.489 = 489 - [Unassigned]
-ones.490 = 490 - [Unassigned]
-ones.491 = 491 - [Unassigned]
-ones.492 = 492 - [Unassigned]
-ones.493 = 493 - [Unassigned]
-ones.494 = 494 - [Unassigned]
-ones.495 = 495 - [Unassigned]
-ones.496 = 496 - [Unassigned]
-ones.497 = 497 - [Unassigned]
-ones.498 = 498 - [Unassigned]
-ones.499 = 499 - [Unassigned]
-ones.500 = 500 - [Unassigned]
-ones.501 = 501 - [Unassigned]
-ones.502 = 502 - The environment and its protection
-ones.503 = 503 - [Unassigned]
-ones.504 = 504 - Threats to the environment
-ones.505 = 505 - [Unassigned]
-ones.506 = 506 - [Unassigned]
-ones.507 = 507 - [Unassigned]
-ones.508 = 508 - [Unassigned]
-ones.509 = 509 - [Unassigned]
-ones.510 = 510 - Fundamental and general considerations of mathematics
-ones.511 = 511 - Number theory
-ones.512 = 512 - Algebra
-ones.513 = 513 - [Unassigned]
-ones.514 = 514 - Geometry
-ones.515 = 515 - [Unassigned]
-ones.516 = 516 - [Unassigned]
-ones.517 = 517 - Analysis
-ones.518 = 518 - [Unassigned]
-ones.519 = 519 - [Unassigned]
-ones.520 = 520 - Astronomical instruments and techniques
-ones.521 = 521 - Theoretical astronomy. Celestial mechanics
-ones.522 = 522 - [Unassigned]
-ones.523 = 523 - The Solar System
-ones.524 = 524 - Stars. Stellar systems. The Universe
-ones.525 = 525 - [Unassigned]
-ones.526 = 526 - [Unassigned]
-ones.527 = 527 - [Unassigned]
-ones.528 = 528 - Geodesy. Surveying. Photogrammetry. Remote sensing. Cartography
-ones.529 = 529 - [Unassigned]
-ones.530 = 530 - [Unassigned]
-ones.531 = 531 - General mechanics. Mechanics of solid and rigid bodies
-ones.532 = 532 - Fluid mechanics in general. Mechanics of liquids (hydromechanics)
-ones.533 = 533 - Mechanics of gases. Aeromechanics. Plasma physics
-ones.534 = 534 - Vibrations. Waves. Acoustics
-ones.535 = 535 - Optics
-ones.536 = 536 - Heat. Thermodynamics. Statistical physics
-ones.537 = 537 - Electricity. Magnetism. Electromagnetism
-ones.538 = 538 - [Unassigned]
-ones.539 = 539 - Physical nature of matter
-ones.540 = 540 - [Unassigned]
-ones.541 = 541 - [Unassigned]
-ones.542 = 542 - Practical laboratory chemistry. Preparative and experimental chemistry
-ones.543 = 543 - Analytical chemistry
-ones.544 = 544 - Physical chemistry
-ones.545 = 545 - [Unassigned]
-ones.546 = 546 - Inorganic chemistry
-ones.547 = 547 - Organic chemistry
-ones.548 = 548 - Crystallography
-ones.549 = 549 - Mineralogy. Special study of minerals
-ones.550 = 550 - Ancillary sciences of geology etc.
-ones.551 = 551 - General geology. Meteorology. Climatology. Historical geology. Stratigraphy. Palaeogeography
-ones.552 = 552 - Petrology. Petrography
-ones.553 = 553 - Economic geology. Mineral deposits
-ones.554 = 554 - [Unassigned]
-ones.555 = 555 - [Unassigned]
-ones.556 = 556 - Hydrosphere. Water in general. Hydrology
-ones.557 = 557 - Systematic palaeobotany
-ones.558 = 558 - Invertebrata in general
-ones.559 = 559 - [Unassigned]
-ones.560 = 560 - [Unassigned]
-ones.561 = 561 - [Unassigned]
-ones.562 = 562 - [Unassigned]
-ones.563 = 563 - [Unassigned]
-ones.564 = 564 - Mollusca. Bryozoa. Brachiopoda
-ones.565 = 565 - Articulata
-ones.566 = 566 - [Unassigned]
-ones.567 = 567 - Pisces: Fishes
-ones.568 = 568 - Sauropsida
-ones.569 = 569 - Mammalia. Mammals
-ones.570 = 570 - [Unassigned]
-ones.571 = 571 - [Unassigned]
-ones.572 = 572 - Physical anthropology
-ones.573 = 573 - General and theoretical biology
-ones.574 = 574 - General ecology and biodiversity
-ones.575 = 575 - General genetics. General cytogenetics
-ones.576 = 576 - Cellular and subcellular biology. Cytology
-ones.577 = 577 - Material bases of life. Biochemistry. Molecular biology. Biophysics
-ones.578 = 578 - Virology
-ones.579 = 579 - Microbiology
-ones.580 = 580 - [Unassigned]
-ones.581 = 581 - General botany
-ones.582 = 582 - Systematic botany
-ones.583 = 583 - [Unassigned]
-ones.584 = 584 - [Unassigned]
-ones.585 = 585 - [Unassigned]
-ones.586 = 586 - [Unassigned]
-ones.587 = 587 - [Unassigned]
-ones.588 = 588 - [Unassigned]
-ones.589 = 589 - [Unassigned]
-ones.590 = 590 - [Unassigned]
-ones.591 = 591 - General zoology
-ones.592 = 592 - Invertebrata in general
-ones.593 = 593 - Mollusca. Bryozoa. Brachiopoda
-ones.594 = 594 - [Unassigned]
-ones.595 = 595 - Articulata
-ones.596 = 596 - [Unassigned]
-ones.597 = 597 - [Unassigned]
-ones.598 = 598 - Sauropsida
-ones.599 = 599 - Mammalia. Mammals
-ones.600 = 600 - Fundamental concepts
-ones.601 = 601 - Processes and techniques in biotechnology
-ones.602 = 602 - [Unassigned]
-ones.603 = 603 - [Unassigned]
-ones.604 = 604 - Biotechnology products
-ones.605 = 605 - [Unassigned]
-ones.606 = 606 - Applications of biotechnology
-ones.607 = 607 - [Unassigned]
-ones.608 = 608 - Issues in biotechnology
-ones.609 = 609 - [Unassigned]
-ones.610 = 610 - [Unassigned]
-ones.611 = 611 - Anatomy. Human and comparative anatomy
-ones.612 = 612 - Physiology. Human and comparative physiology
-ones.613 = 613 - Hygiene generally. Personal health and hygiene
-ones.614 = 614 - Public health and hygiene. Accident prevention
-ones.615 = 615 - Pharmacology. Therapeutics. Toxicology
-ones.616 = 616 - Pathology. Clinical medicine
-ones.617 = 617 - Surgery. Orthopaedics. Ophthalmology
-ones.618 = 618 - Gynaecology. Obstetrics
-ones.619 = 619 - [Unassigned]
-ones.620 = 620 - Materials testing. Commercial materials. Power stations. Economics of energy
-ones.621 = 621 - Mechanical engineering in general. Nuclear technology. Electrical engineering. Machinery
-ones.622 = 622 - Mining
-ones.623 = 623 - Military engineering
-ones.624 = 624 - Civil and structural engineering in general
-ones.625 = 625 - Civil engineering of land transport. Railway engineering. Highway engineering
-ones.626 = 626 - Hydraulic engineering in general
-ones.627 = 627 - Natural waterway, port, harbour and shore engineering. Navigational, dredging, salvage and rescue facilities. Dams and hydraulic power plant
-ones.628 = 628 - Public health engineering. Water. Sanitation. Illuminating engineering
-ones.629 = 629 - Transport vehicle engineering
-ones.630 = 630 - Forestry
-ones.631 = 631 - Agriculture in general
-ones.632 = 632 - Plant damage, injuries. Plant diseases. Pests, organisms injurious to plants. Plant protection
-ones.633 = 633 - Field crops and their production
-ones.634 = 634 - Fruit growing
-ones.635 = 635 - Garden plants. Gardening
-ones.636 = 636 - Animal husbandry and breeding in general. Livestock rearing. Breeding of domestic animals
-ones.637 = 637 - Produce of domestic (farmyard) animals and game
-ones.638 = 638 - Keeping, breeding and management of insects and other arthropods
-ones.639 = 639 - Hunting. Fishing. Fish breeding
-ones.640 = 640 - Types of household
-ones.641 = 641 - Food. Cooking. Dishes
-ones.642 = 642 - Meals and mealtimes. Tableware
-ones.643 = 643 - The home. The dwelling
-ones.644 = 644 - Installations for health and comfort in dwellings
-ones.645 = 645 - Furniture and household fittings
-ones.646 = 646 - [Unassigned]
-ones.647 = 647 - [Unassigned]
-ones.648 = 648 - Washing. Laundry. Cleaning
-ones.649 = 649 - Domestic care of children, invalids, guests
-ones.650 = 650 - [Unassigned]
-ones.651 = 651 - [Unassigned]
-ones.652 = 652 - [Unassigned]
-ones.653 = 653 - [Unassigned]
-ones.654 = 654 - Telecommunication and telecontrol (organization, services)
-ones.655 = 655 - Graphic industries. Printing. Publishing. Book trade
-ones.656 = 656 - Transport and postal services. Traffic organization and control
-ones.657 = 657 - Accountancy
-ones.658 = 658 - Business management, administration. Commercial organization
-ones.659 = 659 - Publicity. Public relations
-ones.660 = 660 - [Unassigned]
-ones.661 = 661 - Chemicals
-ones.662 = 662 - Explosives. Fuels
-ones.663 = 663 - Industrial microbiology. Industrial mycology. Zymurgy, fermentation industry. Beverage industry. Stimulant industry
-ones.664 = 664 - Production and preservation of solid foodstuffs
-ones.665 = 665 - Oils. Fats. Waxes. Adhesives. Gums. Resins
-ones.666 = 666 - Glass industry. Ceramics. Cement and concrete
-ones.667 = 667 - Colour industries
-ones.668 = 668 - [Unassigned]
-ones.669 = 669 - Metallurgy
-ones.670 = 670 - [Unassigned]
-ones.671 = 671 - Articles of precious metals, gems, precious stones
-ones.672 = 672 - Articles of iron and steel in general
-ones.673 = 673 - Articles of nonferrous metals (except precious metals)
-ones.674 = 674 - Timber and woodworking industry
-ones.675 = 675 - Leather industry (including fur and imitation leather)
-ones.676 = 676 - Pulp, paper and board industry
-ones.677 = 677 - Textile industry
-ones.678 = 678 - Industries based on macromolecular materials. Rubber industry. Plastics industry
-ones.679 = 679 - Industries based on various processable materials
-ones.680 = 680 - [Unassigned]
-ones.681 = 681 - Precision mechanisms and instruments
-ones.682 = 682 - Smithery. Blacksmithery. Farriery. Hand-forged ironwork
-ones.683 = 683 - Ironmongery. Hardware. Locksmithing. Bottling. Lamps. Heating appliances
-ones.684 = 684 - Furniture and allied industries. Furniture manufacture. Upholstery
-ones.685 = 685 - Saddlery. Footwear. Gloving. Travel, sports, games and other equipment
-ones.686 = 686 - Bookbinding. Metallizing. Mirror-making. Stationery
-ones.687 = 687 - Clothing industry. Garment manufacture. Beauty culture
-ones.688 = 688 - Fancy goods. Toys. Decorative articles
-ones.689 = 689 - Amateur handicrafts. Technical hobbies
-ones.690 = 690 - [Unassigned]
-ones.691 = 691 - Building materials. Building components
-ones.692 = 692 - Structural parts and elements of buildings
-ones.693 = 693 - Masonry and related building crafts
-ones.694 = 694 - Timber construction. Carpentry. Joinery
-ones.695 = 695 - [Unassigned]
-ones.696 = 696 - Equipment, services, installations in buildings (sanitary, gas, steam, electrical). Pipe fitter. Plumber. Metal worker. Drainlayer. Electrician. Other trades
-ones.697 = 697 - Heating, ventilation and air conditioning of buildings
-ones.698 = 698 - Finishing and decorating trades
-ones.699 = 699 - [Unassigned]
-ones.700 = 700 - [Unassigned]
-ones.701 = 701 - [Unassigned]
-ones.702 = 702 - [Unassigned]
-ones.703 = 703 - [Unassigned]
-ones.704 = 704 - [Unassigned]
-ones.705 = 705 - [Unassigned]
-ones.706 = 706 - [Unassigned]
-ones.707 = 707 - [Unassigned]
-ones.708 = 708 - [Unassigned]
-ones.709 = 709 - [Unassigned]
-ones.710 = 710 - [Unassigned]
-ones.711 = 711 - Principles and practice of physical planning. Regional, town and country planning
-ones.712 = 712 - Planning of landscape (natural and designed). Parks. Gardens
-ones.713 = 713 - [Unassigned]
-ones.714 = 714 - [Unassigned]
-ones.715 = 715 - [Unassigned]
-ones.716 = 716 - [Unassigned]
-ones.717 = 717 - [Unassigned]
-ones.718 = 718 - Cemeteries. Graveyards. Crematoriums. Other places for disposal of the dead (planning, design, upkeep etc.)
-ones.719 = 719 - Preservation of rural and urban amenities generally
-ones.720 = 720 - [Unassigned]
-ones.721 = 721 - Buildings generally
-ones.722 = 722 - [Unassigned]
-ones.723 = 723 - [Unassigned]
-ones.724 = 724 - [Unassigned]
-ones.725 = 725 - Public, civil, commercial, industrial buildings. Secular architecture generally
-ones.726 = 726 - Religious, ecclesiastical architecture. Sacred and funerary buildings
-ones.727 = 727 - Buildings for educational, scientific, cultural purposes
-ones.728 = 728 - Domestic architecture. Housing. Residential buildings
-ones.729 = 729 - [Unassigned]
-ones.730 = 730 - Sculpture in general. Statuary
-ones.731 = 731 - [Unassigned]
-ones.732 = 732 - [Unassigned]
-ones.733 = 733 - [Unassigned]
-ones.734 = 734 - [Unassigned]
-ones.735 = 735 - [Unassigned]
-ones.736 = 736 - Glyptics. Sigillography
-ones.737 = 737 - Numismatics
-ones.738 = 738 - Ceramic arts. Pottery
-ones.739 = 739 - Metal arts
-ones.740 = 740 - [Unassigned]
-ones.741 = 741 - Drawing in general
-ones.742 = 742 - Perspective in drawing
-ones.743 = 743 - [Unassigned]
-ones.744 = 744 - Linear and geometric drawing. Technical drawing
-ones.745 = 745 - Decorative handicrafts
-ones.746 = 746 - Fancy work. Art needlework
-ones.747 = 747 - Interior decoration
-ones.748 = 748 - Vitreous arts. Artistic glassware and crystal ware
-ones.749 = 749 - Artistic furniture, heating and lighting devices
-ones.750 = 750 - [Unassigned]
-ones.751 = 751 - [Unassigned]
-ones.752 = 752 - [Unassigned]
-ones.753 = 753 - [Unassigned]
-ones.754 = 754 - [Unassigned]
-ones.755 = 755 - [Unassigned]
-ones.756 = 756 - [Unassigned]
-ones.757 = 757 - [Unassigned]
-ones.758 = 758 - [Unassigned]
-ones.759 = 759 - [Unassigned]
-ones.760 = 760 - [Unassigned]
-ones.761 = 761 - Relief techniques
-ones.762 = 762 - Intaglio techniques
-ones.763 = 763 - Planographic techniques. Lithography (autolithography)
-ones.764 = 764 - [Unassigned]
-ones.765 = 765 - [Unassigned]
-ones.766 = 766 - Applied graphic arts. Commercial graphics
-ones.767 = 767 - [Unassigned]
-ones.768 = 768 - [Unassigned]
-ones.769 = 769 - [Unassigned]
-ones.770 = 770 - [Unassigned]
-ones.771 = 771 - Photographic equipment, apparatus and materials
-ones.772 = 772 - Photographic systems, processes (especially those using inorganic substances or physical phenomena)
-ones.773 = 773 - [Unassigned]
-ones.774 = 774 - Photomechanical processes generally
-ones.775 = 775 - [Unassigned]
-ones.776 = 776 - Photolithography. Photographic production of planographic plates
-ones.777 = 777 - Intaglio and relief processes
-ones.778 = 778 - Special applications and techniques of photography
-ones.779 = 779 - [Unassigned]
-ones.780 = 780 - [Unassigned]
-ones.781 = 781 - [Unassigned]
-ones.782 = 782 - Dramatic music. Opera
-ones.783 = 783 - Church music. Sacred music. Religious music
-ones.784 = 784 - Vocal music
-ones.785 = 785 - Instrumental music. Symphonic music. Grouping of instruments. Ensemble music
-ones.786 = 786 - [Unassigned]
-ones.787 = 787 - [Unassigned]
-ones.788 = 788 - [Unassigned]
-ones.789 = 789 - [Unassigned]
-ones.790 = 790 - [Unassigned]
-ones.791 = 791 - Cinema. Films (motion pictures)
-ones.792 = 792 - Theatre. Stagecraft. Dramatic performances
-ones.793 = 793 - Social entertainments and recreations. Art of movement. Dance
-ones.794 = 794 - Board and table games (of thought, skill and chance)
-ones.795 = 795 - [Unassigned]
-ones.796 = 796 - Sport. Games. Physical exercises
-ones.797 = 797 - Water sports. Aerial sports
-ones.798 = 798 - Riding and driving. Horse and other animal sports
-ones.799 = 799 - Sport fishing. Sport hunting. Shooting and target sports
-ones.800 = 800 - [Unassigned]
-ones.801 = 801 - Prosody. Auxiliary sciences and sources of philology
-ones.802 = 802 - [Unassigned]
-ones.803 = 803 - [Unassigned]
-ones.804 = 804 - [Unassigned]
-ones.805 = 805 - [Unassigned]
-ones.806 = 806 - [Unassigned]
-ones.807 = 807 - [Unassigned]
-ones.808 = 808 - Rhetoric. The effective use of language
-ones.809 = 809 - [Unassigned]
-ones.810 = 810 - [Unassigned]
-ones.811 = 811 - Languages
-ones.812 = 812 - [Unassigned]
-ones.813 = 813 - [Unassigned]
-ones.814 = 814 - [Unassigned]
-ones.815 = 815 - [Unassigned]
-ones.816 = 816 - [Unassigned]
-ones.817 = 817 - [Unassigned]
-ones.818 = 818 - [Unassigned]
-ones.819 = 819 - [Unassigned]
-ones.820 = 820 - [Unassigned]
-ones.821 = 821 - Literatures of individual languages and language families
-ones.822 = 822 - [Unassigned]
-ones.823 = 823 - [Unassigned]
-ones.824 = 824 - [Unassigned]
-ones.825 = 825 - [Unassigned]
-ones.826 = 826 - [Unassigned]
-ones.827 = 827 - [Unassigned]
-ones.828 = 828 - [Unassigned]
-ones.829 = 829 - [Unassigned]
-ones.830 = 830 - [Unassigned]
-ones.831 = 831 - [Unassigned]
-ones.832 = 832 - [Unassigned]
-ones.833 = 833 - [Unassigned]
-ones.834 = 834 - [Unassigned]
-ones.835 = 835 - [Unassigned]
-ones.836 = 836 - [Unassigned]
-ones.837 = 837 - [Unassigned]
-ones.838 = 838 - [Unassigned]
-ones.839 = 839 - [Unassigned]
-ones.840 = 840 - [Unassigned]
-ones.841 = 841 - [Unassigned]
-ones.842 = 842 - [Unassigned]
-ones.843 = 843 - [Unassigned]
-ones.844 = 844 - [Unassigned]
-ones.845 = 845 - [Unassigned]
-ones.846 = 846 - [Unassigned]
-ones.847 = 847 - [Unassigned]
-ones.848 = 848 - [Unassigned]
-ones.849 = 849 - [Unassigned]
-ones.850 = 850 - [Unassigned]
-ones.851 = 851 - [Unassigned]
-ones.852 = 852 - [Unassigned]
-ones.853 = 853 - [Unassigned]
-ones.854 = 854 - [Unassigned]
-ones.855 = 855 - [Unassigned]
-ones.856 = 856 - [Unassigned]
-ones.857 = 857 - [Unassigned]
-ones.858 = 858 - [Unassigned]
-ones.859 = 859 - [Unassigned]
-ones.860 = 860 - [Unassigned]
-ones.861 = 861 - [Unassigned]
-ones.862 = 862 - [Unassigned]
-ones.863 = 863 - [Unassigned]
-ones.864 = 864 - [Unassigned]
-ones.865 = 865 - [Unassigned]
-ones.866 = 866 - [Unassigned]
-ones.867 = 867 - [Unassigned]
-ones.868 = 868 - [Unassigned]
-ones.869 = 869 - [Unassigned]
-ones.870 = 870 - [Unassigned]
-ones.871 = 871 - [Unassigned]
-ones.872 = 872 - [Unassigned]
-ones.873 = 873 - [Unassigned]
-ones.874 = 874 - [Unassigned]
-ones.875 = 875 - [Unassigned]
-ones.876 = 876 - [Unassigned]
-ones.877 = 877 - [Unassigned]
-ones.878 = 878 - [Unassigned]
-ones.879 = 879 - [Unassigned]
-ones.880 = 880 - [Unassigned]
-ones.881 = 881 - [Unassigned]
-ones.882 = 882 - [Unassigned]
-ones.883 = 883 - [Unassigned]
-ones.884 = 884 - [Unassigned]
-ones.885 = 885 - [Unassigned]
-ones.886 = 886 - [Unassigned]
-ones.887 = 887 - [Unassigned]
-ones.888 = 888 - [Unassigned]
-ones.889 = 889 - [Unassigned]
-ones.890 = 890 - [Unassigned]
-ones.891 = 891 - [Unassigned]
-ones.892 = 892 - [Unassigned]
-ones.893 = 893 - [Unassigned]
-ones.894 = 894 - [Unassigned]
-ones.895 = 895 - [Unassigned]
-ones.896 = 896 - [Unassigned]
-ones.897 = 897 - [Unassigned]
-ones.898 = 898 - [Unassigned]
-ones.899 = 899 - [Unassigned]
-ones.900 = 900 - [Unassigned]
-ones.901 = 901 - [Unassigned]
-ones.902 = 902 - Archaeology
-ones.903 = 903 - Prehistory. Prehistoric remains, artefacts, antiquities
-ones.904 = 904 - Cultural remains of historical times
-ones.905 = 905 - [Unassigned]
-ones.906 = 906 - [Unassigned]
-ones.907 = 907 - [Unassigned]
-ones.908 = 908 - Area studies. Study of a locality
-ones.909 = 909 - [Unassigned]
-ones.910 = 910 - General questions. Geography as a science. Exploration. Travel
-ones.911 = 911 - General geography. Science of geographical factors (systematic geography). Theoretical geography
-ones.912 = 912 - Nonliterary, nontextual representations of a region
-ones.913 = 913 - Regional geography
-ones.914 = 914 - [Unassigned]
-ones.915 = 915 - [Unassigned]
-ones.916 = 916 - [Unassigned]
-ones.917 = 917 - [Unassigned]
-ones.918 = 918 - [Unassigned]
-ones.919 = 919 - [Unassigned]
-ones.920 = 920 - [Unassigned]
-ones.921 = 921 - [Unassigned]
-ones.922 = 922 - [Unassigned]
-ones.923 = 923 - [Unassigned]
-ones.924 = 924 - [Unassigned]
-ones.925 = 925 - [Unassigned]
-ones.926 = 926 - [Unassigned]
-ones.927 = 927 - [Unassigned]
-ones.928 = 928 - [Unassigned]
-ones.929 = 929 - Biographical studies
-ones.930 = 930 - Science of history. Historiography
-ones.931 = 931 - [Unassigned]
-ones.932 = 932 - [Unassigned]
-ones.933 = 933 - [Unassigned]
-ones.934 = 934 - [Unassigned]
-ones.935 = 935 - [Unassigned]
-ones.936 = 936 - [Unassigned]
-ones.937 = 937 - [Unassigned]
-ones.938 = 938 - [Unassigned]
-ones.939 = 939 - [Unassigned]
-ones.940 = 940 - [Unassigned]
-ones.941 = 941 - [Unassigned]
-ones.942 = 942 - [Unassigned]
-ones.943 = 943 - [Unassigned]
-ones.944 = 944 - [Unassigned]
-ones.945 = 945 - [Unassigned]
-ones.946 = 946 - [Unassigned]
-ones.947 = 947 - [Unassigned]
-ones.948 = 948 - [Unassigned]
-ones.949 = 949 - [Unassigned]
-ones.950 = 950 - [Unassigned]
-ones.951 = 951 - [Unassigned]
-ones.952 = 952 - [Unassigned]
-ones.953 = 953 - [Unassigned]
-ones.954 = 954 - [Unassigned]
-ones.955 = 955 - [Unassigned]
-ones.956 = 956 - [Unassigned]
-ones.957 = 957 - [Unassigned]
-ones.958 = 958 - [Unassigned]
-ones.959 = 959 - [Unassigned]
-ones.960 = 960 - [Unassigned]
-ones.961 = 961 - [Unassigned]
-ones.962 = 962 - [Unassigned]
-ones.963 = 963 - [Unassigned]
-ones.964 = 964 - [Unassigned]
-ones.965 = 965 - [Unassigned]
-ones.966 = 966 - [Unassigned]
-ones.967 = 967 - [Unassigned]
-ones.968 = 968 - [Unassigned]
-ones.969 = 969 - [Unassigned]
-ones.970 = 970 - [Unassigned]
-ones.971 = 971 - [Unassigned]
-ones.972 = 972 - [Unassigned]
-ones.973 = 973 - [Unassigned]
-ones.974 = 974 - [Unassigned]
-ones.975 = 975 - [Unassigned]
-ones.976 = 976 - [Unassigned]
-ones.977 = 977 - [Unassigned]
-ones.978 = 978 - [Unassigned]
-ones.979 = 979 - [Unassigned]
-ones.980 = 980 - [Unassigned]
-ones.981 = 981 - [Unassigned]
-ones.982 = 982 - [Unassigned]
-ones.983 = 983 - [Unassigned]
-ones.984 = 984 - [Unassigned]
-ones.985 = 985 - [Unassigned]
-ones.986 = 986 - [Unassigned]
-ones.987 = 987 - [Unassigned]
-ones.988 = 988 - [Unassigned]
-ones.989 = 989 - [Unassigned]
-ones.990 = 990 - [Unassigned]
-ones.991 = 991 - [Unassigned]
-ones.992 = 992 - [Unassigned]
-ones.993 = 993 - [Unassigned]
-ones.994 = 994 - [Unassigned]
-ones.995 = 995 - [Unassigned]
-ones.996 = 996 - [Unassigned]
-ones.997 = 997 - [Unassigned]
-ones.998 = 998 - [Unassigned]
-ones.999 = 999 - [Unassigned]
-ones = [Unassigned]
diff --git a/import/vudl_FOXML.properties b/import/vudl_FOXML.properties
deleted file mode 100644
index 427ff06214421b1b51b577d32801523a4159e639..0000000000000000000000000000000000000000
--- a/import/vudl_FOXML.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-; XSLT Import Settings for VuDL
-[General]
-; REQUIRED: Name of XSLT file to apply.  Path is relative to the import/xsl directory
-; of the VuFind installation (or your local override directory).
-xslt = vudl_FOXML.xsl
-; OPTIONAL: PHP function(s) to register for use within XSLT file.  You may repeat
-; this line to register multiple PHP functions.
-php_function[] = str_pad
-; OPTIONAL: PHP class filled with public static functions for use by the XSLT file.
-; The class will be autoloaded using a prefix of VF_XSLT_Import_ (i.e. you need to
-; define VF_XSLT_Import_VuFind in your library directory); the short name will be
-; used from within the XSLT code.  You may repeat this line to load multiple custom
-; classes.
-custom_class[] = VuFind
-
-; XSLT parameters -- any key/value pairs set here will be passed as parameters to
-; the XSLT file, allowing local values to be set without modifying XSLT code.
-[Parameters]
-institution = "Villanova University"
-collection = "Digital Library"
-;track_changes = 1       ; Set to 1 to enable change tracking
-;solr_core = "biblio"    ; Solr core name for use with change tracking
-fedoraURL = "http://your.fedora.server"
-fedoraPort = "8080"
\ No newline at end of file
diff --git a/import/vufind.properties b/import/vufind.properties
deleted file mode 100644
index 52985f62f92e878c5242027856c2d95f553097a2..0000000000000000000000000000000000000000
--- a/import/vufind.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-# Properties for the VuFind indexer
-# $Id: vufind.properties $
-
-# A path relative to the VUFIND_HOME or VUFIND_LOCAL_DIR environment variable
-# where VuFind's configuration files can be found. By default, SolrMarc will
-# look in the VuFind 2.x-style directory path, but you can uncomment the line
-# below for compatibility with VuFind 1.x.
-#vufind.config.relative_path = web/conf
-
-# coordinate error log location - where to put coordinate indexing error logs
-# if not set, the default path will be VUFIND_LOCAL_DIR/import, and failing that,
-# VUFIND_HOME/import.
-#coordinate.log.path = /usr/local/vufind/import
diff --git a/import/webcrawl.php b/import/webcrawl.php
deleted file mode 100644
index 95cae11aa9339520fcd45081db508a25de31d6c7..0000000000000000000000000000000000000000
--- a/import/webcrawl.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Command-line tool to crawl website for special index.
- *
- * PHP version 7
- *
- * Copyright (c) Demian Katz 2010.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category VuFind
- * @package  Utilities
- * @author   Andrew S. Nagy <vufind-tech@lists.sourceforge.net>
- * @author   Demian Katz <demian.katz@villanova.edu>
- * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
- * @link     https://vufind.org/wiki/indexing Wiki
- */
-
-// Manipulate command line to load correct route, then load Zend Framework:
-array_unshift($_SERVER['argv'], array_shift($_SERVER['argv']), 'import', 'webcrawl');
-$_SERVER['argc'] += 2;
-require_once __DIR__ . '/../public/index.php';
diff --git a/import/xsl/doaj.xsl b/import/xsl/doaj.xsl
deleted file mode 100644
index 615de066bf03aaa8fd458d218725c9eb2369c4d9..0000000000000000000000000000000000000000
--- a/import/xsl/doaj.xsl
+++ /dev/null
@@ -1,162 +0,0 @@
-<xsl:stylesheet version="1.0"
-    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-    xmlns:php="http://php.net/xsl"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xlink="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:oai_doaj="http://doaj.org/features/oai_doaj/1.0/">
-    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
-    <xsl:param name="institution">Directory of Open Access Journals</xsl:param>
-    <xsl:param name="collection">DOAJ</xsl:param>
-    <xsl:template match="oai_doaj:doajArticle">
-        <add>
-            <doc>
-                <!-- ID -->
-                <!-- Important: This relies on an <identifier> tag being injected by the OAI-PMH harvester. -->
-                <field name="id">
-                    <xsl:value-of select="//identifier"/>
-                </field>
-
-                <!-- RECORDTYPE -->
-                <field name="recordtype">Article</field>
-
-                <!-- FULLRECORD -->
-                <!-- disabled for now; records are so large that they cause memory problems!
-                <field name="fullrecord">
-                    <xsl:copy-of select="php:function('VuFind::xmlAsText', /oai_doaj:record)"/>
-                </field>
-                  -->
-
-                <!-- ALLFIELDS -->
-                <field name="allfields">
-                    <xsl:value-of select="normalize-space(string(/oai_doaj:doajArticle))"/>
-                </field>
-
-                <!-- INSTITUTION -->
-                <field name="institution">
-                    <xsl:value-of select="$institution" />
-                </field>
-
-                <!-- COLLECTION -->
-                <field name="collection">
-                    <xsl:value-of select="$collection" />
-                </field>
-
-                <!-- LANGUAGE -->
-                <xsl:if test="/oai_doaj:doajArticle/oai_doaj:language">
-                    <xsl:for-each select="/oai_doaj:doajArticle/oai_doaj:language">
-                        <xsl:if test="string-length() > 0">
-                            <field name="language">
-                                <xsl:value-of select="php:function('VuFind::mapString', normalize-space(string(.)), 'language_map.properties')"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-                -->
-
-                <!-- FORMAT -->
-                <field name="format">Article</field>
-
-                <!-- AUTHOR -->
-                <xsl:if test="//oai_doaj:authors/oai_doaj:author/oai_doaj:name">
-                    <xsl:for-each select="//oai_doaj:authors/oai_doaj:author/oai_doaj:name">
-                        <xsl:if test="normalize-space()">
-                            <field name="author">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                            <!-- use first author value for sorting -->
-                            <xsl:if test="position()=1">
-                                <field name="author_sort">
-                                    <xsl:value-of select="normalize-space()"/>
-                                </field>
-                            </xsl:if>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- TITLE -->
-                <xsl:if test="//oai_doaj:title[normalize-space()]">
-                    <field name="title">
-                        <xsl:value-of select="//oai_doaj:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_short">
-                        <xsl:value-of select="//oai_doaj:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_full">
-                        <xsl:value-of select="//oai_doaj:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_sort">
-                        <xsl:value-of select="php:function('VuFind::stripArticles', string(//oai_doaj:title[normalize-space()]))"/>
-                    </field>
-                </xsl:if>
-
-                <!-- PUBLISHER -->
-                <xsl:if test="//oai_doaj:publisher[normalize-space()]">
-                    <field name="publisher">
-                        <xsl:value-of select="//oai_doaj:publisher[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                 <!-- SERIES -->
-                <xsl:if test="//oai_doaj:journalTitle[normalize-space()]">
-                    <field name="series">
-                        <xsl:value-of select="//oai_doaj:journalTitle[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                 <!-- ISSN  -->
-                <xsl:if test="//oai_doaj:issn[normalize-space()]">
-                    <field name="issn">
-                        <xsl:value-of select="//oai_doaj:issn[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                <!-- ISSN  -->
-                <xsl:if test="//oai_doaj:eissn[normalize-space()]">
-                    <field name="issn">
-                        <xsl:value-of select="//oai_doaj:eissn[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                <!-- PUBLISHDATE -->
-                <xsl:if test="//oai_doaj:publicationDate">
-                    <field name="publishDate">
-                        <xsl:value-of select="//oai_doaj:publicationDate"/>
-                    </field>
-                    <field name="publishDateSort">
-                        <xsl:value-of select="//oai_doaj:publicationDate"/>
-                    </field>
-                </xsl:if>
-
-                <!-- DESCRIPTION -->
-                <xsl:if test="//oai_doaj:abstract">
-                    <field name="description">
-                        <xsl:value-of select="//oai_doaj:abstract" />
-                    </field>
-                </xsl:if>
-
-                <!-- SUBJECT -->
-                <xsl:if test="//oai_doaj:keywords">
-                    <xsl:for-each select="//oai_doaj:keywords/oai_doaj:keyword">
-                        <xsl:if test="string-length() > 0">
-                            <field name="topic">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- URL -->
-                <xsl:if test="//oai_doaj:fullTextUrl">
-                    <xsl:choose>
-                        <xsl:when test="contains(//oai_doaj:fullTextUrl, '://')">
-                            <field name="url"><xsl:value-of select="//oai_doaj:fullTextUrl[normalize-space()]"/></field>
-                        </xsl:when>
-                        <xsl:otherwise>
-                            <field name="url">http://<xsl:value-of select="//oai_doaj:fullTextUrl[normalize-space()]"/></field>
-                        </xsl:otherwise>
-                    </xsl:choose>
-                </xsl:if> 
-            </doc>
-        </add>
-    </xsl:template>
-</xsl:stylesheet>
diff --git a/import/xsl/dspace-dim.xsl b/import/xsl/dspace-dim.xsl
deleted file mode 100644
index 530f49e6a7a4a6ce8d91b438064b37586a374537..0000000000000000000000000000000000000000
--- a/import/xsl/dspace-dim.xsl
+++ /dev/null
@@ -1,264 +0,0 @@
-<!-- available fields are defined in solr/biblio/conf/schema.xml -->
-<!-- This document was written for Biblioteca Brasiliana Guita e José Mindlin
-     by Fabio Chagas da Silva (fabio.chagas.silva@usp.br, GitHub: @fabio-stdio).
-     It takes metadata directly from dim to index in Solr. It is based on dspace.xsl.
-
-     The choices of fields were made based on which metadata is most interesting
-     for the user of the library and which Solr fields in schema.xml are close to
-     the metadata of choice. Those choices were made supervised by the librarian
-     of Brasiliana Guita e José Mindlin, Rodrigo Garcia (garcia.rodrigo@gmail.com).
-
-     Additional fields (and significant adjustments) were added based on the work
-     of Roland Keck.
--->
-<xsl:stylesheet version="1.0"
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:dc="http://purl.org/dc/elements/1.1/"
-                xmlns:dim="http://www.dspace.org/xmlns/dspace/dim"
-                xmlns:php="http://php.net/xsl"
-                xmlns:xlink="http://www.w3.org/2001/XMLSchema-instance">
-    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
-    <xsl:param name="institution">My University</xsl:param>
-    <xsl:param name="collection">DSpace</xsl:param>
-    <xsl:template match="dim:dim">
-        <add>
-            <doc>
-                <!-- Those fields are treated the same as in dspace.xsl, except 
-                     for the tags
-                -->
-
-                <!-- ID -->
-                <!-- Important: This relies on an <identifier> tag being injected
-                     by the OAI-PMH harvester.
-                -->
-                <field name="id">
-                    <xsl:value-of select="//identifier"/>
-                </field>
-
-                <!-- RECORDTYPE -->
-                <field name="recordtype">dspace</field>
-
-                <!-- ALLFIELDS -->
-                <xsl:for-each select="//dim:field">
-                    <xsl:if test="string-length(.) > 0">
-                        <field name="allfields">
-                            <xsl:value-of select="normalize-space(.)"/>
-                        </field>
-                    </xsl:if>
-                </xsl:for-each>
-
-                <!-- INSTITUTION -->
-                <field name="institution">
-                    <xsl:value-of select="$institution" />
-                </field>
-
-                <!-- COLLECTION -->
-                <field name="collection">
-                    <xsl:value-of select="$collection" />
-                </field>
-
-                <!-- TITLE -->
-                <xsl:if test= "//dim:field[@element='title']">
-                    <field name="title">
-                        <xsl:value-of select="//dim:field[@element='title']"/>
-                    </field>
-                    <field name="title_short">
-                        <xsl:value-of select="//dim:field[@element='title']"/>
-                    </field>
-                    <field name="title_full">
-                        <xsl:value-of select="//dim:field[@element='title']"/>
-                    </field>
-                    <field name="title_sort">
-                        <xsl:value-of select="php:function('VuFind::stripArticles', string(//dim:field[@element='title'][normalize-space()]))"/>
-                    </field>
-                </xsl:if>
-
-                <!-- AUTHOR -->
-                <xsl:if test="//dim:field[@element='contributor' and @qualifier='author']">
-                    <xsl:for-each select="//dim:field[@element='contributor' and @qualifier='author']">
-                        <field name="author">
-                            <xsl:value-of select="normalize-space(.)"/>
-                        </field>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- CO AUTHOR -->
-                <xsl:if test="//dim:field[@element='contributor' and @qualifier='other']">
-                    <xsl:for-each select="//dim:field[@element='contributor' and @qualifier='other']">
-                        <field name="author2">
-                            <xsl:value-of select="normalize-space(.)"/>
-                        </field>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- EDITOR (treated as corporate author as per Roland Keck's example;
-                     this may vary by institution.
-                -->
-                <xsl:if test="//dim:field[@element='contributor' and @qualifier='editor']">
-                    <xsl:for-each select="//dim:field[@element='contributor' and @qualifier='editor']">
-                        <field name="author_corporate">
-                            <xsl:value-of select="normalize-space(.)"/>
-                        </field>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- SUBJECT -->
-                <xsl:if test="//dim:field[@element='subject']">
-                    <xsl:for-each select="//dim:field[@element='subject']">
-                        <field name="topic">
-                            <xsl:value-of select="normalize-space(.)"/>
-                        </field>
-                        <field name="topic_facet">
-                            <xsl:value-of select="normalize-space(.)"/>
-                        </field>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- Published Date -->
-                <xsl:if test="//dim:field[@element='date' and @qualifier='issued']">
-                    <field name="publishDate">
-                        <xsl:value-of select="//dim:field[@element='date' and @qualifier='issued']"/>
-                    </field>
-                    <field name="publishDateSort">
-                        <xsl:value-of select="substring(//dim:field[@element='date' and @qualifier='issued'], 1, 4)" />
-                    </field>
-                </xsl:if>
-
-                <!-- Language -->
-                <xsl:if test="//dim:field[@element='language' and @qualifier='iso']">
-                    <field name="language">
-                        <xsl:value-of select="php:function('VuFind::mapString', normalize-space(string(//dim:field[@element='language' and @qualifier='iso'])), 'language_map_iso639-1.properties')"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Relation -->
-                <xsl:if test="//dim:field[@element='relation' and @qualifier = 'ispartof']">
-                    <field name="container_title">
-                        <xsl:value-of select="normalize-space(//dim:field[@element='relation' and @qualifier = 'ispartof'])"/>
-                    </field>
-                </xsl:if>
-                <xsl:if test="//dim:field[@element='relation' and @qualifier = 'ispartofvolume']">
-                    <field name="container_volume">
-                        <xsl:value-of select="normalize-space(//dim:field[@element='relation' and @qualifier = 'ispartofvolume'])"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Publisher -->
-                <xsl:if test="//dim:field[@element='publisher']">
-                    <field name="publisher">
-                        <xsl:value-of select="//dim:field[@element='publisher']"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Extent -->
-                <xsl:if test="//dim:field[@element='format' and @qualifier='extent']">
-                    <field name="physical">
-                        <xsl:value-of select="//dim:field[@element='format' and @qualifier='extent']"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Format -->
-                <xsl:if test="//dim:field[@element='format' and @qualifier='medium']">
-                    <field name="format">
-                        <xsl:value-of select="//dim:field[@element='format' and @qualifier='medium']"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Type -->
-                <xsl:if test="//dim:field[@element='type']">
-                    <field name="format">
-                        <xsl:value-of select="//dim:field[@element='type']"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Alternative Title -->
-                <xsl:if test="//dim:field[@element='title' and @qualifier='alternative']">
-                    <xsl:for-each select="//dim:field[@element='title' and @qualifier='alternative']">
-                        <field name="title_alt">
-                            <xsl:value-of select="normalize-space(.)"/>
-                        </field>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- Description -->
-                <!-- Two if blocks are used in description, one to check its
-                     existence and another, within the for-each loop to not print
-                     a dim:field[@element='description' and @qualifier='provenance'].
-
-                     Although, the field with only attribute @element='description'
-                     doesn't print, an inelegant solution was found and implemented
-
-                     A text tag is included for the new line character after
-                     printing the value in the field with the attribute
-                     @element='description' only.
-
-                     Within the for-each loop was included (as mentioned earlier)
-                     an if block. After printing all values with descriptions,
-                     except for description and provenance, concatenate with new
-                     line character.
-                -->
-                <xsl:if test="//dim:field[@element='description' and @qualifier='abstract']">
-                    <field name="description">
-                        <xsl:for-each select="//dim:field[@element='description' and @qualifier='abstract']">
-                            <xsl:value-of select="concat(., '&#xA;')"/>
-                        </xsl:for-each>
-                    </field>
-                </xsl:if>
-
-                <xsl:if test="//dim:field[@element='description' and @qualifier='edition']">
-                    <field name="edition">
-                        <xsl:value-of select="normalize-space(//dim:field[@element='description' and @qualifier='edition'])"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Volume (dc.relation.requires) -->
-                <xsl:if test="//dim:field[@element='relation' and @qualifier='requires']">
-                    <field name="container_volume">
-                        <xsl:value-of select="//dim:field[@element='relation' and @qualifier='requires']"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Table of contents -->
-                <xsl:if test="//dim:field[@element='description' and @qualifier='tableofcontents']">
-                    <field name="contents">
-                        <xsl:value-of select="//dim:field[@element='description' and @qualifier='tableofcontents']"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Spatial -->
-                <xsl:if test="//dim:field[@qualifier='spatial']">
-                    <xsl:for-each select="//dim:field[@qualifier='spatial']">
-                        <field name="geographic_facet">
-                            <xsl:value-of select="normalize-space(.)"/>
-                        </field>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- ISBN -->
-                <xsl:if test="//dim:field[@qualifier='isbn']">
-                    <field name="isbn">
-                        <xsl:value-of select="//dim:field[@qualifier='isbn']"/>
-                    </field>
-                </xsl:if>
-
-                <!-- ISSN -->
-                <xsl:if test="//dim:field[@qualifier='issn']">
-                    <field name="issn">
-                        <xsl:value-of select="//dim:field[@qualifier='issn']"/>
-                    </field>
-                </xsl:if>
-
-                <!-- URL -->
-                <xsl:for-each select="//dim:field[@element='identifier']">
-                    <xsl:if test="string-length(.) > 0">
-                        <xsl:if test="@qualifier = 'uri'">
-                            <field name="url">
-                                <xsl:value-of select="normalize-space(.)" />
-                            </field>
-                        </xsl:if>
-                    </xsl:if>
-                </xsl:for-each>
-            </doc>
-        </add>
-    </xsl:template>
-</xsl:stylesheet>
diff --git a/import/xsl/dspace.xsl b/import/xsl/dspace.xsl
deleted file mode 100644
index 81ff3284850ecb303f20e553767f81925872b473..0000000000000000000000000000000000000000
--- a/import/xsl/dspace.xsl
+++ /dev/null
@@ -1,157 +0,0 @@
-<!-- available fields are defined in solr/biblio/conf/schema.xml -->
-<xsl:stylesheet version="1.0"
-    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-    xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/"
-    xmlns:php="http://php.net/xsl"
-    xmlns:xlink="http://www.w3.org/2001/XMLSchema-instance">
-    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
-    <xsl:param name="institution">My University</xsl:param>
-    <xsl:param name="collection">DSpace</xsl:param>
-    <xsl:param name="urlPrefix">http</xsl:param>
-    <xsl:template match="oai_dc:dc">
-        <add>
-            <doc>
-                <!-- ID -->
-                <!-- Important: This relies on an <identifier> tag being injected by the OAI-PMH harvester. -->
-                <field name="id">
-                    <xsl:value-of select="//identifier"/>
-                </field>
-
-                <!-- RECORDTYPE -->
-                <field name="recordtype">dspace</field>
-
-                <!-- FULLRECORD -->
-                <!-- disabled for now; records are so large that they cause memory problems!
-                <field name="fullrecord">
-                    <xsl:copy-of select="php:function('VuFind::xmlAsText', //oai_dc:dc)"/>
-                </field>
-                  -->
-
-                <!-- ALLFIELDS -->
-                <field name="allfields">
-                    <xsl:value-of select="normalize-space(string(//oai_dc:dc))"/>
-                </field>
-
-                <!-- INSTITUTION -->
-                <field name="institution">
-                    <xsl:value-of select="$institution" />
-                </field>
-
-                <!-- COLLECTION -->
-                <field name="collection">
-                    <xsl:value-of select="$collection" />
-                </field>
-
-                <!-- LANGUAGE -->
-                <xsl:if test="//dc:language">
-                    <xsl:for-each select="//dc:language">
-                        <xsl:if test="string-length() > 0">
-                            <field name="language">
-                                <xsl:value-of select="php:function('VuFind::mapString', normalize-space(string(.)), 'language_map_iso639-1.properties')"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- FORMAT -->
-                <!-- populating the format field with dc.type instead, see TYPE below.
-                     if you like, you can uncomment this to add a hard-coded format
-                     in addition to the dynamic ones extracted from the record.
-                <field name="format">Online</field>
-                -->
-
-                <!-- SUBJECT -->
-                <xsl:if test="//dc:subject">
-                    <xsl:for-each select="//dc:subject">
-                        <xsl:if test="string-length() > 0">
-                            <field name="topic">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- DESCRIPTION -->
-                <xsl:if test="//dc:description">
-                    <field name="description">
-                        <xsl:value-of select="//dc:description" />
-                    </field>
-                </xsl:if>
-
-                <!-- ADVISOR / CONTRIBUTOR -->
-                <xsl:if test="//dc:contributor[normalize-space()]">
-                    <field name="author2">
-                        <xsl:value-of select="//dc:contributor[normalize-space()]" />
-                    </field>
-                </xsl:if>
-                
-                <!-- TYPE -->
-                <xsl:if test="//dc:type">
-                    <field name="format">
-                        <xsl:value-of select="//dc:type" />
-                    </field>
-                </xsl:if>
-
-                <!-- AUTHOR -->
-                <xsl:if test="//dc:creator">
-                    <xsl:for-each select="//dc:creator">
-                        <xsl:if test="normalize-space()">
-                            <field name="author">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                            <!-- use first author value for sorting -->
-                            <xsl:if test="position()=1">
-                                <field name="author_sort">
-                                    <xsl:value-of select="normalize-space()"/>
-                                </field>
-                            </xsl:if>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- TITLE -->
-                <xsl:if test="//dc:title[normalize-space()]">
-                    <field name="title">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_short">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_full">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_sort">
-                        <xsl:value-of select="php:function('VuFind::stripArticles', string(//dc:title[normalize-space()]))"/>
-                    </field>
-                </xsl:if>
-
-                <!-- PUBLISHER -->
-                <xsl:if test="//dc:publisher[normalize-space()]">
-                    <field name="publisher">
-                        <xsl:value-of select="//dc:publisher[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                <!-- PUBLISHDATE -->
-                <xsl:if test="//dc:date">
-                    <field name="publishDate">
-                        <xsl:value-of select="substring(//dc:date, 1, 4)"/>
-                    </field>
-                    <field name="publishDateSort">
-                        <xsl:value-of select="substring(//dc:date, 1, 4)"/>
-                    </field>
-                </xsl:if>
-
-                <!-- URL -->
-               <xsl:for-each select="//dc:identifier">
-                   <xsl:if test="substring(., 1, string-length($urlPrefix)) = $urlPrefix">
-                       <field name="url">
-                           <xsl:value-of select="." />
-                       </field>
-                   </xsl:if>
-               </xsl:for-each>
-            </doc>
-        </add>
-    </xsl:template>
-</xsl:stylesheet>
diff --git a/import/xsl/gsdl.xsl b/import/xsl/gsdl.xsl
deleted file mode 100644
index 497532680d13097521068a94d330a14dbb986468..0000000000000000000000000000000000000000
--- a/import/xsl/gsdl.xsl
+++ /dev/null
@@ -1,144 +0,0 @@
-<!-- available fields are defined in solr/biblio/conf/schema.xml -->
-<!-- This xsl file is similar to xsl file of DSpace as both system use Dublin Core MetadataSet -->
-<xsl:stylesheet version="1.0"
-    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-    xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/"
-    xmlns:php="http://php.net/xsl"
-    xmlns:xlink="http://www.w3.org/2001/XMLSchema-instance">
-    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
-    <xsl:param name="institution">My Institute</xsl:param>
-    <xsl:param name="collection">DEMO</xsl:param>
-    <xsl:param name="gsdlurl">http://greenstone.org</xsl:param>
-    <xsl:template match="oai_dc:dc">
-        <add>
-            <doc>
-                <!-- ID -->
-                <!-- Important: This relies on an <identifier> tag being injected by the OAI-PMH harvester. -->
-                <field name="id">
-                    <xsl:value-of select="//identifier"/>
-                </field>
-                <!-- RECORDTYPE -->
-                <field name="recordtype">gsdl</field>
-                <!-- FULLRECORD -->
-                <!-- disabled for now; records are so large that they cause memory problems!
-                <field name="fullrecord">
-                    <xsl:copy-of select="php:function('VuFind::xmlAsText', //oai_dc:dc)"/>
-                </field>
-                  -->
-                <!-- ALLFIELDS -->
-                <field name="allfields">
-                    <xsl:value-of select="normalize-space(string(//oai_dc:dc))"/>
-                </field>
-                <!-- INSTITUTION -->
-                <field name="institution">
-                    <xsl:value-of select="$institution" />
-                </field>
-
-                <!-- COLLECTION -->
-                <field name="collection">
-                    <xsl:value-of select="$collection" />
-                </field>
-
-                <!-- LANGUAGE -->
-                <xsl:if test="//dc:language">
-                    <xsl:for-each select="//dc:language">
-                        <xsl:if test="string-length() > 0">
-                            <field name="language">
-                                <xsl:value-of select="php:function('VuFind::mapString', normalize-space(string(.)), 'language_map_iso639-1.properties')"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- FORMAT -->
-                <field name="format">eResources</field>
-
-                <!-- SUBJECT -->
-                <xsl:if test="//dc:subject">
-                    <xsl:for-each select="//dc:subject">
-                        <xsl:if test="string-length() > 0">
-                            <field name="topic">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-                <!-- DESCRIPTION -->
-                <xsl:if test="//dc:description">
-                    <field name="description">
-                        <xsl:value-of select="//dc:description" />
-                    </field>
-                </xsl:if>
-                <!-- ADVISOR / CONTRIBUTOR -->
-                <xsl:if test="//dc:contributor[normalize-space()]">
-                    <field name="author2">
-                        <xsl:value-of select="//dc:contributor[normalize-space()]" />
-                    </field>
-                </xsl:if>
-
-                <!-- AUTHOR -->
-                <xsl:if test="//dc:creator">
-                    <xsl:for-each select="//dc:creator">
-                        <xsl:if test="normalize-space()">
-                            <field name="author">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                            <!-- use first author value for sorting -->
-                            <xsl:if test="position()=1">
-                                <field name="author_sort">
-                                    <xsl:value-of select="normalize-space()"/>
-                                </field>
-                            </xsl:if>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-                <!-- TITLE -->
-                <xsl:if test="//dc:title[normalize-space()]">
-                    <field name="title">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_short">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_full">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_sort">
-                        <xsl:value-of select="php:function('VuFind::stripArticles', string(//dc:title[normalize-space()]))"/>
-                    </field>
-                </xsl:if>
-                <!-- PUBLISHER -->
-                <xsl:if test="//dc:publisher[normalize-space()]">
-                    <field name="publisher">
-                        <xsl:value-of select="//dc:publisher[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-                <!-- PUBLISHDATE -->
-                <xsl:if test="//dc:date">
-                    <field name="publishDate">
-                        <xsl:value-of select="substring(//dc:date, 1, 4)"/>
-                    </field>
-                    <field name="publishDateSort">
-                        <xsl:value-of select="substring(//dc:date, 1, 4)"/>
-                    </field>
-                </xsl:if>
-                <!-- URL -->
-                <xsl:for-each select="//dc:identifier">
-                    <xsl:choose>
-                        <xsl:when test="contains(., '://')">
-                               <field name="url">
-                                   <xsl:value-of select="." />
-                               </field>
-                        </xsl:when>
-                        <xsl:when test="contains(., 'urn:')">
-                               <field name="url">
-                                   <xsl:value-of select="$gsdlurl" /><xsl:value-of select="." />
-                               </field>
-                        </xsl:when>
-                    </xsl:choose>
-                </xsl:for-each>
-            </doc>
-        </add>
-    </xsl:template>
-</xsl:stylesheet>
diff --git a/import/xsl/ndltd.xsl b/import/xsl/ndltd.xsl
deleted file mode 100644
index 00759d962aee379e2e3c81a0503cb3972f2789c6..0000000000000000000000000000000000000000
--- a/import/xsl/ndltd.xsl
+++ /dev/null
@@ -1,229 +0,0 @@
-<!-- available fields are defined in solr/biblio/conf/schema.xml -->
-<xsl:stylesheet version="1.0"
-    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-    xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/"
-    xmlns:php="http://php.net/xsl"
-    xmlns:xlink="http://www.w3.org/2001/XMLSchema-instance">
-    <xsl:param name="institution">My University</xsl:param>
-    <xsl:param name="collection">Digital Library</xsl:param>
-    <xsl:param name="building"></xsl:param>
-    <xsl:param name="urnresolver">http://nbn-resolving.de/</xsl:param>
-    <xsl:variable name="URLs" />
-    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
-    <xsl:template match="oai_dc:dc">
-
-    <xsl:if test="//dc:identifier">
-
-      <xsl:variable name="URLs"><xsl:for-each select="//dc:identifier"><xsl:value-of select="."/></xsl:for-each></xsl:variable>
-
-      <xsl:if test="contains($URLs, '://') or contains($URLs, 'urn:')">
-
-        <add>
-            <doc>
-
-                <!-- ID -->
-                <field name="id">
-                      <xsl:value-of select="//identifier"/>
-                </field>
-
-
-                <!-- RECORDTYPE -->
-                <field name="recordtype">oai_dc</field>
-
-
-                <!-- ALLFIELDS -->
-                <field name="allfields">
-                    <xsl:value-of select="normalize-space(string(//oai_dc:dc))"/>
-                </field>
-
-                <!-- INSTITUTION -->
-                <field name="institution">
-                    <xsl:value-of select="$institution" />
-                </field>
-
-                <!-- COLLECTION -->
-                <field name="collection">
-                    <xsl:value-of select="$collection" />
-                </field>
-
-                <!-- LANGUAGE -->
-                <xsl:if test="//dc:language">
-                    <xsl:for-each select="//dc:language">
-                        <xsl:if test="string-length() > 0">
-                            <field name="language">
-                                <xsl:value-of select="php:function('VuFind::mapString', normalize-space(string(.)), 'language_map.properties')"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- building -->
-                <xsl:if test="string-length($building) > 0">
-                  <field name="building">
-                    <xsl:value-of select="$building" />
-                  </field>
-                </xsl:if>
-
-
-            <xsl:choose>
-                <xsl:when test="contains(//dc:type, 'master')">
-                    <field name="format">Dissertation</field>
-                </xsl:when>
-                <xsl:when test="contains(//dc:type, 'Master')">
-                    <field name="format">Dissertation</field>
-                </xsl:when>
-                <xsl:when test="contains(//dc:type, 'doctor')">
-                    <field name="format">Doctoral Thesis</field>
-                </xsl:when>
-
-                <xsl:when test="contains(//dc:type, 'Doctor')">
-                    <field name="format">Doctoral Thesis</field>
-                </xsl:when>
-
-                <xsl:when test="contains(//dc:type, 'article')">
-                    <field name="format">Article</field>
-                </xsl:when>
-                <xsl:when test="contains(//dc:type, 'artigo')">
-                    <field name="format">Article</field>
-                </xsl:when>
-
-                <xsl:otherwise>
-                    <xsl:if test="//dc:format">
-                        <field name="format">
-                            <xsl:value-of select="//dc:format"/>
-                        </field>
-                    </xsl:if>
-                </xsl:otherwise>
-
-          </xsl:choose>
-
-          <field name="format">Online</field>
-
-                <!-- SUBJECT -->
-                <xsl:if test="//dc:subject">
-                    <xsl:for-each select="//dc:subject">
-
-                    <xsl:choose>
-                        <xsl:when test="contains(., '. ')">
-                                 <xsl:for-each select="php:function('VuFind::explode', '. ', string(//dc:subject))/part">
-                                      <field name="topic"><xsl:value-of select="normalize-space(string(.))" /></field>
-                                 </xsl:for-each>
-                        </xsl:when>
-                        <xsl:when test="contains(., ', ')">
-                                 <xsl:for-each select="php:function('VuFind::explode', ', ', string(//dc:subject))/part">
-                                      <field name="topic"><xsl:value-of select="normalize-space(string(.))" /></field>
-                                 </xsl:for-each>
-                        </xsl:when>
-                        <xsl:when test="contains(., '; ')">
-                                 <xsl:for-each select="php:function('VuFind::explode', '; ', string(//dc:subject))/part">
-                                      <field name="topic"><xsl:value-of select="normalize-space(string(.))" /></field>
-                                 </xsl:for-each>
-                        </xsl:when>
-
-                        <xsl:otherwise>
-                               <field name="topic">
-                                   <xsl:value-of select="." />
-                               </field>
-                        </xsl:otherwise>
-
-                     </xsl:choose>
-
-                    </xsl:for-each>
-                </xsl:if>
-
-
-
-                <!-- DESCRIPTION -->
-
-                <xsl:if test="//dc:description">
-
-                 <field name="description">
-                    <xsl:for-each select="//dc:description">
-                      <xsl:if test="position() > 1"> === </xsl:if><xsl:value-of select="."/>
-                    </xsl:for-each>
-                </field>
-
-                </xsl:if>
-
-                <!-- ADVISOR / CONTRIBUTOR -->
-                <xsl:if test="//dc:contributor[normalize-space()]">
-                    <field name="author2">
-                        <xsl:value-of select="//dc:contributor[normalize-space()]" />
-                    </field>
-                </xsl:if>
-
-
-                <!-- AUTHOR -->
-                <xsl:if test="//dc:creator">
-                    <xsl:for-each select="//dc:creator">
-                        <xsl:if test="normalize-space()">
-                            <field name="author">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                            <!-- use first author value for sorting -->
-                            <xsl:if test="position()=1">
-                                <field name="author_sort">
-                                    <xsl:value-of select="normalize-space()"/>
-                                </field>
-                            </xsl:if>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- TITLE -->
-                <xsl:if test="//dc:title[normalize-space()]">
-                    <field name="title">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_short">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_full">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_sort">
-                        <xsl:value-of select="php:function('VuFind::stripArticles', string(//dc:title[normalize-space()]))"/>
-                    </field>
-                </xsl:if>
-
-                <!-- PUBLISHER -->
-                <xsl:if test="//dc:publisher[normalize-space()]">
-                    <field name="publisher">
-                        <xsl:value-of select="//dc:publisher[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                <!-- PUBLISHDATE -->
-                <xsl:if test="//dc:date">
-                    <field name="publishDate">
-                        <xsl:value-of select="substring(//dc:date, 1, 4)"/>
-                    </field>
-                    <field name="publishDateSort">
-                        <xsl:value-of select="substring(//dc:date, 1, 4)"/>
-                    </field>
-                </xsl:if>
-
-                <!-- URL -->
-
-                <xsl:for-each select="//dc:identifier">
-                    <xsl:choose>
-                        <xsl:when test="contains(., '://')">
-                               <field name="url">
-                                   <xsl:value-of select="." />
-                               </field>
-                        </xsl:when>
-                        <xsl:when test="contains(., 'urn:')">
-                               <field name="url">
-                                   <xsl:value-of select="$urnresolver" /><xsl:value-of select="." />
-                               </field>
-                        </xsl:when>
-                    </xsl:choose>
-                </xsl:for-each>
-
-            </doc>
-        </add>
-        </xsl:if>
-     </xsl:if>
-    </xsl:template>
-</xsl:stylesheet>
diff --git a/import/xsl/nlm_ojs.xsl b/import/xsl/nlm_ojs.xsl
deleted file mode 100644
index 62c41fefa7cbcd1422630daf1037ca77b40435b1..0000000000000000000000000000000000000000
--- a/import/xsl/nlm_ojs.xsl
+++ /dev/null
@@ -1,215 +0,0 @@
-<!-- available fields are defined in solr/biblio/conf/schema.xml -->
-<xsl:stylesheet version="1.0"
-    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-    xmlns:php="http://php.net/xsl"
-    xmlns:nlm="http://dtd.nlm.nih.gov/publishing/2.3"
-    xmlns:xlink="http://www.w3.org/1999/xlink"
-    xmlns:mml="http://www.w3.org/1998/Math/MathML"
-    >
-    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
-    <xsl:param name="institution">My University</xsl:param>
-    <xsl:param name="collection">OJS</xsl:param>
-    <xsl:template match="nlm:article">
-        <add>
-            <doc>
-                <!-- ID -->
-                <!-- Important: This relies on an <identifier> tag being injected by the OAI-PMH harvester. -->
-                <field name="id">
-                    <xsl:value-of select="nlm:identifier"/>
-                </field>
-
-                <!-- RECORDTYPE -->
-                <field name="recordtype">NLMOJS</field>
-
-                <!-- ALLFIELDS -->
-                <field name="allfields">
-                    <xsl:value-of select="normalize-space(string(.))"/>
-                </field>
-
-                <!-- INSTITUTION -->
-                <field name="institution">
-                    <xsl:value-of select="$institution" />
-                </field>
-
-                <!-- COLLECTION -->
-                <field name="collection">
-                    <xsl:value-of select="$collection" />
-                </field>
-
-                <!-- JOURNAL TITLE -->
-                <field name="container_title">
-                    <xsl:value-of select="//nlm:journal-title[normalize-space()]"/>
-                </field>
-
-                <!-- JOURNAL VOLUME -->
-                <xsl:if test="//nlm:volume[normalize-space()]">
-                    <field name="container_volume">
-                        <xsl:value-of select="//nlm:volume[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                <!-- JOURNAL issue -->
-                <xsl:if test="//nlm:issue[normalize-space()]">
-                    <field name="container_issue">
-                        <xsl:value-of select="//nlm:issue[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Article startPage -->
-                <xsl:if test="//nlm:fpage[normalize-space()]">
-                    <field name="container_start_page">
-                        <xsl:value-of select="//nlm:fpage[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                <!-- Article endPage !! Only enable this part of the code if you have defined "container_end_page" in  ./solr/vufind/biblio/conf/schema.xml -> <field name="container_end_page" type="text" indexed="true" stored="true"/> !!
-
-                <xsl:if test="//nlm:lpage[normalize-space()]">
-                        <field name="container_end_page">
-                            <xsl:value-of select="//nlm:lpage[normalize-space()]"/>
-                        </field>
-                </xsl:if>
-
-                -->
-
-                <!-- LANGUAGE -->
-                <field name="language">
-                    <xsl:value-of select="php:function('VuFind::mapString', php:function('strtolower', string(@xml:lang)), 'language_map_iso639-1.properties')" />
-                </field>
-
-                <!-- FORMAT -->
-                <field name="format">Article</field>
-                <field name="format">Online</field>
-
-                <!-- ISSN -->
-                <xsl:for-each select="//nlm:issn">
-                    <field name="issn">
-                        <xsl:value-of select="normalize-space()"/>
-                    </field>
-                </xsl:for-each>
-
-                <!-- SUBJECT -->
-                <xsl:if test="//nlm:kwd-group">
-                    <xsl:for-each select="//nlm:kwd-group">
-                        <xsl:if test="position()=1">
-                            <xsl:for-each select="./nlm:kwd">
-                                <xsl:if test="normalize-space()">
-                                    <field name="topic">
-                                        <xsl:value-of select="normalize-space()"/>
-                                    </field>
-                                    <field name="topic_facet">
-                                        <xsl:value-of select="normalize-space()"/>
-                                    </field>
-                                </xsl:if>
-                            </xsl:for-each>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-                <xsl:if test="//nlm:subject">
-                    <xsl:for-each select="//nlm:subject">
-                        <field name="topic">
-                            <xsl:value-of select="normalize-space()"/>
-                        </field>
-                        <field name="topic_facet">
-                            <xsl:value-of select="normalize-space()"/>
-                        </field>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- DESCRIPTION -->
-                <xsl:if test="//nlm:abstract/nlm:p">
-                    <field name="description">
-                        <xsl:value-of select="//nlm:abstract/nlm:p" />
-                        <xsl:if test="//nlm:abstract-trans/nlm:p"> ABSTRACT Translated: <xsl:value-of select="//nlm:abstract-trans/nlm:p" />
-                        </xsl:if>
-                    </field>
-                </xsl:if>
-
-                <!-- ADVISOR / CONTRIBUTOR -->
-                <xsl:for-each select="//nlm:contrib[@contrib-type='editor']/nlm:name">
-                    <field name="author2">
-                        <xsl:value-of select="nlm:surname[normalize-space()]" />, <xsl:value-of select="nlm:given-names[normalize-space()]" />
-                    </field>
-                </xsl:for-each>
-
-                <!-- AUTHOR -->
-                <xsl:for-each select="//nlm:contrib[@contrib-type='author']/nlm:name">
-                    <xsl:if test="normalize-space()">
-                        <field name="author">
-                            <xsl:value-of select="nlm:surname[normalize-space()]" />, <xsl:value-of select="nlm:given-names[normalize-space()]" />
-                        </field>
-                        <!-- use first author value for sorting -->
-                        <xsl:if test="position()=1">
-                            <field name="author_sort">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:if>
-                </xsl:for-each>
-
-                <!-- TITLE -->
-                <field name="title">
-                    <xsl:value-of select="//nlm:article-title[normalize-space()]"/>
-                </field>
-                <field name="title_short">
-                    <xsl:value-of select="//nlm:article-title[normalize-space()]"/>
-                </field>
-                <field name="title_full">
-                    <xsl:value-of select="//nlm:article-title[normalize-space()]"/>
-                </field>
-                <field name="title_sort">
-                    <xsl:value-of select="php:function('VuFind::stripArticles', string(//nlm:article-title[normalize-space()]))"/>
-                </field>
-                <field name="title_alt">
-                    <xsl:value-of select="//nlm:trans-title[normalize-space()]"/>
-                </field>
-
-                <!-- PUBLISHER -->
-                <xsl:if test="//nlm:publisher-name">
-                    <field name="publisher">
-                        <xsl:value-of select="//nlm:publisher-name[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                <!-- PUBLISHDATE -->
-                <xsl:if test="//nlm:pub-date[@pub-type='collection']/nlm:year">
-                    <field name="publishDate">
-                        <xsl:value-of select="//nlm:pub-date[@pub-type='collection']/nlm:year"/>
-                    </field>
-                    <field name="publishDateSort">
-                        <xsl:value-of select="//nlm:pub-date[@pub-type='collection']/nlm:year"/>
-                    </field>
-                </xsl:if>
-
-                <!-- URL -->
-                <xsl:for-each select="//nlm:self-uri">
-                    <xsl:sort select="position()" data-type="number" order="descending"/>
-                       <field name="url">
-                           <xsl:value-of select="@xlink:href" />
-                       </field>
-                </xsl:for-each>
-
-                <!-- FULL TEXT -->
-                <xsl:choose>
-                    <xsl:when test="nlm:body/nlm:p">
-                       <field name="fulltext">
-                           <xsl:value-of select="nlm:body/nlm:p" />
-                       </field>
-                    </xsl:when>
-                    <xsl:otherwise>
-                        <xsl:for-each select="//nlm:self-uri[@content-type=&quot;application/pdf&quot;]">
-                            <field name="fulltext">
-                                <xsl:value-of select="php:function('VuFind::harvestWithParser', string(./@xlink:href))"/>
-                            </field>
-                        </xsl:for-each>
-                    </xsl:otherwise>
-                </xsl:choose>
-
-                <!-- FULLRECORD (exclude body tag because fulltext is huge) -->
-                <field name="fullrecord">
-                    <xsl:copy-of select="php:function('VuFind::removeTagAndReturnXMLasText', ., 'body')"/>
-                </field>
-            </doc>
-        </add>
-    </xsl:template>
-</xsl:stylesheet>
diff --git a/import/xsl/ojs.xsl b/import/xsl/ojs.xsl
deleted file mode 100644
index b9cf6eaa5e3dbbe05b3955f7ee602510a22a0d66..0000000000000000000000000000000000000000
--- a/import/xsl/ojs.xsl
+++ /dev/null
@@ -1,124 +0,0 @@
-<xsl:stylesheet version="1.0"
-    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-    xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/"
-    xmlns:php="http://php.net/xsl"
-    xmlns:xlink="http://www.w3.org/2001/XMLSchema-instance">
-    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
-    <xsl:param name="institution">My University</xsl:param>
-    <xsl:param name="collection">OJS</xsl:param>
-    <xsl:template match="oai_dc:dc">
-        <add>
-            <doc>
-                <!-- ID -->
-                <!-- Important: This relies on an <identifier> tag being injected by the OAI-PMH harvester. -->
-                <field name="id">
-                    <xsl:value-of select="//identifier"/>
-                </field>
-
-                <!-- RECORDTYPE -->
-                <field name="recordtype">ojs</field>
-
-                <!-- FULLRECORD -->
-                <!-- disabled for now; records are so large that they cause memory problems!
-                <field name="fullrecord">
-                    <xsl:copy-of select="php:function('VuFind::xmlAsText', //oai_dc:dc)"/>
-                </field>
-                  -->
-
-                <!-- ALLFIELDS -->
-                <field name="allfields">
-                    <xsl:value-of select="normalize-space(string(//oai_dc:dc))"/>
-                </field>
-
-                <!-- INSTITUTION -->
-                <field name="institution">
-                    <xsl:value-of select="$institution" />
-                </field>
-
-                <!-- COLLECTION -->
-                <field name="collection">
-                    <xsl:value-of select="$collection" />
-                </field>
-
-                <!-- LANGUAGE -->
-                <xsl:if test="//dc:language">
-                    <xsl:for-each select="//dc:language">
-                        <xsl:if test="string-length() > 0">
-                            <field name="language">
-                                <xsl:value-of select="php:function('VuFind::mapString', normalize-space(string(.)), 'language_map_iso639-1.properties')"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- FORMAT -->
-                <field name="format">Online</field>
-
-                <!-- AUTHOR -->
-                <xsl:if test="//dc:creator">
-                    <xsl:for-each select="//dc:creator">
-                        <xsl:if test="normalize-space()">
-                            <field name="author">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                            <!-- use first author value for sorting -->
-                            <xsl:if test="position()=1">
-                                <field name="author_sort">
-                                    <xsl:value-of select="normalize-space()"/>
-                                </field>
-                            </xsl:if>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- TITLE -->
-                <xsl:if test="//dc:title[normalize-space()]">
-                    <field name="title">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_short">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_full">
-                        <xsl:value-of select="//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_sort">
-                        <xsl:value-of select="php:function('VuFind::stripArticles', string(//dc:title[normalize-space()]))"/>
-                    </field>
-                </xsl:if>
-                
-                <!-- DESCRIPTION -->
-                <xsl:if test="//dc:description">
-                    <field name="description">
-                        <xsl:value-of select="//dc:description" />
-                    </field>
-                </xsl:if>
-
-                <!-- PUBLISHER -->
-                <xsl:if test="//dc:publisher[normalize-space()]">
-                    <field name="publisher">
-                        <xsl:value-of select="//dc:publisher[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-
-                <!-- PUBLISHDATE -->
-                <xsl:if test="//dc:date">
-                    <field name="publishDate">
-                        <xsl:value-of select="substring(//dc:date, 1, 4)"/>
-                    </field>
-                    <field name="publishDateSort">
-                        <xsl:value-of select="substring(//dc:date, 1, 4)"/>
-                    </field>
-                </xsl:if>
-
-                <!-- URL -->
-                <xsl:if test="//dc:identifier">
-                    <field name="url">
-                        <xsl:value-of select="//dc:identifier[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-            </doc>
-        </add>
-    </xsl:template>
-</xsl:stylesheet>
diff --git a/import/xsl/sitemap.xsl b/import/xsl/sitemap.xsl
deleted file mode 100644
index c5755afe61b541fdafda1e738b00d31eb6ad737e..0000000000000000000000000000000000000000
--- a/import/xsl/sitemap.xsl
+++ /dev/null
@@ -1,23 +0,0 @@
-<!-- XSLT to load sitemap entries into the custom class used for
-     populating the special "website" Solr core -->
-<xsl:stylesheet version="1.0"
-    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-    xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
-    xmlns:php="http://php.net/xsl">
-    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
-    <xsl:template match="sitemap:urlset">
-        <add>
-            <xsl:for-each select="//sitemap:url">
-                <!-- We can't index without a loc element containing a URI! -->
-                <xsl:if test="sitemap:loc">
-                    <doc>
-                        <!-- Pass the URI to PHP, which will use full-text
-                             extraction and generate pre-built XML output;
-                             see the VuFind\XSLT\Import\VuFindSitemap class. -->
-                        <xsl:value-of disable-output-escaping="yes" select="php:function('VuFindSitemap::getDocument', normalize-space(string(sitemap:loc)))" />
-                    </doc>
-                </xsl:if>
-            </xsl:for-each>
-        </add>
-    </xsl:template>
-</xsl:stylesheet>
diff --git a/import/xsl/vudl_FOXML.xsl b/import/xsl/vudl_FOXML.xsl
deleted file mode 100644
index c1eb61013d900989a6c2539bf6c2c72629232858..0000000000000000000000000000000000000000
--- a/import/xsl/vudl_FOXML.xsl
+++ /dev/null
@@ -1,549 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) Villanova University 2012.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2,
-as published by the Free Software Foundation.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
--->
-<xsl:stylesheet version="1.0"
-    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-    xmlns:mets="http://www.loc.gov/METS/"
-    xmlns:METS="http://www.loc.gov/METS/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/"
-    xmlns:php="http://php.net/xsl"
-    xmlns:xlink="http://www.w3.org/1999/xlink"
-    xmlns:access="http://www.fedora.info/definitions/1/0/access/"
-    xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
-    xmlns:sparql="http://www.w3.org/2001/sw/DataAccess/rf1/result"
-    xmlns:fedora-model="info:fedora/fedora-system:def/model#"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:rel="info:fedora/fedora-system:def/relations-external#"
-    xmlns:foxml="info:fedora/fedora-system:def/foxml#"
-    xmlns:exsl="http://exslt.org/common"
-    xmlns:math="http://exslt.org/math"
-    exclude-result-prefixes="exsl"
-    >
-    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
-    
-    <xsl:param name="institution"></xsl:param>
-    <xsl:param name="collection"></xsl:param>
-    <xsl:param name="track_changes"></xsl:param>
-    <xsl:param name="solr_core"></xsl:param>
-    
-    <xsl:param name="fedoraURL"></xsl:param>
-    <xsl:param name="fedoraPort"></xsl:param>
-    
-    <xsl:template match="/">
-        
-        
-        
-        <xsl:variable name="PID" select="//dc:identifier"/>
-        
-        <xsl:variable name="DC" select="document(concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $PID, '/datastreams/DC/content'))"/>
-        
-        <xsl:variable name="RELS-EXT" select="document(concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $PID, '/datastreams/RELS-EXT/content'))"/>
-        <!-- <xsl:variable name="modelType" select="substring-after($RELS-EXT//fedora-model:hasModel[last()]/@rdf:resource, 'info:fedora/')"/> -->
-        <!--
-        <xsl:variable name="objectInfo" select="document(concat($fedoraURL, '/fedora/objects/', $PID, '?format=xml'))"/>
-        -->
-        <!-- -->
-        <xsl:variable name="listDatastreams" select="document(concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $PID, '/datastreams?format=xml'))"/>
-        
-        <add>
-            <doc>
-                <!-- ID -->
-                <field name="id">
-                    <xsl:value-of select="$PID"/>
-                </field>
-		            
-		            <xsl:for-each select="$RELS-EXT//fedora-model:hasModel">
-    		            <field name="modeltype_str_mv">
-    		                <xsl:value-of select="substring-after(./@rdf:resource, 'info:fedora/')"/>
-    		            </field>
-		            </xsl:for-each>
-		            
-		            <!-- Hierarchy stuff -->
-                <xsl:if test="//foxml:datastream[@ID = 'PARENT-LIST-RAW']">
-                
-                    <xsl:variable name="PARENT-LIST-RAW" select="document(concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $PID, '/datastreams/PARENT-LIST-RAW/content'))"/>
-                    <!-- <xsl:variable name="PARENT-LIST" select="document(concat($fedoraURL, '/fedora/objects/', $PID, '/datastreams/PARENT-LIST/content'))"/> -->
-                    <!-- -->
-                    <xsl:variable name="PARENT-LIST">
-                        <parent PID="{$PID}">
-                            <xsl:for-each select="$PARENT-LIST-RAW//sparql:child[@uri=concat('info:fedora/', $PID)]">
-                                <xsl:variable name="parentURI_template" select="../sparql:parent/@uri"/>
-                                <xsl:variable name="parentName_template" select="../sparql:parentTitle"/>
-                                <xsl:call-template name="parent">
-                                    <xsl:with-param name="parentURI_template" select="$parentURI_template"/>
-                                    <xsl:with-param name="parentName_template" select="$parentName_template"/>
-                                </xsl:call-template>
-                            </xsl:for-each>
-                        </parent>
-                    </xsl:variable>
-
-                    <!-- <xsl:copy-of select="$PARENT-LIST"/> -->
-                    
-                    <field name="hierarchytype"/> <!-- -->
-                    
-                    <xsl:if test="$RELS-EXT//fedora-model:hasModel[@rdf:resource='info:fedora/vudl-system:FolderCollection']">
-                        <field name="is_hierarchy_id"><xsl:value-of select="$PID"/></field>
-                        <field name="is_hierarchy_title"><xsl:value-of select="$DC//dc:title[1]"/></field>
-                    </xsl:if>
-                    
-                    <field name="has_order_str">
-                        <xsl:choose>
-                            <xsl:when test="$listDatastreams//access:datastream[@dsid='STRUCTMAP']">
-                                <xsl:value-of select="string('yes')"/>
-                            </xsl:when>
-                            <xsl:otherwise>
-                                <xsl:value-of select="string('no')"/>
-                            </xsl:otherwise>
-                        </xsl:choose>
-                    </field>
-                    
-                    <!-- <xsl:copy-of select="$PARENT-LIST-RAW"/> -->
-                    
-                    <xsl:for-each select="$PARENT-LIST-RAW//sparql:child[@uri=concat('info:fedora/', $PID)]/parent::*">
-                        
-                        <!-- <xsl:variable name="parentURI" select="$PARENT-LIST-RAW//sparql:child[@uri=concat('info:fedora/', $PID)]/../sparql:parent/@uri"/> -->
-                        <xsl:variable name="parentURI" select="./sparql:parent/@uri"/>
-                        
-
-                        <xsl:variable name="parentResource" select="document(concat($fedoraURL, '/getParentResource.php?PID=', $PID))"/>
-                        <!--
-                        <as>
-                        <xsl:copy-of select="$parentResource"/>
-                        </as>
-                        <xsl:variable name="parentPID" select="substring-after($parentURI, 'info:fedora/')"/>
-                        <xsl:variable name="parentLabel" select="./sparql:parentTitle"/>
-                        -->
-                        
-                        <xsl:variable name="realParentPID" select="substring-after($parentURI, 'info:fedora/')"/>
-                        
-                        <xsl:variable name="parentPID">
-                            <xsl:choose>
-                                <xsl:when test="$RELS-EXT//fedora-model:hasModel[@rdf:resource='info:fedora/vudl-system:DataModel']">
-                                    <xsl:value-of select="normalize-space($parentResource//PID)"/>
-                                </xsl:when>
-                                <xsl:otherwise>
-                                    <xsl:value-of select="substring-after($parentURI, 'info:fedora/')"/>
-                                </xsl:otherwise>
-                            </xsl:choose>
-                        </xsl:variable>
-                        
-                        <xsl:variable name="parentLabel">
-                            <xsl:choose>
-                                <xsl:when test="$RELS-EXT//fedora-model:hasModel[@rdf:resource='info:fedora/vudl-system:DataModel']">
-                                    <xsl:value-of select="$parentResource//label"/>
-                                </xsl:when>
-                                <xsl:otherwise>
-                                    <xsl:value-of select="./sparql:parentTitle"/>
-                                </xsl:otherwise>
-                            </xsl:choose>
-                        </xsl:variable>
-                        
-                        
-                        <xsl:variable name="parentDatastreams" select="document(concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $realParentPID, '/datastreams?format=xml'))"/>
-                        <xsl:variable name="parentRELS-EXT" select="document(concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $realParentPID, '/datastreams/RELS-EXT/content'))"/>
-                        
-                        
-                        <!-- <xsl:if test="$parentDatastreams//access:datastream[@dsid='STRUCTMAP']"> -->
-                        <!-- TODO: this needs to check to see if the parent is a collection -->
-                        <!-- <xsl:if test="$RELS-EXT//fedora-model:hasModel[@rdf:resource = 'info:fedora/vudl-system:CollectionModel']"> -->
-                        <xsl:if test="$parentRELS-EXT//fedora-model:hasModel[@rdf:resource = 'info:fedora/vudl-system:CollectionModel']">
-
-                            <xsl:variable name="parentSTRUCTMAP">
-                                <xsl:choose>
-                                    <xsl:when test="$parentDatastreams//access:datastream[@dsid='STRUCTMAP']">
-                                        <xsl:copy-of select="document(concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $realParentPID, '/datastreams/STRUCTMAP/content'))"/>
-                                    </xsl:when>
-                                    <xsl:otherwise>
-                                        <METS:structMap/>
-                                    </xsl:otherwise>
-                                </xsl:choose>
-                            </xsl:variable>
-
-                            <xsl:variable name="hierarchy_top_id">
-                              <!-- <xsl:value-of select="substring-after($hierarchy_top_uri, 'info:fedora/')"/> -->
-                              <xsl:choose>
-                                  <xsl:when test="$realParentPID = 'vudl:3'">
-                                      <xsl:value-of select="$PID"/>
-                                  </xsl:when>
-                                  <xsl:otherwise>
-                                      <xsl:value-of select="exsl:node-set($PARENT-LIST)//parent[@PID=$realParentPID]//parent[@PID='vudl:3']/../@PID"/>
-                                  </xsl:otherwise>
-                              </xsl:choose>
-
-                            </xsl:variable>
-                            
-                            <xsl:variable name="hierarchy_top_title">
-                            <xsl:choose>
-                              <xsl:when test="$parentPID = 'vudl:3'">
-                                  <xsl:value-of select="$DC//dc:title[1]"/>
-                              </xsl:when>
-                              <xsl:when test="$parentPID = $PID">
-                                  <xsl:value-of select="$DC//dc:title[1]"/>
-                              </xsl:when>
-                              <xsl:otherwise>
-                                <xsl:value-of select="$PARENT-LIST-RAW//sparql:parent[@uri = concat('info:fedora/', $hierarchy_top_id)]/../sparql:parentTitle"/>
-                              </xsl:otherwise>
-                            </xsl:choose>
-                            </xsl:variable>
-                            
-                            <field name="hierarchy_top_id">
-                              <xsl:value-of select="$hierarchy_top_id"/>
-                            </field>
- 
-                            
-                            
-                            
-                            <field name="hierarchy_top_title">
-                              <xsl:value-of select="$hierarchy_top_title"/>
-                            </field>
-                            
-                            <field name="hierarchy_parent_id"><xsl:value-of select="$parentPID"/></field>
-                            <field name="hierarchy_parent_title"><xsl:value-of select="$parentLabel"/></field>
-                            
-                            <!-- -->
-                            <field name="hierarchy_sequence">
-                                <!--
-                                <xsl:if test="exsl:node-set($parentSTRUCTMAP)//METS:fptr[@FILEID=$PID]">
-                                    <xsl:value-of select="exsl:node-set($parentSTRUCTMAP)//METS:fptr[@FILEID=$PID]/../@ORDER"/>
-                                </xsl:if>
-                                -->
-                                
-                                <xsl:choose>
-                                    <xsl:when test="exsl:node-set($parentSTRUCTMAP)//METS:fptr[@FILEID=$PID]">
-                                        <xsl:value-of select="exsl:node-set($parentSTRUCTMAP)//METS:fptr[@FILEID=$PID]/../@ORDER"/>
-                                    </xsl:when>
-                                    <xsl:otherwise>
-                                        <xsl:value-of select="string('0000000000')"/>
-                                    </xsl:otherwise>
-                                </xsl:choose>
-                                
-                            </field>
-                            
-                            <xsl:if test="position() = 1">
-                            <!-- This is what we are collapsing on -->
-                            <field name="hierarchy_first_parent_id_str">
-                                <xsl:choose>
-                                  <xsl:when test="$RELS-EXT//fedora-model:hasModel[@rdf:resource='info:fedora/vudl-system:DataModel']">
-                                      <xsl:value-of select="$parentPID"/>
-                                  </xsl:when>
-                                  <xsl:otherwise>
-                                    <xsl:value-of select="$PID"/>
-                                  </xsl:otherwise>
-                                </xsl:choose>
-                            </field>
-                            </xsl:if>
-                            
-                            <!-- -->
-                            <xsl:if test="position() = 1">
-                            <field name="hierarchy_sequence_sort_str">
-                                <xsl:choose>
-                                    <xsl:when test="exsl:node-set($parentSTRUCTMAP)//METS:fptr[@FILEID=$PID]">
-                                        <xsl:variable name="sequence_sort_str" select="exsl:node-set($parentSTRUCTMAP)//METS:fptr[@FILEID=$PID]/../@ORDER"/>
-                                        <xsl:value-of select="php:function('str_pad', normalize-space(string($sequence_sort_str)), '10', '0', 0)"/>
-                                    </xsl:when>
-                                    <xsl:otherwise>
-                                        <xsl:value-of select="string('0000000000')"/>
-                                    </xsl:otherwise>
-                                </xsl:choose>
-                            </field>
-                            </xsl:if>
-                            
-                            <!--
-                            <xsl:if test="position() = 1">
-                              <xsl:variable name="sequence_sort_str" select="$parentSTRUCTMAP//METS:fptr[@FILEID=$PID]/../@ORDER"/>
-                              <field name="hierarchy_sequence_sort_str">
-                                <xsl:value-of select="php:function('str_pad', normalize-space(string($sequence_sort_str)), '10', '0', 0)"/>
-                              </field>
-                            </xsl:if>
-                            -->
-                            <!--
-                            hierarchy_browse 
-                            title{{{_ID_}}}id
-                            -->
-                            <!-- -->
-                            <field name="hierarchy_browse">
-                              <xsl:value-of select="concat($parentLabel, '{{{_ID_}}}', $parentPID)"/>
-                            </field>
-
-                            
-                            
-                            <!-- flattens all parents 
-                            <xsl:for-each select="$PARENT-LIST-RAW//sparql:result">
-                              <xsl:variable name="tempParentURI" select="./sparql:parent/@uri"/>
-                              <xsl:variable name="tempParentPID" select="substring-after($tempParentURI, 'info:fedora/')"/>
-                              <xsl:if test="not(./sparql:parent[@uri = 'info:fedora/vudl:1']) and not(./sparql:parent[@uri = 'info:fedora/vudl:3'])">
-                                <field name="hierarchy_all_parents_str_mv">
-                                  <xsl:value-of select="normalize-space(string($tempParentPID))"/>
-                                </field>
-                              </xsl:if>
-                            </xsl:for-each>
-                            -->
-                            
-                        </xsl:if>
-                        
-                    </xsl:for-each>
-                    
-                    
-                    
-                </xsl:if>
-                
-                <!-- CHANGE TRACKING DATES -->
-                <xsl:if test="$track_changes != 0">
-                    <field name="first_indexed">
-                        <xsl:value-of select="//foxml:property[@NAME='info:fedora/fedora-system:def/model#createdDate']/@VALUE"/>
-                    </field>
-                    <field name="last_indexed">
-                        <xsl:value-of select="//foxml:property[@NAME='info:fedora/fedora-system:def/view#lastModifiedDate']/@VALUE"/>
-                    </field>
-                </xsl:if>
-
-                <!-- RECORDTYPE -->
-                <field name="recordtype">vudl</field>
-
-                <!-- FULLRECORD -->
-                <field name="fullrecord">
-                    &lt;root&gt;
-                    &lt;url&gt;
-                    <xsl:value-of select="concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $PID, '/DC/content')"/>
-                    &lt;/url&gt;
-                    &lt;thumbnail&gt;
-                    <xsl:value-of select="concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $PID, '/datastreams/THUMBNAIL/content')"/>
-                    &lt;/thumbnail&gt;
-                    &lt;/root&gt;
-                    <!-- <xsl:value-of select="string(//METS:dmdSec/METS:mdRef/@href)"/> -->
-                </field>
-
-                <!-- ALLFIELDS -->
-                <field name="allfields">
-                    <xsl:value-of select="normalize-space(string($DC//oai_dc:dc))"/>
-                </field>
-
-                <!-- INSTITUTION -->
-                <field name="institution">
-                    <xsl:value-of select="$institution" />
-                </field>
-
-                <!-- COLLECTION -->
-                <field name="collection">
-                    <xsl:value-of select="$collection" />
-                </field>
-
-                <!-- LANGUAGE -->
-                <xsl:if test="$DC//dc:language">
-                
-                    <xsl:if test="string-length($DC//dc:language[1]) > 0">
-                        <field name="dc_language_str">
-                            <xsl:value-of select="php:function('VuFind::mapString', normalize-space(string($DC//dc:language[1])), 'language_map_iso639-1.properties')"/>
-                        </field>
-                    </xsl:if>
-                    
-                    <xsl:for-each select="$DC//dc:language">
-                        <xsl:if test="string-length() > 0">
-                            <field name="language">
-                                <xsl:value-of select="php:function('VuFind::mapString', normalize-space(string(.)), 'language_map_iso639-1.properties')"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-                
-                <!-- Series / dc:relation -->
-                <xsl:if test="$DC//dc:relation">
-                
-                    <xsl:if test="string-length($DC//dc:relation[1]) > 0">
-                        <field name="dc_relation_str">
-                            <xsl:value-of select="$DC//dc:relation[1]"/>
-                        </field>
-                    </xsl:if>
-                    
-                    <xsl:for-each select="$DC//dc:relation">
-                        <xsl:if test="string-length() > 0">
-                            <field name="series">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-                
-                <!-- FORMAT 
-                <field name="format">Online</field>
-                -->
-                
-                <!-- AUTHOR -->
-                <xsl:if test="$DC//dc:creator">
-                    <xsl:for-each select="$DC//dc:creator">
-                        <xsl:if test="normalize-space()">
-                            <field name="author">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                            <!-- use first author value for sorting -->
-                            <xsl:if test="position()=1">
-                                <field name="author_sort">
-                                    <xsl:value-of select="normalize-space()"/>
-                                </field>
-                            </xsl:if>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <xsl:if test="$DC//dc:contributor">
-                    <xsl:for-each select="$DC//dc:contributor">
-                        <xsl:if test="normalize-space()">
-                            <field name="author2">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- TOPIC -->
-                <xsl:if test="$DC//dc:subject">
-                    <field name="topic_str">
-                        <xsl:value-of select="$DC//dc:subject[1]"/>
-                    </field>
-                    
-                    <xsl:for-each select="$DC//dc:subject">
-                        <field name="topic"><xsl:value-of select="normalize-space()"/></field>
-                    </xsl:for-each>
-                </xsl:if>
-
-                <!-- TOPIC_FACET -->
-                <xsl:if test="$DC//dc:subject">
-                    <xsl:for-each select="$DC//dc:subject">
-                        <field name="topic_facet"><xsl:value-of select="normalize-space()"/></field>
-                    </xsl:for-each>
-                </xsl:if>
-                
-                <!-- TOPIC_STR_MV (for autocomplete) -->
-                <xsl:if test="$DC//dc:subject">
-                    <xsl:for-each select="$DC//dc:subject">
-                        <field name="topic_str_mv"><xsl:value-of select="normalize-space()"/></field>
-                    </xsl:for-each>
-                </xsl:if>
-                
-                <!-- TITLE -->
-                <xsl:if test="$DC//dc:title[normalize-space()]">
-                
-                    <field name="dc_title_str">
-                        <xsl:value-of select="$DC//dc:title[1]"/>
-                    </field>
-                    
-                    <field name="title">
-                        <xsl:value-of select="$DC//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_short">
-                        <xsl:value-of select="$DC//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_full">
-                        <xsl:value-of select="$DC//dc:title[normalize-space()]"/>
-                    </field>
-                    <field name="title_sort">
-                        <xsl:value-of select="php:function('VuFind::stripArticles', string($DC//dc:title[normalize-space()]))"/>
-                    </field>
-                    
-                    <!-- title_alt / dc:titel[gt 1] -->
-                    <xsl:for-each select="$DC//dc:title">
-                        <xsl:if test="position() &gt; 1">
-                            <field name="title_alt">
-                                <xsl:value-of select="normalize-space()"/>
-                            </field>
-                        </xsl:if>
-                    </xsl:for-each>
-                </xsl:if>
-                
-                
-                <!-- Format -->
-                <xsl:for-each select="$DC//dc:format">
-                    <field name="format">
-                        <xsl:value-of select="."/>
-                    </field>
-                </xsl:for-each>
-
-                <!-- DESCRIPTION -->
-                <xsl:if test="$DC//dc:description[normalize-space()]">
-                    <field name="description">
-                        <xsl:value-of select="$DC//dc:description[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-                
-                <!-- PUBLISHER -->
-                <xsl:if test="$DC//dc:publisher[normalize-space()]">
-                    <field name="publisher">
-                        <xsl:value-of select="$DC//dc:publisher[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-                
-                <!-- PUBLISHERSTR -->
-                <xsl:if test="$DC//dc:publisher[normalize-space()]">
-                    <field name="publisher_str_mv">
-                        <xsl:value-of select="$DC//dc:publisher[normalize-space()]"/>
-                    </field>
-                </xsl:if>
-                
-                <!-- PUBLISHDATE -->
-                
-                <xsl:if test="$DC//dc:date[1]">
-                    <xsl:variable name="strippedDate" select="substring($DC//dc:date[1], 1, 4)"/>
-                    
-                    <xsl:if test="number($strippedDate) > 1000">
-                        <field name="publishDate">
-                            <xsl:value-of select="substring($DC//dc:date[1], 1, 4)"/>
-                        </field>
-                        <field name="publishDateSort">
-                            <xsl:value-of select="substring($DC//dc:date[1], 1, 4)"/>
-                        </field>
-                    </xsl:if>
-                    
-                    <field name="dc_date_str">
-                        <xsl:value-of select="$DC//dc:date[1]"/>
-                    </field>
-
-                </xsl:if>
-
-                <!-- FULL TEXT -->
-                <xsl:if test="//foxml:datastream[@ID='OCR-DIRTY'] or $RELS-EXT//fedora-model:hasModel[@rdf:resource='info:fedora/vudl-system:PDFData'] or $RELS-EXT//fedora-model:hasModel[@rdf:resource='info:fedora/vudl-system:DOCData']">
-                    <field name="fulltext">
-                        <xsl:if test="//foxml:datastream[@ID='OCR-DIRTY']">
-                            <xsl:value-of select="php:function('VuFind::harvestTextFile', concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $PID, '/datastreams/OCR-DIRTY/content'))"/>
-                        </xsl:if>
-                        <xsl:if test="$RELS-EXT//fedora-model:hasModel[@rdf:resource='info:fedora/vudl-system:PDFData'] or $RELS-EXT//fedora-model:hasModel[@rdf:resource='info:fedora/vudl-system:DOCData']">
-                            <xsl:value-of select="php:function('VuFind::harvestWithParser', concat($fedoraURL, ':', $fedoraPort, '/fedora/objects/', $PID, '/datastreams/MASTER/content'))"/>
-                        </xsl:if>
-                    </field>
-                </xsl:if>
-                
-            </doc>
-        </add>
-    </xsl:template>
-
-    <xsl:template name="parent">
-        <xsl:param name="parentURI_template"/>
-        <xsl:param name="parentName_template"/>
-        <!-- <xsl:if test="substring-after($parentURI_template,'/') != 'vudl:1' and substring-after($parentURI_template,'/') != 'vudl:3'"> --> <!--   -->
-            <parent uri="{$parentURI_template}" PID="{substring-after($parentURI_template,'/')}" name="{$parentName_template}">
-                <xsl:for-each select="//sparql:child[@uri=$parentURI_template]">
-                    <xsl:variable name="new_parentURI_template" select="../sparql:parent/@uri"/>
-                    <xsl:variable name="new_parentName_template" select="../sparql:parentTitle"/>
-                    <xsl:call-template name="parent">
-                        <xsl:with-param name="parentURI_template" select="$new_parentURI_template"/>
-                        <xsl:with-param name="parentName_template" select="$new_parentName_template"/>
-                    </xsl:call-template>
-                </xsl:for-each>
-            </parent>
-        <!-- </xsl:if> -->
-    </xsl:template>
-              
-</xsl:stylesheet>