知识图谱表示

目录

 

早期知识图谱表示

知识分类

一阶谓词逻辑 (First-Order Logic)

Horn逻辑:一阶谓词逻辑的子集

描述逻辑:一阶谓词逻辑的可判定子集

产生式规则 (Production Rule)

框架 (Framework)

语义网络 (Semantic Network)

基于语义网的知识表示框架

RDF和RDFS

OWL和OWL2 Fragments

SPARQL查询语言

Json-LD、RDFa、HTML5 MicroData等新型知识表示

HTML5 Microdata

典型知识库项目的知识表示

多元关系-Freebase

多元关系-Wikidata

​ 多元关系-ConceptNet5

​ ​ ​

 

 

 

 

 

 

 

基于本体工具 (Protégé)的知识建模实践


早期知识图谱表示

  • 知识分类

  1. 常识性知识、领域性知识 (作用范围)

  2. 事实性知识、过程性知识、控制知识 (作用及表示)

  3. 确定性知识、不确定性知识 (确定性)

  4. 逻辑性知识、形象性知识 (结构及表现形式)

  • 一阶谓词逻辑 (First-Order Logic)

Horn逻辑:一阶谓词逻辑的子集

 表达形式简单,复杂度低;著名的Prolog语言就是基于Horn逻辑设计实现的。

Horn逻辑:一阶谓词逻辑的子集

 原子Atom

p(t 1 , t 2 ..., t n )

 p 是谓词,n是目,t i 是项(变量或者常量)

 例子: has_child(Helen, Jack)

 规则Rules 由原子构建:

H:– B 1 , B 2 , ..., B m .

 H与B 1 , B 2 , ..., B m 是原子

 H是头部原子

 B 1 , B 2 , ..., B m 是体部原子

has_child(X, Y) :- has_son(X, Y)

 事实是没有体部且没有变量的规则:

F (v 1 , v 2 , ..., v n ) :-

has_child(Helen, Jack) :-

描述逻辑:一阶谓词逻辑的可判定子集

 用于描述概念,属性;对于术语知识库的构建提供了便捷的表达形式。

描述逻辑系统概念和关系

 概念——解释为一个领域的子集

示例:学生,已婚者:

{x| Student(x) },{x| Married(x) }

 关系——解释为指该领域上的二元关系 (笛卡尔乘积)

示例:朋友,爱人:

{<x,y> | friend(x,y) } ,{<x,y> | loves(x,y) }

 个体——一个领域内的实例

示例:小明,小红:

{Ming, Hong}

描述逻辑的知识库O:=<T, A>,T即Tbox,A即Abox

 Tbox

Tbox包含内涵知识,描述概念的一般性质。由于概念之间存在包含关系,Tbox知识形成类似格的结构,这种数学结构是由包含关系决定的,与具体实现无关;

TBox语言

 定义: 引入概念以及关系的名称

Mother, Person, has_child

概念和概念,关系和概念之间可以组成更复杂的概念。

 包含:声明包含关系的公理

Mother ⊑ ∃ has_child.Person

描述逻辑的知识库O:=<T, A>,T即Tbox,A即Abox

Abox

Abox包含外延知识 (又称断言知识),描述论域中的特定个体。

ABox语言

 概念断言——表示一个对象是否属于某个概念

Mother(Helen), Person(Jack)

 关系断言——表示两个对象是否满足一定的关系

has_child(Helen, Jack)

  • 产生式规则 (Production Rule)

是一种更广泛意义的规则系统,和谓词逻辑有关联,也有区别;

 早期的专家系统多数是基于产生式系统:

Feigenbaum研制的化学分子结构专家系统DENDRAL

Shortliffe研制的的诊断感染性疾病的专家系统MYCIN

P  Q

