Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Project Definition Document Intelligent Conversations with Memory Project Definition Document Project Name: Intelligent Conversations with Memory Authors: Alan Mc Cann 03471934 Ruairi Mangan 03049752 Supervisor Dr. Finlay Smith Due the 27th of October 2006 1 Project Definition Document Intelligent Conversations with Memory Table of Contents Table of Contents .......................................................................................................... 2 Introduction................................................................................................................... 3 Document Description ............................................................................................... 3 Reasons for choosing the Project .............................................................................. 3 Project Spec ............................................................................................................... 3 Research ........................................................................................................................ 4 History of Eliza .......................................................................................................... 4 History of Prolog ....................................................................................................... 5 Scope .............................................................................................................................. 6 Included...................................................................................................................... 6 Excluded .................................................................................................................... 6 Goals .............................................................................................................................. 6 Stakeholders ............................................................................................................... 7 Milestones and Deliverables ...................................................................................... 7 Project Management ..................................................................................................... 8 Roles and Responsibilities ......................................................................................... 8 Risk Analysis .............................................................................................................. 8 Risk Analysis Table ................................................................................................... 9 Project Plan ................................................................................................................... 9 Work-break-down Structure ....................................................................................... 10 Gannt Chart ................................................................................................................ 11 Conclusion................................................................................................................... 12 References ................................................................................................................... 12 2 Project Definition Document Intelligent Conversations with Memory Introduction This project will examine the possibility of developing a program based on Eliza, which is capable of storing information on users and bringing it up in current conversation. Document Description This PDD is for the Bsc I.T Final Year Project entitled “Intelligent Conversations with Memory”. This document intends to clearly set out the aims and objectives of the project, and how we hope to set about developing the project. Reasons for choosing the Project The primary reason why we choose the project as our first choice was purely down to how interesting the project sounds. Eliza is a program that both of us were familiar through the internet and after checking it became clear that nobody had looked into the area of developing the program to incorporate a function to remember previous users through memory before. So from a research point of view it was an extremely attractive project which we felt we could both learn a great deal from and also greatly enjoy. Artificial intelligence is a relatively new and mostly unexplored area of Information Technology which through mediums such as science fiction movies and writings has for a long time captured the human imagination and again, this was another draw towards the project. As part of our course we were previously required to programme with the language of Prolog which was another aspect to the project which appealed to me as we found my previous experiences with the language to be thoroughly enjoyable as we found the language both efficient and simple to use at a basic level. I believe we choose the project because of its use of interesting programming techniques, its use of Prolog and our own natural interest in artificial intelligence, as well as the projects challenging goals. Project Spec This project requires you to build a system that can hold seemingly ‘intelligent’ conversations with a user using the approach taken in Eliza. To make the program appear more intelligent, it will remember details about people it has talked to before and bring them up in conversation as a human would do. Full details of the techniques used in this project would again be available. This project should ideally be developed in Prolog. 3 Project Definition Document Intelligent Conversations with Memory Research History of Eliza Eliza is a famous artificial intelligence computer program developed by Joseph Weizenbaum in 1966. ELIZA was named after Eliza Doolittle, a workingclass character in the play Pygmalion, who is taught to speak with a posh accent. Eliza engages in what seems like intelligent conversation. It does this by rephrasing the user’s comments and posing them as questions to the user. In essence it was designed to mimic a psychiatrist. Here is a sample script from Eliza: You: Hello Eliza. Eliza: How do you do. Please state your problem. You: I feel very tired Eliza: Do you often feel very tired? You: I seem to a lot lately Eliza: Can you elaborate on that? You: It could be that I am busy at work Eliza: How long have you been busy at work? People sometimes associate Eliza as a simulative therapist, a theory which Weizenbaum contends. He recognises Eliza as a psychotherapist which can relate to people as in an initial psychiatric interview. This scenario leads to a clever basis on which Eliza can interact intelligently with the user. Weizenbaum also considered system design using the psychotherapy context. A large knowledge database would not be required, as a psychotherapist asks questions with no general knowledge of the topic being discussed. Eliza worked by analysing statements and substituting key words into canned phrases. These statements would be predefined according to the keyword and would appear intelligent to the user. e.g. rules([[brother,3],[ [1,[_],0, [what,is,your,brother’s,name,?], [what,age,is,your,brother,?], [do,you,get,on,well,with,your,brother,?], [newkey]]]]). 4 Project Definition Document Intelligent Conversations with Memory Here is the code for if the input had the word 'brother' in it. This rule would generate a response, using one of the three choices, regardless of the rest of the input. Eliza’s masquerade as a human writer can be discounted based on some initial entries by the user, or could be exposed after a few interchanges. After a few minutes the machines true lack of knowledge can be seen with repetitive responses to statements with no notable key words attached. However, many people have been fooled and have been emotionally caught up interacting with Eliza. Eliza has influenced a number of computer games. Don Daglow wrote an enhanced version of Eliza before creating the first role playing game Dungeon in 1975. Adventure, the first interactive fiction genre game was also based on the Eliza system. It remains a milestone because it was the first artificial intelligence program which gave the impression to users, they were conversing with another human. History of Prolog Prolog is a logic programming language. Prolog is named so, because of the phrase, "PROgramming in LOGic”. It is the most widely available language in the logic programming domain. Created by Alain Colmerauer and Robert Kowalski around 1972 and seen as an alternative to the Lisp programming language, which was used to develop Eliza. Its main objective is to enable easier coding practices such as logical expressions rather than stringent specified instructions to the computer. Prolog is prominently used in many artificial intelligence programs such as automated reasoning systems, expert systems and computational linguistics e.g. natural language processing. This is one of the main reasons it was originally designed. It is built upon the mathematical notions of relations and logical inference. Prolog is also a declarative language (describes what something is like, rather than how to create it). A Prolog program would consist of a database of facts and rules which describe relationships within the application. Unconventionally like regular programs where they are run, the user asks a question to start the application. The system then searches through database of facts and rules to compute an answer. Prolog has many distinctive features including: Use of logical variables allowing behavior of mathematical variables. Unification: mechanism of binding the contents of variables and can be viewed as a kind of one-time association. Backtracking: finds solutions to constraint satisfaction problems. Interchangeable inputs and outputs Tail Recursion: form of recursion that can be easily transformed into an iteration. 5 Project Definition Document Intelligent Conversations with Memory Prolog is flexible, as often there are many ways to deduce the answer or will be more than one possible solution. This scenario involves asking the run time system to find other solutions called backtracking. The language is weakly typed with dynamic type checking (checking done at run-time) and static scoping (variable always refers to its nearest enclosing binding). Facts and rules are global and a variables scope is within their facts definition. Another notable aspect is that there is no rigid structure for the code allowing any ordering of procedures and definitions to the programmers taste. Scope Considering our project is a research project, it is our feeling that, as such, there should be no boundary on what we should aim to achieve in this project. We believe that the only constraint on furthering development of the project should be the timeframe imposed upon us. The project sets us one clear goal, which is fundamental to successfully completing the project but beyond that it is our goal to develop as well integrated and as seemingly intelligent a system as possible. For this reason we have found that there are no clear requirements we should meet, bar the main one set out in the project spec, so this meant setting out a clearly defined scope was difficult. Due to the set nature of our project and its roots as a research project we feel, also, that scope creep will not be a major risk in the project. Included Included in this project will be the goals we have set before us in this Document Excluded Excluded from this project will be a Graphical User Interface for the project as we feel it is not necessary and would require too much time to be dedicated to it Goals The primary goal of this project is to develop a program that appears capable of intelligent conversation with the user. The program should be capable of remembering users and referring to previous conversations as well as remembering details from the current conversation for future use. To us simply developing code that will allow Eliza to run would not be deemed a successful project as we would not have reached the requirements of the project spec. As outlined previously we are intending on meeting the challenge of incorporating memory use into the program and hopefully developing the idea further to allow greater interaction between the user and the program. A secondary goal is that when the program differentiates between whether the user is a new or old user that it would interact with them differently. This is much like the difference in manner between how we would converse with a friend or a stranger. Another goal would be for a high level of interaction between the user and the program, with the program capable of numerous questions or responses. 6 Project Definition Document 1. 2. 3. 4. 5. Intelligent Conversations with Memory Stakeholders The Project Development Team: Alan Mc Cann & Ruairi Mangan The Project Supervisor: Dr. Finlay Smith The Customer: The external reviewer of the project The College: The college is funding and retaining the rights to the project People interested in Artificial Intelligence: As far as we know this project is researching a new area using Eliza and Prolog so it may be of interest to scholars of A.I. Milestones and Deliverables 1. Project Definition Document This report should outline the project and describe the proposals for tackling it. It is essentially a requirements specification for the project and should show a full understanding of the project and its requirements. The PDD is vital to our project as it outlines the approach we will; take to the project and it will also act as a guide through the project. To be submitted to your supervisor on Friday 27th October 2006. 2. Web Page All groups are required to set up and maintain a Web Page summarising the project, which will be accessible through the department website. To be submitted by Friday 10th November 2006 3. Project Final Report This should be in the form of a mini-thesis with an emphasis on clarity and good presentation. There is a suggested layout for the final report although it should be revised with your supervisor. It should begin with an basic introduction and literature review. Next it should give a technical review, outlining what techniques and methodologies have been previously used and how they influenced the development of your project. This should be followed by a report on what you did in the project. The next section should outline your results; what happened, your self-evaluation of the project and what you finally delivered. The last section should contain a final conclusion to the project, and an analysis of the project putting your findings into context. Due to be submitted on Friday 23rd March 2007 4. Project Demonstration Each project group is required to give a bench demonstration and verbal report on their project to staff members. This will be beginning the week of March 26th, 2007 5. Viva Voce This is the final part of the project assessment and takes the form of an interview of your project. This interview will cover the project requirements, research undertaken, technologies used, design / implementation details, your final conclusions and any other details relevant to your project. Beginning the week of April 2nd, 2007 7 Project Definition Document Intelligent Conversations with Memory Project Management Roles and Responsibilities We have decided to share the work involved in the project equally. For the beginning of the project and mainly due to the Christmas break we have agreed to individually research the project and combine the information together in order to gain a greater understanding For success in this project we will need to successfully manage the project. This will involve a large amount of communication. We will have to: confirm tasks to be undertaken resolve issues sanction minor changes support and advise each other remain engaged and aware of current project progress. To allow this larger scale of communication we must organise meetings regularly. Risk Analysis There are three different categories of risk which may affect the overall success of the project. 1. Project Risks The biggest risk to the project is the timeframe in which it is contained and the possibility that the project that the project may not be completed within the timeframe. This risk should be minimised if the project is correctly managed, the work schedule is adhered to, and the work is equally and fairly divided. Time should also be allocated to allow for problems. To ensure completion of the project on time we must focus very carefully on time management. 2. Technical Risks This is the consideration of risks which may affect the quality of end product such as lack of experience with the software we are using. Although we are familiar with Prolog we have never completed tasks of any great complexity like those that will be used in the project. Also since Prolog is the only technology involved, from a programming point of view, in our project, it also presents the only technical risk available to us. 3. Personal Risks This considers the chance that either member may for some personal reason be unable to complete their allocated work. This could be down to sickness, injury, or even death. 8 Project Definition Document Intelligent Conversations with Memory Risk Analysis Table Risk Type Project Risk Project Risk Project Risk Project Risk Technical Risk Technical Risk Personal Risk Risk Explanation Project Deadline Project cannot be not met completed within given timeframe Scope Creep We do not keep up to date with the changing scope so the final product does not meet its requirements. However we feel that this should not be a problem in this project Development Problems occur during the Delay coding process Poor Poor communication Communication amongst the team and with the supervisor Unclear May not be able to reach Expectations the expectations set by the project so the project would be incomplete Problem with The software may not be Software able to meet our requirements Workload Other subjects may suffer Imbalance Impact Serious Probability Low Catastrophic Low Tolerable Medium Catastrophic Low Catastrophic Low Serious Medium Tolerable Medium Project Plan The biggest problem we face in relation to the project is how we approach the problem of storing the information from conversations and, recycling that information in other conversations. After studying Prolog and discussing the matter with our supervisor we decided the best approach to solve this problem would be to use lists as a means of storing the information during the conversations. Our planned approach to storing the information is that each user would have their own separate file so that information could be easily stored and also easily accessed for future conversations. The next step is to move into the technical research area of the plan. This will involve further study into both the area of Prolog and Eliza, as well as how lists can be used to implement the solutions to the tasks set out before us. A list in Prolog is a sequence of elements stored together. Lists start with a ‘[’ and end with a ‘]’, while the elements of the list are separated by commas. The first element of the list is known as the head, while the rest of the list is known as the tail. Lists allow easy use of recursion to perform tasks. 9 Project Definition Document Intelligent Conversations with Memory Due to the layout of Prolog and the way it is designed, testing occurs during the code development stage. This means a process of continual testing occurs so the testing period occurs simultaneously with the coding. Also due to the way the code will be programmed their will be no need for integration testing at the end of the project as the functionality of Prolog allows for the constant addition of code. Our approach to the project, to begin with, will see us allocate eight hours a week to the project to begin with, mostly during the time allocated to research. This allocation will be reconsidered as the project advances and the time will be increased where necessary. Obviously as other workloads decrease and increase as is the nature of this course, the time allocated to the project will also vary. Work-break-down Structure Project Project Management Define PDD Technological Research Delegate Workload Research into Prolog Implementation Design and Analysis Program Architecture Software Developement Testing Webpage Research into Eliza Develop Predicate Database 10 Continuous Testing Project Definition Document Intelligent Conversations with Memory Gannt Chart 11 Project Definition Document Intelligent Conversations with Memory Conclusion Hopefully, through this Project Definition Document, we have outlined the project itself, our interpretation of what is expected of us in this project, how we plan to approach the plan, as well as to we plan approach any risks or problems that may arise in the project. References The following is a list of websites where we gathered information from in order to complete the Project Definition Document. http://en.wikipedia.org/wiki/Prolog http://en.wikipedia.org/wiki/ELIZA http://cs.wwc.edu/KU/PR/Prolog.html 12