Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

which prolog implementation will be helpful in my case [closed]

Tags:

nlp

prolog

I was going through Prolog. I want to use it for natural language processing. I came across this paper for natural language processing with Prolog in the IBM Watson system. As stated in the paper I want to try it out in some what similar way. Now I was wondering which of the Prolog implementation to use. I came across all of these Comparison onto Prolog onto wiki which is stated in this link. So which one of these implementations can be used for the purpose of NLP using onto Ubunutu. Also the one which will easily integrate with python and good in speed. Has anyone ever worked any of these implementations. Is SWI-Prolog good?

Help is appreciated. Thankz :)

like image 338
Gunjan Avatar asked Sep 12 '14 10:09

Gunjan


2 Answers

ProNTo it's the first thing you should know/read, if you already know and are committed to Prolog.

Wordnet has a 'ready to use' Prolog interface. Again, if you know your way in Prolog. It's somewhat difficult to find the proper site location from where to download the SW...

Attempto is in my opinion the most interesting resource - but it take on CNL, not NLP. Anyway, the parser was developen in SWI-Prolog.

Overall, if you are serious about NLP, take a look at Grammatical Framework.

If you know Python, you are of course aware of NLTK (but I would not call it a true NLP solution...)

Alpino it's a real life NLP package, developed in SWI-Prolog, but only for Dutch. Lookup in github for Python resources.

like image 106
CapelliC Avatar answered Oct 10 '22 19:10

CapelliC


The Watson system you mentioned, as many other NLP systems, has been developed in the ISO conforming SICStus Prolog. In its most recent version 4.3 SICStus contains a JIT compiler which is on by default and works entirely transparently. The predicate properties jittable and jitted are the only way you can see that the jitter is present — except for performance improvements, indeed. Apart from the ISO core functionality, SICStus offers freeze/2 and dif/2 since about 1985 ; with CLP(Q), and CLP(FD) added a few years later. The one downside of SICStus is its pricing.

SWI-Prolog in contrast is free, but much more volatile. The newest version, SWI7 is no longer ISO conforming and breaks several conventions that have been followed by all major Prolog systems from Prolog I (Marseille) and DECsystem 10 Prolog (Edinburgh) on.

So, as a start, you probably would go for SWI, but if things get serious business-wise you would switch to SICStus.

like image 28
false Avatar answered Oct 10 '22 21:10

false