Become a bot service provider with the Bot Libre Cloud Bot Platform
Help

using the wildcard element (AIML)

by ritzpreet posted Jul 29 2018, 14:55

Hey all, my bot isn't responding to using a single wildcard. See below for example:

<category>
<pattern>*</pattern>
<that>MY LITTLE HUMAN HELLO WHAT IS YOUR NAME</that>
<template>Owh, nice to meet you, <set name="name"><star/></set>. I should already know your name but my system is still getting used to your brain and the way things are stored here... Do you know who I am?</template>
</category>

The above one does not work. I can't just enter my name. BUT the one below works:

<category>
<pattern>MY NAME IS *</pattern>
<template>Owh, nice to meet you, <set name="name"><star/></set>. I should already know your name but my system is still getting used to your brain and the way things are stored here... Do you know who I am?</template>
</category>

 

Not sure what my mistake is. I've tried changing things to play around with it but nothing's worked so far. 


by admin posted Jul 30 2018, 10:22
How did you import the AIML, as a response list, or script?

Can you give the conversation you expected, and the responses that you got.

Note, that if you had another category that matched the question it will be used in place of the * pattern.

When AIML is imported as a response list, it uses Bot Libre's heuristic matching, which finds the best matching question (the one with the most words that match).
i.e. "hey, what is your name?", would match "what is your name" before it considered "hey *".

When AIML is imported as a script, that it uses AIML semantics of process the patterns from left to right.
If you have multiple scripts however, they are process in the order you defined in the bot's script's page. You can merge the scripts to not have one take precedence.

AIML also defines different wildcard characters for precedence, _ instead of *

Thumbs up: 0, thumbs down: 0, stars: 0.0
Views: 1599, today: 0, week: 3, month: 6

by ritzpreet posted Jul 30 2018, 20:28

Hi! I imported all my files as AIML scripts.

Expected conversation:

Bot: What is your name?

User: Lisa

Bot: Owh, nice to meet you, Lisa. I should already know your name but my system is still getting used to your brain and the way things are stored here... Do you know who I am?

How conversation happens now:

Bot: What is your name?

User: Lisa

Bot: Lisa

 

However, if I say "My name is Lisa" or "It's Lisa" then I get the expected conversation/response. The bot only repeats my name when I say only my name and no other words. Not sure how to make it so that I can get the expected conversation (assuming different people will enter different names, hence the use of a wildcard). Thanks in advance for your help! :)

 

 


Thumbs up: 0, thumbs down: 0, stars: 0.0
Views: 1507, today: 0, week: 3, month: 5

by admin posted Jul 31 2018, 10:28
I believe your issue is that your bot's response was,

"What's your name?"

But, you set the that to,

"what is your name"

Change the that to "what s your name", or change the bot's response to "What is your name?"

Thumbs up: 0, thumbs down: 0, stars: 0.0
Views: 1560, today: 0, week: 4, month: 6

Id: 22994200
Tags: aiml, wildcard
Posted: Jul 29 2018, 14:55
Replies: 3
Views: 1877, today: 1, week: 6, month: 9
0 0 0.0/5