Реалізація чат-ботів із поведінкою, що керується скінченним автоматом, у графічному конструкторі

Автор(и)

  • Nataliya Gulayeva Національний університет «Києво-Могилянська академія», Ukraine https://orcid.org/0000-0003-4588-0702
  • Mykhailo Kobieliev Національний університет «Києво-Могилянська академія», Ukraine

DOI:

https://doi.org/10.18523/2617-3808.2022.5.31-40

Ключові слова:

скінченний автомат, СА, model driven development, генерація кода, чат-бот, Telegram месенджер, мікросервісна архітектура, документна база даних, резидентна база даних

Анотація

Окреслено основні методи використання скінченних автоматів (СА) для моделювання й програмної реалізації поведінки об’єктів різної природи. Як приклад інтерактивної програми розглянуто чат-боти: основні поняття, методи класифікації, способи реалізації. Запропоновано розширення СА для моделювання поведінки текстового чат-бота, побудованого на правилах. Дано короткий огляд методів перетворення СА на програмний код у різних парадигмах програмування. Запропоновано динамічний підхід для виконання такого перетворення, зі збереженням специфікації СА в базі даних. Розроблено графічний конструктор, який дає змогу створювати модель чат-бота, базованого на правилах, у вигляді скінченного автомата та виконує трансформацію побудованої моделі для безпосереднього використання в месенджер-платформі Telegram.

Біографії авторів

Nataliya Gulayeva, Національний університет «Києво-Могилянська академія»

Гулаєва Наталія Михайлівна – кандидат фізико-математичних наук, доцент, доцент кафедри інформатики факультету інформатики Національного університету «Києво-Могилянська академія», ngulayeva@yahoo.com

Mykhailo Kobieliev, Національний університет «Києво-Могилянська академія»

Кобєлєв Михайло Дмитрович – студент магістерської програми «Комп’ютерні науки» факультету інформатики Національного університету «Києво-Могилянська академія», michael.kobelev@outlook.com

