This section of the tutorial is for learning your way around the Executable English / IBL system (IBL). At the end of this tutorial, you will know how to navigate the IBL, get an agent to answer questions for you, and see one of the many applications for the IBL system.
What, you may well ask, is an agent? It's a collection of rules and facts that the IBL can use to do something useful for you. Think of it as a program, written in English. Think of the IBL as something that knows how to run the program.
Let's assume that you are looking at this tutorial in your browser. As you go through the tutorial, it's best to actually run the examples. There is no need to download anything, just have a second browser window open. Then, it will be easy to keep your place in this tutorial in one window, while running the examples in the second window.
If you do not already have a second browser window available, hold down the Ctrl button and click on N.
In your second browser window, go to www.executable-english.com/ibl_login.html
On the login page, the only part we'll look at for now is this:
As you can see, the ID is already filled in with "demo". The Password is filled in with "author". With this password, you can both write and run agents. There are some agents provided as demonstrations, and we will look at these in this tutorial. So, what is an agent useful for? Let's look inside one.
Click "GO". The page that comes up should look something like this:
To work with an agent, you would select it from the list on this page. In the screenshot above, PhoneBilling1 is selected. After selecting the agent you want, you would choose an action from the menu above the agent list. (Typing in an agent name is also used for some functions, such as creating a new agent or copying an existing agent to a new name.)
The PhoneBilling1 agent is the one we'll use for this tutorial. We will start by going to its Question Menu. Click on PhoneBilling1 in the list, and then click the Go button top right. You will be brought to the agent Question Menu, which contains this:
The Question Menu lists the questions you can ask an agent to extract information. The questions are written in blue. We will come back to these questions later. First, we should look at the PhoneBilling1 agent, so we know what the IBL system uses to answer the questions.
The agent can be viewed by selecting "Go to View or Change the Agent" from the menu at the top. The page that comes up will look like this:
Each box of text in the agent is a comment, a table, or a rule. The rules and tables are used to answer questions like those in the Question Menu; you will see in detail how this process works a bit later. The table shown above serves as part of a database for the IBL. For this tutorial, we will look only at the sections of the agent pertaining to this table. This should simplify things considerably, but keep in mind that the IBL is capable of much more complex tasks. (We will go into the exact definitions of rules, tables, and comments in Part 2 of the tutorial, Writing Your Own Agents.)
Take a look at the table shown above that starts with "on this-date..." Suppose that you need to know the total minutes that customer 001 used to make calls. To do this by hand, you would subtract the start time from the end time for each call (8:57 - 8:47 = 10 minutes, and so on) and add the amounts to get the total number of minutes. So, how does the IBL agent do this? We can have the agent do this procedure for us using the Question Menu.
Select "Go to the Question Menu" from the menu at the top of the page.
The very first question on the list is:
customer some-cust-number made calls totalling some-total minutes
This is the question we want answered - What was the total number of minutes for customer 001? Click on it, and a second window will appear:
The blue text indicates that you can specify data to go in the sentence. We want to know the total number of minutes customer 001 spent on the phone; that is, we want to replace "some-cust-number" with "001". Click on some-cust-number. Another box will appear, with the options of "Choices Menu", "Type in a Value", and "Select a Limit". Any of the three options will allow us to plug in "001" where some-cust-number is, but the easiest in this case is "Choices Menu". Select "Choices Menu". A list of choices will appear in another box. Select "001" in that box, and the question will appear like this:
The question is ready to be asked. Click "Ask", and the IBL will find the value of some-total and display it, as shown below:
So, we see that the IBL is capable of simple calculations using a database. It was able to examine the data in the table and, using the rules we will look at, conclude that customer 001 used 124 minutes to make calls. So, how did it do this? Which rules did it use? The Explanation page will tell you these steps.
Click on "Get an Explanation" from the menu at the top. You will see a page starting with:
The Explanation page contains several conclusions that the agent made from its rules. Some of these conclusions, such as the first two, apply to what plan customer 001 is on; this is used to verify that customer 001 is on a plan with the hypothetical phone company. The third conclusion, shown below as well, is the one we're most interested in: what rules did the IBL use to tell that customer 001 spent 124 minutes on calls?
Clicking on any of the text in blue will ask the agent "How do you know?" If you start by clicking on on 20020902 customer 001 made call 1 lasting 10 minutes, and continue to click on the blue text, you can trace the logic back to:
Earlier in this tutorial, we said, "To do this by hand, you would subtract the start time from the end time for each call (8:57 - 8:47 = 10 minutes, and so on) and add the amounts to get the total number of minutes." This is effectively what the IBL agent has done - it used its rules to figure out the number of minutes that the first call lasted.
To end your session, select Go to the Start Page from the menu at the top. You have completed the first part of the tutorial. You now know how to navigate the IBL, what an agent can do, and have some idea as to how it works. You also have seen a glimpse of what the IBL is capable of by looking at a sample agent. In Tutorial Part 2 , we will show you how to write your own agent, revealing more of what the IBL can do on the way.Meanwhile, you may like to run some of the agent programs that are provided in the demo, such as SemanticWebOntology1 and Medmine.