Elevator Pitch

  • The name “elevator pitch” reflects the idea that it should be possible to deliver an elevator pitch in the time span of an elevator ride, or approximately thirty seconds to two minutes.‘ (wikipedia)
  • Militant British-English speakers may prefer “lift pitch”
  • Those who find a ‘pitch’ a little crass may prefer ‘concise-explanation-of-product-or-idea-while-in-lift’. Frankly, it looses some bite.
  • Here’s ours…

The University of Sussex and The University of Brighton have various partnerships and joint initiatives, helped by their close proximity. The most prominent of these is the joint medical school: BSMS (Brighton and Sussex Medical School).

The CReDAUL project is creating a combined web catalogue of the University of Brighton and the University of Sussex Libraries. It will contain all the items of both libraries in one interface, so users can see at a glance if either library has a book or other item, and if so at which library and branch.

What’s in it for Sussex? Researchers and students can easily search University libraries to see if a book is available locally. Library staff trying to locate an item for a user will find it useful, e.g. to check for Interlibrary loan requests, increasing efficiency and service. Users have another interface to search the Sussex catalogue should our main catalogue not be available, you can restrict a search to just one Library. It helps us to work together with Brighton in developing something, and the end product may help future collaborations. The interface will are developing (called VuFind, a free off the shelve application used by other Universities) has good support for mobile devices and integrating with applications such as Zotero.

What’s in it for BSMS? At the moment they have to search two different catalogues as their books and resources are split between the two Universities. They will now just need to do one search and can quickly see which Library it is at and if it is available. This will improve the experience for the medical students and staff, who often have a very high work load.

What’s in it for the local community? members of the public may have reason to refer to an item in a local academic library. If they wish to access an academic book, and would like to check to see if it is in a local academic library, they can now do so using just one search from one interface.

What’s in it for other Universities? We are writing up our experience on this blog, and finding other ways to share what we have learnt. Using Open Source discovery layer applications is something of a hot topic at the moment. We have looked at two: Vufind and Blacklight, and are writing up our findings. We are also writing up our experience with VuFind and how we installed it. We’ll also write up how we found setting up a union catalogue of two libraries records and holdings.

PS some background to this post: http://lmsmash.blogspot.com/2010/09/conversations-for-very-short-lift.html

Step-by-step implementation of VuFind

This blog (along with the blogs linked from here) is a step-by-step guide to the implementation of VuFind starting with installation, on our VuFind server.

(TODO: Eventually move contents under level 1 headings to separate posts?)


The basics

We start with a minimal Debian 5.05 installation (from its 40MB business card image) on a VMWare virtual machine on a VMWare ESXi server. The virtual machine has 2 processors available to it (2.4GHz AMD Quad-Core Opteron), 4GB RAM and 75GB hard drive space on SAN. Having logged in as root, the best place to start is:

#> apt-get update
#> apt-get upgrade
#> apt-get dist-upgrade

Since we are dealing with a very minimal installation of Debian, we need to get a number of basic tools installed, such as the following:

#> apt-get install sudo
#> apt-get install less
#> apt-get install wget
#> apt-get install screen
#> apt-get install subversion

Although we have installed sudo and we have at least one user with sudo rights, we will carry on with the installation as root.

Getting the pre-requisites

Now we move on to installing VuFind pre-requisites. Most of what we do are according to the detailed instructions for VuFind installation. First, we install Apache, MySQL, PHP:

#> apt-get install apache2 mysql-server php5 php5-dev php-pear php5-ldap php5-mysql php5-xsl php5-pspell php5-sybase
#> pear upgrade pear

The first line in the above process will ask you to configure MySQL server root password. After this, we enable the URL rewriting module for Apache:

#> a2enmod rewrite
#> /etc/init.d/apache2 force-reload

We install Java in a slightly different way than instructed on VuFind’s website. We would have gone for the Sun/Oracle JDK, but since the Oracle take-over of Sun, it seems to be more complicated to download it from Oracle website than it was to do from Sun’s website, so we use OpenJDK from the java.net website https://jdk6.dev.java.net/

