Contact us


RB07 Architecture
  • Java 6 –  The RB07 is written as an applet in Java 6. We experimented with other languages such as Javascript, but due to the computational demands of the dynamic interface, Java was required. Every mouseover of a facet requires a new set of results to be computed and displayed. To maintain the responsiveness of the user interface, these computations must happen in less than about 250ms and are computed by the Java applet running in the client's web browser. To achieve this, each document has an associated array of Java BitSets that store the facet information. These BitSets are then ANDed or ORed together as needed to compute the query results.

  • SOLR/Lucene –  Unlike some previous RB versions, in the RB07 there is no traditional relational database that stores the data. Instead, when we decided to implement full-text search capabilities, we chose to store all the data in a SOLR/Lucene index. In addition, all the facet data is stored in a serialized Java data structure that is loaded on start-up. This is requried for the fast calculation of the dynamic queries in the user interface. SOLR provides a web service that the RB07 uses to do full-text searches over the dataset and also to retrieve result fields that are not stored in the facet data structure.

The RB07 uses XML configuration files to describe an instance and the data objects (i.e. the documents to be indexed). The example files linked to below were used to create the Understanding the RB07 demo.

The first type of XML configuration file is the RB instance description file. This file describes the facets, facet values, and result fields that make up this RB instance. The RB instance description also includes a list of all the data description files (see below) for this instance. Here is a link to an example description.xml file.

The second type of XML configuration file is a data description file that specifies the facet values that apply to each document to be included in the instance. These data description files use a format that can be loaded directly into SOLR if desired. Below are links to example data description files: