Experimental AI
Last year I had posted a thread on creating a language analisys AI. I have not stated the project due to certain circumstances. I want to rephrase the question I asked because now I am not aiming for a language AI, but AI in general for experimentation. My question, what language can I use to program AI (not for games)? Can I do symbolic analysis, and logic base programmes in C++(if there is a library)? Please, I would like to stay away from Lisp and Prolog as I can not find proper documentation, C++ wrappers etc.
Yes, I remember your inquiry back then.
I am no expert in C++, but I would not know how to implement symbolic reasoning, logic programming etc. in C++.
I recommend Prolog (specifically SWI-Prolog) and CLISP or Scheme. If you want wrappers for it, I interface most things I do there with Python, which works fine. Still, you will hardly get around actually learning the languages simply because they are constructed according to AI principles. If you want to properly understand STRIPS planning, then you need to deal with negation as failure, which is an essential feature of Prolog, etc.
If you just want a playground, your C++ will work, but if you are getting serious about understanding AI concepts, you will come across LISP and Prolog again anyway.
I am no expert in C++, but I would not know how to implement symbolic reasoning, logic programming etc. in C++.
I recommend Prolog (specifically SWI-Prolog) and CLISP or Scheme. If you want wrappers for it, I interface most things I do there with Python, which works fine. Still, you will hardly get around actually learning the languages simply because they are constructed according to AI principles. If you want to properly understand STRIPS planning, then you need to deal with negation as failure, which is an essential feature of Prolog, etc.
If you just want a playground, your C++ will work, but if you are getting serious about understanding AI concepts, you will come across LISP and Prolog again anyway.
Yes, I am serious about understanding AI concepts. I was thinking of a C++ and python framework. Now looking at some syntax, I would prefer prolog over lisp, but it is less documented than lisp. I want to find a way to merge all three languages together.
My friend said he was using perl to write AI and that it shares many features with Lisp.
Is this true?
And how does lisp differ from prolog?
Can I do this with Lisp/perl?
Is this true?
And how does lisp differ from prolog?
Quote: Original post by Sleep
If you want to properly understand STRIPS planning, then you need to deal with negation as failure, which is an essential feature of Prolog, etc.
Can I do this with Lisp/perl?
Quote: Original post by blackplasma
My friend said he was using perl to write AI and that it shares many features with Lisp.
Is this true?
It's true in the same sense that C++ shares many features with Lisp. Perl is closer to C++ than Lisp, if that helps.
Quote:
And how does lisp differ from prolog?
Besides extraneous parentheses, Lisp is a functional programming language, while Prolog is a logic programming language. The differences are quite significant. I suggest you try both to see.
Quote: Original post by Sleep
If you want to properly understand STRIPS planning, then you need to deal with negation as failure, which is an essential feature of Prolog, etc.
Negation as a failure is conceptually meaningless in functional or imperative paradigms (Lisp and Perl respectively). In any case, although I don't know STRIPS much, I believe the statement is false, or at least slightly misleading. Though Prolog no doubt is a good choice for STRIPS, you should have no great trouble implementing it in other languages, even if there may be a bit of extra effort.
As a general advice regarding Perl, don't go there, unless you have good reason to. Python is usually better for you.
If you want to easily stick Lisp to C/C++, try GNU Guile, it's a Scheme-variant used for extending programs (e.g. used in GIMP). From there, a good programming exercise is to implement a Prolog system with Guile. It's easier than it sounds and there's at least one free online book that details Prolog.
Thanks that helps.
I am on the search for the most efficient way to run AI. Thus my choice of C++ as my main language. Is it possible (or viable) to embed both prolog, python and lisp in c++ at the same time?
I am on the search for the most efficient way to run AI. Thus my choice of C++ as my main language. Is it possible (or viable) to embed both prolog, python and lisp in c++ at the same time?
Quote: Original post by blackplasma
Please, I would like to stay away from Lisp and Prolog as I can not find proper documentation, C++ wrappers etc.
I know of at least two quite well-respected books on Lisp. Look up "How to Design Programs" and "Structure and Interpretation of Computer Programs" for Lisp (the dialect for both of those is Scheme, IIRC). They are both available for free on the MIT Press website. As for C-interop, there's a thread about that in the Lisp Workshop forum.
Quote: Original post by blackplasma
I am on the search for the most efficient way to run AI.
Since when? You said earlier that you were interested in AI for experimentation. The two questions are not going to produce the same answers. Decide which thing you want more.
Quote: Original post by SneftelQuote: Original post by blackplasma
I am on the search for the most efficient way to run AI.
Since when? You said earlier that you were interested in AI for experimentation. The two questions are not going to produce the same answers. Decide which thing you want more.
well, right now efficiency is not my main concern because I want to try out individual concepts. But when it comes to building an actual fully working one, efficiency will be an issue. I just want to figure out a framework I can stick to.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement