next up previous
Next: Results and Conclusions Up: A Client-Server Interface Previous: LSI:Query

4.2 Implementation

Both the LSI:Book and the LSI:Query HTML documents are created by programs executing under the Common Gateway Interface (CGI) [19]. In the following sections, the creation of LSI:Query HTML documents is considered, and the interactions between their generating programs and the LSI++ Application Programming Interface is discussed. See [18] for details on the creation of LSI:Book document and C++ classes used to implement the interface.

The LSI:Query form can be created in several different ways, depending on the configuration straightforward configuration, LSI:Query is created by an LSI search engine running on the HTTP server itself. The HTTP server starts the search engine and passes the contents of the form to the search engine with CGI. The search engine processes the query and passes the resulting LSI:Query HTML document to the server, who then passes it to the browser (Figure 8).

 Figure 8

If the HTTP server is not dedicated specifically to LSI (for example, the HTTP server handles all the WWW requests for an entire department), is expected to handle a large number of LSI queries, or is installed on a slow machine, the querying process can be offloaded to one or more continuously-running backend processors. The HTTP server, acting as a frontend, receives an LSI search request from a browser and passes it, via CGI, to a small client program, lsiRemote, who is then responsible for connecting to the backend for that book, sending the query, and receiving the resulting LSI:Query document. As lsiRemote receives the resulting LSI:Query form, it passes it to the HTTP server, who then passes it to the browser (Figure 9).

 Figure 9

Although the computation is done at different locations (in the first configuration, on the server itself; in the second configuration, on a remote backend processor), both search engines perform the same computation and produce equivalent LSI:Query forms. Since the configurations differ only in how they receive their input and write their output, only the production of the LSI:Query document, regardless of where the document is produced, is considered here.

On instantiation (or, upon receiving a connection from an lsiRemote client), the program that produces the LSI:Query document accesses the CGI information passed to it, reading the CGI information into an internal data structure. It then extracts the newBook, bookNum, and numFactors values from the CGI input. If newBook is non-negative, the LSI:Query page is being accessed from the LSI:Book form. The initial LSI:Query page (Figure 4) is sent to the HTTP server and then sent to the browser. On the other hand, if newBook is negative, the CGI information contains a query for the book identified by the value of bookNum in the document database. The value of numFactors is sent to the query engine to control the number of factors used when processing the query. See [18] for a detailed description of the CGI key-value pairs used to perform a query.

Once all the parameters for the query are set, the LSI++ performQuery() member function is called to compute the similarity between the pseudo-document representing the query and each term or document vector. When performQuery() is finished, a new HTML document is created. The steps needed to produce a new HTML form (one step for each region of the document) is discussed in [18].



next up previous
Next: Results and Conclusions Up: A Client-Server Interface Previous: LSI:Query



Michael W. Berry (berry@cs.utk.edu)
Tue Jul 23 08:47:48 EDT 1996