On Building a Custom Research Paper Web Application
Download
Report
Transcript On Building a Custom Research Paper Web Application
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/