本文主要是介绍利用protégé构建简单本体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、构建类
点击 Entities,进入本体编辑界面;
选择 Classes标签,右键点击owl: Thing,选择 Add Subclasses…,在出现的对话框中Name标签后输入类的名字,点击确定;
在 Classes页面点击一个类名,在 Protege右侧 Description部分修改跟该类相关的属性值
2、构建子类
在”人物“上点击右键,选择Add subclass…;在弹出的对话框中输入子类名称,如”禅师“,点击确定,在Classes界面显示类的层次。如果需要删除某个类,点击该类,再点击红框内图案。
3、构建类之间的关系
由于不同事物之间具有排他性(owl:disjointWith),于是定义:
①选中“人物”后,在Entities界面右侧Description部分点击DisjointWith后的加号
②在弹出的界面中展开owl:Thing,选择“地点”,这样人物和地点就有互相排斥的属性了
4、建立对象属性
① 添加属性名
在Entities界面选择Object properties标签,进入对象属性的编辑界面;
在owl:topObjectProperty上点击右键,选择Add Sub-properties…;在弹出的界面中输入属性名称,点击确定即可
② 为属性添加domain和range属性值
在Object properties界面选择一个属性例如“曾住”,在Entities界面的右侧Description模块中点击Domain/Range后面的加号,在弹出的界面中选择“人物”,确定后便为“曾住”加了domain/range的约束。
5、 建立数据属性
①在Entities界面选择Data properties标签,在owl:topDataProperty上点击右键选择Add Sub-properties…,在弹出的界面中输入属性名称,例如“法号”,确定后边建好属性。
②在Data properties界面选择属性“法号”,在Entities界面的右侧Description模块中点击Range后面的加号,在弹出的界面中选择“Built in datatypes”,从中挑选xsd:string,点击确定,即限制该属性的取值范围是字符串
建立数据属性类似于建立对象属性,区别在于加range约束时不同。
6、建立实例
① 添加实例及其类型
在Entities界面选择Individuals标签,单击Individuals界面的菱形图标,在弹出的界面输入实例名,如“佛印禅师”,点击确定。
在Entities界面的右侧Description模块中点击Types后面的加号,在弹出的界面中选择“Class Hierarchy”,从类层次中选中“禅师”,这样该实例就有了类型约束。
② 添加实例之间的关系,以“佛印禅师”为例
在Individuals界面选择实例“佛印禅师”,在Entities界面的右侧Property assertions中点击Object property asserions 后面的加号,在弹出的界面中分别输入一个对象属性名字(如:曾住)和一个实例名字(如:镇江金山寺),点击确定,“佛印禅师”与“镇江金山寺”通过“曾住”就有了关联
③ 添加实例添加属性值
在Individuals界面选择实例“苏轼”,在Entities界面的右侧Property assertions中点击Data property asserions 后面的加号,在弹出的界面中左侧选择数据属性(如“别名”),右侧填写属性值(如“苏东坡、东坡”),点击确定,于是实例“苏轼”的属性“别名”就添加了属性值。
7、保存本体
save时选择RDF/XML Syntax,点击确定后出现的界面中,文件类型是“OWL File”
8、可视化
在菜单中选择Windows->Tabs->OntoGraf,出现的界面中,点击加号可以展开,也可以显示线代表的关系名称。
9、推理机制
在菜单中选择Reasoner,然后选择HermiT,点击Start reasoner,推理出的信息就会在对应的描述中显示出来。
10、本体映射
- 在protégé中构建本体
- 将OWL文件解析为本体的三元组数据
- 将本体的三元组数据与实体的三元组数据进行知识融合(注意实体消歧,重复关系去重,实体ID冲突等细节问题)
- 将全部数据存储在neo4j中
优点:
(1)查询效率高,便于可视化,更容易表达现实的业务场景(2)社区活跃,neo4j是使用率最高的图数据库
缺点:大节点的处理开销很高,更新速度较慢,且无法在neo4j中直接进行知识推理
这篇关于利用protégé构建简单本体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!