A Dead Link Is Not Lost Code: Separating Repository Reachability from Deposit Availability in Zenodo Software Citations
本研究分析了 3,837 条 Zenodo 软件引用,旨在证明尽管即使在源代码仓库变得无法访问时,大多数存档文件仍保持可访问性,但很大一部分失效引用源于失效的仓库指针而非软件丢失,从而强调了仓库可用性与存档完整性之间的关键区别。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在现代科学领域,软件不再仅仅是一种工具,它本身就是一种研究成果,理应获得与期刊论文同等的认可。为了确保这种认可公平且持久,科学家们现在会在其代码上附加一个特殊的数字标签,这是一个独特的标识符,充当着永久地址的角色。这个标签指向一个特定的软件版本,将其冻结在特定的时间点,以便任何在多年后阅读论文的人都能找到作者当时使用的完全相同的代码。这一系统依赖于一个承诺:即这个地址将始终引导读者找到该软件。但要使这一承诺成立,必须满足两个条件。首先,地址本身必须有效,能够引导至存储软件的页面。其次,软件本身必须依然存在,等待下载。如果地址指向一个显示“找不到文件”的页面,或者页面加载了但代码已经消失,那么科学记录就会出现缺口。
长期以来,研究人员早已知晓科学领域的网页链接经常失效,这种现象被称为“链接腐烂”。然而,软件引用与之不同,因为它构建在一个双层系统中。永久标签指向一个数字存档,而存档又指向原始的代码仓库,后者通常托管在像 GitHub 这样的平台上。存档由致力于保障安全的机构管理,而原始代码则生活在一个所有者可以随时重命名、私有化或删除项目的平台上。这创造了一种独特的情况:即使原始项目已经消失,永久标签可能仍然完美运行。一位研究人员着手测量这种情况发生的频率,更重要的是,观察当原始路径被阻断时,软件本身是否仍可恢复。
该研究重点关注了来自一个名为 Zenodo 的主要数字存档的数千条软件记录,该存档被广泛用于保存科学家的代码。研究人员不仅检查了原始项目页面是否仍在网上,还检查了引用链中的三个不同层面。首先,他们检查了原始项目仓库是否仍然存在。其次,他们检查了引文中提到的特定代码版本是否仍然可以访问。最后,对于那些原始路径失效的情况,他们检查了数字存档是否仍保留着实际的文件。这种方法使他们能够将“链接失效”与“软件丢失”区分开来。
结果揭示了随时间推移而出现的明显衰减模式。随着软件记录变得陈旧,其链接失效的可能性也随之增加。大约有 4.7% 的原始项目仓库已无法访问。然而,当观察科学家实际引用的特定代码版本时,问题变得更加普遍。在这一更严格的检查中,失败率上升到了 5.45%。这种差异意义重大,因为这意味着在约六分之一的失效引用中,原始项目仍然存活且完好无损,但研究人员引用的特定版本已被删除或移动。这是一个至关重要的区别:仅检查项目主页会完全忽略这种失败,从而使软件看起来可用,实则不然。
尽管存在这些失效链接,数字存档被证明是一个非常有效的安全网。当研究人员顺着失效的链接追踪到存档时,他们发现 94.4% 的情况下,存档仍在提供原始文件。这意味着即使通往原始项目的路径丢失了,软件本身通常仍然存在,并保存在存档中。存档正在履行其设计的初衷:即使原始家园已不在,依然守护着代码的安全。只有在极少数情况下(占所有引用的不到 1%),即存档记录存在但文件缺失时,软件才真正丢失了。
研究还强调了一个微妙但重要的风险。大约 6.4% 的看似有效的引用实际上是依赖于“礼貌重定向”。这种情况发生在项目更改名称时,托管平台会自动将旧名称导向新名称。虽然这在目前行之有效,但它并不是一种永久性的保证;如果未来有人声称拥有旧名称,链接可能会悄然失效,或指向无关的代码。这表明,虽然存档保存了软件,但我们指向它的方式需要更加谨慎。研究人员得出结论,科学家应该引用永久存档标识符,而非原始项目链接,并且用于检查引用的工具应当在判定引用失效前先查看存档。保护研究软件的基础设施正在发挥作用,但我们需要比表面链接看得更深,才能找到依然存在的代码。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。