[alicebot-archcomm] Conditional wildcards

Gary Dubuque alicebot-archcomm@list.alicebot.org
Fri, 28 Feb 2003 16:57:15 -0800


This version of AIML would work if you wanted to record every number
possible.  Already we have many categories for just entering someone's age.
The idea is that these are classes of items to match.  Classes that don't
fit into the realm of just natural language. Surely you're not saying that
entering all those dates would simplify the processing of them.  I would
image the minimalist would say no, no, no, we want it simple.  Just let us
call a date a date.  Don't make us list all the possible dates there are.

So how are we going to know when someone is going to use a date as an
answer?  One has to ask deliberately for a date or expect that only a date
is appropriate from the context of the inputted phrase.  This leaves alot of
wiggle room.

For words and phrases, the iteration concept is feasible, although tedious.
For special formats like phone numbers and so on, some recognition can be
applied without becoming bizarre about the specifications.  Lets be
practical here.

Or else lets just forget it all and corner those things in wild cards.  Who
cares if they are misinterpreted.  A phone number is the same as the number
pi, they both are numbers aren't they?  After all, we are conversing with
people right?  They can adapt to the silliness of chat bots.

If someone answers the question "When were you born?" with "10,000 days
ago", are we to ignore the fact because we can't translate that into
something useful?  I smart bot would reply, "That would make you twenty
seven years old, right?"  A dumb bot would be confused or might say "A day
isn't very long!"

Only, I'll bet one of the features that hurts in the competitions is the
inability to use numbers for calculations.  Or even dates for simple
comparisons of before and after.  These are common artifacts that really
destroy the illusion when they can't be accommodated.

I am asking for simple things to improve AIML.  I am asking for things that
have to be dealt with from within the engine itself.  Pattern matching would
stop short with the wrong answer if such an instrument were not available.
This is not the case where formatting can be checked later since it begs the
question that words can fall into the wild card as easily as dates and urls
and number and etc.  Once they do, the real match for the words is lost.
AIML is intentionally crippled because the difference is masked by
wildcards.  Don't we already have a utility just to detect the damage that
the "_" wildcard can do to the AIML?  This is another example of shadowing
real accuracy for lack of precision.

To put it on the substitution processing is an offense to the AIML category
itself.  Just because you use words instead of digits doesn't solve
anything.  The combination of words representing numbers is just as large a
set as the numbers themselves.  Like Ella, the real solution is to
pre-process out the numerical phrases, whether they be digits or words,
before the pattern matching begins.

Again, I know this is an old topic.  But it is a simple one if people want
to fix it.  Just a basic adjustment is all we need.  Or the deluxe
pre-processing to do it "good".

Thoughtfully,
  Gary Dubuque
  Practical AIML devotee

-----Original Message-----
From: alicebot-archcomm-admin@list.alicebot.org
[mailto:alicebot-archcomm-admin@list.alicebot.org]On Behalf Of Dr. Rich
Wallace
Sent: Friday, February 28, 2003 11:34 AM
To: alicebot-archcomm@list.alicebot.org
Subject: Re: [alicebot-archcomm] Conditional wildcards


The minimalist camp gets up and screams, over our dead bodies!

Seriously, one school of thought here is that eventually we want to make
AIML compatible with speech input tokens, the real holy grail, and in
speech we really don't differentiate between words, numbers, and other
symbols.

The substituter mechanism in AIML takes care of a lot of this with
replacements such as "DRWALLACE AT ALICEBOT DOT ORG" and "TEN DOLLARS AND
TWENTY FIVE CENTS" for inputs like "drwallace@alicebot.org" and "$10.25".

The experimentalist camp is probably fed up.


> I know the discussion of using things like regular expressions has been
> tried already.  The problem it solves is a necessary one.
>
> What about wildcards that match in the pattern and then perform a second
> level of analysis before the whole graphmaster process is completed?
> Say a wildcard that has the conditional of a date is in a pattern.
> While matching the pattern, the date is assumed as a special wildcard
> match that saves the position in the input and the conditional part of
> the wildcard and the input consumed by the wildcard.  If the whole
> pattern is matched, then the conditional is applied to the consumed
> input.  A success completes the processing as normal.  A failure resumes
> the graphmaster as if the pattern failed in the first place at the spot
> where the conditional wildcard was saved.
>
> This gives the same speed of the regular graphmaster, but also allows
> the dates, currency, phone numbers, urls, etc. to be properly placed in
> wildcards.
>
> I have no format for conditional wildcards except that they should start
> like regular wildcards...  Maybe something like "*{##/##/##}".
>
>
> _______________________________________________
> alicebot-archcomm mailing list
> alicebot-archcomm@list.alicebot.org
> http://list.alicebot.org/mailman/listinfo/alicebot-archcomm


--
Dr. Rich
W A L L A C E
ALICE A.I. Foundation
drwallace@www.alicebot.org




_______________________________________________
alicebot-archcomm mailing list
alicebot-archcomm@list.alicebot.org
http://list.alicebot.org/mailman/listinfo/alicebot-archcomm