{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,10]],"date-time":"2026-06-10T03:28:14Z","timestamp":1781062094161,"version":"3.54.1"},"reference-count":54,"publisher":"Springer Science and Business Media LLC","issue":"5","license":[{"start":{"date-parts":[[2023,7,20]],"date-time":"2023-07-20T00:00:00Z","timestamp":1689811200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2023,7,20]],"date-time":"2023-07-20T00:00:00Z","timestamp":1689811200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"funder":[{"DOI":"10.13039\/501100002790","name":"Canadian Network for Research and Innovation in Machining Technology, Natural Sciences and Engineering Research Council of Canada","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100002790","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2023,9]]},"DOI":"10.1007\/s10664-023-10317-8","type":"journal-article","created":{"date-parts":[[2023,7,20]],"date-time":"2023-07-20T10:01:35Z","timestamp":1689847295000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":6,"title":["Using the uniqueness of global identifiers to determine the provenance of Python software source code"],"prefix":"10.1007","volume":"28","author":[{"given":"Yiming","family":"Sun","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5661-4392","authenticated-orcid":false,"given":"Daniel","family":"German","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Stefano","family":"Zacchiroli","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2023,7,20]]},"reference":[{"issue":"5","key":"10317_CR1","doi-asserted-by":"publisher","first-page":"502","DOI":"10.1109\/TSE.2014.2312942","volume":"40","author":"V Arnaoudova","year":"2014","unstructured":"Arnaoudova V, Eshkevari LM, Di Penta M, Oliveto R, Antoniol G, Gu\u00e9h\u00e9neuc YG (2014) Repent: analyzing the nature of identifier renamings. IEEE Transactions on Software Engineering 40(5):502\u2013532","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10317_CR2","unstructured":"The Python\u00a0Packaging Authority (2022) Packaging python projects. https:\/\/packaging.python.org\/en\/latest\/tutorials\/packaging-projects\/ Sept 2022"},{"issue":"2","key":"10317_CR3","doi-asserted-by":"publisher","first-page":"219","DOI":"10.1007\/s10664-012-9201-4","volume":"18","author":"D Binkley","year":"2013","unstructured":"Binkley D, Davis M, Lawrie D, Maletic JI, Morrell C, Sharif B (2013) The impact of identifier style on effort and comprehension. Empirical Software Engineering 18(2):219\u2013276","journal-title":"Empirical Software Engineering"},{"key":"10317_CR4","doi-asserted-by":"crossref","unstructured":"Bose RPJC, Phokela KK, Kaulgud V, Podder S (2019) Blinker: a blockchain-enabled framework for software provenance. In: 2019 26th Asia-pacific software engineering conference (APSEC) IEEE p 1\u20138","DOI":"10.1109\/APSEC48747.2019.00010"},{"key":"10317_CR5","doi-asserted-by":"crossref","unstructured":"Butler G, Grogono P, Shinghal R, Tjandra I (1995) Retrieving information from data flow diagrams. In: Proceedings of 2nd working conference on reverse engineering IEEE p 22\u201329","DOI":"10.1109\/WCRE.1995.514690"},{"key":"10317_CR6","doi-asserted-by":"crossref","unstructured":"Butt AS, Fitch P (2020) ProvONE+: a provenance model for scientific workflows. In: International conference on web information systems engineering, Springer, p 431\u2013444","DOI":"10.1007\/978-3-030-62008-0_30"},{"key":"10317_CR7","doi-asserted-by":"publisher","first-page":"1405","DOI":"10.1007\/s10664-016-9461-5","volume":"22","author":"M Caniell","year":"2017","unstructured":"Caniell M, German DM (2017) Zacchiroli S (2017) The debsources dataset: two decades of free and open source software. Empirical Software Engineering 22:1405\u20131437","journal-title":"Empirical Software Engineering"},{"key":"10317_CR8","doi-asserted-by":"crossref","unstructured":"Caprile B, Tonella P (2000) Restructuring program identifier names In icsm, p 97\u2013107","DOI":"10.1109\/ICSM.2000.883022"},{"key":"10317_CR9","doi-asserted-by":"crossref","unstructured":"Cordy JR, Roy CK (2011) The NiCad clone detector. In: The 19th IEEE international conference on program comprehension, icpc 2011, kingston, on, canada, June 22-24, 2011, IEEE Computer Society, p 219\u2013220","DOI":"10.1109\/ICPC.2011.26"},{"key":"10317_CR10","unstructured":"Cosmo RD, Zacchiroli S (2017) Software heritage: why and how to preserve software source code. In: Proceedings of the 14th international conference on digital preservation, iPRES 2017, Kyoto, Japan, September 25-29, 2017"},{"key":"10317_CR11","doi-asserted-by":"crossref","unstructured":"Dang YB, Cheng P, Luo L, Cho A (2008) A code provenance management tool for ip-aware software development. In: Companion of the 30th international conference on software engineering, p 975\u2013976","DOI":"10.1145\/1370175.1370215"},{"key":"10317_CR12","doi-asserted-by":"crossref","unstructured":"Davies J, German Dm, Godfrey MW, Hindle A (2011) Software bertillonage: Finding the provenance of an entity. In: Proceedings of the 8th working conference on mining software repositories, p 183\u2013192","DOI":"10.1145\/1985441.1985468"},{"issue":"6","key":"10317_CR13","doi-asserted-by":"publisher","first-page":"1195","DOI":"10.1007\/s10664-012-9199-7","volume":"18","author":"J Davies","year":"2013","unstructured":"Davies J, German DM, Godfrey MW, Hindle A (2013) Software bertillonage. Empirical Software Engineering 18(6):1195\u20131237","journal-title":"Empirical Software Engineering"},{"issue":"3","key":"10317_CR14","doi-asserted-by":"publisher","first-page":"261","DOI":"10.1007\/s11219-006-9219-1","volume":"14","author":"F Deissenboeck","year":"2006","unstructured":"Deissenboeck F, Pizka M (2006) Concise and consistent naming. Software Quality Journal 14(3):261\u2013282","journal-title":"Software Quality Journal"},{"key":"10317_CR15","doi-asserted-by":"crossref","unstructured":"Penta MD, German DM, Antoniol G (2010) Identifying licensing of jar archives using a code-search approach. In: 2010 7th IEEE working conference on mining software repositories (MSR 2010), IEEE, p 151\u2013160","DOI":"10.1109\/MSR.2010.5463282"},{"key":"10317_CR16","doi-asserted-by":"crossref","unstructured":"Gabel M, Su Z (2010) A study of the uniqueness of source code. In: Proceedings of the eighteenth ACM SIGSOFT international symposium on foundations of software engineering, p 147\u2013156","DOI":"10.1145\/1882291.1882315"},{"key":"10317_CR17","doi-asserted-by":"crossref","unstructured":"Gautam P, Saini H (2016) Various code clone detection techniques and tools: a comprehensive survey. In: International conference on smart trends for information technology and computer communications, Springer, p 655\u2013667","DOI":"10.1007\/978-981-10-3433-6_79"},{"key":"10317_CR18","doi-asserted-by":"crossref","unstructured":"Gharehyazie M, Ray B, Filkov V (2017) Some from here, some from there: cross-project code reuse in github. In: 2017 IEEE\/ACM 14th international conference on mining software repositories (MSR), IEEE, p 291\u2013301","DOI":"10.1109\/MSR.2017.15"},{"key":"10317_CR19","doi-asserted-by":"publisher","first-page":"86","DOI":"10.1016\/j.scico.2013.11.021","volume":"97","author":"MW Godfrey","year":"2015","unstructured":"Godfrey MW (2015) Understanding software artifact provenance. Science of Computer Programming 97:86\u201390","journal-title":"Science of Computer Programming"},{"issue":"2","key":"10317_CR20","doi-asserted-by":"publisher","first-page":"166","DOI":"10.1109\/TSE.2005.28","volume":"31","author":"MW Godfrey","year":"2005","unstructured":"Godfrey MW, Zou L (2005) Using origin analysis to detect merging and splitting of source code entities. IEEE Transactions on Software Engineering 31(2):166\u2013181","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10317_CR21","doi-asserted-by":"crossref","unstructured":"Gupta A, Suri B (2018) A survey on code clone, its behavior and applications. In: Networking communication and data knowledge engineering, Springer, p 27\u201339","DOI":"10.1007\/978-981-10-4600-1_3"},{"issue":"6","key":"10317_CR22","doi-asserted-by":"publisher","first-page":"77","DOI":"10.1109\/MC.2020.2983530","volume":"53","author":"N Harutyunyan","year":"2020","unstructured":"Harutyunyan N (2020) Managing your open source supply chain-why and how? Computer 53(6):77\u201381","journal-title":"Computer"},{"key":"10317_CR23","doi-asserted-by":"crossref","unstructured":"Hofmeister J, Siegmund J, Holt DV (2017) Shorter identifier names take longer to comprehend. In: 2017 IEEE 24th international conference on software analysis, evolution and reengineering (SANER), IEEE, p 217\u2013227","DOI":"10.1109\/SANER.2017.7884623"},{"issue":"7","key":"10317_CR24","doi-asserted-by":"publisher","first-page":"654","DOI":"10.1109\/TSE.2002.1019480","volume":"28","author":"T Kamiya","year":"2002","unstructured":"Kamiya T, Kusumoto S, Inoue K (2002) Ccfinder: a multilinguistic token-based code clone detection system for large scale source code. IEEE Transactions on Software Engineering 28(7):654\u2013670","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10317_CR25","doi-asserted-by":"crossref","unstructured":"Kapdan M, Aktas M, Yigit M (2014) On the structural code clone detection problem: a survey and software metric based approach. In: International conference on computational science and its applications, Springer, p 492\u2013507","DOI":"10.1007\/978-3-319-09156-3_35"},{"issue":"4","key":"10317_CR26","doi-asserted-by":"publisher","first-page":"303","DOI":"10.1007\/s11334-007-0031-2","volume":"3","author":"D Lawrie","year":"2007","unstructured":"Lawrie D, Morrell C, Feild H, Binkley D (2007) Effective identifier names for comprehension and memory. Innovations in Systems and Software Engineering 3(4):303\u2013318","journal-title":"Innovations in Systems and Software Engineering"},{"issue":"3","key":"10317_CR27","doi-asserted-by":"publisher","first-page":"176","DOI":"10.1109\/TSE.2006.28","volume":"32","author":"Z Li","year":"2006","unstructured":"Li Z, Lu S, Myagmar S, Zhou Y (2006) Cp-miner: finding copy-paste and related bugs in large-scale software code. IEEE Transactions on Software Engineering 32(3):176\u2013192","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10317_CR28","volume-title":"An Introduction to Information Retrieval","author":"CD Manning","year":"2009","unstructured":"Manning CD, Raghavan P, Schutze H (2009) An Introduction to Information Retrieval. Cambridge University Press, Cambridge, England"},{"issue":"5","key":"10317_CR29","doi-asserted-by":"publisher","first-page":"1069","DOI":"10.1109\/TSE.2011.84","volume":"38","author":"C McMillan","year":"2012","unstructured":"McMillan C, Grechanik M, Poshyvanyk D, Fu C, Xie Q (2012) Exemplar: a source code search engine for finding highly relevant applications. IEEE Trans Software Eng 38(5):1069\u20131087","journal-title":"IEEE Trans Software Eng"},{"issue":"3","key":"10317_CR30","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/2000791.2000792","volume":"20","author":"S Miles","year":"2011","unstructured":"Miles S, Groth P, Munroe S, Moreau L (2011) Prime: a methodology for developing provenance-aware applications. ACM Transactions on Software Engineering and Methodology (TOSEM) 20(3):1\u201342","journal-title":"ACM Transactions on Software Engineering and Methodology (TOSEM)"},{"key":"10317_CR31","doi-asserted-by":"crossref","unstructured":"Missier P, Belhajjame K, Cheney J (2013) The W3C PROV family of specifications for modelling provenance metadata. In: Proceedings of the 16th international conference on extending database technology, p 773\u2013776","DOI":"10.1145\/2452376.2452478"},{"key":"10317_CR32","unstructured":"Missier P, Dey S, Belhajjame K, Vicentt\u00edn VC, Lud\u00e4scher B (2013) D-prov: extending the PROV provenance model with workflow structure. In: 5th USENIX workshop on the theory and practice of provenance (TaPP 13)"},{"issue":"6","key":"10317_CR33","doi-asserted-by":"publisher","first-page":"743","DOI":"10.1016\/j.future.2010.07.005","volume":"27","author":"L Moreau","year":"2011","unstructured":"Moreau L, Clifford B, Freire J, Futrelle J, Gil Y, Groth P, Kwasnikowska N, Miles S, Missier P, Myers J et al (2011) The open provenance model core specification (v1. 1). Future Generation Computer Systems 27(6):743\u2013756","journal-title":"Future Generation Computer Systems"},{"key":"10317_CR34","doi-asserted-by":"crossref","unstructured":"Nguyen S, Phan H, Le T, Nguyen TN (2020) Suggesting natural method names to check name consistencies. In: Proceedings of the ACM\/IEEE 42nd international conference on software engineering, p 1372\u20131384","DOI":"10.1145\/3377811.3380926"},{"issue":"10","key":"10317_CR35","doi-asserted-by":"publisher","first-page":"105","DOI":"10.1109\/MC.2020.3011082","volume":"53","author":"Philippe Ombredanne","year":"2020","unstructured":"Ombredanne Philippe (2020) Free and open source software license compliance: Tools for software composition analysis. Computer 53(10):105\u2013109","journal-title":"Computer"},{"key":"10317_CR36","doi-asserted-by":"crossref","unstructured":"Ossher J, Sajnani H, Lopes C (2011) File cloning in open source java projects: the good, the bad, and the ugly. In: 2011 27th IEEE international conference on software maintenance (ICSM),IEEE, p 283\u2013292","DOI":"10.1109\/ICSM.2011.6080795"},{"key":"10317_CR37","doi-asserted-by":"crossref","unstructured":"Perez D, Chiba S (2019) Cross-language clone detection by learning over abstract syntax trees. In: 2019 IEEE\/ACM 16th international conference on mining software repositories (MSR), IEEE, p 518\u2013528","DOI":"10.1109\/MSR.2019.00078"},{"issue":"12","key":"10317_CR38","doi-asserted-by":"publisher","first-page":"115","DOI":"10.1109\/MC.2020.3024403","volume":"53","author":"S Phipps","year":"2020","unstructured":"Phipps S, Zacchiroli S (2020) Continuous open source license compliance. Computer 53(12):115\u2013119","journal-title":"Computer"},{"key":"10317_CR39","doi-asserted-by":"crossref","unstructured":"Pietri A, Spinellis D, Zacchiroli S (2019) The software heritage graph dataset: public software development under one roof. In: Proceedings of the 16th international conference on mining software repositories, MSR 2019, 26-27 May 2019, Montreal, Canada, IEEE \/ ACM, p 138\u2013142","DOI":"10.1109\/MSR.2019.00030"},{"key":"10317_CR40","unstructured":"Rosen L (2005) Open source licensing, volume 692. Prentice hall"},{"key":"10317_CR41","doi-asserted-by":"publisher","first-page":"2930","DOI":"10.1007\/s10664-020-09828-5","volume":"25","author":"G Rousseau","year":"2020","unstructured":"Rousseau G, Cosmo RD, Zacchiroli S (2020) Software provenance tracking at the scale of public source code. Empirical Software Engineering 25:2930\u20132959","journal-title":"Empirical Software Engineering"},{"issue":"115","key":"10317_CR42","first-page":"64","volume":"541","author":"CK Roy","year":"2007","unstructured":"Roy CK, Cordy JR (2007) A survey on software clone detection research. Queen\u2019s School of Computing TR 541(115):64\u201368","journal-title":"Queen\u2019s School of Computing TR"},{"key":"10317_CR43","doi-asserted-by":"crossref","unstructured":"Saini M, Verma R, Singh A, Chahal KK (2020) Investigating diversity and impact of the popularity metrics for ranking software packages. J. Softw Evol Process, 32(9)","DOI":"10.1002\/smr.2265"},{"key":"10317_CR44","doi-asserted-by":"crossref","unstructured":"Sajnani H, Saini V, Svajlenko J, Roy CK, Lopes CV (2016) SourcererCC: scaling code clone detection to big-code. In: Proceedings of the 38th international conference on software engineering, ICSE 2016, Austin, TX, USA, May 14-22, 2016, ACM, p 1157\u20131168","DOI":"10.1145\/2884781.2884877"},{"key":"10317_CR45","unstructured":"Securosis, L.L.C. (2021)Open source development and application security survey [online]. https:\/\/securosis.com\/assets\/library\/reports\/Securosis_OpenSourceSurvey_Analysis.pdf, Accessed 14 June 2021"},{"issue":"10","key":"10317_CR46","doi-asserted-by":"publisher","first-page":"1","DOI":"10.5120\/ijca2016908896","volume":"137","author":"A Sheneamer","year":"2016","unstructured":"Sheneamer A, Kalita J (2016) A survey of software clone detection techniques. International Journal of Computer Applications 137(10):1\u201321","journal-title":"International Journal of Computer Applications"},{"key":"10317_CR47","doi-asserted-by":"crossref","unstructured":"Sneed HM (1996) Object-oriented cobol recycling. In: Proceedings of WCRE\u201996: 4rd working conference on reverse engineering, IEEE, p 169\u2013178","DOI":"10.1109\/WCRE.1996.558901"},{"key":"10317_CR48","doi-asserted-by":"publisher","first-page":"191","DOI":"10.5033\/ifosslr.v4i1.45","volume":"2","author":"K Stewart","year":"2010","unstructured":"Stewart K, Odence P, Rockett E (2010) Software package data exchange (SPDX) specification. IFOSS L. Rev. 2:191","journal-title":"IFOSS L. Rev."},{"key":"10317_CR49","doi-asserted-by":"publisher","unstructured":"Sun Y, German D, Zacchiroli (2023) Dataset for \u201dUsing the Uniqueness of Global Identifiers to Determine the Provenance of Phyton Software Source Code\" https:\/\/doi.org\/10.5281\/zenedo.7637703 February 2023","DOI":"10.5281\/zenedo.7637703"},{"key":"10317_CR50","unstructured":"Synopsys (2020) 2020 open source security and risk analysis report (OSSRA).Technical Report, Synopsys. Accessed 15 April 2020"},{"issue":"4","key":"10317_CR51","doi-asserted-by":"publisher","first-page":"761","DOI":"10.3233\/IDA-150744","volume":"19","author":"P Warintarawej","year":"2015","unstructured":"Warintarawej P, Huchard M, Lafourcade M, Laurent A, Pompidor P (2015) Software understanding: automatic classification of software identifiers. Intelligent Data Analysis 19(4):761\u2013778","journal-title":"Intelligent Data Analysis"},{"key":"10317_CR52","doi-asserted-by":"crossref","unstructured":"Wendel H, Kunde M, Schreiber A (2010) Provenance of software development processes. In: International provenance and annotation workshop, Springer, p 59\u201363","DOI":"10.1007\/978-3-642-17819-1_7"},{"key":"10317_CR53","doi-asserted-by":"crossref","unstructured":"Yuan Y, Guo Y (2012) Boreas: an accurate and scalable token-based approach to code clone detection. In: Proceedings of the 27th IEEE\/ACM international conference on automated software engineering, p 286\u2013289","DOI":"10.1145\/2351676.2351725"},{"key":"10317_CR54","doi-asserted-by":"crossref","unstructured":"Zimmermann T (2020) A first look at an emerging model of community organizations for the long-term maintenance of ecosystems\u2019 packages. In: Proceedings of the IEEE\/ACM 42nd international conference on software engineering workshops, ICSEW\u201920, New York, NY, USA, 2020. association for computing machinery. p 711-718","DOI":"10.1145\/3387940.3392209"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-023-10317-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-023-10317-8\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-023-10317-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,4]],"date-time":"2023-10-04T12:16:55Z","timestamp":1696421815000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-023-10317-8"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,7,20]]},"references-count":54,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2023,9]]}},"alternative-id":["10317"],"URL":"https:\/\/doi.org\/10.1007\/s10664-023-10317-8","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,7,20]]},"assertion":[{"value":"1 March 2023","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"20 July 2023","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"All authors certify that they have no affiliations with or involvement in any organization or entity with any financial interest or non-financial interest in the subject matter or materials discussed in this manuscript.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflict of interests"}}],"article-number":"107"}}