-
Notifications
You must be signed in to change notification settings - Fork 135
Tutorial Conditions
Keith Sterling edited this page Nov 2, 2017
·
21 revisions
Within AIML version 2.0 there exists 3 distinct types of conditions an AIMl developer can use to control/alter the flow and create loops within their grammar template processing.
- Block Conditions
- Single Predicate Condition
- Multi-predicate Condition
<category>
<pattern>TYPE1 VARIANT2</pattern>
<template>
<think><set name="var1">value2</set></think>
<condition name="var1"><value>value1</value>X</condition>
<condition name="var1"><value>value2</value>Y</condition>
<condition name="var1"><value>value3</value>Z</condition>
</template>
</category>
<category>
<pattern>TYPE1 VARIANT3</pattern>
<template>
<think><set name="var1">value2</set></think>
<condition value="value1"><name>var1</name>X</condition>
<condition value="value2"><name>var1</name>Y</condition>
<condition value="value3"><name>var1</name>Z</condition>
</template>
</category>
<category>
<pattern>TYPE1 VARIANT4</pattern>
<template>
<think><set name="var1">value2</set></think>
<condition><name>var1</name><value>value1</value>X</condition>
<condition><name>var1</name><value>value2</value>Y</condition>
<condition><name>var1</name><value>value3</value>Z</condition>
</template>
</category>
<category>
<pattern>TYPE1 VARIANT1 NO MATCH</pattern>
<template>
<think><set name="var1">XXX</set></think>
<condition name="var1" value="value1">X</condition>
<condition name="var1" value="value2">Y</condition>
<condition name="var1" value="value3">Z</condition>
</template>
</category>
Loading, please wait...
No bot root argument set, defaulting to [.]
Y-Bot version 0.0.1, initiated March 14, 2017
Hi, how can I help you today?
>>>
For more information on this type of condition see Block
<category>
<pattern>TYPE2 VARIANT1 NO DEFAULT</pattern>
<template>
<think><set name="var1">value2</set></think>
<condition name="var1">
<li value="value1">X</li>
<li value="value2">Y</li>
<li value="value3">Z</li>
</condition>
</template>
</category>
<category>
<pattern>TYPE2 VARIANT1 WITH DEFAULT</pattern>
<template>
<think><set name="var1">XXX</set></think>
<condition name="var1">
<li value="value1">X</li>
<li value="value2">Y</li>
<li value="value3">Z</li>
<li>DEF</li>
</condition>
</template>
</category>
<category>
<pattern>TYPE2 VARIANT2 NO DEFAULT</pattern>
<template>
<think><set name="var1">value2</set></think>
<condition name="var1">
<li> <value>value1</value>X</li>
<li> <value>value2</value>Y</li>
<li> <value>value3</value>Z</li>
</condition>
</template>
</category>
<category>
<pattern>TYPE2 VARIANT2 NO MATCH</pattern>
<template>
<think><set name="var1">XXX</set></think>
<condition name="var1">
<li> <value>value1</value>X</li>
<li> <value>value2</value>Y</li>
<li> <value>value3</value>Z</li>
</condition>
</template>
</category>
Loading, please wait...
No bot root argument set, defaulting to [.]
Y-Bot version 0.0.1, initiated March 14, 2017
Hi, how can I help you today?
>>>
For more information on this type of condition see Single Predicate
<category>
<pattern>TYPE3 VARIANT1 NO DEFAULT</pattern>
<template>
<think><set name="var1">value2</set></think>
<condition>
<li name='var1' value="value2">A</li>
<li value="value2"><name>var2</name>B</li>
<li name="var3"><value>value3</value>C</li>
<li><name>var4</name><value>value4</value>D</li>
</condition>
</template>
</category>
<category>
<pattern>TYPE3 VARIANT1 WITH DEFAULT</pattern>
<template>
<think><set name="var1">XXX</set></think>
<condition>
<li name='var1' value="value2">A</li>
<li value="value2"><name>var2</name>B</li>
<li name="var3"><value>value3</value>C</li>
<li><name>var4</name><value>value4</value>D</li>
<li>DEF</li>
</condition>
</template>
</category>
<category>
<pattern>TYPE3 VARIANT1 NO MATCH</pattern>
<template>
<think><set name="var1">XXX</set></think>
<condition>
<li name='var1' value="value2">A</li>
<li value="value2"><name>var2</name>B</li>
<li name="var3"><value>value3</value>C</li>
<li><name>var4</name><value>value4</value>D</li>
</condition>
</template>
</category>
Loading, please wait...
No bot root argument set, defaulting to [.]
Y-Bot version 0.0.1, initiated March 14, 2017
Hi, how can I help you today?
>>>
For more information on this type of condition see Multi Predicate
Default value
<aiml>
<category>
<pattern>TYPE2 LOOP</pattern>
<template>
<think><set name="var1">value2</set></think>
<condition name="var1">
<li value="value1">X</li>
<li value="value2">Y <think><set name="var1">value3</set></think><loop /></li>
<li value="value3">Z</li>
</condition>
</template>
</category>
<category>
<pattern>TYPE3 LOOP</pattern>
<template>
<think><set name="var2">value2</set></think>
<condition>
<li name='var1' value="value1">A</li>
<li value="value2"><name>var2</name>B<think><set name="var2">value3</set><set name="var4">value4</set></think><loop /></li>
<li name="var3"><value>value3</value>C</li>
<li><name>var4</name><value>value4</value>D</li>
</condition>
</template>
</category>
</aiml>
To see more information on conditional statements, see the wiki page Conditions.
Email: keiffster@gmail.com | Twitter: @keiffster | Facebook: keith.sterling | LinkedIn: keithsterling | My Blog
- Home
- Background
- Guiding Principles
- Reporting an Issue
- Installation
- You And Your Bot
- Bots
- Clients
- Configuration
- AIML
- Sentence Splitting
- Natural Langauge Processing
- Normalization
- Spelling
- Sentiment Analysis
- Translation
- Security
- Hot Reload
- Logging
- Out of Band
- Multi Language
- RDF Support
- Rich Media
- Asynchronous Events
- Triggers
- External Services
- Dynamic Sets, Maps & Vars
- Extensions
- Pre & Post Processors
- Custom Nodes
- The Brain Tree
- Utilities
- Building It Yourself
- Creating Your Own Bot
- Contributing
- Performance Testing
- FAQ
- History
- Website