【知识图谱学习笔记】02 知识图谱基础

这部分将会介绍有关知识图谱的相关概念以及基本的要素。包括本体关系,在本体内定义的被广泛使用词汇,以及将其他格式的数据转换为知识图谱的一些标准。

2.1 知识表示和查询语言

知识表示和推理术语AI领域,是用来以格式化的形式来表示世界上的知识,并且允许计算机能够根据相关信息完成自动推理,以达到决策支持的目的。正如在01的简介中提到的,知识图谱可以被视为是语义网在现代的一种知识推理变体。

知识图谱是一系列实体类型,这些实体有自己的属性,并且实体之间还有定义的关系类型。实体的类型与关系在关系中被定义为本体,这种定义方式被称为词典。在这个部分我们会介绍用来表示知识图谱的RDF,用来定义本体的RDFS和OWL以及一些用来知识图谱查询的标准。

2.1.1 RDF和RDFS

RDF
RDF用来描述实体,在W3C中是一种资源。RDF可以被定义为任何东西,例如一个人、一个网页或者一个巨大的恐龙。一个知识图谱由一个三元组组成,并且这个三元组是一个有向图,在RDF中有三种类型的节点,国际资源定位符(Internationalised Resource Identifiers),也称IRI,字面量或者空节点。如图所示
在这里插入图片描述
在一个三元组中:

  • 主语可以是一个IRI或者空节点
  • 谓语应该是一个IRI
  • 宾语可以是一个IRI,字面量或者空节点

RDF图中的IRI可以唯一界定一个资源,IRI是更加一般化的URLs。它允许使用更多的符号。字面量Literals可以取值为字符串、数字以及日期。RDF中的字面量通常有两种或者三种元素组成:

  • 一种词汇形式
  • IRI数据类型
  • 一个非空的语言标签

空节点是从IRIs和literals中分离出来的,或者说,一个空节点是任意的量,在RDF中空节点可以表示一些IRIs和literals不能表示的量,例如

  • 描述一个具有多个成分的结构,例如RDF
  • 描述一个具体化的内容,例如来源信息
  • 表示一个没有显式命名的节点
  • 对内部的信息的一种保护,例如保护浏览器用户的一些隐私信息

IRIs通常以一个命名空间作为开头,一些命名空间为了方便表示会和一些更短的前缀关联,这种前缀如下表示:
————————————————————————————
prefix dbpedia : http://dbpedia.org/resource/
prefix dbpedia-owl : http://dbpedia.org/ontology/
prefix xsd : http://www.w3.org/2001/XMLSchema#
————————————————————————————
和典型的语义网络不一样的地方在于,RDF有一些语言级别预定义的属性,比如rdf:type,它是用来对资源进行分类的,和语义网络中的is-a关系所对应。

序列化RDF
RDF为知识图谱提供了标准的数据模型,RDF数据的存储和交换有许多序列化方法,比如Turtle,RDF/XML,RDFa,B-Triples,NQUADS,JSON-LD等

RDFS
RDFS为RDF提供了简单的模式化语言,并且允许用户使用一些预定义语言类rdfs:Class/property rdfs:Property来声明一个类或属性,例如下面的例子分别将org:Organization声明为一个类,org:hasHomePage声明为一个属性
————————————————————————————
org:Organization rdf:type rdfs:Class.
org:Start-up a rdfs:Class.
org:hasHomePage rdf:type rdfs:Property.
————————————————————————————
除此之外,RDFS还提供:
rdfs:subClassOf【子类】
rdfs:subPropertyOf【子属性】
rdfs:domain【谓语适用的主语范围】
rdfs:range【数据类型】
这里需要说明的是,RDF作为一个模式语言,有很多局限性:

  1. RDF不支持否定功能;例如我们在RDF中可以表达:ESI是一个SME,但是不能表达ESI不是一个人
  2. RDFS不能去定义一个类;例如我们在RDF中不能去定义SME到底是什么
  3. 尽管RDFS提供了关系级别的对齐,比如rdfs:subClassOf或者rdfs:subPropertyOf,但是并不支持实例级别的对齐,例如不能表达:data:ESI与db:ESI是一个东西。

以上这些缺陷都可以被更加全面的模式语言OWL解决。

2.1.2 OWL

