6
votes

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 ?

1
Prolog is a tool that might be used for AI programs. But AI programs are not defined by the set of tools they are using (but by the methods used and the objectives). And Artificial Intelligence has a quite ill-defined meaning (which has sadly changed since the previous century).Basile Starynkevitch
Ditto. I remember that not so far ago Case-Based Reasoning (CBR) was considered an area of Artificial Intelligence (AI). In fact, many of the initial CBR papers were published in AI conferences and journals.Paulo Moura
Whether your particular Card game program is an AI program doesn't indicate whether or not Prolog is an "AI tool". Prolog does make it easier to develop certain types of AI programs. Similarly could be said of LISP. Different languages are more suitable (based upon efficiency of design/implementation) for a particular purpose than others. But it's not a binary choice.lurker
If you're wondering if you should have used something else, the 500<10,000 ought to be reassurance enough. I don't think there's anything else that would have given you another factor of ten, or even a factor of two. Ignore your friend. :)Daniel Lyons

1 Answers

5
votes

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.