Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 30075
On Pattern-Based Programming towards the Discovery of Frequent Patterns

Authors: Kittisak Kerdprasop, Nittaya Kerdprasop


The problem of frequent pattern discovery is defined as the process of searching for patterns such as sets of features or items that appear in data frequently. Finding such frequent patterns has become an important data mining task because it reveals associations, correlations, and many other interesting relationships hidden in a database. Most of the proposed frequent pattern mining algorithms have been implemented with imperative programming languages. Such paradigm is inefficient when set of patterns is large and the frequent pattern is long. We suggest a high-level declarative style of programming apply to the problem of frequent pattern discovery. We consider two languages: Haskell and Prolog. Our intuitive idea is that the problem of finding frequent patterns should be efficiently and concisely implemented via a declarative paradigm since pattern matching is a fundamental feature supported by most functional languages and Prolog. Our frequent pattern mining implementation using the Haskell and Prolog languages confirms our hypothesis about conciseness of the program. The comparative performance studies on line-of-code, speed and memory usage of declarative versus imperative programming have been reported in the paper.

Keywords: Frequent pattern mining, functional programming, pattern matching, logic programming.

Digital Object Identifier (DOI):

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 957


[1] R. Agrawal, T. Imielinski, and A. Swami, "Mining association rules between sets of items in large databases," in Proc. ACM SIGMOD Int. Conf. Management of Data, 1993, pp. 207-216.
[2] R. Agrawal and R. Srikant, "Fast algorithm for mining association rules," in Proc. Int. Conf. Very Large Data Bases, 1994, pp. 487-499.
[3] C. Borgelt, "Frequent item sets miner for FIMI 2003," 2003.
[4] I. Bratko, Prolog Programming for Artificial Intelligence (3rd ed.), Pearson, 2001.
[5] A. Ceglar and J. Roddick, "Association mining," ACM Computing Surveys, vol. 38, no.2, 2006.
[6] J. Han and M. Kamber, Data Mining: Concepts and Techniques (2nd ed.), Morgan Kaufmann, 2006.
[7] P. Hudak, J. Fasel, and J. Peterson, "A gentle introduction to Haskell," Yale University, Technical Report Yale U/DCS/RR-901, 1996.
[8] P. Jones and J. Hughes (eds.), Standard Libraries for the Haskell 98 Programming Languages. Available:
[9] P. Shenoy, J. Haritsa, S. Sudarshan, G. Bhalotia, M. Bawa, and D. Shah, "Turbo-charging vertical mining of large databases," in Proc. ACM SIGMOD Int. Conf. Management of Data, 2000, pp. 22-33.
[10] P. Tan, M. Steinbach, and V. Kumar, Introduction to Data Mining, Addison Wesley, 2005.
[11] S. Thompson, Haskell: The Craft of Functional Programming (2nd ed.), Addison Wesley, 1999.