4.5 Creating Fedora Collections in Drupal using Islandora
To add a collection to a repository, the user needs to go to the “Add” tab and it will offer options of different content modules. By default the installed content module is a collection; this is also a parent class for all other collection content modules. In the Figure 4.7 WSSU main page is a name of the collection I have added to the repository. An added collection can have a thumbnail. So, I have cropped the full size image to a thumb size image and added it as a datastream under the name TN. After adding the TN datastream, I got the thumbnail of the WSSU main page repository displayed in       Figure 4.7.

Figure 4.7. Adding a collection to a repository
The Islandora demo collection comes with a collection of some popular collections like image and pdf. This provides an option for users to add collections of various available types without creating their own collection content types. Here I have created a collection of type “image” with a name of Photography and have included a thumbnail datastream from the Object detail option.
Figure 4.8. Adding an Image collection to the Islandora Demo Collection

Figure 4.9.  Default datastreams
Adding an image to a collection is easy. Any number of images can be added by going to the “Add” tab. This will give an option to upload and give metadata about the image like title, description, date, etc. But the default view of a collection of images did not have thumbnail view of images in the collection like in the Figure 4.10.
Figure 4.10. Collection with no thumbnails
I found out that this can be solved by adding the ImageAPI module to the Drupal installation. This module does not provide any functionality to Drupal; it is only used by the Fedora repository. This module converts every image in a collection into a small size image and shows it as a thumbnail for the high pixel image.
Figure 4.11.  Configuring ImageAPI module
After configuring the ImageAPI module, a thumbnail view was shown for every added image.
Figure 4.12. Before and after the installation of ImageAPI
The ImageAPI module only works when the collection has related datastreams ingested to it. In addition to the RDF Statements and Dublin Core Record datastreams, I have added ‘Thumbnail’, ‘Collection view’ and ‘Collection policy’ datastreams to the object (Demo:42). I downloaded these streams from the Smiley demo collection, which is included in the Islandora distribution (it is in the ‘Detailed list of contents’ screen of the opened collection).  Figure 4.13 shows all datastreams for the object “Image Collection” including the three newly added datastreams. In the Figure 4.12, the first three images have been added before the installation of the ImageAPI module and the next two after its installation and adding the corresponding datastreams.
Figure 4.13.  Added Thumbnail, Collection view and Collection policy datastreams
We can also view the created (in the Drupal interface) objects with their datastreams and relationships directly in the Fedora GUI. In the next section, we inspect an object of the created Image Demo Collection – the object with an identifier (PID) Demo: 42.
4.5.1 Viewing objects in Fedora GUI
In order to get an access to the Fedora repository, a user has to have administrative privileges. The user can login as a Fedora Administrator by using the password provided during the Fedora installation.
Figure 4.14.  Fedora Login Page
To view a digital object in the Fedora interface, the user has to provide the PID for that object. A PID is a unique, persistent identifier for a Fedora digital object. 
Figure 4.15.  Fedora PID dialogbox
In the Figure 4.16 a digital object with PID demo: 42 is opened and Fedora gives a detailed list of the metadata about this object. The “active” state means that this object is in a running mode and the user can access it by search and view commands.
Figure 4.16. Metadata about a Fedora object
The Figure 4.17 shows the interface after clicking on the Datastream tab, which gives a list of all the datastreams associated with the object. This object is an Image object and it can be viewed in three different sizes (Full size, Medium size and Thumbnail size).
Figure 4.17. Full size view of image with FULL_SIZE datastream

Figure 4.18. Thumbnail size view of image with TN datastream
The user can also modify digital objects from the Fedora interface. All changes will be reflected in the Drupal interface. The Figure 4.19 shows a RELS-EXT  datastream of an Image object. This is a default datastream coming with every object and it allows adding relations to the object. This is the main semantic datastream which provides an RDF triple with Subject, Predicate and Object. Here in this Figure 4.19, demo:42 is a Subject and it is a member of the islandora:7 object. 
Figure 4.19. RDF Triple of Digital Object