IF P THEN Q CF = [0, 1]

 其中,P是产生式的前提,Q是一组结论或操作,CF (Certainty Factor)为确定性因子,也称置信度。

 谓词逻辑中的规则与产生式的基本形式相似,事实上,蕴涵式只是产生式的一种特殊情况。理由如下:

 谓词逻辑规则只能表示精确知识,其值非“真”即“假”,而产生式不仅可以表示精确知识,而且还可以表示不精确知识;

 用产生式表示知识的系统中,“事实”与产生式的“前提”中所规定的条件进行匹配时,可以是“精确匹配”,也可以是基于相似度的“不精确匹配”,只要相似度落入某个预先设定的范围内,即可认为匹配。但对谓词逻辑的规则而言,其匹配必须是精确的。

产生式例子

IF 本微生物的染色斑是革兰氏阴性

本微生物的形状呈杆状

病人是中间宿主

THEN 该微生物是绿脓杆菌,置信度为 CF=0.6

CF表示知识的强度,谓词逻辑中的规则不可以这样做。

产生式系统优点

 自然性:由于产生式系统采用了人类常用的表达因果关系的知识表示形式,既直观、自然,又便于进行推理。

 模块性:产生式系统中的规则形式相同,易于模块化管理。

 有效性:能表示确定性知识、不确定性知识、启发性知识、过程性知识等。

 清晰性:产生式有固定的格式,既便于规则设计,又易于对规则库中的知识进行一致性、完整性检测。

产生式系统缺点

 效率不高

产生式系统求解问题的过程是一个反复进行“匹配—冲突消解—执行”的过程。由于规则库一般都比较庞大,而匹配又是一件十分费时的工作,因此,其工作效率不高。此外,在求解复杂问题时容易引起组合爆炸。

 不能表达具有结构性的知识产生式系统对具有结构关系的知识无能为力,它不能把具有结构关系的事物间的区别与联系表示出来,因此,人们经常将它与其它知识表示方法(如框架表示法、语义网络表示法)相结合。

  • 框架 (Framework)

 框架理论的基本思想:认为人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中。

 当面临一个新事物时,就从记忆中找出一个合适的框架,并根据实际情况对其细节加以修改、补充,从而形成对当前事物的认识。

框架基本组成

 框架:是一种描述对象 (事物、事件或概念等)属性的数据结构,在框架理论中,框架是知识表示的基本单位。

 一个框架由若干个“槽” (Slot)结构组成,每个槽又可分为若干个“侧面”。

一个槽:用于描述所论对象某一方面的属性;

一个侧面:用于描述相应属性的一个方面。

 槽和侧面所具有的属性值分别称为槽值和侧面值。

<框架名>

槽名1:侧面名1 值1,值2,...,值p1

侧面名2 值1,值2,...,值p2

侧面名m1 值1,值2,...,值pm1

槽名n:侧面名1

约束: 约束条件1

约束条件n

框架的优缺点

 优点

框架对于知识的描述非常完整和全面;基于框架的知识库质量非常高;且框架允许数值计算,这一点优于其它知识表示语言;

 缺点

框架的构建成本非常高,对知识库的质量要求非常高;框架的表达形式不灵活,很难同其它形式的数据集相互关联使用。

  • 语义网络 (Semantic Network)

 1968年J.R.Quillian在其博士论文中最先提出语义网络,把它作为人类联想记忆的一个显式心理学模型,并在他设计的可教式语言理解器TLC (Teachable Language Comprehenden)中用作知识表示方法。

 语义网络的基本思想:在网络中,用“节点”代替概念,用节点间的“连接弧”(称为联想弧)代替概念之间的关系,因此,语义网络又称联想网络。它在形式上是一个带标识的有向图。由于所有的概念节点均通过联想弧彼此相连,Quillian希望他的语义网络能用于知识推导。

 语义网络中的节点:表示各种事物、概念、情况、属性、动作、状态等,每个节点可以带有若干属性,一般用框架或元组表示。此外,节点还可以是一个语义子网络,形成一个多层次的嵌套结构。

 语义网络中的弧:表示各种语义联系,指明它所连接的节点间某种语义关系。

 节点和弧都必须带有标识,以便区分各种不同对象以及对象间各种不同的语义联系。最简单的语义网络是一个三元组:

