6 ms·
Thank you very much for the publicity, I greatly appreciate it! This book has been discussed on HN about one year ago: https://news.ycombinator.com/item?id=14
by triska 8y ago
Thank you very much for the publicity, I greatly appreciate it!
This book has been discussed on HN about one year ago:
https://news.ycombinator.com/item?id=14045987 https://news.ycombinator.com/item?id=14045987
Since then, I have added the following new chapters:
Prolog Business Cases:
https://www.metalevel.at/prolog/business https://www.metalevel.at/prolog/business
Sorting and Searching:
https://www.metalevel.at/prolog/sorting https://www.metalevel.at/prolog/sorting
Cryptography with Prolog:
https://www.metalevel.at/prolog/cryptography https://www.metalevel.at/prolog/cryptography
Engineering Aspects:
https://www.metalevel.at/prolog/engineering https://www.metalevel.at/prolog/engineering
Artificial Intelligence with Prolog:
https://www.metalevel.at/prolog/ai https://www.metalevel.at/prolog/ai
I have also made many improvements and additions to the other chapters.
Also, I have made almost everything available in a public git repository so that you can track the book's progress and view it offline:
https://github.com/triska/the-power-of-prolog https://github.com/triska/the-power-of-prolog
It is my sincere hope that you find this material useful, and I welcome all suggestions and comments.
Also, thank you very much to all readers for the extremely constructive feedback that I have received in the past year. Your comments have made this work especially worthwhile.
Enjoy!
- steve19 8y agoVery nice book. Do you know what companies are using prolog commercially?
- triska 8y agoThank you for the kind words! Regarding companies that use Prolog, here are a few examples: A third of all airline traffic is handled by systems that run SICStus Prolog: https://www.sics.se/projects/sicstus-prolog-leading-prolog-technology https://www.sics.se/projects/sicstus-prolog-leading-prolog-t... A large portion of the New Zealand stock exchange is powered by Prolog: https://dtai.cs.kuleuven.be/CHR/files/Elston_SecuritEase.pdf https://dtai.cs.kuleuven.be/CHR/files/Elston_SecuritEase.pdf Oracle uses Prolog in the JVM specification: https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-0-preface7.html https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-0-pr... IBM has used Prolog for natural language processing in Watson: https://www.cs.nmsu.edu/ALP/2011/03/natural-language-processing-with-prolog-in-the-ibm-watson-system/ https://www.cs.nmsu.edu/ALP/2011/03/natural-language-process... RedPrairie uses SICStus Prolog for optimization tasks. Prolog is used for voice processing on the International Space Station.
- pjmlp 8y agoWindows NT used to have a Prolog based system for handling interrupts, not sure how much of it is still relevant on W10.
- sriram_malhar 8y agoThe Rust compiler's semantic rules are being recast internally in a prolog style. http://smallcultfollowing.com/babysteps/blog/2017/01/26/lowering-rust-traits-to-logic/ http://smallcultfollowing.com/babysteps/blog/2017/01/26/lowe...
- smitherfield 8y ago>A third of all airline traffic is handled by systems that run SICStus Prolog But are those systems responsible for all the I.T. problems that are plaguing the industry?[1] (I've been under the impression the issues were primarily with COBOL/mainframe systems, but wasn't aware Prolog was so widely used by airlines). [1] https://www.google.com/search?hl=en&q=airline%20computer%20flights%20grounded https://www.google.com/search?hl=en&q=airline%20computer%20f...
- jaytaylor 8y agoYes Markus does know, and has sprinkled examples throughout the book! One need look no further than the first chapter to find them. One that was new and interesting to me is that gerritcodereview (by Google) is written in Prolog. https://gerrit.googlesource.com/gerrit/+/master/prolog/ https://gerrit.googlesource.com/gerrit/+/master/prolog/
- js2 8y agoIt's written in Java but embeds prolog as a rules engine for deciding when a change may be submitted. https://gerrit-review.googlesource.com/Documentation/prolog-cookbook.html https://gerrit-review.googlesource.com/Documentation/prolog-...
- niklasd 8y agoI know that Negota Logic uses Prolog for the reasoning in their Legal Tech app (which is mainly written in Java). Since the app itself has a terrible user experience and looks like stuck in a ninties dystopia, there might be better examples.
- sorokod 8y agoGerrit (the code review tool) uses Prolog internally * https://gerrit.googlesource.com/prolog-cafe/ https://gerrit.googlesource.com/prolog-cafe/
- segmondy 8y agoI've shared this with anyone who will let me divert the conversation to Prolog. At work we have the Haskell folks, the Lispers who move everything towards Lisp, and I'm the one who moves every conversion towards Prolog, then I send the link to this. :-D
- FractalLP 8y agoWhere do you work? Sounds neat!!
- triska 8y agoThank you for sharing this, I really appreciate you participating in this thread and this awesome anecdote! One related workplace anecdote that a former fellow student told me: He was working on a rule-based medical recommender system, and he recognized that Prolog was an excellent fit for this project. When he first suggested that the team switch to Prolog, they were very skeptical. But someone high up in the chain was a great fan of Prolog and approved this suggestion. A few weeks later, they had completed the implementation, and the Prolog-based solution was running. My colleague told me that, a few months after that, the whole team regarded Prolog as the only viable solution to all further projects from then on!
- jacquesm 8y ago> My colleague told me that, a few months after that, the whole team regarded Prolog as the only viable solution to all further projects from then on! Hm, there is such a thing as the right tool for the job. If all their jobs were very similar that makes sense, otherwise, not so much. Are you aware of the fact that inside every Windows NT installation there was a Prolog engine to help with network configuration? http://web.archive.org/web/20040603192757/research.microsoft.com/research/dtg/davidhov/pap.htm http://web.archive.org/web/20040603192757/research.microsoft...
- Immortalin 8y agoA section on dynamic programming w.r.t. to modern AI techniques would complement it nicely considering the resurgence of the field :D
- triska 8y agoThank you, this sounds like a wonderful addition! In general, the AI chapter is what I am currently working on most. I mean not "only" on the actual content, but on the applications I want to present in this chapter. Anton Kochkov has recently motivated this chapter via a dedicated issue for AI/ML applications of Prolog, and I invite you to track its progress at: https://github.com/triska/the-power-of-prolog/issues/5 https://github.com/triska/the-power-of-prolog/issues/5
- YeGoblynQueenne 8y agoHi Markus, thanks for your hard work on this website (also on all the Swi constraint libraries). For your machine learning section, you might want to consider discussing Metagol [1], a modern ILP system that can learn recursive theories and perform predicate invention. The core Metagol implementation is tiny and relies on a meta-interpreter (the technique is called Meta-Interpretive Learning). It is a radically different approach to previous ILP systems but much simpler and easier to understand. It should be interesting to anyone who wants to do machine learning with Prolog. ____________ [1] https://github.com/metagol/metagol https://github.com/metagol/metagol
- triska 8y agoThank you very much Stassa! I have added Metagol to the AI chapter, please have a look.
- YeGoblynQueenne 8y agoThat looks great, cheers! :)
- sjg007 8y agoI think that reinforcement learning might be suitable in prolog. Do you have an opinion on that?
- triska 8y agoIn general, my opinion regarding machine learning and, in fact, also other tasks, is that Prolog is no less suitable to implement or teach these approaches than - for example - Python, which is currently often used in these areas. Dedicated libraries for machine learning are available and can be written for Prolog as well as for any other language, and Prolog of course also lets you easily interact with other programs via pipes and sockets. So, yes, I agree: Prolog may well be suitable for this! In practice, for statistics-based methods, the core logic will likely be carried out by dedicated hardware which you may have to program in its own language. Prolog may still play a part also with such approaches, for example to generate test cases and correctness certificates, and as a rule-based safety measure to prevent certain situations from happening.