本体描述语言

文章目录

  • 描述语言
    • RDF
      • 概念
      • 如何存储和传输RDF数据
      • RDF的缺陷
    • RDFS
      • 概念
      • 示例
      • 缺陷
    • OWL
      • 概念
      • 常用词汇
    • SWRL
    • 小结

描述语言

RDF

概念

RDF(Resource Description Framework),资源描述框架,提供了针对数据的模型及语法,方便独立的团体交换与使用。
RDF在形式上表示为SPO三元组,subject-predicate-object。
RDF由节点和边组成,节点表示实体/资源/属性,边则表示实体和实体之间的关系以及实体与属性的关系。

如何存储和传输RDF数据

  1. RDF/XML(不怎么常用)
  2. N-Triples(多个三元组)
  3. Turtle(使用最多)
  4. RDFa(HTML5的一个扩展,方便获取结构化信息)
  5. JSON-LD(键值对的方式来存储RDF数据)

RDF的缺陷

RDF是对具体事物的描述,缺乏抽象能力。例如:john is a child和lily is a girl中的John和lily都是人,但是RDF没有能力将人这种类型抽象出来(即RDF本身没有能力定义某些类和属性)。

RDFS

概念

RDFS,Resource Description Framework Schema,是最基础的模式语言,是对RDF的一种扩展,RDF 本身并不能定义某些类和属性,它们需要用 RDF 的描述语言 RDF Schema(RDFS) 来定义。

RDF Schema 不提供实际的应用程序专用的类和属性,而是提供了描述应用程序专用的类和属性的框架。
RDF Schema 中的类与面向对象编程语言中的类非常相似。这就使得资源能够作为类的实例和类的子类来被定义。

示例

 

 <rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 xml:base="http://www.animals.fake/animals#">

 <rdf:Description rdf:ID="animal">
   <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 rdf:Description>

 <rdf:Description rdf:ID="horse">
   <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
   <rdfs:subClassOf rdf:resource="#animal"/>
 rdf:Description>

 rdf:RDF> 

其中资源 “horse” 是类 “animal” 的子类。

我们这里介绍RDFS几个比较重要,常用的词汇:

  1. rdfs:Class. 用于定义类。
  2. rdfs:domain. 用于表示该属性属于哪个类别。
  3. rdfs:range. 用于描述该属性的取值类型。
  4. rdfs:subClassOf. 用于描述该类的父类。比如,我们可以定义一个运动员类,声明该类是人的子类。
  5. rdfs:subProperty. 用于描述该属性的父属性。比如,我们可以定义一个名称属性,声明中文名称和全名是名称的子类。

其实rdf:Property和rdf:type也是RDFS的词汇,因为RDFS本质上就是RDF词汇的一个扩展。

缺陷

  1. 不适合用于知识融合,词汇表达不够丰富
  2. RDFS支持推理,但由于缺乏丰富的表达能力,推理能力不强

OWL

概念

OWL,Web Ontology Language,是 W3C 开发的一种网络本体语言,用于对本体进行语义描述。上面我们提到,RDFS本质上是RDF词汇的一个扩展。后来人们发现RDFS的表达能力还是相当有限,因此提出了OWL。我们也可以把OWL当做是RDFS的一个扩展,其添加了额外的预定义词汇。其有两个重要的功能:

  1. 提供快速的数据建模能力
  2. 高效的自动推理能力

常用词汇

描述属性特征的词汇

  1. owl:TransitiveProperty. 表示该属性具有传递性质。例如,我们定义“位于”是具有传递性的属性,若A位于B,B位于C,那么A肯定位于C。

  2. owl:SymmetricProperty. 表示该属性具有对称性。例如,我们定义“认识”是具有对称性的属性,若A认识B,那么B肯定认识A。

  3. owl:FunctionalProperty. 表示该属性取值的唯一性。 例如,我们定义“母亲”是具有唯一性的属性,若A的母亲是B,在其他地方我们得知A的母亲是C,那么B和C指的是同一个人。

  4. owl:inverseOf. 定义某个属性的相反关系。例如,定义“父母”的相反关系是“子女”,若A是B的父母,那么B肯定是A的子女。

本体映射词汇(Ontology Mapping)

  1. owl:equivalentClass. 表示某个类和另一个类是相同的。

  2. owl:equivalentProperty. 表示某个属性和另一个属性是相同的。

  3. owl:sameAs. 表示两个实体是同一个实体。

本体映射主要用在融合多个独立的Ontology(Schema)。举个例子,张三自己构建了一个本体结构,其中定义了Person这样一个类来表示人;李四则在自己构建的本体中定义Human这个类来表示人。当我们融合这两个本体的时候,就可以用到OWL的本体映射词汇。这也是为什么OWL比RDFS强大之处之一。

目前,OWL的最新版本是OWL 2,在兼容OWL的基础上添加了新的功能。另外,OWL 2包含了三个标准,或者三种配置(Profile),它们是OWL 2完整标准(OWL 2/Full)的一个子集。下面简单说说它们使用的场景:

  1. OWL 2/EL 使用场景:本体结构中有大量相互链接的类和属性,设计者想用自动推理机得到里面复杂的关系。

  2. OWL 2/QL 使用场景:有大量的实例数据。OWL 2 QL本体可以被改写为SQL查询,适用于使用OBDA(ontology based data access)的方式来访问关系数据库。也就是说我们不用显式地把关系数据库中的数据转为RDF,而是通过映射的方式,将数据库转为虚拟RDF图进行访问。

  3. OWL 2/RL 使用场景:需要结合基于规则的推理引擎(rule-based reasoning engine)的场合。

SWRL

OWL是一种本体描述语言,是对本体进行形式化描述,使得计算机能股理解本体描述的知识。本体属于数据层,用来描述领域资源。虽然本体支持推理,但因为没有提供用于推理的规则,很难表达类属性之间的关系,其作用非常有限,而且使用起来非常麻烦。而引入SWRL的目的是为了能够更方便地将推理规则和本体结合在一起,使本体表达的内容更丰富,更具有实用性。

小结

综上所述,RDF,RDFS,OWL三者关系如下图所示:
本体描述语言_第1张图片

RDF用来描述具体数据,RDFS提供比RDF更丰富的词汇(Vocabulary),具备较弱的推理能力,OWL在RDFS的基础上提供了更丰富的词汇,并具有更强的推理能力,SWRL提供了本体描述规则,可与OWL描述语言结合,使得本体表达的内容更丰富,更具有实用性。

引用转载自https://zhuanlan.zhihu.com/p/32122644,https://www.w3school.com.cn/rdf/index.asp,
https://www.docin.com/p-1650009306.html

你可能感兴趣的:(读书笔记,知识图谱)