PaperScope is programmed
completely in Java and utilizes a number of different open
source java libraries for displaying the graph and performing
other functions. The program can be basically divided into
three components, the query backend and data structure, the
graph and graph tools, and the main GUI interface.
ADS
Access and Data Structure |
The queries for papers are
simply performed by sending query information to the standard
HTTP interface of the ADS (http://adsabs.harvard.edu/). The results are returned in XML
format and are then translated using a DOM parser into a Java
object array. The contents of the object array are then
checked against the existing papers on the graph for duplicates,
and the results are collected and transformed into the GraphML
format used by the visualization library.
The graph is built using the
Prefuse Visualization library (www.prefuse.org).
Prefuse uses an XML based backend called GraphML to build the
graph object and the visualization objects (nodes and edges).
Prefuse is an adaptable library that can be used for
constructing many types of visualizations, and the one that
PaperScope currently uses is the Radial Graph. Future
versions of PaperScope may include different types of visuals
such as tree views or other extended graph views.
The main GUI is built using
Java Swing and includes the Java 6 provided version of the
SwingWorker class (for running queries and other tasks as
background threads). A backwards compatible version of
PaperScope that does not use Java 6 is under development for Mac
users and users that cannot upgrade to Java 6 (expected to be
ready by October 2007).
Other open source libraries
used by PaperScope:
-
Apache Lucene (http://lucene.apache.org/)
- Lucene is an open source search engine which is included
in PaperScope for providing search results on the nodes in
the graph (the 'Search' box tool).
-
BrowserLauncher 2 (http://browserlaunch2.sourceforge.net/)
- An open source tool for opening a browser window on the
client machine (a task which is more complicated than it
sounds...)