Requirements
Submission 1
Core requirements:
- Develop and chatbot, (submit: source code, supplementary files and docs)
- Recorded video demo
Deliverables
- Code
- All .py or .ipynb files for the program
- All suplimentary AIML and CSV files that have been invluded with your program
- Code should be commented and easy to read
- Any programs to train models should be included
- Trained models should be included with the submission aka (h5 files)

- Document
- Follow the template…
- Design Notes
- file format: PDF
- The general explanations of the system and its goals (for all the implemented tasks), the system requirements, i.e., the list of what the system should do/have from a user’s perspective, explaining the employed AI techniques, and the explanation of your programs, i.e., details of what parts of your program do what.
- No need to reference
- Conversation log
- For each implemented task (see below) show 5-10 sample input/output pairs.
- For each conversation log (i.e., each input/output pair), copy-paste the text/images or copy-paste the screenshot from some actual conversations between you and the chatbot into your report.
- The conversation log pairs should collectively cover the implemented features. Where appropriate, annotate around the log with brief comments that explain which feature/component generated this, and how, for any particularly remarkable output.
- Recorded Demo
- Recording a demo video covering all the implemented tasks is required.
- The share link has to be provided inside the documentation (there is a specific box in the documentation template for putting the URL).
- 10-15 min
- Talk about:
- first go through the codes
- employed AI techniques
- system and demonstrate the implemented functionalities
- show your face (at least at the start)
Files to submit
A zip file containing Python program(s) (py or ipynb), and any supplementary files
necessary to run your system, including:
- AIML file (xml)
- If task c is implemented: saved model (e.g., .h5 file) and a few sample
image files for test (do not include training/testing images)
- If task a is implemented: Q/A pairs (csv)
- Specific to task b: KB file (csv)
A non-zipped documentation file (doc, docx or pdf) for all the implemented tasks.
This should:
- follow the documentation template given on NOW;
- include demo video URL in the given box;
- specify which 3 tasks (from tasks a to d) are implemented, in the given box.
Libs that must be used
- NLTK
- AIML
Chosen topic
Fruit assistent rational:
Task A
| MosCow | Done? | Description |
|---|---|---|
| MUST | ✅ | 10 or more conversation patterns (aim for 15-20) |
| MUST | ✅ | CVS containing 10 or more question/answer pairs (aim for 15-20) |
| MUST | ✅ | Similarity based conversation, if no match respond with a similar questions answer, using lemmatisation & tf/idf and cosine similarity methods please explain what an orange is? What constitutes an orange? |
| SHOULD | ✅ | Figure out an extra functionality and implement it, look at spec for clues, the bot responds based on the positivity or negativity within a message i hate oranges, are oranges healthy for you i love oranges, are oranges healthy for you |
Task B
| MosCow | Done? | Description |
|---|---|---|
| MUST | ✅ | First order logic knowledge-base, and inference engine using NLTK (minimum of 10 entries in the knowledge base) |
| MUST | ✅ | Each fact is written in first-order logic structured in the NLTK’s FOL syntax, such as “British (Tim)” or “British(x) -> European(x)”. |
| MUST | ✅ | Beable to be updated by the user If the user inputs “I know that … is …”, first check if the new expression is not in contradiction with the KB. If not, add it to the KB (in memory or in the file) and respond like “OK, I will remember that … is ...”. |
| MUST | ✅ | Respond correctly to user queries If the user inputs “Check that … is …” then you respond with “Correct”, “Incorrect” or “I don’t know” by applying the NLTK’s resolution algorithm. Note that if the algorithm returns false, it does not necessarily mean that the given statement is false. You should write some codes in order to detect if it is really false or it is unknown. See the notes on the corresponding lab sheet. |
| COULD | ✅ | Multi-valued predicates I know that Apple colour is not red Check that apple colour is red Check that apple colour is not red |
Task C
| MosCow | Done? | Description |
|---|---|---|
| MUST | ✅ | Train CNN model to detect contents of images related to the topic |
| MUST | ✅ | Import the trained CNN model for image classification |
| MUST | ✅ | User can pass image by URL or file selection dialog box |
| MUST | ✅ | When passed an image respond with information about the images contents |
| MUST | Create a report measuing the models performance, using a measurement of your choice, discuss causes/limitations of problems |
Additional Functionalities

Submission 2

Core requirements:
- Answers to the short tasks in the weekly lab sheets
- Each answer has its own submission page according to the spec, I think in reality its just a folder containing all of them; best to ask
- There are 9 of them
- You will write your answers (no codes) for each week no more than 200 words in a
Word file (it may also include images). No referencing is required.
- Before submission, you must rename your file as instructed clearly in the lab sheet,
otherwise your submission may be ignored.
- If you cannot do the requested task for any reason, describe your limitations
instead (and you will be fine for the reasonable limitations).
- If you submit a weekly task twice, the newer file will replace the older one.