patternMinor
How often is Prolog/ASP used in non-research areas?
Viewed 0 times
prologresearchnonusedoftenhowareasasp
Problem
I've just recently found out about KRR (Knowledge representation and Reasoning) and ASP, not hearing a thing about them before (except a bit about prolog). I've read a bit about them and one of their primary usage seems to be AIs.
My question would be how widely used ASP or other declarative languages are, is there some frequently used program using them (like search engines?) or is it mostly for research purposes? What may be the reason they are not so well known? Is it because AI-development belongs to a more "advanced level" of programming?
My question would be how widely used ASP or other declarative languages are, is there some frequently used program using them (like search engines?) or is it mostly for research purposes? What may be the reason they are not so well known? Is it because AI-development belongs to a more "advanced level" of programming?
Solution
how widely used ASP or other declarative languages are
You can see the activity of Prolog which I think is the most common ASP programming language:
Just based on that, Prolog's top package is (483 / 139,326) x 100 = 0.35% as popular as one of Node.js's large packages. Or 0.07% as many packages.
is it mostly for research purposes
IMO yes, it is mostly for research purposes. But it is similar to Ocaml, which from my experience was mostly for research purposes until corporate users like Facebook published Flow (typed JavaScript programming), and others published Coq (automated theorem proving), which helped bring Ocaml to the mainstream.
What may be the reason they are not so well known?
IMO Prolog is not used because it is (a) a different paradigm, (b) the package manager isn't up to par (this is a big deal these days), and (c) there is no evangelized web framework. If there was a good package manager like NPM for Node.js, and there was a web framework that was marketed, as well as a small group of evangelists, that would help bring it to the mainstream. Ruby had 37signals and Rails, Python had Google, etc.
Is it because AI-development belongs to a more "advanced level" of programming?
No not really. Some AI research uses prolog for modeling stuff, but it is not a requirement for AI. AI could be divided into two parts: (1) Machine learning / probabilistic-based models where the relations are learned and not well-defined, and then (2) manually defined models. Most AI is a mixture of both, but the manually defined models are valuable and kept private for the most part. The manually defined models could be defined using Prolog, and there are a few papers out there for doing that, but it is not necessary. To summarize, all AI work can be done in regular programming languages, just that Prolog might make it slightly more compact to write in some cases.
You can see the activity of Prolog which I think is the most common ASP programming language:
- SWI-Prolog Package Downloads: 483 downloads (not sure the interval), 239 packages.
- Compare to Node.js Package Downloads underscore.js has 139,326 weekly downloads. Over 350k packages.
Just based on that, Prolog's top package is (483 / 139,326) x 100 = 0.35% as popular as one of Node.js's large packages. Or 0.07% as many packages.
is it mostly for research purposes
IMO yes, it is mostly for research purposes. But it is similar to Ocaml, which from my experience was mostly for research purposes until corporate users like Facebook published Flow (typed JavaScript programming), and others published Coq (automated theorem proving), which helped bring Ocaml to the mainstream.
What may be the reason they are not so well known?
IMO Prolog is not used because it is (a) a different paradigm, (b) the package manager isn't up to par (this is a big deal these days), and (c) there is no evangelized web framework. If there was a good package manager like NPM for Node.js, and there was a web framework that was marketed, as well as a small group of evangelists, that would help bring it to the mainstream. Ruby had 37signals and Rails, Python had Google, etc.
Is it because AI-development belongs to a more "advanced level" of programming?
No not really. Some AI research uses prolog for modeling stuff, but it is not a requirement for AI. AI could be divided into two parts: (1) Machine learning / probabilistic-based models where the relations are learned and not well-defined, and then (2) manually defined models. Most AI is a mixture of both, but the manually defined models are valuable and kept private for the most part. The manually defined models could be defined using Prolog, and there are a few papers out there for doing that, but it is not necessary. To summarize, all AI work can be done in regular programming languages, just that Prolog might make it slightly more compact to write in some cases.
Context
StackExchange Computer Science Q#92695, answer score: 4
Revisions (0)
No revisions yet.