知识图谱本体建模之RDF、RDFS、OWL详解

article/2025/9/6 15:32:50

(一)知识图谱本体建模之RDF、RDFS、OWL详解

1.语义网体系

知识图谱于2012年由Google提出,并不是新概念,而是由语义网络(Semantic Network)衍生而来。语义网络由相互连接的节点和边组成,节点表示概念或者对象,边表示他们之间的关系。RDF,RDFS与OWL都是基于语义网的知识表示框架,在节点和边的取值上做了约束,制定了统一标准,为多源数据的融合提供了便利。RDF,RDFS/OWL 属于语义网技术栈,它们的提出,使得语义网克服了语义网络的缺点。其语义网技术栈如下所示。

在这里插入图片描述

2.RDF 表现形式

RDF(Resource Description Framework),即资源描述框架,其本质是一个数据模型(Data Model)。

具体地,

Resource:页面、图片、视频等任何具有URI标识符的资源。

Description:属性、特征和资源之间的关系。

Framework:模型、语言和这些描述的语法。

它提供了一个统一的标准,用于描述实体/资源。RDF 形式上表示为 SPO 三元组,有时候也称为一条语句(statement),知识图谱中我们也称其为一条知识(subject, predicate, object ),如下图所示,其节点表示实体/资源、属性,边则表示了实体和实体之间的关系以及实体和属性的关系。
在这里插入图片描述

3.RDF序列化方法

若需要对RDF数据进行传输和存储,则需要对RDF数据进行序列化(Serialization)。目前,RDF 序列化的方式主要有:RDF/XML,N-Triples,Turtle,RDFa,JSON-LD等几种。

  • RDF/XML,就是用 XML 的格式来表示 RDF 数据。之所以提出这个方法,是因为 XML 的技术比较成熟,有许多现成的工具来存储和解析XML。然而,对于 RDF 来说,XML 的格式太冗长,也不便于阅读,通常我们不会使用这种方式来处理 RDF 数据。

  • N-Triples,即用多个三元组来表示 RDF数 据集,是最直观的表示方法。在文件中,每一行表示一个三元组,方便机器解析和处理。开放领域知识图谱 DBpedia 通常是用这种格式来发布数据的。

  • Turtle, 应该是使用得最多的一种 RDF 序列化方式了。它比 RDF/XML 紧凑,且可读性比 N-Triples好。

  • RDFa, 即“The Resource Deion Framework in Attributes”,是HTML5 的一个扩展,在不改变任何显示效果的情况下,让网站构建者能够在页面中标记实体,像人物、地点、时间、评论等等。也就是说,将 RDF 数据嵌入到网页中,搜索引擎能够更好的解析非结构化页面,获取一些有用的结构化信息。读者可以去感受一下 RDFa(链接),其直观展示了普通用户看到的页面,浏览器看到的页面和搜索引擎解析出来的结构化信息。

  • JSON-LD,即“JSON for Linking Data”,用键值对的方式来存储 RDF 数据(链接)。

    例如,如下所示为关于罗纳尔多知识图谱其N-Triples和Turtle的具体表示:

    Example1 N-Triples:<http://www.kg.com/person/1> <http://www.kg.com/ontology/chineseName> "罗纳尔多·路易斯·纳萨里奥·德·利马"^^string.
    <http://www.kg.com/person/1> <http://www.kg.com/ontology/career> "足球运动员"^^string.
    <http://www.kg.com/person/1> <http://www.kg.com/ontology/fullName> "Ronaldo Luís Nazário de Lima"^^string.
    <http://www.kg.com/person/1> <http://www.kg.com/ontology/birthDate> "1976-09-18"^^date.
    <http://www.kg.com/person/1> <http://www.kg.com/ontology/height> "180"^^int.
    <http://www.kg.com/person/1> <http://www.kg.com/ontology/weight> "98"^^int.
    <http://www.kg.com/person/1> <http://www.kg.com/ontology/nationality> "巴西"^^string.
    <http://www.kg.com/person/1> <http://www.kg.com/ontology/hasBirthPlace> <http://www.kg.com/place/10086>.
    <http://www.kg.com/place/10086> <http://www.kg.com/ontology/address> "里约热内卢"^^string.
    <http://www.kg.com/place/10086> <http://www.kg.com/ontology/coordinate> "-22.908333, -43.196389"^^string.
    

    用Turtle表示的时候,一般会加上前缀(Prefix)对RDF的IRI进行缩写。

    Example2 Turtle:@prefix person: <http://www.kg.com/person/> .
    @prefix place: <http://www.kg.com/place/> .
    @prefix : <http://www.kg.com/ontology/> .person:1 :chineseName "罗纳尔多·路易斯·纳萨里奥·德·利马"^^string.
    person:1 :career "足球运动员"^^string.
    person:1 :fullName "Ronaldo Luís Nazário de Lima"^^string.
    person:1 :birthDate "1976-09-18"^^date.
    person:1 :height "180"^^int. 
    person:1 :weight "98"^^int.
    person:1 :nationality "巴西"^^string. 
    person:1 :hasBirthPlace place:10086.
    place:10086 :address "里约热内卢"^^string.
    place:10086 :address "-22.908333, -43.196389"^^string.
    

