《语义网基础教程(原书第3版)》—— 2.5 RDF模式:语言

简介:

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

2.5 RDF模式:语言

RDF模式提供建模原语来表达2.5节中的信息。一个必须做的决定是使用什么样的形式语言。使用RDF本身并不让人吃惊:RDF模式的建模原语使用资源和属性定义。通过观察图2-6可以验证这个决定。我们将这个图表达为一个类/属性的层次以及实例,但是它本身当然也仅仅是一个带标签的图,可以用RDF编码。记住RDF允许表达有关任何资源的声明,并且任何拥有URI的事物都可以作为资源。因此,如果想让类“apartment”是“residential unit”的一个子类,我们可能会
1)为apartment、residential unit和subClassOf定义所需的资源;
2)定义subClassOf为一个属性;
3)编写三元租(apartment subClassOf residential unit)。
所有这些步骤都包含在RDF的表达能力中。因此,一个RDFS文档仅仅是一个RDF文档,而我们可以使用某种RDF标准语法来编写。
现在,我们定义RDF模式的建模原语。

2.5.1 核心类

核心类包括:
rdfs:Resource,所有资源的类。
rdfs:Class,所有类的类。
rdfs:Literal,所有文字(字符串)的类。
rdf:Property,所有属性的类。
rdf:Statement,所有具体化声明的类。

2.5.2 定义联系的核心属性

用来定义联系的核心属性包括:
rdf:type,将一个资源关联到它的类(参见2.4.1节)。该资源被声明为该类的一个实例。
rdfs:subClassOf,将一个类关联到它的超类。一个类的所有实例都是它的超类的实例。注意,一个类可能是多个类的子类。例如,类femaleProfessor可能同时是female和professor的子类。
rdfs:subPropertyOf,将一个属性关联到它超属性中的一个。
这里有一个例子,表达了所有的公寓都是居住单元:
screenshot

注意,rdfs:subClassOf和rdfs:subPropertyOf被定义为传递的。并且很有趣的是,rdfs:Class是rdfs:Resource的一个子类(所有的类都是资源),同时rdfs:Resource是rdfs:Class的一个实例(rdfs:Resource是所有资源的类,因此它是一个类!)出于同样的原因,每个类都是rdfs:Class的实例。

2.5.3 限制属性的核心属性

用来限制属性的核心属性包括:
rdfs:domain,指定一个属性P的定义域,声明任何拥有某个给定属性的资源是定义域类的一个实例。
rdfs:range,指定一个属性P的值域,声明一个属性的取值是值域类的实例。
这里有一个例子声明当任何资源有一个地址时,它(通过推理)是一个单元并且取值是一个文字:
screenshot

2.5.4 对具体化有用的属性

下面是一些对具体化有用的属性:
rdf:subject,将一个具体化声明关联到它的主语。
rdf:predicate,将一个具体化声明关联到它的谓语。
rdf:object,将一个具体化属性关联到它的宾语。

2.5.5 容器类

RDF还允许用一个标准的方式表达容器。可以表达包、序列或选择。
rdf:Bag,包的类。
rdf:Seq,序列的类。
rdf:Alt,选择的类。
rdfs:Container,所有容器类的超类,包括前面提到的3种。

2.5.6 效用属性

一个资源可以在万维网上的许多地方被定义和描述。下列属性允许我们定义链接到这些地址:
rdfs:seeAlso,将一个资源关联到另一个解释它的资源。
rdfs:isDefinedBy,它是rdfs:seeAlso的一个子属性,将一个资源关联到它的定义之处,一般是一个RDF模式。
为人类读者提供更多的信息常常很有用。这可以通过以下属性来实现:
rdfs:comment,注释,一般是长的文本,可以与一个资源关联。
rdfs:label,将一个人类友好的标签(名字)与一个资源关联。其中的一个目的是用作RDF文档的图形化表示中节点的名称。

2.5.7 示例:住房供给

我们展示一个住房供给的例子,并提供该领域的概念模型,即一个本体。
screenshot
screenshot

2.5.8 示例:汽车

这里,我们介绍一个简单的汽车本体。图2-7展示了它的类层次。
screenshot
screenshot

相关文章
|
1月前
|
Java 程序员 C#
C++ 编程入门指南:深入了解 C++ 语言及其应用领域
C++是一种由Bjarne Stroustrup开发的跨平台编程语言,以C语言为基础并添加了面向对象特性。它用于创建高性能应用,支持类和对象,提供高级系统资源控制。C++经历了多次更新,包括C++11、C++14、C++17和C++20。因其可移植性和代码重用,成为流行选择。学习C++简单有趣,与C、C#、Java有共通性。开始C++编程,可以从打印"Hello World!"的简单程序入手。关注微信公众号`Let us Coding`获取更多内容。
24 0
|
9月前
|
算法 Java 程序员
01-C++核心语法|C++概述【C++简介、C++起源、可移植性和标准、为什么C++会成功、从一个简单的程序开始认识C++】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
01-C++核心语法|C++概述【C++简介、C++起源、可移植性和标准、为什么C++会成功、从一个简单的程序开始认识C++】
|
Web App开发 知识图谱 iOS开发
《语义Web编程》一导读
本书作者曾出版《集体智慧编程》,是从程序员的角度讲解语义Web工作的基础学习资料,可以帮助初学者快速掌握相关的编程基础
2147 0