基于Protege的知识建模实战

2023-11-13

一.Protege简介、用途和特点
1.Protege简介
Protege是斯坦福大学医学院生物信息研究中心基于Java开发的本体编辑和本体开发工具,也是基于知识的编辑器,属于开放源代码软件。这个软件主要用于语义网中本体的构建,是语义网中本体构建的核心开发工具,下面操作使用版本为5.5.0。

2.Protege用途

  • Protege是一组自由开源的工具软件,用于构建域模型与基于知识的本体化应用程序。
  • Protege提供了大量的知识模型架构与动作,用于创建、可视化、操纵各种表现形式的本体。
  • 可以通过用户定制实现域-友好(领域相关)的支持,用于创建知识模型并填充数据。
  • Protege可以通过两种方式进行扩展:插件和基于Java的API。
  • 相比与其它的本地构建工具而言,Protege最大的好处在于支持中文,在插件上,用OntoGraf可实现中文关系的显示。

3.Protege特点

  • 类建模(Class modeling):Protege提供了一个图形化用户界面来建模类(领域概念)和它们的属性及关系。
  • 实例编辑(Instance editing):从这些类中,Protege自动产生交互式的形式,全用户或领域专家进行有效实例编辑成为可能。
  • 模型处理(Model processing):Protege有一些插件库,可以定义语义、解答询问以及定义逻辑行为。
  • 模型交换(Model exchange):最终的模型(类和实例)能以各种各样的格式被装载和保存,包括XML、UML和资源描述框架RDF。

二.Protege案例
通过简单例子介绍Protege基本操作,包括建立本体、构建类、建立子类、构建类之间的关系、建立对象属性、建立数据属性、建立实例、保存本体、可视化和推理。具体kgexample-v2.owl文件下载参考[2]。

1.建立本体
打开Protege后就是新建本体的界面,如下所示:

2.构建类
在Entities页面,选择Class标签,右键点击owl:Thing,选择增加子类"人物"和"地点"。

3.建立子类
右键点击"人物",然后增加子类"禅师",如下所示:

4.构建类之间的关系
因为人物和地点是不同的事物,即它们相互具有排它性(owl:disjoinWith)。首先选中"人物",在Entities右侧Description点击DisjointWith后的+,在弹出的界面中展开owl:Thing,选择"地点"后确定。

5.建立对象属性
标签Entities->Object properties->右键owl:topObjectProperty->Add Sub-properties->曾住:

为属性添加domain和range属性值,如下所示:

6.建立数据属性
首先Entities->Data properties->owl:topDataProperty->Add Sub-properties->法号,然后选中法号->Description->Range->Built in datatypes->xsd:string:

说明:限制"法号"该属性的取值范围为字符串。

7.建立实例
首先标签Entities->Individuals->点击菱形图标->佛印禅师,然后Entities->Description->Types->Class Hierarchy->禅师。这样该实例就有了类型的约束,如下所示:

添加实例之间的关系,选中"佛印禅师"->Property assertions->Object property assertions->点击±>输入对象属性名称(曾住)->输入实例名称(镇江金山寺)。这样"佛印禅师"和"镇江金山寺"通过"曾住"关联起来,如下所示:

实例添加属性值,选中"苏轼"->Property assertions->Data property assertions->+:

这样就为"苏轼"实例的属性"别名"添加了具体的值,即苏东坡、东坡。

8.保存本体
Ctrl+S保存本体,选择"RDF/XML Syntas"文件格式,保存为kgexample.owl。如下所示:

9.可视化
Windows->Tabs->OntoGraf,如下所示:

10.推理
Reasoner->HermiT->Start reasoner,推理得到的信息将会在对应的描述中黄色背景显示出来。裴休是裴文德的父亲父亲的domain是人物,range是男人,推出裴休是男人的一个实例,如下所示:

对于推导出来的信息,如果想知道为什么被推理机推导出来,可以点击推导出的信息后面的问号,解释的原因会在新的对话框中显示出来。

参考文献:
[1]Protege插件库:https://protegewiki.stanford.edu/wiki/Protege_Plugin_Library
[2]kgexample-v2.owl: https://url39.ctfile.com/f/2501739-934982316-535253?p=2096 (访问密码: 2096)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Protege的知识建模实战 的相关文章

  • 新版发布

    距离 v3 10 大版本发布刚过去一个月 v3 10 2 也要正式 release 了 快来看看它新增了哪些新功能以及修复了哪些问题吧 新功能 认证 品高云 OAuth 认证源支持 主机 支持自定义 PCI 透传设备的透传 主机 OpenS
  • 常用数据结构简讲

    在这里我会列举几个常用的STL数据结构与文档 更舒服的查看体验 1 v e c t o r vector vector 官网文档 可变长数组 动态数组 ST

