The IMesh Toolkit RSS Reading List Module

This module is designed to be used from inside a script.  The script takes 
input from a Web Form (or similar) to get the name (and other descriptions)
of the reading list from the user, and a list of URLs which retrieve records
from an OAI repository using OAI-PMH, in the oai_dc format.
The script uses the IMesh Module to retrieve the records,
extract the item values for the reading list, and generate the
RSS.


 ----------                -------           -------
| Web Form |              | Script|         | RSS   |
|   or     |   ------->   |  uses | ------->| File  |
| Subject  |     URLs     | IMesh |         |     --
| Gateway  |      +       | Module|         |    |
 ----------  Reading List  -------           ---- 
             Description

The Module has two methods:

-- getItemValuesFromOai

input: OAI Version (1 or 2)
       Reference to an array of URLs
output: Reference to an array of itemvalue arrays
        Reference to an error messages hash of form key:URL value: error msg
This method returns the title, description and link values 
(one value-array per item), for each item that will be included in the 
RSS channel.  One URL corresponds to one item.
The values are obtained from the
dc:title, dc:identifier and dc:description elements in the OAI record
returned by the URL.
They become the item link (a URL), item title and description
in the RSS channel.

-- generateRSS
input: Reference to an array of itemvalue arrays
       Reference to a hash of other parameters.  
       The keys that can appear in the hash are (all optional):
       ctitle (RSS channel title; a title of a reading list)
       clink  (RSS channel link; a URL for the RSS file for this reading list)
       cdesc  (RSS channel description; description of reading list) 
       clang  (Language of the channel)
       ccopyright
       cwebmaster
       iurl
       ititle
       ilink
       tititle
       tilink
       tidesc
       tiname
       For further explanation of these fields see the RSS specification and
       web pages (links below). 
output: A string containing the RSS
For the RSS schema and specification see the RSS links  below.

Requirements
------------

LWP::Simple;
XML::Simple;
XML::RSS

These modules can be obtained from CPAN.

Examples
---------- 

@URLs = qw(
       http://www.myoairepository.org/oai?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:example.org:example-000-000-000-001,
       http://www.myoairepository.org/oai?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:example.org:example-000-000-000-022,
       http://www.myoairepository.org/oai?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:example.org:example-000-000-000-042,
       http://www.myoairepository.org/oai?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:example.org:example-000-000-000-330,
       http://www.myoairepository.org/oai?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:example.org:example-000-000-000-099
);

$oaiversion = "2";

($items, $errors) = getItemValuesFromOai($oaiversion, \@URLS);

%description = (ctitle => "mylist",
                cdesc => "A list of links of reading material"
                clink => "http://www.mylist.org/readinglist.xml");

$rss = generate_RSS($items, \%description);


Example script
---------------

Example web Form
----------------
http://www.imesh.org/toolkit/work/components/readinglists/trial.html


Links:

OAI-PMH
-------

http://www.openarchives.org/
http://www.openarchives.org/OAI/openarchivesprotocol.html

RSS
---
http://f4.grp.yahoofs.com/v1/0J0WPzlXV8t1dlhTj-qsBR77ncxrRF67qvPgrXzHh7roweL2KhmYBm1af3XiYoJnxTJFGSdBizrfAYCS/specification.html
http://www.ukoln.ac.uk/metadata/resources/rss/


IMesh Toolkit WebPages
----------------------

http://www.imesh.org/toolkit/work/components/readinglists/
