Re:Introduction to logic programming with Prolog
by tannhaeuser on Tuesday December 05, 2017 @12:52PM
(#15853761)
I'm not disagreeing that if you're developing a Web app, embedding logical or constraint programming techniques into a JavaScript API could make sense. OTOH, there's an obvious way for data exchange between JavaScript and Prolog, in that JSON can be be parsed by using Prolog's embedded `op/2` predicate and operator-precedence parser for defining custom DSLs.
Re:Introduction to logic programming with Prolog
by jononor on Tuesday December 05, 2017 @07:12PM
(#15857425)
What would be the workflow in Prolog if I want to import a set of facts from an external source, like a database/JSON/CSV?
Re:Introduction to logic programming with Prolog
by tannhaeuser on Wednesday December 06, 2017 @04:58AM
(#15859885)
JSON could be parsed as a term by Prolog, with suitable priority/associativity definitions for the comma, colon, and curly brace operators.
For CSV, you could write a DCG grammar for the particular file format at hand.
Integration with a relational DB, itself being based on logic, would be very different. Most Prologs have APIs to map tables to predicates.
Re:Introduction to logic programming with Prolog
by e12e on Tuesday December 05, 2017 @05:05PM
(#15856486)
If you replace Prolog with SQL - does it make more sense?
Re:Introduction to logic programming with Prolog
by vanderZwan on Wednesday December 06, 2017 @04:43AM
(#15859822)
Yes, and I missed it because I was thinking in terms of "hmm, I wonder if there are any points in my client-side code-base that could be cleaned up by using logic programming?"
I feel like I might be missing something obvious, but I'm not getting what the "compatibility" you refer to would give me in my specific situations? It looks like you're saying "if you write a Prolog program, it's compatible across Prolog platforms." Well, sure, but how is that fundamentally more portable situation than (for example) "if I have a logic programming framework in ES16, it works in all browsers that run modern JavaScript"?
If I'm specifically trying to do something in the browser (again, for example) and have a problem within that context where logic programming might be useful, having a way to use logic programming in JS makes more sense, doesn't it?