{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,30]],"date-time":"2026-01-30T06:19:25Z","timestamp":1769753965761,"version":"3.49.0"},"reference-count":63,"publisher":"Springer Science and Business Media LLC","issue":"2","license":[{"start":{"date-parts":[[2014,4,13]],"date-time":"2014-04-13T00:00:00Z","timestamp":1397347200000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Int J Softw Tools Technol Transfer"],"published-print":{"date-parts":[[2015,4]]},"DOI":"10.1007\/s10009-014-0309-2","type":"journal-article","created":{"date-parts":[[2014,4,12]],"date-time":"2014-04-12T11:49:06Z","timestamp":1397303346000},"page":"143-170","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":105,"title":["Rule-based runtime verification revisited"],"prefix":"10.1007","volume":"17","author":[{"given":"Klaus","family":"Havelund","sequence":"first","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2014,4,13]]},"reference":[{"key":"309_CR1","unstructured":"AspectJ website. http:\/\/www.eclipse.org\/aspectj . Accessed 14 March 2014"},{"key":"309_CR2","unstructured":"Clips website. http:\/\/clipsrules.sourceforge.net . Accessed 14 March 2014"},{"key":"309_CR3","unstructured":"Drools blog. http:\/\/blog.athico.com\/2013\/01\/life-beyond-rete-rip-rete-2013.html . Accessed 14 March 2014"},{"key":"309_CR4","unstructured":"Drools functional programming extensions website. https:\/\/community.jboss.org\/wiki\/FunctionalProgrammingInDrools . Accessed 14 March 2014"},{"key":"309_CR5","unstructured":"Drools website. http:\/\/www.jboss.org\/drools . Accessed 14 March 2014"},{"key":"309_CR6","unstructured":"Graphviz website. http:\/\/www.graphviz.org . Accessed 14 March 2014"},{"key":"309_CR7","unstructured":"Jess website. http:\/\/www.jessrules.com\/jess . Accessed 14 March 2014"},{"key":"309_CR8","unstructured":"Mars Science Laboratory (MSL) mission website. http:\/\/mars.jpl.nasa.gov\/msl . Accessed 14 March 2014"},{"key":"309_CR9","unstructured":"Rooscaloo website. http:\/\/code.google.com\/p\/rooscaloo . Accessed 14 March 2014"},{"key":"309_CR10","unstructured":"RuleR website. http:\/\/www.cs.man.ac.uk\/~howard\/LPA.html . Accessed 14 March 2014"},{"key":"309_CR11","unstructured":"Scaladoc website. https:\/\/wiki.scala-lang.org\/display\/SW\/Scaladoc . Accessed 14 March 2014"},{"key":"309_CR12","unstructured":"Scalatest website. http:\/\/www.scalatest.org . Accessed 14 March 2014"},{"key":"309_CR13","unstructured":"Website for various runtime verification tools, including: Eagle, RuleR, LogScope, TraceContract, and LogFire. http:\/\/www.havelund.com\/tools . Accessed 14 March 2014"},{"key":"309_CR14","doi-asserted-by":"crossref","unstructured":"Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhot\u00e1k, O., de Moor, O., Sereni, D., Sittamplan, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: OOPSLA\u201905. ACM Press, New York (2005)","DOI":"10.1145\/1094811.1094839"},{"key":"309_CR15","doi-asserted-by":"crossref","unstructured":"Barringer, H., Falcone, Y., Havelund, K., Reger, G., Rydeheard, D.: Quantified event automata-towards expressive and efficient runtime monitors. In: Proceedings of 18th International Symposium on Formal Methods (FM\u201912), Paris, volume 7436 of LNCS. Springer, Berlin (2012)","DOI":"10.1007\/978-3-642-32759-9_9"},{"issue":"5","key":"309_CR16","doi-asserted-by":"crossref","first-page":"533","DOI":"10.1007\/BF01211631","volume":"7","author":"H Barringer","year":"1995","unstructured":"Barringer, H., Fisher, M., Gabbay, D.M., Gough, G., Owens, R.: Metatem: an introduction. Form. Asp. Comput. 7(5), 533\u2013549 (1995)","journal-title":"Form. Asp. Comput."},{"key":"309_CR17","doi-asserted-by":"crossref","unstructured":"Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-based runtime verification. In: VMCAI, volume 2937 of LNCS, pp. 44\u201357. Springer, Berlin (2004)","DOI":"10.1007\/978-3-540-24622-0_5"},{"issue":"11","key":"309_CR18","doi-asserted-by":"crossref","first-page":"365","DOI":"10.2514\/1.49356","volume":"7","author":"H Barringer","year":"2010","unstructured":"Barringer, H., Groce, A., Havelund, K., Smith, M.: Formal analysis of log files. J. Aerosp. Comput. Inf. Commun. 7(11), 365\u2013390 (2010)","journal-title":"J. Aerosp. Comput. Inf. Commun."},{"key":"309_CR19","doi-asserted-by":"crossref","unstructured":"Barringer, H., Havelund, K.: TraceContract: A Scala DSL for trace analysis. In: Proceedings of 17th International Symposium on Formal Methods (FM\u201911), Limerick, volume 6664 of LNCS, pp. 57\u201372. Springer, Berlin (2011)","DOI":"10.1007\/978-3-642-21437-0_7"},{"key":"309_CR20","doi-asserted-by":"crossref","unstructured":"Barringer, H., Havelund, K., Kurklu, E., Morris, R.: Checking flight rules with TraceContract: application of a scala DSL for trace analysis. In: Scala Days 2011, Stanford University, California (2011)","DOI":"10.1007\/978-3-642-21437-0_7"},{"key":"309_CR21","doi-asserted-by":"crossref","unstructured":"Barringer, H., Havelund, K., Rydeheard, D., Groce, A.: Rule systems for runtime verification: a short tutorial. In: Proceedings of the 9th International Workshop on Runtime Verification (RV\u201909), volume 5779 of LNCS, pp. 1\u201324. Springer, Berlin (2009)","DOI":"10.1007\/978-3-642-04694-0_1"},{"key":"309_CR22","doi-asserted-by":"crossref","unstructured":"Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from Eagle to RuleR. In: Proceedings of the 7th International Workshop on Runtime Verification (RV\u201907), volume 4839 of LNCS, pp. 111\u2013125. Springer, Vancouver (2007)","DOI":"10.1007\/978-3-540-77395-5_10"},{"issue":"3","key":"309_CR23","doi-asserted-by":"crossref","first-page":"675","DOI":"10.1093\/logcom\/exn076","volume":"20","author":"H Barringer","year":"2010","unstructured":"Barringer, H., Rydeheard, D.E., Havelund, K.: Rule systems for run-time monitoring: from eagle to ruler. J. Log. Comput. 20(3), 675\u2013706 (2010)","journal-title":"J. Log. Comput."},{"key":"309_CR24","doi-asserted-by":"crossref","unstructured":"Basin, D.A., Klaedtke, F., M\u00fcller, S.: Policy monitoring in first-order temporal logic. In: Touili T., Cook B., Jackson, P. (eds.) Computer Aided Verification, Proceedings, of 22nd International Conference, CAV 2010, Edinburgh, volume 6174 of Lecture Notes in Computer Science, pp. 1\u201318. Springer, Berlin (2010)","DOI":"10.1007\/978-3-642-14295-6_1"},{"key":"309_CR25","doi-asserted-by":"crossref","unstructured":"Bauer, A., K\u00fcster, J.-C., Vegliach, G.: From propositional to first-order monitoring. In: Proceedings of 4th International Conference on Runtime Verification, RV\u201913, Rennes, volume 8174 of LNCS, pp. 59\u201375. Springer, Berlin (2013)","DOI":"10.1007\/978-3-642-40787-1_4"},{"key":"309_CR26","doi-asserted-by":"crossref","unstructured":"Bauer, A., Leucker, M., Schallhart, C.: The good, the bad, and the ugly, but how ugly is ugly? In: Proceedings of the 7th International Workshop on Runtime Verification (RV\u201907), Vancouver, volume 4839 of LNCS, pp. 126\u2013138. Springer, Berlin (2007)","DOI":"10.1007\/978-3-540-77395-5_11"},{"key":"309_CR27","doi-asserted-by":"crossref","unstructured":"Bodden, E.: MOPBox: A library approach to runtime verification. In: Proceedings of 2nd International Conference on Runtime Verification, RV\u201911, San Francisco, volume 7186 of LNCS, pp. 365\u2013369. Springer, Berlin (2011)","DOI":"10.1007\/978-3-642-29860-8_28"},{"key":"309_CR28","doi-asserted-by":"crossref","unstructured":"Chen, F., Ro\u015fu, G.: Parametric trace slicing and monitoring. In: Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS\u201909), volume 5505 of LNCS, pp. 246\u2013261 (2009)","DOI":"10.1007\/978-3-642-00768-2_23"},{"key":"309_CR29","doi-asserted-by":"crossref","unstructured":"D\u2019Amorim, M., Havelund, K.: Event-based runtime verification of Java programs. In: Workshop on Dynamic Program Analysis (WODA\u201905), volume 30(4) of ACM Sigsoft Software Engineering, Notes, pp. 1\u20137 (2005)","DOI":"10.1145\/1082983.1083249"},{"key":"309_CR30","unstructured":"Doorenbos, R.B.: Production matching for large learning systems. Ph.D. thesis, Carnegie Mellon University, Pittsburgh (1995)"},{"key":"309_CR31","doi-asserted-by":"crossref","unstructured":"Drusinsky, D.: The temporal rover and the ATG rover. In: SPIN Model Checking and Software Verification, volume 1885 of LNCS, pp. 323\u2013330. Springer, Berlin (2000)","DOI":"10.1007\/10722468_19"},{"key":"309_CR32","unstructured":"Drusinsky, D.: Modeling and Verification using UML Statecharts, p. 400. Elsevier (2006). ISBN-13: 978-0-7506-7949-7"},{"key":"309_CR33","doi-asserted-by":"crossref","unstructured":"Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Patterns in property specifications for finite-state verification. In: Boehm, B.W., Garlan, D., Kramer, J. (eds.) Proceedings of the 1999 International Conference on Software Engineering, ICSE\u2019 99, Los Angeles, pp. 411\u2013420. ACM, New York (1999)","DOI":"10.1145\/302405.302672"},{"key":"309_CR34","doi-asserted-by":"crossref","unstructured":"Falcone, Y., Fernandez, J.-C., Mounier, L.: Runtime verification of safety-progress properties. In: Proceedings of the 9th International Workshop on Runtime Verification (RV\u201909), volume 5779 of LNCS, pp. 40\u201359. Springer, Berlin (2009)","DOI":"10.1007\/978-3-642-04694-0_4"},{"issue":"3","key":"309_CR35","doi-asserted-by":"crossref","first-page":"349","DOI":"10.1007\/s10009-011-0196-8","volume":"14","author":"Y Falcone","year":"2012","unstructured":"Falcone, Y., Fernandez, J.-C., Mounier, L.: What can you verify and enforce at runtime? J. Softw. Tools Technol. Transf. 14(3), 349\u2013382 (2012)","journal-title":"J. Softw. Tools Technol. Transf."},{"key":"309_CR36","unstructured":"Falcone, Y., Havelund, K., Reger, G.: A tutorial on runtime verification. In: Broy, M., Peled, D., Kalus, G. (eds.) Engineering Dependable Software Systems, volume 34 of NATO Science for Peace and Security Series - D: Information and Communication Security, pp. 141\u2013175. IOS Press, Amsterdam (2013)"},{"key":"309_CR37","doi-asserted-by":"crossref","first-page":"17","DOI":"10.1016\/0004-3702(82)90020-0","volume":"19","author":"C Forgy","year":"1982","unstructured":"Forgy, C.: Rete: a fast algorithm for the many pattern\/many object pattern match problem. Artif. Intell. 19, 17\u201337 (1982)","journal-title":"Artif. Intell."},{"key":"309_CR38","volume-title":"Domain-Specific Languages","author":"M Fowler","year":"2010","unstructured":"Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley, Boston (2010)"},{"key":"309_CR39","unstructured":"Fusco, M.: Hammurabi: a Scala rule engine. In: Scala Days 2011, Stanford University, California (2011)"},{"key":"309_CR40","doi-asserted-by":"crossref","unstructured":"Garillot, F., Werner, B.: Simple types in type theory: deep and shallow encodings. In: Proceedings of 20th International Conference on Theorem Proving in Higher Order Logics (TPHOLs\u201907), Kaiserslautern, volume 4732 of LNCS, pp. 368\u2013382. Springer, Berlin (2007)","DOI":"10.1007\/978-3-540-74591-4_27"},{"key":"309_CR41","doi-asserted-by":"crossref","unstructured":"Gerth, R., Peled, D., Vardi, M.Y., Wolper, P.: Simple on-the-fly automatic verification of linear temporal logic. In: Dembinski, P., Sredniawa, M. (eds.) Protocol Specification Testing and Verification (PSTV), vol. 38, pp 3\u201318. Chapman and Hall, Dordrecht (1995)","DOI":"10.1007\/978-0-387-34892-6_1"},{"key":"309_CR42","doi-asserted-by":"crossref","unstructured":"Goubault-Larrecq, J., Olivain, J.: A smell of ORCHIDS. In: Proceedings of of the 8th International Workshop on Runtime Verification (RV\u201908), volume 5289 of LNCS, pp. 1\u201320. Springer, Budapest (2008)","DOI":"10.1007\/978-3-540-89247-2_1"},{"key":"309_CR43","doi-asserted-by":"crossref","unstructured":"Groce, A., Havelund, K., Smith, M.H.: From scripts to specifications: the evolution of a flight software testing effort. In: 32nd International Conference on Software Engineering (ICSE\u201910), Cape Town, pp. 129\u2013138. ACM SIG, Dordrecht (2010)","DOI":"10.1145\/1810295.1810314"},{"issue":"2","key":"309_CR44","doi-asserted-by":"crossref","first-page":"192","DOI":"10.1109\/TSC.2011.10","volume":"5","author":"S Hall\u00e9","year":"2012","unstructured":"Hall\u00e9, S., Villemaire, R.: Runtime enforcement of web service message contracts with data. IEEE Trans. Serv. Comput. 5(2), 192\u2013206 (2012)","journal-title":"IEEE Trans. Serv. Comput."},{"key":"309_CR45","doi-asserted-by":"crossref","unstructured":"Havelund, K.: Runtime verification of C programs. In: Proceedings of the 1st TestCom\/FATES conference, volume 5047 of LNCS, Tokyo. Springer, Berlin (2008)","DOI":"10.1007\/978-3-540-68524-1_3"},{"key":"309_CR46","doi-asserted-by":"crossref","unstructured":"Havelund, K.: What does AI have to do with RV? (extended abstract). In: Margaria, T., Steffen, B. (eds.) Proceedings of 5th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation. Track: Runtime Verification: the Application Perspective (organized by Ylies Falcone and Lenore Zuck), Heraclion, volume 7610 of LNCS. Springer, Berlin (2012)","DOI":"10.1007\/978-3-642-34026-0_22"},{"key":"309_CR47","doi-asserted-by":"crossref","unstructured":"Havelund, K.: A scala DSL for Rete-based runtime verification. In: Proceedings of 4th International Conference on Runtime Verification, RV\u201913, Rennes, volume 8174 of LNCS, pp. 322\u2013327. Springer, Berlin (2013)","DOI":"10.1007\/978-3-642-40787-1_19"},{"key":"309_CR48","doi-asserted-by":"crossref","unstructured":"Havelund, K., Goldberg, A.: Verify your runs. In: Verified Software: Theories, Tools, Experiments, VSTTE 2005, pp. 374\u2013383 (2008)","DOI":"10.1007\/978-3-540-69149-5_40"},{"key":"309_CR49","unstructured":"Havelund, K., Ro\u015fu, G.: Efficient monitoring of safety properties. Softw. Tools Technol. Transf. 6(2), 158\u2013173 (2004)"},{"key":"309_CR50","unstructured":"Havelund, K., Rosu, G.: Monitoring programs using rewriting. In: 16th ASE conference, San Diego, pp. 135\u2013143, 2001"},{"key":"309_CR51","doi-asserted-by":"crossref","unstructured":"Herzeel, C., Gybels, K., Costanza, P.: Escaping with future variables in HALO. In: Proceedings of of the 7th International Workshop on Runtime Verification (RV\u201907), volume 4839 of LNCS, pp. 51\u201362. Springer, Berlin (2007)","DOI":"10.1007\/978-3-540-77395-5_5"},{"key":"309_CR52","doi-asserted-by":"crossref","unstructured":"Holzmann, G.J., Joshi, R.: Model-driven software verification. In: Model Checking Software: the 11th International SPIN Workshop, Barcelona, volume 2989 of LNCS, pp. 76\u201391. Springer, Berlin (2004)","DOI":"10.1007\/978-3-540-24732-6_6"},{"key":"309_CR53","unstructured":"Joshi, R.: Resources for analyzing MSL logs, personal communication (2013)"},{"key":"309_CR54","doi-asserted-by":"crossref","unstructured":"Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) Proceedings of of the 15th European Conference on Object-Oriented Programming, volume 2072 of LNCS, pp. 327\u2013353. Springer, Berlin (2001)","DOI":"10.1007\/3-540-45337-7_18"},{"key":"309_CR55","unstructured":"Lee, I., Kannan, S., Kim, M., Sokolsky, O., Viswanathan, M.: Runtime assurance based on formal specifications. In: PDPTA, pp. 279\u2013287. CSREA Press, Las Vegas (1999)"},{"issue":"5","key":"309_CR56","doi-asserted-by":"crossref","first-page":"293","DOI":"10.1016\/j.jlap.2008.08.004","volume":"78","author":"M Leucker","year":"2008","unstructured":"Leucker, M., Schallhart, C.: A brief account of runtime verification. J. Log. Algebr. Progr. 78(5), 293\u2013303 (2008)","journal-title":"J. Log. Algebr. Progr."},{"key":"309_CR57","volume-title":"The power of events: an introduction to complex event processing in distributed enterprise systems","author":"D Luckham","year":"2002","unstructured":"Luckham, D.: The power of events: an introduction to complex event processing in distributed enterprise systems. Addison-Wesley, Boston (2002)"},{"issue":"3","key":"309_CR58","doi-asserted-by":"crossref","first-page":"249","DOI":"10.1007\/s10009-011-0198-6","volume":"14","author":"P Meredith","year":"2012","unstructured":"Meredith, P., Jin, D., Griffith, D., Chen, F., Ro\u015fu, G.: An overview of the mop runtime verification framework. STTT 14(3), 249\u2013289 (2012)","journal-title":"STTT"},{"issue":"3","key":"309_CR59","doi-asserted-by":"crossref","first-page":"155","DOI":"10.1080\/08839519008927948","volume":"4","author":"M Perlin","year":"1990","unstructured":"Perlin, M.: Topologically traversing the rete network. Appl. Artif. Intell. 4(3), 155\u2013177 (1990)","journal-title":"Appl. Artif. Intell."},{"key":"309_CR60","doi-asserted-by":"crossref","unstructured":"Pnueli, A.: The temporal logic of programs. In: 18th Annual Symposium on Foundations of Computer Science, pp. 46\u201357. IEEE Computer Society, Los Alamitos (1977)","DOI":"10.1109\/SFCS.1977.32"},{"key":"309_CR61","doi-asserted-by":"crossref","unstructured":"Stolz, V.: Temporal assertions with parameterized propositions. In: Proceedings of the 7th International Workshop on Runtime Verification (RV\u201907), volume 4839 of LNCS, pp. 176\u2013187. Springer, Vancouver (2007)","DOI":"10.1007\/978-3-540-77395-5_15"},{"key":"309_CR62","doi-asserted-by":"crossref","unstructured":"Stolz, V., Bodden, E.: Temporal assertions using AspectJ. In: Proceedings of the 5th International Workshop on Runtime Verification (RV\u201905), volume 144(4) of ENTCS, pp. 109\u2013124. Elsevier, Amsterdam (2006)","DOI":"10.1016\/j.entcs.2006.02.007"},{"key":"309_CR63","doi-asserted-by":"crossref","unstructured":"Stolz, V., Huch, F.: Runtime verification of concurrent Haskell programs. In: Proceedings of the 4th International Workshop on Runtime Verification (RV\u201904), volume 113 of ENTCS, pp. 201\u2013216. Elsevier, Amsterdam (2005)","DOI":"10.1016\/j.entcs.2004.01.026"}],"container-title":["International Journal on Software Tools for Technology Transfer"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10009-014-0309-2.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s10009-014-0309-2\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10009-014-0309-2","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,8,17]],"date-time":"2020-08-17T17:54:13Z","timestamp":1597686853000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s10009-014-0309-2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,4,13]]},"references-count":63,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2015,4]]}},"alternative-id":["309"],"URL":"https:\/\/doi.org\/10.1007\/s10009-014-0309-2","relation":{},"ISSN":["1433-2779","1433-2787"],"issn-type":[{"value":"1433-2779","type":"print"},{"value":"1433-2787","type":"electronic"}],"subject":[],"published":{"date-parts":[[2014,4,13]]}}}