On Building a Custom Research Paper Web Application

advertisement
A web application for browsing research papers
By: Rhea Dookeran 09’
Overview
 Goal: To build an interactive web interface based on the
XML output of Amy’s Machine Learning algorithms.
 Usage: A class tool for CS 349 that enables convenient
browsing and selection from a corpus of CS research
papers.
 Technology
 PHP
 XML
 HTML, CSS, JavaScript
Comparison
 CiteSeer (http://citeseer.ist.psu.edu/citeseer.html)
 Focuses on CS/IS literature
Positive
 Allows you to search by through citations,
acknowledgments and Google docs.
 Can assign tag to the document.
Negative
 Hovering shows one abstract at a time.
 Clicking on the link redirects you to a new page.
 Abstract and list of citations
CiteSeer
Comparison
 GoogleScholar (http://scholar.google.com/)
Positive
 Large corpus
 Does not cover one specific field of study.
 Familiar
 Follows the generic Google Search Engine Results Page (SERP)
layout. (Minus ads)
Negative
 Hard to compare papers. No abstract: only shows the line where
search term/s appear. Have to click on link to learn more.
Google Scholar
Comparison
 Citeulike (http://www.citeulike.org/)
Positive
 Can add tags to documents and filter by common tags
 Overall Web 2.0 style
Negative
 Not visually appealing. Must scroll down to see results.
 Must click on title to learn more (slide menu categories)
Citeulike
Our System’s Key Features
 Allows user to compare papers side by side before choosing to
view the whole document. (slide menu and hover functionality)
 Result filtering:
 Author- List, click or search
 Keyword- Click, cloud or search
 Title- Cloud or search
 Easy to use and visually appealing
 Dynamic/intuitive interface
 Menus scroll with user
 PDF files open in a new tab (easily forgotten in other systems)
 Not built over a relational database.
So how does it work?
 XML (Extensible Markup Language)
 Tag based data storage format
 To allow one to describe a document in terms of its structure,
rather than its page layout
 Used PHP’s Document Object Model (DOM) library
 ‘context-rich’
 Tags can be defined to specify both element names and
attributes.
 <summary filename=“Arasu-SearchingTheWeb.pdf”>
 In essence, the tags describe a flat-file database
So how does it work?
 PHP
 Widely used scripting language that can be embedded
into HTML
 Dynamic content using static file
 Reading demonstrated how to use the DOM Library to
parse XML.
 Runs on the web server and can run on most OS’s
 Free download:
 Wamp Server running on PC
 Includes Apache, MySQL and PHP5 for windows
 http://www.wampserver.com/en/
<papers>
<summary fileName="Arasu-SearchingTheWeb.pdf">
<title>Searching the Web</title>
<authors>
<author>Arvind Arasu</author>
<author>Junghoo Cho</author>
<author>Hector Garcia-Molina</author>
<author>Andreas Paeckpe</author>
<author>Sriram Raghavan</author>
</authors>
<abstract>
An overview of current Web search engine design. After introducing a generic search engine architecture,
we examine each engine component in turn. We cover crawling, local Web page storage, indexing, and the
use of link analysis for boosting search performance. The most common design and implementation
techniques for each of these components are presented. For this presentation we draw from the literature
and from our own experimental search engine testbed. Emphasis is on introducing the fundamental
concepts and the results of several performance analyses we conducted to compare different designs.
</abstract>
<keywords>
Authorities, crawling, HITS, indexing, information retrieval, link analysis, PageRank, search engine
</keywords>
</summary>
…
</papers>
So how does it work?
 JavaScript (Jquery)
 Used to create slide effects
 One of many useful and extensive JavaScript libraries
 “…simplifies HTML document traversing, event handling,
animating, and Ajax interactions for rapid web development.”
 Code is concise thanks to “chainability”
 Object-oriented programming design pattern
 Every method within jQuery returns the query object itself,
allowing you to 'chain' upon it, for example:
 menuYloc=
parseInt($(name).css(“top”).substring(0,$(name).css(“top”).indexOf(“
px”))) – one line grabs the “100” out of “…top:100px;…” in css file
 Free and easy to download
Summary

Process
 3 major iterations
 1.0- Basic display & browsing of all documents (10/page)
 2.0- Basic display s.t. keywords were active filtering links
 3.0




Active author, and keyword links
Floating side menus – list of authors and paper frequency, # to display
Basic search (by title, author or keyword) functionality
Cloud of most common words.

Speed Bumps
 Dealing with non-alphanumeric ASCII characters
 Figuring out the most appropriate term search algorithm
 Version compatibility issues -> wamp server

Positive
 Gained valuable experience using popular web application development tools.
 Had fun designing!
 Research sparked interest in semantic web
Future Plans
 Add tag assignment functionality.
 Integrate the system into the Semantic Web
using RDF.
 Expand upon filtering functionality
 Modularize code for use in other CS courses
Sources
 XML and PHP
 http://php.net/
 http://www.ibm.com/developerworks/library/osxmldomphp/
 http://www.sis.pitt.edu/~mbsclass/standards/fischer/XML
Uses.html
 PHP/Apache/MySQL PC download
 http://www.wampserver.com/en
 Jquery
 http://jquery.com/
Download