dblp网站刚刚发生了很大的变化……如果我们做得不错,您可能还没有注意到:随着最新的更新,我们引入了dblp URL方案的主要更改特别是,这适用于dblp上列出的所有作者书目的URL,这些书目现在使用新的永久URL提供服务。

但别担心,就像大约八年前我们第一次做这样的更改一样,我们尝试保留所有以前存在的URL,作为可预见的未来的重定向。

在这篇文章中,我们讨论了使我们放弃旧URL方案的原因,以及为什么您很可能想要更新超链接和书签。

那么,旧的URL方案有什么问题?

自1993年dblp成立以来,作者书目一直是dblp的组成部分。由于所有作者名称字符串在dblp中都是唯一的(即使我们经常必须通过添加一个魔术来强制实现唯一性名称消歧后缀号)仅仅使用作者的名字来查找她的书目是很自然的。例如,吉姆·格雷在dblp中以唯一名称“Jim Gray 0001”列出。因此,一个简单的重写规则为他的书目网页导出了以下URL:

多年来,这种方法对我们很有帮助。但最近,对持久唯一标识符的需求变得越来越明显。与作者姓名相关的书目URL有两个主要问题:既不独特,也不持久.

例如,高德纳在dblp中被列为“Donald E.Knuth”和“Donald Ervin Knuth“。因此,我们通常使用两个指向同一书目网页的URL,即:

虽然这种情况可以通过提供HTTP重定向来解决,但这些URL的瞬时性带来了一个更可怕的问题。由于URL与dblp中名称的准确拼写直接相关,因此元数据中更改作者姓名的任何更正或编辑都会更改这些URL。例如,在某个时间点,我们还列出了Don Knuth的书目,但没有列出他的中间名,即:

由于我们更正了Don Knuth的所有元数据记录,使其始终包含他的中间名,因此该URL失去了用途,不再显示任何参考书目。这会留下指向丑陋的“404:Not Found”错误页面的外部超链接,并破坏语义web中有意义的开放数据链接。

PID呼叫救援!

随着对dblp书目稳定链接的需求越来越明显,我们在几年前已经建立了第二组持久和唯一的标识符:每个作者还被分配了一个内部PID,该PID永远不会改变。细心的用户可能已经注意到这些PID是web UI中给出的持久短URL的一部分。

然而,由于深深植根于dblp 25年的技术布局的原因(在简单的博客文章中不容易解释),迄今为止,基于PID的URL只能起到HTTP重定向的作用,而不是浏览器URL栏中显示的主要网址。随着最近的更新,情况发生了变化。

接下来,旧的基于名称的URL将被淘汰,dblp书目将根据其PID专门提供服务。当然,我们将尝试通过HTTP 301重定向保持所有传入链接的活动状态。然而,我们强烈鼓励您更新书签和超链接作为基于PID的URL,新的持久方案也将成为我们更新数据API URL的基础。

dblp PID的格式

那么,这在实践中意味着什么?以书目克里斯丁·劳特作为示例。她的书目现在和将来都将使用唯一的dblp PID“08/1510”和相关的URL进行查找:

或者,作为第二个例子,看看教授艾安娜霍华德。在dblp中,她以PID“11/399”列出,因此位于URL下

然而,请注意,从外观上看,dblp PID有两种风格。从2009年开始,新创建的书目被自动指定为数字PID,如上面给出的两个PID。今天在dblp中找到的所有PID中,绝大多数(超过99%)都遵循这种数字格式。

然而,在dblp的早期,内部密钥是完全手工创建的。因此,这些最早作者的PID最终还是以他们的名字为模型。例如,请看芭芭拉·利斯科夫其PID为“l/BarbaraLiskov”,网址为:

我们前面讨论的基于名称的URL的关键区别是,这些基于名称的PID在被创建后从未更改过,即使实际名称已经更改过。

从技术角度来看,这些风格的PID之间没有区别。通常,dblp PID应始终被视为只是一个任意的大小写敏感的字母数字ASCII字母字符串(加上偶尔的破折号和斜杠)没有附加任何特殊含义。

简化的API URL方案

查找和浏览学术书目HTML网站很好。但是,以机器可读的格式轻松访问相同的元数据也更好。dblp团队致力于将所有元数据作为开放数据提供,并促进重用。因此,我们的数据API的URL方案也受到了关注,其格式也得到了简化,以简化其使用。从现在起,所有数据格式的书目元数据API将遵循相同的总体方案:

  • https://dblp.org/pid/<人员PID><数据格式文件扩展名>

同样,请参考芭芭拉·利斯科夫作为一个具体的例子。她的书目在dblp中以PID“l/BarbaraLiskov”和资源URL唯一标识:

通过向该URL添加适当的文件扩展名,您可以请求使用首选数据格式的书目,例如:

这是由我们提供单个发布元数据的API反映的。在这里,给定一个(持久的)dblp发布密钥(例如,“journals/tocs/CastroL02”),发布由资源URL唯一标识

其网页和元数据可以使用以下方法检索:

除此之外,API URL(无文件扩展名)还支持通过HTTP“Accept”头和MIME类型进行内容协商。关于dblp开放数据API还有更多要讲的,我们肯定会在以后的博客中专门讨论这个主题。

链接打开的数据

如果您正在基于dblp中的数据维护或构建服务,我们强烈建议您更新链接到dblp的URL。在语义网中链接的开放数据上下文中尤其如此,语义网依赖于持久URL来标识实体。

请注意,虽然我们的PID在很大程度上是持久的,但当它们发生更改或过期时,可能仍然会有一些罕见的情况。这种情况通常只发生在个性化书目存在无法修复的缺陷的情况下(例如,多个同名作者混合到一个书目中的情况),因此更合理的做法是让旧书目过期并从头创建适当的书目,或者当书目仅仅是一个消除歧义的占位符(比如说,一些“D.Wang”的所有未经指定的出版物的伪书目),而这已经超出了它的目的。我们还有一个重定向机制,它允许对弃用的PID的请求以HTTP状态301重定向进行响应,以指向最新的PID。这在两个书目合并的情况下尤其重要。

幸运的是,当我们开始添加时,我们已经考虑到了新的PID URL指向WikiData的dblp PID链接不久前。如今,已存在超过40000人的实体链接维基数据.org和dblp。鉴于我们最终采用了永久URL作为头等公民,我相信还会有更多的人加入。