Atitit 知识图谱  RDF、RDFS和OWL数据模型

目录

1. 知识图谱 1

2. 二、知识图谱的前世今生 2

2.1. 五六十年代所提出的一种知识表示形式——语义网络(Semantic Network) 2

2.2. 2006年提出的关联数据(Linked Data) 4

3. RDF、RDFS和OWL是W3C推荐的本体描述语言 5

3.1. RDFS(RDF Schema ,RDF模式语言) 6

3.2. OWL(Web Ontology Language,网络本体语言) 7

3.3. 目前,OWL的最新版本是OWL 2,在兼容OWL的基础上添加了新的功能, 8

3.4. RDFa 9

4. RDF序列化方法 9

5. 知识图谱的推理主要分为两类:基于本体的推理和基于规则的推理。 10

6. Other 11

6.1. 微格式microformats 11

6.2. hCard 微格式 12

6.3. Microdata (HTML5) 12

7. rf 13

  1. 知识图谱

为了让机器能够理解文本背后的含义,我们需要对可描述的事物(实体)进行建模,填充它的属性,拓展它和其他事物的联系,即,构建机器的先验知识

语义网技术栈(Semantic Web Stack,如下图)来介绍知识图谱实现过程中所需要的具体技术。另外,可能会结合实践,介绍如何利用关系型数据库中的数据来构建一个知识图谱,并搭建一个简易的基于知识图谱的问答系统(KBQA)

  1. 二、知识图谱的前世今生

    1. 五六十年代所提出的一种知识表示形式——语义网络(Semantic Network)

通过上面这个例子,读者应该对知识图谱有了一个初步的印象,其本质是为了表示知识。其实知识图谱的概念并不新,它背后的思想可以追溯到上个世纪五六十年代所提出的一种知识表示形式——语义网络(Semantic Network)。语义网络由相互连接的节点和边组成,节点表示概念或者对象,边表示他们之间的关系(is-a关系,比如:猫是一种哺乳动物;part-of关系,比如:脊椎是哺乳动物的一部分),如下图。在表现形式上,语义网络和知识图谱相似,但语义网络更侧重于描述概念与概念之间的关系,(有点像生物的层次分类体系——界门纲目科属种),而知识图谱则更偏重于描述实体之间的关联。

除了语义网络,人工智能的分支——专家系统,万维网之父Tim Berners Lee于1998年提出的语义网(Semantic Web)和在2006年提出的关联数据(Linked Data)都和知识图谱有着千丝万缕的关系,可以说它们是知识图谱前身。

  1. 2006年提出的关联数据(Linked Data)

目前,知识图谱并没有一个标准的定义(gold standard definition)。我在这里借用一下“Exploiting Linked Data and Knowledge Graphs in Large Organisations”这本书对于知识图谱的定义:

A knowledge graph consists of a set of interconnected typed entities and their attributes.

即,知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Object)。

在知识图谱中,我们用RDF形式化地表示这种三元关系。RDF(Resource Description Framework),即资源描述框架,是W3C制定的,用于描述实体/资源的标准数据模型。RDF图中一共有三种类型,International Resource Identifiers(IRIs),blank nodes 和 literals。下面是SPO每个部分的类型约束:

  1. Subject可以是IRI或blank node。
  2. Predicate是IRI。
  3. Object三种类型都可以。

IRI我们可以看做是URI或者URL的泛化和推广,它在整个网络或者图中唯一定义了一个实体/资源,和我们的身份证号类似。

  1. RDF、RDFS和OWL是W3C推荐的本体描述语言

