Smart Search Client Contract
(version two: 02/11/1999)
Note: changes from the original are indicated in red

I. Background

This project was conceived by Bill Mark, hereafter referred to as the client, as a means to reducing the frustrations associated with searching the internet. Existing search engines are inadequate because they fail to precisely match what a user inputs as their search request with appropriate links that satisfy exactly what the user is wishing to do. It is the goal of this project to relieve much of that frustration by accepting the user's natural language request, analyzing said request for key verbs and nouns, and utilizing the resulting key words as the indices/queries into the database.

More specifically, the user will be asked to input a phrase indicative of what they wish to do. This input will be passed to a sentence analyzer, which will extract the key nouns and verbs from the phrase. These keys will then be input into our system, which will return its best guesses as to what the user wants to do, prompting the user to further detail their request and let the user continue from there. After the user makes a selection, from this point the system will access a database. The database will store web site URL's which have been categorized, and the key words will be the means to finding the most appropriate URL's that match what the user requested.

II. Contractor Obligations
Brett Chavis, Mike Giles, Leslie Jacobson, Randy Murdock, and Patrick Tollison shall hereafter be collectively referred to as the contractor. The contractor agrees to provide the client with a functional software product, meeting the specifications outlined below in section II.B, entitled Primary Requirements. The Smart Search project shall be delivered to the client no later than May 1, 1999. Should the project be completed prior to the aforementioned date, the contractor agrees to continue development as outlined in section II.C, Secondary Requirements. This additional software shall also be delivered no later than May 1, 1999.
A. Documentation Requirements
The contractor agrees to provide the client with adequate documentation, including both an on-line and printed user manual, and a printed technical manual. The user manual shall include information intended to aid in the use of the system. The technical manual shall entail the details of design and implementation. The technical manual's audience shall be assumed to be the intermediate or advanced programmer.
B. Primary Requirements
a. a web page user interface, consisting of a CGI form to accept user input
b. a script shall be written in Perl to accept the user input from the aforementioned CGI form
c. a sentence analyzer shall be found (or worst-case implemented) to interpret the user's input
d. a database to store URL's which are retrieved using the output from the sentence analyzer
e. software to integrate items a through e into one system
f. software to maintain said system, which will include methods to add/delete categories and URL's
C. Secondary Requirements
a. geographical location customization, perhaps through registration, so that the system recognizes from what region the user is from and can utilize that information to return region-specific search results
b. implementation of shortcut terms such as "go" in AOL.
c. additions to the categories recognized, supported, and indexed in the database
III. Client Obligations
The client agrees to provide the contractor with the resources outlined below.
A. Resources
a. reasonable funds to purchase a sentence analyzer, if required
b. use of the department's CGI server
c. access to department's machines for the development process
d. database software if necessary
e. extra disk space
IV. Other Resources
A. Other Resources for which the client is not responsible are the following
a. pre-existing search engines
b. Perl and database resource books
c. texts about other necessary topics
V. Risks
A. The possibility that a pre-existing sentence analyzer may not be able to be found, will lead to the necessity to implement one ourselves thereby causing serious time constraints. Should this risk materialize, the contractor will attempt to implement a simple one that would suffice for the scope of our project. Should this implementation absorb most of our allotted project time and remain incomplete, what is completed shall be delivered to the client so that he may utilize a future team to finish development or do otherwise as he sees fit. The result of this implementation will result in a decrease in the amount of time dedicated to supplementing the database, i.e. the database will not be as comprehensive as desired.

B. The contractor's inexperience in Perl and database programming gives rise to the necessity to learn such tools. The time used to learn said tools takes away from time that could be dedicated to implementation, increasing the amount of time required to complete the project. Should this occur, the contractor will implement as much as possible. What is completed shall be delivered to the client, again so that he may utilize another team for completion, or to act otherwise as he sees fit.

VI. Signatures of Agreement
_________________________________________________
Bill Mark, clientDate:
  
_________________________________________________
David Stotts, bossDate:
  
_________________________________________________
Leslie Jacobson, producerDate:
  
_________________________________________________
Patrick Tollison, technical directorDate:
  
_________________________________________________
Brett Chavis, contractorDate:
  
_________________________________________________
Mike Giles, contractorDate:
  
_________________________________________________
Randy Murdock, contractorDate: