Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is prolog not considered an artificial intelligence tool?

I designed a rule based engine in prolog that is basically set of rules on how to beat real human in a Card-game. Each time I find a weekness in my algorithm which leads one of my subject to take advantage of and get an edge; I go in and fix the rules for next release.

Same thing that I did in prolog in under 500 lines of code could've been done (not easily) in C++ or C# in about 10,000 lines including tons of nested if-else and fixing logical issues would be a nightmare.

A friend of mine told me that my Card game is not doing any AI because same thing could be done in functional or object-oriented programming languages (off course with more effort). He said it was more like a Case-based Reasoning.

Is this true ? Is prolog not an AI tool ? I have seen examples of people writing NLP code in prolog.

What other tools are out there that are considered AI tools ?

like image 523
fahadash Avatar asked Sep 16 '13 07:09

fahadash


1 Answers

Yay, let's argue semantics.

First of all, Prolog is not a tool, but a programming language. You can use that language to describe a program, but you'll need some other stuff (compiler, run-time, etc) to actually run it. But that is probably not what your friend was referring to.

Secondly, Prolog is turing-complete [citation needed]. That means it can do exactly all the same things that all other turing-complete languages can do (which includes almost every programming language ever), and all those other languages can do what Prolog does. (In case you're wondering: your brain is turing-complete, too). The only difference lies in how easy it is to describe an algorithm. But the observation that your algorithm can be expressed in other languages as well, is obviously meaningless. Furthermore, computers are turing-complete. Thus, even if you were able to express something better-than-turing-complete, you would not be able to execute it.

Thirdly, you said he claimed it's not an AI because it was a "case-based reasoning". "Reasoning" already implies some intelligence, and there is no rule that prohibits an AI to be "case-based".

The term "intelligence" has a very broad definition. Your program is able to solve a problem: beating someone at a card game. Thus, it is a special-purpose artificial intelligence.

But your original question was whether Prolog is an AI tool. A "tool for X" is something that makes "X" easier. While Prolog does not help so much writing neuronal networks, it makes it very easy to write rule-based decision engines (you said so yourself). So, it's at least a tool for that.

like image 107
Cephalopod Avatar answered Oct 13 '22 09:10

Cephalopod