This chapter covers:
Leveraging intelligent web applications
Using web applications in the real world
Building intelligence in your web
So, what’s this book about? First, let’s say what it’s not. This book isn’t about building a sleek UI, or about using JSON or XPath, or even about RESTful architectures. There are several good books for Web 2.0 applications that describe how to deliver AJAX-based designs and an overall rich UI experience. There are also many books about other web-enabling technologies such as XSL Transformations (XSLT) and XML Path Language (XPath), Scalable Vector Graphics (SVG), XForms, XML User Interface Language (XUL), and JSON (JavaScript Object Notation).
The starting point of this book is the observation that most traditional web applications are obtuse, in the sense that the response of the system doesn’t take into account the user’s prior input and behavior. We refer not to issues related to bad UI but rather to a fixed response of the system to a given input. Our main interest is building web applications that do take into account the input and behavior of
1
CHAPTER 1 What is the intelligent web?
Every user in the system, over time, as well as any other potentially useful information that may be available.
Let’s say that you start using a web application to order food, and every Wednesday you order fish. You’d have a much better experience if, on Wednesdays, the application asked you “Would you like fish today?” instead of “What would you like to order today?” In the first case, the application somehow realized that you like fish on Wednesdays. In the second case, the application remains oblivious to this fact. Thus, the data created by your interaction with the site doesn’t affect how the application chooses the content of a page or how it’s presented. Asking a question that’s based on the user’s
prior selections introduces a new kind of interactivity between the website and its users. So, we could say that websites with that property have a learning capacity.
To take this one step further, the interaction of an intelligent web application with a user may adjust due to the input of other users that are somehow related to each other. If your dietary habits match closely those of John, the application may recommend a few menu selections that are common for John but that you never tried; building recommendations is covered in chapter 3.
Another example would be a social networking site, such as Facebook, which could offer a fact-checking chat room or electronic forum. By fact checking, we mean that as you type your message, there’s a background check on what you write to ensure that your statements are factually accurate and even consistent with your previous messages. This functionality is similar to spell-checking, which may be already familiar to you, but rather than check grammar rules, it checks a set of facts that could be general truths (“the Japanese invasion of Manchuria occurred in 1931”), your own beliefs about a particular subject (“less taxes are good for the economy”), or simple personal facts (“doctor’s appointment on 11/11/2008”). Websites with such functional behavior are inference capable; we describe the design of such functionality in chapter 5.
We can argue that the era of intelligent web applications began in earnest with the advent of web search engines such as Google. You may legitimately wonder: why Google? People knew how to perform information retrieval (search) tasks long before Google appeared on the world scene.