AIML (ක්රමලේඛණ භාෂාව)
මෙම ලිපිය යාවත් කාලීන කිරීම අවශ්යයි. |
ඒඅයිඑම්එල්, භෙවත් කෘත්රිම බුද්ධි අධිකය භාෂාව, යනු එක්ස්එම්එල් සදහා නිර්මාණයට යොදා ගන්නා උපභාෂාවකි.
වර්ගය | .aiml |
---|---|
ප්රභේදය | කෘත්රිම බුද්ධිය |
ස්ථාපිතය | අගෝස්තු 3, 2001 |
හිමිකරු(වන්) | රිචඩ් එස්.වොලෙස් විද්යාඥයා |
වෙබ්අඩවිය | http://www.alicebot.org/TR/2005/WD-aiml/ |
පසුබිම
සංස්කරණයඑක්ස්එම්එල් උපභාෂාවක් වන ඒඅයිඑම්එල් භාෂාව දියුණු කරනු ලැබුවේ රිචඩ් එස්.වොලෙස් විද්යාඥයා විසිනි ඒ 1995 සහ 2002 යන වසර අතරය.
එක්ස්එම්එල් භාෂාවේ මූලිකාංග
සංස්කරණයඑක්ස්එම්එල් භාෂාවේ මූලිකාංග කිහිපයක් ඇත. මෙහි වැදගත්කම ගැන තවදුරටත් විස්තර පහත ඇත.
ප්රවර්ගීකරණය
සංස්කරණයCategories in AIML are the fundamental unit of knowledge. A category consists of at least two further elements: the pattern and template elements. Here is a simple category:
<category>
<pattern>WHAT IS YOUR NAME</pattern>
<template>My name is John.</template>
</category>
When this category is loaded, an AIML bot will respond to the input "What is your name" with the response "My name is John."
නිදර්ශන
සංස්කරණයA pattern is a string of characters intended to match one or more user inputs. A literal pattern like
WHAT IS YOUR NAME
will match only one input, ignoring case: "what is your name". But patterns may also contain wildcards, which match one or more words. A pattern like
WHAT IS YOUR *
will match an infinite number of inputs, including "what is your name", "what is your shoe size", "what is your purpose in life", etc.
The AIML pattern syntax is a very simple pattern language, substantially less complex than regular expressions and as such not even of level 3 in the Chomsky hierarchy. To compensate for the simple pattern matching capabilities, AIML interpreters can provide preprocessing functions to expand abbreviations, remove misspellings, etc.
අච්චුව
සංස්කරණයA template specifies the response to a matched pattern. A template may be as simple as some literal text, like
My name is John.
A template may use variables, such as the example
My name is <bot name="name"/>.
which will substitute the bot's name into the sentence, or
You told me you are <get name="user-age"/> years old.
which will substitute the user's age (if known) into the sentence.
Template elements include basic text formatting, conditional response (if-then/else), and random responses.
Templates may also redirect to other patterns, using an element called srai. This can be used to implement synonymy, as in this example (where CDATA is used to avoid the need for XML escaping):
<category>
<pattern>WHAT IS YOUR NAME</pattern>
<template><![CDATA[My name is <bot name="name"/>.]]></template>
</category>
<category>
<pattern>WHAT ARE YOU CALLED</pattern>
<template>
<srai>what is your name</srai>
</template>
</category>
The first category simply answers an input "what is your name" with a statement of the bot's name. The second category, however, says that the input "what are you called" should be redirected to the category that matches the input "what is your name"--in other words, it is saying that the two phrases are equivalent.
Templates can contain other types of content, which may be processed by whatever user interface the bot is talking through. So, for example, a template may use HTML tags for formatting, which can be ignored by clients that don't support HTML.
විමර්ශනය
සංස්කරණයAIML is considered clever and simple, and a good start for beginners writing simple bots. However, it is difficult to maintain and author more complex bots, and has weak pattern matching ability . However, it is