利用protégé构建简单本体

2023-12-04 13:20
文章标签 简单 构建 本体 prot

本文主要是介绍利用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、本体映射

  1. 在protégé中构建本体
  2. 将OWL文件解析为本体的三元组数据
  3. 将本体的三元组数据与实体的三元组数据进行知识融合(注意实体消歧,重复关系去重,实体ID冲突等细节问题)
  4. 将全部数据存储在neo4j中

优点:
(1)查询效率高,便于可视化,更容易表达现实的业务场景(2)社区活跃,neo4j是使用率最高的图数据库
缺点:大节点的处理开销很高,更新速度较慢,且无法在neo4j中直接进行知识推理

这篇关于利用protégé构建简单本体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/453610

相关文章

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu2289(简单二分)

虽说是简单二分,但是我还是wa死了  题意:已知圆台的体积,求高度 首先要知道圆台体积怎么求:设上下底的半径分别为r1,r2,高为h,V = PI*(r1*r1+r1*r2+r2*r2)*h/3 然后以h进行二分 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#includ

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

usaco 1.3 Prime Cryptarithm(简单哈希表暴搜剪枝)

思路: 1. 用一个 hash[ ] 数组存放输入的数字,令 hash[ tmp ]=1 。 2. 一个自定义函数 check( ) ,检查各位是否为输入的数字。 3. 暴搜。第一行数从 100到999,第二行数从 10到99。 4. 剪枝。 代码: /*ID: who jayLANG: C++TASK: crypt1*/#include<stdio.h>bool h

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

uva 10387 Billiard(简单几何)

题意是一个球从矩形的中点出发,告诉你小球与矩形两条边的碰撞次数与小球回到原点的时间,求小球出发时的角度和小球的速度。 简单的几何问题,小球每与竖边碰撞一次,向右扩展一个相同的矩形;每与横边碰撞一次,向上扩展一个相同的矩形。 可以发现,扩展矩形的路径和在当前矩形中的每一段路径相同,当小球回到出发点时,一条直线的路径刚好经过最后一个扩展矩形的中心点。 最后扩展的路径和横边竖边恰好组成一个直

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 10130 简单背包

题意: 背包和 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <queue>#include <map>

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor