跟随一些最近的重大讨论由SWORD技术咨询小组,我们很高兴地宣布已经就SWORD新版本2的一些细节做出的一些决定。宣布这些决定的完整电子邮件如下所示,或者可以在技术咨询小组的列表档案中看到:http://www.mail-archive.com/sword-app-techadvisorypanel@lists.sourceforge.net/msg00105.html
这些决定是在过去几周的小组讨论中做出的。它们涉及以下问题:
- 声明是应嵌入存款凭证中,还是应作为atom:link元素中引用的单独文档:为了使SWORD v2从一种火力与目标方法转变为一种SWORD客户端可以通过我们所称的“存款生命周期”与存款进行交互的方法,需要某种形式的反馈,以便客户端可以向服务器询问存款项发生了什么事。该提案旨在通过提供“声明”来支持这一点。把它想象成一张银行账户对账单:你可以看到银行账户中有什么(存款),存款可能发生了什么(例如增加了利息),以及项目的全部细节。这里的问题是,当SWORD客户存款时,是否应向其提供报表副本,或者客户是否应在需要时要求提供报表副本。
- 是将OAI-ORE用于Statement格式还是Atom Feed(根据CMIS和GData):关于如何格式化该语句,需要做出决定。它应该格式化为OAI-ORE资源映射,还是使用Atom Feed。每种方法都有利弊。
- 客户端和服务器应如何就编辑媒体链接(EM-URI)返回的内容的格式进行协商:如果允许多种格式的语句,客户端和服务器应如何根据服务器功能和客户端首选项的组合,就哪种格式是最好的发送格式达成协议。这个问题被称为内容协商。
下面的完整电子邮件概述了这些问题以及所做的决定。接下来的工作是尝试实施该标准,根据开发人员和初始用户的经验,该标准可能会进一步完善。
尊敬的各位:,
感谢您对我们在本列表中讨论的各种问题的广泛反馈,对于项目团队来说,获得这些意见非常有价值。我们认为,我们已经确定了三个有争议的具体问题:
1/声明是应嵌入存款凭证中,还是应作为atom:link元素中引用的单独文档
2/是将OAI-ORE用于Statement格式还是Atom Feed(根据CMIS和GData)
3/客户端和服务器应如何就edit-media链接(EM-URI)返回的内容格式进行协商
项目团队仔细研究了每一个问题,并试图提取最简单的解决方案,但目的是在此阶段保持SWORD 2.0规范的开放性,以便社区最佳实践能够真正为标准本身提供长期信息。
因此,我们提出以下解决这些问题的方法:
1/声明是应嵌入存款凭证中,还是应作为atom:link元素中引用的单独文档
如果要在存款凭证中嵌入对账单,那么它确实需要采用OAI-ORE形式,以便明确的外部加价。然而,考虑到声明是否应该是Atom Feed还有一个问题,很明显,这个解决方案本身是不够的。因此,我们建议向项目资助开发商提供的用于编码的标准表示,OAI-ORE序列化可以嵌入到存款凭证中(存款凭证本身不需要满足OAI-ORE规范)。
除此之外,存款凭证中可能还有一个或多个原子:链接元素,链接到外部报表。这些atom:link元素可以指定其类型属性,以说明它们是application/rdf+xml还是application/atom+xml;type=进给。规范要求必须有一个嵌入式语句或至少一个单独的语句。
因此,您可能会看到这样的存款凭证:
<atom:entry><atom:link rel=“http://purl.org/net/sword/terms/声明“type=”application/rdf+xml“href=”网址://。。。。。"/><rdf:rdf> <!-- 此处显示ORE语句--></rdf:rdf></atom:entry>
2/是将OAI-ORE用于语句格式还是Atom提要(根据CMIS和GData)
(1)中方法的另一个很好的理由是,这意味着我们可以提供具有不同类型属性的不同语句URI。我们计划要求开发人员在项目资金下生成ORE和Atom Feed Statement格式。因此,您可能会看到这样的存款收据:
<atom:entry><atom:link rel=“http://purl.org/net/sword/terms/声明“type=”application/rdf+xml“href=”网址://。。。。。"/><atom:link rel=“http://purl.org/net/sword/terms/statement(网址:http://purl.org/net/sword/terms/statement)“type=”application/atom+xml;type=feed“href=”网址://。。。。。"/><rdf:rdf><!-- 此处显示ORE语句--></rdf:rdf></atom:entry>
(1)和(2)中的方法组合可能看起来很模糊或不确定,但我们认为我们无法提前确定这些方法中哪种更好,应该由用户和实现者社区根据开发软件的实际使用情况决定哪种方法最有效。因此,虽然实施的负担由项目的资助部分承担,但我们预计社区驱动的实施/使用会偏向于一种方法而不是另一种方法(可能会考虑到与GData和CMIS的兼容性,或者更倾向于ORE的语义web方法)。随后,我们可以使用这些信息来推导基于最佳实践的SWORD规范。
3/客户端和服务器应如何就edit-media链接(EM-URI)返回的内容格式进行协商
内容协商问题是由于AtomPub最多需要一个具有给定类型的edit-media URI才能在Atom条目(存款收据)中可用。由于SWORD服务器可能包含多个文件,而不是AtomPub假定的一个文件,因此该EM-URI在GET下返回的内容尚不清楚。我们最初考虑了两种方法:
a/单独的HTTP标头,如Accept-Packaging,允许在包格式上进行内容协商
b/单独的HTTP头,如Accept-Media Features,允许在功能集上进行常规内容协商
正如我们所讨论的,这两种方法都有优缺点,而且没有一种方法以任何最佳实践为标志,这使得项目团队不愿意致力于任何过于复杂或实质性的事情,从而危及SWORD的简单性和整体成功。相反,我们建议采用更简单的方法:
存款凭证可以包含已经包含的剑:包元素(根据sword 1.3),sword 2计划允许任意数量的此类元素。这些元素将描述服务器支持的打包格式,以便客户端提前知道服务器的功能是什么。因此,客户端将只指定一个单独的HTTP标头,指示应返回的包格式,而不是参与内容协商过程。此标头是重新使用存放期间使用的Packaging标头,还是指定新标头尚待确定。
希望这些方法对团队有意义。我们很感兴趣的是,您认为这些在项目期间以及以后在社区中会发生什么,以及我们在这里提出的SWORD前进道路是否存在任何明显的问题。
一切顺利,
理查德
(SWORD项目团队的后手)