I am researching programming languages used for AI programming. I know that LISP is taught as an AI programming language in my university, but Prolog rarely is. I am kind of fond of Prolog, but I'm not an AI programmer so I don't think I'm qualified to judge for myself why Prolog is better than LISP/Scheme. I was wondering if Programmers had any input on this topic.How could you argue that Prolog would be more useful for AI programming?I have been researching it a bit, and the basic argument I've seen over and over is that since thoughts are presented in logic, and Prolog is a logical programming language, Prolog can build decision machines easily, or something to that effect.Is there anything else that can be said for Prolog in AI?
Why is Prolog good for AI programming?
programming languages;artificial intelligence;prolog
From the preface to Prolog Programming for Artificial Intelligence:Prolog is a programming language centred around a small set of basic mechanisms, including pattern matching, tree-based data structuring and automatic backtracking. This small set constitutes a surprisingly powerful and flexible programming framework. Prolog is especially well suited for problems that involve objects - in particular, structured objects - and relations between them. For example, it is an easy exercise in Prolog to express spatial relationships between objects, such as the blue sphere is behind the green one. It is also easy to state a more general rule: if object X is closer to the observer than object Y, and Y is closer than Z, then X must be closer than Z. Prolog can now reason about the spatial relationships and their consistency with respect to the general rule. Features like this make Prolog a powerful language for artificial intelligence (AI) and non-numerical programming in general. There are well-known examples of symbolic computation whose implementation in other standard languages took tens of pages of indigestible code. When the same algorithms were implemented in Prolog, the result was a crystal-clear program easily fitting on one page.Basically it's a great language for expressing various relationships and goals in a succinct, (mostly-)readable and (semi-)natural way.  Equivalent code in, say, the Lisps tends to be more verbose and more obfuscated in its intent because you spend a lot of time on the guts and the plumbing of managing and reasoning about relationships.