随机推荐

  • c++基础--另类的分支结构

    前言 本节课讲的主要知识点是三目运算符和switch语句 同时也是我们分支结构部分的结尾内容 而从第三课开始到第五课 都是讲述分支结构的相关知识点 他们的特点都是相辅相成的 因此建议通读三篇文章 加强理解 同时做题也是必不可少滴 三目运算符
  • git commit --amend用法 合并commit

    反复修改并提交产生大量commit 正常第一次创建a txt提交 后创建b txt提交 会产生多个commit信息 git reset 回退到提交b txt之前 使用git commit amend打开后 操作同vim在其中可修改commi
  • Java静态变量、静态常量、静态方法

    Java静态变量 静态常量 静态方法 静态变量和静态方法都属于静态对象 在外部调用静态方法时 可以使用 类名 方法名 的方式 也可以使用 对象名 方法名 的方式 而实例方法只有后面这种方式 也就是说 调用静态方法可以无需创建对象 1 Jav
  • 程序人生:2023测试求职超千万,软件测试还能不能做?(过来人的建议)

    先说结论 可以 但是岗位要求会越来越高 只有不断的学习 提升自己的技术能力才是王道 测试的前景一定是光明的 岗位也是会越来越多 但是这绝不意味着我们可以在测试的行业里滥竽充数 提升自己的能力才是未来不被淘汰的关键 互联网的高速发展 对软件的
  • C语言宏定义、宏函数、内置宏与常用宏

    前言 在C语言中 变量类型 循环控制 基础语法等与其他高级语言基本无异 而C语言 C 特有的两把双刃剑指针和宏定义 宏函数使得C语言在底层开发中披荆斩棘 无所不能 这两个概念涉及范围比较广 其分支点也比较多 可谓星罗棋布 但这每颗星都足以照
  • JAVA中的成员变量和局部变量的区别

    成员变量与局部变量的区别 类中的位置不同 成员变量 类中 方法外 局部变量 方法内或方法声明上 作用范围不同 成员变量 类中 局部变量 方法中 初始化值的不同 成员变量 有默认值 局部变量 无默认值 练习 说明x和y和z哪个是局部变量哪个是
  • 【C++】红黑树

    文章目录 红黑树的概念 红黑树的性质 红黑树的节点定义 红黑树的结构 红黑树的插入操作 红黑树的验证 红黑树删除 红黑树模拟实现STL中的map与set 改造红黑树 map的模拟实现 set的模拟实现 红黑树的概念 红黑树 是一种二叉搜索树
  • 测试开发知识总结(一)

    本文内容顺序 测试基础理论 测试岗经常被问到的场景题 智力题 测试岗高频算法题 数据库 Linux知识点 常用自动化测试工具 1 Appium 官网 http appium io AppUI自动化测试 Appium 是一个移动端自动化测试开
  • TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation

    TransUNet Transformers Make Strong Encoders for Medical Image Segmentation 发表时间 2021年2月 发表期刊 Arxiv Abstract 医学图像分割是发展医疗保
  • Spring- 上传文件 MultipartFile.transferTo() 报错 FileNotFoundException

    上传文件时 使用MultipartFile transferTo 将文件保存到本地路径 报错 java io IOException java io FileNotFoundException C Users XXXXX AppData L
  • vue单文件组件1(webpack打包)

    一 vue单文件组件开发流程 webpack打包 1 源文件目录结构 2 package json 3 webpack config js HTML Webpack Plugin依据html模板生成一个自动引用你打包后的文件 js或css
  • 【数据结构(C语言描述)】环形队列

    目录 一 基础知识 二 数组实现环队 2 1 初始化 2 2 判断环队是否为空 2 3 判断环队是否为满 2 4 入队 2 5 出队 2 6 取队头元素 2 7 取队尾元素 2 8 销毁环队 三 链表实现环队 3 1 初始化 3 2 判断环
  • STM32学习心得三十二:CAN通信基础知识、原理、配置及实验

    记录一下 方便以后翻阅 主要内容 1 CAN通信基础知识 2 STM32 CAN控制器简介 3 相关实验代码解读 参考资料 STM32中文参考手册 V10 第22章 控制器局域网 bxCAN 实验功能 CAN实验需要两个开发板 系统启动后
  • ctfshow-萌新-web1( 利用intval函数的特性获取敏感数据)

    ctf show 萌新模块的web1关 这一关考察的是intval 函数转换字符串时的特性以及SQL的拼接绕过 这一关直接就给了源码 并提示我们 id 1000 时 就是flag 先分析一下源码 首先是 intval 函数将参数id转换为数
  • PostgreSQL学习研究笔记(一)

    何为PostgreSQL PostgreSQL 是以加州大学伯克利分校计算机系开发的 postgres 版本 4 2 为基础的对象关系型数据库管理系统 PostgreSQL是最初的伯克利代码的开源继承者 任何人都可以以任何目的免费使用 修改
  • T-Kernel Error Code

    参考 tk errno h define E OK 0 Completed successfully define E SYS ERCD 5 0 System error define E NOCOP ERCD 6 0 Coprocesso
  • linux—通配符详解及总结

    本博客主要详解关于linux中常使用的通配符的知识点 主要分为三个步骤 通配符 和 的详细解释 举例截图说明 个人的总结理解 一 通配符 和 的详细解释 ps 因为通配符 中可添加很多变量 所以这里我会简单举出几个例子来说明 其他情况请类比
  • R 和 Rstudio 在线更新

    R 在线更新 最近安装 R 包的时候老是会遇到有些包不适应老版本 无奈还是更新了新的版本 卸载重装就太麻烦了 而且以前的包还需要重新加载 在线更新是最好的方法 可以直接在 Rstudio 中直接更新 直接运行以下命令就行 install p
  • Python还能这样学?独一档的学习路线与方法!两个月就能彻底掌握

    为什么要选择学习Python 我大学本专业当时学的是过时很久的工程物流管理 经常跟学长学姐们聊到他们的就业情况 然后自己也对未来的就业之路产生了很大的怀疑 后面经过一些了解 以及学长学姐的介绍 知道了Python 后面深入的了解了后 我果断
  • 基于Protege的知识建模实战

    一 Protege简介 用途和特点 1 Protege简介 Protege是斯坦福大学医学院生物信息研究中心基于Java开发的本体编辑和本体开发工具 也是基于知识的编辑器 属于开放源代码软件 这个软件主要用于语义网中本体的构建 是语义网中本