[alicebot-archcomm] AIML architecture vs. application architecture

Eugene Lebedev alicebot-archcomm@list.alicebot.org
Mon, 12 Nov 2001 17:12:56 -0500


This is a multi-part message in MIME format.

------=_NextPart_000_0012_01C16B9D.4568D420
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0013_01C16B9D.4568D420"


------=_NextPart_001_0013_01C16B9D.4568D420
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I see a lot of independent tasks from the main=20
thread of abstract AIML architecture (model).
I hope you will see my point in the attachment.=20

Eugene

----- Original Message -----=20
From: "Noel Bush" <noel@alicebot.org>
To: <alicebot-archcomm@list.alicebot.org>
Sent: Monday, November 12, 2001 3:43 AM
Subject: [alicebot-archcomm] AIML architecture vs. application =
architecture


> Even though this may be opening up a can of worms, I feel obligated to
> mention that I notice a positive development: a clearer distinction
> between two tasks:
>=20
> 1) architecture of an abstract AIML interpreter
> 2) architecture of Program D
>=20
> Some of our disputes in the past may be seen as having missed this
> distinction, so that at times we were talking about *both* the Program =
D
> architecture and the architecture of an abstract AIML interpreter.  =
For
> instance, the question of "how to set things at startup" looks like an
> application architecture question, not (necessarily) an AIML
> architecture question.  On the other hand, the question of "how =
<random>
> should behave" is clearly an AIML architecture question.
>=20
> I mention this because I've recently been doing some cleanup,
> optimization and enhancement work on Program D, and I've found it much
> easier than in the past to see this distinction.  The AIML spec WD =
does
> still stipulate a few things which perhaps impinge too much on
> application architecture, but for the most part it sticks with AIML
> interpreter architecture.
>=20
> This gives me the feeling (perhaps mistaken) of liberty to introduce
> changes in how Program D is configured, so long as they do not change
> the runtime interpretation of AIML.  For instance, in looking at how =
to
> make Program D support externalized substitutions, it seems clear that
> these can be specified in an XML file using a <substitute> tag (a la
> TinyAlice) without causing any controversy, since <substitute> makes =
no
> claims on being an AIML element.  Program D could just as well =
implement
> this using a non-XML format (unlikely) or by requesting substitution
> information at a command-line on startup (obviously silly) -- the =
point
> is that nothing is changed about the behavior of the AIML interpreter.
>=20
> I hasten to add that all such changes are being reviewed continuously =
by
> Kim Sullivan and Tom Ringate, who have distinguished themselves as
> high-profile, energetic advocates of usability with respect to both
> Program D and AIML in general.  The present work is on an incremental
> version "4.1.3" which will include not only cleanup and optimization
> fixes grounded on Tom's & Pedro's AIML compliance work, but also bug
> fixes, some forward-looking architectural improvements, as well as =
some
> functional enhancements (user authentication option, external
> substitution specification).  As in most user community-driven
> scenarios, it is expected that the smaller advocacy group (in this =
case,
> Kim and Tom) will be widened to a larger group with either a beta
> release (something we haven't done yet), or just a "point release" =
(less
> than ideal, but it works), from which additional user feedback will be
> gathered and factored into future releases.
>=20
> We're making heavy use of CVS, so all changes are traceable, =
reversible,
> documented, etc.
>=20
> Any comments are welcome.  If somebody feels like this is not the way =
to
> go -- that small changes to the reference implementation also need to =
go
> through committee -- please do say so.  In such a case I think we need
> to work up an actual Program D spec, which I personally feel will
> introduce an unnecessary delay.
>=20
> Noel
>=20
> _______________________________________________
> alicebot-archcomm mailing list
> alicebot-archcomm@list.alicebot.org
> http://list.alicebot.org/mailman/listinfo.cgi/alicebot-archcomm


------=_NextPart_001_0013_01C16B9D.4568D420
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2920.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>I see a lot of independent tasks from the main =
<BR>thread=20
of abstract AIML architecture (model).<BR>I hope you will see my point =
in the=20
attachment. <BR><BR>Eugene<BR><BR>----- Original Message ----- <BR>From: =
"Noel=20
Bush" &lt;noel@alicebot.org&gt;<BR>To:=20
&lt;alicebot-archcomm@list.alicebot.org&gt;<BR>Sent: Monday, November =
12, 2001=20
3:43 AM<BR>Subject: [alicebot-archcomm] AIML architecture vs. =
application=20
architecture<BR><BR><BR>&gt; Even though this may be opening up a can of =
worms,=20
I feel obligated to<BR>&gt; mention that I notice a positive =
development: a=20
clearer distinction<BR>&gt; between two tasks:<BR>&gt; <BR>&gt; 1) =
architecture=20
of an abstract AIML interpreter<BR>&gt; 2) architecture of Program =
D<BR>&gt;=20
<BR>&gt; Some of our disputes in the past may be seen as having missed=20
this<BR>&gt; distinction, so that at times we were talking about *both* =
the=20
Program D<BR>&gt; architecture and the architecture of an abstract AIML=20
interpreter.&nbsp; For<BR>&gt; instance, the question of "how to set =
things at=20
startup" looks like an<BR>&gt; application architecture question, not=20
(necessarily) an AIML<BR>&gt; architecture question.&nbsp; On the other =
hand,=20
the question of "how &lt;random&gt;<BR>&gt; should behave" is clearly an =
AIML=20
architecture question.<BR>&gt; <BR>&gt; I mention this because I've =
recently=20
been doing some cleanup,<BR>&gt; optimization and enhancement work on =
Program D,=20
and I've found it much<BR>&gt; easier than in the past to see this=20
distinction.&nbsp; The AIML spec WD does<BR>&gt; still stipulate a few =
things=20
which perhaps impinge too much on<BR>&gt; application architecture, but =
for the=20
most part it sticks with AIML<BR>&gt; interpreter architecture.<BR>&gt; =
<BR>&gt;=20
This gives me the feeling (perhaps mistaken) of liberty to =
introduce<BR>&gt;=20
changes in how Program D is configured, so long as they do not =
change<BR>&gt;=20
the runtime interpretation of AIML.&nbsp; For instance, in looking at =
how=20
to<BR>&gt; make Program D support externalized substitutions, it seems =
clear=20
that<BR>&gt; these can be specified in an XML file using a =
&lt;substitute&gt;=20
tag (a la<BR>&gt; TinyAlice) without causing any controversy, since=20
&lt;substitute&gt; makes no<BR>&gt; claims on being an AIML =
element.&nbsp;=20
Program D could just as well implement<BR>&gt; this using a non-XML =
format=20
(unlikely) or by requesting substitution<BR>&gt; information at a =
command-line=20
on startup (obviously silly) -- the point<BR>&gt; is that nothing is =
changed=20
about the behavior of the AIML interpreter.<BR>&gt; <BR>&gt; I hasten to =
add=20
that all such changes are being reviewed continuously by<BR>&gt; Kim =
Sullivan=20
and Tom Ringate, who have distinguished themselves as<BR>&gt; =
high-profile,=20
energetic advocates of usability with respect to both<BR>&gt; Program D =
and AIML=20
in general.&nbsp; The present work is on an incremental<BR>&gt; version =
"4.1.3"=20
which will include not only cleanup and optimization<BR>&gt; fixes =
grounded on=20
Tom's &amp; Pedro's AIML compliance work, but also bug<BR>&gt; fixes, =
some=20
forward-looking architectural improvements, as well as some<BR>&gt; =
functional=20
enhancements (user authentication option, external<BR>&gt; substitution=20
specification).&nbsp; As in most user community-driven<BR>&gt; =
scenarios, it is=20
expected that the smaller advocacy group (in this case,<BR>&gt; Kim and =
Tom)=20
will be widened to a larger group with either a beta<BR>&gt; release =
(something=20
we haven't done yet), or just a "point release" (less<BR>&gt; than =
ideal, but it=20
works), from which additional user feedback will be<BR>&gt; gathered and =

