Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

How to Find a Needle in the Haystack


Published on

Given at The Institutional Web Management Workshop 2005

Published in: Technology, Education
  • Be the first to comment

How to Find a Needle in the Haystack

  1. 1. How to Find a Needle in the Haystack Adrian Stevenson Learning Technology Services University of Manchester Institutional Web Management Workshop 2005 Parallel Session 4pm - 5.30pm, Wednesday 6 th July 2005
  2. 2. Overview <ul><li>Introduction to Cross searching / metasearch </li></ul><ul><li>The Problem – why metasearch? </li></ul><ul><li>JISC Information Environment </li></ul><ul><li>Quick introduction to XML and Web Services </li></ul><ul><li>Metasearch Technologies </li></ul><ul><ul><li>Z39.50, SRU/SRW, OAI </li></ul></ul><ul><li>Metasearch issues </li></ul><ul><li>NISO Metasearch Initiative </li></ul>
  3. 3. Cross Searching <ul><li>Cross searching has many names: </li></ul><ul><ul><li>Metasearch </li></ul></ul><ul><ul><li>Distributed search </li></ul></ul><ul><ul><li>Parallel search </li></ul></ul><ul><ul><li>Federated search </li></ul></ul><ul><ul><li>Broadcast search </li></ul></ul><ul><ul><li>Cross-database search </li></ul></ul><ul><li>Common theme of allowing search and retrieval to span multiple databases, sources, platforms, protocols, and vendors at once </li></ul>
  4. 4. The Problem <ul><li>Web users such as researchers or tutors frequently require information from a variety of different sources </li></ul><ul><li>User required to search many different service interfaces, each with a different look and feel, metadata and subject classifications. </li></ul><ul><li>The results are almost always supplied in HTML, which makes them difficult to merge. </li></ul><ul><li>Users search many services and portals such as the RDN, zetoc and COPAC, image resources, e-prints, learning objects, external and internal resources. </li></ul><ul><li>If a user wants to obtain a local copy of the range of search results, they often have to merge the results themselves, for example by creating a text file. </li></ul>
  5. 5. JISC Information Environment <ul><li>Cross searching is at the core of the JISC IE </li></ul><ul><li>JISC notes that considerable investment has been made to provide high-quality digital information resources </li></ul><ul><li>But students, lecturers and researchers are faced with a vast and sometimes bewildering range of sources of electronic information. </li></ul><ul><li>Each source has its own name, interface, features and search facilities. </li></ul><ul><li>Users remain unaware of their existence or fail to discover their value for their own learning, teaching or research. </li></ul><ul><li>A key challenge is therefore to achieve a managed, coherent and shared information environment that will overcome these obstacles </li></ul>
  6. 6. JISC: Helping Users find digital information <ul><li>Being able to cross-search will considerably simplify users’ interactions with online resources. </li></ul><ul><li>This should encourage take-up and greatly improve means of accessing these resources. </li></ul><ul><li>Institutions will be able to incorporate these services within their own institutional online environments, presenting local content alongside nationally provided resources. </li></ul><ul><li>A second aspect relates to making the Information Environment actually work. </li></ul><ul><li>Making the Information Environment work requires the implementation of a range of commonly-agreed technical standards and protocols </li></ul>
  7. 7. JISC IE Technical Architecture <ul><li>“The JISC Information Environment technical architecture specifies a set of standards and protocols that support the delivery of integrated networked services that allow the end-user to discover , access , use and publish digital and physical resources” </li></ul>
  8. 8. Metasearch Technologies <ul><li>Two main approaches: </li></ul><ul><li>Real-time cross searching </li></ul><ul><ul><li>Z39.50 </li></ul></ul><ul><ul><li>Search and Retrieve URL / Web Service - SRU/SRW </li></ul></ul><ul><li>Harvesting </li></ul><ul><ul><li>Open Archives Initiative Protocol for Metadata Harvesting – OAI-PMH </li></ul></ul>
  9. 9. Metasearch Technologies <ul><li>Other approaches: </li></ul><ul><li>Hybrid </li></ul><ul><ul><li>Combination of Z39.50, SRU/W, and OAI and .. </li></ul></ul><ul><li>Screen scraping </li></ul><ul><ul><li>parsing the HTML to find patterns or parts of content. </li></ul></ul><ul><ul><li>Screen scraping is an ad-hoc technique that is dependent on a consistent format for the data being scraped </li></ul></ul><ul><ul><li>Regular expressions used for screen scraping. Perl has strong support for regular expressions – grep </li></ul></ul><ul><ul><li>Difficult, unreliable and laborious </li></ul></ul>
  10. 10. Z39.50 <ul><li>ANSI/NISO Z39.50 - 2003 Information Retrieval : Application Service Definition & Protocol Specification </li></ul><ul><li>The National Information Standards Organization (NISO) is an American National Standards Institute (ANSI) accredited standards developer that serves the library, information, and publishing communities </li></ul>
  11. 11. Z39.50 <ul><li>Z39.50 is designed to enable communication between computers, typically those used to manage library catalogues </li></ul><ul><li>A portal can send a real-time query to a number of Z39.50 enabled content providers and a results set is returned to the user </li></ul><ul><li>The AHDS Gateway , physically based in London, uses Z39.50 to query five different databases containing information on archaeology (York), history (Colchester), the performing arts (Glasgow), the visual arts (Newcastle), and textual studies (Oxford) </li></ul><ul><li>They are driven by different database management software and run on a variety of hardware platforms. Z39.50 enables searches across the five sites. </li></ul><ul><li>Library OPAC and desktop applications such as EndNote can also be used to search Z targets </li></ul>
  12. 12. AHDS
  13. 13. Z39.50 <ul><li>Z39.50 employs a client/server model </li></ul><ul><li>One computer, the client or, in Z39.50 terms, the ‘Origin’, submits a request to another computer, the server or ‘Target’ which then services the request and returns an answer </li></ul><ul><li>Queries can be sent to multiple databases simultaneously to cross search </li></ul><ul><li>Records can be returned in a number of formats or ‘syntaxes’ as requested by the client. These typically include: </li></ul><ul><ul><li>MARC ( Machine Readable Cataloging ) </li></ul></ul><ul><ul><li>SUTRS (Simple Unstructured Text Record Syntax) </li></ul></ul><ul><ul><li>Raw ASCII text file </li></ul></ul><ul><ul><li>XML (eXtensible Markup Language) </li></ul></ul>
  14. 14. What is XML? <ul><li>a technology for the management, display and organisation of data </li></ul><ul><li>a programming language </li></ul><ul><li>a markup language </li></ul><ul><li>a markup language used to describe the structure of data </li></ul><ul><li>not really a language </li></ul><ul><li>a standard for creating languages that meet the XML criteria </li></ul>Some possible definitions?
  15. 15. XML: elements <language> English </language> <tag> </tag> content
  16. 16. XML must be well formed <ul><li>a root element is required </li></ul><ul><li><ead> </li></ul><ul><li>… ..all your tags and content… </li></ul><ul><li></ead> </li></ul><ul><li>closing tags are required </li></ul>
  17. 17. XML must be well formed <ul><li>a root element is required </li></ul><ul><li><ead> </li></ul><ul><li>… ..all your tags and content… </li></ul><ul><li></ead> </li></ul><ul><li>closing tags are required </li></ul><ul><li>Tags must be properly nested </li></ul><ul><li>Case matters </li></ul>
  18. 18. Valid XML <ul><li>Valid XML provides consistency and facilitates the exchange of data </li></ul><ul><li>XML must conform to a Document Type Definition (DTD) or Schema to be valid </li></ul><ul><li>Schemas and DTDs specify the elements and attributes and defines how they can be used: </li></ul><ul><ul><li>Sequence of elements </li></ul></ul><ul><ul><li>Maximum and minimum values </li></ul></ul><ul><li>P eople can agree to use a common Schema for interchanging data </li></ul><ul><ul><li>e-learning: IEEE Learning Object Metadata Schema (LOM) </li></ul></ul>
  19. 19. Some Valid XML - EAD (Encoded Archival Description) <ul><li><archdesc level=&quot;fonds&quot;> </li></ul><ul><li><did> </li></ul><ul><li><repository>John Rylands University Library of Manchester</repository> </li></ul><ul><li><unitid countrycode=&quot;GB&quot; repositorycode=&quot;0133&quot;>GB 0133 NCN</unitid> </li></ul><ul><li><unittitle>Papers of Norman Nicholson</unittitle> </li></ul><ul><li><unitdate normal=&quot;1899-1987&quot;>1899-1987</unitdate> </li></ul><ul><li><physdesc> </li></ul><ul><li><extent>0.44 cu.m; 1,201 items</extent> </li></ul><ul><li></physdesc> </li></ul><ul><li><langmaterial> </li></ul><ul><li><language langcode=&quot;eng&quot;>English</language> </li></ul><ul><li></langmaterial> </li></ul><ul><li><origination>Nicholson, Norman Cornthwaite, 1914-1987</origination> </li></ul><ul><li><note>Created by the John Rylands Library archivist</note> </li></ul><ul><li></did> </li></ul><ul><li>… ..</archdesc> </li></ul>
  20. 20. Something to remember about XML <ul><li>XML does not do anything itself . It is pure information wrapped in XML tags. </li></ul><ul><li>You must use other means to send, receive or display the data </li></ul>XML XML technologies Display here like this Display there like that extract this data for this purpose extract that data for that purpose is used by to..
  21. 21. Why Use XML? <ul><li>Because everyone else is! </li></ul><ul><li>International standard, supported by the W3C </li></ul><ul><li>XML is open, licence free and platform neutral </li></ul><ul><li>XML is human and machine readable </li></ul><ul><li>XML documents are text documents </li></ul>
  22. 22. Why Use XML? <ul><li>Separation of content and presentation </li></ul><ul><ul><li>With proprietary systems content is inextricably bound up with format </li></ul></ul><ul><li>XML does not determine the presentation of the data </li></ul><ul><ul><li>Y ou can use CSS (stylesheets) or XSLT (Extensible Style Sheet Language for Transformations) to present XML data </li></ul></ul><ul><li>The flexibility of XML enables the presentation of merged search results to the user. </li></ul>
  23. 23. Web Services <ul><li>A Web Service is an online application that can be accessed by other applications in machine to machine (m2m) interactions </li></ul><ul><li>Web services use XML to achieve this interoperability </li></ul><ul><ul><li>SOAP </li></ul></ul><ul><ul><li>WSDL: Web Services Description Language </li></ul></ul><ul><ul><li>UDDI: Universal Description, Discovery and Integration </li></ul></ul>
  24. 24. What is a Web Service <ul><li>A Web Service is a process of some kind, some functionality, for example: </li></ul><ul><ul><li>A search and retrieve procedure </li></ul></ul><ul><ul><li>A conversion process </li></ul></ul><ul><ul><ul><li>Fahrenheit to Centigrade </li></ul></ul></ul><ul><ul><ul><li>MARC record to Dublin Core record </li></ul></ul></ul><ul><ul><ul><li>LCSH subject headings to Dewey Decimal Classification numbers </li></ul></ul></ul>
  25. 25. Publicly available Web Services <ul><li>Google’s ‘similar pages’ </li></ul><ul><li>Amazon’s book connections: ‘customers who bought this also bought this’ </li></ul><ul><li>These services can be used in other applications </li></ul><ul><li>Xmethods website has a list of some experimental services – </li></ul>
  26. 26. Creating a Web Service <ul><li>Web services can be built for existing applications, or created from scratch </li></ul><ul><li>A key element of a Web Service is an XML file with details of how to interact with the service – the WSDL (Web Services Description Language) file </li></ul>
  27. 27. Zetoc WSDL extract <ul><li> </li></ul><ul><li>… </li></ul><ul><li><complexType name=&quot;JournalRequest&quot;> </li></ul><ul><li><sequence> </li></ul><ul><li><element ref=&quot;srw:startRecord&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot;/> </li></ul><ul><li><element ref=&quot;bath:any&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; nillable=&quot;true&quot;/> </li></ul><ul><li><element ref=&quot;dc:title&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; nillable=&quot;true&quot;/> </li></ul><ul><li><element ref=&quot;dc:creator&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; nillable=&quot;true&quot;/> </li></ul><ul><li><element ref=&quot;oujnl:jtitle&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; nillable=&quot;true&quot;/> </li></ul><ul><li><element ref=&quot;oujnl:issn&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; nillable=&quot;true&quot;/> </li></ul><ul><li><element ref=&quot;oujnl:volume&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; nillable=&quot;true&quot;/> </li></ul><ul><li><element ref=&quot;oujnl:issue&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; nillable=&quot;true&quot;/> </li></ul><ul><li><element ref=&quot;oujnl:spage&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; nillable=&quot;true&quot;/> </li></ul><ul><li><element ref=&quot;dcterms:issued&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; nillable=&quot;true&quot;/> </li></ul><ul><li></sequence> </li></ul><ul><li></complexType> </li></ul>
  28. 28. Interacting with a Web Service <ul><li>Once the client application knows how to interact with the service, the client and service communicate using messages encoded in XML </li></ul><ul><li>These messages are frequently expressed in SOAP </li></ul><ul><li>These messages are generally passed over HTTP (but they don’t have to be) </li></ul>
  29. 29. SOAP <ul><li>A way of packaging XML information and passing it from one system to another </li></ul><ul><li>Allows one system to make requests of another and to process the reply </li></ul><ul><li>Systems can be completely different, running on different software, hardware </li></ul>
  30. 30. SOAP request <ul><li><soap:Envelope </li></ul><ul><li>xmlns:soap=&quot;;> </li></ul><ul><li><soap:Body> </li></ul><ul><li><zetoc:JournalRequest> </li></ul><ul><li><dc:creator>apps</dc:creator> </li></ul><ul><li><oujnl:title>materialia</oujnl:title> </li></ul><ul><li><oujnl:issn>1359-6462</oujnl:issn> </li></ul><ul><li><oujnl:volume>48</oujnl:volume> </li></ul><ul><li>… </li></ul><ul><li></zetoc:JournalRequest> </li></ul><ul><li></soap:Body> </li></ul><ul><li></soap:Envelope> </li></ul>
  31. 31. SOAP response <ul><li>HTTP/1.1 200 OK </li></ul><ul><li>Content-Type: text/xml </li></ul><ul><li><soap:Envelope > </li></ul><ul><li><soap:Body> </li></ul><ul><li>< zetoc:IdentifierSearchResponse > </li></ul><ul><li><srw:numberOfRecords>1</srw:numberOfRecords> </li></ul><ul><li><dc:identifier>RN125218404</dc:identifier> </li></ul><ul><li><zetoc:type>J</zetoc:type> </li></ul><ul><li><dc:title>Phase compositions in magnesium-rare earth alloys containing yttrium, gadolinium or dysprosium</dc:title> </li></ul><ul><li>… </li></ul><ul><li></ zetoc:IdentifierSearchResponse > </li></ul><ul><li></soap:Body> </li></ul><ul><li></soap:Envelope> </li></ul>
  32. 32. To recap … <ul><li>SOAP is a standard used for wrapping XML messages </li></ul><ul><li>The XML that is sent and returned within the SOAP wrapper is determined by the WSDL file for any particular Web Service </li></ul><ul><li>This is all done on a machine-to-machine level – you should never have to see a SOAP message </li></ul><ul><li>However we can demonstrate with XML SPY editor so we can see the SOAP messages [demo] </li></ul>
  33. 33. Search Retrieve URL / Web Service (SRU/SRW) <ul><li>Takes the core of Z39.50 and re-implements as Web Service </li></ul><ul><li>SRU and SRW are XML based protocols designed to be a low barrier to entry solutions for performing searches and information retrieval operations across the internet. </li></ul><ul><li>The protocol has two ways that it can be carried: </li></ul><ul><ul><li>via SOAP – Search Retrieve Web Service </li></ul></ul><ul><ul><li>as parameters in a URL. - SRU – Search/Retrieve by URL </li></ul></ul><ul><li>The primary function of SRU/SRW is to allow a user to search a remote database of records. </li></ul><ul><li>This is done via the searchRetrieve operation: </li></ul><ul><ul><li>the client sends a searchRetreiveRequest and </li></ul></ul><ul><ul><li>the server responds with a searchRetrieveResponse </li></ul></ul>
  34. 34. Example SRW request <ul><li>Most important part is the ‘query’. It contains a Common Query Language (CQL) string: </li></ul><ul><li>The request contains other parameters, all of these are optional except for ‘version’ </li></ul>
  35. 35. Example SRW response <ul><li>Response must contain ‘version’ and ‘number of records’ </li></ul>
  36. 36. Some SRU Requests <ul><li>SRU requests are URL with query string </li></ul><ul><li>‘ Explain’ request: Describes the database/index and functionality </li></ul><ul><li>A simple search for the term &quot;dinosaur“: operation=searchRetrieve&query=dinosaur </li></ul><ul><li>And the first of these records: </li></ul>
  37. 37. Open Archives Initiative (OAI) <ul><li>The Open Archives Initiative (OAI) provides is a mechanism for sharing metadata records based on HTTP and XML </li></ul><ul><li>Enables metadata records about resources to be ‘harvested’ from multiple distributed services, typically into a central database (which itself may be a Z39.50 target) </li></ul><ul><li>Records harvested periodically e.g.. Once a day, hour etc. </li></ul><ul><li>Generally considered to be an elegant, simple and efficient protocol </li></ul><ul><li>6 requests types or ‘verbs’ - GetRecord , Identify , ListIdentifier , ListMetadataFormats , ListRecords and ListSets . </li></ul><ul><li>JORUM Learning Object Repository Service OAI interface at: </li></ul>
  38. 38. Real Time Cross Searching VS. Harvesting <ul><li>Delays occur with real time cross-searching </li></ul><ul><li>The response time for searches sent to multiple search targets tends to be limited by the worst performing target or intervening network delays. </li></ul><ul><li>Very difficult to build flexible browse interfaces based on a distributed set of gateway databases. </li></ul><ul><li>OAI harvesting periodic so search results may not be accurate and up to date </li></ul>
  39. 39. OAI - Connect Portal <ul><li>Connect’ Learning & Teaching Portal </li></ul><ul><ul><li> </li></ul></ul><ul><li>Connect is a HE Academy project (used to be the LTSN – Learning and Teaching Support Network) </li></ul><ul><li>Connect harvests in records from HE Academy subject centres around the UK </li></ul><ul><li>Records harvested by server at Rutherford Appleton Labs </li></ul>
  40. 40. Connect Portal
  41. 41. Connect Portal
  42. 42. Connect Portal
  43. 43. Connect Portal
  44. 44. Connect Portal
  45. 45. Metasearch issues: Metadata <ul><li>Format </li></ul><ul><ul><li>As users searching cross-domain, it makes sense to use a cross-domain metadata schema. Dublin Core is a good contender for this and is required for use of OAI-PMH. </li></ul></ul><ul><ul><li>However, domains will use their own metadata schemas, such as the IEEE-LOM for learning objects. </li></ul></ul><ul><ul><li>Mappings required to enable cross searching, but some of the semantic richness of the original resource may be lost. </li></ul></ul><ul><li>Common Meaning – Semantic issues </li></ul><ul><ul><li>There needs to be agreement amongst content providers about the meaning of terms such as ‘title’, ‘article’, ‘research paper’, ‘learning object’ </li></ul></ul><ul><ul><li>There will inevitably be difficulties in reaching agreement about the meaning of metadata elements, as they are used differently in different contexts. </li></ul></ul>
  46. 46. Metasearch issues: Metadata <ul><li>Political </li></ul><ul><ul><li>The decision to make resources more widely available has implications for the organisations concerned: </li></ul></ul><ul><ul><ul><li>It may be seen as a loss of control or ownership </li></ul></ul></ul><ul><ul><ul><li>staff may not possess the skills required to support more complex systems </li></ul></ul></ul><ul><li>Legal </li></ul><ul><ul><li>legal requirements of Freedom of Information Legislation in several countries a significant factor in the dissemination of public sector resources. </li></ul></ul><ul><ul><li>The Intellectual Property Rights (IPR) of those providing sources may need to be protected. </li></ul></ul>
  47. 47. Why not just use Google? <ul><li>Its content is limited to the visible Web </li></ul><ul><li>Limited search functionality </li></ul><ul><ul><li>Can’t search by specific criteria (metadata) such as ‘publication date’, ‘author’, ‘educational level’ </li></ul></ul><ul><li>Little quality control </li></ul><ul><li>Google Scholar? </li></ul><ul><ul><li>Still a web crawl </li></ul></ul><ul><ul><li>Evidence that gives unreliable results </li></ul></ul>
  48. 48. NISO Metasearch Initiative <ul><li>This NISO MetaSearch initiative is trying to bring the area of metasearching together around a NISO standard. </li></ul><ul><li>“ Best Practices for Metasearch” document due out June 15 th 2005 </li></ul><ul><li> </li></ul>
  49. 49. Overview <ul><li>Introduction to Cross searching / metasearch </li></ul><ul><li>The Problem – why metasearch? </li></ul><ul><li>JISC Information Environment </li></ul><ul><li>Quick introduction to XML and Web Services </li></ul><ul><li>Metasearch Technologies </li></ul><ul><ul><li>Z39.50, SRU/SRW, OAI </li></ul></ul><ul><li>Metasearch issues </li></ul><ul><li>NISO Metasearch Initiative </li></ul>
  50. 50. Contact Adrian Stevenson Learning Technology Services Internet Services University of Manchester adrian.stevenson [at] Tel: +44 (0) 161 306 3109