protege使用说明.docx

上传人:b****8 文档编号:10627604 上传时间:2023-02-22 格式:DOCX 页数:19 大小:1.47MB
下载 相关 举报
protege使用说明.docx_第1页
第1页 / 共19页
protege使用说明.docx_第2页
第2页 / 共19页
protege使用说明.docx_第3页
第3页 / 共19页
protege使用说明.docx_第4页
第4页 / 共19页
protege使用说明.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

protege使用说明.docx

《protege使用说明.docx》由会员分享,可在线阅读,更多相关《protege使用说明.docx(19页珍藏版)》请在冰豆网上搜索。

protege使用说明.docx

protege使用说明

Protege软件使用说明

一.Protege系统版本介绍与分析

最常用的Protege版本主要有两个,我们分别介绍他们的优缺点

1.protege3.x版

优点:

1)这个版本的用户体验比较好,没4.x版的那么别扭

2)支持RacerPro推理机,能保存推理结果

3)能对中文进行推理

4)相关教程比较全面

缺点:

1)OWLViz不支持中文,添加中文,图像显示会重叠

2)没有ontograf功能块,总之不支持中文图像结果显示

3)使用OWLViz功能块,必须安装graphviz1.9版的

2.protege4.x版

优点:

1)自带推理机Fact++

2)有ontograf功能块,支持中文图像显示

3)相关教程比较全面

缺点:

1)无法保存自带推理机的推理结果,至少我是没找到保存方法

2)OWLViz也不支持中文

3)软件界面用户体验不好,很多模块需要自己选择添加

4)使用OWLViz功能块,必须安装graphviz2.28版的

 

上面说了这么多你可能不知道选择哪个好。

那就列出几个关键的问题:

1.想使用OWLViz观察图像结果?

不管是3.x版还是4.x版都可以。

但是要注意一点,就是版本兼容问题;个人推荐protege3.1配graphviz1.2或者protege4.1配graphviz2.28.

2.想使用推理机并更新原数据?

个人建议使用protege3.x,并使用RacerPro1.9版安装版。

虽然protege4.x版自带推理机也能推理,但是保存结果更新原数据没法实现,至少我是整了很久都没实现。

这也是我不喜欢使用4.x的原因,用户体验比较差。

3.想支持中文,在绘图区显示图像结构?

这个就必须使用4.x版了,也只能在4.x版的ontograf功能块才能看到图像结构,而在OWLViz会出现图像重叠;不过在这也弱弱的吐槽一下,ontograf显示的图像结构效果并不是很理想,个人觉得做的很差。

总结:

上面讲了这么多,相信你也有自己的选择了。

但是我个人觉得啊!

还是使用protege3.x版更好,当然前提是你对OWLViz显示中文并不是很需要的前提下;除去这个因素,protege3.x版还是蛮不错的,软件界面使用舒服,可以保存推理机推理结果;而且在class中定义中文也可以推理。

我们选用的版本:

因为我们在做英文本体的时候还要有对应的中文本体的创建与显示,因此我们选用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,也就是字符“?

”。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1