Hacker News new | ask | show | jobs
by triska 2460 days ago
Interestingly, when defining pure relations in Prolog, there is no "outside the database itself":

Both rules and facts are instances of a single unifying language element, a logical clause, which is also terminology from predicate logic.

This is useful from a conceptual perspective, and also for performance: Many automatic optimizations that deductive database systems perform apply equally to facts and rules. For instance, argument indexing is a notable feature of virtually all Prolog systems. It is similar to indices in relational databases, and can replace a linear scan of the knowledge base with a fast hash-based lookup that is performed in O(1).

1 comments

> Both rules and facts are instances of a single unifying language element, a logical clause, which is also terminology from predicate logic.

Yeah; I'd like to see these general application layers more seamless and united in simple semantic units.

Like a higher level abstraction over code block elements, database record structures, and configuration setting ensambles; simply as phrases (..??) ....