protege4.1中文入门教程 下载本文

protege4.2使用说明

Protege4.2使用说明 2013,01,28

安装JDK1.6:下载资源进行安装,环境变量配置:变量名Java_home,变量值G:\\Study\\JDK1.6 安装protege_4.2_alpha:安装时软件会自动检测java虚拟机环境,将jdk安装路径G:\\Study\\JDK1.6下jre文件复制到G:\\Study,即与JDK1.6文件夹同一级。开始安装,选择安装路径,生成文件物理位置,continue即可。

安装graphviz-2.26插件:下载资源进行安装,安装后生成bin,etc,include,lib,share五个文件夹,打开bin文件夹,找到dot.exe,打开protege4.2,点击菜单栏Reasoner—>Configure,点击OWL Viz项,在Dot Application Path中输入G:\\Study\\graphviz2.26\\bin\\dot,G:\\Study\\graphviz2.26是安装目录。 OWL本体由Individual个体,Properties(Object Properties对象属性和Data Properties数据属性)属性或关联,Class类组成,三者分别和实例Instances,扩展连接点Slot,类Class相通信。

在protégé中最重要的就是Classes(类),Object Properties(对象属性或关联),Data Properties(数据属性),Individuals(个体)这四个栏目。OWL Viz类关系层次图,DL Query类查询或简单推理,OntoGraf本体关系图,这三个栏目辅助进行构建本体。 一Classes类

它是个体的集合,如class fruit,它可以是个体apple,banana,orange等组成的集合。SubclassOf,Equivalent,Disjoint是类的三大axiom公理,可以理解为类与类之间的关系:类与类之间存在父子关系,即superclass父类,subclass子类;Equivalent class相同类,主要用于推理;Disjoint classes互不相交关系,即一个个体不能同时属于两个类。在protege4.2左边部分可以分别Add subclass创建子类,Add sibling class创建兄弟类,Delete selected classes删除选中类三个操作,右上部分的Annotations(注释)对类进行注释,在简单本体构建中用处不大。右下方的Description(表达式,表现)非常重要。 1.Equivalent classes相等类,用来定义与当前类相等等同的类,或not class不相等的类,主要用来推理,如,A,B是class m的个体, class n是class m的Equivalent classes,则推理机可以退出A,B也是class n的个体。 2.Superclasses 超类或父类,定义当前类的父类,限制类,打开项目,选择Object restriction creator(创建对象限制),选择Restriction property(对象属性),Restriction filler(类),Restriction type,Some存在量

词,Only全称量词,Min基数量词最小值,Max基数量词最大值,Exactly基数量词准确值,这些是约束属性的条件,用来限制对象属性的。如下图:

class Giraffe长颈鹿类eat(对象属性,谓词) only(全称量词,约束限制eat) leaf(叶子类),理解为一句话:长颈鹿只吃叶子。建立本体中,通过类似的语句,如他是我的朋友(类‘他’,类‘我的朋友’,对象属性‘是’名词型),大鱼吃小鱼(类‘大鱼’,类‘小鱼’,动词‘吃’动宾型),中国直辖市是北京市,天津市,上海市,重庆市(集合型)等构建对象属性和类,它可以将生活中的语句进行抽象,转化为计算机可以理解的语言,然后推理机就可以进行推理。

3.Inherited anonymous classes继承匿名类,继承父类,匿名类定义在父类中,被子类继承,是子类的必要条件,上例中,食草动物Herbivore在Superclasses定义了eat only Plant,被子类Giraffe继承,是子类Giraffe存在逻辑的必要条件。

4.Members成员,类中的个体,打开Add individual,可以添加个体,添加后从Classes转换到Individual,可以得到相应类的个体,如下图增加Giraffe的一个Members ,wangwang,在类的Individual中可以找到 5.Keys关键字,描述类的行为或属性。

6.Disjoint classes互不相交类,即不存在一个个体同时属于两个Disjoint class,如下图,食草动物Herbivore与食肉动物carnivore不相交,定义类Herbivore的Disjoint classes为carnivore,则在类carnivore中的Disjoint classes显示为Herbivore,两个类互为Disjoint classes。

7.Disjoint union of互不相交类的集合,即一个类的所有子类都不相交,如,类‘中国直辖市’,子类‘北京市’,‘天津市’,‘上海市’,‘重庆市’,四个子类均不相交,构成类‘中国直辖市’。 二 Object Properties对象属性

它用来连接两个个体,如上例中class Giraffe长颈鹿类eat(对象属性,谓词) only(全称量词,约束限制eat) leaf(叶子类)其中eat谓词就是已经定义的对象属性,连接两个类Giraffe和leaf。在protege4.2中打开Object Properties,左边部分可以分别Add sub property创建子属性,Add sibling property创建兄弟属性,Delete selected properties删除选中属性三个操作,右上部分的Annotations(注释)对属性进行注释,Usage查看当前对象属性的使用情况,如下图

发现四个使用记录。右下方的Characteristic(特征),Description(表达式,表现)非常重要。 Characteristic(特征),定义对象属性的性质,也可以称为函数属性,传递属性等。

1 Functional函数性,当前对象属性标注了这个性质,说明该对象属性只能连接一个个体。 如:我的最好的朋友是小张,两个类‘我’,‘小张’,对象属性‘最好的朋友是’

我的最好的朋友是小王,两个类‘我’,‘小王’,对象属性‘最好的朋友是’,同时声明这两个语句,如果定义对象属性‘最好的朋友是’为Functional函数性,那么可以推理出是小张和小王是同一个人。

