Member-only story
Featured
Datalog with knowledge graphs as data products in TerminusDB
I have spent 3 years learning the nitty-gritty details of TerminusDB so you don’t have to. I created DFRNT.com as a complete data modeller and logic engine, to enable startup founders and business professionals to create knowledge graphs with advanced information models and logic without having to build an app first.

Knowledge graphs enable domain experts to encode their data in a way that resembles the real world, more than traditional relational databases do out of the box. In general, relational databases get very complex very quickly. Most data storage engine make use of one type of language, datalog, that enables users to assert what they want from a data source, and get that back, usually in a tabular format. A good datalog lets the data engine figure out how to get to the data, not the user. Examples of datalog languages include SQL, Cypher, WOQL (TerminusDB), and others.
Prolog is a great language to implement a datalog engine in, as it allowed any formal logic to be expressed. Building Prolog programs however is extremely complicated, especially in the industrialization phase and to enable users to make safe use of. Expert companies like open source TerminusDB have done so successfully, and thus we don’t have to re-implement the wheel.
On the information in a semantic knowledge graph
In my opinion, the best knowledge graphs for business use work on an object level, instead of a “knowledge atoms” level. When I refer to a “knowledge atom”, it’s what many call a triple, the smallest unit of knowledge. With a knowledge atom, we can know something specific about something, there is a subject, predicate and an object. Bob is a friend of Alice.
What is then an object level? An object level is many of these “knowledge atoms” together. Imagine a sales order or an invoice with multiple line items. A sales order line item might even have a sold-to, bill-to and ship-to on line item. We can think of a sales order printed on a…