OWL可以被视为是RDFS的扩展,它有更加全面的词汇表,由OWL关系预定义,为人们构建本体或是标注数据提供了更强有力的工具。下面的例子是OWL2中关于属性的一个片段:
————————————————————————————
:borders rdf:type owl:ObjectProperty,
owl:SymmetricProperty;
rdfs:domain :AdministrativeDivision;
rdfs:range :AdministrativeDivision;
owl:propertyChainAxion (:hasBoundary
:boundaryOf
)
————————————————————————————
在travel本体中一个名为boarders的对象属性有两个名为AdministrativeDivision的实例。关于这个属性对象下面的一些特点是在RDFS中没有的:

  1. 一个属性是owl:SymmetricProperty,则表明如果一个实体a boarders 实体b,并且实体b也boarders实体a
  2. 一个属性是owl:propertyChainAxion,则表明他有两个属性分别是hasBoundary和boundaryOf,意思是a有边界b,b是c的边界,因此a在c之中

根据这些例子,OWL注释可以用来掩饰一些隐藏信息,例如,从hasBoundary和boundaryOf这个关系链中,OWL则允许隐藏了boarders关系。然而,由于OWL2提供了纯粹的表达能力,这样的推理不可能总是在有限的时间内执行,而不限制OWL2模式词汇表的使用,这种限制可以通过组合OWL2文件来实现,这些文件的语法对应于一个可计算决定的逻辑。

为此引入了OWL2 DL语法,其中DL表示描述逻辑。描述逻辑(DL)是一个形式化的知识表示,并且用一些概念(一元谓词)、角色(二元谓词)描述了谈话领域。DLs有不同的方言,他们在谓词的构造和使用方面各不相同,例如,由最具表达性和决策性的DLs开发的SROIQ。
在一个实体中,典型的推理服务如下表:

推理服务 解释
实体一致性检查 检查实体是否有矛盾
分类 计算两个类之间的OWL:subClassOf关系
实现方式 计算两个类之间的RDF:type关系
检查类的适应性 检查一个类是否能拥有实例
隐含的公理检查 确定从一个实体中是否能推断出一个公理
结合序列回答 回答对本体的查询

2.1.2 SPARQL

SPARQL是RDF和OWL的查询语言,虽然只是显式地抽取已有的信息,没有任何的推理,但是可以和RDF schema,OWL一起发挥更大的作用。

SPARQL Update
SPARQL的Update语言支持创建、更新以及删除RDF图。关键词WITH可以用来选择想要操作的图,CREATE用来创建一个新的图,DROP用来删除特定的图,CLEAR用来删除图中的三元组,COPY用来将一个图中的数据插入到另一个图中,MOVE用来将一个图中的数据移动到另一个图中,LOAD用来根据IRI读取RDF数据,并将三元组插入到指定的图中。

2.2 本体和词汇

一些标准的词汇

为了加速知识图谱的发展进程以及留存一些资源,我们需要去重复的使用一些已经存在的词汇。最基本的思想就是去重复使用一些词,并且能够重复应用一些已经有了的工作。下面这个部分将介绍一些知名的词汇,能够代表一个知识图谱的信息。
组织本体
组织本体支持很多领域建立一些组织性的信息,本体提供了一些属于来表示:

  • 包括以下内容的组织结构:(1)组织的概念,(2)分解为一些子组织或者单元,(3)组织的目的以及分类
  • 报告的结构包括:(1)一个组织内的成员以及报告结构,(2)角色、职位以及人与组织间的关系
  • 本地的一些信息,包括地点、建筑物或风景等
  • 组织的历史,包括其出现以及更名

GoodRelations
GoodRelations是一个电子商务的本体,定义了一些术语,描述了产品、价格以及公司的数据,并且定义了一个数据结构:

  • 行业中性,这个适用于一些消费电子产品,汽车,门票,房地产,劳动力,服务以及其他类型的产品
  • 适用于价值链不同阶段,从原材料到零售的售后服务
  • 语法中性,能够在RDFa,Turtle,JSON或者其他的一些语法下起作用

表示电子商务领域的主要的组成本体为:

  • 一个代理人,可以是一个人或者一个组织
  • 一个对象,可以是一个录像机,房子,车等;或者一个服务,如理发等
  • 一份许诺或者offer,将一些权利转换为物质,或者是给特定的服务以补偿
  • 对这个offer生效的地点

GoodRelations是一个提供给人们各种商品信息的一般的模型,并且给人们所期望的补偿与条件。
Data Cube Vocabulary
Friend-of-a-Friend(FOAF)

