AI Zone Admin Forum Add your forum

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

Xaiml: A New Chatbot Markup Language
 
Poll
Which is better as a knowledge database for chatbots?
Xaiml 1
AIML 3
Something else 6
I do not know/Not sure 1
Total Votes: 11
You must be a logged-in member to vote
 

Xaiml is a new markup language that is similar to AIML, but with more features and a different design. Xaiml was made by Devyn Collier Johnson, NCLA, Linux+, LPIC-1, DCTS on August 31, 2012. Xaiml stands for eXtended Artificial Intelligence Markup Language. Visit https://launchpad.net/neobot for more information.

 

 
  [ # 1 ]

You made some interesting design choices with your language. Did you find a lot of value in tag aliases and the new tags you added?

It looks like you designed it more as a personal/local unix application. Is it on-line anywhere?

 

 
  [ # 2 ]

Thank you for your reply, Merlin. Yes, the alias tags have a purpose. If a programmer misspells a tag or forgets exactly how to spell the tag, then the misspelling and guess will more likely be accepted by ProgramPY-SH. ProgramPY-SH is the only chatbot engine that currently supports Xaiml.

ProgramPY-SH is for local use only. For now, it works only on any system that supports BASH. If a Windows user wishes to have ProgramPY-SH, then she/he will need to install Linux on a virtual machine and then put ProgramPY-SH in the virtual machine. I plan to add support for Windows.

 

 
  [ # 3 ]

Can I ask what features Xaiml has extra to AIML?

 

 
  [ # 4 ]

I am in the camp of less tags, rather than more.
AIML Intermediate Format (AIMLF) is much more similar to my JAIL (JavaScript Artificial Intelligence Language) format.
This makes for easier editing.

The big trend I have seen in chatbot languages are aliases/sets, which further reduces the coding required.

Personality Forge:Plug-ins
http://www.personalityforge.com/botland/plugin.php
AIML 2.0:<sets> and <maps>
https://docs.google.com/document/d/1wNT25hJRyupcG51aO89UcQEiG-HkXRXusukADpFnDs4/pub
ChatScript: keywords
http://sourceforge.net/projects/chatscript/files/?source=navbar
Cleverscript: phrases
http://www.cleverscript.com/


Combine aliases with something like AIML’s <OOB> tag and the developer or user can extend the language without changing the interpreter each time. It makes it easier to prototype language features also before making them part of the language set.

 

 
  [ # 5 ]

One of the features slated for Program O version 3 is a rich architecture to handle “custom” AIML tags. For example, if someone wanted to use a Program O chatbot to help with running an online store that sells widgets, it would be helpful to support tags such as these:

<inventory>
<
widget>
<
price>
<
quantity

among others. Setting up a plugin to, say, query a database to obtain quantities and prices for a product that the user is asking about would be a rather simple matter (relatively speaking).

 

 
  [ # 6 ]

Steve Worswick, Xaiml has many features that make it different from Xaiml, but I will only mention a few.

1. Xaiml is case insensitive
2. Xaiml is more error tolerant than AIML
3. Xaiml can execute many programing languages. For example, AIML has <javascript> and <system> while Xaiml has tags for python, perl, csh, cython, ruby, and many others.
4. Xaiml has tags for foreign languages. For example, the Greek category tag is <κατηγορία>.
5. Xaiml files use the UTF-8 encoding instead of AIML’s usual ISO encoding.
6. Xaiml has tags that open specific programs. For example,

<firefox/> 

opens Firefox.
7. Xaiml has emotion tags which are tags that make the bot feel and express a specific emotion. For example,

<happy/> 
will make the bot happy and
<anxious/> 

makes the bot anxious.

 

 
  [ # 7 ]

Given that level of complexity, may God have mercy on the individual who is tasked with writing an interpreter to handle it, especially if the tags are in foreign languages! big surprise

My prayers also go out to any botmasters who might be tasked to write the Xaiml code for a trilingual chatbot! cheese

 

 
  [ # 8 ]
Merlin - Mar 13, 2013:

I am in the camp of less tags, rather than more.
AIML Intermediate Format (AIMLF) is much more similar to my JAIL (JavaScript Artificial Intelligence Language) format.
This makes for easier editing.

The big trend I have seen in chatbot languages are aliases/sets, which further reduces the coding required.

Personality Forge:Plug-ins
http://www.personalityforge.com/botland/plugin.php
AIML 2.0:<sets> and <maps>
https://docs.google.com/document/d/1wNT25hJRyupcG51aO89UcQEiG-HkXRXusukADpFnDs4/pub
ChatScript: keywords
http://sourceforge.net/projects/chatscript/files/?source=navbar
Cleverscript: phrases
http://www.cleverscript.com/


Combine aliases with something like AIML’s <OOB> tag and the developer or user can extend the language without changing the interpreter each time. It makes it easier to prototype language features also before making them part of the language set.

You can also add my thesaurus paths and sub topics to this list.

 

 
  [ # 9 ]

I love your reply, Dave Morton.

Jan Bogaerts, could you tell me more about your thesaurus paths and sub topics?

Thank you everyone for your replies and comments.

What could be done to make Xaiml the “perfect” AI database language?

 

 
  [ # 10 ]

Thesaurus paths are like sets, just a step further: they allow for tree structures and other types of relationships. For instance, if you want to catch all the names, first names and last names, you could write a path like ^n:noun.name (n is the name of the variable). If you wanted only the first names: ^n:noun.name.(first name)  or ^n:noun.(first name)

Sub topics are actually ‘non-terminators’ in EBNF: whenever you declare a pattern, all signs are terminators, except when you allow for other (sub) patterns to be part of another pattern.
A simple example would be:

~subject ^v:verb.be ~object 

where ~subject is another topic that has patterns like:

^s:pronoun
^s:noun.name
... 

You can find lots more info in my tutorials.

What could be done to make Xaiml the “perfect” AI database language?

Don’t make it AIML (or any other language) specific, but allow for multiple systems to co-exist or provide some convertion tool.

 

 
  login or register to react
‹‹ CallMom?      About <that> tag ››