,也是知识图谱中数据的常用存储格式,它们都是基于XML(可扩展标记语言)编写的元数据(描述数据的数据

RDF(Resource Description Framework,资源描述框架)

RDF本质上是一个数据模型,它提供了一个统一的标准来描述web上资源,所谓的资源可以是指类(class)、属性(property)、实例(Instance)等等。RDF在形式上表示为SPO三元组(triple),即(主语/主体、谓语/属性、宾语/客体),用于描述具体的事物及关系,即实体以及实体之间的关系。RDF也可以表示为一张带有标记的有向图,图中有节点和边,节点对应实体,边对应关系或者属性,关系指的是实体之间、实体与属性之间的关系。

RDF以三元组的形式描述资源,简洁明了,但是有着语义表达能力的缺陷。RDF中没有定义类、属性等词汇,RDF只能是对具体的事物进行描述,缺乏抽象能力,无法对同一个类别的事物进行定义和描述。也就是说,RDF可以描述实体、实体的属性以及他们之间的关系,但是无法描述类与类之间的关系,类的属性等。

  1. RDFS(RDF Schema ,RDF模式语言)

RDFS在RDF的基础上定义了类(class)、属性(property)以及关系(relation)来描述资源,并且通过属性的定义域(domain)和值域(range)来约束资源。RDFS在数据层(data)的基础上引入了模式层(schema),模式层定义了一种约束规则,而数据层是在这种规则下的一个实例填充。

RDF Schema

上图中在数据层(Instance)有一个三元组(图灵,研究领域,人工智能),引入模式层(schema)之后,实体图灵属于计算机科学家,人工智能属于计算机技术,属性研究领域的主体(定义域Domain)被限制在计算机科学家,客体(值域Range)被限制在计算机技术。而计算机科学家属于科学家的子类(subclassof),计算机技术属于信息技术的子类。

RDFS中描述资源的词汇是固定的,只有Class、type、subClassof、Property、subPropertyof、Domain和Range。

Class:类;

type:定义了实例与类之间的关系;

subClassof:表示子类;

Property:类或者实体的属性;

subPropertyof:子属性;

Domain:谓语的定义域,限制了属性的主体范围;

Range:谓语的值域,限制了属性的客体范围;

RDFS相比于RDF语义表达能力有所提升,但RDFS依旧有语义表达的缺陷。在RDFS中关于类与类之间的关系它只能声明子类关系,无法声明互斥类的关系,也无法声明多个类、实例、属性是否等价。

---------------------

  1. OWL(Web Ontology Language,网络本体语言)

OWL是对RDFS关于描述资源词汇的一个扩展,OWL中添加了额外的预定于词汇来描述资源,具备更好的语义表达能力。在OWL中可以声明资源的等价性,属性的传递性、互斥性、函数性、对称性等等,具体见OWL的词汇扩展。

---------------------

本体和知识图谱在构建过程中,数据的存储常以RDF格式存放。而基于RDF数据的结构化查询语言SPARQL,可以实现对三元组的查询。在SPARQL中,常以“?”来表示变量或者资源标识符,select子句检索指定资源的资源标识符,where子句限定资源的由来。

RDFS和OWL这两种技术或者说模式语言/本体语言(schema/ontology language)解决了RDF表达能力有限的困境。

RDFS的扩展——OWL

上面我们提到,RDFS本质上是RDF词汇的一个扩展。后来人们发现RDFS的表达能力还是相当有限,因此提出了OWL。我们也可以把OWL当做是RDFS的一个扩展,其添加了额外的预定义词汇。

OWL,即“Web Ontology Language”,语义网技术栈的核心之一。OWL有两个主要的功能:

1. 提供快速、灵活的数据建模能力。

2. 高效的自动推理。

我们先谈如何利用OWL进行数据建

---------------------

  1. 目前,OWL的最新版本是OWL 2,在兼容OWL的基础上添加了新的功能,

有兴趣的读者可以查阅W3C文档。另外,OWL 2包含了三个标准,或者三种配置(Profile),它们是OWL 2完整标准(OWL 2/Full)的一个子集。读者目前不用考虑它们之间的差别,只有当我们要用到OWL自动推理功能的时候才需要考虑到底使用哪一种配置。且在大多数情况下,我们需要知道哪种配置才是最合适的。下面简单说说它们使用的场景:

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

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

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

---------------------

  1. RDFa

编辑

本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

RDFa是一个W3C推荐标准。它扩充了XHTML的几个属性,网页制作者可以利用这些属性在网页中添加可供机器读取的后设资料。与RDF资料模型的对应关系使得 [1]  RDFa可以将RDF的三元组嵌入在XHTML文档中,它也使得符合标准的使用端可以从RDFa文件中提取出这些RDF三元组来。

RDFa全称(RDF attribute),设计提供了一套属性,可以用于在XML(及其方言,也包括HTML)中携带元数据,对于在(X)HTML中添加RDFa的作者而言,不一定需要理解RDF或者本体。

RDFa作为一种用于(X)HTML文档的语义标注技术。

  1.   RDF序列化方法

RDF的表示形式和类型有了,那我们如何创建RDF数据集,将其序列化(Serialization)呢?换句话说,就是我们怎么存储和传输RDF数据。目前,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 Description Framework in Attributes”,是HTML5的一个扩展,在不改变任何显示效果的情况下,让网站构建者能够在页面中标记实体,像人物、地点、时间、评论等等。也就是说,将RDF数据嵌入到网页中,搜索引擎能够更好的解析非结构化页面,获取一些有用的结构化信息。读者可以去这个页面感受一下RDFa,其直观展示了普通用户看到的页面,浏览器看到的页面和搜索引擎解析出来的结构化信息。

JSON-LD,即“JSON for Linking Data”,用键值对的方式来存储RDF数据。感兴趣的读者可以参考此网站。

---------------------

  1. 知识图谱的推理主要分为两类:基于本体的推理和基于规则的推理。

我们这里谈的是基于本体的推理。读者应该发现,上面所介绍的属性特征词汇其实就创造了对RDF数据进行推理的前提。此时,我们加入支持OWL推理的推理机(reasoner),就能够执行基于本体的推理了。RDFS同样支持推理,由于缺乏丰富的表达能力,推理能力也不强。举个例子,我们用RDFS定义人和动物两个类,另外,定义人是动物的一个子类。此时推理机能够推断出一个实体若是人,那么它也是动物。OWL当然支持这种基本的推理,除此之外,凭借其强大的表达能力,我们能进行更有实际意义的推理。想象一个场景,我们有一个庞大数据库存储人物的亲属关系。里面很多关系都是单向的,比如,其只保存了A的父亲(母亲)是B,但B的子女字段里面没有A,如下表

---------------------

  1. Other
  1. 微格式microformats

– 一个简化的在网站上标注语意资料的方向

格式,microformats,它是一种利用HTML的class属性来对网页添加附加信息的方法,是一种开放的数据格式。 微格式是一种网络技术,用于将传统网页中.

由于HTML中缺少相应的元素,很难突出显示人、地点或日期等类型的信息。为了解决这个问题,有一组开发人员决定开发一套标准的命名约定盒标记模式来表示这些数据。这些命名约定基于vCard(电子名片)和iCalendar(日历数据交换)等现有的数据格式,现在称为微格式(microformat)。

。RSS具有微格式的部分优点,但限制还是比较多的,比如有限的元数据(标题、描述、URL等),不能更好地描述语义,不太容易与已存在的工具结合等。用微格式可以来聚合外部Blog,Flickr,YouTube,MapQuest,甚至MySpace里的内容。

特点

编辑

为特殊应用而制定的特殊格式;

可以插入网页或XML元数据中,被收割和索引;

数据可被重用、与具体应用无关;也可自定义,完全取决于应用;

例如:XFN, hcalendar, hcard, rel tags, rel license, lists and outlines等等

□建立在已有的、被广泛采用的标准基础之上的一组简单的、开放的数据格式。

□微格式是为了把语义嵌入到HTML以便有助于分离式开发而制定的一些简单约定。

□按照某种标准方式标记出内容块,可以让外部应用程序、聚集程序和搜索引擎能够做以下事情:

◇在爬取网站的时候能够识别内容的语义。

◇对内容进行操作,包括提供访问、校对,还可以将其转化成其他的相关格式,提供给外部的程序和Web服务使用。

4. 部分微格式介绍

①hCard:用来表示人员及其公司、组织和位置的格式,或多或少使用了与vCard标准相同的属性和值,但它使用的是(X)HTML。(微格式生成器:http://microformats.org/code-tools )

②hCalendar:用来描述事件而不是联系信息,它基于iCalendar标准。

③rel-微格式(使用rel属性):

□rel-license:之处超链接的目的地是当前页面所包含内容的许可证。

□rel-nofollow:对网页进行链接分析的用户代理指出,不应该按照任何方式对目的网页进行排名、爬取。

□rel-tag:指出href属性所引用的资源可以考虑作为某个特殊主题的分类。

④VoteLinks:使用rev属性分别指明赞同、中立、反对。vote-for、vote-abstain和vote-against。

⑤XOXO(eXtensible Open XHTML Outlines),开放式XHTML大纲。用来描述文档的大纲或者类似博客提要的订阅列表。

⑥XFN(XHTML Friends Network)使用rel属性(一个有空白符隔开的值的列表)来描述你和你所链接的那个人之间的关系,而不是文档之间的关系。

⑦hReview:对产品、商业、事件、地点等的评论。

  1.  hCard 微格式

hCard是一种微格式,用来发布个人,公司,组织,地点等详细的联系信息。 它可以使分析器(比如其他网站,Firefox的Operator插件)获得详细的信息,并通过别的网站或者地图工具进行显示,或者载入到地址簿等其他程序。

这里,正式名称(class=”fn”),组织(class=”org”),电话号码(class=”tel”)和url(class=”url”)分别用相应的class标示;同时,所有内容都包含在class="vcard"里

其他常用的hCard属性包括:

bday– 生日;email;honorific-prefix-(西式)名字前的尊称,例如:博士(Dr.);honorific-suffix -(西式)名字后的尊称,一般都是封衔,例如:太平绅士(JP)、大紫荆勋章(GBM);logo;nickname – 昵称、爱称或外号。;note

目前已具备完整规范的微格式还包括:hCard、hCalendar、XOXO、XFN、VoteLinks和3个“rel-”微格式:rel- license、rel-nofollow和rel-tag。

  1. Microdata (HTML5)

– 一个在HTML5被提出的功能,增强微格式可用性

  1. 元数据(metadata)本质上是关于数据的数据。
  1. rf

为什么需要知识图谱?什么是知识图谱?——KG的前世今生 - 知乎.html

什么是微格式?在前端构建中应该考虑微格式吗? - 简书.html

《精通HTML-语义、标准和样式》读书笔记 - chemandy - 博客园.html

Atitit 知识图谱 RDF、RDFS和OWL数据模型 目录 1. 知识图谱 1 2. 二、知识图谱的前世今生 2 2.1. 五六十年代所提出的一种知识表示形式——语义网络(Semantic N相关推荐

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

    (一)知识图谱本体建模之RDF.RDFS.OWL详解 1.语义网体系 知识图谱于2012年由Google提出,并不是新概念,而是由语义网络(Semantic Network)衍生而来.语义网络由相互连 ...

  2. 语义网知识表示方法:RDF,RDFS与OWL

    RDF,RDFS与OWL都是基于语义网的知识表示框架,还有一种知识表示框架称为分布式表示,即把知识表示为低维稠密向量,例如TransE模型 对于初学者来讲,这个概念很容易和语义网(Semantic W ...

  3. 浅谈知识表示之语义网络、RDF和OWL

    语义网络 提出者 M. Ross Quillian 和 Robert F. Simmons 1968 Principles of Semantic Networks: Exploration in t ...

  4. CCKS2020事理图谱应用工作:刘焕勇等.面向开放文本的逻辑推理知识抽取与事件影响推理探索

    一.背景介绍 第十四届全国知识图谱与语义计算大会(CCKS 2020) 11 月 12 日至 15 日在江西南昌举行,CCKS(China Conference on Knowledge Graph ...

  5. 把知识变成图谱一共需要花几步?89页全网最全清华知识图谱报告-学习笔记

    把知识变成图谱一共需要花几步?89页全网最全清华知识图谱报告 知识图谱是人工智能的重要分支技术,它在2012年由谷歌提出,成为建立大规模知识的杀手锏应用,在搜索.自然语言处理.智能助手.电子商务等领域 ...

  6. 【知识图谱 Knowledge Graph】从它的起源看未来的研究方向。知识图谱——科普篇

    声明:仅学习使用. 注:来源在文末均已指出 目录 一.知识图谱的本质 1.数字时代降临,知识图谱前身 语义网络模型 初面世(20世纪50-60年代) 2.万维网广泛应用,图形化模型略展锋芒(20世纪8 ...

  7. 【Zotero高效知识管理】(4)Zotero的文献管理、阅读及笔记知识管理

    [Zotero高效知识管理]专栏其他文章 Zotero文献管理软件的系统性教程,包括安装.全面的配置.基于众多插件的文献导入.管理.引用.笔记方法 [Zotero高效知识管理](1)Zotero介绍 ...

  8. 首个中文全词类知识库-百科知识树 开源啦!搭配开源标注工具,一招搞定知识关联!...

    近年来,深度学习技术已广泛应用于NLP领域,但实际应用效果往往受限于缺乏大规模高质量监督样本.2018年底,预训练语言模型横空出世,极大缓解了这个问题,通过「超大规模无监督语料上的预训练语言模型+相对 ...

  9. 内核知识第八讲,PDE,PTE,页目录表,页表的内存管理

    内核知识第八讲,PDE,PTE,页目录表,页表的内存管理 一丶查看GDT表. 我们通过WinDbg + 虚拟机可以进行双机调试.调试一下看下GDT表 我们知道,GDT表中.存储的是存储段信息. 保存了 ...

  10. Atitit db analysis statistics tonjyi fsy数据库统计分析目录1. Atitit 数据库表与注释文档与统计(表,说明) 11.1. 获取表列表 数据库包含哪些

    Atitit db analysis statistics tonjyi fsy数据库统计分析 目录 1. Atitit 数据库表与注释文档与统计(表,说明)    1 1.1. 获取表列表 数据库包 ...

最新文章

  1. Selenium的延迟等待
  2. python安装mysql库
  3. 远程连接CentOS的MySQL报错:Can't connect to MySQL server on 'XXX' (13)
  4. 管理Win2003sp1防火墙的一点小技巧
  5. java比较equlse_java基础知识要点
  6. 华三1822-24路由交换机配置例子
  7. 浅谈iOS中的蓝牙技术(一) GameKit framework
  8. 什么是云原生?聊聊云原生的今生(转)
  9. 华为发布全新一代OceanStor存储Pacific系列,打造海量数据存储新标杆
  10. php中时间戳和正常日期的相互转化
  11. linux修改mdc时钟,Linux下用xsupplicant或mdc拨号上网
  12. 你可能不知道的 Android Studio 小技巧之「多行编辑」
  13. JDK、J2EE、J2SE、J2ME的区别(转-2021-04-30)
  14. 怎么在win10服务器上搭建网站,win10怎么搭建web服务器 win10搭建web服务器的方法...
  15. unity3d实现水果机(随机)跑马灯效果
  16. if else 的使用
  17. 2020年回顾,这一年,不容易
  18. 简单人口问题(指数增长)
  19. 没有授权,Android App 也能获取你的权限?!
  20. 论文阅读_中文医学预训练模型_MC-BERT

热门文章

  1. php+mysql+zend+一键_PHP+MySQL+phpMyAdmin+ZendOptimizer环境一键安装包下载及安装手
  2. python导入自己写的py_10万行代码10万年薪,利用python查看自己写了多少代码!
  3. pythonwin下载中文版_Python官方下载 v3.9.0中文版_Win10镜像官网
  4. 八、关于FFmpeg需要絮叨的一些事
  5. express不是内部或外部命令的解决方法
  6. 验光黑科技时代!星创视界首创眼镜店医疗验光
  7. kylin_异常_02_java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf 解决办法
  8. python插入排序
  9. 《C++ AMP:用Visual C++加速大规模并行计算》——3.6 parallel_for_each
  10. Guacamole之本地安装Guacamole(二)