2.2.2 schema.org

schema.org是一个术语的集合,用来标记HTML页面,提升搜索结果的展示。这个共享的标记词是的Web使用者能够确定一个标记模式,以及从中获得最大利益。这个数据模型用途非常广泛,并且来自于RDF关系。schema.org有一系列的类型,在多个继承层次结构中排列,其中每个类型都可以是多个类型的子类。更多的,这里有一些关于属性的说明:

  • 每个属性都可以有一个或者多个类型作为其领域,并且属性可能被当成任何类型的实例使用
  • 每个属性可以有一个或者多个类型作为其范围,并且这个属性的值至少在其中一个类型上成为一个实例

2.3 数据提升标准

在许多大型的组织中,数据或知识可能采用各种格式,如关系数据库、Web页面,文档、事物日志等。要使这些信息在组织的知识图谱中可以被访问,需要将它们从当前的表示形式转换为知识表示的格式。在我们的场景中,它是RDF数据模型。转换过程称为数据提升,这意味着转换不仅是从一种格式到另一种格式的转换,而且是将信息从数据层“提升”到及其可读的“知识层”。

有多种方法可以执行数据提升。例如,从自然语言文本或者Web页面中提取知识,有命名实体识别、信息提取、概念挖掘、文本挖掘等方法。开源或者商业许可中都有许多工具或库,如GATE,OpenNLP和RapidMine

在本节中,我们特别关注数据提升的两个W3C标准,即RDB2RDF和GRDDL。这两个标准涵盖了从结构化或非结构化遗留数据中提取的数据,他们可能是大型组织中最重要的数据格式。RDB2RDF指定如何将关系数据转换成RDF格式,GRDDL定义了将XML数据转换成RDF的标准的方法。

2.3.1 RDB2RDF

如果你正打算构建大型的知识图谱,或者只是想享受开源数据带来的好处(例如,成熟的推理或者数据集成的生态系统),那么你可能需要将关系型数据库中的旧数据转换为链接数据的形式,例如:RDF或者OWL。在这种情况下,我们有一个好消息,那就是你不必从头开始,因为有一个“标准”的方法。更好的是,你还可以找到一些有用的工具来为你的工作加速,在本小节中,我们将介绍W3C关于将关系数据库转换为RDF格式的建议,以及在此任务中有用的工具列表。

2012年,RDB2RDF W3C工作组发布了两条建议,以标准化将关系数据和关系数据库模式映射为RDF和OWL的语言。这两个建议是针对将关系数据转换为RDF数据的两个典型场景设计的。

第一个建议是“关系数据到RDF的直接映射”。如果你更喜欢快速转换,并且你的关系型数据库足够的好(例如定义良好的主键,以及外键,有意义的表名和列名等),那么直接映射可能是一个不错的选择。在这种情况下,唯一的输入是数据库(数据和模式),输出是数据的RDF版本,它很简单,但是对转换设置没有太多的控制。

第二个建议是“R2RML:RDB到RDF映射语言”。使用R2RML,你可以自定义映射,并且根据你的设计生成RDF数据。例如,如果你想通过重用一些流行词汇表或者预定义的领域本体来生成RDF数据,那么你可以选择R2RML。下表中给出了在这两个规范之间进行选择的一些可能的考虑因素:

考虑因素 直接映射 R2RML
自动匹配 Y N
自定义的词汇表 N Y
自定义的URI N Y
extraction-transform-load N Y
示例场景 LOD Publish Data Integration

直接映射的输入仅是数据库(包括数据和关系定义),输出是转化的RDF数据。直接映射规范本质上是一种实现自动转换的算法。现在我们来介绍在样本数据库上进行转换过程的主要步骤。

在直接映射中,转换以实体为中心的方式处理,具体的说,每一个数据行都被视为实体的一组三元组。因此第一步是从每个数据行标识实体(RDF资源),根据主键的存在,在为数据行生成RDF资源时将考虑两种情况。

Project_Id Name Description Leader_Id
6 K-Drive K-Drive is an EU IAPP 12

当表有主键时,将会给句表中的每一行生成URL资源,例如在上一个Project_Id的例子中,将会生成一个 http://abc.org/DB/Project/Project_Id=6

第二个情况是对没有定义主键的表,在这种情况下,将为每个表的行定义一个空白节点。对于第一行可以生成一个空白节点,并且设定一个ID作为中心实体的内部ID。没有定义对于生成空白节点的特定的语法,只要ID唯一,则有效。

