Artificial Intelligence and Lisp TDDC65 Course leader: Erik Sandewall Lab assistants: Henrik Lundberg, John Olsson Administrator: Anna Grabska Eklund Webpage: http://www.ida.liu.se/ext/TDDC65/ Teaching plan Monday 15.15 – 17.00: Lecture (except this week) Friday 8.15 – 10.00 and 10.15 – 12.00: Tutorial Today's lecture topics The concept of intelligence Mechanization of intelligence The Leonardo software system, starting with the labs (If time allows:) Knowledge acquisition for AI (Using whiteboard for a while) Goal of Artificial Intelligence: Develop software techniques whereby computer programs can be less stupid, and whereby ultimately they can exhibit intelligence Goal of Artificial Intelligence: Develop software techniques whereby computer programs can be less stupid, and whereby ultimately they can exhibit intelligence that is, exhibit behavior that is called intelligent when it is observed in humans What is required for not to be stupid? Know procedures/ scripts/ methods … and be able to apply them Diagnose problems and resolve them Imagine what will happen Use earlier experience and adapt it (learning) Have facts and apply them Acquire facts Other examples Additional requirements Adapt earlier solutions to problems Identify relevant facts Structure a given problem and its solution Draw conclusions from selected facts Identify and apply constraints Scientific study of intelligence Francis Galton Alfred Binet Large topic of study in psychology and elsewhere Standard definition approach Identify certain more specific capabilities Design tests for measuring these It is observed that these capabilities tend to co-occur, statistically speaking Use the term intelligence as an umbrella for the set of co-occurring capabilities Maybe: hypothesize a single underlying 'intelligence factor' “Mainstream science of intelligence” A very general mental capability that, among other things, involves the ability to reason, plan, solve problems, think abstractly, comprehend complex ideas, learn quickly and learn from experience. It is not merely book learning, a narrow academic skill, or test-taking smarts. Rather, it reflects a broader and deeper capability for comprehending our surroundings—"catching on", "making sense" of things, or "figuring out" what to do. Why do these capabilities occur and co-occur? By the existence of a specific “organ”? By genetically dictated, physiological factors? By developmental physiological factors? By social training and upbringing? Other aspects Animal intelligence Social intelligence The concept of intelligence is strongly loaded emotionally Intelligence is not an object that can be extracted and observed, it is a property of a very complex system Manifestations of intelligence In the physical behavior of e.g. a mobile robot In dialog behavior, in particular using language In understanding input which is later reflected in behavior that in itself does not need to be 'intelligent' Therefore, actual AI systems contain many parts that are not 'intelligence' but serve other aspects of the total system We will focus on the AI aspect of such systems. Approach to building the AI kernel Implement general capabilities such as those mentioned above Make it possible for the system to contain information on a spectrum from facts to knowledge Make it possible for the system to improve the capabilities and to acquire facts...knowledge Scripts are an important kind of knowledge here Arrange for world simulation within the system. Cognitive agents Cognitive software agents is a standard implementation technique for these purposes: Integrate programs and data The agent can analyze and modify all information in itself Agents can communicate with each other Most suitable programming languages: Lisp, Scheme, Python. (Java is so-so). The Leonardo system A system for cognitive agents, developed here Uses the basic ideas of Lisp, but adds many other aspects Presently implemented in Lisp, but can be implemented in other languages as well Will be used in the present course, especially for the labs The theoretical parts of the course will use the same notation as in Leonardo Your personal Leonardo agent Each course participant will have her or his own Leonardo agent for use during the course, in particular for the labs Lab 1 consists of setting up your agent. It consists of four parts: 1. Install Allegro CommonLisp 2. Install the Leonardo agent 3. Register the Leonardo agent 4. Play with it. Besides intelligence: knowledgebase Availability of a knowledgebase is paramount for AI systems Current sources: Dbpedia, Factbase, Common Knowledge Library (CKL), many others (continued in other set of slides)