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. Rememberthe 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:

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 trainedas you sawusing 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