在为数据行生成RDF资源之后,下一步是将数据行转换为描述新生成资源的RDF三元组。生成的第一个三元组是一个assertion类型。这个三元组只是指定数据行资源是其表类(由表生成的类)的一个实例。例如,我们可以让项目表的第一个assertion类型为< DB:Project/Project Id =6, rdf:type. DB: Project >其中DB表示前面提到的base URL。

除了这个assertion类型以外,还需要将数据行的所有列值转换为三元组。根据表模式定义,可以生成两种类型的三元组。第一种类型是数据值三元组,对象是文本值,它们由列生成,并且不涉及任何的外键。

对于这些外键的列,生成的三元组将是关系型的,这意味着它们的对象要么是URL资源,要么是空白节点。还是上述这个例子,K-Drive数据行的name值将产生一个三元组:<DB: Project/Project_Id = 6,DB: Project#Name, “K-Drive”>

Developer_Id Name Email Homepage
12 Jeff jeff.z.pan@… NULL

另一种类型的列是外键列,例如在Project这个表中的Leader_Id列是Developer表中的Developer_Id的外键,因此在转换过程中是如何在三元组中获取对象的RDF资源。假设一个外键引用另一个数据行(通常在另一个表中),那么由外键列表示的实体应该相应的从引用的数据行生成,在找到引用的数据行之后,可以使用在GETRowRES函数中引入相同的逻辑来生成RDF资源。因此,这个例子最后生成的三元组为: < DB:Project/Project_Id=6,DB:Proiect#ref-Leader Id,DB:Developer/Developer Id =12>

RDB2RDF Mapping Language

上述的三个例子都需要一种直接映射所不能提供的定制转换,第一个例子需要定制RDF资源生成,第二个例子需要定制映射,第三个例子则需要提取部分数据进行转换。所有这些需求对应于RDB2RDF映射语言的主要构造如下:

  • Term Maps 在RDB2RDF规范中,RDF术语用于表示IRI,空白节点和文本所有类型的RDF资源。其本质上是一个能够从数据行生成定制术语的函数,这使得重用一些领域的本体成为可能
  • Logical Table 顾名思义,它是由“真实”表构造而成的虚拟表,这个表支持在执行三重转换之前进行定制的数据提取,这符合我们第三个例子的要求。这个映射机制是为能够制定如何使用三元组而设计的
  • Triple Maps 是从数据行生成的,支持定制映射,从而能够解决第二个例子中的问题。

RDB2RDF 工具
有一些简单的工具:

  • Morph-RDB
  • D2RQ Platform
  • Virtuoso

2.3.2 GRDDL

数据除了存储在关系数据库中,也可以存储为其他的格式。例如,零售商的采购订单会以XML格式编码,传感器捕获的数据也会使用XML语法,或者相关信息只是作为Web页面(XHTML)在Web上发布。尽管这些数据都存储在XML中,但他们的语法和语义可能完全不同,这阻碍了融合成为知识图谱的进程。

为了在知识图谱中使用所有这些不同的XML数据源,你可能会希望将它们转换为RDF表示。本质上,这是一个将数据从一种XML格式转换为另一种XML格式的过程,虽然这种转换并不复杂,但是在此过程中需要考虑到许多因素,例如,如何指定是否是为XML资源提供的转换;如果是,转换的算法是什么,以及如何制定算法的位置。不同的问题会有不同的解决方法。如果没有统一的方法,解决问题的特异性可能会成为数据融合另一个阻碍。好消息是,有一个W3C的推荐标准GRDDL,他可以提供一种将XML语言派生成资源描述(RDF)的标准方法。

基本上,GRDDL指定的是一种标准化的方法,用于声明XML文档是否包含于RDF兼容的信息,以及(如果包含)转换的算法在哪里。尽管实现这种该转换算法的解决方案有很多,但最常见的方法是使用W3C的标准之一,即XSLT——XML的转换语言。GRDDL对通用XML文档和XHTML以及Web页面而言都是约束标准。此外,它还允许在XML名称空间文档和XHTML概要文件的“元文档”中指定可以收集的数据,这可是使得规范能应用在于元文档关联的每个文档之中。

2.4 知识图谱和关联数据

