Ai Dreams Forum

Member's Experiments & Projects => AI Programming => Topic started by: Zero on March 06, 2021, 08:27:36 pm

Title: Learning Prolog!
Post by: Zero on March 06, 2021, 08:27:36 pm
Ooow, Prolog... scary name to me. But not anymore: I'm currently learning ISO Prolog as part of my project Jamie. It's worth spending time on it, elegant, powerful, I'm having a pleasant journey.
 O0

edit:
The book is "Programming in Prolog using the ISO standard, 5th edition", by W.F. Clocksin & C.S. Mellish (Springer). I'm on Android with SWI-Prolog on Termux.
If anyone is interested in reading the book together and learning/talking/helping each other, please let me know!
Title: Re: Learning Prolog!
Post by: infurl on March 13, 2021, 12:26:56 am
Hi Zero,

Prolog is certainly an amazing language. I've dabbled in it occasionally but never really tried to get serious with it. A couple of years ago I started working through the book "Representation and Inference for Natural Language" by Blackburn and Bos. That book lays the foundations for Combinatorial Categorial Grammar (CCG) which is currently the leading edge for natural language understanding using symbolic methods. The book is one big Prolog lesson because it presents everything in Prolog rather than mathematical abstractions making it a very interesting and easy read. It is readily available as a downloadable PDF if you would like to read it yourself.

https://www.researchgate.net/publication/319394064_Representation_and_Inference_for_Natural_Language_A_First_Course_in_Computational_Semantics (https://www.researchgate.net/publication/319394064_Representation_and_Inference_for_Natural_Language_A_First_Course_in_Computational_Semantics)
Title: Re: Learning Prolog!
Post by: ivan.moony on April 19, 2021, 12:51:46 pm
I just skimmed over a Prolog tutorial (https://www.cpp.edu/~jrfisher/www/prolog_tutorial/pt_framer.html), and I found it overlapping very much with my project Exp-Log. The Prolog version described in tutorial has only a command line input/output, file read/write, and TCP socket input/output (at least those are only that are mentioned in tutorial). Tutorial, among other examples, also presents a Prolog Tic-Tac-Toe game AI player with graphical user interface made in Java, communicating to Prolog over TCP socket.

I find Prolog a bit confusing because it doesn't have a classical return statement, yet similar behavior is implemented by appending and altering an extra parameter in predicates. There are also some suspicious tricks like cut rule (preventing nondeterminism), but overall, Prolog is very impressive creation regarding to period of its creation (about year 1972., says Wiki).

I'm considering focusing Exp-Log exposition in a light of Prolog-like programming language, providing only parameterized file input/output (maybe also some server io), callable from other languages utilizing OS commands.