【1.9.1】语义网简介
“如果说 HTML 和 WEB 将整个在线文档变成了一本巨大的书,那么 RDF, schema, 和 inference languages 将会使世界上所有的数据变成一个巨大的数据库。” — Tim Berners-Lee, Weaving the Web, 1999
一、从万维网到语义网
我们现在熟知的万维网,是以HTML页面为基本单位的,页面的组织形式是为了我们人类快速理解其中的知识,是面向人的。而万维网上可用的信息,都是若结构的组织形式,如文本,音频视频,并不利于知识的管理,因为知识没有一个完整的结构。
semantic(语义的)这个词指有意思的或与之相关的。语义网是一种使用可以被计算机理解的方式描述事物的网络。
甲壳虫乐队是来自利物浦的著名乐队。
约翰.列农是甲壳虫乐队的成员之一。
唱片 "Hey Jude" 是由甲壳虫乐队录制的。
象这样的句子可以被人类理解。但是如何能够被计算机理解呢?
- 陈述是由语法规则构建的。一门语言的语法定义了构建该语言的陈述所需的规则。
- 这就是语义网的本质所在 - 以计算机应用程序可以理解的方式描述事物。
- 语义网和网页之间的链接没有关系。
语义网描述的是事物之间的关系(比方说 A 是 B 的一部分,而 Y 是 Z 的成员)以及事物的属性(例如尺寸、重量、使用期限和价格等等)。
语义网络由Quillian于上世纪60年代提出的知识表达模式,其用相互连接的节点和边来表示知识。节点表示对象、概念,边表示节点之间的关系。语义网的出现,是为了给网络上的知识一个合理的结构,方便机器解析。
语义网络的优点:
- 容易理解和展示。
- 相关概念容易聚类。
语义网络的缺点:
- 节点和边的值没有标准,完全是由用户自己定义。
- 多源数据融合比较困难,因为没有标准。
- 无法区分概念节点和对象节点。
- 无法对节点和边的标签(label,我理解是schema层,后面会介绍)进行定义。
简而言之,语义网络可以比较容易地让我们理解语义和语义关系。其表达形式简单直白,符合自然。然而,由于缺少标准,其比较难应用于实践。看过上一篇文章的读者可能已经发现,RDF的提出解决了语义网络的缺点1和缺点2,在节点和边的取值上做了约束,制定了统一标准,为多源数据的融合提供了便利。另外,RDF对is-a关系进行了定义,即,rdf:type(是rdf标准中的一个词汇,之后的文章会介绍)。因此,不管在哪个语义网络中,表达is-a关系,我们都用rdf:type,在语法上形成了统一。比如上图中猫、熊与哺乳动物的关系就可以形式化的表达为:
猫 rdf:type 哺乳动物
熊 rdf:type 哺乳动物
但还有个问题,如何区分概念和对象?即定义Class和Object(也称作Instance, Entity)。如果不能区分,会对我们产生什么影响?举个例子,假如我们有两个语义网络A和B。在A中,熊是哺乳动物的一个实例。在B中,熊是哺乳动物的一个子类。前者是is-a关系,后者是subClassOf关系。这种情况常有发生,我们建模的角度不同,那么同一个事物的表示也可能不同。如果我们不能用一种方法来区别两者,不仅会给我们带来理解上的困难,在进行融合的时候也会造成数据冲突。我们不能说A既是B的一个实例,又是B的一个子类。W3C制定的另外两个标准RDFS/OWL解决了这个问题,如下图。
在语义网技术栈中,RDFS和OWL是RDF更上一层的技术,主要是为了解决语义网络的缺点3和缺点4,其提供了schema层的描述。这里只需要知道,通过RDFS或者OWL中的预定义词汇,我们可以形式化地声明一个类:
哺乳动物 rdf:type rdfs:Class
或者
哺乳动物 rdf:type owl:Class
通过RDFS也可以声明一个子类:
熊 rdf:type rdfs:Class
熊 rdfs:subClassOf 哺乳动物
或者声明一个实例
熊 rdf:type 哺乳动物
我们也可以把rdf:type用a代替,即:
熊 a 哺乳动物
RDF,RDFS/OWL属于语义网技术栈,它们的提出,使得语义网克服了语义网络的缺点。
二、语义网(Semantic Web)和链接数据(Linked Data)
语义网和链接数据是万维网之父Tim Berners Lee分别在1998年和2006提出的。相对于语义网络,语义网和链接数据倾向于描述万维网中资源、数据之间的关系。
语义网是一个更官方的名称,也是该领域学者使用得最多的一个术语,同时,也用于指代其相关的技术标准。在万维网诞生之初,网络上的内容只是人类可读,而计算机无法理解和处理。比如,我们浏览一个网页,我们能够轻松理解网页上面的内容,而计算机只知道这是一个网页。网页里面有图片,有链接,但是计算机并不知道图片是关于什么的,也不清楚链接指向的页面和当前页面有何关系。语义网正是为了使得网络上的数据变得机器可读而提出的一个通用框架。
“Semantic”就是用更丰富的方式来表达数据背后的含义,让机器能够理解数据。“Web”则是希望这些数据相互链接,组成一个庞大的信息网络,正如互联网中相互链接的网页,只不过基本单位变为粒度更小的数据,如下图。
链接数据起初是用于定义如何利用语义网技术在网上发布数据,其强调在不同的数据集间创建链接。从某种角度说,知识图谱是对链接数据这个概念的进一步包装。如下图所示,读者肯定在很多地方看过,这其实就是开放链接数据项目(Linked Open Data Project)进展的可视化(读者可以打开链接查看可交互的可视化图),也通常用来展示当前开放知识图谱的规模,涉及的领域以及知识图谱间的链接关系。
三、知识图谱
知识图谱是由本体(Ontology)作为Schema层,和RDF数据模型兼容的结构化数据集。
3.1 本体
这个奇怪的词语源于哲学,研究存在的本质。在语义网中,本体其实不难理解,就是描述世界上真实存在的东西。
在1998年对本体进行了比较完善的定义:本体是共享概念模型的明确的形式化规范说明。这个定义体现了本体的四层含义:概念模型、明确、形式化、共享。
- 概念模型:通过抽象出客观世界中一些现象的相关概念而得到的模型。
- 明确:所使用地概念及使用这些概念的约束都有明确的定义。
- 形式化:本体可通过各种形式化语言对其进行描述,最终是计算机可读、可操作的。
- 共享:本体中体现的是公认的知识,反映的是相关领域中公认的概念集。本体的目标是通过确定该领域内共同认可的词汇,达到对该领域知识的共同理解。
3.1.1 本体的构成
术语(term):一个领域中的重要概念(对象的类)
术语之间的关系:类的层次结构,比如子类
一些可能出现的其他的构成(以大学为一个领域)
- 属性(例如,A教B)
- 值约束(只有交职人员可以授课)
- 不相交描述(交职人员和普通人员不相交)
- 对象间逻辑关系的规定(一个系至少有10个教职人员)
3.1.2 本体的描述语言
- XML 结构化文档的语言
- XML Schema 定义XML文档结构的语言
- RDF 描述对象和对象之间的关系
- RDF Schema 描述RDF对象的属性和类的词汇描述语言
- OWL 词汇更丰富的词汇描述语言
3.1.3 分类法来组织本体
Perez等人利用分类法来组织本体,并归纳出以下5个基本的建模元语:
- 类或概念:从语义上将,它表示的是对象的集合,其定义一般采用框架结构,包括概念的名称,与其他概念之间的关系的集合,以及用自然语言对概念的描述。
- 关系:在领域中概念之间的相互作用,形式上定义为n维笛卡尔积的子集。在语义上关系对应于对象元组的集合。
- 函数:一类特殊的关系,该关系的前n-1个元素可以唯一决定第n个元素。
- 公理:代表永真断言,如概念乙属于概念甲的范畴。
- 实例:代表元素,从语义上讲实例表示的就是对象。
3.2 例子
我们用IRI唯一标志的节点都是某个类的一个实例,每一条边都表示一个关系。罗纳尔多是一个人,里约热内卢是一个地点,我们用RDF来表示就是:
www.kg.com/person/1 rdf:type kg:Person.
www.kg.com/place/10086 rdf:type kg:Place.
关系我们也称为属性(Property),根据是实体和实体之间的关系还是实体和数据值之间的关系分为对象属性(Object Property)和数据属性(Data Property)。在图中,罗纳尔多和里约热内卢的关系(本例中是对象属性)与罗纳尔多和全名的关系(本例中是数据属性)用RDF就可以表示为:
www.kg.com/person/1 kg:hasBirthPlace www.kg.com/place/10086
www.kg.com/person/1 kg:fullName "Ronaldo Luís Nazário de Lima"^^xsd:string
这里kg:Person,kg:Place,kg:hasBirthPlace,kg:fullName是我们在Ontology中定义好的类和关系。
参考资料
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn