Homepage for IRLS612

Martin Frické

Material may be added or changed on a continuing basis. One file that will remain untouched throughout is that containing the course requirements.


Enrollment in this class and class size.

 

The graduate college usually cancels classes that have 7 students or less enrolled, and cap a class at the upper limit of 35 students. I am already teaching two classes in Fall 1998 and this will be the third. If less than 10 students enroll in this class, it will be canceled and run again at the first opportunity, possibly Spring 1999. In the past, 10 students or more typically do join it, so I am expecting the class to run. If it does not, we will write to all those that have signed up for it.

General overview

 

The study of expert systems is a sub-discipline of artificial intelligence, and the latter is the attempt to use computers and computer programs to do tasks which require intelligence. Expert systems are programs that reason; but what distinguishes them from general purpose reasoners or theorem provers is that they use domain specific knowledge-- that is, they have an expertise in a certain area or subject matter. A particular expert system may have some expertise concerning medical diagnosis-- this does not mean that it is also expert on other matters, for example, on determining where to locate a drilling rig when searching for oil.

Expert systems have had a chequered history. They failed to live up to exaggerated promises that were made on their behalf when they first appeared. Yet they have had occasional successes. And they seem to be making a bit of a come back. There is much talk these days of 'agents'. These are pieces of software that work autonomously on behalf of the User (or of other agents). Typically agents will interact with their environment and reason to carry out their tasks. Such agents will contain expert systems (or something very similar). An illustration of an agent at work with information resources might be that of a self-contained computer program that goes off on its own down a network, perhaps the Internet, and returns with material to meet your information needs.

Study of expert systems and agents can only go so far by reading about them. Really you need some practical hands on experience (for the systems frequently do not work as you expect them to). This 'hands-on' need gives us a problem: which development environments to use. An assumption that is made is that students in this course have no computer or computer science background. The prototypes of most expert systems have been written in one of the two artificial intelligence languages, LISP or Prolog. And in the past students in this course have been taught one or the other. But this approach is slow to getting to the actual expert systems. What we will try this fall is to use the CLIPS system for the expert systems and CLIPS and Java for agents. [These are readily available for all computing platforms.] I am hoping that students will have to think primarily about rules (that is, items of the form 'If A then B', for example 'If you have a temperature, you are sick') and that all other technicalities can be pushed to the background.

Students will gain an initial familiarity with CLIPS. Then we will look at standard techniques including production rule systems, pattern matching, forward and backward chaining and reasoning under conditions of uncertainty. In the second third of the course, students will be encouraged to work in teams, to seek out problems in information resources that would benefit from expert system approaches, and to write suitable expert systems. In the final third, we will look at intelligent agents on the Internet.

The course as a whole will make extensive use of computers and will have substantial academic content. It is assumed that a student in this course has NO previous background in computing.

More on agents

 

University of Maryland Baltimore County Agent Web

What is the idea of agency, as it is used in software?

  • autonomy-- agents operate without the direct intervention of humans or others, and have some kind of control over their actions and internal state
  • communicate with humans and other agents
  • intentionality (working toward a goal)
  • sense details of environment and their own state
  • react appropriately
  • take initiative
  • exist continuously over a reasonably time period; they do not just run a single quick computation and stop (in contrast to a calculator, say)

Sometimes folk want to go further and ascribe some other properties to agents, especially human intentional ones (like 'believe', 'hope', 'think')

  • rationality, act appropriately towards achieving its goals
  • adaptivity: an agent should be able to adjust itself to the habits, working methods and preferences of its User;
  • mobility: the ability of an agent to move around an electronic network;
  • benevolence: is the assumption that agents do not have conflicting goals, and that every agent will therefore always try to do what is asked of it;  
  • collaboration: an agent should not unthinkingly accept (and execute) instructions, but should take into account that the human user makes mistakes (e.g. give an order that contains conflicting goals), omits important information and/or provides ambiguous information. For instance, an agent should check things by asking questions to the user, or use a built-up user model to solve problems like these. An agent should even be allowed to refuse to execute certain tasks because (for instance) they would put an unacceptable high load on the network resources or because it would cause damage to other users.

Agency Defined (by Mike Coen)

Clearly, there is an enormous variety in what people deem a software agent, and it is somewhat difficult to tell whether this is good or bad for the field. Nonetheless, having many enthusiastic researchers working on their various 'agents' is probably to everyone's benefit, so we refrain from complaining too loudly.

However, we favor the following as a set of minimum criteria for establishing a program's 'agency':

  1. Software agents engage in dialogs; we don't issue commands to agents, rather we have conversations with them. The communication patterns among agents can be quite complicated. 
  2. Software agents are autonomous and intelligent; they respond to complex stimuli with sophisticated (and appropriate) behaviors. 
  3. Software agents must be robust. Because they are autonomous and presumably doing something important, agents must be able to respond to unexpected changes in their computation world. 
  4. Software agents are generally not time invariant - they have memory and change what they do over time. Agents can employ formal machine learning techniques, or they can more casually collect data while they operate. Personal assistants can learn patterns in their owners' behavior, and more generally, agents can spontaneously react to particular events in their computational world.

     

Software agents are typically distributed across a network, so their behavior can have both local and global effects.

There is a tendency to anthropomorphize agents (Coen again)

Software agents are ontologically grounded in their role in the agent community. Agents have beliefs, commitments, obligations, intentions, and perhaps even confusion, stubbornness, etc. Exactly what these agents do with all their commitments, obligations, intentions, etc, has not necessarily been made particularly clear, but what's supposed to be important is that we have a motivated vocabulary for describing coordinated agent interaction, e.g. Agent1sent Agent2 e-mail because it felt 'obligated', or perhaps Agent1 crashed the network because it was 'confused'.

How might we classify agents?

  • Environment in which they work (eg on your desktop computer, on the Internet)
  • Tasks (eg searching, monitoring...)
  • Architecture (eg rule based reasoners, connectionist, Bayesian)

Examples of Agents

 

Desktop Agents

  • operating system agents.
  • application agents
  • application suite agents (eg context sensitive help)

Open Sesame

Search Agent (WebCompass)

'Wizards', usually very simple form-based agents used for setting something up.

Internet Agents

Some important links

 

Assignments received<link to be activated later>

Coursework and assignments

Course outline

Notes<link to be activated later>

Readings

Requirements

Your classmates <link to be activated later>

 

Some important School links

 

Registration


For more information, contact Martin Frické .