在许多文献中,RDF数据集,关联数据和知识图谱经常在相同的上下文中提到。澄清这一术语并强调这三个相关概念之间的主要区别是很重要的。当我们讨论RDF数据集时,我们指的是数据以及RDF各式表示的数据集合,即在由主题、谓词和对象组成的关系结构中,前两个是标识符(URIs),而后一个是标识符或一个值。对于链接数据,我们指的是多个RDF数据集,它们彼此独立地开发、维护和分布,但又相互连接。交叉链接可能来自于在不同的数据集中引用具有相同的URIs的个体,也可能由绘图映射进行补充,例如:owl:sameAs谓词。

知识图谱是一种结构化的数据集,它与RDF数据模型兼容,并且有一个(OWL)本体作为它的模式。知识图谱与外部的知识图谱没有必然的联系,然而知识图谱中的实体通常具有在本体中定义的类型信息,这对于提供关于这些实体的上下文信息非常有用。知识图谱被期望是可靠的、高质量、可访问的,并且提供面向最终用户的信息服务。

2.5 知识图谱中的网页搜索以及企业知识图谱

作为一个商品,谷歌知识图谱作为一个知识库,通过语义搜索信息,用来提升谷歌搜索引擎的结果,在2012年5月十分流行。在这个部分中,我们探讨了知识图谱的Web搜索和企业的知识图谱,并且将其进行了一个对比。

知识图谱中的网页搜索

谷歌知识图谱关于这一话题提供了一个简短的摘要,以及常用的列表链接,这些链接到了其他的网站以备份所有最可能的查询主题。

它主要基于两种技术:一种是具有简单的类型层次结构的本体,另一种是用于数据收集和集成的流程。在前面的schema.org中在一个大约有700个类型的层次结构中提供了一个共享的词汇集合,这个集合被页面构造者用来标记他们的页面,以至于页面可以被理解以及被搜索引擎解码。

另外一种是数据收集,涉及到网络规模的分布式数据注释活动。这些活动基于开放的百科全书资源,根据谷歌知识图谱所提供的APIs。截止到2015年6月,所使用的百科全书包括CIA World Factbook,是一本年鉴式的世界各国的参考资源;维基百科,是一个著名的免费访问和免费内容的互联网百科全书;Freebase,是一个关于公共信息(例如知名人士,地点和事物)的结构化数据,并为用户提供对其Web页面进行注释的API;Wikidata等。

企业知识图谱

管理多种类型的企业知识是IT行业最相关的业务之一。通常是通过数据基础设施、开发工作的应用程序、管理数据获取流程来实现的。关系数据库管理系统以及数据集成和存储平台是行业知识图谱的基础。

它为以更有效、更强大的方式实现各种企业知识图谱提供了范例和平台。对于企业知识来说,实现知识图谱意味着实现其体系结构并支持知识获取和维护的过程。

首先,组织可以为他们的业务提供统一的知识模式(本体),并将其沿着公司的分支进行传播。这些本体可以再现有业务词汇表和行业模型的基础上构建,并且很容易遵循业务演化。这有助于采用共享企业的概念模型,因此防止相同业务实体异构模式的扩散,这是大型业务组织中信息管理效率低下的主要原因之一。

对于Web页面上的单一业务实体和消费者,企业可以利用结构化的组织流程,并使用受控的信息源集合(如数据仓库系统)进行工作。与传统的企业信息管理流程一样,知识图谱需要整合不同分支和业务单元独立生成的数据集到集中存储库中进行后续的使用。然而,使用固定布局(如RDF三元组)编码的数据集,并且基于单个共享模式,极大地促进了集成和数据质量保证。

在分布和独立的源中创建集中的知识是语义Web工作中的主要挑战之一。即使大型组织在不同的上下文中以不同的方式解释概念和事实,在企业级别上解决这些认知问题似乎也更容易。

综上所述,我们认识到Web搜索知识图谱汇总的嵌入的知识、模式或本体是更通用,更简单的知识,而企业知识图谱则是更加特定于领域的。此外,我们注意到,对于一个Web规模的搜索任务,由于数据维护和计算成本高昂,显然很难应用一种更具表达性的知识表示语言。但在企业规模的知识图谱应用程序中,这不是一个大的问题,还要考虑到数据和知识获取。控制网络规模注释质量越来越困难,但是企业数据的获取却更加容易,因此企业知识图谱也更加的可靠。

猜你喜欢

转载自blog.csdn.net/weixin_42864175/article/details/85853437