DC datastream is a Dublin Core Datastream. Dublin Core is an ontology, which includes basic metadata describing an object, such as title, description, date, subject, etc.
Figure 4.20. Dublin Core Datastream
All changes (additions, deletions, and updates of objects) made through either the Fedora GUI or the Drupal interface are performed on the Fedora repository that is the common backend of both, and so are reflected in both interfaces.
4.5.2 Creating Content Model
The Islandora Content Modeller module is not included in the Islandora repository, but it can be installed separately from the Drupal site. This tool is useful in creating and managing datastreams. Once installed and configured, the user can access it from the Drupal’s Content Management menu. At opening, it will give the user a view of the installed collections as a tree on the left hand side of the screen; on the right hand side are the installed content models.
Figure 4.21. Islandora Content Modeller
Creating content models using the content modeller module should be easy, but as with the Islandora repository, this module is also in an initial phase of development. I have tried it many times: sometimes it works, and sometimes it does not work. The ‘Plus’ icons at the right corner of the allowed content models give user the ability to create new content models. The user can also create content model from a Child Collection’s ‘Plus’ icon as shown in the Figure 4.22.
Figure 4.22. Creating a content model
By clicking on the Plus icon of the Child Collection, the user will get an option to enter the PID, Name, and Initialized Collection Policy.  The Initialized Collection Policy will further give options such as to copy the content model from a previously created content model. Here I have created a content model for bookmarks with PID as “bkmark:cm”.
Figure 4.23. Creating a Content Model
To define a namespace for PIDs, it is required to add the name of the namespace in the ‘allowed namespace fields’ in Islandora configuration (see the Figure 4.24 with the added namespace “bkmark:”).
Figure 4.24. PID must be present in the ‘PID namespace allowed’ field.
After passing this phase, the user can define relationships with other collection members, a namespace, fields and labels. For example, a relationship for the Bookmark content model is that it is a member of the default collection. 
Figure 4.25. Creating a content model
After saving a content model, the user can navigate to the Digital repository to add a collection that belongs to the created content model. The interface will show all the installed content models in the list. The Figure 4.26 shows the Bookmark content model in the list.
Figure 4.26. Adding the created content model
4.5.3 XML Form builder
XML Form builder is an Islandora module which provides way for users to create, edit, and copy forms. Required by this module are the modules listed below:
·         Objective Forms
·         Islandora XML Form API
·         Islandora XML Schema API
·         Islandora XML Form Elements
·         Islandora XML Form Builder
·         Islandora XML Forms
·         Islandora Content Model Forms
These modules can be downloaded from the Islandora site and should be installed and configured correctly in order to activate the Form builder module.
XML Form builder has compatibility issues with the Windows operating system. I installed and configured it many times but it did not work. After having conversations on the Islandora mailing list and with input from the people involved in development of Islandora, I found out that for the Windows operating system I need to change the name of the “ext-4.0.2a” folder located in builder/lib to “ext”; Windows does not do symlinks, so renaming “ext-4.0.2a” to “ext” worked. The Form builder comes with a GUI, which helps users to add, delete, and manipulate form elements.
Figure 4.27.  XML Form builder

Once installed and configured, users can open the XML Form builder from Drupal’s content management menu. Users can import and export forms from this module. Figure 4.28 below shows a display view of the Form builder. It comes with a default form, which includes basic features of the Dublin Core ontology, such as Title, Creator, Description, etc. Users can use the View button to view the contents of the default form.
A user can also copy the default form and change its name as they wish. Figure 4.29 shows copying the default form and changing its name to ‘bookmark_copied’. By inspecting the new form with the View button, we can see that it contains the same form elements as the default form (Figure 4.28).
Figure 4.28. View option of the XML Form builder

