Search Interface Component

Developed by Michael Ferguson

The Search Interface allows for navigation through the data with search and discovery metaphors, namely: text-based search, collection-based search and faceted search.

Introduction

A search interface was developed to provide navigation through the dataset as well as provide detailed information and representation of the data. Navigation through the data can be achieved by text-based search, site collection search via a Google Map overlay and faceted search. The Search Interface contains a REST API that can be used for search interface related queries as well as data representation requests.

Implementation

Search Interface API

The Search Interface consisted of a number of PHP scripts that were accessed with the use of HTTP GET requests. The data is generally returned by the API in JSON to ensure lightweight exchange of the data.

API Methods

Fedora Digital Object Datastream Query
URL Syntax
http://nala.cs.uct.ac.za/zamaniProject_archive/inc/datastream.php?{PID}/datastreams/{DATASTREAM}/content
HTTP Method
GET
HTTP Response
Specific object datastream returned in XML. Empty XML document returned if PID or DATASTEAM not found.
Parameters
Name Description
{PID} The persistent identifier of the digital object
{DATASTREAM} The digital objects datastream to query
Solr Query
URL Syntax
http://nala.cs.uct.ac.za/zamaniProject_archive/inc/solr.php?q={QUERY_STRING}&start=0
HTTP Method
GET
HTTP Response
Response from Solr for the given query returned in JSON.
Parameters
Name Description
{QUERY_STRING} Query string for Solr
RISearch Tuple Query
URL Syntax
http://nala.cs.uct.ac.za/zamaniProject_archive/inc/risearch.php?type=tuples&lang=itql&format=json&query={QUERY_STRING}
HTTP Method
GET
HTTP Response
Response from RISearch for the given tuple query, returned in JSON.
Parameters
Name Description
{QUERY_STRING} ITQL based tuple query
Solr Suggest Query
URL Syntax
http://nala.cs.uct.ac.za/zamaniProject_archive/inc/suggest.php?q={QUERY_STRING}
HTTP Method
GET
HTTP Response
Response from Solr Suggest for the given query string, returned in JSON.
Parameters
Name Description
{QUERY_STRING} Query string for Solr Suggest
Get Additional Metadata
URL Syntax
http://nala.cs.uct.ac.za/zamaniProject_archive/inc/getAdditionalMetadata.php?pid={PID}
HTTP Method
GET
HTTP Response
Response from Get Additional Metadata, consists of file size from SIZE datastream, position data from POSITION datastream and conditionally camera calibration settings from the CALIBRATION datastream for the given PID. The response is returned in HTML that can be directly used by the Show Metadata feature.
Parameters
Name Description
{PID} The persistent identifier of the digital object
Get Scaled Image
URL Syntax
http://nala.cs.uct.ac.za/zamaniProject_archive/inc/getScaledImage.php?w={WIDTH}&h={HEIGHT}&mimeType={MIME_TYPE}&pid={PID}
HTTP Method
GET
HTTP Response
Response from Get Scaled Image, consists of an image of the specified width and height. There is however a maximum dimension of 500 pixels. Additionally, if the PID does not exist or does not have an image associated with it, an image containing the text “Image Not Available” is returned.
Parameters
Name Description
{WIDTH} The width of the image
{HEIGHT} The height of the image
{MIME_TYPE} The mime type of the digital object
{PID} The persistent identifier of the digital object

Interfacing with the Search Interface API

In order to interface with the Search Interface API, JQuery’s HTTP GET method was used. This is illustrated below: Interfacing with the Search Interface API

Technologies used

  • Fedora Generic Search Service
  • Research Index
  • Research Index Search
  • Solr
  • JavaScript
  • AJAX
  • JQuery
  • JQuery Autocomplete widget library
  • JQuery Simple Pagination plugin
  • Google Maps API
  • Fedora XML (FOXML)

Features

  • Text-based Search
  • Text-based Search Auto-complete
  • Collection-based Search
  • Faceted Search
  • Type-based Search
  • Collection View
  • Parent Collection View
  • Metadata View
  • Popup Image Viewer

Home Page View

Show Collection View

Pagination

Show Parent Collection View

Faceted Search

Text-based Search

Text-based Search Auto-complete

Show Metadata View

Show Metadata View - Popup Image View

Results

Usability Testing

A usability test was conducted with 15 participants, consisting of University of Cape Town students. The System Usability Scale (SUS) was used to measure user’s perceived usability of the Search Interface.

The main results obtained are as follows:

Mean SUS Score Cronbach Alpha Std. Alpha Average R
83.57 0.89 0.87 6.6

User Acceptance Testing

In order to demonstrate that the project requirements had been met, a User Acceptance Test was conducted with the Zamani Project team. A list of requirement based test case criteria was compiled using the in-scope functionality of the Search Interface. This ensured that all of the functionality that was in-scope was demonstrated to the team. The requirement test case criteria are shown below.

ID Criteria
2.1 Search by Type
2.2 Search by Collection by selecting a marker on the mapb
2.3 Facet search results
2.4 Text-based search
2.5 Text-based search making using of auto-complete functionality
2.6 View a large image preview in the ‘Show Metadata’ view
2.7 View Metadata for an item

After the Search Interface had been demonstrated, the team was asked to assess if the requirements had been met. The completed Test Results section is illustrated below:

IDs Pass/Fail Tested By Date Tested
2.1 - 2.7 Pass Zamani team 20/10/2014

Conclusion

A subjective label for this component’s usability can be obtained with the use of the adjective rating scale and the component’s mean SUS score of 83.57. Thus the Search Interface’s usability is 'Excellent'. There is a high level of internal consistency, this can be seen above, in the table in the Usability Testing section, with a Chronbach’s alpha of 0.7 ≤ α < 0.9.

The system was evaluated and determined to be a success. All of the functionality that was specified as in-scope and was a requirement of the Zamani team was successfully implemented and approved by the team. The team responded positively to the system and are interested in the system being implemented in a production environment in the future.