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é使用入门的更多相关文章

  1. 知识图谱学习与实践(4)——通过例句介绍Sparql的使用

    通过例句介绍Sparql的使用 1 简介 SPARQL的定义,是一个递归的定义,为SPARQL Protocal and RDF Query Language,是W3C制定的RDF知识图谱标准查询语言 ...

  2. 知识图谱学习与实践(6)——从结构化数据进行知识抽取(D2RQ介绍)

    1 概述 D2RQ,含义是把关系型数据库当作虚拟的RDF图数据库进行访问.D2RQ平台是一个将关系型数据库当作虚拟的.只读的RDF图数据库进行访问的系统.提供了基于RDF访问关系数据库的内容,而无需复 ...

  3. 知识图谱推理与实践 (2) -- 基于jena实现规则推理

    本章,介绍 基于jena的规则引擎实现推理,并通过两个例子介绍如何coding实现. 规则引擎概述 jena包含了一个通用的规则推理机,可以在RDFS和OWL推理机使用,也可以单独使用. 推理机支持在 ...

  4. 知识图谱推理与实践(3) -- jena自定义builtin

    在第2篇里,介绍了jena的The general purpose rule engine(通用规则引擎)及其使用,本篇继续探究,如何自定义builtin. builtin介绍 先回顾builtin为 ...

  5. Atitit learn by need 需要的时候学与预先学习知识图谱路线图

    Atitit learn by need 需要的时候学与预先学习知识图谱路线图 1. 体系化是什么 架构 知识图谱路线图思维导图的重要性11.1. 体系就是架构21.2. 只见树木不见森林21.3. ...

  6. 如何系统学习知识图谱-15年+IT老兵的经验分享

    一.前言 就IT而言,胖子哥算是老兵,可以去猝死的年纪,按照IT江湖猿龄的规矩,也算是到了耳顺之年:而就人工智能而言,胖子哥还是新人,很老的新人,深度学习.语音识别.人脸识别,知识图谱,逐个的学习了一 ...

  7. 知识图谱与机器学习 | KG入门 -- Part1-b 图深度学习

    介绍 我们正在定义一种新的机器学习方法,专注于一种新的范式 -- Data Fabric. 在上一篇文章中,我们对机器学习给出了新的定义: 机器学习是一种自动发现Data Fabric中隐藏的&quo ...

  8. 知识图谱-生物信息学-医学顶刊论文(Briefings in Bioinformatics-2021):生物信息学中的图表示学习:趋势、方法和应用

    4.(2021.6.24)Briefings-生物信息学中的图表示学习:趋势.方法和应用 论文标题: Graph representation learning in bioinformatics: ...

  9. 学习笔记之知识图谱 (Knowledge Graph)

    Knowledge Graph - Wikipedia https://en.wikipedia.org/wiki/Knowledge_Graph The Knowledge Graph is a k ...

随机推荐

  1. 用composer安装php代码(以安装phpmailer为例)

    1.安装composer.exe软件 2.下载composer.phar 3.创建composer.json文件 { "require": { "php": & ...

  2. 手动实现一个 IOC/DI 容器

    第一章为源码解析. 第二章为实现一个简单的 IOC 容器. 第三章进阶 Spring 插件开发. 手动实现一个 IOC/DI 容器 上一篇文章里我们已经对 Spring 的源码有了一个大概的认识,对于 ...

  3. c/c++基础内容回顾

    1.1基本数据类型 1.1.1 变量的定义 变量类型 变量名 变量类型 变量名=初值: 注意:不能以C语言标识符作为变量名,变量名的第一个字符必须是字母或者下划线,其它位置字符必须是字母.数字.下划线 ...

  4. nginx反向代理中神奇的斜线

    nginx反向代理中神奇的斜线 在进行nginx反向代理配置的时候,location和proxy_pass中的斜线会造成各种困扰,有时候多一个或少一个斜线,就会造成完全不同的结果,所以特地将locat ...

  5. GIT \ SVN 版本管理 git + gitHub

    场景1   想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件"另存为--"一个新的Word文件,再接着改,改到一定程度,再"另存为--"一个新 ...

  6. MySQL之基础操作

    一.安装 Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数 ...

  7. Jmh测试JDK,CGLIB,JAVASSIST动态代理方式的性能

    前言 JDK,CGLIB,JAVASSIST是常用的动态代理方式. JDK动态代理仅能对具有接口的类进行代理. CGLIB动态代理方式的目标类可以没有接口. Javassist是一个开源的分析.编辑和 ...

  8. TCP中的粘包问题,以及用TCP和UDP实现多次聊天

    TCP协议 在连接内多和客户端说几句 #server端 import socket sk = socket.socket() sk.bind(('127.0.0.1',9001)) sk.listen ...

  9. C++11/14笔记

    目录 语言层面 模板表达式中的空格 nullptr和std::nullptr_t 自动推导类型----auto 一致性初始化----Uniform Initialization 初始化列表(initi ...

  10. flink dataset api使用及原理

    随着大数据技术在各行各业的广泛应用,要求能对海量数据进行实时处理的需求越来越多,同时数据处理的业务逻辑也越来越复杂,传统的批处理方式和早期的流式处理框架也越来越难以在延迟性.吞吐量.容错能力以及使用便 ...