酷URI、内容协商与解引

BIBFRAME还没开发完成,关联数据/语义网中的URI有可能在MARC记录中率先使用?至少美国合作编目计划(PCC)已经开始实质性行动。参见:
创制和获取URI的常用词表和参考源指南(2018-3-2)
编目常见URI问题:什么时候开始用?RWO又是什么?(2018-3-7)

在PCC的《URI常见问题》(URI FAQs, 2018-2-6)中,几次提到W3C文件《语义网的酷URI》。为更清楚地理解URI,找来仔细阅读。然后发现此文件中其实并没有解释《URI常见问题》中提到的dereference,因此又找到另一个W3C文件(见后)作为补充。以下为若干摘译(括号中数字为《语义网的酷URI》小节号)。

Cool URIs for the Semantic Web (W3C Interest Group Note, 03 December 2008)
摘要:资源描述框架RDF允许用户以计算机可处理的方式描述Web文档真实世界中的概念——人物、组织、论题和事物。在Web上发布这样的描述会创建语义Web。URI(统一资源标识符)非常重要,既提供了框架本身的核心,又提供了RDF和Web之间的链接。本文件提供了其有效使用的指南;讨论了两种策略,称为303 URI和散列URI;给出了使用这些解决方案的几个网站的指针,并简要讨论了为什么其他几个方案有问题。

URI】(1)
在语义网上,所有的信息必须表达为关于“资源”的陈述资源由“统一资源标识符”(URI)标识。这种建模方法是“资源描述框架”(RDF)的核心。

内容协商】(2.1)
Web客户端和服务器使用HTTP协议请求Web文档的表示并发回响应,HTTP具有强大的称为“内容协商”的机制来提供相同Web文档的不同格式和语言版本
当用户代理(如浏览器)发出HTTP请求时,会随某些HTTP标头发送,以指示它喜欢的数据格式和语言。服务器然后从其文件系统中选择最佳匹配或按需生成所需内容,然后将其发送回客户端。
内容协商往往是一种扭曲的实现:服务器不是直接回答,而是重定向到找到适当表示的另一个URL。重定向由一个特殊的“状态代码”[响应码]表示。

酷URI】要求(3)
1、在网上:给一个URI,使用标准Web传输协议HTTP,机器应该获得RDF数据,人类应该获得可读的表示如HTML。
2、无歧义:Web文档的标识符与其他资源的标识符之间不应混淆,一个URI不能同时代表一个Web文档和一个真实世界对象。

Web文档 vs 真实世界对象】(3)
Web文档 = 信息资源】根据《万维网的体系结构》第一卷,如果其所有基本特征都可以在消息中传达,则我们有一个Web文档(称为“信息资源”),如网页、图像或产品目录。
真实世界对象 RWO = 事物 Thing】如人和汽车,甚至抽象的想法和不存在的事物,如神话中的独角兽。

酷URI】设计要求(4.5)
1、简单性:简短助记。
2、稳定性:尽可能持久不变。
3、可管理性:如URI路径包含年份、可以每年更改URI模式而不影响旧URI;再如保留所有303 URI在专用子域上以简化未来迁移。

真实世界对象URI的2种解决方案】(4):
1、Hash URI(#):如 http://www.example.com/about#alice
适用于相当小而稳定的资源集合,如RDF Schema词表和OWL本体。只需简单上传静态RDF文件到Web服务器、无需任何特殊配置,适合快速发布RDF。
2、303 URI(303 See Other 重定向):
转发到通用文档,如:http://www.example.com/id/alice
重定向到:http://www.example.com/doc/alice,再经内容协商,
向机器提供:http://www.example.com/doc/alice.rdf
向人提供:http://www.example.com/doc/alice.html
转发到不同文档,如:http://www.example.com/id/alice(Alice这个人的标识符),重定向经内容协商,
向机器提供:http://www.example.com/data/alice(描述Alisce的RDF文档)
向人提供:http://www.example.com/people/alice(Alice的主页,Web文档)
以上3个文档在内容中当提供互相链接、揭示文档间关系(4.6)

内容协商 Content negotiation vs 解引 dereference】(译自:Best Practice Recipes for Publishing RDF Vocabularies, W3C Working Group Note 28 August 2008)
[按PCC的URI FAQ 5:解引,即检索由URI标识的资源的一种表示] 当一个HTTP客户端尝试解引一个URI时,可以指定优先接收响应哪类内容,通过在请求讯息标头中包含Accept:字段……。当服务器接收一个请求,它能使用Accept:字段的值,选择最合适的可用响应,尝试尽可能满足客户端的首选。这个过程即内容协商的一个实例

——— 附:响应码(response code)、Cool URI ———
关于HTTP URI消除歧义的简单规则,转引本文件之参考文献中的建议:
[httpRange-14] Resolved, Roy Fielding. 18 June 2005. http://lists.w3.org/Archives/Public/www-tag/2005Jun/0039.html.
a)如果一个“http”资源对一个GET请求的响应码是2xx,那么被那个URI标识的资源是一个信息资源;【Web文档】
b)如果一个“http”资源对一个GET请求的响应码是303(See Other),那么被那个URI标识的资源可以是任何资源
c)如果一个“http”资源对一个GET请求的响应码是4xx(错误),那么这个资源性质未知

