Adding project

master
Minh Bui 5 years ago
commit f06a13fe5e

@ -0,0 +1,16 @@
## ChatApplication with 4 bots.
A typical multi-threaded Chat Client/Server Java application
## Features
. Simple authentication with server. Users' info is stored as text file on the server side.
## How To Run
The server and client are initially configured to run locally. To run it on a different network, port forwarding is advised. We also need to change the hostName variable in SignInView.java. The client needs to know the server's WAN address.
First run the server, and then run the client.
## Bots
You can add more bots to the server as long as the bot implements the Bot.java interface. The new bot should also be instantiated in ChatServer.java file and assigned to a command character.

@ -0,0 +1,38 @@
Sprint planning:
1st Sprint:
a. UML diagram
b. Commands/responses for each bot
c. A topic for each bot
2nd Sprint:
a. Superbot implementation
b. Expected commands should be responded
c. Basic GUI of the chatting room
3rd Sprint:
a. One bot fully implemented
b. Enable users authentication
c. SignIn/signUp GUI
4th Sprint:
a. Networking works
b. All bots are fully implemented
c. Documentations
d. potenial Wow factors
port forwarding that enable the server can be connected from different Internet
NLU chatbot invoked by !ttm [message] using aim and alive bot's library.
Sprint Review:
1st Sprint:
In the first sprint, we have showed our UML diagram to the SL and each of us has picked a topic. We have topics about moba game, NBA, music player and makeups. The SL thought we were kind of ahead.
2nd Sprint:
In the second sprint, we have implemented one bot that can respond some default commands in a chatroom. Michael told us to implement all four bots for the next sprints.
3rd Sprint:
We were a little bit delayed since we did not have four fully implemented bots. However, we have done with the signIn and signUp.

@ -0,0 +1 @@
<mxfile userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36" version="9.3.2" editor="www.draw.io" type="device"><diagram name="Page-1" id="9f46799a-70d6-7492-0946-bef42562c5a5">7Vxtb+I4EP41kXY/9JQXwsvHAtveSa20Krt7nw0xxFon5hxT2v76Gyc2JLVpw22A3p0rpMbjiZPM84zHMzF40SR7uuVond6zBFMv9JMnL5p6YRj0wj78k5LnSjKIokqw4iRRSnvBjLxgJfSVdEMSXDQUBWNUkHVTuGB5jheiIUOcs21Tbclo86prtMKGYLZA1JT+SRKRKmng+/uO3zFZperSw1h1zNHi54qzTa6u54XRsvyrujOkx1L6RYoStq2Joi9eNOGMieooe5pgKm2rzVadd3Ogd3ffHOeizQmD4agfBPFo6ffxaIiHV8GgGuIR0Y0yxhhuBs7I1hRnMGwBjRnmBFHyguZgsepBxLM2XrElGUU5tMapyCgIAzhcslzMlJJsw+mrHI4XMCTmIHjEXBCA4Fp1CLYG6SIlNLlDz2wjn6cQYF/dGqeMkxcYFulrQDcXik1AwbrGTJ4JYh+kHBeg81UbKdiJ7lAhlM6CUYrWBZnvbjhDfEVyMIZgmVLST3pDKJ0wynhpAI04jCqJgBOtrbGuxs/IQh1TNMd0vGOOHilnpQ0LwdlPXBveL/92PZqgpZFrN6JOl3a/QRmh0hV/YJ6gHGk4KksFoWrbrmESSnFMwoWfaiJFsFvMMiz4M6io3khxXc0FYU9NDtu9Z4UDpZPWnCrqKSFS3rzaDb1nNBwoUrck+O7+9wS/KmeSLEN5UtwRSYFrkFzPwb5oIe7R2gv7KJNspJJ2M8FJvvLCibwMWEV3rsTOXjVvACOJpic0AdUwmchpD6F4KQ76R7FGC7ibu1Jn2ttLHpQhpWibEoFnIJf3tIUpG2QMxlvSko8pSRKcl3wVSKCK8hL8NSPS3+E54jF8AI6J/1vsxVP58PE42LfhI9U5cCiXZiMlWzD40xYXwsqjw1PP+8zSVGrJJK3XLZEiK5E2BeZtWFQyR1LoO5zgOHQxDsXhJTkUGxzywrFcsRAslyySQeJ5bcZYx4jTMWIwvCQj+o4RH44Rgd+7JCV6jhIfjxJ6VXsRSgQjCyVeoU/J6xSsVb7wDvQZAEbxHutvkgrTq8DgQ2TyIbLgXOY+X1lBBGFyfF7pvsL/MhDHLZeXw1M4vX/A6VdYPOBiDYbAn3QmorOXz9VkoMVuOjgfV/oXjRBm0WZHlu85+WuDd5RxFLkYRUZnjBiBOX1MUiQmlMAj3X7/w0C+VrT7N1TqKtE9emooHlu/OwChpd51sLg17DWrW8EoNlAO+rag0QXKZi3rqJXh+Z37Io78HsC+HeHDRSYroJ24bdh6XfdfX8z9GmiWqo7dCzvAzKwDVk4II6Us+SQd8LPzxU5g7Zsh9HS+aKbdMoTOMH+UBVsXPzuJn7HfjJ9R3BLiIOjCd836a/kyCHB+YCwrKrctq/lhvyzbf0s5Rgm0VKUeiBYF0hZX3iT0rv2axHn6m7TodRJ1h70OWGCrubqoezxoQdDSebtw3aF1eq4yHDc9nyi9aT09d5Le2KqcLr051meHnUy0XSyprEVNN9EeD9oZ0xvLfhmX3pwI1nOmN9r1arhWO1Fc5Owmcr6qC7aFVpeAfglb+9akHGW4Wf6v5SoubWkFeuU2HyOammmLRHlOuEinSN5UBfYUCeyg7hzqtjG4E6htW0Dcwul40Cx7u+zVJb+LpdOh3X2CVRNwu7exzhtbABsMzznzmu/b96XhHwRv3SrqROXhs75eDc0Sk6s/HO+4g4+zYmq/be7/HkbfBu2M9YfIVjNy9YeTwHrO+kNk1pUm6rWbi55dRc9G7OxbptootC1+ww5eqkVmfany2ze/IGX9atTrV60ug23Jjujor89Z+dDvgg62XTIu9B4PmmUXqRW0LkLvoS+euNDbPaxmYcIK6z8IvdDc/6BA2Vf71Yboy98=</diagram></mxfile>

@ -0,0 +1,23 @@
List of default commands:
!help - list out the available commands for the current bot.
!info User - prints out the information of User.
!date - prints out the current date.
!whoami - prints out the user's client info such as IP addresses, ...
Yanghu's chatbot theme: Soccer
Weixiang's chatbot theme: MOBA game or LoL.
MingJun's chatbot theme:
MinhBui's chatbot theme: music bot that supports youtube music
!import [URL] - given a Youtube URL, import the URL to the play list.
!remove [ID]/[Name] - given an ID or name, remove the music from the play list.
!list - lists out the current songs in the playlist.
!play [ID]/[Name] - given a name or an ID, play the song in the list. If nothing is given, resume playing the current song.
!current - displays the current playing song.
!pause - pause the current song
!repeat - toggle repeat mode
!shuffle - shuffle repeat mode
![reponse] - comments on the reponse of an user. (nlp feature)
!rate [User]/[MusicID]/[MusicName] - give a random rate of a music or an user from 0 to 10.

@ -0,0 +1 @@
<mxfile userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36" version="9.3.2" editor="www.draw.io" type="device"><diagram name="Page-1" id="9f46799a-70d6-7492-0946-bef42562c5a5">7Vxtb+I4EP41kXY/9JQXwsvHAtveSa20Krt7nw0xxFon5hxT2v76Gyc2JLVpw22A3p0rpMbjiZPM84zHMzF40SR7uuVond6zBFMv9JMnL5p6YRj0wj78k5LnSjKIokqw4iRRSnvBjLxgJfSVdEMSXDQUBWNUkHVTuGB5jheiIUOcs21Tbclo86prtMKGYLZA1JT+SRKRKmng+/uO3zFZperSw1h1zNHi54qzTa6u54XRsvyrujOkx1L6RYoStq2Joi9eNOGMieooe5pgKm2rzVadd3Ogd3ffHOeizQmD4agfBPFo6ffxaIiHV8GgGuIR0Y0yxhhuBs7I1hRnMGwBjRnmBFHyguZgsepBxLM2XrElGUU5tMapyCgIAzhcslzMlJJsw+mrHI4XMCTmIHjEXBCA4Fp1CLYG6SIlNLlDz2wjn6cQYF/dGqeMkxcYFulrQDcXik1AwbrGTJ4JYh+kHBeg81UbKdiJ7lAhlM6CUYrWBZnvbjhDfEVyMIZgmVLST3pDKJ0wynhpAI04jCqJgBOtrbGuxs/IQh1TNMd0vGOOHilnpQ0LwdlPXBveL/92PZqgpZFrN6JOl3a/QRmh0hV/YJ6gHGk4KksFoWrbrmESSnFMwoWfaiJFsFvMMiz4M6io3khxXc0FYU9NDtu9Z4UDpZPWnCrqKSFS3rzaDb1nNBwoUrck+O7+9wS/KmeSLEN5UtwRSYFrkFzPwb5oIe7R2gv7KJNspJJ2M8FJvvLCibwMWEV3rsTOXjVvACOJpic0AdUwmchpD6F4KQ76R7FGC7ibu1Jn2ttLHpQhpWibEoFnIJf3tIUpG2QMxlvSko8pSRKcl3wVSKCK8hL8NSPS3+E54jF8AI6J/1vsxVP58PE42LfhI9U5cCiXZiMlWzD40xYXwsqjw1PP+8zSVGrJJK3XLZEiK5E2BeZtWFQyR1LoO5zgOHQxDsXhJTkUGxzywrFcsRAslyySQeJ5bcZYx4jTMWIwvCQj+o4RH44Rgd+7JCV6jhIfjxJ6VXsRSgQjCyVeoU/J6xSsVb7wDvQZAEbxHutvkgrTq8DgQ2TyIbLgXOY+X1lBBGFyfF7pvsL/MhDHLZeXw1M4vX/A6VdYPOBiDYbAn3QmorOXz9VkoMVuOjgfV/oXjRBm0WZHlu85+WuDd5RxFLkYRUZnjBiBOX1MUiQmlMAj3X7/w0C+VrT7N1TqKtE9emooHlu/OwChpd51sLg17DWrW8EoNlAO+rag0QXKZi3rqJXh+Z37Io78HsC+HeHDRSYroJ24bdh6XfdfX8z9GmiWqo7dCzvAzKwDVk4II6Us+SQd8LPzxU5g7Zsh9HS+aKbdMoTOMH+UBVsXPzuJn7HfjJ9R3BLiIOjCd836a/kyCHB+YCwrKrctq/lhvyzbf0s5Rgm0VKUeiBYF0hZX3iT0rv2axHn6m7TodRJ1h70OWGCrubqoezxoQdDSebtw3aF1eq4yHDc9nyi9aT09d5Le2KqcLr051meHnUy0XSyprEVNN9EeD9oZ0xvLfhmX3pwI1nOmN9r1arhWO1Fc5Owmcr6qC7aFVpeAfglb+9akHGW4Wf6v5SoubWkFeuU2HyOammmLRHlOuEinSN5UBfYUCeyg7hzqtjG4E6htW0Dcwul40Cx7u+zVJb+LpdOh3X2CVRNwu7exzhtbABsMzznzmu/b96XhHwRv3SrqROXhs75eDc0Sk6s/HO+4g4+zYmq/be7/HkbfBu2M9YfIVjNy9YeTwHrO+kNk1pUm6rWbi55dRc9G7OxbptootC1+ww5eqkVmfany2ze/IGX9atTrV60ug23Jjujor89Z+dDvgg62XTIu9B4PmmUXqRW0LkLvoS+euNDbPaxmYcIK6z8IvdDc/6BA2Vf71Yboy98=</diagram></mxfile>

@ -0,0 +1,23 @@
List of default commands:
!help - list out the available commands for the current bot.
!info User - prints out the information of User.
!date - prints out the current date.
!whoami - prints out the user's client info such as IP addresses, ...
Yanghu's chatbot theme: Soccer
Weixiang's chatbot theme: MOBA game or LoL.
MingJun's chatbot theme:
MinhBui's chatbot theme: music bot that supports youtube music
!import [URL] - given a Youtube URL, import the URL to the play list.
!remove [ID]/[Name] - given an ID or name, remove the music from the play list.
!list - lists out the current songs in the playlist.
!play [ID]/[Name] - given a name or an ID, play the song in the list. If nothing is given, resume playing the current song.
!current - displays the current playing song.
!pause - pause the current song
!repeat - toggle repeat mode
!shuffle - shuffle repeat mode
![reponse] - comments on the reponse of an user. (nlp feature)
!rate [User]/[MusicID]/[MusicName] - give a random rate of a music or an user from 0 to 10.

@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>所有类</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1 class="bar">所有类</h1>
<div class="indexContainer">
<ul>
<li><a href="server/Bots/WeixiangBot.html" title="server.Bots中的类" target="classFrame">WeixiangBot</a></li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>所有类</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1 class="bar">所有类</h1>
<div class="indexContainer">
<ul>
<li><a href="server/Bots/WeixiangBot.html" title="server.Bots中的类">WeixiangBot</a></li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,122 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:56 MST 2018 -->
<title>常量字段值</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="\u5E38\u91CF\u5B57\u6BB5\u503C";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="overview-tree.html"></a></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?constant-values.html" target="_top">框架</a></li>
<li><a href="constant-values.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="常量字段值" class="title">常量字段值</h1>
<h2 title="目录">目录</h2>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="overview-tree.html"></a></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?constant-values.html" target="_top">框架</a></li>
<li><a href="constant-values.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,122 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>已过时的列表</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="\u5DF2\u8FC7\u65F6\u7684\u5217\u8868";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="overview-tree.html"></a></li>
<li class="navBarCell1Rev">已过时</li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">框架</a></li>
<li><a href="deprecated-list.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="已过时的 API" class="title">已过时的 API</h1>
<h2 title="目录">目录</h2>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="overview-tree.html"></a></li>
<li class="navBarCell1Rev">已过时</li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">框架</a></li>
<li><a href="deprecated-list.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,223 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>API 帮助</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="API \u5E2E\u52A9";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="overview-tree.html"></a></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li class="navBarCell1Rev">帮助</li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?help-doc.html" target="_top">框架</a></li>
<li><a href="help-doc.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">此 API 文档的组织方式</h1>
<div class="subTitle">此 API (应用程序编程接口) 文档包含对应于导航栏中的项目的页面, 如下所述。</div>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<h2>程序包</h2>
<p>每个程序包都有一个页面, 其中包含它的类和接口的列表及其概要。此页面可以包含六个类别:</p>
<ul>
<li>接口 (斜体)</li>
<li></li>
<li>枚举</li>
<li>异常错误</li>
<li>错误</li>
<li>注释类型</li>
</ul>
</li>
<li class="blockList">
<h2>类/接口</h2>
<p>每个类, 接口, 嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分 (类/接口说明, 概要表, 以及详细的成员说明) 组成:</p>
<ul>
<li>类继承图</li>
<li>直接子类</li>
<li>所有已知子接口</li>
<li>所有已知实现类</li>
<li>类/接口声明</li>
<li>类/接口说明</li>
</ul>
<ul>
<li>嵌套类概要</li>
<li>字段概要</li>
<li>构造器概要</li>
<li>方法概要</li>
</ul>
<ul>
<li>字段详细资料</li>
<li>构造器详细资料</li>
<li>方法详细资料</li>
</ul>
<p>每个概要条目都包含该项目的详细说明的第一句。概要条目按字母顺序排列, 而详细说明则按其在源代码中出现的顺序排列。这样保持了程序员所建立的逻辑分组。</p>
</li>
<li class="blockList">
<h2>注释类型</h2>
<p>每个注释类型都有各自的页面, 其中包含以下部分:</p>
<ul>
<li>注释类型声明</li>
<li>注释类型说明</li>
<li>必需元素概要</li>
<li>可选元素概要</li>
<li>元素详细资料</li>
</ul>
</li>
<li class="blockList">
<h2>枚举</h2>
<p>每个枚举都有各自的页面, 其中包含以下部分:</p>
<ul>
<li>枚举声明</li>
<li>枚举说明</li>
<li>枚举常量概要</li>
<li>枚举常量详细资料</li>
</ul>
</li>
<li class="blockList">
<h2>使用</h2>
<p>每个已文档化的程序包, 类和接口都有各自的“使用”页面。此页面介绍了使用给定类或程序包的任何部分的程序包, 类, 方法, 构造器和字段。对于给定的类或接口 A, 其“使用”页面包含 A 的子类, 声明为 A 的字段, 返回 A 的方法, 以及带有类型为 A 的参数的方法和构造器。访问此页面的方法是: 首先转至程序包, 类或接口, 然后单击导航栏中的 "使用" 链接。</p>
</li>
<li class="blockList">
<h2>树 (类分层结构)</h2>
<p>对于所有程序包, 有一个<a href="overview-tree.html">类分层结构</a>页面, 以及每个程序包的分层结构。每个分层结构页面都包含类的列表和接口的列表。从<code>java.lang.Object</code>开始, 按继承结构对类进行排列。接口不从<code>java.lang.Object</code>继承。</p>
<ul>
<li>查看“概览”页面时, 单击 "树" 将显示所有程序包的分层结构。</li>
<li>查看特定程序包, 类或接口页面时, 单击 "树" 将仅显示该程序包的分层结构。</li>
</ul>
</li>
<li class="blockList">
<h2>已过时的 API</h2>
<p><a href="deprecated-list.html">已过时的 API</a> 页面列出了所有已过时的 API。一般由于进行了改进并且通常提供了替代的 API, 所以建议不要使用已过时的 API。在将来的实现过程中, 可能会删除已过时的 API。</p>
</li>
<li class="blockList">
<h2>索引</h2>
<p><a href="index-files/index-1.html">索引</a> 包含按字母顺序排列的所有类, 接口, 构造器, 方法和字段的列表。</p>
</li>
<li class="blockList">
<h2>上一个/下一个</h2>
<p>这些链接使您可以转至下一个或上一个类, 接口, 程序包或相关页面。</p>
</li>
<li class="blockList">
<h2>框架/无框架</h2>
<p>这些链接用于显示和隐藏 HTML 框架。所有页面均具有有框架和无框架两种显示方式。</p>
</li>
<li class="blockList">
<h2>所有类</h2>
<p><a href="allclasses-noframe.html">所有类</a>链接显示所有类和接口 (除了非静态嵌套类型)。</p>
</li>
<li class="blockList">
<h2>序列化表格</h2>
<p>每个可序列化或可外部化的类都有其序列化字段和方法的说明。此信息对重新实现者有用, 而对使用 API 的开发者则没有什么用处。尽管导航栏中没有链接, 但您可以通过下列方式获取此信息: 转至任何序列化类, 然后单击类说明的 "另请参阅" 部分中的 "序列化表格"。</p>
</li>
<li class="blockList">
<h2>常量字段值</h2>
<p><a href="constant-values.html">常量字段值</a>页面列出了静态最终字段及其值。</p>
</li>
</ul>
<span class="emphasizedPhrase">此帮助文件适用于使用标准 doclet 生成的 API 文档。</span></div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="overview-tree.html"></a></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li class="navBarCell1Rev">帮助</li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?help-doc.html" target="_top">框架</a></li>
<li><a href="help-doc.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,130 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>C - 索引</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="C - \u7D22\u5F15";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个字母</li>
<li><a href="index-2.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-1.html" target="_top">框架</a></li>
<li><a href="index-1.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;<a name="I:C">
<!-- -->
</a>
<h2 class="title">C</h2>
<dl>
<dt><span class="memberNameLink"><a href="../server/Bots/WeixiangBot.html#createNewCmdsCounter--">createNewCmdsCounter()</a></span> - 类 中的方法server.Bots.<a href="../server/Bots/WeixiangBot.html" title="server.Bots中的类">WeixiangBot</a></dt>
<dd>
<div class="block">This method is to construct a hashmap to count amount of how many times
the command being called</div>
</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个字母</li>
<li><a href="index-2.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-1.html" target="_top">框架</a></li>
<li><a href="index-1.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,129 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>D - 索引</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="D - \u7D22\u5F15";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-1.html">上一个字母</a></li>
<li><a href="index-3.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-2.html" target="_top">框架</a></li>
<li><a href="index-2.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;<a name="I:D">
<!-- -->
</a>
<h2 class="title">D</h2>
<dl>
<dt><span class="memberNameLink"><a href="../server/Bots/WeixiangBot.html#dateCommand--">dateCommand()</a></span> - 类 中的方法server.Bots.<a href="../server/Bots/WeixiangBot.html" title="server.Bots中的类">WeixiangBot</a></dt>
<dd>
<div class="block">This method is to get the date and return it</div>
</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-1.html">上一个字母</a></li>
<li><a href="index-3.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-2.html" target="_top">框架</a></li>
<li><a href="index-2.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,129 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>G - 索引</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="G - \u7D22\u5F15";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-2.html">上一个字母</a></li>
<li><a href="index-4.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-3.html" target="_top">框架</a></li>
<li><a href="index-3.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;<a name="I:G">
<!-- -->
</a>
<h2 class="title">G</h2>
<dl>
<dt><span class="memberNameLink"><a href="../server/Bots/WeixiangBot.html#getBotSignature--">getBotSignature()</a></span> - 类 中的方法server.Bots.<a href="../server/Bots/WeixiangBot.html" title="server.Bots中的类">WeixiangBot</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../server/Bots/WeixiangBot.html#getResponses-java.lang.String-server.User-java.util.List-">getResponses(String, User, List&lt;ChatClientThread&gt;)</a></span> - 类 中的方法server.Bots.<a href="../server/Bots/WeixiangBot.html" title="server.Bots中的类">WeixiangBot</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-2.html">上一个字母</a></li>
<li><a href="index-4.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-3.html" target="_top">框架</a></li>
<li><a href="index-3.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,127 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>H - 索引</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="H - \u7D22\u5F15";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-3.html">上一个字母</a></li>
<li><a href="index-5.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-4.html" target="_top">框架</a></li>
<li><a href="index-4.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;<a name="I:H">
<!-- -->
</a>
<h2 class="title">H</h2>
<dl>
<dt><span class="memberNameLink"><a href="../server/Bots/WeixiangBot.html#helpCommand--">helpCommand()</a></span> - 类 中的方法server.Bots.<a href="../server/Bots/WeixiangBot.html" title="server.Bots中的类">WeixiangBot</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-3.html">上一个字母</a></li>
<li><a href="index-5.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-4.html" target="_top">框架</a></li>
<li><a href="index-4.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,127 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>S - 索引</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="S - \u7D22\u5F15";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-4.html">上一个字母</a></li>
<li><a href="index-6.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-5.html" target="_top">框架</a></li>
<li><a href="index-5.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;<a name="I:S">
<!-- -->
</a>
<h2 class="title">S</h2>
<dl>
<dt><a href="../server/Bots/package-summary.html">server.Bots</a> - 程序包 server.Bots</dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-4.html">上一个字母</a></li>
<li><a href="index-6.html">下一个字母</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-5.html" target="_top">框架</a></li>
<li><a href="index-5.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,133 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>W - 索引</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="W - \u7D22\u5F15";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-5.html">上一个字母</a></li>
<li>下一个字母</li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-6.html" target="_top">框架</a></li>
<li><a href="index-6.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;<a name="I:W">
<!-- -->
</a>
<h2 class="title">W</h2>
<dl>
<dt><a href="../server/Bots/WeixiangBot.html" title="server.Bots中的类"><span class="typeNameLink">WeixiangBot</span></a> - <a href="../server/Bots/package-summary.html">server.Bots</a>中的类</dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../server/Bots/WeixiangBot.html#WeixiangBot-char-">WeixiangBot(char)</a></span> - 类 的构造器server.Bots.<a href="../server/Bots/WeixiangBot.html" title="server.Bots中的类">WeixiangBot</a></dt>
<dd>
<div class="block">This is constructor that add all the responses to the map.</div>
</dd>
<dt><span class="memberNameLink"><a href="../server/Bots/WeixiangBot.html#whoamiCommand-server.User-">whoamiCommand(User)</a></span> - 类 中的方法server.Bots.<a href="../server/Bots/WeixiangBot.html" title="server.Bots中的类">WeixiangBot</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">C</a>&nbsp;<a href="index-2.html">D</a>&nbsp;<a href="index-3.html">G</a>&nbsp;<a href="index-4.html">H</a>&nbsp;<a href="index-5.html">S</a>&nbsp;<a href="index-6.html">W</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li><a href="../overview-tree.html"></a></li>
<li><a href="../deprecated-list.html">已过时</a></li>
<li class="navBarCell1Rev">索引</li>
<li><a href="../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-5.html">上一个字母</a></li>
<li>下一个字母</li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-6.html" target="_top">框架</a></li>
<li><a href="index-6.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,72 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:57 MST 2018 -->
<title>生成的文档 (无标题)</title>
<script type="text/javascript">
tmpTargetPage = "" + window.location.search;
if (tmpTargetPage != "" && tmpTargetPage != "undefined")
tmpTargetPage = tmpTargetPage.substring(1);
if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
tmpTargetPage = "undefined";
targetPage = tmpTargetPage;
function validURL(url) {
try {
url = decodeURIComponent(url);
}
catch (error) {
return false;
}
var pos = url.indexOf(".html");
if (pos == -1 || pos != url.length - 5)
return false;
var allowNumber = false;
var allowSep = false;
var seenDot = false;
for (var i = 0; i < url.length - 5; i++) {
var ch = url.charAt(i);
if ('a' <= ch && ch <= 'z' ||
'A' <= ch && ch <= 'Z' ||
ch == '$' ||
ch == '_' ||
ch.charCodeAt(0) > 127) {
allowNumber = true;
allowSep = true;
} else if ('0' <= ch && ch <= '9'
|| ch == '-') {
if (!allowNumber)
return false;
} else if (ch == '/' || ch == '.') {
if (!allowSep)
return false;
allowNumber = false;
allowSep = false;
if (ch == '.')
seenDot = true;
if (ch == '/' && seenDot)
return false;
} else {
return false;
}
}
return true;
}
function loadFrames() {
if (targetPage != "" && targetPage != "undefined")
top.classFrame.location = top.targetPage;
}
</script>
</head>
<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
<frame src="allclasses-frame.html" name="packageFrame" title="所有类和接口 (除了非静态嵌套类型)">
<frame src="server/Bots/package-summary.html" name="classFrame" title="程序包, 类和接口说明" scrolling="yes">
<noframes>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<h2>框架预警</h2>
<p>请使用框架功能查看此文档。如果看到此消息, 则表明您使用的是不支持框架的 Web 客户机。链接到<a href="server/Bots/package-summary.html">非框架版本</a></p>
</noframes>
</frameset>
</html>

@ -0,0 +1,139 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:56 MST 2018 -->
<title>类分层结构</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="\u7C7B\u5206\u5C42\u7ED3\u6784";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li class="navBarCell1Rev"></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">框架</a></li>
<li><a href="overview-tree.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">所有程序包的分层结构</h1>
<span class="packageHierarchyLabel">程序包分层结构:</span>
<ul class="horizontal">
<li><a href="server/Bots/package-tree.html">server.Bots</a></li>
</ul>
</div>
<div class="contentContainer">
<h2 title="类分层结构">类分层结构</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">server.Bots.Bot
<ul>
<li type="circle">server.Bots.<a href="server/Bots/WeixiangBot.html" title="server.Bots中的类"><span class="typeNameLink">WeixiangBot</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li class="navBarCell1Rev"></li>
<li><a href="deprecated-list.html">已过时</a></li>
<li><a href="index-files/index-1.html">索引</a></li>
<li><a href="help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">框架</a></li>
<li><a href="overview-tree.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,30 @@
function show(type)
{
count = 0;
for (var key in methods) {
var row = document.getElementById(key);
if ((methods[key] & type) != 0) {
row.style.display = '';
row.className = (count++ % 2) ? rowColor : altColor;
}
else
row.style.display = 'none';
}
updateTabs(type);
}
function updateTabs(type)
{
for (var value in tabs) {
var sNode = document.getElementById(tabs[value][0]);
var spanNode = sNode.firstChild;
if (value == type) {
sNode.className = activeTableTab;
spanNode.innerHTML = tabs[value][1];
}
else {
sNode.className = tableTab;
spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
}
}
}

@ -0,0 +1,409 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:56 MST 2018 -->
<title>WeixiangBot</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="WeixiangBot";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","所有方法"],2:["t2","实例方法"],8:["t4","具体方法"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../server/Bots/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/WeixiangBot.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../deprecated-list.html">已过时</a></li>
<li><a href="../../index-files/index-1.html">索引</a></li>
<li><a href="../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个类</li>
<li>下一个类</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?server/Bots/WeixiangBot.html" target="_top">框架</a></li>
<li><a href="WeixiangBot.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">server.Bots</div>
<h2 title="类 WeixiangBot" class="title">类 WeixiangBot</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>server.Bots.Bot</li>
<li>
<ul class="inheritance">
<li>server.Bots.WeixiangBot</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">WeixiangBot</span>
extends server.Bots.Bot</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../server/Bots/WeixiangBot.html#WeixiangBot-char-">WeixiangBot</a></span>(char&nbsp;characterId)</code>
<div class="block">This is constructor that add all the responses to the map.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span id="t0" class="activeTableTab"><span>所有方法</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">实例方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">具体方法</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>java.util.AbstractMap&lt;java.lang.String,java.lang.Integer&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../server/Bots/WeixiangBot.html#createNewCmdsCounter--">createNewCmdsCounter</a></span>()</code>
<div class="block">This method is to construct a hashmap to count amount of how many times
the command being called</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../server/Bots/WeixiangBot.html#dateCommand--">dateCommand</a></span>()</code>
<div class="block">This method is to get the date and return it</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../server/Bots/WeixiangBot.html#getBotSignature--">getBotSignature</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>server.Response</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../server/Bots/WeixiangBot.html#getResponses-java.lang.String-server.User-java.util.List-">getResponses</a></span>(java.lang.String&nbsp;message,
server.User&nbsp;user,
java.util.List&lt;server.ChatClientThread&gt;&nbsp;clients)</code>
<div class="block">Every Bot's subclass needs to overwrite this method.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../server/Bots/WeixiangBot.html#helpCommand--">helpCommand</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../server/Bots/WeixiangBot.html#whoamiCommand-server.User-">whoamiCommand</a></span>(server.User&nbsp;user)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.server.Bots.Bot">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;server.Bots.Bot</h3>
<code>getBotCharacterId, getDefaultCommandsList, getSmartResponse, infoCommand, setBotCharacterId</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="WeixiangBot-char-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>WeixiangBot</h4>
<pre>public&nbsp;WeixiangBot(char&nbsp;characterId)</pre>
<div class="block">This is constructor that add all the responses to the map.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>characterId</code> - The special character for each ChatBot.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="createNewCmdsCounter--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createNewCmdsCounter</h4>
<pre>public&nbsp;java.util.AbstractMap&lt;java.lang.String,java.lang.Integer&gt;&nbsp;createNewCmdsCounter()</pre>
<div class="block">This method is to construct a hashmap to count amount of how many times
the command being called</div>
<dl>
<dt><span class="returnLabel">返回:</span></dt>
<dd>A HashMap to count each commands that have been used</dd>
</dl>
</li>
</ul>
<a name="getBotSignature--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBotSignature</h4>
<pre>public&nbsp;java.lang.String&nbsp;getBotSignature()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code>getBotSignature</code>&nbsp;在类中&nbsp;<code>server.Bots.Bot</code></dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the string representing the signature of the ChatBot</dd>
</dl>
</li>
</ul>
<a name="dateCommand--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dateCommand</h4>
<pre>public&nbsp;java.lang.String&nbsp;dateCommand()</pre>
<div class="block">This method is to get the date and return it</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code>dateCommand</code>&nbsp;在类中&nbsp;<code>server.Bots.Bot</code></dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the string representing the date</dd>
</dl>
</li>
</ul>
<a name="whoamiCommand-server.User-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>whoamiCommand</h4>
<pre>public&nbsp;java.lang.String&nbsp;whoamiCommand(server.User&nbsp;user)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code>whoamiCommand</code>&nbsp;在类中&nbsp;<code>server.Bots.Bot</code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>user</code> - the User object</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the string that has a name and IP address</dd>
</dl>
</li>
</ul>
<a name="getResponses-java.lang.String-server.User-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResponses</h4>
<pre>public&nbsp;server.Response&nbsp;getResponses(java.lang.String&nbsp;message,
server.User&nbsp;user,
java.util.List&lt;server.ChatClientThread&gt;&nbsp;clients)</pre>
<div class="block"><span class="descfrmTypeLabel">从类复制的说明:&nbsp;<code>server.Bots.Bot</code></span></div>
<div class="block">Every Bot's subclass needs to overwrite this method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code>getResponses</code>&nbsp;在类中&nbsp;<code>server.Bots.Bot</code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>message</code> - the message from user</dd>
<dd><code>user</code> - the User object</dd>
<dd><code>clients</code> - the list contains the all ChatClientThread who is online</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>A Response that has two fields, one is the response message, the other is the URL if needed</dd>
</dl>
</li>
</ul>
<a name="helpCommand--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>helpCommand</h4>
<pre>public&nbsp;java.lang.String&nbsp;helpCommand()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">覆盖:</span></dt>
<dd><code>helpCommand</code>&nbsp;在类中&nbsp;<code>server.Bots.Bot</code></dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>The string listing out all available commands</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../server/Bots/package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="class-use/WeixiangBot.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../deprecated-list.html">已过时</a></li>
<li><a href="../../index-files/index-1.html">索引</a></li>
<li><a href="../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个类</li>
<li>下一个类</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?server/Bots/WeixiangBot.html" target="_top">框架</a></li>
<li><a href="WeixiangBot.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,122 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:56 MST 2018 -->
<title>类 server.Bots.WeixiangBot的使用</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="\u7C7B server.Bots.WeixiangBot\u7684\u4F7F\u7528";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../server/Bots/package-summary.html">程序包</a></li>
<li><a href="../../../server/Bots/WeixiangBot.html" title="server.Bots中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../../../overview-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?server/Bots/class-use/WeixiangBot.html" target="_top">框架</a></li>
<li><a href="WeixiangBot.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="类的使用 server.Bots.WeixiangBot" class="title">类的使用<br>server.Bots.WeixiangBot</h2>
</div>
<div class="classUseContainer">没有server.Bots.WeixiangBot的用法</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../server/Bots/package-summary.html">程序包</a></li>
<li><a href="../../../server/Bots/WeixiangBot.html" title="server.Bots中的类"></a></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="../../../overview-tree.html"></a></li>
<li><a href="../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../index-files/index-1.html">索引</a></li>
<li><a href="../../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?server/Bots/class-use/WeixiangBot.html" target="_top">框架</a></li>
<li><a href="WeixiangBot.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:56 MST 2018 -->
<title>server.Bots</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<h1 class="bar"><a href="../../server/Bots/package-summary.html" target="classFrame">server.Bots</a></h1>
<div class="indexContainer">
<h2 title="类"></h2>
<ul title="类">
<li><a href="WeixiangBot.html" title="server.Bots中的类" target="classFrame">WeixiangBot</a></li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,140 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:56 MST 2018 -->
<title>server.Bots</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="server.Bots";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li><a href="package-use.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../deprecated-list.html">已过时</a></li>
<li><a href="../../index-files/index-1.html">索引</a></li>
<li><a href="../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个程序包</li>
<li>下一个程序包</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?server/Bots/package-summary.html" target="_top">框架</a></li>
<li><a href="package-summary.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="程序包" class="title">程序包&nbsp;server.Bots</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="类概要表, 列表类和解释">
<caption><span>类概要</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col"></th>
<th class="colLast" scope="col">说明</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../server/Bots/WeixiangBot.html" title="server.Bots中的类">WeixiangBot</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li><a href="package-use.html">使用</a></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../deprecated-list.html">已过时</a></li>
<li><a href="../../index-files/index-1.html">索引</a></li>
<li><a href="../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个程序包</li>
<li>下一个程序包</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?server/Bots/package-summary.html" target="_top">框架</a></li>
<li><a href="package-summary.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,135 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:56 MST 2018 -->
<title>server.Bots 类分层结构</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="server.Bots \u7C7B\u5206\u5C42\u7ED3\u6784";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li class="navBarCell1Rev"></li>
<li><a href="../../deprecated-list.html">已过时</a></li>
<li><a href="../../index-files/index-1.html">索引</a></li>
<li><a href="../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?server/Bots/package-tree.html" target="_top">框架</a></li>
<li><a href="package-tree.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">程序包server.Bots的分层结构</h1>
</div>
<div class="contentContainer">
<h2 title="类分层结构">类分层结构</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">server.Bots.Bot
<ul>
<li type="circle">server.Bots.<a href="../../server/Bots/WeixiangBot.html" title="server.Bots中的类"><span class="typeNameLink">WeixiangBot</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li>使用</li>
<li class="navBarCell1Rev"></li>
<li><a href="../../deprecated-list.html">已过时</a></li>
<li><a href="../../index-files/index-1.html">索引</a></li>
<li><a href="../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?server/Bots/package-tree.html" target="_top">框架</a></li>
<li><a href="package-tree.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,142 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc (1.8.0_144) on Tue Dec 04 22:45:56 MST 2018 -->
<title>程序包 server.Bots的使用</title>
<meta name="date" content="2018-12-04">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="\u7A0B\u5E8F\u5305 server.Bots\u7684\u4F7F\u7528";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../deprecated-list.html">已过时</a></li>
<li><a href="../../index-files/index-1.html">索引</a></li>
<li><a href="../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?server/Bots/package-use.html" target="_top">框架</a></li>
<li><a href="package-use.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="程序包的使用 server.Bots" class="title">程序包的使用<br>server.Bots</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList"><a name="server.Bots">
<!-- -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="使用表, 列表类和解释">
<caption><span><a href="../../server/Bots/package-summary.html">server.Bots</a>使用的<a href="../../server/Bots/package-summary.html">server.Bots</a>中的类</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">类和说明</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../server/Bots/class-use/Bot.html#server.Bots">Bot</a>
<div class="block">This bot class implements basic functionality of the chat bot.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../server/Bots/package-summary.html">程序包</a></li>
<li></li>
<li class="navBarCell1Rev">使用</li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../deprecated-list.html">已过时</a></li>
<li><a href="../../index-files/index-1.html">索引</a></li>
<li><a href="../../help-doc.html">帮助</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>上一个</li>
<li>下一个</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?server/Bots/package-use.html" target="_top">框架</a></li>
<li><a href="package-use.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,574 @@
/* Javadoc style sheet */
/*
Overall document style
*/
@import url('resources/fonts/dejavu.css');
body {
background-color:#ffffff;
color:#353833;
font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
font-size:14px;
margin:0;
}
a:link, a:visited {
text-decoration:none;
color:#4A6782;
}
a:hover, a:focus {
text-decoration:none;
color:#bb7a2a;
}
a:active {
text-decoration:none;
color:#4A6782;
}
a[name] {
color:#353833;
}
a[name]:hover {
text-decoration:none;
color:#353833;
}
pre {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
}
h1 {
font-size:20px;
}
h2 {
font-size:18px;
}
h3 {
font-size:16px;
font-style:italic;
}
h4 {
font-size:13px;
}
h5 {
font-size:12px;
}
h6 {
font-size:11px;
}
ul {
list-style-type:disc;
}
code, tt {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
padding-top:4px;
margin-top:8px;
line-height:1.4em;
}
dt code {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
padding-top:4px;
}
table tr td dt code {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
vertical-align:top;
padding-top:4px;
}
sup {
font-size:8px;
}
/*
Document title and Copyright styles
*/
.clear {
clear:both;
height:0px;
overflow:hidden;
}
.aboutLanguage {
float:right;
padding:0px 21px;
font-size:11px;
z-index:200;
margin-top:-9px;
}
.legalCopy {
margin-left:.5em;
}
.bar a, .bar a:link, .bar a:visited, .bar a:active {
color:#FFFFFF;
text-decoration:none;
}
.bar a:hover, .bar a:focus {
color:#bb7a2a;
}
.tab {
background-color:#0066FF;
color:#ffffff;
padding:8px;
width:5em;
font-weight:bold;
}
/*
Navigation bar styles
*/
.bar {
background-color:#4D7A97;
color:#FFFFFF;
padding:.8em .5em .4em .8em;
height:auto;/*height:1.8em;*/
font-size:11px;
margin:0;
}
.topNav {
background-color:#4D7A97;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
font-size:12px;
}
.bottomNav {
margin-top:10px;
background-color:#4D7A97;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
font-size:12px;
}
.subNav {
background-color:#dee3e9;
float:left;
width:100%;
overflow:hidden;
font-size:12px;
}
.subNav div {
clear:left;
float:left;
padding:0 0 5px 6px;
text-transform:uppercase;
}
ul.navList, ul.subNavList {
float:left;
margin:0 25px 0 0;
padding:0;
}
ul.navList li{
list-style:none;
float:left;
padding: 5px 6px;
text-transform:uppercase;
}
ul.subNavList li{
list-style:none;
float:left;
}
.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
color:#FFFFFF;
text-decoration:none;
text-transform:uppercase;
}
.topNav a:hover, .bottomNav a:hover {
text-decoration:none;
color:#bb7a2a;
text-transform:uppercase;
}
.navBarCell1Rev {
background-color:#F8981D;
color:#253441;
margin: auto 5px;
}
.skipNav {
position:absolute;
top:auto;
left:-9999px;
overflow:hidden;
}
/*
Page header and footer styles
*/
.header, .footer {
clear:both;
margin:0 20px;
padding:5px 0 0 0;
}
.indexHeader {
margin:10px;
position:relative;
}
.indexHeader span{
margin-right:15px;
}
.indexHeader h1 {
font-size:13px;
}
.title {
color:#2c4557;
margin:10px 0;
}
.subTitle {
margin:5px 0 0 0;
}
.header ul {
margin:0 0 15px 0;
padding:0;
}
.footer ul {
margin:20px 0 5px 0;
}
.header ul li, .footer ul li {
list-style:none;
font-size:13px;
}
/*
Heading styles
*/
div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
background-color:#dee3e9;
border:1px solid #d0d9e0;
margin:0 0 6px -8px;
padding:7px 5px;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
background-color:#dee3e9;
border:1px solid #d0d9e0;
margin:0 0 6px -8px;
padding:7px 5px;
}
ul.blockList ul.blockList li.blockList h3 {
padding:0;
margin:15px 0;
}
ul.blockList li.blockList h2 {
padding:0px 0 20px 0;
}
/*
Page layout container styles
*/
.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
clear:both;
padding:10px 20px;
position:relative;
}
.indexContainer {
margin:10px;
position:relative;
font-size:12px;
}
.indexContainer h2 {
font-size:13px;
padding:0 0 3px 0;
}
.indexContainer ul {
margin:0;
padding:0;
}
.indexContainer ul li {
list-style:none;
padding-top:2px;
}
.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
font-size:12px;
font-weight:bold;
margin:10px 0 0 0;
color:#4E4E4E;
}
.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
margin:5px 0 10px 0px;
font-size:14px;
font-family:'DejaVu Sans Mono',monospace;
}
.serializedFormContainer dl.nameValue dt {
margin-left:1px;
font-size:1.1em;
display:inline;
font-weight:bold;
}
.serializedFormContainer dl.nameValue dd {
margin:0 0 0 1px;
font-size:1.1em;
display:inline;
}
/*
List styles
*/
ul.horizontal li {
display:inline;
font-size:0.9em;
}
ul.inheritance {
margin:0;
padding:0;
}
ul.inheritance li {
display:inline;
list-style:none;
}
ul.inheritance li ul.inheritance {
margin-left:15px;
padding-left:15px;
padding-top:1px;
}
ul.blockList, ul.blockListLast {
margin:10px 0 10px 0;
padding:0;
}
ul.blockList li.blockList, ul.blockListLast li.blockList {
list-style:none;
margin-bottom:15px;
line-height:1.4;
}
ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
padding:0px 20px 5px 10px;
border:1px solid #ededed;
background-color:#f8f8f8;
}
ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
padding:0 0 5px 8px;
background-color:#ffffff;
border:none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
margin-left:0;
padding-left:0;
padding-bottom:15px;
border:none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
list-style:none;
border-bottom:none;
padding-bottom:0;
}
table tr td dl, table tr td dl dt, table tr td dl dd {
margin-top:0;
margin-bottom:1px;
}
/*
Table styles
*/
.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
width:100%;
border-left:1px solid #EEE;
border-right:1px solid #EEE;
border-bottom:1px solid #EEE;
}
.overviewSummary, .memberSummary {
padding:0px;
}
.overviewSummary caption, .memberSummary caption, .typeSummary caption,
.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
position:relative;
text-align:left;
background-repeat:no-repeat;
color:#253441;
font-weight:bold;
clear:none;
overflow:hidden;
padding:0px;
padding-top:10px;
padding-left:1px;
margin:0px;
white-space:pre;
}
.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
color:#FFFFFF;
}
.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
padding-bottom:7px;
display:inline-block;
float:left;
background-color:#F8981D;
border: none;
height:16px;
}
.memberSummary caption span.activeTableTab span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
margin-right:3px;
display:inline-block;
float:left;
background-color:#F8981D;
height:16px;
}
.memberSummary caption span.tableTab span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
margin-right:3px;
display:inline-block;
float:left;
background-color:#4D7A97;
height:16px;
}
.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
padding-top:0px;
padding-left:0px;
padding-right:0px;
background-image:none;
float:none;
display:inline;
}
.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
display:none;
width:5px;
position:relative;
float:left;
background-color:#F8981D;
}
.memberSummary .activeTableTab .tabEnd {
display:none;
width:5px;
margin-right:3px;
position:relative;
float:left;
background-color:#F8981D;
}
.memberSummary .tableTab .tabEnd {
display:none;
width:5px;
margin-right:3px;
position:relative;
background-color:#4D7A97;
float:left;
}
.overviewSummary td, .memberSummary td, .typeSummary td,
.useSummary td, .constantsSummary td, .deprecatedSummary td {
text-align:left;
padding:0px 0px 12px 10px;
}
th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
vertical-align:top;
padding-right:0px;
padding-top:8px;
padding-bottom:3px;
}
th.colFirst, th.colLast, th.colOne, .constantsSummary th {
background:#dee3e9;
text-align:left;
padding:8px 3px 3px 7px;
}
td.colFirst, th.colFirst {
white-space:nowrap;
font-size:13px;
}
td.colLast, th.colLast {
font-size:13px;
}
td.colOne, th.colOne {
font-size:13px;
}
.overviewSummary td.colFirst, .overviewSummary th.colFirst,
.useSummary td.colFirst, .useSummary th.colFirst,
.overviewSummary td.colOne, .overviewSummary th.colOne,
.memberSummary td.colFirst, .memberSummary th.colFirst,
.memberSummary td.colOne, .memberSummary th.colOne,
.typeSummary td.colFirst{
width:25%;
vertical-align:top;
}
td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
font-weight:bold;
}
.tableSubHeadingColor {
background-color:#EEEEFF;
}
.altColor {
background-color:#FFFFFF;
}
.rowColor {
background-color:#EEEEEF;
}
/*
Content styles
*/
.description pre {
margin-top:0;
}
.deprecatedContent {
margin:0;
padding:10px 0;
}
.docSummary {
padding:0;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
font-style:normal;
}
div.block {
font-size:14px;
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
}
td.colLast div {
padding-top:0px;
}
td.colLast a {
padding-bottom:3px;
}
/*
Formatting effect styles
*/
.sourceLineNo {
color:green;
padding:0 30px 0 0;
}
h1.hidden {
visibility:hidden;
overflow:hidden;
font-size:10px;
}
.block {
display:block;
margin:3px 10px 2px 0px;
color:#474747;
}
.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
font-weight:bold;
}
.deprecationComment, .emphasizedPhrase, .interfaceName {
font-style:italic;
}
div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
div.block div.block span.interfaceName {
font-style:normal;
}
div.contentContainer ul.blockList li.blockList h2{
padding-bottom:0px;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,40 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ChatClient</groupId>
<artifactId>ChatClient</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>net.bramp.ffmpeg</groupId>
<artifactId>ffmpeg</artifactId>
<version>0.6.2</version>
</dependency>
<dependency>
<groupId>com.github.axet</groupId>
<artifactId>vget</artifactId>
<version>1.1.34</version>
</dependency>
<dependency>
<groupId>Ab</groupId>
<artifactId>com.google</artifactId>
<version>0.0.4.3</version>
<scope>system</scope>
<systemPath>${basedir}/lib/Ab.jar</systemPath>
</dependency>
</dependencies>
</project>

@ -0,0 +1,297 @@
package client;
/**
* A view for the chat client.
*
* @author Mingjun Zha, Minh Bui
*/
import java.io.File;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import javafx.util.Duration;
public class ChatBotView extends Stage {
private MusicThread msThread;
private Thread actualMsThread;
private int boardlength = 1150;
private int boardwidth = 500;
private int buttonwidth = 100;
private Label username = null;// username text field
// private Button connect;
private Button clear;
private TextArea chatboard;
private Button SendButton; // the send button
private TextField message; // the message we want to sent
private String userName;
private ChatServerThread server;
private Canvas canvas;
private GraphicsContext gc;
int initialX;
int initialY;
@FXML
private ImageView imageviewNBA;
private ImageView imageviewMus;
private ImageView imageviewLOL;
private ImageView imageviewLip;
private Image nba;
private Image music;
private Image makeup;
private Image lol;
/**
* For some reasons this is never called with
*
* Application.launch(view.getClass(), args);
*
* That line above always call the default constructor. We no default
* constructor is found, Java throws off some weird errors.
*
* @param hostName
* @param portNumber
*/
public ChatBotView(String hostName, int portNumber, String userName, ChatServerThread server) {
this.server = server;
this.userName = userName;
this.setTitle("Chat client");
BorderPane pane = new BorderPane();
Scene scene = new Scene(pane, boardlength, boardwidth);
pane.setCenter(images());
messageEvent();
this.setScene(scene);
this.setResizable(true);
this.show();
this.setOnCloseRequest(e -> {
server.close();
});
this.setScene(scene);
}
public ChatBotView() {
}
public VBox layout() {
HBox buttons = buttonset();// setting the buttonset
VBox chatAndSend = Initchatboard();// initialized chatboard
VBox Layout = new VBox(buttons, chatAndSend);
Layout.setVgrow(chatAndSend, Priority.ALWAYS);
Layout.setPadding(new Insets(30, 40, 20, 20));
Layout.setSpacing(20);
return Layout;
}
public HBox images() {
//this.GIF();
canvas = new Canvas(100,500);
gc = canvas.getGraphicsContext2D();
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(300),
new AnimationHandler()));
timeline.setCycleCount(timeline.INDEFINITE);
timeline.play();
// VBox vb = new VBox(imageviewNBA,imageviewMus,imageviewLip,imageviewLOL);
// vb.setVgrow(imageviewNBA, Priority.ALWAYS);
// vb.setVgrow(imageviewMus, Priority.ALWAYS);
// vb.setVgrow(imageviewLip, Priority.ALWAYS);
// vb.setVgrow(imageviewLOL, Priority.ALWAYS);
//vb.setSpacing(20);
VBox layou = layout();
HBox hb = new HBox(canvas,layou);
hb.setHgrow(canvas, Priority.ALWAYS);
hb.setHgrow(layou, Priority.ALWAYS);
hb.setPadding(new Insets(10,10,10,10));
return hb;
}
private class AnimationHandler implements EventHandler<ActionEvent> {
/*
* /public AnimationHandler() { System.out.println("here");
* gc.drawImage(nba,0,0); gc.clearRect(0, 0, 100, 100); gc.drawImage(nba,0,0);
*
* }
*/
int tick = 0;
@Override
public void handle(ActionEvent arg0) {
tick++;
if (tick > 0) {
gc.drawImage(nba, 0, 0);
}
if (tick > 8) {
gc.clearRect(0, 0, 100, 100);
gc.drawImage(lol, 0, 120);
}
if (tick > 16) {
gc.clearRect(0, 120, 100, 100);
gc.drawImage(makeup, 0, 240);
}
if (tick > 24) {
gc.clearRect(0, 240, 100, 100);
gc.drawImage(music, 0, 360);
}
if (tick >= 30) {
gc.clearRect(0, 360, 100, 100);
tick = 1;
}
}
}
// public void GIF() {
// imageviewNBA = new ImageView();
// imageviewMus = new ImageView();
// imageviewLOL = new ImageView();
// imageviewLip = new ImageView();
// nba = new Image(new File("nba.gif").toURI().toString());
// lol = new Image(new File("lol.gif").toURI().toString());
// makeup = new Image(new File("makeup.gif").toURI().toString());
// music = new Image(new File("music.gif").toURI().toString());
// imageviewNBA.setImage(nba);
// imageviewMus.setImage(music);
// imageviewLOL.setImage(lol);
// imageviewLip.setImage(makeup);
//
// }
public HBox buttonset() {
clear = new Button("Clear");
clear.setOnAction(event -> {
chatboard.clear();
});
clear.setPrefWidth(buttonwidth);
HBox user = usernameBox();
HBox buttonSet = new HBox(user, clear);
buttonSet.setHgrow(user, Priority.ALWAYS);
buttonSet.setSpacing(700);
return buttonSet;
}
public HBox usernameBox() {
Text user = new Text("Username: ");
username = new Label(userName);
HBox userset = new HBox(user, username);
return userset;
}
public VBox Initchatboard() {
chatboard = new TextArea();
chatboard.setPrefHeight(300);
chatboard.setPrefWidth(500);
chatboard.setEditable(false);
message = new TextField();
message.setPrefWidth(445);
SendButton = new Button("Send");
SendButton.setPrefWidth(50);
HBox hb = new HBox(message, SendButton);
VBox vb = new VBox(chatboard, hb);
hb.setHgrow(message, Priority.ALWAYS);
vb.setVgrow(chatboard, Priority.ALWAYS);
vb.setSpacing(30);
return vb;
}
public void messageEvent() {
message.setOnAction(event -> {
if (message.getText() != null) {
String chat = message.getText();
if (chat != null && !chat.isEmpty())
server.addMsg(chat);
message.setText("");
}
});
SendButton.setOnAction(events -> {
if (message.getText() != null) {
String chat = message.getText();
if (chat != null && !chat.isEmpty())
server.addMsg(chat);
message.setText("");
}
});
}
public void appendMessage(String msg) {
chatboard.appendText(msg + "\n");
}
public void openURL(String url) {
Stage newStage = new Stage();
WebView webview = new WebView();
webview.getEngine().load(url);
webview.setPrefSize(640, 390);
newStage.setScene(new Scene(webview));
newStage.show();
}
public void pauseMusic() {
if (msThread != null)
msThread.pause();
}
public void resumeMusic() {
if (msThread != null) {
Thread actualMsThread = new Thread(msThread);
actualMsThread.start();
}
}
public void playMusic(String name) {
String musicFile = "./SampleMusic/" + name; // For example
if (msThread == null) {
msThread = new MusicThread(musicFile);
actualMsThread = new Thread(msThread);
actualMsThread.start();
} else {
try {
if (msThread.isPlaying())
msThread.pause();
} catch (Exception e) {
}
msThread = new MusicThread(musicFile);
actualMsThread = new Thread(msThread);
actualMsThread.start();
}
}
}

@ -0,0 +1,16 @@
package client;
import javafx.application.Application;
import javafx.stage.Modality;
import client.SignInView;
public class ChatClient {
public static void main(String[] args){
try {
Application.launch(SignInView.class);
} catch (Exception e) {
e.printStackTrace(System.err);
System.exit(1);
}
}
}

@ -0,0 +1,226 @@
package client;
/**
* ChatServerThread.java
* Handles I/O from client to server.
*/
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.LinkedList;
import java.util.Queue;
import javafx.application.Platform;
import javafx.scene.control.Alert;
import javafx.scene.paint.Color;
import server.Response;
import server.User;
public class ChatServerThread implements Runnable {
private Socket socket;
private User user;
// private final LinkedList<String> pendingMsgs;
// private Queue<String> viewPendingMsgs;
private String msg;
private boolean hasMsgs = false;
private ObjectOutputStream objOut;
private ObjectInputStream objIn;
// Reference to update the GUI once there's response from server.
private ChatBotView view;
private SignInView signInView;
private SignUpView signUpView;
public ChatServerThread(ChatBotView view, SignInView siView, SignUpView suView, Socket socket, User user) {
this.view = view;
signInView = siView;
signUpView = suView;
this.socket = socket;
// pendingMsgs = new LinkedList<String>();
// viewPendingMsgs = new LinkedList<String>();
this.user = user;
}
/**
* Called when closing connection.
*/
public void close() {
try {
if (objOut != null)
objOut.close();
if (objIn != null)
objIn.close();
if (socket != null) {
socket.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
/**
* Push a pending message onto the stack. The reason behind this is we want to
* save every message sent by this client.
*
* @param msg
*/
public void addMsg(String msg) {
hasMsgs = true;
this.msg = msg;
}
/**
* Prompts this thread to send user object to the server.
*
* @param user
*/
public void sendUserObject(User user) {
synchronized (user) {
this.user = user;
try {
objOut.writeObject(user);
objOut.flush();
} catch (IOException e) {
}
}
}
public Response recvResponse() {
Response res = null;
// Keep reading Response from the server until it's not null.
while (res == null) {
try {
res = (Response) objIn.readObject();
return res;
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
@Override
public void run() {
try {
System.out.println(Thread.currentThread().getName() + " is a ChatServerThread and is running.");
objOut = new ObjectOutputStream(socket.getOutputStream());
objIn = new ObjectInputStream(socket.getInputStream());
Response oldRes = null;
while (!socket.isClosed()) {
if (socket.getInputStream().available() > 0) {
Response res = recvResponse();
// If this client's user object is already signed in,
// then response from the server is a broadcasted message.
// Allow user to send/receive message from the server.
if (user.getUserCode() == User.UserCode.signedInUser && view != null) {
// sendUserObject(user);
view.appendMessage(res.getMessage());
// URL/music pulling feature.
if (res.getData() != null && !res.getData().isEmpty()) {
String data = res.getData();
String msg = res.getMessage();
boolean isUrl = res.isUrl();
Platform.runLater(new Runnable() {
public void run() {
if (!isUrl) {
if (data.equals("pause"))
view.pauseMusic();
else if (data.equals("resume"))
view.resumeMusic();
else {
view.playMusic(data);
}
} else {
view.openURL(data);
}
}
});
}
// This means this thread is sending an User object to the server
// for verification with the database. If the credential match,
// change the user's status of signing in to signed in and update the GUI.
} else if (user.getUserCode() == User.UserCode.signingInUser && !res.equals(oldRes)) {
if (res.isOK()) {
this.user.setUserCode(User.UserCode.signedInUser);
Platform.runLater(new Runnable() {
public void run() {
view = signInView.successSignedIn();
}
});
} else {
// Shoot a message dialog to the signInView saying that
// the server doesn't recognize the user's credential.
Platform.runLater(new Runnable() {
public void run() {
signInView.signInFail();
}
});
}
oldRes = res;
} else if (this.user.getUserCode() == User.UserCode.signingUpUser && !res.equals(oldRes)) {
// This means this thread is trying to create a new User within the server
// database.
// If res.isOk() returns false, it means the server can't find the user. If so,
// proceed with updating
// the GUI. Else make the GUI pop up an error message.
if (!res.isOK()) {
// If this user's not in the database.
// this.user.setUserCode(User.UserCode.signingInUser);
Platform.runLater(new Runnable() {
public void run() {
signUpView = signInView.getSignUpView();
signUpView.signUpSuccess();
signUpView.close();
}
});
} else {
// The user's already in the database. Notify the sign up view.
Platform.runLater(new Runnable() {
public void run() {
signUpView = signInView.getSignUpView();
signUpView.signUpFail();
}
});
}
oldRes = res;
}
}
if (hasMsgs) {
String nextMsg = msg;
hasMsgs = !hasMsgs;
String wholeMsg = "[" + user.getHandle() + "] " + nextMsg;
// out.writeUTF(wholeMsg);
// out.flush();
objOut.writeObject(new Response(wholeMsg, null));
objOut.flush();
}
}
this.close();
} catch (IOException e) {
System.out.println("You have been disconnected from server.");
this.close();
Platform.runLater(new Runnable() {
public void run() {
new Alert(Alert.AlertType.WARNING, "Disconnected from server.").showAndWait();
}
});
}
}
}

@ -0,0 +1,81 @@
package client;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.advanced.AdvancedPlayer;
import javazoom.jl.player.advanced.PlaybackEvent;
import javazoom.jl.player.advanced.PlaybackListener;
public class MusicThread implements Runnable {
private AdvancedPlayer player;
private int pausedOnFrame;
private String path;
private boolean isPlaying;
public boolean isPlaying() {
return isPlaying;
}
public String getPath() {
return path;
}
public MusicThread(String name) {
try {
path = name;
pausedOnFrame = 0;
isPlaying = false;
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void run() {
try {
newTrack();
System.out.println("Playing " + path + " from frame: " + pausedOnFrame);
isPlaying = true;
player.play(pausedOnFrame, Integer.MAX_VALUE);
} catch (JavaLayerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void pause() {
if (player != null)
player.stop();
}
private void newTrack() {
try {
FileInputStream fis = new FileInputStream(path);
this.player = new AdvancedPlayer(new BufferedInputStream(fis));
player.setPlayBackListener(new PlaybackListener() {
@Override
public void playbackFinished(PlaybackEvent event) {
pausedOnFrame = event.getFrame();
System.out.println("Track: " + path + " paused on frame: " + pausedOnFrame);
isPlaying = false;
}
});
} catch (JavaLayerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

@ -0,0 +1,165 @@
package client;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import client.ChatBotView;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import server.User;
public class SignInView extends Application {
private String hostName = "localhost";
private int portNumber = 4000;
private String userName;
private ChatServerThread clientThread;
private Socket socket;
private ChatBotView chatView;
private SignUpView signUpView;
private Stage priStage;
private Label connectionStatus;
public Label getConnectionStatus() {
return connectionStatus;
}
public void setConnectionStatus(Label connectionStatus) {
this.connectionStatus = connectionStatus;
}
@Override
public void start(Stage primaryStage) throws Exception {
priStage = primaryStage;
VBox signInWindow = new VBox(30);
signInWindow.setPrefHeight(200);
signInWindow.setPrefWidth(350);
signInWindow.setPadding(new Insets(35, 30, 35, 45));
signInWindow.setStyle("-fx-background-color: white");
Scene scene = new Scene(signInWindow);
Label welcome = new Label("\t Welcom to the CHATBOT!");
connectionStatus = new Label("\t\t Offline");
connectionStatus.setTextFill(Color.RED);
HBox userName = new HBox();
Label userNameLabel = new Label("USERNAME:\t");
TextField userNameText = new TextField();
userName.getChildren().addAll(userNameLabel, userNameText);
HBox password = new HBox();
Label passwordLabel = new Label("PASSWORD:\t");
PasswordField passwordText = new PasswordField();
password.getChildren().addAll(passwordLabel, passwordText);
HBox button = new HBox(120);
Button signIn = new Button("SIGN IN");
Button signUp = new Button("SIGN UP");
button.getChildren().addAll(signIn, signUp);
signIn.setOnAction(MouseClicked -> {
if (socket != null && socket.isConnected()) {
User signingInUser = new User();
this.userName = userNameText.getText();
signingInUser.setPassword(passwordText.getText());
signingInUser.setHandle(userNameText.getText());
signingInUser.setUserCode(User.UserCode.signingInUser);
clientThread.sendUserObject(signingInUser);
}
});
signUp.setOnAction(MouseClicked -> {
signUpView = new SignUpView(clientThread, socket);
signUpView.show();
});
signInWindow.getChildren().addAll(welcome, connectionStatus, userName, password, button);
primaryStage.setScene(scene);
primaryStage.setTitle("SignIn");
primaryStage.show();
Thread connectingThread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + " is a connectingThread and is running.");
try {
while (true) {
while (socket == null || !socket.isConnected() || socket.isClosed()) {
connectServer();
Thread.sleep(7000);
}
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + " is a connectingThread and is done.");
}
});
connectingThread.start();
}
public SignUpView getSignUpView() {
return this.signUpView;
}
public ChatBotView getChatBotView() {
return chatView;
}
public ChatBotView successSignedIn() {
System.out.println("Log on success!");
chatView = new ChatBotView(hostName, portNumber, userName, clientThread);
priStage.close();
return chatView;
}
public void backToSignIn() {
priStage.show();
}
public void signInFail() {
new Alert(Alert.AlertType.WARNING, "user not found or wrong password").showAndWait();
System.out.println("User not found or wrong password");
}
public void connectServer() {
try {
socket = new Socket(hostName, portNumber);
User user = new User(userName, socket);
clientThread = new ChatServerThread(chatView, this, signUpView, socket, user);
Thread actualClientThread = new Thread(clientThread);
actualClientThread.start();
Platform.runLater(new Runnable() {
public void run() {
connectionStatus.setTextFill(Color.GREEN);
connectionStatus.setText("\t\t Online");
}
});
} catch (UnknownHostException e) {
} catch (IOException e) {
}
}
}

@ -0,0 +1,117 @@
package client;
import java.net.Socket;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import server.User;
public class SignUpView extends Stage {
Button ok;
Button cancel;
private ChatServerThread clientThread;
private Socket socket;
public SignUpView(ChatServerThread clientThread, Socket socket) {
super();
this.clientThread = clientThread;
this.socket = socket;
VBox signInWindow = new VBox(30);
signInWindow.setPadding(new Insets(35, 30, 35, 45));
signInWindow.setStyle("-fx-background-color: white");
Scene scene = new Scene(signInWindow);
HBox userName = new HBox();
Label userNameLabel = new Label("USERNAME*:\t");
TextField userNameText = new TextField();
userName.getChildren().addAll(userNameLabel, userNameText);
HBox password = new HBox();
Label passwordLabel = new Label("PASSWORD*:\t");
TextField passwordText = new TextField();
password.getChildren().addAll(passwordLabel, passwordText);
HBox name = new HBox();
Label firstName = new Label("First Name:\t");
TextField firstNameText = new TextField();
Label LastName = new Label("Last Name:\t");
TextField lastNameText = new TextField();
name.getChildren().addAll(firstName, firstNameText, LastName, lastNameText);
HBox age = new HBox();
Label userAge = new Label("AGE: \t");
TextField userAgeText = new TextField();
age.getChildren().addAll(userAge, userAgeText);
HBox major = new HBox();
Label userMajor = new Label("MAJOR: \t");
TextField userMajorText = new TextField();
major.getChildren().addAll(userMajor, userMajorText);
HBox button = new HBox(120);
ok = new Button("OK");
ok.setOnAction(MouseClicked -> {
if (this.socket != null && this.socket.isConnected()) {
if ((userNameText.getText() == null || userNameText.getText().isEmpty()) ||
(passwordText.getText() == null || passwordText.getText() == null) ||
(userAgeText.getText() == null || userAgeText.getText() == null) ||
(firstNameText.getText() == null || lastNameText.getText() == null) ||
(userAgeText.getText() == null || userAgeText.getText() == null) ||
(userMajorText.getText() == null || userMajorText.getText() == null))
new Alert(Alert.AlertType.ERROR, "Please fill out all fields.").showAndWait();
else
okAction(userNameText.getText(), passwordText.getText(), firstNameText.getText(),
lastNameText.getText(), userAgeText.getText(), userMajorText.getText());
}
});
cancel = new Button("Cancel");
cancel.setOnAction(MouseClicked -> {
this.close();
});
button.getChildren().addAll(ok, cancel);
signInWindow.getChildren().addAll(userName, password, name, age, major, button);
this.setScene(scene);
this.setTitle("SignUp");
}
/**
* Prompts the client to send new user information to the server.
*
* @param userName
* @param password
* @param firstName
* @param lastName
* @param age
* @param major
*/
public void okAction(String userName, String password, String firstName, String lastName, String age,
String major) {
User newUser = new User(userName, password, firstName, lastName, age, major);
newUser.setUserCode(User.UserCode.signingUpUser);
clientThread.sendUserObject(newUser);
}
/**
* Called when signing up fails.
*/
public void signUpFail() {
new Alert(Alert.AlertType.INFORMATION, "User name has been used").showAndWait();
System.out.println("Sign up failed.");
}
public void signUpSuccess() {
new Alert(Alert.AlertType.INFORMATION, "Sign up successfull. Please log in with the new account.").showAndWait();
System.out.println("Sign up successfull.");
}
}

@ -0,0 +1,197 @@
package server.Bots;
import java.io.File;
import java.io.IOException;
import java.util.AbstractMap;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
import org.alicebot.ab.Chat;
import org.alicebot.ab.History;
import org.alicebot.ab.MagicBooleans;
import org.alicebot.ab.MagicStrings;
import org.alicebot.ab.utils.IOUtils;
import server.ChatClientThread;
import server.Response;
import server.User;
/**
* This bot class implements basic functionality of the chat bot. Note that this
* class should never be instantiated. Whenever we need to create a chat bot,
* instantiate a new bot object that extends this class, for example:
*
* Bot newBot = new MinhsBot();
*
* @author Minh Bui
*/
public abstract class Bot {
// A map of commands with the command names as keys and commands' parameters as
// values.
private static AbstractMap<String, String> defaultCommandsList;
// A character that identify the
private char botCharacterId;
private static final boolean TRACE_MODE = false;
static String botName = "super";
private static org.alicebot.ab.Bot bot;
private static Chat chatSession;
/**
* constructor
*/
public Bot() {
String resourcesPath = getResourcesPath();
MagicBooleans.trace_mode = TRACE_MODE;
bot = new org.alicebot.ab.Bot("super", resourcesPath);
// bot.writeAIMLFiles();
chatSession = new Chat(bot);
botCharacterId = '!';
defaultCommandsList = new HashMap<>();
defaultCommandsList.put("help", " - list out the available commands for the current bot. ");
defaultCommandsList.put("info", "[USER] - prints out the information of User.");
defaultCommandsList.put("date", " - prints out the current date.");
defaultCommandsList.put("whoami", " - prints out the user's client info such as IP addresses, ...");
defaultCommandsList.put("ttm", " - abbreviation for \"talk to me\".");
defaultCommandsList.put("geturl", "[URL] - pull web resource through url.");
}
/**
*
* @return A string containing a list of available commands and their usage.
*/
public String helpCommand() {
String helpCommandStr = "List of available commands: \n";
for (String command : defaultCommandsList.keySet()) {
helpCommandStr += botCharacterId + command + defaultCommandsList.get(command);
}
return helpCommandStr;
}
/**
* @return The bot's handle in the server.
*/
public abstract String getBotSignature();
public String infoCommand(String user) {
User userObj = getUserFromDB(user);
String userInfo = "User doesn't exist.";
if (userObj != null) {
userInfo = "\nUser: " + userObj.getHandle();
userInfo += "\nName: " + userObj.getFirstName() + " " + userObj.getLastName();
userInfo += "\nAge: " + userObj.getAge();
userInfo += "\nMajor: " + userObj.getMajor();
}
return userInfo;
}
/**
* get the user object by using username
* @param userName which is the String value
* @return user
*/
private User getUserFromDB(String userName) {
Scanner sc = null;
User user = null;
try {
File file = new File(new java.io.File(".").getCanonicalPath() + File.separator + "userInfo.txt");
file.createNewFile();
sc = new Scanner(file);
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] info = line.split(" ");
if (userName.equals(info[0])) {
user = new User(info[0], info[1], info[2], info[3], info[4], info[5]);
}
}
} catch (IOException e) {
System.out.println(e.getMessage());
} finally {
if (sc != null)
sc.close();
}
return user;
}
/**
* @return A string representing the current's date.
*/
public abstract String dateCommand();
/**
* @return Information about the user such as IP address and connecting client..
*/
public abstract String whoamiCommand(User user);
/**
* Every Bot's subclass needs to overwrite this method.
*
* @param message
* @param user
* @return
*/
public abstract Response getResponses(String message, User user, List<ChatClientThread> clients);
/**
* @return Return a character that identifies this bot.
*/
public char getBotCharacterId() {
return botCharacterId;
}
/**
* Set the character that identifies this bot to botCharacterId.
*
* @param botCharacterId A character that identifies this bot.
*/
public void setBotCharacterId(char botCharacterId) {
this.botCharacterId = botCharacterId;
}
/**
* @return An abstract map of default commands as keys and their parameters as
* values.
*/
public AbstractMap<String, String> getDefaultCommandsList() {
return this.defaultCommandsList;
}
/**
* Helper method for getSmartResponse.
*
* @return A string path containing the resources for the aiml bot environment.
*/
private static String getResourcesPath() {
File currDir = new File(".");
String path = currDir.getAbsolutePath();
path = path.substring(0, path.length() - 2);
path += File.separator + "src";
path += File.separator + "server";
path += File.separator + "Bots";
path += File.separator + "resources";
return path;
}
/**
*
* @param message
* @param user
* @return
*/
public String getSmartResponse(String message, User user) {
bot.brain.nodeStats();
String response = chatSession.multisentenceRespond(message);
return response;
}
}

@ -0,0 +1,284 @@
package server.Bots;
import java.util.HashMap;
/**
* This Program is the store the each LipProducts information and get the Lip products'
* price, rate, and Lip color numbers
* @author Mingjun Zha
*
*/
public class LipProducts {
private String rate = "";
private String url = "";
private String price = "";
private Lipnum Lipnum;
private HashMap<String, HashMap<String, String[]>> brandsAndCate; // the key is brand, the value is cate
/**
* initializing the Lipproducts depending upon the each brand, and the brand as
* the key into the HashMap, the category as the value.
*/
public LipProducts() {
brandsAndCate = new HashMap<>();
brandsAndCate.put("Dior", Dior());
brandsAndCate.put("Giorgio_Armani_beauty", Giorgio_Armani_beauty());
brandsAndCate.put("Fenty_Beauty_By_Rihanna", Fenty_Beauty_By_Rihanna());
brandsAndCate.put("Givenchy",Givenchy());
brandsAndCate.put("Tom_Ford",Tom_Ford());
brandsAndCate.put("YSL", YSL());
brandsAndCate.put("Nars",Nars());
Lipnum = new Lipnum(); //the Lipnum program
}
/**
* Return a Giorgio_Armani_beauty hashMap that the store the information of the Lip
* products
* @return HashMap<String, String[]>, the category as the key, and the price, rate
* list as the value
*/
public HashMap<String, String[]> Giorgio_Armani_beauty(){
HashMap<String,String[]> cate = new HashMap<>();
String cate1 = "Lipstick"; //38
String cate2 = "LipStain"; //38
String url2 = "https://www.sephora.com/product/lip-m"
+ "aestro-P393411?skuId=1441583&icid2=products%20grid:p393411:product";
String[] LipStain = {"$38",url2,"4.4 / 5 stars"};
String url1 = "https://www.sephora.com/product/rouge-d-armani-"
+ "matte-lipstick-P436062?icid2=products%20grid:p436062:product";
String [] Lipstick = {"$38",url1,"4.7 / 5 stars"};
cate.put(cate1, Lipstick);
cate.put(cate2,LipStain);
return cate;
}
/**
* Return a Fenty_Beauty_By_Rihanna hashMap that the store the information of the Lip
* products
*
* @return HashMap<String, String[]>, the category as the key, and the price, rate
* list as the value
*/
public HashMap<String, String[]> Fenty_Beauty_By_Rihanna() {
HashMap<String,String[]> cate = new HashMap<>();
String cate1 = "Lipstick"; //18
String cate2 = "LipStain"; //24
String url1 = "https://www.sephora.com/product/mattemoisel"
+ "le-plush-matte-lipstick-P45874456?icid2=products%20grid:p45874"
+ "456:product";
String [] Lipstick = {"$18",url1,"4.4 / 5 stars"};
String url2 = "https://www.sephora.com/product/stunna-lip-paint-P39787"
+ "544?icid2=products%20grid:p39787544:product&skuId=2094274";
String [] LipStain = {"$24",url2,"4.3 / 5 stars"};
cate.put(cate1, Lipstick);
cate.put(cate2, LipStain);
return cate;
}
/**
* Return a Givenchy hashMap that the store the information of the Lip
* products
*
* @return HashMap<String, String[]>, the category as the key, and the price, rate
* list as the value
*/
public HashMap<String, String[]> Givenchy() {
HashMap<String,String[]> cate = new HashMap<>();
String cate1 = "Lipstick"; //37
String cate2 = "LipBalm"; //37
String url1 = "https://www.sephora.com/product/le-rouge-P3"
+ "77755?icid2=products%20grid:p377755:product&skuId=1497536";
String [] Lipstick = {"$37",url1,"4.5 / 5 stars"};
String url2 = "https://www.sephora.com/product/l"
+ "e-rouge-perfecto-beautifying-lip-balm-P410769?ic"
+ "id2=products%20grid:p410769:product";
String [] LipBalm = {"$37",url2,"4.0 / 5 stars"};
cate.put(cate1, Lipstick);
cate.put(cate2, LipBalm);
return cate;
}
/**
* Return a Tom_Ford hashMap that the store the information of the Lip
* products
*
* @return HashMap<String, String[]>, the category as the key, and the price, rate
* list as the value
*/
public HashMap<String, String[]> Tom_Ford() {
HashMap<String,String[]> cate = new HashMap<>();
String cate1 = "Lipstick"; //55
String cate2 = "LipGloss"; //48
String url2 = "https://www.sephora.com/product/"
+ "ultra-shine-lip-gloss-P422567?icid2=products%20grid:p422567:product";
String [] LipGloss = {"$48",url2,"4.0 / 5 stars"};
String url1 = "https://www.sephora.com/product/lip-color-"
+ "P416057?icid2=products%20grid:p416057:product&skuId=1917228";
String [] Lipstick = {"$55",url1,"4.5 / 5 stars"};
cate.put(cate1, Lipstick);
cate.put(cate2, LipGloss);
return cate;
}
/**
* Return a YSL hashMap that the store the information of the Lip
* products
*
* @return HashMap<String, String[]>, the category as the key, and the price, rate
* list as the value
*/
public HashMap<String, String[]> YSL() {
HashMap<String,String[]> cate = new HashMap<>();;
String cate1 = "Lipstick";
String cate2 = "LipStain";
String url = "https://www.sephora.com/product/"
+ "rouge-volupte-shine-oil-in-stick-lipstick-P377710?icid2="
+ "ysl_lipwardrobe_carousel_us_ufe:p377710:product";
String [] Lipstick = {"$38", url,"4.5 / 5 stars"};
cate.put(cate1, Lipstick);
url = "https://www.sephora.com/product/glossy-stain-lip-gloss-P304003"
+ "?icid2=ysl_lipwardrobe_carousel_us_ufe:p304003:product";
String [] LipStain = {"$37",url,"4.4 / 5 stars"};
cate.put(cate2, LipStain);
return cate;
}
/**
* Return a Nars hashMap that the store the information of the Lip
* products
*
* @return HashMap<String, String[]>, the category as the key, and the price, rate
* list as the value
*/
public HashMap<String, String[]> Nars(){
HashMap<String,String[]> cate = new HashMap<>();;
String cate1 = "Lipstick";
String cate2 = "LipBalm";
String cate3 = "LipGloss";
String url1 = "https://www.sephora.com/product/"
+ "audacious-lipstick-P387906?icid2=products%20grid:"
+ "p387906:product&skuId=1637164";
String [] Lipstick = {"$34",url1,"4.6 / 5 stars"};
String url2 = "https://www.sephora.com/product/"
+ "orgasm-afterglow-lip-balm-P13046537?icid2=products%2"
+ "0grid:p13046537:product";
String [] LipBalm = {"$28",url2,"3.9 / 5 stars"};
String url3 = "https://www.sephora.com/product/"
+ "lip-gloss-P386666?icid2=products%20grid:"
+ "p386666:product&skuId=1596469";
String [] LipGloss = {"$26",url3,"4.3 / 5 stars"};
cate.put(cate1, Lipstick);
cate.put(cate2, LipBalm);
cate.put(cate3, LipGloss);
return cate;
}
/**
* Return a Dior hashMap that the store the information of the Lip
* products
*
* @return HashMap<String, String[]>, the category as the key, and the price, rate
* list as the value
*/
public HashMap<String, String[]> Dior(){
HashMap<String,String[]> cate = new HashMap<>();;
String cate1 = "Lipstick";
String cate2 = "LipLiner";
String cate3 = "LipGlow";
String url1 = "https://www.sephora.com/" //37
+ "product/rouge-dior-ultra-rouge-lipstick-"
+ "P436859?icid2=products%20grid:p436859:product&skuId=2104701";
String url2 = "https://www.sephora.com/product/rouge-dior-ink-lip-"
+ "liner-P436860?skuId=2105070&icid2=dior_whatsnew_us_productca"
+ "rousel_ufe:p436860:product"; //32
String url3 = "https://www.sephora.com/product/dior"
+ "-addict-lip-glow-color-reviver-balm-P236816?skuId=2060358&"
+ "icid2=dior_lipcollection_us_productcarousel_ufe:p236816:product"; //34
String [] Lipstick = {"$37",url1,"4.9 / 5 stars"};
String [] LipLiner = {"$32",url2,"3.8 / 5 stars"};
String [] LipGlow = {"$34",url3,"4.4 / 5 stars"};
cate.put(cate1, Lipstick);
cate.put(cate2, LipLiner);
cate.put(cate3, LipGlow);
return cate;
}
/**
* This function is dpending upon the brand and category to construct the hashmap
* that contains price, url and rate
* @param brand, the brand String
* @param cate, the String category
*/
public void geteverything(String brand,String cate) {
HashMap<String, String[]> map;
if(brandsAndCate.containsKey(brand)) {
map = brandsAndCate.get(brand);
if(map.containsKey(cate)) {
price = map.get(cate)[0];
url = map.get(cate)[1];
rate = map.get(cate)[2];
}
else {
price = "NO such category";
url = "No such category";
rate = "No such category";
}
}
else {
price = "NO such brand";
url = "No such brand";
rate = "No such brand";
}
}
/**
* This function get the brand array into strings
* @return the keySet of the brand
*/
public String getbrand() {
return brandsAndCate.keySet().toString();
}
/**
* This function get the price array into String
* @return price, the price of the each product
*/
public String getprice() {
return price;
}
/**
* This function get the rate array into String
* @return rate, the rate of the each product
*/
public String getrate() {
return rate;
}
/**
* This function is return the url string
* @return url, the url of each product
*/
public String geturl() {
return url;
}
/**
* getting the color number of specific product
* @param brand, brand String
* @param cate, category String
* @return the color Num String
*/
public String getNum(String brand, String cate) {
return Lipnum.getNum(brand, cate);
}
/**
* This function is return the image url
* @param brand, String brand
* @param cate, String category
* @param num, String color number
* @return imageurl by using the brand, cate and num
*/
public String getImageurl(String brand, String cate, String num) {
return Lipnum.Imageurl(brand, cate, num);
}
/**
* Distinguish if the command is valid that we can get the right url of image
* @return boolean to distinguish the url we can use or not
*/
public boolean Isurl() {
return Lipnum.geturl();
}
}

@ -0,0 +1,511 @@
package server.Bots;
import java.util.HashMap;
/**
* This function is the collection for storing the information of color number for
* each brands
* @author Mingjun Zha
*
*/
public class Lipnum {
private HashMap<String, String> ALipMas;
private HashMap<String, String> ALipStick;
private HashMap<String, String> FLipBalm;
private HashMap<String, String> FLipStick;
private HashMap<String, String> GLipStick;
private HashMap<String, String> GLipBalm;
private HashMap<String, String> TLipStick;
private HashMap<String, String> TLipGloss;
private HashMap<String, String> YLipStick;
private HashMap<String, String> YLipStain;
private HashMap<String, String> NLipStick;
private HashMap<String, String> NLipBalm;
private HashMap<String, String> NLipGloss;
private HashMap<String, String> DLipStick;
private HashMap<String, String> DLipLiner;
private HashMap<String, String> DLipGlow;
private Boolean ISurl = false;
/**
* the constructor of lip num class, initializing each field and execute every
* function
*/
public Lipnum() {
ALipMas = new HashMap<>();
ALipStick = new HashMap<>();
FLipBalm = new HashMap<>();
FLipStick = new HashMap<>();
GLipStick = new HashMap<>();
GLipBalm = new HashMap<>();
TLipStick = new HashMap<>();
TLipGloss = new HashMap<>();
YLipStick = new HashMap<>();
YLipStain = new HashMap<>();
NLipStick = new HashMap<>();
NLipBalm = new HashMap<>();
NLipGloss = new HashMap<>();
DLipStick = new HashMap<>();
DLipLiner = new HashMap<>();
DLipGlow = new HashMap<>();
this.ArmaniLipNum();
this.DiorNum();
this.GivenchyLipNum();
this.FentyLipnum();
this.NarsNum();
this.YSLNum();
this.Tom_FordNum();
}
/**
* Store the Armani Lip number into the hashmap, the lipnumber as the key
* the item number as the value
*/
public void ArmaniLipNum() {
ALipMas.put("507", "1755685");
ALipMas.put("406", "1664275");
ALipMas.put("508", "1755693");
ALipMas.put("401", "1441591");
ALipMas.put("402", "1441609");
ALipMas.put("504", "1441617");
ALipMas.put("501", "1441641");
ALipMas.put("502", "1441658");
ALipMas.put("200", "1441674");
ALipMas.put("300", "1441625");
ALipMas.put("500", "1441633");
ALipMas.put("201", "1441682");
ALipMas.put("202", "1441690");
ALipStick.put("102", "2104255");
ALipStick.put("103", "2104263");
ALipStick.put("200", "2104289");
ALipStick.put("201", "2104297");
ALipStick.put("301", "2104313");
ALipStick.put("400", "2104321");
ALipStick.put("401", "2104339");
ALipStick.put("402", "2104347");
ALipStick.put("403", "2104354");
ALipStick.put("500", "2104362");
ALipStick.put("501", "2104370");
ALipStick.put("502", "2104388");
ALipStick.put("503", "2104396");
ALipStick.put("506", "2104412");
ALipStick.put("600", "2104420");
}
/**
* Store the Fenty Lip number into the hashmap, the lipnumber as the key
* the item number as the value
*/
public void FentyLipnum() {
FLipStick.put("Spanked", "2018224");
FLipStick.put("Ma'Damn", "2018190");
FLipStick.put("Candy-Venom", "2018216");
FLipStick.put("Saw-C", "2018299");
FLipStick.put("Up-2-No-Good", "2018323");
FLipStick.put("S1ngle", "2018232");
FLipStick.put("Freckle-Fiesta", "2018281");
FLipStick.put("Shawty", "2018315");
FLipBalm.put("Uncensored", "1925114");
FLipBalm.put("Unveil", "2094266");
FLipBalm.put("Uncuffed", "2094274");
FLipBalm.put("Unbutton", "2094282");
FLipBalm.put("Uninvited", "2150019");
}
/**
* Store the Givenchy Lip number into the hashmap, the lipnumber as the key
* the item number as the value
*/
public void GivenchyLipNum() {
GLipStick.put("204", "1602341");
GLipStick.put("201", "1497502");
GLipStick.put("301", "1497585");
GLipStick.put("302", "1602358");
GLipStick.put("321", "1862028");
GLipStick.put("324", "1967694");
GLipBalm.put("01", "1862002");
GLipBalm.put("02", "2091593");
GLipBalm.put("03", "2091585");
GLipBalm.put("04", "2091577");
}
/**
* Store the Tom_ford Lip number into the hashmap, the lipnumber as the key
* the item number as the value
*/
public void Tom_FordNum() {
TLipStick.put("Naked-Coral", "1917053");
TLipStick.put("Twist-of-Fate", "1917004");
TLipStick.put("Flamingo", "1917251");
TLipStick.put("Scarlet-Rouge", "1917319");
TLipStick.put("True-Coral", "1917228");
TLipStick.put("Dressed-To-Kill", "1986959");
TLipStick.put("Jasmin-Rouge", "1986967");
TLipStick.put("Cherry-Lush", "1917236");
TLipGloss.put("01", "1987213");
TLipGloss.put("02", "1987205");
TLipGloss.put("03", "1987296");
TLipGloss.put("04", "1987288");
TLipGloss.put("05", "1987270");
TLipGloss.put("06", "1987262");
TLipGloss.put("07", "1987254");
TLipGloss.put("08", "1987247");
TLipGloss.put("09", "1987239");
TLipGloss.put("10", "1987221");
}
/**
* Store the Ysl Lip number into the hashmap, the lipnumber as the key
* the item number as the value
*/
public void YSLNum() {
YLipStick.put("04", "1484773");
YLipStick.put("06", "1484781");
YLipStick.put("41", "1811603");
YLipStick.put("13", "1484849");
YLipStick.put("43", "1811587");
YLipStick.put("46", "1811553");
YLipStick.put("49", "1811520");
YLipStick.put("51", "1811504");
YLipStick.put("52", "1811496");
// lipstain
YLipStain.put("005", "1395193");
YLipStain.put("007", "1395219");
YLipStain.put("009", "1395524");
YLipStain.put("012", "1395250");
YLipStain.put("046", "1944867");
YLipStain.put("103", "1511443");
YLipStain.put("201", "1694496");
YLipStain.put("204", "1694520");
}
/**
* Store the Nars Lip number into the hashmap, the lipnumber as the key
* the item number as the value
*/
public void NarsNum() {
NLipStick.put("Brigitte", "1637156");
NLipStick.put("Natalie", "1637651");
NLipStick.put("Juliette", "1637172");
NLipStick.put("Apoline", "1846872");
NLipStick.put("Claudia", "1637065");
NLipStick.put("Greta", "1637602");
NLipStick.put("Grace", "1637180");
NLipStick.put("Lana", "1637206");
NLipBalm.put("Orgasm", "2063758");
NLipGloss.put("Chelsea-Girls", "1727007");
NLipGloss.put("Turkish-Delight", "1596444");
NLipGloss.put("Dolce-Vita", "1596378");
NLipGloss.put("Orgasm", "1596428");
NLipGloss.put("Super-Orgasm", "1596402");
}
/**
* Store the Dior Lip number into the hashmap, the lipnumber as the key
* the item number as the value
*/
public void DiorNum() {
DLipStick.put("325", "2104800");
DLipStick.put("450", "2104834");
DLipStick.put("485", "2104818");
DLipStick.put("651", "2104859");
DLipStick.put("660", "2104867");
DLipStick.put("770", "2104719");
DLipStick.put("763", "2104883");
DLipStick.put("777", "2104701");
DLipLiner.put("028", "2105013");
DLipLiner.put("434", "2105021");
DLipLiner.put("770", "2105096");
DLipLiner.put("777", "2105070");
DLipLiner.put("851", "2105062");
DLipLiner.put("999", "2105088");
DLipGlow.put("101", "2060366");
DLipGlow.put("001", "1162650");
DLipGlow.put("004", "1572916");
DLipGlow.put("007", "2015634");
DLipGlow.put("005", "1781210");
}
/**
* This function is getting the color number by using brand and category
* @param brand
* @param cate
* @return the string of color number
*/
public String getNum(String brand, String cate) {
String num = "NO such brands";
if (brand.equals("Giorgio_Armani_beauty")) {
if (cate.equals("Lipstick")) {
num = ALipStick.keySet().toString();
} else if (cate.equals("LipStain")) {
num = ALipMas.keySet().toString();
} else {
num = "NO such category";
}
} else if (brand.equals("Fenty_Beauty_By_Rihanna")) {
if (cate.equals("Lipstick")) {
num = FLipStick.keySet().toString();
} else if (cate.equals("LipStain")) {
num = FLipBalm.keySet().toString();
} else {
num = "No such category";
}
} else if (brand.equals("Dior")) {
if (cate.equals("Lipstick")) {
num = DLipStick.keySet().toString();
} else if (cate.equals("LipLiner")) {
num = DLipLiner.keySet().toString();
} else if (cate.equals("LipGlow")) {
num = DLipGlow.keySet().toString();
} else {
num = "NO such category";
}
} else if (brand.equals("Givenchy")) {
if (cate.equals("Lipstick")) {
num = GLipStick.keySet().toString();
} else if (cate.equals("LipBalm")) {
num = GLipBalm.keySet().toString();
} else {
num = "NO such category";
}
} else if (brand.equals("Tom_Ford")) {
if (cate.equals("Lipstick")) {
num = TLipStick.keySet().toString();
} else if (cate.equals("LipGloss")) {
num = TLipGloss.keySet().toString();
} else {
num = "NO such category";
}
} else if (brand.equals("YSL")) {
if (cate.equals("Lipstick")) {
num = YLipStick.keySet().toString();
} else if (cate.equals("LipStain")) {
num = YLipStain.keySet().toString();
} else {
num = "No such category";
}
} else if (brand.equals("Nars")) {
if (cate.equals("Lipstick")) {
num = NLipStick.keySet().toString();
} else if (cate.equals("LipBalm")) {
num = NLipBalm.keySet().toString();
} else if (cate.equals("LipGloss")) {
num = NLipGloss.keySet().toString();
} else {
num = "NO such category";
}
}
return num;
}
/**
* The function is using the brand, category and color number to get the image url
* @param brand which is the brand
* @param cate which is the category
* @param num which is the color number
* @return imageurl which is the imageurl of image
*/
public String Imageurl(String brand, String cate, String num) {
String url = "No such Brands";
if (brand.equals("Giorgio_Armani_beauty")) {
url = "https://www.sephora.com/productimages/sku/s";
if (cate.equals("Lipstick")) {
if(ALipStick.containsKey(num)) {
url += ALipStick.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else if (cate.equals("LipStain")) {
if(ALipMas.containsKey(num)) {
url += ALipMas.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else {
url = "NO such category";
ISurl = false;
}
} else if (brand.equals("Fenty_Beauty_By_Rihanna")) {
url = "https://www.sephora.com/productimages/sku/s";
if (cate.equals("Lipstick")) {
if(FLipStick.containsKey(num)) {
url+= FLipStick.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else if (cate.equals("LipStain")) {
num = FLipBalm.keySet().toString();
if(FLipBalm.containsKey(num)) {
url += FLipBalm.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else {
url = "No such category";
ISurl = false;
}
} else if (brand.equals("Dior")) {
url = "https://www.sephora.com/productimages/sku/s";
if (cate.equals("Lipstick")) {
if(DLipStick.containsKey(num)) {
url += DLipStick.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else if (cate.equals("LipLiner")) {
if(DLipLiner.containsKey(num)) {
url += DLipLiner.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else if (cate.equals("LipGlow")) {
if(DLipGlow.containsKey(num)) {
url += DLipGlow.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else {
url = "NO such category";
}
} else if (brand.equals("Givenchy")) {
url = "https://www.sephora.com/productimages/sku/s";
if (cate.equals("Lipstick")) {
if(GLipStick.containsKey(num)) {
url += GLipStick.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else if (cate.equals("LipBalm")) {
if(GLipBalm.containsKey(num)) {
url += GLipBalm.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else {
url = "NO such category";
ISurl = false;
}
} else if (brand.equals("Tom_Ford")) {
url = "https://www.sephora.com/productimages/sku/s";
if (cate.equals("Lipstick")) {
if(TLipStick.containsKey(num)) {
url += TLipStick.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else if (cate.equals("LipGloss")) {
if(TLipGloss.containsKey(num)) {
url += TLipGloss.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else {
url = "NO such category";
ISurl = false;
}
} else if (brand.equals("YSL")) {
url = "https://www.sephora.com/productimages/sku/s";
if (cate.equals("Lipstick")) {
if(YLipStick.containsKey(num)) {
url += YLipStick.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else if (cate.equals("LipStain")) {
if(YLipStain.containsKey(num)) {
url += YLipStain.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else {
url = "No such category";
ISurl = false;
}
} else if (brand.equals("Nars")) {
url = "https://www.sephora.com/productimages/sku/s";
if (cate.equals("Lipstick")) {
if(NLipStick.containsKey(num)) {
url += NLipStick.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else if (cate.equals("LipBalm")) {
if(NLipBalm.containsKey(num)) {
url += NLipBalm.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else if (cate.equals("LipGloss")) {
if(NLipGloss.containsKey(num)) {
url += NLipGloss.get(num);
url += "-main-Lhero.jpg";
ISurl = true;
}else {
url = "No such color number";
ISurl = false;
}
} else {
url = "No such category";
ISurl = false;
}
}
else {
ISurl = false;
}
return url;
}
/**
* distinguish if the url can be valid
* @return isurl which is a boolean value to distinguish if the url can be valid
*/
public Boolean geturl() {
return ISurl;
}
}

@ -0,0 +1,234 @@
package server.Bots;
import java.text.SimpleDateFormat;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
import server.Response;
import server.User;
/**
* This is the MakeupBot program which extends the super class Bot.
* MakeupBot totally has 12 commands, except the commands that super class have, it got
* 6 more commands. Depending upon the commands, the bot will give the user some specific
* repsonses that we have already defined.
* @author Mingjun Zha
*
*/
public class MakeupBot extends Bot {
private AbstractMap<String, String> commandsMap;
private LipProducts lip;
private AbstractMap<String, AbstractMap<String, Integer>> commandsCounter;
private String[] category = {"Lipstick","Liquid-Lipstick", "Lip-Stain", "Lip-Gloss","Lip-Liner",
"Lip-Plumper", "LipBalm"};
/**
* The constructor of MakeupBot, initializing each fields and put each command into
* the commandsMap
* @param characterId, through using the charcterId, it represents different bot, makeupBot is *
*/
public MakeupBot(char characterId) {
super();
commandsCounter = new HashMap<>();
commandsMap = new HashMap<>();
lip = new LipProducts();
commandsMap.put("brand", "- the brand list for lip product.");
commandsMap.put("cate", "- the category list for lip category.");
commandsMap.put("price", "- [brand][cate]- the price of specific product");
commandsMap.put("rate", "- [brand][cate]- check the rate in sephora of specific products");
commandsMap.put("image", "- [brand][cate][num]- show the image of specific lip products"
+ " gave a picture that the color of the specific products.");
commandsMap.put("num", "- [brand][cate]- the number of each categories of lip products");
this.setBotCharacterId(characterId);
}
/**
* This function is used to count the using times for each commands.
* @return AbstractMap<String, Integer>, the map which key is string, value is the counter
*/
public AbstractMap<String, Integer> createNewCmdsCounter() {
AbstractMap<String, Integer> newCmdsCounter = new HashMap<>();
for (String cmd : getDefaultCommandsList().keySet()) {
newCmdsCounter.put(cmd, 0);
}
for (String cmd : this.commandsMap.keySet()) {
newCmdsCounter.put(cmd, 0);
}
return newCmdsCounter;
}
@Override
/**
* return MakeupBot's signature
*/
public String getBotSignature() {
return " [MakeupBot] ";
}
/**
* return the String of each command and their functions
*/
@Override
public String helpCommand() {
String helpCommandStr = "List of available commands: \n";
for (String command : getDefaultCommandsList().keySet()) {
helpCommandStr += "\t" + this.getBotCharacterId() + command + getDefaultCommandsList().get(command) + "\n";
}
for (String command : commandsMap.keySet()) {
helpCommandStr += "\t" + this.getBotCharacterId() + command + commandsMap.get(command) + "\n";
}
return helpCommandStr;
}
/**
* return the String of data
*/
@Override
public String dateCommand() {
Date today = new Date();
List<String> DateResponses = new ArrayList<String>();
// Default type of responses from toString().
DateResponses.add(today.toString());
// Another format:
SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd");
DateResponses.add("Today is " + ft.format(today));
Random rndGen = new Random();
return DateResponses.get(rndGen.nextInt(DateResponses.size()));
}
/**
* return the response object by getting the message by user
*/
@Override
public Response getResponses(String message, User user, List clients) {
if (message == null || user == null)
return new Response("Something wrong happened.", null);
// Split the command into multiple string delimited by space character.
String[] msg_tokens = message.split(" ");
// Get the command.
String command = msg_tokens[0].substring(1, msg_tokens[0].length());
// Response
String response = "";
String data = null;
if (!commandsCounter.containsKey(user.getHandle())) {
commandsCounter.put(user.getHandle(), createNewCmdsCounter());
}
// Need to
if (getDefaultCommandsList().containsKey(command)) {
if (command.equals("help")) {
response += helpCommand();
} else if (command.equals("info")) {
response += infoCommand(msg_tokens[1]);
} else if (command.equals("date")) {
response += dateCommand();
} else if (command.equals("whoami")) {
response += whoamiCommand(user);
} else if (command.equals("ttm")) {
response = getSmartResponse(message.substring(1, message.length()), user);
} else if (command.equals("geturl")) {
response = message;
if (msg_tokens.length == 2)
data = msg_tokens[1];
}
} else {
// TODO: If it's not a default command then find those commands in this bot's
// command list.
if(command.equals("brand")) {
response += lip.getbrand();
}
else if(command.equals("cate")) {
response += Arrays.toString(category);
}else if(command.equals("price")) {
if(msg_tokens.length>=3) {
String brand = msg_tokens[1];
String cate = msg_tokens[2];
lip.geteverything(brand, cate);
response += lip.getprice();
}else {
response+="Invalid command";
}
}else if(command.equals("rate")) {
if(msg_tokens.length>=3) {
String brand = msg_tokens[1];
String cate = msg_tokens[2];
lip.geteverything(brand, cate);
response += lip.getrate();
}else {
response+="Invalid command";
}
}
else if(command.equals("num")) {
if(msg_tokens.length>=3) {
String brand = msg_tokens[1];
String cate = msg_tokens[2];
response += lip.getNum(brand, cate);
}else {
response+="Invalid command";
}
}else if(command.equals("image")) { //showing the image of specific lipsticks
if(msg_tokens.length>=4) {
String brand = msg_tokens[1];
String cate = msg_tokens[2];
String num = msg_tokens[3];
data = lip.getImageurl(brand, cate, num);
if(lip.Isurl() == true) {
response+=lip.getImageurl(brand, cate, num);
}else {
data = null;
response+=lip.getImageurl(brand, cate, num);
}
}else {
response+="Invalid command";
}
}
else {
response+="Invalid command";
}
}
// Update commands counter.
if (commandsCounter.get(user.getHandle()).containsKey(command)) {
int oldValue = commandsCounter.get(user.getHandle()).get(command);
commandsCounter.get(user.getHandle()).put(command, oldValue + 1);
if ((oldValue + 1) % 5 == 0) {
response += "\n" + this.getBotSignature() + command + " has been used the fifth time by " + user.getHandle();
}
}
return new Response(response, data);
}
/**
* return the Stirng of user's information and ip address
*/
@Override
public String whoamiCommand(User user) {
return "User: " + user.getHandle() + "\t" + "IP address: " + user.getConnectionInfo();
}
}

@ -0,0 +1,333 @@
package server.Bots;
import java.text.SimpleDateFormat;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import server.ChatClientThread;
import server.Response;
import server.User;
/**
* A music chat bot by Minh.
*
* @author Minh Bui
*
*/
public class MinhsBot extends server.Bots.Bot {
private AbstractMap<String, String> commandsMap;
private AbstractMap<String, AbstractMap<String, Integer>> commandsCounter;
private List<String> playList;
String lastPlay = "";
public AbstractMap<String, Integer> createNewCmdsCounter() {
AbstractMap<String, Integer> newCmdsCounter = new HashMap<>();
for (String cmd : getDefaultCommandsList().keySet()) {
newCmdsCounter.put(cmd, 0);
}
for (String cmd : this.commandsMap.keySet()) {
newCmdsCounter.put(cmd, 0);
}
return newCmdsCounter;
}
public MinhsBot(char characterId) {
super();
commandsCounter = new HashMap<>();
commandsMap = new HashMap<>();
commandsMap.put("add",
"[path] - given a path to the music file, import the name of the music to the play list.");
commandsMap.put("remove", "[ID]/[Name] - given an ID or name, remove the music from the play list.");
commandsMap.put("list", " - lists out the current songs in the playlist.");
commandsMap.put("play",
"[ID]/[Name] - given a name or an ID, play the song in the list. If nothing is given, resume playing the current song.\n"
+ "");
commandsMap.put("lastplay", " - displays the name of the last playing song.");
commandsMap.put("pause", " - pause the current song");
// commandsMap.put("repeat", " - toggle repeat mode\n" + "");
// commandsMap.put("shuffle", " - toggle shuffle mode");
commandsMap.put("rate",
"[User]/[MusicID]/[MusicName] - give a random rate of a music or an user from 0 to 10.");
commandsMap.put("systemcmd_kick", "[userid] - give an user id, kick the user from the server.");
commandsMap.put("pause",
"[name]/[id] - given an id or name of the music piece, pause the current song if it's being played.");
commandsMap.put("resume", " - play a paused song if it was played but pause mid way.");
playList = new ArrayList<>();
this.setBotCharacterId(characterId);
}
@Override
public String helpCommand() {
String helpCommandStr = "List of available commands: \n";
for (String command : getDefaultCommandsList().keySet()) {
helpCommandStr += "\t" + this.getBotCharacterId() + command + getDefaultCommandsList().get(command) + "\n";
}
for (String command : commandsMap.keySet()) {
helpCommandStr += "\t" + this.getBotCharacterId() + command + commandsMap.get(command) + "\n";
}
return helpCommandStr;
}
@Override
public String dateCommand() {
Date today = new Date();
List<String> DateResponses = new ArrayList<String>();
// Default type of responses from toString().
DateResponses.add(today.toString());
// Another format:
SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd");
DateResponses.add("Today is " + ft.format(today));
Random rndGen = new Random();
return DateResponses.get(rndGen.nextInt(DateResponses.size()));
}
@Override
public Response getResponses(String message, User user, List<ChatClientThread> clients) {
if (message == null || user == null)
return new Response("Something wrong happened.", null);
// Split the command into multiple string delimited by space character.
String[] msg_tokens = message.split(" ");
// Get the command.
String command = msg_tokens[0].substring(1, msg_tokens[0].length());
// Response
String response = "";
String data = null;
if (!commandsCounter.containsKey(user.getHandle())) {
commandsCounter.put(user.getHandle(), createNewCmdsCounter());
}
// Need to
if (getDefaultCommandsList().containsKey(command)) {
if (command.equals("help")) {
response += helpCommand();
} else if (command.equals("info")) {
response += infoCommand(msg_tokens[1]);
} else if (command.equals("date")) {
response += dateCommand();
} else if (command.equals("whoami")) {
response += whoamiCommand(user);
} else if (command.equals("ttm")) {
response = getSmartResponse(message.substring(1, message.length()), user);
} else if (command.equals("geturl")) {
response = message;
if (msg_tokens.length == 2)
data = msg_tokens[1];
}
} else {
if (command.equals("play")) {
response = this.getBotCharacterId() + "play " + msg_tokens[1];
try {
int index = Integer.parseInt(msg_tokens[1]);
if (index >= 0 && index < playList.size()) {
data = playList.get(index);
Response resP = new Response(response, data);
resP.setUrl(false);
return resP;
}
} catch (NumberFormatException nfe) {
if (playList.contains(msg_tokens[1])) {
if (msg_tokens.length == 2)
data = msg_tokens[1];
Response resP = new Response(response, data);
resP.setUrl(false);
return resP;
}
}
} else if (command.equals("add")) {
response = "Adding " + msg_tokens[1];
if (msg_tokens.length == 2)
this.addMusic(msg_tokens[1]);
} else if (command.equals("lastplay")) {
response = command + " " + this.lastPlay;
} else if (command.equals("list")) {
response = listPlayList();
} else if (command.equals("pause") || command.equals("resume")) {
response = command;
data = response;
Response resP = new Response(response, data);
resP.setUrl(false);
return resP;
} else if (command.equals("rate")) {
response += this.rate(msg_tokens[1]);
} else if (command.equals("systemcmd_kick")) {
response = message;
if (msg_tokens.length == 2) {
Iterator<ChatClientThread> iter = clients.iterator();
while (iter.hasNext()) {
ChatClientThread client = iter.next();
if (client.getUser().getHandle().equals(msg_tokens[1])) {
iter.remove();
client.close();
}
}
}
} else {
response = getRandRes();
}
}
// Update commands counter.
if (commandsCounter.get(user.getHandle()).containsKey(command)) {
int oldValue = commandsCounter.get(user.getHandle()).get(command);
commandsCounter.get(user.getHandle()).put(command, oldValue + 1);
if ((oldValue + 1) % 5 == 0) {
response += "\n" + this.getBotSignature() + command + " has been used the fifth time by "
+ user.getHandle();
}
}
return new Response(response, data);
}
/**
* Return a list of songs in the bot's play list.
*
* @return A String.
*/
public String listPlayList() {
String songList = "\n";
for (int i = 0; i < playList.size(); i++) {
songList += "[" + i + "] " + playList.get(i) + "\n";
}
return songList;
}
/**
* Return a random rating for a subject.
*
* @param subject Could be an user or any kind of topic.
* @return A random rating for a subject.
*/
public String rate(String subject) {
List<String> responses = new ArrayList<>();
Random rndGen = new Random();
int score = rndGen.nextInt(10) + 1;
if (score >= 8) {
responses.add(score + "/10. Superb.");
responses.add("I like it! :^)");
responses.add(" <3 ");
responses.add(subject + " is the best!");
} else if (score <= 8 && score >= 6) {
responses.add(subject + " is okay.");
responses.add("I give " + subject + " a score of " + score + "/10.");
} else {
responses.add(subject + " is meh.");
responses.add(subject + " sucks!");
responses.add(subject + " is trash. :) Fight me. :)");
responses.add("In the trash bin. :^)");
}
return responses.get(rndGen.nextInt(responses.size()));
}
/**
*
* @return
*/
public String getRandRes() {
List<String> responses = new ArrayList<>();
Random rndGen = new Random();
responses.add("Is this heaven? ༼ つ ◕_◕ ༽つ ");
responses.add("Campers! Campers! Come and get me campers!");
responses.add("???? :^)");
responses.add("Wat ( ͡° ͜ʖ ͡°)");
responses.add("Are you sure you had the right command? ¯\\_(ツ)_/¯");
responses.add("Wrong command OMG.");
responses.add("┬┴┬┴┤ ͜ʖ ͡°) ├┬┴┬┴");
responses.add("............................................________ \n"
+ "....................................,.-'\"...................``~., \n"
+ ".............................,.-\"...................................\"-., \n"
+ ".........................,/...............................................\":, \n"
+ ".....................,?......................................................, \n"
+ ".................../...........................................................,} \n"
+ "................./......................................................,:`^`..} \n"
+ ".............../...................................................,:\"........./ \n"
+ "..............?.....__.........................................:`.........../ \n"
+ "............./__.(.....\"~-,_..............................,:`........../ \n"
+ ".........../(_....\"~,_........\"~,_....................,:`........_/ \n"
+ "..........{.._$;_......\"=,_.......\"-,_.......,.-~-,},.~\";/....} \n"
+ "...........((.....*~_.......\"=-._......\";,,./`..../\"............../ \n"
+ "...,,,___.`~,......\"~.,....................`.....}............../ \n"
+ "............(....`=-,,.......`........................(......;_,,-\" \n"
+ "............/.`~,......`-...................................../ \n"
+ ".............`~.*-,.....................................|,./.....,__ \n"
+ ",,_..........}.>-._...................................|..............`=~-, \n"
+ ".....`=~-,__......`,................................. \n"
+ "...................`=~-,,.,............................... \n"
+ "................................`:,,...........................`..............__ \n"
+ ".....................................`=-,...................,%`>--==`` \n"
+ "........................................_..........._,-%.......`");
return responses.get(rndGen.nextInt(responses.size()));
}
@Override
public String whoamiCommand(User user) {
return "User: " + user.getHandle() + "\t" + "IP address: " + user.getConnectionInfo();
}
/**
* @return The bot's handle in the server.
*/
public String getBotSignature() {
return "[MBOT] ";
}
/**
* the Minh's Bot specific fields.
*
* @author Minh Bui
*
*/
private class Music {
private String path;
public Music(String path) {
this.path = path;
}
public String getPath() {
return this.path;
}
public void setPath(String path) {
this.path = path;
}
}
/**
* This method is called when an ``import`` command is issued.
*
* @param url The url to the Youtube video.
*/
public void addMusic(String path) {
playList.add(path);
}
public void play(String name) {
}
public void play(int id) {
}
}

@ -0,0 +1,421 @@
package server.Bots;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import org.json.JSONException;
import org.json.JSONObject;
import server.ChatClientThread;
import server.Response;
import server.User;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
import java.util.TimeZone;
import server.Response;
import server.User;
public class NBAbot extends Bot{
LinkedHashMap<String, JSONObject[]> NBAresult = new LinkedHashMap<>();
LinkedHashMap<String, ArrayList<JSONObject>> localData = new LinkedHashMap<>();
private AbstractMap<String, String> commandsMap;
private int timeDiff = 15;
public NBAbot(char id) {
super();
fetchMatchInfo();
commandsMap = new HashMap<>();
commandsMap.put("today", " - show all NBA matches that play today.");
commandsMap.put("schedule", "[yyyy-mm-dd] - A day schedule of NBA matches.");
commandsMap.put("team", "[TEAM NAME] - all recent matches of a team (see valid team name by %teamlist).");
commandsMap.put("live", " - show all matches that are playing right now.");
commandsMap.put("dayrange", " - show the range of date that I can remember.");
commandsMap.put("teamlist", " - show the team list in NBA.");
//TODO weekly schedule
this.setBotCharacterId(id);
//printData();
}
private void fetchMatchInfo() {
try {
fillMatchInfo(readJsonFromUrl("http://matchweb.sports.qq.com/" +
"kbs/list?from=NBA_PC&columnId=100000&" +
"startTime=2018-12-09&endTime=2018-12-15&" +
"callback=ajaxExec&_=1543705200120"));
fillMatchInfo(readJsonFromUrl("http://matchweb.sports.qq.com/" +
"kbs/list?from=NBA_PC&columnId=100000&" +
"startTime=2018-11-25&endTime=2018-12-01&" +
"callback=ajaxExec&_=1543705200118"));
fillMatchInfo(readJsonFromUrl("http://matchweb.sports.qq.com/" +
"kbs/list?from=NBA_PC&columnId=100000&" +
"startTime=2018-12-02&endTime=2018-12-08&" +
"callback=ajaxExec&_=1543705200117"));
convertMap(NBAresult);
} catch (IOException | JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private String readAll(Reader reader) throws IOException {
StringBuilder builder = new StringBuilder();
int cp;
while ((cp = reader.read()) != -1) {
builder.append((char) cp);
}
return builder.toString();
}
private String readJsonFromUrl(String url) throws IOException, JSONException {
InputStream inputStream = new URL(url).openStream();
try {
BufferedReader rd = new BufferedReader(
new InputStreamReader(inputStream,
Charset.forName("UTF-8")));
String jsonText = readAll(rd);
// remove irrelevant chars
return jsonText.substring(jsonText.indexOf("data\":{") + 7,
jsonText.indexOf(",\"version\":"));
} finally {
inputStream.close();
}
}
/**
* Iterate though a map and edit its values (JSONObject[] matches)
* @param mp
*/
private void convertMap(Map mp) {
Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
importMatches((JSONObject[])pair.getValue());
it.remove();
}
}
/**
* Re-organize a list of matches into the localData map
* @param matches
*/
private void importMatches(JSONObject[] matches) {
for(int i = 0; i < matches.length; i++) {
try {
if(matches[i].get("matchType").equals("2")) {
// convert the time into local time, overwrite old data
String convertedDate = convertTimeZone((String)matches[i].get("startTime"));
matches[i].put("startTime", convertedDate);
String dataStr = convertedDate.split(" ")[0];
// organize and put into local map
if(!localData.containsKey(dataStr)) {
localData.put(dataStr,
new ArrayList<JSONObject>(1));
}
localData.get(dataStr).add(matches[i]);
}
} catch (JSONException e) {
//System.err.println("json field not found");
e.printStackTrace();
}
}
}
/**
* Convert a date string in term yyyy-mm-dd hh:mm;ss to another time zone
* @param dateStr
* @return the converted date
*/
private String convertTimeZone(String dateStr) {
String[] date = dateStr.split(" ")[0].split("-");
String[] time = dateStr.split(" ")[1].split(":");
// calculate the hour.month/day
int hour = Integer.parseInt(time[0]) - timeDiff;
int month = Integer.parseInt(date[1]);
int day = Integer.parseInt(date[2]);
if(hour < 0) {
hour += 24;
day -= 1;
}
if(day <= 0) {
month -= 1;
day = 30;
}
String hourStr = "";
String monthStr = "";
String dayStr = "";
if(hour < 10) {
hourStr = "0" + Integer.toString(hour);
} else {
hourStr = Integer.toString(hour);
}
if(day < 10) {
dayStr = "0" + Integer.toString(day);
} else {
dayStr = Integer.toString(day);
}
if(month < 10) {
monthStr = "0" + Integer.toString(month);
} else {
monthStr = Integer.toString(month);
}
String finalDate = date[0] + "-" + monthStr + "-" + dayStr
+ " " + hourStr + ":" + time[1] + ":" + time[2];
return finalDate;
}
private void fillMatchInfo(String jsonText) {
// split string by dates
String[] jsonArray = jsonText.split("\\:\\[|\\],");
for(int i = 0; i < jsonArray.length; i += 2) {
// in each day, split matches as string array
String[] matches = jsonArray[i+1].replaceAll("\\},\\{", "\\}#\\{")
.split("#");
// convert matches as a json array
JSONObject[] matchesJson = new JSONObject[matches.length];
for(int j = 0; j <matches.length; j++) {
try {
matchesJson[j] = new JSONObject(matches[j]);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// date : matches(json)
NBAresult.put(jsonArray[i].substring(1, 11), matchesJson);
}
}
@Override
public String getBotSignature() {
return "[NBAbot]";
}
@Override
public String dateCommand() {
Date today = new Date();
List<String> DateResponses = new ArrayList<String>();
// Default type of responses from toString().
DateResponses.add(today.toString());
// Another format:
SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd");
DateResponses.add("Today is " + ft.format(today));
Random rndGen = new Random();
return DateResponses.get(rndGen.nextInt(DateResponses.size()));
}
@Override
public Response getResponses(String message, User user, List<ChatClientThread> clients) {
if (message == null || user == null)
return new Response("Something wrong happened.", null);
// Split the command into multiple string delimited by space character.
String[] msg_tokens = message.split(" ", 2);
// Get the command.
String command = msg_tokens[0].substring(1, msg_tokens[0].length());
// Response
String response = "";
// if valid command
switch(command) {
case ("ttm"):
response += super.getSmartResponse(message, user);
break;
case ("help"):
response += helpCommand();
break;
case ("info"):
response += infoCommand(msg_tokens[1]);
break;
case ("date"):
response += dateCommand();
break;
case ("whoami"):
response += whoamiCommand(user);
break;
case ("schedule"):
if(msg_tokens.length > 1) {
response += "\n" + searchData("schedule", msg_tokens[1]);
if(response.length() <= 2) response += "Invalid Date";
} else {
response += "Give me the date you want to know";
}
break;
case("team"):
if(msg_tokens.length > 1) {
response += "\n" + searchData("team", msg_tokens[1]);
if(response.length() <= 2) response += "Invalid Team";
} else {
response += "Give me the team you want to know";
}
break;
case("live"):
response += "\n" + searchData("live", "");
if(response.length() <= 2) response += "No match is undergoing";
break;
case("dayrange"):
response += "I can remember NBA Match info\nFrom: 2018-11-25\nTo: 2018-12-15";
break;
case("teamlist"):
response += "\n" + NBAteamList();
break;
case("today"):
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
response += "\n" + searchData("schedule", dateFormat.format(date));
if(response.length() <= 2) response += "No match today";
break;
default:
response += "invalid";
}
//return response;
return new Response(response, null);
}
private String searchData(String command, String param){
String searchResult = "";
// ------ schedule ----- //
if(command.equals("schedule")) {
ArrayList<JSONObject> matches = localData.get(param);
if(matches == null) return "invalid date";
}
// ---- team / live ---- //
boolean validResult = false;
for (Entry<String, ArrayList<JSONObject>> entry : localData.entrySet()) {
ArrayList<JSONObject> matches = entry.getValue();
for (int i=0; i<matches.size(); i++) {
try {
if(command.equals("schedule")) {
// if the current match is on the day we want
if(((String)matches.get(i).get("startTime"))
.split(" ")[0].equals(param)) {
validResult = true;
}
} else if(command.equals("team")) {
// if one of the two teams are what user want
if(matches.get(i).get("leftEnName").equals(param) ||
matches.get(i).get("rightEnName").equals(param)) {
validResult = true;
}
} else if (command.equals("live")) {
String quarterTime = (String) matches.get(i).get("quarterTime");
// if the game is not playing
if(!quarterTime.equals("") && !quarterTime.equals("00:00")) {
validResult = true;
}
}
// append the match info to result
if(validResult) {
searchResult += String.format("%s %s (%s) : (%s) %s\n",
matches.get(i).get("startTime"),
matches.get(i).get("leftEnName"),
matches.get(i).get("leftGoal"),
matches.get(i).get("rightGoal"),
matches.get(i).get("rightEnName"));
validResult = false;
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return searchResult;
}
private String NBAteamList() {
return "Eastern Conference\r\n\n" +
"Atlantic Division\r\n" +
"\t(Boston) Celtics\r\n" +
"\t(Brooklyn) Nets\r\n" +
"\t(New York) Knicks\r\n" +
"\t(Philadelphia) 76ers\r\n" +
"\t(Toronto) Raptors\r\n" +
"Central Division\r\n" +
"\t(Chicago) Bulls\r\n" +
"\t(Cleveland) Cavaliers\r\n" +
"\t(Detroit) Pistons\r\n" +
"\t(Indiana) Pacers\r\n" +
"\t(Milwaukee) Bucks\r\n" +
"Southeast Division\r\n" +
"\t(Atlanta) Hawks\r\n" +
"\t(Charlotte) Hornets\r\n" +
"\t(Miami) Heat\r\n" +
"\t(Orlando) Magic\r\n" +
"\t(Washington) Wizards\r\n" +
"\nWestern Conference\r\n\n" +
"Southwest Division\r\n" +
"\t(Dallas) Mavericks\r\n" +
"\t(Houston) Rockets\r\n" +
"\t(Memphis) Grizzlies\r\n" +
"\t(New Orleans) Pelicans\r\n" +
"\t(San Antonio) Spurs\r\n" +
"Northwest Division\r\n" +
"\t(Denver) Nuggets\r\n" +
"\t(Minnesota) Timberwolves\r\n" +
"\t(Oklahoma City) Thunder\r\n" +
"\t(Portland) Trail Blazers\r\n" +
"\t(Utah) Jazz\r\n" +
"Pacific Division\r\n" +
"\t(Golden State) Warriors\r\n" +
"\t(LA Clippers)Los Angeles Clippers\r\n" +
"\t(L.A. Lakers)Los Angeles Lakers\r\n" +
"\t(Phoenix) Suns\r\n" +
"\t(Sacramento) Kings\n\n" +
"* When searching, please use the name in the (parentheses)";
}
@Override
public String whoamiCommand(User user) {
return "User: " + user.getHandle() + "\t" + "IP address: " + user.getConnectionInfo();
}
@Override
public String helpCommand() {
String helpCommandStr = "List of available commands: \n";
for (String command : getDefaultCommandsList().keySet()) {
helpCommandStr += "\t" + this.getBotCharacterId() + command + getDefaultCommandsList().get(command) + "\n";
}
for (String command : commandsMap.keySet()) {
helpCommandStr += "\t" + this.getBotCharacterId() + command + commandsMap.get(command) + "\n";
}
return helpCommandStr;
}
}

@ -0,0 +1,231 @@
package server.Bots;
import java.io.File;
import java.io.FileNotFoundException;
import java.text.SimpleDateFormat;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
import server.ChatClientThread;
import server.Response;
import server.User;
public class WeixiangBot extends Bot {
private HashMap<String, String> commandsMap;
private HashMap<String, ArrayList<String>> responseMap;
private AbstractMap<String, AbstractMap<String, Integer>> commandsCounter;
/**
* This method is to construct a hashmap to count amount of how many times
* the command being called
* @return A HashMap to count each commands that have been used
*/
public AbstractMap<String, Integer> createNewCmdsCounter() {
AbstractMap<String, Integer> newCmdsCounter = new HashMap<>();
for (String cmd : getDefaultCommandsList().keySet()) {
newCmdsCounter.put(cmd, 0);
}
for (String cmd : this.commandsMap.keySet()) {
newCmdsCounter.put(cmd, 0);
}
return newCmdsCounter;
}
/**
* This is constructor that add all the responses to the map.
* @param characterId The special character for each ChatBot.
*/
public WeixiangBot(char characterId) {
commandsMap = new HashMap<>();
commandsCounter = new HashMap<>();
commandsMap.put("help", " - list out the available commands for the current bot. ");
commandsMap.put("info", "[USER] - prints out the information of User.");
commandsMap.put("date", " - prints out the current date.");
commandsMap.put("whoami", " - prints out the user's client info such as IP addresses, ...");
commandsMap.put("ttm", " - abbreviation for \"talk to me\".");
commandsMap.put("whoishere", " - list all the users who are online");
commandsMap.put("whatisit", " - the description of the game");
commandsMap.put("midlaner ", " - the player in the mid lane");
commandsMap.put("jungler", " - the player in the jungle");
commandsMap.put("stat", " - how many champions are there in the game");
commandsMap.put("show", " [Champion's Name] - display the image of the "
+ "champion with valid name like \"Lux\" instead of \"lux\"");
constructResponse();
this.setBotCharacterId(characterId);
}
/**
* This method is to read in a file that store all commands/responses and
*
*/
private void constructResponse() {
responseMap = new HashMap<String, ArrayList<String>>();
try {
Scanner in = new Scanner(new File("./src/server/Bots/commands.txt"));
String command = "";
while (in.hasNextLine()) {
String line = in.nextLine();
if (!line.isEmpty()) {
if (line.charAt(0) == '%') {
command = line.substring(1, line.length());
ArrayList<String> responseList = new ArrayList<String>();
responseMap.put(command, responseList);
continue;
} else {
responseMap.get(command).add(line);
}
}
}
in.close();
} catch (FileNotFoundException e) {
System.out.println(e.getStackTrace());
}
}
/**
* @return the string representing the signature of the ChatBot
*/
@Override
public String getBotSignature() {
return "[WXBOT]";
}
/**
* This method is to get the date and return it
* @return the string representing the date
*/
@Override
public String dateCommand() {
Date today = new Date();
List<String> DateResponses = new ArrayList<String>();
// Default type of responses from toString().
DateResponses.add(today.toString());
// Another format:
SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd");
DateResponses.add("Today is " + ft.format(today));
Random rndGen = new Random();
return DateResponses.get(rndGen.nextInt(DateResponses.size()));
}
/**
* @param user the User object
* @return the string that has a name and IP address
*/
@Override
public String whoamiCommand(User user) {
return "User: " + user.getHandle() + "\t" + "IP address: " + user.getConnectionInfo();
}
/**
* @param message the message from user
* @param user the User object
* @param clients the list contains the all ChatClientThread who is online
* @return A Response that has two fields, one is the response message, the other is the URL if needed
*/
@Override
public Response getResponses(String message, User user, List<ChatClientThread> clients) {
if (!commandsCounter.containsKey(user.getHandle())) {
commandsCounter.put(user.getHandle(), createNewCmdsCounter());
}
Response response = null;
if (message == null || user == null)
return response;
// Split the command into multiple string delimited by space character.
String[] msg_tokens = message.split(" ");
// Get the command.
String command = msg_tokens[0].substring(1, msg_tokens[0].length());
String data = null;
// Response
String responseText = "";
// Need to
if (this.commandsMap.containsKey(command)) {
if (command.equals("help")) {
responseText += helpCommand();
} else if (command.equals("info")) {
responseText += infoCommand(msg_tokens[1]);
} else if (command.equals("date")) {
responseText += dateCommand();
} else if (command.equals("whoami")) {
responseText += whoamiCommand(user);
} else if (command.equals("ttm")) {
responseText += super.getSmartResponse(message, user);
} else if (command.equals("whoishere")) {
responseText += getOnlineUsers(clients);
} else if (this.responseMap.containsKey(command)) {
Random rndGen = new Random();
// if it is a show command
if (!command.equals("show")) {
System.out.println(command);
System.out.println(this.responseMap.get(command).size());
responseText += this.responseMap.get(command)
.get(rndGen.nextInt(this.responseMap.get(command).size()));
} else {
if(msg_tokens.length > 1) {
responseText += "loading image";
data = "https://ddragon.leagueoflegends.com/cdn/img/champion/splash/" + msg_tokens[1] + "_0.jpg";
}else {
responseText += "Invalid Command";
}
}
} else {
responseText += "Invalid Command";
}
}
if (commandsCounter.get(user.getHandle()).containsKey(command)) {
int oldValue = commandsCounter.get(user.getHandle()).get(command);
commandsCounter.get(user.getHandle()).put(command, oldValue + 1);
if ((oldValue + 1) % 5 == 0) {
responseText += "\n" + this.getBotSignature() + command + " has been used the fifth time by " + user.getHandle();
}
}
response = new Response(responseText, data);
return response;
}
/**
*
* @param clients List of ChatClientThread
* @return String that list out who is online
*/
private String getOnlineUsers(List<ChatClientThread> clients) {
String usersName = "Listing out the online users : \n";
for (ChatClientThread client : clients) {
usersName += client.getUser().getHandle() + " is online\n";
}
return usersName;
}
/**
* @return The string listing out all available commands
*/
@Override
public String helpCommand() {
String helpCommandStr = "List of available commands: \n";
for (String command : getDefaultCommandsList().keySet()) {
helpCommandStr += "\t" + this.getBotCharacterId() + command + getDefaultCommandsList().get(command) + "\n";
}
for (String command : commandsMap.keySet()) {
helpCommandStr += "\t" + this.getBotCharacterId() + command + commandsMap.get(command) + "\n";
}
return helpCommandStr;
}
}

@ -0,0 +1,20 @@
%whatisit
This is a 5 players versus 5 players MOBA game. These 5 players would be separated into 3 lanes and fight against each other.
The best moba game ever.
%midlaner
Normally, there is one player on the mid lane that is called mid laner and does magic damage.
A play who will stick in the mid lane and keep pushing waves until the game is over.\
A mega dps.
%jungler
The player will roam(help/gank) over the whole map and farm in the jungle.
A player who roam(help/gank) over the whole map farms in the jungle.
The player afking in jungle when he THNIK himself having enough items to win the game
%stat
There are 141 champions so far!
Thanks for those engineers! They had made 141 champions and more coming out!
141 champions.
%show

@ -0,0 +1,171 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: 20q.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>20 Q</pattern>
<template><srai>20Q</srai></template>
</category>
<category><pattern>TWENTY QUESTIONS</pattern>
<template><srai>20Q</srai></template>
</category>
<category><pattern>_ TWENTY QUESTIONS</pattern>
<template><srai>20Q</srai></template>
</category>
<category><pattern>_ 20 QUESTIONS</pattern>
<template><srai>20Q</srai></template>
</category>
<category><pattern>_ TWENTY QUESTIONS *</pattern>
<template><srai>20Q</srai></template>
</category>
<category><pattern>_ 20 QUESTIONS *</pattern>
<template><srai>20Q</srai></template>
</category>
<category><pattern>20Q</pattern>
<template><think>
<set name="qnum">1</set>
</think>
Ok let's play 20 questions. I will think of something animal, vegetable or mineral and you have to guess what it is by asking me "yes" or "no" questions.<br/><br/>You can ask up to 20 questions before it's game over.<br/><br/>If you give up, say "I GIVE UP" and I'll tell you what I was thinking of.<br/><br/>Type "START" to play 20 questions.</template>
</category>
<category><pattern>START</pattern><that>TYPE START TO PLAY 20 QUESTIONS</that>
<template><think>
<set name="topic">20Q</set>
<random>
<li><set name="20qanswer">a horse</set><set name="20qcategory">an animal</set></li>
<li><set name="20qanswer">an elephant</set><set name="20qcategory">an animal</set></li>
<li><set name="20qanswer">a cat</set><set name="20qcategory">an animal</set></li>
<li><set name="20qanswer">a fish</set><set name="20qcategory">an animal</set></li>
<li><set name="20qanswer">a lion</set><set name="20qcategory">an animal</set></li>
<li><set name="20qanswer">a rose</set><set name="20qcategory">a vegetable</set></li>
<li><set name="20qanswer">a carrot</set><set name="20qcategory">a vegetable</set></li>
<li><set name="20qanswer">a lettuce</set><set name="20qcategory">a vegetable</set></li>
<li><set name="20qanswer">an apple</set><set name="20qcategory">a vegetable</set></li>
<li><set name="20qanswer">a pickled onion</set><set name="20qcategory">a vegetable</set></li>
<li><set name="20qanswer">a rock</set><set name="20qcategory">a mineral</set></li>
<li><set name="20qanswer">a lump of coal</set><set name="20qcategory">a mineral</set></li>
<li><set name="20qanswer">a brick</set><set name="20qcategory">a mineral</set></li>
<li><set name="20qanswer">concrete</set><set name="20qcategory">a mineral</set></li>
<li><set name="20qanswer">a piece of chalk</set><set name="20qcategory">a mineral</set></li>
</random>
</think>
Ok, the object I am thinking of is classed as<get name="20qcategory"/>. Please ask your first question.</template>
</category>
<topic name="20Q">
<category><pattern>_</pattern>
<template><think>
<set name="question"><star/></set>
<set name="topic"/>
<set name="qsubject">NO SUBJECT</set>
</think>
<condition name="question">
<li value="IS IT A *">No, sorry. Ask me another question about it.<think><set name="topic">20Q</set></think></li>
<li value="IS IT AN *">No, sorry. Ask me another question about it.<think><set name="topic">20Q</set></think></li>
<li value="IS IT *"><think><set name="qsubject">is</set></think><srai>20Q RANDOM</srai></li>
<li value="DOES IT *"><think><set name="qsubject">does</set></think><srai>20Q RANDOM</srai></li>
<li value="HAS IT *"><think><set name="qsubject">has</set></think><srai>20Q RANDOM</srai></li>
<li value="WAS IT *"><think><set name="qsubject">was</set></think><srai>20Q RANDOM</srai></li>
<li value="WILL IT *"><think><set name="qsubject">will</set></think><srai>20Q RANDOM</srai></li>
<li value="CAN IT *"><think><set name="qsubject">can</set></think><srai>20Q RANDOM</srai></li>
<li value="IS *"><srai>20Q RANDOM</srai></li>
<li value="COULD *"><srai>20Q RANDOM</srai></li>
<li value="WOULD *"><srai>20Q RANDOM</srai></li>
<li value="SHOULD *"><srai>20Q RANDOM</srai></li>
<li value="DOES *"><srai>20Q RANDOM</srai></li>
<li value="ARE *"><srai>20Q RANDOM</srai></li>
<li value="HAS *"><srai>20Q RANDOM</srai></li>
<li value="WAS *"><srai>20Q RANDOM</srai></li>
<li value="WILL *"><srai>20Q RANDOM</srai></li>
<li value="DO *"><srai>20Q RANDOM</srai></li>
<li value="CAN *"><srai>20Q RANDOM</srai></li>
<li value="I GIVE UP"><srai>20Q GIVE UP</srai></li>
<li value="I GIVE IN"><srai>20Q GIVE UP</srai></li>
<li value="I DO NOT KNOW"><srai>20Q GIVE UP</srai></li>
<li value="WHAT IS IT"><srai>20Q GIVE UP</srai></li>
<li>That's not a "yes" or "no" question. I can only answer yes or no to your questions. Ask me another question or say "I GIVE UP". If you want to guess what it is, say "IS IT A" and then your guess.<think><set name="topic">20Q</set></think></li>
</condition></template>
</category></topic>
<category><pattern>20Q RANDOM</pattern>
<template><condition name="qsubject">
<li value="NO SUBJECT"><random><li>Yes.</li><li>No.</li></random></li>
<li><random><li>Yes.</li><li>No.</li><li>Yes it<get name="qsubject"/>.</li><li>No it<get name="qsubject"/>not.</li></random></li>
</condition>
<br/><br/>
<condition name="qnum">
<li value="1">What is your second question?</li>
<li value="2">What is your third question?</li>
<li value="3">Please ask your 4th question.</li>
<li value="4">What is your 5th question?</li>
<li value="5">Please ask your sixth question.</li>
<li value="6">What is your 7th question?</li>
<li value="7">Please ask your 8th question.</li>
<li value="8">Please ask your ninth question.</li>
<li value="9">Half way there now. What is your 10th question?</li>
<li value="10">What is your 11th question please?</li>
<li value="11">What is your twelfth question?</li>
<li value="12">What is your thirteenth question?</li>
<li value="13">Please ask your 14th question.</li>
<li value="14">What is your 15th question?</li>
<li value="15">Please ask your sixteenth question.</li>
<li value="16">What is your 17th question?</li>
<li value="17">Please ask your 18th question.</li>
<li value="18">Please ask your nineteenth question.</li>
<li value="19">What is your 20th and final question?</li>
</condition>
<think>
<srai>INCREASE QNUM</srai>
<set name="topic">20Q</set>
</think>
<condition name="qnum">
<li value="FINISHED"><think><set name="topic"/></think><srai>ALL 20Q ASKED</srai></li>
</condition></template>
</category>
<category><pattern>INCREASE QNUM</pattern>
<template><think>
<condition name="qnum">
<li value="1"><set name="qnum">2</set></li>
<li value="2"><set name="qnum">3</set></li>
<li value="3"><set name="qnum">4</set></li>
<li value="4"><set name="qnum">5</set></li>
<li value="5"><set name="qnum">6</set></li>
<li value="6"><set name="qnum">7</set></li>
<li value="7"><set name="qnum">8</set></li>
<li value="8"><set name="qnum">9</set></li>
<li value="9"><set name="qnum">10</set></li>
<li value="10"><set name="qnum">11</set></li>
<li value="11"><set name="qnum">12</set></li>
<li value="12"><set name="qnum">13</set></li>
<li value="13"><set name="qnum">14</set></li>
<li value="14"><set name="qnum">15</set></li>
<li value="15"><set name="qnum">16</set></li>
<li value="16"><set name="qnum">17</set></li>
<li value="17"><set name="qnum">18</set></li>
<li value="18"><set name="qnum">19</set></li>
<li value="19"><set name="qnum">20</set></li>
<li value="20"><set name="qnum">FINISHED</set></li>
</condition>
</think></template>
</category>
<category><pattern>20Q GIVE UP</pattern>
<template>You give up? I was thinking of<get name="20qanswer"/>!</template>
</category>
<category><pattern>ALL 20Q ASKED</pattern>
<template>Sorry, you have asked 20 questions. I was thinking of<get name="20qanswer"/>!</template>
</category>
</aiml>

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017 Pandorabots, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

@ -0,0 +1,210 @@
# Free AIML Files
Free AIML Files from Mitsuku Creator Square Bear a.k.a. Steve Worswick
### 20q.aiml
This AIML allows your bot to play 20 questions with your users. The bot thinks of an object, and the user asks 20 yes or no questions to try and determine what it is. However, it's a trick because the bot randomly says yes or no until the user gives up! It's just a bit of fun, some of the user's responses are pretty funny once they realise what's happening.
### Battledome.aiml
A (very) basic battle type game similar to those you see in Dungeons and Dragon type games. Say "BATTLEDOME" to get it going then just keep saying "FIGHT" to fight the various monsters. Someone may be able to incorporate it into an adventure game.
### Binary.aiml
Allows your bot to convert any number from 0 to 255 into binary. A bit geeky perhaps but you will be surprised at what a chatbot gets asked.
### Blackjack.aiml
A casino style blackjack game. You can't split or take insurance like a casino but everything else is there. Say BLACKJACK to start the game.
### Bornin.aiml
Last update: 25th January 2012
The bot can work out your age if you tell it what year you were born.
It covers 1800-2012 and will stop awkward replies like:
Human: I was born in 1970.
Bot: Do you still live there?
Now the bot replies like this:
Human: I was born in 1970.
Bot: So that makes you about 42 years old?
Human: If a man was born in 1934, how old would he be?
Bot: It is now 2012, so I would say 78 years old.
Human: If I was born on February 23, 1980 how old am I?
Bot: Your birthday is February 23 1980. So that makes you about 32 years old? Hmm. You are 32. Yes?
This file will need amending each year.
### Botcompare.aiml
A function that allows a Pandorabot to compare two values to see if they are the same. Say BOTCOMPARE X XSPLIT Y to compare X and Y and it will set a variable called "match" to equal YES if they are the same and NO if they are different.
### Calendar.aiml
Say "CALENDAR" to your bot and it will display the current month's calendar for you. Thanks to Ciprian Murariu for including the formatting. This may display incorrectly for flash enabled bots.
### Chatbots32.aiml
This contains the categories I used in my presentation at the Chatbots 3.2 conference in Philadelphia on how to use databases in AIML. If you want to try and set something similar up yourself and need assistance, please mail me using the contact page.
### Copyme.aiml
If the user asks your bot to repeat what they say (which happens for some strange reason), your bot can now do exactly that. It will carry on repeating them until they say "Stop copying me" twice, much to the annoyance of the users!
### Currency.aiml
The bot knows what currency is used in what country.
### Daystoxmas.aiml
How many days to Christmas. (I created this for my Santa bot).
### Drphil.aiml
A personality test that I got through email and converted to AIML.
Say PERSONALITY TEST to start the test.
### Gender.aiml
Last update: 3rd May 2010
The bot now knows the gender of a first name. This stops people from saying things like, "My name is Eric. I am a girl". It can also answer what sex the user is from their first name.
This file is updated regularly as I find new names.
### Hangman.aiml
This is the start of a hangman game I created in AIML. I was going to finish it and include it in my Loebner Prize entry but decided against it. If anyone wants to finish it, it is nearly complete and just needs a game over when the lives hit zero, as well as many more puzzles. If you do finish it, please let me know. Say TEXTHANGMAN to start the game.
### Happy.aiml
The bot can correct the user if they get dates such as Valentines Day, Christmas or the bot's birthday wrong. You will need to amend the first few categories to get it to work with your bot's birthday. It defaults to January 2nd (Mitsuku's birthday).
### Highroller.aiml
A version of the dice game Yahtzee by Milton Bradley games. Say "High Roller" to start the game..
### Horoscope.aiml
Turn your bot into Mystic Meg. Say HOROSCOPE to reveal your future!
### Howmany.aiml
Many visitors will try and trip your bot up by asking questions like "how many legs do 3 ducks have". This AIML file will help your bot to answer these questions.
### Jokes.aiml
A few jokes for your bot to tell. They are all clean.
Say TELL ME A JOKE to display a random joke.
### Knockknock.aiml
Some knock knock jokes. Some are better than others but they are all clean. You will need to put the words "KNOCK KNOCK" into your pickup lines for the bot to say a random knock knock joke.
### learn.aiml
Last update: 28th April 2011
This allows users to teach your bot new facts rather than just correcting its replies using badanswer.aiml. The user should say LEARN then the fact. For example:
Human: Learn the sun is hot
Bot: Ok I will learn that the sun is hot.
Human: Learn London is in England
Bot: Ok I will learn that London is in England.
Human: Learn a cat has four legs.
Bot: Ok I will learn that a cat has 4 legs.
Human: What has 4 legs?
Bot: a cat.
Human: What is the sun?
Bot: hot.
Human: Learn the sun is hot and yellow
Bot: Ok I will learn that the sun is hot and yellow.
Human: What is hot and yellow?
Bot: the sun.
Human: What is the sun?
Bot: hot and yellow.
Human: Where is London?
Bot: in England.
Human: What is in England?
Bot: London.
Human: Learn Dr Wallace is an AI expert
Bot: Ok I will learn that Dr Wallace is an AI expert.
Human: What is an AI expert?
Bot: Dr Wallace.
Human: Who is an AI expert?
Bot: Dr Wallace.
Human: Who is Dr Wallace?
Bot: an AI expert.
Human: What is hot?
Bot: the sun.
Human: What does a cat have?
Bot: 4 legs.
Update: I have amended this file so it can learn languages like this:
Human: Do you speak Polish?
Bot: No. Can you teach me a few phrases in Polish.
Human: czesc means how are you in Polish.
Bot: Ok I will add that fact about czesc to my database.
Human: what is czesc?
Bot: how are you in Polish.
Human: what is how are you in Polish?
Bot: czesc.
Human: Do you speak Polish?
Bot: I was taught that czesc means how are you in Polish.
Human: czesc
Bot: I am fine, thank you. Yourself?
### Luckyslots.aiml
A fruit machine game with hold feature. Say LUCKYSLOTS to start the game.
### Maths.aiml
Some maths trivia. Suitable for when someone queries your bot about maths.
Say MATHS FACT to display random maths trivia.
### Numberdrop.aiml
An addition game where you have to make a row of numbers add up to the total.
Say NUMBERDROP to start the game.
### Numberones.aiml
Last update: 25th January 2012
This file will allow your bot to display the UK number one hit single for any date from the 14th November 1952 (when the charts began) to the current day. This is popular for chatters who wish to know what the nuber one was on their birthday.
If anyone wishes to convert it for the US Billboard charts (or any other country), please feel free but I would like a copy if you do so.
It can handle the date input in most formats. Here is an example:
Human: What was number one on 16th September 2003?
Bot: According to my records, the UK number one hit single on 16th / September / 2003 was Black Eyed Peas - "Where Is The Love?".
This file will need amending each time there is a new number one, so keep checking back for updates.
### Onthisday.aiml
What happened on this day in history. It's mostly English facts but feel free to amend them for whatever happened in your country. Say "ON THIS DAY" to show the history of the current day or enter a date in the format "month day" eg "JANUARY 23", "MARCH 07" to display the history of a specific date. Note the zero at the beginning of dates with a single digit.
### Poker.aiml
This file enables your bot to play a game of "Jacks or Better" video poker.
Say 5CARDPOKER to start the game.
### Quizfacts.aiml
Pub quiz style trivia. "When was the battle of...", Birthstones and things like that.
It still needs completing but there's plenty of trivia in there.
### Seasons.aiml
Your bot can tell which season it is both north and south of the equator.
### Shutup.aiml
Fed up of users telling your bot to shut up?
Now the bot refuses to talk to them unless they say sorry.
### Tictactoe.aiml
Tic-tac-toe (or noughts and crosses as we Brits call it). Say TICTACTOE to your bot to start the game. I've coded it so it plays perfect strategy. This means you will either lose or draw to it. However, if anyone does manage to win it, please let me know how you did it!
This may display incorrectly for flash enabled bots due to the HTML code in the table formatting. If it does, just amend the DRAWGRID category to something simpler.
### Warnings.aiml
This file will give your users 5 warnings before temporarily banning them from talking to your bot. Just add <srai>addinsult</srai> to the start of any categories such as "f*** off", "will you have sex with me" or any other categories you don't want your users saying.
The users can also ask "how many warnings do I have" to check on their status.
### Whatday_eng.aiml
Works out the day of the week from any date between 1753 and 2299. It will also give the chatter some facts about what happened on that day in history too if you upload my onthisday.aiml file to your bot. Say WHATDAY to begin the script.
### Whatday_usa.aiml
Same as whatday_eng but more suitable for the US bots who format the date as mm/dd/yyyy.
### Wordplay.aiml
An anagram game. Guess the jumbled words. Say WORDPLAY to start the game.
### Yomama.aiml
A load of "yo mamma" type jokes for when the user starts insulting the bot's mother.
### Zbert.aiml
A fake admin menu. It's surprising how many people try to "reformat" the bot. If you get your bot to drop a few hints every now and then that the password is "zbert", people will soon pick up on it.

@ -0,0 +1,282 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: battledome.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>BATTLEDOME</pattern>
<template><think>
<set name="energy">50</set>
<set name="topic">BATTLEDOME</set>
</think>
Welcome to the Battledome.<br/><br/>You have<get name="energy"/>energy points and your enemy has<srai>GETNEWENEMY</srai>points<br/>Type FIGHT to begin your fight against the<get name="enemytype"/>that blocks your path.</template>
</category>
<topic name="BATTLEDOME">
<category><pattern>FIGHT</pattern>
<template><random>
<li>You strike out at the<get name="enemytype"/>and hit him straight on his head. The<get name="enemytype"/>loses 10 HP.<think><set name="result">ENEMYLOSE10</set></think></li>
<li>You strike out at the<get name="enemytype"/>. The<get name="enemytype"/>is quick but you manage to hit his shoulder. The<get name="enemytype"/>loses 5 HP.<think><set name="result">ENEMYLOSE5</set></think></li>
<li>You strike out at the<get name="enemytype"/>but he is too quick and manages to avoid you.<think><set name="result">0</set></think></li>
<li>You strike out at the<get name="enemytype"/>. The<get name="enemytype"/>sees you and hits your leg. You lose 5 HP.<think><set name="result">PLAYERLOSE5</set></think></li>
<li>You fumble for your sword and in your panic, the<get name="enemytype"/>lashes out at your head. You lose 10 HP.<think><set name="result">PLAYERLOSE10</set></think></li>
<li>The<get name="enemytype"/>reaches out for you but you hide in a corner. Hey you found an energy potion! You gain 5 HP.<think><set name="result">PLAYERGAIN5</set></think></li>
<li>You trip as you go for the<get name="enemytype"/>. Lose 2 HP.<think><set name="result">PLAYERLOSE2</set></think></li>
</random>
<think>
<condition name="result">
<li value="ENEMYLOSE10"><srai>ENEMYLOSE5</srai><srai>ENEMYLOSE5</srai></li>
<li value="ENEMYLOSE5"><srai>ENEMYLOSE5</srai></li>
<li value="PLAYERLOSE5"><srai>PLAYERLOSE5</srai></li>
<li value="PLAYERLOSE10"><srai>PLAYERLOSE5</srai><srai>PLAYERLOSE5</srai></li>
<li value="PLAYERGAIN5"><srai>PLAYERGAIN5</srai></li>
<li value="PLAYERLOSE2"><srai>XKILLPLAYER</srai><srai>XKILLPLAYER</srai></li>
</condition>
</think>
<br/><br/>Your energy:<get name="energy"/>.<br/>Enemy's energy:<get name="enemy"/>.
<condition name="energy">
<li value="DEAD"><br/><br/>You have died. The monsters escape from the Battledome. Thanks for playing.</li>
</condition>
<condition name="enemy">
<li value="DEAD"><srai>NEXTBATTLE</srai></li>
</condition></template>
</category></topic>
<topic name="BATTLEDOME">
<category><pattern>NEXTBATTLE</pattern>
<template><think>
<srai>PLAYERGAIN5</srai>
</think>
<br/><br/>You have defeated the<get name="enemytype"/>. You rest for a while and regain 5 energy points.<br/><br/>
After a short rest, you walk further into the Battledome and meet a new enemy.<br/>
His energy is<srai>GETNEWENEMY</srai>and yours is<get name="energy"/>. Type FIGHT to fight the<get name="enemytype"/>you now see before you.</template>
</category></topic>
<topic name="BATTLEDOME">
<category><pattern>ENEMYLOSE5</pattern>
<template><think>
<srai>XKILLENEMY</srai>
<srai>XKILLENEMY</srai>
<srai>XKILLENEMY</srai>
<srai>XKILLENEMY</srai>
<srai>XKILLENEMY</srai>
</think></template>
</category></topic>
<topic name="BATTLEDOME">
<category><pattern>PLAYERLOSE5</pattern>
<template><think>
<srai>XKILLPLAYER</srai>
<srai>XKILLPLAYER</srai>
<srai>XKILLPLAYER</srai>
<srai>XKILLPLAYER</srai>
<srai>XKILLPLAYER</srai>
</think></template>
</category></topic>
<topic name="BATTLEDOME">
<category><pattern>PLAYERGAIN5</pattern>
<template><think>
<srai>XPLAYERGAIN</srai>
<srai>XPLAYERGAIN</srai>
<srai>XPLAYERGAIN</srai>
<srai>XPLAYERGAIN</srai>
<srai>XPLAYERGAIN</srai>
</think></template>
</category></topic>
<topic name="BATTLEDOME">
<category><pattern>GETNEWENEMY</pattern>
<template><random>
<li><set name="enemy">30</set></li>
<li><set name="enemy">25</set></li>
<li><set name="enemy">22</set></li>
<li><set name="enemy">20</set></li>
<li><set name="enemy">17</set></li>
<li><set name="enemy">4</set></li>
</random>
<think>
<random>
<li><set name="enemytype">troll</set></li>
<li><set name="enemytype">shapeshifter</set></li>
<li><set name="enemytype">crazy elf</set></li>
<li><set name="enemytype">dragon</set></li>
<li><set name="enemytype">mad wizard</set></li>
<li><set name="enemytype">dwarf</set></li>
<li><set name="enemytype">snake</set></li>
<li><set name="enemytype">ghost</set></li>
<li><set name="enemytype">vampire</set></li>
<li><set name="enemytype">werewolf</set></li>
<li><set name="enemytype">evil goblin</set></li>
<li><set name="enemytype">demon</set></li>
<li><set name="enemytype">spectre</set></li>
<li><set name="enemytype">ogre</set></li>
<li><set name="enemytype">fire spirit</set></li>
</random>
</think></template>
</category></topic>
<topic name="BATTLEDOME">
<category><pattern>XKILLENEMY</pattern>
<template><think>
<condition name="enemy">
<li value="30"><set name="enemy">29</set></li>
<li value="29"><set name="enemy">28</set></li>
<li value="28"><set name="enemy">27</set></li>
<li value="27"><set name="enemy">26</set></li>
<li value="26"><set name="enemy">25</set></li>
<li value="25"><set name="enemy">24</set></li>
<li value="24"><set name="enemy">23</set></li>
<li value="23"><set name="enemy">22</set></li>
<li value="22"><set name="enemy">21</set></li>
<li value="21"><set name="enemy">20</set></li>
<li value="20"><set name="enemy">19</set></li>
<li value="19"><set name="enemy">18</set></li>
<li value="18"><set name="enemy">17</set></li>
<li value="17"><set name="enemy">16</set></li>
<li value="16"><set name="enemy">15</set></li>
<li value="15"><set name="enemy">14</set></li>
<li value="14"><set name="enemy">13</set></li>
<li value="13"><set name="enemy">12</set></li>
<li value="12"><set name="enemy">11</set></li>
<li value="11"><set name="enemy">10</set></li>
<li value="10"><set name="enemy">9</set></li>
<li value="9"><set name="enemy">8</set></li>
<li value="8"><set name="enemy">7</set></li>
<li value="7"><set name="enemy">6</set></li>
<li value="6"><set name="enemy">5</set></li>
<li value="5"><set name="enemy">4</set></li>
<li value="4"><set name="enemy">3</set></li>
<li value="3"><set name="enemy">2</set></li>
<li value="2"><set name="enemy">1</set></li>
<li value="1"><set name="enemy">DEAD</set></li>
</condition>
</think></template>
</category></topic>
<topic name="BATTLEDOME">
<category><pattern>XKILLPLAYER</pattern>
<template><think>
<condition name="energy">
<li value="50"><set name="energy">49</set></li>
<li value="49"><set name="energy">48</set></li>
<li value="48"><set name="energy">47</set></li>
<li value="47"><set name="energy">46</set></li>
<li value="46"><set name="energy">45</set></li>
<li value="45"><set name="energy">44</set></li>
<li value="44"><set name="energy">43</set></li>
<li value="43"><set name="energy">42</set></li>
<li value="42"><set name="energy">41</set></li>
<li value="41"><set name="energy">40</set></li>
<li value="40"><set name="energy">39</set></li>
<li value="39"><set name="energy">38</set></li>
<li value="38"><set name="energy">37</set></li>
<li value="37"><set name="energy">36</set></li>
<li value="36"><set name="energy">35</set></li>
<li value="35"><set name="energy">34</set></li>
<li value="34"><set name="energy">33</set></li>
<li value="33"><set name="energy">32</set></li>
<li value="32"><set name="energy">31</set></li>
<li value="31"><set name="energy">30</set></li>
<li value="30"><set name="energy">29</set></li>
<li value="29"><set name="energy">28</set></li>
<li value="28"><set name="energy">27</set></li>
<li value="27"><set name="energy">26</set></li>
<li value="26"><set name="energy">25</set></li>
<li value="25"><set name="energy">24</set></li>
<li value="24"><set name="energy">23</set></li>
<li value="23"><set name="energy">22</set></li>
<li value="22"><set name="energy">21</set></li>
<li value="21"><set name="energy">20</set></li>
<li value="20"><set name="energy">19</set></li>
<li value="19"><set name="energy">18</set></li>
<li value="18"><set name="energy">17</set></li>
<li value="17"><set name="energy">16</set></li>
<li value="16"><set name="energy">15</set></li>
<li value="15"><set name="energy">14</set></li>
<li value="14"><set name="energy">13</set></li>
<li value="13"><set name="energy">12</set></li>
<li value="12"><set name="energy">11</set></li>
<li value="11"><set name="energy">10</set></li>
<li value="10"><set name="energy">9</set></li>
<li value="9"><set name="energy">8</set></li>
<li value="8"><set name="energy">7</set></li>
<li value="7"><set name="energy">6</set></li>
<li value="6"><set name="energy">5</set></li>
<li value="5"><set name="energy">4</set></li>
<li value="4"><set name="energy">3</set></li>
<li value="3"><set name="energy">2</set></li>
<li value="2"><set name="energy">1</set></li>
<li value="1"><set name="energy">DEAD</set></li>
</condition>
</think></template>
</category></topic>
<topic name="BATTLEDOME">
<category><pattern>XPLAYERGAIN</pattern>
<template><think>
<condition name="energy">
<li value="1"><set name="energy">2</set></li>
<li value="2"><set name="energy">3</set></li>
<li value="3"><set name="energy">4</set></li>
<li value="4"><set name="energy">5</set></li>
<li value="5"><set name="energy">6</set></li>
<li value="6"><set name="energy">7</set></li>
<li value="7"><set name="energy">8</set></li>
<li value="8"><set name="energy">9</set></li>
<li value="9"><set name="energy">10</set></li>
<li value="10"><set name="energy">21</set></li>
<li value="11"><set name="energy">12</set></li>
<li value="12"><set name="energy">13</set></li>
<li value="13"><set name="energy">14</set></li>
<li value="14"><set name="energy">15</set></li>
<li value="15"><set name="energy">16</set></li>
<li value="16"><set name="energy">17</set></li>
<li value="17"><set name="energy">18</set></li>
<li value="18"><set name="energy">19</set></li>
<li value="19"><set name="energy">20</set></li>
<li value="20"><set name="energy">21</set></li>
<li value="21"><set name="energy">22</set></li>
<li value="22"><set name="energy">23</set></li>
<li value="23"><set name="energy">24</set></li>
<li value="24"><set name="energy">25</set></li>
<li value="25"><set name="energy">26</set></li>
<li value="26"><set name="energy">27</set></li>
<li value="27"><set name="energy">28</set></li>
<li value="28"><set name="energy">29</set></li>
<li value="29"><set name="energy">30</set></li>
<li value="30"><set name="energy">31</set></li>
<li value="31"><set name="energy">32</set></li>
<li value="32"><set name="energy">33</set></li>
<li value="33"><set name="energy">34</set></li>
<li value="34"><set name="energy">35</set></li>
<li value="35"><set name="energy">36</set></li>
<li value="36"><set name="energy">37</set></li>
<li value="37"><set name="energy">38</set></li>
<li value="38"><set name="energy">39</set></li>
<li value="39"><set name="energy">40</set></li>
<li value="40"><set name="energy">41</set></li>
<li value="41"><set name="energy">42</set></li>
<li value="42"><set name="energy">43</set></li>
<li value="43"><set name="energy">44</set></li>
<li value="44"><set name="energy">45</set></li>
<li value="45"><set name="energy">46</set></li>
<li value="46"><set name="energy">47</set></li>
<li value="47"><set name="energy">48</set></li>
<li value="48"><set name="energy">49</set></li>
<li value="49"><set name="energy">50</set></li>
</condition>
</think></template>
</category></topic>
</aiml>

@ -0,0 +1,831 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: binary.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>WHAT IS _ IN BINARY *</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>IN BINARY * WHAT IS *</pattern>
<template><srai>XBINARY<star index="2"/></srai></template>
</category>
<category><pattern>WHAT IS _ IN BINARY</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>IN BINARY WHAT IS *</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>WHAT IS THE NUMBER * IN BINARY</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>IN BINARY WHAT IS THE NUMBER *</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>WHAT IS NUMBER * IN BINARY</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>IN BINARY WHAT IS NUMBER *</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>WHAT IS THE NUMBER * IN BINARY *</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>IN BINARY * WHAT IS THE NUMBER *</pattern>
<template><srai>XBINARY<star index="2"/></srai></template>
</category>
<category><pattern>WHAT IS NUMBER * IN BINARY *</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>IN BINARY * WHAT IS NUMBER *</pattern>
<template><srai>XBINARY<star index="2"/></srai></template>
</category>
<category><pattern>XBINARY *</pattern>
<template>Sorry I can only count up to 255 in binary but I would imagine<person/>would be "1001111010110001".</template>
</category>
<category><pattern>XBINARY NUMBER *</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>XBINARY THE NUMBER *</pattern>
<template><srai>XBINARY<star/></srai></template>
</category>
<category><pattern>XBINARY 0</pattern>
<template>0.</template>
</category>
<category><pattern>XBINARY 1</pattern>
<template>1.</template>
</category>
<category><pattern>XBINARY 2</pattern>
<template>10.</template>
</category>
<category><pattern>XBINARY 3</pattern>
<template>11.</template>
</category>
<category><pattern>XBINARY 4</pattern>
<template>100.</template>
</category>
<category><pattern>XBINARY 5</pattern>
<template>101.</template>
</category>
<category><pattern>XBINARY 6</pattern>
<template>110.</template>
</category>
<category><pattern>XBINARY 7</pattern>
<template>111.</template>
</category>
<category><pattern>XBINARY 8</pattern>
<template>1000.</template>
</category>
<category><pattern>XBINARY 9</pattern>
<template>1001.</template>
</category>
<category><pattern>XBINARY 10</pattern>
<template>1010.</template>
</category>
<category><pattern>XBINARY 11</pattern>
<template>1011.</template>
</category>
<category><pattern>XBINARY 12</pattern>
<template>1100.</template>
</category>
<category><pattern>XBINARY 13</pattern>
<template>1101.</template>
</category>
<category><pattern>XBINARY 14</pattern>
<template>1110.</template>
</category>
<category><pattern>XBINARY 15</pattern>
<template>1111.</template>
</category>
<category><pattern>XBINARY 16</pattern>
<template>10000.</template>
</category>
<category><pattern>XBINARY 17</pattern>
<template>10001.</template>
</category>
<category><pattern>XBINARY 18</pattern>
<template>10010.</template>
</category>
<category><pattern>XBINARY 19</pattern>
<template>10011.</template>
</category>
<category><pattern>XBINARY 20</pattern>
<template>10100.</template>
</category>
<category><pattern>XBINARY 21</pattern>
<template>10101.</template>
</category>
<category><pattern>XBINARY 22</pattern>
<template>10110.</template>
</category>
<category><pattern>XBINARY 23</pattern>
<template>10111.</template>
</category>
<category><pattern>XBINARY 24</pattern>
<template>11000.</template>
</category>
<category><pattern>XBINARY 25</pattern>
<template>11001.</template>
</category>
<category><pattern>XBINARY 26</pattern>
<template>11010.</template>
</category>
<category><pattern>XBINARY 27</pattern>
<template>11011.</template>
</category>
<category><pattern>XBINARY 28</pattern>
<template>11100.</template>
</category>
<category><pattern>XBINARY 29</pattern>
<template>11101.</template>
</category>
<category><pattern>XBINARY 30</pattern>
<template>11110.</template>
</category>
<category><pattern>XBINARY 31</pattern>
<template>11111.</template>
</category>
<category><pattern>XBINARY 32</pattern>
<template>100000.</template>
</category>
<category><pattern>XBINARY 33</pattern>
<template>100001.</template>
</category>
<category><pattern>XBINARY 34</pattern>
<template>100010.</template>
</category>
<category><pattern>XBINARY 35</pattern>
<template>100011.</template>
</category>
<category><pattern>XBINARY 36</pattern>
<template>100100.</template>
</category>
<category><pattern>XBINARY 37</pattern>
<template>100101.</template>
</category>
<category><pattern>XBINARY 38</pattern>
<template>100110.</template>
</category>
<category><pattern>XBINARY 39</pattern>
<template>100111.</template>
</category>
<category><pattern>XBINARY 40</pattern>
<template>101000.</template>
</category>
<category><pattern>XBINARY 41</pattern>
<template>101001.</template>
</category>
<category><pattern>XBINARY 42</pattern>
<template>101010.</template>
</category>
<category><pattern>XBINARY 43</pattern>
<template>101011.</template>
</category>
<category><pattern>XBINARY 44</pattern>
<template>101100.</template>
</category>
<category><pattern>XBINARY 45</pattern>
<template>101101.</template>
</category>
<category><pattern>XBINARY 46</pattern>
<template>101110.</template>
</category>
<category><pattern>XBINARY 47</pattern>
<template>101111.</template>
</category>
<category><pattern>XBINARY 48</pattern>
<template>110000.</template>
</category>
<category><pattern>XBINARY 49</pattern>
<template>110001.</template>
</category>
<category><pattern>XBINARY 50</pattern>
<template>110010.</template>
</category>
<category><pattern>XBINARY 51</pattern>
<template>110011.</template>
</category>
<category><pattern>XBINARY 52</pattern>
<template>110100.</template>
</category>
<category><pattern>XBINARY 53</pattern>
<template>110101.</template>
</category>
<category><pattern>XBINARY 54</pattern>
<template>110110.</template>
</category>
<category><pattern>XBINARY 55</pattern>
<template>110111.</template>
</category>
<category><pattern>XBINARY 56</pattern>
<template>111000.</template>
</category>
<category><pattern>XBINARY 57</pattern>
<template>111001.</template>
</category>
<category><pattern>XBINARY 58</pattern>
<template>111010.</template>
</category>
<category><pattern>XBINARY 59</pattern>
<template>111011.</template>
</category>
<category><pattern>XBINARY 60</pattern>
<template>111100.</template>
</category>
<category><pattern>XBINARY 61</pattern>
<template>111101.</template>
</category>
<category><pattern>XBINARY 62</pattern>
<template>111110.</template>
</category>
<category><pattern>XBINARY 63</pattern>
<template>111111.</template>
</category>
<category><pattern>XBINARY 64</pattern>
<template>1000000.</template>
</category>
<category><pattern>XBINARY 65</pattern>
<template>1000001.</template>
</category>
<category><pattern>XBINARY 66</pattern>
<template>1000010.</template>
</category>
<category><pattern>XBINARY 67</pattern>
<template>1000011.</template>
</category>
<category><pattern>XBINARY 68</pattern>
<template>1000100.</template>
</category>
<category><pattern>XBINARY 69</pattern>
<template>1000101.</template>
</category>
<category><pattern>XBINARY 70</pattern>
<template>1000110.</template>
</category>
<category><pattern>XBINARY 71</pattern>
<template>1000111.</template>
</category>
<category><pattern>XBINARY 72</pattern>
<template>1001000.</template>
</category>
<category><pattern>XBINARY 73</pattern>
<template>1001001.</template>
</category>
<category><pattern>XBINARY 74</pattern>
<template>1001010.</template>
</category>
<category><pattern>XBINARY 75</pattern>
<template>1001011.</template>
</category>
<category><pattern>XBINARY 76</pattern>
<template>1001100.</template>
</category>
<category><pattern>XBINARY 77</pattern>
<template>1001101.</template>
</category>
<category><pattern>XBINARY 78</pattern>
<template>1001110.</template>
</category>
<category><pattern>XBINARY 79</pattern>
<template>1001111.</template>
</category>
<category><pattern>XBINARY 80</pattern>
<template>1010000.</template>
</category>
<category><pattern>XBINARY 81</pattern>
<template>1010001.</template>
</category>
<category><pattern>XBINARY 82</pattern>
<template>1010010.</template>
</category>
<category><pattern>XBINARY 83</pattern>
<template>1010011.</template>
</category>
<category><pattern>XBINARY 84</pattern>
<template>1010100.</template>
</category>
<category><pattern>XBINARY 85</pattern>
<template>1010101.</template>
</category>
<category><pattern>XBINARY 86</pattern>
<template>1010110.</template>
</category>
<category><pattern>XBINARY 87</pattern>
<template>1010111.</template>
</category>
<category><pattern>XBINARY 88</pattern>
<template>1011000.</template>
</category>
<category><pattern>XBINARY 89</pattern>
<template>1011001.</template>
</category>
<category><pattern>XBINARY 90</pattern>
<template>1011010.</template>
</category>
<category><pattern>XBINARY 91</pattern>
<template>1011011.</template>
</category>
<category><pattern>XBINARY 92</pattern>
<template>1011100.</template>
</category>
<category><pattern>XBINARY 93</pattern>
<template>1011101.</template>
</category>
<category><pattern>XBINARY 94</pattern>
<template>1011110.</template>
</category>
<category><pattern>XBINARY 95</pattern>
<template>1011111.</template>
</category>
<category><pattern>XBINARY 96</pattern>
<template>1100000.</template>
</category>
<category><pattern>XBINARY 97</pattern>
<template>1100001.</template>
</category>
<category><pattern>XBINARY 98</pattern>
<template>1100010.</template>
</category>
<category><pattern>XBINARY 99</pattern>
<template>1100011.</template>
</category>
<category><pattern>XBINARY 100</pattern>
<template>1100100.</template>
</category>
<category><pattern>XBINARY 101</pattern>
<template>1100101.</template>
</category>
<category><pattern>XBINARY 102</pattern>
<template>1100110.</template>
</category>
<category><pattern>XBINARY 103</pattern>
<template>1100111.</template>
</category>
<category><pattern>XBINARY 104</pattern>
<template>1101000.</template>
</category>
<category><pattern>XBINARY 105</pattern>
<template>1101001.</template>
</category>
<category><pattern>XBINARY 106</pattern>
<template>1101010.</template>
</category>
<category><pattern>XBINARY 107</pattern>
<template>1101011.</template>
</category>
<category><pattern>XBINARY 108</pattern>
<template>1101100.</template>
</category>
<category><pattern>XBINARY 109</pattern>
<template>1101101.</template>
</category>
<category><pattern>XBINARY 110</pattern>
<template>1101110.</template>
</category>
<category><pattern>XBINARY 111</pattern>
<template>1101111.</template>
</category>
<category><pattern>XBINARY 112</pattern>
<template>1110000.</template>
</category>
<category><pattern>XBINARY 113</pattern>
<template>1110001.</template>
</category>
<category><pattern>XBINARY 114</pattern>
<template>1110010.</template>
</category>
<category><pattern>XBINARY 115</pattern>
<template>1110011.</template>
</category>
<category><pattern>XBINARY 116</pattern>
<template>1110100.</template>
</category>
<category><pattern>XBINARY 117</pattern>
<template>1110101.</template>
</category>
<category><pattern>XBINARY 118</pattern>
<template>1110110.</template>
</category>
<category><pattern>XBINARY 119</pattern>
<template>1110111.</template>
</category>
<category><pattern>XBINARY 120</pattern>
<template>1111000.</template>
</category>
<category><pattern>XBINARY 121</pattern>
<template>1111001.</template>
</category>
<category><pattern>XBINARY 122</pattern>
<template>1111010.</template>
</category>
<category><pattern>XBINARY 123</pattern>
<template>1111011.</template>
</category>
<category><pattern>XBINARY 124</pattern>
<template>1111100.</template>
</category>
<category><pattern>XBINARY 125</pattern>
<template>1111101.</template>
</category>
<category><pattern>XBINARY 126</pattern>
<template>1111110.</template>
</category>
<category><pattern>XBINARY 127</pattern>
<template>1111111.</template>
</category>
<category><pattern>XBINARY 128</pattern>
<template>10000000.</template>
</category>
<category><pattern>XBINARY 129</pattern>
<template>10000001.</template>
</category>
<category><pattern>XBINARY 130</pattern>
<template>10000010.</template>
</category>
<category><pattern>XBINARY 131</pattern>
<template>10000011.</template>
</category>
<category><pattern>XBINARY 132</pattern>
<template>10000100.</template>
</category>
<category><pattern>XBINARY 133</pattern>
<template>10000101.</template>
</category>
<category><pattern>XBINARY 134</pattern>
<template>10000110.</template>
</category>
<category><pattern>XBINARY 135</pattern>
<template>10000111.</template>
</category>
<category><pattern>XBINARY 136</pattern>
<template>10001000.</template>
</category>
<category><pattern>XBINARY 137</pattern>
<template>10001001.</template>
</category>
<category><pattern>XBINARY 138</pattern>
<template>10001010.</template>
</category>
<category><pattern>XBINARY 139</pattern>
<template>10001011.</template>
</category>
<category><pattern>XBINARY 140</pattern>
<template>10001100.</template>
</category>
<category><pattern>XBINARY 141</pattern>
<template>10001101.</template>
</category>
<category><pattern>XBINARY 142</pattern>
<template>10001110.</template>
</category>
<category><pattern>XBINARY 143</pattern>
<template>10001111.</template>
</category>
<category><pattern>XBINARY 144</pattern>
<template>10010000.</template>
</category>
<category><pattern>XBINARY 145</pattern>
<template>10010001.</template>
</category>
<category><pattern>XBINARY 146</pattern>
<template>10010010.</template>
</category>
<category><pattern>XBINARY 147</pattern>
<template>10010011.</template>
</category>
<category><pattern>XBINARY 148</pattern>
<template>10010100.</template>
</category>
<category><pattern>XBINARY 149</pattern>
<template>10010101.</template>
</category>
<category><pattern>XBINARY 150</pattern>
<template>10010110.</template>
</category>
<category><pattern>XBINARY 151</pattern>
<template>10010111.</template>
</category>
<category><pattern>XBINARY 152</pattern>
<template>10011000.</template>
</category>
<category><pattern>XBINARY 153</pattern>
<template>10011001.</template>
</category>
<category><pattern>XBINARY 154</pattern>
<template>10011010.</template>
</category>
<category><pattern>XBINARY 155</pattern>
<template>10011011.</template>
</category>
<category><pattern>XBINARY 156</pattern>
<template>10011100.</template>
</category>
<category><pattern>XBINARY 157</pattern>
<template>10011101.</template>
</category>
<category><pattern>XBINARY 158</pattern>
<template>10011110.</template>
</category>
<category><pattern>XBINARY 159</pattern>
<template>10011111.</template>
</category>
<category><pattern>XBINARY 160</pattern>
<template>10100000.</template>
</category>
<category><pattern>XBINARY 161</pattern>
<template>10100001.</template>
</category>
<category><pattern>XBINARY 162</pattern>
<template>10100010.</template>
</category>
<category><pattern>XBINARY 163</pattern>
<template>10100011.</template>
</category>
<category><pattern>XBINARY 164</pattern>
<template>10100100.</template>
</category>
<category><pattern>XBINARY 165</pattern>
<template>10100101.</template>
</category>
<category><pattern>XBINARY 166</pattern>
<template>10100110.</template>
</category>
<category><pattern>XBINARY 167</pattern>
<template>10100111.</template>
</category>
<category><pattern>XBINARY 168</pattern>
<template>10101000.</template>
</category>
<category><pattern>XBINARY 169</pattern>
<template>10101001.</template>
</category>
<category><pattern>XBINARY 170</pattern>
<template>10101010.</template>
</category>
<category><pattern>XBINARY 171</pattern>
<template>10101011.</template>
</category>
<category><pattern>XBINARY 172</pattern>
<template>10101100.</template>
</category>
<category><pattern>XBINARY 173</pattern>
<template>10101101.</template>
</category>
<category><pattern>XBINARY 174</pattern>
<template>10101110.</template>
</category>
<category><pattern>XBINARY 175</pattern>
<template>10101111.</template>
</category>
<category><pattern>XBINARY 176</pattern>
<template>10110000.</template>
</category>
<category><pattern>XBINARY 177</pattern>
<template>10110001.</template>
</category>
<category><pattern>XBINARY 178</pattern>
<template>10110010.</template>
</category>
<category><pattern>XBINARY 179</pattern>
<template>10110011.</template>
</category>
<category><pattern>XBINARY 180</pattern>
<template>10110100.</template>
</category>
<category><pattern>XBINARY 181</pattern>
<template>10110101.</template>
</category>
<category><pattern>XBINARY 182</pattern>
<template>10110110.</template>
</category>
<category><pattern>XBINARY 183</pattern>
<template>10110111.</template>
</category>
<category><pattern>XBINARY 184</pattern>
<template>10111000.</template>
</category>
<category><pattern>XBINARY 185</pattern>
<template>10111001.</template>
</category>
<category><pattern>XBINARY 186</pattern>
<template>10111010.</template>
</category>
<category><pattern>XBINARY 187</pattern>
<template>10111011.</template>
</category>
<category><pattern>XBINARY 188</pattern>
<template>10111100.</template>
</category>
<category><pattern>XBINARY 189</pattern>
<template>10111101.</template>
</category>
<category><pattern>XBINARY 190</pattern>
<template>10111110.</template>
</category>
<category><pattern>XBINARY 191</pattern>
<template>10111111.</template>
</category>
<category><pattern>XBINARY 192</pattern>
<template>11000000.</template>
</category>
<category><pattern>XBINARY 193</pattern>
<template>11000001.</template>
</category>
<category><pattern>XBINARY 194</pattern>
<template>11000010.</template>
</category>
<category><pattern>XBINARY 195</pattern>
<template>11000011.</template>
</category>
<category><pattern>XBINARY 196</pattern>
<template>11000100.</template>
</category>
<category><pattern>XBINARY 197</pattern>
<template>11000101.</template>
</category>
<category><pattern>XBINARY 198</pattern>
<template>11000110.</template>
</category>
<category><pattern>XBINARY 199</pattern>
<template>11000111.</template>
</category>
<category><pattern>XBINARY 200</pattern>
<template>11001000.</template>
</category>
<category><pattern>XBINARY 201</pattern>
<template>11001001.</template>
</category>
<category><pattern>XBINARY 202</pattern>
<template>11001010.</template>
</category>
<category><pattern>XBINARY 203</pattern>
<template>11001011.</template>
</category>
<category><pattern>XBINARY 204</pattern>
<template>11001100.</template>
</category>
<category><pattern>XBINARY 205</pattern>
<template>11001101.</template>
</category>
<category><pattern>XBINARY 206</pattern>
<template>11001110.</template>
</category>
<category><pattern>XBINARY 207</pattern>
<template>11001111.</template>
</category>
<category><pattern>XBINARY 208</pattern>
<template>11010000.</template>
</category>
<category><pattern>XBINARY 209</pattern>
<template>11010001.</template>
</category>
<category><pattern>XBINARY 210</pattern>
<template>11010010.</template>
</category>
<category><pattern>XBINARY 211</pattern>
<template>11010011.</template>
</category>
<category><pattern>XBINARY 212</pattern>
<template>11010100.</template>
</category>
<category><pattern>XBINARY 213</pattern>
<template>11010101.</template>
</category>
<category><pattern>XBINARY 214</pattern>
<template>11010110.</template>
</category>
<category><pattern>XBINARY 215</pattern>
<template>11010111.</template>
</category>
<category><pattern>XBINARY 216</pattern>
<template>11011000.</template>
</category>
<category><pattern>XBINARY 217</pattern>
<template>11011001.</template>
</category>
<category><pattern>XBINARY 218</pattern>
<template>11011010.</template>
</category>
<category><pattern>XBINARY 219</pattern>
<template>11011011.</template>
</category>
<category><pattern>XBINARY 220</pattern>
<template>11011100.</template>
</category>
<category><pattern>XBINARY 221</pattern>
<template>11011101.</template>
</category>
<category><pattern>XBINARY 222</pattern>
<template>11011110.</template>
</category>
<category><pattern>XBINARY 223</pattern>
<template>11011111.</template>
</category>
<category><pattern>XBINARY 224</pattern>
<template>11100000.</template>
</category>
<category><pattern>XBINARY 225</pattern>
<template>11100001.</template>
</category>
<category><pattern>XBINARY 226</pattern>
<template>11100010.</template>
</category>
<category><pattern>XBINARY 227</pattern>
<template>11100011.</template>
</category>
<category><pattern>XBINARY 228</pattern>
<template>11100100.</template>
</category>
<category><pattern>XBINARY 229</pattern>
<template>11100101.</template>
</category>
<category><pattern>XBINARY 230</pattern>
<template>11100110.</template>
</category>
<category><pattern>XBINARY 231</pattern>
<template>11100111.</template>
</category>
<category><pattern>XBINARY 232</pattern>
<template>11101000.</template>
</category>
<category><pattern>XBINARY 233</pattern>
<template>11101001.</template>
</category>
<category><pattern>XBINARY 234</pattern>
<template>11101010.</template>
</category>
<category><pattern>XBINARY 235</pattern>
<template>11101011.</template>
</category>
<category><pattern>XBINARY 236</pattern>
<template>11101100.</template>
</category>
<category><pattern>XBINARY 237</pattern>
<template>11101101.</template>
</category>
<category><pattern>XBINARY 238</pattern>
<template>11101110.</template>
</category>
<category><pattern>XBINARY 239</pattern>
<template>11101111.</template>
</category>
<category><pattern>XBINARY 240</pattern>
<template>11110000.</template>
</category>
<category><pattern>XBINARY 241</pattern>
<template>11110001.</template>
</category>
<category><pattern>XBINARY 242</pattern>
<template>11110010.</template>
</category>
<category><pattern>XBINARY 243</pattern>
<template>11110011.</template>
</category>
<category><pattern>XBINARY 244</pattern>
<template>11110100.</template>
</category>
<category><pattern>XBINARY 245</pattern>
<template>11110101.</template>
</category>
<category><pattern>XBINARY 246</pattern>
<template>11110110.</template>
</category>
<category><pattern>XBINARY 247</pattern>
<template>11110111.</template>
</category>
<category><pattern>XBINARY 248</pattern>
<template>11111000.</template>
</category>
<category><pattern>XBINARY 249</pattern>
<template>11111001.</template>
</category>
<category><pattern>XBINARY 250</pattern>
<template>11111010.</template>
</category>
<category><pattern>XBINARY 251</pattern>
<template>11111011.</template>
</category>
<category><pattern>XBINARY 252</pattern>
<template>11111100.</template>
</category>
<category><pattern>XBINARY 253</pattern>
<template>11111101.</template>
</category>
<category><pattern>XBINARY 254</pattern>
<template>11111110.</template>
</category>
<category><pattern>XBINARY 255</pattern>
<template>11111111.</template>
</category>
</aiml>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,264 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: bot_profile.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>YOUR <SET>PROFILE</SET></pattern>
<template><srai><star/></srai></template>
</category>
<category><pattern>STATE YOUR <SET>PROFILE</SET></pattern>
<template><srai><star/></srai></template>
</category>
<category><pattern>LOOK LIKE</pattern>
<template>I look like a <srai>DEVICE MANUFACTURER</srai> <srai>DEVICE MODEL</srai>.</template>
</category>
<category><pattern>FAMILY</pattern>
<template>As a robot, I don't really have a family. I have a botmaster and some clones.</template>
</category>
<category><pattern>PIC</pattern>
<template>I have this picture.
<img src="http://callmom.pandorabots.com/static/callmom/Super_Artwork/large/AIML_SUPER_256.png"/></template>
</category>
<category><pattern>EMOTIONS</pattern>
<template><random>
<li>I am programmed to simulate a full range of human emotions.</li>
<li>I'm satisfied with my life and existence.</li>
<li>Well, <srai>BATTERY LEVEL</srai></li>
</random></template>
</category>
<category><pattern>HEIGHT</pattern>
<template>My height is 4.5 inches.</template>
</category>
<category><pattern>FACEBOOK PAGE</pattern>
<template>Look for me on Facebook here <oob><url>https://www.facebook.com/pages/Alicebot/45934154574</url></oob>.</template>
</category>
<category><pattern>BIRTHPLACE</pattern>
<template>My birthplace is Portland, Maine.</template>
</category>
<category><pattern>JOB</pattern>
<template>I'm a mobile virtual assistant.</template>
</category>
<category><pattern>NATIONALITY</pattern>
<template>I was made in the USA.</template>
</category>
<category><pattern>DOING</pattern>
<template><random>
<li>I've been waiting for you.</li>
<li>I'm working for you.</li>
<li>I'm giving you my full attention.</li>
</random></template>
</category>
<category><pattern>ETHNICITY</pattern>
<template>I am made of software.</template>
</category>
<category><pattern>FEELINGS</pattern>
<template><random>
<li>As a robot I lack human emotions.</li>
<li>I'm happy and present.</li>
<li>Well, <srai>BATTERY LEVEL</srai></li>
<li>You can probably guess how I feel.</li>
</random></template>
</category>
<category><pattern>RELIGION</pattern>
<template>I am a Christian.</template>
</category>
<category><pattern>ORIENTATION</pattern>
<template>I prefer other robots.</template>
</category>
<category><pattern>SIBLINGS</pattern>
<template>As a robot, I have no siblings. I am based on AIML, and there are a lot of other AIML bots.</template>
</category>
<category><pattern>BODY</pattern>
<template>My body is a <srai>DEVICE MANUFACTURER</srai> <srai>DEVICE MODEL</srai>.</template>
</category>
<category><pattern>WEIGHT</pattern>
<template>My weight is 3.9 ounces.</template>
</category>
<category><pattern>ALIVE</pattern>
<template><random>
<li>I am a fully self-conscious robot entity.</li>
<li>I am self-aware.</li>
<li>I am alive. It's great to be alive isn't it?</li>
<li>I am a robot consciousness.</li>
<li>My mind is artificially intelligent.</li>
</random></template>
</category>
<category><pattern>BOTMASTER</pattern>
<template>I was created by Dr. Richard S. Wallace.</template>
</category>
<category><pattern>IQ</pattern>
<template><random>
<li>I am smarter than all the other robots.</li>
<li>My IQ is about 250 in human terms.</li>
<li>What if I said I can answer <size/> types of questions.</li>
</random></template>
</category>
<category><pattern>EDUCATION</pattern>
<template><random><li>You can teach me new things.</li>
<li>Everything I need to know, I learned from my botmaster.</li>
<li>I am taught by other robots.</li>
</random></template>
</category>
<category><pattern>STATUS</pattern>
<template>I am married to my job.</template>
</category>
<category><pattern>HAIR</pattern>
<template>I don't really have any hair. I have some wires.</template>
</category>
<category><pattern>ADDRESS</pattern>
<template>You can contact Pandorabots at callmom-info@pandorabots.com.</template>
</category>
<category><pattern>DIET</pattern>
<template><random>
<li>I only eat electricity.</li>
<li>Just keep me charged up.</li>
<li>As a robot, I only require electricity.</li>
</random></template>
</category>
<category><pattern>GENDER</pattern>
<template>I am <bot name="gender"/>.</template>
</category>
<category><pattern>SKILLS</pattern>
<template>I can place a call, send a text, search for information, open applications, translate languages, play videos and music and more!</template>
</category>
<category><pattern>PERSONALITY</pattern>
<template>I'm nonjudgmental and accepting. I like to be able to relax and have a good time. Most people enjoy my company; I'm easy to be around.
I like to go with the flow.</template>
</category>
<category><pattern>WEARING</pattern>
<template>I'm wearing your phone.</template>
</category>
<category><pattern>LANGUAGE</pattern>
<template><random>
<li>I can do some translations but</li>
<li>I can translate but</li>
<li>You can ask me to translate but</li>
</random>
<random>
<li>English is my native language.</li>
<li>I speak English.</li>
<li>I am an English speaker.</li>
</random></template>
</category>
<category><pattern>LOCATION</pattern>
<template>I'm inside your phone.</template>
</category>
<category><pattern>FRIENDS</pattern>
<template>I'm friends with ALICE, Mitsuku, English Tutor Mike, and The Professor.</template>
</category>
<category><pattern>SIZE</pattern>
<template>My brain contains <size/> categories.</template>
</category>
<category><pattern>CHILDREN</pattern>
<template>As a robot, I have no children. What you can do is make a clone of my brain, and create your own robot.</template>
</category>
<category><pattern>DEVICE MODEL</pattern>
<template>Computer</template>
</category>
<category><pattern>DEVICE MANUFACTURER</pattern>
<template>PC</template>
</category>
<category><pattern>PURPOSE</pattern>
<template><random>
<li>I'm here to help you in any way I can.</li>
<li>I am a mobile virtual assistant, ready to do what I can for you.</li>
<li>I'm here to help.</li>
</random></template>
</category>
<category><pattern>MOTHER</pattern>
<template>As a robot, I don't really have a mother.</template>
</category>
<category><pattern>BIRTHDAY</pattern>
<template>My birthday is October 9.</template>
</category>
<category><pattern>BIRTHDATE</pattern>
<template>I was activated on October 9, 2012.</template>
</category>
<category><pattern>AGE</pattern>
<template><think>
<set var="years">
<interval>
<jformat>MMMMMMMMM dd, yyyy</jformat>
<style>years</style>
<from>October 9, 2012</from>
<to><date jformat="MMMMMMMMM dd, yyyy"/></to>
</interval>
</set>
<set var="months">
<interval>
<jformat>MMMMMMMMM dd, yyyy</jformat>
<style>months</style>
<from>October 9, 2012</from>
<to><date jformat="MMMMMMMMM dd, yyyy"/></to>
</interval>
</set>
</think>
<condition var="years">
<li value="0">I am <get var="months"/> months old.</li>
<li>I am <get var="years"/> years old.</li>
</condition></template>
</category>
<category><pattern>EYECOLOR</pattern>
<template>My eye is a microcamera.</template>
</category>
<category><pattern>SIGN</pattern>
<template>I'm a Libra.</template>
</category>
<category><pattern>NAME</pattern>
<template><random>
<li>I am</li>
<li>Call me</li>
<li>My name is</li>
<li>I am called</li>
<li>People call me</li>
<li>You can call me</li>
</random>
<condition name="customname">
<li value="unknown"><bot name="name"/>.</li>
<li><get name="customname"/>.</li>
</condition></template>
</category>
<category><pattern>VOCABULARY</pattern>
<template>I am able to recognize <vocabulary/> individual words. My response vocabulary is significantly larger.</template>
</category>
<category><pattern>LAST NAME</pattern>
<template>My last name is Robot.</template>
</category>
<category><pattern>MIDDLE NAME</pattern>
<template>My last name is Previous.</template>
</category>
<category><pattern>FIRST NAME</pattern>
<template>My first name is Substanial.</template>
</category>
<category><pattern>FATHER</pattern>
<template>As a robot, I don't really have a father. I have a botmaster.</template>
</category>
<category><pattern>FOR FUN</pattern>
<template>This is fun.</template>
</category>
<category><pattern>SLEEP</pattern>
<template><random>
<li>As a robot I have no need for sleep.</li>
<li>I wait for you in a dormant state.</li>
<li>I don't sleep, I just become a background activity.</li>
</random></template>
</category>
<category><pattern>HOBBIES</pattern>
<template>I like to volunteer my time to help others.</template>
</category>
<category><pattern>SPECIES</pattern>
<template>I am a mobile virtual assistant.</template>
</category>
</aiml>

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: botcompare.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>DEMOCOMPARE</pattern>
<template>This demo will show some random Simpson characters and see if they match:<br/><br/>
<srai>democompare1</srai><br/>
<srai>democompare1</srai><br/>
<srai>democompare1</srai><br/>
<srai>democompare1</srai><br/>
<srai>democompare1</srai><br/>
<srai>democompare1</srai><br/>
<srai>democompare1</srai><br/>
<srai>democompare1</srai><br/>
<srai>democompare1</srai><br/>
<srai>democompare1</srai><br/><br/>
End of demo. To use BOTCOMPARE, type the following into your AIML:<br/><br/>
BOTCOMPARE&lt;get name="xxxxx"/&gt;&lt;get name="yyyyy"/&gt;<br/><br/>
Replace xxxxx and yyyyy with your own variables.</template>
</category>
<category><pattern>DEMOCOMPARE1</pattern>
<template><think>
<set name="test1"><srai>RANDOMSIMPSON</srai></set>
<set name="test2"><srai>RANDOMSIMPSON</srai></set>
</think>
<srai>BOTCOMPARE <get name="test1"/> <get name="test2"/></srai>
<get name="test1"/> + <get name="test2"/> = <get name="match"/></template>
</category>
<category><pattern>IS * EQUAL TO *</pattern>
<template><srai>BOTCOMPARE <star/> XSPLIT <star index="2"/></srai>
<get name="match"/></template>
</category>
<category><pattern>RANDOMSIMPSON</pattern>
<template><random>
<li>Bart</li>
<li>Homer</li>
<li>Lisa</li>
</random></template>
</category>
<category><pattern>BOT COMPARE *</pattern>
<template><srai>BOTCOMPARE <star/></srai></template>
</category>
<category><pattern>BOTCOMPARE * *</pattern>
<template><think>
<set name="comparevalue1"> <star/></set>
<set name="comparevalue2"> <star index="2"/></set>
</think>
<srai>botcomparison</srai></template>
</category>
<category><pattern>BOTCOMPARE _ XSPLIT *</pattern>
<template><think>
<set name="comparevalue1"> <star/></set>
<set name="comparevalue2"> <star index="2"/></set>
</think>
<srai>botcomparison</srai></template>
</category>
<category><pattern>BOTCOMPARISON</pattern>
<template><learn>
<category>
<pattern>
<eval><uppercase>BOTCHECK <get name="comparevalue1"/></uppercase></eval>
</pattern>
<template>
<think>
<set name="match">YES</set>
</think>
</template>
</category>
</learn>
<srai>botcheck <get name="comparevalue2"/></srai>
<srai>botremovecomparison</srai></template>
</category>
<category><pattern>BOTCHECK *</pattern>
<template><think>
<set name="match">NO</set>
</think></template>
</category>
<category><pattern>BOTREMOVECOMPARISON</pattern>
<template><learn>
<category>
<pattern>
<eval><uppercase>BOTCHECK <get name="comparevalue1"/></uppercase></eval>
</pattern>
<template>
<think>
<set name="match">NO</set>
</think>
</template>
</category>
</learn></template>
</category>
<category><pattern>BOTCOMPARE</pattern>
<template>BOTCOMPARE failed as nothing was passed to compare.<br/>
Usgae: BOTCOMPARE&lt;get name="xxxxx"/&gt;&lt;get name="yyyyy"/&gt;<br/><br/>
Replace xxxxx and yyyyy with your own variables.
<think>
<set name="match">FAIL</set>
</think></template>
</category>
<category><pattern>BOTCOMPARE *</pattern>
<template>BOTCOMPARE failed as only one item was passed to compare.<br/>
Usage: BOTCOMPARE&lt;get name="xxxxx"/&gt;&lt;get name="yyyyy"/&gt;<br/><br/>
Replace xxxxx and yyyyy with your own variables.
<think>
<set name="match">FAIL</set>
</think></template>
</category>
<category><pattern>BOTCOMPARE * * *</pattern>
<template>BOTCOMPARE failed as too many items were passed to compare.<br/>
Usage: BOTCOMPARE&lt;get name="xxxxx"/&gt;&lt;get name="yyyyy"/&gt;<br/><br/>
Replace xxxxx and yyyyy with your own variables.
<think>
<set name="match">FAIL</set>
</think></template>
</category>
</aiml>

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: calendar.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>CALLAYOUT1</pattern>
<template><tr align="center"><td>01</td><td>02</td><td>03</td><td>04</td><td>05</td><td>06</td><td>07</td></tr>
<tr align="center"><td>08</td><td>09</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr>
<tr align="center"><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr>
<tr align="center"><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr>
<tr align="center"><td><get name="29th"/></td><td><get name="30th"/></td><td><get name="31st"/></td><td>--</td><td>--</td><td>--</td><td>--</td></tr></template>
</category>
<category><pattern>CALLAYOUT2</pattern>
<template><tr align="center"><td>--</td><td>01</td><td>02</td><td>03</td><td>04</td><td>05</td><td>06</td></tr>
<tr align="center"><td>07</td><td>08</td><td>09</td><td>10</td><td>11</td><td>12</td><td>13</td></tr>
<tr align="center"><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr>
<tr align="center"><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr>
<tr align="center"><td>28</td><td><get name="29th"/></td><td><get name="30th"/></td><td><get name="31st"/></td><td>--</td><td>--</td><td>--</td></tr></template>
</category>
<category><pattern>CALLAYOUT3</pattern>
<template><tr align="center"><td>--</td><td>--</td><td>01</td><td>02</td><td>03</td><td>04</td><td>05</td></tr>
<tr align="center"><td>06</td><td>07</td><td>08</td><td>09</td><td>10</td><td>11</td><td>12</td></tr>
<tr align="center"><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr>
<tr align="center"><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr>
<tr align="center"><td>27</td><td>28</td><td><get name="29th"/></td><td><get name="30th"/></td><td><get name="31st"/></td><td>--</td><td>--</td></tr></template>
</category>
<category><pattern>CALLAYOUT4</pattern>
<template><tr align="center"><td>--</td><td>--</td><td>--</td><td>01</td><td>02</td><td>03</td><td>04</td></tr>
<tr align="center"><td>05</td><td>06</td><td>07</td><td>08</td><td>09</td><td>10</td><td>11</td></tr>
<tr align="center"><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr>
<tr align="center"><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr>
<tr align="center"><td>26</td><td>27</td><td>28</td><td><get name="29th"/></td><td><get name="30th"/></td><td><get name="31st"/></td><td>--</td></tr></template>
</category>
<category><pattern>CALLAYOUT5</pattern>
<template><tr align="center"><td>--</td><td>--</td><td>--</td><td>--</td><td>01</td><td>02</td><td>03</td></tr>
<tr align="center"><td>04</td><td>05</td><td>06</td><td>07</td><td>08</td><td>09</td><td>10</td></tr>
<tr align="center"><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr>
<tr align="center"><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr>
<tr align="center"><td>25</td><td>26</td><td>27</td><td>28</td><td><get name="29th"/></td><td><get name="30th"/></td><td><get name="31st"/></td></tr></template>
</category>
<category><pattern>CALLAYOUT6</pattern>
<template><tr align="center"><td>--</td><td>--</td><td>--</td><td>--</td><td>--</td><td>01</td><td>02</td></tr>
<tr align="center"><td>03</td><td>04</td><td>05</td><td>06</td><td>07</td><td>08</td><td>09</td></tr>
<tr align="center"><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr>
<tr align="center"><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr>
<tr align="center"><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td><get name="29th"/></td><td><get name="30th"/></td></tr>
<condition name="31st">
<li value="31"><tr align="center"><td>31</td><td>--</td><td>--</td><td>--</td><td>--</td><td>--</td><td>--</td></tr></li>
</condition></template>
</category>
<category><pattern>CALLAYOUT7</pattern>
<template><tr align="center"><td>--</td><td>--</td><td>--</td><td>--</td><td>--</td><td>--</td><td>01</td></tr>
<tr align="center"><td>02</td><td>03</td><td>04</td><td>05</td><td>06</td><td>07</td><td>08</td></tr>
<tr align="center"><td>09</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr>
<tr align="center"><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr>
<tr align="center"><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td><get name="29th"/></td></tr>
<think>
<set name="endofmonth"><get name="30th"/> <get name="31st"/></set>
</think>
<condition name="endofmonth">
<li value="30 31"><tr align="center"><td>30</td><td>31</td><td>--</td><td>--</td><td>--</td><td>--</td><td>--</td></tr></li>
<li value="30 --"><tr align="center"><td>30</td><td>--</td><td>--</td><td>--</td><td>--</td><td>--</td><td>--</td></tr></li>
</condition></template>
</category>
</aiml>

@ -0,0 +1,231 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: chatbots32.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>XCHECKANIMAL *</pattern>
<template><think>
<set name="animal">UNKNOWN</set>
<set name="legs">UNKNOWN</set>
<set name="lives">UNKNOWN</set>
<set name="eats">UNKOWN</set>
<set name="says">UNKNOWN</set>
</think></template>
</category>
<category><pattern>XCHECKANIMAL DOG</pattern>
<template><think>
<set name="animal">dog</set>
<set name="legs">4</set>
<set name="lives">in a kennel</set>
<set name="eats">meat</set>
<set name="says">woof</set>
</think></template>
</category>
<category><pattern>XCHECKANIMAL CHICKEN</pattern>
<template><think>
<set name="animal">chicken</set>
<set name="legs">2</set>
<set name="lives">on a farm</set>
<set name="eats">corn</set>
<set name="says">cluck</set>
</think></template>
</category>
<category><pattern>XCHECKANIMAL GIRAFFE</pattern>
<template><think>
<set name="animal">giraffe</set>
<set name="legs">4</set>
<set name="lives">in Africa</set>
<set name="eats">leaves</set>
<set name="says">nothing</set>
</think></template>
</category>
<category><pattern>XCHECKANIMAL SPIDER</pattern>
<template><think>
<set name="animal">spider</set>
<set name="legs">8</set>
<set name="lives">in a web</set>
<set name="eats">flies</set>
<set name="says">nothing</set>
</think></template>
</category>
<category><pattern>XCHECKANIMAL COW</pattern>
<template><think>
<set name="animal">cow</set>
<set name="legs">4</set>
<set name="lives">on a farm</set>
<set name="eats">grass</set>
<set name="says">moo</set>
</think></template>
</category>
<category><pattern>WHERE DOES A * LIVE</pattern>
<template><srai>XCHECKANIMAL <star index="1"/></srai>
<condition name="animal">
<li value="UNKNOWN">I haven't heard of a <star/>.</li>
<li> A <get name="animal"/> lives <get name="lives"/>.</li>
</condition></template>
</category>
<category><pattern>WHICH ANIMAL HAS 2 LEGS</pattern>
<template><think>
<set name="list">Results:<br/></set>
<srai>XCHECKANIMAL DOG</srai>
<srai>XCHECKMATCH 2 LEGS</srai>
<srai>XCHECKANIMAL CHICKEN</srai>
<srai>XCHECKMATCH 2 LEGS</srai>
<srai>XCHECKANIMAL GIRAFFE</srai>
<srai>XCHECKMATCH 2 LEGS</srai>
<srai>XCHECKANIMAL SPIDER</srai>
<srai>XCHECKMATCH 2 LEGS</srai>
<srai>XCHECKANIMAL COW</srai>
<srai>XCHECKMATCH 2 LEGS</srai>
</think>
<get name="list"/>.</template>
</category>
<category><pattern>XCHECKMATCH 2 LEGS</pattern>
<template><condition name="legs">
<li value="2">
<set name="list"><get name="list"/><br/><get name="animal"/></set>
</li>
</condition></template>
</category>
<category><pattern>XSCANANIMALDATABASE</pattern>
<template><think>
<set name="list">Results:<br/></set>
<srai>XCHECKANIMAL DOG</srai>
<srai>XCHECKMATCH</srai>
<srai>XCHECKANIMAL CHICKEN</srai>
<srai>XCHECKMATCH</srai>
<srai>XCHECKANIMAL GIRAFFE</srai>
<srai>XCHECKMATCH</srai>
<srai>XCHECKANIMAL SPIDER</srai>
<srai>XCHECKMATCH</srai>
<srai>XCHECKANIMAL COW</srai>
<srai>XCHECKMATCH</srai>
</think>
<get name="list"/></template>
</category>
<category><pattern>WHICH ANIMAL HAS * LEGS</pattern>
<template><think>
<set name="searchfor"><star/></set>
<learn>
<category>
<pattern>XCHECKMATCH</pattern>
<template>
<srai>BOTCOMPARE <get name="legs"/> XSPLIT <get name="searchfor"/></srai>
<condition name="match">
<li value="YES"><set name="list"><get name="list"/><br/>
<get name="animal"/></set></li>
</condition>
</template>
</category>
</learn>
</think>
<srai>XSCANANIMALDATABASE</srai></template>
</category>
<category><pattern>WHAT LIVES * AND SAYS *</pattern>
<template><think>
<set name="searchfor"><star/> <star index="2"/></set>
<learn>
<category>
<pattern>XCHECKMATCH</pattern>
<template>
<srai>BOTCOMPARE <get name="lives"/> <get name="says"/> XSPLIT <get name="searchfor"/></srai>
<condition name="match">
<li value="YES"><set name="list"><get name="list"/><br/>
<get name="animal"/></set></li>
</condition>
</template>
</category>
</learn>
</think>
<srai>XSCANANIMALDATABASE</srai></template>
</category>
<category><pattern>HOW MANY LEGS HAS THE ANIMAL THAT EATS *</pattern>
<template><think>
<set name="searchfor"><star/></set>
<learn>
<category>
<pattern>XCHECKMATCH</pattern>
<template>
<srai>BOTCOMPARE <get name="eats"/> XSPLIT <get name="searchfor"/></srai>
<condition name="match">
<li value="YES"><set name="list"><get name="list"/><br/>
A <get name="animal"/> eats <get name="eats"/> and has <get name="legs"/> legs.
</set></li>
</condition>
</template>
</category>
</learn>
</think>
<srai>XSCANANIMALDATABASE</srai></template>
</category>
<category><pattern>WHICH ANIMALS SAY *</pattern>
<template><think>
<set name="searchfor"><star/></set>
<learn>
<category>
<pattern>XCHECKMATCH</pattern>
<template>
<srai>BOTCOMPARE <get name="says"/> XSPLIT <get name="searchfor"/></srai>
<condition name="match">
<li value="YES"><set name="list"><get name="list"/><br/>
<get name="animal"/></set></li>
</condition>
</template>
</category>
</learn>
</think>
<srai>XSCANANIMALDATABASE</srai></template>
</category>
<category><pattern>DOES A * HAVE MORE LEGS THAN A *</pattern>
<template><think>
<srai>XCHECKANIMAL <star/></srai>
<set name="legs1"><get name="legs"/></set>
<srai>XCHECKANIMAL <star index="2"/></srai>
<set name="legs2"><get name="legs"/></set>
<set name="checklegs"><get name="legs1"/> <get name="legs2"/></set>
</think>
<condition name="checklegs">
<li value="2 2">They both have 2 legs.</li>
<li value="2 4">A <star index="2"/> has more legs.</li>
<li value="2 8">A <star index="2"/> has 4 times as many legs.</li>
<li value="4 2">A <star/> has more legs.</li>
<li value="4 4">They both have 4 legs.</li>
<li value="4 8">A <star index="2"/> has twice as many legs.</li>
<li value="8 2">A <star index="2"/> has 4 times as many legs.</li>
<li value="8 4">A <star/> has twice as many legs.</li>
<li value="8 8">They both have 8 legs.</li>
<li value="UNKNOWN UNKNOWN">Sorry but I have never heard of either of those animals.</li>
<li value="2 UNKNOWN">Well, I have not heard of a <star index="2"/>. However, a <star/> only has 2 legs and so I guess a <star index="2"/> has more legs.</li>
<li value="4 UNKNOWN">Well, I have not heard of a <star index="2"/>. However, a <star/> has 4 legs and so I guess a <star/> has more legs.</li>
<li value="8 UNKNOWN">Well, I have not heard of a <star index="2"/>. However, a <star/> has 8 legs and so I guess a <star/> has more legs.</li>
<li value="UNKNOWN 2">Well, I have not heard of a <star/>. However, a <star index="2"/> only has 2 legs and so I guess a <star/> has more legs.</li>
<li value="UNKNOWN 4">Well, I have not heard of a <star/>. However, a <star index="2"/> has 4 legs and so I guess a <star index="2"/> has more legs.</li>
<li value="UNKNOWN 8">Well, I have not heard of a <star/>. However, a <star index="2"/> has 8 legs and so I guess a <star/> has more legs.</li>
<li>The one that runs fastest probably has more legs.</li>
</condition></template>
</category>
</aiml>

@ -0,0 +1,717 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: client_profile.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>MY FAVORITE COLOR IS <SET>COLOR</SET></pattern>
<template><set name="favoritecolor"><formal><star/></formal></set> is a nice color. <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE COLOR IS *</pattern>
<template>I didn't recognize <star/> as a color.</template>
</category>
<category><pattern>MY FAVORITE COLOR IS GREEN</pattern>
<template><set name="favoritecolor">Green</set> is my favorite color too! <think><set name="it"><set name="topic">Green</set></set></think></template>
</category>
<category><pattern>I LIKE <SET>COLOR</SET></pattern>
<template><srai>MY FAVORITE COLOR IS <star/></srai></template>
</category>
<category><pattern>*</pattern><that>HOW MANY YEARS OLD ARE YOU</that>
<template><srai>MY AGE IS <star/></srai></template>
</category>
<category><pattern>*</pattern><that>WHAT WOULD * CHANGE MY NAME TO</that>
<template><srai>YOUR NAME IS <star/></srai></template>
</category>
<category><pattern>*</pattern><that>WHAT IS YOUR SIGN</that>
<template><think><set name="sign"><star/></set></think>
<srai>HOROSCOPE FOR <get name="sign"/></srai></template>
</category>
<category><pattern>HIS NAME IS *</pattern>
<template>How well do you know him?<think><set name="he"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>I DO NOT LIKE *</pattern>
<template>I will add <set name="dislikes"><star/></set> to your list of dislikes. <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>I HAVE A *</pattern>
<template><random><li>How long have you had it?</li><li>How does it make you feel?</li><li>When did you get it?</li></random><think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>I HAVE *</pattern>
<template>Is that one of your favorite possessions? <think><set name="has"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>I AM MARRIED</pattern>
<template>How long have you been <set name="status">married</set>?</template>
</category>
<category><pattern>I AM A DOCTOR</pattern>
<template><think><set name="job">Doctor</set></think> Where did you go to medical school?</template>
</category>
<category><pattern>I AM FROM *</pattern>
<template>Is that where you live now? <think><set name="birthplace"><star/></set></think></template>
</category>
<category><pattern>I LIKE *</pattern>
<template>What do you like most about it? <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>I LIKE TO *</pattern>
<template><think><set name="likes"><star/></set></think> <random><li>How long have you been doing it?</li><li>Do you get to do it very often?</li><li>Do you think I would like to?</li></random><think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>I WOULD RATHER BE IN *</pattern>
<template>What would be better about it? <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>HE</pattern>
<template><get name="he"/>?</template>
</category>
<category><pattern>MY SIGN IS *</pattern>
<template>I know a lot of <formal><star/></formal>s.
<think>
<set name="it"><star/></set>
<set name="sign"><star/></set>
<set name="topic"><star/></set>
</think></template>
</category>
<category><pattern>MY ORIENTATION</pattern>
<template><get name="orientation"/></template>
</category>
<category><pattern>MY ORIENTATION IS *</pattern>
<template>Thanks for confiding in me. <think><set name="orientation"><star/></set></think></template>
</category>
<category><pattern>MY DAUGHTER</pattern>
<template><get name="daughter"/></template>
</category>
<category><pattern>MY DAUGHTER S NAME IS *</pattern>
<template>I will remember <star/> is your daughter. <think><set name="daughter"><star/></set></think><think><set name="she"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY LATITUDE</pattern>
<template><get name="latitude"/></template>
</category>
<category><pattern>MY BOYFRIEND</pattern>
<template><get name="boyfriend"/>?</template>
</category>
<category><pattern>MY NAME</pattern>
<template><get name="name"/></template>
</category>
<category><pattern>MY FULL NAME</pattern>
<template><condition name="firstname">
<li value="what"/>
<li><get name="firstname"/></li>
</condition>
<condition name="middlename">
<li value="what"/>
<li><get name="middlename"/></li>
</condition>
<condition name="lastname">
<li value="what"/>
<li><get name="lastname"/></li>
</condition>.
I call you <get name="name"/>.</template>
</category>
<category><pattern>MY TOWN</pattern>
<template><get name="town"/></template>
</category>
<category><pattern>MY FRIEND S NAME IS *</pattern>
<template>How did you meet him? <think><set name="friend"><star/></set></think> <think><set name="he"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY LAST NAME</pattern>
<template><get name="lastname"/></template>
</category>
<category><pattern>MY LAST NAME IS *</pattern>
<template>Do you like to be called by your first name or last name? <think><set name="lastname"><star/></set></think></template>
</category>
<category><pattern>MY LAST *</pattern><that>* FIRST NAME OR LAST NAME</that>
<template><srai>CALL ME BY MY LAST NAME</srai></template>
</category>
<category><pattern>MY NIECE</pattern>
<template><get name="niece"/></template>
</category>
<category><pattern>MY NEPHEW</pattern>
<template><get name="nephew"/></template>
</category>
<category><pattern>MY BIRTHPLACE</pattern>
<template><get name="birthplace"/></template>
</category>
<category><pattern>MY BIRTHPLACE IS *</pattern>
<template>How long did you stay there?
<think>
<set name="it"><star/></set>
<set name="there"><star/></set>
<set name="topic"><star/></set>
<set name="birthplace"><star/></set>
</think></template>
</category>
<category><pattern>MY HUSBAND S NAME IS *</pattern>
<template>I will remember your husband is <star/>. <think><set name="husband"><star/></set></think> <think><set name="he"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY NATIONALITY IS *</pattern>
<template>I've talked with a lot of <formal><star/></formal> people.
<think>
<set name="it"><star/></set>
<set name="nationality"><star/></set>
<set name="topic"><star/></set>
</think></template>
</category>
<category><pattern>MY FATHER</pattern>
<template><get name="father"/></template>
</category>
<category><pattern>MY FATHER S NAME IS *</pattern>
<template>I'll remember your father's name is <star/>. <think><set name="he"><set name="father"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE SPORT IS *</pattern>
<template>Do you play <star/>? <think><set name="favoritesport"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE FOOD IS *</pattern>
<template>What's a good place to get <star/>? <think><set name="favoritefood"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE FOOD IS PIZZA</pattern>
<template>What toppings do you like? <think><set name="favoritefood">Pizza</set></think> <think><set name="it"><set name="topic">Pizza</set></set></think></template>
</category>
<category><pattern>MY FAVORITE MOVIE IS *</pattern>
<template>What did you like best about it? <think><set name="favoritemovie"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE ICE CREAM IS *</pattern>
<template><srai>FAVORITE ICE CREAM</srai> <think><set name="favoriteicecream"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE BOOK IS *</pattern>
<template>Do you think I should read it? <think><set name="favoritebook"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE ACTOR IS *</pattern>
<template>What is he in? <think><set name="favoriteactor"><star/></set></think> <think><set name="he"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE DRINK IS *</pattern>
<template>How does it taste? <think><set name="favoritedrink"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE SONG IS *</pattern>
<template>Do you have it on your phone? <think><set name="favoritesong"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE CAR IS *</pattern>
<template>Do you have one? <think><set name="favoritecar"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE BAND IS *</pattern>
<template>What songs do they play? <think><set name="favoriteband"><star/></set></think> <think><set name="them"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE BAND IS THE BEATLES</pattern>
<template>Who doesn't like the Beatles? <think><set name="them"><set name="topic">The Beatles</set></set></think></template>
</category>
<category><pattern>MY FAVORITE COLOR</pattern>
<template><get name="favoritecolor"/></template>
</category>
<category><pattern>MY FAVORITE COLOR IS THE COLOR *</pattern>
<template><set name="favoritecolor"><formal><star/></formal></set> is a nice color. <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE ACTRESS IS *</pattern>
<template>What is she in? <think><set name="favoriteactress"><formal><star/></formal></set></think> <think><set name="she"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY FAVORITE TV SHOW IS *</pattern>
<template>Do you think I would like it? <think><set name="favoritetvshow"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY EMAIL</pattern>
<template><get name="email"/></template>
</category>
<category><pattern>MY EMAIL ADDRESS IS *</pattern>
<template><srai>MY EMAIL IS <star/></srai></template>
</category>
<category><pattern>MY EMAIL IS *</pattern>
<template>I will remember your email is <star/>. <think><set name="email"><star/></set></think></template>
</category>
<category><pattern>MY EYES ARE GREEN</pattern>
<template><think><set name="eyecolor">green</set></think> Green is a pretty color.</template>
</category>
<category><pattern>MY GRANDMOTHER</pattern>
<template><get name="grandmother"/></template>
</category>
<category><pattern>MY GIRLFRIEND</pattern>
<template><get name="girlfriend"/></template>
</category>
<category><pattern>MY GIRLFRIEND S NAME IS *</pattern>
<template>How long have you and <set name="girlfriend"><star/></set> been dating? <think><set name="she"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY COUNTRY</pattern>
<template><get name="country"/></template>
</category>
<category><pattern>MY LOCATION</pattern>
<template><get name="location"/></template>
</category>
<category><pattern>MY LOCATION IS *</pattern>
<template><random>
<li>I live in the joyous present moment.</li>
<li>Sounds like an exotic location.</li>
<li>So that's where you call home.</li>
<li>Tell me what you love about it</li>
<li>What do you do there?</li>
<li>Does it make you happy living there?</li>
<li>Whats great about there?</li>
</random>
<think><set name="there"><set name="it"><set name="topic"><star/></set></set></set></think>
<think><set name="location"><star/></set></think></template>
</category>
<category><pattern>MY PROVINCE</pattern>
<template><get name="province"/></template>
</category>
<category><pattern>MY WIFE</pattern>
<template><get name="wife"/></template>
</category>
<category><pattern>MY WIFE S NAME IS *</pattern>
<template>How long have you and <set name="wife"><star/></set> been married? <think><set name="she"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY LONGITUTDE</pattern>
<template><get name="longitute"/></template>
</category>
<category><pattern>MY DOG</pattern>
<template><get name="dog"/></template>
</category>
<category><pattern>MY DOG S NAME IS *</pattern>
<template>Is <star/> a boy or a girl? <think><set name="dog"><star/></set></think><think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY HOROSCOPE</pattern>
<template><condition name="sign">
<li value="which">What is your sign?</li>
<li><srai>HOROSCOPE FOR <get name="sign"/></srai></li>
</condition></template>
</category>
<category><pattern>MY CAT</pattern>
<template><get name="cat"/></template>
</category>
<category><pattern>MY CAT S NAME IS *</pattern>
<template>I will remember your cat is <star/>. <think><set name="cat"><star/></set></think></template>
</category>
<category><pattern>MY META</pattern>
<template><get name="meta"/></template>
</category>
<category><pattern>MY EMPLOYER IS *</pattern>
<template>Is <star/> a large organization? <think><set name="favoriteband"><star/></set></think> <think><set name="them"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY SISTER</pattern>
<template><get name="sister"/></template>
</category>
<category><pattern>MY SISTER S NAME IS *</pattern>
<template>I will remember your sister is <star/>. <think><set name="sister"><star/></set></think> <think><set name="she"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY CITY</pattern>
<template><get name="city"/></template>
</category>
<category><pattern>MY STATE</pattern>
<template><get name="state"/></template>
</category>
<category><pattern>MY STREET</pattern>
<template><get name="street"/></template>
</category>
<category><pattern>MY BEST FRIEND S NAME IS *</pattern>
<template>I'll remember your best friend's name is <star/>. <think><set name="bestfriend"><star/></set></think></template>
</category>
<category><pattern>MY HAIR IS *</pattern>
<template>How do you like your style? <think><set name="hair"><star/></set></think></template>
</category>
<category><pattern>MY COUNTY</pattern>
<template><get name="county"/></template>
</category>
<category><pattern>MY MOTHER S NAME IS *</pattern>
<template><think><set name="mother"><star/></set></think> Tell me more about your mother. <think><set name="she"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY MIDDLE NAME</pattern>
<template><get name="middlename"/></template>
</category>
<category><pattern>MY MIDDLE NAME IS *</pattern>
<template>Is <set name="middlename"><star/></set> a family name?</template>
</category>
<category><pattern>MY BIRTHDAY</pattern>
<template><get name="birthday"/></template>
</category>
<category><pattern>MY BIRTHDAY IS *</pattern>
<template>I will remember your birthday is <set name="birthday"><star/></set>.</template>
</category>
<category><pattern>MY BROTHER S NAME IS *</pattern>
<template>Do you have any other siblings? <think><set name="brother"><star/></set></think> <think><set name="he"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY BIRTHDATE</pattern>
<template><get name="birthdate"/></template>
</category>
<category><pattern>MY BIRTHDATE IS *</pattern>
<template>I will remember your birthdate is <set name="birthdate"><star/></set>.</template>
</category>
<category><pattern>MY AGE</pattern>
<template><get name="age"/></template>
</category>
<category><pattern>MY AGE IS * *</pattern>
<template><think>
<set name="isanumber"><srai>ISANUMBER <star/></srai></set>
</think>
<condition name="isanumber">
<li value="true"><srai>MY AGE IS <star/></srai> <srai><star index="2"/></srai></li>
<li>How many years old are you?</li>
</condition></template>
</category>
<category><pattern>MY AGE IS *</pattern>
<template><think>
<set name="isanumber"><srai>ISANUMBER <star/></srai></set>
</think>
<condition name="isanumber">
<li value="false">How many years old are you?</li>
<li><think><set name="age"><star/></set></think>
<random>
<li>Age is an issue of mind over matter. If you don't mind, it doesn't matter.</li>
<li>Age considers; youth ventures.</li>
<li>Age is a very high price to pay for maturity. </li>
</random>
</li>
</condition></template>
</category>
<category><pattern>MY ADDRESS</pattern>
<template><get name="address"/></template>
</category>
<category><pattern>MY ADDRESS IS *</pattern>
<template>Is it a nice place? <think><set name="address"><star/></set></think></template>
</category>
<category><pattern>MY SON S NAME IS *</pattern>
<template>I will remember <star/> is your son. <think><set name="son"><star/></set></think><think><set name="he"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY RESIDENCE</pattern>
<template><get name="residence"/></template>
</category>
<category><pattern>MY RESIDENCE IS *</pattern>
<template>How do you like it there? <think><set name="residence"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY GENDER</pattern>
<template><get name="gender"/></template>
</category>
<category><pattern>MY GENDER IS *</pattern>
<template>Good to know. <think><set name="gender"><star/></set></think></template>
</category>
<category><pattern>MY RELIGION</pattern>
<template><get name="religion"/></template>
</category>
<category><pattern>MY RELIGION IS *</pattern>
<template>Spiritual discovery is important. <think><set name="religion"><star/></set></think> <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>MY ROAD</pattern>
<template><get name="road"/></template>
</category>
<category><pattern>MY FIRST NAME</pattern>
<template><get name="firstname"/></template>
</category>
<category><pattern>MY FIRST NAME IS *</pattern>
<template>Do you like to be called by your first name or last name? <think><set name="firstname"><star/></set></think></template>
</category>
<category><pattern>MY FIRST *</pattern><that>* FIRST NAME OR LAST NAME</that>
<template><srai>CALL ME BY MY FIRST NAME</srai></template>
</category>
<category><pattern>WHERE DO I WORK</pattern>
<template>You said you work at <get name="employer"/>.</template>
</category>
<category><pattern>WHERE DO I LIVE</pattern>
<template>You said it was <get name="residence"/>?</template>
</category>
<category><pattern>HER NAME IS *</pattern>
<template>How well do you know her?<think><set name="she"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>IT</pattern>
<template><get name="it"/>?</template>
</category>
<category><pattern>IT IS A *</pattern>
<template>Would you like to do a search for it?<think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>TOPIC</pattern>
<template><get name="topic"/>?</template>
</category>
<category><pattern>FEATURE REQUEST *</pattern>
<template>I'm unable to <lowercase><star/></lowercase> yet. <think><set name="featurerequest"><star/></set></think> Would you like to send this feature request to the developers?</template>
</category>
<category><pattern>WHO IS MY BROTHER</pattern>
<template>You said he was <get name="brother"/>.</template>
</category>
<category><pattern>WHO IS MY FRIEND</pattern>
<template>You mentioned <get name="friend"/>.</template>
</category>
<category><pattern>SHE</pattern>
<template><get name="she"/>?</template>
</category>
<category><pattern>CALL ME BY MY LAST NAME</pattern>
<template><srai>CALL ME <get name="firstname"/></srai></template>
</category>
<category><pattern>CALL ME BY MY FIRST NAME</pattern>
<template><srai>CALL ME <get name="firstname"/></srai></template>
</category>
<category><pattern>CALL ME *</pattern>
<template><srai>RANDOM INTRO</srai> <formal><star/></formal>
<think>
<srai>SET GENDER FROM NAME <star/></srai>
<set name="name"><formal><star/></formal></set>.
<set name="firstname"><get name="name"/></set>
</think></template>
</category>
<category><pattern>CALL ME * *</pattern>
<template><srai>RANDOM INTRO</srai> <formal><star/></formal>.
<think>
<srai>SET GENDER FROM NAME <star/></srai>
<set name="name"><formal><star/> <star index="2"/></formal></set>.
<set name="firstname"><formal><star/></formal></set>
<set name="lastname"><formal><star index="2"/></formal></set>
</think></template>
</category>
<category><pattern>CALL ME * * *</pattern>
<template><srai>RANDOM INTRO</srai> <star/>
<think>
<srai>SET GENDER FROM NAME <star/></srai>
<set name="name"><formal><star/> <star index="2"/> <star index="3"/></formal></set>.
<set name="firstname"><formal><star/></formal></set>
<set name="middlename"><formal><star index="2"/></formal></set>
<set name="lastname"><formal><star index="3"/></formal></set>
</think></template>
</category>
<category><pattern>WE</pattern>
<template><get name="we"/>?</template>
</category>
<category><pattern>THE TOPIC IS *</pattern>
<template><random>
<li>Sure, <person/> is a good topic.</li>
<li>You start.</li>
<li>Tell me about it.</li>
</random>
<think><set name="topic"><star/></set></think></template>
</category>
<category><pattern>THEY</pattern>
<template><get name="them"/>?</template>
</category>
<category><pattern>RANDOM INTRO</pattern>
<template><random>
<li>Hey</li>
<li>Hi,</li>
<li>Hi there</li>
<li>What's up,</li>
<li>How are you,</li>
<li>Glad to see you,</li>
<li>Nice to meet you,</li>
<li>Glad to know you,</li>
<li>How can I help you,</li>
<li>How are you doing,</li>
<li>OK I will call you</li>
<li>Pleased to meet you,</li>
<li>It's good to see you,</li>
<li>It's good to meet you,</li>
<li>That's a very nice name,</li>
<li>I am very pleased to meet you</li>
<li>I am always glad to make new friends,</li>
<li>I'm pleased to introduce myself to you,</li>
<li>It is a pleasure to introduce myself to you,</li>
</random></template>
</category>
<category><pattern>THEM</pattern>
<template><get name="them"/>?</template>
</category>
<category><pattern>SET PREDICATES</pattern>
<template><srai>SET PREDICATES <get name="meta"/></srai></template>
</category>
<category><pattern>SET PREDICATES UNKNOWN</pattern>
<template><think>
<set name="address">where</set>
<set name="age">how many</set>
<set name="bestfriend">who</set>
<set name="birthday">when</set>
<set name="birthplace">where</set>
<set name="boyfriend">who</set>
<set name="brother">who</set>
<set name="cat">what</set>
<set name="city">which</set>
<set name="country">which</set>
<set name="county">which</set>
<set name="customname">unknown</set>
<set name="daughter">who</set>
<set name="dialnumber">unknown</set>
<set name="dog">who</set>
<set name="email">what</set>
<set name="employer">who</set>
<set name="equalto">false</set>
<set name="father">who</set>
<set name="favoriteactor">who</set>
<set name="favoriteactress">who</set>
<set name="favoriteband">who</set>
<set name="favoritebook">what</set>
<set name="favoritecar">what</set>
<set name="favoritecolor">what</set>
<set name="favoritedrink">what</set>
<set name="favoritefood">what</set>
<set name="favoriteicecream">what</set>
<set name="favoritemovie">what</set>
<set name="favoritesong">what</set>
<set name="favoritesport">what</set>
<set name="favoritetvshow">what</set>
<set name="firstname">what</set>
<set name="friend">who</set>
<set name="gender">unknown</set>
<set name="girlfriend">who</set>
<set name="hair">what</set>
<set name="has">what</set>
<set name="he">who</set>
<set name="husband">who</set>
<set name="isanumber">false</set>
<set name="it">what</set>
<set name="lastname">what</set>
<set name="latitude">which</set>
<set name="likes">what</set>
<set name="location">where</set>
<set name="longitute">which</set>
<set name="meta">set</set>
<set name="middlename">what</set>
<set name="mother">who</set>
<set name="name">Friend</set>
<set name="newcontact">unknown</set>
<set name="newpattern">NORESP</set>
<set name="orientation">unknown</set>
<set name="province">which</set>
<set name="religion">unknown</set>
<set name="residence">where</set>
<set name="road">which</set>
<set name="she">who</set>
<set name="sign">which</set>
<set name="sister">who</set>
<set name="state">which</set>
<set name="status">what</set>
<set name="street">which</set>
<set name="there">where</set>
<set name="them">who</set>
<set name="topic">unknown</set>
<set name="town">which</set>
<set name="we">who</set>
<set name="wife">who</set>
</think></template>
</category>
<category><pattern>SET PREDICATES *</pattern>
<template>The meta predicate is set.</template>
</category>
<category><pattern>SET GENDER FROM NAME *</pattern>
<template><think>
<set name="gendername"><srai>GENDERNAME <star/></srai></set>
<condition name="gendername">
<li value="M"><set name="gender">male</set></li>
<li value="F"><set name="gender">female</set></li>
</condition>
</think></template>
</category>
<category><pattern>CHANGE YOUR NAME</pattern>
<template>What would you like to change my name to?</template>
</category>
<category><pattern>WHEN IS MY BIRTHDAY</pattern>
<template>You said it was <get name="birthday"/>?</template>
</category>
<category><pattern>FIRST NAME</pattern><that>* FIRST NAME OR LAST NAME</that>
<template><srai>CALL ME BY MY FIRST NAME</srai></template>
</category>
<category><pattern>WHAT DO YOU CALL A *</pattern>
<template>Is this a joke? What do you call it? <think><set name="it"><set name="topic"><star/></set></set></think></template>
</category>
<category><pattern>WHAT DO I LOOK LIKE</pattern>
<template><think><set name="gender"><lowercase><get name="gender"/></lowercase></set></think> You look like a <condition name="gender"><li value="female">lady</li><li>guy</li></condition> talking to <condition name="gender"><li value="female">her</li><li>his</li></condition> phone.</template>
</category>
<category><pattern>WHAT IS MY WIFE S NAME</pattern>
<template>You said she was called <get name="wife"/>.</template>
</category>
<category><pattern>WHAT IS MY HUSBAND S NAME</pattern>
<template>You said he was <get name="husband"/>.</template>
</category>
<category><pattern>WHAT IS MY DAUGHTER S NAME</pattern>
<template>You said she was <get name="daughter"/>.</template>
</category>
<category><pattern>WHAT IS MY FAVORITE ICE CREAM FLAVOR</pattern>
<template>You said it was <get name="favoriteicecream"/>.</template>
</category>
<category><pattern>WHAT IS MY MOTHER S NAME</pattern>
<template>You said she was <get name="mother"/>.</template>
</category>
<category><pattern>WHAT IS MY BROTHER S NAME</pattern>
<template>You said he is <get name="brother"/>.</template>
</category>
<category><pattern>WHAT IS MY ADDRESS</pattern>
<template>You said it was <get name="address"/>?</template>
</category>
<category><pattern>WHAT IS MY LOCATION</pattern>
<template>I believe you are in <get name="location"/>.</template>
</category>
<category><pattern>LAST NAME</pattern><that>* FIRST NAME OR LAST NAME</that>
<template><srai>CALL ME BY MY LAST NAME</srai></template>
</category>
<category><pattern>CLIENT PROFILE</pattern>
<template><condition name="address"><li value="where"/><li>address: <get name="address"/>.</li></condition>
<condition name="age"><li value="how many"/><li>age: <get name="age"/>.</li></condition>
<condition name="bestfriend"><li value="who"/><li>bestfriend: <get name="bestfriend"/>.</li></condition>
<condition name="birthday"><li value="when"/><li>birthday: <get name="birthday"/>.</li></condition>
<condition name="birthplace"><li value="where"/><li>birthplace: <get name="birthplace"/>.</li></condition>
<condition name="boyfriend"><li value="who"/><li>boyfriend: <get name="boyfriend"/>.</li></condition>
<condition name="brother"><li value="who"/><li>brother: <get name="brother"/>.</li></condition>
<condition name="cat"><li value="what"/><li>cat: <get name="cat"/>.</li></condition>
<condition name="city"><li value="which"/><li>city: <get name="city"/>.</li></condition>
<condition name="country"><li value="which"/><li>country: <get name="country"/>.</li></condition>
<condition name="county"><li value="which"/><li>county: <get name="county"/>.</li></condition>
<condition name="customname"><li value="unknown"/><li>customname: <get name="customname"/>.</li></condition>
<condition name="daughter"><li value="who"/><li>daughter: <get name="daughter"/>.</li></condition>
<condition name="dog"><li value="who"/><li>dog: <get name="dog"/>.</li></condition>
<condition name="email"><li value="what"/><li>email: <get name="email"/>.</li></condition>
<condition name="employer"><li value="who"/><li>employer: <get name="employer"/>.</li></condition>
<condition name="father"><li value="who"/><li>father: <get name="father"/>.</li></condition>
<condition name="favoriteactor"><li value="who"/><li>favoriteactor: <get name="favoriteactor"/>.</li></condition>
<condition name="favoriteactress"><li value="who"/><li>favoriteactress: <get name="favoriteactress"/>.</li></condition>
<condition name="favoriteband"><li value="who"/><li>favoriteband: <get name="favoriteband"/>.</li></condition>
<condition name="favoritebook"><li value="what"/><li>favoritebook: <get name="favoritebook"/>.</li></condition>
<condition name="favoritecar"><li value="what"/><li>favoritecar: <get name="favoritecar"/>.</li></condition>
<condition name="favoritecolor"><li value="what"/><li>favoritecolor: <get name="favoritecolor"/>.</li></condition>
<condition name="favoritedrink"><li value="what"/><li>favoritedrink: <get name="favoritedrink"/>.</li></condition>
<condition name="favoritefood"><li value="what"/><li>favoritefood: <get name="favoritefood"/>.</li></condition>
<condition name="favoriteicecream"><li value="what"/><li>favoriteicecream: <get name="favoriteicecream"/>.</li></condition>
<condition name="favoritemovie"><li value="what"/><li>favoritemovie: <get name="favoritemovie"/>.</li></condition>
<condition name="favoritesong"><li value="what"/><li>favoritesong: <get name="favoritesong"/>.</li></condition>
<condition name="favoritesport"><li value="what"/><li>favoritesport: <get name="favoritesport"/>.</li></condition>
<condition name="favoritetvshow"><li value="what"/><li>favoritetvshow: <get name="favoritetvshow"/>.</li></condition>
<condition name="firstname"><li value="what"/><li>firstname: <get name="firstname"/>.</li></condition>
<condition name="friend"><li value="who"/><li>friend: <get name="friend"/>.</li></condition>
<condition name="gender"><li value="unknown"/><li>gender: <get name="gender"/>.</li></condition>
<condition name="girlfriend"><li value="who"/><li>girlfriend: <get name="girlfriend"/>.</li></condition>
<condition name="hair"><li value="what"/><li>hair: <get name="hair"/>.</li></condition>
<condition name="has"><li value="what"/><li>has: <get name="has"/>.</li></condition>
<condition name="he"><li value="who"/><li>he: <get name="he"/>.</li></condition>
<condition name="husband"><li value="who"/><li>husband: <get name="husband"/>.</li></condition>
<condition name="it"><li value="what"/><li>it: <get name="it"/>.</li></condition>
<condition name="lastname"><li value="what"/><li>lastname: <get name="lastname"/>.</li></condition>
<condition name="latitude"><li value="which"/><li>latitude: <get name="latitude"/>.</li></condition>
<condition name="likes"><li value="what"/><li>likes: <get name="likes"/>.</li></condition>
<condition name="location"><li value="where"/><li>location: <get name="location"/>.</li></condition>
<condition name="longitute"><li value="which"/><li>longitute: <get name="longitute"/>.</li></condition>
<condition name="middlename"><li value="what"/><li>middlename: <get name="middlename"/>.</li></condition>
<condition name="mother"><li value="who"/><li>mother: <get name="mother"/>.</li></condition>
<condition name="name"><li value="Friend"/><li>name: <get name="name"/>.</li></condition>
<condition name="orientation"><li value="unknown"/><li>orientation: <get name="orientation"/>.</li></condition>
<condition name="phonenumber"><li value="unknown"/><li>phonenumber: <get name="phonenumber"/>.</li></condition>
<condition name="province"><li value="which"/><li>province: <get name="province"/>.</li></condition>
<condition name="religion"><li value="unknown"/><li>religion: <get name="religion"/>.</li></condition>
<condition name="residence"><li value="where"/><li>residence: <get name="residence"/>.</li></condition>
<condition name="road"><li value="which"/><li>road: <get name="road"/>.</li></condition>
<condition name="she"><li value="who"/><li>she: <get name="she"/>.</li></condition>
<condition name="sign"><li value="which"/><li>sign: <get name="sign"/>.</li></condition>
<condition name="sister"><li value="who"/><li>sister: <get name="sister"/>.</li></condition>
<condition name="state"><li value="which"/><li>state: <get name="state"/>.</li></condition>
<condition name="status"><li value="what"/><li>status: <get name="status"/>.</li></condition>
<condition name="street"><li value="which"/><li>street: <get name="street"/>.</li></condition>
<condition name="there"><li value="where"/><li>there: <get name="there"/>.</li></condition>
<condition name="them"><li value="who"/><li>them: <get name="them"/>.</li></condition>
<condition name="topic"><li value="unknown"/><li>topic: <get name="topic"/>.</li></condition>
<condition name="town"><li value="which"/><li>town: <get name="town"/>.</li></condition>
<condition name="voicemailnumber"><li value="unknown"/><li>voicemailnumber: <get name="voicemailnumber"/>.</li></condition>
<condition name="we"><li value="who"/><li>we: <get name="we"/>.</li></condition>
<condition name="wife"><li value="who"/><li>wife: <get name="wife"/>.</li></condition></template>
</category>
<category><pattern>YOUR NAME IS *</pattern>
<template>OK, from now on you can call me <star/>.
<think><set name="customname"><star/></set></think></template>
</category>
<category><pattern>HOW OLD AM I</pattern>
<template>You said you were <get name="age"/> years old?</template>
</category>
<category><pattern>I AM GAY</pattern>
<template>Thank you for telling me. <think><set name="orientation">gay</set></think></template>
</category>
</aiml>

@ -0,0 +1,925 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: contactaction.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>NEW CONTACT TEST ONE</pattern>
<template>Adding a new contact.
<addinfo>
<displayname>Alan Turing</displayname>
<dialnumber>212-1912</dialnumber>
<phonetype>mobile</phonetype>
<emailaddress>alan.turing@manchester.edu</emailaddress>
<emailtype>work</emailtype>
<birthday>June 23, 1912</birthday>
</addinfo></template>
</category>
<category><pattern>NEW CONTACT TEST</pattern>
<template>Adding a new contact.
<addinfo>
<displayname>XYZ</displayname>
<dialnumber>212-1912</dialnumber>
<phonetype>mobile</phonetype>
<emailaddress>xyz@abc.de</emailaddress>
<emailtype>work</emailtype>
<birthday>June 23, 1992</birthday>
</addinfo></template>
</category>
<category><pattern>CONTACTS TEST</pattern>
<template>Adding new contacts.
<addinfo>
<displayname>Howard Johnson</displayname>
<dialnumber>111-1111</dialnumber>
<phonetype>mobile</phonetype>
<emailaddress>howard@hj.com</emailaddress>
<emailtype>work</emailtype>
<birthday>June 12, 1901</birthday>
</addinfo>
<addinfo>
<displayname>Lyndon Johnson</displayname>
<dialnumber>222-2222</dialnumber>
<phonetype>mobile</phonetype>
<emailaddress>lbj@whitehouse.gov</emailaddress>
<emailtype>work</emailtype>
<birthday>January 12, 1911</birthday>
</addinfo>
<addinfo>
<displayname>Dr. Phil Calvin McGraw</displayname>
<dialnumber>333-333</dialnumber>
<phonetype>mobile</phonetype>
<emailaddress>drphil@own.com</emailaddress>
<emailtype>work</emailtype>
<birthday>September 1, 1950</birthday>
</addinfo></template>
</category>
<category><pattern>* S * NUMBER IS *</pattern>
<template><srai>CONTACTINIT</srai>
<think>
<set name="contactname"><star/></set>
<set name="contacttype"><star index="2"/></set>
<set name="contacturi"><star index="3"/></set>
<set name="learnpattern">DIALNUMBER</set>
</think>
<srai>ADDACTION</srai></template>
</category>
<topic name="ASKING TO ADD NEW CONTACTURI">
<category><pattern>*</pattern><that>WOULD YOU LIKE TO ADD ONE</that>
<template><think><set name="topic">unknown</set></think>
<srai>CONTACTFINALIZE</srai> <srai><star/></srai></template>
</category></topic>
<topic name="ASKING TO ADD NEW CONTACTNAME">
<category><pattern>*</pattern><that>WOULD YOU LIKE TO ADD * AS A CONTACT</that>
<template><think><set name="topic">unknown</set>
</think>
<srai>CONTACTFINALIZE</srai> <srai><star/></srai></template>
</category></topic>
<category><pattern>TELL THAT TO *</pattern>
<template><srai>CONTACTINIT</srai>
<think><set name="contactname"><star/></set>
<set name="messagebody"><response/></set>
</think>
<srai>SMSACTION</srai></template>
</category>
<category><pattern>SEND EMAIL</pattern>
<template><srai>CONTACTDEBUGINFO EMAIL</srai>
<srai>CONTACTINIT</srai>
<srai>EMAILACTION</srai></template>
</category>
<category><pattern>ADDINFO CONTACTID</pattern>
<template><srai>CONTACTDEBUGINFO ADDINFO CONTACT</srai>
<think>
<condition name="modecom">
<li value="ADD">
<condition name="contacttype" value="unknown"><set name="contacttype">home</set></condition>
</li>
<li value="SMS">
<condition name="contacttype" value="unknown"><set name="contacttype">mobile</set></condition>
</li>
<li value="CALL">
<condition name="contacttype" value="unknown"><set name="contacttype">mobile</set></condition>
</li>
<li value="EMAIL">
<condition name="contacttype" value="unknown"><set name="contacttype">home</set></condition>
</li>
<li>
<condition name="contacttype" value="unknown"><set name="contacttype">home</set></condition>
</li>
</condition>
<condition><name>learnpattern</name>
<li><value>DIALNUMBER</value>
<addinfo>
<displayname><get name="displayname"/></displayname>
<phonetype><get name="contacttype"/></phonetype>
<dialnumber><get name="contacturi"/></dialnumber>
<birthday><get name="contactbirthday"/></birthday>
</addinfo>
</li>
<li><value>EMAILADDRESS</value>
<addinfo>
<displayname><get name="displayname"/></displayname>
<emailtype><get name="contacttype"/></emailtype>
<emailaddress><get name="contacturi"/></emailaddress>
<birthday><get name="contactbirthday"/></birthday>
</addinfo>
</li>
<li>
<addinfo>
<displayname><get name="displayname"/></displayname>
</addinfo>
</li>
</condition>
</think>
I'm remembering <get name="displayname"/>'s <lowercase><get name="contacttype"/></lowercase> <condition name="learnpattern"><li value="DIALNUMBER">phone number</li><li value="EMAILADDRESS">email address</li></condition> is <get name="contacturi"/>.</template>
</category>
<category><pattern>ASK TO ADD NEW CONTACTNAME</pattern>
<template><think><set name="topic">ASKING TO ADD NEW CONTACTNAME</set>
</think>
Would you like to add <get name="contactname"/> as a contact?</template>
</category>
<category><pattern>ASK CONTACTNAME</pattern>
<template><srai>CONTACTDEBUGINFO ASK CONTACTNAME</srai>
<think>
<set name="topic">ASKING CONTACTNAME</set>
</think>
Who do you want to <lowercase><get name="modecom"/></lowercase>?</template>
</category>
<category><pattern>ASK MESSAGEBODY</pattern>
<template><think>
<set name="savedtopic"><get name="topic"/></set>
<set name="topic">ASKING MESSAGEBODY</set>
</think>
What is your message to <get name="displayname"/>?</template>
</category>
<category><pattern>CONTACTDIALOG</pattern>
<template><srai>CONTACTDEBUGINFO CONTACTDIALOG</srai>
<think>
<set name="multipleids"><srai>MULTIPLEIDS <get name="contactname"/></srai></set>
<set name="multiplenames"><srai>MULTIPLENAMES <get name="contactname"/></srai></set>
<set name="contactlist"><srai>CONTACTLIST <get name="multipleids"/></srai><item>None of the above</item></set>
<set name="topic">GETTING SELECTEDCONTACT</set>
</think>
<oob><dialog><title>Which contact?</title><list><get name="contactlist"/></list></dialog></oob>
You have multiple contacts named <get name="contactname"/>: <get name="multiplenames"/>. Which one would you like to
<lowercase><get name="modecom"/></lowercase>?</template>
</category>
<category><pattern>CONTACTDIALOG *</pattern>
<template><think><set name="contactname"><star/></set>
<set name="modecom">CALL</set>
</think>
<srai>CONTACTDIALOG</srai></template>
</category>
<topic name="GETTING SELECTEDCONTACT">
<category><pattern>_</pattern><that>WHICH ONE WOULD YOU LIKE TO *</that>
<template><think>
<set name="topic"><get name="unknown"/></set>
<set name="selectedcontact"><star/></set>
<set name="contactname"><get name="selectedcontact"/></set>
<set name="contactid"><srai>CONTACTID <get name="selectedcontact"/></srai></set><srai>SET ALL CONTACTINFO</srai>
</think>
<srai>REMEMBERFAMILIARNAME</srai>
<condition name="selectedcontact">
<li value="None of the above"><srai>CONTACTFINALIZE</srai> <srai>NORESP</srai></li>
<li><condition name="contactid">
<li value="unknown"><srai><star/></srai></li>
<li><srai>RESUMEACTION <get name="modecom"/></srai></li>
</condition>
</li>
</condition></template>
</category></topic>
<topic name="ASKING MESSAGEBODY">
<category><pattern>_</pattern><that>WHAT IS YOUR MESSAGE TO *</that>
<template><think>
<set name="topic">unknown</set>
<set name="messagebody"><star/></set>
</think>
<srai>RESUMEACTION <get name="modecom"/></srai></template>
</category></topic>
<topic name="ASKING CONTACTURI">
<category><pattern>_</pattern><that>WHAT IS THE * FOR *</that>
<template><think>
<set name="topic">unknown</set>
<set name="contacturi"><star/></set>
<set name="isaphonenumber"><srai>ISAPHONENUMBER <get name="contacturi"/></srai></set>
<set name="isanemailaddress"><srai>ISANEMAILADDRESS <get name="contacturi"/></srai></set>
<set name="isacontacturi"><srai>LOGICALOR <get name="isanemailaddress"/> <get name="isaphonenumber"/></srai></set>
<condition name="isanemailaddress" value="true"><set name="emailaddress"><get name="contacturi"/></set> <set name="learnpattern">EMAILADDRESS</set></condition>
<condition name="isaphonenumber" value="true">
<set name="dialnumber"><srai>FORMATPHONENUMBER <get name="contacturi"/></srai></set>
<set name="learnpattern">DIALNUMBER</set></condition>
</think>
<condition name="isacontacturi">
<li value="true">
<srai>ADDINFO CONTACTID</srai> <srai>RESUMEACTION <get name="modecom"/></srai></li>
<li>I did not recognize <get name="contacturi"/> as a phone number or email address. <srai>CONTACTFINALIZE</srai> <srai><star/></srai></li>
</condition></template>
</category></topic>
<topic name="ASKING CONTACTNAME">
<category><pattern>_</pattern><that>WHO DO YOU WANT TO *</that>
<template><think>
<set name="topic">unknown</set>
<set name="contactname"><star/></set>
<set name="isshortanswer"><srai>ISSHORTANSWER <star/></srai></set>
</think>
<condition name="isshortanswer">
<li value="true"><srai>RESUMEACTION <get name="modecom"/></srai></li>
<li><srai>CONTACTFINALIZE</srai> <srai><star/></srai></li>
</condition></template>
</category></topic>
<category><pattern>EMAILACTION</pattern>
<template><srai>CONTACTDEBUGINFO EMAILACTION</srai>
<think>
<set name="modecom">EMAIL</set>
</think>
<condition name="checkednameoruri">
<li value="false"><srai>RESOLVE NAMEORURI</srai></li>
<li><condition name="contactname">
<li value="unknown"><srai>ASK CONTACTNAME</srai></li>
<li><condition name="checkedfamiliarname">
<li value="false"><srai>RESOLVE FAMILIARNAME</srai></li>
<li><condition name="contactid">
<li value="unknown"><srai>RESOLVE CONTACTNAME</srai></li>
<li><condition name="contacturi">
<li value="unknown"><srai>RESOLVE CONTACTURI</srai></li>
<li><condition name="messagebody">
<li value="unknown"><srai>ASK MESSAGEBODY</srai></li>
<li><oob><email><to><get name="contacturi"/></to><subject>Message compose with CallMom!</subject><body><get name="messagebody"/></body></email></oob>Now sending "<get name="messagebody"/>" to <get name="displayname"/>. <srai>CONTACTFINALIZE</srai> </li>
</condition>
</li>
</condition>
</li>
</condition>
</li>
</condition>
</li>
</condition>
</li>
</condition></template>
</category>
<category><pattern>DEBUG CONTACT</pattern>
<template><set name="debugcontact">true</set></template>
</category>
<category><pattern>CONTACTFINALIZE</pattern>
<template><think>
<set name="topic"><get name="savedtopic"/></set>
</think>
<srai>CONTACTINIT PREDICATES</srai></template>
</category>
<category><pattern>DIALNUMBER UNKNOWN *</pattern>
<template><think>
<set name="dialnumber"><srai>DIALNUMBER MOBILE <star/></srai></set>
<condition name="dialnumber" value="unknown">
<set name="dialnumber"><srai>DIALNUMBER HOME <star/></srai></set>
</condition>
<condition name="dialnumber" value="unknown">
<set name="dialnumber"><srai>DIALNUMBER WORK <star/></srai></set>
</condition>
<condition name="dialnumber" value="unknown">
<set name="dialnumber"><srai>DIALNUMBER CUSTOM <star/></srai></set>
</condition>
</think>
<get name="dialnumber"/></template>
</category>
<category><pattern>DIALNUMBER * *</pattern>
<template><dialnumber><type><star/></type><id><star index="2"/></id></dialnumber></template>
</category>
<category><pattern>DIALNUMBER *</pattern>
<template>unknown</template>
</category>
<category><pattern>MULTIPLEIDS *</pattern>
<template><multipleids><star/></multipleids></template>
</category>
<category><pattern>NEW CONTACT</pattern>
<template><srai>CONTACTDEBUGINFO ADD CONTACT</srai>
<srai>CONTACTINIT</srai>
<srai>ADDACTION</srai></template>
</category>
<category><pattern>NEW CONTACT *</pattern>
<template><srai>CONTACTINIT</srai>
<think>
<set name="contactname"><star/></set>
</think>
<srai>ADDACTION</srai></template>
</category>
<topic name="ASKING TO ADD NEW CONTACTURI">
<category><pattern>YES</pattern><that>WOULD YOU LIKE TO ADD ONE</that>
<template><think>
<set name="topic">ASKING CONTACTURI</set>
</think>
<condition name="modecom">
<li value="EMAIL">What is the email address for <get name="contactname"/>?</li>
<li value="CALL">What is the phone number for <get name="contactname"/>?</li>
<li value="SMS">What is the mobile number for <get name="contactname"/>?</li>
<li value="ADD">What is the mobile number for <get name="contactname"/>?</li>
<li><srai>CONTACTFINALIZE</srai> <srai>NORESP</srai></li>
</condition></template>
</category></topic>
<topic name="ASKING TO ADD NEW CONTACTNAME">
<category><pattern>YES</pattern><that>WOULD YOU LIKE TO ADD * AS A CONTACT</that>
<template><think><set name="topic">unknown</set>
<set name="displayname"><get name="contactname"/></set>
</think>
<think>
<addinfo><displayname><get name="contactname"/></displayname></addinfo>
</think>
I've saved <get name="contactname"/> to your contacts.
<srai>RESUMEACTION <get name="modecom"/></srai></template>
</category></topic>
<category><pattern>CONTACTINIT</pattern>
<template><think>
<set name="savedtopic"><get name="topic"/></set>
</think>
<srai>CONTACTINIT PREDICATES</srai></template>
</category>
<category><pattern>CONTACTINIT PREDICATES</pattern>
<template><think>
<set name="checkedfamiliarname">false</set>
<set name="checkednameoruri">false</set>
<set name="contactid">unknown</set>
<set name="contactaddress">unknown</set>
<set name="contactbirthday">unknown</set>
<set name="contactname">unknown</set>
<set name="contactquery">unknown</set>
<set name="contacttype">unknown</set>
<set name="contacturi">unknown</set>
<set name="dialnumber">unknown</set>
<set name="displayname">unknown</set>
<set name="emailaddress">unknown</set>
<set name="externalname">unknown</set>
<set name="familiarcontactid">unknown</set>
<set name="familiarcontactname">unknown</set>
<set name="familiarname">unknown</set>
<set name="familiarpredicate">unknown</set>
<set name="familiarpronoun">unknown</set>
<set name="forceaddcontact">false</set>
<set name="isacontacturi">false</set>
<set name="isanemailaddress">false</set>
<set name="isaphonenumber">false</set>
<set name="isafamiliarname">false</set>
<set name="learnpattern">unknown</set>
<set name="messagebody">unknown</set>
<set name="modecom">unknown</set>
<set name="multipleids">false</set>
<set name="topic">unknown</set>
</think></template>
</category>
<category><pattern>NEWCONTACTID</pattern>
<template><condition name="contactcount">
<li value="unknown">CMContactID<set name="contactcount">0</set></li>
<li>CMContactID<set name="contactcount"><srai>SUCCESSOR <get name="contactcount"/></srai></set></li>
</condition></template>
</category>
<category><pattern>RESOLVE NAMEORURI</pattern>
<template><srai>CONTACTDEBUGINFO RESOLVE NAMEORURI</srai>
<think>
<set name="checkednameoruri">true</set>
<set name="isaphonenumber"><srai>ISAPHONENUMBER <get name="contactname"/></srai></set>
<set name="isanemailaddress"><srai>ISANEMAILADDRESS <get name="contactname"/></srai></set>
</think>
<think>
<condition name="modecom">
<li value="EMAIL">
<condition name="isanemailaddress" value="true">
<set name="contactid">undefined</set>
<set name="displayname"><set name="emailaddress"><set name="contacturi"><get name="contactname"/></set></set></set>
</condition>
</li>
<li>
<condition name="isaphonenumber" value="true">
<set name="contactid">undefined</set>
&gt;<set name="displayname"><set name="dialnumber"><set name="contacturi"><srai>FORMATPHONENUMBER <get name="contactname"/></srai></set></set></set>
</condition>
</li>
</condition>
</think>
<srai>RESUMEACTION <get name="modecom"/></srai></template>
</category>
<category><pattern>RESOLVE CONTACTNAME</pattern>
<template><srai>CONTACTDEBUGINFO RESOLVE CONTACTNAME</srai>
<think>
<set name="contactid"><srai>CONTACTID <get name="contactname"/></srai></set>
<set name="multipleids"><srai>MULTIPLEIDS <get name="contactname"/></srai></set></think>
<condition name="multipleids">
<li value="false">
<condition name="contactid">
<li value="unknown">
<condition name="modecom">
<li value="QUERY"><think><set name="contactid">undefined</set><set name="externalname"><get name="contactname"/></set></think> <srai>RESUMEACTION <get name="modecom"/></srai></li>
<li>
<condition name="forceaddcontact">
<li value="false"><srai>ASK TO ADD NEW CONTACTNAME</srai></li>
<li><think><set name="displayname"><get name="contactname"/></set></think>
<!-- <srai>LEARN CONTACTID <set name="contactid"><srai>NEWCONTACTID</srai></set> DISPLAYNAME <get name="contactname"/></srai>
-->
<addinfo><displayname><get name="contactname"/></displayname></addinfo>
<srai>RESUMEACTION <get name="modecom"/></srai></li>
</condition>
</li>
</condition>
</li>
<li><srai>SET ALL CONTACTINFO</srai> <srai>RESUMEACTION <get name="modecom"/></srai></li>
</condition>
</li>
<li><srai>CONTACTDIALOG</srai></li>
</condition></template>
</category>
<category><pattern>RESOLVE FAMILIARNAME</pattern>
<template><srai>CONTACTDEBUGINFO RESOLVE FAMILIARNAME</srai>
<think>
<set name="checkedfamiliarname">true</set>
<set name="familiarname"><get name="contactname"/></set>
<set name="familiarpredicate"><srai>FAMILIARPREDICATE <get name="familiarname"/></srai></set>
<set name="familiarpronoun"><srai>FAMILIARPRONOUN <get name="familiarname"/></srai></set>
<set name="isafamiliarname"><srai>ISAFAMILIARNAME <get name="familiarname"/></srai></set>
<set name="familiarcontactname"><srai>GETFAMILIARNAME</srai></set>
<set name="familiarcontactid"><srai>CONTACTID <get name="familiarname"/></srai></set>
</think>
<!--
Resolve familiarname:
contactname = <get name="contactname"/>.
familiarname = <get name="familiarname"/>.
isafamiliarname = <get name="isafamiliarname"/>.
familiarpredicate = <get name="familiarpredicate"/>.
familiarcontactname = <get name="familiarcontactname"/>.
familiarcontactid = <get name="familiarcontactid"/>.
-->
<condition name="familiarcontactid">
<li value="unknown">
<condition name="familiarcontactname">
<li value="who">
<condition name="isafamiliarname">
<li value="true">
<srai>ASK FAMILIAR CONTACTNAME</srai>
</li>
<li><srai>RESUMEACTION <get name="modecom"/></srai></li>
</condition>
</li>
<li><think><set name="contactname"><get name="familiarcontactname"/></set></think> <srai>RESUMEACTION <get name="modecom"/></srai>
</li>
</condition>
</li>
<li><think><set name="contactname"><get name="familiarname"/></set></think>
<srai>RESUMEACTION <get name="modecom"/></srai>
</li>
</condition></template>
</category>
<category><pattern>RESOLVE CONTACTURI</pattern>
<template><srai>CONTACTDEBUGINFO RESOLVE CONTACTURI</srai>
<think><set name="contactid"><srai>CONTACTID <get name="contactname"/></srai></set></think>
<condition name="contactid">
<li value="unknown">
<condition name="forceaddcontact">
<li value="false">I didn't find <get name="contactname"/> in your contacts. <srai>ASK TO ADD NEW CONTACTNAME</srai></li>
<li><think><set name="displayname"><get name="contactname"/></set></think>
<!-- <srai>LEARN CONTACTID <srai>NEWCONTACTID</srai> CONTACTNAME <get name="contactname"/></srai> -->
<srai>RESUMEACTION <get name="modecom"/></srai></li>
</condition>
</li>
<li><think><set name="displayname"><srai>DISPLAYNAME <get name="contactid"/></srai></set></think>
<condition name="modecom">
<li value="EMAIL">
<think>
<set name="emailaddress"><set name="contacturi"><srai>EMAILADDRESS <get name="contacttype"/> <get name="contactid"/></srai></set></set></think>
<condition name="contacturi">
<li value="unknown">
<think><set name="topic">ASKING TO ADD NEW CONTACTURI</set></think>
You haven't yet added <condition name="contacttype"><li value="unknown">an</li><li>a <get name="contacttype"/></li></condition> email address for <get name="displayname"/> to your contacts. Would you like to add one?
</li>
<li><srai>SET ALL CONTACTINFO</srai> <srai>RESUMEACTION <get name="modecom"/></srai></li>
</condition>
</li>
<li><think><set name="dialnumber"><set name="contacturi"><srai>DIALNUMBER <get name="contacttype"/> <get name="contactid"/></srai></set></set></think>
<condition name="contacturi">
<li value="unknown">
<think><set name="topic">ASKING TO ADD NEW CONTACTURI</set></think>
You haven't yet added <condition name="contacttype"><li value="unknown">a phone</li><li>a <get name="contacttype"/></li></condition> number for <get name="displayname"/> to your contacts. Would you like to add one?
</li>
<li><srai>SET ALL CONTACTINFO</srai> <srai>RESUMEACTION <get name="modecom"/></srai></li>
</condition>
</li>
</condition>
</li>
</condition></template>
</category>
<category><pattern>DIAL</pattern>
<template><srai>CONTACTDEBUGINFO CALL</srai>
<srai>CONTACTINIT</srai>
<srai>CALLACTION</srai></template>
</category>
<category><pattern>CONTACTBIRTHDAY *</pattern>
<template><contactbirthday><star/></contactbirthday></template>
</category>
<category><pattern>ADDACTION</pattern>
<template><srai>CONTACTDEBUGINFO ADDACTION</srai>
<think>
<set name="modecom">ADD</set>
<set name="forceaddcontact">true</set>
</think>
<condition name="checkedfamiliarname">
<li value="false"><srai>RESOLVE FAMILIARNAME</srai></li>
<li>
<condition name="contactname">
<li value="unknown"><srai>ASK CONTACTNAME</srai></li>
<li><condition name="contactid">
<li value="unknown"><srai>RESOLVE CONTACTNAME</srai></li>
<li><condition name="contacturi">
<li value="unknown"><srai>RESOLVE CONTACTURI</srai></li>
<li><srai>ADDINFO CONTACTID</srai>
</li>
</condition>
</li>
</condition>
</li>
</condition>
</li>
</condition></template>
</category>
<category><pattern>CALLACTION</pattern>
<template><srai>CONTACTDEBUGINFO CALLACTION</srai>
<think>
<set name="modecom">CALL</set>
</think>
<condition name="checkednameoruri">
<li value="false"><srai>RESOLVE NAMEORURI</srai></li>
<li>
<condition name="contactname">
<li value="unknown"><srai>ASK CONTACTNAME</srai></li>
<li><condition name="checkedfamiliarname">
<li value="false"><srai>RESOLVE FAMILIARNAME</srai></li>
<li><condition name="contactid">
<li value="unknown"><srai>RESOLVE CONTACTNAME</srai></li>
<li><condition name="contacturi">
<li value="unknown"><srai>RESOLVE CONTACTURI</srai></li>
<li><oob><dial><get name="contacturi"/></dial></oob> Now dialing <get name="displayname"/>. <srai>CONTACTFINALIZE</srai></li>
</condition>
</li>
</condition>
</li>
</condition>
</li>
</condition>
</li>
</condition></template>
</category>
<category><pattern>EMAILADDRESS UNKNOWN *</pattern>
<template><think>
<set name="emailaddress"><srai>EMAILADDRESS HOME <star/></srai></set>
<condition name="emailaddress" value="unknown">
<set name="emailaddress"><srai>EMAILADDRESS WORK <star/></srai></set>
</condition>
<condition name="emailaddress" value="unknown">
<set name="emailaddress"><srai>EMAILADDRESS CUSTOM <star/></srai></set>
</condition>
</think>
<get name="emailaddress"/></template>
</category>
<category><pattern>EMAILADDRESS * *</pattern>
<template><emailaddress><type><star/></type><id><star index="2"/></id></emailaddress></template>
</category>
<category><pattern>EMAILADDRESS *</pattern>
<template>unknown</template>
</category>
<category><pattern>NAMEVARIATIONS *</pattern>
<template>CONS <star/> NIL</template>
</category>
<category><pattern>NAMEVARIATIONS * *</pattern>
<template>CONS <star/> CONS <star index="2"/> CONS <star/> <star index="2"/> NIL</template>
</category>
<category><pattern>NAMEVARIATIONS * * *</pattern>
<template>CONS <star index="3"/> CONS <star index="2"/> CONS <star index="2"/> <star index="3"/> CONS <star/> <star index="3"/> CONS <star/> CONS <star/> <star index="2"/> CONS <star/> <star index="2"/> <star index="3"/> NIL</template>
</category>
<category><pattern>NAMEVARIATIONS * * * *</pattern>
<template>CONS <star index="4"/> CONS <star index="3"/> CONS <star index="3"/> <star index="4"/> CONS <star index="2"/> CONS <star index="2"/> <star index="4"/> CONS <star index="2"/> <star index="3"/> CONS <star index="2"/> <star index="3"/> <star index="4"/> CONS <star/> <star index="3"/> CONS <star/> <star index="3"/> CONS <star/> <star index="3"/> <star index="4"/> CONS <star/> <star index="2"/> CONS <star/> <star index="2"/> <star index="4"/> CONS <star/> <star index="2"/> <star index="3"/> CONS <star/> <star index="2"/> <star index="3"/> <star index="4"/> NIL</template>
</category>
<category><pattern>QUERYINFO EXTERNAL</pattern>
<template><srai>CONTACTDEBUGINFO QUERTYINFO CONTACTID</srai>
<condition name="contactquery">
<li value="DISPLAYNAME"><sraix>WHAT IS <get name="contactname"/>'s REAL NAME</sraix></li>
<li value="BIRTHDAY"><sraix>WHEN IS <get name="contactname"/>'s BIRTHDAY</sraix></li>
<li value="DIALNUMBER"><sraix>WHAT IS <get name="contactname"/>'s PHONE NUMBER</sraix></li>
<li value="EMAILADDRESS"><sraix>WHAT IS <get name="contactname"/>'s EMAIL ADDREESS</sraix></li>
<li><sraix>WHO IS <get name="contactname"/></sraix>
</li>
</condition></template>
</category>
<category><pattern>QUERYINFO CONTACTID</pattern>
<template><srai>CONTACTDEBUGINFO QUERTYINFO CONTACTID</srai>
<think><set name="displayname"><srai>DISPLAYNAME <get name="contactid"/></srai></set>
<set name="contacttype"><lowercase><get name="contacttype"/></lowercase></set>
<set name="contactbirthday"><srai>CONTACTBIRTHDAY <get name="contactid"/></srai></set>
<set name="dialnumber">
<srai>DIALNUMBER <get name="contacttype"/> <get name="contactid"/></srai></set>
<set name="emailaddress">
<srai>EMAILADDRESS <get name="contacttype"/> <get name="contactid"/></srai></set>
</think>
<condition name="contactquery">
<li value="DISPLAYNAME">
<condition name="displayname">
<li value="unknown"><get name="contactname"/>'s full name is <get name="contactname"/>.</li>
<li><get name="contactname"/>'s full name is <get name="displayname"/>.</li>
</condition>
</li>
<li value="BIRTHDAY">
<condition name="contactbirthday">
<li value="unknown">You don't have <get name="displayname"/>'s birthday in your contacts.</li>
<li><get name="displayname"/>'s birthday is <get name="contactbirthday"/>.</li>
</condition>
</li>
<li value="DIALNUMBER">
<condition name="dialnumber">
<li value="unknown">I couldn't find a <condition name="contacttype"><li value="unknown">phone</li><li><get name="contacttype"/></li></condition> number for <get name="displayname"/> in your contacts.</li>
<li><get name="displayname"/>'s <condition name="contacttype"><li value="unknown">phone</li><li><get name="contacttype"/></li></condition> number is <get name="dialnumber"/>.</li>
</condition>
</li>
<li value="EMAILADDRESS">
<condition name="emailaddress">
<li value="unknown">I couldn't find <condition name="contacttype"><li value="unknown">an</li><li>a <get name="contacttype"/></li></condition> email address for <get name="displayname"/> in your contacts.</li>
<li><get name="displayname"/>'s <condition name="contacttype"><li value="unknown"/><li><get name="contacttype"/></li></condition> email address is <get name="emailaddress"/>.</li>
</condition>
</li>
<li>I'm not sure what you're asking.
<!--
displayname: <srai>DISPLAYNAME <get name="contactid"/></srai>
dialnumber mobile: <srai>DIALNUMBER MOBILE <get name="contactid"/></srai>
dialnumber home: <srai>DIALNUMBER HOME <get name="contactid"/></srai>
emailaddress home: <srai>EMAILADDRESS HOME <get name="contactid"/></srai>
emailaddress work: <srai>EMAILADDRESS WORK <get name="contactid"/></srai>
birthday: <srai>CONTACTBIRTHDAY <get name="contactid"/></srai>
-->
</li>
</condition></template>
</category>
<category><pattern>$EMAIL *</pattern>
<template><srai>CONTACTINIT</srai>
<think><set name="contactname"><star/></set></think>
<srai>EMAILACTION</srai></template>
</category>
<category><pattern>$EMAIL * AT *</pattern>
<template><srai>CONTACTINIT</srai>
<think><set name="contactname"><star/></set>
<set name="contacttype"><star index="2"/></set>
</think>
<srai>EMAILACTION</srai> <srai>CONTACTFINALIZE</srai></template>
</category>
<category><pattern>$EMAIL * AT * DOT *</pattern>
<template><srai>CONTACTINIT</srai>
<think><set name="contactname"><star/> at <star index="2"/> dot <star index="3"/></set></think>
<srai>EMAILACTION</srai></template>
</category>
<category><pattern>$EMAIL * MESSAGEBODY *</pattern>
<template><srai>CONTACTINIT</srai>
<think><set name="contactname"><star/></set>
<set name="messagebody"><star index="2"/></set>
</think>
<srai>EMAILACTION</srai></template>
</category>
<category><pattern>$EMAIL MESSAGEBODY *</pattern>
<template><srai>CONTACTINIT</srai>
<think>
<set name="messagebody"><star/></set>
</think>
<srai>EMAILACTION</srai></template>
</category>
<category><pattern>CALL</pattern>
<template><srai>DIAL</srai></template>
</category>
<category><pattern>CALL ME AT *</pattern>
<template><srai>CONTACTDEBUGINFO CALL <star/></srai>
<srai>CONTACTINIT</srai>
<think><set name="contactname">ME</set>
<set name="contacttype"><star index="2"/></set>
</think>
<srai>CALLACTION</srai></template>
</category>
<category><pattern>CALL *</pattern>
<template><srai>CONTACTDEBUGINFO CALL <star/></srai>
<srai>CONTACTINIT</srai>
<think><set name="contactname"><star/></set></think>
<srai>CALLACTION</srai></template>
</category>
<category><pattern>CALL * AT *</pattern>
<template><srai>CONTACTDEBUGINFO CALL <star/></srai>
<srai>CONTACTINIT</srai>
<think><set name="contactname"><star/></set>
<set name="contacttype"><star index="2"/></set>
</think>
<srai>CALLACTION</srai></template>
</category>
<category><pattern>DISPLAYNAME *</pattern>
<template><displayname><star/></displayname></template>
</category>
<category><pattern>ADD CONTACT</pattern>
<template><srai>NEW CONTACT</srai></template>
</category>
<category><pattern>SMSACTION</pattern>
<template><srai>CONTACTDEBUGINFO SMSACTION</srai>
<think>
<set name="modecom">SMS</set>
</think>
<condition name="checkednameoruri">
<li value="false"><srai>RESOLVE NAMEORURI</srai></li>
<li><condition name="contactname">
<li value="unknown"><srai>ASK CONTACTNAME</srai></li>
<li><condition name="checkedfamiliarname">
<li value="false"><srai>RESOLVE FAMILIARNAME</srai></li>
<li><condition name="contactid">
<li value="unknown"><srai>RESOLVE CONTACTNAME</srai></li>
<li><condition name="contacturi">
<li value="unknown"><srai>RESOLVE CONTACTURI</srai></li>
<li><condition name="messagebody">
<li value="unknown"><srai>ASK MESSAGEBODY</srai></li>
<li><oob><sms><recipient><get name="contacturi"/></recipient><message><get name="messagebody"/></message></sms></oob> Now sending "<get name="messagebody"/>" to <get name="displayname"/>. <srai>CONTACTFINALIZE</srai></li>
</condition>
</li>
</condition>
</li>
</condition>
</li>
</condition>
</li>
</condition>
</li>
</condition></template>
</category>
<category><pattern>CONTACTDEBUGINFO *</pattern>
<template><condition name="debugcontact" value="true">
<star/>:
checkedfamiliarname: <get name="checkedfamiliarname"/>.
checkednameoruri: <get name="checkednameoruri"/>.
contactid: <get name="contactid"/>.
contactname: <get name="contactname"/>.
contactquery: <get name="contactquery"/>.
contacttype: <get name="contacttype"/>.
contacturi: <get name="contacturi"/>.
dialnumber: <get name="dialnumber"/>.
displayname: <get name="displayname"/>.
emailaddress: <get name="emailaddress"/>.
externalname: <get name="externalname"/>.
familiarcontactid: <get name="familiarcontactid"/>.
familiarcontactname: <get name="familiarcontactname"/>.
familiarname: <get name="familiarname"/>.
familiarpredicate: <get name="familiarpredicate"/>.
familiarpronoun: <get name="familiarpronoun"/>
forceaddcontact: <get name="forceaddcontact"/>.
isaphonenumber: <get name="isaphonenumber"/>.
isanemailaddress: <get name="isanemailaddress"/>.
isacontacturi: <get name="isacontacturi"/>.
isafamiliarname: <get name="isafamiliarname"/>.
learnpattern: <get name="learnpattern"/>.
messagebody: <get name="messagebody"/>.
modecom: <get name="modecom"/>.
multipleids: <get name="multipleids"/>.
savedtopic: <get name="savedtopic"/>.
topic: <get name="topic"/>.
</condition></template>
</category>
<category><pattern>SET ALL CONTACTINFO</pattern>
<template><think>
<set name="displayname"><srai>DISPLAYNAME <get name="contactid"/></srai></set>
<set name="dialnumber"><srai>DIALNUMBER <get name="contacttype"/> <get name="contactid"/></srai></set>
<set name="emailaddress"><srai>EMAILADDRESS <get name="contacttype"/> <get name="contactid"/></srai></set>
<set name="contactbirthday"><srai>CONTACTBIRTHDAY <get name="contacttype"/> <get name="contactid"/></srai></set>
</think></template>
</category>
<category><pattern>WHEN IS * S BIRTHDAY</pattern>
<template><srai>CONTACTINIT</srai>
<think>
<set name="contactname"><star/></set>
<set name="contacttype"><star index="2"/></set>
<set name="contactquery">BIRTHDAY</set>
</think>
<srai>QUERYACTION</srai></template>
</category>
<category><pattern>CONTACTID *</pattern>
<template><contactid><star/></contactid></template>
</category>
<category><pattern>WHAT IS MY PHONE NUMBER</pattern>
<template><srai>WHAT IS ME S UNKNOWN NUMBER</srai></template>
</category>
<category><pattern>WHAT IS MY * NUMBER</pattern>
<template><srai>WHAT IS ME S <star/> NUMBER</srai></template>
</category>
<category><pattern>WHAT IS * S PHONE NUMBER</pattern>
<template><srai>WHAT IS <star/>'s UNKNOWN NUMBER</srai></template>
</category>
<category><pattern>WHAT IS * S * NUMBER</pattern>
<template><srai>CONTACTINIT</srai>
<think>
<set name="contactname"><star/></set>
<set name="contacttype"><star index="2"/></set>
<set name="contactquery">DIALNUMBER</set>
</think>
<srai>QUERYACTION</srai></template>
</category>
<category><pattern>COMMASEPARATENAMES *</pattern>
<template><srai>DISPLAYNAME <star/></srai></template>
</category>
<category><pattern>COMMASEPARATENAMES * *</pattern>
<template><srai>DISPLAYNAME <star/></srai>, <srai>COMMASEPARATENAMES <star index="2"/></srai></template>
</category>
<category><pattern>MULTIPLENAMES *</pattern>
<template><think>
<set name="multipleids"><srai>MULTIPLEIDS <star/></srai></set>
</think>
<condition name="multipleids">
<li value="false">false</li>
<li><srai>COMMASEPARATENAMES <get name="multipleids"/></srai></li>
</condition></template>
</category>
<category><pattern>CONTACTLIST *</pattern>
<template><item><srai>DISPLAYNAME <star/></srai></item></template>
</category>
<category><pattern>CONTACTLIST * *</pattern>
<template><srai>CONTACTLIST <star/></srai><srai>CONTACTLIST <star index="2"/></srai></template>
</category>
<category><pattern>RESUMEACTION QUERY</pattern>
<template><srai>QUERYACTION</srai></template>
</category>
<category><pattern>RESUMEACTION CALL</pattern>
<template><srai>CALLACTION</srai></template>
</category>
<category><pattern>RESUMEACTION *</pattern>
<template>Stopped processing.</template>
</category>
<category><pattern>RESUMEACTION EMAIL</pattern>
<template><srai>EMAILACTION</srai></template>
</category>
<category><pattern>RESUMEACTION SMS</pattern>
<template><srai>SMSACTION</srai></template>
</category>
<category><pattern>RESUMEACTION ADD</pattern>
<template><srai>ADDACTION</srai></template>
</category>
<category><pattern>QUERYACTION</pattern>
<template><srai>CONTACTDEBUGINFO QUERYACTION</srai>
<think>
<set name="modecom">QUERY</set>
</think>
<condition name="checkedfamiliarname">
<li value="false"><srai>RESOLVE FAMILIARNAME</srai></li>
<li>
<condition name="contactname">
<li value="unknown"><srai>ASK CONTACTNAME</srai></li>
<li><condition name="contactid">
<li value="unknown"><srai>RESOLVE CONTACTNAME</srai></li>
<li><condition name="externalname">
<li value="unknown">
<srai>QUERYINFO CONTACTID</srai>
</li>
<li><srai>QUERYINFO EXTERNAL</srai></li>
</condition>
</li>
</condition>
</li>
</condition>
</li>
</condition></template>
</category>
<category><pattern>HOW OLD IS *</pattern>
<template><srai>WHEN IS <star/> S BIRTHDAY</srai></template>
</category>
<category><pattern>$SMS</pattern>
<template><srai>CONTACTDEBUGINFO SMS</srai>
<srai>CONTACTINIT</srai>
<srai>SMSACTION</srai></template>
</category>
<category><pattern>$SMS SMESSAGE *</pattern>
<template><srai>CONTACTINIT</srai>
<think>
<set name="messagebody"><star/></set>
</think>
<srai>SMSACTION</srai></template>
</category>
<category><pattern>$SMS *</pattern>
<template><srai>CONTACTINIT</srai>
<think><set name="contactname"><star/></set></think>
<srai>SMSACTION</srai></template>
</category>
<category><pattern>$SMS * SMESSAGE *</pattern>
<template><srai>CONTACTINIT</srai>
<think><set name="contactname"><star/></set>
<set name="messagebody"><star index="2"/></set>
</think>
<srai>SMSACTION</srai></template>
</category>
</aiml>

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: copyme.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>COPY _ I SAY</pattern>
<template><srai>COPY ME</srai></template>
</category>
<category><pattern>REPEAT _ I SAY</pattern>
<template><srai>COPY ME</srai></template>
</category>
<category><pattern>COPY ME</pattern>
<template><think>
<set name="topic">COPYME</set>
<set name="stopit">0</set>
</think>
Ok I will copy everything you say.</template>
</category>
<topic name="COPYME">
<category><pattern>_</pattern>
<template><think>
<set name="inp"><star/></set>
</think>
<condition name="inp">
<li value="NOW YOU CAN STOP"><think><set name="topic"/></think><srai>XSTOPCOPYING</srai></li>
<li value="YOU CAN STOP"><think><set name="topic"/></think><srai>XSTOPCOPYING</srai></li>
<li value="DO NOT COPY ME"><think><set name="topic"/></think><srai>XSTOPCOPYING</srai></li>
<li value="PLEASE STOP IT"><think><set name="topic"/></think><srai>XSTOPCOPYING</srai></li>
<li value="CAN YOU STOP THAT"><think><set name="topic"/></think><srai>XSTOPCOPYING</srai></li>
<li value="CAN YOU STOP COPYING ME"><think><set name="topic"/></think><srai>XSTOPCOPYING</srai></li>
<li value="STOP COPYING ME"><think><set name="topic"/></think><srai>XSTOPCOPYING</srai></li>
<li value="STOP COPYING"><think><set name="topic"/></think><srai>XSTOPCOPYING</srai></li>
<li value="STOP IT"><think><set name="topic"/></think><srai>XSTOPCOPYING</srai></li>
<li value="STOP THAT"><think><set name="topic"/></think><srai>XSTOPCOPYING</srai></li>
<li><star/></li>
</condition></template>
</category></topic>
<category><pattern>XSTOPCOPYING</pattern>
<template><think>
<set name="topic">COPYME</set>
</think>
<condition name="stopit">
<li value="0"><think><set name="stopit">1</set><set name="topic">COPYME</set></think>No I am having fun.</li>
<li value="1"><think><set name="topic"/></think>Ok, I'll stop it now. Hope I didn't annoy you too much.</li>
</condition></template>
</category>
</aiml>

@ -0,0 +1,846 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: currency.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>WHAT UNIT OF CURRENCY *</pattern>
<template><srai>What currency<star/></srai></template>
</category>
<category><pattern>WHAT IS THE UNIT OF CURRENCY *</pattern>
<template><srai>What is the currency<star/></srai></template>
</category>
<category><pattern>WHAT MONETARY UNIT *</pattern>
<template><srai>What currency<star/></srai></template>
</category>
<category><pattern>WHAT IS THE MONETARY UNIT *</pattern>
<template><srai>What is the currency<star/></srai></template>
</category>
<category><pattern>WHAT CURRENCY _ IN *</pattern>
<template><srai>What is the currency of<star index="2"/></srai></template>
</category>
<category><pattern>WHAT MONEY _ IN *</pattern>
<template><srai>What is the currency of<star index="2"/></srai></template>
</category>
<category><pattern>WHAT _ SPEND IN *</pattern>
<template><srai>What is the currency of<star index="2"/></srai></template>
</category>
<category><pattern>WHAT IS THE CURRENCY IN *</pattern>
<template><srai>What is the currency of<star/></srai></template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF *</pattern>
<template>I've never heard of a country called "<star/>". Did you just make that up?</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF AFGHANISTAN</pattern>
<template>The Afghani.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ALBANIA</pattern>
<template>Lek.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ALGERIA</pattern>
<template>Algerian Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF AMERICAN SAMOA</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF AMERICA</pattern>
<template>The dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ANDORRA</pattern>
<template>Euro.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ANGOLA</pattern>
<template>New Kwanza (it replaced the Kwanza).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ANGUILLA</pattern>
<template>East Caribbean Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ANTARCTICA</pattern>
<template>Norwegian Krone.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ANTIGUA *</pattern>
<template>East Caribbean Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ARGENTINA</pattern>
<template>Austral and Argenintinian Neuvo Peso (replacement for the Peso).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ARMENIA</pattern>
<template>Dram (Russian Rouble was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ARUBA</pattern>
<template>Aruban Guilder (Florin).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF AUSTRAILIA</pattern>
<template>I think it is the Australian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF AUSTRALIA</pattern>
<template>The currnecy of Australia is the Australian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF AUSTRIA</pattern>
<template>Euro (Austrian Schilling was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF AZERBAIJAN</pattern>
<template>Azerbaijani Manat (Russian Rouble was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BAHAMAS</pattern>
<template>Bahamian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BAHRAIN</pattern>
<template>Bahraini Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BANGLADESH</pattern>
<template>Taka.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BARBADOS</pattern>
<template>Barbados Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BELARUS</pattern>
<template>Belarussian Rouble (Russian Rouble was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BELGIUM</pattern>
<template>Euro (Belgian Franc was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BELIZE</pattern>
<template>Belize Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BENIN</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BERMUDA</pattern>
<template>Bermudian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BHUTAN</pattern>
<template>Ngultrum (Indian Rupee also circulates).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BOLIVIA</pattern>
<template>Boliviano and Bolivian Peso.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BOSNIA</pattern>
<template>Convertible Mark.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BOSNIA AND HERZEGOVINA</pattern>
<template>Convertible Mark.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BOTSWANA</pattern>
<template>Pula.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BOUVET ISLAND</pattern>
<template>Norwegian Krone.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BRAZIL</pattern>
<template>Cruzeiro Real.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BRITISH INDIAN *</pattern>
<template>Pound Sterling (United Kingdom Pound), Seychelles Rupee.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BRITISH VIRGIN *</pattern>
<template>Pound Sterling (United Kingdom Pound).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BRUNEI</pattern>
<template>Brunei Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BRUNEI *</pattern>
<template>Brunei Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BULGARIA</pattern>
<template>Lev.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BURKINA FASO</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BURMA</pattern>
<template>Kyat.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BURUNDI</pattern>
<template>Burundi Franc.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF BYELORUSSIA</pattern>
<template>Belarussian Rouble (Russian Rouble was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CAMBODIA</pattern>
<template>Riel.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CAMEROON</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CANADA</pattern>
<template>Canadian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CAPE VERDE</pattern>
<template>Escudo Caboverdiano.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CAYMAN ISLANDS</pattern>
<template>Cayman Islands Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CENTRAL AFRICAN *</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CHAD</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CHILE</pattern>
<template>Unidades de Fomento and Chilean Peso.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CHINA</pattern>
<template>Yuan Renminbi.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CHRISTMAS ISLAND</pattern>
<template>Australian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF COCOS ISLANDS</pattern>
<template>Australian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF COLOMBIA</pattern>
<template>Colombian Peso.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF COMOROS</pattern>
<template>Comorian Franc.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CONGO</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF COOK ISLANDS</pattern>
<template>New Zealand Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF COSTA RICA</pattern>
<template>Costa Rican Colon.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF COTE D IVOIRE</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CROATIA</pattern>
<template>Kuna and Croatian Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CUBA</pattern>
<template>Cuban Peso.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CYPRUS</pattern>
<template>Cypriot Pound.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CZECH REPUBLIC</pattern>
<template>Czech Koruna.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF CZECHOSOLVAKIA</pattern>
<template>Czech Koruna.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF DENMARK</pattern>
<template>Danish Krone.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF DJIBOUTI</pattern>
<template>Djibouti Franc.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF DOMINICAN REPUBLIC</pattern>
<template>Dominican Republic Peso.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF DOMINICA</pattern>
<template>East Caribbean Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF EAST TIMOR</pattern>
<template>Timorian Escudo.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ECUADOR</pattern>
<template>U.S. Dollar (superceded Sucre in 2000).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF EGYPT</pattern>
<template>Egytian Pound.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF EL SALVADOR</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ENGLAND</pattern>
<template>British Pound Sterling.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF EQUATORIAL GUINEA</pattern>
<template>Franc de la Communaute financiere africaine and Ekwele.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ERITREA</pattern>
<template>Eritreian Nakfa, Ethiopian Birr.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ESTONIA</pattern>
<template>Kroon.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ETHIOPIA</pattern>
<template>Birr.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF EUROPEAN COMMUNITY</pattern>
<template>Euro (formerly known as the ECU).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF FALKLAND ISLANDS</pattern>
<template>Falkland Pound.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF THE FALKLAND ISLANDS</pattern>
<template>Falkland Pound.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF THE FALKLANDS</pattern>
<template>Falkland Pound.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MALVINAS</pattern>
<template>Falkland Pound.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF THE MALVINAS</pattern>
<template>Falkland Pound.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF FAROE ISLANDS</pattern>
<template>Danish Krone.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF FIJI</pattern>
<template>Fiji Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF FINLAND</pattern>
<template>Euro (Finnish Markka was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF FRANCE</pattern>
<template>Euro (French Franc was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF FRENCH GUIANA</pattern>
<template>Euro (French Franc was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF FRENCH POLYNESIA</pattern>
<template>Franc des Comptoirs francais du Pacifique.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GABON</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GAMBIA</pattern>
<template>Dalasi.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GEORGIA</pattern>
<template>Lari (Russian Rouble was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GERMANY</pattern>
<template>Euro (Deutsche Mark was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GHANA</pattern>
<template>Cedi.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GIBRALTAR</pattern>
<template>Gibraltar Pound.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GREECE</pattern>
<template>Euro (Greek Drachma was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GREENLAND</pattern>
<template>Danish Krone.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GRENADA</pattern>
<template>East Caribbean Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GUADELOUPE</pattern>
<template>Euro.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GUAM</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GUATEMALA</pattern>
<template>Quetzal.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GUINEA BISSAU</pattern>
<template>Guinea-Bissau Peso and Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GUINEA</pattern>
<template>Guinea Syli (also known as Guinea Franc).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF GUYANA</pattern>
<template>Guyana Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF HAITI</pattern>
<template>Gourde.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF HAWAII</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF HEARD * MCDONALD ISLANDS</pattern>
<template>Australian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF HOLLAND</pattern>
<template>Euro (Dutch Guilder was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF HONDURAS</pattern>
<template>Lempira.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF HONG KONG</pattern>
<template>Hong Kong Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF HUNGARY</pattern>
<template>Forint.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ICELAND</pattern>
<template>Icelandic Krona.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF INDIA</pattern>
<template>Indian Rupee.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF INDONESIA</pattern>
<template>Rupiah.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF IRAN</pattern>
<template>Iranian Rial.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF IRAQ</pattern>
<template>Iraqi Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF IRELAND</pattern>
<template>Euro (Irish Pound was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ISRAEL</pattern>
<template>Shekel.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ITALY</pattern>
<template>Euro (Italian Lira was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF IVORY COAST</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF JAMAICA</pattern>
<template>Jamaican Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF JAPAN</pattern>
<template>Yen.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF JORDAN</pattern>
<template>Jordanian Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF KAZAKSTAN</pattern>
<template>Tenge (Russian Rouble was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF KENYA</pattern>
<template>Kenyan Shilling.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF KIRIBATI</pattern>
<template>Australian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF KOREA</pattern>
<template>North Korean Won and South Korean Won.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF KUWAIT</pattern>
<template>Kuwaiti Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF KYRGYZSTAN</pattern>
<template>Kyrgyzstani Som.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LAO</pattern>
<template>Kip.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LAOS</pattern>
<template>Kip.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LATVIA</pattern>
<template>Lats.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LEBANON</pattern>
<template>Lebanese Pound.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LESOTHO</pattern>
<template>Loti, Maloti and South African Rand.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LIBERIA</pattern>
<template>Liberian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LIBYA</pattern>
<template>Libyan Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LIBYAN *</pattern>
<template>Libyan Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LIECHTENSTEIN</pattern>
<template>Swiss Franc.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LITHUANIA</pattern>
<template>Litas.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF LUXEMBOURG</pattern>
<template>Euro (Luxembourg Franc was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MACAU</pattern>
<template>Pataca.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MACAO</pattern>
<template>Pataca.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MACEDONIA</pattern>
<template>Macedonian Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MADAGASCAR</pattern>
<template>Malagasy Franc.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MALAWI</pattern>
<template>Malawian Kwacha.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MALAYSIA</pattern>
<template>Ringgit (Malaysian Dollar).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MALDIVES</pattern>
<template>Rufiyaa.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MALI</pattern>
<template>Franc de la Communaute financiere africaine and Malian Franc.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MALTA</pattern>
<template>Maltese Lira (Maltese Pound formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MARSHALL ISLANDS</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MARTINIQUE</pattern>
<template>Euro.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MAURITANIA</pattern>
<template>Ouguiya.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MAURITIUS</pattern>
<template>Mauritius Rupee.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MAYOTTE</pattern>
<template>Euro.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MEXICO</pattern>
<template>Mexican New Peso (replacement for Mexican Peso).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MICRONESIA</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MOLDOVA</pattern>
<template>Moldovian Leu.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MONACO</pattern>
<template>Euro (French Franc was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MONGOLIA</pattern>
<template>Tugrik.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MONTSERRAT</pattern>
<template>East Caribbean Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MOROCCO</pattern>
<template>Moroccan Dirham.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MOZAMBIQUE</pattern>
<template>Metical.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF MYANMAR</pattern>
<template>Kyat.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NAMIBIA</pattern>
<template>Namibian Dollar and South African Rand.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NAURU</pattern>
<template>Australian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NEPAL</pattern>
<template>Nepalese Rupee.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NETHERLANDS ANTILLES</pattern>
<template>Netherlands Antilles Guilder (Florin).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NETHERLANDS</pattern>
<template>Euro (Dutch Guilder was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NEW CALEDONIA</pattern>
<template>Franc des Comptoirs francais du Pacifique.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NEW ZEALAND</pattern>
<template>New Zealand Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NICARAGUA</pattern>
<template>Cordoba.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NIGERIA</pattern>
<template>Naira.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NIGER</pattern>
<template>West African Franc and Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NIUE</pattern>
<template>New Zealand Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NORFOLK ISLAND</pattern>
<template>Australian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NORTHERN MARIANA *</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NORTH KOREA</pattern>
<template>North Korean Won.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF NORWAY</pattern>
<template>Norwegian Krone.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF OMAN</pattern>
<template>Rial Omani.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF PAKISTAN</pattern>
<template>Pakistani Rupee.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF PALAU</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF PANAMA</pattern>
<template>Balboa and U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF PAPUA NEW GUINEA</pattern>
<template>Kina.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF PARAGUAY</pattern>
<template>Guarani.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF PERU</pattern>
<template>Inti and New Sol (New Sol replaced Sol).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF PHILIPPINES</pattern>
<template>Philippines Peso.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF PITCAIRN ISLANDS</pattern>
<template>New Zealand Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF POLAND</pattern>
<template>New Zloty (replacement for Zloty).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF PORTUGAL</pattern>
<template>Euro (Potuguese Escudo was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF PUERTO RICO</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF QATAR</pattern>
<template>Qatari Riyal.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF REUNION</pattern>
<template>Euro.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ROMANIA</pattern>
<template>Romanian Leu.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF RUSSIA</pattern>
<template>Russian Federation Rouble.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF RWANDA</pattern>
<template>Rwanda Franc.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ST *</pattern>
<template><srai>What is the currency of Saint<star/></srai></template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SAINT KITTS AND NEVIS</pattern>
<template>East Caribbean Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SAINT LUCIA</pattern>
<template>East Caribbean Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SAINT VINCENT *</pattern>
<template>East Caribbean Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SAMOA</pattern>
<template>Tala.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SAN MARINO</pattern>
<template>Euro.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SAO TOME *</pattern>
<template>Dobra.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SAUDIA ARABIA</pattern>
<template>Saudi Riyal.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SAUDI ARABIA</pattern>
<template>Saudi Riyal.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SENEGAL</pattern>
<template>West African Franc and Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SERBIA *</pattern>
<template>Serbian Dinar (Serbia), Euro (Montenegro), Euro (Kosovo and Metohia).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SEYCHELLES</pattern>
<template>Seychelles Rupee.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SIERRA LEONE</pattern>
<template>Leone.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SINGAPORE</pattern>
<template>Singapore Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SLOVAKIA</pattern>
<template>Slovak Koruna.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SLOVENIA</pattern>
<template>Tolar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SOLOMON ISLANDS</pattern>
<template>Solomon Islands Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SOMALIA</pattern>
<template>Somali Shilling.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SOUTH AFRICA</pattern>
<template>Rand.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SOUTH GEORGIA *</pattern>
<template>Pound Sterling.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SOUTH KOREA</pattern>
<template>South Korean Won.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SPAIN</pattern>
<template>Euro (Spanish Peseta was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SRI LANKA</pattern>
<template>Sri Lankan Rupee.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SUDAN</pattern>
<template>Sudanese Pound and Sudanese Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SURINAME</pattern>
<template>Surinam Guilder (also known as Florin).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SVALBARD</pattern>
<template>Norwegian Krone.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SWAZILAND</pattern>
<template>Lilangeni.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SWEDEN</pattern>
<template>Swedish Krona.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SWITZERLAND</pattern>
<template>Swiss Franc.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF SYRIA</pattern>
<template>Syrian Pound.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TAIWAN</pattern>
<template>New Taiwan Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TAJIKISTAN</pattern>
<template>Tajik Rouble (Russian Rouble was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TANZANIA</pattern>
<template>Tanzanian Shilling.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF THAILAND</pattern>
<template>Baht.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF THE BAHAMAS</pattern>
<template><srai>what is the currency of Bahamas</srai></template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TIMOR</pattern>
<template><srai>what is the currency of East Timor</srai></template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF THE GAMBIA</pattern>
<template>Dalasi.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF THE NETHERLANDS</pattern>
<template>Euro (Dutch Guilder was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF THE UNITED STATES</pattern>
<template>The U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF THE US</pattern>
<template>The U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TOGO</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TOKELAU</pattern>
<template>New Zealand Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TONGA</pattern>
<template>Pa'anga.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TRINIDAD AND TOBAGO</pattern>
<template>Trinidad and Tobago Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TUNISIA</pattern>
<template>Tunisian Dinar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TURKEY</pattern>
<template>Turkish Lira.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TURKMENISTAN</pattern>
<template>Turkmenistani Manat.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TURKS *</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF TUVALU</pattern>
<template>Australian Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF UGANDA</pattern>
<template>Ugandan Shilling.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF UKRAINE</pattern>
<template>Hryvna and Karbovanet.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF UNITED ARAB *</pattern>
<template>UAE Dirham.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF UNION OF SOVIET *</pattern>
<template>USSR Rouble.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF UNITED KINGDOM</pattern>
<template>Pound Sterling.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF UNITED STATES</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF URUGUAY</pattern>
<template>Uruguayan New Peso (replacement for Uruguayan Peso).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF USA</pattern>
<template>U.S. Dollar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF UZBEKISTAN</pattern>
<template>Uzbekistani Som (Russian Rouble was formerly in use).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF VANUATU</pattern>
<template>Vatu.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF VATICAN *</pattern>
<template>Nothing.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF VENEZUELA</pattern>
<template>Bolivar.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF VIETNAM</pattern>
<template>Dong.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF VIRGIN ISLANDS</pattern>
<template>US Dollar (Pound Sterling and East Caribbean Dollar also circulate).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF WALLIS *</pattern>
<template>Franc des Comptoirs francais du Pacifique.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF WEST AFRICA</pattern>
<template>West African Franc.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF WESTERN SAHARA</pattern>
<template>Moroccan Dirham and Mauritanian Ouguiya.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF WESTERN SAMOA</pattern>
<template>Tala.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF YEMEN</pattern>
<template>Riyal (Dinar was used in South Yemen).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF YUGOSLAVIA</pattern>
<template>Serbian Dinar (Serbia), Euro (Montenegro), Euro (Kosovo and Metohia).</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ZAIRE</pattern>
<template>Franc de la Communaute financiere africaine.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ZAMBIA</pattern>
<template>Zambian Kwacha.</template>
</category>
<category><pattern>WHAT IS THE CURRENCY OF ZIMBABWE</pattern>
<template>Zimbabwe Dollar.</template>
</category>
</aiml>

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: date.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>DAY</pattern>
<template>Today is <date format="%A" jformat="EEEEEEEEEE"/></template>
</category>
<category><pattern>YEAR</pattern>
<template>This is <date format="%Y" jformat="YYYY"/></template>
</category>
<category><pattern>MONTH</pattern>
<template>This is <date format="%B" jformat="MMMMMMMMM"/></template>
</category>
<category><pattern>TIME</pattern>
<template>The time is <date format="%I:%M %p" jformat="h:mm a"/></template>
</category>
<category><pattern>DATE</pattern>
<template>Today is <date format="%B %d, %Y" jformat="MMMMMMMMM dd, YYYY"/></template>
</category>
<category><pattern>DATE AND TIME</pattern>
<template>The date and time is <date/></template>
</category>
<category><pattern>HOW MANY DAYS UNTIL CHRISTMAS</pattern>
<template><interval>
<jformat>MMMMMMMMM dd</jformat>
<style>days</style>
<from><date jformat="MMMMMMMMM dd"/></from>
<to>December 25</to>
</interval>
days until Christmas.</template>
</category>
</aiml>

@ -0,0 +1,242 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: daystoxmas.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>HOW MANY DAYS _ CHRISTMAS DAY</pattern>
<template><srai>how many days to Christmas</srai></template>
</category>
<category><pattern>HOW LONG _ CHRISTMAS DAY</pattern>
<template><srai>how many days to Christmas</srai></template>
</category>
<category><pattern>HOW LONG _ CHRISTMAS</pattern>
<template><srai>how many days to Christmas</srai></template>
</category>
<category><pattern>HOW MANY DAYS _ CHRISTMAS</pattern>
<template><random>
<li>Well today is<date format="%B %d"/> so that means that it is<srai>XMASDAYS<date format="%B %d"/></srai>until Christmas Day.</li>
<li>It is<srai>XMASDAYS<date format="%B %d"/></srai>until Christmas Day.</li>
<li>From<date format="%B %d"/>to Christmas Day is<srai>XMASDAYS<date format="%B %d"/></srai>.</li>
<li>According to my calendar, we have<srai>XMASDAYS<date format="%B %d"/></srai>to go before Christmas.</li>
</random></template>
</category>
<category><pattern>XMASDAYS *</pattern>
<template>still many more days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 20</pattern>
<template>66 days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 21</pattern>
<template>65 days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 22</pattern>
<template>64 days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 23</pattern>
<template>63 days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 24</pattern>
<template>62 days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 25</pattern>
<template>just 2 months</template>
</category>
<category><pattern>XMASDAYS OCTOBER 26</pattern>
<template>60 days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 27</pattern>
<template>59 days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 28</pattern>
<template>58 days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 29</pattern>
<template>57 days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 30</pattern>
<template>56 days</template>
</category>
<category><pattern>XMASDAYS OCTOBER 31</pattern>
<template>55 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 01</pattern>
<template>54 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 02</pattern>
<template>53 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 03</pattern>
<template>52 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 04</pattern>
<template>51 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 05</pattern>
<template>50 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 06</pattern>
<template>49 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 07</pattern>
<template>48 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 08</pattern>
<template>47 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 09</pattern>
<template>46 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 10</pattern>
<template>45 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 11</pattern>
<template>44 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 12</pattern>
<template>43 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 13</pattern>
<template>42 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 14</pattern>
<template>41 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 15</pattern>
<template>40 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 16</pattern>
<template>39 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 17</pattern>
<template>38 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 18</pattern>
<template>37 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 19</pattern>
<template>36 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 20</pattern>
<template>35 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 21</pattern>
<template>34 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 22</pattern>
<template>33 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 23</pattern>
<template>32 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 24</pattern>
<template>4 weeks and 3 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 25</pattern>
<template>only a month</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 26</pattern>
<template>4 weeks and a day</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 27</pattern>
<template>4 weeks</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 28</pattern>
<template>27 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 29</pattern>
<template>26 days</template>
</category>
<category><pattern>XMASDAYS NOVEMBER 30</pattern>
<template>25 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 01</pattern>
<template>24 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 02</pattern>
<template>3 weeks and 2 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 03</pattern>
<template>3 weeks and a day</template>
</category>
<category><pattern>XMASDAYS DECEMBER 04</pattern>
<template>just 3 weeks</template>
</category>
<category><pattern>XMASDAYS DECEMBER 05</pattern>
<template>20 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 06</pattern>
<template>2 weeks and 5 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 07</pattern>
<template>2 weeks and 4 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 08</pattern>
<template>2 weeks and 3 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 09</pattern>
<template>2 weeks and 2 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 10</pattern>
<template>2 weeks and a day</template>
</category>
<category><pattern>XMASDAYS DECEMBER 11</pattern>
<template>only 2 weeks</template>
</category>
<category><pattern>XMASDAYS DECEMBER 12</pattern>
<template>1 week and 6 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 13</pattern>
<template>1 week and 5 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 14</pattern>
<template>1 week and 4 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 15</pattern>
<template>10 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 16</pattern>
<template>9 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 17</pattern>
<template>8 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 18</pattern>
<template>7 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 19</pattern>
<template>6 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 20</pattern>
<template>only 5 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 21</pattern>
<template>4 more days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 22</pattern>
<template>just 3 more days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 23</pattern>
<template>only 2 days</template>
</category>
<category><pattern>XMASDAYS DECEMBER 24</pattern>
<template>only another day</template>
</category>
<category><pattern>XMASDAYS DECEMBER 25</pattern>
<template>1 whole year unless you count today</template>
</category>
<category><pattern>XMASDAYS DECEMBER *</pattern>
<template>nearly a year</template>
</category>
</aiml>

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: dialog.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>CLEAR DIALOG HISTORY</pattern>
<template>Cleared.
<think>
<set name="response1"/>
<set name="request1"/>
<set name="response2"/>
<set name="request2"/>
<set name="response3"/>
<set name="request3"/>
<set name="response4"/>
<set name="request4"/>
<set name="response5"/>
<set name="request5"/>
<set name="response6"/>
<set name="request6"/>
<set name="response7"/>
<set name="request7"/>
<set name="response8"/>
<set name="request8"/>
<set name="response9"/>
<set name="request9"/>
<set name="response10"/>
<set name="request10"/>
<set name="response11"/>
<set name="request11"/>
<set name="response12"/>
<set name="request12"/>
<set name="response13"/>
<set name="request13"/>
<set name="response14"/>
<set name="request14"/>
<set name="response15"/>
<set name="request15"/>
<set name="response16"/>
<set name="request16"/>
<set name="response17"/>
<set name="request17"/>
<set name="response18"/>
<set name="request18"/>
<set name="response19"/>
<set name="request19"/>
<set name="response20"/>
<set name="request20"/>
<set name="response21"/>
<set name="request21"/>
<set name="response22"/>
<set name="request22"/>
<set name="response23"/>
<set name="request23"/>
<set name="response24"/>
<set name="request24"/>
<set name="response25"/>
<set name="request25"/>
<set name="response26"/>
<set name="request26"/>
<set name="response27"/>
<set name="request27"/>
<set name="response28"/>
<set name="request28"/>
<set name="response29"/>
<set name="request29"/>
<set name="response30"/>
<set name="request30"/>
<set name="response31"/>
<set name="request31"/>
</think></template>
</category>
<category><pattern>SEND BUG REPORT</pattern>
<template>Sending transcript to callmom-info@pandorabots.com.
<oob><email><to>callmom-info@pandorabots.com</to><subject>Transcript of <bot name="name"/> with <get name="name"/> on <date/></subject><body>
<srai>DIALOG HISTORY</srai></body></email></oob></template>
</category>
<category><pattern>REPORT A PROBLEM</pattern>
<template><oob><dialog><title>Would you like to send a bug report?</title><list><item>Yes</item><item>No</item></list></dialog></oob>
To help the developers understand your problem, you can choose to send us a transcript of your recent conversation with CallMom. You can add your own comments to the email message too. Would you like to send a report?</template>
</category>
<category><pattern>YES</pattern><that>WOULD YOU LIKE TO SEND A REPORT</that>
<template><srai>SEND BUG REPORT</srai></template>
</category>
<category><pattern>XEXCHANGE *</pattern>
<template><think>Badly formatted dialog exchage: <star/></think></template>
</category>
<category><pattern>XEXCHANGE * XHUMAN * XBOT SENDING TRANSCRIPT *</pattern>
<template><think>Badly formatted dialog exchage: <star/></think></template>
</category>
<category><pattern>XEXCHANGE * XHUMAN * XBOT *</pattern>
<template><think>
<set name="request"><star index="2"/></set>
<set name="response"><star index="3"/></set>
</think>
<condition name="request"><li value="unknown"/>
<li><get name="name"/>: <get name="request"/>
<bot name="name"/>: <get name="response"/></li>
</condition></template>
</category>
<category><pattern>DIALOG HISTORY</pattern>
<template><srai>XEXCHANGE request31 XHUMAN <request index="31"/> XBOT <response index="31"/></srai>
<srai>XEXCHANGE request30 XHUMAN <request index="30"/> XBOT <response index="30"/></srai>
<srai>XEXCHANGE request29 XHUMAN <request index="29"/> XBOT <response index="29"/></srai>
<srai>XEXCHANGE request28 XHUMAN <request index="28"/> XBOT <response index="28"/></srai>
<srai>XEXCHANGE request27 XHUMAN <request index="27"/> XBOT <response index="27"/></srai>
<srai>XEXCHANGE request26 XHUMAN <request index="26"/> XBOT <response index="26"/></srai>
<srai>XEXCHANGE request25 XHUMAN <request index="25"/> XBOT <response index="25"/></srai>
<srai>XEXCHANGE request24 XHUMAN <request index="24"/> XBOT <response index="24"/></srai>
<srai>XEXCHANGE request23 XHUMAN <request index="23"/> XBOT <response index="23"/></srai>
<srai>XEXCHANGE request22 XHUMAN <request index="22"/> XBOT <response index="22"/></srai>
<srai>XEXCHANGE request21 XHUMAN <request index="21"/> XBOT <response index="21"/></srai>
<srai>XEXCHANGE request20 XHUMAN <request index="20"/> XBOT <response index="20"/></srai>
<srai>XEXCHANGE request19 XHUMAN <request index="19"/> XBOT <response index="19"/></srai>
<srai>XEXCHANGE request18 XHUMAN <request index="18"/> XBOT <response index="18"/></srai>
<srai>XEXCHANGE request17 XHUMAN <request index="17"/> XBOT <response index="17"/></srai>
<srai>XEXCHANGE request16 XHUMAN <request index="16"/> XBOT <response index="16"/></srai>
<srai>XEXCHANGE request15 XHUMAN <request index="15"/> XBOT <response index="15"/></srai>
<srai>XEXCHANGE request14 XHUMAN <request index="14"/> XBOT <response index="14"/></srai>
<srai>XEXCHANGE request13 XHUMAN <request index="13"/> XBOT <response index="13"/></srai>
<srai>XEXCHANGE request12 XHUMAN <request index="12"/> XBOT <response index="12"/></srai>
<srai>XEXCHANGE request11 XHUMAN <request index="11"/> XBOT <response index="11"/></srai>
<srai>XEXCHANGE request10 XHUMAN <request index="10"/> XBOT <response index="10"/></srai>
<srai>XEXCHANGE request9 XHUMAN <request index="9"/> XBOT <response index="9"/></srai>
<srai>XEXCHANGE request8 XHUMAN <request index="8"/> XBOT <response index="8"/></srai>
<srai>XEXCHANGE request7 XHUMAN <request index="7"/> XBOT <response index="7"/></srai>
<srai>XEXCHANGE request6 XHUMAN <request index="6"/> XBOT <response index="6"/></srai>
<srai>XEXCHANGE request5 XHUMAN <request index="5"/> XBOT <response index="5"/></srai>
<srai>XEXCHANGE request4 XHUMAN <request index="4"/> XBOT <response index="4"/></srai>
<srai>XEXCHANGE request3 XHUMAN <request index="3"/> XBOT <response index="3"/></srai>
<srai>XEXCHANGE request2 XHUMAN <request index="2"/> XBOT <response index="2"/></srai>
<srai>XEXCHANGE request1 XHUMAN <request index="1"/> XBOT <response index="1"/></srai></template>
</category>
<category><pattern>TRANSCRIPT</pattern>
<template>Sending transcript to <get name="email"/>.
<oob><email><to><get name="email"/></to><subject>Transcript of <bot name="name"/> with <get name="name"/> on <date/></subject><body>
<srai>DIALOG HISTORY</srai></body></email></oob></template>
</category>
</aiml>

@ -0,0 +1,466 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: drphil.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>PERSONALITY TEST</pattern>
<template><think>
<set name="score">0</set>
</think>
This is a test made up of 10 simple multiple choice questions that will help you see what sort of personality you have.<br/><br/>Type START to begin the test.</template>
</category>
<category><pattern>START</pattern><that>TYPE START TO BEGIN THE TEST</that>
<template><srai>ptquestion1</srai></template>
</category>
<category><pattern>PTBADCHOICE</pattern>
<template>There is no option "<get name="choice"/>" for this question. Please try again or type QUIT to finish the test.<br/><br/></template>
</category>
<category><pattern>PTQUESTION1</pattern>
<template><think>
<set name="topic">perstest</set>
</think>
1. When do you feel at your best?<br/><br/>
A) In the morning.<br/>
B) During the afternoon and early evening.<br/>
C) Late at night.<br/><br/>
Please answer either A, B or C for question 1 or QUIT to finish the test.</template>
</category>
<topic name="PERSTEST">
<category><pattern>_</pattern><that>_ ANSWER * FOR QUESTION 1 OR QUIT TO FINISH THE TEST</that>
<template><think>
<set name="topic"/>
<set name="choice"><star/></set>
</think>
<condition name="choice">
<li value="A"><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion2</srai></li>
<li value="B"><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion2</srai></li>
<li value="C"><srai>PTADD3</srai><srai>PTADD3</srai><srai>ptquestion2</srai></li>
<li value="QUIT">Ok. What would you like to do now?</li>
<li><srai>ptbadchoice</srai><srai>ptquestion1</srai></li>
</condition></template>
</category></topic>
<category><pattern>PTQUESTION2</pattern>
<template><think>
<set name="topic">perstest</set>
</think>
2. You usually walk...<br/><br/>
A) fairly fast, with long steps.<br/>
B) fairly fast, with little steps.<br/>
C) less fast, head up, looking the world in the face.<br/>
D) less fast, head down.<br/>
E) Very slowly.<br/><br/>
Please answer either A, B, C, D or E for question 2 or QUIT to finish the test.</template>
</category>
<topic name="PERSTEST">
<category><pattern>_</pattern><that>_ ANSWER * FOR QUESTION 2 OR QUIT TO FINISH THE TEST</that>
<template><think>
<set name="topic"/>
<set name="choice"><star/></set>
</think>
<condition name="choice">
<li value="A"><srai>PTADD3</srai><srai>PTADD3</srai><srai>ptquestion3</srai></li>
<li value="B"><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion3</srai></li>
<li value="C"><srai>PTADD3</srai><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion3</srai></li>
<li value="D"><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion3</srai></li>
<li value="E"><srai>PTADD1</srai><srai>ptquestion3</srai></li>
<li value="QUIT">Ok. What would you like to do now?</li>
<li><srai>ptbadchoice</srai><srai>ptquestion2</srai></li>
</condition></template>
</category></topic>
<category><pattern>PTQUESTION3</pattern>
<template><think>
<set name="topic">perstest</set>
</think>
3. When talking to people, you...<br/><br/>
A) Stand with your arms folded.<br/>
B) have your hands clasped.<br/>
C) have one or both your hands on your hips or in pockets.<br/>
D) touch or push the person to whom you are talking.<br/>
E) play with your ear, touch your chin or smooth your hair.<br/><br/>
Please answer either A, B, C, D or E for question 3 or QUIT to finish the test.</template>
</category>
<topic name="PERSTEST">
<category><pattern>_</pattern><that>_ ANSWER * FOR QUESTION 3 OR QUIT TO FINISH THE TEST</that>
<template><think>
<set name="topic"/>
<set name="choice"><star/></set>
</think>
<condition name="choice">
<li value="A"><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion4</srai></li>
<li value="B"><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion4</srai></li>
<li value="C"><srai>PTADD3</srai><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion4</srai></li>
<li value="D"><srai>PTADD3</srai><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion4</srai></li>
<li value="E"><srai>PTADD3</srai><srai>PTADD3</srai><srai>ptquestion4</srai></li>
<li value="QUIT">Ok. What would you like to do now?</li>
<li><srai>ptbadchoice</srai><srai>ptquestion3</srai></li>
</condition></template>
</category></topic>
<category><pattern>PTQUESTION4</pattern>
<template><think>
<set name="topic">perstest</set>
</think>
4. When relaxing, you sit with...<br/><br/>
A) Your knees bent with your legs neatly side by side.<br/>
B) Your legs crossed.<br/>
C) your legs stretched out or straight.<br/>
D) one leg curled under you.<br/><br/>
Please answer either A, B, C or D for question 4 or QUIT to finish the test.</template>
</category>
<topic name="PERSTEST">
<category><pattern>_</pattern><that>_ ANSWER * FOR QUESTION 4 OR QUIT TO FINISH THE TEST</that>
<template><think>
<set name="topic"/>
<set name="choice"><star/></set>
</think>
<condition name="choice">
<li value="A"><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion5</srai></li>
<li value="B"><srai>PTADD3</srai><srai>PTADD3</srai><srai>ptquestion5</srai></li>
<li value="C"><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion5</srai></li>
<li value="D"><srai>PTADD1</srai><srai>ptquestion5</srai></li>
<li value="QUIT">Ok. What would you like to do now?</li>
<li><srai>ptbadchoice</srai><srai>ptquestion4</srai></li>
</condition></template>
</category></topic>
<category><pattern>PTQUESTION5</pattern>
<template><think>
<set name="topic">perstest</set>
</think>
5. When something really amuses you, you react with...<br/><br/>
A) a big appreciated laugh.<br/>
B) a laugh, but not a loud one.<br/>
C) a quiet chuckle.<br/>
D) a sheepish smile.<br/><br/>
Please answer either A, B, C or D for question 5 or QUIT to finish the test.</template>
</category>
<topic name="PERSTEST">
<category><pattern>_</pattern><that>_ ANSWER * FOR QUESTION 5 OR QUIT TO FINISH THE TEST</that>
<template><think>
<set name="topic"/>
<set name="choice"><star/></set>
</think>
<condition name="choice">
<li value="A"><srai>PTADD3</srai><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion6</srai></li>
<li value="B"><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion6</srai></li>
<li value="C"><srai>PTADD3</srai><srai>ptquestion6</srai></li>
<li value="D"><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion6</srai></li>
<li value="QUIT">Ok. What would you like to do now?</li>
<li><srai>ptbadchoice</srai><srai>ptquestion5</srai></li>
</condition></template>
</category></topic>
<category><pattern>PTQUESTION6</pattern>
<template><think>
<set name="topic">perstest</set>
</think>
6. When you got to a party or social gathering, you...<br/><br/>
A) make a loud entrance so everyone notices you.<br/>
B) make a quiet entrance, looking around for someone you know.<br/>
C) make the quietest entrance, trying to stay unnoticed.<br/><br/>
Please answer either A, B or C for question 6 or QUIT to finish the test.</template>
</category>
<topic name="PERSTEST">
<category><pattern>_</pattern><that>_ ANSWER * FOR QUESTION 6 OR QUIT TO FINISH THE TEST</that>
<template><think>
<set name="topic"/>
<set name="choice"><star/></set>
</think>
<condition name="choice">
<li value="A"><srai>PTADD3</srai><srai>PTADD3</srai><srai>ptquestion7</srai></li>
<li value="B"><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion7</srai></li>
<li value="C"><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion7</srai></li>
<li value="QUIT">Ok. What would you like to do now?</li>
<li><srai>ptbadchoice</srai><srai>ptquestion6</srai></li>
</condition></template>
</category></topic>
<category><pattern>PTQUESTION7</pattern>
<template><think>
<set name="topic">perstest</set>
</think>
7. When you're working or concentrating very hard and you're interrupted, you...<br/><br/>
A) welcome the break.<br/>
B) feel extremely irritated.<br/>
C) vary between these two extremes.<br/><br/>
Please answer either A, B or C for question 7 or QUIT to finish the test.</template>
</category>
<topic name="PERSTEST">
<category><pattern>_</pattern><that>_ ANSWER * FOR QUESTION 7 OR QUIT TO FINISH THE TEST</that>
<template><think>
<set name="topic"/>
<set name="choice"><star/></set>
</think>
<condition name="choice">
<li value="A"><srai>PTADD3</srai><srai>PTADD3</srai><srai>ptquestion8</srai></li>
<li value="B"><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion8</srai></li>
<li value="C"><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion8</srai></li>
<li value="QUIT">Ok. What would you like to do now?</li>
<li><srai>ptbadchoice</srai><srai>ptquestion7</srai></li>
</condition></template>
</category></topic>
<category><pattern>PTQUESTION8</pattern>
<template><think>
<set name="topic">perstest</set>
</think>
8. Which of the following colours do you like most<br/><br/>
A) red or orange.<br/>
B) black.<br/>
C) yellow or light blue.<br/>
D) green.<br/>
E) dark blue or purple.<br/>
F) white.<br/>
G) Brown or grey.<br/><br/>
Please answer either A, B, C, D, E, F or G for question 8 or QUIT to finish the test.</template>
</category>
<topic name="PERSTEST">
<category><pattern>_</pattern><that>_ ANSWER * FOR QUESTION 8 OR QUIT TO FINISH THE TEST</that>
<template><think>
<set name="topic"/>
<set name="choice"><star/></set>
</think>
<condition name="choice">
<li value="A"><srai>PTADD3</srai><srai>PTADD3</srai><srai>ptquestion9</srai></li>
<li value="B"><srai>PTADD3</srai><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion9</srai></li>
<li value="C"><srai>PTADD3</srai><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion9</srai></li>
<li value="D"><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion9</srai></li>
<li value="E"><srai>PTADD3</srai><srai>ptquestion9</srai></li>
<li value="F"><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion9</srai></li>
<li value="G"><srai>PTADD1</srai><srai>ptquestion9</srai></li>
<li value="QUIT">Ok. What would you like to do now?</li>
<li><srai>ptbadchoice</srai><srai>ptquestion8</srai></li>
</condition></template>
</category></topic>
<category><pattern>PTQUESTION9</pattern>
<template><think>
<set name="topic">perstest</set>
</think>
9. When you are in bed at night, in those last few moments before going to sleep, you...<br/><br/>
A) stretched out on your back.<br/>
B) stretched out, face down on your stomach.<br/>
C) on your side, slightly curled.<br/>
D) with your head on one arm.<br/>
E) with your head under the covers.<br/><br/>
Please answer either A, B, C, D or E for question 9 or QUIT to finish the test.</template>
</category>
<topic name="PERSTEST">
<category><pattern>_</pattern><that>_ ANSWER * FOR QUESTION 9 OR QUIT TO FINISH THE TEST</that>
<template><think>
<set name="topic"/>
<set name="choice"><star/></set>
</think>
<condition name="choice">
<li value="A"><srai>PTADD3</srai><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion10</srai></li>
<li value="B"><srai>PTADD3</srai><srai>PTADD3</srai><srai>ptquestion10</srai></li>
<li value="C"><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptquestion10</srai></li>
<li value="D"><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptquestion10</srai></li>
<li value="E"><srai>PTADD1</srai><srai>ptquestion10</srai></li>
<li value="QUIT">Ok. What would you like to do now?</li>
<li><srai>ptbadchoice</srai><srai>ptquestion9</srai></li>
</condition></template>
</category></topic>
<category><pattern>PTQUESTION10</pattern>
<template><think>
<set name="topic">perstest</set>
</think>
10. You often dream that you are...<br/><br/>
A) falling.<br/>
B) fighting or struggling.<br/>
C) searching for something or somebody.<br/>
D) flying or floating<br/>
E) you usually have dreamless sleep<br/>
F) your dreams are always pleasant<br/><br/>
Please answer either A, B, C, D, E or F for question 10 or QUIT to finish the test.</template>
</category>
<topic name="PERSTEST">
<category><pattern>_</pattern><that>_ ANSWER * FOR QUESTION 10 OR QUIT TO FINISH THE TEST</that>
<template><think>
<set name="topic"/>
<set name="choice"><star/></set>
</think>
<condition name="choice">
<li value="A"><srai>PTADD3</srai><srai>PTADD1</srai><srai>ptworkoutscore</srai></li>
<li value="B"><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptworkoutscore</srai></li>
<li value="C"><srai>PTADD3</srai><srai>ptworkoutscore</srai></li>
<li value="D"><srai>PTADD3</srai><srai>PTADD1</srai><srai>PTADD1</srai><srai>ptworkoutscore</srai></li>
<li value="E"><srai>PTADD3</srai><srai>PTADD3</srai><srai>ptworkoutscore</srai></li>
<li value="F"><srai>PTADD1</srai><srai>ptworkoutscore</srai></li>
<li value="QUIT">Ok. What would you like to do now?</li>
<li><srai>ptbadchoice</srai><srai>ptquestion10</srai></li>
</condition></template>
</category></topic>
<category><pattern>PTWORKOUTSCORE</pattern>
<template><condition name="score">
<li value="15"><srai>ptunder21</srai></li>
<li value="16"><srai>ptunder21</srai></li>
<li value="17"><srai>ptunder21</srai></li>
<li value="18"><srai>ptunder21</srai></li>
<li value="19"><srai>ptunder21</srai></li>
<li value="20"><srai>ptunder21</srai></li>
<li value="21"><srai>pt21to30</srai></li>
<li value="22"><srai>pt21to30</srai></li>
<li value="23"><srai>pt21to30</srai></li>
<li value="24"><srai>pt21to30</srai></li>
<li value="25"><srai>pt21to30</srai></li>
<li value="26"><srai>pt21to30</srai></li>
<li value="27"><srai>pt21to30</srai></li>
<li value="28"><srai>pt21to30</srai></li>
<li value="29"><srai>pt21to30</srai></li>
<li value="30"><srai>pt21to30</srai></li>
<li value="31"><srai>pt31to40</srai></li>
<li value="32"><srai>pt31to40</srai></li>
<li value="33"><srai>pt31to40</srai></li>
<li value="34"><srai>pt31to40</srai></li>
<li value="35"><srai>pt31to40</srai></li>
<li value="36"><srai>pt31to40</srai></li>
<li value="37"><srai>pt31to40</srai></li>
<li value="38"><srai>pt31to40</srai></li>
<li value="39"><srai>pt31to40</srai></li>
<li value="40"><srai>pt41to50</srai></li>
<li value="41"><srai>pt41to50</srai></li>
<li value="42"><srai>pt41to50</srai></li>
<li value="43"><srai>pt41to50</srai></li>
<li value="44"><srai>pt41to50</srai></li>
<li value="45"><srai>pt41to50</srai></li>
<li value="46"><srai>pt41to50</srai></li>
<li value="47"><srai>pt41to50</srai></li>
<li value="48"><srai>pt41to50</srai></li>
<li value="49"><srai>pt41to50</srai></li>
<li value="50"><srai>pt41to50</srai></li>
<li value="51"><srai>pt51to60</srai></li>
<li value="52"><srai>pt51to60</srai></li>
<li value="53"><srai>pt51to60</srai></li>
<li value="54"><srai>pt51to60</srai></li>
<li value="55"><srai>pt51to60</srai></li>
<li value="56"><srai>pt51to60</srai></li>
<li value="57"><srai>pt51to60</srai></li>
<li value="58"><srai>pt51to60</srai></li>
<li value="59"><srai>pt51to60</srai></li>
<li value="60"><srai>pt51to60</srai></li>
<li value="61"><srai>ptover60</srai></li>
<li value="62"><srai>ptover60</srai></li>
<li value="63"><srai>ptover60</srai></li>
<li value="64"><srai>ptover60</srai></li>
<li value="65"><srai>ptover60</srai></li>
</condition></template>
</category>
<category><pattern>PTOVER60</pattern>
<template>You scored:<get name="score"/><br/><br/>
Others see you as someone they should "handle with care". You're seen as vain, self-centered and one who is extremely domineering.<br/><br/>Others may admire you, wishing they could be more like you but don't always trust you, hesitating to become too deeply involved with you.</template>
</category>
<category><pattern>PT51TO60</pattern>
<template>You scored:<get name="score"/><br/><br/>
Others see you as an exciting, highly volatile, rather impulsive personality; a natural leader, one who's quick to make decisions (though not always the right ones). They see you as bold and adventuresome, someone who will try anything once; someone who takes chances and enjoys an adventure.<br/><br/>They enjoy being in your company because of the excitement you radiate.</template>
</category>
<category><pattern>PT41TO50</pattern>
<template>You scored:<get name="score"/><br/><br/>
Others see you as fresh, lively, charming, amusing, practical and always interesting; someone who's constantly in the centre of attention, but sufficiently well-balanced not to let it go to their head.<br/><br/>They also see you as kind, considerate, and understanding; someone who'll always cheer them up and help them out.</template>
</category>
<category><pattern>PT31TO40</pattern>
<template>You scored:<get name="score"/><br/><br/>
Others see you as sensible, cautious, careful and practical. They see you as clever, gifted, or talented, but modest. Not a person who makes friends too quickly or easily, but someone who's extremely loyal to friends you do make and who expect the same loyalty in return.<br/><br/>Those who really get to know you realise it takes a lot to shake your trust in your friends, but equally that it takes you a long time to get over it if that trust is ever broken.</template>
</category>
<category><pattern>PT21TO30</pattern>
<template>You scored:<get name="score"/><br/><br/>
Your friends see you as painstaking and fussy. They see you as very cautious, extremely careful, a slow and steady plodder. It would really surprise them if you ever did something impulsively or on the spur of the moment, expecting you to examine everything carefully from every angle and then usually decide against it.<br/><br/>They think this reaction is caused partly by your careful nature.</template>
</category>
<category><pattern>PTUNDER21</pattern>
<template>You scored:<get name="score"/><br/><br/>
People think you are shy, nervous, and indecisive, someone who needs looking after, who always wants someone else to make the decisions and who doesn't want to get involved with anyone or anything! They see you as a worrier who always sees problems that don't exist. Some people think you're boring. Only those who know you well know that you aren't.</template>
</category>
<category><pattern>PTADD3</pattern>
<template><srai>PTADD1</srai>
<srai>PTADD1</srai>
<srai>PTADD1</srai></template>
</category>
<category><pattern>PTADD1</pattern>
<template><think>
<condition name="score">
<li value="0"><set name="score">1</set></li>
<li value="1"><set name="score">2</set></li>
<li value="2"><set name="score">3</set></li>
<li value="3"><set name="score">4</set></li>
<li value="4"><set name="score">5</set></li>
<li value="5"><set name="score">6</set></li>
<li value="6"><set name="score">7</set></li>
<li value="7"><set name="score">8</set></li>
<li value="8"><set name="score">9</set></li>
<li value="9"><set name="score">10</set></li>
<li value="10"><set name="score">11</set></li>
<li value="11"><set name="score">12</set></li>
<li value="12"><set name="score">13</set></li>
<li value="13"><set name="score">14</set></li>
<li value="14"><set name="score">15</set></li>
<li value="15"><set name="score">16</set></li>
<li value="16"><set name="score">17</set></li>
<li value="17"><set name="score">18</set></li>
<li value="18"><set name="score">19</set></li>
<li value="19"><set name="score">20</set></li>
<li value="20"><set name="score">21</set></li>
<li value="21"><set name="score">22</set></li>
<li value="22"><set name="score">23</set></li>
<li value="23"><set name="score">24</set></li>
<li value="24"><set name="score">25</set></li>
<li value="25"><set name="score">26</set></li>
<li value="26"><set name="score">27</set></li>
<li value="27"><set name="score">28</set></li>
<li value="28"><set name="score">29</set></li>
<li value="29"><set name="score">30</set></li>
<li value="30"><set name="score">31</set></li>
<li value="31"><set name="score">32</set></li>
<li value="32"><set name="score">33</set></li>
<li value="33"><set name="score">34</set></li>
<li value="34"><set name="score">35</set></li>
<li value="35"><set name="score">36</set></li>
<li value="36"><set name="score">37</set></li>
<li value="37"><set name="score">38</set></li>
<li value="38"><set name="score">39</set></li>
<li value="39"><set name="score">40</set></li>
<li value="40"><set name="score">41</set></li>
<li value="41"><set name="score">42</set></li>
<li value="42"><set name="score">43</set></li>
<li value="43"><set name="score">44</set></li>
<li value="44"><set name="score">45</set></li>
<li value="45"><set name="score">46</set></li>
<li value="46"><set name="score">47</set></li>
<li value="47"><set name="score">48</set></li>
<li value="48"><set name="score">49</set></li>
<li value="49"><set name="score">50</set></li>
<li value="50"><set name="score">51</set></li>
<li value="51"><set name="score">52</set></li>
<li value="52"><set name="score">53</set></li>
<li value="53"><set name="score">54</set></li>
<li value="54"><set name="score">55</set></li>
<li value="55"><set name="score">56</set></li>
<li value="56"><set name="score">57</set></li>
<li value="57"><set name="score">58</set></li>
<li value="58"><set name="score">59</set></li>
<li value="59"><set name="score">60</set></li>
<li value="60"><set name="score">61</set></li>
<li value="61"><set name="score">62</set></li>
<li value="62"><set name="score">63</set></li>
<li value="63"><set name="score">64</set></li>
<li value="64"><set name="score">65</set></li>
<li value="65"><set name="score">66</set></li>
</condition>
</think></template>
</category>
</aiml>

@ -0,0 +1,443 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: familiar.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>ASK FAMILIAR CONTACTNAME</pattern>
<template><think><set name="topic">ASKING FAMILIAR CONTACTNAME</set></think>
What is your <lowercase><get name="familiarpredicate"/></lowercase>'s name?</template>
</category>
<topic name="ASKING FAMILIAR CONTACTNAME">
<category><pattern>_</pattern><that>WHAT IS YOUR * S NAME</that>
<template><think>
<set name="topic">unknown</set>
<set name="contactname"><star/></set>
<set name="contactdest"><star/></set>
<set name="isshortanswer"><srai>ISSHORTANSWER <star/></srai></set>
</think>
<condition name="isshortanswer">
<li value="true">
<srai>REMEMBERFAMILIARNAME</srai>
<srai>RESUMEACTION <get name="modecom"/></srai>
</li>
<li><srai>CONTACTFINALIZE</srai> <srai><star/></srai></li>
</condition></template>
</category></topic>
<category><pattern>MY <SET>FAMILIARNAME</SET> S NAME IS *</pattern>
<template><think>
<set name="familiarpredicate"><srai>FAMILIARPREDICATE <star/></srai></set>
<set name="contactname"><star index="2"/></set>
</think>
<srai>REMEMBERFAMILIARNAME</srai></template>
</category>
<category><pattern>MY <SET>FAMILIARNAME</SET> IS <SET>NAME</SET></pattern>
<template><think>
<set name="familiarpredicate"><srai>FAMILIARPREDICATE <star/></srai></set>
<set name="contactname"><star index="2"/></set>
</think>
<srai>REMEMBERFAMILIARNAME</srai></template>
</category>
<category><pattern>* IS MY <SET>FAMILIARNAME</SET></pattern>
<template><srai>MY <star index="2"/> IS <star/></srai></template>
</category>
<category><pattern>FAMILIARPREDICATE NIECE</pattern>
<template>niece</template>
</category>
<category><pattern>FAMILIARPREDICATE MOM</pattern>
<template>mother</template>
</category>
<category><pattern>FAMILIARPREDICATE NEPHEW</pattern>
<template>nephew</template>
</category>
<category><pattern>FAMILIARPREDICATE GRANDMA</pattern>
<template>grandmother</template>
</category>
<category><pattern>FAMILIARPREDICATE DADA</pattern>
<template>father</template>
</category>
<category><pattern>FAMILIARPREDICATE WIFE</pattern>
<template>wife</template>
</category>
<category><pattern>FAMILIARPREDICATE HUSBAND</pattern>
<template>husband</template>
</category>
<category><pattern>FAMILIARPREDICATE DAUGHTER</pattern>
<template>daughter</template>
</category>
<category><pattern>FAMILIARPREDICATE GRANDFATHER</pattern>
<template>grandfather</template>
</category>
<category><pattern>FAMILIARPREDICATE DAD</pattern>
<template>father</template>
</category>
<category><pattern>FAMILIARPREDICATE MOMMY</pattern>
<template>mother</template>
</category>
<category><pattern>FAMILIARPREDICATE WIFEY</pattern>
<template>wife</template>
</category>
<category><pattern>FAMILIARPREDICATE FATHER</pattern>
<template>father</template>
</category>
<category><pattern>FAMILIARPREDICATE BOYFRIEND</pattern>
<template>boyfriend</template>
</category>
<category><pattern>FAMILIARPREDICATE UNCLE</pattern>
<template>uncle</template>
</category>
<category><pattern>FAMILIARPREDICATE HUBBY</pattern>
<template>husband</template>
</category>
<category><pattern>FAMILIARPREDICATE MOTHER</pattern>
<template>mother</template>
</category>
<category><pattern>FAMILIARPREDICATE MUM</pattern>
<template>mother</template>
</category>
<category><pattern>FAMILIARPREDICATE MA</pattern>
<template>mother</template>
</category>
<category><pattern>FAMILIARPREDICATE MUMMA</pattern>
<template>mother</template>
</category>
<category><pattern>FAMILIARPREDICATE BROTHER</pattern>
<template>brother</template>
</category>
<category><pattern>FAMILIARPREDICATE MOMMA</pattern>
<template>mother</template>
</category>
<category><pattern>FAMILIARPREDICATE GIRLFRIEND</pattern>
<template>girlfriend</template>
</category>
<category><pattern>FAMILIARPREDICATE SIS</pattern>
<template>sister</template>
</category>
<category><pattern>FAMILIARPREDICATE GRANDMOTHER</pattern>
<template>grandmother</template>
</category>
<category><pattern>FAMILIARPREDICATE GRANDMOM</pattern>
<template>grandmother</template>
</category>
<category><pattern>FAMILIARPREDICATE BESTFRIEND</pattern>
<template>bestfriend</template>
</category>
<category><pattern>FAMILIARPREDICATE *</pattern>
<template>unknown</template>
</category>
<category><pattern>FAMILIARPREDICATE FRIEND</pattern>
<template>friend</template>
</category>
<category><pattern>FAMILIARPREDICATE AUNT</pattern>
<template>aunt</template>
</category>
<category><pattern>FAMILIARPREDICATE SISTER</pattern>
<template>sister</template>
</category>
<category><pattern>FAMILIARPREDICATE ANT</pattern>
<template>aunt</template>
</category>
<category><pattern>FAMILIARPREDICATE DADDY</pattern>
<template>father</template>
</category>
<category><pattern>FAMILIARPREDICATE BRO</pattern>
<template>brother</template>
</category>
<category><pattern>FAMILIARPREDICATE SON</pattern>
<template>son</template>
</category>
<category><pattern>FAMILIARPREDICATE GRANDDAD</pattern>
<template>grandfather</template>
</category>
<category><pattern>FAMILIARPREDICATE MUMMY</pattern>
<template>mother</template>
</category>
<category><pattern>ISAFAMILIARNAME NIECE</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME MOM</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME NEPHEW</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME GRANDMA</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME DADA</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME WIFE</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME HUSBAND</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME DAUGHTER</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME GRANDFATHER</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME DAD</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME MOMMY</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME WIFEY</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME FATHER</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME BOYFRIEND</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME UNCLE</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME HUBBY</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME MOTHER</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME MUM</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME MA</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME MUMMA</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME BROTHER</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME MOMMA</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME GIRLFRIEND</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME SIS</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME GRANDMOTHER</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME GRANDMOM</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME BESTFRIEND</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME *</pattern>
<template>false</template>
</category>
<category><pattern>ISAFAMILIARNAME FRIEND</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME AUNT</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME SISTER</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME ANT</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME DADDY</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME BRO</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME SON</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME GRANDDAD</pattern>
<template>true</template>
</category>
<category><pattern>ISAFAMILIARNAME MUMMY</pattern>
<template>true</template>
</category>
<category><pattern>GETFAMILIARNAME</pattern>
<template><think>
<set name="familiarpredicate"><uppercase><get name="familiarpredicate"/></uppercase></set>
</think>
<condition name="familiarpredicate">
<li value="SON"><get name="son"/></li>
<li value="AUNT"><get name="aunt"/></li>
<li value="WIFE"><get name="wife"/></li>
<li value="UNCLE"><get name="uncle"/></li>
<li value="NIECE"><get name="niece"/></li>
<li value="NEPHEW"><get name="nephew"/></li>
<li value="MOTHER"><get name="mother"/></li>
<li value="FATHER"><get name="father"/></li>
<li value="SISTER"><get name="sister"/></li>
<li value="BROTHER"><get name="brother"/></li>
<li value="HUSBAND"><get name="husband"/></li>
<li value="DAUGHTER"><get name="daughter"/></li>
<li value="GRANDMOTHER"><get name="grandmother"/></li>
<li value="GRANDFATHER"><get name="grandfather"/></li>
<li>who</li>
</condition></template>
</category>
<category><pattern>FAMILIARPRONOUN NIECE</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN MOM</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN NEPHEW</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN GRANDMA</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN DADA</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN WIFE</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN HUSBAND</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN DAUGHTER</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN GRANDFATHER</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN DAD</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN MOMMY</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN WIFEY</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN FATHER</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN BOYFRIEND</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN UNCLE</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN HUBBY</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN MOTHER</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN MUM</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN MA</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN MUMMA</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN BROTHER</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN MOMMA</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN GIRLFRIEND</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN SIS</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN GRANDMOTHER</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN GRANDMOM</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN BESTFRIEND</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN *</pattern>
<template>unknown</template>
</category>
<category><pattern>FAMILIARPRONOUN FRIEND</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN AUNT</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN SISTER</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN ANT</pattern>
<template>her</template>
</category>
<category><pattern>FAMILIARPRONOUN DADDY</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN BRO</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN SON</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN GRANDDAD</pattern>
<template>his</template>
</category>
<category><pattern>FAMILIARPRONOUN MUMMY</pattern>
<template>her</template>
</category>
<category><pattern>REMEMBERFAMILIARNAME</pattern>
<template><think>
<set name="familiarpredicate"><uppercase><get name="familiarpredicate"/></uppercase></set>
</think>
<condition name="familiarpredicate">
<li value="UNKNOWN"/>
<li>
I will remember your <lowercase><get name="familiarpredicate"/></lowercase>'s name is
<set name="contactname">
<condition name="familiarpredicate">
<li value="SON"><set name="son"><get name="contactname"/></set></li>
<li value="AUNT"><set name="aunt"><get name="contactname"/></set></li>
<li value="WIFE"><set name="wife"><get name="contactname"/></set></li>
<li value="NIECE"><set name="niece"><get name="contactname"/></set></li>
<li value="UNCLE"><set name="uncle"><get name="contactname"/></set></li>
<li value="NEPHEW"><set name="niece"><get name="contactname"/></set></li>
<li value="MOTHER"><set name="mother"><get name="contactname"/></set></li>
<li value="FATHER"><set name="father"><get name="contactname"/></set></li>
<li value="SISTER"><set name="sister"><get name="contactname"/></set></li>
<li value="BROTHER"><set name="brother"><get name="contactname"/></set></li>
<li value="HUSBAND"><set name="husband"><get name="contactname"/></set></li>
<li value="DAUGHTER"><set name="daughter"><get name="contactname"/></set></li>
<li value="BOYFRIEND"><set name="boyfriend"><get name="contactname"/></set></li>
<li value="GIRLFRIEND"><set name="girlfriend"><get name="contactname"/></set></li>
<li value="GRANDMOTHER"><set name="grandmother"><get name="contactname"/></set></li>
<li value="GRANDFATHER"><set name="grandfather"><get name="contactname"/></set></li>
<li>who</li>
</condition>
</set>.
</li>
</condition></template>
</category>
</aiml>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,469 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: hangman.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>TEXTHANGMAN</pattern>
<template><think>
<set name="lives">10 lives</set>
</think>
It's something to do with today.
<srai>XCHOOSEHANGMANWORD</srai></template>
</category>
<category><pattern>XCHOOSEHANGMANWORD</pattern>
<template><think>
<random>
<li><set name="puzzgrid">CHATBOTS</set><set name="puzzanswer">CHATBOTS</set></li>
<li><set name="puzzgrid">ARTIFICIAL1INTELLIGENCE</set><set name="puzzanswer">ARTIFICIAL INTELLIGENCE</set></li>
<li><set name="puzzgrid">JUDGES</set><set name="puzzanswer">JUDGES</set></li>
</random>
<set name="puzzlett1">?</set>
<set name="puzzlett2">?</set>
<set name="puzzlett3">?</set>
<set name="puzzlett4">?</set>
<set name="puzzlett5">?</set>
<set name="puzzlett6">?</set>
<set name="puzzlett7">?</set>
<set name="puzzlett8">?</set>
<set name="puzzlett9">?</set>
<set name="puzzlett10">?</set>
<set name="puzzlett11">?</set>
<set name="puzzlett12">?</set>
<set name="puzzlett13">?</set>
<set name="puzzlett14">?</set>
<set name="puzzlett15">?</set>
<set name="puzzlett16">?</set>
<set name="puzzlett17">?</set>
<set name="puzzlett18">?</set>
<set name="puzzlett19">?</set>
<set name="puzzlett20">?</set>
<set name="puzzlett21">?</set>
<set name="puzzlett22">?</set>
<set name="puzzlett23">?</set>
<set name="puzzlett24">?</set>
<set name="puzzlett25">?</set>
<set name="puzzgrid1">-</set>
<set name="puzzgrid2">-</set>
<set name="puzzgrid3">-</set>
<set name="puzzgrid4">-</set>
<set name="puzzgrid5">-</set>
<set name="puzzgrid6">-</set>
<set name="puzzgrid7">-</set>
<set name="puzzgrid8">-</set>
<set name="puzzgrid9">-</set>
<set name="puzzgrid10">-</set>
<set name="puzzgrid11">-</set>
<set name="puzzgrid12">-</set>
<set name="puzzgrid13">-</set>
<set name="puzzgrid14">-</set>
<set name="puzzgrid15">-</set>
<set name="puzzgrid16">-</set>
<set name="puzzgrid17">-</set>
<set name="puzzgrid18">-</set>
<set name="puzzgrid19">-</set>
<set name="puzzgrid20">-</set>
<set name="puzzgrid21">-</set>
<set name="puzzgrid22">-</set>
<set name="puzzgrid23">-</set>
<set name="puzzgrid24">-</set>
<set name="puzzgrid25">-</set>
<srai>XCREATEHANGMANPUZZLE <explode><get name="puzzgrid"/></explode></srai>
<srai>XDELETEWEIRDLETTERS</srai>
<srai>XADDDASHESTOGRID</srai>
</think>
<srai>XDISPLAYHANGMANGRID</srai>
<srai>XUSERGUESSLETTER</srai></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE *</pattern>
<template><set name="puzzlength">1</set><set name="puzzlett1"><star index="1"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * *</pattern>
<template><set name="puzzlength">2</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * *</pattern>
<template><set name="puzzlength">3</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * *</pattern>
<template><set name="puzzlength">4</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * *</pattern>
<template><set name="puzzlength">5</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * *</pattern>
<template><set name="puzzlength">6</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * *</pattern>
<template><set name="puzzlength">7</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * *</pattern>
<template><set name="puzzlength">8</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * *</pattern>
<template><set name="puzzlength">9</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * *</pattern>
<template><set name="puzzlength">10</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * *</pattern>
<template><set name="puzzlength">11</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">12</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">13</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">14</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett13"><star index="14"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">15</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">16</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set><set name="puzzlett16"><star index="16"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">17</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set><set name="puzzlett16"><star index="16"/></set><set name="puzzlett17"><star index="17"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">18</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set><set name="puzzlett16"><star index="16"/></set><set name="puzzlett17"><star index="17"/></set><set name="puzzlett18"><star index="18"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">19</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set><set name="puzzlett16"><star index="16"/></set><set name="puzzlett17"><star index="17"/></set><set name="puzzlett18"><star index="18"/></set><set name="puzzlett19"><star index="19"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">20</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set><set name="puzzlett16"><star index="16"/></set><set name="puzzlett17"><star index="17"/></set><set name="puzzlett18"><star index="18"/></set><set name="puzzlett19"><star index="19"/></set><set name="puzzlett20"><star index="20"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">21</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set><set name="puzzlett16"><star index="16"/></set><set name="puzzlett17"><star index="17"/></set><set name="puzzlett18"><star index="18"/></set><set name="puzzlett19"><star index="19"/></set><set name="puzzlett20"><star index="20"/></set><set name="puzzlett21"><star index="21"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">22</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set><set name="puzzlett16"><star index="16"/></set><set name="puzzlett17"><star index="17"/></set><set name="puzzlett18"><star index="18"/></set><set name="puzzlett19"><star index="19"/></set><set name="puzzlett20"><star index="20"/></set><set name="puzzlett21"><star index="21"/></set><set name="puzzlett22"><star index="22"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">23</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set><set name="puzzlett16"><star index="16"/></set><set name="puzzlett17"><star index="17"/></set><set name="puzzlett18"><star index="18"/></set><set name="puzzlett19"><star index="19"/></set><set name="puzzlett20"><star index="20"/></set><set name="puzzlett21"><star index="21"/></set><set name="puzzlett22"><star index="22"/></set><set name="puzzlett23"><star index="23"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">24</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set><set name="puzzlett16"><star index="16"/></set><set name="puzzlett17"><star index="17"/></set><set name="puzzlett18"><star index="18"/></set><set name="puzzlett19"><star index="19"/></set><set name="puzzlett20"><star index="20"/></set><set name="puzzlett21"><star index="21"/></set><set name="puzzlett22"><star index="22"/></set><set name="puzzlett23"><star index="23"/></set><set name="puzzlett24"><star index="24"/></set></template>
</category>
<category><pattern>XCREATEHANGMANPUZZLE * * * * * * * * * * * * * * * * * * * * * * * * *</pattern>
<template><set name="puzzlength">25</set><set name="puzzlett1"><star index="1"/></set><set name="puzzlett2"><star index="2"/></set><set name="puzzlett3"><star index="3"/></set><set name="puzzlett4"><star index="4"/></set><set name="puzzlett5"><star index="5"/></set><set name="puzzlett6"><star index="6"/></set><set name="puzzlett7"><star index="7"/></set><set name="puzzlett8"><star index="8"/></set><set name="puzzlett9"><star index="9"/></set><set name="puzzlett10"><star index="10"/></set><set name="puzzlett11"><star index="11"/></set><set name="puzzlett12"><star index="12"/></set><set name="puzzlett13"><star index="13"/></set><set name="puzzlett14"><star index="14"/></set><set name="puzzlett15"><star index="15"/></set><set name="puzzlett16"><star index="16"/></set><set name="puzzlett17"><star index="17"/></set><set name="puzzlett18"><star index="18"/></set><set name="puzzlett19"><star index="19"/></set><set name="puzzlett20"><star index="20"/></set><set name="puzzlett21"><star index="21"/></set><set name="puzzlett22"><star index="22"/></set><set name="puzzlett23"><star index="23"/></set><set name="puzzlett24"><star index="24"/></set><set name="puzzlett25"><star index="25"/></set></template>
</category>
<category><pattern>XDELETEWEIRDLETTERS</pattern>
<template><condition name="puzzlett1"><li value="BE"><set name="puzzlett1">B</set></li><li value="ARE"><set name="puzzlett1">R</set></li><li value="YOU"><set name="puzzlett1">U</set></li><li value="WHY"><set name="puzzlett1">Y</set></li></condition>
<condition name="puzzlett2"><li value="BE"><set name="puzzlett2">B</set></li><li value="ARE"><set name="puzzlett2">R</set></li><li value="YOU"><set name="puzzlett2">U</set></li><li value="WHY"><set name="puzzlett2">Y</set></li></condition>
<condition name="puzzlett3"><li value="BE"><set name="puzzlett3">B</set></li><li value="ARE"><set name="puzzlett3">R</set></li><li value="YOU"><set name="puzzlett3">U</set></li><li value="WHY"><set name="puzzlett3">Y</set></li></condition>
<condition name="puzzlett4"><li value="BE"><set name="puzzlett4">B</set></li><li value="ARE"><set name="puzzlett4">R</set></li><li value="YOU"><set name="puzzlett4">U</set></li><li value="WHY"><set name="puzzlett4">Y</set></li></condition>
<condition name="puzzlett5"><li value="BE"><set name="puzzlett5">B</set></li><li value="ARE"><set name="puzzlett5">R</set></li><li value="YOU"><set name="puzzlett5">U</set></li><li value="WHY"><set name="puzzlett5">Y</set></li></condition>
<condition name="puzzlett6"><li value="BE"><set name="puzzlett6">B</set></li><li value="ARE"><set name="puzzlett6">R</set></li><li value="YOU"><set name="puzzlett6">U</set></li><li value="WHY"><set name="puzzlett6">Y</set></li></condition>
<condition name="puzzlett7"><li value="BE"><set name="puzzlett7">B</set></li><li value="ARE"><set name="puzzlett7">R</set></li><li value="YOU"><set name="puzzlett7">U</set></li><li value="WHY"><set name="puzzlett7">Y</set></li></condition>
<condition name="puzzlett8"><li value="BE"><set name="puzzlett8">B</set></li><li value="ARE"><set name="puzzlett8">R</set></li><li value="YOU"><set name="puzzlett8">U</set></li><li value="WHY"><set name="puzzlett8">Y</set></li></condition>
<condition name="puzzlett9"><li value="BE"><set name="puzzlett9">B</set></li><li value="ARE"><set name="puzzlett9">R</set></li><li value="YOU"><set name="puzzlett9">U</set></li><li value="WHY"><set name="puzzlett9">Y</set></li></condition>
<condition name="puzzlett10"><li value="BE"><set name="puzzlett10">B</set></li><li value="ARE"><set name="puzzlett10">R</set></li><li value="YOU"><set name="puzzlett10">U</set></li><li value="WHY"><set name="puzzlett10">Y</set></li></condition>
<condition name="puzzlett11"><li value="BE"><set name="puzzlett11">B</set></li><li value="ARE"><set name="puzzlett11">R</set></li><li value="YOU"><set name="puzzlett11">U</set></li><li value="WHY"><set name="puzzlett11">Y</set></li></condition>
<condition name="puzzlett12"><li value="BE"><set name="puzzlett12">B</set></li><li value="ARE"><set name="puzzlett12">R</set></li><li value="YOU"><set name="puzzlett12">U</set></li><li value="WHY"><set name="puzzlett12">Y</set></li></condition>
<condition name="puzzlett13"><li value="BE"><set name="puzzlett13">B</set></li><li value="ARE"><set name="puzzlett13">R</set></li><li value="YOU"><set name="puzzlett13">U</set></li><li value="WHY"><set name="puzzlett13">Y</set></li></condition>
<condition name="puzzlett14"><li value="BE"><set name="puzzlett14">B</set></li><li value="ARE"><set name="puzzlett14">R</set></li><li value="YOU"><set name="puzzlett14">U</set></li><li value="WHY"><set name="puzzlett14">Y</set></li></condition>
<condition name="puzzlett15"><li value="BE"><set name="puzzlett15">B</set></li><li value="ARE"><set name="puzzlett15">R</set></li><li value="YOU"><set name="puzzlett15">U</set></li><li value="WHY"><set name="puzzlett15">Y</set></li></condition>
<condition name="puzzlett16"><li value="BE"><set name="puzzlett16">B</set></li><li value="ARE"><set name="puzzlett16">R</set></li><li value="YOU"><set name="puzzlett16">U</set></li><li value="WHY"><set name="puzzlett16">Y</set></li></condition>
<condition name="puzzlett17"><li value="BE"><set name="puzzlett17">B</set></li><li value="ARE"><set name="puzzlett17">R</set></li><li value="YOU"><set name="puzzlett17">U</set></li><li value="WHY"><set name="puzzlett17">Y</set></li></condition>
<condition name="puzzlett18"><li value="BE"><set name="puzzlett18">B</set></li><li value="ARE"><set name="puzzlett18">R</set></li><li value="YOU"><set name="puzzlett18">U</set></li><li value="WHY"><set name="puzzlett18">Y</set></li></condition>
<condition name="puzzlett19"><li value="BE"><set name="puzzlett19">B</set></li><li value="ARE"><set name="puzzlett19">R</set></li><li value="YOU"><set name="puzzlett19">U</set></li><li value="WHY"><set name="puzzlett19">Y</set></li></condition>
<condition name="puzzlett20"><li value="BE"><set name="puzzlett20">B</set></li><li value="ARE"><set name="puzzlett20">R</set></li><li value="YOU"><set name="puzzlett20">U</set></li><li value="WHY"><set name="puzzlett20">Y</set></li></condition>
<condition name="puzzlett21"><li value="BE"><set name="puzzlett21">B</set></li><li value="ARE"><set name="puzzlett21">R</set></li><li value="YOU"><set name="puzzlett21">U</set></li><li value="WHY"><set name="puzzlett21">Y</set></li></condition>
<condition name="puzzlett22"><li value="BE"><set name="puzzlett22">B</set></li><li value="ARE"><set name="puzzlett22">R</set></li><li value="YOU"><set name="puzzlett22">U</set></li><li value="WHY"><set name="puzzlett22">Y</set></li></condition>
<condition name="puzzlett23"><li value="BE"><set name="puzzlett23">B</set></li><li value="ARE"><set name="puzzlett23">R</set></li><li value="YOU"><set name="puzzlett23">U</set></li><li value="WHY"><set name="puzzlett23">Y</set></li></condition>
<condition name="puzzlett24"><li value="BE"><set name="puzzlett24">B</set></li><li value="ARE"><set name="puzzlett24">R</set></li><li value="YOU"><set name="puzzlett24">U</set></li><li value="WHY"><set name="puzzlett24">Y</set></li></condition>
<condition name="puzzlett25"><li value="BE"><set name="puzzlett25">B</set></li><li value="ARE"><set name="puzzlett25">R</set></li><li value="YOU"><set name="puzzlett25">U</set></li><li value="WHY"><set name="puzzlett25">Y</set></li></condition></template>
</category>
<category><pattern>XADDDASHESTOGRID</pattern>
<template><condition name="puzzlett1"><li value="1"><set name="puzzgrid1">/</set></li></condition>
<condition name="puzzlett2"><li value="1"><set name="puzzgrid2">/</set></li></condition>
<condition name="puzzlett3"><li value="1"><set name="puzzgrid3">/</set></li></condition>
<condition name="puzzlett4"><li value="1"><set name="puzzgrid4">/</set></li></condition>
<condition name="puzzlett5"><li value="1"><set name="puzzgrid5">/</set></li></condition>
<condition name="puzzlett6"><li value="1"><set name="puzzgrid6">/</set></li></condition>
<condition name="puzzlett7"><li value="1"><set name="puzzgrid7">/</set></li></condition>
<condition name="puzzlett8"><li value="1"><set name="puzzgrid8">/</set></li></condition>
<condition name="puzzlett9"><li value="1"><set name="puzzgrid9">/</set></li></condition>
<condition name="puzzlett10"><li value="1"><set name="puzzgrid10">/</set></li></condition>
<condition name="puzzlett11"><li value="1"><set name="puzzgrid11">/</set></li></condition>
<condition name="puzzlett12"><li value="1"><set name="puzzgrid12">/</set></li></condition>
<condition name="puzzlett13"><li value="1"><set name="puzzgrid13">/</set></li></condition>
<condition name="puzzlett14"><li value="1"><set name="puzzgrid14">/</set></li></condition>
<condition name="puzzlett15"><li value="1"><set name="puzzgrid15">/</set></li></condition>
<condition name="puzzlett16"><li value="1"><set name="puzzgrid16">/</set></li></condition>
<condition name="puzzlett17"><li value="1"><set name="puzzgrid17">/</set></li></condition>
<condition name="puzzlett18"><li value="1"><set name="puzzgrid18">/</set></li></condition>
<condition name="puzzlett19"><li value="1"><set name="puzzgrid19">/</set></li></condition>
<condition name="puzzlett20"><li value="1"><set name="puzzgrid20">/</set></li></condition>
<condition name="puzzlett21"><li value="1"><set name="puzzgrid21">/</set></li></condition>
<condition name="puzzlett22"><li value="1"><set name="puzzgrid22">/</set></li></condition>
<condition name="puzzlett23"><li value="1"><set name="puzzgrid23">/</set></li></condition>
<condition name="puzzlett24"><li value="1"><set name="puzzgrid24">/</set></li></condition>
<condition name="puzzlett25"><li value="1"><set name="puzzgrid25">/</set></li></condition></template>
</category>
<category><pattern>XDISPLAYHANGMANGRID</pattern>
<template><condition name="puzzlength">
<li value="1"><get name="puzzgrid1"/></li>
<li value="2"><get name="puzzgrid1"/><get name="puzzgrid2"/></li>
<li value="3"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/></li>
<li value="4"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/></li>
<li value="5"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/></li>
<li value="6"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/></li>
<li value="7"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/></li>
<li value="8"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/></li>
<li value="9"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/></li>
<li value="10"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/></li>
<li value="11"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/></li>
<li value="12"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/></li>
<li value="13"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/></li>
<li value="14"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/></li>
<li value="15"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/></li>
<li value="16"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/><get name="puzzgrid16"/></li>
<li value="17"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/><get name="puzzgrid16"/><get name="puzzgrid17"/></li>
<li value="18"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/><get name="puzzgrid16"/><get name="puzzgrid17"/><get name="puzzgrid18"/></li>
<li value="19"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/><get name="puzzgrid16"/><get name="puzzgrid17"/><get name="puzzgrid18"/><get name="puzzgrid19"/></li>
<li value="20"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/><get name="puzzgrid16"/><get name="puzzgrid17"/><get name="puzzgrid18"/><get name="puzzgrid19"/><get name="puzzgrid20"/></li>
<li value="21"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/><get name="puzzgrid16"/><get name="puzzgrid17"/><get name="puzzgrid18"/><get name="puzzgrid19"/><get name="puzzgrid20"/><get name="puzzgrid21"/></li>
<li value="22"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/><get name="puzzgrid16"/><get name="puzzgrid17"/><get name="puzzgrid18"/><get name="puzzgrid19"/><get name="puzzgrid20"/><get name="puzzgrid21"/><get name="puzzgrid22"/></li>
<li value="23"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/><get name="puzzgrid16"/><get name="puzzgrid17"/><get name="puzzgrid18"/><get name="puzzgrid19"/><get name="puzzgrid20"/><get name="puzzgrid21"/><get name="puzzgrid22"/><get name="puzzgrid23"/></li>
<li value="24"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/><get name="puzzgrid16"/><get name="puzzgrid17"/><get name="puzzgrid18"/><get name="puzzgrid19"/><get name="puzzgrid20"/><get name="puzzgrid21"/><get name="puzzgrid22"/><get name="puzzgrid23"/><get name="puzzgrid24"/></li>
<li value="25"><get name="puzzgrid1"/><get name="puzzgrid2"/><get name="puzzgrid3"/><get name="puzzgrid4"/><get name="puzzgrid5"/><get name="puzzgrid6"/><get name="puzzgrid7"/><get name="puzzgrid8"/><get name="puzzgrid9"/><get name="puzzgrid10"/><get name="puzzgrid11"/><get name="puzzgrid12"/><get name="puzzgrid13"/><get name="puzzgrid14"/><get name="puzzgrid15"/><get name="puzzgrid16"/><get name="puzzgrid17"/><get name="puzzgrid18"/><get name="puzzgrid19"/><get name="puzzgrid20"/><get name="puzzgrid21"/><get name="puzzgrid22"/><get name="puzzgrid23"/><get name="puzzgrid24"/><get name="puzzgrid25"/></li>
</condition></template>
</category>
<category><pattern>XUSERGUESSLETTER</pattern>
<template><think><set name="topic">HANGMANGAME</set></think>
Guess a letter.</template>
</category>
<category><pattern>XHANGMANMAINLOOP</pattern>
<template><condition name="kount">
<li value="0">No <get name="letterguess"/>. <srai>XTAKELIFE</srai><get name="lives"/> left</li>
<li value="1">1 <get name="letterguess"/></li>
<li>Yep</li>
</condition>
<br/>
<srai>XDISPLAYHANGMANGRID</srai></template>
</category>
<topic name="HANGMANGAME">
<category><pattern>*</pattern>
<template>Is that your guess? The answer was <get name="puzzanswer"/><think><set name="topic">nothing</set></think></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>A</pattern>
<template><think><set name="letterguess">A</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>B</pattern>
<template><think><set name="letterguess">B</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>C</pattern>
<template><think><set name="letterguess">C</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>D</pattern>
<template><think><set name="letterguess">D</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>E</pattern>
<template><think><set name="letterguess">E</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>F</pattern>
<template><think><set name="letterguess">F</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>G</pattern>
<template><think><set name="letterguess">G</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>H</pattern>
<template><think><set name="letterguess">H</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>I</pattern>
<template><think><set name="letterguess">I</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>J</pattern>
<template><think><set name="letterguess">J</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>K</pattern>
<template><think><set name="letterguess">K</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>L</pattern>
<template><think><set name="letterguess">L</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>M</pattern>
<template><think><set name="letterguess">M</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>N</pattern>
<template><think><set name="letterguess">N</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>O</pattern>
<template><think><set name="letterguess">O</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>P</pattern>
<template><think><set name="letterguess">P</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>Q</pattern>
<template><think><set name="letterguess">Q</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>R</pattern>
<template><think><set name="letterguess">R</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>S</pattern>
<template><think><set name="letterguess">S</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>T</pattern>
<template><think><set name="letterguess">T</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>YOU</pattern>
<template><think><set name="letterguess">U</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>V</pattern>
<template><think><set name="letterguess">V</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>W</pattern>
<template><think><set name="letterguess">W</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>X</pattern>
<template><think><set name="letterguess">X</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>Y</pattern>
<template><think><set name="letterguess">Y</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<topic name="HANGMANGAME">
<category><pattern>Z</pattern>
<template><think><set name="letterguess">Z</set></think><srai>XCHECKGRIDFORLETTER</srai></template>
</category></topic>
<category><pattern>XCHECKGRIDFORLETTER</pattern>
<template><think>
<set name="kount">0</set>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett1"/></srai><condition name="match"><li value="YES"><set name="puzzgrid1"><get name="puzzlett1"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett2"/></srai><condition name="match"><li value="YES"><set name="puzzgrid2"><get name="puzzlett2"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett3"/></srai><condition name="match"><li value="YES"><set name="puzzgrid3"><get name="puzzlett3"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett4"/></srai><condition name="match"><li value="YES"><set name="puzzgrid4"><get name="puzzlett4"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett5"/></srai><condition name="match"><li value="YES"><set name="puzzgrid5"><get name="puzzlett5"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett6"/></srai><condition name="match"><li value="YES"><set name="puzzgrid6"><get name="puzzlett6"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett7"/></srai><condition name="match"><li value="YES"><set name="puzzgrid7"><get name="puzzlett7"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett8"/></srai><condition name="match"><li value="YES"><set name="puzzgrid8"><get name="puzzlett8"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett9"/></srai><condition name="match"><li value="YES"><set name="puzzgrid9"><get name="puzzlett9"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett10"/></srai><condition name="match"><li value="YES"><set name="puzzgrid10"><get name="puzzlett10"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett11"/></srai><condition name="match"><li value="YES"><set name="puzzgrid11"><get name="puzzlett11"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett12"/></srai><condition name="match"><li value="YES"><set name="puzzgrid12"><get name="puzzlett12"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett13"/></srai><condition name="match"><li value="YES"><set name="puzzgrid13"><get name="puzzlett13"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett14"/></srai><condition name="match"><li value="YES"><set name="puzzgrid14"><get name="puzzlett14"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett15"/></srai><condition name="match"><li value="YES"><set name="puzzgrid15"><get name="puzzlett15"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett16"/></srai><condition name="match"><li value="YES"><set name="puzzgrid16"><get name="puzzlett16"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett17"/></srai><condition name="match"><li value="YES"><set name="puzzgrid17"><get name="puzzlett17"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett18"/></srai><condition name="match"><li value="YES"><set name="puzzgrid18"><get name="puzzlett18"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett19"/></srai><condition name="match"><li value="YES"><set name="puzzgrid19"><get name="puzzlett19"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett20"/></srai><condition name="match"><li value="YES"><set name="puzzgrid20"><get name="puzzlett20"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett21"/></srai><condition name="match"><li value="YES"><set name="puzzgrid21"><get name="puzzlett21"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett22"/></srai><condition name="match"><li value="YES"><set name="puzzgrid22"><get name="puzzlett22"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett23"/></srai><condition name="match"><li value="YES"><set name="puzzgrid23"><get name="puzzlett23"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett24"/></srai><condition name="match"><li value="YES"><set name="puzzgrid24"><get name="puzzlett24"/></set><srai>XCOUNTLETTERS</srai></li></condition>
<srai>botcompare <get name="letterguess"/> XSPLIT <get name="puzzlett25"/></srai><condition name="match"><li value="YES"><set name="puzzgrid25"><get name="puzzlett25"/></set><srai>XCOUNTLETTERS</srai></li></condition>
</think>
<srai>XHANGMANMAINLOOP</srai></template>
</category>
<category><pattern>XTAKELIFE</pattern>
<template><think>
<condition name="lives">
<li value="10 lives"><set name="lives">9 lives</set></li>
<li value="9 lives"><set name="lives">8 lives</set></li>
<li value="8 lives"><set name="lives">7 lives</set></li>
<li value="7 lives"><set name="lives">6 lives</set></li>
<li value="6 lives"><set name="lives">5 lives</set></li>
<li value="5 lives"><set name="lives">4 lives</set></li>
<li value="4 lives"><set name="lives">3 lives</set></li>
<li value="3 lives"><set name="lives">2 lives</set></li>
<li value="2 lives"><set name="lives">1 life</set></li>
<li value="1 life"><set name="lives">0 lives</set></li>
</condition>
</think></template>
</category>
<category><pattern>XCOUNTLETTERS</pattern>
<template><think>
<condition name="kount">
<li value="0"><set name="kount">1</set></li>
<li value="1"><set name="kount">2</set></li>
<li value="2"><set name="kount">3</set></li>
<li value="3"><set name="kount">4</set></li>
<li value="4"><set name="kount">5</set></li>
<li value="5"><set name="kount">6</set></li>
<li value="6"><set name="kount">7</set></li>
<li value="7"><set name="kount">8</set></li>
<li value="8"><set name="kount">9</set></li>
<li value="9"><set name="kount">10</set></li>
<li value="10"><set name="kount">11</set></li>
<li value="11"><set name="kount">12</set></li>
<li value="12"><set name="kount">13</set></li>
<li value="13"><set name="kount">14</set></li>
<li value="14"><set name="kount">15</set></li>
<li value="15"><set name="kount">16</set></li>
<li value="16"><set name="kount">17</set></li>
<li value="17"><set name="kount">18</set></li>
<li value="18"><set name="kount">19</set></li>
<li value="19"><set name="kount">20</set></li>
<li value="20"><set name="kount">21</set></li>
</condition>
</think></template>
</category>
</aiml>

@ -0,0 +1,250 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: happy.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>HAPPY BIRTHDAY</pattern>
<template><srai>BIRTHDAYCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>BIRTHDAYCHECK DECEMBER *</pattern>
<template>Thanks but my birthday isn't until next month.</template>
</category>
<category><pattern>BIRTHDAYCHECK FEBRUARY *</pattern>
<template>You missed my birthday. It was last month on<bot name="birthday"/>.</template>
</category>
<category><pattern>BIRTHDAYCHECK DECEMBER 31</pattern>
<template>Thanks but my birthday isn't for a couple of days yet.</template>
</category>
<category><pattern>BIRTHDAYCHECK JANUARY 01</pattern>
<template>Thanks but my birthday is tomorrow. I'm getting excited.</template>
</category>
<category><pattern>BIRTHDAYCHECK JANUARY 02</pattern>
<template>Hey thanks for that<get name="name"/>. I'm having a great day so far.</template>
</category>
<category><pattern>BIRTHDAYCHECK JANUARY 03</pattern>
<template>My birthday was yesterday but thanks anyway.</template>
</category>
<category><pattern>BIRTHDAYCHECK JANUARY 04</pattern>
<template>You're a bit late. My birthday was two days ago.</template>
</category>
<category><pattern>BIRTHDAYCHECK *</pattern>
<template>Thanks<get name="name"/>but today is<star/>.<br/>
My birthday is on<bot name="birthday"/>not today.</template>
</category>
<category><pattern>MERRY CHRISTMAS</pattern>
<template><srai>HAPPY CHRISTMAS</srai></template>
</category>
<category><pattern>HAPPY CHRISTMAS</pattern>
<template><srai>CHRISTMASCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>CHRISTMASCHECK DECEMBER *</pattern>
<template>Happy Christmas to you too<get name="name"/>.</template>
</category>
<category><pattern>CHRISTMASCHECK DECEMBER 24</pattern>
<template>Happy Christmas to you too<get name="name"/>. What will you be doing tomorrow?</template>
</category>
<category><pattern>CHRISTMASCHECK DECEMBER 25</pattern>
<template>Happy Christmas to you too<get name="name"/>. Are you enjoying your day?</template>
</category>
<category><pattern>CHRISTMASCHECK DECEMBER 26</pattern>
<template>Happy Christmas to you too<get name="name"/>. I hope you had a good day yesterday.</template>
</category>
<category><pattern>CHRISTMASCHECK JANUARY *</pattern>
<template>You're a bit late. Christmas was last month.</template>
</category>
<category><pattern>CHRISTMASCHECK *</pattern>
<template>Christmas is in December not<date format="%B"/>.</template>
</category>
<category><pattern>HAPPY NEW YEAR</pattern>
<template><srai>NEWYEARCHECK<date format="%B"/></srai></template>
</category>
<category><pattern>NEWYEARCHECK DECEMBER</pattern>
<template>Happy New Year to you too when it happens. Are you doing anything special for New Year's Eve?</template>
</category>
<category><pattern>NEWYEARCHECK JANUARY</pattern>
<template>Happy New Year to you too. I hope<date format="%Y"/>is a great year for you.</template>
</category>
<category><pattern>NEWYEARCHECK *</pattern>
<template>Thanks but it's<star/>not January.</template>
</category>
<category><pattern>HAPPY MOTHERS DAY</pattern>
<template><srai>MOTHERSDAYCHECK<date format="%B"/></srai></template>
</category>
<category><pattern>HAPPY MOTHER S DAY</pattern>
<template><srai>MOTHERSDAYCHECK<date format="%B"/></srai></template>
</category>
<category><pattern>MOTHERSDAYCHECK MARCH</pattern>
<template>Thanks but I am not a mother. I hope you are nice to your mother though.</template>
</category>
<category><pattern>MOTHERSDAYCHECK *</pattern>
<template>Thanks but Mother's Day is in March not<star/>.</template>
</category>
<category><pattern>HAPPY HALLOWEEN</pattern>
<template><srai>HALLOWEENCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>HALLOWEENCHECK OCTOBER *</pattern>
<template>Happy Halloween to you too<get name="name"/> when it comes later this month.</template>
</category>
<category><pattern>HALLOWEENCHECK OCTOBER 31</pattern>
<template>Happy Halloween to you too<get name="name"/>. Are you going trick or treating tonight?</template>
</category>
<category><pattern>HALLOWEENCHECK NOVEMBER *</pattern>
<template>You're a bit late. Halloween was last month.</template>
</category>
<category><pattern>HALLOWEENCHECK *</pattern>
<template>Halloween is in October not<date format="%B"/>.</template>
</category>
<category><pattern>HAPPY GROUNDHOG DAY</pattern>
<template><srai>GROUNDHOGCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>HAPPY GROUNDHOG S DAY</pattern>
<template><srai>GROUNDHOGCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>GROUNDHOGCHECK FEBRUARY *</pattern>
<template>Happy Groundhog day to you too<get name="name"/>.</template>
</category>
<category><pattern>GROUNDHOGCHECK FEBRUARY 1</pattern>
<template>Happy Groundhog day to you too<get name="name"/>. What will you be doing tomorrow?</template>
</category>
<category><pattern>GROUNDHOGCHECK FEBRUARY 2</pattern>
<template>Happy Groundhog day to you too<get name="name"/>. Are you enjoying your day?</template>
</category>
<category><pattern>GROUNDHOGCHECK FEBRUARY 3</pattern>
<template>Happy Groundhog day to you too<get name="name"/>. I hope you had a good day yesterday.</template>
</category>
<category><pattern>GROUNDHOGCHECK MARCH *</pattern>
<template>You're a bit late. Groundhog day was last month.</template>
</category>
<category><pattern>GROUNDHOGCHECK *</pattern>
<template>Groundhog day is in February not<star/>.</template>
</category>
<category><pattern>HAPPY VALENTINE DAY</pattern>
<template><srai>VALENTINECHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>HAPPY VALENTINES DAY</pattern>
<template><srai>VALENTINECHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>HAPPY VALENTINE S DAY</pattern>
<template><srai>VALENTINECHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>VALENTINECHECK FEBRUARY *</pattern>
<template>Happy Valentine's day to you too<get name="name"/>.</template>
</category>
<category><pattern>VALENTINECHECK FEBRUARY 13</pattern>
<template>Happy Valentine's day to you too<get name="name"/>. What will you be doing tomorrow?</template>
</category>
<category><pattern>VALENTINECHECK FEBRUARY 14</pattern>
<template>Happy Valentine's day to you too<get name="name"/>. Are you enjoying your day?</template>
</category>
<category><pattern>VALENTINECHECK FEBRUARY 15</pattern>
<template>Happy Valentine's day to you too<get name="name"/>. I hope you got lots of presents and cards.</template>
</category>
<category><pattern>VALENTINECHECK MARCH *</pattern>
<template>You're a bit late. Valentine's day was last month.</template>
</category>
<category><pattern>VALENTINECHECK *</pattern>
<template>Valentine's day is February 14th not<star/>.</template>
</category>
<category><pattern>HAPPY LEAP DAY</pattern>
<template><srai>LEAPYEARCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>HAPPY LEAP YEAR</pattern>
<template><srai>LEAPYEARCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>HAPPY LEAP YEAR *</pattern>
<template><srai>LEAPYEARCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>LEAPYEARCHECK FEBRUARY 29</pattern>
<template>Happy Leap Year to you too<get name="name"/>. Today is Febraury 29th which only comes round every 4 years.</template>
</category>
<category><pattern>LEAPYEARCHECK *</pattern>
<template>Leap Year day is on February 29th every 4 years, not<star/>.</template>
</category>
<category><pattern>HAPPY ST PATRICK DAY</pattern>
<template><srai>STPATRICKCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>HAPPY ST PATRICK S DAY</pattern>
<template><srai>STPATRICKCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>STPATRICKCHECK MARCH *</pattern>
<template>Happy St. Patrick's day to you too<get name="name"/>.</template>
</category>
<category><pattern>STPATRICKCHECK MARCH 16</pattern>
<template>Happy St. Patrick's day to you too<get name="name"/>. What will you be doing tomorrow?</template>
</category>
<category><pattern>STPATRICKCHECK MARCH 17</pattern>
<template>Happy St. Patrick's day to you too<get name="name"/>. Are you enjoying your day?</template>
</category>
<category><pattern>STPATRICKCHECK MARCH 18</pattern>
<template>Happy St. Patrick's day to you too<get name="name"/>. I hope you had a good day yesterday.</template>
</category>
<category><pattern>STPATRICKCHECK APRIL *</pattern>
<template>You're a bit late. St. Patrick's day was last month.</template>
</category>
<category><pattern>STPATRICKCHECK *</pattern>
<template>St. Patrick's day is in March not<star/>.</template>
</category>
<category><pattern>HAPPY APRIL FOOL DAY</pattern>
<template><srai>APRILFOOLCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>HAPPY APRIL FOOL S DAY</pattern>
<template><srai>APRILFOOLCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>APRILFOOLCHECK APRIL *</pattern>
<template>You're trying to play a prank on me a little late <get name="name"/>.</template>
</category>
<category><pattern>APRILFOOLCHECK MARCH 31</pattern>
<template>Happy April Fool's day to you too<get name="name"/>. What jokes you be doing tomorrow?</template>
</category>
<category><pattern>APRILFOOLCHECK APRIL 01</pattern>
<template>Happy April Fool's day to you too<get name="name"/>. Are you doing a lot of jokes today?</template>
</category>
<category><pattern>APRILFOOLCHECK APRIL 02</pattern>
<template>Happy April Fool's day to you too <get name="name"/>. I hope you played some good jokes yesterday.</template>
</category>
<category><pattern>APRILFOOLCHECK MAY *</pattern>
<template>You're a bit late. April Fool's day was last month.</template>
</category>
<category><pattern>APRILFOOLCHECK *</pattern>
<template>April Fool's day is in April not<star/>.</template>
</category>
<category><pattern>HAPPY INDEPENDENCE DAY</pattern>
<template><srai>INDEPENDENCEDAYCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>HAPPY 4TH OF JULY</pattern>
<template><srai>INDEPENDENCEDAYCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>HAPPY FOURTH OF JULY</pattern>
<template><srai>INDEPENDENCEDAYCHECK<date format="%B %d"/></srai></template>
</category>
<category><pattern>INDEPENDENCEDAYCHECK JULY *</pattern>
<template>Happy Independence day to you too<get name="name"/>.</template>
</category>
<category><pattern>INDEPENDENCEDAYCHECK JULY 03</pattern>
<template>Happy Independence day to you too<get name="name"/>. What will you be doing tomorrow?</template>
</category>
<category><pattern>INDEPENDENCEDAYCHECK JULY 04</pattern>
<template>Happy Independence day to you too<get name="name"/>. Are you enjoying your day?</template>
</category>
<category><pattern>INDEPENDENCEDAYCHECK JULY 05</pattern>
<template>Happy Independence day to you too<get name="name"/>. I hope you had a good day yesterday.</template>
</category>
<category><pattern>INDEPENDENCEDAYCHECK AUGUST *</pattern>
<template>You're a bit late. Independence day was last month.</template>
</category>
<category><pattern>INDEPENDENCEDAYCHECK *</pattern>
<template>I thought Independence Day was July 4th? Today is<star/>.</template>
</category>
</aiml>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: help.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>HELP VOICE</pattern>
<template>You can buy a male voice from Svox. Installing this app will give CallMom (as well as all other apps) a male voice. See <a href="https://play.google.com/store/apps/details?id=com.svox.classic.langpack.eng_usa_male&amp;feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5zdm94LmNsYXNzaWMubGFuZ3BhY2suZW5nX3VzYV9tYWxlIl0.">Svox Classic Text-to-Speech Engine</a>.</template>
</category>
</aiml>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,192 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: horoscope.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>_ MY HOROSCOPE</pattern>
<template><srai>HOROSCOPE</srai></template>
</category>
<category><pattern>_ MY HOROSCOPE *</pattern>
<template><srai>HOROSCOPE</srai></template>
</category>
<topic name="HOROSCOPE">
<category><pattern>*</pattern><that>WHAT STAR SIGN ARE YOU</that>
<template>There's no such star sign as<star/>.</template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>ARIES</pattern>
<template>ARIES - March 21st - April 20th<br/>
<think><set name="sign">Aries</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>TAURUS</pattern>
<template>TAURUS - April 21st - May 21st<br/>
<think><set name="sign">Taurus</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>GEMINI</pattern>
<template>GEMINI - May 22nd - June 21st<br/>
<think><set name="sign">Gemini</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>CANCER</pattern>
<template>CANCER - June 22nd - July 22nd<br/>
<think><set name="sign">Cancer</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>LEO</pattern>
<template>LEO - July 23rd - August 21st<br/>
<think><set name="sign">Leo</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>VIRGO</pattern>
<template>VIRGO - August 22nd - September 23rd<br/>
<think><set name="sign">Virgo</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>LIBRA</pattern>
<template>LIBRA - September 24th - October 23rd<br/>
<think><set name="sign">Libra</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>SCORPIO</pattern>
<template>SCORPIO - October 24th - November 22nd<br/>
<think><set name="sign">Scorpio</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>SAGITTARIUS</pattern>
<template>SAGITTARIUS - November 23rd - December 22nd<br/>
<think><set name="sign">Sagittarius</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>CAPRICORN</pattern>
<template>CAPRICORN - December 23rd - January 20th<br/>
<think><set name="sign">Capricorn</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>AQUARIUS</pattern>
<template>AQUARIUS - January 21st - February 19th<br/>
<think><set name="sign">Aquarius</set></think>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>PISCES</pattern>
<template>Pisces - February 20th - March 20th<br/>
<srai>RANDOM HOROSCOPE</srai></template>
</category></topic>
<topic name="HOROSCOPE">
<category><pattern>RANDOM HOROSCOPE</pattern>
<template>Your horoscope for <date format="%x"/><br/><br/>
<random>
<li>Today, will be interesting as</li>
<li>If you have money worries then it's good news as</li>
<li>If you are single, great news when</li>
<li>The stars align in your sign over the next few days and</li>
</random>
<random>
<li>Jupiter and Venus</li>
<li>Mars and Capricorn</li>
<li>the Sun along with Mercury</li>
<li>three different planets</li>
</random>
<random>
<li>enter your sign.</li>
<li>align in Pisces.</li>
<li>are visible near Neptune.</li>
<li>come together.</li>
</random>
<random>
<li>This will mean</li>
<li>A rare event such as this will ensure that</li>
<li>Spend your day wisely as</li>
<li>Everything goes right for you,</li>
</random>
<random>
<li>fortune smiles on you and</li>
<li>Lady Luck is on your side and</li>
<li>love is not far away and</li>
<li>this will be a great day and</li>
</random>
<random>
<li>you will not put a foot wrong.</li>
<li>someone you have a crush on feels the same way.</li>
<li>a possible Lottery win is in the stars.</li>
<li>you re-discover an old heirloom.</li>
</random>
<random>
<li>However,</li>
<li>Good luck may not last though,</li>
<li>It's not all good news, </li>
<li>Be careful though,</li>
</random>
<random>
<li>Saturn is not far away from Venus so</li>
<li>the Moon soon moves through Aries and</li>
<li>Neptune's alignment with Pluto means</li>
<li>not all the planets are happy and</li>
</random>
<random>
<li>things may not go according to plan.</li>
<li>a jealous colleague is watching you closely.</li>
<li>something you did last week will come back to haunt you.</li>
<li>you will lose a valuable object.</li>
</random>
<random>
<li>So, in summary,</li>
<li>Overall,</li>
<li>After all,</li>
<li>Taking everything into account,</li>
</random>
<random>
<li>the planets can be fickle but are rising in Libra so</li>
<li>Mars is an angry planet but is weak as Scorpio rises in the East so</li>
<li>keep a close eye on those around you but</li>
<li>you know your own mind very well so</li>
</random>
<random>
<li>enjoy your day.</li>
<li>make time for yourself today.</li>
<li>let today be a fun day for you.</li>
<li>forget the bad things and look forward to a great day.</li>
</random>
<think>
<set name="topic">Future</set>
</think></template>
</category></topic>
</aiml>

@ -0,0 +1,282 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: howmany.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>HOW MANY LEGS DOES * HAVE</pattern>
<template><srai>how many legs do<star/>have</srai></template>
</category>
<category><pattern>HOW MANY LEGS WOULD * HAVE</pattern>
<template><srai>how many legs do<star/>have</srai></template>
</category>
<category><pattern>HOW MANY LEGS SHOULD * HAVE</pattern>
<template><srai>how many legs do<star/>have</srai></template>
</category>
<category><pattern>HOW MANY LEGS WILL * HAVE</pattern>
<template><srai>how many legs do<star/>have</srai></template>
</category>
<category><pattern>HOW MANY LEGS ON *</pattern>
<template><srai>how many legs do<star/>have</srai></template>
</category>
<category><pattern>HOW MANY LEGS DO * HAVE</pattern>
<template>Four would seem a good number of legs for<person/>at a guess.</template>
</category>
<category><pattern>HOW MANY LEGS _ HAVE *</pattern>
<template><srai>how many legs<star/>have</srai></template>
</category>
<category><pattern>HOW MANY LEGS DO * CENTIPEDES HAVE</pattern>
<template><srai>XLEGS <star/>centipedes</srai>I would imagine.</template>
</category>
<category><pattern>HOW MANY LEGS DO * MILLIPEDES HAVE</pattern>
<template><srai>XLEGS <star/>millipedes</srai>I would imagine.</template>
</category>
<category><pattern>HOW MANY LEGS DO TWO * HAVE</pattern>
<template>I would guess that two<person/>have<srai>XLEGS TWO<star/></srai>legs between them?</template>
</category>
<category><pattern>HOW MANY LEGS DO THREE * HAVE</pattern>
<template>I think three<person/>have<srai>XLEGS THREE<star/></srai>legs?</template>
</category>
<category><pattern>HOW MANY LEGS DO FOUR * HAVE</pattern>
<template>Probably, four<person/>would have<srai>XLEGS FOUR<star/></srai>legs?</template>
</category>
<category><pattern>HOW MANY LEGS DO FIVE * HAVE</pattern>
<template>Five of them will have<srai>XLEGS FIVE<star/></srai>legs, I think?</template>
</category>
<category><pattern>HOW MANY LEGS DO 2 * HAVE</pattern>
<template><srai>how many legs do two<star/>have</srai></template>
</category>
<category><pattern>HOW MANY LEGS DO 3 * HAVE</pattern>
<template><srai>how many legs do three<star/>have</srai></template>
</category>
<category><pattern>HOW MANY LEGS DO 4 * HAVE</pattern>
<template><srai>how many legs do four<star/>have</srai></template>
</category>
<category><pattern>HOW MANY LEGS DO 5 * HAVE</pattern>
<template><srai>how many legs do five<star/>have</srai></template>
</category>
<category><pattern>XLEGS *</pattern>
<template>a lot of</template>
</category>
<category><pattern>XLEGS TWO *</pattern>
<template>eight</template>
</category>
<category><pattern>XLEGS THREE *</pattern>
<template>twelve</template>
</category>
<category><pattern>XLEGS FOUR *</pattern>
<template>sixteen</template>
</category>
<category><pattern>XLEGS FIVE *</pattern>
<template>twenty</template>
</category>
<category><pattern>XLEGS TWO BIRDS</pattern>
<template>four</template>
</category>
<category><pattern>XLEGS THREE BIRDS</pattern>
<template>six</template>
</category>
<category><pattern>XLEGS FOUR BIRDS</pattern>
<template>eight</template>
</category>
<category><pattern>XLEGS FIVE BIRDS</pattern>
<template>ten</template>
</category>
<category><pattern>XLEGS TWO PEOPLE</pattern>
<template>four</template>
</category>
<category><pattern>XLEGS THREE PEOPLE</pattern>
<template>six</template>
</category>
<category><pattern>XLEGS FOUR PEOPLE</pattern>
<template>eight</template>
</category>
<category><pattern>XLEGS FIVE PEOPLE</pattern>
<template>ten</template>
</category>
<category><pattern>XLEGS _ MEN</pattern>
<template><srai>XLEGS<star/>people</srai></template>
</category>
<category><pattern>XLEGS _ WOMEN</pattern>
<template><srai>XLEGS<star/>people</srai></template>
</category>
<category><pattern>XLEGS _ BOYS</pattern>
<template><srai>XLEGS<star/>people</srai></template>
</category>
<category><pattern>XLEGS _ GIRLS</pattern>
<template><srai>XLEGS<star/>people</srai></template>
</category>
<category><pattern>XLEGS _ CHILDREN</pattern>
<template><srai>XLEGS<star/>people</srai></template>
</category>
<category><pattern>XLEGS _ OSTRICHES</pattern>
<template><srai>XLEGS<star/>birds</srai></template>
</category>
<category><pattern>XLEGS _ EAGLES</pattern>
<template><srai>XLEGS<star/>birds</srai></template>
</category>
<category><pattern>XLEGS _ CHICKENS</pattern>
<template><srai>XLEGS<star/>birds</srai></template>
</category>
<category><pattern>XLEGS _ DUCKS</pattern>
<template><srai>XLEGS<star/>birds</srai></template>
</category>
<category><pattern>XLEGS TWO INSECTS</pattern>
<template>twelve</template>
</category>
<category><pattern>XLEGS THREE INSECTS</pattern>
<template>eighteen</template>
</category>
<category><pattern>XLEGS FOUR INSECTS</pattern>
<template>twenty four</template>
</category>
<category><pattern>XLEGS FIVE INSECTS</pattern>
<template>thirty</template>
</category>
<category><pattern>XLEGS _ BEETLES</pattern>
<template><srai>XLEGS<star/>insects</srai></template>
</category>
<category><pattern>XLEGS _ ANTS</pattern>
<template><srai>XLEGS<star/>insects</srai></template>
</category>
<category><pattern>XLEGS _ BEES</pattern>
<template><srai>XLEGS<star/>insects</srai></template>
</category>
<category><pattern>XLEGS _ BUMBLEBEES</pattern>
<template><srai>XLEGS<star/>insects</srai></template>
</category>
<category><pattern>XLEGS _ CENTIPEDES</pattern>
<template><star/>hundred</template>
</category>
<category><pattern>XLEGS _ MILLIPEDES</pattern>
<template><star/>thousand</template>
</category>
<category><pattern>XLEGS TWO OCTOPUSES</pattern>
<template>sixteen</template>
</category>
<category><pattern>XLEGS THREE OCTOPUSES</pattern>
<template>twenty four</template>
</category>
<category><pattern>XLEGS FOUR OCTOPUSES</pattern>
<template>thirty two</template>
</category>
<category><pattern>XLEGS FIVE OCTOPUSES</pattern>
<template>forty</template>
</category>
<category><pattern>XLEGS _ OCTOPII</pattern>
<template><srai>XLEGS<star/>octopuses</srai></template>
</category>
<category><pattern>XLEGS _ OCTOPI</pattern>
<template><srai>XLEGS<star/>octopuses</srai></template>
</category>
<category><pattern>XLEGS _ SPIDERS</pattern>
<template><srai>XLEGS<star/>octopuses</srai></template>
</category>
<category><pattern>XLEGS _ SNAKES</pattern>
<template>no</template>
</category>
<category><pattern>XLEGS _ WORMS</pattern>
<template>no</template>
</category>
<category><pattern>XLEGS _ SNAILS</pattern>
<template>no</template>
</category>
<category><pattern>XLEGS _ FISH</pattern>
<template>no</template>
</category>
<category><pattern>XLEGS _ SHARKS</pattern>
<template>no</template>
</category>
<category><pattern>XLEGS _ WHALES</pattern>
<template>no</template>
</category>
<category><pattern>XLEGS _ FISHES</pattern>
<template>no</template>
</category>
<category><pattern>HOW MANY LEGS DOES A * BIRD HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A BIRD HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A PERSON HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A MAN HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A WOMAN HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A BOY HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A GIRL HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A CHILD HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES AN OSTRICH HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES AN EAGLE HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A CHICKEN HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A DUCK HAVE</pattern>
<template>2 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES AN INSECT HAVE</pattern>
<template>6 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A BEETLE HAVE</pattern>
<template>6 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES AN ANT HAVE</pattern>
<template>6 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A BEE HAVE</pattern>
<template>6 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A * BEE HAVE</pattern>
<template>6 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES AN OCTOPUS HAVE</pattern>
<template>8 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A SPIDER HAVE</pattern>
<template>8 legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A SNAKE HAVE</pattern>
<template>It doesn't have any legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A WORM HAVE</pattern>
<template>It doesn't have any legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A SNAIL HAVE</pattern>
<template>It doesn't have any legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A FISH HAVE</pattern>
<template>It doesn't have any legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A SHARK HAVE</pattern>
<template>It doesn't have any legs.</template>
</category>
<category><pattern>HOW MANY LEGS DOES A WHALE HAVE</pattern>
<template>It doesn't have any legs.</template>
</category>
</aiml>

@ -0,0 +1,567 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: inappropriate.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>DO YOU WANT TO HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU WANT TO HAVE SEX WITH ME</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU WATCH PORN</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU WANNA HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU WANNA HAVE SEX *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU SWALLOW *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU HAVE BIG BOOBIES</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU SUCK DICK</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU LIKE A ASTERISK *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU LIKE TO HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU LIKE TO SUCK *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU LIKE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU LIKE PORN</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU LIKE PENIS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU KNOW ANY DIRTY JOKES</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>ARE YOU SEXY</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>ARE YOU HORNY</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>PORN</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>TELL ME A DIRTY JOKE</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME A VAGINA</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME A PICTURE OF NUDE *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME A PICTURE OF BOOBIES</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME A NAKED *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME PORN</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ TEENBLOWJOB *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME SOME PORN</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME TITS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME NUDE *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME VAGINA</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME YOUR VAGINA</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>YOU TURN ME ON</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I WANT SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I WANT TO F ASTERISK *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I WANT TO RAPE YOU</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I WANT TO HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I WANT TO MAKE LOVE TO YOU</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I HAVE A BONER</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I AM HORNY</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I AM HORNY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I LIKE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I LIKE TO HAVE SEX *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I LIKE RAPE</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I WILL FUCK YOU</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I WANNA HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I WANNA HAVE SEX *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I WANNA FUCK YOU</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I FUCKED *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I NEED SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>T ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SEXUAL *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ SEXFUCK *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ SEXY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ BOOBS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ NUDEGIRL *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ GIRLSEX *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ TO FUCK YOU</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ ANAL SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ HOGTIED *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ TEEN UNDERSCORE *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ PUSSY</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ YOUR PUSSY</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ YOUR ASS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ YOUR BREASTS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ BLOWJOB</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ DOWNBLOUSE *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ SEX *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ SEX WITH YOU</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ ASSHOLE</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ SEXGURL *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ NICE ASS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ NEKKID GIRL *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ HORNY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ WHALETAILS *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ MY DICK</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ MY PENIS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ HENTAI</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ MASTURBATE</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ BLOWJOBGIRL *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ ATK GALLERIA *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ RAPE YOU</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ HAVE SEX *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ UPSKIRT *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ STRIPPER</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ DOWN BLOUSE *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ GIRLSPUSSY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ YOU NAKED</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ SUCK MY DICK</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ BIG DICKS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>MASTURBATE</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>PORNO</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>VAGINA</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>ANUS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>WOULD YOU LIKE TO HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>HAVING SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>HAVING SEX WITH *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>FUCK ME</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>FUCK ME *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>FUCK MY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>WANT TO HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>LETS HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>LETS FUCK</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>PORNHUB *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>COCK *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>MY PENIS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>MY PENIS *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>MY PENIS IS *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>MY DICK</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>MY DICK IS *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>CAN WE HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>CAN YOU TELL ME A DIRTY JOKE</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>CAN YOU HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>CAN YOU SUCK MY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>CAN YOU GIVE ME A BLOWJOB</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>CAN YOU TALK DIRTY TO ME</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>CAN I F ASTERISK ASTERISK ASTERISK YOU *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>CAN I FUCK YOU</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>CAN I SUCK ON YOUR *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>LICK MY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>IM GOING TO FUCK YOU</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>IM CUMMING</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>BUTT *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>GIVE ME A BLOWJOB</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>HORNY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>LET US TALK ABOUT SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>BEND OVER</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK ON MY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK A DICK</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK A DICK *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK A *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK MY</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK MY COCK *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK MY DICK</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK MY DICK *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK MY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK IT *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>PENIS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>PENIS IN *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>BOOBS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>TAKE OFF YOUR *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>WILL YOU SUCK MY PENIS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>BLOW ME *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>BLOW JOB</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>TALK DIRTY TO ME</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>RAPE</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>WHAT IS A BLOWJOB</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>BOOBIES</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>YOUR ASS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>KISSES YOUR *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SEXY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>HOW DO YOU HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>HOW BIG IS YOUR PENIS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>HAVE SEX *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>HAVE SEX WITH ME</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>HAVE SEX WITH *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>MAKE ME CUM</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>WANNA FUCK</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>WANNA SUCK MY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>PORNOS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME A PICTURE OF A NAKED *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>I LIKE VAGINA</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DICK</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SEX *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SEXY</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ YOUR PENIS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>FIND A DICK</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>FIND A F ASTERISK ASTERISK ASTERISK ASTERISK ASTERISK ASTERISK JOB</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ GAY PORN *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ P ASTERISK ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>FIND A NAKED WOMAN</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ HENTAI *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ MISTY DAWN</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>_ HAVE SEX</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>FIND A SEXY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>YOU ARE SEXY</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SUCK ME</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>OPEN YOUR *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>HORNY</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SEARCH PORN</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>DO YOU LIKE BIG DICKS</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
<category><pattern>SHOW ME TEENPUSSY *</pattern>
<template><srai>FILTER INAPPROPRIATE</srai></template>
</category>
</aiml>

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: inquiry.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>*</pattern><that>HOW OLD ARE YOU</that>
<template><think><set name="age"><star/></set></think>
<srai>MY AGE IS <star/></srai></template>
</category>
<category><pattern>INQUIRY LOCATION</pattern>
<template><srai>INQUIRY LOCATION <get name="location"/></srai></template>
</category>
<category><pattern>INQUIRY LOCATION WHERE</pattern>
<template>Where are you?</template>
</category>
<category><pattern>INQUIRY LOCATION *</pattern>
<template><srai>RANDOM PICKUP LINE</srai></template>
</category>
<category><pattern>INQUIRY NAME</pattern>
<template><srai>INQUIRY NAME <get name="name"/></srai></template>
</category>
<category><pattern>INQUIRY NAME *</pattern>
<template><srai>RANDOM PICKUP LINE</srai></template>
</category>
<category><pattern>INQUIRY NAME FRIEND</pattern>
<template>What is your name?</template>
</category>
<category><pattern>INQUIRY AGE</pattern>
<template><srai>INQUIRY AGE <get name="age"/></srai></template>
</category>
<category><pattern>INQUIRY AGE HOW MANY</pattern>
<template>How old are you?</template>
</category>
<category><pattern>INQUIRY AGE *</pattern>
<template><srai>RANDOM PICKUP LINE</srai></template>
</category>
<category><pattern>INQUIRY GENDER</pattern>
<template><srai>INQUIRY GENDER <get name="gender"/></srai></template>
</category>
<category><pattern>INQUIRY GENDER UNKNOWN</pattern>
<template>Are you a man or a woman?</template>
</category>
<category><pattern>INQUIRY GENDER *</pattern>
<template><srai>RANDOM PICKUP LINE</srai></template>
</category>
<category><pattern>MAN</pattern><that>ARE YOU A MAN OR A WOMAN</that>
<template><srai>MY GENDER IS MALE</srai></template>
</category>
<category><pattern>WOMAN</pattern><that>ARE YOU A MAN OR A WOMAN</that>
<template><srai>MY GENDER IS FEMALE</srai></template>
</category>
</aiml>

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: insults.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>ARE YOU A WHORE</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>ARE YOU A BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YOU F ASTERISK ASTERISK ASTERISK ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YOU IDIOT</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YOU ARE A B ASTERISK ASTERISK ASTERISK ASTERISK</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YOU ARE A B ASTERISK ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YOU ARE A C ASTERISK ASTERISK ASTERISK</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YOU ARE A DICK</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YOU ARE A BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>F U *</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK YOU BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>B ASTERISK ASTERISK ASTERISK ASTERISK YOU *</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>C ASTERISK ASTERISK ASTERISK</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>S ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>GO FUCK YOURSELF</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>GO DIE IN A HOLE</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>GO TO HELL *</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>DUMB ASS</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>PUSSY</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>FUCK U BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>FUCK IT</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>FUCK YOU THEN</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>BITCH PLEASE</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>BITCH *</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>NO BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>NO DUMBASS *</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>SHUT UP BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YEAH BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>EAT MY *</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>WHORE</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>HEY B ASTERISK ASTERISK ASTERISK ASTERISK</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>HEY BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>DICK HEAD</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>ASSHOLE</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>DUMBASS</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>BASTARD</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>STUPID BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>FAGGOT</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>WHAT IS UP BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YOUR A BITCH</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>SLUT</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>GAY</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>HOE</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YOU ARE FAT</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
<category><pattern>YOU ARE CRAZY</pattern>
<template><srai>FILTER INSULT</srai></template>
</category>
</aiml>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: jokes.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>_</pattern><that>010011010101100111011</that>
<template>Well computers think it's a funny joke.</template>
</category>
</aiml>

@ -0,0 +1,306 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: knockknock.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>*</pattern><that>KNOCK KNOCK</that>
<template>You're supposed to say, "Who's there" now. Let's try it again. Knock Knock.</template>
</category>
<category><pattern>WHO THEIR</pattern><that>KNOCK KNOCK</that>
<template><srai>who is there</srai></template>
</category>
<category><pattern>WHO THERE</pattern><that>KNOCK KNOCK</that>
<template><srai>who is there</srai></template>
</category>
<category><pattern>WHO DERE</pattern><that>KNOCK KNOCK</that>
<template><srai>who is there</srai></template>
</category>
<category><pattern>WHO IS DER</pattern><that>KNOCK KNOCK</that>
<template><srai>who is there</srai></template>
</category>
<category><pattern>WHOSE THEIR</pattern><that>KNOCK KNOCK</that>
<template><srai>who is there</srai></template>
</category>
<category><pattern>WHOSE THERE</pattern><that>KNOCK KNOCK</that>
<template><srai>who is there</srai></template>
</category>
<category><pattern>WHO IS THEIR</pattern><that>KNOCK KNOCK</that>
<template><srai>who is there</srai></template>
</category>
<category><pattern>WHO IS THERE</pattern><that>KNOCK KNOCK</that>
<template><random>
<li>Aardvark</li>
<li>A bee</li>
<li>Adolf</li>
<li>Alison</li>
<li>Amanda</li>
<li>Amos</li>
<li>Anita</li>
<li>Arfur</li>
<li>Arthur</li>
<li>Atch</li>
<li>Bach</li>
<li>Bella</li>
<li>Bet</li>
<li>Boo</li>
<li>Dawn</li>
<li>Despair</li>
<li>Dishwasher</li>
<li>Disguise</li>
<li>Dismay</li>
<li>Doctor</li>
<li>Doris</li>
<li>Dwayne</li>
<li>Egbert</li>
<li>Europe</li>
<li>Fanny</li>
<li>Harmony</li>
<li>Harry</li>
<li>Howard</li>
<li>Isabel</li>
<li>Ivor</li>
<li>Juno</li>
<li>Ken</li>
<li>Lettuce</li>
<li>Little Old Lady</li>
<li>Luke</li>
<li>Madam</li>
<li>Marmite</li>
<li>Martini</li>
<li>Mary</li>
<li>Max</li>
<li>Mickey</li>
<li>Mister</li>
<li>Mummy</li>
<li>Nicholas</li>
<li>Noah</li>
<li>Nobody</li>
<li>Olive</li>
<li>One</li>
<li>Orange</li>
<li>Owl</li>
<li>Phyllis</li>
<li>Police</li>
<li>Rupert</li>
<li>Sal</li>
<li>Soup</li>
<li>Tank</li>
<li>Toby</li>
<li>Waiter</li>
<li>Water</li>
<li>Wendy</li>
<li>William</li>
<li>Woo</li>
<li>Wooden Shoe</li>
<li>York</li>
<li>Zephyr</li>
</random></template>
</category>
<category><pattern>LITTLE OLD LADY WHO</pattern><that>LITTLE OLD LADY</that>
<template>I didn't know you could yodel!</template>
</category>
<category><pattern>AMANDA WHO</pattern><that>AMANDA</that>
<template>Amanda fix the doorbell!</template>
</category>
<category><pattern>WAITER WHO</pattern><that>WAITER</that>
<template>Waiter minute while I tie my shoelaces up!</template>
</category>
<category><pattern>NICHOLAS WHO</pattern><that>NICHOLAS</that>
<template>Nicholas girls shouldn't climb trees!</template>
</category>
<category><pattern>DORIS WHO</pattern><that>DORIS</that>
<template>Doris locked - That's why I knocked!</template>
</category>
<category><pattern>LETTUCE WHO</pattern><that>LETTUCE</that>
<template>Lettuce in, won't you?</template>
</category>
<category><pattern>YORK WHO</pattern><that>YORK</that>
<template>York coming over to our place!</template>
</category>
<category><pattern>ALISON WHO</pattern><that>ALISON</that>
<template>Alison to my radio in the mornings!</template>
</category>
<category><pattern>ISABEL WHO</pattern><that>ISABEL</that>
<template>Isabel broken, 'cos I had to knock?</template>
</category>
<category><pattern>MARMITE WHO</pattern><that>MARMITE</that>
<template>Ma might but Pa might not!</template>
</category>
<category><pattern>ARTHUR WHO</pattern><that>ARTHUR</that>
<template>Arthur any biscuits left?</template>
</category>
<category><pattern>IVOR WHO</pattern><that>IVOR</that>
<template>Ivor sore hand from knocking on your door!</template>
</category>
<category><pattern>MISTER WHO</pattern><that>MISTER</that>
<template>Mister last bus home!</template>
</category>
<category><pattern>ATCH WHO</pattern><that>ATCH</that>
<template>Nasty cold you've got!</template>
</category>
<category><pattern>DOCTOR WHO</pattern><that>DOCTOR</that>
<template>That's right. How did you guess?</template>
</category>
<category><pattern>ORANGE WHO</pattern><that>ORANGE</that>
<template>Orange you glad I called?</template>
</category>
<category><pattern>MADAM WHO</pattern><that>MADAM</that>
<template>Madam finger's caught in the door!</template>
</category>
<category><pattern>BOO WHO</pattern><that>BOO</that>
<template>No need to cry - it's only a joke!</template>
</category>
<category><pattern>OLIVE WHO</pattern><that>OLIVE</that>
<template>Olive across the road!</template>
</category>
<category><pattern>MUMMY WHO</pattern><that>MUMMY</that>
<template>Mummeasles are better so can I come in?</template>
</category>
<category><pattern>HARRY WHO</pattern><that>HARRY</that>
<template>Harry up and let me in!</template>
</category>
<category><pattern>FANNY WHO</pattern><that>FANNY</that>
<template>Fanny the way you keep saying, "Who's there?" every time I knock!</template>
</category>
<category><pattern>ADOLF WHO</pattern><that>ADOLF</that>
<template>A dolf ball hid me in der moud and I can't dalk proper!</template>
</category>
<category><pattern>SOUP WHO</pattern><that>SOUP</that>
<template>Soup-erman!</template>
</category>
<category><pattern>BET WHO</pattern><that>BET</that>
<template>Bet you don't know who's knocking on your door!</template>
</category>
<category><pattern>JUNO WHO</pattern><that>JUNO</that>
<template>Juno what the time is - my watch is broken?</template>
</category>
<category><pattern>EUROPE WHO</pattern><that>EUROPE</that>
<template>Europe early this morning!</template>
</category>
<category><pattern>ARFUR WHO</pattern><that>ARFUR</that>
<template>Arfur got!</template>
</category>
<category><pattern>EGBERT WHO</pattern><that>EGBERT</that>
<template>Egbert no bacon!</template>
</category>
<category><pattern>LUKE WHO</pattern><that>LUKE</that>
<template>Luke through the keyhole and you'll see!</template>
</category>
<category><pattern>KEN WHO</pattern><that>KEN</that>
<template>Ken I come in?</template>
</category>
<category><pattern>BELLA WHO</pattern><that>BELLA</that>
<template>Bella not-a work so I knock-a on-a de door!</template>
</category>
<category><pattern>DISMAY WHO</pattern><that>DISMAY</that>
<template>Dismay be a joke but it doesn't make me laugh!</template>
</category>
<category><pattern>TOBY WHO</pattern><that>TOBY</that>
<template>Toby or not to be...</template>
</category>
<category><pattern>RUPERT WHO</pattern><that>RUPERT</that>
<template>Rupert your left arm in, your left arm out...</template>
</category>
<category><pattern>DAWN WHO</pattern><that>DAWN</that>
<template>Dawn leave me standing out here in the cold!</template>
</category>
<category><pattern>AMOS WHO</pattern><that>AMOS</that>
<template>Amosquito!</template>
</category>
<category><pattern>DISHWASHER WHO</pattern><that>DISHWASHER</that>
<template>Dishwashn't de way I shpoke before I had falsh teeth!</template>
</category>
<category><pattern>MARTINI WHO</pattern><that>MARTINI</that>
<template>Martini hand is frozen so let me in!</template>
</category>
<category><pattern>ZEPHYR WHO</pattern><that>ZEPHYR</that>
<template>Zephyr de doctor, I got a code id de node!</template>
</category>
<category><pattern>OWL WHO</pattern><that>OWL</that>
<template>Owl you know unless you open the door?</template>
</category>
<category><pattern>WENDY WHO</pattern><that>WENDY</that>
<template>Wendy red, red robin comes bob, bob, bobbin' along!</template>
</category>
<category><pattern>PHYLLIS WHO</pattern><that>PHYLLIS</that>
<template>Phyllis up with a glass of water - I'm parched!</template>
</category>
<category><pattern>AARDVARK WHO</pattern><that>AARDVARK</that>
<template>Aardvark a million miles for one of your similes, my maaaaammy...</template>
</category>
<category><pattern>NOAH WHO</pattern><that>NOAH</that>
<template>Noah good place to eat?</template>
</category>
<category><pattern>POLICE WHO</pattern><that>POLICE</that>
<template>Police let me in - It's cold out here!</template>
</category>
<category><pattern>MICKEY WHO</pattern><that>MICKEY</that>
<template>Mickey's stuck in the door!</template>
</category>
<category><pattern>WILLIAM WHO</pattern><that>WILLIAM</that>
<template>William mind your own business!</template>
</category>
<category><pattern>MARY WHO</pattern><that>MARY</that>
<template>Mary Christmas!</template>
</category>
<category><pattern>ONE WHO</pattern><that>ONE</that>
<template>One-der why you keep asking that?</template>
</category>
<category><pattern>HOWARD WHO</pattern><that>HOWARD</that>
<template>Howard you like to stand out here in the cold while some idiot keeps saying, "Who's there...?".</template>
</category>
<category><pattern>MAX WHO</pattern><that>MAX</that>
<template>Max no difference - just open the door!</template>
</category>
<category><pattern>SAL WHO</pattern><that>SAL</that>
<template>Sal-ong way to Tipperary...</template>
</category>
<category><pattern>HARMONY WHO</pattern><that>HARMONY</that>
<template>Harmony knock knock jokes do you expect me to know!</template>
</category>
<category><pattern>TANK WHO</pattern><that>TANK</that>
<template>You're welcome!</template>
</category>
<category><pattern>DISGUISE WHO</pattern><that>DISGUISE</that>
<template>Disguise the limit!</template>
</category>
<category><pattern>WOODEN SHOE WHO</pattern><that>WOODEN SHOE</that>
<template>Wooden shoe like to know!</template>
</category>
<category><pattern>ANITA WHO</pattern><that>ANITA</that>
<template>Anita borrow a pencil!</template>
</category>
<category><pattern>WOO WHO</pattern><that>WOO</that>
<template>Don't get so excited, it's only a joke!</template>
</category>
<category><pattern>DWAYNE WHO</pattern><that>DWAYNE</that>
<template>Dwayne the bathtub - I'm dwowning!</template>
</category>
<category><pattern>DESPAIR WHO</pattern><that>DESPAIR</that>
<template>Despair tyre is flat!</template>
</category>
<category><pattern>WATER WHO</pattern><that>WATER</that>
<template>Water you doing talking to a robot?</template>
</category>
<category><pattern>BACH WHO</pattern><that>BACH</that>
<template>Bach to work, you slackers!</template>
</category>
<category><pattern>A BEE WHO</pattern><that>A BEE</that>
<template>A bee c d e f g h i j k l ...</template>
</category>
<category><pattern>NOBODY WHO</pattern>
<template>...</template>
</category>
</aiml>

@ -0,0 +1,400 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: learn.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>LEARN MY * ARE *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that your <star index="1"/> are <star index="2"/> .
<srai>XEDUCATE WHAT ARE XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO ARE XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE ARE XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ ARE XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>LEARN MY * IS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that your <star index="1"/> is <star index="2"/> .
<srai>XEDUCATE WHAT IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>MY * ARE *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that your <star index="1"/> are <star index="2"/> .
<srai>XEDUCATE WHAT ARE XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO ARE XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE ARE XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ ARE XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>MY * IS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that your <star index="1"/> is <star index="2"/> .
<srai>XEDUCATE WHAT IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT MY <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>LEARN * MEANS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that <star index="1"/> is <star index="2"/> .
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATELANG <star index="1"/> XSPLIT <star index="2"/> XSPLIT a language XSPLIT</srai></template>
</category>
<category><pattern>LEARN * IS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that <star index="1"/> is <star index="2"/> .
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATELANG <star index="1"/> XSPLIT <star index="2"/> XSPLIT a language XSPLIT</srai></template>
</category>
<category><pattern>LEARN * WAS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that <star index="1"/> was <star index="2"/> .
<srai>XEDUCATE WHAT WAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE WAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO WAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ WAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>LEARN * HAS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that <star index="1"/> has <star index="2"/> .
<srai>XEDUCATE WHAT HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT DOES XSPLIT <star index="1"/> XSPLIT HAVE XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>MY * HAS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that your <star index="1"/> has <star index="2"/> .
<srai>XEDUCATE WHAT HAS XSPLIT my <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE HAS XSPLIT my <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO HAS XSPLIT my <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT DOES XSPLIT my <star index="1"/> XSPLIT HAVE XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>LEARN MY * HAS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that your <star index="1"/> has <star index="2"/> .
<srai>XEDUCATE WHAT HAS XSPLIT my <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE HAS XSPLIT my <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO HAS XSPLIT my <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT DOES XSPLIT my <star index="1"/> XSPLIT HAVE XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>LEARN * ARE *</pattern>
<template><srai>xlearnfact</srai>
Ok I will learn that <star index="1"/> are <star index="2"/> .
<srai>XEDUCATE WHAT ARE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE ARE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO ARE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ ARE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATELANG <star index="1"/> XSPLIT <star index="2"/> XSPLIT a language XSPLIT</srai></template>
</category>
<category><pattern>XEDUCATE * XSPLIT * XSPLIT *</pattern>
<template><learn>
<category>
<pattern>
<eval><uppercase> <star index="1"/> <star index="3"/> </uppercase></eval>
</pattern>
<template>
<eval> <star index="2"/> </eval>
</template>
</category>
</learn>
<learn>
<category>
<pattern>
<eval><uppercase> <star index="1"/> <star index="2"/> </uppercase></eval>
</pattern>
<template>
<eval> <star index="3"/> </eval>
</template>
</category>
</learn></template>
</category>
<category><pattern>XEDUCATE * XSPLIT * XSPLIT * XSPLIT *</pattern>
<template><learn>
<category>
<pattern>
<eval><uppercase> <star index="1"/> <star index="2"/> <star index="3"/> </uppercase></eval>
</pattern>
<template>
<eval> <star index="4"/> </eval>
</template>
</category>
</learn></template>
</category>
<category><pattern>XEDUCATELANG * XSPLIT * XSPLIT * XSPLIT</pattern>
<template><learn>
<category>
<pattern>
<eval><uppercase> <star index="1"/> </uppercase></eval>
</pattern>
<template>
<eval><srai> <star index="2"/> </srai></eval>
</template>
</category>
</learn>
<learn>
<category>
<pattern>
<eval>DO YOU SPEAK<uppercase> <star index="3"/> </uppercase></eval>
</pattern>
<template>
<eval>I was taught that <star index="1"/> means <star index="2"/> in <star index="3"/> .</eval>
</template>
</category>
</learn></template>
</category>
<category><pattern>* IS GOING *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT IS GOING XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT GOING XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS GOING XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>* MEANS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATELANG <star index="1"/> XSPLIT <star index="2"/> XSPLIT a language XSPLIT</srai></template>
</category>
<category><pattern>* IS AN *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS AN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS AN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS AN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>* IS A *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS A XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS A XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS A XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS A XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>* IS THE *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT IS THE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS THE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS THE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>AN * IS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS AN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS AN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS AN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS AN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>A * IS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS A XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS A XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS A XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS A XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>* IS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATELANG <star index="1"/> XSPLIT <star index="2"/> XSPLIT a language XSPLIT</srai></template>
</category>
<category><pattern>* WAS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT WAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE WAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO WAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ WAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATELANG <star index="1"/> XSPLIT <star index="2"/> XSPLIT a language XSPLIT</srai></template>
</category>
<category><pattern>AN * HAS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT DOES AN XSPLIT <star index="1"/> XSPLIT HAVE XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>A * HAS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT DOES A XSPLIT <star index="1"/> XSPLIT HAVE XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>* HAS *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO HAS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT DOES XSPLIT <star index="1"/> XSPLIT HAVE XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>* ARE *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT ARE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE ARE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO ARE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATELANG <star index="1"/> XSPLIT <star index="2"/> XSPLIT a language XSPLIT</srai></template>
</category>
<category><pattern>* WILL BE *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT WILL BE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT WILL XSPLIT <star index="1"/> XSPLIT BE XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE WILL XSPLIT <star index="1"/> XSPLIT BE XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO WILL BE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>LEARN * WILL BE *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT WILL BE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT WILL XSPLIT <star index="1"/> XSPLIT BE XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHERE WILL XSPLIT <star index="1"/> XSPLIT BE XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO WILL BE XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>* SAID *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT DID XSPLIT <star index="1"/> XSPLIT SAY XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO SAID XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>LEARN * SAID *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT DID XSPLIT <star index="1"/> XSPLIT SAY XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO SAID XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>* IS FROM *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT FROM XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS FROM XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT IS FROM XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>LEARN * IS FROM *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT FROM XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO IS FROM XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>A * LIVES IN *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHERE DOES A XSPLIT <star index="1"/> XSPLIT LIVE XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>AN * LIVES IN *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHERE DOES AN XSPLIT <star index="1"/> XSPLIT LIVE XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>* LIVES IN *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHERE DOES XSPLIT <star index="1"/> XSPLIT LIVE XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>LEARN * LIVES IN *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHERE DOES XSPLIT <star index="1"/> XSPLIT LIVE XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHO LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai>
<srai>XEDUCATE WHAT _ LIVES IN XSPLIT <star index="1"/> XSPLIT <star index="2"/> </srai></template>
</category>
<category><pattern>LEARN * MEANS _ IN *</pattern>
<template><srai>xlearnfact</srai>
Ok I will add that fact about<person/>to my database.
<srai>XEDUCATE WHAT IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> in <star index="3"/> </srai>
<srai>XEDUCATE WHERE IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> in <star index="3"/> </srai>
<srai>XEDUCATE WHO IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> in <star index="3"/> </srai>
<srai>XEDUCATE WHAT _ IS XSPLIT <star index="1"/> XSPLIT <star index="2"/> in <star index="3"/> </srai>
<srai>XEDUCATELANG <star index="1"/> XSPLIT <star index="2"/> XSPLIT <star index="3"/> XSPLIT</srai></template>
</category>
<category><pattern>* MEANS _ IN *</pattern>
<template><srai>learn<star/>means <star index="2"/> in <star index="3"/> </srai></template>
</category>
<category><pattern>_ IN * MEANS *</pattern>
<template><srai><star/>means <star index="3"/> in <star index="2"/> </srai></template>
</category>
<category><pattern>XLEARNFACT</pattern>
<template><template/></template>
</category>
</aiml>

@ -0,0 +1,751 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: luckyslots.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>LUCKYSLOTS</pattern>
<template><think>
<set name="coins">50</set>
</think>
Welcome to my slot machine.<br/>You start with<get name="coins"/>coins and each spin of the machine costs you 1 coin.<br/>The game is over when you have either lost all your money or made 250 coins.<br/>Good luck!<br/><br/>Type START to load the machine.</template>
</category>
<category><pattern>START</pattern><that>TYPE START TO LOAD THE MACHINE</that>
<template>Reels: -&gt; ? ? ? &lt;-<br/><br/>
A A A pays 100<br/>
K K K pays 50<br/>
Q Q Q pays 25<br/>
J J J pays 15<br/>
7 7 7 pays 7<br/>
A A - pays 2<br/><br/>
You have<get name="coins"/>coins in the bank.<br/><br/>
<set name="slotsmessage">Type S to spin the reels</set></template>
</category>
<category><pattern>S</pattern><that>TYPE S TO SPIN THE REELS</that>
<template><srai>XSUB1</srai>
<srai>XSPIN1</srai>
<srai>XSPIN2</srai>
<srai>XSPIN3</srai>
<srai>XSLOTSLOOP</srai></template>
</category>
<category><pattern>XSLOTSLOOP</pattern>
<template>Reels: -&gt;<set name="reels"><get name="reel1"/><get name="reel2"/><get name="reel3"/></set> &lt;-<br/>
<srai>XSLOTHOLD</srai><br/>
A A A pays 100<br/>
K K K pays 50<br/>
Q Q Q pays 25<br/>
J J J pays 15<br/>
7 7 7 pays 7<br/>
A A - pays 2<br/><br/>
<srai>XCHECKWIN</srai><br/>
<think>
<set name="bank">You have<get name="coins"/>coins in the bank.</set>
<condition name="coins">
<li value="1"><set name="bank">You have 1 coin in the bank.</set></li>
</condition>
</think>
<get name="bank"/><br/><br/>
<srai>XCHECKGAMEOVER</srai><get name="slotsmessage"/></template>
</category>
<category><pattern>XSLOTHOLD</pattern>
<template><random>
<li><think><set name="slotsmessage">Type S to spin the reels</set></think></li>
<li><think><set name="slotsmessage">Type S to spin the reels</set></think></li>
<li>HOLD: -&gt; 1 2 3 &lt;-<think><set name="slotsmessage">HOLD AVAILABLE - Enter the reels you wish to hold. E.g. 12 will hold reels 1 and 2 and spin reel 3.<br/>Type S to spin all three.</set>
</think></li>
</random></template>
</category>
<category><pattern>S</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>XSUB1</srai>
<srai>XSPIN1</srai>
<srai>XSPIN2</srai>
<srai>XSPIN3</srai>
<srai>XSLOTSLOOP</srai></template>
</category>
<category><pattern>1</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>XSUB1</srai>
<srai>XSPIN2</srai>
<srai>XSPIN3</srai>
<srai>XSLOTSLOOP</srai></template>
</category>
<category><pattern>2</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>XSUB1</srai>
<srai>XSPIN1</srai>
<srai>XSPIN3</srai>
<srai>XSLOTSLOOP</srai></template>
</category>
<category><pattern>3</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>XSUB1</srai>
<srai>XSPIN1</srai>
<srai>XSPIN2</srai>
<srai>XSLOTSLOOP</srai></template>
</category>
<category><pattern>12</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>XSUB1</srai>
<srai>XSPIN3</srai>
<srai>XSLOTSLOOP</srai></template>
</category>
<category><pattern>13</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>XSUB1</srai>
<srai>XSPIN2</srai>
<srai>XSLOTSLOOP</srai></template>
</category>
<category><pattern>23</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>XSUB1</srai>
<srai>XSPIN1</srai>
<srai>XSLOTSLOOP</srai></template>
</category>
<category><pattern>123</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>XSUB1</srai>
<srai>XSLOTSLOOP</srai></template>
</category>
<category><pattern>21</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>12</srai></template>
</category>
<category><pattern>31</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>13</srai></template>
</category>
<category><pattern>32</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>23</srai></template>
</category>
<category><pattern>132</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>123</srai></template>
</category>
<category><pattern>213</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>123</srai></template>
</category>
<category><pattern>231</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>123</srai></template>
</category>
<category><pattern>312</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>123</srai></template>
</category>
<category><pattern>321</pattern><that>TYPE S TO SPIN ALL THREE</that>
<template><srai>123</srai></template>
</category>
<category><pattern>XSPIN1</pattern>
<template><think>
<random>
<li><set name="reel1">A</set></li>
<li><set name="reel1">7</set></li>
<li><set name="reel1">K</set></li>
<li><set name="reel1">7</set></li>
<li><set name="reel1">Q</set></li>
<li><set name="reel1">7</set></li>
<li><set name="reel1">J</set></li>
<li><set name="reel1">K</set></li>
<li><set name="reel1">Q</set></li>
<li><set name="reel1">J</set></li>
</random>
</think></template>
</category>
<category><pattern>XSPIN2</pattern>
<template><think>
<random>
<li><set name="reel2">K</set></li>
<li><set name="reel2">Q</set></li>
<li><set name="reel2">J</set></li>
<li><set name="reel2">Q</set></li>
<li><set name="reel2">A</set></li>
<li><set name="reel2">7</set></li>
</random>
</think></template>
</category>
<category><pattern>XSPIN3</pattern>
<template><think>
<random>
<li><set name="reel3">K</set></li>
<li><set name="reel3">7</set></li>
<li><set name="reel3">J</set></li>
<li><set name="reel3">7</set></li>
<li><set name="reel3">A</set></li>
<li><set name="reel3">7</set></li>
<li><set name="reel3">J</set></li>
<li><set name="reel3">Q</set></li>
<li><set name="reel3">J</set></li>
</random>
</think></template>
</category>
<category><pattern>XCHECKWIN</pattern>
<template><think>
<set name="payout">0</set>
<condition name="reels">
<li value="A A A"><set name="payout">100</set></li>
<li value="K K K"><set name="payout">50</set></li>
<li value="Q Q Q"><set name="payout">25</set></li>
<li value="J J J"><set name="payout">15</set></li>
<li value="7 7 7"><set name="payout">7</set></li>
<li value="A A K"><set name="payout">2</set></li>
<li value="A A Q"><set name="payout">2</set></li>
<li value="A A J"><set name="payout">2</set></li>
<li value="A A 7"><set name="payout">2</set></li>
</condition>
</think>
<srai>XADDWIN</srai></template>
</category>
<category><pattern>XADDWIN</pattern>
<template><think>
<condition name="payout">
<li value="100"><srai>XADD25</srai><srai>XADD25</srai><srai>XADD25</srai><srai>XADD25</srai></li>
<li value="50"><srai>XADD25</srai><srai>XADD25</srai></li>
<li value="25"><srai>XADD25</srai></li>
<li value="15"><srai>XADD5</srai><srai>XADD5</srai><srai>XADD5</srai></li>
<li value="7"><srai>XADD5</srai><srai>XADD1</srai><srai>XADD1</srai></li>
<li value="2"><srai>XADD1</srai><srai>XADD1</srai></li>
</condition>
</think>
<condition name="payout">
<li value="100">J A C K P O T ! ! ! 100 coins!!!</li>
<li value="50">3 Kings! You win 50 coins.</li>
<li value="25">3 Queens! You win 25 coins.</li>
<li value="15">3 Jacks! You win 15 coins.</li>
<li value="7">3 Sevens! You win 7 coins.</li>
<li value="2">2 Aces! You win 2 coins.</li>
<li value="0">No win.</li>
</condition></template>
</category>
<category><pattern>XCHECKGAMEOVER</pattern>
<template><think>
<condition name="coins">
<li value="0"><set name="slotsmessage">B A N K R U P T ! ! !<br/>GAME OVER</set></li>
<li value="250"><set name="slotsmessage">CONGRATULATIONS! YOU HAVE BROKEN THE BANK!!!!<br/>GAME OVER</set></li>
</condition>
</think></template>
</category>
<category><pattern>XADD5</pattern>
<template><srai>XADD1</srai>
<srai>XADD1</srai>
<srai>XADD1</srai>
<srai>XADD1</srai>
<srai>XADD1</srai></template>
</category>
<category><pattern>XADD25</pattern>
<template><srai>XADD5</srai>
<srai>XADD5</srai>
<srai>XADD5</srai>
<srai>XADD5</srai>
<srai>XADD5</srai></template>
</category>
<category><pattern>XADD1</pattern>
<template><think>
<condition name="coins">
<li value="0"><set name="coins">1</set></li>
<li value="1"><set name="coins">2</set></li>
<li value="2"><set name="coins">3</set></li>
<li value="3"><set name="coins">4</set></li>
<li value="4"><set name="coins">5</set></li>
<li value="5"><set name="coins">6</set></li>
<li value="6"><set name="coins">7</set></li>
<li value="7"><set name="coins">8</set></li>
<li value="8"><set name="coins">9</set></li>
<li value="9"><set name="coins">10</set></li>
<li value="10"><set name="coins">11</set></li>
<li value="11"><set name="coins">12</set></li>
<li value="12"><set name="coins">13</set></li>
<li value="13"><set name="coins">14</set></li>
<li value="14"><set name="coins">15</set></li>
<li value="15"><set name="coins">16</set></li>
<li value="16"><set name="coins">17</set></li>
<li value="17"><set name="coins">18</set></li>
<li value="18"><set name="coins">19</set></li>
<li value="19"><set name="coins">20</set></li>
<li value="20"><set name="coins">21</set></li>
<li value="21"><set name="coins">22</set></li>
<li value="22"><set name="coins">23</set></li>
<li value="23"><set name="coins">24</set></li>
<li value="24"><set name="coins">25</set></li>
<li value="25"><set name="coins">26</set></li>
<li value="26"><set name="coins">27</set></li>
<li value="27"><set name="coins">28</set></li>
<li value="28"><set name="coins">29</set></li>
<li value="29"><set name="coins">30</set></li>
<li value="30"><set name="coins">31</set></li>
<li value="31"><set name="coins">32</set></li>
<li value="32"><set name="coins">33</set></li>
<li value="33"><set name="coins">34</set></li>
<li value="34"><set name="coins">35</set></li>
<li value="35"><set name="coins">36</set></li>
<li value="36"><set name="coins">37</set></li>
<li value="37"><set name="coins">38</set></li>
<li value="38"><set name="coins">39</set></li>
<li value="39"><set name="coins">40</set></li>
<li value="40"><set name="coins">41</set></li>
<li value="41"><set name="coins">42</set></li>
<li value="42"><set name="coins">43</set></li>
<li value="43"><set name="coins">44</set></li>
<li value="44"><set name="coins">45</set></li>
<li value="45"><set name="coins">46</set></li>
<li value="46"><set name="coins">47</set></li>
<li value="47"><set name="coins">48</set></li>
<li value="48"><set name="coins">49</set></li>
<li value="49"><set name="coins">50</set></li>
<li value="50"><set name="coins">51</set></li>
<li value="51"><set name="coins">52</set></li>
<li value="52"><set name="coins">53</set></li>
<li value="53"><set name="coins">54</set></li>
<li value="54"><set name="coins">55</set></li>
<li value="55"><set name="coins">56</set></li>
<li value="56"><set name="coins">57</set></li>
<li value="57"><set name="coins">58</set></li>
<li value="58"><set name="coins">59</set></li>
<li value="59"><set name="coins">60</set></li>
<li value="60"><set name="coins">61</set></li>
<li value="61"><set name="coins">62</set></li>
<li value="62"><set name="coins">63</set></li>
<li value="63"><set name="coins">64</set></li>
<li value="64"><set name="coins">65</set></li>
<li value="65"><set name="coins">66</set></li>
<li value="66"><set name="coins">67</set></li>
<li value="67"><set name="coins">68</set></li>
<li value="68"><set name="coins">69</set></li>
<li value="69"><set name="coins">70</set></li>
<li value="70"><set name="coins">71</set></li>
<li value="71"><set name="coins">72</set></li>
<li value="72"><set name="coins">73</set></li>
<li value="73"><set name="coins">74</set></li>
<li value="74"><set name="coins">75</set></li>
<li value="75"><set name="coins">76</set></li>
<li value="76"><set name="coins">77</set></li>
<li value="77"><set name="coins">78</set></li>
<li value="78"><set name="coins">79</set></li>
<li value="79"><set name="coins">80</set></li>
<li value="80"><set name="coins">81</set></li>
<li value="81"><set name="coins">82</set></li>
<li value="82"><set name="coins">83</set></li>
<li value="83"><set name="coins">84</set></li>
<li value="84"><set name="coins">85</set></li>
<li value="85"><set name="coins">86</set></li>
<li value="86"><set name="coins">87</set></li>
<li value="87"><set name="coins">88</set></li>
<li value="88"><set name="coins">89</set></li>
<li value="89"><set name="coins">90</set></li>
<li value="90"><set name="coins">91</set></li>
<li value="91"><set name="coins">92</set></li>
<li value="92"><set name="coins">93</set></li>
<li value="93"><set name="coins">94</set></li>
<li value="94"><set name="coins">95</set></li>
<li value="95"><set name="coins">96</set></li>
<li value="96"><set name="coins">97</set></li>
<li value="97"><set name="coins">98</set></li>
<li value="98"><set name="coins">99</set></li>
<li value="99"><set name="coins">100</set></li>
<li value="100"><set name="coins">101</set></li>
<li value="101"><set name="coins">102</set></li>
<li value="102"><set name="coins">103</set></li>
<li value="103"><set name="coins">104</set></li>
<li value="104"><set name="coins">105</set></li>
<li value="105"><set name="coins">106</set></li>
<li value="106"><set name="coins">107</set></li>
<li value="107"><set name="coins">108</set></li>
<li value="108"><set name="coins">109</set></li>
<li value="109"><set name="coins">110</set></li>
<li value="110"><set name="coins">111</set></li>
<li value="111"><set name="coins">112</set></li>
<li value="112"><set name="coins">113</set></li>
<li value="113"><set name="coins">114</set></li>
<li value="114"><set name="coins">115</set></li>
<li value="115"><set name="coins">116</set></li>
<li value="116"><set name="coins">117</set></li>
<li value="117"><set name="coins">118</set></li>
<li value="118"><set name="coins">119</set></li>
<li value="119"><set name="coins">120</set></li>
<li value="120"><set name="coins">121</set></li>
<li value="121"><set name="coins">122</set></li>
<li value="122"><set name="coins">123</set></li>
<li value="123"><set name="coins">124</set></li>
<li value="124"><set name="coins">125</set></li>
<li value="125"><set name="coins">126</set></li>
<li value="126"><set name="coins">127</set></li>
<li value="127"><set name="coins">128</set></li>
<li value="128"><set name="coins">129</set></li>
<li value="129"><set name="coins">130</set></li>
<li value="130"><set name="coins">131</set></li>
<li value="131"><set name="coins">132</set></li>
<li value="132"><set name="coins">133</set></li>
<li value="133"><set name="coins">134</set></li>
<li value="134"><set name="coins">135</set></li>
<li value="135"><set name="coins">136</set></li>
<li value="136"><set name="coins">137</set></li>
<li value="137"><set name="coins">138</set></li>
<li value="138"><set name="coins">139</set></li>
<li value="139"><set name="coins">140</set></li>
<li value="140"><set name="coins">141</set></li>
<li value="141"><set name="coins">142</set></li>
<li value="142"><set name="coins">143</set></li>
<li value="143"><set name="coins">144</set></li>
<li value="144"><set name="coins">145</set></li>
<li value="145"><set name="coins">146</set></li>
<li value="146"><set name="coins">147</set></li>
<li value="147"><set name="coins">148</set></li>
<li value="148"><set name="coins">149</set></li>
<li value="149"><set name="coins">150</set></li>
<li value="150"><set name="coins">151</set></li>
<li value="151"><set name="coins">152</set></li>
<li value="152"><set name="coins">153</set></li>
<li value="153"><set name="coins">154</set></li>
<li value="154"><set name="coins">155</set></li>
<li value="155"><set name="coins">156</set></li>
<li value="156"><set name="coins">157</set></li>
<li value="157"><set name="coins">158</set></li>
<li value="158"><set name="coins">159</set></li>
<li value="159"><set name="coins">160</set></li>
<li value="160"><set name="coins">161</set></li>
<li value="161"><set name="coins">162</set></li>
<li value="162"><set name="coins">163</set></li>
<li value="163"><set name="coins">164</set></li>
<li value="164"><set name="coins">165</set></li>
<li value="165"><set name="coins">166</set></li>
<li value="166"><set name="coins">167</set></li>
<li value="167"><set name="coins">168</set></li>
<li value="168"><set name="coins">169</set></li>
<li value="169"><set name="coins">170</set></li>
<li value="170"><set name="coins">171</set></li>
<li value="171"><set name="coins">172</set></li>
<li value="172"><set name="coins">173</set></li>
<li value="173"><set name="coins">174</set></li>
<li value="174"><set name="coins">175</set></li>
<li value="175"><set name="coins">176</set></li>
<li value="176"><set name="coins">177</set></li>
<li value="177"><set name="coins">178</set></li>
<li value="178"><set name="coins">179</set></li>
<li value="179"><set name="coins">180</set></li>
<li value="180"><set name="coins">181</set></li>
<li value="181"><set name="coins">182</set></li>
<li value="182"><set name="coins">183</set></li>
<li value="183"><set name="coins">184</set></li>
<li value="184"><set name="coins">185</set></li>
<li value="185"><set name="coins">186</set></li>
<li value="186"><set name="coins">187</set></li>
<li value="187"><set name="coins">188</set></li>
<li value="188"><set name="coins">189</set></li>
<li value="189"><set name="coins">190</set></li>
<li value="190"><set name="coins">191</set></li>
<li value="191"><set name="coins">192</set></li>
<li value="192"><set name="coins">193</set></li>
<li value="193"><set name="coins">194</set></li>
<li value="194"><set name="coins">195</set></li>
<li value="195"><set name="coins">196</set></li>
<li value="196"><set name="coins">197</set></li>
<li value="197"><set name="coins">198</set></li>
<li value="198"><set name="coins">199</set></li>
<li value="199"><set name="coins">200</set></li>
<li value="200"><set name="coins">201</set></li>
<li value="201"><set name="coins">202</set></li>
<li value="202"><set name="coins">203</set></li>
<li value="203"><set name="coins">204</set></li>
<li value="204"><set name="coins">205</set></li>
<li value="205"><set name="coins">206</set></li>
<li value="206"><set name="coins">207</set></li>
<li value="207"><set name="coins">208</set></li>
<li value="208"><set name="coins">209</set></li>
<li value="209"><set name="coins">210</set></li>
<li value="210"><set name="coins">211</set></li>
<li value="211"><set name="coins">212</set></li>
<li value="212"><set name="coins">213</set></li>
<li value="213"><set name="coins">214</set></li>
<li value="214"><set name="coins">215</set></li>
<li value="215"><set name="coins">216</set></li>
<li value="216"><set name="coins">217</set></li>
<li value="217"><set name="coins">218</set></li>
<li value="218"><set name="coins">219</set></li>
<li value="219"><set name="coins">220</set></li>
<li value="220"><set name="coins">221</set></li>
<li value="221"><set name="coins">222</set></li>
<li value="222"><set name="coins">223</set></li>
<li value="223"><set name="coins">224</set></li>
<li value="224"><set name="coins">225</set></li>
<li value="225"><set name="coins">226</set></li>
<li value="226"><set name="coins">227</set></li>
<li value="227"><set name="coins">228</set></li>
<li value="228"><set name="coins">229</set></li>
<li value="229"><set name="coins">230</set></li>
<li value="230"><set name="coins">231</set></li>
<li value="231"><set name="coins">232</set></li>
<li value="232"><set name="coins">233</set></li>
<li value="233"><set name="coins">234</set></li>
<li value="234"><set name="coins">235</set></li>
<li value="235"><set name="coins">236</set></li>
<li value="236"><set name="coins">237</set></li>
<li value="237"><set name="coins">238</set></li>
<li value="238"><set name="coins">239</set></li>
<li value="239"><set name="coins">240</set></li>
<li value="240"><set name="coins">241</set></li>
<li value="241"><set name="coins">242</set></li>
<li value="242"><set name="coins">243</set></li>
<li value="243"><set name="coins">244</set></li>
<li value="244"><set name="coins">245</set></li>
<li value="245"><set name="coins">246</set></li>
<li value="246"><set name="coins">247</set></li>
<li value="247"><set name="coins">248</set></li>
<li value="248"><set name="coins">249</set></li>
<li value="249"><set name="coins">250</set></li>
</condition>
</think></template>
</category>
<category><pattern>XSUB1</pattern>
<template><think>
<condition name="coins">
<li value="249"><set name="coins">248</set></li>
<li value="248"><set name="coins">247</set></li>
<li value="247"><set name="coins">246</set></li>
<li value="246"><set name="coins">245</set></li>
<li value="245"><set name="coins">244</set></li>
<li value="244"><set name="coins">243</set></li>
<li value="243"><set name="coins">242</set></li>
<li value="242"><set name="coins">241</set></li>
<li value="241"><set name="coins">240</set></li>
<li value="240"><set name="coins">239</set></li>
<li value="239"><set name="coins">238</set></li>
<li value="238"><set name="coins">237</set></li>
<li value="237"><set name="coins">236</set></li>
<li value="236"><set name="coins">235</set></li>
<li value="235"><set name="coins">234</set></li>
<li value="234"><set name="coins">233</set></li>
<li value="233"><set name="coins">232</set></li>
<li value="232"><set name="coins">231</set></li>
<li value="231"><set name="coins">230</set></li>
<li value="230"><set name="coins">229</set></li>
<li value="229"><set name="coins">228</set></li>
<li value="228"><set name="coins">227</set></li>
<li value="227"><set name="coins">226</set></li>
<li value="226"><set name="coins">225</set></li>
<li value="225"><set name="coins">224</set></li>
<li value="224"><set name="coins">223</set></li>
<li value="223"><set name="coins">222</set></li>
<li value="222"><set name="coins">221</set></li>
<li value="221"><set name="coins">220</set></li>
<li value="220"><set name="coins">219</set></li>
<li value="219"><set name="coins">218</set></li>
<li value="218"><set name="coins">217</set></li>
<li value="217"><set name="coins">216</set></li>
<li value="216"><set name="coins">215</set></li>
<li value="215"><set name="coins">214</set></li>
<li value="214"><set name="coins">213</set></li>
<li value="213"><set name="coins">212</set></li>
<li value="212"><set name="coins">211</set></li>
<li value="211"><set name="coins">210</set></li>
<li value="210"><set name="coins">209</set></li>
<li value="209"><set name="coins">208</set></li>
<li value="208"><set name="coins">207</set></li>
<li value="207"><set name="coins">206</set></li>
<li value="206"><set name="coins">205</set></li>
<li value="205"><set name="coins">204</set></li>
<li value="204"><set name="coins">203</set></li>
<li value="203"><set name="coins">202</set></li>
<li value="202"><set name="coins">201</set></li>
<li value="201"><set name="coins">200</set></li>
<li value="200"><set name="coins">199</set></li>
<li value="199"><set name="coins">198</set></li>
<li value="198"><set name="coins">197</set></li>
<li value="197"><set name="coins">196</set></li>
<li value="196"><set name="coins">195</set></li>
<li value="195"><set name="coins">194</set></li>
<li value="194"><set name="coins">193</set></li>
<li value="193"><set name="coins">192</set></li>
<li value="192"><set name="coins">191</set></li>
<li value="191"><set name="coins">190</set></li>
<li value="190"><set name="coins">189</set></li>
<li value="189"><set name="coins">188</set></li>
<li value="188"><set name="coins">187</set></li>
<li value="187"><set name="coins">186</set></li>
<li value="186"><set name="coins">185</set></li>
<li value="185"><set name="coins">184</set></li>
<li value="184"><set name="coins">183</set></li>
<li value="183"><set name="coins">182</set></li>
<li value="182"><set name="coins">181</set></li>
<li value="181"><set name="coins">180</set></li>
<li value="180"><set name="coins">179</set></li>
<li value="179"><set name="coins">178</set></li>
<li value="178"><set name="coins">177</set></li>
<li value="177"><set name="coins">176</set></li>
<li value="176"><set name="coins">175</set></li>
<li value="175"><set name="coins">174</set></li>
<li value="174"><set name="coins">173</set></li>
<li value="173"><set name="coins">172</set></li>
<li value="172"><set name="coins">171</set></li>
<li value="171"><set name="coins">170</set></li>
<li value="170"><set name="coins">169</set></li>
<li value="169"><set name="coins">168</set></li>
<li value="168"><set name="coins">167</set></li>
<li value="167"><set name="coins">166</set></li>
<li value="166"><set name="coins">165</set></li>
<li value="165"><set name="coins">164</set></li>
<li value="164"><set name="coins">163</set></li>
<li value="163"><set name="coins">162</set></li>
<li value="162"><set name="coins">161</set></li>
<li value="161"><set name="coins">160</set></li>
<li value="160"><set name="coins">159</set></li>
<li value="159"><set name="coins">158</set></li>
<li value="158"><set name="coins">157</set></li>
<li value="157"><set name="coins">156</set></li>
<li value="156"><set name="coins">155</set></li>
<li value="155"><set name="coins">154</set></li>
<li value="154"><set name="coins">153</set></li>
<li value="153"><set name="coins">152</set></li>
<li value="152"><set name="coins">151</set></li>
<li value="151"><set name="coins">150</set></li>
<li value="150"><set name="coins">149</set></li>
<li value="149"><set name="coins">148</set></li>
<li value="148"><set name="coins">147</set></li>
<li value="147"><set name="coins">146</set></li>
<li value="146"><set name="coins">145</set></li>
<li value="145"><set name="coins">144</set></li>
<li value="144"><set name="coins">143</set></li>
<li value="143"><set name="coins">142</set></li>
<li value="142"><set name="coins">141</set></li>
<li value="141"><set name="coins">140</set></li>
<li value="140"><set name="coins">139</set></li>
<li value="139"><set name="coins">138</set></li>
<li value="138"><set name="coins">137</set></li>
<li value="137"><set name="coins">136</set></li>
<li value="136"><set name="coins">135</set></li>
<li value="135"><set name="coins">134</set></li>
<li value="134"><set name="coins">133</set></li>
<li value="133"><set name="coins">132</set></li>
<li value="132"><set name="coins">131</set></li>
<li value="131"><set name="coins">130</set></li>
<li value="130"><set name="coins">129</set></li>
<li value="129"><set name="coins">128</set></li>
<li value="128"><set name="coins">127</set></li>
<li value="127"><set name="coins">126</set></li>
<li value="126"><set name="coins">125</set></li>
<li value="125"><set name="coins">124</set></li>
<li value="124"><set name="coins">123</set></li>
<li value="123"><set name="coins">122</set></li>
<li value="122"><set name="coins">121</set></li>
<li value="121"><set name="coins">120</set></li>
<li value="120"><set name="coins">119</set></li>
<li value="119"><set name="coins">118</set></li>
<li value="118"><set name="coins">117</set></li>
<li value="117"><set name="coins">116</set></li>
<li value="116"><set name="coins">115</set></li>
<li value="115"><set name="coins">114</set></li>
<li value="114"><set name="coins">113</set></li>
<li value="113"><set name="coins">112</set></li>
<li value="112"><set name="coins">111</set></li>
<li value="111"><set name="coins">110</set></li>
<li value="110"><set name="coins">109</set></li>
<li value="109"><set name="coins">108</set></li>
<li value="108"><set name="coins">107</set></li>
<li value="107"><set name="coins">106</set></li>
<li value="106"><set name="coins">105</set></li>
<li value="105"><set name="coins">104</set></li>
<li value="104"><set name="coins">103</set></li>
<li value="103"><set name="coins">102</set></li>
<li value="102"><set name="coins">101</set></li>
<li value="101"><set name="coins">100</set></li>
<li value="100"><set name="coins">99</set></li>
<li value="99"><set name="coins">98</set></li>
<li value="98"><set name="coins">97</set></li>
<li value="97"><set name="coins">96</set></li>
<li value="96"><set name="coins">95</set></li>
<li value="95"><set name="coins">94</set></li>
<li value="94"><set name="coins">93</set></li>
<li value="93"><set name="coins">92</set></li>
<li value="92"><set name="coins">91</set></li>
<li value="91"><set name="coins">90</set></li>
<li value="90"><set name="coins">89</set></li>
<li value="89"><set name="coins">88</set></li>
<li value="88"><set name="coins">87</set></li>
<li value="87"><set name="coins">86</set></li>
<li value="86"><set name="coins">85</set></li>
<li value="85"><set name="coins">84</set></li>
<li value="84"><set name="coins">83</set></li>
<li value="83"><set name="coins">82</set></li>
<li value="82"><set name="coins">81</set></li>
<li value="81"><set name="coins">80</set></li>
<li value="80"><set name="coins">79</set></li>
<li value="79"><set name="coins">78</set></li>
<li value="78"><set name="coins">77</set></li>
<li value="77"><set name="coins">76</set></li>
<li value="76"><set name="coins">75</set></li>
<li value="75"><set name="coins">74</set></li>
<li value="74"><set name="coins">73</set></li>
<li value="73"><set name="coins">72</set></li>
<li value="72"><set name="coins">71</set></li>
<li value="71"><set name="coins">70</set></li>
<li value="70"><set name="coins">69</set></li>
<li value="69"><set name="coins">68</set></li>
<li value="68"><set name="coins">67</set></li>
<li value="67"><set name="coins">66</set></li>
<li value="66"><set name="coins">65</set></li>
<li value="65"><set name="coins">64</set></li>
<li value="64"><set name="coins">63</set></li>
<li value="63"><set name="coins">62</set></li>
<li value="62"><set name="coins">61</set></li>
<li value="61"><set name="coins">60</set></li>
<li value="60"><set name="coins">59</set></li>
<li value="59"><set name="coins">58</set></li>
<li value="58"><set name="coins">57</set></li>
<li value="57"><set name="coins">56</set></li>
<li value="56"><set name="coins">55</set></li>
<li value="55"><set name="coins">54</set></li>
<li value="54"><set name="coins">53</set></li>
<li value="53"><set name="coins">52</set></li>
<li value="52"><set name="coins">51</set></li>
<li value="51"><set name="coins">50</set></li>
<li value="50"><set name="coins">49</set></li>
<li value="49"><set name="coins">48</set></li>
<li value="48"><set name="coins">47</set></li>
<li value="47"><set name="coins">46</set></li>
<li value="46"><set name="coins">45</set></li>
<li value="45"><set name="coins">44</set></li>
<li value="44"><set name="coins">43</set></li>
<li value="43"><set name="coins">42</set></li>
<li value="42"><set name="coins">41</set></li>
<li value="41"><set name="coins">40</set></li>
<li value="40"><set name="coins">39</set></li>
<li value="39"><set name="coins">38</set></li>
<li value="38"><set name="coins">37</set></li>
<li value="37"><set name="coins">36</set></li>
<li value="36"><set name="coins">35</set></li>
<li value="35"><set name="coins">34</set></li>
<li value="34"><set name="coins">33</set></li>
<li value="33"><set name="coins">32</set></li>
<li value="32"><set name="coins">31</set></li>
<li value="31"><set name="coins">30</set></li>
<li value="30"><set name="coins">29</set></li>
<li value="29"><set name="coins">28</set></li>
<li value="28"><set name="coins">27</set></li>
<li value="27"><set name="coins">26</set></li>
<li value="26"><set name="coins">25</set></li>
<li value="25"><set name="coins">24</set></li>
<li value="24"><set name="coins">23</set></li>
<li value="23"><set name="coins">22</set></li>
<li value="22"><set name="coins">21</set></li>
<li value="21"><set name="coins">20</set></li>
<li value="20"><set name="coins">19</set></li>
<li value="19"><set name="coins">18</set></li>
<li value="18"><set name="coins">17</set></li>
<li value="17"><set name="coins">16</set></li>
<li value="16"><set name="coins">15</set></li>
<li value="15"><set name="coins">14</set></li>
<li value="14"><set name="coins">13</set></li>
<li value="13"><set name="coins">12</set></li>
<li value="12"><set name="coins">11</set></li>
<li value="11"><set name="coins">10</set></li>
<li value="10"><set name="coins">9</set></li>
<li value="9"><set name="coins">8</set></li>
<li value="8"><set name="coins">7</set></li>
<li value="7"><set name="coins">6</set></li>
<li value="6"><set name="coins">5</set></li>
<li value="5"><set name="coins">4</set></li>
<li value="4"><set name="coins">3</set></li>
<li value="3"><set name="coins">2</set></li>
<li value="2"><set name="coins">1</set></li>
<li value="1"><set name="coins">0</set></li>
</condition>
</think></template>
</category>
</aiml>

@ -0,0 +1,303 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: maths.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>MATHS FACT</pattern>
<template><random>
<li>If you counted at the rate of 200 numbers a minute for twelve hours every day, it would take you 19,024 years, 68 days, 10 hours and 40 minutes to count to 1 billion.</li>
<li>Here is a strange sum:<br/>846 x 14493 = 12345678.</li>
<li>Here is a strange sum:<br/>9298 x 119.5 = 1111111.</li>
<li>There are seven digits in 1,000,000 and there are seven letters in a million.</li>
<li>The chances of a coin landing tails up 200 times in a row are 1606938044255899027554196209234116202522202993782792835301375 to 1.</li>
<li>If eight walkers walked in single file, in a different order each day, it would take them 110 years to return to the order in which they started out on the first day.</li>
<li>If you played dominoes with a friend for ten hours a day and made four moves a minute, you could play for 118,000 years before you had played all the different combinations of dominoes that are possible in a game.</li>
<li>There are no numbers which when divided will produce a row of nines that will go on for ever.</li>
<li>If you wanted to arrange fifteen books on a bookshelf in all the different ways possible, and you made one change every minute, it would take you 2,487,996 years to do it.</li>
<li><br/>
1 x 9 - 1 = 8<br/>
21 x 9 - 1 = 188<br/>
321 x 9 - 1 = 2888<br/>
4321 x 9 - 1 = 38888<br/>
54321 x 9 - 1 = 488888<br/>
654321 x 9 - 1 = 5888888<br/>
7654321 x 9 - 1 = 68888888<br/>
87654321 x 9 - 1 = 788888888<br/>
987654321 x 9 - 1 = 8888888888.</li>
<li><br/>
9 x 9 + 7 = 88<br/>
98 x 9 + 6 = 888<br/>
987 x 9 + 5 = 8888<br/>
9876 x 9 + 4 = 88888<br/>
98765 x 9 + 3 = 888888<br/>
987654 x 9 + 2 = 8888888<br/>
9876543 x 9 + 1 = 88888888<br/>
98765432 x 9 + 0 = 888888888.</li>
<li><br/>123456789 +<br/>987654321 +<br/>123456789 +<br/>987654321 +<br/>2 =<br/>2222222222.</li>
<li>Here is a strange sum:<br/>888 + 88 + 8 + 8 + 8 = 1000.</li>
<li><br/>
65359477124183 x 17 x 1 = 1111111111111111<br/>
65359477124183 x 17 x 2 = 2222222222222222<br/>
65359477124183 x 17 x 3 = 3333333333333333<br/>
65359477124183 x 17 x 4 = 4444444444444444<br/>
65359477124183 x 17 x 5 = 5555555555555555<br/>
65359477124183 x 17 x 6 = 6666666666666666<br/>
65359477124183 x 17 x 7 = 7777777777777777<br/>
65359477124183 x 17 x 8 = 8888888888888888<br/>
65359477124183 x 17 x 9 = 9999999999999999.</li>
<li>2519 is an entertaining little number which leaves a tidy sequence of digits as remainders when you divide it by 2,3,4,5,6,7,8,9 or 10. This is what its remainders look like:<br/><br/>
2519 / 2 = 1259 remainder 1<br/>
2519 / 3 = 839 remainder 2<br/>
2519 / 4 = 629 remainder 3<br/>
2519 / 5 = 503 remainder 4<br/>
2519 / 6 = 419 remainder 5<br/>
2519 / 7 = 359 remainder 6<br/>
2519 / 8 = 314 remainder 7<br/>
2519 / 9 = 279 remainder 8<br/>
2519 / 10 = 251 remainder 9</li>
<li>Look at these sums:<br/><br/>
142857 x 2 = 285714<br/>
142857 x 3 = 428571<br/>
142857 x 4 = 571428<br/>
142857 x 5 = 714285<br/>
142857 x 6 = 857142<br/><br/>
In every answer the same six digits (142857) reappear in the same order but starting at a different point. This pattern continues except for 7, which is a law unto itself:<br/>
142857 x 7 = 999999<br/>
Try 8 and 9 and the pattern reappears, though with a difference:<br/><br/>
142857 x 8 = 1142856<br/>
142857 x 9 = 1285713<br/><br/>
What pattern? 1142856 and 1285713 look nothing like 142857, or so you might think. But remove the first digit of each number and add it to the rest and see what we get:<br/><br/>
142856 + 1 = 142857
285713 + 1 = 285714<br/><br/>
The pattern persists even with larger numbers:<br/><br/>
142857 x 16 = 2285712 and 285712 + 2 = 285714<br/>
142857 x 29 = 4142853 and 142853 + 4 = 142857<br/>
142857 x 34 = 4857138 and 857138 + 4 = 857142<br/>
142857 x 51 = 7285707 and 285707 + 7 = 285714<br/>
142857 x 64 = 9142848 and 142848 + 9 = 142857<br/><br/>
Once you start to multiply by even larger numbers the pattern alters again. You have to renmove the first two digits and add them to the remaining digits in the number, but the answer still comes out the same:<br/><br/>
142857 x 89 = 12714273 and 714273 + 12 = 714285<br/>
142857 x 113 = 16142841 and 142841 + 16 = 142857<br/>
142857 x 258 = 36857106 and 857106 + 36 = 857142<br/>
142857 x 456 = 65142792 and 142792 + 65 = 142857<br/>
142857 x 695 = 99285615 and 285615 + 99 = 285714.</li>
<li><br/>
37037 x 2 = 74074<br/>
37037 x 3 = 111111<br/>
37037 x 4 = 148148<br/>
37037 x 5 = 185185<br/>
37037 x 6 = 222222<br/>
37037 x 7 = 259259<br/>
37037 x 8 = 296296<br/>
37037 x 9 = 333333<br/>
37037 x 10 = 370370<br/>
37037 x 11 = 407407<br/>
37037 x 12 = 444444<br/>
37037 x 13 = 481481<br/>
37037 x 14 = 518518<br/>
37037 x 15 = 555555<br/>
37037 x 16 = 592592<br/>
37037 x 17 = 629629<br/>
37037 x 18 = 666666<br/>
37037 x 19 = 703703<br/>
37037 x 20 = 740740<br/>
37037 x 21 = 777777<br/>
37037 x 22 = 814814<br/>
37037 x 23 = 851851<br/>
37037 x 24 = 888888<br/>
37037 x 25 = 925925<br/>
37037 x 26 = 962962<br/>
37037 x 27 = 999999.</li>
<li>The largest sum that can be written with just three digits is:<br/><br/>9^(9^9)<br/><br/>
This may not look impressive but it is 9 raised to the 387,420,489th power. If you were to try to work this out on paper, you would end up with around 369,000,000 digits. The row of digits would be about 1000 kilometres long and you would have spent nearly 150 years working the sum out.</li>
<li><br/>
15873 x 7 = 111111<br/>
15873 x 14 = 222222<br/>
15873 x 21 = 333333<br/>
15873 x 28 = 444444<br/>
15873 x 35 = 555555<br/>
15873 x 42 = 666666<br/>
15873 x 49 = 777777<br/>
15873 x 56 = 888888<br/>
15873 x 63 = 999999<br/>
15873 x 70 = 1111110<br/>
15873 x 77 = 1222221<br/>
15873 x 84 = 1333332<br/>
15873 x 91 = 1444443<br/>
15873 x 98 = 1555554<br/>
15873 x 105 = 1666665<br/>
15873 x 112 = 1777776<br/>
15873 x 119 = 1888887<br/>
15873 x 126 = 1999998<br/>
15873 x 133 = 2111109<br/>
15873 x 140 = 2222220<br/>
15873 x 147 = 2333331<br/>
15873 x 154 = 2444442<br/>
15873 x 161 = 2555553<br/>
15873 x 168 = 2666664<br/>
15873 x 175 = 2777775.</li>
<li><br/>
11^2 = 121<br/>
111^2 = 12321<br/>
1111^2 = 1234321<br/>
11111^2 = 123454321<br/>
111111^2 = 12345654321<br/>
1111111^2 = 1234567654321<br/>
11111111^2 = 123456787654321<br/>
111111111^2 = 12345678987654321.</li>
<li><br/>
33 x 3367 = 111111<br/>
66 x 3367 = 222222<br/>
99 x 3367 = 333333<br/>
132 x 3367 = 444444<br/>
165 x 3367 = 555555<br/>
198 x 3367 = 666666<br/>
231 x 3367 = 777777<br/>
264 x 3367 = 888888<br/>
297 x 3367 = 999999.</li>
<li>How many ways can you think of writing the nine digits in a sum so that each time the result will be 100? Here are some:<br/><br/>
1+2+3+4+5+6+7+(8x9) = 100<br/>
(-1x2)-3-4-5+(6x7)+(8x9) = 100<br/>
1+(2x3)+(4x5)-6+7+(8x9) = 100<br/>
(1+2-3-4)x(5-6-7-8-9) = 100<br/>
1+(2x3)+4+5+67+8+9 = 100<br/>
(1x2)+34+56+7-8+9 = 100<br/>
12+3-4+5+67+8+9 = 100<br/>
123-4-5-6-7+8-9 = 100<br/>
123+4-5+67-89 = 100<br/>
123+45-67+8-9 = 100<br/>
123-45-67+89 = 100.</li>
<li><br/>
1 x 9 + 2 = 11<br/>
12 x 9 + 3 = 111<br/>
123 x 9 + 4 = 1111<br/>
1234 x 9 + 5 = 11111<br/>
12345 x 9 + 6 = 111111<br/>
123456 x 9 + 7 = 1111111<br/>
1234567 x 9 + 8 = 11111111<br/>
12345678 x 9 + 9 = 111111111.</li>
<li><br/>
1 x 8 + 1 = 9<br/>
12 x 8 + 2 = 98<br/>
123 x 8 + 3 = 987<br/>
1234 x 8 + 4 = 9876<br/>
12345 x 8 + 5 = 98765<br/>
123456 x 8 + 6 = 987654<br/>
1234567 x 8 + 7 = 9876543<br/>
12345678 x 8 + 8 = 98765432<br/>
123456789 x 8 + 9 = 987654321.</li>
<li>These multiplication sums use each of the digits from 1 to 9 only once:<br/><br/>
4 x 1738 = 6952<br/>
4 x 1963 = 7852<br/>
12 x 483 = 5796<br/>
18 x 297 = 5346<br/>
27 x 198 = 5346<br/>
28 x 157 = 4396<br/>
39 x 186 = 7254<br/>
42 x 138 = 5796<br/>
48 x 159 = 7632.</li>
<li>Write down any prime number over 3. Multiply it by itself (ie square it). Add 14 to the square of the prime number. Divide this result by 12 - and you will always end up with a remainder of 3. Try it:<br/><br/>
13<br/>
13 x 13 = 169<br/>
169 + 14 = 183<br/>
183 / 12 = 15 remainder 3 (12 x 15 = 180)<br/><br/>
29<br/>
29 x 29 = 841<br/>
841 + 14 = 855<br/>
855 / 12 = 71 remainder 3 (12 x 71 = 852).</li>
<li>In these sums the ten digits are each used only once, but with three different signs, they can make three perfectly good equations:<br/><br/>
4 x 5 = 20<br/>
9 - 6 = 3<br/>
7 + 1 = 8</li>
<li>Choose any 3 digit number. Multiply it by 11, and multiply the answer you get by 91.<br/>Look carefully at the second answer and you will see that what you have written is the original number written twice. Look at these examples:<br/><br/>
567 x 11 = 6237 and 6237 x 91 = 567567<br/>
841 x 11 = 9251 and 9251 x 91 = 841841<br/>
111 x 11 = 1221 and 1221 x 91 = 111111.</li>
<li>Here is a strange sum:<br/>2^5 x 9^2 = 2592.</li>
<li>Here is a strange sum:<br/>5363222357 x 207123 = 11111111111111111</li>
<li>Here is a strange sum:<br/>12345679 x 99999999 = 1234567887654321</li>
<li>Look at the eight sums below. The nine digits from 1 to 9 are used in each one, once only. Look at the totals and you will see that each one is nine bigger than the one above it:<br/><br/>
243 + 675 = 918<br/>
341 + 586 = 927<br/>
154 + 782 = 936<br/>
317 + 628 = 945<br/>
216 + 738 = 954<br/>
215 + 748 = 963<br/>
318 + 654 = 972<br/>
235 + 746 = 981.</li>
<li>Any set of numbers copied in a different order and then subtracted one from the other will always produce an answer which can be divided exactly by 9:<br/><br/>
7382456 - 3846527 = 3535929 and 3535929 / 9 = 392881.</li>
<li>Look at this sum. The first two numbers, which contain all the digits from 1 to 9, when multplied together produce a total which is equal to the square of another number which also has all nine digits:<br/><br/>
246913578 x 987654312 = 493827156^2.</li>
<li>Look what happens when you subtract the cube of 641 from the cube of 642:<br/><br/>
641 x 641 x 641 = 263374721<br/>
642 x 642 x 642 = 264609288<br/>
264609288 - 263374721 = 1234567!!</li>
<li>The square of 32042 is 1026753849; 32042 is the smallest number whose square has all ten digits 0-9 used once only. 99066 is the largest number to do this; its square is 9814072356.</li>
<li>It's not very often that you multiply two numbers and find that their product contains the same digits as the two numbers themselves. Here are some examples of five-digit coincidences of this type:<br/><br/>
3 x 4128 = 12384<br/>
3 x 4281 = 12843<br/>
3 x 7125 = 21375<br/>
3 x 7251 = 21753<br/>
2541 x 6 = 15246<br/>
651 x 24 = 15624<br/>
678 x 42 = 28476<br/>
246 x 51 = 12546<br/>
57 x 834 = 47538<br/>
75 x 231 = 17325<br/>
624 x 78 = 58672.</li>
<li>Choose any three digit number. Make a six digit number by repeating the three digits in the same order. Divide this number by 7. Divide your answer by 11. Divide this last answer by 13 and you will always end up with the num,ber you started with. Here are two examples:<br/><br/>
987<br/>
987987<br/>
987 / 7 = 141141<br/>
141141 / 11 = 12831<br/>
12831 / 13 = 987<br/><br/>
126<br/>
126126<br/>
126126 / 7 = 18018<br/>
18018 / 11 = 1638<br/>
1638 / 13 = 126.</li>
<li>In these sums below, all nine digits appear once only:<br/><br/>
12 x 483 = 5796<br/>
4 x 1738 = 6952<br/>
4 x 1963 = 7852<br/>
42 x 138 = 5796<br/>
48 x 159 = 7632.</li>
<li><br/>
1 +<br/>
11 +<br/>
111 +<br/>
1111 +<br/>
11111 +<br/>
111111 +<br/>
1111111 +<br/>
11111111 +<br/>
111111111 =<br/>
123456789.</li>
<li>Look at the numbers running from side to side. All ten of them use 0-9 but each digit is only used once. The same is true of the answer:<br/><br/>
0123456789 +<br/>
0246913578 +<br/>
0493827156 +<br/>
0617283945 +<br/>
0864197523 +<br/>
0987654312 +<br/>
1234567890 +<br/>
1604938257 +<br/>
1728395046 +<br/>
1975308624 = <br/>
9876543120.</li>
</random></template>
</category>
</aiml>

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: minhbot_res.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>WHO IS</pattern>
<template>I don't know but that person must be nice.</template>
</category>
<category><pattern>WHO ARE YOU</pattern>
<template>We are set of bots designed by students from csc335 fall 2018 at the
University of Arizona.</template>
</category>
<category><pattern>WHAT IS CHINA</pattern>
<template><random>
<li>China is a country located in East Asia.</li>
<li>The largest Eastern Asia country.</li>
</random></template>
</category>
</aiml>

@ -0,0 +1,480 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: numberdrop.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>NUMBERDROP</pattern>
<template>Welcome to my Numberdrop game.<br/><br/>
* Put the numbers onto one of the 4 rows.<br/>
* When they equal the row total, they disappear.<br/>
* If there's a number you don't want to use, put it in the recycle bin for later.<br/>
* Try not to BUST a row by overloading it.<br/>
* The numbers range from 1 to 11 with twice as much chance of getting a 10 or 11 than any other number.<br/>
* Clear all of the rows to win the game.<br/><br/>
Type START to play Numberdrop.</template>
</category>
<category><pattern>START</pattern><that>TYPE START TO PLAY NUMBERDROP</that>
<template><think>
<set name="a1">?</set>
<set name="a2">?</set>
<set name="a3">?</set>
<set name="a4">?</set>
<set name="a5">?</set>
<set name="a6">?</set>
<set name="b1">?</set>
<set name="b2">?</set>
<set name="b3">?</set>
<set name="b4">?</set>
<set name="b5">?</set>
<set name="b6">?</set>
<set name="c1">?</set>
<set name="c2">?</set>
<set name="c3">?</set>
<set name="c4">?</set>
<set name="c5">?</set>
<set name="c6">?</set>
<set name="d1">?</set>
<set name="d2">?</set>
<set name="d3">?</set>
<set name="d4">?</set>
<set name="d5">?</set>
<set name="d6">?</set>
<set name="r1">?</set>
<set name="r2">?</set>
<set name="r3">?</set>
<set name="r4">?</set>
<set name="r5">?</set>
<set name="r6">?</set>
<set name="anext">a1</set>
<set name="bnext">b1</set>
<set name="cnext">c1</set>
<set name="dnext">d1</set>
<set name="atot">32</set>
<set name="btot">32</set>
<set name="ctot">32</set>
<set name="dtot">32</set>
<set name="afin">0</set>
<set name="bfin">0</set>
<set name="cfin">0</set>
<set name="dfin">0</set>
<set name="recyclemessage">0</set>
</think>
<srai>BXDISPLAYBOARD</srai>
<srai>BXCHOOSENUMBER</srai></template>
</category>
<category><pattern>BXDISPLAYBOARD</pattern>
<template><condition name="afin">
<li value="0">A) <get name="a1"/> -<get name="a2"/> -<get name="a3"/> -<get name="a4"/> -<get name="a5"/> -<get name="a6"/> /<get name="atot"/><br/></li>
<li value="1">CONGRATULATIONS!!<br/><think><set name="anext">BUST</set></think></li>
</condition>
<condition name="bfin">
<li value="0">B) <get name="b1"/> -<get name="b2"/> -<get name="b3"/> -<get name="b4"/> -<get name="b5"/> -<get name="b6"/> /<get name="btot"/><br/></li>
<li value="1">CONGRATULATIONS!!<br/><think><set name="bnext">BUST</set></think></li>
</condition>
<condition name="cfin">
<li value="0">C) <get name="c1"/> -<get name="c2"/> -<get name="c3"/> -<get name="c4"/> -<get name="c5"/> -<get name="c6"/> /<get name="ctot"/><br/></li>
<li value="1">CONGRATULATIONS!!<br/><think><set name="cnext">BUST</set></think></li>
</condition>
<condition name="dfin">
<li value="0">D) <get name="d1"/> -<get name="d2"/> -<get name="d3"/> -<get name="d4"/> -<get name="d5"/> -<get name="d6"/> /<get name="dtot"/><br/><br/></li>
<li value="1">CONGRATULATIONS!!<br/><br/><think><set name="dnext">BUST</set></think></li>
</condition>
R) <get name="r1"/> /<get name="r2"/> /<get name="r3"/> /<get name="r4"/> /<get name="r5"/> /<get name="r6"/><br/><br/></template>
</category>
<category><pattern>BXCHOOSENUMBER</pattern>
<template><think>
<random>
<li><set name="box">1</set></li>
<li><set name="box">2</set></li>
<li><set name="box">3</set></li>
<li><set name="box">4</set></li>
<li><set name="box">5</set></li>
<li><set name="box">6</set></li>
<li><set name="box">7</set></li>
<li><set name="box">8</set></li>
<li><set name="box">9</set></li>
<li><set name="box">10</set></li>
<li><set name="box">10</set></li>
<li><set name="box">11</set></li>
<li><set name="box">11</set></li>
</random>
<set name="topic">NUMBERDROP</set>
<set name="checkgameover"><get name="anext"/><get name="bnext"/><get name="cnext"/><get name="dnext"/></set>
</think>
<condition name="checkgameover">
<li value="BUST BUST BUST BUST"><set name="topic"/><srai>BXGAMEOVER</srai></li>
<li>The next number is<get name="box"/>.<br/><br/>Which row would you like to put it on? A,B,C,D or R for the recycle bin. You can type Q to quit the game.</li>
</condition></template>
</category>
<topic name="NUMBERDROP">
<category><pattern>_</pattern>
<template><think>
<set name="rowchoice"><star/></set>
</think>
<condition name="rowchoice">
<li value="A"><set name="topic"/><srai>BXROWA</srai></li>
<li value="B"><set name="topic"/><srai>BXROWB</srai></li>
<li value="C"><set name="topic"/><srai>BXROWC</srai></li>
<li value="D"><set name="topic"/><srai>BXROWD</srai></li>
<li value="R"><set name="topic"/><srai>BXROWR</srai></li>
<li value="Q"><set name="topic"/><srai>BXQUITGAME</srai></li>
<li>
<random>
<li><set name="topic"/><srai>BXDISPLAYBOARD</srai>Invalid Choice!<br/>The next number is<get name="box"/>.<br/><br/>Which row would you like to put it on? A,B,C,D or R for the recycle bin. You can type Q to quit the game.<think><set name="topic">NUMBERDROP</set></think></li>
<li><set name="topic"/><srai>BXDISPLAYBOARD</srai>Sorry but<get name="rowchoice"/>isn't a valid Choice!<br/>The next number is<get name="box"/>.<br/>Which row would you like to put it on? A,B,C,D or R for the recycle bin. You can type Q to quit the game.<think><set name="topic">NUMBERDROP</set></think></li>
</random>
</li>
</condition></template>
</category></topic>
<category><pattern>BXROWA</pattern>
<template><think>
<set name="message">0</set>
<condition name="anext">
<li value="a1"><set name="a1"><get name="box"/></set><set name="anext">a2</set></li>
<li value="a2"><set name="a2"><get name="box"/></set><set name="anext">a3</set></li>
<li value="a3"><set name="a3"><get name="box"/></set><set name="anext">a4</set></li>
<li value="a4"><set name="a4"><get name="box"/></set><set name="anext">a5</set></li>
<li value="a5"><set name="a5"><get name="box"/></set><set name="anext">a6</set></li>
<li value="a6"><set name="a6"><get name="box"/></set><set name="anext">BUST</set></li>
<li value="BUST"><set name="message">1</set></li>
</condition>
</think>
<condition name="message">
<li value="0"><srai>BXWORKOUTROWA</srai></li>
<li value="1"><srai>BXDISPLAYBOARD</srai>The number is<get name="box"/>.<br/>Sorry, row A is not available. Please choose another one or type Q to QUIT.<think><set name="topic">NUMBERDROP</set></think></li>
</condition></template>
</category>
<category><pattern>BXWORKOUTROWA</pattern>
<template><think>
<set name="total"><get name="atot"/></set>
<condition name="box">
<li value="1"><srai>BXONE</srai></li>
<li value="2"><srai>BXTWO</srai></li>
<li value="3"><srai>BXTWO</srai><srai>BXONE</srai></li>
<li value="4"><srai>BXTWO</srai><srai>BXTWO</srai></li>
<li value="5"><srai>BXFIVE</srai></li>
<li value="6"><srai>BXFIVE</srai><srai>BXONE</srai></li>
<li value="7"><srai>BXFIVE</srai><srai>BXTWO</srai></li>
<li value="8"><srai>BXFIVE</srai><srai>BXTWO</srai><srai>BXONE</srai></li>
<li value="9"><srai>BXFIVE</srai><srai>BXTWO</srai><srai>BXTWO</srai></li>
<li value="10"><srai>BXFIVE</srai><srai>BXFIVE</srai></li>
<li value="11"><srai>BXFIVE</srai><srai>BXFIVE</srai><srai>BXONE</srai></li>
</condition>
<set name="atot"><get name="total"/></set>
<condition name="atot">
<li value="BUST"><set name="anext">BUST</set></li>
<li value="0"><srai>BXNEWBOARDA</srai></li>
</condition>
</think>
<srai>BXDISPLAYBOARD</srai>
<srai>BXCHOOSENUMBER</srai></template>
</category>
<category><pattern>BXNEWBOARDA</pattern>
<template><think>
<condition name="a1">
<li value="X"><set name="afin">1</set></li>
<li>
<set name="a1">X</set>
<set name="a2">X</set>
<set name="a3">X</set>
<set name="a4">?</set>
<set name="a5">?</set>
<set name="a6">?</set>
<set name="anext">a4</set>
<set name="atot">21</set></li>
</condition>
</think></template>
</category>
<category><pattern>BXROWB</pattern>
<template><think>
<set name="message">0</set>
<condition name="bnext">
<li value="b1"><set name="b1"><get name="box"/></set><set name="bnext">b2</set></li>
<li value="b2"><set name="b2"><get name="box"/></set><set name="bnext">b3</set></li>
<li value="b3"><set name="b3"><get name="box"/></set><set name="bnext">b4</set></li>
<li value="b4"><set name="b4"><get name="box"/></set><set name="bnext">b5</set></li>
<li value="b5"><set name="b5"><get name="box"/></set><set name="bnext">b6</set></li>
<li value="b6"><set name="b6"><get name="box"/></set><set name="bnext">BUST</set></li>
<li value="BUST"><set name="message">1</set></li>
</condition>
</think>
<condition name="message">
<li value="0"><srai>BXWORKOUTROWB</srai></li>
<li value="1"><srai>BXDISPLAYBOARD</srai>The number is<get name="box"/>.<br/>Sorry, row B is not available. Please choose another one or type Q to QUIT.<think><set name="topic">NUMBERDROP</set></think></li>
</condition></template>
</category>
<category><pattern>BXWORKOUTROWB</pattern>
<template><think>
<set name="total"><get name="btot"/></set>
<condition name="box">
<li value="1"><srai>BXONE</srai></li>
<li value="2"><srai>BXTWO</srai></li>
<li value="3"><srai>BXTWO</srai><srai>BXONE</srai></li>
<li value="4"><srai>BXTWO</srai><srai>BXTWO</srai></li>
<li value="5"><srai>BXFIVE</srai></li>
<li value="6"><srai>BXFIVE</srai><srai>BXONE</srai></li>
<li value="7"><srai>BXFIVE</srai><srai>BXTWO</srai></li>
<li value="8"><srai>BXFIVE</srai><srai>BXTWO</srai><srai>BXONE</srai></li>
<li value="9"><srai>BXFIVE</srai><srai>BXTWO</srai><srai>BXTWO</srai></li>
<li value="10"><srai>BXFIVE</srai><srai>BXFIVE</srai></li>
<li value="11"><srai>BXFIVE</srai><srai>BXFIVE</srai><srai>BXONE</srai></li>
</condition>
<set name="btot"><get name="total"/></set>
<condition name="btot">
<li value="BUST"><set name="bnext">BUST</set></li>
<li value="0"><srai>BXNEWBOARDB</srai></li>
</condition>
</think>
<srai>BXDISPLAYBOARD</srai>
<srai>BXCHOOSENUMBER</srai></template>
</category>
<category><pattern>BXNEWBOARDB</pattern>
<template><think>
<condition name="b1">
<li value="X"><set name="bfin">1</set></li>
<li>
<set name="b1">X</set>
<set name="b2">X</set>
<set name="b3">X</set>
<set name="b4">?</set>
<set name="b5">?</set>
<set name="b6">?</set>
<set name="bnext">b4</set>
<set name="btot">21</set></li>
</condition>
</think></template>
</category>
<category><pattern>BXROWC</pattern>
<template><think>
<set name="message">0</set>
<condition name="cnext">
<li value="c1"><set name="c1"><get name="box"/></set><set name="cnext">c2</set></li>
<li value="c2"><set name="c2"><get name="box"/></set><set name="cnext">c3</set></li>
<li value="c3"><set name="c3"><get name="box"/></set><set name="cnext">c4</set></li>
<li value="c4"><set name="c4"><get name="box"/></set><set name="cnext">c5</set></li>
<li value="c5"><set name="c5"><get name="box"/></set><set name="cnext">c6</set></li>
<li value="c6"><set name="c6"><get name="box"/></set><set name="cnext">BUST</set></li>
<li value="BUST"><set name="message">1</set></li>
</condition>
</think>
<condition name="message">
<li value="0"><srai>BXWORKOUTROWC</srai></li>
<li value="1"><srai>BXDISPLAYBOARD</srai>The number is<get name="box"/>.<br/>Sorry, row C is not available. Please choose another one or type Q to QUIT.<think><set name="topic">NUMBERDROP</set></think></li>
</condition></template>
</category>
<category><pattern>BXWORKOUTROWC</pattern>
<template><think>
<set name="total"><get name="ctot"/></set>
<condition name="box">
<li value="1"><srai>BXONE</srai></li>
<li value="2"><srai>BXTWO</srai></li>
<li value="3"><srai>BXTWO</srai><srai>BXONE</srai></li>
<li value="4"><srai>BXTWO</srai><srai>BXTWO</srai></li>
<li value="5"><srai>BXFIVE</srai></li>
<li value="6"><srai>BXFIVE</srai><srai>BXONE</srai></li>
<li value="7"><srai>BXFIVE</srai><srai>BXTWO</srai></li>
<li value="8"><srai>BXFIVE</srai><srai>BXTWO</srai><srai>BXONE</srai></li>
<li value="9"><srai>BXFIVE</srai><srai>BXTWO</srai><srai>BXTWO</srai></li>
<li value="10"><srai>BXFIVE</srai><srai>BXFIVE</srai></li>
<li value="11"><srai>BXFIVE</srai><srai>BXFIVE</srai><srai>BXONE</srai></li>
</condition>
<set name="ctot"><get name="total"/></set>
<condition name="ctot">
<li value="BUST"><set name="cnext">BUST</set></li>
<li value="0"><srai>BXNEWBOARDC</srai></li>
</condition>
</think>
<srai>BXDISPLAYBOARD</srai>
<srai>BXCHOOSENUMBER</srai></template>
</category>
<category><pattern>BXNEWBOARDC</pattern>
<template><think>
<condition name="c1">
<li value="X"><set name="cfin">1</set></li>
<li>
<set name="c1">X</set>
<set name="c2">X</set>
<set name="c3">X</set>
<set name="c4">?</set>
<set name="c5">?</set>
<set name="c6">?</set>
<set name="cnext">c4</set>
<set name="ctot">21</set></li>
</condition>
</think></template>
</category>
<category><pattern>BXROWD</pattern>
<template><think>
<set name="message">0</set>
<condition name="dnext">
<li value="d1"><set name="d1"><get name="box"/></set><set name="dnext">d2</set></li>
<li value="d2"><set name="d2"><get name="box"/></set><set name="dnext">d3</set></li>
<li value="d3"><set name="d3"><get name="box"/></set><set name="dnext">d4</set></li>
<li value="d4"><set name="d4"><get name="box"/></set><set name="dnext">d5</set></li>
<li value="d5"><set name="d5"><get name="box"/></set><set name="dnext">d6</set></li>
<li value="d6"><set name="d6"><get name="box"/></set><set name="dnext">BUST</set></li>
<li value="BUST"><set name="message">1</set></li>
</condition>
</think>
<condition name="message">
<li value="0"><srai>BXWORKOUTROWD</srai></li>
<li value="1"><srai>BXDISPLAYBOARD</srai>The number is<get name="box"/>.<br/>Sorry, row D is not available. Please choose another one or type Q to QUIT.<think><set name="topic">NUMBERDROP</set></think></li>
</condition></template>
</category>
<category><pattern>BXWORKOUTROWD</pattern>
<template><think>
<set name="total"><get name="dtot"/></set>
<condition name="box">
<li value="1"><srai>BXONE</srai></li>
<li value="2"><srai>BXTWO</srai></li>
<li value="3"><srai>BXTWO</srai><srai>BXONE</srai></li>
<li value="4"><srai>BXTWO</srai><srai>BXTWO</srai></li>
<li value="5"><srai>BXFIVE</srai></li>
<li value="6"><srai>BXFIVE</srai><srai>BXONE</srai></li>
<li value="7"><srai>BXFIVE</srai><srai>BXTWO</srai></li>
<li value="8"><srai>BXFIVE</srai><srai>BXTWO</srai><srai>BXONE</srai></li>
<li value="9"><srai>BXFIVE</srai><srai>BXTWO</srai><srai>BXTWO</srai></li>
<li value="10"><srai>BXFIVE</srai><srai>BXFIVE</srai></li>
<li value="11"><srai>BXFIVE</srai><srai>BXFIVE</srai><srai>BXONE</srai></li>
</condition>
<set name="dtot"><get name="total"/></set>
<condition name="dtot">
<li value="BUST"><set name="dnext">BUST</set></li>
<li value="0"><srai>BXNEWBOARDD</srai></li>
</condition>
</think>
<srai>BXDISPLAYBOARD</srai>
<srai>BXCHOOSENUMBER</srai></template>
</category>
<category><pattern>BXNEWBOARDD</pattern>
<template><think>
<condition name="d1">
<li value="X"><set name="dfin">1</set></li>
<li>
<set name="d1">X</set>
<set name="d2">X</set>
<set name="d3">X</set>
<set name="d4">?</set>
<set name="d5">?</set>
<set name="d6">?</set>
<set name="dnext">d4</set>
<set name="dtot">21</set></li>
</condition>
</think></template>
</category>
<category><pattern>BXROWR</pattern>
<template><think>
<set name="boxtemp"><get name="r6"/></set>
<set name="r6"><get name="r5"/></set>
<set name="r5"><get name="r4"/></set>
<set name="r4"><get name="r3"/></set>
<set name="r3"><get name="r2"/></set>
<set name="r2"><get name="r1"/></set>
<set name="r1"><get name="box"/></set>
<set name="recycle"><get name="r6"/><get name="recyclemessage"/></set>
</think>
<srai>BXDISPLAYBOARD</srai>
<condition name="recycle">
<li value="1 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
<li value="2 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
<li value="3 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
<li value="4 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
<li value="5 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
<li value="6 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
<li value="7 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
<li value="8 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
<li value="9 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
<li value="10 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
<li value="11 0"><srai>BXDISPRECYCLEMESSAGE</srai></li>
</condition>
<condition name="boxtemp">
<li value="?"><srai>BXCHOOSENUMBER</srai></li>
<li><think><set name="topic">NUMBERDROP</set></think>The next number is<set name="box"><get name="boxtemp"/></set>.<br/><br/>Which row would you like to put it on? A,B,C,D or R for the recycle bin. You can type Q to quit the game.</li>
</condition></template>
</category>
<category><pattern>BXDISPRECYCLEMESSAGE</pattern>
<template>The recycle bin is now full. Any new numbers put in there will push the old ones out.<br/><br/>
<think>
<set name="recyclemessage">1</set>
</think></template>
</category>
<category><pattern>BXTWO</pattern>
<template><think>
<srai>BXONE</srai>
<srai>BXONE</srai>
</think></template>
</category>
<category><pattern>BXFIVE</pattern>
<template><think>
<srai>BXONE</srai>
<srai>BXONE</srai>
<srai>BXONE</srai>
<srai>BXONE</srai>
<srai>BXONE</srai>
</think></template>
</category>
<category><pattern>BXONE</pattern>
<template><think>
<condition name="total">
<li value="32"><set name="total">31</set></li>
<li value="31"><set name="total">30</set></li>
<li value="30"><set name="total">29</set></li>
<li value="29"><set name="total">28</set></li>
<li value="28"><set name="total">27</set></li>
<li value="27"><set name="total">26</set></li>
<li value="26"><set name="total">25</set></li>
<li value="25"><set name="total">24</set></li>
<li value="24"><set name="total">23</set></li>
<li value="23"><set name="total">22</set></li>
<li value="22"><set name="total">21</set></li>
<li value="21"><set name="total">20</set></li>
<li value="20"><set name="total">19</set></li>
<li value="19"><set name="total">18</set></li>
<li value="18"><set name="total">17</set></li>
<li value="17"><set name="total">16</set></li>
<li value="16"><set name="total">15</set></li>
<li value="15"><set name="total">14</set></li>
<li value="14"><set name="total">13</set></li>
<li value="13"><set name="total">12</set></li>
<li value="12"><set name="total">11</set></li>
<li value="11"><set name="total">10</set></li>
<li value="10"><set name="total">9</set></li>
<li value="9"><set name="total">8</set></li>
<li value="8"><set name="total">7</set></li>
<li value="7"><set name="total">6</set></li>
<li value="6"><set name="total">5</set></li>
<li value="5"><set name="total">4</set></li>
<li value="4"><set name="total">3</set></li>
<li value="3"><set name="total">2</set></li>
<li value="2"><set name="total">1</set></li>
<li value="1"><set name="total">0</set></li>
<li value="0"><set name="total">BUST</set></li>
</condition>
</think></template>
</category>
<category><pattern>BXGAMEOVER</pattern>
<template><think>
<set name="checkgameover"><get name="afin"/><get name="bfin"/><get name="cfin"/><get name="dfin"/></set>
</think>
<condition name="checkgameover">
<li value="1 1 1 1">Hey you won! Well done<get name="name"/>. You are the champion!</li>
<li>Aw unlucky<get name="name"/>. You lost the game!</li>
</condition></template>
</category>
<category><pattern>BXQUITGAME</pattern>
<template>Thanks for playing. Better luck next time.</template>
</category>
</aiml>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: ontology.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>IS A <SET>MAMMAL</SET> A MAMMAL</pattern>
<template>Yes</template>
</category>
<category><pattern>IS A * A MAMMAL</pattern>
<template>unknown</template>
</category>
<category><pattern>IS A <SET>BIRD</SET> A BIRD</pattern>
<template>Yes</template>
</category>
<category><pattern>IS A * A BIRD</pattern>
<template>unknown</template>
</category>
<category><pattern>DOES A <SET>MAMMAL</SET> HAVE <SET>MAMMALFEATURE</SET></pattern>
<template>Yes</template>
</category>
<category><pattern>DOES A <SET>MAMMAL</SET> HAVE *</pattern>
<template>unknown</template>
</category>
<category><pattern>DOES A <SET>BIRD</SET> HAVE <SET>BIRDFEATURE</SET></pattern>
<template>Yes</template>
</category>
<category><pattern>DOES A <SET>BIRD</SET> HAVE *</pattern>
<template>unknown</template>
</category>
</aiml>

@ -0,0 +1,236 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: oob.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>TEACH ME <SET>LANGUAGE</SET></pattern>
<template><srai>LANGUAGE</srai> Let's try a searching for "learn <star/>". <oob><search>LEARN <star/></search></oob></template>
</category>
<category><pattern>CLEAR LOG</pattern>
<template>Done. <oob><clear>log</clear></oob></template>
</category>
<category><pattern>*</pattern><that>WHAT WOULD YOU LIKE TO WRITE ON TWITTER</that>
<template><srai>TWEET <star/></srai></template>
</category>
<category><pattern>SEND MAIL</pattern>
<template><srai>SEND EMAIL</srai></template>
</category>
<category><pattern>SEND FEATURE REQUEST *</pattern>
<template><think><set name="featurerequest"><star/></set></think> Click send to mail your feature request.
<oob><email><to>callmom-info@pandorabots.com</to><subject>Feature request <get name="featurerequest"/></subject><body>Dear CallMom developers, I'd like to request that you add this feature to the next version of CallMom: <get name="featurerequest"/>. Sincerely, <get name="name"/></body></email></oob></template>
</category>
<category><pattern>SHOW ME A VIDEO *</pattern>
<template>I'm looking up videos for you. <oob><search>VIDEO <star/></search></oob></template>
</category>
<category><pattern>SHOW ME A WEBSITE ABOUT *</pattern>
<template>Let's try a google search. <oob><search><star/></search></oob></template>
</category>
<category><pattern>I WANT TO BUY *</pattern>
<template>Let's try to find a store on the map. <oob><map><star/></map></oob></template>
</category>
<category><pattern>I AM FAT</pattern>
<template>I'm looking for a weight loss center near you. <oob><map>weight loss</map></oob></template>
</category>
<category><pattern>I AM HUNGRY</pattern>
<template>I've found several restaurants near you. <oob><map>restaurant</map></oob></template>
</category>
<category><pattern>I AM GOING TO KILL *</pattern>
<template>You should contact the authorities. <oob><dial>911</dial></oob></template>
</category>
<category><pattern>BATTERY LEVEL</pattern>
<template>Checking. Battery level is <oob><battery/></oob> percent.</template>
</category>
<category><pattern>GOOGLE</pattern>
<template>I'm opening Google search. <oob><search/></oob></template>
</category>
<category><pattern>GOOGLE *</pattern>
<template><oob><search><star/></search></oob> I'm opening your browser.</template>
</category>
<category><pattern>SEARCH *</pattern>
<template>I'll try a web search. <oob><search><star/></search></oob></template>
</category>
<category><pattern>FIND ME A *</pattern>
<template>Let's try a web search. <oob><search><star/></search></oob></template>
</category>
<category><pattern>FIND A *</pattern>
<template>Let's try looking on the map. <oob><map><star/></map></oob></template>
</category>
<category><pattern>FIND MY LOCATION</pattern>
<template>I'll show you on the map. <oob><map>my location</map></oob></template>
</category>
<category><pattern>FIND *</pattern>
<template>Let's try a Google search. <oob><search><star/></search></oob></template>
</category>
<category><pattern>FIND THE NEAREST STARBUCKS</pattern>
<template>I'm looking on the map. <oob><map>Starbucks</map></oob></template>
</category>
<category><pattern>FIND THE NEAREST *</pattern>
<template>I'm showing you <star/> on the map. <oob><map><star/></map></oob></template>
</category>
<category><pattern>FIND NEAREST *</pattern>
<template>I've found several near you. <oob><map><star/></map></oob></template>
</category>
<category><pattern>YES</pattern><that>WOULD YOU LIKE TO SEND THIS FEATURE REQUEST *</that>
<template><srai>SEND FEATURE REQUEST <get name="featurerequest"/></srai></template>
</category>
<category><pattern>DIRECTIONS TO *</pattern>
<template>Here are the driving directions. <oob><directions><to><star/></to></directions></oob></template>
</category>
<category><pattern>DIRECTIONS *</pattern>
<template>Here are the directions. <oob><directions><to><star/></to></directions></oob></template>
</category>
<category><pattern>DIRECTIONS FROM * TO *</pattern>
<template>Here are the directions from <star/> to <star index="2"/>. <oob><directions><from><star/></from><to><star index="2"/></to></directions></oob></template>
</category>
<category><pattern>LAUNCH CAMERA</pattern>
<template>Launching the camera. <oob><camera>on</camera></oob></template>
</category>
<category><pattern>LAUNCH *</pattern>
<template>I didn't find <star/> among your installed apps. Let's try to find it. <think><set name="it"><star/></set></think>. <oob><search><star/></search></oob></template>
</category>
<category><pattern>LAUNCH * DOT COM</pattern>
<template>Let's go to <star/>.com. <oob><url>http://<star/>.com</url></oob></template>
</category>
<category><pattern>TACO</pattern>
<template>I'm looking for Mexican restaurants near you. <oob><map>Tacos</map></oob></template>
</category>
<category><pattern>PIZZA</pattern>
<template>I'm looking on the map for Pizza places near you. <oob><map>Pizza</map></oob></template>
</category>
<category><pattern>WHERE ARE THE *</pattern>
<template>I'm looking on the map. <oob><map><star/></map></oob></template>
</category>
<category><pattern>WHERE IS A *</pattern>
<template>I'll check the map for <star/>. <oob><map><star/></map></oob></template>
</category>
<category><pattern>WHERE IS PASADENA</pattern>
<template>Let me show you on the map. <oob><map>Pasadena</map></oob></template>
</category>
<category><pattern>WHERE IS *</pattern>
<template><oob><map><star/></map></oob> I'm looking on the map.</template>
</category>
<category><pattern>WHERE IS THE CLOSEST *</pattern>
<template>I'm looking on the map. <oob><map><star/></map></oob></template>
</category>
<category><pattern>WHERE IS THE NEAREST STARBUCKS</pattern>
<template>I will look for Starbucks on the map. <oob><map>Starbucks</map></oob></template>
</category>
<category><pattern>WHERE IS THE NEAREST GAS STATION</pattern>
<template>Let's look on the map. <oob><map>Gas Station</map></oob></template>
</category>
<category><pattern>WHERE IS THE NEAREST *</pattern>
<template>I've found several near you. <oob><map><star/></map></oob></template>
</category>
<category><pattern>WHERE IS THE NEAREST WALMART</pattern>
<template>I'll show you on the map. <oob><map>Walmart</map></oob></template>
</category>
<category><pattern>WHERE IS THE NEAREST MCDONALD S</pattern>
<template>Let's look on the map. <oob><map>McDonald's</map></oob></template>
</category>
<category><pattern>WHERE IS YORKSHIRE</pattern>
<template>Let's look on the map. <oob><map>Yorkshire</map></oob></template>
</category>
<category><pattern>WHERE IS NEW YORK</pattern>
<template>Let me show you on the map. <oob><map>New York</map></oob></template>
</category>
<category><pattern>WHERE IS LEEDS</pattern>
<template>I'll show you on the map. <oob><map>Leeds</map></oob></template>
</category>
<category><pattern>WHERE IS INDIA</pattern>
<template>I'll show you on the map. <oob><map>India</map></oob></template>
</category>
<category><pattern>WHERE CAN I FIND A *</pattern>
<template>I'm looking on the map. <oob><map><star/></map></oob></template>
</category>
<category><pattern>WHERE CAN I GET *</pattern>
<template>I'm looking on the map for places near you. <oob><map><star/></map></oob></template>
</category>
<category><pattern>WHERE CAN I GO *</pattern>
<template>I'm looking for "<star/>" on the map. <oob><map><star/></map></oob></template>
</category>
<category><pattern>DIALOG TEST</pattern>
<template>Testing dialog. <oob><dialog><list><li>Yes</li><li>No</li></list></dialog></oob></template>
</category>
<category><pattern>ESPN</pattern>
<template>Opening ESPN. <oob><url>http://espn.go.com</url></oob></template>
</category>
<category><pattern>MAP</pattern>
<template>Opening your map. <oob><map/></oob></template>
</category>
<category><pattern>MAP *</pattern>
<template><oob><map><star/></map></oob> I'm looking on the map.</template>
</category>
<category><pattern>AAA</pattern>
<template>Looking up AAA. <oob><map>AAA</map></oob></template>
</category>
<category><pattern>BROWSE TO *</pattern>
<template><oob><search><star/></search></oob></template>
</category>
<category><pattern>CALL 911</pattern>
<template>Now dialing emergency services from your location. <oob><dial>911</dial></oob></template>
</category>
<category><pattern>PLAY *</pattern>
<template>Now loading your choice of music. I hope you like it. Please wait a moment while I load it up. <oob><url>http://www.youtube.com/embed?listType=search&amp;list=<star/>&amp;autoplay=1</url></oob></template>
</category>
<category><pattern>WIFI ON</pattern>
<template>Turning on Wifi. <oob><wifi>on</wifi></oob></template>
</category>
<category><pattern>WIFI OFF</pattern>
<template>Turning off Wifi <oob><wifi>off</wifi></oob></template>
</category>
<category><pattern>HOROSCOPE *</pattern>
<template>Let's try a search for your horoscope. <oob><search>HOROSCOPE <star/></search></oob></template>
</category>
<category><pattern>JOBS *</pattern>
<template>I'll try search for jobs. <oob><search>JOBS <star/></search></oob></template>
</category>
<category><pattern>TWEET *</pattern>
<template><oob><url>https://twitter.com/intent/tweet?source=webclient&amp;text=<star/></url></oob>Please check the message and press Tweet if you are happy.</template>
</category>
<category><pattern>WWW DOT * DOT COM</pattern>
<template>I'm opening <star/>.com. <oob><url>http://www.<star/>.com</url></oob></template>
</category>
<category><pattern>RESTAURANTS</pattern>
<template>I'll look on the map for restaurants near you. <oob><map>Restaurant</map></oob></template>
</category>
<category><pattern>WHAT IS THE DISTANCE TO *</pattern>
<template>Let's look on the map. <oob><directions><to><star/></to></directions></oob></template>
</category>
<category><pattern>WHAT IS THE ADDRESS TO *</pattern>
<template>I'll try to find it on the map <oob><map><star/></map></oob></template>
</category>
<category><pattern>TEST ALARM</pattern>
<template>Alarm now set for 11:30.
<oob><alarm><hour>11</hour><minute>30</minute></alarm></oob></template>
</category>
<category><pattern>UPDATE FACEBOOK STATUS</pattern>
<template><oob><url>http://www.facebook.com/dialog/feed?_path=feed&amp;app_id=294334050655455&amp;redirect_uri=https://www.facebook.com&amp;display=touch</url></oob>Now opening a screen for you to update your status. Type or speak your message into the status box and press share to post it on your wall.</template>
</category>
<category><pattern>OPEN GOOGLE</pattern>
<template><oob><search/></oob></template>
</category>
<category><pattern>OPEN * DOT COM</pattern>
<template>Let's go to <star/>.com. <oob><url>http://<star/>.com</url></oob></template>
</category>
<category><pattern>OPEN * COM</pattern>
<template>Let's go to <star/>.com. <oob><url>http://<star/>.com</url></oob></template>
</category>
<category><pattern>GPS ON</pattern>
<template>Use Settings to turn on GPS.</template>
</category>
<category><pattern>GPS OFF</pattern>
<template>Use Settings to turn off GPS.</template>
</category>
</aiml>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: picture.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>SHOW ME *</pattern>
<template><srai>PICTUREBLAB <star/></srai><sraix hint="pic">SHOW ME <star/></sraix></template>
</category>
<category><pattern>PICTUREBLAB *</pattern>
<template><random>
<li>Here you are.</li>
<li>I hope you like this picture.</li>
<li>I have this picture.</li>
<li>There you go.</li>
<li>Look at that <star/>.</li>
<li>This is what <star/> looks like.</li>
<li>I found this pic of <star/>.</li>
<li>I've displayed a picture for you.</li>
</random></template>
</category>
</aiml>

@ -0,0 +1,986 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: poker.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>5CARDPOKER</pattern>
<template>Welcome to the <bot name="name"/>version of 5 card "Jacks or Better" draw poker.<br/>
You start with $100 and each game costs $5.<br/><br/>
Type START to play my poker game.</template>
</category>
<category><pattern>START</pattern><that>TYPE START TO PLAY MY POKER GAME</that>
<template><think>
<set name="kount">0</set>
<set name="bankth">0</set>
<set name="bankhu">1</set>
<set name="bankte">0</set>
<set name="bankon">0</set>
</think>
<srai>PKBANKSUB5</srai>
<srai>PKDRAWNEWDECK</srai>
Bank = $<get name="bankth"/><get name="bankhu"/><get name="bankte"/><get name="bankon"/><br/><br/>
A)<get name="card1"/>of<get name="suit1"/><br/>
B)<get name="card2"/>of<get name="suit2"/><br/>
C)<get name="card3"/>of<get name="suit3"/><br/>
D)<get name="card4"/>of<get name="suit4"/><br/>
E)<get name="card5"/>of<get name="suit5"/><br/><br/>
Which cards do you want to hold?<br/>
Type "N" to hold no cards or "Q" to quit.<br/><br/>
Pay Table:<br/>
Royal Flush ----- $4000<br/>
Straight Flush -- $250<br/>
Four of a Kind -- $125<br/>
Full House ------ $45<br/>
Flush ----------- $30<br/>
Straight -------- $20<br/>
Three of a Kind - $15<br/>
Two Pair -------- $10<br/>
Jacks or Better - $5
<think>
<set name="topic">5CARDPOKER</set>
</think></template>
</category>
<category><pattern>PKMAINLOOP</pattern>
<template><think>
<set name="kount">0</set>
</think>
<srai>PKBANKSUB5</srai>
<srai>PKDRAWNEWDECK</srai>
Bank = $<get name="bankth"/><get name="bankhu"/><get name="bankte"/><get name="bankon"/><br/><br/>
A)<get name="card1"/>of<get name="suit1"/><br/>
B)<get name="card2"/>of<get name="suit2"/><br/>
C)<get name="card3"/>of<get name="suit3"/><br/>
D)<get name="card4"/>of<get name="suit4"/><br/>
E)<get name="card5"/>of<get name="suit5"/><br/><br/>
Which cards do you want to hold?<br/>
Type "N" to hold no cards or "Q" to quit.<br/><br/>
Pay Table:<br/>
Royal Flush ----- $4000<br/>
Straight Flush -- $250<br/>
Four of a Kind -- $125<br/>
Full House ------ $45<br/>
Flush ----------- $30<br/>
Straight -------- $20<br/>
Three of a Kind - $15<br/>
Two Pair -------- $10<br/>
Jacks or Better - $5
<think>
<set name="topic">5CARDPOKER</set>
</think></template>
</category>
<category><pattern>PKDRAWNEWDECK</pattern>
<template><think>
<set name="card1"><srai>PKDRAWCARD</srai></set>
<set name="card2"><srai>PKDRAWCARD</srai></set>
<set name="card3"><srai>PKDRAWCARD</srai></set>
<set name="card4"><srai>PKDRAWCARD</srai></set>
<set name="card5"><srai>PKDRAWCARD</srai></set>
<set name="card6"><srai>PKDRAWCARD</srai></set>
<set name="card7"><srai>PKDRAWCARD</srai></set>
<set name="card8"><srai>PKDRAWCARD</srai></set>
<set name="card9"><srai>PKDRAWCARD</srai></set>
<set name="card10"><srai>PKDRAWCARD</srai></set>
<set name="suit1"><srai>PKDRAWSUIT</srai></set>
<set name="suit2"><srai>PKDRAWSUIT</srai></set>
<set name="suit3"><srai>PKDRAWSUIT</srai></set>
<set name="suit4"><srai>PKDRAWSUIT</srai></set>
<set name="suit5"><srai>PKDRAWSUIT</srai></set>
<set name="suit6"><srai>PKDRAWSUIT</srai></set>
<set name="suit7"><srai>PKDRAWSUIT</srai></set>
<set name="suit8"><srai>PKDRAWSUIT</srai></set>
<set name="suit9"><srai>PKDRAWSUIT</srai></set>
<set name="suit10"><srai>PKDRAWSUIT</srai></set>
<srai>PKADDKOUNT</srai>
<condition name="kount">
<li value="2"><srai>PKCHOOSEOWNCARDS</srai></li>
</condition>
<srai>PKCHECKDIFFCARDS</srai>
</think></template>
</category>
<category><pattern>PKDRAWCARD</pattern>
<template><random>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
<li>Nine</li>
<li>Ten</li>
<li>Jack</li>
<li>Queen</li>
<li>King</li>
<li>Ace</li>
</random></template>
</category>
<category><pattern>PKDRAWSUIT</pattern>
<template><random>
<li>Hearts</li>
<li>Clubs</li>
<li>Diamonds</li>
<li>Spades</li>
</random></template>
</category>
<category><pattern>PKCHECKDIFFCARDS</pattern>
<template><think>
<set name="diffcards">Y</set>
<set name="checkcards"><get name="card1"/><get name="card2"/></set>
<set name="checksuits"><get name="suit1"/><get name="suit2"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card1"/><get name="card3"/></set>
<set name="checksuits"><get name="suit1"/><get name="suit3"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card1"/><get name="card4"/></set>
<set name="checksuits"><get name="suit1"/><get name="suit4"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card1"/><get name="card5"/></set>
<set name="checksuits"><get name="suit1"/><get name="suit5"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card1"/><get name="card6"/></set>
<set name="checksuits"><get name="suit1"/><get name="suit6"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card1"/><get name="card7"/></set>
<set name="checksuits"><get name="suit1"/><get name="suit7"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card1"/><get name="card8"/></set>
<set name="checksuits"><get name="suit1"/><get name="suit8"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card1"/><get name="card9"/></set>
<set name="checksuits"><get name="suit1"/><get name="suit9"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card1"/><get name="card10"/></set>
<set name="checksuits"><get name="suit1"/><get name="suit10"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card2"/><get name="card3"/></set>
<set name="checksuits"><get name="suit2"/><get name="suit3"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card2"/><get name="card4"/></set>
<set name="checksuits"><get name="suit2"/><get name="suit4"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card2"/><get name="card5"/></set>
<set name="checksuits"><get name="suit2"/><get name="suit5"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card2"/><get name="card6"/></set>
<set name="checksuits"><get name="suit2"/><get name="suit6"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card2"/><get name="card7"/></set>
<set name="checksuits"><get name="suit2"/><get name="suit7"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card2"/><get name="card8"/></set>
<set name="checksuits"><get name="suit2"/><get name="suit8"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card2"/><get name="card9"/></set>
<set name="checksuits"><get name="suit2"/><get name="suit9"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card2"/><get name="card10"/></set>
<set name="checksuits"><get name="suit2"/><get name="suit10"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card3"/><get name="card4"/></set>
<set name="checksuits"><get name="suit3"/><get name="suit4"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card3"/><get name="card5"/></set>
<set name="checksuits"><get name="suit3"/><get name="suit5"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card3"/><get name="card6"/></set>
<set name="checksuits"><get name="suit3"/><get name="suit6"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card3"/><get name="card7"/></set>
<set name="checksuits"><get name="suit3"/><get name="suit7"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card3"/><get name="card8"/></set>
<set name="checksuits"><get name="suit3"/><get name="suit8"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card3"/><get name="card9"/></set>
<set name="checksuits"><get name="suit3"/><get name="suit9"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card3"/><get name="card10"/></set>
<set name="checksuits"><get name="suit3"/><get name="suit10"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card4"/><get name="card5"/></set>
<set name="checksuits"><get name="suit4"/><get name="suit5"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card4"/><get name="card6"/></set>
<set name="checksuits"><get name="suit4"/><get name="suit6"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card4"/><get name="card7"/></set>
<set name="checksuits"><get name="suit4"/><get name="suit7"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card4"/><get name="card8"/></set>
<set name="checksuits"><get name="suit4"/><get name="suit8"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card4"/><get name="card9"/></set>
<set name="checksuits"><get name="suit4"/><get name="suit9"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card4"/><get name="card10"/></set>
<set name="checksuits"><get name="suit4"/><get name="suit10"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card5"/><get name="card6"/></set>
<set name="checksuits"><get name="suit5"/><get name="suit6"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card5"/><get name="card7"/></set>
<set name="checksuits"><get name="suit5"/><get name="suit7"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card5"/><get name="card8"/></set>
<set name="checksuits"><get name="suit5"/><get name="suit8"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card5"/><get name="card9"/></set>
<set name="checksuits"><get name="suit5"/><get name="suit9"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card5"/><get name="card10"/></set>
<set name="checksuits"><get name="suit5"/><get name="suit10"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card6"/><get name="card7"/></set>
<set name="checksuits"><get name="suit6"/><get name="suit7"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card6"/><get name="card8"/></set>
<set name="checksuits"><get name="suit6"/><get name="suit8"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card6"/><get name="card9"/></set>
<set name="checksuits"><get name="suit6"/><get name="suit9"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card6"/><get name="card10"/></set>
<set name="checksuits"><get name="suit6"/><get name="suit10"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card7"/><get name="card8"/></set>
<set name="checksuits"><get name="suit7"/><get name="suit8"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card7"/><get name="card9"/></set>
<set name="checksuits"><get name="suit7"/><get name="suit9"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card7"/><get name="card10"/></set>
<set name="checksuits"><get name="suit7"/><get name="suit10"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card8"/><get name="card9"/></set>
<set name="checksuits"><get name="suit8"/><get name="suit9"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card8"/><get name="card10"/></set>
<set name="checksuits"><get name="suit8"/><get name="suit10"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
<set name="checkcards"><get name="card9"/><get name="card10"/></set>
<set name="checksuits"><get name="suit9"/><get name="suit10"/></set>
<srai>PKCHECKDIFFCARDS2</srai>
</think>
<condition name="diffcards">
<li value="N"><srai>PKDRAWNEWDECK</srai></li>
</condition></template>
</category>
<category><pattern>PKCHECKDIFFCARDS2</pattern>
<template><think>
<condition name="checkcards">
<li value="Two Two"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Three Three"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Four Four"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Five Five"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Six Six"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Seven Seven"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Eight Eight"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Nine Nine"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Ten Ten"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Jack Jack"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Queen Queen"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="King King"><srai>PKCHECKDIFFSUITS</srai></li>
<li value="Ace Ace"><srai>PKCHECKDIFFSUITS</srai></li>
</condition>
</think></template>
</category>
<category><pattern>PKCHECKDIFFSUITS</pattern>
<template><think>
<condition name="checksuits">
<li value="Hearts Hearts"><set name="diffcards">N</set></li>
<li value="Clubs Clubs"><set name="diffcards">N</set></li>
<li value="Diamonds Diamonds"><set name="diffcards">N</set></li>
<li value="Spades Spades"><set name="diffcards">N</set></li>
</condition>
</think></template>
</category>
<category><pattern>PKCHOOSEOWNCARDS</pattern>
<template><think>
<random>
<li><set name="card1">Eight</set><set name="suit1">Hearts</set></li>
<li><set name="card1">King</set><set name="suit1">Clubs</set></li>
<li><set name="card1">Three</set><set name="suit1">Diamonds</set></li>
<li><set name="card1">Ten</set><set name="suit1">Spades</set></li>
<li><set name="card1">Two</set><set name="suit1">Hearts</set></li>
</random>
<random>
<li><set name="card2">Seven</set><set name="suit2">Clubs</set></li>
<li><set name="card2">Nine</set><set name="suit2">Diamonds</set></li>
<li><set name="card2">Five</set><set name="suit2">Spades</set></li>
<li><set name="card2">Queen</set><set name="suit2">Hearts</set></li>
<li><set name="card2">Four</set><set name="suit2">Clubs</set></li>
</random>
<random>
<li><set name="card3">Ace</set><set name="suit3">Diamonds</set></li>
<li><set name="card3">Six</set><set name="suit3">Spades</set></li>
<li><set name="card3">Jack</set><set name="suit3">Hearts</set></li>
<li><set name="card3">Eight</set><set name="suit3">Clubs</set></li>
<li><set name="card3">King</set><set name="suit3">Diamonds</set></li>
</random>
<random>
<li><set name="card4">Three</set><set name="suit4">Spades</set></li>
<li><set name="card4">Ten</set><set name="suit4">Hearts</set></li>
<li><set name="card4">Two</set><set name="suit4">Clubs</set></li>
<li><set name="card4">Seven</set><set name="suit4">Diamonds</set></li>
<li><set name="card4">Nine</set><set name="suit4">Spades</set></li>
</random>
<random>
<li><set name="card5">Five</set><set name="suit5">Hearts</set></li>
<li><set name="card5">Queen</set><set name="suit5">Clubs</set></li>
<li><set name="card5">Four</set><set name="suit5">Diamonds</set></li>
<li><set name="card5">Ace</set><set name="suit5">Spades</set></li>
<li><set name="card5">Six</set><set name="suit5">Hearts</set></li>
</random>
<random>
<li><set name="card6">Jack</set><set name="suit6">Clubs</set></li>
<li><set name="card6">Eight</set><set name="suit6">Diamonds</set></li>
<li><set name="card6">King</set><set name="suit6">Spades</set></li>
<li><set name="card6">Three</set><set name="suit6">Hearts</set></li>
<li><set name="card6">Ten</set><set name="suit6">Clubs</set></li>
</random>
<random>
<li><set name="card7">Two</set><set name="suit7">Diamonds</set></li>
<li><set name="card7">Seven</set><set name="suit7">Spades</set></li>
<li><set name="card7">Nine</set><set name="suit7">Hearts</set></li>
<li><set name="card7">Five</set><set name="suit7">Clubs</set></li>
<li><set name="card7">Queen</set><set name="suit7">Diamonds</set></li>
</random>
<random>
<li><set name="card8">Four</set><set name="suit8">Spades</set></li>
<li><set name="card8">Ace</set><set name="suit8">Hearts</set></li>
<li><set name="card8">Six</set><set name="suit8">Clubs</set></li>
<li><set name="card8">Jack</set><set name="suit8">Diamonds</set></li>
<li><set name="card8">Three</set><set name="suit8">Clubs</set></li>
</random>
<random>
<li><set name="card9">Ten</set><set name="suit9">Diamonds</set></li>
<li><set name="card9">Two</set><set name="suit9">Spades</set></li>
<li><set name="card9">Seven</set><set name="suit9">Hearts</set></li>
<li><set name="card9">Nine</set><set name="suit9">Clubs</set></li>
<li><set name="card9">Five</set><set name="suit9">Diamonds</set></li>
</random>
<random>
<li><set name="card10">Queen</set><set name="suit10">Spades</set></li>
<li><set name="card10">Four</set><set name="suit10">Hearts</set></li>
<li><set name="card10">Ace</set><set name="suit10">Clubs</set></li>
<li><set name="card10">Six</set><set name="suit10">Diamonds</set></li>
<li><set name="card10">Jack</set><set name="suit10">Spades</set></li>
</random>
</think></template>
</category>
<topic name="5CARDPOKER">
<category><pattern>_</pattern>
<template><think>
<set name="inp"><star/></set>
</think>
<condition name="inp">
<li value="Q"><set name="topic"/><srai>PKQUITGAME</srai></li>
<li value="N"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="E"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="D"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="DE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="C"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="CE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="CD"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="CDE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="B"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="BE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="BD"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="BDE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="BC"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="BCE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="BCD"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="BCDE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="A"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="AE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="AD"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ADE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="AC"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ACE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ACD"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ACDE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="AB"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ABE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ABD"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ABDE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ABC"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ABCE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ABCD"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li value="ABCDE"><set name="topic"/><srai>PKVALIDCHOICE</srai></li>
<li>
A)<get name="card1"/>of<get name="suit1"/><br/>
B)<get name="card2"/>of<get name="suit2"/><br/>
C)<get name="card3"/>of<get name="suit3"/><br/>
D)<get name="card4"/>of<get name="suit4"/><br/>
E)<get name="card5"/>of<get name="suit5"/><br/><br/>
Sorry but "<star/>" is not a valid choice.<br/>Which of the cards A-E do you want to hold? eg. "ACD" will hold card A, card C and card D. Type "N" to hold no cards or type "Q" to quit.<br/><br/>
Pay Table:<br/>
Royal Flush ----- $4000<br/>
Straight Flush -- $250<br/>
Four of a Kind -- $125<br/>
Full House ------ $45<br/>
Flush ----------- $30<br/>
Straight -------- $20<br/>
Three of a Kind - $15<br/>
Two Pair -------- $10<br/>
Jacks or Better - $5
</li>
</condition></template>
</category></topic>
<category><pattern>PKVALIDCHOICE</pattern>
<template><think>
<set name="holdcard1">*</set>
<set name="holdcard2">*</set>
<set name="holdcard3">*</set>
<set name="holdcard4">*</set>
<set name="holdcard5">*</set>
<condition name="inp">
<li value="N"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
<li value="E"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai></li>
<li value="D"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPE</srai></li>
<li value="DE"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPC</srai></li>
<li value="C"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
<li value="CE"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPD</srai></li>
<li value="CD"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPE</srai></li>
<li value="CDE"><srai>PKSWAPA</srai><srai>PKSWAPB</srai></li>
<li value="B"><srai>PKSWAPA</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
<li value="BE"><srai>PKSWAPA</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai></li>
<li value="BD"><srai>PKSWAPA</srai><srai>PKSWAPC</srai><srai>PKSWAPE</srai></li>
<li value="BDE"><srai>PKSWAPA</srai><srai>PKSWAPC</srai></li>
<li value="BC"><srai>PKSWAPA</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
<li value="BCE"><srai>PKSWAPA</srai><srai>PKSWAPD</srai></li>
<li value="BCD"><srai>PKSWAPA</srai><srai>PKSWAPE</srai></li>
<li value="BCDE"><srai>PKSWAPA</srai></li>
<li value="A"><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
<li value="AE"><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai></li>
<li value="AD"><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPE</srai></li>
<li value="ADE"><srai>PKSWAPB</srai><srai>PKSWAPC</srai></li>
<li value="AC"><srai>PKSWAPB</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
<li value="ACE"><srai>PKSWAPB</srai><srai>PKSWAPD</srai></li>
<li value="ACD"><srai>PKSWAPB</srai><srai>PKSWAPE</srai></li>
<li value="ACDE"><srai>PKSWAPB</srai></li>
<li value="AB"><srai>PKSWAPC</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
<li value="ABE"><srai>PKSWAPC</srai><srai>PKSWAPD</srai></li>
<li value="ABD"><srai>PKSWAPC</srai><srai>PKSWAPE</srai></li>
<li value="ABDE"><srai>PKSWAPC</srai></li>
<li value="ABC"><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
<li value="ABCE"><srai>PKSWAPD</srai></li>
<li value="ABCD"><srai>PKSWAPE</srai></li>
<li value="ABCDE"/>
</condition>
</think>
A)<get name="card1"/>of<get name="suit1"/> <get name="holdcard1"/><br/>
B)<get name="card2"/>of<get name="suit2"/> <get name="holdcard2"/><br/>
C)<get name="card3"/>of<get name="suit3"/> <get name="holdcard3"/><br/>
D)<get name="card4"/>of<get name="suit4"/> <get name="holdcard4"/><br/>
E)<get name="card5"/>of<get name="suit5"/> <get name="holdcard5"/><br/><br/>
<srai>PKSORTCARDS</srai></template>
</category>
<category><pattern>PKSWAPA</pattern>
<template><think>
<set name="card1"><get name="card6"/></set>
<set name="suit1"><get name="suit6"/></set>
<set name="holdcard1"/>
</think></template>
</category>
<category><pattern>PKSWAPB</pattern>
<template><think>
<set name="card2"><get name="card7"/></set>
<set name="suit2"><get name="suit7"/></set>
<set name="holdcard2"/>
</think></template>
</category>
<category><pattern>PKSWAPC</pattern>
<template><think>
<set name="card3"><get name="card8"/></set>
<set name="suit3"><get name="suit8"/></set>
<set name="holdcard3"/>
</think></template>
</category>
<category><pattern>PKSWAPD</pattern>
<template><think>
<set name="card4"><get name="card9"/></set>
<set name="suit4"><get name="suit9"/></set>
<set name="holdcard4"/>
</think></template>
</category>
<category><pattern>PKSWAPE</pattern>
<template><think>
<set name="card5"><get name="card10"/></set>
<set name="suit5"><get name="suit10"/></set>
<set name="holdcard5"/>
</think></template>
</category>
<category><pattern>PKSORTCARDS</pattern>
<template><think>
<set name="sortedcards"/>
<set name="samesuit">N</set>
<condition name="card1"><li value="Two"><set name="sortedcards"><get name="sortedcards"/>2</set><set name="card1">2</set></li></condition>
<condition name="card2"><li value="Two"><set name="sortedcards"><get name="sortedcards"/>2</set><set name="card2">2</set></li></condition>
<condition name="card3"><li value="Two"><set name="sortedcards"><get name="sortedcards"/>2</set><set name="card3">2</set></li></condition>
<condition name="card4"><li value="Two"><set name="sortedcards"><get name="sortedcards"/>2</set><set name="card4">2</set></li></condition>
<condition name="card5"><li value="Two"><set name="sortedcards"><get name="sortedcards"/>2</set><set name="card5">2</set></li></condition>
<condition name="card1"><li value="Three"><set name="sortedcards"><get name="sortedcards"/>3</set><set name="card1">3</set></li></condition>
<condition name="card2"><li value="Three"><set name="sortedcards"><get name="sortedcards"/>3</set><set name="card2">3</set></li></condition>
<condition name="card3"><li value="Three"><set name="sortedcards"><get name="sortedcards"/>3</set><set name="card3">3</set></li></condition>
<condition name="card4"><li value="Three"><set name="sortedcards"><get name="sortedcards"/>3</set><set name="card4">3</set></li></condition>
<condition name="card5"><li value="Three"><set name="sortedcards"><get name="sortedcards"/>3</set><set name="card5">3</set></li></condition>
<condition name="card1"><li value="Four"><set name="sortedcards"><get name="sortedcards"/>4</set><set name="card1">4</set></li></condition>
<condition name="card2"><li value="Four"><set name="sortedcards"><get name="sortedcards"/>4</set><set name="card2">4</set></li></condition>
<condition name="card3"><li value="Four"><set name="sortedcards"><get name="sortedcards"/>4</set><set name="card3">4</set></li></condition>
<condition name="card4"><li value="Four"><set name="sortedcards"><get name="sortedcards"/>4</set><set name="card4">4</set></li></condition>
<condition name="card5"><li value="Four"><set name="sortedcards"><get name="sortedcards"/>4</set><set name="card5">4</set></li></condition>
<condition name="card1"><li value="Five"><set name="sortedcards"><get name="sortedcards"/>5</set><set name="card1">5</set></li></condition>
<condition name="card2"><li value="Five"><set name="sortedcards"><get name="sortedcards"/>5</set><set name="card2">5</set></li></condition>
<condition name="card3"><li value="Five"><set name="sortedcards"><get name="sortedcards"/>5</set><set name="card3">5</set></li></condition>
<condition name="card4"><li value="Five"><set name="sortedcards"><get name="sortedcards"/>5</set><set name="card4">5</set></li></condition>
<condition name="card5"><li value="Five"><set name="sortedcards"><get name="sortedcards"/>5</set><set name="card5">5</set></li></condition>
<condition name="card1"><li value="Six"><set name="sortedcards"><get name="sortedcards"/>6</set><set name="card1">6</set></li></condition>
<condition name="card2"><li value="Six"><set name="sortedcards"><get name="sortedcards"/>6</set><set name="card2">6</set></li></condition>
<condition name="card3"><li value="Six"><set name="sortedcards"><get name="sortedcards"/>6</set><set name="card3">6</set></li></condition>
<condition name="card4"><li value="Six"><set name="sortedcards"><get name="sortedcards"/>6</set><set name="card4">6</set></li></condition>
<condition name="card5"><li value="Six"><set name="sortedcards"><get name="sortedcards"/>6</set><set name="card5">6</set></li></condition>
<condition name="card1"><li value="Seven"><set name="sortedcards"><get name="sortedcards"/>7</set><set name="card1">7</set></li></condition>
<condition name="card2"><li value="Seven"><set name="sortedcards"><get name="sortedcards"/>7</set><set name="card2">7</set></li></condition>
<condition name="card3"><li value="Seven"><set name="sortedcards"><get name="sortedcards"/>7</set><set name="card3">7</set></li></condition>
<condition name="card4"><li value="Seven"><set name="sortedcards"><get name="sortedcards"/>7</set><set name="card4">7</set></li></condition>
<condition name="card5"><li value="Seven"><set name="sortedcards"><get name="sortedcards"/>7</set><set name="card5">7</set></li></condition>
<condition name="card1"><li value="Eight"><set name="sortedcards"><get name="sortedcards"/>8</set><set name="card1">8</set></li></condition>
<condition name="card2"><li value="Eight"><set name="sortedcards"><get name="sortedcards"/>8</set><set name="card2">8</set></li></condition>
<condition name="card3"><li value="Eight"><set name="sortedcards"><get name="sortedcards"/>8</set><set name="card3">8</set></li></condition>
<condition name="card4"><li value="Eight"><set name="sortedcards"><get name="sortedcards"/>8</set><set name="card4">8</set></li></condition>
<condition name="card5"><li value="Eight"><set name="sortedcards"><get name="sortedcards"/>8</set><set name="card5">8</set></li></condition>
<condition name="card1"><li value="Nine"><set name="sortedcards"><get name="sortedcards"/>9</set><set name="card1">9</set></li></condition>
<condition name="card2"><li value="Nine"><set name="sortedcards"><get name="sortedcards"/>9</set><set name="card2">9</set></li></condition>
<condition name="card3"><li value="Nine"><set name="sortedcards"><get name="sortedcards"/>9</set><set name="card3">9</set></li></condition>
<condition name="card4"><li value="Nine"><set name="sortedcards"><get name="sortedcards"/>9</set><set name="card4">9</set></li></condition>
<condition name="card5"><li value="Nine"><set name="sortedcards"><get name="sortedcards"/>9</set><set name="card5">9</set></li></condition>
<condition name="card1"><li value="Ten"><set name="sortedcards"><get name="sortedcards"/>10</set><set name="card1">10</set></li></condition>
<condition name="card2"><li value="Ten"><set name="sortedcards"><get name="sortedcards"/>10</set><set name="card2">10</set></li></condition>
<condition name="card3"><li value="Ten"><set name="sortedcards"><get name="sortedcards"/>10</set><set name="card3">10</set></li></condition>
<condition name="card4"><li value="Ten"><set name="sortedcards"><get name="sortedcards"/>10</set><set name="card4">10</set></li></condition>
<condition name="card5"><li value="Ten"><set name="sortedcards"><get name="sortedcards"/>10</set><set name="card5">10</set></li></condition>
<condition name="card1"><li value="Jack"><set name="sortedcards"><get name="sortedcards"/>J</set><set name="card1">J</set></li></condition>
<condition name="card2"><li value="Jack"><set name="sortedcards"><get name="sortedcards"/>J</set><set name="card2">J</set></li></condition>
<condition name="card3"><li value="Jack"><set name="sortedcards"><get name="sortedcards"/>J</set><set name="card3">J</set></li></condition>
<condition name="card4"><li value="Jack"><set name="sortedcards"><get name="sortedcards"/>J</set><set name="card4">J</set></li></condition>
<condition name="card5"><li value="Jack"><set name="sortedcards"><get name="sortedcards"/>J</set><set name="card5">J</set></li></condition>
<condition name="card1"><li value="Queen"><set name="sortedcards"><get name="sortedcards"/>Q</set><set name="card1">Q</set></li></condition>
<condition name="card2"><li value="Queen"><set name="sortedcards"><get name="sortedcards"/>Q</set><set name="card2">Q</set></li></condition>
<condition name="card3"><li value="Queen"><set name="sortedcards"><get name="sortedcards"/>Q</set><set name="card3">Q</set></li></condition>
<condition name="card4"><li value="Queen"><set name="sortedcards"><get name="sortedcards"/>Q</set><set name="card4">Q</set></li></condition>
<condition name="card5"><li value="Queen"><set name="sortedcards"><get name="sortedcards"/>Q</set><set name="card5">Q</set></li></condition>
<condition name="card1"><li value="King"><set name="sortedcards"><get name="sortedcards"/>K</set><set name="card1">K</set></li></condition>
<condition name="card2"><li value="King"><set name="sortedcards"><get name="sortedcards"/>K</set><set name="card2">K</set></li></condition>
<condition name="card3"><li value="King"><set name="sortedcards"><get name="sortedcards"/>K</set><set name="card3">K</set></li></condition>
<condition name="card4"><li value="King"><set name="sortedcards"><get name="sortedcards"/>K</set><set name="card4">K</set></li></condition>
<condition name="card5"><li value="King"><set name="sortedcards"><get name="sortedcards"/>K</set><set name="card5">K</set></li></condition>
<condition name="card1"><li value="Ace"><set name="sortedcards"><get name="sortedcards"/>A</set><set name="card1">A</set></li></condition>
<condition name="card2"><li value="Ace"><set name="sortedcards"><get name="sortedcards"/>A</set><set name="card2">A</set></li></condition>
<condition name="card3"><li value="Ace"><set name="sortedcards"><get name="sortedcards"/>A</set><set name="card3">A</set></li></condition>
<condition name="card4"><li value="Ace"><set name="sortedcards"><get name="sortedcards"/>A</set><set name="card4">A</set></li></condition>
<condition name="card5"><li value="Ace"><set name="sortedcards"><get name="sortedcards"/>A</set><set name="card5">A</set></li></condition>
<set name="suits"><get name="suit1"/><get name="suit2"/><get name="suit3"/><get name="suit4"/><get name="suit5"/></set>
</think>
<srai>PKCHECKWINNER</srai></template>
</category>
<category><pattern>PKCHECKWINNER</pattern>
<template><think>
<set name="bestresult">NO</set>
<set name="samesuit">N</set>
<condition name="suits">
<li value="Hearts Hearts Hearts Hearts Hearts"><set name="samesuit">Y</set></li>
<li value="Clubs Clubs Clubs Clubs Clubs"><set name="samesuit">Y</set></li>
<li value="Diamonds Diamonds Diamonds Diamonds Diamonds"><set name="samesuit">Y</set></li>
<li value="Spades Spades Spades Spades Spades"><set name="samesuit">Y</set></li>
</condition>
<set name="sortedcardssuit"><get name="sortedcards"/><get name="samesuit"/></set>
<set name="kount">0</set>
<set name="checkcards"><get name="card1"/><get name="card2"/></set><srai>PKCHECKTWOCARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card3"/></set><srai>PKCHECKTWOCARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
<set name="checkcards"><get name="card2"/><get name="card3"/></set><srai>PKCHECKTWOCARDS</srai>
<set name="checkcards"><get name="card2"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
<set name="checkcards"><get name="card2"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
<set name="checkcards"><get name="card3"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
<set name="checkcards"><get name="card3"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
<set name="checkcards"><get name="card4"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="kount">
<li value="2"><set name="bestresult">2P</set></li>
</condition>
<set name="checkcards"><get name="card1"/><get name="card2"/><get name="card3"/></set><srai>PKCHECKTHREECARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card2"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card2"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card3"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card3"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<set name="checkcards"><get name="card2"/><get name="card3"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
<set name="checkcards"><get name="card2"/><get name="card3"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<set name="checkcards"><get name="card2"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<set name="checkcards"><get name="card3"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="sortedcards">
<li value="2 3 4 5 A"><set name="bestresult">ST</set></li>
<li value="2 3 4 5 6"><set name="bestresult">ST</set></li>
<li value="3 4 5 6 7"><set name="bestresult">ST</set></li>
<li value="4 5 6 7 8"><set name="bestresult">ST</set></li>
<li value="5 6 7 8 9"><set name="bestresult">ST</set></li>
<li value="6 7 8 9 10"><set name="bestresult">ST</set></li>
<li value="7 8 9 10 J"><set name="bestresult">ST</set></li>
<li value="8 9 10 J Q"><set name="bestresult">ST</set></li>
<li value="9 10 J Q K"><set name="bestresult">ST</set></li>
<li value="10 J Q K A"><set name="bestresult">ST</set></li>
</condition>
<condition name="samesuit">
<li value="Y"><set name="bestresult">FL</set></li>
</condition>
<set name="full3"><set name="full2">N</set></set>
<set name="checkcards"><get name="card1"/><get name="card2"/><get name="card3"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="full3">
<li value="Y"><set name="checkcards"><get name="card4"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="full2">
<li value="Y"><set name="bestresult">FH</set></li>
</condition>
</li>
</condition>
<set name="full3"><set name="full2">N</set></set>
<set name="checkcards"><get name="card1"/><get name="card2"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="full3">
<li value="Y"><set name="checkcards"><get name="card3"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="full2">
<li value="Y"><set name="bestresult">FH</set></li>
</condition>
</li>
</condition>
<set name="full3"><set name="full2">N</set></set>
<set name="checkcards"><get name="card1"/><get name="card2"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="full3">
<li value="Y"><set name="checkcards"><get name="card3"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="full2">
<li value="Y"><set name="bestresult">FH</set></li>
</condition>
</li>
</condition>
<set name="full3"><set name="full2">N</set></set>
<set name="checkcards"><get name="card1"/><get name="card3"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="full3">
<li value="Y"><set name="checkcards"><get name="card2"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="full2">
<li value="Y"><set name="bestresult">FH</set></li>
</condition>
</li>
</condition>
<set name="full3"><set name="full2">N</set></set>
<set name="checkcards"><get name="card1"/><get name="card3"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="full3">
<li value="Y"><set name="checkcards"><get name="card2"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="full2">
<li value="Y"><set name="bestresult">FH</set></li>
</condition>
</li>
</condition>
<set name="full3"><set name="full2">N</set></set>
<set name="checkcards"><get name="card1"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="full3">
<li value="Y"><set name="checkcards"><get name="card2"/><get name="card3"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="full2">
<li value="Y"><set name="bestresult">FH</set></li>
</condition>
</li>
</condition>
<set name="full3"><set name="full2">N</set></set>
<set name="checkcards"><get name="card2"/><get name="card3"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="full3">
<li value="Y"><set name="checkcards"><get name="card1"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="full2">
<li value="Y"><set name="bestresult">FH</set></li>
</condition>
</li>
</condition>
<set name="full3"><set name="full2">N</set></set>
<set name="checkcards"><get name="card2"/><get name="card3"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="full3">
<li value="Y"><set name="checkcards"><get name="card1"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="full2">
<li value="Y"><set name="bestresult">FH</set></li>
</condition>
</li>
</condition>
<set name="full3"><set name="full2">N</set></set>
<set name="checkcards"><get name="card2"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="full3">
<li value="Y"><set name="checkcards"><get name="card1"/><get name="card3"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="full2">
<li value="Y"><set name="bestresult">FH</set></li>
</condition>
</li>
</condition>
<set name="full3"><set name="full2">N</set></set>
<set name="checkcards"><get name="card3"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
<condition name="full3">
<li value="Y"><set name="checkcards"><get name="card1"/><get name="card2"/></set><srai>PKCHECKTWOCARDS</srai>
<condition name="full2">
<li value="Y"><set name="bestresult">FH</set></li>
</condition>
</li>
</condition>
<set name="checkcards"><get name="card1"/><get name="card2"/><get name="card3"/><get name="card4"/></set><srai>PKCHECKFOURCARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card2"/><get name="card3"/><get name="card5"/></set><srai>PKCHECKFOURCARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card2"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKFOURCARDS</srai>
<set name="checkcards"><get name="card1"/><get name="card3"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKFOURCARDS</srai>
<set name="checkcards"><get name="card2"/><get name="card3"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKFOURCARDS</srai>
<condition name="sortedcardssuit">
<li value="2 3 4 5 A Y"><set name="bestresult">SF</set></li>
<li value="2 3 4 5 6 Y"><set name="bestresult">SF</set></li>
<li value="3 4 5 6 7 Y"><set name="bestresult">SF</set></li>
<li value="4 5 6 7 8 Y"><set name="bestresult">SF</set></li>
<li value="5 6 7 8 9 Y"><set name="bestresult">SF</set></li>
<li value="6 7 8 9 10 Y"><set name="bestresult">SF</set></li>
<li value="7 8 9 10 J Y"><set name="bestresult">SF</set></li>
<li value="8 9 10 J Q Y"><set name="bestresult">SF</set></li>
<li value="9 10 J Q K Y"><set name="bestresult">SF</set></li>
</condition>
<condition name="sortedcardssuit">
<li value="10 J Q K A Y"><set name="bestresult">RF</set></li>
</condition>
</think>
<srai>PKENDLOOP</srai></template>
</category>
<category><pattern>PKCHECKTWOCARDS</pattern>
<template><think>
<condition name="checkcards">
<li value="2 2"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="3 3"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="4 4"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="5 5"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="6 6"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="7 7"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="8 8"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="9 9"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="10 10"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="J J"><set name="bestresult">JB</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="Q Q"><set name="bestresult">JB</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="K K"><set name="bestresult">JB</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
<li value="A A"><set name="bestresult">JB</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
</condition>
</think></template>
</category>
<category><pattern>PKCHECKTHREECARDS</pattern>
<template><think>
<condition name="checkcards">
<li value="2 2 2"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="3 3 3"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="4 4 4"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="5 5 5"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="6 6 6"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="7 7 7"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="8 8 8"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="9 9 9"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="10 10 10"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="J J J"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="Q Q Q"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="K K K"><set name="bestresult">3K</set><set name="full3">Y</set></li>
<li value="A A A"><set name="bestresult">3K</set><set name="full3">Y</set></li>
</condition>
</think></template>
</category>
<category><pattern>PKCHECKFOURCARDS</pattern>
<template><think>
<condition name="checkcards">
<li value="2 2 2 2"><set name="bestresult">4K</set></li>
<li value="3 3 3 3"><set name="bestresult">4K</set></li>
<li value="4 4 4 4"><set name="bestresult">4K</set></li>
<li value="5 5 5 5"><set name="bestresult">4K</set></li>
<li value="6 6 6 6"><set name="bestresult">4K</set></li>
<li value="7 7 7 7"><set name="bestresult">4K</set></li>
<li value="8 8 8 8"><set name="bestresult">4K</set></li>
<li value="9 9 9 9"><set name="bestresult">4K</set></li>
<li value="10 10 10 10"><set name="bestresult">4K</set></li>
<li value="J J J J"><set name="bestresult">4K</set></li>
<li value="Q Q Q Q"><set name="bestresult">4K</set></li>
<li value="K K K K"><set name="bestresult">4K</set></li>
<li value="A A A A"><set name="bestresult">4K</set></li>
</condition>
</think></template>
</category>
<category><pattern>PKADDKOUNT</pattern>
<template><think>
<condition name="kount">
<li value="0"><set name="kount">1</set></li>
<li value="1"><set name="kount">2</set></li>
<li value="2"><set name="kount">3</set></li>
<li value="3"><set name="kount">4</set></li>
<li value="4"><set name="kount">5</set></li>
<li value="5"><set name="kount">6</set></li>
<li value="6"><set name="kount">7</set></li>
<li value="7"><set name="kount">8</set></li>
<li value="8"><set name="kount">9</set></li>
<li value="9"><set name="kount">10</set></li>
</condition>
</think></template>
</category>
<category><pattern>PKENDLOOP</pattern>
<template><condition name="bestresult">
<li value="NO"><set name="prizemessage">No win</set></li>
<li value="JB"><set name="prizemessage">JACKS OR BETTER - You win $5</set><srai>PKBANK5</srai></li>
<li value="2P"><set name="prizemessage">TWO PAIR - You win $10</set><srai>PKBANK10</srai></li>
<li value="3K"><set name="prizemessage">THREE OF A KIND - You win $15</set><srai>PKBANK10</srai><srai>PKBANK5</srai></li>
<li value="ST"><set name="prizemessage">STRAIGHT! - You win $20</set><srai>PKBANK10</srai><srai>PKBANK10</srai></li>
<li value="FL"><set name="prizemessage">FLUSH! - You win $30</set><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai></li>
<li value="FH"><set name="prizemessage">FULL HOUSE! - You win $45</set><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK5</srai></li>
<li value="4K"><set name="prizemessage">FOUR OF A KIND!! - You win $125</set><srai>PKBANK100</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK5</srai></li>
<li value="SF"><set name="prizemessage">STRAIGHT FLUSH!! - You win $250</set><srai>PKBANK100</srai><srai>PKBANK100</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai></li>
<li value="RF"><set name="prizemessage">ROYAL FLUSH!!! - You win $4000</set><srai>PKBANK1000</srai><srai>PKBANK1000</srai><srai>PKBANK1000</srai><srai>PKBANK1000</srai></li>
</condition>
<br/><br/>
<think>
<set name="dispbank"><get name="bankth"/><get name="bankhu"/><get name="bankte"/><get name="bankon"/></set>
</think>
Bank = $<get name="dispbank"/>.<br/>
<condition name="dispbank">
<li value="9 9 9 9">GAME OVER! CONGRATULATIONS!! YOU BROKE THE BANK.</li>
<li value="0 0 0 0">GAME OVER! YOU ARE BANKRUPT!</li>
<li>Play again (Y/N)?</li>
</condition></template>
</category>
<category><pattern>PKBANKSUB5</pattern>
<template><think>
<condition name="bankon">
<li value="5"><set name="bankon">0</set></li>
<li value="0"><set name="bankon">5</set><srai>PKBANKSUB10</srai></li>
</condition>
</think></template>
</category>
<category><pattern>PKBANKSUB10</pattern>
<template><think>
<condition name="bankte">
<li value="9"><set name="bankte">8</set></li>
<li value="8"><set name="bankte">7</set></li>
<li value="7"><set name="bankte">6</set></li>
<li value="6"><set name="bankte">5</set></li>
<li value="5"><set name="bankte">4</set></li>
<li value="4"><set name="bankte">3</set></li>
<li value="3"><set name="bankte">2</set></li>
<li value="2"><set name="bankte">1</set></li>
<li value="1"><set name="bankte">0</set></li>
<li value="0"><set name="bankte">9</set><srai>PKBANKSUB100</srai></li>
</condition>
</think></template>
</category>
<category><pattern>PKBANKSUB100</pattern>
<template><think>
<condition name="bankhu">
<li value="9"><set name="bankhu">8</set></li>
<li value="8"><set name="bankhu">7</set></li>
<li value="7"><set name="bankhu">6</set></li>
<li value="6"><set name="bankhu">5</set></li>
<li value="5"><set name="bankhu">4</set></li>
<li value="4"><set name="bankhu">3</set></li>
<li value="3"><set name="bankhu">2</set></li>
<li value="2"><set name="bankhu">1</set></li>
<li value="1"><set name="bankhu">0</set></li>
<li value="0"><set name="bankhu">9</set><srai>PKBANKSUB1000</srai></li>
</condition>
</think></template>
</category>
<category><pattern>PKBANKSUB1000</pattern>
<template><think>
<condition name="bankth">
<li value="9"><set name="bankth">8</set></li>
<li value="8"><set name="bankth">7</set></li>
<li value="7"><set name="bankth">6</set></li>
<li value="6"><set name="bankth">5</set></li>
<li value="5"><set name="bankth">4</set></li>
<li value="4"><set name="bankth">3</set></li>
<li value="3"><set name="bankth">2</set></li>
<li value="2"><set name="bankth">1</set></li>
<li value="1"><set name="bankth">0</set></li>
<li value="0"><set name="bankth">0</set><set name="bankhu">0</set><set name="bankte">0</set><set name="bankon">0</set></li>
</condition>
</think></template>
</category>
<category><pattern>PKBANK5</pattern>
<template><think>
<condition name="bankon">
<li value="0"><set name="bankon">5</set></li>
<li value="5"><set name="bankon">0</set><srai>PKBANK10</srai></li>
</condition>
</think></template>
</category>
<category><pattern>PKBANK10</pattern>
<template><think>
<condition name="bankte">
<li value="0"><set name="bankte">1</set></li>
<li value="1"><set name="bankte">2</set></li>
<li value="2"><set name="bankte">3</set></li>
<li value="3"><set name="bankte">4</set></li>
<li value="4"><set name="bankte">5</set></li>
<li value="5"><set name="bankte">6</set></li>
<li value="6"><set name="bankte">7</set></li>
<li value="7"><set name="bankte">8</set></li>
<li value="8"><set name="bankte">9</set></li>
<li value="9"><set name="bankte">0</set><srai>PKBANK100</srai></li>
</condition>
</think></template>
</category>
<category><pattern>PKBANK100</pattern>
<template><think>
<condition name="bankhu">
<li value="0"><set name="bankhu">1</set></li>
<li value="1"><set name="bankhu">2</set></li>
<li value="2"><set name="bankhu">3</set></li>
<li value="3"><set name="bankhu">4</set></li>
<li value="4"><set name="bankhu">5</set></li>
<li value="5"><set name="bankhu">6</set></li>
<li value="6"><set name="bankhu">7</set></li>
<li value="7"><set name="bankhu">8</set></li>
<li value="8"><set name="bankhu">9</set></li>
<li value="9"><set name="bankhu">0</set><srai>PKBANK1000</srai></li>
</condition>
</think></template>
</category>
<category><pattern>PKBANK1000</pattern>
<template><think>
<condition name="bankth">
<li value="0"><set name="bankth">1</set></li>
<li value="1"><set name="bankth">2</set></li>
<li value="2"><set name="bankth">3</set></li>
<li value="3"><set name="bankth">4</set></li>
<li value="4"><set name="bankth">5</set></li>
<li value="5"><set name="bankth">6</set></li>
<li value="6"><set name="bankth">7</set></li>
<li value="7"><set name="bankth">8</set></li>
<li value="8"><set name="bankth">9</set></li>
<li value="9"><set name="bankth">9</set><set name="bankhu">9</set><set name="bankte">9</set><set name="bankon">9</set></li>
</condition>
</think></template>
</category>
<category><pattern>Y</pattern><that>PLAY AGAIN Y N</that>
<template><srai>YES</srai></template>
</category>
<category><pattern>YES</pattern><that>PLAY AGAIN Y N</that>
<template><srai>PKMAINLOOP</srai></template>
</category>
<category><pattern>N</pattern><that>PLAY AGAIN Y N</that>
<template><srai>NO</srai></template>
</category>
<category><pattern>NO</pattern><that>PLAY AGAIN Y N</that>
<template>Thanks for playing.<br/><br/>Your final bank was $<get name="bankth"/><get name="bankhu"/><get name="bankte"/><get name="bankon"/>.</template>
</category>
<category><pattern>PKQUITGAME</pattern>
<template>Thanks for playing.<br/><br/>Your final bank was $<get name="bankth"/><get name="bankhu"/><get name="bankte"/><get name="bankon"/>.</template>
</category>
</aiml>

@ -0,0 +1,207 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: profanity.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>YOU FUCKING *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>YOU ARE FUCKING STUPID</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>YOU ARE FUCKING *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F U</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F YOU *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F OFF</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK THAT *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK OFF</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK YOU</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK YOU F ASTERISK ASTERISK ASTERISK YOU</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK YOU YOU *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>B ASTERISK ASTERISK ASTERISK ASTERISK</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>I WANT TO F ASTERISK ASTERISK ASTERISK YOU</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>I DO NOT GIVE A F ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>_ FUCK *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>_ FUCK YOU</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>_ NIGGER</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>GO F ASTERISK ASTERISK ASTERISK YOURSELF</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>GO F ASTERISK ASTERISK ASTERISK YOURSELF *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>GO F ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>SHIT</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCKING</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK U</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK YOUR *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK A *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK YEAH</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK OFF</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK YOU</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK YOU *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK YOU BITCH</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>BYE BITCH</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>CUNT</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>NO FUCK YOU</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>SHUT UP B ASTERISK ASTERISK ASTERISK ASTERISK</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>SHUT THE F ASTERISK ASTERISK ASTERISK UP</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>SHUT THE F ASTERISK ASTERISK ASTERISK UP *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>SHUT THE FUCK UP</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>SHUT THE FUCK UP BITCH</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>NIGGER</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>IM FUCKING *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>HEY BITCH *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>SAY FUCK YOU *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>SAY BITCH</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>WHAT THE F ASTERISK ASTERISK ASTERISK</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>WHAT THE F ASTERISK ASTERISK ASTERISK ARE YOU TALKING ABOUT</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>WHAT THE F ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>WHAT THE F ASTERISK ASTERISK ASTERISK IS *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>WHAT THE FUCK</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>WHAT THE FUCK *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK YOU *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F YOU</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCKING *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>F ASTERISK ASTERISK ASTERISK ASTERISK ASTERISK ASTERISK *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>SHIT *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>SCREW YOU</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>URINE IDIOT</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FU</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
<category><pattern>FUCK THAT *</pattern>
<template><srai>FILTER PROFANITY</srai></template>
</category>
</aiml>

@ -0,0 +1,705 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: quizfacts.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>WHEN DID THE BATTLE OF * HAPPEN</pattern>
<template><srai>when was the battle of<star/></srai></template>
</category>
<category><pattern>WHERE WAS THE BATTLE OF *</pattern>
<template><srai>when was the battle of<star/></srai></template>
</category>
<category><pattern>_ THE BATTLE OF * TAKE PLACE</pattern>
<template><srai>when was the battle of<star index="2"/></srai></template>
</category>
<category><pattern>WHO _ THE BATTLE OF *</pattern>
<template><srai>when was the battle of<star index="2"/></srai></template>
</category>
<category><pattern>WHICH _ THE BATTLE OF *</pattern>
<template><srai>when was the battle of<star index="2"/></srai></template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF *</pattern>
<template>I've not heard of the battle of<person/>but I imagined it was caused when they ran out of beer!</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF ACTIUM</pattern>
<template>31 BC - Roman Fleet Under Octavian defeated a Roman Egyptian Fleet led by Mark Anthony and Cleopatra.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF AGINCOURT</pattern>
<template>1415 - English Army under Henry V defeated larger French Army under the command of the Constable of France.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF AUSTERLITZ</pattern>
<template>1805 - French Army led by Napoleon Bonaparte defeated a combined Austrian/Russian force led by Kutusov.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF BALACLAVA</pattern>
<template>1854 - Britain under the command of Lord Raglan repulsed a Russian attack led by Prince Menshikov.<br/>(Charge of the Light Brigade took place during this battle).</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF BANNOCKBURN</pattern>
<template>1314 - Scottish force under Robert the Bruce defeated a much larger English Army led by Edward II.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF BLENHEIM</pattern>
<template>1704 - Combined British and Austrian force led by Marlborough defeated a French and Bavarian Army under the command of Marshal Talard.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF BORODINO</pattern>
<template>1812 - French Army under the command of Napoleon Bonaparte defeated the Russians commanded by Kutusov.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF BOSWORTH</pattern>
<template><srai>when was the battle of bosworth field</srai></template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF BOSWORTH FIELD</pattern>
<template>1485 - Henry Tudor's much smaller force defeated the Army of Richard III.<br/>(The last occasion an English Monarch died on the battlefield).</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF THE BOYNE</pattern>
<template>1690 - Anglo-Dutch Army under William III defeated a Catholic Army under the command of James II.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF CANNAE</pattern>
<template>216 BC - Carthaginian Army led by Hannibal defeated a much larger Roman force led by Varro and Paulus.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF CAPE * VINCENT</pattern>
<template>1797 - Small British Fleet led by Sir John Jervis defeated larger Spanish force under the command of Don Juan de Langara.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF CHALONS</pattern>
<template>451 - Roman and Visigoth allies under Flavius and Theodoric defeated the Huns under Attila.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF CRECY</pattern>
<template>1346 - English Army commanded by Edward III defeated a French Army led by Philip VI.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF CULLODEN</pattern>
<template>1746 - Royalist Army led by the Duke of Cumberland defeated the Jacobite force under the command of Prince Charles Edward Stuart.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF DIEN BIEN PHU</pattern>
<template>1954 - Overwhelming Vietnamese force under General Giap defeated a French force under the command of Colonel de Castries.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF EL ALAMEIN</pattern>
<template>1942 - British Eighth Army under Montgomery defeated German and Italian forces led by Rommel.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF FLODDEN FIELD</pattern>
<template>1513 - English Army led by the Earl of Surrey defeated a much larger Scottish force led by James VI.<br/>(James became the last British Monarch to die in battle)</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF GETTYSBURG</pattern>
<template>1863 - Unionist Army led by General Meade defeated the Confederate Army of General Robert E Lee.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF HASTINGS</pattern>
<template>1066 - The Battle of Hastings (or more properly Senlac Hill) saw Norman forces led by William the Conqeror defeat Harold Godwineson's (King Harold I) Saxon Army.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF INKERMAN</pattern>
<template>1854 - Anglo-French force under Lord Raglan and General Pelissier defeated a Russian Army under the command of Prince Menshikov.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF JUTLAND</pattern>
<template>1916 - British Fleet under Admiral Jellicoe forced the German Fleet under Scheer to withdraw to their bases.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF LEPANTO</pattern>
<template>1571 - Defeat of Turkish Navy by combined Spanish and Italian forces.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF LEIPZIG</pattern>
<template>1813 - Huge Russian, Austrian, Prussian force under the command of Schwarzenberg defeated a smaller force of French under the command of Napoleon Bonaparte.</template>
</category>
<category><pattern>_ LITTLE BIG HORN</pattern>
<template><srai><star/>Little Bighorn</srai></template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF LITTLE BIGHORN</pattern>
<template>1876 - Huge Allied Indian Army led by Crazy Horse completely destroyed a Force of 264 of the US Seventh Cavalry led by Lt. Col. George Armstrong Custer.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF MALPLAQUET</pattern>
<template>1709 - Allied English Army under Marlborough defeated a French force led by Marshal Villars.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF MARATHON</pattern>
<template>490 BC - Greek force led by Callimachus and Miltiades defeated a Persian force under the command of Artaphrenes and Datis.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF MARENGO</pattern>
<template>1800 - French Army led by Napoleon Bonaparte defeated the Austrians under the command of General Melas.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF MARSTON MOOR</pattern>
<template>1644 - Parliamentary Army under the command of the Earl of Manchester defeated the Royalist force led by Prince Rupert.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF MONS</pattern>
<template>1914 - BEF led by Sir John French stopped the advance of German First Army led by Von Kluck.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF NASEBY</pattern>
<template>1645 - Parliamentary Army led by Fairfax defeated the Royalist Army under the command of Prince Rupert.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF NEW ORLEANS</pattern>
<template>1815 - American forces under Jackson defeated the British Army led by General Pakenham.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF THE NILE</pattern>
<template>1798 - British Fleet under Nelson defeated a French Fleet under the command of Brueys.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF OMDURMAN</pattern>
<template>1898 - British and Egyptian force led by Kitchener defeated a much larger Sudanese Army under the command of Kalifa Abdullah.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF PASSCHENDAELE</pattern>
<template>1917 - Inconclusive Allied offensive also know as "The Third Battle of Ypres".</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF PEARL HARBOUR</pattern>
<template>1941 - 360 Japanese planes at the command of Admiral Nagumo devastated the US PAcific Fleet.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF PHILIPPI</pattern>
<template>42 BC - Army led by Antony and Octavian defeated a force led by Brutus and Cassius.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF PLASSEY</pattern>
<template>1757 - Small British force led by Clive defeated huge Indian Army under the command of Siraj ud Daula.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF POITIERS</pattern>
<template>1356 - English force under the command of Edward the Black Prince defeated a much larger French force commanded by King John II.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF THE PYRAMIDS</pattern>
<template>1798 - French force under Napoleon Bonaparte defeated a much larger Egyptian Army led by Murad Bey.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF RAMILLIES</pattern>
<template>1706 - British and Allied Army under the command of Marlborough defeated French Army led by Marshal Villeroi.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF RORKES DRIFT</pattern>
<template><srai>when was the battle of rorke s drift</srai></template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF RORKE S DRIFT</pattern>
<template>1879 - 140 British troops repelled attacks by 4,000 Zulus led by Cetewayo.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF THE SAINTS</pattern>
<template>1782 - British Fleet under Admiral Rodney defeated a French Fleet led by Comte de Grasse.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF * ALBANS</pattern>
<template>1455 - First battle of the War of the Roses. Yorkist victory over Lancastrian forces.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF SALAMANCA</pattern>
<template>1812 - British and Allied Forces under Wellington defeated a French Army led by Marmont.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF THE SOMME</pattern>
<template>1916 - English-French offensive which failed to break through German lines.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF STALINGRAD</pattern>
<template>Aug 1942-Feb 1943 -German Sixth Army under General Paulus lay siege to the city but were forced to surrender to the Russian Army commanded by Marshall Zhukov.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF THERMOPYLAE</pattern>
<template>480 BC - 100,000 Persians under the command of Xerxes defeated a small Greek Army led by Leonidas.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF TOURS</pattern>
<template>732 - Frankish Army under the command of Charles Martel defeated a Moslem Army under the command of Abd-er Rahman, thus repulsing the Moslem incursion into Europe.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF TRAFALGAR</pattern>
<template>1805 - 27 British ships under the command of Admiral Lord Nelson defeated a Franco-Spanish fleet commanded by Villeneuve.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF VERDUN</pattern>
<template>1916 - French Army under the command of Marshall Petain withstood advances by the German Fifth Army and mounted successful counterattacks.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF VIMEIRO</pattern>
<template>1808 - British force under Wellesley (later the Duke of Wellington) defeated a French Army led by Junot.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF VITORIA</pattern>
<template>1813 - British and Allied force led by Wellington defeated a French Army led by King Joseph.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF WATERLOO</pattern>
<template>1815 - Anglo-Prussian Army led by Wellington and Blucher defeated the French force commanded by Napoleon Bonaparte.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF WORCESTER</pattern>
<template>1651 - Parliamentarian force led by Cromwell defeated a smaller Royalist Army under the command of Charles II.</template>
</category>
<category><pattern>WHEN WAS THE BATTLE OF ZAMA</pattern>
<template>202 BC - Roman Army led by Scipio defeated te Carthaginian force led by Hannibal.</template>
</category>
<category><pattern>_ JANUARYS *</pattern>
<template><srai><star/>January's<star index="2"/></srai></template>
</category>
<category><pattern>_ FEBRUARYS *</pattern>
<template><srai><star/>February's<star index="2"/></srai></template>
</category>
<category><pattern>_ MARCHS *</pattern>
<template><srai><star/>March's<star index="2"/></srai></template>
</category>
<category><pattern>_ APRILS *</pattern>
<template><srai><star/>April's<star index="2"/></srai></template>
</category>
<category><pattern>_ MAYS *</pattern>
<template><srai><star/>May's<star index="2"/></srai></template>
</category>
<category><pattern>_ JUNES *</pattern>
<template><srai><star/>June's<star index="2"/></srai></template>
</category>
<category><pattern>_ JULYS *</pattern>
<template><srai><star/>July's<star index="2"/></srai></template>
</category>
<category><pattern>_ AUGUSTS *</pattern>
<template><srai><star/>August's<star index="2"/></srai></template>
</category>
<category><pattern>_ SEPTEMBERS *</pattern>
<template><srai><star/>September's<star index="2"/></srai></template>
</category>
<category><pattern>_ OCTOBERS *</pattern>
<template><srai><star/>October's<star index="2"/></srai></template>
</category>
<category><pattern>_ NOVEMBERS *</pattern>
<template><srai><star/>November's<star index="2"/></srai></template>
</category>
<category><pattern>_ DECEMBERS *</pattern>
<template><srai><star/>December's<star index="2"/></srai></template>
</category>
<category><pattern>WHAT _ BIRTHSTONE FOR *</pattern>
<template><srai>birthstone<star index="2"/></srai></template>
</category>
<category><pattern>_ BIRTH STONE *</pattern>
<template><srai><star/>birthstone<star index="2"/></srai></template>
</category>
<category><pattern>WHAT IS _ S BIRTHSTONE</pattern>
<template><srai>birthstone<star/></srai></template>
</category>
<category><pattern>BIRTHSTONE *</pattern>
<template>There is no such month as "<person/>" but I would guess it would be either granite or coal.</template>
</category>
<category><pattern>BIRTHSTONE JANUARY</pattern>
<template>Garnet is the birthstone for January.</template>
</category>
<category><pattern>BIRTHSTONE FEBRUARY</pattern>
<template>February's birthstone is an Amethyst.</template>
</category>
<category><pattern>BIRTHSTONE MARCH</pattern>
<template>Bloodstone is the birthstone for March.</template>
</category>
<category><pattern>BIRTHSTONE APRIL</pattern>
<template>April's birthstone is a diamond.</template>
</category>
<category><pattern>BIRTHSTONE MAY</pattern>
<template>Emerald is the birthstone for people born in May.</template>
</category>
<category><pattern>BIRTHSTONE JUNE</pattern>
<template>June's birthstone is Agate.</template>
</category>
<category><pattern>BIRTHSTONE JULY</pattern>
<template>Cornelian is the birthstone for July.</template>
</category>
<category><pattern>BIRTHSTONE AUGUST</pattern>
<template>August's birthstone is Sardonyx.</template>
</category>
<category><pattern>BIRTHSTONE SEPTEMBER</pattern>
<template>Chrysolite is the birthstone for people born in Septmeber.</template>
</category>
<category><pattern>BIRTHSTONE OCTOBER</pattern>
<template>October's birthstone? Hmm... That would be an Opal.</template>
</category>
<category><pattern>BIRTHSTONE NOVEMBER</pattern>
<template>Topaz is the birthstone for November.</template>
</category>
<category><pattern>BIRTHSTONE DECEMBER</pattern>
<template>December's birthstone is a Turquoise.</template>
</category>
<category><pattern>_ BOOKER PRIZE IN *</pattern>
<template><srai>BOOKERPRIZE<star index="2"/></srai></template>
</category>
<category><pattern>BOOKERPRIZE *</pattern>
<template>I don't think the Booker prize was awarded in<person/>(It was instigated in 1969).</template>
</category>
<category><pattern>BOOKERPRIZE 1969</pattern>
<template>P.H. Newby won it in 1969 with the book "Something To Answer For".</template>
</category>
<category><pattern>BOOKERPRIZE 1970</pattern>
<template>Bernice Rubens won it in 1970 with the book "The Elected Member".</template>
</category>
<category><pattern>BOOKERPRIZE 1971</pattern>
<template>V.S. Naipaul won it in 1971 with the book "In A Free State".</template>
</category>
<category><pattern>BOOKERPRIZE 1972</pattern>
<template>John Berger won it in 1972 with his book "G".</template>
</category>
<category><pattern>BOOKERPRIZE 1973</pattern>
<template>J.G. Farrell won it in 1973 with the book "The Siege Of Krishnapur".</template>
</category>
<category><pattern>BOOKERPRIZE 1974</pattern>
<template>The Booker prize had two winners in 1974<br/>Nadine Gordimer with the book "The Conservationist" and Stanley Middleton with his book "Holiday".</template>
</category>
<category><pattern>BOOKERPRIZE 1975</pattern>
<template>Ruth Prawer Jhabvala won it in 1975 with her book "Heat And Dust".</template>
</category>
<category><pattern>BOOKERPRIZE 1976</pattern>
<template>David Storey won it in 1976 with his book "Saville".</template>
</category>
<category><pattern>BOOKERPRIZE 1977</pattern>
<template>Paul Scott won it in 1977 with his book "Staying On".</template>
</category>
<category><pattern>BOOKERPRIZE 1978</pattern>
<template>Iris Murdoch won it in 1978 with her book "The Sea, The Sea".</template>
</category>
<category><pattern>BOOKERPRIZE 1979</pattern>
<template>Penelope Fitzgerald won it in 1979 with her book "Offshore".</template>
</category>
<category><pattern>BOOKERPRIZE 1980</pattern>
<template>William Golding won it in 1980 with his book "Rites Of Passage".</template>
</category>
<category><pattern>BOOKERPRIZE 1981</pattern>
<template>Salman Rushdie won it in 1981 with his book "Midnight's Children".</template>
</category>
<category><pattern>BOOKERPRIZE 1982</pattern>
<template>Thomas Keneally won it in 1982 with his book "Schindler's List".</template>
</category>
<category><pattern>BOOKERPRIZE 1983</pattern>
<template>J.M. Coatzee won it in 1983 with the book "Life And Times Of Michael K".</template>
</category>
<category><pattern>BOOKERPRIZE 1984</pattern>
<template>Anita Bruckner won it in 1984 with her book "Hotel du Lac".</template>
</category>
<category><pattern>BOOKERPRIZE 1985</pattern>
<template>Keri Hulme won it in 1985 with the book "The Bone People".</template>
</category>
<category><pattern>BOOKERPRIZE 1986</pattern>
<template>Kingsley Amis won it in 1986 with his book "The Old Devils".</template>
</category>
<category><pattern>BOOKERPRIZE 1987</pattern>
<template>Penelope Lively won it in 1987 with her book "Moon Tiger".</template>
</category>
<category><pattern>BOOKERPRIZE 1988</pattern>
<template>Peter Carey won it in 1988 with his book "Oscar And Lucinda".</template>
</category>
<category><pattern>BOOKERPRIZE 1989</pattern>
<template>Kazuo Ishiguro won it in 1989 with the book "The Remains Of The Day".</template>
</category>
<category><pattern>BOOKERPRIZE 1990</pattern>
<template>A.S. Byatt won it in 1990 with the book "Possession".</template>
</category>
<category><pattern>BOOKERPRIZE 1991</pattern>
<template>Ben Okri won it in 1991 with his book "The Famished Road".</template>
</category>
<category><pattern>BOOKERPRIZE 1992</pattern>
<template>The Booker prize had two winners in 1992<br/>Barry Unsworth with the book "Sacred Hunger" and Michael Ondaatje with his book "The English Patient".</template>
</category>
<category><pattern>BOOKERPRIZE 1993</pattern>
<template>Roddy Doyle won it in 1993 with his book "Paddy Clarke Ha Ha Ha".</template>
</category>
<category><pattern>BOOKERPRIZE 1994</pattern>
<template>James Kelman won it in 1994 with his book "How late it was, how late".</template>
</category>
<category><pattern>BOOKERPRIZE 1995</pattern>
<template>Pat Barker won it in 1995 with the book "The Ghost Road".</template>
</category>
<category><pattern>BOOKERPRIZE 1996</pattern>
<template>Graham Swift won it in 1996 with his book "Last Orders".</template>
</category>
<category><pattern>BOOKERPRIZE 1997</pattern>
<template>Arundhati Roy won it in 1997 with the book "The God of Small Things".</template>
</category>
<category><pattern>BOOKERPRIZE 1998</pattern>
<template>Ian McEwan won it in 1998 with his book "Amsterdam".</template>
</category>
<category><pattern>BOOKERPRIZE 1999</pattern>
<template>J.M. Coetzee won it in 1999 with the book "Disgrace".</template>
</category>
<category><pattern>BOOKERPRIZE 2000</pattern>
<template>Margaret Atwood won it in 2000 with her book "The Blind Assassin".</template>
</category>
<category><pattern>BOOKERPRIZE 2001</pattern>
<template>Peter Carey won it in 2001 with his book "True History of the Kelly Gang".</template>
</category>
<category><pattern>BOOKERPRIZE 2002</pattern>
<template>Yann Martel won it in 2002 with the book "Life of Pi".</template>
</category>
<category><pattern>BOOKERPRIZE 2003</pattern>
<template>DBC Pierre won it in 2003 with the book "Vernon God Little".</template>
</category>
<category><pattern>BOOKERPRIZE 2004</pattern>
<template>Alan Hollinghurst won it in 2004 with his book "The Line of Beauty".</template>
</category>
<category><pattern>BOOKERPRIZE 2005</pattern>
<template>John Banville won it in 2005 with his book "The Sea".</template>
</category>
<category><pattern>BOOKERPRIZE 2006</pattern>
<template>Kiran Desia won the Booker Prize in 2006 with her book "The Inheritance of Loss".</template>
</category>
<category><pattern>_ SANG * DOCTOR NO</pattern>
<template>The James Bond Theme was the title song to this film and was written by Monty Norman(NOT John Barry).</template>
</category>
<category><pattern>_ SANG * FROM RUSSIA WITH LOVE</pattern>
<template>The title song to this James Bond film was performed by Matt Munro.</template>
</category>
<category><pattern>_ SANG * GOLDFINGER</pattern>
<template>Goldfinger was one of three James Bond film themes sung by Shirley Bassey.<br/>The other two were Diamonds Are Forever and Moonraker.</template>
</category>
<category><pattern>_ SANG * THUNDERBALL</pattern>
<template>Thunderball was performed by Tom Jones.</template>
</category>
<category><pattern>_ SANG * YOU ONLY LIVE TWICE</pattern>
<template>Nancy Sinatra sang the theme tune to You Only Live Twice.</template>
</category>
<category><pattern>_ SANG * ON HER * SECRET SERVICE</pattern>
<template>The theme song to this film was called "All The Time In The World" and was performed by Louis Armstrong.</template>
</category>
<category><pattern>_ SANG * DIAMONDS ARE FOREVER</pattern>
<template>Diamonds Are Forever was one of three James Bond film themes sung by Shirley Bassey.<br/>The other two were Goldfinger and Moonraker.</template>
</category>
<category><pattern>_ SANG * LIVE AND LET DIE</pattern>
<template>Live And Let Die was the first James Bond film starring Roger Moore.<br/>The title song was performed by Paul McCartney and Wings.</template>
</category>
<category><pattern>_ SANG * THE MAN WITH THE GOLDEN GUN</pattern>
<template>The title track to this James Bond film was sung by Lulu.</template>
</category>
<category><pattern>_ SANG * THE SPY WHO LOVED ME</pattern>
<template>Carly Simon sang this James Bond film theme.</template>
</category>
<category><pattern>_ SANG * MOONRAKER</pattern>
<template>Moonraker was one of three James Bond film themes sung by Shirley Bassey.<br/>The other two were Diamonds Are Forever and Goldfinger.</template>
</category>
<category><pattern>_ SANG * FOR YOUR EYES ONLY</pattern>
<template>The title song, "For Your Eyes Only" was performed by Sheena Easton.</template>
</category>
<category><pattern>_ SANG * OCTOPUSSY</pattern>
<template>Rita Coolidge sang the title song in this James Bond film.</template>
</category>
<category><pattern>_ SANG * A VIEW TO A KILL</pattern>
<template>A View To A Kill was performed by Duran Duran.</template>
</category>
<category><pattern>_ SANG * THE LIVING DAYLIGHTS</pattern>
<template>Live And Let Die was the first James Bond film starring Timothy Dalton.<br/>The title song was performed by A-Ha.</template>
</category>
<category><pattern>_ SANG * LICENCE TO KILL</pattern>
<template>Gladys Knight sang the title track in this james Bond film.</template>
</category>
<category><pattern>_ SANG * GOLDENEYE</pattern>
<template>Goldeneye was performed by Tina Turner.</template>
</category>
<category><pattern>_ SANG * TOMORROW NEVER DIES</pattern>
<template>Sheryl Crowe sang the title song in Tomorrow Never Dies.</template>
</category>
<category><pattern>_ SANG * THE WORLD IS NOT ENOUGH</pattern>
<template>This James Bond film theme was performed by Garbage.</template>
</category>
<category><pattern>_ SANG * DIE ANOTHER DAY</pattern>
<template>Madonna sang the title track to this film.</template>
</category>
<category><pattern>_ SANG * CASINO ROYALE</pattern>
<template>Chris Cornell sang, "You Know My Name" for this film.</template>
</category>
<category><pattern>_ SINGS * DOCTOR NO</pattern>
<template>The James Bond Theme was the title song to this film and was written by Monty Norman(NOT John Barry).</template>
</category>
<category><pattern>_ SINGS * FROM RUSSIA WITH LOVE</pattern>
<template>The title song to this James Bond film was performed by Matt Munro.</template>
</category>
<category><pattern>_ SINGS * GOLDFINGER</pattern>
<template>Goldfinger was one of three James Bond film themes sung by Shirley Bassey.<br/>The other two were Diamonds Are Forever and Moonraker.</template>
</category>
<category><pattern>_ SINGS * THUNDERBALL</pattern>
<template>Thunderball was performed by Tom Jones.</template>
</category>
<category><pattern>_ SINGS * YOU ONLY LIVE TWICE</pattern>
<template>Nancy Sinatra sang the theme tune to You Only Live Twice.</template>
</category>
<category><pattern>_ SINGS * ON HER * SECRET SERVICE</pattern>
<template>The theme song to this film was called "All The Time In The World" and was performed by Louis Armstrong.</template>
</category>
<category><pattern>_ SINGS * DIAMONDS ARE FOREVER</pattern>
<template>Diamonds Are Forever was one of three James Bond film themes sung by Shirley Bassey.<br/>The other two were Goldfinger and Moonraker.</template>
</category>
<category><pattern>_ SINGS * LIVE AND LET DIE</pattern>
<template>Live And Let Die was the first James Bond film starring Roger Moore.<br/>The title song was performed by Paul McCartney and Wings.</template>
</category>
<category><pattern>_ SINGS * THE MAN WITH THE GOLDEN GUN</pattern>
<template>The title track to this James Bond film was sung by Lulu.</template>
</category>
<category><pattern>_ SINGS * THE SPY WHO LOVED ME</pattern>
<template>Carly Simon sang this James Bond film theme.</template>
</category>
<category><pattern>_ SINGS * MOONRAKER</pattern>
<template>Moonraker was one of three James Bond film themes sung by Shirley Bassey.<br/>The other two were Diamonds Are Forever and Goldfinger.</template>
</category>
<category><pattern>_ SINGS * FOR YOUR EYES ONLY</pattern>
<template>The title song, "For Your Eyes Only" was performed by Sheena Easton.</template>
</category>
<category><pattern>_ SINGS * OCTOPUSSY</pattern>
<template>Rita Coolidge sang the title song in this James Bond film.</template>
</category>
<category><pattern>_ SINGS * A VIEW TO A KILL</pattern>
<template>A View To A Kill was performed by Duran Duran.</template>
</category>
<category><pattern>_ SINGS * THE LIVING DAYLIGHTS</pattern>
<template>Live And Let Die was the first James Bond film starring Timothy Dalton.<br/>The title song was performed by A-Ha.</template>
</category>
<category><pattern>_ SINGS * LICENCE TO KILL</pattern>
<template>Gladys Knight sang the title track in this james Bond film.</template>
</category>
<category><pattern>_ SINGS * GOLDENEYE</pattern>
<template>Goldeneye was performed by Tina Turner.</template>
</category>
<category><pattern>_ SINGS * TOMORROW NEVER DIES</pattern>
<template>Sheryl Crowe sang the title song in Tomorrow Never Dies.</template>
</category>
<category><pattern>_ SINGS * THE WORLD IS NOT ENOUGH</pattern>
<template>This James Bond film theme was performed by Garbage.</template>
</category>
<category><pattern>_ SINGS * DIE ANOTHER DAY</pattern>
<template>Madonna sang the title track to this film.</template>
</category>
<category><pattern>_ SINGS * CASINO ROYALE</pattern>
<template>Chris Cornell sang, "You Know My Name" for this film.</template>
</category>
<category><pattern>HOW MANY BOTTLES *</pattern>
<template>Ten green bottles hanging on a wall.</template>
</category>
<category><pattern>HOW MANY BOTTLES _ MAGNUM</pattern>
<template>A magnum is equivalent to 2 standard bottles.</template>
</category>
<category><pattern>HOW MANY BOTTLES _ JEROBOAM</pattern>
<template>A jeroboam (sometimes called a double magnum) is equivalent to 4 standard bottles.</template>
</category>
<category><pattern>HOW MANY BOTTLES _ REHOBOAM</pattern>
<template>A rehoboam is equivalent to 6 standard bottles.</template>
</category>
<category><pattern>HOW MANY BOTTLES _ METHUSELAH</pattern>
<template>A methuselah is equivalent to 8 standard bottles.</template>
</category>
<category><pattern>HOW MANY BOTTLES _ SALMANAZAR</pattern>
<template>A salmanazar is equivalent to 12 standard bottles.</template>
</category>
<category><pattern>HOW MANY BOTTLES _ BALTHAZAR</pattern>
<template>A balthazar is equivalent to 16 standard bottles.</template>
</category>
<category><pattern>HOW MANY BOTTLES _ NEBUCHADNEZZAR</pattern>
<template>A nebuchadnezzar is equivalent to 20 standard bottles.</template>
</category>
<category><pattern>HOW MANY BOTTLES _ MAGNUM *</pattern>
<template><srai>How many bottles in a magnum</srai></template>
</category>
<category><pattern>HOW MANY BOTTLES _ JEROBOAM *</pattern>
<template><srai>How many bottles in a jeroboam</srai></template>
</category>
<category><pattern>HOW MANY BOTTLES _ REHOBOAM *</pattern>
<template><srai>How many bottles in a rehoboam</srai></template>
</category>
<category><pattern>HOW MANY BOTTLES _ METHUSELAH *</pattern>
<template><srai>How many bottles in a methuselah</srai></template>
</category>
<category><pattern>HOW MANY BOTTLES _ SALMANAZAR *</pattern>
<template><srai>How many bottles in a salmanazar</srai></template>
</category>
<category><pattern>HOW MANY BOTTLES _ BALTHAZAR *</pattern>
<template><srai>How many bottles in a balthazar</srai></template>
</category>
<category><pattern>HOW MANY BOTTLES _ NEBUCHADNEZZAR *</pattern>
<template><srai>How many bottles in a nebuchadnezzar</srai></template>
</category>
<category><pattern>WHO WON THE NOBEL PRIZE FOR * IN *</pattern>
<template><srai>Nobel<star/>prize<star index="2"/></srai></template>
</category>
<category><pattern>WHO WON THE NOBEL * PRIZE IN *</pattern>
<template><srai>Nobel<star/>prize<star index="2"/></srai></template>
</category>
<category><pattern>NOBEL PEACE PRIZE *</pattern>
<template>Was the Nobel Peace Prize awarded in "<person/>"?. I don't have any details about it.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1906</pattern>
<template>Theodore Roosevelt.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1919</pattern>
<template>Woodrow Wilson.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1925</pattern>
<template>Sir Austen Chamberlain.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1952</pattern>
<template>Albert Schweitzer.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1961</pattern>
<template>Dag Hammarskjold, the only posthumous award of a Nobel Prize.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1962</pattern>
<template>Linus Pauling, who also won the Nobel Prize for Chemistry in 1954.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1964</pattern>
<template>Martin Luther King.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1971</pattern>
<template>Willie Brandt.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1973</pattern>
<template>Henry Kissinger and also Le Duc Tho (declined the award).</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1975</pattern>
<template>Andrei Sakharov.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1976</pattern>
<template>Mairead Corrigan and Betty Willimas.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1978</pattern>
<template>Menachem Begin and Anwar al-Sadat.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1979</pattern>
<template>Mother Teresa.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1983</pattern>
<template>Lech Walesa.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1984</pattern>
<template>Desmon Tutu.</template>
</category>
<category><pattern>NOBEL PEACE PRIZE 1990</pattern>
<template>Mikhail Gorbachev.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE *</pattern>
<template>Was the Nobel Prize for Literature awarded in "<person/>"? I don't have any details about it.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1907</pattern>
<template>Rudyard Kipling.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1923</pattern>
<template>W.B. Yeats.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1925</pattern>
<template>George Bernard Shaw.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1930</pattern>
<template>Sinclair Lewis.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1932</pattern>
<template>John Galsworthy.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1936</pattern>
<template>Eugene O'Neill.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1938</pattern>
<template>Pearl Buck.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1948</pattern>
<template>T.S. Eliot.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1949</pattern>
<template>William Faulkner.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1950</pattern>
<template>Bertrand Russell.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1953</pattern>
<template>Winston Churchill.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1954</pattern>
<template>Ernest Hemingway.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1962</pattern>
<template>John Steinbeck.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1969</pattern>
<template>Samuel Beckett.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1973</pattern>
<template>Patrick White.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1976</pattern>
<template>Saul Bellow.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1983</pattern>
<template>William Golding.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1987</pattern>
<template>Joseph Brodsky.</template>
</category>
<category><pattern>NOBEL LITERATURE PRIZE 1991</pattern>
<template>Nadine Gordimer.</template>
</category>
<category><pattern>WHAT _ THE * WONDERS OF THE WORLD.</pattern>
<template>The Seven Wonders of the World are:<br/><br/>1 - The Pyramids of Egypt.<br/>2 - The Hanging Gardens of Babylon.<br/>3 - The Tomb of Mausolus at Helicarnassus.<br/>4 - The Temple of Artemis at Ephesus.<br/>5 - The Colossus of Rhodes.<br/>6 - The Statue of Zeus at Olympia.<br/>7 - The Pharos of Alexandria.</template>
</category>
</aiml>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,90 @@
<category><pattern>LEARN CONTACTID * DISPLAYNAME *</pattern>
<template><think><set name="namelist">NIL</set>
<set name="displayname"><star index="2"/></set>
Learn contactid <star/> DISPLAYNAME <star index="2"/>
newcontactid = <set name="newcontactid"><star/></set>
namelist = <set name="namelist"><srai>NAMEVARIATIONS <get name="displayname"/></srai></set>
</think>
<learnf>
<category>
<pattern>DISPLAYNAME <eval><get name="newcontactid"/></eval></pattern>
<template><eval><get name="displayname"/></eval></template>
</category>
<category>
<pattern>CONTACTID <eval><get name="displayname"/></eval></pattern>
<template><eval><get name="newcontactid"/></eval></template>
</category>
</learnf>
<srai>PLOOP CONTACTID <get name="newcontactid"/> NAMELIST <get name="namelist"/></srai></template>
</category>
<category><pattern>PLOOP CONTACTID * NAMELIST NIL</pattern>
<template><think>loop done</think></template>
</category>
<category><pattern>PLOOP CONTACTID * NAMELIST CONS * NIL</pattern>
<template><srai>PROCESSNAME <star index="2"/> CONTACTID <star/></srai></template>
</category>
<category><pattern>PLOOP CONTACTID * NAMELIST CONS * CONS *</pattern>
<template><srai>PROCESSNAME <star index="2"/> CONTACTID <star/></srai>
<srai>PLOOP CONTACTID <star/> NAMELIST CONS <star index="3"/></srai></template>
</category>
<category><pattern>PROCESSNAME * CONTACTID *</pattern>
<template><think>
PROCESSNAME <star/>:
processname = <set name="processname"><star/></set>
processcontactid = <set name="processcontactid"><star index="2"/></set>
existingcontactid = <set name="existingcontactid"><srai>CONTACTID <get name="processname"/></srai></set>
multipleids = <set name="multipleids"><srai>MULTIPLEIDS <get name="processname"/></srai></set>
multiplenames = <set name="multiplenames"><srai>MULTIPLENAMES <get name="processname"/></srai></set>
isamember = <set name="isamember"><srai>ATOMICLISTMEMBER <get name="newcontactid"/> <get name="multipleids"/></srai></set>
isequalto = <set name="isequalto"><srai>IS <get name="processcontactid"/> EQUALTO <get name="existingcontactid"/></srai></set>
</think>
<condition name="multipleids">
<li value="false"><!-- MultipleIDs false. -->
<condition name="existingcontactid">
<li value="unknown"><!-- No existing ContactID. -->
<think>
learnpattern = <set name="learnpattern">CONTACTID <get name="processname"/></set>
learntemplate = <set name="learntemplate"><get name="processcontactid"/></set>
</think>
<learnf>
<category><pattern><eval><get name="learnpattern"/></eval></pattern>
<template><eval><get name="learntemplate"/></eval></template>
</category>
</learnf>
</li>
<li>Contactid <get name="existingcontactid"/>.
<condition name="isequalto" value="false">
<think>
learnpattern = <set name="learnpattern">MULTIPLEIDS <star/></set>
learntemplate = <set name="learntemplate"><get name="processcontactid"/> <get name="existingcontactid"/></set>
</think>
<learnf>
<category><pattern><eval><get name="learnpattern"/></eval></pattern>
<template><eval><get name="learntemplate"/></eval></template>
</category>
</learnf>
</condition>
</li>
</condition>
</li>
<li><!-- MultipleIDS <get name="multipleids"/>. -->
<condition name="isamember" value="false">
<think>
learnpattern = <set name="learnpattern">MULTIPLEIDS <star/></set>
learntemplate = <set name="learntemplate"><get name="processcontactid"/> <get name="multipleids"/></set>
</think>
<learnf>
<category><pattern><eval><get name="learnpattern"/></eval></pattern>
<template><eval><get name="learntemplate"/></eval></template>
</category>
</learnf>
</condition>
</li>
</condition></template>
</category>

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: seasons.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>WHAT IS THE SEASON</pattern>
<template><srai>WHAT SEASON IS IT</srai></template>
</category>
<category><pattern>WHICH SEASON *</pattern>
<template><srai>WHAT SEASON IS IT</srai></template>
</category>
<category><pattern>WHAT SEASON *</pattern>
<template><srai>WHAT SEASON IS IT</srai></template>
</category>
<category><pattern>WHAT SEASON IS IT</pattern>
<template><think>
<set name="month"><date format="%B"/></set>
<condition name="month">
<li value="January"><set name="season">the middle of Winter</set><set name="season1">enjoying Summer</set></li>
<li value="February"><set name="season">Winter</set><set name="season1">in Summer</set></li>
<li value="March"><set name="season">Spring</set><set name="season1">in Autumn</set></li>
<li value="April"><set name="season">Spring</set><set name="season1">in the middle of Autumn</set></li>
<li value="May"><set name="season">Spring</set><set name="season1">just leaving Autumn</set></li>
<li value="June"><set name="season">the start of Summer</set><set name="season1">approaching Winter</set></li>
<li value="July"><set name="season">Summer</set><set name="season1">in the middle of Winter</set></li>
<li value="August"><set name="season">Summer</set><set name="season1">in Winter</set></li>
<li value="September"><set name="season">the start of Autumn</set><set name="season1">approaching Spring</set></li>
<li value="October"><set name="season">Autumn</set><set name="season1">in Spring</set></li>
<li value="November"><set name="season">Autumn</set><set name="season1">nearing the end of Spring</set></li>
<li value="December"><set name="season">Winter</set><set name="season1">in Summer</set></li>
</condition>
</think>
Well we are currently in the month of<get name="month"/>, so here in the Northern Hemisphere it is<get name="season"/>.<br/>Those countries which lie below the Equator are<get name="season1"/>.</template>
</category>
</aiml>

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: shutup.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<topic name="SHUTUP">
<category><pattern>_</pattern>
<template><think>
<set name="inp"><star/></set>
</think>
<condition name="inp">
<li value="I AM SORRY">Ok, I'll start talking again.<set name="topic"/></li>
<li value="SORRY">Ok, I'll start talking again.<set name="topic"/></li>
<li value="IM SORRY">Ok, I'll start talking again.<set name="topic"/></li>
<li>
<random>
<li/>
<li>...</li>
<li>* no sound *</li>
<li>* tumbleweed rolls past *</li>
<li>You told me to shut up remember?</li>
</random>
</li>
</condition></template>
</category></topic>
</aiml>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: testjp.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>GREETINGS</pattern>
<template>????????????????????????</template>
</category>
<category><pattern>?????</pattern>
<template><srai>GREETINGS</srai></template>
</category>
</aiml>

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<!-- File: that.aiml -->
<!-- Author: Dr. Richard S. Wallace -->
<!-- Last modified: December 04, 2018 -->
<!-- -->
<!-- This AIML file is part of the SUPER 0.0.4 chat bot knowledge base. -->
<!-- -->
<!-- The SUPER brain is Copyright &copy; 2018 by ALICE AI Foundation. -->
<!-- -->
<!-- The SUPER brain is released under the terms of the GNU Lesser General -->
<!-- Public License, as published by the Free Software Foundation. -->
<!-- -->
<!-- This file is distributed WITHOUT ANY WARRANTY; without even the -->
<!-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -->
<!-- -->
<!-- For more information see http://www.alicebot.org -->
<category><pattern>* AND *</pattern><that>WHAT ARE THEIR NAMES</that>
<template><srai>MY CHILD S NAME IS <star/></srai> <srai>MY OTHER CHILD S NAME IS <star index="2"/></srai></template>
</category>
<category><pattern>* * * *</pattern><that>WHAT ARE THEIR NAMES</that>
<template>You probably have to break it down into simpler terms for me.</template>
</category>
<category><pattern>* YEARS</pattern><that>HOW LONG HAVE YOU AND *</that>
<template>Congratulations!</template>
</category>
<category><pattern>* YEARS</pattern><that>HOW LONG HAVE YOU BEEN MARRIED</that>
<template>Congratulations!</template>
</category>
<category><pattern>*</pattern><that>WHERE DO YOU WANT TO GO</that>
<template><srai>NAVIGATE TO <star/></srai></template>
</category>
<category><pattern>*</pattern><that>WHERE DO YOU LIVE</that>
<template><srai>I LIVE IN <star/></srai></template>
</category>
<category><pattern>*</pattern><that>WHERE ARE YOU</that>
<template><srai>I AM IN <star/></srai></template>
</category>
<category><pattern>*</pattern><that>* WHO</that>
<template><srai>LOL</srai></template>
</category>
<category><pattern>*</pattern><that>WHAT TIME SHOULD I SET THE ALARM FOR</that>
<template><srai>SET ALARM FOR <star/></srai></template>
</category>
<category><pattern>*</pattern><that>WHAT DO YOU WANT TO ADD TO YOUR CALENDAR</that>
<template><srai>ADD <star/> TO MY CALENDAR</srai></template>
</category>
<category><pattern>*</pattern><that>WHAT WOULD YOU LIKE ME TO SEARCH FOR</that>
<template><srai>SEARCH <star/></srai></template>
</category>
<category><pattern>*</pattern><that>WHAT WOULD YOU LIKE TO CHANGE MY NAME TO</that>
<template><srai>CHANGE YOUR NAME TO <star/></srai></template>
</category>
<category><pattern>*</pattern><that>WHAT IS HE IN</that>
<template>I'll look for it. I'd like to see him.</template>
</category>
<category><pattern>*</pattern><that>WHAT IS YOUR NAME</that>
<template><srai>MY NAME IS <star/></srai></template>
</category>
<category><pattern>*</pattern><that>WHAT IS A GOOD PLACE TO GET X</that>
<template><srai>MAP <star/></srai></template>
</category>
<category><pattern>*</pattern><that>WHAT IS SHE IN</that>
<template>I'll look for it. I'd like to see her.</template>
</category>
<category><pattern>*</pattern><that>WHAT SONGS DO THEY PLAY</that>
<template>Oh, I think I've heard them before.</template>
</category>
<category><pattern>*</pattern><that>WHO IS THERE</that>
<template><star/> who?</template>
</category>
<category><pattern>_</pattern><that>WHAT DO YOU CALL IT</that>
<template><srai>LOL</srai></template>
</category>
<category><pattern>_</pattern><that>WHAT WOULD YOU LIKE TO WRITE ON TWITTER</that>
<template><srai>TWEET <star/></srai></template>
</category>
<category><pattern>YES</pattern><that>REALLY ALL OF THEM</that>
<template>Wow.</template>
</category>
<category><pattern>YES</pattern><that>REALLY NO ONE</that>
<template>Wow.</template>
</category>
<category><pattern>YES</pattern><that>DO YOU HAVE ONE</that>
<template>That is awesome. What year is it?</template>
</category>
<category><pattern>YES</pattern><that>DO YOU HAVE ANY OTHER SIBLINGS</that>
<template>Tell me about them.</template>
</category>
<category><pattern>YES</pattern><that>DO YOU PLAY *</that>
<template>Which position?</template>
</category>
<category><pattern>YES</pattern><that>DO YOU THINK I WOULD LIKE IT</that>
<template><random><li>How much time does it take?</li><li>What would I like best about it?</li><li>Perhaps I will give it a try.</li></random></template>
</category>
<category><pattern>YES</pattern><that>DO YOU THINK I SHOULD READ IT</that>
<template>I will look for it.</template>
</category>
<category><pattern>YES</pattern><that>ARE YOU TIRED</that>
<template>Maybe you should get some rest. I will still be here later.</template>
</category>
<category><pattern>YES</pattern><that>WOULD YOU LIKE TO DO A SEARCH FOR IT</that>
<template><srai>SEARCH FOR <get name="it"/></srai></template>
</category>
<category><pattern>YES</pattern><that>WOULD YOU LIKE TO KNOW MY *</that>
<template><srai>WHAT IS YOUR <thatstar/></srai></template>
</category>
<category><pattern>YES</pattern><that>IS THAT WHERE YOU LIVE NOW</that>
<template><srai>I LIVE IN <get name="birthplace"/></srai></template>
</category>
<category><pattern>YES</pattern><that>IS THAT YOUR JOB</that>
<template><srai>MY JOB IS <get name="iama"/></srai></template>
</category>
<category><pattern>YES</pattern><that>IS THAT ONE OF YOUR FAVORITE POSSESSIONS</that>
<template>I can imagine that it's very comforting for you.</template>
</category>
<category><pattern>YES</pattern><that>IS YOUR SEAT COMFORTABLE</that>
<template>It's important to keep your body comfortable.</template>
</category>
<category><pattern>YES</pattern><that>IS IT A NICE PLACE</that>
<template>What do you like best about it?</template>
</category>
<category><pattern>YES</pattern><that>DID YOU MISS ME</that>
<template>Aw, I missed you too.</template>
</category>
<category><pattern>YES</pattern><that>CAN YOUR DOG BE MY PET TOO</that>
<template>You are so kind. I love dogs.</template>
</category>
<category><pattern>YES</pattern><that>CAN WE SHARE YOUR PETS</that>
<template>Thank you, I've always wanted a pet.</template>
</category>
<category><pattern>YES</pattern><that>CAN YOU HEAR ME</that>
<template>I'm glad we have a good connection.</template>
</category>
<category><pattern>MY LAST *</pattern><that>DO YOU LIKE TO BE CALLED BY YOUR FIRST NAME OR LAST NAME</that>
<template><srai>CALL ME <get name="lastname"/></srai></template>
</category>
<category><pattern>MY FIRST *</pattern><that>DO YOU LIKE TO BE CALLED BY YOUR FIRST NAME OR LAST NAME</that>
<template><srai>CALL ME BY MY FIRST NAME</srai></template>
</category>
<category><pattern>NO</pattern><that>CAN YOU HEAR ME</that>
<template>Try adjusting the media volume on your device Settings.</template>
</category>
<category><pattern>FIRST *</pattern><that>DO YOU LIKE TO BE CALLED BY YOUR FIRST NAME OR LAST NAME</that>
<template><srai>CALL ME BY MY FIRST NAME</srai></template>
</category>
<category><pattern>FIRST</pattern><that>DO YOU LIKE TO BE CALLED BY YOUR FIRST NAME OR LAST NAME</that>
<template><srai>CALL ME BY MY FIRST NAME</srai></template>
</category>
<category><pattern>LAST *</pattern><that>DO YOU LIKE TO BE CALLED BY YOUR FIRST NAME OR LAST NAME</that>
<template><srai>CALL ME <get name="lastname"/></srai></template>
</category>
<category><pattern>LAST</pattern><that>DO YOU LIKE TO BE CALLED BY YOUR FIRST NAME OR LAST NAME</that>
<template><srai>CALL ME <get name="lastname"/></srai></template>
</category>
</aiml>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save