Skip to main content

Exploiting Logic Programming for Runtime Verification: Current and Future Perspectives

  • Chapter
  • First Online:
Prolog: The Next 50 Years

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

  • 649 Accesses

Abstract

In this paper we discuss how Logic Programming can be exploited for Runtime Verification, an activity where a monitor is in charge for checking whether an observed event is allowed in the current state. If this is the case, the monitor moves to the successive state, observes another event, and so on, until either a violation is detected, or the stream of events ends. If the system emitting events is expected to run forever, so does the monitor.

Being a semi-formal method, Runtime Verification must rely on a formal specification of the states of the observed system, and on a precise, formal description of the monitor’s behavior. These requirements, and the raising need to deal with partial observability of events, make the adoption of Logic Programming in the Runtime Verification domain extremely suitable, flexible and powerful.

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 64.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 84.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.

    https://rmlatdibris.github.io/.

  2. 2.

    \(\mathcal {H}\) :- \(\mathcal {B}\) should be read as ‘if \(\mathcal {B}\) holds, then \(\mathcal {H}\) holds’.

  3. 3.

    The code of this simplified semantics is available from https://github.com/VivianaMascardi/VivianaMascardi.github.io/blob/main/Software/traceExprSimplifiedSemantics.pl.

  4. 4.

    In the real RV system, these events are generated by the SUS as a possibly infinite stream; the example provided here aims at simulating how the monitor works, assuming that events were previously logged and are hence a finite sequence.

  5. 5.

    In the first clause we should distinguish the case where the trace expression may halt (for example, it is eps), which is fine, from the case where the trace expression expects more events, which is instead a violation since the trace of events is the empty list []. The actual implementation in the RML repository provides a may_halt predicate to properly deal with these cases.

  6. 6.

    In the code available from the RML repository, we re-implemented substitution to manage the scope of a logical variable: hence, we can distinguish between the term P6 where we want A, B, X to be unified with the same values forever, and P6’ where we want them to remain the same in two consecutive ping pong events, but possibly change in the next round. In the RML language we exploit the let keyword and curly brackets to define the variable scope, as discussed in https://rmlatdibris.github.io/rml.html, ‘Parametric specifications’. The Prolog representation of trace expressions features the implementation of let. Given that terms can be cyclic, we used the coinduction library of SWI Prolog [75], to recognize when two cyclic terms are the same and manage them properly while applying substitutions, avoiding non-termination.

  7. 7.

    https://scholar.google.com/.

  8. 8.

    https://www.scala-lang.org/.

