【知识图谱】(二)知识图谱基础之RDF和RDFS

第二章知识图谱基础

2.1知识表示和其查询语言

知识表示和知识推理是人工智能领域中致力于表示世界上各种信息的技术,有了这项技术,计算机在解决一个复杂任务时可以根据相关知识来依靠自动推理作为辅助决策。知识图谱可以被视为语义网络的现代版本。

2.1.1RDF和RDFS

在这部分,我们会介绍RDF(ResourceDescription Framework)和RDFS(RDF Schema)。就像1.1中说的那样,RDF是现在语义网络的标准。RDFS是RDF知识图谱的模式语言。在2.1.2节,我们将介绍另一个标准OWL,它为知识图谱提供更全面的模式语言。

RDF

RDF是W3C的推荐标准,用来描述实体,我们可以使用它来区分任何事情,比如一个人,一个主页或者是权力的游戏中的那只龙。

RDF三元组和图

在RDF中,资源被描述为三元组([subject predicate object ])。

        

一个RDF图由一系列三元组组成。可以使用节点和边来可视化,每一个三元组被表示为节点-边-节点。在RDF中有三种类型的节点:国际资源定位符(Internationalised Resource Identifiers),也称IRIs,还有字面量空节点。在RDF三元组中,

•主语subject可以是IRI或者空节点

•谓语predicate只能是IRI

•宾语object可以是IRI,字面量或者是空节点

       RDF图中的IRI可以唯一界定一个资源,IRI是更一般化的URIs(UniformResources Identifiers),它允许使用更多的符号。

         字面量Literals可以取值为字符串,数字或者日期。

         空节点则取一个占位符的作用,它表示一个没有指明IRI或者字面量的资源,也成匿名资源。它仅仅表示一个事物的存在。

下图所示为只有一个三元组的知识图谱,其主语和谓语都是IRI,宾语是一个字面量。


这个三元组表示Bolivia的long name是Plurinational State of Bolivia。

         IRIs通常以一个命名空间做开头,一些命名空间为了方便表示会和一些更短的前缀关联:

prefixdbpedia: http:// dbpedia.org/resource/

prefixdbpedia -owl: http:// dbpedia.org/ontology/

prefixxsd: http://www.w3.org/2001/ XMLSchema#

这样我们使用前缀表示IRI就更加方便:


         和典型的语义网络不一样的地方在于,RDF有一些语言级别预定义的属性。比如rdf:type,它是用来对资源进行分类的。和语义网络中的is-a关系所对应。rdf:type使用如下图:

序列化RDF

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

         一个Turtle文档允许在压缩的文档格式写书RDF数据。如下图:

用前缀表示IRI:

多行字面量的表示:

表示数据类型的字面量,使用字符串^^datatypeURI的格式。

接下来我们来展示一些三元组的例子,三元组以“.”结尾。

但一个三元组中有多个宾语时,我们可以使用“,”来区分它们。

类似的,当三元组存在多个谓语时,我们可以使用“;”将多个谓语区分开。如下图,我们使用这种方法将两个三元组合并成一个三元组。

RDFS

RDFS为RDF提供了简单的模式语言,允许用户使用语言去rdfs:Class/property rdfs:Property预定义声明一个类或者属性,下图分别将org:Organization和org:hasHomePage声明为一个Class和一个property。

除此之外,RDFS提供rdfs:subClassOf,rdfs:subPropertyOf,rdfs:domain and rdfs:range来表示类和属性的依赖。

下图表示org:Strat-up是org: Organization的一个子类。

下图表示org:hasEnglishHomePage是org:hasHomePage的子属性。

下图表示org:hasHomePage这个谓语适用的主语范围是org: Organization。

下图表示org:hasHomePage的数据类型是字面量。

我们展示一个复杂点的添加了RDFS的RDF图:

将这个图谱使用Turtle序列化后如下图所示:

这里需要说明,RDFS作为一个模式语言,有很多局限性

1.      RDFS不提供否定功能,比如,我们可以说data:ESI表示一个组织,但我们不能够在RDF中表达data:ESI不是一个人。

2.      RDFS不能去定义类,比如我们不能使用RDFS说明org:SME到底指什么。

3.      虽然RDFS提供了模式级别的对齐,比如rdfs:subClassOf 和rdfs:subPropertyOf语言,但它不支持实例级别的对齐,比如它不能表示data:ESI和db:ESI其实是一种东西。

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

猜你喜欢

转载自blog.csdn.net/weixin_39837402/article/details/80031197