{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,14]],"date-time":"2026-02-14T03:01:42Z","timestamp":1771038102612,"version":"3.50.1"},"reference-count":46,"publisher":"Springer Science and Business Media LLC","issue":"6","license":[{"start":{"date-parts":[[2022,5,24]],"date-time":"2022-05-24T00:00:00Z","timestamp":1653350400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2022,5,24]],"date-time":"2022-05-24T00:00:00Z","timestamp":1653350400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/100018755","name":"Universit\u00e4t Trier","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100018755","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["J Vis"],"published-print":{"date-parts":[[2022,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Due to non-deterministic behavior and thread interleaving of concurrent programs, the debugging of concurrency and performance issues is a rather difficult and often tedious task. In this paper, we present an approach that combines statistical profiling, clustering and visualization to facilitate this task. We implemented our approach in a tool which is integrated as a plugin into a widely used IDE. First, we introduce our approach with details on the profiling and clustering strategy that produce runtime metrics and clusters of threads for source-code artifacts at different levels of abstraction (class and method) and the entire program. Next, we explain the design of our visualization which represents the clusters in situ, i.e., embedded in the program text next to the related source-code artifact in the source-code editor. More detailed information is available in separate windows that also allow the user to configure thread filters interactively. In a demonstration study, we illustrate the usefulness of the tool for understanding and fixing performance and concurrency issues. Finally, we report on first formative results from a usability test and consequently implemented tool improvements.<\/jats:p>\n                <jats:p><jats:bold>Graphical abstract<\/jats:bold><\/jats:p>","DOI":"10.1007\/s12650-022-00843-w","type":"journal-article","created":{"date-parts":[[2022,5,24]],"date-time":"2022-05-24T03:57:34Z","timestamp":1653364654000},"page":"1267-1289","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":6,"title":["The ThreadRadar visualization for debugging concurrent Java programs"],"prefix":"10.1007","volume":"25","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3118-4968","authenticated-orcid":false,"given":"Oliver","family":"Moseler","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3558-6411","authenticated-orcid":false,"given":"Lucas","family":"Kreber","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4287-7447","authenticated-orcid":false,"given":"Stephan","family":"Diehl","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2022,5,24]]},"reference":[{"key":"843_CR1","doi-asserted-by":"publisher","unstructured":"Alam MMU, Liu T, Zeng G, et\u00a0al. (2017) Syncperf: Categorizing, detecting, and diagnosing synchronization performance bugs. In: Proceedings of the 12th European Conference on Computer Systems, EuroSys 2017, Belgrade, Serbia, April 23-26, 2017, pp 298\u2013313, https:\/\/doi.org\/10.1145\/3064176.3064186","DOI":"10.1145\/3064176.3064186"},{"key":"843_CR2","doi-asserted-by":"publisher","unstructured":"Alcocer JPS, Jaimes HC, Costa D, et\u00a0al. (2019) Enhancing commit graphs with visual runtime clues. In: proceedings of working conference on software visualization, VISSOFT 2019, Cleveland, OH, USA, September 30 - October 1, 2019. IEEE, pp 28\u201332, https:\/\/doi.org\/10.1109\/VISSOFT.2019.00012","DOI":"10.1109\/VISSOFT.2019.00012"},{"key":"843_CR3","doi-asserted-by":"publisher","unstructured":"Artho C, Havelund K, Honiden S (2007) Visualization of concurrent program executions. In: proceedings of 31st annual international computer software and applications Conference, COMPSAC 2007, Beijing, China, July 24-27, 2007. Volume 2, pp 541\u2013546, https:\/\/doi.org\/10.1109\/COMPSAC.2007.236","DOI":"10.1109\/COMPSAC.2007.236"},{"key":"843_CR4","doi-asserted-by":"publisher","unstructured":"Beck F, Moseler O, Diehl S, et\u00a0al. (2013) In situ understanding of performance bottlenecks through visually augmented code. In: proceedings of IEEE 21st international conference on program comprehension, ICPC 2013, San Francisco, CA, USA, 20-21 May, 2013, pp 63\u201372, https:\/\/doi.org\/10.1109\/ICPC.2013.6613834","DOI":"10.1109\/ICPC.2013.6613834"},{"key":"843_CR5","unstructured":"Borgo R, Kehrer J, Chung DHS, et\u00a0al. (2013) Glyph-based visualization: Foundations, design guidelines, techniques and applications. In: Sbert M, Szirmay-Kalos L (eds) 34th Annual Conference of the European Association for Computer Graphics, Eurographics 2013 - State of the Art Reports. Eurographics Association, pp 39\u201363"},{"key":"843_CR6","doi-asserted-by":"publisher","unstructured":"Cito J, Leitner P, Bosshard C, et\u00a0al. (2018) Performancehat: augmenting source code with runtime performance traces in the IDE. In: Proceedings of the 40th international conference on software engineering: companion proceeedings, ICSE 2018, Gothenburg, Sweden, May 27 - June 03, 2018, pp 41\u201344, https:\/\/doi.org\/10.1145\/3183440.3183481","DOI":"10.1145\/3183440.3183481"},{"issue":"5","key":"843_CR7","doi-asserted-by":"publisher","first-page":"684","DOI":"10.1109\/TSE.2009.28","volume":"35","author":"B Cornelissen","year":"2009","unstructured":"Cornelissen B, Zaidman A, van Deursen A et al (2009) A systematic survey of program comprehension through dynamic analysis. IEEE Trans Software Eng 35(5):684\u2013702. https:\/\/doi.org\/10.1109\/TSE.2009.28","journal-title":"IEEE Trans Software Eng"},{"issue":"4","key":"843_CR8","doi-asserted-by":"publisher","first-page":"405","DOI":"10.1007\/s10664-005-3861-2","volume":"10","author":"H Do","year":"2005","unstructured":"Do H, Elbaum SG, Rothermel G (2005) Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empir Softw Eng 10(4):405\u2013435. https:\/\/doi.org\/10.1007\/s10664-005-3861-2","journal-title":"Empir Softw Eng"},{"key":"843_CR9","unstructured":"Erickson J, Musuvathi M, Burckhardt S, et\u00a0al. (2010) Effective data-race detection for the kernel. In: Proceedings of 9th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2010, October 4-6, 2010, Vancouver, BC, Canada, Proceedings, pp 151\u2013162, http:\/\/www.usenix.org\/events\/osdi10\/tech\/full_papers\/Erickson.pdf"},{"issue":"11","key":"843_CR10","doi-asserted-by":"publisher","first-page":"93","DOI":"10.1145\/1839676.1839699","volume":"53","author":"C Flanagan","year":"2010","unstructured":"Flanagan C, Freund SN (2010) Fasttrack: efficient and precise dynamic race detection. Commun ACM 53(11):93\u2013101. https:\/\/doi.org\/10.1145\/1839676.1839699","journal-title":"Commun ACM"},{"key":"843_CR11","doi-asserted-by":"publisher","unstructured":"Hahn S, Trapp M, Wuttke N, et\u00a0al. (2015) Thread City: Combined visualization of structure and activity for the exploration of multi-threaded software systems. In: Proceedings of 19th International Conference on Information Visualisation, IV 2015, Barcelona, Spain, July 22-24, 2015, pp 101\u2013106, https:\/\/doi.org\/10.1109\/iV.2015.28","DOI":"10.1109\/iV.2015.28"},{"key":"843_CR12","doi-asserted-by":"publisher","unstructured":"Hallal H, Alikacem EH, Tunney WP, et\u00a0al. (2004) Antipattern-based detection of deficiencies in Java multithreaded software. In: Proceedings of 4th International Conference on Quality Software (QSIC 2004), 8-10 September 2004, Braunschweig, Germany, pp 258\u2013267, https:\/\/doi.org\/10.1109\/QSIC.2004.1357968","DOI":"10.1109\/QSIC.2004.1357968"},{"issue":"12","key":"843_CR13","doi-asserted-by":"publisher","first-page":"2349","DOI":"10.1109\/TVCG.2014.2346456","volume":"20","author":"KE Isaacs","year":"2014","unstructured":"Isaacs KE, Bremer PT, Jusufi I et al (2014) Combing the communication hairball: Visualizing parallel execution traces using logical time. IEEE Trans Visual Comput Graphics 20(12):2349\u20132358. https:\/\/doi.org\/10.1109\/TVCG.2014.2346456","journal-title":"IEEE Trans Visual Comput Graphics"},{"key":"843_CR14","unstructured":"JetBrains s.r.o. (2020) Program Structure Interface (PSI) \/ IntelliJ Platform SDK DevGuide. https:\/\/www.jetbrains.org\/intellij\/sdk\/docs\/basics\/architectural_overview\/psi.html. Accessed January 2020"},{"key":"843_CR15","unstructured":"JetBrains s.r.o. (2021) All developer tools and products by JetBrains. https:\/\/www.jetbrains.com\/products.html#type=ide. Accessed May 2021"},{"key":"843_CR16","doi-asserted-by":"publisher","unstructured":"Jin G, Song L, Shi X, et\u00a0al. (2012) Understanding and detecting real-world performance bugs. In: Proceedings of ACM SIGPLAN conference on programming language design and implementation, PLDI \u201912, Beijing, China - June 11 - 16, 2012, pp 77\u201388, https:\/\/doi.org\/10.1145\/2254064.2254075","DOI":"10.1145\/2254064.2254075"},{"key":"843_CR17","doi-asserted-by":"publisher","unstructured":"Karran B, Tr\u00fcmper J, D\u00f6llner J (2013) SYNCTRACE: visual thread-interplay analysis. In: Proceedings of 2013 First IEEE Working Conference on Software Visualization (VISSOFT), Eindhoven, The Netherlands, September 27-28, 2013, pp 1\u201310, https:\/\/doi.org\/10.1109\/VISSOFT.2013.6650534","DOI":"10.1109\/VISSOFT.2013.6650534"},{"issue":"4","key":"843_CR18","doi-asserted-by":"publisher","first-page":"397","DOI":"10.1002\/stvr.1567","volume":"25","author":"Y Lin","year":"2015","unstructured":"Lin Y, Dig D (2015) A study and toolkit of CHECK-THEN-ACT idioms of Java concurrent collections. J Soft: Testing, Verification Reliability 25(4):397\u2013425. https:\/\/doi.org\/10.1002\/stvr.1567","journal-title":"J Soft: Testing, Verification Reliability"},{"key":"843_CR19","doi-asserted-by":"publisher","unstructured":"Lin Z, Marinov D, Zhong H, et\u00a0al. (2015) JaConTeBe: A benchmark suite of real-world Java concurrency bugs (T). In: Cohen MB, Grunske L, Whalen M (eds) Proceedings of 30th IEEE\/ACM International Conference on Automated Software Engineering, ASE 2015, Lincoln, NE, USA, November 9-13, 2015. IEEE Computer Society, pp 178\u2013189, https:\/\/doi.org\/10.1109\/ASE.2015.87","DOI":"10.1109\/ASE.2015.87"},{"key":"843_CR20","doi-asserted-by":"publisher","unstructured":"Lu S, Park S, Seo E, et\u00a0al. (2008) Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In: Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2008, Seattle, WA, USA, March 1-5, 2008, pp 329\u2013339, https:\/\/doi.org\/10.1145\/1346281.1346323","DOI":"10.1145\/1346281.1346323"},{"key":"843_CR21","doi-asserted-by":"publisher","unstructured":"Maheswara G, Bradbury JS, Collins C (2010) TIE: an interactive visualization of thread interleavings. In: Proceedings of the ACM 2010 Symposium on Software Visualization, Salt Lake City, UT, USA, October 25-26, 2010, pp 215\u2013216, https:\/\/doi.org\/10.1145\/1879211.1879247","DOI":"10.1145\/1879211.1879247"},{"key":"843_CR22","doi-asserted-by":"publisher","unstructured":"Marino D, Musuvathi M, Narayanasamy S (2009) Literace: effective sampling for lightweight data-race detection. In: Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2009, Dublin, Ireland, June 15-21, 2009, pp 134\u2013143, https:\/\/doi.org\/10.1145\/1542476.1542491","DOI":"10.1145\/1542476.1542491"},{"key":"843_CR23","unstructured":"Mehner K (2005) Trace based debugging and visualisation of concurrent Java programs with UML. PhD thesis, University of Paderborn, Germany, http:\/\/ubdata.uni-paderborn.de\/ediss\/17\/2005\/mehner\/disserta.pdf"},{"key":"843_CR24","doi-asserted-by":"publisher","unstructured":"Moseler O, Kreber L, Diehl S (2021) Threadradar: A thread-aware visualization for debugging concurrent java programs. In: Proceedings of the 14th International Symposium on Visual Information Communication and Interaction (VINCI). Association for Computing Machinery, New York, NY, USA, https:\/\/doi.org\/10.1145\/3481549.3481566","DOI":"10.1145\/3481549.3481566"},{"key":"843_CR25","doi-asserted-by":"publisher","unstructured":"Moseler O, Kreber L, Diehl S (2022) Supplemental Material to: The ThreadRadar Visualization for Debugging Concurrent Java Programs. Zenodo. https:\/\/doi.org\/10.5281\/zenodo.5940561","DOI":"10.5281\/zenodo.5940561"},{"key":"843_CR26","doi-asserted-by":"publisher","unstructured":"Musuvathi M, Qadeer S (2006) CHESS: systematic stress testing of concurrent software. In: Proceedings of 16th International Symposium on Logic-Based Program Synthesis and Transformation, LOPSTR 2006, Venice, Italy, July 12-14, 2006, Revised Selected Papers, pp 15\u201316, https:\/\/doi.org\/10.1007\/978-3-540-71410-1_2","DOI":"10.1007\/978-3-540-71410-1_2"},{"issue":"6","key":"843_CR27","doi-asserted-by":"publisher","first-page":"187","DOI":"10.1145\/1809028.1806618","volume":"45","author":"T Mytkowicz","year":"2010","unstructured":"Mytkowicz T, Diwan A, Hauswirth M et al (2010) Evaluating the accuracy of java profilers. SIGPLAN Notices 45(6):187\u2013197. https:\/\/doi.org\/10.1145\/1809028.1806618","journal-title":"SIGPLAN Notices"},{"key":"843_CR28","doi-asserted-by":"publisher","unstructured":"Nisbet A, Nobre NM, Riley GD, et\u00a0al. (2019) Profiling and tracing support for Java applications. In: Proceedings of the 2019 ACM\/SPEC International Conference on Performance Engineering, ICPE 2019, Mumbai, India, April 7-11, 2019. ACM, pp 119\u2013126, https:\/\/doi.org\/10.1145\/3297663.3309677","DOI":"10.1145\/3297663.3309677"},{"key":"843_CR29","doi-asserted-by":"publisher","unstructured":"Nistor A, Song L, Marinov D, et\u00a0al. (2013) Toddler: detecting performance problems via similar memory-access patterns. In: Proceedings of 35th International Conference on Software Engineering, ICSE \u201913, San Francisco, CA, USA, May 18-26, 2013, pp 562\u2013571, https:\/\/doi.org\/10.1109\/ICSE.2013.6606602","DOI":"10.1109\/ICSE.2013.6606602"},{"key":"843_CR30","unstructured":"Oracle (2020a) ArrayBlockingQueue (Java SE 11 & JDK 11). https:\/\/docs.oracle.com\/en\/java\/javase\/11\/docs\/api\/java.base\/java\/util\/concurrent\/ArrayBlockingQueue.html. Accessed January 2020"},{"key":"843_CR31","unstructured":"Oracle (2020b) JVM(TM) Tool Interface 11.0.0. https:\/\/docs.oracle.com\/en\/java\/javase\/11\/docs\/specs\/jvmti.html. Accessed January 2020"},{"key":"843_CR32","unstructured":"Oracle (2020c) Thread.State (Java SE 11 & JDK 11). https:\/\/docs.oracle.com\/en\/java\/javase\/11\/docs\/api\/java.base\/java\/lang\/Thread.State.html#RUNNABLE. Accessed October 2020"},{"key":"843_CR33","doi-asserted-by":"publisher","unstructured":"Park S, Vuduc RW, Harrold MJ (2010) Falcon: fault localization in concurrent programs. In: Proceedings of the 32nd ACM\/IEEE International Conference on Software Engineering - Volume 1, ICSE 2010, Cape Town, South Africa, 1-8 May 2010, pp 245\u2013254, https:\/\/doi.org\/10.1145\/1806799.1806838","DOI":"10.1145\/1806799.1806838"},{"key":"843_CR34","doi-asserted-by":"publisher","unstructured":"Pauw WD, Krasikov S, Morar JF (2006) Execution patterns for visualizing web services. In: Proceedings of the ACM 2006 Symposium on Software Visualization, Brighton, UK, September 4-5, 2006. ACM, pp 37\u201345, https:\/\/doi.org\/10.1145\/1148493.1148499","DOI":"10.1145\/1148493.1148499"},{"key":"843_CR35","doi-asserted-by":"publisher","first-page":"59","DOI":"10.1016\/j.jss.2015.04.064","volume":"106","author":"G Pinto","year":"2015","unstructured":"Pinto G, Torres W, Fernandes B et al (2015) A large-scale study on the usage of Java\u2019s concurrent programming constructs. J Syst Softw 106:59\u201381. https:\/\/doi.org\/10.1016\/j.jss.2015.04.064","journal-title":"J Syst Softw"},{"key":"843_CR36","doi-asserted-by":"publisher","unstructured":"Reiss SP, Karumuri S (2010) Visualizing threads, transactions and tasks. In: Proceedings of the 9th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE\u201910, Toronto, Ontario, Canada, June 5-6, 2010, pp 9\u201316, https:\/\/doi.org\/10.1145\/1806672.1806675","DOI":"10.1145\/1806672.1806675"},{"key":"843_CR37","doi-asserted-by":"publisher","unstructured":"Reiss SP, Renieris M (2005) Demonstration of JIVE and JOVE: Java as it happens. In: Proceedings of 27th International Conference on Software Engineering (ICSE 2005), 15-21 May 2005, St. Louis, Missouri, USA, pp 662\u2013663, https:\/\/doi.org\/10.1145\/1062455.1062597","DOI":"10.1145\/1062455.1062597"},{"key":"843_CR38","doi-asserted-by":"publisher","unstructured":"R\u00f6thlisberger D, Harry M, Villaz\u00f3n A, et\u00a0al. (2009) Augmenting static source views in ides with dynamic metrics. In: Proceedings of 25th IEEE International Conference on Software Maintenance (ICSM) 2009), September 20-26, 2009, Edmonton, Alberta, Canada. IEEE Computer Society, pp 253\u2013262, https:\/\/doi.org\/10.1109\/ICSM.2009.5306302","DOI":"10.1109\/ICSM.2009.5306302"},{"issue":"3","key":"843_CR39","doi-asserted-by":"publisher","first-page":"579","DOI":"10.1109\/TSE.2011.42","volume":"38","author":"D R\u00f6thlisberger","year":"2012","unstructured":"R\u00f6thlisberger D, Harry M, Binder W et al (2012) Exploiting dynamic information in IDEs improves speed and correctness of software maintenance tasks. IEEE Trans Software Eng 38(3):579\u2013591. https:\/\/doi.org\/10.1109\/TSE.2011.42","journal-title":"IEEE Trans Software Eng"},{"issue":"4","key":"843_CR40","doi-asserted-by":"publisher","first-page":"391","DOI":"10.1145\/265924.265927","volume":"15","author":"S Savage","year":"1997","unstructured":"Savage S, Burrows M, Nelson G et al (1997) Eraser: a dynamic data race detector for multithreaded programs. ACM Trans Comput Syst 15(4):391\u2013411. https:\/\/doi.org\/10.1145\/265924.265927","journal-title":"ACM Trans Comput Syst"},{"key":"843_CR41","doi-asserted-by":"publisher","first-page":"46","DOI":"10.1016\/j.jvlc.2018.10.001","volume":"49","author":"M Sul\u00edr","year":"2018","unstructured":"Sul\u00edr M, Bac\u00edkov\u00e1 M, Chodarev S et al (2018) Visual augmentation of source code editors: a systematic mapping study. J Vis Lang Comput 49:46\u201359. https:\/\/doi.org\/10.1016\/j.jvlc.2018.10.001","journal-title":"J Vis Lang Comput"},{"issue":"7","key":"843_CR42","doi-asserted-by":"publisher","first-page":"54","DOI":"10.1145\/1095408.1095421","volume":"3","author":"H Sutter","year":"2005","unstructured":"Sutter H, Larus JR (2005) Software and the concurrency revolution. ACM Queue 3(7):54\u201362. https:\/\/doi.org\/10.1145\/1095408.1095421","journal-title":"ACM Queue"},{"key":"843_CR43","volume-title":"Beautiful Evidence","author":"ER Tufte","year":"2006","unstructured":"Tufte ER (2006) Beautiful Evidence. Graphics Press, Cheshire, CT"},{"key":"843_CR44","doi-asserted-by":"publisher","unstructured":"Wael MD, Marr S, Cutsem TV (2014) Fork\/join parallelism in the wild: documenting patterns and anti-patterns in Java programs using the fork\/join framework. In: Proceedings of 2014 International Conference on Principles and Practices of Programming on the Java Platform Virtual Machines, Languages and Tools, PPPJ \u201914, Cracow, Poland, September 23-26, 2014, pp 39\u201350, https:\/\/doi.org\/10.1145\/2647508.2647511","DOI":"10.1145\/2647508.2647511"},{"key":"843_CR45","unstructured":"Wagstaff K, Cardie C, Rogers S, et\u00a0al. (2001) Constrained k-means clustering with background knowledge. In: Proceedings of the 18th International Conference on Machine Learning. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, ICML \u201901, p 577\u2013584"},{"key":"843_CR46","doi-asserted-by":"publisher","unstructured":"Waller J, Wulf C, Fittkau F, et\u00a0al. (2013) Synchrovis: 3D visualization of monitoring traces in the city metaphor for analyzing concurrency. In: Proceedings of First IEEE Working Conference on Software Visualization (VISSOFT), Eindhoven, The Netherlands, September 27-28, 2013, pp 1\u20134, https:\/\/doi.org\/10.1109\/VISSOFT.2013.6650520","DOI":"10.1109\/VISSOFT.2013.6650520"}],"container-title":["Journal of Visualization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s12650-022-00843-w.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s12650-022-00843-w\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s12650-022-00843-w.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,10,21]],"date-time":"2022-10-21T07:57:49Z","timestamp":1666339069000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s12650-022-00843-w"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,5,24]]},"references-count":46,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2022,12]]}},"alternative-id":["843"],"URL":"https:\/\/doi.org\/10.1007\/s12650-022-00843-w","relation":{},"ISSN":["1343-8875","1875-8975"],"issn-type":[{"value":"1343-8875","type":"print"},{"value":"1875-8975","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,5,24]]},"assertion":[{"value":"1 February 2022","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"23 March 2022","order":2,"name":"revised","label":"Revised","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"30 March 2022","order":3,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"24 May 2022","order":4,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}