Greenstone, an Implementation in Afghanistan
A Case Study of the AREU Collection,
by Graeme Foster
1 Abstract
This article summaries the process of implementing a Greenstone digital library in Afghanistan, the
work was initiated in the summer of 2006 and completed early in 2007. The article looks at some of
the decisions that were made and hopes to provide some assistance to anyone who is evaluating or
looking to configure their own Greenstone collection.
2 Introduction
The Afghanistan Research and Evaluation Unit (AREU) is an independent research organisation
based in Kabul. AREU's mission is to conduct highquality research that informs and influences
policy and practice. Since 2002, the Afghanistan Research and Evaluation Unit has maintained a
library of Afghanistanspecific materials to support its own research. The collection currently has
more than 6,500 catalogued items, primarily in English, Dari and Pashto as well as in other
languages (French, German, Italian and Russian). The AREU library’s main aim is not to compete
with international collections, but rather to gather and preserve relevant materials available both
within Afghanistan and abroad for use by national and international researchers.
The AREU digital catalogue is not a typical Greenstone collection it is not being used as a true
digital library, in that items of the collection that have been digitised are not integrated into the
collection. Rather the collection is a comprehensive bibliographic database of the library's holdings
with links to the digitised data and where possible these links will be to the original material when it
is available on the Internet (i.e. By citing of the URL).
However, despite the fact that the collection was not implementing the digital library features of
Greenstone there were still compelling reasons for using Greenstone.
2.1 Why was Greenstone chosen?
The support and use of open standards is a contemporary battle cry and it is easy to get drawn into
such a furore but it did have some pertinence with the AREU collection. Much of the information
already existed on an existing database, however there was no support for the database it was fixed
to a single client and the character set for the Arabic scripts was nonstandard. These were all
surmountable issues but it was clear that there was a danger of being locked into a proprietary
standard.
One of the open standards that was identified early one as a must support was UNICODE. It has
become the standard for the support of international scripts, and its adoption at the core level by
operating systems and programming languages only confirms its dominance in this arena. The
Greenstone, an Implementation in Afghanistan
1 of 31
AREU collection supports three languages, English and the two main Afghan languages of Pushto
and Dari.
A second requirement of the collection was to be able to put the collection on the web so that
scholars from around the globe can access the collection and where available immediately get their
hands on the soft copy.
A third requirement was that the software must be easy to manage. The technical support staff were
already overworked and so managing the new service should not add significantly to their
workload. Obviously, this is a difficult parameter to access until the product is up and running and
people are using it. Using it on a test machine looked as if it would be easy to manage and
thankfully, when the product went live it ran smoothly and with very little demand on the technical
staff.
A final requirement of the organisation was that backups were easy to create. The situation in
Afghanistan is uncertain, it is experiencing a fine balance of normality after many years of
instability, but this could deteriorate. Having a backup of all the data was considered a non
negotiable requirement. This was addressed in several ways. First the whole server up is mirrored
and the library is physically backed up on a monthly basis. Secondly the whole digital library is
hosted on a server outside of Afghanistan. The real feature that got people excited, and let's face it
when talking about backups it is hard to get people excited, was Greenstone's ability to create a live
CD of the collection. This would not only act as a backup but it could be made available to
organisations who had no, or limited, access to the Internet, a all too common situation in
Afghanistan.
From a technical perspective it was good that Greenstone was an open source product. This meant
that if necessary the code could be changed to meet the specific needs of the collection. Such power
is of course a double edged sword. Any change to the code to ensure that the specific requirements
are met means that it breaks any upgrade path. So it's a feature that is great to have, but you just
hope that you never need to use it. As it turned out it was needed but only in one small area
requiring the change in a single file. This sort of change is acceptable and that fact that the
collection was a huge deviation from a typical digital library is testament to the configurability of
Greenstone. The fact that Greenstone is highly configurable meant that we were able to make the
collection look the way we wanted it to look. However, it would only be fair to say that it was a
feature that was not fully appreciated until after it had been configured!
3 The Structure of the Collection
3.1 Look of the collection
The general requirement was for the collection to reflect the professional image of the organisation
that the web site has helped to enhance. For individual data items it was thought that the familiar
library catalogue cards would be a model that users would be comfortable with. From a
representation perspective only data that exists should be displayed, that is if a publication doesn't
2 of 31
Greenstone, an Implementation in Afghanistan
have an author then it shouldn't display an Author title with a blank value.
Illustration 1: A example of the catalogue card
Illustration 1 shows the headings, in English and the data of a sample catalogue card. It also shows
the link to the soft copy of the document, in this case a word document of the text.
3.2 Indices and searching
There was a strong feeling that the elements that comprised the search indices should only come
from the metadata of the collection. The collection consists of several thousand items with a small
proportion being available electronically. If the contents of those for which soft copies existed were
indexed then the search results would be skewed in favour of this subset of documents.
The browse feature had great potential in assisting researchers find documents that they might not
otherwise find and so browse categories were added for, the author, title, corporate body, subject
headings and language.
As it turned out the browse categories proved to be an excellent way of validating the uniformity of
the data. Inconsistencies in spelling, punctuation or lettercase of the metadata were easily
identified because they would generate an extra entry in the browse category. This turns out to be a
quicker and more reliable method than checking each entry manually.
As s
hown in Illustration 2 the browse categories can be used to identify
inconsistencies in the data. The
illustration shows three subject headings
with almost identical value but because
of slight variations in data entry, as
shown with a red underline, they become
Illustration 2: A selection of subject headings
separate entities. By browsing through all
the possible values it is easy to spot such issues with the existing data.
Greenstone, an Implementation in Afghanistan
3 of 31
3.3 File structure
The catalogue cards are represented by a simple HTML file. It is this file that is displayed by
Greenstone. Each HTML file is associated with an XML file that contains the metadata that
Greenstone will be using in its indexing. The details of the HTML file
of Illustration 1 is given in
the appendix and it can be seen that the html is laid out using extensive use of HTML tables. The
style sheet referred to in this HTML is not used by Greenstone but by the Data Entry system
described later.
Each HTML, XML file pair is placed in its own directory, whilst this helps to manage the data this
was mainly done because Greenstone requires the meta data to have a specific file name, and for
ease of managing this file it was decided to have one entry per metadata file.
The directories of the catalogue cards were broken down into four language groups, Dari, Pushto,
English and Misc. Technically English and Misc are interchangeable the others are distinct in that
the titles for the catalogue card will be translated into the appropriate language. The translation of
each catalogue card is managed by the Data Entry program, and a catalogue card is presented in the
primary language of the text.
4 Data Entry
A small system was written to ease the data entry of each catalogue card and the editing of existing
entries. This system would automatically generate the files for each system and it would include
some validation of the data. It also allows for the simultaneous creation and editing of the catalogue
cards. This system would run independent of Greenstone but would honour the file system that had
been designed, this meant that it doesn't need to be hosted on a computer that supports Greenstone
and it was easy to move it to a computer that had the Greenstone system, such as a backup server.
This system is still being developed and enhanced and it is planned to be released to the community
under the GPL.
5 Configuring the collection
There are two broad areas of collection configuration these have been divided into collection
description, and collection style.
5.1 Collection description
The file that describes the collection is the collect.cfg file and is located in the etc directory of the
collection folder. This file is included in the Appendix.
For the purpose of this collection the important elements of this file is the metadata that is used, the
browse categories and what should be displayed in the search and browse results. Additionally this
file includes the plugins that are used and the location of the icons that are to be used for this
collection.
4 of 31
Greenstone, an Implementation in Afghanistan
5.1.1 Metadata, selecting, translating and using
Whilst the collection was being designed different metadata sets were used in the end we decided
to use the rfc1807 collection, because it was the best fit for our requirements. It still meant that
some fields were not quite right and so we wanted to change the name of some meta data items.
Because this collection was introducing two new languages to Greenstone it was also necessary to
add the translations for the meta data entities being used.
Adding a translation to a metadata element turns out to be a trivial exercise. The following snippet
shows the translation that were required for the author metadata.
# meta data translation
collectionmeta
.document:rfc1807.author [l=en] "Author"
collectionmeta
.document:rfc1807.author [l=prs] "فلءوم"
collectionmeta
.document:rfc1807.author [l=ps] "لاوكيل"
For each metadata element there are three translations one for each of the three languages that are
supported by the collection. The [l=en] is language English, [l=prs] is for Dari, Persian
Southern, and [l=ps] is for Pushto. For each of the metadata elements that is being used a
translation was provided and put into this file.
The main problem that was encountered with this process stems from the fact that we started with a
different metadata set. In fact we selected different elements from different metadata sets, picking
and choosing the element that appeared to be the most appropriate. As the development process
progressed it was clear that this happy go lucky approach was going to be confusing at a later date
and so we decided to select a single metadata set and modify the elements when there wasn't an
exact match, for example we use the rfc1807.id for the Accession Number, and
rfc1807.keywords is really Subject Headings. A script was written to implement the agreed upon
change in all the records and the collection was rebuilt. When the collection was viewed, sadness all
around because, the old metadata elements were still being used. The problem was obscured by the
fact that the English translations were consistent and so at first it appeared as if it had picked up the
change but not the new translations. However, once on the right track it was clear to see what was
happening by looking at the output generated by the build. Some of the records still had the old
metadata. The conversion script had failed on a few records which was why they were still using
the old metadata. Once these records were fixed then the new metadata was picked up and the
browse buttons displayed their translated values, happiness restored.
5.1.2 Browse categories
When the browse categories were added it was clear that it was important to select the best way to
display the data. This is still an area for debate and hasn't proved to be as popular as the search
which, with the ascendency of search engines on the Internet, has become a pervasive technique in
the researcher's toolbox. The problem lies with the fact that much of the meta data is unique and so
the results do not necessarily cluster well. The clear exception to that is the meta data language
which is limited and an ideal candidate for the browse categories, unfortunately for the researchers
it is not as useful as the other categories.
Greenstone, an Implementation in Afghanistan
5 of 31
One of the difficulties that we faced was that some of the specific browses classifiers didn't work
properly (or at all) with the mixed scripts that we were using so to overcome that we decided to
classify them using the GenericList and then partition the result in blocks of 50. This provides a
manageable browse list although it does lead to an excessively long list of classifiers along the top.
This can be seen
in Illustration 3 below
Illustration 3: The (rather long) list of Subject Heading Classifiers
Another problem is that when the script switches from the Roman to the Arabic script the direction
of reading changes so (the left to right) Z is associated with the rightmost Arabic (right to left)
character on the same line. That is, from
Illustration 3 the Z and the ﺍ are associated and not the Z
and the ﻝﺏ characters. This abrupt change in presentation can be confusing and it would be better if
the meta data in the Roman script and the Arabic script were further divided by a new line.
One feature that helped was to have the number of documents under each category. However since
a large number of categories had a single document the value of including a number was
diminished. So a slight modification of the format string was done so that the number of documents
was displayed only if there is more than one document. This was done as follows:
{if}{[numleafdocs] gt 1, ([numleafdocs])}
This worked well for most browse categories, but there were some formatting problems with the
title where a long title sometimes meant that the cell that contained this value wrapped to the next
line, this meant that the browser would then maximise the space available for the title and wrap the
bookshelf icon and the number of books onto two lines. The solution to ensure that this appeared on
a single line came in the form of the nonstandard html tag <nobr>.
format VList "<td valign=top><nobr>[link][icon][/link]
{if}{[numleafdocs] gt 1, ([numleafdocs])}</nobr></td>
The rest of the format string was the standard entry for the title.
5.1.3 Search results
The search feature was identified as being the main interaction with the collection and it was
6 of 31
Greenstone, an Implementation in Afghanistan
expected that researchers would feel comfortable with this so long as it mirrored the plain features
of a typical Internet search site. This requires the indexes to be set up and to ensure that the search
results were comprehensive and clear.
5.1.3.1 Indexes
The indexes are set up within the collect.cfg file as follows:
indexes
document:text document:rfc1807.author
document:rfc1807.title document:rfc1807.keyword
document:rfc1807.series document:rfc1807.id
This creates six indices that are automatically incorporated into the search feature.
5.1.3.2 Results
By using the defaults the search results are acceptable and provide a comfortable representation of
the matches found.
The search box has been
modified slightly to meet the
specific needs that we had.
We wanted to simplify the
search process by removing
the ability to change the
search features in a separate
preferences page and placing
the most common search
preferences on the search
dialogue. The changes that
were required are described
Illustration 4: Search Results
later.
The results are displayed in a format that we were happy with and so this didn't require any
changes.
5.2 Collection style
The primary requirement of the collection style was for it to mirror the organisations web site as
closely as possible. This required extensive changes to the macros that define how a Greenstone
collection is displayed and the addition of collection specific style sheets.
The most important constraint was that we didn't want to change the core Greenstone macros. Any
changes to core macro files would lead the complications when upgrading and we had reached
agreement that the collection would be hosted on the examples page of the Greenstone Digital
Library
www.greenstone.org/examples. Thankfully, whilst tempting it is not necessary, to change
the core macros. Instead a collection specific macro can be created. The collection specific macro
Greenstone, an Implementation in Afghanistan
7 of 31
should be called extra.dm and will reside in the macros directory of the collection.
5.2.1 Language Selection
The organisation's web site allows the user to select the language that they would like to view the
web site in. This facility is available on any page that the user might be visiting. The languages are
limited to English, Dari and Pushto. Whereas to select the language in Greenstone requires
navigating to the Preferences page and then all the languages that are available to Greenstone are
displayed. This didn't make sense in our context and so the extra.dm macro was changed, the
complete changes can be seen in the appendix and appear at the start of this file.
The first important point with this piece of code is that we created some new macros. We decided
that all new macros will be prefixed with the collection name, hence _AREULang_ is a new macro
which will hold the dropdown list of available languages. The macro itself is quite simple, it is
repeated for each language, thus _AREULang_ [l=prs] {} is the macro defined for Dari. The macro
defines an HTML selection box and depending upon the language the appropriate option is selected
within the HTML. Hence when the Dari language has been selected the macro is as follows:
_AREULang_ [l=prs] {
<option value="prs" selected>
ی
ر د
</option>
<option value="en">
English
</option>
<option value="ps">
وتښپ
</option>
}
Next comes two more collection specific macros. These are used to define cascading style classes
that ensure that the dropdown box appears correctly in the rendered HTML page. These are
_AREULangCSS_ and _AREUBarCSS_ and they just set up the name of CSS class that needs to be used.
The dropdown list is created as follows, again in a collection specific macro.
_AREULangOptions_ {
<div class=_AREULangCSS_>
<form name="PrefForm" method="get" action="/gsdl/cgibin/library">
<select name="l" onchange="updatel();">
_AREULang_
</select>
</form>
</div>
}
The dropdown list is placed in a form, this is an existing form used by the preference page and a
javascript macro is triggered if a new element is selected, onchange. The form is then wrapped in a
division tag, which allows the CSS class to be applied to the whole list. In the case of Dari, the style
class will be as follows:
span.langrtl
{
8 of 31
Greenstone, an Implementation in Afghanistan
backgroundcolor: #b0cab0;
float: left;
margintop: 22px;
marginleft: 5px;
}
This only differs from the style class used for the English dropdown in that the float directive is
left, on the English version the float is to the right.
Finally the language selection box needs to be placed on the page. That is done by using the
existing macro _optnavigationbar_ which defines the navigation bar that appears on every page.
_optnavigationbar_{
<div class="navbar">
<div class="_AREUBarCSS_">
_navigationbar_
</div>
_AREULangOptions_
</div>
}
This places the _navigationbar_ macro and our new _AREULangOptions_ macro into a couple of
HTML division tags which are formatted using CSS classes, navbar and the language specific class,
which for Dari will be barrtl. The final rendering of the navigation bar can
be seen in Illustration
6.
There is just one last area to cover. In Greenstone the macros are broken down into packages and
since this uses a Greenstone macro, _optnavigationbar_ it is important to define it in the correct
macro. This can be done by finding where the macro is originally defined, unfortunately this is a
task of scouring the macro files. The nav_css.dm defines this macro and from this file it is clear that
the macro belongs to the Global package, this means that in the extra.dm file the line package
global should appear before these definitions.
5.2.2 Query
The default simple query that Greenstone generates has two drop downlist that allow the user to
select what part of the document gets searched, and how the words are incorporated into the search,
which is either all of the words or some of the words. Finally, of course, there is the text entry area
and a search button. Very simple and efficient, however because we are blocking access to the
preferences page the query area requires a little more,
as shown in Illustration 4 Search Results. We
have added two dropdown menus from the preferences page. These allow the user to select how
many items are returned in the entire search and how many are returned on each page. This is done
with the following code added to the extra.dm file.
_smallquerybox_
{
<br /><input type="text" name="q" value="_cgiargq_" size="50"><br />
_preferences:textprefop_
<input type="submit" value="_textbeginsearch_">
}
The original _smallquerybox_ is defined in the query.dm file and belongs to the query package. It
Greenstone, an Implementation in Afghanistan
9 of 31
has the text box and the button on the same line. This is slightly modified by having the text box
then on a new line the two new dropdown list followed by the search button. The two dropdown
lists are defined in the _textprefop_ macro, however this macro is defined in a different package,
the preferences package, it is used in pref.dm, and so this can be inserted using the syntax,
_package:macro_ as follows, _preferences:textprefop_
We wanted to set the default values so that from over the LAN the maximum results were returned
whilst over the Internet the number of results returned per page were limited. This is done by
initially passing the values in through the URL. The value of the number of item returned is held in
the variable called m, whilst the number returned per page is held in the variable called o, so the
URL to the collection is modified with the following appended to it, &m=1&o=50.
5.2.3 About Page
We are using the about page as the front page to the collection from the web site and it needed to be
significantly modified so that it closely mirrored the look of the organisations web site. The
organisations web page is s
hown in Illustration 5 and the about page is s
hown in Illustration 6.
Illustration 5: The Organisation's web page
As can be seen there is a clear distinction between the two but there is also a familiar theme running
through the two sites. The difference is just to emphasis that the user has moved to a different site
but it is important to keep the look so that organisational image is maintained, and emphasised.
Illustration 6: The About Page
10 of 31
Greenstone, an Implementation in Afghanistan
The Greenstone page is built up in parts using macros to define each part of the page. To achieve
our aims of the page layout we rewrote the header and footer sections.
5.2.3.1 Header
The header sections before and after the rewrite can be seen in the following table. Both versions
have a banner section whilst the original version has an additional bannerextra section. In the
revised version the bannerextra section is incorporated within the banner section, this is because we
don't need the flexibility of the original version.
Illustration 7: The Heading section of each Greenstone page
As can be seen this macro uses three other macros, _imagecollection_, _pagebannerextra_ and
_AREUHome_. The location of these are s
hown in Illustration 7.
Original version in style.dm
Modified version in extra.dm
_pagebanner_ {
_pagebanner_ {
<! page banner (\\\\_style:pagebanner\\\\_) >
<div id="banner">
<div id="banner">
<div class="pageinfo">
<div class="collectimage">
<p class="bannerlinks">_globallinks_</p>
_imagecollection_
_bannertitle_
_pagebannerextra_
</div>
_AREUHome_
<div class="collectimage">
</div>
_imagecollection_
</div>
</div>
</div>
<div class="bannerextra">
_pagebannerextra_
</div>
<! end of page banner >
<! end of page banner >
}
}
The details of these three macros is shown later. This leaves the navigation bar which is defined as
follows:
Original version in nav_css.dm
Modified version in extra.dm
_optnavigationbar_{
_optnavigationbar_{
<div class="navbar">
<div class="navbar">
<p class="navbar">
<div class="_AREUBarCSS_">
_navigationbar_
_navigationbar_
</p>
</div>
</div>
_AREULangOptions_
Greenstone, an Implementation in Afghanistan
11 of 31
}
</div>
}
The original version wrapped the navigationbar in a paragraph which seemed to complicate the
layout of the navigation bar and the language options, so the revised version used HTML divisions
to separate them, this is covered in greater detail in the earlier section on the Language Selection.
5.2.3.2 Footer
The footer of each page is as follows:
This is set up by redefining the footer macro as shown below:
_footer_ {
_pagefooterextra_
</div>
<div class="footer">
<hr width=600px color=#234F33>
_AREUFullName1_
<script language="javascript" type="text/javascript">
var curdate = new Date()
var year = curdate.getFullYear()
document.write("© " + year)
</script>
_AREUFullName2_
</div>
}
This defines a simple javascript macro to garner and then print out the current year, with a
copyright symbol. The organisational name is either set up in the macro _AREUFullName1_ or
_AREUFullName2_, depending upon whether the name should appear before or after the date,
depending upon the language used, as shown below.
_AREUFullName1_ {}
_AREUFullName2_ {Afghanistan Research and Evaluation Unit}
_AREUFullName1_ [l=ps] {هرادا ینوځراوا ینړيڅ
د ناتسناغفاد،}
_AREUFullName2_ [l=ps] {}
5.2.3.3 Details
The image icon includes both the logo and the text, this ensures that the text appears in the correct
font and is correctly positioned across all browsers, on all systems and most importantly in all three
languages. Each logo has been translated and stored in a folder related to the language. The logo is
set up in the collect.cfg file and is done as follows:
# Location of Collection Icons
collectionmeta iconcollectionsmall [l=en] "_httpprefix_/collect/areu/images/en/areusm.png"
collectionmeta iconcollection [l=en] "_httpprefix_/collect/areu/images/en/areu.png"
collectionmeta iconcollectionsmall [l=prs] "_httpprefix_/collect/areu/images/prs/areusm.png"
collectionmeta iconcollection [l=prs] "_httpprefix_/collect/areu/images/prs/areu.png"
collectionmeta iconcollectionsmall [l=ps] "_httpprefix_/collect/areu/images/ps/areusm.png"
collectionmeta iconcollection [l=ps] "_httpprefix_/collect/areu/images/ps/areu.png"
This sets up the macro called _iconcollection_ and this is set up to proper HTML in the base.dm
12 of 31
Greenstone, an Implementation in Afghanistan
file in the macro called _imagecollection_, which is then used by the _pagebanner_ macro, as
shown in the section called Header, above.
_imagecollection_
{
_If_("_iconcollection_" ne ""
,
<a href="_httppageabout_">
<img class="icon"
src="_iconcollection_"
alt="_collectionname_"
title="_collectionname_">
</a>
,
_imagecollectionv_
)
}
The _pagebannerextra_ macro very simply sets up the organisation name and has been set up as
follows:
_pagebannerextra_ {<span class="titleltr">AREU Library Catalogue</span>}
_pagebannerextra_ [l=prs] {<span class="titlertl">هناخباتک یدن
ب هدر AREU</span>}
_pagebannerextra_ [l=ps] {<span class="titlertl">دAREU یدن
ب هدر نوتباتکد</span>}
The _AREUHome_ macro is a link to the organisations website, it ensures that it is consistent in the
language that is displayed, that is if in Greenstone it is currently displaying Dari then the web site
link will display the Dari version of the web site. It has been set up as follows:
_AREUText_ {AREU website}
_AREUText_ [l=prs] {تیاس بیو AREU}
_AREUText_ [l=ps] {دAREU هڼا
پ بیو}
_AREUDiv_ {titlertl}
_AREUDiv_ [l=prs] {titleltr}
_AREUDiv_ [l=ps] {titleltr}
_AREULang_ {&lang=en}
_AREULang_ [l=prs] {&lang=prs}
_AREULang_ [l=ps] {&lang=ps}
_AREUHome_ {<span class="_AREUDiv_"><a
href="http://www.areu.org.af/index.php?option=com_content&task=view&
id=11&Itemid=15_AREULang_">_AREUText_</a></span>}
5.2.4 Display Details
The details of each record is laid out as shown in
Illustration 8, the intended impression is for it to
have look of a classical catalogue card. The screen will display the details in the language of the
text, hence if the text is available in English then the details will be written up in English,
conversely if the text is published in Dari then the details will be presented in Dari. This ensures
that the researcher can search in their own language and find texts that will interest them. However,
it was also agreed that it would be useful for international researcher to know what is available in
the local languages, to assist with this notes can be added to provide a summary in English of Dari
Greenstone, an Implementation in Afghanistan
13 of 31
and Pushto texts.
All of the details that appear are created and managed by the separate program mentioned in section
4 that enables multiple librarians to manage the data simultaneously.
Illustration 8: Details of a catalogue entry
6 Burning CD's and backups
When we started work on this collection access to the Internet in Afghanistan was limited and so it
was important to be able to use other mechanisms to distribute the collection. This is where the
ability to export the collection to a CD or DVD was very attractive. By the time that this was tested
we had already made some design decisions which meant that this process didn't completely work.
Essentially we had a couple of directories that were holding collection data but were not standard
Greenstone directories and so these were not picked up by the export process. One directory was
called styles where the css sheets were stored, further investigation showed that the Greenstone
standard was to hold the style sheets in the images directory. The other directory held the uploaded
documents that were not being integrated into the Greenstone indexing process and they were
stored in a separate directory at the collection level called Upload.
This required a change to the exportcol.pl file. It needed to be modified in three separate areas,
thankfully though the changes were relatively simple. The first change was to be used when when
saving the collection on the CD, for the links to work in the documents that were part of the
collection it is necessary to mirror the file structure from the gsdl directory. This meant that an
extra directory was required, gsdl/collect. This code, shown below, creates the directory and a
variable, $colgsdldir, that can refer to this directory.
my $collectdir = &util::filename_cat ($gsdldir, "collect");
# A fix for AREU & ACKU collections *** Graeme April 2007
my $colgsdldir = &util::filename_cat ($gsdldir, "gsdl", "collect");
&util::mk_all_dir ($colgsdldir);
# End of a fix for AREU & ACKU collections *** Graeme April 2007
14 of 31
Greenstone, an Implementation in Afghanistan
The next change determines the data that needs to be copied from the collection onto the CD. As
already stated there are two extra directories that need to be added to the CD, styles and Upload,
which are both held at the root level of the collect directory.
#old directories
my $colldir = &util::filename_cat ($ENV{'GSDLHOME'}, "collect", $c);
my $colindexdir = &util::filename_cat ($colldir, "index");
my $coletcdir = &util::filename_cat ($colldir, "etc");
my $colimagesdir = &util::filename_cat ($colldir, "images");
my $colmacrosdir = &util::filename_cat ($colldir, "macros");
# new coll directory
my $newcoldir = &util::filename_cat ($collectdir, $c);
# A fix for AREU & ACKU collections *** Graeme April 2007
my $colstyledir = &util::filename_cat ($colldir, "styles");
my $coluploaddir = &util::filename_cat ($colldir, "Upload");
my $coltargetuploaddir = &util::filename_cat ($colgsdldir, $c);
&util::mk_all_dir ($coltargetuploaddir);
# End of a fix for AREU & ACKU collections *** Graeme April 2007
The final addition of code copies the contents of the style and Upload directories onto the CD.
&util::mk_all_dir ($newcoldir);
&util::cp_r ($colindexdir, $newcoldir);
&util::cp_r ($coletcdir, $newcoldir);
&util::cp_r ($colimagesdir, $newcoldir) if (e $colimagesdir);
&util::cp_r ($colmacrosdir, $newcoldir) if (e $colmacrosdir);
# A fix for AREU & ACKU collections *** Graeme April 2007
&util::cp_r ($colstyledir, $newcoldir) if (e $colstyledir);
&util::cp_r ($coluploaddir, $coltargetuploaddir) if (e
$coluploaddir);
# End of a fix for AREU & ACKU collections *** Graeme April 2007
Despite having limited Perl experience testing showed that these changes worked and now we have
the means to making the collection available throughout Afghanistan.
7 Conclusion
The aim of the AREU library, to gather and preserve relevant materials available both within
Afghanistan and abroad for use by national and international researchers, has been enhanced by its
adoption of Greenstone. It is a testament to this open source project that we were successfully able
to adapt it to our specific needs and to maintain the integrity of the organisation's image.
The data entry system that was developed for this implementation of Greenstone is a work in
progress and will be released to the community. With the conversion of the AREU catalogue to
Greenstone, it has made the diversity of Afghan works accessible to everyone.
Greenstone, an Implementation in Afghanistan
15 of 31
8 Appendix
Table of Appendices
8.1 collect.cfg............................................................................................................................ . . 16
8.2 extra.dm........................................................................................................... . . . . . . . . . . . .18
8.3 areu.css................................................................................................................................. . .23
8.4 areu.en.css..................................................................................................................... . . . . . 28
8.5 areu.prs.css......................................................................................................................... . . .29
8.6 areu.ps.css............................................................................................................... . . . . . . . . 29
8.7 HTML file 856.html.................................................................................................................29
8.8 Metadata.xml file associated with 856.html........................................................ . . . . . . . . . .30
8.1 collect.cfg
creator
[email protected]
maintainer
[email protected]public
true
buildtype
mg
beta false
indexes
document:text document:rfc1807.author document:rfc1807.title
document:rfc1807.keyword document:rfc1807.series document:rfc1807.id
indexoptions
casefold stem
#levels
document
#defaultlevel
document
defaultindex
document:text
plugin
GAPlug
plugin
HTMLPlug metadata_fields Title nolinks
plugin
MetadataXMLPlug
plugin
ArcPlug
plugin
RecPlug
classify
GenericList metadata rfc1807.author always_bookshelf_last_level
sort_leaf_nodes_using rfc1807.title partition_type_within_level constant_size
partition_size_within_level 50 sort_using_unicode_collation
classify
GenericList metadata rfc1807.title always_bookshelf_last_level
partition_type_within_level constant_size partition_size_within_level 50
sort_using_unicode_collation
classify
GenericList metadata rfc1807.corpauthor
always_bookshelf_last_level sort_leaf_nodes_using rfc1807.title
partition_type_within_level constant_size partition_size_within_level 50
16 of 31
Greenstone, an Implementation in Afghanistan
sort_using_unicode_collation
classify
GenericList metadata rfc1807.keyword always_bookshelf_last_level
sort_leaf_nodes_using rfc1807.title partition_type_within_level constant_size
partition_size_within_level 50 sort_using_unicode_collation
classify
Hierarchy metadata rfc1807.language
format SearchVList "<td
valign=top>[link][icon][/link]</td><td>{If}{[parent(All\\\\':
\\\\'):Title],[parent(All\\\\': \\\\'):Title]:}[link][Title][/link]</td>"
format VList "<td valign=top><nobr>[link][icon][/link]{if}{[numleafdocs] gt 1,
([numleafdocs])}</nobr></td><td
valign=top>[highlight]{Or}{[Title],Untitled}[/highlight]<i><small>{If}{[Date],<b
r>_textdate_[Date]}{If}{[NumPages],<br>_textnumpages_[NumPages]}{If}{[Source],<b
r>_textsource_[Source]}</small></i></td>"
format DocumentText "<h3>[Title]</h3>\\\\\\\\n\\\\\\\\n<p>[Text]"
format DocumentImages true
format DateList
"<td>[link][icon][/link]</td><td>[highlight]{Or}{[dls.Title],[dc.Title],[Title],
Untitled}[/highlight]</td><td>[Date]</td>"
format HList "[link][highlight][Title][/highlight][/link]"
format DocumentHeading "{Or}{[parent(Top):Title],[Title],untitled}"
format DocumentButtons "Detach|Highlight"
# Location of Collection Icons
collectionmeta
iconcollectionsmall [l=en]
"_httpprefix_/collect/areu/images/en/areusm.png"
collectionmeta
iconcollection [l=en]
"_httpprefix_/collect/areu/images/en/areu.png"
collectionmeta
iconcollectionsmall [l=prs]
"_httpprefix_/collect/areu/images/prs/areusm.png"
collectionmeta
iconcollection [l=prs]
"_httpprefix_/collect/areu/images/prs/areu.png"
collectionmeta
iconcollectionsmall [l=ps]
"_httpprefix_/collect/areu/images/ps/areusm.png"
collectionmeta
iconcollection [l=ps]
"_httpprefix_/collect/areu/images/ps/areu.png"
collectionmeta
collectionname [l=en] "AREU Library Catalogue"
collectionmeta
.document:text [l=en] "Keywords"
collectionmeta
.document:text [l=prs] "يديلک تاملک"
collectionmeta
.document:text [l=ps] "یك
ټ ینټلپد"
# Browse Categories translation
collectionmeta
.document:rfc1807.author [l=en] "Author"
collectionmeta
.document:rfc1807.author [l=prs] "فلءوم"
collectionmeta
.document:rfc1807.author [l=ps] "لاوكيل"
collectionmeta
.document:rfc1807.title [l=en] "Title"
Greenstone, an Implementation in Afghanistan
17 of 31
collectionmeta
.document:rfc1807.title [l=prs] "ناونع"
collectionmeta
.document:rfc1807.title [l=ps] "كيلرس"
collectionmeta
.document:rfc1807.keyword [l=en] "Subject Headings"
collectionmeta
.document:rfc1807.keyword [l=prs] "يعوضو
م ناونعرس"
collectionmeta
.document:rfc1807.keyword [l=ps] "هنوكيلرس يعرف"
collectionmeta
.document:rfc1807.series [l=en] "Series"
collectionmeta
.document:rfc1807.series [l=prs] "هلسلس"
collectionmeta
.document:rfc1807.series [l=ps] "هلسلس"
collectionmeta
.document:rfc1807.id [l=en] "Accession Number"
collectionmeta
.document:rfc1807.id [l=prs] "لسلس
م هرامش"
collectionmeta
.document:rfc1807.id [l=ps] "هريمش يس
پ هلرپ"
collectionmeta
.document:rfc1807.corpauthor [l=en] "Corporate Body"
collectionmeta
.document:rfc1807.corpauthor [l=prs] "يقوقح صخش"
collectionmeta
.document:rfc1807.corpauthor [l=ps] "تيصخش يقوقح"
collectionmeta
.document [l=en] "document"
receptionist "_gwcgi_?a=p&p=about&c=areu&m=1&o=20"
8.2 extra.dm
###############################################################################
#### package Global ####
###############################################################################
package Global
_bannertitle_{}
_navbarspacer_
{
<span style="marginleft: _widthtspace_px;"> </span>
}
_AREULang_ [l=prs] {
<option value="prs" selected>
ی
ر د
</option>
<option value="en">
English
</option>
<option value="ps">
وتښپ
</option>
}
_AREULang_ {
<option value="prs">
ی
ر د
</option>
<option value="en" selected>
English
</option>
<option value="ps">
وتښپ
</option>
}
18 of 31
Greenstone, an Implementation in Afghanistan
_AREULang_ [l=ps] {
<option value="prs">
ی
ر د
</option>
<option value="en">
English
</option>
<option value="ps" selected>
وتښپ
</option>
}
_AREULangCSS_ [l=prs] {langrtl}
_AREULangCSS_ [l=ps] {langrtl}
_AREULangCSS_ {langltr}
_AREUBarCSS_ [l=prs] {barrtl}
_AREUBarCSS_ [l=ps] {barrtl}
_AREUBarCSS_ {barltr}
_AREULangOptions_ {
<div class=_AREULangCSS_>
<form name="PrefForm" method="get" action="/gsdl/cgibin/library">
<select name="l" onchange="updatel();">
_AREULang_
</select>
</form>
</div>
}
_optnavigationbar_{
<div class="navbar">
<div class="_AREUBarCSS_">
_navigationbar_
</div>
_AREULangOptions_
</div>
}
_labeltitle_ [l=en] {Title} # Updated 14Mar2007 by graeme
_labeltitle_ [l=prs] {ناونع} # Updated 14Mar2007 by graeme
_labeltitle_ [l=ps] {كيلرس} # Updated 14Mar2007 by graeme
_texttitle_ [l=en] {Title} # Updated 14Mar2007 by graeme
_texttitle_ [l=prs] {ناونع} # Updated 14Mar2007 by graeme
_texttitle_ [l=ps] {كيلرس} # Updated 14Mar2007 by graeme
_labelauthor_ [l=en] {Author} # Updated 14Mar2007 by graeme
_labelauthor_ [l=prs] {فلءوم} # Updated 14Mar2007 by graeme
_labelauthor_ [l=ps] {لاوكيل} # Updated 14Mar2007 by graeme
_textauthor_ [l=en] {Author} # Updated 14Mar2007 by graeme
_textauthor_ [l=prs] {فلءوم} # Updated 14Mar2007 by graeme
_textauthor_ [l=ps] {لاوكيل} # Updated 14Mar2007 by graeme
_labelcorpauthor_ [l=en] {Corporate Body} # Updated 14Mar2007 by graeme
_labelcorpauthor_ [l=prs] {يقوق
ح صخش} # Updated 14Mar2007 by graeme
_labelcorpauthor_ [l=ps] {تيصخ
ش يقوقح} # Updated 14Mar2007 by graeme
_textcorpauthor_ [l=en] {Corporate Body} # Updated 14Mar2007 by graeme
_textcorpauthor_ [l=prs] {يقوق
ح صخش} # Updated 14Mar2007 by graeme
_textcorpauthor_ [l=ps] {تيصخ
ش يقوقح} # Updated 14Mar2007 by graeme
_labelkeyword_ [l=en] {Subject Headings} # Updated 14Mar2007 by graeme
_labelkeyword_ [l=prs] {يعوضو
م ناونعرس} # Updated 14Mar2007 by graeme
Greenstone, an Implementation in Afghanistan
19 of 31
_labelkeyword_ [l=ps] {هنوكيلر
س يعرف} # Updated 14Mar2007 by graeme
_textkeyword_ [l=en] {Subject Headings} # Updated 14Mar2007 by graeme
_textkeyword_ [l=prs] {يعوضو
م ناونعرس} # Updated 14Mar2007 by graeme
_textkeyword_ [l=ps] {هنوكيلر
س يعرف} # Updated 14Mar2007 by graeme
_labellanguage_ [l=en] {Language} # Updated 14Mar2007 by graeme
_labellanguage_ [l=prs] {ناسل} # Updated 14Mar2007 by graeme
_labellanguage_ [l=ps] {هبژ} # Updated 14Mar2007 by graeme
_textlanguage_ [l=en] {Language} # Updated 14Mar2007 by graeme
_textlanguage_ [l=prs] {ناسل} # Updated 14Mar2007 by graeme
_textlanguage_ [l=ps] {هبژ} # Updated 14Mar2007 by graeme
###############################################################################
#### package about ####
###############################################################################
_AREUEmail_ {<a href="mailto:
[email protected]">
[email protected]</a>}
_AREUAboutText_ {This online bibliographic catalogue lists materials held in hardcopy in
AREU’s research library in Kabul, Afghanistan. AREU’s collection includes books,
pamphlets, government publications, periodicals, maps, CDs, DVDs, etc. in English, Dari,
Pashto and other languages. When we know these materials are available for download on
the internet we provide a URL link in the bibliographic record. Some important materials
not available elsewhere are made available here for download. _Global:collectionextra_ If
you see any entries that need correcting or find that URLs no longer work please
email:_AREUEmail_.}
_AREUAboutText_ [l=prs] {
تارش ن،یتلود تارش ن،هلاسر ،بات
ک لك
ش ه بهكیداو
م هم
ه ،دراد تيعقو
م ناتسناغف ا،لباکرد ه
ک ناتسناغف ایبایزرا
و قيقح تدحا
و هناخباتکرد
ر
د اهن
آ یدنب هد
ر تس ل،تسا هديس
ر رش نه بهريغ
و یسيلگن ا،وتشپ ،یرد یاهناس له به
ک هريغو ،ید یو ی
د ،ید ی
س ،ا
ه هشق ن،لسلسم
ندرو
آ تسد بیار با
م سپ تس ادوجوم ندوم ندو لنووا
د یار بتیا
س بیو ر
د داو
م نیا ه
ک مينادي
م هكيتق
و .دشابي
م دوجوم تیا
س بیو نیا
هطبا
ر کی اهنآ URL اج با
ج اجنیار
د ندومن دول نووا
د یارب ميناوتيمن هدرو
آ تسد برگی
د یاها
ج ز اهكی امه
م داوم یضعب
و .میدوم نهيهت
می اهدرک.
_Global:collectionextra_
هطبا
ر ای
و دشا بیطل
غ ماد
ک ا
ه دراكی
ر ز ایكیر
د رگا URL ديتسرف بليمیا سرد
آ نیا ه بافط لدن
ک یم نراک.
_AREUEmail_
}
_AREUAboutText_ [l=ps] {
یتلو
د ،یلاسر ،هنوبات
ک هك لداو
م هغ
ه لو ټ،یرل تيعقوم ی
ک ناتسناغف ا،لبا
ک ه پی
چ ی
ک نوتبات
ک ه پیراد ا
د ینوځراوا ینړيڅ
د ناتسناغفاد
یوغهد یوش هراپ
خ وب
ژ ورو نو ایزیرګنا ،یرد ،وتښپ ه پی
چ رو نیسا
د و اینای
ډ ی
و یډ ،ینایډ ی
س ،یشخن ،ینورپخ یتبو ن،ینورپخ
،ید دوجوم ی
ک هڼاپ بیو هپ هراپ لولوک هتروپ
د داوماد ی
چ وږيهوپ ږنوم ی
چ هل
ک .ی
ش یلدي لی
ک هڼا پبیو یدپ یدنب هد
ر یرادباتکد
د هوی و
م هراپ لیوغهدون URL هخ
څ یا
ځ لبد ی
چ داو
م مهم یني
ځ و ا.ینیو
و دن
س هغام
ه وڅر ته
د یړ
ک هړو
ج ی
ک یدنب هد
ر ه پهكیړا
ی
د یړ
ک یا
ځ ه پیا
ځ هتل
د هراپ لولو
ک هتروپ
د ږنوم ،یادي
ک هسلر تیشن.
_Global:collectionextra_
د ا یو ا،ینیوو یطل
غ همو
ک ی
ک ډراكی
ر موک ه پوسات هک URL یوتساوار کيلانښیر بهت پیدپ یړکو ینابره
م یړكنو را
ک هكیړا:
_AREUEmail_
}
package about
_bannertitle_{}
_textabout_ {
<div class="section">
<h3>_textabcol_</h3>
_AREUAboutText_</div>
}
###############################################################################
#### package query ####
###############################################################################
package query
_bannertitle_{}
_smallquerybox_
{
20 of 31
Greenstone, an Implementation in Afghanistan
<br /><input type="text" name="q" value="_cgiargq_" size="50"><br />
_preferences:textprefop_
<input type="submit" value="_textbeginsearch_">
}
###############################################################################
#### package preferences ####
###############################################################################
package preferences
_bannertitle_{}
###############################################################################
#### package Style ####
###############################################################################
package Style
_globalscripts_
{
<script language="javascript" type="text/javascript">
_If_(_pagescriptextra_,_pagescriptextra_)
_preferences:pagescriptextra_
</script>
}
_AREUFullName1_ {}
_AREUFullName2_ {Afghanistan Research and Evaluation Unit}
_AREUFullName1_ [l=ps] {هراد
ا ینوځراوا ینړيڅ
د ناتسناغفاد،}
_AREUFullName2_ [l=ps] {}
_footer_ {
_pagefooterextra_
</div>
<div class="footer">
<hr width=600px color=#234F33>
_AREUFullName1_
<script language="javascript" type="text/javascript">
var curdate = new Date()
var year = curdate.getFullYear()
document.write("© " + year)
</script>
_AREUFullName2_
</div>
}
_AREUcss_
{
<link rel="stylesheet" href="_httpcollection_/styles/areu.en.css"
type="text/css" charset="UTF8" media="screen">
}
_AREUcss_ [l=prs]
{<link rel="stylesheet" href="_httpcollection_/styles/areu.prs.css"
type="text/css" charset="UTF8" media="screen">
}
_AREUcss_ [l=ps]
{<link rel="stylesheet" href="_httpcollection_/styles/areu.ps.css"
type="text/css" charset="UTF8" media="screen">
}
_csslink_
{
_AREUcss_
Greenstone, an Implementation in Afghanistan
21 of 31
<link rel="stylesheet" href="_httpcollection_/styles/areu.css"
type="text/css" charset="UTF8" media="screen">
}
_cssfilelink_
{
<style type="text/css">
div.pageinfo \\\\{ backgroundimage: url("_httpcollection_/images/en/back_all.png");\\\\}
div.collectimage \\\\{ backgroundimage: url("_httpcollection_/images/en/back_all.png");\\\\}
</style>
}
_cssfilelink_ [l=prs]
{
<style type="text/css">
div.pageinfo \\\\{ backgroundimage: url("_httpcollection_/images/prs/back_all.png");\\\\}
div.collectimage \\\\{ backgroundimage: url("_httpcollection_/images/prs/back_all.png");\\\\}
</style>
}
_cssfilelink_ [l=ps]
{
<style type="text/css">
div.pageinfo \\\\{ backgroundimage: url("_httpcollection_/images/ps/back_all.png");\\\\}
div.collectimage \\\\{ backgroundimage: url("_httpcollection_/images/ps/back_all.png");\\\\}
</style>
}
_cssheader_
{
_csslink_
_cssfilelink_
}
_AREUText_ {AREU website}
_AREUText_ [l=prs] {تیا
س بیو AREU}
_AREUText_ [l=ps] {دAREU هڼاپ بیو}
_AREUDiv_ {titlertl}
_AREUDiv_ [l=prs] {titleltr}
_AREUDiv_ [l=ps] {titleltr}
_AREULang_ {&lang=en}
_AREULang_ [l=prs] {&lang=prs}
_AREULang_ [l=ps] {&lang=ps}
_AREUHome_ {<span class="_AREUDiv_"><a
href="http://www.areu.org.af/index.php?option=com_content&task=view&id=11&Itemid=15_AREUL
ang_">_AREUText_</a></span>}
_pagebanner_ {
<div id="banner">
<div class="collectimage">
_imagecollection_
_pagebannerextra_
_AREUHome_
</div>
</div>
<div class="bannerextra">
</div>
<! end of page banner >
22 of 31
Greenstone, an Implementation in Afghanistan
}
_pagebannerextra_ {<span class="titleltr">AREU Library Catalogue</span>}
_pagebannerextra_ [l=prs] {<span class="titlertl">هناخبات
ک یدنب هدر AREU</span>}
_pagebannerextra_ [l=ps] {<span class="titlertl">دAREU یدنب هدر نوتباتکد</span>}
###############################################################################
#### package document ####
###############################################################################
package document
_globallinks_{}
_textheader_ {
_cgihead_
_htmlhead_
<div id="page">
<div id="banner">
<div class="collectimage">
_imagecollection_
_pagebannerextra_
_Style:AREUHome_
</div>
</div>
<div class="bannerextra">
</div>
<! end of page banner >
}
8.3 areu.css
/* default stylesheet for greenstone. */
#page {
width:770px;
marginleft:auto;
marginright:auto;
}
#banner {
margin: 0;
padding:0;
width: 100%;
}
/* this div contains the bannerlinks and bannertitle paragraphs */
div.pageinfo {
float: right;
textalign: right;
padding: 0;
margin:0;
width: 100%;
}
/* home, help, preferences links */
p.bannerlinks {
margin:0;
padding:0;
}
Greenstone, an Implementation in Afghanistan
23 of 31
span.titleltr
{
padding: 0;
margin:0;
fontsize: 30px;
float: left;
textalign: bottom;
}
span.titlertl
{
padding: 0;
margin:0;
fontsize: 30px;
float: right;
textalign: bottom;
}
span.titleltr a
{
fontsize: 20px;
}
span.titlertl a
{
fontsize: 20px;
}
/* make sure this is shown under the other divs (which may be floating) */
div.bannerextra
{
clear: both;
}
/* the image for the collection, shown in the banner */
div.collectimage {
float: left;
padding:0;
margin:0;
border:0;
}
img
{
padding:0;
margin:0;
border: 0;
}
span.langltr
{
backgroundcolor: #b0cab0;
24 of 31
Greenstone, an Implementation in Afghanistan
float: right;
margintop: 22px;
marginright: 5px;
}
span.langrtl
{
backgroundcolor: #b0cab0;
float: left;
margintop: 22px;
marginleft: 5px;
}
/* bg image set in style macro */
div.navbar {
backgroundcolor: #b0cab0;
width: 770px;
whitespace: nowrap;
fontweight: bold;
texttransform: capitalize;
padding: 5px 0;
margin: 0;
height: 22px;
}
div.barltr { /* opt navbar text inside a divbar div */
float: left;
backgroundcolor: #b0cab0;
textalign: left;
height: 22px;
width: 700;
}
div.barrtl { /* opt navbar text inside a divbar div */
float: right;
backgroundcolor: #b0cab0;
textalign: right;
width: 700;
}
div.langltr
{
backgroundcolor: #b0cab0;
float: right;
padding:0;
margin:0;
marginright: 5px;
width: 70;
margintop: 3px;
}
div.langrtl
{
backgroundcolor: #b0cab0;
float: left;
Greenstone, an Implementation in Afghanistan
25 of 31
padding:0;
margin:0;
marginleft: 5px;
width: 70;
margintop: 3px;
}
div.langltr form
{
backgroundcolor: #b0cab0;
padding:0;
margin:0;
}
div.langrtl form
{
backgroundcolor: #b0cab0;
padding:0;
margin:0;
}
/* anchors */
a {
margin: 0px;
padding: 0px;
fontweight: 400;
lineheight: 20px;
textdecoration: none;
color: #234F33;
border: none;
}
a:hover {
textdecoration: underline;
}
/* bg image set in style macro */
a.navlink {
verticalalign: top;
padding: 0 5px 0 5px;
backgroundcolor: #b0cab0;
color: #234F33;
fontweight: bold;
}
/* bg image set in style macro */
a.navlink_sel {
verticalalign: top;
padding: 0 5px 0 5px;
backgroundcolor: #b0cab0;
color: #FFFFFF;
fontweight: bold;
}
a.navlink_sel:hover {
26 of 31
Greenstone, an Implementation in Afghanistan
textdecoration: none;
}
/* for the nav_ns4.dm macro only (for netscape4 support) */
a.navlink_ns4 {
backgroundcolor: #FFFFFF;
}
a.navlink_sel_ns4 {
backgroundcolor: #FFFFFF;
}
span.button
{
margin:0 0 0 5px;
whitespace: nowrap;
verticalalign: top;
padding: 0 5px 0 5px;
backgroundcolor: #234F33;
float:right;
texttransform: lowercase;
}
span.button a{
color: #FFFFFF;
fontweight: bold;
}
div.footer
{
height: 40px;
width:100%;
fontsize: 10px;
textalign: center;
}
div.rtl {backgroundcolor: transparent; color: #234F33; direction: rtl;}
div.ltr {backgroundcolor: transparent; color: #234F33; direction: ltr;}
table.bdr {borderwidth: 2px; borderstyle: solid;}
table.bdr td {borderwidth: 1px;borderstyle: none; textalign: center;}
table.nobdr {borderwidth: 1px; borderstyle: none;}
td.head {fontweight: bolder; verticalalign: top; borderwidth: 1px; border
style: solid none none none;}
td.body {borderwidth: 1px; borderstyle: solid none none none;}
/* this contains everything all the other divs */
/* blankiconbar */
div.section p.bar {
textalign: center;
}
Greenstone, an Implementation in Afghanistan
27 of 31
/* bg image set in style macro */
div.divbar { /* for "select a collection" */
fontfamily: arial;
fontsize: 10pt;
fontweight: bold;
border: 0;
width: 100%; /* for ns4 */
}
span.highlight {
background: #ffff77;
}
span.textselect { whitespace: nowrap; }
div.document {
padding: .2em 0 0 0;
clear: both;
backgroundcolor: transparent;
}
div.documenttext { clear: both;} /* come after any floating divs */
div.searchresults{
padding: 0;
margin: .2em 0 .2em 0;
backgroundcolor: transparent;
}
div.nextresult{
display: inline;
textalign:right;
float:right;
width:50%
}
div.prevresult{
display:inline;
float:left;
width:50%;
}
div.heading_image {
padding: 0;
margin:0;
float: left;
} /* optional cover image */
8.4 areu.en.css
body
{
28 of 31
Greenstone, an Implementation in Afghanistan
margin: 0;
padding:0;
backgroundcolor: #FFFFFF;
fontfamily: "Trebuchet MS", sansserif;
fontsize: 13px;
color: #234F33;
}
8.5 areu.prs.css
body
{
margin: 0;
padding:0;
backgroundcolor: #FFFFFF;
fontfamily: "Trebuchet MS", sansserif;
fontsize: 14px;
color: #234F33;
}
8.6 areu.ps.css
body
{
margin: 0;
padding:0;
backgroundcolor: #FFFFFF;
fontfamily: "Trebuchet MS", sansserif;
fontsize: 14px;
color: #234F33;
}
8.7 HTML file 856.html
<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta httpequiv="contenttype" content="text/html; charset=UTF8">
<title>Pain The unromantic carpet bazaar of Andkhoy / Adam... 2002?]</title>
<link rel="stylesheet" type="text/css" href="css/areu.css">
</head>
<body>
<div class="ltr">
<table class="nobdr">
<tr valign="top">
<td>
<table class="bdr">
<tr valign="top">
<td class="head">Call Number</td>
</tr>
<tr valign="top">
<td class="body">p381.09581
<br />(1812)
<br />P144
<br />[2002?]
<br />+
<br />PDF
<br />(38 KB)</td>
</tr>
<tr>
<td class="file"><a href="/gsdl/collect/areu/import/../Upload/856/Pain_The Unromantic Carpet
Greenstone, an Implementation in Afghanistan
29 of 31
Bazaar of Andkhoy.doc" target="_blank"><img src="/gsdl/images/imsword.gif" alt=icon><br /></a></td>
</tr>
</table></td>
<td>
<table class="nobdr">
<tr valign="top">
<td class="head">Author</td>
<td class="body">Pain, Adam.
<br />Moharram Ali.</td>
</tr>
<tr valign="top">
<td class="head">Title</td>
<td class="body">The unromantic carpet bazaar of Andkhoy / Adam Pain and Moharram Ali.</td>
</tr>
<tr valign="top">
<td class="head">Imprint</td>
<td class="body">[Kabul : Afghanistan Research and Evaluation Unit, Save the Children (US),
2002?].</td>
</tr>
<tr valign="top">
<td class="head">Physical Description</td>
<td class="body">4 p. ; 30 cm.</td>
</tr>
<tr valign="top">
<td class="head">Subject Headings</td>
<td class="body">Rug and carpet industry – Afghanistan – Faryab (Province) – Andhkoy.
<br />Bazaars (Markets) – Afghanistan – Faryab (Province) – Andhkoy.
<br />Afghanistan – Faryab (Province) – Andhkoy – Economic conditions.</td>
</tr>
<tr valign="top">
<td class="head">Accession Number</td>
<td class="body">0735</td>
</tr>
<tr valign="top">
<td class="head">Language</td>
<td class="body">English</td>
</tr>
<tr valign="top">
<td class="head">Copies</td>
<td class="body">1</td>
</tr>
<tr valign="top">
<td class="head">Record Number</td>
<td class="body">856</td>
</tr>
</table></td>
</tr>
</table></div>
</body>
</html>
8.8 Metadata.xml file associated with 856.html
The XML file of the meta data extracts certain elements of the HTML file which
is used to create the search indices.
<?xml version="1.0" encoding="UTF8"?>
<!DOCTYPE DirectoryMetadata SYSTEM
"http://greenstone.org/dtd/DirectoryMetadata/1.0/DirectoryMetadata.dtd">
<DirectoryMetadata>
<FileSet>
<Description>
<Metadata name="rfc1807.author" mode="accumulate">Pain, Adam.</Metadata>
<Metadata name="rfc1807.author" mode="accumulate">Moharram Ali.</Metadata>
<Metadata name="rfc1807.title" mode="accumulate">The unromantic carpet bazaar of Andkhoy / Adam
Pain and Moharram Ali.</Metadata>
<Metadata name="rfc1807.keyword" mode="accumulate">Rug and carpet industry – Afghanistan –
Faryab (Province) – Andhkoy.</Metadata>
<Metadata name="rfc1807.keyword" mode="accumulate">Bazaars (Markets) – Afghanistan – Faryab
(Province) – Andhkoy.</Metadata>
30 of 31
Greenstone, an Implementation in Afghanistan
<Metadata name="rfc1807.keyword" mode="accumulate">Afghanistan – Faryab (Province) – Andhkoy –
Economic conditions.</Metadata>
<Metadata name="rfc1807.id" mode="accumulate">0735</Metadata>
<Metadata name="rfc1807.language" mode="accumulate">English</Metadata>
</Description>
<FileName>.*</FileName>
</FileSet>
</DirectoryMetadata>
Greenstone, an Implementation in Afghanistan
31 of 31
Document Outline