declarative logic programming language that is a subset of Prolog

no side effect (cannot change a variable’s value), no control flow, no functions, not turing-complete

data + logic

Prediction (data)

In Datalog, a prediction (relation) is a set of statements

A fact asserts that a particular tuple (a row) belongs to a relationship (a table)

2 kinds of predicates in Datalog

1. Extensional database (EDB)

the predicates that are defined in a priori

relations are immutable

input relations

2. Intensional database (IDB)

the predicates that are established only by rules

relations are inferred by rules

output relations

H ← B1, B2, … Bn

H can only be IDB, Bi can be EDB or IDB

Atoms