Home

Microsoft Office 2003 OAI Research Service

Introduction

Ok, so this weekend I cooked up a way to integrate MSU Libraries' OAI repository with the Microsoft Office task pane.

First some background. OAI-PMH is a protocol for harvesting metadata from various collections. At the MSU libraries, we provide access to our digital collections through OAI. Other institutions can come along and harvest our resources, adding them to their own, or making them available in some other way.

A good tutorial is available here:
OAI for Beginners

Making this data available to the world is great. But what would be even greater is making it available in an easy to use form to everyday users. Several weeks ago, at one of our weekly research group meetings, we discussed providing access in Microsoft Office products. Well, it turns out that since Office 2003 Microsoft has a new feature with their side pane called Research Services. This is a web services client that allows developers to provide a SOAP service to answer queries.

So I decided to implement a research service to provide access to an OAI repository

OAI Searching

One of the problems with OAI is that it doesn't provide a way to search through a repository. Only pulling the repository is possible. You can split your repository up into "sets", but this is about it in terms of querying.

SRU/SRW is a protocol that allows search queries to be sent to repositories. It is similiar to Z39.50, but SRW uses SOAP to encapsulate messages. More details are available at the SRW Website. The OAI Research Service uses SRW to communicate with a repository. Any repository providing SRW services should be compatible with this project.

Screenshots

Here's a screnshot showing the registration of the service:

Here's a screenshot showing a query for chocolate:

Implementation with Apache Axis

The service was implemented with Apache Axis. More details to come.

Problems

Office 2003 expects SOAP operations to return results with an element name of "NameResult" where Name is the name of the operation. For example, the Registration method should return the registration xml in a RegstrationResult element. By default the Axis tools generate returnQNames with "Return" as the suffix. Your SoapBindingStub class and deploy.wsdd should be updated to return with a prefix of Result.

Home