(节点1,弧,节点2)

语义网络优点

 结构性:语义网络是一种结构化的知识表示方法,它能把事物的属性以及事物间的各种语义联想显式地表示出来。

 联想性:它最初是作为人类联想记忆模型提出来的。

 自然性:直观地把事物的属性及其语义联系表示出来,便于理解,自然语言与语义网络的转换比较容易实现,故语义网络表示法在自然语言理解系统中的应用最为广泛。

语义网络缺点

 非严格性:与一阶谓词逻辑相比,语义网络没有公认的形式表示体系。一个给定的语义网络所表达的含义完全依赖于处理程序如何对它进行解释。通过推理网络而实现的推理不能保证其正确性。此外,目前采用的表示量词 (包括全称量词和存在量词)的语义网络表示法在逻辑上是不充分的,不能保证不存在二义性。

 处理上的复杂性:语义网络表示知识的手段多种多样,虽然灵活性很高,但同时也由于表示形式的不一致使得对其处理的复杂性提高,对知识的检索也就相对复杂,要求对网络的搜索要有强有力的组织原则。


 

基于语义网的知识表示框架

  • RDF和RDFS

RDF 代表:Resource Description Framework (资源描述框架)

Resource: 页面、图片、视频等任何具有URI标识符

Description: 属性、特征和资源之间的关系

Framework: 模型、语言和这些描述的语法

 在RDF中,知识总是以三元组形式出现

 RDF是一个三元组 (triple) 模型,即每一份知识可以被

分解为如下形式:

 ( subject (主) , predicate (谓) , object (宾) )

RDF允许空白节点

一个资源可以是匿名的

即不被URI标识,并标识为_: xyz

例如:Haofen是某一次KG讲座的讲者

RDF Schema ( RDFS )

RDFS在RDF基础上提供了一个术语、概念等的定义方式,以及哪些属性可以应用到哪些对象上。换句话说,RDFS为RDF模型提供了一个基本的类型系统。

举例: <http://mymetadata.vocab.org/Author>

<rdfs: subClassOf >

<http://purlorg/dc/elements/1.0/Creator>.

上述三元组表示用户自定义的元数据Author是Dublin Core的元数据Creator的子类。RDF Schema正是通过这样的方式来描述不同词汇集的元数据之间的关系,从而为网络上统一格式的元数据交换打下基础。

RDF(S)表达能力上的缺陷

通过RDF(S)可以表示一些简单的语义,但在更复杂的场景下,RDF(S)语义表达能力显得太弱,还缺少诸多常用的特征。

对于局部值域的属性定义:RDF(S)中通过rdfs:range定义了属性的值域,该值域是全局性的,无法说明该属性应用于某些具体的类时具有的特殊值域限制。

类、属性、个体的等价性:RDF(S)中无法声明两个或多个类、属性和个体是等价还是不等价 。

不相交类的定义: 在RDF(S)中只能声明子类关系,如男人和女人都是人的子类,但无法声明这两个类是不相交的 。

基数约束: 即对某属性值可能或必须的取值范围进行约束,如说明一个人有双亲(包括两个人),一门课至少有一名教师等。

关于属性特性的描述:即声明属性的某些特性,如传递性、函数性、对称性,以及声明一个属性是另一个属性的逆属性等。

  • OWL和OWL2 Fragments

选择OWL子语言的考虑

 选择OWL Lite还是OWL DL主要取决于用户需要整个语言在多大程度上给出约束的可表达性;

 选择OWL DL还是OWL Full主要取决于用户在多大程度上需要RDF的元模型机制 (如定义类型的类型以及为类型赋予属性);

 在使用OWL Full而不是OWL DL时,推理的支持可能不能工作,因为目前还没有完全的支持OWL Full的系统实现。