Figure 4.29. Copy option of the XML Form builder
Once the default form is copied to another form, users can edit the copied form - clicking the Edit button of the Form builder brings the Edit Form screen as shown in Figure 4.30. The options on the left hand side panel allow users to manipulate the presented form. Users can add, copy, paste and delete elements to get the desired form. 
Figure 4.30. Edit property of the XML Form builder
After editing and saving the form, the user should link it to the content model they want to associate it with. To do that they have to go to the Administrator menu and then follow the Form Association link. This will bring the options shown in Figure 4.31.
Figure 4.31. Form association module



 ISLANDORA--WampDrupal--Fedora KIT




Errors while installing gsearch                                                                                                                                       Errors while installing ISLANDORA


Although the number of open content educational repositories and the resources in them is steadily increasing, they still don’t get the use they deserve.  Among the main reasons for the underuse of the Open Educational Resources (OER) repositories is the difficulty of finding them and for searching and sharing content of interest stored in them. The recent advancements in the Web development hold promises for improving the repository discoverability, searchability, and shareability. From one side, the Semantic Web offers technologies for conceptual structuring, annotating, and indexing of educational resources that allow for efficient semantic retrieval. From another side, the increasingly popular Social Web offers means for sharing, distributing, popularizing, promoting and recommending online resources. The goal of this work is to investigate the possibilities for combining the benefits of these two approaches and for designing a framework of a content management system that supports both.
We explored different options and software and decided to focus on an attempt to combine the popular content management system Drupal with the a Fedora Commons repository, which would provide a Drupal-based front end enabling an intuitive interface, and rich functionalities for supporting individual users and communities and a Fedora-based backend that enables the use of Semantic Web technologies. To test our approach we decided to develop a bookmarking application. 
The thesis is organized as follows. In Chapter 2, after a brief discussion of the Semantic Web technologies, we present the Fedora Commons framework, which utilizes such technologies for creating digital repositories.  Fedora (Flexible Extensible Digital Object Repository Architecture) is architecture for storing, managing, and accessing digital content in the form of digital objects. Fedora is a semantically rich environment which uses features like ontologies, RDF, RDF Schema, OWL, and the Semantic Web Query language. Chapter 3 presents the content management system Drupal and the Social Web functionalities it supports. Chapter 4 describes the integration of Drupal with Fedora Commons mentioning some possible approaches and presenting in detail the approach we have chosen - through the use of the software Islandora. Islandora is a Drupal module which can be linked to Fedora repository. Chapter 5 gives a detailed view on the prototype development of the Drupal-Fedora based Bookmark repository, including  user requirements,  system architecture design, and implementation.

ISLANDORA installation


1. Step by Step installation Guide RUNNING DRUPAL WITH WAMP

Once you have Drupal installed and properly configured with:
  • Clean URLs enabled
  • The Drupal file system set to public (Administer > Site configuration > File system)
2.  Step by Step Guide: Installing Fedora Commons Repository

3.  Step by Step installation Guide: FedoraGSearch (with ant)  

4.    Install the DrupalFilter servlet filter
        Installation Steps
  1.  Download the latest version of the Drupal Servlet Filter from the Islandora 
       github distribution site (
       ( I am using fedora 3.4.1 copied drupalFilter3.4)
        and placed it in $FEDORA_HOME/tomcat/webapps/fedora/WEB-INF/lib


       Ensure you choose the correct jar file for    a) your version of Fedora and                 b) your authentication type (FeSL or legacy).
  2.   Make the Fedora Repository aware of the new filter for either a) Legacy  
        Authentication, or b) FeSL Authentication: Mine is Legacy Authentication

   a )   New XML elements must be added in order to configure Fedora's 
           servlet filtering.
          Edit the web.xml file located in $FEDORA_HOME/tomcat/webapps
          /fedora/WEB-INF/ to include a reference to the Drupal Servlet Filter.
  • A  <filter> element immediately after the XmlUserfileFilter filter element and
  • A  <filter-mapping> element  after the XmlUserfileFilter filter-mapping element.
 ================ And here  =====================


