干货 | 初学者入门必看的“知识图谱”解读(上)

2019-09-17 17:26:39 浏览数 (1)

本文为 AI 研习社社区用户 @邹佳敏 的博客文章,其知乎专栏为:AI的怎怎,歪歪不喜欢。欢迎扫描底部社区名片访问 @邹佳敏 的主页,查看更多内容。

本系列参考了市面上已知的,几乎全部“知识图谱”相关文章,并总结提炼出一套适合初学者入门的“知识图谱”的知识体系,希望大家能有所收获。

一,知识图谱—盲人摸象

大家都说,自己在做知识图谱,但从不同人分享的PPT来看,讲述的重点都不一样,那知识图谱到底是什么?

二,语义网络 vs. 语义网

1,语义网络(Semantic Network)

Quillian在1968年提出的知识表达模式,其用相互连接的节点和边来表示知识。完全由用户自定义,无任何标准和规范,难以用于实践。

2,语义网(Semantic Web)

Tim.Lee在1998年提出的一个新概念,描述互联网中资源和数据之间的关系,使得互联网上的数据变得机器可读。常被用来指代一整套技术栈框架。

即,语义网是比语义网络更高级的概念,它提供了一整套规范和技术栈来解决实际问题。

三,语义网的技术栈

1,技术栈简介

(1)编码方式(UNICODE),资源标识符(URI):数据的编码方式和表示方式 (2)数据序列化方法(Syntax):数据的序列化方法,包括但不仅限于XML,N-Triples,Turtle,Json-LD (3)数据描述框架(RDF):数据模型,表示知识的一种方法和手段 (4)RDFs/OWL:工业标准,使用预定义的词汇,对RDF进行类和属性定义,即,Schema (5)RIF/SWRL:推理规则(Rule),使用预定义的规范,使基于RDFs和OWL描述的RDF数据,具有推理能力 (6)SPARSQL:基于RDF (RDFs/OWL: optional)的查询语言 (7)其他:Cryptography Logic Proof Trust:中间层概念,决定应用层如何确定数据的可靠,精确和值得信赖

2,技术栈详解

  • (1), URI和字面量

URI:类似URL,使用全局唯一的标识符来表示知识中的不同元素。比如,

http://www.kg.com/person/1: 表示人物(person)概念中id=1的某个人,

http://www.kg.com/ontology/fullName: 表示属性(ontology)中的fullName属性,

http://www.kg.com/ontology/hasBirthPlace: 表示属性(ontology)中的在"哪儿出生(hasBirthPlace)"的关系。

其中:http://www.kg.com是图谱id

字面量:"1976-09-18"^{}^{}date: 表示date类型的值

  • (2),RDF

一个用URI和字面量表示的三元组数据模型,即,任何知识都可以通过(subject, predicate, object)来拆解。

其中,subject和predicate只能是URI,而obeject可以是URI或字面量。当object是URI时,表示(实体,对象属性,实体),简称关系;当object是字面量时,表示(实体,数据属性,值),简称属性。

  • (3),XML-Syntax

RDF本质上只定义了知识的表示规范,但不同实现对应不同的序列化方法。类似,UNICODE是规范,UTF8,UTF16或UTF32是实现方式。

即,XML:基于XML的RDF表示;Json-LD:基于Json的RDF表示;N-Triples:基于三元组的RDF表示等等。比如,N-Triples的表示:

(3).1, (实体,关系属性,实体): <http://www.kg.com/person/1> <http://www.kg.com/ontology/hasBirthPlace> <http://www.kg.com/place/10086>.

(3).2, (实体,数据属性,值): <http://www.kg.com/person/1> <http://www.kg.com/ontology/fullName> "想飞的猫"^{}^{}string.

即,XML-Syntax可以理解为RDF的落地物理数据,类似存储在MySQL中某一行的数据

  • (4),RDFs/OWL

用概念(Class),对象属性(Object Property)和数据属性(Data Property)来分别表示实体,关系和数据。

比如,定义,Person表示"人物"概念,hasChild表示"父母"的对象属性,fullName表示"全名"的数据属性。

即,(RDFs/OWL)可以理解为RDF的业务字段定义,类似MySQL中对每个字段的定义:字段名,类型等,使RDF具有了真正的语义含义。

  • (5),RIF/SWRL

依附于OWL,它们是集成在OWL上,对概念和属性的约束和限定。它使OWL从此具备了语义推理能力,比如:

(5).1, A rdfs:subProperty B -> A是B的子属性,比如,A是对象属性"hasSon",B是对象属性"hasChild";

(5).2, A owl:TransitiveProperty -> A属性具有传递性,比如,A是对象属性“位于”;

(5).3, A owl:inverseOf B -> A属性与B属性具有相反性,比如,A是对象属性“父母”, B是对象属性子女;

(5).4,A owl:equivalentClass B -> 在融合不同的语义网时,如果2个网络都基于OWL,可以直接限定本体映射。比如,网络1用A(Human)表示人物,网络2用B(Person)表示人物。

  • (6),SPARQL

查询RDF数据模型的语言,基于(实体,对象属性,实体)和(实体,数据属性,值)的限定,匹配查询数据结果。

代码语言:javascript复制
SELECT ?n WHERE { 
 ?s rdf:type :Person. 
 ?s :personName '周星驰'. 
 ?s :hasActedIn ?o. 
 ?o :movieTitle ?n 
}

四,语义网的推理能力

使用语义网的推理能力,可以丰富和扩展不完备的缺失数据,甚至识别并判定错误关系或错误属性。

1,基于本体的推理:

RDFs/OWL是本体描述语言,所以,它们本身对概念和属性的约束和限定就构成了W3C规范里,自带的推理能力。比如:

2,基于规则的推理

用户自定义规则,使用第3方工具(Jena),基于已定义好的RDFs/OWL文件,根据业务需求,指定新的概念和属性,比如:

(1), ruleComedian:

(?p :hasActedIn ?m) (?m :hasGenre ?g) (?g :genreName '喜剧') -> (?p rdf:type :Comedian)

(2), ruleTranstive:

(?p :isLocated ?m) (?m :isLocated ?n) -> (?p :isLocated ?n)

3,基于学习的推理

基于语义网,使用机器/深度学习方法,自动发现普通人难以发掘的新的概念或属性,作为其他推理能力的扩充。比如: 图嵌入

0 人点赞