OWL与RDF的关系

 OWL Full可以看成是RDF的扩展;

 OWL Lite和OWL Full可以看成是一个约束化的RDF的扩展;

 所有的OWL文档 (Lite,DL,Full)都是一个RDF文档;

 所有的RDF文档都是一个OWL Full文档;

 只有一些RDF文档是一个合法的OWL Lite和OWL DL文档

OWL2

 OWL的最新版本; 老的OWL版本也被称为OWL1;

 OWL2定义了一些OWL的子语言,通过限制语法使用,使得这些子语言能够更方便地实现,以及服务于不同的应用;

 OWL2的三大子语言:

OWL 2 RL,OWL 2 QL,OWL 2 EL

 QL代表query language的意思,专为基于本体的查询设计;

 OWL 2 QL的复杂度是AC 0 ,非常适合大规模处理;

 OWL 2的三大子语言中,QL最为简单;

 OWL 2 QL是基于描述逻辑语言DL-Lite定义的。

OWL 2 EL

 OWL 2 EL专为概念术语描述,推理而设计;

 在生物医疗领域广泛应用,如临床医疗术语本体SNOMED CT;

 复杂度是PTime-Complete;

 OWL 2 EL是基于描述逻辑语言 EL++定义的。

OWL 2 RL

 OWL 2 RL在扩展RDFS表达能力的同时,保持了较低的复杂度;

 OWL 2 RL在RDFS的基础上引入属性的特殊特性 (函数性,互反性,对称性);允许声明等价性;允许属性的局部约束;

 复杂度是PTime-Complete;

 OWL 2 RL在ter Horst的工作基础[1]上延伸而来; 该工作的目的是将OWL词汇引入RDFS,使得RDFS在表达能力上丰富起来,同时保持计算复杂度在PTime级别;

 OWL 2 RL与描述逻辑没有直接关系;

 业界的一种观点是,OWL 2 RL是专为高效推理设计的本体语言

OWL 2 RL 推理简介

 OWL 2 RL推理是针对于实例数据的推理;PTime复杂度也是针对实例数据推理得到的结果;

 针对定义域值域的推理

p rdfs:domain x, s p o ⇒ s rdf:type x

p rdfs:range x, s p o ⇒ o rdf:type x

 s, p, o, x为变量;

 例子:由 exp:hasChild rdfs:domain exp:Person,

exp:Helen exp:hasChild exp:Jack,有 exp:Helen rdf:type exp:Person。

 subClassOf和subPropertyOf的传递性

p rdfs:subPropertyOf q, q rdfs:subPropertyOf r ⇒

p rdfs:subPropertyOf r

v rdfs:subClassOf w, w rdfs:subClassOf x

v rdfs:subClassOf x

 p, q, r, v, w, x为变量;

 例子:由 exp:hasSon rdfs:subPropertyOf exp:hasChildren,

exp:hasChildren rdfs:subPropertyOf exp:hasOffspring ,有 exp:hasSon rdfs:subPropertyOf exp:hasOffspring 。

 针对自定义传递性属性推理

p rdf:type owl:TransitiveProperty, u p w, w p v ⇒ u p v

 针对互反属性推理

p owl:inverseOf q, v p w ⇒ w q v

p owl:inverseOf q, v q w ⇒ w p v

 针对等价性推理

v owl:sameAs w, w owl:sameAs u ⇒ v owl:sameAs u

v owl:equivalentClass w ⇒ v rdfs:subClassOf w

v owl:equivalentProperty w ⇒ v rdfs:subPropertyOf w

v rdfs:subPropertyOf w, w rdfs:subPropertyOf v ⇒

v rdfs:equivalentProperty w

v rdfs:subClassOf w, w rdfs:subClassOf v ⇒

v rdfs:equivalentClass w

 针对属性局部约束的推理

v owl:allValuesFrom u, v owl:onProperty p,

w rdf:type v, w p x ⇒ x rdf:type u

 例子:由 exp:SWPaper owl:allValuesFrom exp:AAAI,

exp:SWPaper owl:onProperty exp:publishedIn ,

exp:paper1 rdf:type exp:SWPaper,

exp:paper1 exp:publishedIn exp:conference1,有 exp:conference1 rdf:type exp:AAAI。

OWL2现有的推理系统

 OWL 2 DL reasoners

FaCT++ (Manchester), HermiT (Oxford), Pellet (Clarkparsia)

 OWL 2 EL reasoners

CEL (Dresden), ELK (Oxford)

 OWL 2 RL reasoners

Jena (HP Labs Bristol, Aberdeen), Oracle 11g OWL Reasoner (Oracle)

 OWL 2 QL reasoners

QuOnto (Rome), Quill (Aberdeen)

  • SPARQL查询语言

 RDF的查询语言

 基于RDF数据模型

 可以对不同的数据集撰写复杂的连接 (joins)

 由所有主流图数据库支持

 SPARQL Protocol and RDF Query Language

 变量,RDF中的资源,以“?”或者“$”指示;

 三元组模板 (triple pattern), 在WHERE子句中列示关联的三元组模板,之所以称之为模板,因为

三元组中允许变量;

 SELECT子句中指示要查询的目标变量。

一个简单的SPARQL查询

PREFIX exp: http://www.example.org/

SELECT ?student

WHERE {

?student exp:studies exp:CS328.

}

 查询所有选修CS328课程的学生;

 和数据库的SQL语言进行对应;

 PREFIX部分进行命名空间的声明,使得下面查询的书写更为简洁。

SPARQL查询其它关键字简介

 OPTIONAL

SELECT ?student ?email

WHERE {

?student exp:studies exp:CS328 .

OPTIONAL {

?student foaf:mbox ?email .

}

}

 查询所有选修CS328课程的学生姓名,以及他们的邮箱;OPTIONAL关键字指示如果没有邮箱,那么依然返回学生姓名,邮箱处空缺。

SPARQL查询其它关键字简介

 OPTIONAL

SELECT ?student ?email

WHERE {

?student exp:studies exp:CS328 .

OPTIONAL {

?student foaf:mbox ?email .

}

}

 查询所有选修CS328课程的学生姓名,以及他们的邮箱;OPTIONAL关键字指示如果没有邮箱,那么依然返回学生姓名,邮箱处空缺。

 FILTER

SELECT ?module ?name ?age

WHERE {

?student exp:studies ?module .

?student foaf:name ?name .

OPTIONAL {

?student exp:age ?age .

FILTER (?age > 25) }

}

 查询学生姓名,选修课程,以及他们的年龄;如果有年龄,那么年龄必须大于25岁.

 UNION

SELECT ?student ?email

WHERE {

?student foaf:mbox ?email .

{ ?student exp:studies exp:CS328 }

UNION { ?student exp:studies exp:CS909 }

}

 查询选修课程CS328或CS909的学生姓名以及邮件;

 注意,这里的邮件是必须返回的,如果没有邮件值,那么就不返回这条记录;

注意和OPTIONAL区别。

 FROM

SELECT ?student ?email ?home

FROM <http://www2.warwick.ac.uk/rdf/student>

WHERE {

?student exp:studies exp:CS909 .

OPTIONAL { ?student foaf:mbox?email .

?student foaf:homepage ?home. }

}

 查询选修课程CS909的学生姓名以及邮件和住址;

 FROM关键字引入了其它本体或者可访问的知识库。

写成规则的形式:

hold_share(X, Y) : - control(X, Y)

conn_trans(Y,Z) : - hold_share(X, Y), hold_share(X, Z)

SELECT DISTINCT ?X ?Y

