Web services for Learning Object Repositories: a Case Study - the ARIADNE Knowledge Pool System

S. Ternier, F. Neven & E. Duval
Dept. Computerwetenschappen
Celestijnenlaan 200A
3001 Heverlee
+ 32 16 32 76 59
{Stefaan.Ternier, Filip.Neven, Erik.Duval}@cs.kuleuven.ac.be
M. Macowicz, N. Ebel
CH-1015 Lausanne
+ 41 21 693 6663
{Maciej.Macowicz, Norbert.Ebel}@epfl.ch


In this paper, we present a new architecture for Learning Object Repositories [5], based on web services. We have re-designed the ARIADNE Knowledge Pool System based on the architecture presented here [2]. The goal of our architecture is to facilitate interoperability with other repositories and to enable experimentation with new techniques like Peer-to-Peer and Federated Search.


Learning Objects, Digital libraries, SOAP, XML, Web Services.


In this paper, we will propose a new architecture for Learning Object Repositories (LORís) [5]. Learning objects in this context should be understood as reusable content components for education and training. Associated to these learning objects are standardized metadata, so that the objects can be managed, searched, etc. [3].

The ARIADNE Knowledge Pool System (KPS) is a star-shaped distributed LOR. Some of the learning objects and all metadata are replicated at the different local pools. One of the main strengths of the ARIADNE community is that it cooperates in creating a large pool of reusable learning content [2].

In recent years, many LORís have been developed. In order to realize a Ďcritical massí of content and users, we want to enable interoperability between the different systems. This requires a simple interface to a LOR. Also, the ARIADNE community has developed a number of tools that build upon our KPS as a LOR. These tools currently depend too much on the KPS structure, so that it will be difficult to make them work with other LORís.


2.1 Web services

The main objective of the proposed new architecture is to provide an API for accessing LORís. The tools relying on such an API are independent of the internal structure of the LOR. This will enable interoperability between LORís, and with other tools. To achieve this goal, our KPS will expose the API through a set of related Web Services, accessed using the Simple Object Access Protocol (SOAP) [1].

2.2 Components

In the following sections, we will describe of the most relevant components. The LOR makes up the core architectural component, other components can then be plugged into this SOAP enabled LOR.

2.2.1 The LOR

The basic functionality of this component is to store learning objects together with related LOM metadata. New LOís can be inserted into the LOR, and the metadata can be queried. We have to distinguish between free and authenticated services: in our Knowledge Pool System, read access to metadata (getting, querying) is free; write access to metadata and read/write access to learning objects requires user authentication.

Insert Interface

This API will allow other applications to introduce new Learning Objects and related metadata into the Knowledge Pool. The metadata conforms to a LOM profile, as defined in an XML schema. In the future, we will consider also the support for other schemas (profiles of this profile, or other schemas).

Arguments Description
GetXMLSchema free, stateless
No arguments Returns the XML-schema that describes the metadata schema being used (i.e. the XML-binding of LOM).
newLearningObject authenticated, stateless
Document: File
Metadata: XML
Login: String
Password: String
With this service, users can enter new learning objects into the KPS. The operation can only succeed if the metadata is validated by the XML schema retrieved via the getXMLSchema service.

Query Interface

The following services included in the API will allow queries and downloads of learning objects.

Arguments Description
getDocument authenticated, stateless
ID: String
Login: String
Pw: String
Returns the document identified by the given ID.
getMetaData free, stateless
ID: String Returns the metadata of the specified Learning Object. The result is an XML-binding of LOM that satisfies the XML schema retrievable with getXMLSchema.
simpleQuery free, stateful
Keywords: String[] This method executes a simple query and temporarily stores the results on the server. It returns the number of query results together with a key that can be used to collect these results. The query consists of a number of keywords. All metadata fields will be searched for containment of these keywords.
advancedQuery free, stateful
Query: XML This method executes an advanced query and temporarily stores the results. It also returns a number of results and a key. The format of the query hasnít been specified yet.
getResults free, stateful
key: String
from: int
to: int
This method requires a previous invocation of either simpleQuery or advancedQuery. Given a certain key, one can than request e.g. results 10 to 19 of a query recently executed.

2.2.2 The Query Tool & Indexation Tool

We make a clear distinction between the query tool and the indexation tool. Someone who wants to focus on information visualization will use the query API while somebody interested in (automatic) indexation of documents will be mainly interested in the indexation API.

2.2.3 WeBLE

The ARIADNE Web-Based Learning Environment [4] is a Learning Management System. It provides facilities like course management and exploitation during e-learning sessions. WeBLe makes use of two services provided by the KPS: (i) it needs to get the metadata of given Learning Objects (getMetadata service), and (ii) since the WeBLE caches learning objects from the KPS, it needs to get documents (getDocument service).


As the number of repositories for storing Learning Objects increases, the problem of interoperability becomes more and more important. In the following sections, we will describe how the API defined for the ARIADNE Knowledge Pool can be used to build Peer-to-Peer and Client-Server (Federated Search) oriented architectures, interoperable with other learning objects repositories.

3.1 Peer-to-peer

A P2P application has both client and server characteristics. This enables the reuse of components defined in the previous section. To do this, we will define a new layer that acts as a gateway between the query and indexation component and the LOR. The following tasks are delegated to this layer:

Queries: When this layer receives a query either from the query component or from another peer, it will execute this query locally using the LOR API. It will also forward the query to other known peers. The results coming from both local and other peers are finally offered to the initiator of the query.

Indexation: The peer layer could also take care of replication. When a user e.g. inserts a new learning object using the indexation interface, the P2P layer catches this request. Next, it decides on which peer the LO should be stored.

We will investigate next how this P2P-layer can provide interoperability with other client/server LORís.

3.2 Federated search

The layer introduced between Knowledge Pool and indexation and query tools, can also implement Federated Search (FS). In a Federated Search system, queries are sent to different LORís. The FS engine then merges the results received by these LORís.

A Federated Search layer can also be used as middle layer in our architecture without having to modify anything of the other tools. The engine can accept queries from the Query tool and pass them to the LOR as well as to a number of other systems.


At the time writing, a prototype of newLearningObject, getDocument, getMetaData, simpleQuery and getResults has been implemented. We use Apache Axis, as this tool facilitates the deployment of web services, offers functionality to automatically generate a WSDL description of a service, etc. Also we are currently developing a new query tool. This query tool has become more flexible, as the (complex) structure of the database has been abstracted away.


  1. Cerami, E. Web Services Essentials. OíReilly & Associates, 2002. ISBN 0-596-00224-6.
  2. Duval, E., and Forte, E. et al. The ARIADNE Knowledge Pool System. C.ACM, May 2001, 44(5), 73-78.
  3. IEEE LTSC, Standard for Learning Object Metadata. See also http://ltsc.ieee.org/wg12, Last access on 7 February 2003.
  4. Macowicz, M., Warkentyne, K., and Forte, E. The ARIADNE Web-based Learning Environment: An Overview. In Proc. Web-Based Learning Environments 2000, Porto Portugal, June 5-6, 2000.
  5. Neven, F., and Duval, E. Reusable Learning Objects: a survey of LOM-based Repositories, Proceedings of the 10th ACM international Conference on Multimedia, pp. 291-294, Juan-les-Pins, France, December 2002.
  6. Ternier, S., Duval, E., and Vandepitte P. LOMster: Peer-to-peer Learning Object Metadata. Proceedings of EdMedia-2002, pp. 1942-1943, Denver, Co, June 2002