基于Protege的知识建模实战

基于,protege,知识,建模,实战 · 浏览次数 : 187

小编点评

**Protege简介** Protege是斯坦福大学医学院生物信息研究中心基于Java开发的本体编辑和本体开发工具,也是基于知识的编辑器。它属于开放源代码软件,用于构建域模型与基于知识的本体化应用程序。 **主要功能:** * 类建模(Class modeling):提供图形化用户界面来建模类 (领域概念) 和它们的属性及关系。 * 实例编辑(Instance editing):从这些类中,Protege 自动产生交互式的形式,允许用户进行有效实例编辑。 * 模型处理(Model processing):提供一些插件库,用于定义语义、解答询问以及定义逻辑行为。 * 模型交换(Model exchange):最终的模型 (类和实例) 可以以各种各样的格式被装载和保存,包括 XML、UML 和资源描述框架 RDF。 **案例说明:** 1. 建立本体 2. 建立类 3. 建立子类 4. 建立类之间的关系 5. 建立对象属性 6. 建立数据属性 7. 建立实例 8. 保存本体 9. 可视化 10. 推理

正文

一.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)

与基于Protege的知识建模实战相似的内容:

基于Protege的知识建模实战

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

基于 Three.js 的 3D 模型加载优化

作为一个3D的项目,从用户打开页面到最终模型的渲染加载的时间也会比普通的H5项目要更长一些,从而造成大量的用户流失。为了提升首屏加载的转化率,需要尽可能的降低loading的时间。这里就分享一些我们在模型加载优化方面的心得。

基于MindSpore实现BERT对话情绪识别

本文分享自华为云社区《【昇思25天学习打卡营打卡指南-第二十四天】基于 MindSpore 实现 BERT 对话情绪识别》,作者:JeffDing。 模型简介 BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Trans

基于 Vagrant 手动部署多个 Redis Server

环境准备 宿主机环境:Windows 10 虚拟机环境:Vagrant + VirtualBox Vagrantfile 配置 首先,我们需要编写一个 Vagrantfile 来定义我们的虚拟机配置。假设已经在 D:\Vagrant\redis 目录下创建了一个 Vagrantfile,其内容如下:

基于EF Core存储的Serilog持久化服务

前言 Serilog是 .NET 上的一个原生结构化高性能日志库,这个库能实现一些比内置库更高度的定制。日志持久化是其中一个非常重要的功能,生产环境通常很难挂接调试器或者某些bug的触发条件很奇怪。为了在脱离调试环境的情况下尽可能保留更多线索来辅助解决生产问题,持久化的日志就显得很重要了。目前Ser

基于EF Core存储的国际化服务

前言 .NET 官方有一个用来管理国际化资源的扩展包Microsoft.Extensions.Localization,ASP.NET Core也用这个来实现国际化功能。但是这个包的翻译数据是使用resx资源文件来管理的,这就意味着无法动态管理。虽然官方有在文档中提供了一些第三方管理方案,但是都不太

基于FileZilla上传、下载服务器数据的方法

本文介绍FileZilla软件的下载、配置与使用方法。 在之前的博客中,我们提到了下载高分遥感影像数据需要用到FTP(文件传输协议,File Transfer Protocol)软件FileZilla;这一软件用以在自己的电脑与服务器之间相互传输数据,在进行下载科学数据、网站开发等等操作时,经常需要

Vite5+Electron聊天室|electron31跨平台仿微信EXE客户端|vue3聊天程序

基于electron31+vite5+pinia2跨端仿微信Exe聊天应用ViteElectronChat。 electron31-vite5-chat原创研发vite5+electron31+pinia2+element-plus跨平台实战仿微信客户端聊天应用。实现了聊天、联系人、收藏、朋友圈/短

基于 .net core 8.0 的 swagger 文档优化分享-根据命名空间分组显示

之前也分享过 Swashbuckle.AspNetCore 的使用,不过版本比较老了,本次演示用的示例版本为 .net core 8.0,从安装使用开始,到根据命名空间分组显示,十分的有用

跟我一起学习和开发动态表单系统-前端用vue、elementui实现方法(3)

基于 Vue、Element UI 和 Spring Boot + MyBatis 的动态表单系统前端实现解析 在现代企业信息系统中,动态表单是一种非常常见的功能。它可以根据业务需求灵活地调整表单结构,以满足不同的数据收集和展示需求。在本文中,我们将探讨一种基于 Vue、Element UI 和 S