为什么称“酷URI”?源自Tim Berners-Lee的文章:
Cool URIs does not change Cool URIs don’t change, Tim Berners-Lee, 1998. http://www.w3.org/Provider/Style/URI.
什么让URI很酷?
酷的URI是不变的URI
什么样的URI会变?
URI本身不变:是人改变了它们。

via Cool URIs in a RESTful World / by Thomas Bandholtz on Apr 08, 2008
中译版:RESTful世界里的Cool URI / 译者 王锐 发布于 2008年4月16日【上述译文略有修改】

编目常见URI问题:什么时候开始用?RWO又是什么?

合作编目项目(PCC)“MARC中URI工作组”完成了《创制和获取URI的常用词表和参考源指南》,为在MARC 21中使用URI热身。
参见:创制和获取URI的常用词表和参考源指南(2018-3-2)

工作组同时提供了一个“URI常见问题”,面对的是分裂的现状:一方面有人对URI知之甚少,另一方面有人已经想在MARC数据中添加URI。
URI FAQs (2018-2-6) :计有27个问答

面对不了解URI者的问题较多,以下几个与RWO相关的问题是我感兴趣的(下一行是我的理解、不是翻译):
– 什么是真实世界对象?(问题3)
Real World Object 简称 RWO = Thing 或 实体。在BIBFRAME由1.0发展到2.0过程中频频出现。
– 为什么在浏览器中使用URI,却发送不同的链接?(问题5)
这是由于“解引”(dereferencing),输入的是RWO的URI,最终显示的是RWO描述的URL(RWO本身无法显示吧)。
– $0和$1中的URI有什么不同?(问题11)
RWO的描述和RWO本身
– 为什么skos:Concept不是RWO?(问题12)
概念也可以是RWO,但skos:Concept是概念的说明。因此,不能说两个skos:Concept互相owl:sameAs,只能说两者完全匹配(skos:exactMatch)或近似匹配(skos:closeMatch),或具有相同的焦点/面对相同实体(foaf:focus),但本身不是同一个Thing。

对于急着想在MARC数据中使用URI的,特别注意以下信息,总体来说就是还需要再等上一年半载:
1、OCLC方面:尚未配置$1为有效子字段(问题7),计划2018年下半年接受$1(问题14);对于2017年12月加入MARC 21的758字段(资源标识符),OCLC可能在2018年下半年发布有关实施的技术公告(问题20)。
2、PCC方面:PCC指导委员会(标准和培训)将在2018年提供在MARC字段中使用URI、包括758字段的最佳实践(问题16、问题20)。
3、工具:添加过程最好是自动处理,但目前元数据编辑器中多半没有查询工具(问题22),有用的工具有MARCEdit的MARCNext、LOD/OpenRefine或者直接用SPARQL(问题24),验证URI工具有VapourVafu(问题23)。

关于MARCNext可参见MARCEdit开发者的博客:Terry’s Worklog: MarcEdit’s Research Toolkit – MARCNext (2014-8-23)

创制和获取URI的常用词表和参考源指南