At the time of this writing, we download and install the JDK6 update 23.

#> mkdir -p /opt/java
#> cd /opt/java
#> wget http://www.java.net/download/jdk6/6u23/promoted/b01/binaries/jdk-6u23-ea-bin-b01-linux-i586-30_aug_2010.bin
#> chmod +x jdk-6u23-ea-bin-b01-linux-i586-30_aug_2010.bin
#> ./jdk-6u23-ea-bin-b01-linux-i586-30_aug_2010.bin

This will create a directory called /opt/java/jdk1.6.0_23. Now, we need to put it in PATH and also create symbolic links so that we can upgrade JDK later, quite easily by switching symbolic links. Note that JDK can also be installed using the alternatives framework (see /etc/alternatives, man update-alternatives). In the /opt/java directory:

#> ln -s jdk1.6.0_23 current

Then, we edit the /etc/profile file by adding the following lines before export PATH.

export JAVA_HOME

Then we reload /etc/profile and we will be able to access the JDK as follows:

#> source /etc/profile
#> echo $JAVA_HOME
#> echo $PATH
#> java -version
java version "1.6.0_23-ea"
Java(TM) SE Runtime Environment (build 1.6.0_23-ea-b01)
OpenJDK Server VM (build 19.0-b06, mixed mode)

Obtaining and configuring VuFind for first run

We do not install the standard VuFind. We will use the one that contains multi-ILS capabilities, maintained by Luke O’Sullivan (Swansea). We check-out from SVN, the appropriate branch.

#> svn co https://vufind.svn.sourceforge.net/svnroot/vufind/branches/master /usr/local/vufind

Now, we have a VuFind installation at /usr/local/vufind. We shall now configure it. First, we have to initialise the installation by running /usr/local/vufind/install. This will setup MySQL database amongst other default configurations. NOTE that at the time of writing, there was a bug in installation script, as filed in the bug report http://vufind.org/jira/browse/VUFIND-315. The fix will be available in version 1.1 or revision r2976 of https://vufind.svn.sourceforge.net/svnroot/vufind/branches/master. Updates to versions can be obtained by running svn update in /usr/local/vufind. We also need to make the following scripts executable in /usr/local/vufind.

#> chmod +x vufind.sh
#> chmod +x import-marc.sh

The following two lines need to be added to /etc/profile before export JAVA_HOME and the file needs to be re-sourced.



Now, we need to tell Apache where VuFind lives. Also, we need to let Apache have write access to some directories. We can do that as follows.

#> ln -s /usr/local/vufind/httpd-vufind.conf /etc/apache2/conf.d/vufind
#> /etc/init.d/apache2 reload
#> chown www-data:www-data /usr/local/vufind/web/interface/compile
#> chown www-data:www-data /usr/local/vufind/web/interface/cache
#> chown www-data:www-data /usr/local/vufind/web/images/covers/*

The final step is to edit the /usr/local/vufind/web/conf/config.ini to match the requirements of the institution (e.g. support email, path to VuFind, URL on the web server, etc.) and then run /usr/local/vufind start. Running it at this stage will generate errors as multi-ILS configurations have not been done properly, which is what we will work on later, after we have gone through some other installations.

Installing the Talis-Jangle connector

In our specific installation of VuFind, we plan to have multi-ILS connections to Talis systems. For this reason, we must install a number of other things to make VuFind work with Talis. One of the first things to install is the Talis-Jangle connector http://code.google.com/p/talislms-jangle/. The instructions provided below are derived from http://code.google.com/p/talislms-jangle/wiki/InstallRailsConnector.

Install JRuby

We install JRuby in the way we installed Java. Download the latest distribution of JRuby (1.5.2 at the time of this writing) from http://jruby.org/download into a new directory /opt/jruby. Untar it and create a symbolic link such that /opt/jruby/current points to the untarred JRuby installation. Now, change the PATH line in /etc/profile right above the declaration for JAVA_HOME to PATH="$PATH:/opt/java/current/bin:/opt/jruby/current/bin" and run:
#> source /etc/profile
After this, running the following will show the version of JRuby you have installed, for example:

