Transcript Document

MyLibrary@hand : Enhancing Our
Library Services
By
KM Ku and Dave Low
University of Hong Kong Libraries
Searching with your Palm...
Why PDA delivery option?
• Libraries are in the information collection and distribution
business
• We spend 27% of our collection development budget
annually on electronic forms of information
• But just owning the information is worthless unless we can
distribute it to our faculty and students.
• But because Hong Kong is a wireless society, with 83.5%
of its citizens using a mobile phones, we decided that we
should provide our students and faculty with access to our
information resources using hand-held devices
We begin with Palm because
• There are already large numbers of educational
databases that have been adopted to PDA use
• The Tungsten C is wireless and it can take
advantage of the technology already in place at
HKU
• They were enthusiastic about wanting to partner
with us to develop HKU Libraries-specific
software
Wireless Hot Spots – the trend
Source: PC Magazine, Sep 16, 2003 , p.25.
• MyLibrary@Hand - Launched 6 Oct 2003
• HKU Libraries partners with PalmOne,
Syracuse International (donated software)
and Sun Microsystems (donated server).
• Hong Kong’s first wireless LAN enabled
Palm handheld solution to access library
resources and services.
Where to go wireless?
• Over 200 Wireless access points have been
installed on campus.
• 22 Wireless access points have been installed
inside the Main Library
Wireless Access Point
Within 70 m range
How to go wireless?
• Use a Tungsten C
Searching with your Palm...
HK’s first Wireless
Westlaw service
• Searching of
Dragon by
using the
Palm’s web
browser
Gecko: PDA version of Dragon
Enjoy the Wireless Services
• Mobile Gate
– Gateway to get library information
• Searching
– E-form, access and search Dragon (library
catalogue) and other databases
Mobile Gate
Library information
anytime anywhere
Who to contact
in
HKUL guides and
Research
Library
activities
library information
at a glance
Mobile Gate
Searching with your Palm...
Prepare Offline
Submit Online
Read Offline
You can prepare your
requests well in advance
before you access an
Internet wireless hotspot.
Libraries Online Information
You can search
statement in Dragon,
HKUL catalogue. You
can choose to search in
a specific field, e.g.
author, title
Libraries Online Information
Search articles on a topic
across several databases.
Libraries Online Information
Select your subject
discipline for alert
services on any new
publications.
Libraries Online Information
Once you are within an
Internet wireless hotspot,
submit your completed eforms and search queries
by tapping on
Submit Pending
Request.
Libraries Online Information
Getting the results
The search results will
be displayed for
viewing at your palm.
Libraries Online Information
Implementation of One Stop
Search by XSLT
Agenda
• Flow of One Stop Search
• Reason to use Extensible Stylesheet Language
Transformation (XSLT)
• Difficulties on implementation of One Stop
Search by XSLT
• Our solution
• Our implementation
• Summary
Flow of One Stop Search
1. Capture the search keyword
2. Issue the search to different search engines
3. Collect the result and click on next button until
we got all the records
4. Compile the search results from different
search engines
5. Present the result to the user
Flow of One Stop Search
One Stop
Search
ProQuest
Science Kluwer
Direct Online
Capture Keyword
Search and next
Search and next
Search and next
Compile Result
Present Result
Reason to use XSL
• Simple
– XSL is plain text
• Multiplatform
– Can run on any machine with XSLT Engine
• Easy to maintain
– When the output layout of target search engine
change
• Just change the content of XSL file
Two main problems when using XSL
1. XSLT engine requires well formatted XML
files as input
–
–
Web based search engine output in HTML only
HTML is not well formatted XML
•
•
HTML allows open tag only for some tags
E.g. <br>
Solution
1. Use HTML tidy (http://tidy.sourceforge.net/) to
convert HTML to well-format XML
–
–
–
“A HTML syntax checker and pretty printer. It can be used
as a tool for cleaning up malformed and faulty HTML. In
addition, it provides a DOM interface to the document that
is being processed, which effectively makes you able to use
it as a DOM parser for real-world HTML”
It is open source
It has many implementations such as Java, Perl and Python
Solution
• Sample code in Java
StringReader strReader = new StringReader(html);
Tidy tidy = new Tidy();
return tidy.parseDOM(strReader, null);
• HTML => XML
Two main problems when using XSL
2. There is no browse function in XSL
–
–
In one-stop search, we need to click the next
button several times to collect all the result
We need to tell the program to find the next button
and then issue a browse request based on the URL
of the next button
Solution
2. Add browse function to XSL by XSL
extension
–
–
–
XSLT allows two kinds of extension, extension
elements and extension functions
Type of extension depends on XSLT
implementations
Detail can be found
http://www.w3.org/TR/xslt#extension
Solution
• Our implementation
–
–
–
–
Select a java based XSLT Engine
Use java to write the function
Compile it into classes and then jar
Include the jar file into the classpath of the XSLT
Engine
– Run it
Sample code on XSL
extension
Define
Class
to be used
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:HKUL="http://www.lib.hku.hk/java/hkul.apps.web.Browser"
exclude-result-prefixes="HKUL">
Crea
<xsl:template match=“/">
te it
<xsl:variable name="url">http://www.lib.hku.hk/</xsl:variable>
<xsl:variable name="browser" select="HKUL:new($url)" />
<xsl:variable name="content" select="HKUL:browse($browser,$url)" />
Call the
<xsl:apply-templates select="$content/html/*" />
</xsl:template>
browse
Our Implementation
Browse
Next
Tidy
Parse
Result
Our Implementation
• Both client and server programs are written by
Java
• Client and server program communicated by
HTTP
• Making use of wireless network
Our Implementation (Client side)
• Palm OS
– Sun’s Java 2 Platform, Micro Edition (J2ME)
http://java.sun.com/j2me/
– Mobile Information Device Profile (MIDP)
http://java.sun.com/products/midp
Our Implementation (Server side)
• Application Server (Running on Sun Solaris with
JDK1.4)
– Jakarta Tomcat (http://jakarta.apache.org/tomcat)
– Jakarta Struts Framework (http://jakarta.apache.org/struts)
• Xerces XSLT Engine (http://xml.apache.org/#xerces)
• MySQL database (http://www.mysql.com)
Summary
• Implement the one stop search by XSLT
– Simple
– Multiplatform
– Easy to maintain
• Two problems
– HTML is not well formatted XML
– No browse function in XSL
Summary
• Solutions
– HTML Tidy
– XSL Extension
• Implementation
–
–
–
–
J2ME
Jakarta Tomcat + Struts
Xerces
MySQL
Questions?
• Thank you