protege使用说明.docx
- 文档编号:28135861
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:20
- 大小:1.55MB
protege使用说明.docx
《protege使用说明.docx》由会员分享,可在线阅读,更多相关《protege使用说明.docx(20页珍藏版)》请在冰豆网上搜索。
protege使用说明
protege使用说明
Protege软件使用说明
一.Protege系统版本介绍与分析
最常用的Protege版本主要有两个,我们分别介绍他们的优缺点
1.protege3.x版
优点:
1)这个版本的用户体验比较好,没4.x版的那么别扭
2)支持RacerPro推理机,能保存推理结果
3)能对中文进行推理
4)相关教程比较全面
缺点:
1)OWLViz不支持中文,添加中文,图像显示会重叠
2)没有ontograf功能块,总之不支持中文图像结果显示
3)使用OWLViz功能块,必须安装graphviz1.9版的
我们选用的版本:
因为我们在做英文本体的时候还要有对应的中文本体的创建与显示,因此我们选用Protege4.2,graphviz-2.26进行实验。
二.Protege4.2系统安装说明
1.安装JDK1.6:
下载资源进行安装,环境变量配置:
变量名protege_home,变量值G:
\Study\JDK1.6
2.安装protege_4.2_alpha:
安装时软件会自动检测protege虚拟机环境,将jdk安装路径G:
\Study\JDK1.6下jre文件复制到G:
\Study,即与JDK1.6文件夹同一级。
开始安装,选择安装路径,生成文件物理位置,continue即可。
3.安装graphviz-2.28插件:
下载资源进行安装,安装后生成bin,etc,include,lib,share五个文件夹,打开bin文件夹,找到dot.exe,打开protege4.2,点击菜单栏Reasoner—>Configure,点击OWLViz项,在DotApplicationPath中输入G:
\Study\graphviz2.26\bin\dot,G:
\Study\graphviz2.26是安装目录。
三.中英文本体构建方法
a.英文本体构建
OWL本体由Individual个体,Properties(ObjectProperties对象属性和DataProperties数据属性)属性或关联,Class类组成,三者分别和实例Instances,扩展连接点Slot,类Class相通信。
在protégé中最重要的就是Classes(类),ObjectProperties(对象属性或关联),DataProperties(数据属性),Individuals(个体)这四个栏目。
OWLViz类关系层次图,DLQuery类查询或简单推理,OntoGraf本体关系图,这三个栏目辅助进行构建本体。
●Classes类
它是个体的集合,如classfruit,它可以是个体apple,banana,orange等组成的集合。
SubclassOf,Equivalent,Disjoint是类的三大axiom公理,可以理解为类与类之间的关系:
类与类之间存在父子关系,即superclass父类,subclass子类;Equivalentclass相同类,主要用于推理;Disjointclasses互不相交关系,即一个个体不能同时属于两个类。
在protege4.2左边部分可以分别Addsubclass创建子类,Addsiblingclass创建兄弟类,Deleteselectedclasses删除选中类三个操作,右上部分的Annotations(注释)对类进行注释,在简单本体构建中用处不大。
右下方的Description(表达式,表现)非常重要。
1.Equivalentclasses相等类,用来定义与当前类相等等同的类,或notclass不相等的类,主要用来推理,如,A,B是classm的个体,classn是classm的Equivalentclasses,则推理机可以退出A,B也是classn的个体。
2.Superclasses超类或父类,定义当前类的父类,限制类,打开项目,选择Objectrestrictioncreator(创建对象限制),选择Restrictionproperty(对象属性),Restrictionfiller(类),Restrictiontype,Some存在量词,Only全称量词,Min基数量词最小值,Max基数量词最大值,Exactly基数量词准确值,这些是约束属性的条件,用来限制对象属性的。
如下图:
classGiraffe长颈鹿类eat(对象属性,谓词)only(全称量词,约束限制eat)leaf(叶子类),理解为一句话:
长颈鹿只吃叶子。
建立本体中,通过类似的语句,如他是我的朋友(类‘他’,类‘我的朋友’,对象属性‘是’名词型),大鱼吃小鱼(类‘大鱼’,类‘小鱼’,动词‘吃’动宾型),中国直辖市是北京市,天津市,上海市,重庆市(集合型)等构建对象属性和类,它可以将生活中的语句进行抽象,转化为计算机可以理解的语言,然后推理机就可以进行推理。
3.Inheritedanonymousclasses继承匿名类,继承父类,匿名类定义在父类中,被子类继承,是子类的必要条件,上例中,食草动物Herbivore在Superclasses定义了eatonlyPlant,被子类Giraffe继承,是子类Giraffe存在逻辑的必要条件。
4.Members成员,类中的个体,打开Addindividual,可以添加个体,添加后从Classes转换到Individual,可以得到相应类的个体,如下图增加Giraffe的一个Members,wangwang,在类的Individual中可以找到
5.Keys关键字,描述类的行为或属性。
6.Disjointclasses互不相交类,即不存在一个个体同时属于两个Disjointclass,如下图,食草动物Herbivore与食肉动物carnivore不相交,定义类Herbivore的Disjointclasses为carnivore,则在类carnivore中的Disjointclasses显示为Herbivore,两个类互为Disjointclasses。
7.Disjointunionof互不相交类的集合,即一个类的所有子类都不相交,如,类‘中国直辖市’,子类‘北京市’,‘天津市’,‘上海市’,‘重庆市’,四个子类均不相交,构成类‘中国直辖市’。
●ObjectProperties对象属性
它用来连接两个个体,如上例中classGiraffe长颈鹿类eat(对象属性,谓词)only(全称量词,约束限制eat)leaf(叶子类)其中eat谓词就是已经定义的对象属性,连接两个类Giraffe和leaf。
在protege4.2中打开ObjectProperties,左边部分可以分别Addsubproperty创建子属性,Addsiblingproperty创建兄弟属性,Deleteselectedproperties删除选中属性三个操作,右上部分的Annotations(注释)对属性进行注释,Usage查看当前对象属性的使用情况,如下图
发现四个使用记录。
右下方的Characteristic(特征),Description(表达式,表现)非常重要。
Characteristic(特征),定义对象属性的性质,也可以称为函数属性,传递属性等。
1Functional函数性,当前对象属性标注了这个性质,说明该对象属性只能连接一个个体。
如:
我的最好的朋友是小张,两个类‘我’,‘小张’,对象属性‘最好的朋友是’
我的最好的朋友是小王,两个类‘我’,‘小王’,对象属性‘最好的朋友是’,同时声明这两个语句,如果定义对象属性‘最好的朋友是’为Functional函数性,那么可以推理出是小张和小王是同一个人。
2Inversefunctional逆函数性,是Functional函数性的反性质,对于一个给定的个体,只有最多一个个体能通过该属性连接那个个体。
如:
小张的最好的朋友是我,小王的最好的朋友是我,定义对象属性‘最好的朋友是’为Inversefunctional逆函数性,那么可以推理出是小张和小王是同一个人。
3Transitive传递性,具有传递性,如:
A大于B,B大于C,如果定义对象属性‘大于’为Transitive传递性,那么可以推理出A大于C.
4Symmetric对称性,两个个体关系对称,如:
A的同学是B,B的同学是A,对象属性‘同学’就具有Symmetric对称性。
具有对称性,不能具有函数性和逆函数性,如:
A的儿子是B,不能说成B的儿子是A。
5Asymmetric不对称性,Symmetric对称性的反。
6Reflexive自反性,自身与自身相关联。
7Irreflexive不自反性,Reflexive自反性的反。
Description(表达式,表现)
1Domain定义域,或类型。
如下图,eat的定义域为Animal,即Animaieatsomething。
2Range值域,如下图,mainEat的值域为Animal,即SomethingmainEatAnimal
属性连接的是定义域的个体到值域的个体,对象属性的定义域和值域主要用来推理。
3Equivalentobjectproperties相等对象属性,定义与当前对象属性相等的对象属性。
4Superproperties超属性,父属性,如上例中,mainEat的Superproperties就是eat。
5Inverseproperties逆属性,上例中eat与eated互逆,对象属性的定义域与值域相反,如图
6Didjointproperties互不相交属性,两个属性没有交集。
7Propertychains属性链。
●DataProperties数据属性
它用来连接个体和XMLSchema数据类型值或rdfliteral,该属性不能为传递的,对称的,反函数的,可以为函数的。
如张三的电话号码是123456,数据属性‘电话号码’连接个体‘张三’和数据‘123456’.在protege4.2中打开DataProperties,左边部分可以分别Addsubproperty创建子属性,Addsiblingproperty创建兄弟属性,Deleteselectedproperties删除选中属性三个操作,右上部分的Annotations(注释)对属性进行注释,说明数据属性的内容,如下图,数据属性address的Annotationscomment为‘地址’
右下方的Characteristic(特征),Description(表达式,表现)非常重要。
Characteristic(特征)与ObjectProperties相比只有Functional函数性一项,这是由于它连接的是个体和XMLSchema数据类型值或rdfliteral。
Description(表达式,表现)
1Domain定义域
2Range值域,从上图中可以看到address的Domain为zoo,值域为string,即zoo动物园的个体具有地址数据属性,其值的类型是string数据类型。
3Equivalentproperties相等数据属性,定义与当前数据属性相等的数据属性。
4Superproperties超属性,父属性。
5Disjointproperties互不相交属性,两个属性没有交集。
●Individuals个体
它可以理解为类的实例化,或者类的成员。
在protege4.2中打开Individual,左边部分是类的层次关系图,可以分别Addsubclass创建子类,Addsiblingclass创建兄弟类,Deleteselectedclasses删除选中类三个操作,中间部分Memberslist成员列表,可以分别Addindividual创建个体,Deleteindividual删除个体,右上部分的Annotations(注释)对个体进行注释,Usage查看当前个体的使用情况,如下图,类zoo有三个个体,分别为beijing,shanghai,tianjing,
shanghai个体有6条使用记录。
右下方的Description(表达式,表现),Propertyassertions(属性声明)非常重要。
Description(表达式,表现)
1Types,类,上图中个体shanghai的Types就是这个个体属于的类zoo。
2Sameindividuals相同个体
3Differentindividuals不相同个体
Propertyassertions(属性声明)需要手工进行操作。
1Objectpropertyassertions对象属性声明,使用对象属性连接另一个个体。
2Datapropertyassertions数据属性声明,使用数据对象连接一个数据值。
上例中,个体shanghai的数据属性tel的值为‘02045412’,数据属性address的值为‘shanghaishi’。
添加个体的数据属性手工进行添加。
3Negativeobjectpropertyasseritions否定对象属性声明。
4Negativedatapropertyasseritions否定数据属性声明。
OWLViz类关系层次图,使用前需确认本机已经安装graphviz
在protege4.2中打开OWLViz,选中classThing,鼠标移到右边区域,右键Showclass,选择Radius(半径,范围),即父类子类的层次,OK即可,如下图
Assertedmodel声明模型,即使定义的模型,Inferredmodel推理后的模型,即定义的模型经过推理机进行推理后的模型,进行复杂推理时需要安装相关插件才能实现。
DLQuery类查询或简单推理
在protege4.2中打开DLQuery,右上方Query查询,输入查询内容,然后点击菜单栏的Reasoner推理-->Startreasoner,选中推理机FaCT++或HermiT1.3.5,然后Execute执行,在下方的Queryresults输出查询结果。
如下图,输入Tree,
输入notTree
右下方的选项对输出结果进行控制。
选中Superclasses显示父类,Ancestorclasses显示祖先类,Equivalentclasses显示相同类,Subclasses显示子类,Descendantclasses后代类,Individuals显示类的个体。
●OntoGraf本体关系图
在protege4.2中打开OntoGraf,依次点击左边部分所有的父类子类,在右边部分显示出所有类的关系,如下图
在Search搜索栏中输入内容,进行搜索,显示与搜索内容相关的关系图,可以搜索类,个体,如下图,Searchleaf
SearchBeijing,类zoo动物园有三个个体beijing,shanghia,tianjin,类giaffe长颈鹿有三个个体,分别属于beijing,shanghai,tianjin,类lion有三个个体,分别属于beijing,shanghai,tianjin,查询beijing,如下图
OntoGraf类似于UML的构图,可以用来进行本体的检测,修改,查询。
b.中文本体创建
中文本体的创建与英文本体的过程基本类似,只是在名称输入时换成相应的中文字符就可以了,其他标签的功能一样,只是可能在图形显示,中文名称显示,文件保存时候,会有不同的乱码出现,Protege3的中文乱码程度还低一些,图形显示效果不佳,Protege4的中文乱码程度比较大,但是图形显示没有问题,逻辑推理还是不能进行中文的推理。
四.遇到问题及解决方案
1.在安装安装graphviz-2.28插件时遇到一些问题,怎么安装都不能成功显示视图
解决方法:
找到对应的版本型号,protege对版本对应型号要求比较严格,不对应就不能正常显示,当时我安装的是最新的安装graphviz-2.38插件,最后发现Protege对应的是安装graphviz-2.28插件。
2.中文乱码显示问题
解决方面:
中文本体不可以用中文名称保存,否则无法正常打开,所以我改成英文名称,可以正常操作;Protegge4中的本体创建时也会有中文乱码,这个是Protege4对中文支持不是很好,可以换成Protege3.
为了让使用protege语言编写的程序能在各种语言的平台下运行,protege在其内部使用Unicode字符集来表示字符,这样就存在Unicode字符集和本地字符集进行转换的过程。
当在protege中读取字符数据的时候,需要将本地字符集编码的数据转换为Unicode编码,而在输出字符数据的时候,则需要将Unicode编码转换为本地字符集编码。
例如,在中文系统下,从控制台读取一个字符“中”,实际上读取的是“中”的GBK编码0xD6D0,在protege语言中要将GBK编码转换为Unicode编码0x4E2D,此时,在内存中,字符“中”对应的数值就是0x4E2D,当我们向控制台输出字符时,protege语言将Unicode编码再转换为GBK编码,输出到控制台,中文系统再根据GBK字符集画出相应的字符。
从上述过程来看,读取和写入的过程是可逆的,那么理应不会出现中文乱码问题。
然而,实际应用的情形,比上述过程要复杂得多。
在Web应用中,通常都包括了浏览器、Web服务器、Web应用程序和数据库等部分,每一部分都有可能使用不同的字符集,从而导致字符数据在各种不同的字符集之间转换时,出现乱码的问题。
在protege语言中,不同字符集编码的转换,都是通过Unicode编码作为中介来完成的。
例如,GBK编码的字符“中”要转换为ISO-8859-1(同ISO8859-1)编码,其过程如下:
(1)因为在protege中的字符,都是用Unicode来表示的,所以GBK编码的字符“中”要转换为Unicode表示:
0xD6D0->0x4E2D。
(2)将字符“中”的Unicode编码转换为ISO-8859-1编码,因为Unicode编码0x4E2D在ISO-8859-1中没有对应的编码,于是得到0x3f,也就是字符“?
”。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- protege 使用说明