Skip to main content

Forward Chaining with State Monad

  • Conference paper
  • First Online:
Artificial Intelligence and Soft Computing (ICAISC 2016)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 9693))

Included in the following conference series:

  • 1187 Accesses

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.

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 EPUB and 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

Notes

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

  1. Bacchus, F., Teh, Y.W.: Making forward chaining relevant. In: Proceedings of 4th International Conference AI Planning Systems (1998)

    Google Scholar 

  2. Ugur, K., Nau, D.: Forward-chaining planning in nondeterministic domains. In: (AAAI-04) Nineteenth National Conference on Artificial Intelligence (2004)

    Google Scholar 

  3. Siler, W., Buckley, J.J.: Fuzzy Expert Systems and Fuzzy Reasoning. Wiley, London (2005)

    MATH  Google Scholar 

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

    Google Scholar 

  5. Polach, P., Valenta, J., Jirsik, V.: Knowledge coding methods for rule-based expert systems. WSEAS Trans. Inf. Sci. Appl. 8(7), 1101–1114 (2010)

    MATH  Google Scholar 

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

    Google Scholar 

  7. Forgy, C.: ON the efficient implementation of production systems. Carnegie-Mellon University, Department of Computer Science (1979)

    Google Scholar 

  8. Doorenbos, R.B.: Production matching for large learning systems. Ph.D. thesis, Computer Science Department, Carnegie Mellon University Pittsburgh, PA (1995)

    Google Scholar 

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

    Google Scholar 

  10. O’Sullivan, B., Goerzen, J., Stewart, D.: Real World Haskell. O’Reilly Media Inc., Sebastopol (2009)

    Google Scholar 

  11. Lipovaca, M.: Learn You a Haskell for Great Good!: A Beginner’s Guide, 1st edn. No Starch Press, San Francisco (2011)

    Google Scholar 

  12. Understanding monads, State: Haskell Wikibook (2015). https://en.wikibooks.org/wiki/Haskell/Understanding_monads/State

  13. van Laarhoven, T.: CPS based functional references (2009). http://twanvl.nl/blog/haskell/cps-functional-references

  14. O’Connor, R.: Functor is to lens as applicative is to biplate: introducing multiplate. In: ACM SIGPLAN 7th Workshop on Generic Programming, Tokyo (2011)

    Google Scholar 

  15. Kmett, E.: Lenses, Folds, and Travelsals - Haskell Package (2015). https://github.com/ekmett/lens

  16. Arnold, J.: Lens Tutorial - Introduction. http://blog.jakubarnold.cz/2014/07/14/lens-tutorial-introduction-part-1.html

  17. Grzanek, K.: A Repository of Common Haskell Utilities. https://github.com/kongra/kask-base/blob/master/Kask/Control/Lens.hs

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

    Google Scholar 

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

    Chapter  Google Scholar 

  20. Rete GitHub Repository. https://github.com/kongra/Rete

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Konrad Grzanek .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics