{"id":15240,"identifier":"FK2/LYIDHI","persistentUrl":"https://doi.org/10.60507/FK2/LYIDHI","protocol":"doi","authority":"10.60507","separator":"/","publisher":"bonndata","publicationDate":"2026-01-22","storageIdentifier":"file://10.60507/FK2/LYIDHI","metadataLanguage":"de-DE","datasetType":"dataset","datasetVersion":{"id":559,"datasetId":15240,"datasetPersistentId":"doi:10.60507/FK2/LYIDHI","datasetType":"dataset","storageIdentifier":"file://10.60507/FK2/LYIDHI","versionNumber":1,"internalVersionNumber":19,"versionMinorNumber":0,"versionState":"RELEASED","latestVersionPublishingState":"RELEASED","lastUpdateTime":"2026-01-22T11:47:21Z","releaseTime":"2026-01-22T11:47:21Z","createTime":"2026-01-14T11:57:38Z","publicationDate":"2026-01-22","citationDate":"2026-01-22","license":{"name":"MIT","uri":"https://mit-license.org/","iconUri":"/imglibs/logos/lic/mit.svg"},"fileAccessRequest":true,"metadataBlocks":{"citation":{"displayName":"Citation Metadata","name":"citation","fields":[{"typeName":"title","multiple":false,"typeClass":"primitive","value":"dolospy"},{"typeName":"subtitle","multiple":false,"typeClass":"primitive","value":"Efficient implementation of the core algorithm for the plagiarism detection tool \"Dolos\""},{"typeName":"alternativeURL","multiple":false,"typeClass":"primitive","value":"https://github.com/BlobbyBob/AletheiaJSVersionDetection"},{"typeName":"author","multiple":true,"typeClass":"compound","value":[{"authorName":{"typeName":"authorName","multiple":false,"typeClass":"primitive","value":"Swierzy, Ben"},"authorAffiliation":{"typeName":"authorAffiliation","multiple":false,"typeClass":"primitive","value":"University of Bonn"},"authorIdentifierScheme":{"typeName":"authorIdentifierScheme","multiple":false,"typeClass":"controlledVocabulary","value":"ORCID"},"authorIdentifier":{"typeName":"authorIdentifier","multiple":false,"typeClass":"primitive","value":"https://orcid.org/0009-0003-0485-4791","expandedvalue":{"personName":"Swierzy, Ben","@id":"https://orcid.org/0009-0003-0485-4791","scheme":"ORCID","@type":"https://schema.org/Person"}}}]},{"typeName":"datasetContact","multiple":true,"typeClass":"compound","value":[{"datasetContactName":{"typeName":"datasetContactName","multiple":false,"typeClass":"primitive","value":"Swierzy, Ben"},"datasetContactAffiliation":{"typeName":"datasetContactAffiliation","multiple":false,"typeClass":"primitive","value":"University of Bonn"},"datasetContactEmail":{"typeName":"datasetContactEmail","multiple":false,"typeClass":"primitive","value":"swierzy@cs.uni-bonn.de"}}]},{"typeName":"dsDescription","multiple":true,"typeClass":"compound","value":[{"dsDescriptionValue":{"typeName":"dsDescriptionValue","multiple":false,"typeClass":"primitive","value":"This repository contains a re-implementation of the rolling AST hash algorithm from Dolos (https://dolos.ugent.be/) in C++ with Python bindings. It is 8x faster for indexing and 10,000x faster in reporting compared to the original JavaScript implementation (cf. BENCHMARKING.md)."}}]},{"typeName":"subject","multiple":true,"typeClass":"controlledVocabulary","value":["Computer and Information Science"]},{"typeName":"subjectRefinement","multiple":true,"typeClass":"compound","value":[{"subjectRefinementValue":{"typeName":"subjectRefinementValue","multiple":false,"typeClass":"primitive","value":"Computer Science: Software Engineering and Programming Languages [409-02]"}},{"subjectRefinementValue":{"typeName":"subjectRefinementValue","multiple":false,"typeClass":"primitive","value":"Computer Science: Security and Dependability [409-03]"}}]},{"typeName":"freeKeyword","multiple":true,"typeClass":"compound","value":[{"freeKeywordValue":{"typeName":"freeKeywordValue","multiple":false,"typeClass":"primitive","value":"code similarity"}},{"freeKeywordValue":{"typeName":"freeKeywordValue","multiple":false,"typeClass":"primitive","value":"rolling ast hash"}}]},{"typeName":"publication","multiple":true,"typeClass":"compound","value":[{"publicationRelationType":{"typeName":"publicationRelationType","multiple":false,"typeClass":"controlledVocabulary","value":"IsSupplementTo"},"publicationCitation":{"typeName":"publicationCitation","multiple":false,"typeClass":"primitive","value":"Ben Swierzy, Marc Ohm, and Michael Meier. 2026. Insecure Ingredients? Exploring Dependency Update Patterns of Bundled JavaScript Packages on the Web. In 2026 IEEE/ACM 48th International Conference on Software Engineering (ICSE ’26), April 12–18, 2026, Rio de Janeiro, Brazil. ACM, New York, NY, USA, 13 pages. https://doi.org/10.1145/3744916.3787780"},"publicationIDType":{"typeName":"publicationIDType","multiple":false,"typeClass":"controlledVocabulary","value":"doi"},"publicationIDNumber":{"typeName":"publicationIDNumber","multiple":false,"typeClass":"primitive","value":"10.1145/3744916.3787780"},"publicationURL":{"typeName":"publicationURL","multiple":false,"typeClass":"primitive","value":"https://dl.acm.org/doi/abs/10.1145/3744916.3787780"}},{"publicationRelationType":{"typeName":"publicationRelationType","multiple":false,"typeClass":"controlledVocabulary","value":"IsSupplementTo"},"publicationCitation":{"typeName":"publicationCitation","multiple":false,"typeClass":"primitive","value":"Swierzy, Ben, Marc Ohm, and Michael Meier. \"Insecure Ingredients? Exploring Dependency Update Patterns of Bundled JavaScript Packages on the Web.\" arXiv preprint arXiv:2512.15447 (2025)."},"publicationIDType":{"typeName":"publicationIDType","multiple":false,"typeClass":"controlledVocabulary","value":"doi"},"publicationIDNumber":{"typeName":"publicationIDNumber","multiple":false,"typeClass":"primitive","value":"10.48550/arXiv.2512.15447"},"publicationURL":{"typeName":"publicationURL","multiple":false,"typeClass":"primitive","value":"https://arxiv.org/abs/2512.15447"}}]},{"typeName":"language","multiple":true,"typeClass":"controlledVocabulary","value":["English"]},{"typeName":"depositor","multiple":false,"typeClass":"primitive","value":"Swierzy, Ben"},{"typeName":"dateOfDeposit","multiple":false,"typeClass":"primitive","value":"2026-01-14"},{"typeName":"kindOfData","multiple":true,"typeClass":"primitive","value":["program source code"]},{"typeName":"relatedMaterial","multiple":true,"typeClass":"primitive","value":["GitHub Repository: https://github.com/BlobbyBob/AletheiaJSVersionDetection","Evaluation Scripts that utilize dolospy: https://doi.org/10.60507/FK2/F4VQRH"]},{"typeName":"relatedDatasets","multiple":true,"typeClass":"primitive","value":["Internet Measurement Dataset: https://doi.org/10.60507/FK2/AHYGMN"]}]},"codeMeta20":{"displayName":"Software Metadata (CodeMeta v2.0)","name":"codeMeta20","fields":[{"typeName":"codeVersion","multiple":false,"typeClass":"primitive","value":"0.3.5"},{"typeName":"developmentStatus","multiple":false,"typeClass":"controlledVocabulary","value":"Concept"},{"typeName":"codeRepository","multiple":true,"typeClass":"primitive","value":["https://github.com/BlobbyBob/AletheiaJSVersionDetection"]},{"typeName":"applicationCategory","multiple":true,"typeClass":"primitive","value":["Analysis"]},{"typeName":"applicationSubCategory","multiple":true,"typeClass":"primitive","value":["Static Code Analysis"]},{"typeName":"programmingLanguage","multiple":true,"typeClass":"primitive","value":["C++","Python"]},{"typeName":"runtimePlatform","multiple":true,"typeClass":"primitive","value":["Python 3.12"]},{"typeName":"buildInstructions","multiple":true,"typeClass":"primitive","value":["https://github.com/BlobbyBob/AletheiaJSVersionDetection/tree/main/dolospy/BUILD.md"]},{"typeName":"softwareRequirementsItem","multiple":true,"typeClass":"compound","value":[{"softwareRequirements":{"typeName":"softwareRequirements","multiple":false,"typeClass":"primitive","value":"pybind11 >= 3"},"softwareRequirementsInfoUrl":{"typeName":"softwareRequirementsInfoUrl","multiple":false,"typeClass":"primitive","value":"https://pybind11.readthedocs.io/en/stable/index.html"}},{"softwareRequirements":{"typeName":"softwareRequirements","multiple":false,"typeClass":"primitive","value":"tree-sitter >= 0.25.10"},"softwareRequirementsInfoUrl":{"typeName":"softwareRequirementsInfoUrl","multiple":false,"typeClass":"primitive","value":"https://tree-sitter.github.io/tree-sitter/"}},{"softwareRequirements":{"typeName":"softwareRequirements","multiple":false,"typeClass":"primitive","value":"tree-sitter-javascript >= 0.25.0"},"softwareRequirementsInfoUrl":{"typeName":"softwareRequirementsInfoUrl","multiple":false,"typeClass":"primitive","value":"https://github.com/tree-sitter/tree-sitter-javascript"}},{"softwareRequirements":{"typeName":"softwareRequirements","multiple":false,"typeClass":"primitive","value":"boost-json >= 1.81.0.2"},"softwareRequirementsInfoUrl":{"typeName":"softwareRequirementsInfoUrl","multiple":false,"typeClass":"primitive","value":"https://www.boost.org/"}}]},{"typeName":"processorRequirements","multiple":true,"typeClass":"primitive","value":["x64"]},{"typeName":"readme","multiple":false,"typeClass":"primitive","value":"https://github.com/BlobbyBob/AletheiaJSVersionDetection/blob/main/README.md"}]}},"files":[{"label":"BENCHMARKING.md","restricted":false,"version":1,"datasetVersionId":559,"dataFile":{"id":15527,"persistentId":"doi:10.60507/FK2/LYIDHI/DIGDMT","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/DIGDMT","filename":"BENCHMARKING.md","contentType":"text/markdown","friendlyType":"Markdown Text","filesize":2003,"storageIdentifier":"file://19bdfaf3862-2daae17aeba0","rootDataFileId":-1,"md5":"1db4fa3b5d15063f6f3f0e2aab7aaa3d","checksum":{"type":"MD5","value":"1db4fa3b5d15063f6f3f0e2aab7aaa3d"},"tabularData":false,"creationDate":"2026-01-21","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"BUILD.md","restricted":false,"version":1,"datasetVersionId":559,"dataFile":{"id":15258,"persistentId":"doi:10.60507/FK2/LYIDHI/ALARYK","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/ALARYK","filename":"BUILD.md","contentType":"text/markdown","friendlyType":"Markdown Text","filesize":203,"storageIdentifier":"file://19bbc9605ad-bbf65ed01135","rootDataFileId":-1,"md5":"673451ff60913a9e6ac59a6f085a76c5","checksum":{"type":"MD5","value":"673451ff60913a9e6ac59a6f085a76c5"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"CMakeLists.txt","restricted":false,"version":1,"datasetVersionId":559,"dataFile":{"id":15253,"persistentId":"doi:10.60507/FK2/LYIDHI/BWOEG3","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/BWOEG3","filename":"CMakeLists.txt","contentType":"text/plain","friendlyType":"Plain Text","filesize":530,"storageIdentifier":"file://19bbc96078d-7021371e5552","rootDataFileId":-1,"md5":"6a6ed6ad505aedddc40133bfcdaace1d","checksum":{"type":"MD5","value":"6a6ed6ad505aedddc40133bfcdaace1d"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"__init__.py","restricted":false,"directoryLabel":"dolospy","version":1,"datasetVersionId":559,"dataFile":{"id":15249,"persistentId":"doi:10.60507/FK2/LYIDHI/HJZHQG","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/HJZHQG","filename":"__init__.py","contentType":"text/x-python","friendlyType":"Python Source Code","filesize":23,"storageIdentifier":"file://19bbc8e197d-a4a881d847de","rootDataFileId":-1,"md5":"e530edf264988f6a4c4babd93c530c3d","checksum":{"type":"MD5","value":"e530edf264988f6a4c4babd93c530c3d"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"__main__.py","restricted":false,"directoryLabel":"dolospy","version":1,"datasetVersionId":559,"dataFile":{"id":15246,"persistentId":"doi:10.60507/FK2/LYIDHI/HNMKX6","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/HNMKX6","filename":"__main__.py","contentType":"text/x-python","friendlyType":"Python Source Code","filesize":4032,"storageIdentifier":"file://19bbc8e1d31-737874225319","rootDataFileId":-1,"md5":"2f3b777ad646f8ecdfffe9a4f6f15d2d","checksum":{"type":"MD5","value":"2f3b777ad646f8ecdfffe9a4f6f15d2d"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"dolospy.pyi","restricted":false,"directoryLabel":"dolospy","version":1,"datasetVersionId":559,"dataFile":{"id":15257,"persistentId":"doi:10.60507/FK2/LYIDHI/9GATIX","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/9GATIX","filename":"dolospy.pyi","contentType":"text/x-python3","friendlyType":"text/x-python3","filesize":771,"storageIdentifier":"file://19bbc8e18e8-dd5f5f4eee73","rootDataFileId":-1,"md5":"7565c2e54f0db99774ed9f57ae2dc7d3","checksum":{"type":"MD5","value":"7565c2e54f0db99774ed9f57ae2dc7d3"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"hashing.cpp","restricted":false,"directoryLabel":"src","version":1,"datasetVersionId":559,"dataFile":{"id":15252,"persistentId":"doi:10.60507/FK2/LYIDHI/X8KFUS","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/X8KFUS","filename":"hashing.cpp","contentType":"text/x-c++src","friendlyType":"C++ Source","filesize":427,"storageIdentifier":"file://19bbc8e5ed9-0deb4062e537","rootDataFileId":-1,"md5":"2abc7d2ce7037b22e912555e3351cd21","checksum":{"type":"MD5","value":"2abc7d2ce7037b22e912555e3351cd21"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"hashing.h","restricted":false,"directoryLabel":"src","version":1,"datasetVersionId":559,"dataFile":{"id":15243,"persistentId":"doi:10.60507/FK2/LYIDHI/ENYEV5","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/ENYEV5","filename":"hashing.h","contentType":"text/x-chdr","friendlyType":"text/x-chdr","filesize":2693,"storageIdentifier":"file://19bbc8e604f-17b0ba230dfb","rootDataFileId":-1,"md5":"c75f67e5eb94720110d8f5bf4edabdbc","checksum":{"type":"MD5","value":"c75f67e5eb94720110d8f5bf4edabdbc"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"index.cpp","restricted":false,"directoryLabel":"src","version":1,"datasetVersionId":559,"dataFile":{"id":15242,"persistentId":"doi:10.60507/FK2/LYIDHI/1VBFYT","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/1VBFYT","filename":"index.cpp","contentType":"text/x-c++src","friendlyType":"C++ Source","filesize":4925,"storageIdentifier":"file://19bbc8e63da-e88265cc52f6","rootDataFileId":-1,"md5":"d9342731f06c2c9ac192ebf7a8e3e395","checksum":{"type":"MD5","value":"d9342731f06c2c9ac192ebf7a8e3e395"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"index.h","restricted":false,"directoryLabel":"src","version":1,"datasetVersionId":559,"dataFile":{"id":15255,"persistentId":"doi:10.60507/FK2/LYIDHI/4QYSRZ","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/4QYSRZ","filename":"index.h","contentType":"text/x-chdr","friendlyType":"text/x-chdr","filesize":1128,"storageIdentifier":"file://19bbc8e643a-d474747edab3","rootDataFileId":-1,"md5":"1bc1902c00ef14ba0dc1eda8e83ee433","checksum":{"type":"MD5","value":"1bc1902c00ef14ba0dc1eda8e83ee433"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"interface.cpp","restricted":false,"directoryLabel":"src/interface","version":1,"datasetVersionId":559,"dataFile":{"id":15248,"persistentId":"doi:10.60507/FK2/LYIDHI/XR2VMI","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/XR2VMI","filename":"interface.cpp","contentType":"text/x-c++src","friendlyType":"C++ Source","filesize":1175,"storageIdentifier":"file://19bbc8f1f3e-662757a1847b","rootDataFileId":-1,"md5":"3776958457801dec7fc20cf6ef4ab603","checksum":{"type":"MD5","value":"3776958457801dec7fc20cf6ef4ab603"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"interface.h","restricted":false,"directoryLabel":"src/interface","version":1,"datasetVersionId":559,"dataFile":{"id":15245,"persistentId":"doi:10.60507/FK2/LYIDHI/T2G23Q","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/T2G23Q","filename":"interface.h","contentType":"text/x-chdr","friendlyType":"text/x-chdr","filesize":222,"storageIdentifier":"file://19bbc8f20b0-52963857780e","rootDataFileId":-1,"md5":"f70d3f56dfecdcbe6a0c7eabcfa484ef","checksum":{"type":"MD5","value":"f70d3f56dfecdcbe6a0c7eabcfa484ef"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"main.cpp","restricted":false,"version":1,"datasetVersionId":559,"dataFile":{"id":15251,"persistentId":"doi:10.60507/FK2/LYIDHI/BFDFEV","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/BFDFEV","filename":"main.cpp","contentType":"text/x-c++src","friendlyType":"C++ Source","filesize":1371,"storageIdentifier":"file://19bbc960b95-f4055ad0b795","rootDataFileId":-1,"md5":"ec5984e3784fd2070846100648737a14","checksum":{"type":"MD5","value":"ec5984e3784fd2070846100648737a14"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"pyproject.toml","restricted":false,"version":1,"datasetVersionId":559,"dataFile":{"id":15247,"persistentId":"doi:10.60507/FK2/LYIDHI/FOBHLP","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/FOBHLP","filename":"pyproject.toml","contentType":"application/toml","friendlyType":"application/toml","filesize":289,"storageIdentifier":"file://19bbc960f51-fe818572f74d","rootDataFileId":-1,"md5":"4368885f11e8fa8a025a7038a9674d67","checksum":{"type":"MD5","value":"4368885f11e8fa8a025a7038a9674d67"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"python.cpp","restricted":false,"directoryLabel":"src/interface","version":1,"datasetVersionId":559,"dataFile":{"id":15254,"persistentId":"doi:10.60507/FK2/LYIDHI/0LZH5S","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/0LZH5S","filename":"python.cpp","contentType":"text/x-c++src","friendlyType":"C++ Source","filesize":2434,"storageIdentifier":"file://19bbc8f2488-77f621c68c8e","rootDataFileId":-1,"md5":"fc9ea80f5e4295af554dde440b48e040","checksum":{"type":"MD5","value":"fc9ea80f5e4295af554dde440b48e040"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"readme.txt","restricted":false,"version":1,"datasetVersionId":559,"dataFile":{"id":15525,"persistentId":"doi:10.60507/FK2/LYIDHI/HHTU77","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/HHTU77","filename":"readme.txt","contentType":"text/plain","friendlyType":"Plain Text","filesize":2706,"storageIdentifier":"file://19bdfa2e2b7-36bf13a329d0","rootDataFileId":-1,"md5":"ac7e464c7be5951689b2ef9e709fb0cb","checksum":{"type":"MD5","value":"ac7e464c7be5951689b2ef9e709fb0cb"},"tabularData":false,"creationDate":"2026-01-21","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"tokenizer.cpp","restricted":false,"directoryLabel":"src","version":1,"datasetVersionId":559,"dataFile":{"id":15256,"persistentId":"doi:10.60507/FK2/LYIDHI/ILENOC","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/ILENOC","filename":"tokenizer.cpp","contentType":"text/x-c++src","friendlyType":"C++ Source","filesize":1802,"storageIdentifier":"file://19bbc8e6778-bec9f7ff2157","rootDataFileId":-1,"md5":"7a601aca257e4a9a3a4d060d21491368","checksum":{"type":"MD5","value":"7a601aca257e4a9a3a4d060d21491368"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}},{"label":"tokenizer.h","restricted":false,"directoryLabel":"src","version":1,"datasetVersionId":559,"dataFile":{"id":15250,"persistentId":"doi:10.60507/FK2/LYIDHI/PCJQKT","pidURL":"https://doi.org/10.60507/FK2/LYIDHI/PCJQKT","filename":"tokenizer.h","contentType":"text/x-chdr","friendlyType":"text/x-chdr","filesize":245,"storageIdentifier":"file://19bbc8e6b2c-582580549c54","rootDataFileId":-1,"md5":"b424721ba77516ece32504b0803d2d78","checksum":{"type":"MD5","value":"b424721ba77516ece32504b0803d2d78"},"tabularData":false,"creationDate":"2026-01-14","publicationDate":"2026-01-22","fileAccessRequest":true}}],"citation":"Swierzy, Ben, 2026, \"dolospy\", https://doi.org/10.60507/FK2/LYIDHI, bonndata, V1"}}