Synthesizing Datalog Programs using Numerical Relaxation

Authors: Xujie Si, Mukund Raghothaman, Kihong Heo, Mayur Naik

IJCAI 2019 | Conference PDF | Archive PDF | Plain Text | LLM Run Details

Reproducibility Variable Result LLM Response
Research Type Experimental We evaluate DIFFLOG on a suite of 34 benchmark problems from recent literature in knowledge discovery, formal verification, and database query-by-example, and demonstrate significant improvements in learning complex programs with recursive rules, invented predicates, and relations of arbitrary arity.
Researcher Affiliation Academia University of Pennsylvania {xsi, rmukund, kheo, mhnaik}@cis.upenn.edu
Pseudocode Yes Algorithm 1 EVALUATE(R, w, I), where R is a set of rules, w is an assignment of weight to each rule in R, and I is a set of input tuples.
Open Source Code No The paper states 'The implementation of DIFFLOG comprises 4K lines of Scala code.' but does not provide any link or explicit statement about making this code open source or publicly available.
Open Datasets Yes We evaluated DIFFLOG on a suite of 34 benchmark problems [Si et al., 2018].
Dataset Splits No The paper uses 'training labels' and 'training data' but does not specify any training/validation/test splits, percentages, or absolute sample counts for data partitioning.
Hardware Specification Yes All experiments were conducted on Linux machines with Intel Xeon 3GHz processors and 64GB memory.
Software Dependencies No The paper mentions 'The implementation of DIFFLOG comprises 4K lines of Scala code.' but does not provide specific version numbers for Scala or any other software dependencies.
Experiment Setup Yes We initialize w by uniformly sampling weights wr [0.25, 0.75]. We apply MCMC sampling after every 30 iterations of Newton s root-finding method, and sample new weights as follows: X U(0, 1) wnew = wold 2X if X < 0.5 1 (1 wold) p 2(1 X) otherwise. The temperature T used in simulated annealing is as follows: T = 1.0 C log(5 + #iter) where C is initially 0.0001 and #iter is the number of iterations.