Посилання

  1. Aabidi, M. H., Jakimi, A., Kinani, E. H., & Elkoutbi, M. (2013). A New Approach for Code Generation from UML State Machine. International Review on Computers and Software, 8, 500–506.
  2. Adamopoulou, E., & Moussiades, L. (2020). An Overview of Chatbot Technology. In IFIP International Conference on Artificial Intelligence Applications and Innovations, 373–383. https://doi.org/10.1007/978-3-030-49186-4_31
  3. Aho, A. V., Lam, M. S., Sethi, R., & Ullman, J. D. (2007). Compilers: Principles, Techniques, and Tools (2nd Edition). Pearson/Addison Wesley.ArgoUML. https://argouml-tigris-org.github.io/.
  4. Badreddin, O. B., Lethbridge, T. C., Forward, A., Elaasar, M., Aljamaan, H. I., & Garzón, M. (2014). Enhanced code generation from UML composite state machines. In 2nd International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2014), 235–245.
  5. Boost Meta State Machine. https://www.boost.org/doc/libs/1_79_0/libs/msm/doc/HTML/index.html.
  6. BotSailor. https://botsailor.com/.
  7. BOUML. https://www.bouml.fr.
  8. BridgePoint/xtUML. https://xtuml.org/.
  9. C and C++ Finite State Machine Framework. https://www.blocknet.de/Programmierung/cpp/fsm/fsm.html.
  10. Cargill, T. (1992). C++ Programming Style. Addison-Wesley.
  11. Concurrent Hierarchical State Machine (CHSM). http://chsm.sourceforge.net/.
  12. David, R., Rothe, S., & Söffker, D. (2021). Lane changing behavior recognition based on Artificial Neural Network-based State Machine approach. In 2021 IEEE International Intelligent Transportation Systems Conference (ITSC), 3444–3449. https://doi.org/10.1109/ITSC48978.2021.9564919
  13. Domínguez, E., Pérez, B., Rubio, A., & Zapata, M. (2012). A systematic review of code generation proposals from state machine specifications. Information and Software Technology, 54 (10), 1045–1066. https://doi.org/10.1016/j.infsof.2012.04.008
  14. Enterprise Architect. https://www.sparxsystems.com.au/.
  15. Fauzi, R., Hariadi, M., Nugroho, S., & Lubis, M. (2019). Defense behavior of real time strategy games: Comparison between HFSM and FSM. Indonesian Journal of Electrical Engineering and Computer Science, 13, 634–642. https://doi.org/10.11591/ijeecs.v13.i2.pp634-642
  16. Fogel, L. J., Owens, A. J., & Walsh, M. J. (1966). Artificial Intelligence through Simulated Evolution. J. Wiley&Sons.
  17. Følstad, A., Araujo, T., Law, E., Brandtzaeg, P., Papadopoulos, S., Reis, L., ..., Luger, E. (2021). Future directions for chatbot research: an interdisciplinary research agenda. Computing, 103, 2915–2942. https://doi.org/10.1007/s00607-021-01016-7
  18. FSMGenerator. http://fsmgenerator.sourceforge.net/.
  19. Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: elements of reusable object-oriented software. Addison-Wesley.
  20. Gulayeva, N. (2005). Avtomatnyi pidkhid do orhanizatsii pidtrymky merezhevykh kamer u bahatokliientskykh systemakh. In Tez. dop. II Mizhnar. konf. TAAPSD2005, 82–86 [in Ukrainian].
  21. Harel, D. (1987). Statecharts: A visual formalism for complex systems. Scientific Computer Programming, 8 (3), 231–274. https://doi.org/10.1016/0167-6423(87)90035-9
  22. Harel, D., & Pnueli, A. (1985). On the development of reactive systems. Logics and Models of Concurrent Systems, 13, 477–498. https://doi.org/10.1007/978-3-642-82453-1_17
  23. Hung, M. (2019). A Generalized FSM Implementation Framework. Advances in Smart Vehicular Technology, Transportation, Communication and Applications, 465–470. https://doi.org/10.1007/978-3-030-04582-1_54
  24. Hussain, S., Ameri Sianaki, O., & Ababneh, N. (2019). A Survey on Conversational Agents/Chatbots Classification and Design Techniques. Workshop on Web, Artificial Intelligence and Network Applications (WAINA-2019), 946–956. https://doi.org/10.1007/978-3-030-15035-8_93
  25. Korotunov, S., &. Tabunshchyk, H. (2020). Analiz pidkhodiv do modeliuvannia ta veryfikatsii kiberfizychnykh system. Radioelektronika, informatyka, upravlinnia, 3, 57–68 [in Ukrainian]. https://doi.org/10.15588/1607-3274-2020-3-5
  26. Krukovskij, M. (2006). Avtomatno-grafovaja formal’naja model’ kompozitnogo dokumentooborota. Matematicheskie mashiny i sistemy, 2, 87–95 [in Russian].
  27. Lopes, S. F., Silva, S., & Monteiro, J. L. (2012). An easy-to-use and flexible object-oriented framework for extended finite state machines. In IEEE 10th International Conference on Industrial Informatics, 35–40. https://doi.org/10.1109/INDIN.2012.6301360
  28. Machina.js. http://machina-js.org/.
  29. Manybot. https://manybot.io/.
  30. Miao, H., Qian, Z., & He, T. (2007). Modeling Web Browser Interactions Using FSM. In 2nd IEEE Asia-Pacific Service Computing Conference (APSCC 2007), 211–217. https://doi.org/10.1109/APSCC.2007.13
  31. OMG, Unified Modeling Language (OMG UML) Ver. 2.5.1 Specification. https://www.omg.org/spec/UML/2.5.1/PDF.
  32. Park, H., Van Messem, A., & De Neve, W. (2020). Item Measurement for Logistics-Oriented Belt Conveyor Systems Using a Scenario-Driven Approach and Automata-Based Control Design. In 2020 IEEE 7th International Conference on Industrial Engineering and Applications (ICIEA), 271–280. https://doi.org/10.1109/ICIEA49774.2020.9102044
  33. Pham, V. C., Radermacher, A., Gérard, S., & Li, S. (2017). Complete Code Generation from UML State Machine. In 5th International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2017), 208–219. https://doi.org/10.5220/10.5220/0006274502080219
  34. Ricca, F., Leotta, M., Reggio, G., Tiso, A., Guerrini, G., & Torchiano, M. (2012). Using UniMod for Maintenance Tasks: An Experimental Assessment in the Context of Model Driven Development. In 2012 4th International Workshop on Modeling in Software Engineering, MiSE, 77–83. https://doi.org/10.1109/MISE.2012.6226018
  35. Rosmaro. https://rosmaro.js.org/.
  36. Salmre, I. (2005). Chapter 5. Our Friend, the State Machine. In Writing Mobile Code: Essential Software Engineering for Building Mobile Applications. Addison-Wesley.
  37. Samek, M. (2008). Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems, 2nd Edition. CRC Press. https://doi.org/10.1201/b16463
  38. Selic, B. (2003). The pragmatics of model-driven development. IEEE Software, 20 (5), 19–25.
  39. Sendpulse. https://sendpulse.com/ru/features/chatbot.
  40. Shalyto, A. A., & Tukkel’, N. I. (2001). SWITCH Technology: An Automated Approach to Developing Software for Reactive Systems. Programming and Computer Software, 27, 260–276. https://doi.org/10.1023/A:1012392927006
  41. Spinke, V. (2013). An object-oriented implementation of concurrent and hierarchical state machines. Information and Software Technology, 55. https://doi.org/10.1016/j.infsof.2013.03.005
  42. Stateflow. https://www.mathworks.com/products/stateflow.html.
  43. StateWORKS. http://www.stateworks.com/.
  44. Thompson, S. (2000). Regular Expressions and Automata using Haskell (Technical report). University of Kent. https://kar.kent.ac.uk/22057/.
  45. UModel. https://www.altova.com/umodel.
  46. UMPLE. https://cruise.umple.org/umpleonline/.
  47. van Gurp, J., & Bosch, J. (1999). On the implementation of finite state machines. In Proceedings of the 3rd Annual IASTED International Conference Software Engineering and Applications, 172–178.
  48. Visual Paradigm. https://www.visual-paradigm.com/.
  49. Wagner, F., Schmuki, R., Wagner, T., & Wolstenholme, P. (2006). Modeling Software with Finite State Machines: A Practical Approach. New York: Auerbach Publications CRC Press. https://doi.org/10.1201/9781420013641
  50. Weizenbaum, J. (1966). ELIZA – a computer program for the study of natural language communication between man and machine. Communications of the ACM, 9 (1), 36–45. https://doi.org/10.1145/365153.365168
  51. YAKINDU Statechart Tools. https://www.itemis.com/en/yakindu/state-machine/.
  52. Zuzak, I., Budiselic, I., & Delac, G. (2011). A Finite-State Machine Approach for Modeling and Analyzing RESTful Systems. Journal of Web Engineering (JWE), 10 (4), 353–390.

##submission.downloads##

Опубліковано

2023-02-24

Як цитувати

[1]
N. Gulayeva і M. Kobieliev, «Реалізація чат-ботів із поведінкою, що керується скінченним автоматом, у графічному конструкторі», NRPCOMP, т. 5, с. 31–40, Лют 2023.