What If Machines Could Think?
Stefan Reich, BotCompany.de -- Feb 20, 2019
New Technology Meetup, Hamburg
❝Gazelle❞:
logic engine
extraordinaire
A famous example for difficult text:
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!
Part 1/4: The 3 meanings
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.)
Part 1/4
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.
Part 2/4: Some everyday logic
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.
Part 3/4:
$A.
The simplest math you ever seen
{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
Part 4/4: Rule out the implausible
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.
We stick that "program" into the logic engine
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.
...which will convince it to print:
Incredulous? Here's a link to the actual Java program.
and give it the new input:
(da gazelle, yo!)
Let's keep going...
(work in progress)
the next riddle
Chatbots
Available
NOW
BUY
BUY
BUY
BUY
NOW!
BotCompany.de
Doug Lenat's language "CycL" (see slide 2) represents knowledge like this:
Bonus Slide: Gazelle vs CYC
(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?
What If Machines Could Think?
By Stefan Reich
What If Machines Could Think?
Introducing the "Gazelle" logic engine
- 2,347