Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
A Hitchhiker's Guide to Reinventing a Prolog Machine (2018) (dagstuhl.de)
82 points by vg_head on April 24, 2021 | hide | past | favorite | 18 comments


Wow. The article is easy to read despite dealing with a complicated topic. And the idea looks quite innovative - definitely something that attracts researchers.

Still, after 4 years, this article has 1 citation, which is a self-citation [1]. Is this a definitive proof that Prolog is dead?

[1] https://scholar.google.com/scholar?cites=4818730189048705347...


Scryer prolog is just getting started. My prediction: logic programming will replace filesystems in the age of non-volatile memory.


Scryer Prolog looks very nice, with tabling from the start of the implementation (e.g. Swi-Prolog only added tabling in the last year or two I think). Let's hope it develops to the standard its authors want it to.


Tarau's work seems interesting and valuable to me, and much of it uses languages other than Prolog, yet he's pretty obscure, so I don't think it's Prolog necessarily, eh? I'm mystified.

FWIW, I think Prolog isn't dead. It's just slow and stately. :)


>> Is this a definitive proof that Prolog is dead?

It's evidence that interest in the article is dead, but why should that extend to Prolog?


That's exactly the question.

I've seen a lot of Prolog-inspired research (modified semantics, hence really just “inspiration”), one YouTube video about “Prolog in production” and a lot of hobby projects.

As a Prolog teacher at our university, my question was a bit provocative, hoping that someone proves me wrong.


Well, isn't it the point of prolog to have easily modifiable semantics? I'd argue it is, whether through meta-interpretation or an alternate implementation.


So you're hoping that Prolog is not dead and you were hoping that someone would provide evidence that it isn't, but you thought you'd get more mileage out of a provocative formulation of your request than simply stating your request? I don't know if that works that well...

Here's my view. Prolog is not "dead" as long as there's a community around its various implementations that uses them - for whatever reason. Of course you'll see more work in academia rather than industry, but that's industry. There's a few languages that dominate industry and a great many that, well, don't. At least for Prolog there is academic interest, so it's not just hobby projects. Research in Logic Programming (and Inductive Logic Programming, which I study) is still active with conferences and journals, so academic interest is not dead.

Regarding community, I only have an impression of one Prolog community, the one around Swi-Prolog, because that's the one I use. The community seems healthy, with active participants that are not just the maintainers, although you do tend to see the same people posting often. It's a small community, but "small" does not mean "dead".

Regarding commercial use (what everyone seems to wonder about) Jan Wielemaker, the maintainer (and originator) of the project recently started a company, Swi-Prolog Solutions b.v. to support the development of Swi in a commercial rather than academic environment. He explains it here:

https://swi-prolog.discourse.group/t/swi-prolog-solutions-b-...

This is a recent development but commercial entities have supported the development of Swi-prolog before. For example, see library(aggregate) that, according to its documentation, was sponsored by a commercial company:

The development of this library was sponsored by SecuritEase, http://www.securitease.com

https://www.swi-prolog.org/pldoc/man?section=aggregate

Presumably, Securitease uses Swi-Prolog in its operations. Apparently, the same goes for Kyndi, a company that offers NLP services:

Kyndi’s secret sauce is a decades-old programming language called Prolog that was designed with probabilistic and logical computational reasoning in mind. Using very little training data — in some cases as few as 10 to 30 documents of 10 to 50 pages each — Kyndi can automate fact, inference, and concept generation in virtually any vertical. It’s speedy to boot (the company claims it can read upwards of a thousand documents in seven hours) and helps to mitigate bias that might otherwise arise from conventional deep learning approaches.

https://venturebeat.com/2019/07/10/kyndi-raises-20-million-f...

[Note: the article doesn't mention which Prolog Kyndi uses. I got the information that it's Swi-Prolog from this comment on the Swi-Prolog Discourse channel: https://swi-prolog.discourse.group/t/what-happens-if-dr-wiel...]

These examples also suggest that commercial uses exist. They may be few and far between but again, for a small language that's what can be expected.

So, to paraphrase Granny Weatherwax, I think we can say that Prolog "ATEN'T DEAD". Not yet.


Thank you for a great answer!

I knew about quite old NLP+Prolog projects. But never thought that such combination can make it through serious funding. Fingers crossed.

To be completely honest I use Prolog for prototyping new algorithms if they involve some kind of search. It doesn't happen often (every 10 years or so), but it does!


>> Fingers crossed.

Indeed!


If only there was a language that you could use to determin the answer to this question...


Seems more like evidence that either:

This approach turns out to be a dead end when fully elaborated

The research community isn't particularly interested in implementations that don't extend the semantics/language

Notably Tarau himself doesn't seem to have gone anywhere with it either despite still being quite active.


About WAM implementation mentioned in paper: http://wambook.sourceforge.net/

Edit: added some info about link


I’ve seen some jobs (rarely) that use Prolog but not many. I’d love to know if anyone on HN uses a similar language in prod?



And here is a repository from someone that translated it to Javascript (also has C++ version) https://github.com/CapelliC/hitchhicker-prolog


Paul Tarau has some other very interesting (IMO) work. For example, in re: representation of large numbers with efficient arithmetic algorithms. He also extends it to encoding lambda terms and other fun stuff. IIRC the new implementation of Prolog falls out of his work encoding Prolog terms.

https://www.cse.unt.edu/~tarau/


(2017)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: