I would argue for the use of a new term that I call Enhanced Computing (EC) to identify computer programs that enable better use of information. These applications would utilize many AI-based technologies. Table 1.1 lists in alphabetical order the areas of AI that are specifically featured in this book.
Table 1.1. Alphabetical listing of areas of AI featured in this book.
Agents are computer programs that perform specific tasks for their owners and may be called upon to interact with other agents. They are usually mobile, meaning that they are able to propagate themselves across networks and execute on remote computers. They also may be able to learn and act proactively. Some may be reactive and simply respond to inputs or other agents. Others may be sent out to do specific things or just gather information. Agent applications can be referenced by several different names. Many people refer to them as bots, spiders, or personal assistants. In this book we will examine an agent application for practical business uses, but the potential of this AI branch goes well beyond that.
Data mining involves the extraction of meaningful information from data by identifying patterns within the data. Patterns discovered can be utilized to make predictions about future data. Uncovering trends in the data allows developers to build powerful applications that can anticipate future needs and streamline existing systems. In this book, Microsoft's Analysis Services is used to perform data-mining functions.
Rule-based systems determine what programming logic to execute by evaluating a series of rules. Rules are usually represented with IF. . .THEN logic and are stored in a central repository. In this book, we examine a rule-based application which is used to add fields to a SQL Server database. The application determines how and where to add the field according to the evaluation of the rules.
Speech recognition involves the translation of human speech into machine-readable instructions. Speech-based applications also have a voice component in which the application generates natural-sounding speech. In the last few years there have been significant advancements in the quality of machine voices. The Microsoft .NET Speech SDK, featured in this book, offers an easy and low-cost method of implementing these types of applications.
By utilizing AI technologies, traditional applications can be improved their functionality and usefulness extended. This can include but is not limited to the following:
Using natural interfaces, such as speech, to make the user experience optimized and more intuitive.
Creating autonomous and personalized processes that allow users to do more with less effort.
Creating adaptable programs that are more reactive to their environments
Extracting meaningful information from large datasets by identifying patterns within the data.
Incorporating learning methods so that the application's performance improves over time.
The premise of this book is that beneficial applications can be created today based on enhanced computing technologies. The sample applications provided in this book are business related because that is an area most readily amenable to useful innovations. They are also practical in nature. Interested readers may wish to customize the code and use it at their own companies.
The sample applications in this book were designed to demonstrate key techniques presented in each chapter. Although limited forms of security were considered, readers should not assume that the sample applications are production ready.
Readers interested in using the sample applications as a starting point for building their own solutions should thoroughly evaluate the code for security and performance weaknesses.
The sample applications incorporate techniques from four AI areas (listed in Table 1.1). This does not mean that EC applications are limited to using just these technologies. Any AI-based technology that can be used to extend the capabilities of traditional applications could be included.