I saw this paper just yesterday from another source. This is brilliant in it's simplicity and the performance is pretty impressive.
I hope to write something like this in Julia.
Wondering if I'm missing something but the example is
fact(X, R, Y) :∼ cat facts.tsv
locatedIn(X, Y) :- fact(X, "locatedIn", Y).
locatedIn(X, Y) :- locatedIn(X, Z), fact(Z, "locatedIn", Y).
main(X) :- locatedIn(X, "USA")
I think line 3 could just be locatedIn(X, Y) :- locatedIn(X, Z), locatedIn(Z,Y).
unless I'm missing something.