《语义网基础教程(原书第3版)》—— 2.4 RDFS:添加语义

简介:

本节书摘来自华章出版社《语义网基础教程(原书第3版)》一 书中的第2章,第2.4节,作者:(希)Grigoris Antoniou(荷)Paul Groth(荷)Frank van Harmelen(荷)Rinke Hoekstra ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.4 RDFS:添加语义

RDF是一种通用语言,它允许用户使用他们自己的词汇表来描述资源。RDF既不假设与任何特定应用领域有关,也不定义任何领域的语义。为了指明语义,一个开发者或用户需要通过RDF模式中定义的一组基本的领域无关的结构来定义其词汇表的含义。

2.4.1 类和属性

如何描述一个特定领域?让我们考虑一下公寓租赁领域。首先我们必须指定想描述的“事物”。这里首先做一个基本区分。一方面,我们希望描述特定的公寓,例如Baron Way Apartment,以及特定的地点,例如Amsterdam,这些之前已经在RDF中完成了。
另一方面,我们还想描述公寓、建筑、国家、城市,等等。区别是什么?第一种情况中我们描述的是个体对象(individual object,资源),而第二种情况中我们描述的是类(class),它们定义了对象的类型。
一个类可以被理解为一个元素集合。属于一个类的个体对象称为该类的实例(instance)。RDF给我们提供了一种通过使用一个特殊属性rdf:type来定义实例和类之间联系的方式。
类的一个重要用法是,施加限制来约束在一个RDF文档中使用模式可以声明什么。在编程语言中,类型定义(typing)用来阻止无意义的编程(例如A+1,其中A是一个数组,而我们要求“+”的参数必须是数字)。RDF中也需要相同的功能。之后,我们可能会不允许如下声明:
Baron Way Apartment rents Jeff Meyer
Amsterdam has number of bedrooms 3
第一个声明是无意义的,因为建筑不能出租人。这在属性“rents”的取值上施加了限制。用数学语言来说,我们限制了属性的值域(range)。
第二个声明也是无意义的,因为城市不能拥有房间。这在可以应用属性的对象上施加了限制。用数学语言来说,我们限制了属性的定义域(domain)。

2.4.2 类层次和继承

一旦有了类,我们就希望建立它们之间的联系。例如,假设已经有了如下类:
unit
residential unit commercial unit
house& apartment office
这些类不是互不关联的。例如,每个residential unit(居住单元)都是一个unit。我们称“residential unit”是“unit”的一个子类(subclass),或等价地说“unit”是“residential unit”的一个超类(superclass)。子类联系定义了类的一个层次,如图2-5所示。通常,如果A的每个实例也是B的实例,则A是B的子类。RDF模式不要求所有的类形成一个严格的层次结构。换句话说,图2-5所示的一个子类图不必是一棵树。一个类可能有多个超类。如果一个类A同时是B1和B2的子类,这简单意味着A的每个实例同时是B1的实例和B2的实例。
类的一个层次化组织拥有非常重要的现实意义,我们在这里概述。考虑值域限制
People can only rent residential units.
假设Baron Way Apartment被定义为一个apartment。接下来,根据前面的限制,它并没有被限定为是一个residential unit,因为不存在一个声明来指定Baron Way Apartment也是一个residential unit。通过为描述添加上述声明来解决这个问题不符合直觉想象。相反,我们希望Baron Way Apartment继承(inherit)residential unit允许被出租的能力。这正是RDF模式所做的。
通过这样做,RDF模式修复了“is a subclass of”的语义。现在不是根据应用来解释“is a subclass of”,而是它的特定含义必须被所有RDF处理软件所使用。通过创建这样的语义定义,RDFS是一种(能力依然受限的)定义特定领域语义的语言。换句话说,RDF模式是一种基本的本体语言。
screenshot

当然,类、继承和属性也常见于计算的其他领域中,例如在面向对象编程中。但是尽管有很多相似性,也存在许多不同之处。在面向对象编程中,一个对象类定义了可以应用于它的属性。为一个类添加新的属性意味着修改这个类。
但是在RDFS中,属性是全局定义的。也就是说,它们没有作为属性(attribute)被封装在类定义中。可以在一个已有的类上定义应用的新属性,而不需要修改这个类。
一方面,这是一个后果深远的有力机制:我们可以使用他人定义的类,并通过新的属性来调整它们以适合我们的需求。另一方面,属性的处理方式脱离了源自建模和面向对象编程领域中的标准做法。它是RDF/RDFS中的一个特有特征。

2.4.3 属性层次

我们已经看见了,可以定义类之间的层次联系。属性间也可以采用相同的方式。例如,“rents”是“resident at”的子属性(subproperty)。如果一个人p租了一个居住单元r,则p也居住在r。相反的关系则不成立。例如,p可能是一个家庭中的儿童,p不支付租金,或者p可能只是一个访客。
总之,某个属性P是Q的子属性,仅当P(x, y)成立时Q(x, y)总成立。

2.4.4 RDF和RDFS的分层对比

最后,我们使用一个简单的例子来说明RDF和RDFS涉及的不同分层。考虑下面的RDF声明
Jeff Meyer rents the Baron Way Apartment.
这个声明的模式可能包含人、公寓、房屋、单元等类,以及出租、居住在、地址等属性。图2-6展现了这个例子的RDF层次和RDF模式层次。其中,方块是属性,虚线以上的圆圈是类,而虚线以下的圆圈是实例。
图2-6中的模式本身也使用一种形式语言(RDF模式)来编写,可以表达的组成元素有:subClassOf、Class、Property、subPropertyOf、Resource等。接下来我们将更详细地介绍RDF模式。

screenshot

相关文章
|
9月前
|
编解码
nnUNet 详细解读(一)论文技术要点归纳
nnUNet 详细解读(一)论文技术要点归纳
293 0
|
机器学习/深度学习 传感器 人工智能
强化学习相关的主要概念和术语简介
强化学习相关的主要概念和术语简介
134 0
强化学习相关的主要概念和术语简介
|
机器学习/深度学习 算法
浅显易懂的机器学习(二)—— 引入
本文讲述了线性回归的一些基础概念
120 0
|
机器学习/深度学习 传感器 数据可视化
计算机视觉专业术语/名词总结(一)构建知识体系
在计算机视觉中存在很多的专业术语,如先验知识,语义信息,embedding,head,neck等。这些术语的解释无法直接在网上搜到,也没有在哪一篇论文中定义它们的概念和意义,因此,对于第一次听到这些术语的读者来说会非常的困惑。
计算机视觉专业术语/名词总结(一)构建知识体系
|
Web App开发 知识图谱 iOS开发
《语义Web编程》一导读
本书作者曾出版《集体智慧编程》,是从程序员的角度讲解语义Web工作的基础学习资料,可以帮助初学者快速掌握相关的编程基础
2147 0