#> jruby -v
jruby 1.5.2 (ruby 1.8.7 patchlevel 249) (2010-08-20 1c5e29d) (OpenJDK Client VM 1.6.0_23-ea) [i386-java]

Update RubyGems and install various Gems

To update RubyGems, we run

#> jruby -S gem update --system

After that, we install the following:

#> jruby -S gem install rails -v 2.3.8
#> jruby -S gem install rsolr-direct
#> jruby -S gem install activerecord-jdbc-adapter -v 0.9.4
#> jruby -S gem install marc jrexml vpim composite_primary_keys cql-ruby glassfish

Having installed the various Gems, we now install the Sybase JDBC driver from http://jtds.sourceforge.net/, unzip and place the JTDS driver JAR file in /opt/jruby/current/lib.

Obtaining the Talis-Jangle connector

We checkout from SVN (http://talislms-jangle.googlecode.com/svn/trunk/) the Talis-Jangle connector into /opt/talislms-connector. The file /opt/talislms-connector/config/database.yml-dist needs to be renamed to /opt/talislms-connector/config/database.yml and edited to reflect the connection to Talis Sybase. The file /opt/talislms-connector/config/connector.yml may be edited to change the administrator password. Before we start Glassfish, we have to create a symbolic link to the Solr directory as follows:

#> cd /opt/talislms-connector/lib
#> ln -s apache-solr-1.4.0 solr

This helps us keep link to Solr and update it later in case a different version of Solr is used. However, a more up-to-date version of the Talis connector may not need this as it may automatically point to the apache-solr-1.4.0 directory. To start Glassfish in production mode:

#> cd /opt/talislms-connector
#> jruby -J-Druby.runtime=8 -S glassfish -e production &

This step starts up Glassfish, which takes quite a long time to cache the Sybase database. The log can be found at /opt/talislms-connector/log/production.log

Obtaining the Jangle feed generator

Having configured the Talis Jangle connector, we now need to configure the feed generator. We can download it by checking out the SVN repository http://jangle.googlecode.com/svn/trunk/PHPCore as follows:

#> cd /usr/local
#> svn co http://jangle.googlecode.com/svn/trunk/PHPCore jangle-feed

We must tell Apache about jangle-feed. To do so, create a file called jangle-feed-httpd.conf inside the jangle-feed directory with the following contents.

Alias /janglefeed /usr/local/jangle-feed
<Directory /usr/local/jangle-feed/>
Order allow,deny
Allow from 127
AllowOverride All
Options -Indexes

Then create a symbolic link and reload Apache:

#> ln -s /usr/local/jangle-feed/jangle-feed-httpd.conf /etc/apache2/conf.d/janglefeed
#> /etc/init.d/apache2 reload

We must also configure the Jangle feed generator by ensuring that the config file /usr/local/jangle-feed/config/config.yml looks as follows.

   base_url: http://localhost/janglefeed/
     connector_url: http://localhost:3000/connector/
     description: Alto

   directory: "./cache"
   function: functions
   page: pages

Note that there is nothing available at http://localhost:3000/connector/, but the config file uses that as a base URL. We must also install PHP Caches:

#> pear install Cache-1.5.5

and /usr/local/jangle-feed/.htaccess must be edited to contain the following.

RewriteEngine On
RewriteBase /janglefeed
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]

Thus, the Jangle feed generator will now be available at http://localhost/janglefeed/talislms. So, for example http://localhost/janglefeed/talislms/items shows the Jangle feed.

This concludes the installation process for VuFind and the associated software. Before we move on to configuring VuFind, let us setup some administrative scripts.

Auto-starting VuFind

VuFind provides a startup script, which can be used by Linux to auto-start VuFind. However, we also need the Talis Jangle connector to be started up. Therefore, we write our own startup script as follows, and save it to /etc/init.d/vufind-all:


# Provides:    vufind-all
# Required-Start:   $local_fs $network
# Required-Stop:   $local_fs $network
# Default-Start:   2 3 4 5
# Default-Stop:    0 1 6
# Short-Description: Start VuFind daemon at boot time
# Description:  Enable VuFind and associated services provided by daemon.

