Examples for REST/SRW SRU Presentation
Examples & Glossary for REST SRW/U CALI Presentation 6/11/05
Kevin Reiss
Last Updated 12/07/05
Update: Many of the examples listed on this page are currently inoperable, as we are working to complete a public version of the search engine which will be released at the end of December. Please contact Kevin Reiss at kreiss@kinoy.rutgers.edu with any questions. Thanks for your interest.
UPDATE: Browse presentations from the June 22-23rd ZING Forum on SRW/U
REST-Ful Web Services
- Library Lookup - Browser bookmarklet application that finds out if an item on amazon or another online bookseller is located in your library. Once the bookmarklet is installed properly all you need to do is click on it and the speficied library OPAC will be queried for the book's ISSN or ISBN. [http://weblog.infoworld.com/udell/stories/2002/12/11/librarylookup.html]
- XOOMLE - The Google API done the REST-ful way [http://www.dentedreality.com.au/xoomle/].
- ATOM and RSS. Users subscribe to a given URL that contains the summaries about items published by a particular information resource. [http://www.atomenabled.org/ and http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html]
- OAI Registry Search - An SRU server that allows one to search for institutions serving as Open Archives Initiative Data Providers. [http://gita.grainger.uiuc.edu/registry/sru/sru.asp?version=1.1&operation=searchRetrieve&query=nellco]
- Open Archives Data Providers - OCLC's OAI Viewer lets you browse institutions that provide OAI data. Each instance is an example of REST-ful web service that can be accessed using the standard OAI vocabulary. s[http://errol.oclc.org/]
- Known SRU Servers - Search any type of Internet Resource using a simple and well-defined query language. [http://www.loc.gov/standards/sru/servers.html]
SOAP-ful Web Services
- Google API Recieve the results to a google query encoded as SOAP message. [http://www.google.com/apis/]
- Amazon API. Recieve amazon.com search results encoded as a SOAP message. This API also provides a REST-ful alternative delivered over http.
SRU Examples
Common Query Language Examples
CQL Homepage. Compliant SRW/U servers are not required to support the entire CQL specification, however they must report errors and fail gracefully for those services that they don't provide. [http://www.loc.gov/standards/sru/cql/index.html ]
Beta SRU Application Example (Server and Client)
SRU via Z39.50 Example
SRU Index (field) Searches Examples
- dc.title='United Nations' [http://law-library2.rutgers.edu/SRU/srucql.pl?query=dc.title+%3D+%22United+Nations%22&startRecord=1&maximumRecords=10&collection=subs&version=1.1&operation=searchRetrieve&recordSchema=dc]
- dc.title='United Nations' and dc.description='World Bank' [http://law-library2.rutgers.edu/SRU/srucql.pl?query=dc.title+%3D+%22United+Nations%22+or+dc.description%3D%22world+bank%22&startRecord=1&maximumRecords=10&collection=subs&version=1.1&operation=searchRetrieve&recordSchema=dc">dc.title='United Nations' and dc.description='World Bank']
- Undefined Index Error from the Library of Congress SRU Service [http://z3950.loc.gov:7090/voyager?query=dc.description%3D%22law%22+and+de.description%3D%22economics%22&startRecord=1&maximumRecords=1&recordSchema=dc&version=1.1&operation=searchRetrieve]
SRU and XSL
Stylesheet Examples for SRU Operations:
- explain response for the beta application. [http://law-library2.rutgers.edu/SRU/explain.xsl]
- searchRetrieve response for the beta application [http://law-library2.rutgers.edu/SRU/searchRetrieve.xsl]
OAI Examples
The comprehensive list of OAI Data Providers can be found at the OAI Registry [http://gita.grainger.uiuc.edu/registry/Info.asp]. Other OAI examples and services:
Software used in the Beta SRU Server
Research on REST, SRU, SRW, OAI
Glossary
- Atom
- XML application for syndicating content on the web. Has grown out of the blogging world and is becoming increasingly popular. [http://www.atomenabled.org/]
- API - Application Programming Interface
- A group of routines, objects, or protocols a software application provides for building applications with that piece of software. A web service typically defines an API for programmers. [http://www.webopedia.com/TERM/A/API.html]
- CQL - Commom Query Language
- Language used to express queries submitted to SRW/U servers. Designed to support both simple keyword queries and advanced boolean, proximity, and field-based queries. [http://www.loc.gov/z3950/agency/zing/cql/]
- Dublin Core
- Simple metadata set of 15 elements for describing any type of resource. Typically used for to facilitate the discovery of resources. The default metadata standard for the open archives initiative. [http://dublincore.org/]
- METS Metadata Encoding and Transmission Standard
- Metadata schema designed to encode any type of digital object. Provides means for encoding description, structural, and technical metadata about an object. Ideal for describing resources that have multiple versions and multiple formats.[http://www.loc.gov/standards/mets/]
- OAI - Open Archives Initiative
- Protocol designed for the federation and harvesting of metadata over the web. An excellent example of a REST-ful web service. Popular among current digital library projects.[http://www.openarchives.org/]
- OPAC - Online Public Access Catalog
- A library's electronic database that contains the catalouging and location information for all resources held by the library. Typically OPAC records are stored in the MARC (Marchine Readable Cataloging Record) format.
- REST - REpresentational State Transfer
- First defined by Roy Fielding, REST can be described as a design philosophy for web services that are meant to be delivered over only HTTP. REST-ful applications deliver responses that are made up of XML unique to the application. Messages amd requests are sent to a REST-ful applications via that parameters passed as the query string on a URL.
- RSS - Really Simple Syndication or Rich Site Summary
- XML format that contains summaries of content published in blogs, magazines, news services, forums, or any type of online service. A single RSS summary is generally referred to as a feed. Interested users can subscribe to any given feed using an RSS reader. The reader, a program enabled to consume XML encoded in RSS then can alert the user when new content has been added to a given feed. [http://www.rss-specifications.com/]
- SOAP - Simple Object Access Protocol
- SOAP is a protocol defined by the W3C for encoding web services in XML. Unlike REST-ful web services, which must travel over HTTP, SOAP web services can be moved any type of network transport protocol including email and SSH. SOAP defines a wrapper or envelope the goes around the actual message content. Both the SOAP envelope and message content are always expressed in XML. The envelope contains information about the message being sent that helps the recieving application process the message content. [http://www.w3.org/TR/2003/REC-soap12-part0-20030624/]
- SRU - Search and Retrieve URL Service
- Web services protocol for querying any type of internet information index or database. SRU is a REST-ful web served delivered as XML over HTTP. Queries sent to an SRU service are expressed using the Common Query Language (CQL). [http://www.loc.gov/z3950/agency/zing/srw/]
- SRW - Search and Retreieve Web Service
- Web services protocol for querying any type of internet information index or database. SRW is a SOAP-ful web served delivered as XML encoded within a SOAP envelope. Queries sent to an SRW service are expressed using the Common Query Language (CQL).[http://www.loc.gov/z3950/agency/zing/srw/]
- URL - Universal Resource Locator
- The address of a resource on the Internet. Consists of the protocol used to access the resource, the domain name or ip address of the resource, the name of the resource, and an optional query string containing a list of parameters [key => value] pairs being sent to that resource.
- XML - Extensible Markup Language
- XML is simple but powerful meta-language standardized by the W3C [http://w3.org] for defining application specific descriptive markup languages. XML is very popular today and is currently used in such applications as text encoding, web publishing, and database applications.[http://www.w3.org/XML/]
- XSLT - Extensible Stylesheet Language Transformations
- XSLT is a language developed by the W3C for transforming XML documents into other formats such as HTML or plain text. XSLT programs are known as stylesheets. An XSLT stylesheet is itself expressed as an XML document instance.[http://www.w3.org/TR/xslt]
- W3C - World Wide Web Consortium
- Consortium that develops standards for the World Wide Web. The W3C has defined numerous standards including XML, XSLT, Web Accessibility, HTML, and XHTML.
- Web Services
- Web Services is allow a programmer to express a structured request to an application on the web and recieve a structured response in return. In practice web services have used XML to encode these requests and responses. A web service typically defines a standard XML format for an application. A programmer can then take the specifications for that format and write a program that will automatically send a recieve messages with the web service. This content can then be used in some useful local application such as a single local interface that recieves content automatically from several distributed data sources.
- Z39.50
- Networked search and retrieval protocol designed during the 80s and 90s. Most common usage by libraries to search other library catalogs (OPACs) over the network.
- zeerex Z39.50 Explain, Explained and Re-Engineered in XML
- XML markup language used for defining the operations, indexes, and relations a given SRW, SRU, or Z39.50 server supports. The explain operation of an SRU server returns a zeerex record containing information about the server. This record describes what parts of the SRU and CQL standards the server supports. [http://explain.z3950.org/]
- ZING - Z39.50 Internation: The Next Generation
- Project to simplify and redefine Z39.50 for use on the world wide web. Queries and Results are to be encoded and transported using XML. CQL, SRU, SRW, and zeerex are all specifications that have come out of this project.