CHAPTER2 The Semantic Web, RDF, andLinked Data (and SPARQL)
SPARQL是一种遵循特殊模型的查询语言,但是语义网的核心不是查询语言也不是模型,而是数据。语义网的迅速膨胀的大量数据的可获得性使得许多新的应用成为可能。SPARQL作为一个实现良好,设计标准的语言,是在语义网当中获取数据/实际应用的最好的方法。
什么是语义网?
随着对语义网的兴趣逐渐增加,一些供应商开始用这个词来销售一些和语义网紧密关联的产品,但是也有一些是与语义网毫无关系的产品。这是的人们对于语义网的概念更加混乱。
在这里我给语义网的定义为:aset of standards and best practices for sharing data and thesemantics of that data over the web for use byapplications.我们一起来逐字逐句解释这个定义。
aset of standards
在TimBerners-Lee发明万维网之前,有许多的超文本系统是可以获得的,但是他在建立自己的超文本系统的时候却遵循了一些简单准则,并且将这些准则当作标准公开发表。这使得大家可以将他的系统用于个人(写自己的WEB服务器/浏览器/网页),从此他的系统也成为最大的系统。于是TimBerners-Lee建立了W3C来监督这些标准的制定,语义网就是在W3C的标准:RDF数据模型/SPARQL查询语言/RDF模式/OWL的基础之上建立起来的。一个产品如果不采用这写标准,也许是可以处理语义网相关的东西,但是却无法和语义网的其他部分联系起来,这就好像1985年的时候,一个超文本系统不是呀HTML/HTTP同样可以链接到万维网一样(可能有些人不同意最后一个观点)。
bestpractices for sharing data over the web... for use by applications
Berners-Lee原来的web是为了向人们展示可读的文本。如果你想在一个星期天的下午从一个机场飞往另一个机场,你可以到机场的网站填写一个表格,用眼睛去观察返回的查询结果。这些网站有一个可以从众多航空网站当中分离出你想要的信息的程序,这就是所谓的“screenscraping”。在写这个程序之前,开发者必须分析出那些可以用于screenscraping的网站的HTML结构,如果一个网站的HTML结构有所变更,screenscraping程序也需要更新。
由此,Berners-Lee想到了LinkedData(关联数据)的概念,用于不同WEB结构的数据分享,这是的在公共网站上检索数据变得更加简单易行,且摆脱了screenscraping的烦琐。例如,让你的日志程序从各种航班网站上以一种共通的/机器可读的形式去获取航班信息,最好的方法莫过于给每个事物赋予一个URIS并且使用RDF和SPARQL的标准。这些为语义网的建设给出了优越的标准。
andthe semantics of that data
”语义“一词时常被定义微”单词的意思“。关联数据的准则以及相关的额标准使得数据分享变得更加简单,URIS通过提供词语的内容从而赋予其语义信息。例如,即使我不知道“sh98003588#concept”指的是什么,我可以从其URI:http://id.loc.gov/authorities/sh98003588#concept看出它出自美国国会图书馆。将单词的完整意义分类使得计算机可以“理解”这些意思对于现今的计算机似乎还太过苛刻,但W3C的OWL已经可以让我们存储很多的这样的“meaning”从而使得我们可以从数据当中获取更加有意义的东西。例如,我们知道单词”spouse”(配偶)具有对称性(即,如果A是B的配偶,那么B就是A的配偶),又如zipcodes是postalcodes 的子集,买是卖的反义词。有许多的资源具有这样或者那样的属性,且各资源之间有着各种各样的联系。
下面我们详细的了解语义网的各个组成成分。
URLs,URIs, IRIs和Namespaces
Berners-Lee在发明WEB的时候,给出了web服务器和浏览器的三条规范,从而使得服务器和浏览器可以一同工作。
(1)一种呈现文章结构的方法,使得浏览器可以分辨出文章的哪个部分是段落,哪个是开头,哪个是链接等。这条规范就是超文字标记语言,或者称HTML。
(2)一种客户端程序如WEB浏览器和服务器的通信方式,超文本传输协议,或称HTTP,由一些短命令和三位数字的编码让客户端程序完成诸如:浏览器发出“嘿,www.learningsparql.com服务器,将资源目录当中的index.html文件发给我“的请求,而服务器则给出”好的,这就给你“或者”对不起,我不在的该资源在哪里“的回应。
(3)一个严谨的为客户端指定它想要的资源的方式。例如,文件的名称/存放目录/所对于的服务器。你可以说这是网址,或者说是是资源定位器。Berners-Lee则把它成为是服务器通过URL(统一资源定位器)发送资源时的服务器目录资源名称的组合。
当你拥有一个如learningsparql.com或者redcross.org的域名的时候,你掌握着这个域名下资源的存放目录和名称。域名拥有者对命名方式的掌控能力使得开发者开始这些并不一定就是网址的名称来标识资源。例如,朋友的朋友(FOAF)使用http://xmlns.com/foaf/0.1/Person来标识一个人,但当你将这个作为网址输入浏览器的时候,返回的只是规范的主页。
这点困惑了很多人,因为大多数人都认为一切以“http://”开头的都是一个可以用浏览器显示的网页网址。这些困惑致使MIT和Xerox的工程师制定了一个名为通用资源名称(URNs)的规范。在这个规范之下,
urn:isbn:006251587X代表了一本特定的书,urn:schemas-microsoft-com:office:office则代表了微软描述微软办公文件结构的模式。
统一资源定位符(URIs)这一术语包括了URLs和URNs,这就意味着URL就是URI,但URN却有点落伍,因为现在很少有人使用URN,大多数的URI就是URL,这就是为什么很多人会将两者混用的原因。将一个网址认为是URL也非常普遍,而将http://xmlns.com/foaf/0.1/Person认为是URI也就变得相当特殊了,虽然它以“http://”开头,但是它只是一个标识。