Protege
Protégé软件是斯坦福大学医学院生物信息研究中心基于Java语言开发的本体编辑和知识获取软件,或者说是本体开发工具,也是基于知识的编辑器,属于开放源代码软件。
游戏本体
对于这里的本体,我们可以定义四种类型的本体对象:self-standing(独立式类),modifiers(修饰式类),relations(关系或者对象属性、数据属性)、definable(可定义类)
构建步骤
1.IRI
首先打开protege, 修改IRI
2. Entities
选择编辑栏Entities-Owl:Thing;选择导航栏-Tools-Create class hierarchy…
点击Continue,完成本体构建得到下图:
注意点,点击完Continue会出现:
这表示一个实体只能属于同一级的类当中的一个,比如数独游戏如果归为Sudoku这个类就不能再归类于LeaguOfLegends, Chess,或者WorldOfWarcraft.正如下图Sudoku类的Discription-Disjoint with中显示的一样。
3.ObjectProperty
选择Entities-Object property-owl:topObjectProperty;选择Tools-Create object property hierarchy,添加本体的对象属性,如下图:
3.1 Description
对于每一种对象属性来说,可以定义其对应的Domain和Range:
Domain:表示域,指定当前关系的主语类型
Range:表示取值范围,指定当前关系的宾语类型
比如:hasDifficulty的主语类型应该是Game,宾语类型应该是ValuePartition.
3.2 Characteristic
除了在Description上添加一些公理以外,还能够添加一些约束,例如Description左边栏的Characteristic,
Functional:指单值属性
Inverse functional: 可逆关系
Transitive: 传递关系
Symetric: 对称关系
Asymetric: 非对称关系
Reflexive: 反身性
Irreflexive: 非反射性
3. 添加其他公理
4.1除了以上的公理约束添加方法,也可以对指定类添加公理,例如:Chess游戏添加以下公理
Entities-Chess-Description-Subclass of-Class expression editor:
添加完成后,可以看到如下结果:
4.2 Entities-Description-Equivalent to使用
这里便可以实现将DifficultyValuePartition与Hard or Normal or Easy进行等价关联。
便可将hasDifficulty中的Ranges改成DifficultyValuePartition。
- 添加Definable class
Game-(右击)add subclass
这里定义MultPlayerGame类,可以添加公理:
Subclass of:
Edit-Convert to defined class:
这时候可定义类便定义好了。 - OntoGraf
为了查看已经定义的本体,可以使用图形化工具栏OntoGraf,查看类与关系
6.对可定义的类,可以使用推理机制,得到推理后更加完善的本体信息
Reasoner-HermiT,选择推理工具
Reasoner-Configure-确定,查看推理工具是否能正常使用
Reasoner-Start Reasoner, 开始推理
选择OntoGraf-Inferred可以查看推理后的结果:
可以看到对于定义的可定义类,推理后各自将相应的类添加到这些可定义类中,从而完善了本体的信息。