#See details about LSB information at http://wiki.debian.org/LSBInitScripts

source /etc/profile


touch /var/lock/vufind-all

case "$1" in
    echo "Starting VuFind and other associated services..."
    cd $TALISLMS_CONNECTOR_PATH && jruby -J-Druby.runtime=8 -S glassfish -e production &
    cd $VUFIND_PATH && ./vufind.sh start
    echo "Stopping VuFind and other associated services..."
    GLASSFISH_PID=`ps aux | grep glassfish | grep jruby | awk '{print $2}'`
    cd $VUFIND_PATH && ./vufind.sh stop
    echo "Usage: /etc/init.d/vufind-all {start | stop}"
    exit 1;

exit 0;

To add this to Debian startup, run update-rc.d vufind-all defaults.

Having VuFind on the web server root

Sometimes it may be necessary to have VuFind on the root of the web server (e.g. http://hostname/ instead of http://hostname/vufind). We show the steps to configure this on our Apache2/Debian setup.

First, remove the symbolic link /etc/apache2/conf.d/vufind that was created earlier in this installation process. Following that, run #> a2dissite default, which will disable the default site on the root of the Apache2 web server. Now, create a file /etc/apache2/sites-available/vufind with the following contents.

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName full-host-name-of-webserver
  ServerAlias full-cname-of-webserver

  DocumentRoot /usr/local/vufind/web

  ErrorLog /var/log/apache2/vufind-error.log
  LogLevel warn
  CustomLog /var/log/apache2/vufind-access.log combined
</VirtualHost *:80>

Between the DocumentRoot and ErrorLog declarations, copy and paste the entire <Directory> section from /usr/local/vufind/httpd-vufind.conf and change the RewriteBase line to RewriteBase /. Do not copy the Alias line. Note that we have not copied the Location line, so this will disable the web-based admin interface for VuFind, which is not a bad thing to do.

In /usr/local/vufind/web/conf/config.ini, make sure the Site section is edited to contain the following:

path = http://full-host-name-of-webserver
url = http://full-host-name-of-webserver

You can use a host name corresponding to DNS A or CNAME records for your web server. Having done this, enable the new site and reload the web server.

#> a2ensite vufind
#> /etc/init.d/apache2 force-reload

In our view, this is not the best way of configuring VuFind at the root of the web server, but it works for now.

Configuring VuFind

One of the first things to do regarding the multi-ILS integration is to edit the DriverIDs section of /usr/local/vufind/web/conf/config.ini file, for example adding two library IDs:

lib1 = "Library 1"
lib2 = "Library 2"

This will imply that there will be directories corresponding to the driver IDs in the directory /usr/local/vufind/web/conf/systems/. Each such directory (e.g. /usr/local/vufind/web/conf/systems/lib1/) will contain a config.ini which will contain configuration information specific to that particular library only.

Using multi-ILS configuration will mean that the imported MARC records from various libraries are merged. This calls for creating new MARC fields that can be used as identifiers necessary for the multi-library search. We should edit /usr/local/vufind/import/marc_local.properties to uncomment the two lines as shown:

# Uncomment the following settings to insert appropriate values for your site:
#collection = "Catalog"
institution = 969a
systemids = 969b
#building = "Library A"

Importing data

[This is draft so far… it is being edited]
1. Use Paul Johnson’s (Swansea) MARC merge script to create the annotated MARC records and import them as usual into VuFind.
2. Requires installation of additional Perl modules, using CPAN. It is necessary to install make.
3. Requires JangleXXX.ini in /usr/local/vufind/web/conf/ directory which is a copy of Jangle.ini from the same directory with XXX specific information, where XXX is the library code being used, e.g. lib1. This file needs to be referenced as config = JangleXXX (without the .ini extension) from /usr/local/vufind/web/conf/systems/XXX/config.ini — rather long-winded configuration, in my opinion!

Connecting VuFind to Talis for holdings information

Integration with Talis

After having VuFind 1.0 installed at $VUFIND_HOME=/usr/local/vufind, I started to explore how to connect VuFind to our existing Talis system in order to obtain holdings information. Unlike support for many other library systems, VuFind does not come with a ready-made driver for Talis in $VUFIND_HOME/web/Drivers.

Multi-ILS Jangle driver

Swansea University implements VuFind for multi-ILS integration (including Talis), so I got in touch with Luke O’Sullivan there to learn about their experience. It turns out that he has written his own driver to connect to Talis, but the process is not straightforward. The driver (called Jangle driver) is actually a generic driver enabling multi-ILS integration, with some changes to VuFind itself. One of the ILS that it can connect to is Talis but not directly. It talks to a Jangle connector for Talis (and similarly Jangle connector for OpenBiblio, for example) through the Jangle feed generator (http://jangle.googlecode.com/svn/trunk/PHPCore). The Talis Jangle connector has been developed by Ross Singer at Talis and maintained by him at http://code.google.com/p/talislms-jangle/.

Talis-Jangle connector and the Jangle feed generator

I started off with getting the Talis Jangle connector to work. With assistance from Ross, the Jangle connector was setup at /opt/local/talislms-connector/ after having followed instructions from http://code.google.com/p/talislms-jangle/wiki/InstallRailsConnector. With a bit of adjustments, I got it to work finally. It connected successfully to our Talis server. The connector could either be run using the built-in WEBrick server or Glassfish. I ran it using Glassfish and monitored the log at /opt/local/talislms-connector/log/development.log.

In the next step, the Jangle feed generator was setup at /usr/local/jangleFeed/ and configured to connect to the Talis-Jangle connector. A symbolic link had to be created from /etc/apache2/conf.d/ to point to /usr/local/jangleFeed/jangleFeed-httpd.conf.

VuFind Jangle driver

Having setup the connector successfully, I went on to obtaining the Jangle driver from Luke. It was setup and configured to connect to the Jangle feed. After a bit of troubleshooting of a problem arising from a missing PHP library (i.e. Cache.php), we got it to work. At this point, however, there was only one ILS (i.e. ours) that we connected to. The point of this experiment was to connect VuFind to Talis using the Jangle driver.

Slowness fixed, somewhat

However, obtaining the holdings information was dreadfully slow. It turned out that for every result in the result-set of a query on VuFind, the Talis-Jangle connector fired several SQL requests to our Talis/Sybase server. After presenting Ross with the log file from the Talis-Jangle connector, he tweaked it. Now, it is faster although further improvements in speed would be better.

As of August 10, the slowness problem has reduced with at least a single ILS connectivity: running Glassfish in production mode resulted in drastic performance improvement from running it in development mode.

Now, multi-ILS option

The structure of VuFind does not directly allow for connections to multi-ILS. Also, with a multi-library environment, it is likely that we may be interested in connecting to multiple LDAP servers across more than one institutional networks. VuFind does not have a built-in facility for that. However, Luke has extended VuFind to support this. Therefore, besides writing the Jangle driver, Luke has modified the base VuFind installation to support multi-institutional connections. Luke is going to merge his branch of VuFind development with the main development trunk of VuFind (?).

To accommodate testing the multi-ILS features, I installed more than one instances of VuFind according to the instructions at http://vufind.org/wiki/installing_multiple_instances. One of the instances is what we already had running at /usr/local/vufind but now moved to /usr/local/vufind-susx and the other one at /usr/local/vufind-smu which is Luke’s version. Symbolic links from Apache config had to be updated accordingly. From this point forward, I shall call the former as VUFIND-SUSX and the latter as VUFIND-SMU. This required multiple MySQL databases. To avoid getting into trouble of moving MySQL databases, the database for VUFIND-SUSX was kept unchanged while a new database was created for VUFIND-SMU.

One of the things to keep in mind about multi-ILS connection is the way MARC records are imported into VuFind. Since they will come from multiple sources, they need to be merged. Otherwise, we shall not have multiple library locations displayed for any single record that exists in more than one library. I am not a MARC expert but what I understand is that certain fields in MARC (e.g. 001) may be used by the VuFind Jangle driver to query the Talis-Jangle connector for the correct record in the Talis system. Such a field has to be unique. However, it may not be possible to have two different 001 values for the same entry in two different libraries, so Luke works with MARC files which are pre-processed to add in field 969 (multiple-values allowed). The 969 field contains references with ILS prefixes and unique IDs. Therefore, a record existing in the Sussex library could have SUSX-123456 whereas it may also have BRI-123456 which indicates that it exists in the Brighton library (e.g. prefixed as BRI). Luke’s driver can then use these 969 values to initiate connections to two different ILS based on the ILS prefix.

In order to get it work…

To begin with, the file VUFIND-SMU/web/conf/config.ini is different from VUFIND-SUSX/web/conf/config.ini. The former has a specification for Controller and DriverIDs, which is how it keeps track of multiple drivers for multiple ILS connections. The directory VUFIND-SMU/web/conf/systems contains sub-directories with names corresponding to DriverID entries. For example, if we have:

type = default

susx = "University of Sussex"

then we will also have VUFIND-SMU/web/conf/systems/susx/. Such a directory contains a config.ini, which provides configuration instruction for the individual driver. For example, we may have:

name = University of Sussex
driver = Jangle
config = Jangle
prefix = susx

Thus, with this configuration, we are using the Jangle driver to connect using ILS prefix “susx”. The above driverID specification in VUFIND-SMU/web/conf/systems/susx/config.ini expects a driver configuration file by the same name in VUFIND-SMU/web/conf/ which is configured to allow the driver to connect to the Jangle feed generator.

Connecting to the multi-ILS data

Having tested the example setup that emulates the multi-ILS connectivity, we are now in the process of obtaining MARC records from Brighton university that will have to be merged with those from the University of Sussex. The merger process will generate, in the MARC records, the 969 fields with different ILS prefixes based on which VUFIND-SMU will connect to the Talis systems in both the universities.


Thanks to Luke O’Sullivan (Swansea University) and Ross Singer (Talis) for their assistance with implementing VuFind.

The work plan

Since we have working versions of both VuFind and Blacklight installed, the plan is to investigate the following. As we go on, I will add further details on each of these topics in separate blog posts.

Holdings and multi-library search

The aim is to find out how we should implement holdings information, e.g. classmark (LCCN), on-loan, number of copies, etc. One of the primary objectives of our OPAC installation will be to enable multi-library search between the University of Sussex and the University of Brighton. A cursory glance at VuFind’s ILS drivers suggests that it is possible. Some universities (e.g. Swansea) have done it. The OPAC installation should integrate with our existing Talis system.

Read our experience with implementation of multi-ILS holdings information queries.

To-do: Multi-library search facility, which means having identifiers in MARC records that distinguish which library they come from. Such an identifier could be field 969 as explained in the multi-ILS holdings information queries.

System customisation

Having installed both systems, we will now want to look into how easy it is to:

  1. Customise the branding and layout.
  2. Change how bibliographic records and search results are displayed.
  3. Customise search refinements and facets.
  4. Provide bibliographic record enhancements, e.g. displaying book jacket covers, Amazon comments, etc.
  5. Provide extended export formats, e.g. BibTeX.

Apache Solr and data storage

Since both VuFind and Blacklight use Apache Solr, it is worth exploring if both of them can use the same Solr index. If this is possible, it will be easier to have both systems on trial and then phase in the one users prefer. Initial investigation shows that linking to the same Solr index may not be possible, but this continues to be a subject of investigation.

User authentication

We would like to find out how both VuFind and Blacklight works with some form of user authentication, e.g. LDAP and any other SSO and that too across multiple libraries.


It would be useful to setup automated scripts that can be run as cron jobs to implement daily/hourly updates of records imported as MARC data. It is worth looking into how one can delete certain records, preferably in a batch. Slightly side-tracking, it is important to see if the Talis-exported MARC records are actually usable by either of the OPAC systems. The fact that some MARC records were imported with errors could point to some incompatibility issues.

Installing VuFind and Blacklight

On the virtual machine environment

To test out both VuFind and Blacklight, we started off with a virtual machine setup. A VMWare Fusion 2.02 (on OS X 10.5.8) virtual machine created with dual logical processor, each 2.4GHz, 1024MB RAM, 4GB logical SCSI drive, VGA graphics and a 100Mbps NAT-ed network connection. The guest operating system was Debian 5 i386 installed from a business card image.

We tested both VuFind 1.0RC2 and Blacklight 2.4 installations.

VuFind 1.0RC2

We found the installation instructions for VuFind 1.0RC2 to be very straightforward, from http://vufind.org/wiki/installation_ubuntu. However, Debian’s update-rc.d was not so happy with configuring the VuFind script at /usr/local/vufind/vufind.sh for automatic start. We experimented with importing data from a large MARC file from which 170,594 records were imported. There were some errors but detailed error reports were unavailable. We are still investigating if those errors are caused by bugs in VuFind and SolrMARC or bugs in the Talis-exported MARC files from our existing system.

Blacklight 2.4

We found the instructions for installation of Blacklight not very straightforward. The Ruby-on-Rails platform installation faced some problems, but eventually succeeded. Some version compatibility issues were faced with Ruby, Gems, Rails, Rake, etc. Once we had the standalone installation of Blacklight 2.4 up and running, we tried to import 170,594 MARC records on top of an example 30. Occasional error messages were encountered. We will be investigating if those errors were caused by bugs in Blacklight and SolrMARC  or bugs in the Talis-exported MARC files.

On a Dell Optiplex

Due to eventual resource constraints arising on the virtual machine and its host, we decided to have both VuFind and Blacklight installed on a dedicated machine: a Dell Optiplex 780 with 3GHz Intel Core 2 Duo, 4GB RAM and 160GB hard drive. This machine is connected to the University network with certain ports opened through the firewall. Thus we can now demonstrate our test installation outside the campus network.

Initially, an environment similar to the one on the virtual machine was planned on the Optiplex. However, due to its newer network interface card, installing Debian 5 proved difficult. We then chose to install Ubuntu 10.0.4. After installing VuFind 1.0RC2 and Blacklight 2.4 (with few problems on Ubuntu), we tested them using 600,000+ MARC records. There were some errors but it seems like, at least for VuFind, records are imported despite the errors. VuFind 1.0 final has been released. We removed the 1.0RC2 and installed the newer version, which is what we are testing now. We shall soon be testing Blacklight elaborately.

What’s CReDAUL

JISC logo


This is the project blog for the JISC CReDAUL project. CReDAUL stands for “Combing Resource Discovery Across University Libraries”.

In a nutshell: We are going to select an Open Source Resource Discovery web application, choosing between either Blacklight or VuFind, and set it up to contain the library catalogue records of both the University of Sussex and the University of Brighton. Its primary users will be the medical school.


Brighton and Sussex Medical School (BSMS) is a joint venture between the University of Sussex and the University of Brighton and admitted its first cohort of undergraduates in 2003. Students and staff of the School have full access to the facilities and resources, including the libraries, of each university.

Medical Students see themselves as belonging to one institution – BSMS – and therefore expect to use one system when searching for books and resources, rather than the two separate library catalogues that they currently need to search. Members of BSMS also have access to the Brighton and Sussex University Hospitals NHS Trust Library. A future path could be to bring the NHS in to this service.

The CReDAUL project will…

  • Develop a set of requirements, and select either VuFind or Blacklight against these criteria.
  • Install the selected software and set it up for our needs
  • Add records from both Library systems
  • Carry out User needs analysis and testing, carried out by an academic who specialises in this area.
  • Write up our findings in a case study so that others may learn for our experience.

It is part of the JISC 12/09 Funding Call ‘Enhancing Library Management Systems’. It comes under Theme A ‘Use of new resource discovery interfaces’.

The project is based at the University of Sussex, with help from the University of Brighton and BSMS. It runs between 19th April – 15th October 2010.

Useful links

Blacklight Catalogue SoftwareBlacklight

VuFind Catalogue Softwarevufind