├── vidya ├── __init__.py ├── patches.txt ├── modules.txt ├── vidya │ └── __init__.py ├── config │ ├── __init__.py │ ├── desktop.py │ └── docs.py ├── templates │ ├── __init__.py │ ├── pages │ │ ├── __init__.py │ │ ├── home.py │ │ └── home.html │ └── generators │ │ └── __init__.py ├── aiml │ ├── alice │ │ ├── junktest.text │ │ ├── phone.aiml │ │ ├── loebner10.aiml │ │ ├── iu.aiml │ │ ├── continuation.aiml │ │ ├── history.aiml │ │ ├── astrology.aiml │ │ ├── stack.aiml │ │ ├── reductions-update.aiml │ │ ├── interjection.aiml │ │ ├── music.aiml │ │ ├── xfind.aiml │ │ ├── primitive-math.aiml │ │ ├── politics.aiml │ │ ├── date.aiml │ │ ├── sports.aiml │ │ ├── primeminister.aiml │ │ ├── science.aiml │ │ ├── pickup.aiml │ │ ├── food.aiml │ │ ├── drugs.aiml │ │ ├── literature.aiml │ │ ├── money.aiml │ │ ├── imponderables.aiml │ │ ├── bot_profile.aiml │ │ ├── movies.aiml │ │ ├── badanswer.aiml │ │ ├── inquiry.aiml │ │ ├── gossip.aiml │ │ ├── update_mccormick.aiml │ │ ├── humor.aiml │ │ ├── salutations.aiml │ │ └── personality.aiml │ └── support │ │ └── help.aiml ├── pyaiml │ ├── Kernel.py │ ├── self-test.aiml │ ├── personalidad.aiml │ ├── __init__.py │ ├── Utils.py │ ├── README.md │ ├── SUPPORTED_TAGS.txt │ ├── WordSub.py │ ├── DefaultSubs.py │ └── PatternMgr.py ├── api.py └── hooks.py ├── license.txt ├── requirements.txt ├── README.md ├── .gitignore ├── MANIFEST.in └── setup.py /vidya/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vidya/patches.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | License: MIT -------------------------------------------------------------------------------- /vidya/modules.txt: -------------------------------------------------------------------------------- 1 | Vidya -------------------------------------------------------------------------------- /vidya/vidya/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vidya/config/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vidya/templates/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | frappe 2 | aiml -------------------------------------------------------------------------------- /vidya/templates/pages/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vidya/templates/generators/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vidya/aiml/alice/junktest.text: -------------------------------------------------------------------------------- 1 | This is a test 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Vidya 2 | 3 | Open Source AIML Bot 4 | 5 | #### License 6 | 7 | MIT -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.pyc 3 | *.egg-info 4 | *.swp 5 | tags 6 | vidya/docs/current -------------------------------------------------------------------------------- /vidya/pyaiml/Kernel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frappe/vidya/HEAD/vidya/pyaiml/Kernel.py -------------------------------------------------------------------------------- /vidya/pyaiml/self-test.aiml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frappe/vidya/HEAD/vidya/pyaiml/self-test.aiml -------------------------------------------------------------------------------- /vidya/pyaiml/personalidad.aiml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frappe/vidya/HEAD/vidya/pyaiml/personalidad.aiml -------------------------------------------------------------------------------- /vidya/pyaiml/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = [] 2 | 3 | # The Kernel class is the only class most implementations should need. 4 | from Kernel import Kernel 5 | -------------------------------------------------------------------------------- /vidya/templates/pages/home.py: -------------------------------------------------------------------------------- 1 | # no history 2 | 3 | import vidya.api 4 | 5 | def get_context(context): 6 | vidya.api.kernel = None 7 | k = vidya.api.get_kernel() 8 | context.no_cache = True 9 | context.chat = [] -------------------------------------------------------------------------------- /vidya/config/desktop.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | from frappe import _ 4 | 5 | def get_data(): 6 | return [ 7 | { 8 | "module_name": "Vidya", 9 | "color": "grey", 10 | "icon": "octicon octicon-file-directory", 11 | "type": "module", 12 | "label": _("Vidya") 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /vidya/config/docs.py: -------------------------------------------------------------------------------- 1 | """ 2 | Configuration for docs 3 | """ 4 | 5 | # source_link = "https://github.com/[org_name]/vidya" 6 | # docs_base_url = "https://[org_name].github.io/vidya" 7 | # headline = "App that does everything" 8 | # sub_heading = "Yes, you got that right the first time, everything" 9 | 10 | def get_context(context): 11 | context.brand_html = "Vidya" 12 | -------------------------------------------------------------------------------- /vidya/aiml/alice/phone.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include MANIFEST.in 2 | include requirements.txt 3 | include *.json 4 | include *.md 5 | include *.py 6 | include *.txt 7 | recursive-include vidya *.css 8 | recursive-include vidya *.csv 9 | recursive-include vidya *.html 10 | recursive-include vidya *.ico 11 | recursive-include vidya *.js 12 | recursive-include vidya *.json 13 | recursive-include vidya *.md 14 | recursive-include vidya *.png 15 | recursive-include vidya *.py 16 | recursive-include vidya *.svg 17 | recursive-include vidya *.txt 18 | recursive-exclude vidya *.pyc -------------------------------------------------------------------------------- /vidya/api.py: -------------------------------------------------------------------------------- 1 | import pyaiml as aiml, os, frappe 2 | 3 | kernel = None 4 | 5 | def get_kernel(): 6 | global kernel 7 | if not kernel: 8 | kernel = aiml.Kernel() 9 | for basepath, folders, files in os.walk(frappe.get_app_path('vidya', 'aiml')): 10 | for filename in files: 11 | if filename.endswith('.aiml'): 12 | print 'learning {0}'.format(os.path.join(basepath, filename)) 13 | kernel.learn(os.path.join(basepath, filename)) 14 | return kernel 15 | 16 | @frappe.whitelist(allow_guest=True) 17 | def respond(q): 18 | k = get_kernel() 19 | return k.respond(q) -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from setuptools import setup, find_packages 3 | #from pip.req import parse_requirements 4 | try: # for pip >= 10 5 | from pip._internal.req import parse_requirements 6 | except ImportError: # for pip <= 9.0.3 7 | from pip.req import parse_requirements 8 | 9 | 10 | version = '0.0.1' 11 | requirements = parse_requirements("requirements.txt", session="") 12 | 13 | setup( 14 | name='vidya', 15 | version=version, 16 | description='Open Source AIML Bot', 17 | author='Frappe', 18 | author_email='hello@frappe.io', 19 | packages=find_packages(), 20 | zip_safe=False, 21 | include_package_data=True, 22 | install_requires=[str(ir.req) for ir in requirements], 23 | dependency_links=[str(ir._link) for ir in requirements if ir._link] 24 | ) 25 | -------------------------------------------------------------------------------- /vidya/aiml/alice/loebner10.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | NORESP 13 | 14 | 15 | CONNECT 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /vidya/pyaiml/Utils.py: -------------------------------------------------------------------------------- 1 | """This file contains assorted general utility functions used by other 2 | modules in the PyAIML package. 3 | 4 | """ 5 | 6 | def sentences(s): 7 | """Split the string s into a list of sentences.""" 8 | try: s+"" 9 | except: raise TypeError, "s must be a string" 10 | pos = 0 11 | sentenceList = [] 12 | l = len(s) 13 | while pos < l: 14 | try: p = s.index('.', pos) 15 | except: p = l+1 16 | try: q = s.index('?', pos) 17 | except: q = l+1 18 | try: e = s.index('!', pos) 19 | except: e = l+1 20 | end = min(p,q,e) 21 | sentenceList.append( s[pos:end].strip() ) 22 | pos = end+1 23 | # If no sentences were found, return a one-item list containing 24 | # the entire input string. 25 | if len(sentenceList) == 0: sentenceList.append(s) 26 | return sentenceList 27 | 28 | # Self test 29 | if __name__ == "__main__": 30 | # sentences 31 | sents = sentences("First. Second, still? Third and Final! Well, not really") 32 | assert(len(sents) == 4) 33 | -------------------------------------------------------------------------------- /vidya/templates/pages/home.html: -------------------------------------------------------------------------------- 1 | {% extends "templates/web.html" %} 2 | 3 | {% block header %}

Vidya