4.RDFS —对RDF的补充

RDF的表达能力有限,无法区分类和对象,也无法定义和描述类的关系/属性。RDF是对具体事物的描述,缺乏抽象能力,无法对同一类别的事物进行定义和描述,需要schema的引入。RDFS,即“Resource Deion Framework Schema”模式语言作为RDF的补充解决了RDF表达能力有限的困境。

RDFS里有多个比较重要常用的词汇:

  • rdfs:Class. 用于定义类。

  • rdfs:domain. 用于表示该属性属于哪个类别。

  • rdfs:range. 用于描述该属性的取值类型。

  • rdfs:subClassOf. 用于描述该类的父类。比如,我们可以定义一个运动员类,声明该类是人的子类。

  • rdfs:subProperty. 用于描述该属性的父属性。比如,我们可以定义一个名称属性,声明中文名称和全名是名称的子类。

    RDFS的表现形式和RDF一样,常用的方式主要是RDF/XML,Turtle。

    如下所示,只是针对RDF数据在概念层进行了约束:

    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
    @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    @prefix : <http://www.kg.com/ontology/> .:Person rdf:type rdfs:Class.
    :Place rdf:type rdfs:Class.
    

5.OWL—对RDFS的进一步扩展

通过RDF(S)可以表达一些简单的语义,但在更复杂的场景下,RDF(S)语义表达能力显得太弱,还缺少诸多常用的特征。包括对局部值域的属性定义,类、属性、个体的等价性,不相交类的定义,基数约束,关于属性特征的描述等。因此W3C提出了OWL语言扩展RDF(S),作为语义网上表示本体的推荐语言。OWL可以看作是RDFS的一个扩展,添加了额外的预定义词汇。

OWL相较于RDFS,引入了布尔算子(并、或、补)、递归地构建复杂的类,还提供了表示存在值约束、任意值约束和数量值约束等能力。同时,owl能提供描述属性具有传递性、对称性、函数性等性质。还有两个类等价或者不相交,两个属性等价或者互逆,两个实例相同或者不同,还有枚举类等等。
OWL 描述属性常用的词汇:
描述属性特征的词汇

  • owl:TransitiveProperty.表示该属性具有传递性质。例如,我们定义“位于”是具有传递性的属性,若A位于B,B位于C,那么A肯定位于C。
  • owl:SymmetricProperty. 表示该属性具有对称性。例如,我们定义“认识”是具有对称性的属性,若A认识B,那么B肯定认识A。
  • owl:FunctionalProperty. 表示该属性取值的唯一性。 例如,我们定义“母亲”是具有唯一性的属性,若A的母亲是B,在其他地方我们得知A的母亲是C,那么B和C指的是同一个人。
  • owl:inverseOf. 定义某个属性的相反关系。例如,定义“父母”的相反关系是“子女”,若A是B的父母,那么B肯定是A的子女。

本体映射词汇(Ontology Mapping)

  • owl:equivalentClass. 表示某个类和另一个类是相同的。
  • owl:equivalentProperty. 表示某个属性和另一个属性是相同的。
  • owl:sameAs. 表示两个实体是同一个实体。
    用OWL对罗纳尔多知识图进行概念层的描述如下:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <http://www.kg.com/ontology/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
