Simple Digital Library Index

From OLPC
Revision as of 10:53, 5 August 2009 by FGrose (talk | contribs)
Jump to: navigation, search

Introduction

Simple Digital Library Index (SDLI) is designed to make it quick and easy to assemble digital libraries for schools in a format that is accessible, fast and easy to add content in bulk, and can be easily replicated to make it accessible in multiple locations even if there are asynchronous or very slow connections.

The system is programmed using Java and XSL - just assemble a folder with the contents however one wishes to organize them and the meta data will be extracted from the files according to the format type (e.g. using meta tags in HTML files, tags from audio files, document properties info from word documents, etc).

The appearance and interface can be very simply customized by editing the HTML in XSL sheets.

How It Works

  • Pass 1 will generate an XML file of Dublin Core Meta Data using a class implementing an interface to extract Meta Data from the file
  • Pass 2 will generate HTML files to server as a browsing index system.

Features

  • Very simple to add content - just assemble folders of content and tag the files using their own format if required.
  • Very easy to replicate - static HTML files are generated; therefor it can be easily copied to any medium, made accessible by being put into a webserver (e.g. Apache) directory
  • Suitable for offline use or use on a school server that does not have an internet connection.
  • Can be simply localized by using an XML dictionary file. Will look and see if this can be generated from po files etc. HTML pages will be automatically generated for each language as specified in the config file.
  • Can be made searchable by feeding the index page to Nutch [1]

Current Status

Currently has support for Ogg audio files and HTML files. Is work in progress in early testing in OLPC Afghanistan. Source code available from http://dev.laptop.org/git/projects/sdli. Released under a GPL license.

Getting Started to Create a digital library

Download the binary or source version. If downloading the source version follow the instructions in the README to compile and collect the required libraries.

  • Change the config property to tell SDLI which folder to use as the starting folder - open up res.config/simplelibraryindex.properties and then change the property start.dir to point to your library directory
  • For each folder that you want indexed make a file called directory.dcxml and put it in that folder - e.g.
<?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : dcxml.xml
    Created on : July 7, 2009, 3:42 PM
    Author     : mike
    Description:
        Purpose of the document follows.
-->

<entry xmlns="http://olpc.af/ns/olpclibentry"  xmlns:dc="http://purl.org/dc/elements/1.1/">
    
    <dc:title>Library Base Folder</dc:title>
    <dc:subject>Mathematics</dc:subject>
    <dc:subject>Physics</dc:subject>
    <dc:type>Audio</dc:type>
    <dc:description>Folder of stuff</dc:description>
    <dc:language>en</dc:language>
    <dc:language>ps</dc:language>
    <dc:language>fa</dc:language>
    <dc:contributor>ERTV</dc:contributor>
</entry>
  • Run the index creator by going to the file with the jar and running java -jar SimpleLibraryIndexSystem.jar (where this is the name of the jar file)
  • Open up the generated index.html in the browser

Alternatives

Greenstone seems to be the most famous; however this was quite complex / non standard to setup on Linux, required quite some effort to tag all the data into a collection, and finally the search system didn't include the text being searched for... This could have been quite nice for one big online collection; but for distributed collections it didn't seem quite what we were looking for. Nevertheless some very nice content is being made available this way.

Various systems have ways of making galleries etc. - but most require PHP, MySQL, or some server stack. We wanted something as simple as possible to replicate and copy by any means.

Moodle was more designed as a learning management system - not as a library...