Live data from Hacker News

Prolog Coding Horror

metalevel.at

21–30 of 88 posts

Re: Prolog Coding Horror

#21
post #12
post #8

There's something quite illuminating with this first "horror", where they basically say "it's OK to report wrong answers, because you can check the answers". I don't think I've ever felt like it's OK for my program to provide a list of answers where some are right and some are wrong, but reading this... and generally believing in P != NP.... maybe that's a decent way of looking at some stuff!

The article server is offline, but I assume they found out that prolog rule evaluation depends on the order the rules are presented in the program. If so, the language they thought they were using (and that they should actually use) is datalog , not prolog . Datalog has declarative semantics: All facts that are derivable from the base database and the rules will be derived by the interpreter, and it will not add extr…

www.metalevel.at is run by Prolog legend Markus Triska, author of CLP(FD)/CLP(Z).

So it's not that they "discovered" anything about Prolog; they already knew the language inside out.

This article explains how to appropriately use Prolog declaratively and with full generality.

Re: Prolog Coding Horror

#22
post #3

What do people use Prolog for in the real world? I learned about it on a university course and it seems so esoteric compared to other things on the course. Like something invented just for computer scientists to enjoy.

> What do people use Prolog for in the real world?

Here[0] is an example of using Ruby and Prolog to solve a real-world AWS management problem.

0 - https://web.archive.org/web/20190525163234/https://dev.to/da...

Re: Prolog Coding Horror

#23
post #19

Earlier quoted context omitted.

And to understand the four-port model is to understand solution-space navigation and pruning.

It's why smartphones lost all their ports: forbidden knowledge must not be leaked to the public.

> ... forbidden knowledge must not be leaked to the public.

Understanding is a personal achievement and has nothing to do with "forbidden knowledge" when the source of said knowledge is both quoted above and freely available.

Re: Prolog Coding Horror

#24
post #3

What do people use Prolog for in the real world? I learned about it on a university course and it seems so esoteric compared to other things on the course. Like something invented just for computer scientists to enjoy.

Dunno about Prolog, but Datomic uses datalog for its query language, and it’s excellent. Datalog is a subset of Prolog.

Datalog is not a subset of Prolog. It looks that way because both are based on Horn clause logic, while Prolog is more expressive.

This loops Prolog, but terminates in Datalog:

p :- p.

p.

?- p.

This is because the underlying mechanism is completely different. Datalog is like SQL with recursion, you start with known facts and repeatedly applies rules to derive all consequences until nothing new appears. In Prolog, you start from the query and works backward through rules until it either finds a proof or fails.

So, Datalog treats Horn clauses as database constraints/inference rules while Prolog treats Horn clauses as a search program. They use the same mathematical substrate, but completely different computational models.

Re: Prolog Coding Horror

#25

Earlier quoted context omitted.

Dunno about Prolog, but Datomic uses datalog for its query language, and it’s excellent. Datalog is a subset of Prolog.

What is Datalog used for nowadays?

General programming [0], static analysis [1], RDF triple stores [2], authorization systems [3], incremental computation [4] [5], graph DBs [6]. But it is kind of hard to define Datalog exactly, since it is an entire family of technologies based on logic, each extending a clean mathematical model differently.

[0] https://github.com/flix/flix

[1] https://github.com/rust-lang/polonius

[2] RDFox

[3] https://github.com/eclipse-biscuit/biscuit

[4] https://github.com/vmware-archive/differential-datalog [5] https://github.com/brurucy/pydbsp

[6] https://github.com/cozodb/cozo

Re: Prolog Coding Horror

#28
post #3

What do people use Prolog for in the real world? I learned about it on a university course and it seems so esoteric compared to other things on the course. Like something invented just for computer scientists to enjoy.

> What do people use Prolog for in the real world? Here[0] is an example of using Ruby and Prolog to solve a real-world AWS management problem. 0 - https://web.archive.org/web/20190525163234/https://dev.to/da...

That is brilliant and simple and shows that when Graph Databases were a big thing they probably should have used Prolog as a front end.

Re: Prolog Coding Horror

#29
post #3

What do people use Prolog for in the real world? I learned about it on a university course and it seems so esoteric compared to other things on the course. Like something invented just for computer scientists to enjoy.

Everything, you heard the joke about those who don't know Lisp end up reinventing it, well, the same can be said for Prolog.

One doesn’t simply create a Warren Abstract Machine by accident

Re: Prolog Coding Horror

#30
post #19

Earlier quoted context omitted.

It's why smartphones lost all their ports: forbidden knowledge must not be leaked to the public.

> ... forbidden knowledge must not be leaked to the public. Understanding is a personal achievement and has nothing to do with "forbidden knowledge" when the source of said knowledge is both quoted above and freely available.

I fear that the joke didn't land with you.
Post reply on HN