References

  1. Alberti, M., et al.: Expressing and verifying business contracts with abductive logic programming. Int. J. Electron. Commer. 12(4), 9–38 (2008). https://doi.org/10.2753/JEC1086-4415120401

  2. Alberti, M., Chesani, F., Gavanelli, M., Lamma, E., Mello, P., Torroni, P.: Verifiable agent interaction in abductive logic programming: the SCIFF framework. ACM Trans. Comput. Log. 9(4), 29:1–29:43 (2008). https://doi.org/10.1145/1380572.1380578

  3. Alberti, M., Dell’Acqua, P., Pereira, L.M.: Observation strategies for event detection with incidence on runtime verification: theory, algorithms, experimentation. Ann. Math. Artif. Intell. 62(3–4), 161–186 (2011). https://doi.org/10.1007/s10472-011-9259-5

  4. Ancona, D., et al.: Behavioral types in programming languages. Found. Trends Programm. Lang. 3(2–3), 95–230 (2016)

    Google Scholar 

  5. Ancona, D., Briola, D., El Fallah Seghrouchni, A., Mascardi, V., Taillibert, P.: Exploiting Prolog for projecting agent interaction protocols. In: Giordano, L., Gliozzi, V., Pozzato, G.L. (eds.) Proceedings of the 29th Italian Conference on Computational Logic, Torino, Italy, June 16–18, 2014. CEUR Workshop Proceedings, vol. 1195, pp. 30–45. CEUR-WS.org (2014). http://ceur-ws.org/Vol-1195/long2.pdf

  6. Ancona, D., Briola, D., Ferrando, A., Mascardi, V.: Global protocols as first class entities for self-adaptive agents. In: Weiss, G., Yolum, P., Bordini, R.H., Elkind, E. (eds.) Proceedings of the 2015 International Conference on Autonomous Agents and Multiagent Systems, AAMAS 2015, Istanbul, Turkey, May 4–8, 2015, pp. 1019–1029. ACM (2015). http://dl.acm.org/citation.cfm?id=2773282

  7. Ancona, D., Briola, D., Ferrando, A., Mascardi, V.: Runtime verification of fail-uncontrolled and ambient intelligence systems: a uniform approach. Intelligenza Artificiale 9(2), 131–148 (2015). https://doi.org/10.3233/IA-150084

  8. Ancona, D., Briola, D., Ferrando, A., Mascardi, V.: MAS-DRiVe: a practical approach to decentralized runtime verification of agent interaction protocols. In: Santoro, C., Messina, F., Benedetti, M.D. (eds.) Proceedings of the 17th Workshop “From Objects to Agents” co-located with 18th European Agent Systems Summer School (EASSS 2016), Catania, Italy, July 29–30, 2016. CEUR Workshop Proceedings, vol. 1664, pp. 35–43. CEUR-WS.org (2016). http://ceur-ws.org/Vol-1664/w7.pdf

  9. Ancona, D., Drossopoulou, S., Mascardi, V.: Automatic generation of self-monitoring mass from multiparty global session types in jason. In: Baldoni, M., Dennis, L., Mascardi, V., Vasconcelos, W. (eds.) DALT 2012. LNCS (LNAI), vol. 7784, pp. 76–95. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-37890-4_5

    Chapter  Google Scholar 

  10. Ancona, D., Ferrando, A., Mascardi, V.: Comparing trace expressions and linear temporal logic for runtime verification. In: Ábrahám, E., Bonsangue, M., Johnsen, E.B. (eds.) Theory and Practice of Formal Methods. LNCS, vol. 9660, pp. 47–64. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-30734-3_6

    Chapter  MATH  Google Scholar 

  11. Ancona, D., Ferrando, A., Mascardi, V.: Parametric runtime verification of multiagent systems. In: Larson, K., Winikoff, M., Das, S., Durfee, E.H. (eds.) Proceedings of the 16th Conference on Autonomous Agents and MultiAgent Systems, AAMAS 2017, São Paulo, Brazil, May 8–12, 2017, pp. 1457–1459. ACM (2017). http://dl.acm.org/citation.cfm?id=3091328

  12. Ancona, D., Ferrando, A., Mascardi, V.: Can determinism and compositionality coexist in RML? In: Dardha, O., Rot, J. (eds.) Proceedings Combined 27th International Workshop on Expressiveness in Concurrency and 17th Workshop on Structural Operational Semantics, EXPRESS/SOS 2020, and 17th Workshop on Structural Operational SemanticsOnline, 31 August 2020. EPTCS, vol. 322, pp. 13–32 (2020). https://doi.org/10.4204/EPTCS.322.4

  13. Ancona, D., Ferrando, A., Mascardi, V.: Exploiting probabilistic trace expressions for decentralized runtime verification with gaps. In: Calegari, R., Ciatto, G., Omicini, A. (eds.) Proceedings of the 37th Italian Conference on Computational Logic, Bologna, Italy, June 29–July 1, 2022. CEUR Workshop Proceedings, vol. 3204, pp. 154–170. CEUR-WS.org (2022). http://ceur-ws.org/Vol-3204/paper_17.pdf

  14. Ancona, D., Ferrando, A., Mascardi, V.: Mind the gap! Runtime verification of partially observable MASs with probabilistic trace expressions. In: Baumeister, D., Rothe, J. (eds.) EUMAS 2022. LNCS, vol. 13442, pp. 22–40. Springer, Cham (2022). https://doi.org/10.1007/978-3-031-20614-6_2

  15. Ancona, D., Franceschini, L., Ferrando, A., Mascardi, V.: RML: theory and practice of a domain specific language for runtime verification. Sci. Comput. Program. 205, 102610 (2021). https://doi.org/10.1016/j.scico.2021.102610

  16. Barnett, M., Schulte, W.: Spying on components: a runtime verification technique. In: Workshop on Specification and Verification of Component-Based Systems (2001)

    Google Scholar 

  17. Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-based runtime verification. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 44–57. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24622-0_5

    Chapter  MATH  Google Scholar 

  18. Bodden, E., Chen, F., Rosu, G.: Dependent advice: a general approach to optimizing history-based aspects. In: Sullivan, K.J., Moreira, A., Schwanninger, C., Gray, J. (eds.) Proceedings of the 8th International Conference on Aspect-Oriented Software Development, AOSD 2009, Charlottesville, Virginia, USA, March 2–6, 2009, pp. 3–14. ACM (2009). https://doi.org/10.1145/1509239.1509243

  19. Bodden, E., Hendren, L.J.: The Clara framework for hybrid typestate analysis. Int. J. Softw. Tools Technol. Transf. 14(3), 307–326 (2012). https://doi.org/10.1007/s10009-010-0183-5

  20. Bozzano, M., Delzanno, G., Martelli, M., Mascardi, V., Zini, F.: Logic programming and multi-agent systems: a synergic combination for applications and semantics. In: Apt, K.R., Marek, V.W., Truszczynski, M., Warren, D.S. (eds.) The Logic Programming Paradigm - A 25-Year Perspective. Artificial Intelligence, pp. 5–32. Springer, Heidelberg (1999). https://doi.org/10.1007/978-3-642-60085-2_1

  21. Bragaglia, S., Chesani, F., Mello, P., Montali, M., Torroni, P.: Reactive event calculus for monitoring global computing applications. In: Artikis, A., Craven, R., Kesim Çiçekli, N., Sadighi, B., Stathis, K. (eds.) Logic Programs, Norms and Action. LNCS (LNAI), vol. 7360, pp. 123–146. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-29414-3_8

    Chapter  Google Scholar 

  22. Briola, D., Mascardi, V., Ancona, D.: Distributed runtime verification of JADE and Jason multiagent systems with Prolog. In: Giordano, L., Gliozzi, V., Pozzato, G.L. (eds.) Proceedings of the 29th Italian Conference on Computational Logic, Torino, Italy, June 16–18, 2014. CEUR Workshop Proceedings, vol. 1195, pp. 319–323. CEUR-WS.org (2014). http://ceur-ws.org/Vol-1195/short3.pdf

  23. Briola, D., Mascardi, V., Ancona, D.: Distributed runtime verification of JADE multiagent systems. In: Camacho, D., Braubach, L., Venticinque, S., Badica, C. (eds.) Intelligent Distributed Computing VIII. SCI, vol. 570, pp. 81–91. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-10422-5_10

    Chapter  Google Scholar 

  24. Bugiel, S., Davi, L., Dmitrienko, A., Fischer, T., Sadeghi, A., Shastry, B.: Towards taming privilege-escalation attacks on android. In: 19th Annual Network and Distributed System Security Symposium, NDSS 2012, San Diego, California, USA, February 5–8, 2012. The Internet Society (2012). https://www.ndss-symposium.org/ndss2012/towards-taming-privilege-escalation-attacks-android

  25. Búr, M., Szilágyi, G., Vörös, A., Varró, D.: Distributed graph queries for runtime monitoring of cyber-physical systems. In: Russo, A., Schürr, A. (eds.) FASE 2018. LNCS, vol. 10802, pp. 111–128. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-89363-1_7

    Chapter  Google Scholar 

  26. Chesani, F., Masellis, R.D., Francescomarino, C.D., Ghidini, C., Mello, P., Montali, M., Tessaris, S.: Abducing workflow traces: a general framework to manage incompleteness in business processes. In: Kaminka, G.A., Fox, M., Bouquet, P., Hüllermeier, E., Dignum, V., Dignum, F., van Harmelen, F. (eds.) ECAI 2016 - 22nd European Conference on Artificial Intelligence, 29 August-2 September 2016, The Hague, The Netherlands - Including Prestigious Applications of Artificial Intelligence (PAIS 2016). Frontiers in Artificial Intelligence and Applications, vol. 285, pp. 1734–1735. IOS Press (2016). https://doi.org/10.3233/978-1-61499-672-9-1734

  27. Chesani, F., Mello, P., Montali, M., Torroni, P.: A logic-based, reactive calculus of events. Fundam. Informaticae 105(1-2), 135–161 (2010). https://doi.org/10.3233/FI-2010-361

  28. Chowdhury, O., Jia, L., Garg, D., Datta, A.: Temporal mode-checking for runtime monitoring of privacy policies. In: Biere, A., Bloem, R. (eds.) CAV 2014. LNCS, vol. 8559, pp. 131–149. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-08867-9_9

    Chapter  Google Scholar 

  29. Costantini, S., Dell’Acqua, P., Pereira, L.M., Tsintza, P.: Runtime verification of agent properties. In: Abreu, S., Seipel, D. (eds.) Proceedings of INAP 2009 18thInternational Conference on Applications of Declarative Programming and Knowledge Management, pp. 257–271 (2009)

    Google Scholar 

  30. Costantini, S., Gasperis, G.D.: Runtime self-checking via temporal (meta-)axioms for assurance of logical agent systems. In: Giordano, L., Gliozzi, V., Pozzato, G.L. (eds.) Proceedings of the 29th Italian Conference on Computational Logic, Torino, Italy, June 16–18, 2014. CEUR Workshop Proceedings, vol. 1195, pp. 241–255. CEUR-WS.org (2014). http://ceur-ws.org/Vol-1195/long16.pdf

  31. Costantini, S., Tocchio, A.: A logic programming language for multi-agent systems. In: Flesca, S., Greco, S., Ianni, G., Leone, N. (eds.) JELIA 2002. LNCS (LNAI), vol. 2424, pp. 1–13. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45757-7_1

    Chapter  Google Scholar 

  32. Dalpiaz, F., Giorgini, P., Mylopoulos, J.: Software self-reconfiguration: a BDI-based approach. In: Sierra, C., Castelfranchi, C., Decker, K.S., Sichman, J.S. (eds.) 8th International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS 2009), Budapest, Hungary, May 10–15, 2009, vol. 2, pp. 1159–1160. IFAAMAS (2009). https://dl.acm.org/citation.cfm?id=1558189

  33. Dell’Acqua, P., Engberg, M., Pereira, L.M.: An architecture for a rational reactive agent. In: Pires, F.M., Abreu, S. (eds.) EPIA 2003. LNCS (LNAI), vol. 2902, pp. 379–393. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-540-24580-3_44

    Chapter  Google Scholar 

  34. Dell’Acqua, P., Sadri, F., Toni, F.: Combining introspection and communication with rationality and reactivity in agents. In: Dix, J., del Cerro, L.F., Furbach, U. (eds.) JELIA 1998. LNCS (LNAI), vol. 1489, pp. 17–32. Springer, Heidelberg (1998). https://doi.org/10.1007/3-540-49545-2_2

    Chapter  MATH  Google Scholar 

  35. Du, X., Liu, Y., Tiu, A.: Trace-length independent runtime monitoring of quantitative policies in LTL. In: Bjørner, N., de Boer, F. (eds.) FM 2015. LNCS, vol. 9109, pp. 231–247. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-19249-9_15

    Chapter  Google Scholar 

  36. Estivill-Castro, V., Hexel, R.: Deterministic high-level executable models allowing efficient runtime verification. In: Pires, L.F., Hammoudi, S., Selic, B. (eds.) MODELSWARD 2017. CCIS, vol. 880, pp. 119–144. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-94764-8_6

    Chapter  Google Scholar 

  37. Ferrando, A.: Automatic partitions extraction to distribute the runtime verification of a global specification. In: Mascardi, V., Torre, I. (eds.) Proceedings of the Doctoral Consortium of AI*IA 2016 co-located with the 15th International Conference of the Italian Association for Artificial Intelligence (AI*IA 2016), Genova, Italy, November 29, 2016. CEUR Workshop Proceedings, vol. 1769, pp. 40–45. CEUR-WS.org (2016). http://ceur-ws.org/Vol-1769/paper07.pdf

  38. Ferrando, A.: RIVERtools: an IDE for RuntIme VERification of MASs, and beyond. In: Mascardi, V. (ed.) Proceedings of the Demonstrations Track of PRIMA 2017 co-located with the 20th International Conference on Principles and Practice of Multi-Agent Systems (PRIMA 2017). CEUR Workshop Proceedings, vol. 2056, pp. 13–26. CEUR-WS.org (2017)

    Google Scholar 

  39. Ferrando, A., Cardoso, R.C., Fisher, M., Ancona, D., Franceschini, L., Mascardi, V.: ROSMonitoring: a runtime verification framework for ROS. In: Mohammad, A., Dong, X., Russo, M. (eds.) TAROS 2020. LNCS (LNAI), vol. 12228, pp. 387–399. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-63486-5_40

    Chapter  Google Scholar 

  40. Ferrando, A., Dennis, L.A., Ancona, D., Fisher, M., Mascardi, V.: Verifying and validating autonomous systems: towards an integrated approach. In: Colombo, C., Leucker, M. (eds.) RV 2018. LNCS, vol. 11237, pp. 263–281. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03769-7_15

    Chapter  Google Scholar 

  41. Franceschini, L.: RML: runtime monitoring language: a system-agnostic DSL for runtime verification. In: Marr, S., Cazzola, W. (eds.) Conference Companion of the 3rd International Conference on Art, Science, and Engineering of Programming, Genova, Italy, April 1–4, 2019. pp. 28:1–28:3. ACM (2019). https://doi.org/10.1145/3328433.3328462

  42. Fredlund, L.Å., Mariño, J., Pérez, S., Tamarit, S.: Runtime verification in erlang by using contracts. In: Silva, J. (ed.) WFLP 2018. LNCS, vol. 11285, pp. 56–73. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-16202-3_4

    Chapter  Google Scholar 

  43. Fung, T.H., Kowalski, R.A.: The Iff proof procedure for abductive logic programming. J. Log. Program. 33(2), 151–165 (1997). https://doi.org/10.1016/S0743-1066(97)00026-5

  44. Hamlen, K.W., Jones, M.M., Sridhar, M.: Aspect-oriented runtime monitor certification. In: Flanagan, C., König, B. (eds.) TACAS 2012. LNCS, vol. 7214, pp. 126–140. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-28756-5_10

    Chapter  Google Scholar 

  45. Havelund, K.: Rule-based runtime verification revisited. Int. J. Softw. Tools Technol. Transfer 17(2), 143–170 (2014). https://doi.org/10.1007/s10009-014-0309-2

    Article  Google Scholar 

  46. Havelund, K., Reger, G., Roşu, G.: Runtime verification past experiences and future projections. In: Steffen, B., Woeginger, G. (eds.) Computing and Software Science. LNCS, vol. 10000, pp. 532–562. Springer, Cham (2019). https://doi.org/10.1007/978-3-319-91908-9_25

    Chapter  MATH  Google Scholar 

  47. Havelund, K., Roşu, G.: Runtime verification - 17 years later. In: Colombo, C., Leucker, M. (eds.) RV 2018. LNCS, vol. 11237, pp. 3–17. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03769-7_1

    Chapter  MATH  Google Scholar 

  48. Howar, F., Giannakopoulou, D., Mues, M., Navas, J.A.: Generating component interfaces by integrating static and symbolic analysis, learning, and runtime monitoring. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11245, pp. 120–136. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03421-4_9

    Chapter  Google Scholar 

  49. Hu, R., Neykova, R., Yoshida, N., Demangeon, R., Honda, K.: Practical interruptible conversations. In: Legay, A., Bensalem, S. (eds.) RV 2013. LNCS, vol. 8174, pp. 130–148. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40787-1_8

    Chapter  MATH  Google Scholar 

  50. Huang, T., Wu, G., Wei, J.: Runtime monitoring composite web services through stateful aspect extension. J. Comput. Sci. Technol. 24(2), 294–308 (2009). https://doi.org/10.1007/s11390-009-9225-4

  51. Inçki, K., Ari, I., Sözer, H.: Runtime verification of IoT systems using complex event processing. In: Fortino, G., et al. (eds.) 14th IEEE International Conference on Networking, Sensing and Control, ICNSC 2017, Calabria, Italy, May 16–18, 2017, pp. 625–630. IEEE (2017). https://doi.org/10.1109/ICNSC.2017.8000163, https://doi.org/10.1109/ICNSC.2017.8000163

  52. Indiono, C., Mangler, J., Fdhila, W., Rinderle-Ma, S.: Rule-based runtime monitoring of instance-spanning constraints in process-aware information systems. In: Debruyne, C., Panetto, H., Meersman, R., Dillon, T., Kühn, O’Sullivan, D., Ardagna, C.A. (eds.) OTM 2016. LNCS, vol. 10033, pp. 381–399. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-48472-3_22

  53. Kallel, S., Charfi, A., Dinkelaker, T., Mezini, M., Jmaiel, M.: Specifying and monitoring temporal properties in web services compositions. In: Eshuis, R., Grefen, P.W.P.J., Papadopoulos, G.A. (eds.) Seventh IEEE European Conference on Web Services (ECOWS 2009), 9–11 November 2009, Eindhoven, The Netherlands, pp. 148–157. IEEE Computer Society (2009). https://doi.org/10.1109/ECOWS.2009.15

  54. Kallel, S., Charfi, A., Mezini, M., Jmaiel, M., Sewe, A.: A holistic approach for access control policies: from formal specification to aspect-based enforcement. Int. J. Inf. Comput. Secur. 3(3/4), 337–354 (2009). https://doi.org/10.1504/IJICS.2009.031044

  55. Klose, K., Ostermann, K.: A classification framework for pointcut languages in runtime monitoring. In: Oriol, M., Meyer, B. (eds.) TOOLS EUROPE 2009. LNBIP, vol. 33, pp. 289–307. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02571-6_17

    Chapter  Google Scholar 

  56. Körner, P., et al.: Fifty years of Prolog and beyond. Theory Pract. Log. Program. 22(6), 776–858 (2022). https://doi.org/10.1017/S1471068422000102

  57. Kowalski, R., Quintero, J.D., Sartor, G., Calejo, M.: Logical English for law and education. In: Warren, D.S., Dahl, V., Eiter, T., Hermenegildo, M., Kowalski, R., Rossi, F. (eds.) Prolog - The Next 50 Years. LNCS, vol. 13900, pp. 287–299. Springer, Cham (2023)

    Google Scholar 

  58. Kowalski, R., Sadri, F.: Towards a unified agent architecture that combines rationality with reactivity. In: Pedreschi, D., Zaniolo, C. (eds.) LID 1996. LNCS, vol. 1154, pp. 135–149. Springer, Heidelberg (1996). https://doi.org/10.1007/BFb0031739

    Chapter  Google Scholar 

  59. Kowalski, R.A., Sergot, M.J.: A logic-based calculus of events. In: Mani, I., Pustejovsky, J., Gaizauskas, R.J. (eds.) The Language of Time - A Reader, pp. 217–240. Oxford University Press (2005)

    Google Scholar 

  60. LeDoux, C.H., Jr., D.S.P.: Saving traces for Ada debugging. In: Barnes, J.G.P., Fisher, G.A. (eds.) Proceedings of the 1985 Annual ACM SIGAda International Conference on Ada, SIGAda 1985, Paris, France, May 14–16, 1985, pp. 97–108. Cambridge University Press (1985). https://doi.org/10.1145/324426.324385

  61. Leotta, M., Ancona, D., Franceschini, L., Olianas, D., Ribaudo, M., Ricca, F.: Towards a runtime verification approach for internet of things systems. In: Pautasso, C., Sánchez-Figueroa, F., Systä, K., Murillo Rodríguez, J.M. (eds.) ICWE 2018. LNCS, vol. 11153, pp. 83–96. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03056-8_8

    Chapter  Google Scholar 

  62. Leotta, M., et al.: Comparing testing and runtime verification of IoT systems: A preliminary evaluation based on a case study. In: Damiani, E., Spanoudakis, G., Maciaszek, L.A. (eds.) Proceedings of the 14th International Conference on Evaluation of Novel Approaches to Software Engineering, ENASE 2019, Heraklion, Crete, Greece, May 4–5, 2019, pp. 434–441. SciTePress (2019). https://doi.org/10.5220/0007745604340441

  63. Leucker, M., Schallhart, C.: A brief account of runtime verification. J. Logic Algebraic Programm. 78(5), 293–303 (2009). https://doi.org/10.1016/j.jlap.2008.08.004. https://www.sciencedirect.com/science/article/pii/S1567832608000775, the 1st Workshop on Formal Languages and Analysis of Contract-Oriented Software (FLACOS’07)

  64. Majma, N., Babamir, S.M., Monadjemi, A.: Runtime Verification of Pacemaker Functionality Using Hierarchical Fuzzy Colored Petri-nets. J. Med. Syst. 41(2), 1–21 (2016). https://doi.org/10.1007/s10916-016-0664-5

    Article  Google Scholar 

  65. Malakuti, S., Bockisch, C., Aksit, M.: Applying the composition filter model for runtime verification of multiple-language software. In: ISSRE 2009, 20th International Symposium on Software Reliability Engineering, Mysuru, Karnataka, India, 16–19 November 2009, pp. 31–40. IEEE Computer Society (2009). https://doi.org/10.1109/ISSRE.2009.12

  66. Palù, A.D., Dovier, A., Formisano, A., Pontelli, E.: Prolog meets biology. In: Warren, D.S., Dahl, V., Eiter, T., Hermenegildo, M., Kowalski, R., Rossi, F. (eds.) Prolog - The Next 50 Years. LNCS, vol. 13900, pp. 318–333. Springer, Cham (2023)

    Google Scholar 

  67. Perotti, A., Boella, G., Garcez, A.A.: Runtime verification through forward chaining. In: Bartocci, E., Majumdar, R. (eds.) RV 2015. LNCS, vol. 9333, pp. 185–200. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-23820-3_12

    Chapter  MATH  Google Scholar 

  68. Perotti, A., d’Avila Garcez, A.S., Boella, G.: Neural networks for runtime verification. In: 2014 International Joint Conference on Neural Networks, IJCNN 2014, Beijing, China, July 6–11, 2014, pp. 2637–2644. IEEE (2014). https://doi.org/10.1109/IJCNN.2014.6889961

  69. Pnueli, A.: The temporal logic of programs. In: 18th Annual Symposium on Foundations of Computer Science, Providence, Rhode Island, USA, 31 October - 1 November 1977, pp. 46–57. IEEE Computer Society (1977)

    Google Scholar 

  70. Rabiser, R., Guinea, S., Vierhauser, M., Baresi, L., Grünbacher, P.: A comparison framework for runtime monitoring approaches. J. Syst. Softw. 125, 309–321 (2017). https://doi.org/10.1016/j.jss.2016.12.034

  71. Ricca, F., Mascardi, V., Verri, A.: Test’n’Mo: a collaborative platform for human testers and intelligent monitoring agents. In: Ahrendt, W., Ancona, D., Francalanza, A. (eds.) VORTEX 2021: Proceedings of the 5th ACM International Workshop on Verification and mOnitoring at Runtime EXecution, Virtual Event, Denmark, 12 July 2021, pp. 17–21. ACM (2021). https://doi.org/10.1145/3464974.3468446

  72. Rosà, A., Zheng, Y., Sun, H., Javed, O., Binder, W.: Adaptable runtime monitoring for the Java virtual machine. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9953, pp. 531–546. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47169-3_42

    Chapter  Google Scholar 

  73. Sánchez, C., et al.: A survey of challenges for runtime verification from advanced application domains (beyond software). Formal Methods Syst. Des. (2), 1–57 (2019). https://doi.org/10.1007/s10703-019-00337-w

  74. Satoh, K.: PROLEG: Practical legal reasoning system. In: Warren, D.S., Dahl, V., Eiter, T., Hermenegildo, M., Kowalski, R., Rossi, F. (eds.) Prolog - The Next 50 Years. LNCS, vol. 13900, pp. 277-283. Springer, Cham (2023))

    Google Scholar 

  75. Simon, L., Mallya, A., Bansal, A., Gupta, G.: Coinductive logic programming. In: Etalle, S., Truszczyński, M. (eds.) ICLP 2006. LNCS, vol. 4079, pp. 330–345. Springer, Heidelberg (2006). https://doi.org/10.1007/11799573_25

    Chapter  MATH  Google Scholar 

  76. Stolz, V., Huch, F.: Runtime verification of concurrent Haskell programs. Electron. Notes Theor. Comput. Sci. 113, 201–216 (2005). https://doi.org/10.1016/j.entcs.2004.01.026

  77. Tsigkritis, T., Spanoudakis, G.: Diagnosing runtime violations of security & dependability properties. In: Proceedings of the Twentieth International Conference on Software Engineering & Knowledge Engineering (SEKE’2008), San Francisco, CA, USA, July 1–3, 2008, pp. 661–666. Knowledge Systems Institute Graduate School (2008)

    Google Scholar 

  78. Tsigkritis, T., Spanoudakis, G.: A temporal abductive diagnostic process for runtime properties violations. In: Roth-Berghofer, T., Schulz, S., Leake, D.B., Bahls, D. (eds.) Explanation-aware Computing, Papers from the 2008 ECAI Workshop, Patras, Greece, July 21–22, 2008. University of Patras, pp. 49–60 (2008)

    Google Scholar 

  79. Wenger, M., Zoitl, A., Blech, J.O.: Behavioral type-based monitoring for IEC 61499. In: 20th IEEE Conference on Emerging Technologies & Factory Automation, ETFA 2015, Luxembourg, September 8–11, 2015, pp. 1–8. IEEE (2015). https://doi.org/10.1109/ETFA.2015.7301447

  80. Wooldridge, M.J., Jennings, N.R.: Intelligent agents: theory and practice. Knowl. Eng. Rev. 10(2), 115–152 (1995). https://doi.org/10.1017/S0269888900008122

  81. Yu, B., Liu, J., Lei, M., Yu, Y., Chen, H.: Parallel runtime verification approach for alternate execution of multiple threads. In: Miao, H., Tian, C., Liu, S., Duan, Z. (eds.) SOFL+MSVL 2019. LNCS, vol. 12028, pp. 99–109. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-41418-4_8

    Chapter  Google Scholar 

  82. Yu, B., Lu, X., Chen, H., Lei, M., Wang, X.: Runtime verification of ethereum smart contracts based on MSVL. In: Xue, J., Nagoya, F., Liu, S., Duan, Z. (eds.) SOFL+MSVL 2020. LNCS, vol. 12723, pp. 142–153. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-77474-5_10

    Chapter  Google Scholar 

  83. Yu, B., Tian, C., Lu, X., Zhang, N., Duan, Z.: A distributed network-based runtime verification of full regular temporal properties. IEEE Trans. Parallel Distributed Syst. 34(1), 76–91 (2023). https://doi.org/10.1109/TPDS.2022.3215854

  84. Zhao, Y., Oberthür, S., Kardos, M., Rammig, F.: Model-based runtime verification framework for self-optimizing systems. Electron. Notes Theor. Comput. Sci. 144(4), 125–145 (2006). https://doi.org/10.1016/j.entcs.2006.02.008

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Viviana Mascardi .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Ancona, D., Ferrando, A., Mascardi, V. (2023). Exploiting Logic Programming for Runtime Verification: Current and Future Perspectives. In: Warren, D.S., Dahl, V., Eiter, T., Hermenegildo, M.V., Kowalski, R., Rossi, F. (eds) Prolog: The Next 50 Years. Lecture Notes in Computer Science(), vol 13900. Springer, Cham. https://doi.org/10.1007/978-3-031-35254-6_25

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-35254-6_25

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-35253-9

  • Online ISBN: 978-3-031-35254-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics