Chapter 24: Developing with English Query

Many database administrators have developed database-driven Web sites using Active Server Pages (ASP), Microsoft ActiveX Data Objects (ADO), and SQL Server or another database server only to find it difficult for their users to search the database and report on it.

It is easy enough to build a query form that allows users to search based on one or two fields, but it is much more difficult to build form-based Web pages that allow searches across multiple tables and multiple fields. A more flexible search is difficult to implement (there are many problems beyond the user-interface and Web-coding aspects, such as defining how the various tables and fields are related to each other) and even the best interface can be difficult for the casual Web visitor to use and understand.

Microsoft English Query, which was introduced in Microsoft SQL Server version 6.5, Enterprise Edition, and has been improved for SQL Server version 7.0, addresses this issue by providing users with the ability to use natural language when querying existing database-driven Web sites and applications.

Using English Query to develop an initial natural-language search is easy-it is only a small part of the effort of building your overall application-and the development process is more conceptual than traditional programming. In fact, the process can be mastered by nonprogrammers who have some database background, for example, database administrators and Web-content developers who work often with databases.

English Query ships with an engine, a component object model (COM) server, that is used at run time to convert a user's English language question to an SQL statement. English Query also provides sample ASPs that you can embed in a Web site to drive the engine, prompting a user for questions, executing the engine's returned SQL queries, and displaying query results to the user.

This chapter explains how to author an English Query domain and how to embed the domain and the English Query engine in your Web site.