b)   Enable the Drupal Servlet Filter by creating the file filter-drupal.xml 
       in $FEDORA_HOME/server/config.

 BE CAREFUL in some documentations it is filter_dupal.xml or filter-dupal.xml

      Modify the attributes of the <connection>  tag to match the server, port, database name, username and password of your site's Drupal database. (copy and paste if getting wrong user or pass error, red text is my working filter-dupal.xml file )

<?xml version="1.0" encoding="UTF-8"?>
<!--Place this file in $FEDORA_HOME/server/config

Drupal connection info for the FilterDrupal servlet filter.
For multisite drupal installs you can include multiple connection elements.
We will query all the databases and assume any user in any drupal db with
the same username and password are the same user.

We will gather all roles for that user from all databases. This is a
potential security risk if a user in one drupal database has the same
username and password as another user in a seperate drupal database.
We are also assuming all drupal dbs to be mysql. -->
    <!-- The values to be inserted below can be found in your drupal site's
settings.php file at the line:

$db_url = 'mysqli://root:root@localhost/fedora3';

Note that 3306 is the default mysql port.
    <connection server="localhost" port="3306" dbname="drupal" user="root" password="mypass">
        <!--Different sql statement for each connection. This is for drupal
multisites that are setup using one database with table prefixes.
We don't do this but some people might.-->
       SELECT DISTINCT u.uid AS userid, AS Name, u.pass AS Pass, AS Role FROM (users u LEFT JOIN users_roles ON u.uid=users_roles.uid) LEFT JOIN role r ON r.rid=users_roles.rid WHERE AND u.pass=?;

5.   Stop and restart Fedora to enable the Drupal Servlet Filter.

6.   Test the Drupal Servlet Filter by accessing your Fedora Admin client 
      using your Drupal login credentials.
       (mine says user name admin 
                               pass  5dd131f053a41ea53b8c4553089d83f1 
        use this to access fedora )

7.   Edit the fedora-users.xml file.  Optional but recommended, if you want to
      allow anonymous access to  Fedora through Islandora this will have to be 

8.   Install or configure php. From wamp server Wamp>PHP>php extensions>                        select   PHP5-curl,

Run Tomcat to make sure that extensions work 

9.   Install the Drupal Imageapi module.  
      This module is used by some Islandora content models. LINK
10.   Download and install the fedora_repository module. 
        The module enables viewing and management of Fedora objects.
        Download the latest version of the module from  
        rename it to fedora_repository and place the uncompressed contents of 
        the module in your sites/all/modules or the sites/default/modules

11.   Enable the fedora repository module.  Optionally enable the 
         fedora_imageapi module. 
Drupal > Administer > Modules

Note: If there are missing dependent Drupal modules (Tabs, ImageAPI, and CCK), ensure you have installed and enabled these to properly utilize Islandora.

First, enable Depends on : modules first save it, other modules  work when all its required modules were enabled.
Now, enable all Fedora Repository modules and save configuration

12.   Create Drupal roles to assign to users.  One role you should create for 
        sure is administrator.  This role has special rights in Fedora so don't 
        assign this to anyone but an actual administrator. For users to
        authenticate to Fedora they must have a role. The default roles are not 
        enough. You must assign a  role that has been created. 

For Permissions GO TO -> User management -> Roles -> 
                ->  Enter Role name (any name) -> ADD ROLE ->
                ->  Edit Permissions -> mark everything           (including fedora repository ) .

                 NOW after setting role  GO TO->
                 User management ->
                 Users -> (go to operations of user you want to give those roles you have just set) 
                 EDIT ->
                 Roles (add role name to the list)

    Now when you make any user you can give these set of roles to that user

(Tomcat must be running)