factored into future releases.<BR>&gt; <BR>&gt; We're making heavy use =
of CVS,=20
so all changes are traceable, reversible,<BR>&gt; documented, =
etc.<BR>&gt;=20
<BR>&gt; Any comments are welcome.&nbsp; If somebody feels like this is =
not the=20
way to<BR>&gt; go -- that small changes to the reference implementation =
also=20
need to go<BR>&gt; through committee -- please do say so.&nbsp; In such =
a case I=20
think we need<BR>&gt; to work up an actual Program D spec, which I =
personally=20
feel will<BR>&gt; introduce an unnecessary delay.<BR>&gt; <BR>&gt; =
Noel<BR>&gt;=20
<BR>&gt; _______________________________________________<BR>&gt;=20
alicebot-archcomm mailing list<BR>&gt;=20
alicebot-archcomm@list.alicebot.org<BR>&gt;=20
http://list.alicebot.org/mailman/listinfo.cgi/alicebot-archcomm<BR></BODY=
></HTML>

------=_NextPart_001_0013_01C16B9D.4568D420--

------=_NextPart_000_0012_01C16B9D.4568D420
Content-Type: text/html;
	name="ActorsAndGoals.html"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="ActorsAndGoals.html"

<html>
	<head>
		<title> Actors And Goals</title>
		<style type=3D"text/css">
			body		{background-color: #808080; font-family: Arial}

			div.page	{background-color: white; width: 80%; padding: 10px}

			h1			{border: solid black 1px; padding-left: 10px; color: white; =
background-color: black}=20

			th			{font-style: italic; background-color: #829AEE}
			td			{vertical-align: top; padding-left: 5px; padding-top: 5px}

			ul			{margin-left: 10px; padding-left: 5px}

			p.note		{font-size: 10px}
		</style>
	</head>

	<body>
	  <div class=3D"page">
		<h1> Actors &amp; Goals (AIML Platform) </h1>
		<table border=3D1 cellspacing=3D0 cellpadding=3D0>
			<tr>
				<th>Actor</th>
				<th>Goals</th>
			</tr>
			<tr>
				<td>Bot Administrator</td>
				<td>
					<ul>
						<li>To install and configure the Bot</li>
						<li>To install and configure the knowledge base storage(s)</li>
						<li>To install predefined knowledge bases</li>
						<li>To grant access to the Bot to other actors</li>
						<li>To provide ability to update knowledge in knowledge base =
storages to other actors</li>
						<li>To prove/check that Bot can keep required number of =
simultaneous sessions</li>
						<li>To organize backup of log files </li>
					<ul>
				</td>
			<tr>
			<tr>
				<td>Knowledge Base Content Manager</td>
				<td>
					<ul>
						<li>To specify the content of the knowledge base</li>
						<li>To easy check that the content corresponds to the original =
specification</li>
						<li>To track changes of knowledge base</li>
					</ul>

				</td>
			<tr>
			<tr>
				<td>Knowledge Engineer</td>
				<td>
					<ul>
						<li>To create knowledge base according to original knowledge base =
specification</li>
						<li>To make required modifications</li>
						<li>To merge modified knowledge bases</li>
					</ul>
				=09
				</td>
			<tr>
			<tr>
				<td>Knowledge Base Tester</td>
				<td>
					<ul>
						<li>To check that knowledge base contains correct knowledge =
base.</li>
						<li>To check changes of knowledge base</li>
					</ul>
						=09
				</td>
			<tr>
			<tr>
				<td>Knowledge Base and Logs Analyzer</td>
				<td>
					<ul>
						<li>To find out gaps in the knowledge bases</li>
						<li>To review the log file and to find our user=92s =
satisfaction</li>
						<li>To provide report regarding gaps in the knowledge bases</li>
						<li>To provide report regarding subject of knowledge used during =
the chat</li>
					</ul>
				</td>
			<tr>
			<tr>
				<td>Bot</td>
				<td>
					<ul>
						<li>To be ready for chat 24/7</li>
						<li>To satisfy customer=92s requests during the chat</li>
						<li>To redirect customer to another Bot or Live agent in =
predefined cases</li>
						<li>To log chat content</li>
						<li>To handle predefined number of independent sessions =
simultaneously</li>
						<li>To load updated knowledge</li>
						<li>To get information from the external sources</li>
						<li>To represent necessary predefined information for the =
user</li>
						<li>To send the notification to the Bot Administrator in case of =
some technical troubles</li>
					</ul>

				</td>
			<tr>
			<tr>
				<td>User/Customer</td>
				<td>
					<ul>
						<li>To chat with Bot with some particular goal</li>
					</ul>
				</td>
			<tr>
			<tr>
				<td>Bot Owner</td>
				<td>
					<ul>
						<li>To attract more customers by Bot</li>
						<li>To make customer happy</li>
						<li>To simplify process and procedures for customer</li>
						<li>To push/advertise predefined goods or services</li>
					</ul>
				</td>
			<tr>
		</table>

		<p class=3D"note">
			Note: Actor here is an actor in standard UML understanding
		</p>
      </div>
	</body>
</html>

------=_NextPart_000_0012_01C16B9D.4568D420--


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com