Quora Answer : Is LISP still a good AI language now that the symbolic reasoning camp has been completely defeated by the machine learning camp in the AI world?

Aug 27, 2019

I reject the claim that the "symbolic reasoning camp has been completely defeated".

In AI, the pendulum tends to swing backwards and forwards between the symbolic camp (or GOFAI as we used to call it in the 90s) and machine learning / connectionist / statistical camp.

I don't see any reason why that has changed. Both are useful. Both have their importance. Both complement each other. And can do things that the other can't.

Sometimes we are going to want to tell computers what we want them to do. Explicitly, and formally and with hard constraints. And then perhaps unleash some statistical learning to find solutions within those constraints.

And declarative languages like Lisp and Prolog are still great for that.

At the moment we're probably handling that requirement fairly clunkily, by hardwiring some of those constraints in an ad hoc way in our machine learning pipelines, probably in Python. But sooner or later someone is going to work out that something like Prolog would be a great way to specify declaratively exactly how we want our machine learning pipelines to be wired up, exactly how we want them to learn, what we want them to do in the case of them not learning what we expected, and how to report their status and "explain" what they are learning.

I'm investing time in learning Prolog this year, partly because I think it will be a good complement to ML. (And partly because I think it will be better for some other projects than imperative languages.)

One thing I've learned this year (thanks to Panicz Godek) is how close Prolog-like languages actually are to Lisps. In their implementation. Despite seeming so different on the surface. There are Lisps like Shen that have a Prolog built in to them. There's minikanren, a Prolog-like system that can be built quite easily in Lisp. And you can use Prolog-like inference engines to actually write Lisp-like code.

There's an exciting world there that is more powerful than the kind of everyday imperative programming languages you are used to. Even if those languages can drive statistical crunchers to infer lots of things about the data they are fed, this other world of logic / constraint programming will be a better and more powerful way to put that machine learning under proper control, and get it to work for us.

No Backlinks