Download Project Definition Document

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Construction management wikipedia , lookup

PRINCE2 wikipedia , lookup

Transcript
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