z39.50 as a web service
DESCRIPTION
Z39.50 as a Web Service. Ralph LeVan Research Scientist. Roadmap. Why Z39.50 as a Web Service? The Weaknesses of Classic Z39.50 The Strengths of Classic Z39.50 SRW: Search and Retrieve on the Web SRU: Search and Retrieve with URL’s Outlook for SRW/SRU. The Weaknesses of Classic Z39.50. - PowerPoint PPT PresentationTRANSCRIPT
Z39.50 as a Web Service
Ralph LeVanResearch Scientist
RoadmapRoadmap
• Why Z39.50 as a Web Service?
– The Weaknesses of Classic Z39.50
• The Strengths of Classic Z39.50
• SRW: Search and Retrieve on the Web
• SRU: Search and Retrieve with URL’s
• Outlook for SRW/SRU
The Weaknesses of Classic Z39.50The Weaknesses of Classic Z39.50
• Not popular with the Web community
– Connection-based Sessions
– Binary Encoding
– Transmitted directly over TCP/IP
• Complicated
Z39.50 Complicated?Z39.50 Complicated?
• 11 Native Services– Init, Search, Present, DeleteResultSet,
AccessControl, ResourceControl, TriggerResourceControl, ResourceReport, Scan, Sort, Segment.
• 7 Extended Services– PersistentResultSet, PersistentQuery,
PeriodicQuerySchedule, ItemOrder, DatabaseUpdate, ExportSpecification, ExportInvocation
Z39.50 Complicated?Z39.50 Complicated?
• 156 page standard
– 147 in the 2002 draft
• Vocabulary from the OSI community
– Target, Origin, APDU, A-association, Z-association..
• Records described with ASN.1
• Attribute Sets
The Strengths of Classic Z39.50The Strengths of Classic Z39.50
• Result Sets (a.k.a. Statefulness)
• Abstraction
– Abstract Access Points (Attribute Sets)
– Abstract Record Schemas
• Explain
SRW: Search and Retrieve on the WebSRW: Search and Retrieve on the Web
• SOAP (Simple Object Access Protocol) Based
– HTTP
– XML
• Records Described in WSDL (Web Service Description Language)
• 1 Service: SearchAndRetrieve
• No Documentation :-)
Semantically equivalent to classic Z39.50Semantically equivalent to classic Z39.50
• Gateways Trivial
• Preserves the experience of the ZIG without the baggage of the standard
• Syntactic equivalence discounted
SRW: The BasicsSRW: The Basics
• Only one database per request
• String (not structure) based queries
• Index Sets, not Attribute Sets
• One Record Syntax (XML)
The SRW RequestThe SRW Request
• String Query
• Integer StartRecord
• Integer MaximumRecords
• String RecordSchema
The SOAP Encoding of the SRW RequestThe SOAP Encoding of the SRW Request<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/
xmlns:SOAP-ENC=http://schemas.xmlsoap.org/soap/encoding/
xmlns:xsi=http://www.w3.org/1999/XMLSchema-instance
xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<ns1:searchRetrieve xmlns:ns1="urn:z3950:ZNG_Prototype1" SOAP-ENC:root="1">
<v1 xsi:type="xsd:str">nuclear</v1> <v2 xsi:type="xsd:int">4</v2>
<v3 xsi:type="xsd:int">1</v3> <v4 xsi:type="xsd:str"></v4>
<v5 xsi:type="xsd:str"></v5> </ns1:searchRetrieve>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The SRW ResponseThe SRW Response
• String ResultSetReference
– ResultSetName
– ResultSetTimeToLive
• Integer TotalHits
• Records
• Status (Status Code & Diagnostic)
The SOAP Encoding of the SRW ResponseThe SOAP Encoding of the SRW Response<SOAP-ENV:Envelope … ><SOAP-ENV:Body>
<ns1:searchRetrieveResponse xmlns:ns1="urn:z3950:ZNG_Prototype1“
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<return xsi:type="xsd:string"><?xml version='1.0' encoding='UTF-8'?>
<searchRetrieveResponse xmlns='urn:z3950:ZNG_Prototype1'>
<totalHits>115</totalHits>
<records><record><schema>http://purl.org/dc/elements/1.1/</schema>
<recordData> … </recordData>
</record></records>
<status><statusCode>0</statusCode></status>
</searchRetrieveResponse></return>
</ns1:searchRetrieveResponse>
</SOAP-ENV:Body></SOAP-ENV:Envelope>
The SOAP Encoding of the SRW ResponseThe SOAP Encoding of the SRW Response<dc:dc xmlns:dc='http://purl.org/dc/elements/1.1/‘
xmlns:t='http://www.ndltd.org/standards/metadata/etdms/1.0/‘
xmlns='http://www.w3.org/TR/xhtml1/strict'>
<language/><date>1971</date><type/><identifier/><coverage/>
<subject>Pions--Scattering.</subject>
<creator>Garland, Richard.</creator>
<title>Measurement of the charged pion form factor slope at rest.</title>
<publisher>Irvington-on-Hudson, N.Y.,Nevis Laboratories, Columbia University,</publisher>
<format/><relation/></dc:dc>
CQL: Common Query LanguageCQL: Common Query Language
• Loosely based on CCL Search
• Boolean & Proximity Operators
• Index Sets & Indexes
• Truncation Characters ‘*’, ‘#’ & ‘?’
• Example:
dc.title=“harry potter” or bib1.isbn=123-456-78x
Explain Now PossibleExplain Now Possible
• Not practical for classic Z39.50
• List of supported Schemas
• List of supported Indexes
SRU: Search and Retrieve with URL’sSRU: Search and Retrieve with URL’s
• SRW Without the SOAP Wrapper
• Intended for Thin Clients
• Example
http://alcme.oclc.org/axis/SOAR/services/SearchRetrieveService?query=education&maxRecords=10
Outlook for SRW/SRUOutlook for SRW/SRU
• A solution looking for a problem?
• Not likely to be quickly adopted by the library community
• Could show up first in other communities: Geospatial, Biodiversity, OAI(?)
• Will be seen as a competitor with XML Query
LinksLinks
• http://www.loc.gov/z3950/agency/zing/zing.html
• http://staff.oclc.org/~levan/docs/srw-niso20030430.ppt
&QuestionsAA
nswersnswers