13.  You have now enabled the Islandora module. Navigate to your newly 
       created Digital Repository menu item to view the objects from your 
       Fedora repository through your web site. no objects are found in your 
       Digital Repository, you can quickly populate Fedora with some demo
       objects. To do this, go to 
       Administer > Site Configuration > Fedora Collection List. Check 
       the default information that populates the collection list form fields 
       and your connection to the Fedora database. Then, select the Solution
       Packs tabs at the top of your page AND install objects

        (Firefox works pretty well with Islandora)

14.   Ingest object from drupal > Home > Digital repository > Islandora demo 
        collection > Islandora Demo pdf collection> add> …… Ingest   
        (only for pdf stuff) 
        drupal > Home > Digital repository > Islandora demo collection >   
        Demo image collection>  add> …… Ingest  (only for JPEG)

for Metadata > Home > Digital repository > Islandora demo collection 
                     > Demo Image Collection > (ingested demo name)
 (for second time it didn't work I didn't get Content model available by Add button, so when I tried to purge this object and on purge window clicked on Add button I got “Content model available” to Ingest objects)

And Now, The Fun Really Begins…

Add Collection View,  Collection Policies blah blah datastream files to Object Details 
            -->  Detailed list of contents
            --> Add Datastream 
            --> Collection_Policy
                  (to test download files from other collections :-)
(Tomcat must start correctly otherwise you may get an error in your Digital Repository)

Well SEE YA LATER! ...
                                            WORKING WITH  ISLANDORA CONTINUE..  HERE! 

Step by Step installation Guide RUNNING DRUPAL WITH WAMP

1.      INSTALL WAMP to your C Drive
b.      Go through the steps normally. Keep SMTP localhost and change the e-mail to your email address

2.      INSTALL DRUPAL by going to
a.      Scroll down to Recommended Releases and right click the latest release
b.      Save  Link As…
c.      C:\wamp\www\
d.      Save
e.      After the file downloads, unzip the .tar.gz file
                                            i.      To unzip, if you don’t have a program, download
                                            ii.     Once installed, Go to Start>Programs>7 zip
                                            iii.    Go to Tools>Options>System>Select All>OK
                                            iv.    Go back to C/wamp/www and right click the drupal file
                                            v.     7 Zip>Extract Here
                                            vi.    Rename the newest extracted folder to drupal (Now it  should
                                                                      be C:\wamp\www\drupal\.....) 
                                            ix.    Delete the other two folders (there should be only drupal and index in
                                                                      www folder)
                                             x.    Make sure you leave the index.php where it is

