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. |