AI Zone Admin Forum Add your forum

NEWS: survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

Using OOB tag in AIML with Pandorabots


I’m new to chatbots and I’m trying to use the OOB tag in AIML. I’ve tried to use it in pandorabots playground site, like this:

pattern>SEARCH FOR *</pattern>
template>Here is what I found on Google. <oob><search><star/></search></oob>

So, when talking to the bot:

HumanSearch for chatbots.
BotHere is what I found on Google. <oob><search>chatbots</search></oob

As you can see, I’m also getting the tag. Is that how it should work? I expect to get it already parsed in some way so I can get the search term easily!

My idea is to use its API with the /talk resource in my future App.




  [ # 1 ]

Hi, Emili, and welcome to

That’s exactly how the <oob> tag is supposed to work. The idea is that your app/chat interface would intercept all <oob> tags and then parse out the XML, sending the textual portion of it to whatever function (in your case, search) is required, with the text portion (again, in your example “chatbots”) as an argument to that function.


  [ # 2 ]

Thanks Dave for your response!

Then, as I understand, there are tags that are parsed after getting the response (by the client), like <oob> and other ones that are parsed by AIML, like <star> or <srai> before sending a response? Am I right?

I mean, AIML doesn’t care if you’re writing <oob> or <uub>, just the client. But I guess it should be <oob> because that what the specification says.


  [ # 3 ]

I must admit that I am not a complete expert here, but I’m fairly certain that Pandorabots won’t know how to handle a <uub> tag. I know that Program O (the AIML interpreter that I’m most familiar with) wouldn’t understand it, and therefore wouldn’t parse it properly, so I suggest sticking with <oob>. As far as what gets parsed within those tags, I can’t say with any degree of certainty as I do not use Pandorabots other than to compare its operation against Program O, but I suspect that any XML tags within an <oob> tag that don’t fit in the AIML 2.0 specification would get passed back as plain text, with standard AIML getting parsed as normal, so that the following AIML template:

Let me find that for you.<oob><search><star/></search></oob

with a <star> value of “pizza” should output this:

Let me find that for you.<oob><search>pizza</search></oob

I would think (and strongly suspect) that any other standard AIML tags within <oob> tags will get similar treatment. I hope this helps.


  [ # 4 ]

Yes OOB is “out of band”. It’s up to your app to decide what to do with it. The interpreter won’t do anything with OOB tags.


  [ # 5 ]
Steve Worswick - Apr 7, 2017:

Yes OOB is “out of band”. It’s up to your app to decide what to do with it. The interpreter won’t do anything with OOB tags.

Not even <star>, <srai> or <get> tags? That sounds a bit discouraging. downer

I would think that the following tags should be resolved before passing it on:

STAR (including all indexes)

Those tags would be the ones I would make sure get parsed before the rest of the content within <oob> tag content got sent out, were I building a similar function in Program O. In fact, I’d almost want to parse all AIML tags prior to sending out the remaining content. But that’s just me. cheese


  [ # 6 ]

Hi Dave, Yes it still resolves the gets and stars but will leave something like “<search>pizza</search>”.  It’s then up to the local app to decide what to do with that info.


  [ # 7 ]

Good to know. smile

I’ve come to the realization that Program O version 3 is just too much for one man to tackle (at least, if that one man is me), so I’m instead working on getting Program O’s current version to support AIML 2.0 tags in it’s current state. It’s a good thing that Program O already supports custom AIML tags, so this approach is a lot easier to take with my current schedule. Parsing the <oob> tag is actually the test bed for this new tack, and new tags will be added as I go.


  [ # 8 ]

Hi All,

I am not understand the use of oob tag?
for example if I used below example. Then how can I use call tag?

Please explain it


  [ # 9 ]

The <oob> tag is used with 3rd party software (e.g. an Android or other app) to perform certain tasks. In the example you’ve cited, the app may use that information to look up a phone contact that’s labeled “Dad” and place a phone call to that contact. The format of such OOB (Out Of Band) commands is entirely dependant on how the 3rd party software is coded. Sadly, I don’t know much more than that, as I don’t write code for such apps. downer


  login or register to react