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:
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
Show Parent Collection View
Text-based Search Auto-complete
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.