Skip to main content

Transactional Forward Chaining: A Functional Approach

  • Conference paper
Artificial Intelligence and Soft Computing (ICAISC 2015)

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

Included in the following conference series:

Abstract

Forward chaining is an effective method of reasoning used in production systems. Enhancing it with a transaction support enables rollback actions in productions and opens a way to define and perform reversible reasoning schemes. We present selected implementation details of a custom transactional production system with forward chaining, based on the Rete algorithm, realized in the functional programming style. We also discuss some design issues, like operating in multi-core environment, indexing, using immutable collections, and the Software Transactional Memory in Haskell. Additionally we give a prospect of exploiting partial knowledge stored in Rete network for the purpose of performing analysis in the absence of information.

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. Bacchus, F.: Yee Whye Teh: Making Forward Chaining Relevant. In: Proc. 4th Intl. Conf. AI Planning Systems (1998)

    Google Scholar 

  2. Ugur, K., Nau, D.: Forward-Chaining Planning in Nondeterministic Domains. In: (AAAI 2004) Nineteenth National Conference on Artificial Intelligence (2004)

    Google Scholar 

  3. Siler, W., Buckley, J.J.: Fuzzy Expert Systems and Fuzzy Reasoning. John Wiley & Sons, Inc. (2005)

    Google Scholar 

  4. Sasikumar, M., Ramani, S., Muthu Raman, 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 Transactions on Information Science and Applications 7(8), 1101–1114 (2010)

    Google Scholar 

  6. Pakiarajah, V., Crowther, P., Hartnett, J.: Conflict Resolution Techniques for Expert Systems Used to Classify Remotely Sensed Satellite Images. GeoComputation (2000), http://www.geocomputation.org/2000/GC025/Gc025.htm

  7. Weikum, G., Vossen, G.: Transactional Information Systems Theory - Algorithms, and the Practice of Concurrency Control and Recovery. The Morgan Kaufmann Series in Data Management Systems. Morgan Kaufmann Publishers (2002)

    Google Scholar 

  8. Bernstein, P.A., Newcomer, E.: Principles of Transaction Processing, 2nd edn. Morgan Kaufmann Publishers (2009)

    Google Scholar 

  9. Clayman, S.: Developing and Measuring Parallel Rule-Based Systems in a Functional Programming Environment. PhD Thesis. University College London, Department of Computer Science (1993)

    Google Scholar 

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

    Google Scholar 

  11. Doorenbos, R.B.: Production Matching for Large Learning Systems. PhD Thesis. Computer Science Department, Carnegie Mellon University Pittsburgh, PA (1995)

    Google Scholar 

  12. Veera Narayana, M., Sunil Kumar, A., Suneel Kumar, B., Samkishan, N., Jogeswara Rao, B.: Implementation of RETE Algorithm Using Lemon Expert System. International Journal of Emerging Research in Management & Technology 2(7) (2013) ISSN: 2278-9359

    Google Scholar 

  13. Bird, R., Wadler, R.: Introduction to Functional Programming. Series in Computer Science (Hoare, C.A.R. (ed.)). Prentice Hall International (UK) Ltd. (1988)

    Google Scholar 

  14. Awodey, S.: Category Theory, 2nd edn. Oxford University Press (2010)

    Google Scholar 

  15. Peyton Jones, S.: The Implementation of Functional Programming Languages. Prentice-Hall International Series in Computer Science. Prentice Hall International (UK) Ltd. (1987)

    Google Scholar 

  16. Hudak, P.: The Haskell School of Expression, Learning Functional Programming by Multimedia. Cambridge University Press (2000)

    Google Scholar 

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

    Google Scholar 

  18. Doets, K., van Eijck, J.: The Haskell Road to Logic. Math and Programming. College Publications (2004) ISBN-10: 0954300696, ISBN-13: 978-0954300692

    Google Scholar 

  19. Haskell Wikibook, http://en.wikibooks.org/wiki/Haskell

  20. Haskell Programming Guidelines - HaskellWiki, http://www.haskell.org/haskellwiki/Programming_guidelines

  21. Haskell Programming Tips - HaskellWiki, http://www.haskell.org/haskellwiki/Things_to_avoid

  22. Allison, L.: Circular Programs and SelfReferential Structures. Software Practice and Experience 19(2), 99–109 (1989)

    Article  MathSciNet  Google Scholar 

  23. Hughes, J.R.: A Novel Representation of Lists and Its Application to the Function “Reverse”. Information Processing Letters 22, 141–144 (1986)

    Article  Google Scholar 

  24. Hinze, R., Paterson, R.: Finger trees: a simple general-purpose data structure. Journal of Functional Programming 16(2), 197–217 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  25. Discolo, A., Harris, T., Marlow, S., Peyton Jones, S., Singh, S.: Lock-Free Data Structures using STM in Haskell. In: Hagiya, M. (ed.) FLOPS 2006. LNCS, vol. 3945, pp. 65–80. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  26. Harris, T., Peyton Jones, S.: Transactional memory with data invariants. In: First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing, Ottawa, Canada (June 11, 2006)

    Google Scholar 

  27. Marlow, S.: Parallel and Concurrent Programming in Haskell. OReilly Media, Inc., Sebastopol (2013) ISBN: 978-1-449-33594-6

    Google Scholar 

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

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Grzanek, K. (2015). Transactional Forward Chaining: A Functional Approach. In: Rutkowski, L., Korytkowski, M., Scherer, R., Tadeusiewicz, R., Zadeh, L., Zurada, J. (eds) Artificial Intelligence and Soft Computing. ICAISC 2015. Lecture Notes in Computer Science(), vol 9120. Springer, Cham. https://doi.org/10.1007/978-3-319-19369-4_54

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-19369-4_54

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-19368-7

  • Online ISBN: 978-3-319-19369-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics