知识图谱学习与实践(4)——Protégé使用入门
1 Protégé简介
Protégé是一个本体建模工具软件,由斯坦福大学基于java语言开发的,属于开放源代码软件。软件主要用于语义网中本体的构建和基于本体的知识应用,是本体构建的核心开发工具,最新版本为5.5.0(截至2019年7月)。
Protégé支持中文,能够实现实体关系的中文展示。如下图。

具体来说,Protégé具有以下功能。
类建模。Protégé提供了一个图形化用户界面来建模类(包括概念)和它们的属性以及关系。
实例编辑。根据创建的类型,Protégé会自动产生交互的形式,可以根据类之间的关系获得相应实例的约束,并对实例进行编辑。
模型处理。Protégé有一些插件库,可以定义语义、解答询问以及定义逻辑行为。
模型交换。最终的模型(类、实例、关系、属性等)能以各种各样的格式被保存和加载,包括XML、UML、RDF、OWL等。
2 Protégé的安装
软件到官网https://protege.stanford.edu/products.php直接下载,我们使用的是5.5.0版本,下载后是名为Protege-5.5.0-win.zip的压缩文件,解压缩后,得到以下文件。

直接运行Protege.exe即可。
Protégé是由java开发的,运行时需要java运行时环境,运行时可能需要配置一下java的运行时环境,按照提示进行配置就可以了。
3 软件主要工作tab
打开软件后,可以看到工作区域是由很多tab组成。

Active ontology是显示当前的实体名称,以URI的形式显示,前面是www.semanticweb.org后面跟着主机名(我的主机名称为dell),再后面是默认的根据时间命名实体。
Entities,可以看作是实体的总览,能够看到我们创建实体的一些主要信息,是对实体信息的汇总。
Classes,是对本体模型中,类型部分的编辑,能够定义类之间的层次关系,相互之间的关系。
Object properties,物体关系,可以理解为编辑实体外部的关系,也就是实体和实体之间的关系。
Data properties,数据属性,可以理解为编辑实体内部的属性,用来定义实体本身所具有的属性以及属性值。
Annotation Properties,标注属性,是w3c定义的一些常用的属性,根据URI可以看到这些属性的具体说明。
Individuals by class,根据类型创建的实例,用来编辑实例信息,类似于java程序中的对象,要归于某个类别。
OntoGraf,本体关系图,用来展示我们创建的本体里面各个实体之间的层次关系。
SPARQL Query,SPARQL查询,使用SPARQL语言,对创建的本体进行查询,获取查询结果。
4 创建一个本体实例
4.1 创建本体
软件打开后,就像大多数软件一样,利用file-new来创建一个本体,Protégé会自己根据默认规则为本体起一个名称,比如我创建的本体名称为:http://www.semanticweb.org/dell/ontologies/2019/6/untitled-ontology-35,然后我们就可以编辑这个本体了。
4.2 建立模型层的数据
本体分为模型层和数据层,模型层主要定义类和类之间的关系。Thing是所有类型的根节点,也就是基类,所有的类型都是从Thing派生出来的,我们建立如图的类型层次结构。

在Classes这个tab页面下,可以看到红色方框标出来的是Add subclass,一个是工具栏直接增加子类,一个是通过右键选择增加子类,比如我们将鼠标点击owl:Thing之后,然后增加子类人物、势力、工具。然后再点击人物,再增加子类文官、武将和皇族,同样操作,增加工具的子类,武器和马匹。
还可以定义类之间的一些约束关系,比如人物和工具是互斥的,选择人物后,在右下方,Disjoint with关系选择工具。表示了人物和工具的互斥关系,这时候,我们点击工具,就会发现,Disjoint with已经自动添加了人物这个类。
4.3 创建实体关系
创建实体之间的关系,在Object Properties这个tab页面。

编辑方法和添加类型的tab页面类似,最顶层的实体关系为owl:topObjectProperty,选择后,点击工具栏的按钮或者右键选择add sub-properties,添加使用、属于和骑三个关系。对于“使用”这个关系,Domains选择人物,Ranges选择武器,代表三元组中主语是人物,谓语是使用,宾语是武器,组成的三元组就是人使用武器。“属于”这个关系,Domains和Ranges分别为人物和势力,“骑”这个关系的Domains和Ranges分别为人物和马匹。
4.4 创建实体属性
创建实体的属性,在Data properties这个tab页面。

三国里面的人物,人名都有一个字,比如一般都说,关羽关云长。关羽就是他的名字,云长是他的字。名字用于自称,字都是别人喊得,表示尊重。
添加属性“字”后,Domains我们选择人物,Ranges选自如图,在Built in datatypes中选择xsd:string,表示“字”的属性值类型是个字符串。
4.5 创建实例
创建本体的实例,在Individuals by class这个tab页面。

在Individuals里面,创建关羽、刘备、诸葛亮、蜀、赤兔马、青龙偃月刀等实例。然后分别编辑这些实例。此处以关羽为例说明对实例的编辑。
首先是确定实例的类型,关羽的类型,选择武将。然后增加实体的关系,骑赤兔马,属于蜀,使用青龙偃月刀等三个关系。最后增加数据属性,字为云长。
这样就确定了关羽这个实例的类型、关系和属性,从而编辑完成关羽这个实例。同样方法,编辑其它实例的类型、关系和属性,如果某项内容空缺,可以不编辑。
4.6 本体关系展示
对于本体的关系信息展示,在OntoGrap这个tab页面。