:Person rdf:type owl:Class.
:Place rdf:type owl:Class.
### owl区分数据属性和对象属性。owl:DatatypeProperty为数据属性,owl:ObjectProperty为对象属性。
:chineseName rdf:type owl:DatatypeProperty;rdfs:domain :Person;rdfs:range xsd:string .:career rdf:type owl:DatatypeProperty;rdfs:domain :Person;rdfs:range xsd:string .:fullName rdf:type owl:DatatypeProperty;rdfs:domain :Person;rdfs:range xsd:string .:birthDate rdf:type owl:DatatypeProperty;rdfs:domain :Person;rdfs:range xsd:date .:height rdf:type owl:DatatypeProperty;rdfs:domain :Person;rdfs:range xsd:int .:weight rdf:type owl:DatatypeProperty;rdfs:domain :Person;rdfs:range xsd:int .:nationality rdf:type owl:DatatypeProperty;rdfs:domain :Person;rdfs:range xsd:string .:hasBirthPlace rdf:type owl:ObjectProperty;rdfs:domain :Person;rdfs:range :Place .:address rdf:type owl:DatatypeProperty;rdfs:domain :Place;rdfs:range xsd:string .:coordinate rdf:type owl:DatatypeProperty;rdfs:domain :Place;rdfs:range xsd:string .

6.SPARQL

关系型数据库一般用SQL进行查询,RDF的数据都是以图形式存储的,它的查询语言使用的是SPARQL。
一条SPARQL查询,其核心是对于一组变量及其之间关系的描述,构成了一种带有变量的图模式,与SQL类似,SPARQL查询可以返回一条或多条结果,每条结果包含的是对上述每个变量的一个绑定-指明了该变量与一个RDF术语之间的对应关系。RDF术语可以是URI、空白节点或者字面量。于是,根据每条结果,通过将查询图模式中的变量根据绑定替换为对应的RDF术语,应当构成待查询的RDF图的一个子图,这个子图称作与上述图模式相匹配。RDF查询语言主要定义了表达查询图模式的一套语法和语义。


http://chatgpt.dhexx.cn/article/Xxe4HMQi.shtml

相关文章

OWL本体基础知识

备注&#xff1a; OWL本体中对象属性和数据属性都可以有进一步的注释属性&#xff0c;被称之为公理 <owl:NamedIndividual rdf:about"http://www.semanticweb.org/bob/ontologies/2022/11/untitled-ontology-20#刘二菲"><like rdf:resource"http://www…

protege系列(一):本体开发101:创建第一个本体的指南

protege作为领域本体编辑工作一直为自然语言处理和语义网、知识图谱等行业人士喜爱&#xff0c;但是还没有比较完整的官方Protege中文文档&#xff0c;本系列旨在通过对protege官方网站上教程等内容的翻译和再现&#xff0c;为广大网友提供一个全面的、权威的protege教程。 本…

动态本体 palantir

102解析器与106本体耦合&#xff0c;106本体与108数据库耦合&#xff1b; 106本体有一个或多个110对象类型和116属性类型 110对象类型实例化多个112对象 每一个对象有一个或多个属性 116属性类型实例化114A和114B属性 116属性类型有一个或多个118组件&#xff0c;组件有字符串、…

什么是计算机科学中的“本体论”

最近看用户画像&#xff0c;里面提到了本体论。故把知乎一个回答放于此地。 一、本体的概念 本体的概念有两层意思&#xff0c;一层是哲学层面的意思&#xff0c;一层是引申到信息科学中的语义层面的意思。 举个最通俗的例子来解释一下这两层意思&#xff0c;我们就拿苹果来举…

本体建模学习笔记

目录 1. 语义网 & 语义网络 1.1 链接数据与知识图谱 的区别 1.2 本体构建的两种方式 1.3 知识图谱数据的来源 0. RDF、OWL 与RDFS 0.1 RDF序列化 0.2 关系 / 属性 0.3 RDFS词汇 0.4 本体映射词汇&#xff08;Ontology Mapping&#xff09; 2. Protege实现本体建模…

知识元与知识本体

元数据&#xff08;Metadata&#xff09;就是“关于数据的数据”,是对数据进行组织和处理的基础。元数据法就是对信息单元及其集合进行规范描述从而形成元数据&#xff0c;并依其将分布式的信息资源整合成有机信息体系的基准、方法和工具。主题词表&#xff1a;也称叙词表。它是…

本体语言 OWL

万维网本体语言OWL2 文章目录 万维网本体语言OWL2一、引言二、本体语言的需求三、OWL2和RDF/RDFS的兼容性3.1 OWL2 Full&#xff1a;基于RDF的语义3.2 OWL2 DL&#xff1a;直接语义 四、OWL语言五、OWL2 概要六、实验 OWL的构造七、总结 一、引言 通俗的讲&#xff0c;RDF被限…

本体概述

目录1.定义2.本体的目标和作用3.本体构成要素4.领域本体与上层本体5.本体语言6. 构造Ontology 的规则 7.本体在信息检索的应用 1.定义 – 1991/Neches 等&#xff1a;给出构成相关领域词汇的基本术语和关系&#xff0c;以及利用这些术语和关系构成的规定这些词汇外延的规则…