应用关联数据,并不是简单地把数据以三元组形式发布。要能使发布的数据相互关联,在数据中采用或关联已有URI/IRI是很重要的工作。美国合作编目项目(PCC)MARC中URI工作组在2018年2月14日发布了一份文档《创制和获取URI:常用词表和参考源指南》,总结了40个图博档领域常用的词表和参考源的信息。自然以英语为主,但从图示看有些有中文(如《艺术和建筑叙词表》AAT、联合国粮农组织《多语种农业叙词表》AGROVOC)。中文开放资源总体上不多,如果也能参照总结一个,会是很有益的工作。

创制和获取URI:常用词表和参考源指南 FORMULATING AND OBTAINING URIs: A GUIDE TO COMMONLY USED VOCABULARIES AND REFERENCE SOURCES / Prepared by the Program for Cooperative Cataloging Task Group on URIs in MARC. Version Date: 2018-02-14

文档称,“MARC最近开发了一种机器可操作的方式,指定规范URI或规范所描述事物URI(https://www.loc.gov/marc/mac/2017/2017-08.html),但填充这些子字段的实践是新生的”。所说的机器可操作的方式,指MARC21分别为实体描述和实体本身(真实世界对象,RWO)定义了不同的子字段:
$0 Authority record control number or standard number
$1 Real World Object URI (R)(新增)
参见:600字段含$t时,$0代表作品还是个人?(附:MARC21新增$1子字段)(2017-12-4)
其中实体描述通常是各种书目和规范记录,当然还有图书馆界之外的描述记录;而实体本身及其URI,对编目而言完全是新概念,如何获取更是新挑战。

本文档把数据源分为2类,第1类是关联数据资源,共28项;第2类是具有控制号或其他标准标识符但未发布为RDF的数据源,共12项。不知道是不是因为这些资源太过有名,所有40个资源都没有介绍收录内容或范围。
每个资源列出的具体信息,第2类比较简单,基本只有名称、最后查看日期和主页(网址),仅其中的IMDb还列出了联系信息、使用限制及图示。第1类则有与使用有关的详细信息,除前述IMDb所列各项外,还包括:建模(基于SKOS的较多),存放URI的MARC子字段($0记录、$1实体、$4关系词),创建或获取URI方法与样例、截屏图示、API或Web Services或批下载、查询获取URI样例等,数据版本/更新频率、使用者(多为空)、工具(多为空),其他(相关资源,偶有)。
以下按大致内容对2类资源重新排列(有$0 $1 $4的为关联数据资源):

艺术
AAT – Art & Architecture Thesaurus($0)
TGM – Thesaurus for Graphic Materials($0)

音乐
AllMusic 音乐
Discogs 唱片
LCMPT – Library of Congress Medium of Performance Thesaurus($0)
MusicBrainz – The Open Music Encyclopedia($1)

影视戏剧
AllMovie
BFI – British Film Institute
IBDB – Internet Broadway Database
IMDb – Internet Movie Database

游戏
GAMECIP Computer Game Media Format Vocabulary($0)
GAMECIP Computer Game Platform Controlled Vocabulary($0)

地理
Canadian Geographical Names
GNIS – Geographic Names Information System,GeoNames($1)
TGN – Getty Thesaurus of Geographic Names($0,$1)

个人团体
ISNI – International Standard Name Identifier($1)
Legal Entity Identifier 企业标识号
ORCID($1)
ResearcherID
Scholar Universe
ULAN – Union List of Artist Names($0,$1)
VIAF – Virtual International Authority File($1)

农业:AGROVOC($0)
医学:MeSH RDF- Medical Subject Headings RDF($0)

综合
BBC Things($1)
CERL Thesaurus($1)欧洲1450-1830年间地名、人名
DBpedia($1)
GND – Gemeinsame Normdatei (Integrated Authority File) 德国国家图书馆规范档($0主题,$1会议或事件、团体、家族、个人、地点或地理名称、作品)
LC/NACO Authorities($0规范,$1 RWO)
Library of Congress Authorities
Wikidata($1)

综合(主题词表/元数据词表)
FAST – Faceted Application of Subject Terminology($0),
LCSH – Library of Congress Subject Headings($0)
LC Children’s Subject Headings($0)
LCDGT – Library of Congress Demographic Group Terms($0)
LCGFT – Library of Congress Genre/Form Terms($0)
MARC Relator Terms and Codes($4)
RDA Vocabularies($0取值,$4元素)
RBMS Controlled Vocabularies($0)珍本与特藏编目用受控词表