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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
- 2.
\(\mathcal {H}\) :- \(\mathcal {B}\) should be read as ‘if \(\mathcal {B}\) holds, then \(\mathcal {H}\) holds’.
- 3.
The code of this simplified semantics is available from https://github.com/VivianaMascardi/VivianaMascardi.github.io/blob/main/Software/traceExprSimplifiedSemantics.pl.
- 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.
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.
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.
- 8.
References
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
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
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
Ancona, D., et al.: Behavioral types in programming languages. Found. Trends Programm. Lang. 3(2–3), 95–230 (2016)
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
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
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
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
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
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
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
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
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
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
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
Barnett, M., Schulte, W.: Spying on components: a runtime verification technique. In: Workshop on Specification and Verification of Component-Based Systems (2001)
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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)
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
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
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
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)
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
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
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)
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
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
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)
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
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
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
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
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))
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
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
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)
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)
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
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
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
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
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
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
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
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)