Abstract
Production systems use forward chaining to perform the reasoning, in this case - matching rules with facts. The Rete algorithm is an effective forward chaining realization. With the growing popularity of functional programming style, questions arise, how well suitable the style is for implementing complex algorithms in the Artificial Intelligence, like Rete. We present selected implementation details of our custom realization of the algorithm in purely functional programming language Haskell. This paper also discusses usability and usefulness of some advanced means of expression, that are common in functional style, for performing the task.
Keywords
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
In particular we mean Drools http://www.drools.org, Microsoft Business Rules Engine http://msdn.microsoft.com/en-us/library/aa561216.aspx and CLIPS http://clipsrules.sourceforge.net/.
References
Bacchus, F., Teh, Y.W.: Making forward chaining relevant. In: Proceedings of 4th International Conference AI Planning Systems (1998)
Ugur, K., Nau, D.: Forward-chaining planning in nondeterministic domains. In: (AAAI-04) Nineteenth National Conference on Artificial Intelligence (2004)
Siler, W., Buckley, J.J.: Fuzzy Expert Systems and Fuzzy Reasoning. Wiley, London (2005)
Sasikumar, M., Ramani, S., Muthu, R.S., Anjaneyulu, K.S.R., Chandrasekar, R.: A Practical Introduction to Rule Based Expert Systems. Narosa Publishing House, New Delhi (2007)
Polach, P., Valenta, J., Jirsik, V.: Knowledge coding methods for rule-based expert systems. WSEAS Trans. Inf. Sci. Appl. 8(7), 1101–1114 (2010)
Clayman, S.: Developing and measuring parallel rule-based systems in a functional programming environment. Ph.D. thesis, University College London, Department of Computer Science (1993)
Forgy, C.: ON the efficient implementation of production systems. Carnegie-Mellon University, Department of Computer Science (1979)
Doorenbos, R.B.: Production matching for large learning systems. Ph.D. thesis, Computer Science Department, Carnegie Mellon University Pittsburgh, PA (1995)
Bird, R., Wadler, R.: Introduction to Functional Programming. Series in Computer Science. Prentice Hall International (UK) Ltd, Englewood Cliffs (1988). Editor: C.A.R. Hoare
O’Sullivan, B., Goerzen, J., Stewart, D.: Real World Haskell. O’Reilly Media Inc., Sebastopol (2009)
Lipovaca, M.: Learn You a Haskell for Great Good!: A Beginner’s Guide, 1st edn. No Starch Press, San Francisco (2011)
Understanding monads, State: Haskell Wikibook (2015). https://en.wikibooks.org/wiki/Haskell/Understanding_monads/State
van Laarhoven, T.: CPS based functional references (2009). http://twanvl.nl/blog/haskell/cps-functional-references
O’Connor, R.: Functor is to lens as applicative is to biplate: introducing multiplate. In: ACM SIGPLAN 7th Workshop on Generic Programming, Tokyo (2011)
Kmett, E.: Lenses, Folds, and Travelsals - Haskell Package (2015). https://github.com/ekmett/lens
Arnold, J.: Lens Tutorial - Introduction. http://blog.jakubarnold.cz/2014/07/14/lens-tutorial-introduction-part-1.html
Grzanek, K.: A Repository of Common Haskell Utilities. https://github.com/kongra/kask-base/blob/master/Kask/Control/Lens.hs
Marlow, S.: Parallel and Concurrent Programming in Haskell. OReilly Media, Inc., Sebastopol (2013). ISBN: 978-1-449-33594-6. 1005 Gravenstein Highway North, CA 95472
Grzanek, K.: Transactional forward chaining: a functional approach. In: Rutkowski, L., Korytkowski, M., Scherer, R., Tadeusiewicz, R., Zadeh, L.A., Zurada, J.M. (eds.) Artificial Intelligence and Soft Computing. LNCS, vol. 9120, pp. 613–624. Springer, Heidelberg (2015)
Rete GitHub Repository. https://github.com/kongra/Rete
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Grzanek, K. (2016). Forward Chaining with State Monad. In: Rutkowski, L., Korytkowski, M., Scherer, R., Tadeusiewicz, R., Zadeh, L., Zurada, J. (eds) Artificial Intelligence and Soft Computing. ICAISC 2016. Lecture Notes in Computer Science(), vol 9693. Springer, Cham. https://doi.org/10.1007/978-3-319-39384-1_38
Download citation
DOI: https://doi.org/10.1007/978-3-319-39384-1_38
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-39383-4
Online ISBN: 978-3-319-39384-1
eBook Packages: Computer ScienceComputer Science (R0)