3.     Ensure WAMP has started. (Go to Start>Programs>WampServer>Start WampServer

4.     In your browser, go to http://localhost/drupal 

5.     Go to wamp/www/drupal/sites/default/, copy the default.settings.php file, paste it in the
        same folder and rename (Copy of default.settings.php) to settings.php

 6.    Left click on your wamp icon in the tray; go to apache>apache modules. Scroll down and
         select “rewrite_module”  (all prog start)


  7.       Left click on your wamp icon in the tray and select phpMyAdmin
7.1       Go  to localhost --> privileges --> check root (localhost) -->Action --> Change Password
                  ----> change password what you want for database (and remember it
                           for further use)    -->   GO

7.2       Go to wamp\apps\php myAdmin\ 
            and locate and set

                ['user'] = 'root';
                $cfg['Servers'][$i]['password'] = 'yourpassword';   //change only yourpassword
                ['AllowNoPassword'] = false;                                                            
7.3     Go back to PhpMyAdmin Page and refresh or open it from WAMP tray.
7.4     Go  to localhost --> privileges --> check root ( -->Action --> Change Password
                  ----> change password what you want for database (same as above)

(if an error occurred on PhpMyAdmin Page change ['AllowNoPassword'] = true;    save file, repeat steps 7.3 ,7.4 and then change  
 wamp\apps\php myAdmin\ change  ['AllowNoPassword'] = false; save file )

8.      Type drupal in “Create New Database” under “My SQL localhost”

9.       Select Create

10.    Go to the Privileges tab and ensure all permissions are granted
11.    To grant privileges for any user --> Go to "Edit Privileges" in Action tab >   Check All > GO
12.    Go to the SQL tab and fill in the open box with query:


14.   Go to the SQL tab and fill in the open box with query : FLUSH PRIVILEGES;


15.  Go to drupal page http://localhost/drupal, Scroll to bottom and select “Install Drupal
       in  English
16.  Back in your browser, refresh the page
17.  Change databasename to drupal , database username to root      and      database password to your selected earlier password.
18.  (Make sure to restart all services from wampserver) and Select Save 
19.  Go back to your localhost/drupal webpage to continue drupal installation
20.  Site name = whatever you choose
21.  username = admin
22.  password = previously selected password (to be on safe side) or (you can use new pw)
23   Select your time zone
24.  Enable Clean URLS
25   Enable check for updates
26.  Save and Continue
27.  If you get error page Scroll to bottom, ignore error message, click on “your new site”
28.  Now you logedin as username admin password your..

To increase the execution time of of Drupal page
Go to WampServer  > PHP > php.ini > search for max_execution_time and change it to 90 (max_execution_time = 90)

1.      Go to phpMyAdmin
2.      Select drupal(##) from the left hand column
3.      Go to Operations tab
4.      Type in the name of your new database name in the “Copy Database to:” section
5.      Ensure the following areas are selected:
a.       Structure and Data
b.      Create Database before copying
c.       Add Auto_Increment Value
d.      Switch to copied database
6.      Select “Go”
7.      Repeat steps 13 - 15 (except rename databasename to the name of your new database)
8.      Go to wamp/www/drupal/sites/, create a new folder, and rename it to the name of your new database
9.      Within that new folder, create three folders named files, modules, and themes
10.  Copy the settings file from /drupal/sites/default/ and paste it in the new folder you just created
11.  Using WordPad, Open drupal/sites/your database folder/settings (Ensure settings.php isn’t read-only)
12.  Find the following line:
$db_url = 'mysqli://admin:(yourpassword)@localhost/drupal';
$db_prefix = '';
a.       Change drupal to your new database name
13.  Find the following line:
# $base_url = '';  // NO trailing slash!
a.       Uncomment the line and change to:
   $base_url = 'http://your database name'; (i.e. http://drupal)
14.  Save and Close
15.  Click on the wamp icon in the tray
16.  Select Apache>httpd.conf
17.  Uncomment the following line:
# Include conf/extra/httpd-vhosts.conf
18.  Save and close
19.  Go to C:\wamp\bin\apache\Apache2.2.11\conf\extra and open the httpd-vhosts.conf file using WordPad
20.  Scroll to the bottom and comment out the following 18 lines:
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.localhost
#    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.localhost"
#    ServerName dummy-host.localhost
#    ServerAlias www.dummy-host.localhost
#    ErrorLog "logs/dummy-host.localhost-error.log"
#    CustomLog "logs/dummy-host.localhost-access.log" common

#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host2.localhost
#    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.localhost"
#    ServerName dummy-host2.localhost
#    ErrorLog "logs/dummy-host2.localhost-error.log"
#    CustomLog "logs/dummy-host2.localhost-access.log" common

21.  Add the following beneath that:
<VirtualHost *:80>
      DocumentRoot c:/wamp/www/drupal/
      ServerName your database name
  1. Save and Close
23.  Go to Start>Programs>Accessories> and Right Click on Notepad and open as Administrator
24.  Open the hosts file from C:\Windows\System32\drivers\etc\ (You may need to change from txt documents to all files)
25.  Add the following line to the bottom of the document then save:       your database name
       58. Save and Close
       59. Left Click on your wamp icon in the tray and select “Restart All Services”
       60. Once your server restarts, go back to your browser and type in http://your database name
       61. Use Admin and your password to login

Congratulations You have done it...