WHERE {

{SELECT ?U ?X WHERE{?U finance:hold_share ?X .}}

{SELECT ?U ?Y WHERE{?U finance:control ?Y .}}

}

 SPARQL允许嵌套查询,即WHERE子句中包含SELECT子句。

  • Json-LD、RDFa、HTML5 MicroData等新型知识表示

JSON-LD是JavaScript Object Notation for Linked Data的缩写,是一种基于JSON表示和传输互联数据 (Linked Data)的方法。JSON-LD描述了如何通过JSON表示有向图,以及如何在一个文档中混合表示互联数据及非互联数据。JSON-LD的语法和JSON兼容

JSON-LD处理算法和API (JSON-LD Processing Algorithms and API)描述了处理JSON-LD数据所需的算法及编程接口,通过这些接口可以在JavaScript, Python及Ruby等编程环境中直接对JSON-LD文档进行转换和处理

JSON-LD在做什么?

{

"http://schema.org/name": "Manu Sporny",

"http://schema.org/url": { "@id":"http://manu.sporny.org/" }, "http://schema.org/image":

{ "@id":"http://manu.sporny.org/images/manu.png" }

}

 JSON-LD通过引入规范的术语表示,比如统一化表示“name”,“homepage”和“image”的URI,使得数据交换和机器理解成为基础。

JSON-LD和语义网

 JSON-LD呈现出语义网技术的风格,它们有着类似的目标:围绕某类知识提供共享的术语。例如,每个数据集不应该围绕“name”重复发明概念。

 JSON-LD 的 实 现 没 有 选 择 大 部 分 语 义 网 技 术 栈 (Turtle/SPARQL/Quad Stores),而是以简单、不复杂以及面向一般开发人员的方式推进。

RDFa (Resource Description Framework in attributes)是网页标记语言

RDFa是W3C推荐标准。它扩充了XHTML的几个属性,网页制作者可以利用这些属性在网页中添加可供机器读取的资源

与RDF的对应关系使得RDFa可以将RDF的三元组嵌入在XHTML文档中,它也使得符合标准的使用端可以从RDFa文件中提取出这些RDF三元组来

 通过引入名字空间的方法在已有的标签中加入RDFa相应的属性来使得支持RDFa技术的浏览器或者搜索引擎可以解析到,从而达到优化的目的。

<div xmlns:dc="http://purl.org/dc/elements/1.1/"

about="http://www.example.com/books/wikinomics">

<span property="dc:title">Wikinomics</span>

<span property="dc:creator">Mr right</span>

<span property="dc:date">2006-09-02</span>

</div>

 上面的代码示例中用到了RDFa属性中的about属性和property属性,这段代码示例说明了一篇文章,然后描述了和这篇文章相关的信息,比如说标题,创建者和创建日期,而这些属性就可以使得支持RDFa的机器识别。从机器可理解的层面优化搜索,提升访问性以及网页数据的关联性。

HTML5 Microdata

Microdata微数据,是在网页标记标记语言嵌入机器可读的属性数据

微数据使用可以来自自定义词汇表、带作用域的键/值对给DOM做标记

用户可以自定义微数据词汇表,在自己的网页中嵌入自定义的属性

微数据是给那些已经在页面上可见的数据施加额外的语义。当HTML的词汇不够用时,使用微数据可以取得较好的效果

典型知识库项目的知识表示

多元关系-Freebase

Freebase使用复合值类型 (CVT:Compound Value Types)来处理多元关系

。例如下面这个例子中的CVT描述了关于Obama的任职期限的多元关“government_position_held” 。 这 个 多 元 关 系 包 含 多 个 子 二 元 关 系:“office_holder”,“office_position”,“from”,“to”等。一个CVT就是一个有唯一MID的Object,也可以有多个Types。为了以示区别,Freebase把所有非CVT的Object也称为“Topic”。


 

多元关系-Wikidata