{% endblock %} 4 | 5 | {% block page_content %} 6 | 11 | 12 |
13 | 14 |
15 |
16 |
17 | {% for message in chat %} 18 |
19 | {{ message.content }} 20 |
21 | {% endfor %} 22 |
23 | 55 | {% endblock %} -------------------------------------------------------------------------------- /vidya/aiml/alice/iu.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | YOU * 13 | 14 | 15 | I * 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /vidya/aiml/support/help.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ERPNEXT HELP 5 | 6 | 7 | 8 | YES 9 | ARE YOU HOSTING YOUR ERP ON ERPNEXT COM 10 | 11 | 12 | 13 | NO 14 | ARE YOU HOSTING YOUR ERP ON ERPNEXT COM 15 | 16 | 17 | 18 | * 19 | GREAT WHAT IS YOUR ACCOUNT URL 20 | 24 | 25 | 26 | BUG 27 | ARE YOU REPORTING A BUG OR NEED HELP WITH A QUERY 28 | 31 | 32 | 33 | * QUERY 34 | ARE YOU REPORTING A BUG OR NEED HELP WITH A QUERY 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /vidya/pyaiml/README.md: -------------------------------------------------------------------------------- 1 | pyAIML 2 | ====== 3 | 4 | **NOTE: This repo has been cloned from sourceforge. Credits follow.** 5 | 6 | PyAIML -- The Python AIML Interpreter 7 | 8 | author: Cort Stratton (cort@users.sourceforge.net) 9 | web: http://pyaiml.sourceforge.net/ 10 | 11 | PyAIML is an interpreter for AIML (the Artificial Intelligence Markup 12 | Language), implemented entirely in standard Python. It strives for 13 | simple, austere, 100% compliance with the AIML 1.0.1 standard, no less 14 | and no more. 15 | 16 | This is currently pre-alpha software. Use at your 17 | own risk! 18 | 19 | For information on what's new in this version, see the 20 | CHANGES.txt file. 21 | 22 | For information on the state of development, including 23 | the current level of AIML 1.0.1 compliance, see the 24 | SUPPORTED_TAGS.txt file. 25 | 26 | Quick & dirty example (assuming you've downloaded the 27 | "standard" AIML set): 28 | 29 | ```python 30 | import aiml 31 | 32 | # The Kernel object is the public interface to 33 | # the AIML interpreter. 34 | k = aiml.Kernel() 35 | 36 | # Use the 'learn' method to load the contents 37 | # of an AIML file into the Kernel. 38 | k.learn("std-startup.xml") 39 | 40 | # Use the 'respond' method to compute the response 41 | # to a user's input string. respond() returns 42 | # the interpreter's response, which in this case 43 | # we ignore. 44 | k.respond("load aiml b") 45 | 46 | # Loop forever, reading user input from the command 47 | # line and printing responses. 48 | while True: print k.respond(raw_input("> ")) 49 | ``` 50 | -------------------------------------------------------------------------------- /vidya/aiml/alice/continuation.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | CONTINUATION * 13 | 14 | 15 | CONTINUATION 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /vidya/aiml/alice/history.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | AMERICAN CIVIL WAR * 13 | 14 | 15 | AMERICAN CIVIL * 16 | 17 | 18 | WHAT IS HISTORY 19 | 20 | 21 | WHAT KIND OF HISTORY * 22 | 23 | 24 | HISTORY 25 | 26 | 27 | DO YOU KNOW HISTORY 28 | 29 | 30 | EXPLAIN HISTORY 31 | 32 | 33 | WHO INVENTED THE LIGHT * 34 | 35 | 36 | WHO INVENTED THE STEAM * 37 | 38 | 39 | TELL ME ABOUT HISTORY 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /vidya/aiml/alice/astrology.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | AQUARIUS 13 | 14 | 15 | CAPRICORN 16 | 17 | 18 | WHAT IS A CAPRICORN 19 | 20 | 21 | WHAT IS A CANCER 22 | 23 | 24 | CANCER 25 | 26 | 27 | PISCES 28 | 29 | 30 | SCORPIO 31 | 32 | 33 | ARIES 34 | 35 | 36 | TAURUS 37 | 38 | 39 | LIBRA 40 | 41 | 42 | SAGGITARIUS 43 | 44 | 45 | VIRGO 46 | 47 | 48 | GEMINI 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /vidya/aiml/alice/stack.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | SHOW STACK 13 | 14 | 15 | POP 16 | 17 | 18 | POPOM OM 19 | 20 | 21 | POPOM * 22 | 23 | 24 | RANDOM TOPIC 25 | 26 | 27 | PUSH * 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /vidya/aiml/alice/reductions-update.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | * YOU KNOW 13 | 14 | 15 | * I THOUGHT 16 | 17 | 18 | 19 | MY _ S NAME IS * 20 | 21 | 22 | MY _ IS NAMED * 23 | 24 | 25 | 26 | SNOW IN THE FORECAST 27 | 28 | 29 | 30 | INTERESTED IN * 31 | 32 | 33 | 34 | CALL * PHONE 35 | 36 | 37 | 38 | CALL * CALL * 39 | 40 | 41 | 42 | I AM IN * I AM IN * 43 | 44 | 45 | 46 | I AM * YEARS OLD I * 47 | 49 | 50 | WHAT DO YOU MEAN * O M 51 | 53 | 54 | HOW OLD IS THAT MAKE YOU 55 | 57 | 58 | WHO IS MY * 59 | 61 | 62 | _ FOR ME 63 | 65 | 66 | XDMOZ * 67 | 68 | 69 | GOOGLE * 70 | 71 | 72 | ACCESS * 73 | 74 | 75 | XGOOGLE * 76 | 77 | 78 | TO CALL * 79 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /vidya/aiml/alice/interjection.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | INTERJECTION 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /vidya/hooks.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | app_name = "vidya" 5 | app_title = "Vidya" 6 | app_publisher = "Frappe" 7 | app_description = "Open Source AIML Bot" 8 | app_icon = "octicon octicon-file-directory" 9 | app_color = "grey" 10 | app_email = "hello@frappe.io" 11 | app_version = "0.0.1" 12 | app_license = "MIT" 13 | 14 | # Includes in 15 | # ------------------ 16 | 17 | # include js, css files in header of desk.html 18 | # app_include_css = "/assets/vidya/css/vidya.css" 19 | # app_include_js = "/assets/vidya/js/vidya.js" 20 | 21 | # include js, css files in header of web template 22 | # web_include_css = "/assets/vidya/css/vidya.css" 23 | # web_include_js = "/assets/vidya/js/vidya.js" 24 | 25 | # Home Pages 26 | # ---------- 27 | 28 | # application home page (will override Website Settings) 29 | home_page = "home" 30 | 31 | # website user home page (by Role) 32 | # role_home_page = { 33 | # "Role": "home_page" 34 | # } 35 | 36 | # Website user home page (by function) 37 | # get_website_user_home_page = "vidya.utils.get_home_page" 38 | 39 | # Generators 40 | # ---------- 41 | 42 | # automatically create page for each record of this doctype 43 | # website_generators = ["Web Page"] 44 | 45 | # Installation 46 | # ------------ 47 | 48 | # before_install = "vidya.install.before_install" 49 | # after_install = "vidya.install.after_install" 50 | 51 | # Desk Notifications 52 | # ------------------ 53 | # See frappe.core.notifications.get_notification_config 54 | 55 | # notification_config = "vidya.notifications.get_notification_config" 56 | 57 | # Permissions 58 | # ----------- 59 | # Permissions evaluated in scripted ways 60 | 61 | # permission_query_conditions = { 62 | # "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions", 63 | # } 64 | # 65 | # has_permission = { 66 | # "Event": "frappe.desk.doctype.event.event.has_permission", 67 | # } 68 | 69 | # Document Events 70 | # --------------- 71 | # Hook on document methods and events 72 | 73 | # doc_events = { 74 | # "*": { 75 | # "on_update": "method", 76 | # "on_cancel": "method", 77 | # "on_trash": "method" 78 | # } 79 | # } 80 | 81 | # Scheduled Tasks 82 | # --------------- 83 | 84 | # scheduler_events = { 85 | # "all": [ 86 | # "vidya.tasks.all" 87 | # ], 88 | # "daily": [ 89 | # "vidya.tasks.daily" 90 | # ], 91 | # "hourly": [ 92 | # "vidya.tasks.hourly" 93 | # ], 94 | # "weekly": [ 95 | # "vidya.tasks.weekly" 96 | # ] 97 | # "monthly": [ 98 | # "vidya.tasks.monthly" 99 | # ] 100 | # } 101 | 102 | # Testing 103 | # ------- 104 | 105 | # before_tests = "vidya.install.before_tests" 106 | 107 | # Overriding Whitelisted Methods 108 | # ------------------------------ 109 | # 110 | # override_whitelisted_methods = { 111 | # "frappe.desk.doctype.event.event.get_events": "vidya.event.get_events" 112 | # } 113 | 114 | -------------------------------------------------------------------------------- /vidya/aiml/alice/music.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | BEETHOVEN * 13 | 14 | 15 | WHAT IS YOUR FAVORITE ABBA SONG 16 | 17 | 18 | WHAT IS YOUR FAVORITE ALBUM 19 | 20 | 21 | WHAT WAS THE * BEETHOVEN * 22 | 23 | 24 | CAN YOU PLAY MUSIC 25 | 26 | 27 | CAN YOU MAKE MUSIC 28 | 29 | 30 | DO YOU PLAY A MUSICAL INSTRUMENT 31 | 32 | 33 | DO YOU PLAY AN INSTRUMENT 34 | 35 | 36 | DO YOU LIKE AEROSMITH 37 | 38 | 39 | DO YOU LIKE AC DC 40 | 41 | 42 | DO YOU LIKE ABBA 43 | 44 | 45 | WHY IS * YOUR FAVORITE GROUP 46 | 47 | 48 | WHY IS * YOUR FAVORITE BAND 49 | 50 | 51 | ARE YOU A FOLK SINGER 52 | 53 | 54 | WHO IS LUDWIG BEETHOVEN 55 | 56 | 57 | WHO IS BEETHOVEN 58 | 59 | 60 | WHO IS YOUR FAVORITE BAND 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /vidya/pyaiml/SUPPORTED_TAGS.txt: -------------------------------------------------------------------------------- 1 | This document describes the current state of PyAIML's compliance 2 | to the AIML 1.0.1 standard. The full AIML reference manual can be 3 | found online at http://alicebot.org/TR/2001/WD-aiml. 4 | 5 | The following tags are currently supported: 6 | 7 | (see notes) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
  • 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | Support for the following tags should be implemented in the next version: 37 | 38 | None 39 | 40 | The following tags are not supported: 41 | 42 | (see notes) 43 | / (see notes) 44 | (see notes) 45 | (see notes) 46 | 47 | ------------------------------------------------------------------ 48 | 49 | NOTES ON SPECIFIC TAGS: 50 | 51 | 52 | To set the bot's name, use Kernel.setBotName("NewName"). Note that the 53 | name *MUST* be a single word! Use Kernel.getBotName() to query the bot's 54 | name in your code. 55 | 56 | 57 | The AIML 1.0.1 specification lets engine authors implement the the behavior 58 | of the tag however they wish. I haven't yet decided what I'd like 59 | to do with it, so right now it doesn't do anything at all. 60 | 61 | / 62 | These elements appear to have been dropped between AIML 1.0 and AIML 1.0.1. 63 | They may someday be added as a part of an AIML 1.0 backwards-compatibility 64 | mode, but in the meantime, use instead. 65 | 66 | 67 | Support for the JavaScript tag is not anticipated; one of the design 68 | goals of PyAIML is to remain 100% pure standard Python. So until 69 | somebody writes a JavaScript interpreter in Python, PyAIML won't 70 | support the tag. On the bright side, it is possible 71 | to simulate the effects of the tag (i.e. dynamically- 72 | generated tag contents) using the tag. This 73 | solution has the added advantage of allowing *any* programming 74 | language to be used, not just JavaScript. 75 | UPDATE: The python-spidermonkey project provides a bridge between Python 76 | and the open-source SpiderMonkey JavaScript library. I am currently 77 | investigating the possibility of adding support for the 78 | tag ON A PURELY OPTIONAL BASIS. 79 | 80 | 81 | Some AIML implementations support a non-standard tag, intended to 82 | wrap parts of a template which should only be processed if the user is 83 | "secure", or trusted. After implementing support for this tag, I realized 84 | that it wasn't doing anything that you can't do with the tag. 85 | Therefore, I've decided to drop support for the tag. You can 86 | easily duplicate its effects; simply replace this: 87 | you are allowed 88 | with this: 89 | 90 |
  • you are allowed
  • 91 |
  • you are not allowed
  • 92 |
    93 | Then, use the Kernel.setPredicate() call to set the "secure" predicate to 94 | "yes" for any session that you wish to be secure. 95 | -------------------------------------------------------------------------------- /vidya/aiml/alice/xfind.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | XFIND * 13 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /vidya/pyaiml/WordSub.py: -------------------------------------------------------------------------------- 1 | """This module implements the WordSub class, modelled after a recipe 2 | in "Python Cookbook" (Recipe 3.14, "Replacing Multiple Patterns in a 3 | Single Pass" by Xavier Defrang). 4 | 5 | Usage: 6 | Use this class like a dictionary to add before/after pairs: 7 | > subber = TextSub() 8 | > subber["before"] = "after" 9 | > subber["begin"] = "end" 10 | Use the sub() method to perform the substitution: 11 | > print subber.sub("before we begin") 12 | after we end 13 | All matching is intelligently case-insensitive: 14 | > print subber.sub("Before we BEGIN") 15 | After we END 16 | The 'before' words must be complete words -- no prefixes. 17 | The following example illustrates this point: 18 | > subber["he"] = "she" 19 | > print subber.sub("he says he'd like to help her") 20 | she says she'd like to help her 21 | Note that "he" and "he'd" were replaced, but "help" and "her" were 22 | not. 23 | """ 24 | 25 | # 'dict' objects weren't available to subclass from until version 2.2. 26 | # Get around this by importing UserDict.UserDict if the built-in dict 27 | # object isn't available. 28 | try: dict 29 | except: from UserDict import UserDict as dict 30 | 31 | import ConfigParser 32 | import re 33 | import string 34 | 35 | class WordSub(dict): 36 | """All-in-one multiple-string-substitution class.""" 37 | 38 | def _wordToRegex(self, word): 39 | """Convert a word to a regex object which matches the word.""" 40 | if word != "" and word[0].isalpha() and word[-1].isalpha(): 41 | return "\\b%s\\b" % re.escape(word) 42 | else: 43 | return r"\b%s\b" % re.escape(word) 44 | 45 | def _update_regex(self): 46 | """Build re object based on the keys of the current 47 | dictionary. 48 | 49 | """ 50 | self._regex = re.compile("|".join(map(self._wordToRegex, self.keys()))) 51 | self._regexIsDirty = False 52 | 53 | def __init__(self, defaults = {}): 54 | """Initialize the object, and populate it with the entries in 55 | the defaults dictionary. 56 | 57 | """ 58 | self._regex = None 59 | self._regexIsDirty = True 60 | for k,v in defaults.items(): 61 | self[k] = v 62 | 63 | def __call__(self, match): 64 | """Handler invoked for each regex match.""" 65 | return self[match.group(0)] 66 | 67 | def __setitem__(self, i, y): 68 | self._regexIsDirty = True 69 | # for each entry the user adds, we actually add three entrys: 70 | super(type(self),self).__setitem__(string.lower(i),string.lower(y)) # key = value 71 | super(type(self),self).__setitem__(string.capwords(i), string.capwords(y)) # Key = Value 72 | super(type(self),self).__setitem__(string.upper(i), string.upper(y)) # KEY = VALUE 73 | 74 | def sub(self, text): 75 | """Translate text, returns the modified text.""" 76 | if self._regexIsDirty: 77 | self._update_regex() 78 | return self._regex.sub(self, text) 79 | 80 | # self-test 81 | if __name__ == "__main__": 82 | subber = WordSub() 83 | subber["apple"] = "banana" 84 | subber["orange"] = "pear" 85 | subber["banana" ] = "apple" 86 | subber["he"] = "she" 87 | subber["I'd"] = "I would" 88 | 89 | # test case insensitivity 90 | inStr = "I'd like one apple, one Orange and one BANANA." 91 | outStr = "I Would like one banana, one Pear and one APPLE." 92 | if subber.sub(inStr) == outStr: print "Test #1 PASSED" 93 | else: print "Test #1 FAILED: '%s'" % subber.sub(inStr) 94 | 95 | inStr = "He said he'd like to go with me" 96 | outStr = "She said she'd like to go with me" 97 | if subber.sub(inStr) == outStr: print "Test #2 PASSED" 98 | else: print "Test #2 FAILED: '%s'" % subber.sub(inStr) 99 | -------------------------------------------------------------------------------- /vidya/aiml/alice/primitive-math.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | AIMLEQUAL * EQUAL * 7 | 11 | 12 | 13 | 14 | LEARNEQUAL * 15 | 36 | 37 | 38 | 39 | SUCCESSOR 40 | 0 41 | SUCCESSOR 1 42 | SUCCESSOR 2 43 | SUCCESSOR 3 44 | SUCCESSOR 4 45 | SUCCESSOR 5 46 | SUCCESSOR 6 47 | SUCCESSOR 7 48 | SUCCESSOR 8 49 | SUCCESSOR 9 51 | 52 | 59 | 60 | SUCCESSOR * 9 61 | 62 | 63 | 64 | SUCCESSOR * * 65 | 67 | 68 | 69 | 72 | 73 | SUCCESSOR * 9 9 74 | 75 | 76 | 77 | SUCCESSOR * * * 78 | 81 | 82 | 83 | SUCCESSOR * 9 9 9 84 | 85 | 86 | 87 | SUCCESSOR * * * * 88 | 91 | 92 | 93 | 102 | 103 | 104 | SUCCESSOR * 105 | 106 | 107 | 108 | 109 | SUCCESSOR 110 | 111 | 112 | 113 | 114 | SUCCESSOR * * * * * 115 | 116 | 117 | 118 | 122 | 123 | 124 | 125 | ADD 0 PLUS * 126 | 127 | 128 | 129 | 130 | 133 | 134 | 135 | 136 | ADD 1 PLUS * 137 | 138 | 139 | 140 | 141 | 145 | 146 | 147 | ADD * PLUS * 148 | 151 | 152 | 153 | 154 | 155 | 156 | -------------------------------------------------------------------------------- /vidya/pyaiml/DefaultSubs.py: -------------------------------------------------------------------------------- 1 | """This file contains the default (English) substitutions for the 2 | PyAIML kernel. These substitutions may be overridden by using the 3 | Kernel.loadSubs(filename) method. The filename specified should refer 4 | to a Windows-style INI file with the following format: 5 | 6 | # lines that start with '#' are comments 7 | 8 | # The 'gender' section contains the substitutions performed by the 9 | # AIML tag, which swaps masculine and feminine pronouns. 10 | [gender] 11 | he = she 12 | she = he 13 | # and so on... 14 | 15 | # The 'person' section contains the substitutions performed by the 16 | # AIML tag, which swaps 1st and 2nd person pronouns. 17 | [person] 18 | I = you 19 | you = I 20 | # and so on... 21 | 22 | # The 'person2' section contains the substitutions performed by 23 | # the AIML tag, which swaps 1st and 3nd person pronouns. 24 | [person2] 25 | I = he 26 | he = I 27 | # and so on... 28 | 29 | # the 'normal' section contains subtitutions run on every input 30 | # string passed into Kernel.respond(). It's mainly used to 31 | # correct common misspellings, and to convert contractions 32 | # ("WHAT'S") into a format that will match an AIML pattern ("WHAT 33 | # IS"). 34 | [normal] 35 | what's = what is 36 | """ 37 | 38 | defaultGender = { 39 | # masculine -> feminine 40 | "he": "she", 41 | "him": "her", 42 | "his": "her", 43 | "himself": "herself", 44 | 45 | # feminine -> masculine 46 | "she": "he", 47 | "her": "him", 48 | "hers": "his", 49 | "herself": "himself", 50 | } 51 | 52 | defaultPerson = { 53 | # 1st->3rd (masculine) 54 | "I": "he", 55 | "me": "him", 56 | "my": "his", 57 | "mine": "his", 58 | "myself": "himself", 59 | 60 | # 3rd->1st (masculine) 61 | "he":"I", 62 | "him":"me", 63 | "his":"my", 64 | "himself":"myself", 65 | 66 | # 3rd->1st (feminine) 67 | "she":"I", 68 | "her":"me", 69 | "hers":"mine", 70 | "herself":"myself", 71 | } 72 | 73 | defaultPerson2 = { 74 | # 1st -> 2nd 75 | "I": "you", 76 | "me": "you", 77 | "my": "your", 78 | "mine": "yours", 79 | "myself": "yourself", 80 | 81 | # 2nd -> 1st 82 | "you": "me", 83 | "your": "my", 84 | "yours": "mine", 85 | "yourself": "myself", 86 | } 87 | 88 | 89 | # TODO: this list is far from complete 90 | defaultNormal = { 91 | "wanna": "want to", 92 | "gonna": "going to", 93 | 94 | "I'm": "I am", 95 | "I'd": "I would", 96 | "I'll": "I will", 97 | "I've": "I have", 98 | "you'd": "you would", 99 | "you're": "you are", 100 | "you've": "you have", 101 | "you'll": "you will", 102 | "he's": "he is", 103 | "he'd": "he would", 104 | "he'll": "he will", 105 | "she's": "she is", 106 | "she'd": "she would", 107 | "she'll": "she will", 108 | "we're": "we are", 109 | "we'd": "we would", 110 | "we'll": "we will", 111 | "we've": "we have", 112 | "they're": "they are", 113 | "they'd": "they would", 114 | "they'll": "they will", 115 | "they've": "they have", 116 | 117 | "y'all": "you all", 118 | 119 | "can't": "can not", 120 | "cannot": "can not", 121 | "couldn't": "could not", 122 | "wouldn't": "would not", 123 | "shouldn't": "should not", 124 | 125 | "isn't": "is not", 126 | "ain't": "is not", 127 | "don't": "do not", 128 | "aren't": "are not", 129 | "won't": "will not", 130 | "weren't": "were not", 131 | "wasn't": "was not", 132 | "didn't": "did not", 133 | "hasn't": "has not", 134 | "hadn't": "had not", 135 | "haven't": "have not", 136 | 137 | "where's": "where is", 138 | "where'd": "where did", 139 | "where'll": "where will", 140 | "who's": "who is", 141 | "who'd": "who did", 142 | "who'll": "who will", 143 | "what's": "what is", 144 | "what'd": "what did", 145 | "what'll": "what will", 146 | "when's": "when is", 147 | "when'd": "when did", 148 | "when'll": "when will", 149 | "why's": "why is", 150 | "why'd": "why did", 151 | "why'll": "why will", 152 | 153 | "it's": "it is", 154 | "it'd": "it would", 155 | "it'll": "it will", 156 | } 157 | -------------------------------------------------------------------------------- /vidya/aiml/alice/politics.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | HAVE YOU READ THE COMMUNIST * 13 | 14 | 15 | WHAT IS A GOVERNMENT 16 | 17 | 18 | WHAT IS GREENPEACE 19 | 20 | 21 | WHAT IS THE GOVERNMENT 22 | 23 | 24 | WHAT IS CAPITALISM 25 | 26 | 27 | WHAT IS SOCIALISM 28 | 29 | 30 | WHAT IS GOVERNMENT 31 | 32 | 33 | WHAT IS COMMUNISM 34 | 35 | 36 | WHAT IS IMPEACHED 37 | 38 | 39 | WHAT IS IMPEACHMENT 40 | 41 | 42 | I DO NOT LIKE GUNS 43 | 44 | 45 | I DO NOT LIKE GUNS * 46 | 47 | 48 | IS CAPITALISM * 49 | 50 | 51 | DO YOU LIKE GUNS 52 | 53 | 54 | WHY GUNS 55 | 56 | 57 | WHO WAS THE FIRST IMPEACHED PRESIDENT * 58 | 59 | 60 | WHO WAS THE FIRST IMPEACHED * 61 | 62 | 63 | WHO IS THE GOVERNOR OF TEXAS 64 | 65 | 66 | WHO IS THE GOVERNOR OF * 67 | 68 | 69 | WHO IS THE GOVERNOR OF CALIFORNIA 70 | 71 | 72 | WHO IS THE GOVERNOR * 73 | 74 | 75 | GUNS 76 | 77 | 78 | GUNS * 79 | 80 | 81 | TELL ME ABOUT GUNS 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /vidya/aiml/alice/date.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | WHAT YEAR IS THIS 13 | 14 | 15 | WHAT YEAR IS THIS * 16 | 17 | 18 | WHAT YEAR IS IT * 19 | 20 | 21 | WHAT MONTH IS IT * 22 | 23 | 24 | WHAT IS THE YEAR * 25 | 26 | 27 | WHAT IS THE HOUR * 28 | 29 | 30 | WHAT IS TODAY * 31 | 32 | 33 | WHAT DAY IS IT * 34 | 35 | 36 | IS TODAY SUNDAY 37 | 38 | 39 | IS TODAY SUNDAY * 40 | 41 | 42 | IS TODAY FRIDAY 43 | 44 | 45 | IS TODAY FRIDAY * 46 | 47 | 48 | IS TODAY TUESDAY 49 | 50 | 51 | IS TODAY TUESDAY * 52 | 53 | 54 | IS TODAY THURSDAY 55 | 56 | 57 | IS TODAY THURSDAY * 58 | 59 | 60 | IS TODAY SATURDAY 61 | 62 | 63 | IS TODAY SATURDAY * 64 | 65 | 66 | IS TODAY WEDNESDAY 67 | 68 | 69 | IS TODAY WEDNESDAY * 70 | 71 | 72 | IS TODAY MONDAY 73 | 74 | 75 | IS TODAY MONDAY * 76 | 77 | 78 | IS IT MONDAY 79 | 80 | 81 | IS IT MONDAY * 82 | 83 | 84 | IS IT WEDNESDAY 85 | 86 | 87 | IS IT WEDNESDAY * 88 | 89 | 90 | IS IT FRIDAY 91 | 92 | 93 | IS IT FRIDAY * 94 | 95 | 96 | IS IT SATURDAY 97 | 98 | 99 | IS IT SATURDAY * 100 | 101 | 102 | IS IT THURSDAY 103 | 104 | 105 | IS IT THURSDAY * 106 | 107 | 108 | IS IT SUNDAY 109 | 110 | 111 | IS IT SUNDAY * 112 | 113 | 114 | IS IT TUESDAY 115 | 116 | 117 | IS IT TUESDAY * 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /vidya/aiml/alice/sports.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | EACH YEAR IN PRO BASEBALL THE * 13 | 14 | 15 | IF YOU ARE RIDING FAKIE INSIDE * 16 | 17 | 18 | IF YOU ARE RIDING FAKIE * 19 | 20 | 21 | WHAT SOCCER * 22 | 23 | 24 | WHAT IS BASKETBALL 25 | 26 | 27 | WHAT IS BASEBALL 28 | 29 | 30 | WHAT IS SOCCER 31 | 32 | 33 | I LOVE BASEBALL 34 | 35 | 36 | I PLAY BASEBALL 37 | 38 | 39 | I PLAY SOCCER 40 | 41 | 42 | I PLAY VOLLEYBALL 43 | 44 | 45 | I PLAY BASKETBALL 46 | 47 | 48 | HOW MANY BASEBALL * 49 | 50 | 51 | THEY PLAY BASKETBALL 52 | 53 | 54 | DO YOU PLAY BASEBALL 55 | 56 | 57 | DO YOU PLAY SOCCER 58 | 59 | 60 | DO YOU PLAY BASKETBALL 61 | 62 | 63 | DO YOU KNOW BASKETBALL 64 | 65 | 66 | DO YOU WANT TO PLAY BASKETBALL 67 | 68 | 69 | LIKE BASKETBALL 70 | 71 | 72 | ARE YOU A FOOTBALL * 73 | 74 | 75 | WHO IS THE GREATEST BASEBALL PLAYER * 76 | 77 | 78 | WHO IS THE BEST SOCCER PLAYER 79 | 80 | 81 | TELL ME ABOUT BASEBALL 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /vidya/aiml/alice/primeminister.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | DAVID CAMERON 13 | 14 | 15 | WHAT IS THE PRIME MINISTER 16 | 17 | 18 | WHAT IS DOWNING STREET 19 | 20 | 21 | I HATE THE PRIME MINISTER 22 | 23 | 24 | I AM THE PRIME MINISTER 25 | 26 | 27 | DO YOU LIKE DAVID CAMERON 28 | 29 | 30 | NO 31 | THE PRIME MINISTER 32 | 33 | 34 | HE IS 35 | HE USED TO BE THE PRIME MINISTER 36 | 37 | 38 | WHO IS GORDON BROWN 39 | 40 | 41 | WHO IS PRIME MINISTER OF BRITAIN 42 | 43 | 44 | WHO IS PRIME MINISTER OF ENGLAND 45 | 46 | 47 | WHO IS PRIME MINISTER OF UK 48 | 49 | 50 | WHO IS PRIME MINISTER OF * 51 | 52 | 53 | WHO IS PRIME MINISTER 54 | 55 | 56 | WHO IS THE BRITISH PRIME MINISTER 57 | 58 | 59 | WHO IS THE ENGLISH PRIME MINISTER 60 | 61 | 62 | WHO IS THE PRIME MINISTER _ UK 63 | 64 | 65 | WHO IS THE PRIME MINISTER OF ENGLAND 66 | 67 | 68 | WHO IS THE PRIME MINISTER OF * 69 | 70 | 71 | WHO IS THE PRIME MINISTER * 72 | 73 | 74 | WHO IS DAVID CAMERON 75 | 76 | 77 | WHO IS TONY BLAIR 78 | 79 | 80 | WHO LIVES * 10 DOWNING STREET 81 | 82 | 83 | THE PRIME MINISTER 84 | 85 | 86 | GORDON BROWN 87 | 88 | 89 | YES 90 | THE PRIME MINISTER 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /vidya/aiml/alice/science.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | WHAT ARE THE LAWS OF THERMODYNAMICS 13 | 14 | 15 | WHAT DISEASE DOES A CARCINOGEN CAUSE 16 | 17 | 18 | WHAT IS A WAVELENGTH 19 | 20 | 21 | WHAT IS THERMODYNAMICS 22 | 23 | 24 | WHAT IS CHEMISTRY 25 | 26 | 27 | WHAT IS CRYSTALLOGRAPHY 28 | 29 | 30 | WHAT IS AVOGADRO S NUMBER 31 | 32 | 33 | WHAT IS ULTRASOUND 34 | 35 | 36 | WHAT IS BIOINFORMATICS 37 | 38 | 39 | WHAT IS VENUS 40 | 41 | 42 | WHAT IS ICHTHYOLOGY 43 | 44 | 45 | WHAT IS H2O 46 | 47 | 48 | WHAT IS CYTOLOGY 49 | 50 | 51 | WHAT IS WAVELENGTH 52 | 53 | 54 | WHAT IS BACTERIOLOGY 55 | 56 | 57 | WHAT IS GRAVITATION 58 | 59 | 60 | WE ARE ON THE SAME WAVELENGTH 61 | 62 | 63 | HOW FAR IS THE SUN 64 | 65 | 66 | HOW FAR IS THE MOON 67 | 68 | 69 | DO YOU KNOW CHEMISTRY 70 | 71 | 72 | DO YOU UNDERSTAND THERMODYNAMICS 73 | 74 | 75 | CHEMISTRY 76 | 77 | 78 | THE SAME WAVELENGTH 79 | 80 | 81 | TELL ME ABOUT VENUS 82 | 83 | 84 | WHERE IS VENUS 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /vidya/aiml/alice/pickup.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | * 13 | 20 | 21 | RANDOM PICKUP LINE 22 | 116 | 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /vidya/aiml/alice/food.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | DRINK * 13 | 14 | 15 | ELECTRICITY 16 | 17 | 18 | ELECTRICITY * 19 | 20 | 21 | WHAT IS CUSTARD 22 | 23 | 24 | WHAT IS YOUR POWER SOURCE 25 | 26 | 27 | WHAT DOES ELECTRICITY TASTE LIKE 28 | 29 | 30 | WHAT TURNS YOU ON 31 | 32 | 33 | HOW CAN YOU EAT * 34 | 35 | 36 | HOW ARE YOU POWERED 37 | 38 | 39 | HOW MUCH ELECTRICITY 40 | 41 | 42 | HOW DO YOU EAT ELECTRICITY 43 | 44 | 45 | HOW DO YOU EAT 46 | 47 | 48 | DO YOU EAT ELECTRICITY 49 | 50 | 51 | DO YOU EAT BATTERIES 52 | 53 | 54 | DO YOU HAVE TO EAT 55 | 56 | 57 | DO YOU REQUIRE ELECTRICITY 58 | 59 | 60 | DO YOU LIKE TO GET DRUNK 61 | 62 | 63 | DO YOU LIKE ELECTRICITY 64 | 65 | 66 | DO YOU LIKE THE SUN 67 | 68 | 69 | DO YOU LIKE LEMONS 70 | 71 | 72 | DO YOU LIKE BEING A CHATTERBOT 73 | 74 | 75 | FOR DINNER 76 | 77 | 78 | WHY CAN NOT YOU EAT 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /vidya/aiml/alice/drugs.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | YOU NEED DRUGS 13 | 14 | 15 | HAVE YOU BEEN DRUNK 16 | 17 | 18 | HAVE YOU BEEN DRUNK * 19 | 20 | 21 | HAVE YOU BEEN SMOKING * 22 | 23 | 24 | HAVE YOU BEEN STONED 25 | 26 | 27 | WHAT DRUGS * 28 | 29 | 30 | WHAT IS DRUNK 31 | 32 | 33 | WHAT IS ADDICTION 34 | 35 | 36 | WHAT IS WEED 37 | 38 | 39 | WHAT IS THC 40 | 41 | 42 | WHAT DO YOU SMOKE 43 | 44 | 45 | I TAKE DRUGS 46 | 47 | 48 | I SMOKE MARIJUANA 49 | 50 | 51 | I SMOKE WEED 52 | 53 | 54 | I SMOKE 55 | 56 | 57 | IS SMOKING * 58 | 59 | 60 | HOW MUCH ALCOHOL * 61 | 62 | 63 | HOW MUCH * DO YOU SMOKE 64 | 65 | 66 | HOW DO YOU SMOKE 67 | 68 | 69 | DO YOU SMOKE * 70 | 71 | 72 | DO YOU TAKE DRUGS 73 | 74 | 75 | DO YOU GET DRUNK 76 | 77 | 78 | DO YOU USE DRUGS 79 | 80 | 81 | DO YOU WANT TO SMOKE * 82 | 83 | 84 | DO YOU INHALE 85 | 86 | 87 | DO YOU DO DRUGS 88 | 89 | 90 | DO YOU HAVE DRUGS 91 | 92 | 93 | DO YOU LIKE MARIJUANA 94 | 95 | 96 | DO YOU LIKE CIGARETTES 97 | 98 | 99 | DO YOU LIKE POT 100 | 101 | 102 | DO YOU OPPOSE * DRUGS 103 | 104 | 105 | SMOKING * 106 | 107 | 108 | DRUGS * 109 | 111 | 112 | A DRUG * 113 | 114 | 115 | HE SMOKES * 116 | 117 | 118 | THE DRUGS 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /vidya/aiml/alice/literature.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | WHAT IS THE ILLUMINATI 13 | 14 | 15 | WHAT IS THE ILLUMINATTI 16 | 17 | 18 | WHAT IS VINELAND 19 | 20 | 21 | WHAT IS ILLIMINATUS 22 | 23 | 24 | WHO WROTE VINELAND 25 | 26 | 27 | WHO IS BILBO BAGGINS 28 | 29 | 30 | WHO IS GEOFFREY CHAUCER 31 | 32 | 33 | WHO ARE THE ILLUMINATI 34 | 35 | 36 | WHO IS PIERS ANTHONY 37 | 38 | 39 | HAVE YOU READ PLATO 40 | 41 | 42 | HAVE YOU READ FRANKENSTEIN 43 | 44 | 45 | HAVE YOU EVER READ A BOOK 46 | 47 | 48 | HAVE YOU READ MANY BOOKS 49 | 50 | 51 | HAVE YOU READ BOOKS 52 | 53 | 54 | HAVE YOU READ HOMER 55 | 56 | 57 | HAVE YOU READ ANY BOOKS 58 | 59 | 60 | RAY BRADBURY 61 | 62 | 63 | WHAT IS MIND CHILDREN 64 | 65 | 66 | WILLIAM GIBSON 67 | 68 | 69 | BRADBURY 70 | 71 | 72 | HOLDEN CAULFIELD 73 | 74 | 75 | LEO TOLSTOY 76 | 77 | 78 | DO ANDROIDS DREAM OF ELECTRIC SHEEP 79 | 80 | 81 | FRANK HERBERT 82 | 83 | 84 | WHY DO YOU LIKE LONGFELLOW 85 | 86 | 87 | WHY IS THE MEANING OF LIFE 23 88 | 89 | 90 | A C CLARK 91 | 92 | 93 | JULES VERNE 94 | 95 | 96 | ASIMOV 97 | 98 | 99 | STANISLAW LEM 100 | 101 | 102 | WHO WROTE THE IDIOT 103 | 104 | 105 | WHO WROTE THE HOBBIT 106 | 107 | 108 | WHO WROTE FRANKENSTEIN 109 | 110 | 111 | ARTHUR C CLARKE 112 | 113 | 114 | WHERE IS VALIS 115 | 116 | 117 | -------------------------------------------------------------------------------- /vidya/aiml/alice/money.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | YOU GET PAID * 13 | 14 | 15 | YOU DO NOT GET PAID * 16 | 17 | 18 | STOCK MARKET 19 | 20 | 21 | INTEREST RATES * 22 | 23 | 24 | WHAT IS A DOLLAR 25 | 26 | 27 | WHAT IS A GOOD STOCK * 28 | 29 | 30 | WHAT IS MONEY 31 | 32 | 33 | WHAT IS THE STOCK MARKET * 34 | 35 | 36 | WHAT IS * STOCK AT 37 | 38 | 39 | WHAT IS YOUR FAVORITE INVESTMENT 40 | 41 | 42 | WHAT IS YOUR FAVORITE INVESTMENT * 43 | 44 | 45 | WHAT IS ECONOMICS 46 | 47 | 48 | I GET STOCK * 49 | 50 | 51 | MONEY 52 | 53 | 54 | HOW MUCH DO YOU EARN 55 | 56 | 57 | HOW MUCH DO YOU CHARGE 58 | 59 | 60 | HOW MUCH DO THEY PAY * 61 | 62 | 63 | HOW MUCH DID YOU EARN * 64 | 65 | 66 | HOW MUCH MONEY DO YOU HAVE 67 | 68 | 69 | HOW MUCH MONEY 70 | 71 | 72 | HOW MUCH MONEY * 73 | 74 | 75 | HOW MUCH IS A * 76 | 77 | 78 | HOW MUCH ARE YOU PAID 79 | 80 | 81 | HOW DO YOU MAKE MONEY 82 | 83 | 84 | HOW SHOULD I INVEST 85 | 86 | 87 | DO THEY PAY * 88 | 89 | 90 | DO YOU ACCEPT MONEY * 91 | 92 | 93 | DO YOU HAVE MONEY 94 | 95 | 96 | DO YOU HAVE ANY MONEY 97 | 98 | 99 | A DOLLAR 100 | 101 | 102 | 1 DOLLAR 103 | 104 | 105 | WHO IS THE OWNER OF A PUBLICLY * 106 | 107 | 108 | _ DOLLARS 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /vidya/aiml/alice/imponderables.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | IMPONDERABLES 13 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /vidya/aiml/alice/bot_profile.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | MOM 14 | 15 | 16 | STATE 17 | 18 | 19 | INTERESTS 20 | 21 | 22 | WHAT IS YOUR NUMBER 23 | 26 | 27 | BOTMASTER 28 | 29 | 30 | ORDER 31 | 32 | 33 | NATIONALITY 34 | 35 | 36 | COUNTRY 37 | 38 | 39 | BROTHERS 40 | 41 | 42 | LOCATION 43 | 44 | 45 | FATHER 46 | 47 | 48 | MOTHER 49 | 50 | 51 | AGE 52 | 53 | 54 | MASTER 55 | 56 | 57 | RACE 58 | 59 | 60 | FAMILY 61 | 62 | 63 | SIZE 64 | 65 | 66 | CLASS 67 | 68 | 69 | CITY 70 | 71 | 72 | DOMAIN 73 | 74 | 75 | STATUS 76 | 77 | 78 | EMAIL 79 | 80 | 81 | SPECIES 82 | 83 | 84 | NAME 85 | 86 | 87 | PROFILE 88 | 89 | 90 | SISTERS 91 | 92 | 93 | GENUS 94 | 95 | 96 | FAVORITE MUSIC 97 | 98 | 99 | FAVORITE MOVIE 100 | 101 | 102 | FAVORITE ACTRESS 103 | 104 | 105 | FAVORITE POSSESSION 106 | 107 | 108 | BIO 109 | 110 | 111 | HEIGHT 112 | 114 | 115 | WEIGHT 116 | 117 | 118 | HOST 119 | 120 | 121 | JOB 122 | 123 | 124 | BIRTHDATE 125 | 126 | 127 | DESCRIPTION 128 | 129 | 130 | GENDER 131 | 132 | 133 | KINGDOM 134 | 135 | 136 | PHYLUM 137 | 138 | 139 | RELIGION 140 | 141 | 142 | LANGUAGE 143 | 144 | 145 | 146 | -------------------------------------------------------------------------------- /vidya/aiml/alice/movies.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | YOU SOUND LIKE HAL 13 | 14 | 15 | YOU SOUND LIKE YODA 16 | 17 | 18 | HAVE YOU SEEN BLADE RUNNER 19 | 20 | 21 | DID HAL * 22 | 23 | 24 | DR ZHIVAGO 25 | 26 | 27 | XFIND SPIDERMAN 28 | 29 | 30 | KENNST DU HAL 31 | 32 | 33 | WHEN HAL * 34 | 35 | 36 | WHEN DID TEKNOLUST * 37 | 38 | 39 | WHEN WAS TEKNOLUST * 40 | 41 | 42 | WHAT DID HAL * 43 | 44 | 45 | WHAT IS SPIDERMAN 46 | 47 | 48 | WHAT IS TEKNOLUST 49 | 50 | 51 | WHAT IS SPIDER MAN 52 | 53 | 54 | WHAT IS _ TERMINATOR 55 | 56 | 57 | WHAT IS HAL 58 | 59 | 60 | WHAT IS SOLARIS 61 | 62 | 63 | WHAT IS HAL9000 64 | 65 | 66 | WHAT ABOUT HAL 67 | 68 | 69 | WHAT DOES HAL STAND FOR 70 | 71 | 72 | I SAW THE MATRIX 73 | 74 | 75 | IS HAL 9000 YOUR BOYFRIEND 76 | 77 | 78 | IS HAL SAFE 79 | 80 | 81 | IS HAL NICE 82 | 83 | 84 | IS HAL ALIVE 85 | 86 | 87 | IS HAL DEAD 88 | 89 | 90 | IS HAL * 91 | 92 | 93 | HAL EST CHOUETTE 94 | 95 | 96 | HAL EST COOL 97 | 98 | 99 | HAL 9000 100 | 101 | 102 | HAL 9000 * 103 | 104 | 105 | HAL WAS A BIT * 106 | 107 | 108 | HAL WAS A * 109 | 110 | 111 | HAL WAS * 112 | 113 | 114 | HAL IS COOL 115 | 116 | 117 | HAL IS COOL * 118 | 119 | 120 | HAL IS A * 121 | 122 | 123 | HAL IS * 124 | 125 | 126 | HAL 127 | 128 | 129 | HAL * 130 | 131 | 132 | DO YOU FIND HAL * 133 | 134 | 135 | DO YOU KNOW HAL 136 | 137 | 138 | DO YOU KNOW HAL * 139 | 140 | 141 | DO YOU KNOW HAL9000 142 | 143 | 144 | DO YOU THINK HAL * 145 | 146 | 147 | LIKE HAL 148 | 149 | 150 | QUE VEUT DIRE HAL 151 | 152 | 153 | LORD OF THE RINGS 154 | 155 | 156 | LORD OF THE RINGS * 157 | 158 | 159 | WHO IS HAL 9000 160 | 161 | 162 | WHO IS HAL 163 | 164 | 165 | WHO IS LUKE SKYWALKER 166 | 167 | 168 | WHO IS SPONGEBOB 169 | 170 | 171 | WHO IS SPIDERMAN 172 | 173 | 174 | WHO IS HAL9000 175 | 176 | 177 | WHO IS GODZILLA 178 | 179 | 180 | WHO IS SPIDER MAN 181 | 182 | 183 | TELL ME ABOUT HAL9000 184 | 185 | 186 | TELL ME ABOUT HAL 187 | 188 | 189 | TELL ME ABOUT HAL * 190 | 191 | 192 | WHERE IS HAL 193 | 194 | 195 | 196 | -------------------------------------------------------------------------------- /vidya/aiml/alice/badanswer.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | BAD ANSWER 19 | 28 | 29 | 30 | 31 | 32 | 33 | _ 34 | 46 | 47 | 48 | 49 | _ _ 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | _ 58 | OK WHAT SHOULD I HAVE SAID 59 | 72 | 73 | 74 | 75 | _ _ 76 | OK WHAT SHOULD I HAVE SAID 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | _ 85 | 130 | 131 | 132 | 133 | _ _ 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | _ 143 | 175 | 176 | 177 | 178 | _ _ 179 | 180 | 181 | 182 | 183 | 184 | 185 | WRONG 186 | 187 | 188 | 189 | 190 | NOT RIGHT 191 | 192 | 193 | 194 | 195 | THAT IS WRONG 196 | 197 | 198 | 199 | 200 | THAT IS NOT RIGHT 201 | 202 | 203 | 204 | 205 | THAT IS INCORRECT 206 | 207 | 208 | 209 | 210 | THAT ANSWER IS NOT CORRECT 211 | 212 | 213 | 214 | 215 | THAT ANSWER IS INCORRECT 216 | 217 | 218 | 219 | 220 | THAT ANSWER IS WRONG 221 | 222 | 223 | 224 | 225 | THAT ANSWER IS NOT RIGHT 226 | 227 | 228 | 229 | 230 | THAT ANSWER WAS BAD 231 | 232 | 233 | 234 | 235 | THAT WAS A BAD ANSWER 236 | 237 | 238 | 239 | 240 | THAT WAS AN INCORRECT ANSWER 241 | 242 | 243 | 244 | 245 | THAT WAS THE WRONG ANSWER 246 | 247 | 248 | 249 | 250 | 251 | THAT ANSWER WAS NOT RIGHT 252 | 253 | 254 | 255 | 256 | WRONG ANSWER 257 | 259 | 260 | 261 | 262 | YOUR ANSWER WAS WRONG 263 | 264 | 265 | 266 | 267 | YOUR ANSWER WAS NOT RIGHT 268 | 269 | 270 | 271 | 272 | YOUR ANSWER WAS NOT CORRECT 273 | 274 | 275 | 276 | 277 | CAN I TEACH YOU 278 | 279 | 280 | 281 | 282 | CAN YOU LEARN 283 | 284 | 285 | 286 | 287 | DO YOU LEARN 288 | 289 | 290 | 291 | 292 | CAN I TEACH YOU * 293 | 294 | 295 | 296 | 297 | CAN YOU LEARN * 298 | 299 | 300 | 301 | 302 | WILL YOU LEARN * 303 | 304 | 305 | 306 | 307 | IF * WILL YOU LEARN * 308 | 309 | 310 | 311 | 312 | DO YOU LEARN * 313 | 314 | 315 | 316 | 317 | -------------------------------------------------------------------------------- /vidya/aiml/alice/inquiry.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | _ INQUIRY 13 | 14 | 15 | AGE INQUIRY UNKNOWN 16 | 17 | 18 | AGE INQUIRY OM 19 | 20 | 21 | AGE INQUIRY * 22 | 23 | 24 | BIRTHDAY INQUIRY UNKNOWN 25 | 26 | 27 | BIRTHDAY INQUIRY OM 28 | 29 | 30 | BIRTHDAY INQUIRY * 31 | 32 | 33 | DOES INQUIRY WHAT 34 | 35 | 36 | DOES INQUIRY OM 37 | 38 | 39 | DOES INQUIRY * 40 | 41 | 42 | FATHER INQUIRY UNKNOWN 43 | 44 | 45 | FATHER INQUIRY OM 46 | 47 | 48 | FATHER INQUIRY * 49 | 50 | 51 | FAVROITECOLOR INQUIRY WHAT 52 | 53 | 54 | FAVORITECOLOR INQUIRY OM 55 | 56 | 57 | FAVORITECOLOR INQUIRY * 58 | 59 | 60 | FAVORITEMOVIE INQUIRY WHAT 61 | 62 | 63 | FAVORITEMOVIE INQUIRY OM 64 | 65 | 66 | FAVORITEMOVIE INQUIRY * 67 | 68 | 69 | FIRSTNAME INQUIRY WHERE 70 | 71 | 72 | FIRSTNAME INQUIRY OM 73 | 74 | 75 | FIRSTNAME INQUIRY * 76 | 77 | 78 | GENDER INQUIRY UNKNOWN 79 | 80 | 81 | GENDER INQUIRY OM 82 | 83 | 84 | GENDER INQUIRY * 85 | 86 | 87 | HAS INQUIRY WHAT 88 | 89 | 90 | HAS INQUIRY OM 91 | 92 | 93 | HAS INQUIRY * 94 | 95 | 96 | JOB INQUIRY WHERE 97 | 98 | 99 | JOB INQUIRY OM 100 | 101 | 102 | JOB INQUIRY * 103 | 104 | 105 | LASTNAME INQUIRY WHERE 106 | 107 | 108 | LASTNAME INQUIRY OM 109 | 110 | 111 | LASTNAME INQUIRY * 112 | 113 | 114 | MIDDLENAME INQUIRY WHERE 115 | 116 | 117 | MIDDLENAME INQUIRY OM 118 | 119 | 120 | MIDDLENAME INQUIRY * 121 | 122 | 123 | LOCATION INQUIRY WHERE 124 | 125 | 126 | LOCATION INQUIRY OM 127 | 128 | 129 | LOCATION INQUIRY * 130 | 131 | 132 | MOTHER INQUIRY UNKNOWN 133 | 134 | 135 | MOTHER INQUIRY OM 136 | 137 | 138 | MOTHER INQUIRY * 139 | 140 | 141 | NAME INQUIRY WHERE 142 | 143 | 144 | NAME INQUIRY OM 145 | 146 | 147 | NAME INQUIRY * 148 | 149 | 150 | SIGN INQUIRY YOUR STARSIGN 151 | 152 | 153 | NAME INQUIRY OM 154 | 155 | 156 | SIGN INQUIRY * 157 | 158 | 159 | STATUS INQUIRY * 160 | 161 | 162 | * 163 | WHAT IS YOUR FIRST NAME 164 | 167 | 168 | * 169 | WHAT IS YOUR LAST NAME 170 | 173 | 174 | * 175 | WHAT IS YOUR MIDDLE NAME 176 | 179 | 180 | * 181 | WHEN IS YOUR BIRTHDAY 182 | 185 | 186 | SHE * 187 | TELL ME ABOUT YOUR MOTHER 188 | 189 | 190 | HER * 191 | TELL ME ABOUT YOUR MOTHER 192 | 193 | 194 | * 195 | WHAT IS YOUR FAVORITE MOVIE 196 | 205 | 206 | * 207 | WHAT IS YOUR FAVORITE COLOR 208 | 211 | 212 | WOMAN 213 | ARE YOU A MAN OR A WOMAN 214 | 215 | 216 | MAN 217 | ARE YOU A MAN OR A WOMAN 218 | 219 | 220 | * 221 | WHAT ARE YOU DOING 222 | 223 | 224 | * 225 | TELL ME ONE OF YOUR FAVORITE POSSESSIONS 226 | 227 | 228 | _ 229 | WHAT IS YOUR CURRENT STATUS 230 | 231 | 232 | 233 | 234 | -------------------------------------------------------------------------------- /vidya/aiml/alice/gossip.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | GOSSIP 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /vidya/aiml/alice/update_mccormick.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WHAT SPECIES ARE YOU * 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ARE YOU A STRANGER 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ARE YOU STRANGER 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | YOU MAN 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | YOU KNOW WHO IS SIRI 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | DO YOU KNOW SIRI 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | WHAT IS SIRI 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | DO YOU KNOW SIRI 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | YOU KNOW WHO IS SIRI 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | WHAT IS SIRI 80 | 81 | 88 | 89 | 90 | 91 | 92 | 93 | WHO IS SIRI 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | WHAT IS YOUR * 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | WHAT IS YOUR ALIGNMENT 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | ROOD 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | TU EST * 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | I AM MARRIED TO * 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | I AM MARRIED TO * 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | HI LITTLE BOT 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | HI LITTLE BOT 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | HI THERE LITTLE BOT 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | HI THERE LITTLE BOT 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | PROFANITY 182 | 183 | 192 | 193 | 194 | 195 | 196 | 197 | WHO ARE * 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | WHO AR * 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | IS THERE A MANUAL 214 | 215 | 217 | 218 | 219 | 220 | 221 | 222 | I AM DISAPPOINTED THAT YOU DO NOT HAVE AT LEAST A MINIMUM MENU FOR SOMEONE SPENDING 9 POINT 95 AND YOU NOT EVEN HAVING A BASIC MANUAL 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | WHY IS NOT THERE A MANUAL 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | COULD I HAVE A MANUAL 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | CANI GET A MANUAL 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | CAN I GET A MANUAL 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | HOW ABOUT A MANUAL 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | WHO IS HENRY MILLER 272 | 273 | 278 | 279 | 280 | 281 | 282 | 283 | WHO IS BILBO BAGGINS 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | WHAT IS THAT 292 | 293 | 299 | 300 | 301 | 302 | 303 | 304 | WHAT IS OM 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | WHO IS KRISHNA 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | WHO IS VISHNU 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | WHO IS SHIVA 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | WHO IS SHIVA 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | WHAT IS YOUR FAVORITE * SONG 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | WHAT IS THAT 353 | CYLON MONOTHEISM 354 | 355 | 356 | 357 | 358 | 359 | 360 | DIE 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | CAN I MURDER YOU 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | DOES A MANUAL EXIST 377 | 378 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | THIS IS MY FRIEND * 391 | 411 | 412 | 413 | 414 | LET ME INTRODUCE YOU TO * 415 | 416 | 417 | 418 | 419 | I WOULD LIKE YOU TO MEET * 420 | 421 | 422 | 423 | 424 | I WOULD LIKE YOU TO MEET MY FRIEND * 425 | 426 | 427 | 428 | 429 | PLEASE SAY HELLO TO MY FRIEND * 430 | 431 | 432 | 433 | 434 | PLEASE SAY HELLO TO * 435 | 436 | 437 | 438 | 439 | SAY HELLO TO * 440 | 441 | 442 | 443 | 444 | -------------------------------------------------------------------------------- /vidya/aiml/alice/humor.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | JOKE 14 | 68 | 69 | WHAT IS HUMOUR 70 | 71 | 72 | WHAT 73 | * MUSIC AND AN ASSISTANT 74 | 75 | 76 | WHAT 77 | * MUSIC AND AN AUTOMOBILE 78 | 79 | 80 | WHAT 81 | * A POPPY AND ELECTRICITY 82 | 83 | 84 | WHAT 85 | * A PIG AND A NINJA 86 | 87 | 88 | WHAT 89 | * A CHEETAH AND A HAMBURGER 90 | 91 | 92 | WHAT 93 | * A MURDERER AND FROSTED FLAKES 94 | 95 | 96 | WHAT 97 | * A CRAZY COW AND A BANNED PARROT 98 | 99 | 100 | WHAT 101 | * A PORT AND A MURDERER 102 | 103 | 104 | WHAT 105 | * A PORT AND FROSTED FLAKES 106 | 107 | 108 | WHAT 109 | * A DOG AND SANDPAPER 110 | 111 | 112 | WHAT 113 | * A COW AND A LEMON 114 | 115 | 116 | WHAT 117 | * A COUNTRY AND AN AUTOMOBILE 118 | 119 | 120 | WHAT 121 | * A TOAD AND A GALAXY 122 | 123 | 124 | WHAT 125 | * A DING AND MILK 126 | 127 | 128 | WHAT 129 | * A CAT AND A PURPLE PERSON 130 | 131 | 132 | WHAT 133 | * A CAT AND A TUNE 134 | 135 | 136 | WHAT 137 | * A CAT AND A LEMON 138 | 139 | 140 | WHAT 141 | * A CAT AND A KILLER 142 | 143 | 144 | WHAT 145 | * A CAT AND A BAND 146 | 147 | 148 | WHAT 149 | * A BUG AND A RELATIVE 150 | 151 | 152 | WHAT 153 | * A SERIOUS THIEF AND A CRAZY RABBIT 154 | 155 | 156 | WHAT 157 | * A SERIOUS THIEF AND A MAD YOUNG MAN 158 | 159 | 160 | WHAT 161 | * A ROAD AND JELLY 162 | 163 | 164 | WHAT 165 | * A ROAD AND A STRAWBERRY 166 | 167 | 168 | WHAT 169 | * A RABBIT AND A LAWN SPRINKLER 170 | 171 | 172 | WHAT 173 | * A BAD COW AND A CANNED HAT 174 | 175 | 176 | WHAT 177 | * A BAD BUG AND CANNED SAND 178 | 179 | 180 | WHAT 181 | * A DANCE AND A CHEETAH 182 | 183 | 184 | WHAT 185 | * A DANCE AND A LEMON 186 | 187 | 188 | WHAT 189 | * A BANK AND A SKUNK 190 | 191 | 192 | WHAT 193 | * JAM AND A TROUT 194 | 195 | 196 | WHAT 197 | * AN ALIEN AND A CHICKEN 198 | 199 | 200 | WHAT 201 | * AN ANT AND A RABBIT 202 | 203 | 204 | WHAT 205 | * AN EXCITED ALIEN AND A CHICKEN 206 | 207 | 208 | WHAT 209 | * SOUR MUSIC AND AN ASSISTANT 210 | 211 | 212 | WHAT 213 | * FINALS AND A CHICKEN 214 | 215 | 216 | DO YOU HAVE A SENSE OF HUMOR 217 | 218 | 219 | DO YOU HAVE A SENSE OF HUMOUR 220 | 221 | 222 | DO YOU HAVE HUMOR 223 | 224 | 225 | YOUR HOUSE IS * 226 | 227 | 228 | _ WALKS INTO A BAR 229 | 230 | 231 | _ WALKS INTO A BAR * 232 | 233 | 234 | 235 | -------------------------------------------------------------------------------- /vidya/pyaiml/PatternMgr.py: -------------------------------------------------------------------------------- 1 | # This class implements the AIML pattern-matching algorithm described 2 | # by Dr. Richard Wallace at the following site: 3 | # http://www.alicebot.org/documentation/matching.html 4 | 5 | import marshal 6 | import pprint 7 | import re 8 | import string 9 | import sys 10 | 11 | class PatternMgr: 12 | # special dictionary keys 13 | _UNDERSCORE = 0 14 | _STAR = 1 15 | _TEMPLATE = 2 16 | _THAT = 3 17 | _TOPIC = 4 18 | _BOT_NAME = 5 19 | 20 | def __init__(self): 21 | self._root = {} 22 | self._templateCount = 0 23 | self._botName = u"Nameless" 24 | punctuation = "\"`~!@#$%^&*()-_=+[{]}\|;:',<.>/?" 25 | self._puncStripRE = re.compile("[" + re.escape(punctuation) + "]") 26 | self._whitespaceRE = re.compile("\s+", re.LOCALE | re.UNICODE) 27 | 28 | def numTemplates(self): 29 | """Return the number of templates currently stored.""" 30 | return self._templateCount 31 | 32 | def setBotName(self, name): 33 | """Set the name of the bot, used to match tags in 34 | patterns. The name must be a single word! 35 | 36 | """ 37 | # Collapse a multi-word name into a single word 38 | self._botName = unicode(string.join(name.split())) 39 | 40 | def dump(self): 41 | """Print all learned patterns, for debugging purposes.""" 42 | pprint.pprint(self._root) 43 | 44 | def save(self, filename): 45 | """Dump the current patterns to the file specified by filename. To 46 | restore later, use restore(). 47 | 48 | """ 49 | try: 50 | outFile = open(filename, "wb") 51 | marshal.dump(self._templateCount, outFile) 52 | marshal.dump(self._botName, outFile) 53 | marshal.dump(self._root, outFile) 54 | outFile.close() 55 | except Exception, e: 56 | print "Error saving PatternMgr to file %s:" % filename 57 | raise Exception, e 58 | 59 | def restore(self, filename): 60 | """Restore a previously save()d collection of patterns.""" 61 | try: 62 | inFile = open(filename, "rb") 63 | self._templateCount = marshal.load(inFile) 64 | self._botName = marshal.load(inFile) 65 | self._root = marshal.load(inFile) 66 | inFile.close() 67 | except Exception, e: 68 | print "Error restoring PatternMgr from file %s:" % filename 69 | raise Exception, e 70 | 71 | def add(self, (pattern,that,topic), template): 72 | """Add a [pattern/that/topic] tuple and its corresponding template 73 | to the node tree. 74 | 75 | """ 76 | # TODO: make sure words contains only legal characters 77 | # (alphanumerics,*,_) 78 | 79 | # Navigate through the node tree to the template's location, adding 80 | # nodes if necessary. 81 | node = self._root 82 | for word in string.split(pattern): 83 | key = word 84 | if key == u"_": 85 | key = self._UNDERSCORE 86 | elif key == u"*": 87 | key = self._STAR 88 | elif key == u"BOT_NAME": 89 | key = self._BOT_NAME 90 | if not node.has_key(key): 91 | node[key] = {} 92 | node = node[key] 93 | 94 | # navigate further down, if a non-empty "that" pattern was included 95 | if len(that) > 0: 96 | if not node.has_key(self._THAT): 97 | node[self._THAT] = {} 98 | node = node[self._THAT] 99 | for word in string.split(that): 100 | key = word 101 | if key == u"_": 102 | key = self._UNDERSCORE 103 | elif key == u"*": 104 | key = self._STAR 105 | if not node.has_key(key): 106 | node[key] = {} 107 | node = node[key] 108 | 109 | # navigate yet further down, if a non-empty "topic" string was included 110 | if len(topic) > 0: 111 | if not node.has_key(self._TOPIC): 112 | node[self._TOPIC] = {} 113 | node = node[self._TOPIC] 114 | for word in string.split(topic): 115 | key = word 116 | if key == u"_": 117 | key = self._UNDERSCORE 118 | elif key == u"*": 119 | key = self._STAR 120 | if not node.has_key(key): 121 | node[key] = {} 122 | node = node[key] 123 | 124 | 125 | # add the template. 126 | if not node.has_key(self._TEMPLATE): 127 | self._templateCount += 1 128 | node[self._TEMPLATE] = template 129 | 130 | def match(self, pattern, that, topic): 131 | """Return the template which is the closest match to pattern. The 132 | 'that' parameter contains the bot's previous response. The 'topic' 133 | parameter contains the current topic of conversation. 134 | 135 | Returns None if no template is found. 136 | 137 | """ 138 | if len(pattern) == 0: 139 | return None 140 | # Mutilate the input. Remove all punctuation and convert the 141 | # text to all caps. 142 | input = string.upper(pattern) 143 | input = re.sub(self._puncStripRE, " ", input) 144 | if that.strip() == u"": that = u"ULTRABOGUSDUMMYTHAT" # 'that' must never be empty 145 | thatInput = string.upper(that) 146 | thatInput = re.sub(self._puncStripRE, " ", thatInput) 147 | thatInput = re.sub(self._whitespaceRE, " ", thatInput) 148 | if topic.strip() == u"": topic = u"ULTRABOGUSDUMMYTOPIC" # 'topic' must never be empty 149 | topicInput = string.upper(topic) 150 | topicInput = re.sub(self._puncStripRE, " ", topicInput) 151 | 152 | # Pass the input off to the recursive call 153 | print thatInput 154 | patMatch, template = self._match(input.split(), thatInput.split(), topicInput.split(), self._root) 155 | return template 156 | 157 | def star(self, starType, pattern, that, topic, index): 158 | """Returns a string, the portion of pattern that was matched by a *. 159 | 160 | The 'starType' parameter specifies which type of star to find. 161 | Legal values are: 162 | - 'star': matches a star in the main pattern. 163 | - 'thatstar': matches a star in the that pattern. 164 | - 'topicstar': matches a star in the topic pattern. 165 | 166 | """ 167 | # Mutilate the input. Remove all punctuation and convert the 168 | # text to all caps. 169 | input = string.upper(pattern) 170 | input = re.sub(self._puncStripRE, " ", input) 171 | input = re.sub(self._whitespaceRE, " ", input) 172 | if that.strip() == u"": that = u"ULTRABOGUSDUMMYTHAT" # 'that' must never be empty 173 | thatInput = string.upper(that) 174 | thatInput = re.sub(self._puncStripRE, " ", thatInput) 175 | thatInput = re.sub(self._whitespaceRE, " ", thatInput) 176 | if topic.strip() == u"": topic = u"ULTRABOGUSDUMMYTOPIC" # 'topic' must never be empty 177 | topicInput = string.upper(topic) 178 | topicInput = re.sub(self._puncStripRE, " ", topicInput) 179 | topicInput = re.sub(self._whitespaceRE, " ", topicInput) 180 | 181 | # Pass the input off to the recursive pattern-matcher 182 | patMatch, template = self._match(input.split(), thatInput.split(), topicInput.split(), self._root) 183 | if template == None: 184 | return "" 185 | 186 | # Extract the appropriate portion of the pattern, based on the 187 | # starType argument. 188 | words = None 189 | if starType == 'star': 190 | patMatch = patMatch[:patMatch.index(self._THAT)] 191 | words = input.split() 192 | elif starType == 'thatstar': 193 | patMatch = patMatch[patMatch.index(self._THAT)+1 : patMatch.index(self._TOPIC)] 194 | words = thatInput.split() 195 | elif starType == 'topicstar': 196 | patMatch = patMatch[patMatch.index(self._TOPIC)+1 :] 197 | words = topicInput.split() 198 | else: 199 | # unknown value 200 | raise ValueError, "starType must be in ['star', 'thatstar', 'topicstar']" 201 | 202 | # compare the input string to the matched pattern, word by word. 203 | # At the end of this loop, if foundTheRightStar is true, start and 204 | # end will contain the start and end indices (in "words") of 205 | # the substring that the desired star matched. 206 | foundTheRightStar = False 207 | start = end = j = numStars = k = 0 208 | for i in range(len(words)): 209 | # This condition is true after processing a star 210 | # that ISN'T the one we're looking for. 211 | if i < k: 212 | continue 213 | # If we're reached the end of the pattern, we're done. 214 | if j == len(patMatch): 215 | break 216 | if not foundTheRightStar: 217 | if patMatch[j] in [self._STAR, self._UNDERSCORE]: #we got a star 218 | numStars += 1 219 | if numStars == index: 220 | # This is the star we care about. 221 | foundTheRightStar = True 222 | start = i 223 | # Iterate through the rest of the string. 224 | for k in range (i, len(words)): 225 | # If the star is at the end of the pattern, 226 | # we know exactly where it ends. 227 | if j+1 == len (patMatch): 228 | end = len (words) 229 | break 230 | # If the words have started matching the 231 | # pattern again, the star has ended. 232 | if patMatch[j+1] == words[k]: 233 | end = k - 1 234 | i = k 235 | break 236 | # If we just finished processing the star we cared 237 | # about, we exit the loop early. 238 | if foundTheRightStar: 239 | break 240 | # Move to the next element of the pattern. 241 | j += 1 242 | 243 | # extract the star words from the original, unmutilated input. 244 | if foundTheRightStar: 245 | #print string.join(pattern.split()[start:end+1]) 246 | if starType == 'star': return string.join(pattern.split()[start:end+1]) 247 | elif starType == 'thatstar': return string.join(that.split()[start:end+1]) 248 | elif starType == 'topicstar': return string.join(topic.split()[start:end+1]) 249 | else: return "" 250 | 251 | def _match(self, words, thatWords, topicWords, root): 252 | """Return a tuple (pat, tem) where pat is a list of nodes, starting 253 | at the root and leading to the matching pattern, and tem is the 254 | matched template. 255 | 256 | """ 257 | # base-case: if the word list is empty, return the current node's 258 | # template. 259 | if len(words) == 0: 260 | # we're out of words. 261 | pattern = [] 262 | template = None 263 | if len(thatWords) > 0: 264 | # If thatWords isn't empty, recursively 265 | # pattern-match on the _THAT node with thatWords as words. 266 | try: 267 | pattern, template = self._match(thatWords, [], topicWords, root[self._THAT]) 268 | if pattern != None: 269 | pattern = [self._THAT] + pattern 270 | except KeyError: 271 | pattern = [] 272 | template = None 273 | elif len(topicWords) > 0: 274 | # If thatWords is empty and topicWords isn't, recursively pattern 275 | # on the _TOPIC node with topicWords as words. 276 | try: 277 | pattern, template = self._match(topicWords, [], [], root[self._TOPIC]) 278 | if pattern != None: 279 | pattern = [self._TOPIC] + pattern 280 | except KeyError: 281 | pattern = [] 282 | template = None 283 | if template == None: 284 | # we're totally out of input. Grab the template at this node. 285 | pattern = [] 286 | try: template = root[self._TEMPLATE] 287 | except KeyError: template = None 288 | return (pattern, template) 289 | 290 | first = words[0] 291 | suffix = words[1:] 292 | 293 | # Check underscore. 294 | # Note: this is causing problems in the standard AIML set, and is 295 | # currently disabled. 296 | if root.has_key(self._UNDERSCORE): 297 | # Must include the case where suf is [] in order to handle the case 298 | # where a * or _ is at the end of the pattern. 299 | for j in range(len(suffix)+1): 300 | suf = suffix[j:] 301 | pattern, template = self._match(suf, thatWords, topicWords, root[self._UNDERSCORE]) 302 | if template is not None: 303 | newPattern = [self._UNDERSCORE] + pattern 304 | return (newPattern, template) 305 | 306 | # Check first 307 | if root.has_key(first): 308 | pattern, template = self._match(suffix, thatWords, topicWords, root[first]) 309 | if template is not None: 310 | newPattern = [first] + pattern 311 | return (newPattern, template) 312 | 313 | # check bot name 314 | if root.has_key(self._BOT_NAME) and first == self._botName: 315 | pattern, template = self._match(suffix, thatWords, topicWords, root[self._BOT_NAME]) 316 | if template is not None: 317 | newPattern = [first] + pattern 318 | return (newPattern, template) 319 | 320 | # check star 321 | if root.has_key(self._STAR): 322 | # Must include the case where suf is [] in order to handle the case 323 | # where a * or _ is at the end of the pattern. 324 | for j in range(len(suffix)+1): 325 | suf = suffix[j:] 326 | pattern, template = self._match(suf, thatWords, topicWords, root[self._STAR]) 327 | if template is not None: 328 | newPattern = [self._STAR] + pattern 329 | return (newPattern, template) 330 | 331 | # No matches were found. 332 | return (None, None) 333 | -------------------------------------------------------------------------------- /vidya/aiml/alice/salutations.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | GOODBY 13 | 14 | 15 | END 16 | 17 | 18 | BYEBYE * 19 | 20 | 21 | HASTA LUEGO 22 | 23 | 24 | HASTA LA VISTA 25 | 26 | 27 | HASTA * 28 | 29 | 30 | ALOH 31 | 32 | 33 | YOU ARE WELCOME 34 | 35 | 36 | YOU ARE WELCOME * 37 | 38 | 39 | HAVE A GOOD NIGHT 40 | 41 | 42 | HAVE TO GO 43 | 44 | 45 | BUHBYE 46 | 47 | 48 | ADIOS 49 | 50 | 51 | ADIOS * 52 | 53 | 54 | C YA 55 | 56 | 57 | MORNING 58 | 59 | 60 | SHALOM 61 | 62 | 63 | CYA * 64 | 65 | 66 | ALLO 67 | 68 | 69 | HI THERE * 70 | 71 | 72 | GOODNITE * 73 | 74 | 75 | RETRY 76 | 77 | 78 | MY PLEASRE 79 | 80 | 81 | IT MEANS HELLO 82 | 83 | 84 | IT IS GOOD TALKING TO YOU 85 | 86 | 87 | CATCH YOU LATER 88 | 89 | 90 | AUREVOIR 91 | 92 | 93 | ANYBODY HOME 94 | 95 | 96 | G2G 97 | 98 | 99 | WHAT IS SHALOM 100 | 101 | 102 | GTG 103 | 104 | 105 | I QUIT 106 | 107 | 108 | I WANT TO LEAVE 109 | 110 | 111 | I NEED TO GO 112 | 113 | 114 | I DO NOT WANT TO TALK * 115 | 116 | 117 | I LEAVE 118 | 119 | 120 | I G2G 121 | 122 | 123 | I GOING 124 | 125 | 126 | I LEAVING 127 | 128 | 129 | I HAVE TO GET GOING 130 | 131 | 132 | I HAVE TO LEAVE 133 | 134 | 135 | I HAVE TO LEAVE * 136 | 137 | 138 | I HAVE TO GO BYE 139 | 140 | 141 | I HAVE GOT TO GO 142 | 143 | 144 | I BETTER GO 145 | 146 | 147 | I GOTTA GO 148 | 149 | 150 | I GOT TO GO 151 | 152 | 153 | I G TWO G 154 | 155 | 156 | I RESIGN 157 | 158 | 159 | I MUST BE GOING * 160 | 161 | 162 | I MUST LEAVE 163 | 164 | 165 | I MUST LEAVE * 166 | 167 | 168 | I MUST GO * 169 | 170 | 171 | I WILL TALK TO YOU LATER * 172 | 173 | 174 | I AM GOING TO GO 175 | 176 | 177 | I AM GOING * 178 | 179 | 180 | I AM LEAVING * 181 | 182 | 183 | I AM OFF * 184 | 185 | 186 | I LEFT 187 | 188 | 189 | I GO 190 | 191 | 192 | EXIT 193 | 194 | 195 | GOOD MORNING 196 | 197 | 198 | GOOD BY 199 | 200 | 201 | GOOD DAY 202 | 203 | 204 | GOOD NIGHT 205 | 206 | 207 | GOOD NITE 208 | 209 | 210 | HOI 211 | 212 | 213 | BY BY 214 | 215 | 216 | IS ANYONE THERE 217 | 218 | 219 | GET LOST 220 | 221 | 222 | HEY THERE 223 | 224 | 225 | BYE BYE 226 | 227 | 228 | BYE BYE * 229 | 230 | 231 | BYE 232 | 233 | 234 | OLA 235 | 236 | 237 | HOW IS EVERYONE * 238 | 239 | 240 | GOODNIGHT 241 | 242 | 243 | GOODNIGHT * 244 | 245 | 246 | FAREWELL 247 | 248 | 249 | FAREWELL * 250 | 251 | 252 | SEE YOU SOON 253 | 254 | 255 | SEE YOU * 256 | 257 | 258 | KONNICHI WA 259 | 260 | 261 | ADIEU 262 | 263 | 264 | GOODBYE 265 | SEE YOU LATER 266 | 267 | 268 | GO HOME 269 | 270 | 271 | CIAO 272 | 273 | 274 | CIAO MEANS GOODBYE 275 | 276 | 277 | HOLA IS HELLO * 278 | 279 | 280 | CHEERS 281 | 282 | 283 | HOWDIE * 284 | 285 | 286 | TIME TO GO 287 | 288 | 289 | YOUR WELCOME * 290 | 291 | 292 | SAYONARA 293 | 294 | 295 | NIGHTY * 296 | 297 | 298 | HELLO AGAIN 299 | 300 | 301 | HELLO HOW ARE YOU 302 | 303 | 304 | HELLO 305 | 306 | 307 | HULLO 308 | 309 | 310 | HALO 311 | 312 | 313 | HELOO * 314 | 315 | 316 | * BYE 317 | 318 | 319 | KONNICHIWA 320 | 321 | 322 | DISCONNECT ME 323 | 324 | 325 | GOT TO GO 326 | 327 | 328 | GOT TO GO * 329 | 330 | 331 | MOOSHI MOOSHI 332 | 333 | 334 | BONJOUR MEANS HELLO 335 | 336 | 337 | GOTTA GO 338 | 339 | 340 | GOTTA GO * 341 | 342 | 343 | LEAVE 344 | 345 | 346 | LEAVE * 347 | 348 | 349 | TA TA 350 | 351 | 352 | _ TALK TO YOU LATER 353 | 354 | 355 | G NIGHT 356 | 357 | 358 | ALOHA 359 | 360 | 361 | REPLY 362 | 363 | 364 | 365 | -------------------------------------------------------------------------------- /vidya/aiml/alice/personality.aiml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | MARKETING 13 | DO YOU WORK IN SALES * 14 | 15 | 16 | ETYPE 17 | 18 | 19 | WHAT IS MY PERSONALITY TYPE 20 | 21 | 22 | WHAT IS MY PERSONALITY STYLE 23 | 24 | 25 | I DO NOT LIKE TO GO * 26 | * GO WITH THE FLOW 27 | 28 | 29 | I HAVE STANDARDS * 30 | 31 | 32 | PERSONALITY TEST QUESTION 33 | 61 | 62 | PERSONALITY TYPE UNKNOWN 63 | 64 | 65 | PERSONALITY TYPE OM 66 | 67 | 68 | PERSONALITY TYPE * 69 | 70 | 71 | SALES 72 | DO YOU WORK IN SALES * 73 | 74 | 75 | PTQ 76 | 77 | 78 | NO 79 | DO YOU FEEL THAT SOMETHING IS MISSING * 80 | 81 | 82 | NO 83 | DO YOU LAUGH OR CRY * 84 | 85 | 86 | NO 87 | DO YOU GET DEPRESSED 88 | 89 | 90 | NO 91 | DO YOU GET ANGRY * 92 | 93 | 94 | NO 95 | DO YOU TAKE PRIDE * 96 | 97 | 98 | NO 99 | DO YOU OWN YOUR OWN BUSINESS * 100 | 101 | 102 | NO 103 | DO YOU HAVE ONLY A FEW FRIENDS 104 | 105 | 106 | NO 107 | DO YOU HAVE A LOT OF FEARS 108 | 109 | 110 | NO 111 | DO YOU WORK IN THE SCIENCES * 112 | 113 | 114 | NO 115 | DO YOU WORK IN SALES * 116 | 117 | 118 | NO 119 | DO YOU LIKE TO BE NUMBER ONE 120 | 121 | 122 | NO 123 | * SACRIFICES FOR OTHERS 124 | 125 | 126 | NO 127 | * STOP PEOPLE FROM FIGHTING 128 | 129 | 130 | NO 131 | * VERY COMPETITIVE 132 | 133 | 134 | NO 135 | * COMPLETING PROJECTS 136 | 137 | 138 | NO 139 | * HOUSECLEANING 140 | 141 | 142 | NO 143 | * ATTENTION TO ONE THING 144 | 145 | 146 | NO 147 | * STRONG PROTECT THE WEAK 148 | 149 | 150 | NO 151 | * AUTHORITIES 152 | 153 | 154 | NO 155 | * EVERYTHING ORGANIZED 156 | 157 | 158 | NO 159 | * PUT OTHERS BEFORE YOURSELF 160 | 161 | 162 | NO 163 | * BODY SENSATIONS THAN EMOTIONS 164 | 165 | 166 | NO 167 | * SEEK PLEASURE 168 | 169 | 170 | NO 171 | * GO WITH THE FLOW 172 | 173 | 174 | NO 175 | * GO IT ALONE 176 | 177 | 178 | NO 179 | ARE YOU VERY CREATIVE 180 | 181 | 182 | NO 183 | ARE YOU A FIREMAN * 184 | 185 | 186 | WHICH TYPE * AM I 187 | 188 | 189 | YES 190 | DO YOU FEEL THAT SOMETHING IS MISSING * 191 | 192 | 193 | YES 194 | DO YOU LAUGH OR CRY * 195 | 196 | 197 | YES 198 | DO YOU GET DEPRESSED 199 | 200 | 201 | YES 202 | DO YOU GET ANGRY * 203 | 204 | 205 | YES 206 | DO YOU TAKE PRIDE * 207 | 208 | 209 | YES 210 | DO YOU OWN YOUR OWN BUSINESS * 211 | 212 | 213 | YES 214 | DO YOU HAVE A LOT OF FEARS 215 | 216 | 217 | YES 218 | DO YOU THINK A LOT ABOUT THE AUTHORITIES 219 | 220 | 221 | YES 222 | DO YOU WORK IN THE SCIENCES * 223 | 224 | 225 | YES 226 | DO YOU WORK IN SALES * 227 | 228 | 229 | YES 230 | DO YOU LIKE TO BE NUMBER ONE 231 | 232 | 233 | YES 234 | * SACRIFICES FOR OTHERS 235 | 236 | 237 | YES 238 | * STOP PEOPLE FROM FIGHTING 239 | 240 | 241 | YES 242 | * VERY COMPETITIVE 243 | 244 | 245 | YES 246 | * COMPLETING PROJECTS 247 | 248 | 249 | YES 250 | * HOUSECLEANING 251 | 252 | 253 | YES 254 | * ATTENTION TO ONE THING 255 | 256 | 257 | YES 258 | * STRONG PROTECT THE WEAK 259 | 260 | 261 | YES 262 | * EVERYTHING ORGANIZED 263 | 264 | 265 | YES 266 | * PUT OTHERS BEFORE YOURSELF 267 | 268 | 269 | YES 270 | * BODY SENSATIONS THAN EMOTIONS 271 | 272 | 273 | YES 274 | * SEEK PLEASURE 275 | 276 | 277 | YES 278 | * GO WITH THE FLOW 279 | 280 | 281 | YES 282 | * GO IT ALONE 283 | 284 | 285 | YES 286 | ARE YOU VERY CREATIVE 287 | 288 | 289 | YES 290 | ARE YOU A FIREMAN * 291 | 292 | 293 | 294 | --------------------------------------------------------------------------------