4 ms·
Thank you for sharing! My impression is that database systems are increasingly gravitating towards Prolog, with various extensions such as logical rules, more e
by zmonx 9y ago
Thank you for sharing! My impression is that database systems are increasingly gravitating towards Prolog, with various extensions such as logical rules, more expressive aggregation, state machines, constraints, Turing completeness, ... All these sound very familiar to Prolog programmers.
Only recently, there was a post on GRAKN.AI which seemed heavily inspired by Prolog.
This is good news for Prolog: Modern Prolog systems provide many features that are important in the domain of databases, such as JIT indexing, transactions, and dedicated mechanisms for semantic data.
- harperlee 9y agoCan you recommend a good in depth introduction to "productive" (in contrast to a more academic approach) modern prolog for someone very superficially familiar to it (think uni course, long time ago)? I heard that e.g. Constraint Logic Programming functionalities makes some old approaches obsolete, and thus going through old material as starting point is very ineffective.
- zmonx 9y agoPlease see my profile page: It contains several links to material that I recommend for learning modern Prolog. You can quite often apply Prolog in actual practice if you know it. For instance, see how often "logic" is mentioned just in the context of the present discussion. It's nice to know a logic programming language that can elegantly express business logic and business rules!
- justQuestion2 9y agoI found it hard to use entities with more than 4 Attributes when defining them as simple compounds like person(Firstname, Lastname, Gender, Age, State, Country). Accessing the attributes by position makes the code hard to read because one has to remember the position and mistakes are not catched because there is no type system. Would you recommend using the libray record or using dicts in swi-prolog? This would make the code non portable. Moreover, do you recommend dedicated strings or list of atoms to represent strings?
- NotAUsername 9y agoHey! Grakn person here. The Prolog syntax is very elegant but it could be clunky, I totally agree. Our syntax has resource and role names instead of relying on position: e.g. match $x has lastname "some last name";