Wikidata使用修饰-Qualifiers用于处理复杂的多元表示。如一个陈述“spouse: Ivana Trump”描述了一个二元关系。我们可以使用Qualifiers给这个陈述增加多个附加信息来刻画多元关系,如:“start date: 7 April 1977” and “end date: 22 March 1992,”等。

引用-References用于标识每个陈述的来源或出处,如来源于某个维基百科页面或特定站点等。引用也是一种Qualifiers,通常添加到Statements的附加信息中。

多元关系-ConceptNet5

ConceptNet5的知识表示框架主要包含如下要素:概念-Concepts、词-Words、短语-Phrases、断言-Assertions、关系-Relations、边-Edges。

Assertions描述了Concepts之间的关系,类似于RDF中的Statements。Edges类似于RDF中的Property。一个Concepts包含多条边,而一条边可能有多个产生来源。例如,一个“化妆 Cause 漂亮”的断言可能来源于文本抽取,也可能来源于用户的手工输入。来源越多,该断言就越可靠。在处理表示“x is the first argument of y ”这类多元关系的问题上,ConceptNet5把所有关于某条边的附加信息增加为边的属性。


 

 

 

 

 

 

 

 

 接近人的自然语言: 好的KR是同时为机器和人设计的

 够用的表达能力: 够用就好,不必苛求逻辑完备

 易于扩展: 能够非常方便的增加新的类、实体和关系

RDF/OWL只是众多知识表示框架之一,不少商业化的知识图谱并未采用RDF/OWL,物理存储也直接采用关系数据库实现,但基本表达要素都可以在RDF/OWL中找到对应。

基于本体工具 (Protégé)的知识建模实践

Protégé 简介

 Protégé 软件是斯坦福大学医学院生物信息研究中心基于Java语言开发的本体编辑和本体开发工具,也是基于知识的编辑器,属于开放源代码软件

 这个软件主要用于语义网中本体的构建,是语义网中本体构建的核心开发工具,现在的最新版本为5.2.0版本[1] (截止2017年9月29日 )

Protégé 特点

 Protégé 是一组自由开源的工具软件,用于构建域模型与基于知识的本体化应用程序。

 Protégé 提供了大量的知识模型架构与动作,用于创建、可视化、操纵各种表现形式的本体。

 可以通过用户定制实现域-友好(领域相关)的支持,用于创建知识模型并填充数据。

 Protégé 可以通过两种方式进行扩展:插件和基于java的API。

 相比与其他的本体构建工具而言,Protégé 最大的好处在于支持中文,在插件上,用OntoGraf可实现中文关系的显示。

Protégé 用途

 类建模 (Class modeling): Protégé 提供了一个图形化用户界面来建模类(领域概念)和它们的属性及关系。

 实例编辑 (Instance editing):从这些类中, Protégé 自动产生交互式的形式,全用户或领域专家进行有效实例编辑成为可能。

 模型处理 (Model processing):Protégé 有一些插件库,可以定义语义、解答询问以及定义逻辑行为。

 模型交换 (Model exchange):最终的模型 (类和实例)能以各种各样的格式被装载和保存,包括XML、UML和资源描述框架RDF

步骤1 建立新的本体。

 打开Protégé 软件后 (界面显示如上图),便是新建本体的界面;

 或者,可以在菜单里面选择File New... 新建一个本体。

步骤2 构建类。

 Protégé的主页面中,点击Entities页面,进入本体的编辑界面;

在Entities页面,选择Classes标签 (默认情况下用户看到的是该标签的页面),进入类及其层次的编辑页面;

在Classes页面,右键点击owl:Thing,选择Add Subclasses...,在出现的对话框中Name标签后输入类的名字,然后点击确定;

在Classes页面点击一个类名,在Protégé 右侧Description部分修改跟该类相关的属性值

步骤3 建立子类。

 在“人物”上右键点击,选择Addsubclass...;

