Protege4.0使用说明

更新时间:2023-05-04 14:44:05 阅读: 评论:0

Protege4.0使⽤说明
Protege4.0使⽤说明
OWL-Lite
它是OWL中句法最简单的⼀种⼦语⾔。
对于简单的继承或者约束,它就显得⾮常适⽤。
⼀般⽤于合并同类字典和简单继承。
lite是清淡的意思
OWL-DL
OWL-DL较之OWL-Lite,它的表达能⼒加强了。是基于描述逻辑的(Description Logics),所以以DL后缀。
正是因为有了描述逻辑,使⾃动推理成为了可能。
凡是遵循OWL-DL规范的本体都有可能⾃动计算类的继承性和检测本体之间的⽭盾。因此⼀般⽤于要推理本体之间的某种关系或者验证本体是否存在⽭盾性,⽐OWL-Lite更进了⼀步。
这个教程就是基于OWL-DL的。
OWL-Full
OWL-Full是最具有表达能⼒的⼦语⾔了。
它适⽤于⾼表达性的场合,如果要把⼀个事物完整的、精确的、⼒求⽆⼆义性地表达出来,它就⾮常适⽤。
但正因为它把约束定义太死,所以已经不适合做推理了,⼀旦推理,会出现⼤量的⽭盾,也不适合进⾏合并⼯作,因为它很难与别的本体兼容。
如何选择你需要的⼦语⾔
以下2个建议你可以参考下
选择Lite还是DL,在于你觉得⽤Lite来创建本体,是否已经够⽤。
选择DL还是Full,在于你觉得是⾃动推理更重要,还是精确表达更重要。DL使建模更灵活,Full使建模更完整更精确、表达⼒更强。
注意:Protg 4在编辑DL和Full的时候并没有什么明显区别,尺度把握在你⾃⼰⼼⽬中。
OWL本体的重要组成部分
在早期的Protg版本中,你们会发现这样的术语,Protg frames Instances, Slots and Class,3个重要的部分是:Instances、Slots、Class,其实就对应OWL本体中的如下三个部分,它们是:
Individuals
个体。代表⼀个领域⾥⾯的对象。可以理解成⼀个类的实例(instances of class)。
⽐如在⼯⼈这么⼀个类中,⼩李、⽼王、阿三等⼈就是⼀个⼀个的Individual。
Properties
Properties翻译为属性的意思。但是它的真正含义不和⾯向对象编程语⾔中的属性⼀样,它的真正含义是2个个体之间的双重联系秋愁 ,或者可以认为是2个Individuals之间的桥梁。
⽐如,hasChild连接了⽼李和他的孩⼦狗剩这2个个体。
另外,Properties还有3个⽐较重要的特性,functional,transitive,symmetric,会在第四章详细介绍。
Class
在OWL中Class被翻译成个体的集合。当然它是⼀系列概念的语义表达,和编程语⾔中的类⾮常相似,有继承体系,如果是
OWL-DL版本还能推理出⼀些继承关系,后⾯会提到。
Class Axiom
在OWL中,类的公理是⾮常重要和关键的⼀部分,它在验证⼀致性和推理中发挥着巨⼤的作⽤。
Class Expression
类的表达⾮常为之丰富,有并交补类还是匿名类等等,后⾯章节将会重点讲述。
打开披萨饼的例⼦
打开Protg,经过⿊屏⽩字⼀番加载后,出现了3个选项的对话框。
我们选择打开⼀个⽹上已有的实例——open OWL ontology from URI
系统会给出我们它内建的⼀些书签,我们选择pizza.owl那个本体。
选择之后要保证你的⽹路是OK的,耐⼼等待⼀段时间后,Protg的界⾯就出来了
如果你发现你的Protg版本和我说的不⼀样,点第⼆章,⾥⾯有下载。
我们看软件界⾯图,最重要的⼏个版⾯就是,Class,Object Properties,Data Properties,Individuals。你们可以⼤致点进去看看。⼀进去的版⾯叫Active Ontology,是这个本体的统计信息。
这⾥例⼦让你熟悉下Protg的界⾯,下⾯我们开始⾃⼰构建本体。
在创建本体的时候,⽤的最多的当然是第⼀种⽅法————Named Class。这种Class也被称为Plain Class,意思就是没有任何语义的类,仅仅是⼀个标⽰。好了,我们开始!
打开Protg,这次我们要选第⼀个选项了,就是⾃⼰去创建本体。
接着要你输⼊URI,就是世界上唯⼀的地址,作为我这个本体的标⽰。这⾥我们填
/doc/921860972.html
/ontologies/organization.owl,注意这种规范的写法是很重要的。这是RDF的知识点了,我就不啰嗦了,有兴趣朋友看这⾥RDF⼊门教程
之后就选择这个本体,我们本体存放的位置。
点击Finish之后,我们实际上已经创建了⼀个空的本体了。⽽且Protg已经为你创建了RDF/XML,你可以去看看你保存着的OWL⽂件,表⽰形式为:
1.
2.
3.
4.
5. /2002/07/owl#">
6./2006/12/owl2#">
7./2001/XMLSchema#">
8./2006/12/owl2-xml#">
9./2000/01/rdf-schema#">
10./1999/02/22-rdf-syntax-ns#">
11.]>
12.
13.
14.
/
ontologies/organization.owl"
/2000/01/rdf-schema#"
/大怪兽简笔画 2006/12/owl2-xml#"
/2002/07/owl#"
/2001/XMLSchema#"
/1999/02/22-rdf-syntax-ns#"
/2006/12/owl2#">
22.
23.
进来之后,我们选择Class那个⾯板,开始建⽴出下⾯这样的⼀棵树。
这棵树是由⼀些“兴趣爱好”这样的类组成的,⼀个社团有什么样的兴趣爱好,就将会是什么样的社团,当然⼀个社团也可以有多个兴趣爱好。⾄于上图的操作我想就没必要讲了,重点要讲述的是⼤家在建模的时候要分清什么是分类,
什么是继承。
继承:只要学过⾯向对象编程的朋友都熟悉这个概念,在RDF和OWL⾥⽗类与⼦类的关系,远远没有OOP
⾥⾯那么⽞乎,我们来看W3C上的语法描述:
if
T(?c1, rdfs:subClassOf, ?c2)
T(?x, rdf:type, ?c1)
then
T(?x, rdf:type, ?c2)
意思就是如果C1是C2的⼦类,并且有⼀个实体或者类是属于C1的,那么经典言情小说 它也属于C2。记住!推理机就只明⽩这点,仅此这么简单!
分类:这⾥指的分类其实就是上⾯的继承,⼀模⼀样!但是我们在建模的时候并没有把这些分类的类当作本体中的关键元素,⽽是属于辅助类。辅助什么?辅助我们建模,并不是辅助推理机,有了这些辅助类可以使我们的类机
构图更加清晰,我这⾥举个例⼦,见下图:
我们可以看到这⾥多了⼏个类,我们来看哪些是分类关系,哪些是继承关系。这⾥的Thing下⾯有⼀个分类叫
Interest,Interest下⾯有3个被继承的⼦类,其中的NamedInterest就是典型的辅助类,也可以称为分类类,因为NonMusic和
MusicAndFootball是⼀类兴趣爱好,我们暂且称为复合型的爱好,还有4个就叫做纯种爱好,或者原始爱好。⽽NamedInterest的作⽤就是为了建模的时候有个清晰的建模思维,让建模更具有逻辑性和条理性,但是NamedInterest 这种类将不会对推理起到任何作⽤,它仅仅是借⽤了SubClassOf公理(后⾯章节将会详述)来作为辅助的。
Disjoint Class
DisjointClass、SubClassOf、EquivalentClass是类的三⼤公理,见下图:
SubClassOf已经在上⼀节讲过了,EquivalentClass和推理密切相关,在下⾯的章节将会讲述,Disjo诗经谷风 intClass则是为了让推理能够顺利进⾏的⼀个必要条件,没有它的显式声明,有些推理将⽆法处字书法 运⾏。可以说,在OWL⾥⾯DisjointClass⽆处不在,这也是和我们的思维⾮常不⼀样的。因为我们
在UML中的类,OOP中的类,都不需要申明它们之间的关系,类与类之间要么是⽗⼦关系,要么没有任何关系,⼀个对象只能是⼀个类的实例,⽐如JAVA中
String tempStr = new String();
这⾥的tempStr就是类String的实例,不存在类似于
String int temp = new String() or int(乱写的);
这样的形式,既是String⼜是int的类型。然⽽,在OWL中,⼀个实例可以既是这个类的实例,⼜是其他类的实例,
⽐如下图:
上⾯有2个集合,这⾥的集合就好⽐类,集合⾥⾯的⼩块块就是这个类的实例。从这个图⾥,我们可以读出那⼏个类
呢?
A、B、A∩B、A∪B...还有很多⽐如:⾮A、A和B的交集的补集等等,我这⾥公式不打了,这些都是⼀个个的类
那么在上⾯这些类中的⼩块块,就是属于这个类的个体,也叫实例,我们发现,有些⼩⽅块可以属于很多类,⽐如中间的那些,既是属于A的,⼜是属于B的,也可以属于(A∪B),也可以属于……总之可能会属于很多类。
在这⾥,我们可以进⾏⼀个⼩⼩的总结了:
OWL中的类,和OOP中的类并不⼀样,只有继承上来说,是类似的,但我们更应该把这些类当作集合来考虑!
看到这⾥,我想⼤家就应该明⽩DisjointClass的意思行列式定义 了,是的!为了声明2个类没有交集!!只要2个类没有了交集,那么就不存在⼀个个体同时属于这2个类的情况了,这样推理机可以更加准确⽆误地表达出我们的意思了。
那么什么样的类需要去申明DisjointClass呢?答案:同⼀层次的类!这⾥涉及到⼀个模式,叫做Upper Level
Ontology
这个设计模式给了我们建模⼀个指导规范:将本体⾥⾯的类先按照层次划分,然后将⼀个层次的类相互DisjointClass。
我们还是以我们的社团本体来举例:
这⾥,Music和Sport就是⼀个层次的,我们将它们2个相互DisjointClass。Guitar和Hominca是⼀个层次的,我们将它们2个相互DisjointClass。同理,Basketball和Football也是⼀样要被DisjointClass。这样设置好之后,思路就⾮常明确了,不会有⼀个兴趣爱好既是⾜球⼜是篮球的,但是,可以有⼀个个体的类型是(⾜球∪篮球),它的意思是,这个个体要么是⾜球,要么是篮球。不过,没有⼀个个体的类型会是(⾜球∩篮球),因为(⾜球∩篮球)是
空集。当我们定义⼀个个体的类型为(⾜球∩篮球),进⾏推理的时候,会得到如下错误提⽰:
OWL Properties代表了⼀种关系relationship,在OWL⾥,有2种类型的Properties。⼀种叫Object Pro
perties,代表了indiv idual到individual之间的⼀种关系。还有⼀种叫Datatype Properties,代表了individual和基本数据类型的关系,有点像类的属性,⽐如年龄、⾝⾼等。还有⼀种叫Annotation properties,是属于元数据,数据的数据,可以⽤来解释Class、Individual、Object/Datatype Properties。下图以这3种类型,举个例⼦:
⼀般来说Object Properties较为常⽤。
OK!我们选择Object Properties⾯板,创建⼀个Properties。如图:
这⾥有⼏点要说明:
o命名约定,和Class⼀样,虽然没有明⽂规范,但是最好以⼀个单词⼩写开头,后⾯⼀个单词⾸字母⼤写的⽅式书写。
o其次,OWL规范中,Properties也有继承性,⽐如hasMonther可能就是继承⾃hasParent,⾃然,如果2个individual之间存在hasMonther关系,则必定存在hasParent关系。
o要注意,在继承中,不要把Object Properties和Datatype Properties相互继承,没有意义的。
更为复杂的创建属性⽅式我们参考了Pizza饼的例⼦:
看它们的命名,就知道是反了⼀反,这么做也是为了more powerfull expression,⽐如,⼩张是⽼张的⼉⼦,那么⽼张是⼩张的⽗亲,他们的关系必定存在反关系,是对应的,
但这仅仅是我们⼈类看这命名之后推断出来的,得让计算机也知道这些关系它们有这么⼀层含义。所以要⽤到inver Properties了,我们先选中hasBa,然后点右边的inver Properties旁边加号,选择isBaOf,就可以了,之后我们点isBaOf会发现,它的inver Properties已经是hasBa了。
Functional翻译成中⽂是有⽤的,实⽤的,其实应该翻译成函数的,什么是函数,就是不管参数是什么,最后的答案都是唯⼀的,不会变化的,sin(30)只会等于1/2,但sin(30)也会等于0.5,当然1/2和0.5是等同的。Functional Properties 就是这个意思,⽐如、:⼩张最好的朋友是李四,⼩张最好的朋友是⼩⾖⼦,如果"最好的朋友"这个Properties是Functional的,那么可以推断,李四和⼩⾖⼦是等同的,李四就是⼩⾖⼦,⼩⾖⼦就是李四,就好⽐1/2和0.5其实是⼀样的,写法不同⽽已。下图表达的
就是这个意思。
这个就不⽤我解释了吧?呵呵,看图就明⽩意思了。
传递性。A->B,B->C,则我们推理出A->C。
如果⼀个属性有inver Properties,并且这个属性是传递性的,那么那个inver Properties也是传递性的,这个在Protg 4中没有⾃动完成,但是推理机可以推理出来。
千万记住!传递性和函数性不兼容!if a property is transitive then it cannot be functional.想想看,为什么?
对称性,对等性。别把这个和Inver Properties混合。我举个例⼦,你就明⽩了。⼩张是⽼张⼉⼦,⽼张是⼩张⽗亲,这个叫inver properties,是2个properties之间的对称关系,是2个individual和2个
properties在做⽂章。⽼张和⽼李是邻居,⽼李和⽼张是邻居,这个叫做properties的对等性,是1个property和2个individual在做⽂章。
反对称性,反对等性。这个就很好理解了,最简单的例⼦就是:⼩张是⽼张的⼉⼦,那么⽼张就不会是⼩张的⼉⼦。
如果有⼀天⽼张说:如果你敢!我就是当你⼉⼦!这时计算机就会推断,这个是反对称的,是悖论,则推断出,⼩张不敢。
⾃反性。如果⼀个individual将⼀个property指向⾃⾝,那么这个properties就是⾃反的,⽐如⼩张知道⼩李,并且⼩张肯定知道⼩张⾃⼰。
反⾃反性,这个也很好理解,⽐如”是⼉⼦“这个属性就不会是⾃反的,⾃⼰是⾃⼰的⼉⼦显然是荒谬的。
域其实就是⼀个属性的类型和范围,⽐如int i;3
⽤英⽂来形象的表达就是:Properties link individuals from the domain to individuals from the range.

本文发布于:2023-05-04 14:44:05,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/856065.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:本体   关系   推理   没有
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图