文章目录
一、早期知识表示简介1、概述2、知识分类3、早期知识表示方法(1)一阶谓词逻辑(First-Order Logic)(2)产生式规则(Production Rule)(3)框架(Framework)(4)语义网络(Semantic Network)二、基于语义网的知识表示框架1、语义网(Semantic Web)2、RDF(1)RDF概念(2)基本示例(3)RDF空白节点(Black Nodes)(4)RDF是数据类型,不是序列化格式(5)开放世界假设(6)分布式的定义与合并知识(7)变种:带标注RDF3、RDF Schema(RDFS)(1)概述(2)具体(3)基于RDFS的推理4、OWL和OWL2(1)OWL简述(2)OWL词汇(3)OWL25、SPARQL简介6、JSON-LD 、RDFa、 HTML5 MicroData等新型知识表示(1)JSON-LD(2)RDFa(3)HTML5 Microdata7、`RDF+SPARQL` vs. `ER+SQL`三、典型知识库项目的知识表示1、各种知识图谱项目2、知识表示:多元关系3、实用的知识表示四、基于本体工具的知识建模实践一、早期知识表示简介
1、概述
人类心智区别于其它物种心智的重要特征:具有获取、表示和处理知识的能力。
知识表示是一种为了让计算机可以接受的用于描述知识的数据结构。它是机器通往智能的基础,使得机器可以像人一样运用知识。特别是常识知识才能实现真正类人的智能
知识的特点:相对正确性、不确定性、可表示性以及可利用性。
2、知识分类
按作用范围分类:常识性知识、领域性知识;按作用及表示分类:事实性知识、过程性知识、控制知识;按确定性分类:确定性知识、不确定性知识;按结构及表现形式分类:逻辑性知识、形象性知识;3、早期知识表示方法
一阶谓词逻辑(First-Order Logic)产生式规则(Production Rule)——专家系统框架(Framework)语义网络(Semantic Network)——以网络的方式来描述概念之间的语义关系逻辑程序(Logic Programming)缺省逻辑(Default Logic)模态逻辑(Modal Logic)(1)一阶谓词逻辑(First-Order Logic)
Horn逻辑:一阶谓词逻辑的子集
原子 Atom
p(t1,t2,...,tn)p(t_1,t_2,...,t_n)p(t1,t2,...,tn)
其中,ppp是谓词,nnn是目,tit_iti是项(变量或常量),eg:has_child(Helen, Jack)
规则 Rules——由原子构建:
H:−B1,B2,...,Bm.H:-B_1,B_2,...,B_m.H:−B1,B2,...,Bm.
H与B1,B2,...,BmH与B_1,B_2,...,B_mH与B1,B2,...,Bm是原子,HHH是头部原子,B1,B2,...,BmB_1,B_2,...,B_mB1,B2,...,Bm是体部原子,eg:has_child(X,Y):-has_son(X,Y)
事实——没有体部且没有变量的规则:
F(v1,v2,...,vn):−haschild(Helen,Jack):−F(v_1,v_2,...,v_n):- \\has_child(Helen, Jack):-F(v1,v2,...,vn):−haschild(Helen,Jack):−
描述逻辑:一阶谓词逻辑的可判定子集。用于描述概念、属性,为术语知识库的构建提供便捷的表达形式。
(2)产生式规则(Production Rule)
早起的专家系统多数是基于产生式系统的。以IF-THEN
的形式,即产生式规则表示出来的。
产生式模型:
P→QorIFPTHENQCF=[0,1]P→Q \ \ \ or \\ \begin{aligned} IF\quad P\quad THEN\quad Q \quad CF = [0, 1]\end{aligned}P→QorIFPTHENQCF=[0,1]
其中,PPP 是产生式的前提,QQQ 是一组结论或操作,CF(CertaintyFactor)CF (Certainty Factor)CF(CertaintyFactor) 为确定性因子,也称置信度。
特点:
优点:自然型好,易于模块化管理、能有效表示知识、知识表示清晰等;缺点:效率不高、不能表达具有结构性的知识等。
(3)框架(Framework)
基本组成:
示例:
利用上述框架在知识库中匹配得到实例(对框架进行填充可得)。
(4)语义网络(Semantic Network)
基本形式:(节点1, 弧, 节点2)
节点:表示各种事物、概念、情况、属性、动作、状态等,每个节点可以带有若干属性,一般用框架或元组表示。此外节点还可以是一个语义子网络,形成一个多层次的嵌套结构。弧:表示各种语义联系,指明它所连接的节点间某种语义关系。节点和弧都必须带有标示,来方便区分不同对象以及对象间各种不同的语义联系。
特点:
优点:结构性、联想性、自然性;缺点:非严格性、处理上的复杂性
示例:eg:“每个学生都读过一本书”
谓词逻辑表示:(∀s)学生(s)(∃b)书(b)[读过(s,b)](\forall s)学生(s)(\exists b)书(b)[读过(s,b)](∀s)学生(s)(∃b)书(b)[读过(s,b)]语义网络表示:本质:将逻辑运算和逻辑项都映射为图中的元素。
二、基于语义网的知识表示框架
1、语义网(Semantic Web)
知识图谱中最关键的技术:RDF、SPARQL
下图为W3C推荐的语义网标准栈,其中RDF和SPARQL为网络数据链接部分。与此同时,W3C还推出五星级标准,规定了RDF为标准数据格式,URI标准为事物命名等规范。
2、RDF
(1)RDF概念
RDF:Resource Description Framework(资源描述框架)
Resource:页面、图片、视频等任何具有URI标识符; URI://mypath//myresourceDescription:属性、特征和资源之间的关系;Framework:模型、语言和这些描述的语法。
在RDF中,知识总是以三元组(triple)模型形式出现的,即每一份知识可以被分解为如下形式:
(subject(主), predicate(谓), object(宾))
,同时在RDF中资源和属性都可以被URI唯一标识。
(2)基本示例
示例1:CCF ADL邀请王昊奋作为讲者,演讲主题是知识图谱。
RDF形式:
(CCF ADL, speaker, Haofen)(CCF ADL, theme, KG)
图模型形式:(vertex, edge, vertex) 下面左图为利用URI表示的结果,右图为利用命名空间定义前缀的结果。
示例2:RDF中的属性值同时也可以是一个文字,如字符串/数值或XML datatype类型。(它们不是一个Resource)。
左图:CCF ADL邀请王昊奋作为讲者,演讲主题是知识图谱。
,此处知识图谱为字符串。右图:CCF ADL has one speaker Haofen and last 3 hours.
,其中"3"后面为其类型约束,即整型。
(3)RDF空白节点(Black Nodes)
空白节点:
RDF允许空白节点;一个资源可以是匿名的;即不被URI标识,并标识为_:xyz
eg:Haofen是某一次KG讲座的讲者(并不关心是什么讲座)
(4)RDF是数据类型,不是序列化格式
RDF序列化格式之间的关联:
RDF/XML格式:适合小数据的存储与交换
<rdf:RDFxmlns:ex-schema=/schema#><rdf:Description rdf:about="/ccf_adl"><ex-schema:speaker rdf:resource="/haofen"/><ex-schema:theme rdf:resource="/KG"/></rdf:Description></rdf:RDF>
N-Triples格式
</ccf_adl></schema#speaker></haofen>.</ccf_adl></schema#theme></KG>.
Turtle格式
@prefix ex:<>.@prefix ex-schema:</schema#>ex:ccf_adlex-schema:speaker ex:haofen;ex-schema:theme ex:KG.
(5)开放世界假设
RDF 是 开放世界假设;
封闭世界假设:没有定义则认为不存在。开放世界假设:eg:(CCF ADL, speaker, Haofen)
封闭世界假设==》CCF ADL讲座只有一位讲者;开放世界假设==》CCF ADL讲座至少有一位讲者;
(6)分布式的定义与合并知识
RDF允许分布式地定义知识分布式定义的知识可以自动合并若分布式存储ex:haofen
的URI不一致,如何融合??
(7)变种:带标注RDF
动机:如何扩展 RDF 用来表达更多信息
时间、不确定性、空间、信任等==》带标注 RDF(S) ==》知识库:YAGO2
YAGO2:采用 annotated RDF 表示的知识库
语法形式:(s,p,o):λ(s, p, o):\lambda(s,p,o):λ λ\lambdaλ 是一个标志eg:(特朗普,就职,总统):1月
3、RDF Schema(RDFS)
(1)概述
RDFS在RDF基础上提供了一个术语、概念等的定义方式,以及哪些属性可以应用到哪些对象上。换句话说,RDFS为RDF模型提供了一个基本的类型系统。
示例:三元组表示用户自定义的元数据Author是Dublin Core的元数据Creator的子类。
</Author><rdfs: subClassOf > <http://purlorg/dc/elements/1.0/Creator>.
作用:RDFS通过这样的方式来描述不同词汇集的元数据之间的关系,为网络上统一格式的元数据交换提供便利。
(2)具体
RDF定义了如下几种词汇:
Class、subClass、type、Property、subPropertyOf、Domain、Range
示例:
图中,data层
是对schema层
的实例化,是由数据驱动的。
(3)基于RDFS的推理
基于data层
和schema层
可进行推理,如上下位的推理(如subClass
),类别的判断等。
示例:
4、OWL和OWL2
RDF是有一定的表达缺陷,RDF不能表达复杂类。
(1)OWL简述
OWL Web Ontology Language包含三个子语言:OWL Lite、OWL DL、WOL Full。
(2)OWL词汇
等价性传递性
exp
是命名空间的别称。
属性相反
exp:ancestor
是一个传递关系exp:小明 exp:ancestor exp:小林; exp:小林 exp:ancestor exp:小志
那么根据上述声明,有
exp:小明 exp:ancestor exp:小志
属性函数性
exp:ancestor
与exp:descendant
是互反关系eg:
exp:小明 exp:ancestor exp:小林
,那么有exp:小林 exp:descendant exp:小明
属性对称性
exp:hasMother
是一个具有函数性的属性(只有一个);因为每个人只有一个母亲。
属性的局部约束:全称限定
exp:小明 exp:friend exp:小林
,那么有exp:小林 exp:friend exp:小明
属性的局部约束:存在限定
exp:hasMother
在主语属于exp:Person类
的时候,宾语的取值只能来自exp:Women
这个类。
属性的局部约束:基数限定exp:publishedIn在主语属于exp:SemanticWebPaper类的时候,宾语的取值部分来自exp:AAAI这个类。上面的三元组相当于:关于语义网的论文部分发表在AAAI上。
声明相交的类exp:hasMother在主语属于exp:Person类的时候,宾语的取值只能有一个;“1”的数据类型被声明为xsd:integer;这是基数约束,本质上属于属性的局部约束。
OWL其他词汇_tmp是临时资源;它是rdfs:Collection类型,是一个容器;它的两个成员是exp:Person,exp:HasChildren;上述三元组说明exp:Mother是exp:Person,exp:HasChildren这两个类的交集。
(3)OWL2
OWL2 定义了一些 OWL 的子语言,通过限制语法使用,使得这些子语句能够更方便地实现,以及服务于不同的应用。
OWL2的三大子语言:
OWL2 RL、OWL2 QL、OWL2 EL,家族树如下:
5、SPARQL简介
SPARQL 是 RDF的查询语言(i.e.基于RDF数据模型),可以针对不同的数据集撰写复杂的连接,它支持主流的图数据库。
SPARQL查询的基本构成:
变量,RDF中的资源,以?
或者$
来表示;三元组模板 (triple pattern), 在WHERE子句
中列示关联的三元组模板;之所以称之为模板,因为三元组中允许变量;SELECT子句
中指示要查询的目标变量。
# prefix declarations:for abbreviating URIsPREFIX foo: </resources/>...# dataset defintion, stating what RDF graph(s) are being queriedFROM ...# result clause:identifying what information to return from the querySELECT ...# query pattern:WHERE {...}# query modifiers:slicing, ordering, and otherwise rearranging query resultsORDER BY ...
示例1:查询学生姓名、选修课程,以及他们的年龄;若有年龄,则年龄必须大于25岁。
涉及 OPTIONAL关键字、FILTER关键字
## 命名空间声明PREFIX exp: /SELECT ?module ?name ?ageWHERE {?student exp:studies ?module .?student foaf:name ?name .OPTIONAL {?student exp:age ?age .FILTER (?age > 25)}}
示例2:查询选修课程CS328或CS909的学生姓名以及邮箱,涉及 UNION关键字。
SELECT ?student ?emailWHERE {?student foaf:mbox ?email .{?student exp:studies CS328}UNION {?student exp:studies CS909}}
注意:此处邮箱为必返回项,若没有邮箱值,则不返回该记录,注意与OPTIONAL区别。
示例3:查询选修课CS909的学生姓名以及邮箱和住址,涉及 FROM关键字,引入其他本体或可访问的知识库。
SELECT ?student ?email ?homeFROM <http://www2.warwick.ac.uk/rdf/student>WHERE {?student exp:studies CS909 .OPTIONAL {?student foaf:mbox ?email .?student foaf:homepage ?home .}}
SPARQL查询语言与SQL很相似,定义了OPTIONAL
、FILTER
、UNION
、FROM
等关键字,同时它支持嵌套查询,基于规则的查询.
6、JSON-LD 、RDFa、 HTML5 MicroData等新型知识表示
(1)JSON-LD
JSON-LD(JavaScript Object Notation for Linked Data),是一种基于JSON表示和传输互联数据 (Linked Data)的方法。
JSON-LD描述了如何通过JSON表示有向图,以及如何在一个文档中混合表示互联数据及非互联数据。JSON-LD的语法和JSON兼容。
示例:
一个JSON文本
// 表示一个人,具有名字、主页、照片{"name": "Manu Sporny", "homepage": "/", "image": "/images/manu.PNG"}
对应的JSON-LD文件:通过引入规范的术语表示,eg:统一化表示"name","homepage"和"image"的URI,使得数据交换和机器理解成为基础。
{"/name": "Manu Sporny", "/url": {"@id":"/" }, "/image": {"@id":"/images/manu.PNG" }}
(2)RDFa
RDFa(Resource Description Framework in attributes)是网页标记语言,它扩充了XHTML的几个属性,网页制作者可以利用这些属性在网页中添加可供机器读取的资源,与RDF的对应关系使得RDFa可以将RDF的三元组嵌入在XHTML文档中,它也使得符合标准的使用端可以从RDFa文件中提取出这些RDF三元组来。
RDFa工作原理:
通过引入命名空间的方法在已有的标签中加入RDFa相应的属性来使得支持RDFa技术的浏览器或者搜索引擎可以解析到,从而达到优化的目的。
<div xmlns:dc="/dc/elements/1.1/" about="/books/wikinomics"><span property="dc:title">Wikinomics</span><span property="dc:creator">Mr right</span><span property="dc:date">-09-02</span></div>
分析:上面的代码示例中用到了RDFa属性中的about属性
和property属性
,这段代码示例说明了一篇文章,然后描述了和这篇文章相关的信息,比如说标题,创建者和创建日期,而这些属性就可以使得支持RDFa的机器识别。
(3)HTML5 Microdata
Microdata微数据,是在网页标记标记语言嵌入机器可读的属性数据;微数据使用可以来自自定义词汇表、带作用域的键/值对给DOM做标记;用户可以自定义微数据词汇表,在自己的网页中嵌入自定义的属性;微数据是给那些已经在页面上可见的数据施加额外的语义。当HTML的词汇不够用时,使用微数据可以取得较好的效果。示例:便于浏览器从网页上提取微数据实体、属性以及属性值。
7、RDF+SPARQL
vs.ER+SQL
RDF:关系显示定义(语义存在于数据中)——数据变更较为方便(图增加边更为方便),易于推理。
ER:关系隐式声明(语义存在于人脑中)——数据变更时,需要添加新表并修改原来的SQL语句。
数据的智能性
ER+SQL:Dumb Data->Smart Application CodeRDF+SPARQL:Smart Data->Uniform Inference Engine
三、典型知识库项目的知识表示
1、各种知识图谱项目
2、知识表示:多元关系
3、实用的知识表示
实用的知识表示的特点:
接近人的自然语言:好的KG是同时为机器和人设计的;够用的表达能力:够用就好,不必苛求逻辑完备;易于扩展:能够非常方便的增加新的类、实体和关系。
现状:RDF/OWL只是众多知识表示框架的一种,不少商业化的KG并未采用该框架,物理存储也是直接采用关系数据库实现,但基本表达要素都可在RDF/OWL中找到对应。
四、基于本体工具的知识建模实践
基于Protege本体工具的知识建模实践