双击左侧的owl:Thing,在右侧区域会显示本体信息,将展示的信息中,有加号的都双击展开,就会看到整个本体的关系图。红色方框中,是以不同的方式展示关系图,依次是按字母网格展示,径向展示,弹簧展示,垂直树状展示,水平树状展示,垂直方向展示,水平方向展示等。如果将鼠标放到某个信息节点,就会显示该信息节点的详细信息。本例中显示的是“关羽”这个信息点的详细信息。
5 结语
介绍了Protégé的基础知识,并通过一个具体的本体创建过程,将软件的使用做了说明。Protégé作为一个强大的本体编辑工具,还有很多功能,比如推理能力,希望通过介绍,大家能够对Protégé进行简单的操作,并通过不断地实践和练习,能够更深入的理解和使用Protégé。
知识图谱学习与实践(4)——Protégé使用入门的更多相关文章
- 知识图谱学习与实践(4)——通过例句介绍Sparql的使用
通过例句介绍Sparql的使用 1 简介 SPARQL的定义,是一个递归的定义,为SPARQL Protocal and RDF Query Language,是W3C制定的RDF知识图谱标准查询语言 ...
- 知识图谱学习与实践(6)——从结构化数据进行知识抽取(D2RQ介绍)
1 概述 D2RQ,含义是把关系型数据库当作虚拟的RDF图数据库进行访问.D2RQ平台是一个将关系型数据库当作虚拟的.只读的RDF图数据库进行访问的系统.提供了基于RDF访问关系数据库的内容,而无需复 ...
- 知识图谱推理与实践 (2) -- 基于jena实现规则推理
本章,介绍 基于jena的规则引擎实现推理,并通过两个例子介绍如何coding实现. 规则引擎概述 jena包含了一个通用的规则推理机,可以在RDFS和OWL推理机使用,也可以单独使用. 推理机支持在 ...
- 知识图谱推理与实践(3) -- jena自定义builtin
在第2篇里,介绍了jena的The general purpose rule engine(通用规则引擎)及其使用,本篇继续探究,如何自定义builtin. builtin介绍 先回顾builtin为 ...
- Atitit learn by need 需要的时候学与预先学习知识图谱路线图
Atitit learn by need 需要的时候学与预先学习知识图谱路线图 1. 体系化是什么 架构 知识图谱路线图思维导图的重要性11.1. 体系就是架构21.2. 只见树木不见森林21.3. ...
- 如何系统学习知识图谱-15年+IT老兵的经验分享
一.前言 就IT而言,胖子哥算是老兵,可以去猝死的年纪,按照IT江湖猿龄的规矩,也算是到了耳顺之年:而就人工智能而言,胖子哥还是新人,很老的新人,深度学习.语音识别.人脸识别,知识图谱,逐个的学习了一 ...
- 知识图谱与机器学习 | KG入门 -- Part1-b 图深度学习
介绍 我们正在定义一种新的机器学习方法,专注于一种新的范式 -- Data Fabric. 在上一篇文章中,我们对机器学习给出了新的定义: 机器学习是一种自动发现Data Fabric中隐藏的&quo ...
- 知识图谱-生物信息学-医学顶刊论文(Briefings in Bioinformatics-2021):生物信息学中的图表示学习:趋势、方法和应用
4.(2021.6.24)Briefings-生物信息学中的图表示学习:趋势.方法和应用 论文标题: Graph representation learning in bioinformatics: ...
- 学习笔记之知识图谱 (Knowledge Graph)
Knowledge Graph - Wikipedia https://en.wikipedia.org/wiki/Knowledge_Graph The Knowledge Graph is a k ...
随机推荐
- 浅谈我在.net core一年里的收获
前言:以前一直在winserver的环境里从事web工作,安装一个sqlserver,iis,把项目部署上面就OK了,简单轻松一.结缘nginx以前一直听说nginx这个反向代理的web服务器,当玩n ...
- vue结合Ant Design实现后台系统的权限分配(支持无限子级嵌套)
最近公司的业务需要,要做一个后台管理系统的管理系统类似于这样子 功能需求如下: 左边是权限菜单,右边对应的是具体权限. 1.父级权限菜单选中,父级权限菜单的权限包括其中所有子级权限菜单的权限也要选中, ...
- HBase 学习之路(二)—— HBase系统架构及数据结构
一.基本概念 一个典型的Hbase Table 表如下: 1.1 Row Key (行键) Row Key是用来检索记录的主键.想要访问HBase Table中的数据,只有以下三种方式: 通过指定的R ...
- Analysis of requirement specification of parking management system
Analysis of requirement specification of parking management system PURPOSE OF THE SYSTEM The parking ...
- 用 IQ分布模拟图来测试浏览器的性能
今天天气太凉快,跟这个日历上属于夏天的那一页显得格格不入!就连我我床下那台废弃的ThinkPad,居然也十分透凉气,那外壳连我的体温高都没有,于是,我就开始想一个方法,让我那个废弃的电脑发热,顺便用它 ...
- Appium+python自动化(十六)- ADB命令,知否知否,应是必知必会(超详解)
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或 ...
- BZOJ 2435:[Noi2011]道路修建(树型DP)
http://www.lydsy.com/JudgeOnline/problem.php?id=2435 题意:中文题意. 思路:很简单的树形DP,sz记录儿子有多少个和cur记录走的哪条弧,然后直接 ...
- Python3 列表的基本操作
列表索引和切片 和字符串一样,也有索引和切片,只不过切出来的内容是列表. 索引的下标从0开始. lst= ["海上钢琴师", "奥特曼", "舌尖3& ...
- Oracle数据库---序列、索引、同义词
--创建序列create sequence deptno_seqstart with 50increment by 10maxvalue 70cache 3; --为了方便演示,创建了一个和dept表 ...
- Java基础之增强for循环
平时大家for循环应该用的不少,特别是增强for循环,简单快捷.但是在增强for中做删除操作,却会抛出java.util.ConcurrentModificationException,一起来看下. ...