Prolog Performance on Larger Datasets

Declarative systems, such as logic programming, should be ideal to process large data sets efficiently. Unfortunately, the high-level nature of logic-based representations can cause inefficiencies, and may lead in some cases to unacceptable performance. We discuss how logic programming systems can accommodate large amounts of data in main memory. We use a number of real datasets to evaluate performance and discuss how a number of techniques can be used to improve memory scalabality for such datasets.

[1]  Li-Yan Yuan,et al.  Implementation of a Linear Tabling Mechanism , 2001, J. Funct. Log. Program..

[2]  Richard A. O'Keefe,et al.  Efficient Implementation of a Defensible Semantics for Dynamic PROLOG Code , 1987, International Conference on Logic Programming.

[3]  Konstantinos Sagonas,et al.  An abstract machine for tabled execution of fixed-order stratified logic programs , 1998, TOPL.

[4]  Pedro M. Domingos,et al.  Learning the structure of Markov logic networks , 2005, ICML.

[5]  Ricardo Rocha,et al.  Coupling OPTYAP with a database system , 2005, IADIS AC.

[6]  Bart Demoen,et al.  A Different Look at Garbage Collection for the WAM , 2002, ICLP.

[7]  Gopal Gupta,et al.  A Simple Scheme for Implementing Tabled Logic Programming Systems Based on Dynamic Reordering of Alternatives , 2001, ICLP.

[8]  Mark Craven,et al.  Representing Sentence Structure in Hidden Markov Models for Information Extraction , 2001, IJCAI.

[9]  Mats Carlsson,et al.  Instruction merging and specialization in the SICStus Prolog virtual machine , 2001, PPDP '01.

[10]  D. Botstein,et al.  Genomic expression programs in the response of yeast cells to environmental changes. , 2000, Molecular biology of the cell.

[11]  Andrew McCallum,et al.  Automating the Construction of Internet Portals with Machine Learning , 2000, Information Retrieval.

[12]  D. Botstein,et al.  Genomic expression responses to DNA-damaging agents and the regulatory role of the yeast ATR homolog Mec1p. , 2001, Molecular biology of the cell.

[13]  Bart Demoen,et al.  So Many WAM Variations, So Little Time , 2000, Computational Logic.

[14]  David Gregg,et al.  Towards Superinstructions for Java Interpreters , 2003, SCOPES.

[15]  Jude W. Shavlik,et al.  Learning Ensembles of First-Order Clauses for Recall-Precision Curves: A Case Study in Biomedical Information Extraction , 2004, ILP.

[16]  Vítor Santos Costa Performance Issues in Prolog Applications , 2003, EPIA.

[17]  Ashwin Srinivasan,et al.  Query Transformations for Improving the Efficiency of ILP Systems , 2003, J. Mach. Learn. Res..

[18]  Vítor Santos Costa,et al.  Understanding Memory Management in Prolog Systems , 2001, ICLP.

[19]  Peter Van Roy,et al.  1983-1993: The Wonder Years of Sequential Prolog Implementation , 1994, J. Log. Program..

[20]  Jesse Davis,et al.  View Learning for Statistical Relational Learning: With an Application to Mammography , 2005, IJCAI.

[21]  David Scott Warren,et al.  Tabled evaluation with delaying for general logic programs , 1996, JACM.

[22]  Peter Van Roy,et al.  The Wonder Years of Sequential Prolog Implementation , 1996 .

[23]  Neng-Fa Zhou,et al.  A Matching Tree Oriented Abstract Machine for Prolog , 1990, ICLP.

[24]  David Page,et al.  Inferring Regulatory Networks from Time Series Expression Data and Relational Data Via Inductive Logic Programming , 2007, ILP.

[25]  Hans Nilsson The External Database in SICStus Prolog , 1992, LPAR.

[26]  C. Fellbaum An Electronic Lexical Database , 1998 .

[27]  Ricardo Rocha,et al.  On applying or-parallelism and tabling to logic programs , 2003, Theory and Practice of Logic Programming.

[28]  James R. Bell,et al.  Threaded code , 1973, CACM.

[29]  Rong Yang,et al.  Andorra I: a parallel Prolog system that transparently exploits both And-and or-parallelism , 1991, PPOPP '91.

[30]  Hassan Aït-Kaci Warren's Abstract Machine , 1991, ICLP.

[31]  Manuel V. Hermenegildo,et al.  A Generator of Efficient Abstract Machine Implementations and Its Application to Emulator Minimization , 2005, ICLP.

[32]  Mats Carlsson,et al.  Garbarge collection for Prolog based on WAM , 1988, CACM.