2019-05-26 CHAPTER 7 RDF schema

RDF的语义网建模是关于图的,RDFS的语义网建模是关于集合的。集合成员的一些方面也可以只用RDF建模,,就像我们使用rdf:type这个内置属性一样。但是RDF自己只是简单地建立一个图结构来表示数据。RDFS提供了怎样使用这些图结构的指南。使用RDF图中词汇表的方式。哪个个体与其他个体相关,怎样相关?

同样地,RDFS像其它模式语言一样:它提供了信息,关于我们描述数据的方式。但是RDFS与其他模式语言有重要区别。

Schema Languages and Their Functions

RDFS是RDF的模式语言,但是什么是模式语言?对于熟悉的技术,有许多成功的模式语言,但是这些语言在信息管理中的作用都与特定的语言或系统紧密相关。

让我们来看文本建模系统,对于这样的系统,模式语言是用来表示一个文本的一系列允许的格式。对于给定的模式,可以(通常是自动)确定特定文档是否符合该模式,这就是XML模式定义的主要能力。XML解析器可以自动确定一个特定的XML文档是否符合给定的模式。

其他模式语言也帮助我们去解释特定的数据。比如,一个数据库模式位关系数据库的表格提供了头部和主键信息。表本身既没有任何内容来指示特定列中信息的含义,也没有任何内容来指示将哪一列用作表的索引。这个信息恰好包含在数据库模式中,因为它不会从一条数据记录变成下一条。

对于面向对象编程序设计,类结构也起到了组织信息的角色。但是在面向对象编程中,类图不仅仅描述数据。根据语言的继承性,它确定对于特殊的实例使用什么方法,以及怎样使用。这与关系数据库和XML形成了鲜明的对比,因为关系数据库和XML不解释信息,而是为某人描述信息和该信息的可用转换提供了一种系统的方法。

鉴于对模式信息如何在不同的建模范例中使用有各种各样的理解,有人可能想知道,调用模式语言实际上是否告诉了我们任何东西!但是在所有这些模式的概念中有一个共同点,所有情况下,模式都告诉我们关于系统中表示的信息的一些事情。模式就是关于数据的信息。

我们怎样理解RDF中模式的概念呢?关于RDF数据我们可能会说些什么呢?我们怎么说呢?RDF模式的核心思想是它可以为数据提供一些意义。通过使用推理模式指定语义来完成。

Relationship between schema and data

在大多数建模系统中,数据和模式之间有明显的区别。关系数据库的模式并不是表示为数据库中的表格。面向对象系统中的对象模式也并不是表示为对象,一个XML DTD也不是一个有效的XML文档。但是在很多情况下,这些系统的高版本对模式建模与对数据建模方式一样;XML样式表定义中,用XML语言来定义XML样式。

在RDF中,开始的时候模式语言也是用RDF定义的。也就是,RDFS中的所有模式信息都是用RDF三元组定义的。RDF中的“普通”资源和模式资源之间的关系是由三元组构成的,就像任何其他资源之间的关系一样。这种优雅的设计使得提供RDFS语义的形式化描述变得特别容易,只需提供工作于三元组模式上的推理规则即可。虽然这是良好的工程实践(从某种意义上说,RDF标准委员会从XML标准与dtd之间的问题中吸取了教训),但是它的意义远远超出了它作为良好工程的价值。在RDF中,所有内容都表示为三元组。断言三元组的意思用新的推理三元组来表示,这种结构驱动了这些推理,描述了我们数据的意思,都是用三元组。这就意味着如果需要这些过程可以继续,模式信息由语义网上信息环境,并且本身也分布在语义网。

我们可以看在RDFS中怎样定义一个集合。在RDFS中制定一个集合的基本结构叫做 rdfs:Class。因为RDFS也是用RDF表示的,所以我们表示类也是用一个三元组,这个三元组的谓语是rdf:type,宾语是srdfs:Class:
:AllStarPlayer rdf:type rdfs:Class.
 :MajorLeaguePlayer rdf:type rdfs:Class.
:Surgeon rdf:type rdfs:Class.
:Staff rdf:type rdfs:Class.
:Physician rdf:type rdfs:Class.
这些三元组就像其他一样,我们唯一可以从中区别它是模式而不是数据的方法:使用了术语 rdfs: namespace,rdfs:Class。但是这是什么?第三张我们已经讨论过rdf:type,用来指定集合的成员。我们得到了集合中成员的含义的描述。在RDF中,对于集合成员我们能给的唯一含义就是它是一些查询的结果; rdf:type实际上和其他属性并没有什么不同。我们怎样能用集合成员来指定我们的意思呢?在RDFS中,我们通过推理机制来表达意思。

The RDF Schema Language

RDFS是RDF的扩展,通过将一系列接触的资源引入语言。这和某些传统的程序设计语言,通过定义一些新的关键字来扩展语言一样。但是也有一种重要的区别:在RDF中,我们已经有能力去使用任何一个三元组中的人以资源。所以只增加一些特殊资源作为关键词,实际上并不能扩展语言。我们简单地将某些三元组定义为具有特殊意义的三元组,这是由标准定义的。

在RDFS中,意义是由指定推理来完成的。当用某种方式调用资源时,推理就能被画出来。本章剩余章节,不管什么时候我们介绍一个新的RDFS资源时,我们都要回答“”这是什么意思“”,,答案要用这样的形式“在这些情况下(由一些三元组模式定义),您可以添加(推断)以下新的三元组”。

Relationship propagation through rdfs:subPropertyOf(通过子属性传递关系)

Typing data by usage—rdfs:domain and rdfs:range(根据使用情况分类)


Combination of domain and range with rdfs:subClassOf

RDFS Modeling Combinations and Patterns

Set intersection 

Property intersection

Set Union

Property union

Property transfer

Term reconciliation

Instance-level data integration

 Readable labels with rdfs:label

Data typing based on use

Filtering undefined data

RDFS and knowledge discovery 

Modeling with Domains and Ranges

Multiple domains/ranges


Nonmodeling Properties in RDFS

Cross-referencing files: rdfs:seeAlso

Organizing vocabularies: rdfs:isDefinedBy

 Model documentation: rdfs:comment

Summary

你可能感兴趣的:(2019-05-26 CHAPTER 7 RDF schema)