本体 摘抄笔记

一、本体的一些介绍 &#xff08;来源&#xff1a;https://blog.csdn.net/shendeguang/article/details/8241164&#xff09; 1. 本体论语义学的特点&#xff1a; 本体论语义学与其他人工智能理论、自然语言加工系统相比有自己的一些鲜明特点。 其一&#xff0c;它强调对意义…

图构建:领域本体设计原则与动态本体

图构建&#xff1a;领域本体设计原则与动态本体 前文《思考总结&#xff1a;领域知识图谱平台构建与业务应用》中提到&#xff1a;“本体设计是图应用中的重中之重&#xff0c;一切的图展示、图计算、图分析、图挖掘、图模式匹配…的基础在图构建&#xff0c;而图构建的核心是…

常用本体建模工具

常用本体建模工具&#xff1a; Apollo、OntoStudio、TopBraid Composer、Semantic Turkey、Knoodl、Chimaera、OliEd、WebODE、Kmgen和DOME Protg Protg[1]是一款由斯坦福大学编写并维护的开源本体建模和编辑工具&#xff0c;其支持Web版本和PC版本&#xff0c;使用OWL语言…

本体(Ontology)

我是在撰写毕业论文中接触到知识表示方面的内容&#xff0c;有时需要理论与实践相结合&#xff0c;关于这方面的理论知识学习&#xff0c;除了网页资料、书籍、另外推荐一个网站&#xff1a;熊猫学术(https://sc.panda321.com/)&#xff0c;可以查阅很多相关的学术论文&#xf…

知识图谱初步学习(一)——本体+Protege新手学习

文章目录 前言&#xff08;本体详解&#xff09;1.本体概念2.本体分类3.本体组成4.本体构建方法5.本体构建的原则6.本体应用 一、protege简介二、软件使用步骤1.安装2.使用3.案例 三、问题解决方案汇总 前言&#xff08;本体详解&#xff09; 在开始学习知识图谱的过程中&…

本体调研

1.1本体概念 本体是用于描述一个领域的术语集合&#xff0c;其组织结构是层次结构化的&#xff0c;可以作为一个知识库的骨架和基础。 本体不等同于个体&#xff0c;它是相应领域内公认的概念集合。 1.2 本体分类 依照领域依赖程度: &#xff08;1&#xff09;顶层本体&…

知识图谱初步学习(零)——本体是什么

知识图谱初步学习&#xff08;零&#xff09;——本体是什么 文章目录 知识图谱初步学习&#xff08;零&#xff09;——本体是什么前言一、 哲学层面理解二、 引申到语义层面理解三、学术层面四、其他层面- 术语- 语义网 五、本体与类、本源、实体、符号的区别六、用语义三角形…

本体(Ontology)概述

认识本体 本体&#xff08;Ontology&#xff09;的概念源自于哲学领域&#xff0c;在哲学中的定义为“对世界上客观事物的系统描述&#xff0c;即存在论”。哲学中的本体关心的是客观现实的抽象本质。而在计算机领域&#xff0c;本体可以在语义层次上描述知识&#xff0c;可以看…

区块链 Vs. 互联网,创新在哪里?

本文转载自共识未来公众号 引言&#xff1a;最近关于区块链革命的提法少了很多&#xff0c;我们很少再听到“区块链即将颠覆互联网”的提法&#xff0c;这似乎也寓意着区块链技术&#xff08;加密技术&#xff09;正在进入一个理性发展的阶段&#xff0c;如果按照Gartner的技术…

js提交form表单

【背景】 前段时间将边用边学javascript.pdf书看完了,其中之前最不熟悉的也是这次印象最深刻的就是提交form表单,所以在这里总结一下js提交form表单,以及表单中对应的一些扩展知识O(∩_∩)O~ 【概念】 表单在网页中主要负责数据采集功能;一个表单偶三个基本组成部分&am…

JavaScript笔记-点击button提交form表单

功能如下&#xff1a; 点击购买后&#xff0c;点击确定。 确定调用了一个js函数&#xff0c;提交form表达给后端 代码如下&#xff1a; <div class"modal-footer"><button type"button" class"btn text-white border bg-dark" data-b…

yeild函数

1、把函数变成一个生成器 2、起到延迟的作用&#xff0c;在需要的时候产生结果&#xff0c;节省资源 3、声明一个序列不同的是生成器在不使用的情况下&#xff0c;是不占内存的 def getNum(n):i 0while i < n:print(i)i 1getNum(5)def getNum(n):i 0while i < n:retu…