Stefan Reich, BotCompany.de -- Feb 20, 2019
New Technology Meetup, Hamburg
❝Gazelle❞:
logic engine
extraordinaire
I ate pizza with a fork.
I ate pizza with pepperoni.
I ate pizza with Bob.
(This example was given by
Doug Lenat of the "CYC" Project.)
What is this means?!
Did I eat
the Bob??
I am CONFUSION!!
Photo: William Widmer
❝
❞
The master!
I ate pizza with pepperoni.
To teach this kind of stuff to the computer,
we are actually going to program... IN ENGLISH!!
To teach this kind of stuff to a computer,
we are actually going to program...
=> {I ate pizza} and
{Bob was with me}.
=> I used a fork to eat pizza.
(of our natural-language program)
(Yup. We explain one example to the computer
in order to have it solve another one.)
The {brackets} are
just some "lubrication" for the parser.
amazing universal logic operator!!
=>
=> {I ate pizza} and
{the pizza had pepperoni on it}.
I ate pizza with Bob.
I ate pizza with a fork.
I used a fork to eat pizza.
=> Bob is a person.
=> A fork is a tool.
=> Pepperoni is edible.
Any objections...? :)
=> I used a fork.
I used a fork.
The pizza had pepperoni on it.
Bob was with me.
$A.
{I ate pizza} and
{the pizza had pepperoni on it}.
( This is for lines like:
)
$A and $B. =>
$B.
$A and $B. =>
"$X"
= really generic
placeholder
Mom is edible. => fail
Mom is a tool. => fail
anchovis are a tool. => fail
anchovis are a person. => fail
ducks are a tool. => fail
ducks are a person. => fail
my hands are edible. => fail
my hands are a person. => fail
We're introducing some new objects. Remember—the system knows nothing about the world yet.
...and that's our whole program!!
(BTW: Gazelle is totally case-insensitive.
anchovis, Anchovis, ANCHOVIS...
whatever.)
(Yes, fail is a special keyword for the engine.
So with {}, => and fail we have a grand total of 3 operators.
Everything else really is just English.)
Now Gazelle will perform analogy reasoning using the statements we gave.
I ate pizza with mom.
I ate pizza with anchovis.
I ate pizza with ducks.
I ate pizza with my hands.
I ate pizza and mom was with me.
I ate pizza and the pizza had anchovis on it.
I ate pizza and the pizza had ducks on it.
I used my hands to eat pizza.
Incredulous? Here's a link to the actual Java program.
(da gazelle, yo!)
(work in progress)
the next riddle
BotCompany.de
Doug Lenat's language "CycL" (see slide 2) represents knowledge like this:
(CYC-ASSERT (#$ist #$LillySelfMt (#$isa #$LillySelf #$Individual)) :ID L6)
(CYC-ASSERT (#$ist #$EnglishMt (#$prettyString-Canonical #$LillySelf "Lilly")) :ID L7)
Gazelle, OTOH, can be trained—as you saw—using plain English.
These are called skolemized normal forms. And I just listed some simple ones. You confused? Yeah, me too.
CYC had hired a dozen or so trained experts to enter knowledge using this special language.
Maybe that means Gazelle is a step forward?