在弹出的对话框中输入子类名称,如“禅师”,点击确定,在Classes界面显示类的层次 (见左下角图);

如果需要删除某个类,点击该类,然后点击下图红框里面图案。

步骤4 构建类之间的关系。

因为人物和地点是不同的事物,即它们互相具有排他性(owl:disjointWith),下面定义该关系。

 在选中“人物”的状态下,在Entities界面右侧Description部分点击DisjointWith后的加号 (见

上面左图);

 在弹出的界面中 (见上面右图),展开owl:Thing,选择“地点”,然后确定。这样人物和地点就有互相排斥的属性了。

步骤5 建立对象属性。

添加属性名

 在Entities界面选择Object properties标签,进入对象属性的编辑界面 (上图);

在owl:topObjectProperty上右键点击,选择”Add Sub-properties...”;

 在弹出的界面中 (左图),输入属性名称,例如“曾住”,点击“Continue”,再点“Finish”,便建好属性;

为属性添加domain和range属性值

 在Object properties界面,选择一个属性,例如“曾住”;

 在Entities界面的右侧Description模块中点击Domain后的加号;

 在弹出的界面中选择“人物”,点击确定,这样便为“曾住”加了domain的约束;

 类似地,点击Description中的Range后的加号,选择“地点”。

步骤6 建立数据属性。

 在Entities界面选择Data properties标签,进入数据属性的编辑界面;

 在 owl:topDatatProperty 上 右 键 点 击 , 选 择”Add Sub-properties...”;

 在弹出的界面中 (左图),输入属性名称,例 如 “ 法 号 ” , 点 击 “ Continue ” , 再 点“Finish”,便建好属性;

 在Data properties界面,选择一个属性,例如“法号”;

 在Entities界面的右侧Description模块中点击Range后的加号;

 在 弹 出 的 界 面 中 , 选 择 “ Built indataypes”,从中挑选xsd:string,再点击确定,即限制该属性的取值范围是字符串。建立数据属性类似于建立对象属性,主要是在加range约束时不同。

步骤7 建立实例。

添加实例及其类型

 在Entities界面选择Individuals标签,进入实例的编辑界面

 单击Individuals界面的菱形图标,在弹出的界面输入实例名字,如“佛印禅师”,点确定。

 在Entities的右侧界面Description部分,点击Types后面的加号 ,在出现的界面中选择Class Hierarchy标签,从类层次中选中“禅师”。这样该实例就有了类型约束。

添加实例之间的关系,以“佛印禅师”为例

 在Individuals界面选择实例“佛印禅师”,在Entities界面右侧的Property assertions部分点击Object property assertions旁的加号 ;

 在弹出的界面分别输入一个对象属性名字 (如“曾住”)和一个实例名字 (如“镇江金山寺”),点确定。这样,使得“佛印禅师”与“镇江金山寺”通过“曾住”关联起来了。

步骤8 保存本体。

 在菜单选择File Save;

 在弹出的界面中 ,选择“RDF/XML Syntax”,点确定;

 在又出现的界面中,在文件名处输入本体的名字,例如kgexample,文件类型是“OWL File”,点击保存。

步骤9 可视化。

 在菜单中选择Windows–>TabsOntoGraf;

 在出现的界面中,点击加号可以展开,鼠标移到线上,可显示此线代表的关系名称。

步骤10 推理。

 在菜单中选择Reasoner

 在出现的界面中,选择HermiT,然后点击Start reasoner 。

 推理得到的信息就会在对应的描述中显示出来。

例如,本体中给出裴文德和裴休是人物的实例,裴休是裴文德的父亲,父亲的domain是人物,range是男人,因此可以推导出裴休是男人的一个实例 。

 对于推导出来的信息,如果想知道为什么能被推理机推导出来,可以点击推导出的信息后面的问号 ;

 解释的原因会在新的对话框中显示 。


 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值