SDLIP: Simple Digital Library Interoperability Protocol Delivering Queries, Receiving Results
Simple Search Over DL Collections Content: Easy-to-adapt, basic protocol for searching digital collections Purpose: Help DLI2 participants collaborate. Potentially impact larger DL community Strategy: Study past protocols Construct initial specification Involve InterLib community + IETF Final specification InterLib sites implement protocol Disseminate to interested parties
But lets you say what you’re using Initial Goals Trivial to implement! Works over CORBA/COM, HTTP, straight TCP/IP Does not prescribe query format Does not prescribe result format Small footprint (Desktop/Laptop/PDA) Allows for stateful or stateless operation But lets you say what you’re using
Delivering Search Capability Local Interface-1 Local Interface-2 Local Interface-n Network boundary InterLib Collection SDLIP External Protocol Information Client Thin InterLib Wrapper
Interface Consists of Four Components InterLib Wrapper Result Access Interface Source Metadata Interface Search Interface Information Client Delivery Interface
Synchronous Search 2 Result Access Interface Information InterLib Wrapper Result Access Interface Source Metadata Interface Search Interface Information Client 1 Logically: wrapper presents an ordered result set
Status of Protocol Documentation available at http://www-diglib.stanford.edu Clients for CORBA and HTTP for Unix/Win via Java, and for PalmPilot Data sources: California Digital Library Collections, UC Berkeley Melvyl, SDSC Metadata server, Dienst (NCSTRL), IMDB via Web, Z39.50 services (e.g. Library of Congress) Columbia University working on source metadata interface Implementations by: Arturo Crespo, John Huang, Ray Larson, Bertram Ludaescher, Sergey Melnik, Sriram Raghavan
Current Set of Operations Search search() Operation request deliverable via any transport: CORBA/COM, HTTP, sockets. Result access getSessionInfo() getDocs() extendStateTimeout() cancelRequest() Source metadata getInterface() getSubcollectionInfo() getPropertyInfo()