Skip to main content

Prolog Performance on Larger Datasets

  • Conference paper
Practical Aspects of Declarative Languages (PADL 2007)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4354))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. AĂ¯t-Kaci, H.: Warren’s Abstract Machine — A Tutorial Reconstruction. MIT Press, Cambridge (1991)

    Google Scholar 

  2. Gasch, A.P., Huang, M., Metzner, S., Botstein, D., Elledge, S.J., Brown, P.O.: Genomic expression responses to DNA-damaging agents and the regulatory role of the yeast ATR homolog Mec1p. Mol. Biol. Cell. 12, 2987–3003 (2001)

    Google Scholar 

  3. Gasch, A.P., Spellman, P.T., Kao, C.M., Carmel-Harel, O., Eisen, M.B., Storz, G., Botstein, D., Brown, P.O.: Genomic expression programs in the response of yeast cells to environmental changes. Mol. Biol. Cell. 11, 4241–4257 (2000)

    Google Scholar 

  4. Appleby, K., Carlsson, M., Haridi, S., Sahlin, D.: Garbage collection for Prolog based on WAM. Communications of the ACM 31(6), 171–183 (1989)

    Google Scholar 

  5. Bell, J.R.: Threaded code. Communications of the ACM 16(6), 370–372 (1973)

    Article  Google Scholar 

  6. Benton, W.: Personal communication (2006)

    Google Scholar 

  7. Casey, K., Gregg, D., Ertl, M.A., Nisbet, A.: Towards superinstructions for java interpreters. In: Krall, A. (ed.) SCOPES 2003. LNCS, vol. 2826, pp. 329–343. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  8. Castro, L.F., Santos Costa, V.: Understanding Memory Management in Prolog Systems. In: Codognet, P. (ed.) ICLP 2001. LNCS, vol. 2237, pp. 11–26. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  9. Chen, W., Warren, D.S.: Tabled Evaluation with Delaying for General Logic Programs. Journal of the ACM 43(1), 20–74 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  10. Davis, J., Burnside, E.S., Dutra, I., Page, D., Ramakrishnan, R., Costa, V.S., Shavlik, J.W.: View learning for statistical relational learning: With an application to mammography. In: Kaelbling, L.P., Saffiotti, A. (eds.) IJCAI-2005, Proceedings of the Nineteenth International Joint Conference on Artificial Intelligence, Edinburgh, Scotland, July 30–August 5, 2005, pp. 677–683. Professional Book Center (2005)

    Google Scholar 

  11. Demoen, B.: A different look at garbage collection for the wam. In: Stuckey, P.J. (ed.) ICLP 2002. LNCS, vol. 2401, pp. 179–193. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  12. Demoen, B., Nguyen, P.-L.: So Many WAM Variations, So Little Time. In: Palamidessi, C., et al. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 1240–1254. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  13. Fellbaum: WordNet: An Electronic Lexical Database (Language, Speech, and Communication). The MIT Press, Cambridge (1998)

    Google Scholar 

  14. Ferreira, M., Rocha, R.: Coupling optyap with a database system. In: Dignum, F.P.M., van Eijk, R.M., Flores, R. (eds.) AC 2005. LNCS (LNAI), vol. 3859, pp. 107–114. Springer, Heidelberg (2006)

    Google Scholar 

  15. Goadrich, M., Oliphant, L., Shavlik, J.: Learning Ensembles of First-Order Clauses for Recall-Precision Curves: A Case Study in Biomedical Information Extraction. In: Proceedings of the 14th International Conference on Inductive Logic Programming, Porto, Portugal (2004)

    Google Scholar 

  16. Guo, H.-F., Gupta, G.: A Simple Technique for Implementing Tabling based on Dynamic Reordering of Alternatives. In: Codognet, P. (ed.) ICLP 2001. LNCS, vol. 2237. Springer, Heidelberg (2001)

    Google Scholar 

  17. Kok, S., Domingos, P.: Learning the structure of markov logic networks. In: Proceedings of the Twenty-Second International Conference on Machine Learning, pp. 441–448. ACM Press, New York (2005)

    Google Scholar 

  18. Lindholm, T.G., O’Keefe, R.A.: Efficient implementation of a defensible semantics for dynamic Prolog code. In: Lassez, J.-L. (ed.) Proceedings of the Fourth International Conference on Logic Programming. MIT Press Series in Logic Programming, University of Melbourne, May 1987, pp. 21–39. MIT Press, Cambridge (1987)

    Google Scholar 

  19. McCallum, A., Nigam, K., Rennie, J., Seymore, K.: Automating the construction of internet portals with machine learning. Information Retrieval Journal 3, 127–163 (2000), www.research.whizbang.com/data

    Article  Google Scholar 

  20. McJonese, P.: Eachmovie collaborative filtering data set. Technical report, DEC Systems Research Center (1997)

    Google Scholar 

  21. Morales, J.F., et al.: A generator of efficient abstract machine implementations and its application to emulator minimization. In: Gabbrielli, M., Gupta, G. (eds.) ICLP 2005. LNCS, vol. 3668, pp. 21–36. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  22. Nässén, H., Carlsson, M., Sagonas, K.F.: Instruction merging and specialization in the sicstus prolog virtual machine. In: Proceedings of the 3rd international ACM SIGPLAN conference on Principles and practice of declarative programming, Florence, Italy, September 5-7, 2001, pp. 49–60. ACM Press, New York (2001)

    Chapter  Google Scholar 

  23. Nilsson, H.: The external database in sicstus prolog. In: Voronkov, A. (ed.) LPAR 1992. LNCS, vol. 624, pp. 493–495. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  24. Ong, I., Page, D., Costa, V.S.: Inferring Regulatory Networks from Time Series Expression Data and Relational Data via Inductive Logic Programming. In: Inductive Logic Programming Meeting (2006)

    Google Scholar 

  25. Ray, S., Craven, M.: Representing sentence structure in hidden markov models for information extraction. In: Nebel, B. (ed.) Proceedings of the Seventeenth International Joint Conference on Artificial Intelligence, IJCAI 2001, Seattle, Washington, August 4-10, 2001, pp. 1273–1279. Morgan Kaufmann, San Francisco (2001)

    Google Scholar 

  26. Rocha, R., Silva, F., Costa, V.S.: On Applying Or-Parallelism and Tabling to Logic Programs. Theory and Practice of Logic Programming Systems 5(1–2), 161–205 (2005)

    Article  MATH  Google Scholar 

  27. Sagonas, K.F., Swift, T.: An abstract machine for tabled execution of fixed-order stratified logic programs. ACM Transactions on Programming Languages and Systems 20(3), 586–634 (1998)

    Article  Google Scholar 

  28. Santos Costa, V.: Performance Issues in Prolog Applications. In: Pires, F.M., Abreu, S.P. (eds.) EPIA 2003. LNCS (LNAI), vol. 2902, p. 8. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  29. Santos Costa, V., Srinivasan, A., Camacho, R., Blockeel, H., Demoen, B., Janssens, G., Struyf, J., Vandecasteele, H., Van Laer, W.: Query Transformations for Improving the Efficiency of ILP Systems. Journal of Machine Learning Research 4, 465–491 (2003)

    Article  Google Scholar 

  30. Santos Costa, V., Warren, D.H.D., Yang, R.: Andorra-I: A Parallel Prolog System that Transparently Exploits both And- and Or-Parallelism. In: Third ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming PPOPP, April 1991. SIGPLAN Notices, vol. 26(7), pp. 83–93. ACM Press, New York (1991)

    Chapter  Google Scholar 

  31. Van Roy, P.: 1983-1993: The Wonder Years of Sequential Prolog Implementation. The Journal of Logic Programming 19/20 (May/July 1994)

    Google Scholar 

  32. Warren, D.H.D.: Prolog Engine. Technical report, Artificial Intelligence Center, SRI International, 333 Ravenswood Ave, Menlo Park CA 94025 (April 1983) (unpublished draft)

    Google Scholar 

  33. Zhou, N.-F.: Implementation of a Linear Tabling Mechanism. In: Pontelli, E., Santos Costa, V. (eds.) PADL 2000. LNCS, vol. 1753, pp. 109–123. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  34. Zhou, N.-F., Takagi, T., Kazuo, U.: A Matching Tree Oriented Abstract Machine for Prolog. In: Warren, D.H.D., Szeredi, P. (eds.) Proceedings of the Seventh International Conference on Logic Programming, pp. 158–173. MIT Press, Cambridge (1990)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Costa, V.S. (2006). Prolog Performance on Larger Datasets. In: Hanus, M. (eds) Practical Aspects of Declarative Languages. PADL 2007. Lecture Notes in Computer Science, vol 4354. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69611-7_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69611-7_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69608-7

  • Online ISBN: 978-3-540-69611-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics