version
(optional).properties
file. These variables are accessible to all users of the bot.name
(required)default-property
.<br>
element.name
(required)value
attributes. If the value of the predicate referenced in the condition element matches that of any list element's value, that list element will be returned.gender
. In the case that the predicate's value is either 'male'
or 'female'
, one of the first two list elements will be returned. If neither of these conditions is met, then the third list element will be returned.format
(optional)strftime
function. More on this here.denormal.substitution
. If a match is found, the denormalize element and its contents will be replaced by the property's value.denormal.substitution
are used to reverse transformations done by normal.substitution
.normal.subsitution
removes punctuation. We can see this by echoing the part of the input that originally contained some puncutation:gender.substitution
. If a match is found, the gender element and its contents will be replaced by the property's value.gender.substitution
file contains properties whose names and values contain pronouns of opposite genders.name
(required).pdefaults
file. If no default is specified, then the get element will return the value of the property default-get
.default-get
property value ('unknown') in the case that no custom predicate name
has been set. Once the second category has been engaged, the get element returns the custom value of the predicate.default-get
, you can use a condition element to first check whether or not a predicate has been set. By using a wildcard as the list element's value
attribute, we can check for any value of the predicate other than an empty string.botid
, along with the client_name
of whoever has issued the input. botid
is the same as app_id/botname
.<img>
tag.src
(required)format
strftime
function. More on this here.<from>
<to>
<style>
years
, months
, days
, or seconds
..properties
file, in a format that matches the format you intend to be working with.client_name
that was used to create them..aiml
file that you may specify with the property learn-filename
. If the file has not yet been created, it will be created when your bot 'learns' its first category.<condition>
and <random>
. It allows you to attach mulitple responses, each of which is chosen under certain circumstances.value
(optional)number
, which verifies am input word as a number, and the built in map successor
, which maps integers to their successive integers.count
predicate is initialized with the value 0
. If the user input was Count to 0
, then the first list item will be returned (echoing the number found in the input).count
predicate is reset as the successive integer to the one found in the input. The loop element will run the condition again, and will continue to return the second list item until the predicate count matches the value of <star />
..map
file, which attempts to match the map element's contents to one of its own properties, returning the property's value. Maps are data structures that provide key-value pairs.name
(required).map
file to match contents against.state.set
file is called in the pattern to verify that the user's input actually contained a state. If the wildcard contents does exist in the set file, it is then passed in as an input to state2capital.map
. If it matches any of the keys in the map file, then the map element will return as associated value.person.substitutions
file, which transforms pronouns between first and second person. If the contents forms a match with the name of a property in that file, then the person element and its contents will be replaced by the property's value.<star />
. But because the tag descends from the person element, the pronoun 'you' is transformed to 'me'.index
Specifies the historical index of the user's input to recall. index='0'
refers to the current input.index
Specifies the historical index of the bot response to recall. index='0'
refers to the current response.name
(required)The name attribute specifies a name for the predicate you will set. The predicate can then be recalled under the same name using the get element.<srai><star /></srai>
. Because this is one of the most often-used combinations of elements, AIML allows you to write as a shortened version.bot
(required)Specifies the bot to call out to, defined by the botid
. On the Pandorabots Playground, the botid
is equivalent to username/botname
. On the Developer Portal, it is defined as app_id/botname
.index
Specifies which wildcard to echo (used when multiple wildcard are present). If no index is specified, defaults to 0.that
. In a sense, the that element binds a pattern to the immediate context of the conversation.<that>
tags.index
Specifies the index of the wildcard to echo. If no index is specified, defaults to 0.name
predicate, without actually repeating the value of the predicate to the user:'topic'
. Like the that element, topic binds a pattern to a particular context, however, it does this according to the persistance of a predicate rather than the previous bot response.name
(required)Refers to a possible value of the topic predicate.