100 likes | 223 Views
Z39.50 URL. Implementation and Use University of Kansas Natural History Museum & Biodiversity Research Center ZIG / LoC / December 2000. Machine/. Database/. SubsetOfInformation. Machine x n. Database x n. Result set. URL’s as Subset Identifiers. Z3950://. Z39.50 Universe.
E N D
Z39.50 URL Implementation and Use University of Kansas Natural History Museum & Biodiversity Research Center ZIG / LoC / December 2000
Machine/ Database/ SubsetOfInformation Machine x n Database x n Result set URL’s as Subset Identifiers Z3950:// Z39.50 Universe =Operation (search, scan) + Query ZIG Dec. 2000 Vieglais
LDAP URL ldapurl = scheme "://" [hostport] ["/" [dn ["?" [attributes] ["?" [scope] ["?" [filter] ["?" extensions]]]]]] scheme = "ldap" attributes = attrdesc *("," attrdesc) scope = "base" / "one" / "sub" dn = distinguishedNamehostport = hostportattrdesc = AttributeDescriptionfilter = filterextensions = extension *("," extension) extension = ["!"] extype ["=" exvalue] extype = token / xtoken exvalue = LDAPStringtoken = oidxtoken = ("X-" / "x-") token ZIG Dec. 2000 Vieglais
LDAP URL Example LDAP URL referring to the set of entries found by querying the LDAP server on port 6666 with a subtree search of the University of Michigan for any entry with a common name of "Babs Jensen", retrieving all attributes: ldap://host.com:6666/o=University%20of%20Michigan, c=US??sub?(cn=Babs%20Jensen) ldap://host.com:6666/o=University of Michigan,c=US??sub?(cn=Babs Jensen) ZIG Dec. 2000 Vieglais
Z39.50 URL z39.50url = "z3950://" [username ":" password "@"] host [":" port] ["/" [database] ["search?query=(" pqn ")"]| ["scan?query=(" pqn ")"]] ["&esn=" elementset] ["&rs=" recordsyntax] ["&encode=" encodehtml] ["&maxrecs=" max] ["&ss=" URL] username = uchar password = uchar host = TCP/IP host name port = TCP/IP port number database = uchar pqn = uchar elementset = "B"|"F"|"G"|"S"|uchar recordsyntax = "GRS-1"|"SUTRS"|"USMARC"|uchar encodehtml = "1"|"0" max = integer URL = TCP/IP URL ZIG Dec. 2000 Vieglais
Standard Content Structure <?xml version="1.0"?> <response> <header> <target protocol="z3950" URI="z3950://..." database="adatabase"> </target> <query operation="Operation Term">Query string</query> <timestamp>07122000 084500Z </timestamp> <maxrecords count="MaxRecsRequested" /> <hits count="NumberOfHits" /> </header> <errors><error>Error Text</error></errors> <records> <record>Record Contents</record> </records> </response> • XML- easily manipulated content • No restrictions on content structure • Many free and commercial tools ZIG Dec. 2000 Vieglais
Implementation Native Z39.50 protocol support in Internet Explorer ZIG Dec. 2000 Vieglais
Application ADO URL Monikers XML Stream Other protocolseasily supported Z Protocol Handler SOAP HTTPHandler HTTP Server Architecture Desktop or B2B Application Information Retrieval Logic Z39.50 Client Server System Z39.50 Server Information Retrieval Logic Metadata and Data ZIG Dec. 2000 Vieglais DatabaseAPI (OLEDB) Specific to Win32
The 5 Minute Z39.50 Client <HTML> <BODY> <script language="javascript"> function doQuery() { var sQry = "(@attr 1=1 \"" + term.value +"\")"; var sURL="z3950://" + server.value; sURL += "/kubirds/search?query="+sQry; window.navigate(sURL); } </script> <INPUT id="server" type="text" value="localhost" /><br /> <INPUT id="term" type="text" value="otus asio%" /> <INPUT type="Submit" value="Search" onClick="doQuery();" /> </HTML> ZIG Dec. 2000 Vieglais
Conclusions • Z39.50 URL combined with XML provides extremely flexible IR solution • Use of common result set structure facilitates interoperability between alternate protocols (http, ldap, SQL,…) • Benefit of Z39.50 to biological community has been the concept of “registered” attribute sets and schemas ZIG Dec. 2000 Vieglais