2 Inverse functional逆函数性,是Functional函数性的反性质,对于一个给定的个体,只有最多一个个体能通过该属性连接那个个体。如:小张的最好的朋友是我,小王的最好的朋友是我,定义对象属性‘最好的朋友是’为Inverse functional逆函数性,那么可以推理出是小张和小王是同一个人。

3 Transitive传递性,具有传递性,如:A大于B,B大于C,如果定义对象属性‘大于’为Transitive传递性,那么可以推理出A大于C.

4 Symmetric对称性,两个个体关系对称,如:A的同学是B,B的同学是A,对象属性‘同学’就具有Symmetric对称性。具有对称性,不能具有函数性和逆函数性,如:A的儿子是B,不能说成B的儿子是A。 5 Asymmetric不对称性,Symmetric对称性的反。 6 Reflexive自反性,自身与自身相关联。 7 Irreflexive不自反性,Reflexive自反性的反。 Description(表达式,表现)

1 Domain定义域,或类型。如下图,eat的定义域为Animal,即Animai eat something。

2 Range值域,如下图,mainEat的值域为Animal,即SomethingmainEat Animal 属性连接的是定义域的个体到值域的个体,对象属性的定义域和值域主要用来推理。 3 Equivalent object properties相等对象属性,定义与当前对象属性相等的对象属性。 4 Super properties超属性,父属性,如上例中,mainEat的Super properties就是eat。

5Inverse properties逆属性,上例中eat与eated 互逆,对象属性的定义域与值域相反,如图

6 Didjoint properties互不相交属性,两个属性没有交集。 7 Property chains属性链。 三 Data Properties数据属性

它用来连接个体和XML Schema数据类型值或rdf literal,该属性不能为传递的,对称的,反函数的,可以为函数的。如张三的电话号码是123456,数据属性‘电话号码’连接个体‘张三’和数据‘123456’.在protege4.2中打开Data Properties,左边部分可以分别Add sub property创建子属性,Add sibling property创建兄弟属性,Delete selected properties删除选中属性三个操作,右上部分的Annotations(注释)对属性进行注释,说明数据属性的内容,如下图,数据属性address的Annotations comment为‘地址’

右下方的Characteristic(特征),Description(表达式,表现)非常重要。 Characteristic(特征)与Object Properties相比只有Functional函数性一项,这是由于它连接的是个体和XML Schema数据类型值或rdf literal。 Description(表达式,表现) 1 Domain定义域

2Range值域,从上图中可以看到address的Domain为zoo,值域为string,即zoo动物园的个体具有地址数据属性,其值的类型是string数据类型。 3 Equivalent properties相等数据属性,定义与当前数据属性相等的数据属性。 4 Super properties超属性,父属性。

5 Disjoint properties互不相交属性,两个属性没有交集。 四 Individuals个体

它可以理解为类的实例化,或者类的成员。在protege4.2中打开Individual,左边部分是类的层次关系图,可以分别Add subclass创建子类,Add sibling class创建兄弟类,Delete selected classes删除选中类三个操作,中间部分Members list成员列表,可以分别Add individual创建个体,Delete individual删除个体,右上部分的Annotations(注释)对个体进行注释,Usage查看当前个体的使用情况,如下图,类zoo有三个个体,分别为beijing,shanghai,tianjing,

shanghai个体有6条使用记录。右下方的Description(表达式,表现),Property assertions(属性声明)非常重要。 Description(表达式,表现)

1 Types,类,上图中个体shanghai的Types就是这个个体属于的类zoo。 2 Same individuals相同个体 3 Different individuals不相同个体

Property assertions(属性声明)需要手工进行操作。

1 Object property assertions对象属性声明,使用对象属性连接另一个个体。 2 Data property assertions数据属性声明,使用数据对象连接一个数据值。上例中,个体shanghai的数据属性tel的值为‘02045412’,数据属性address的值为‘shanghaishi’。添加个体的数据属性手工进行添加。 3 Negative object property asseritions否定对象属性声明。 4 Negative data propertyasseritions否定数据属性声明。 五OWL Viz类关系层次图,使用前需确认本机已经安装graphviz

在protege4.2中打开OWL Viz,选中class Thing,鼠标移到右边区域,右键Show class,选择Radius(半径,范围),即父类子类的层次,OK即可,如下图

Asserted model声明模型,即使定义的模型,Inferred model推理后的模型,即定义的模型经过推理机进行推理后的模型,进行复杂推理时需要安装相关插件才能实现。

六DL Query类查询或简单推理

在protege4.2中打开DL Query,右上方Query查询,输入查询内容,然后点击菜单栏的Reasoner推理-->Start reasoner,选中推理机FaCT++或HermiT1.3.5,然后Execute执行,在下方的Query results输出查询结果。 如下图,输入Tree, 输入not Tree

右下方的选项对输出结果进行控制。选中Super classes显示父类,Ancestor classes显示祖先类,Equivalent classes显示相同类,Subclasses显示子类,Descendant classes后代类,Individuals显示类的个体。 七OntoGraf本体关系图

在protege4.2中打开OntoGraf,依次点击左边部分所有的父类子类,在右边部分显示出所有类的关系,如下图

在Search搜索栏中输入内容,进行搜索,显示与搜索内容相关的关系图,可以搜索类,个体,如下图,Search leaf

Search Beijing,类zoo动物园有三个个体beijing,shanghia,tianjin,类giaffe长颈鹿有三个个体,分别属于beijing,shanghai,tianjin,类lion有三个个体,分别属于beijing,shanghai,tianjin,查询beijing,如下图 OntoGraf类似于UML的构图,可以用来进行本体的检测,修改,查询。 说明:以上是根据最近学习的内容,在自己理解的基础上进行编写的,有什么不明白的地方再讨论。protégé的不同版本界面不同,但其中的项目是相同的。就先写到这里,OK,All is well!