利用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

相关文章

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

使用Python和python-pptx构建Markdown到PowerPoint转换器

《使用Python和python-pptx构建Markdown到PowerPoint转换器》在这篇博客中,我们将深入分析一个使用Python开发的应用程序,该程序可以将Markdown文件转换为Pow... 目录引言应用概述代码结构与分析1. 类定义与初始化2. 事件处理3. Markdown 处理4. 转

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.