# 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.
```

```\$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.```

## and give it the new input:

(da gazelle, yo!)

## Let's keep going...

(work in progress)

the next riddle

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?