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. jvm(4)---垃圾回收(哪些对象可以被回收)

    1.java堆中几乎放着所有对象的实例,那么什么样子的对象才是可以被回收的呢? 1.1.引用计数法: 给对象添加一个引用计数器,当有地方引用的时候,计数器就+1,引用失效就-1:任何时候当计数器为0, ...

  2. wince kill 进程

    http://www.cnblogs.com/fujinliang/archive/2012/09/13/2684165.html 原文地址 http://www.2cto.com/kf/201504 ...

  3. 【Flink】Flink 底层RPC框架分析

    1. 前言 对于Flink中各个组件(JobMaster.TaskManager.Dispatcher等),其底层RPC框架基于Akka实现,本文着重分析Flink中的Rpc框架实现机制及梳理其通信流 ...

  4. sql server编写简洁四则运算表达式脚本实现计算批次功能(C#等其它编程语言也能直接用此通用表达式)

    问题: 在数据库编程开发中,有时会遇到数据量比较大的情况,如果直接大批量进行添加数据.修改数据.删除数据,就会是比较大的事务,事务日志也比较大,耗时久的话会对正常操作造成一定的阻塞.虽不至于达到删库跑 ...

  5. Spring 5.x 、Spring Boot 2.x 、Spring Cloud 与常用技术栈整合

    项目 GitHub 地址:https://github.com/heibaiying/spring-samples-for-all 版本说明: Spring: 5.1.3.RELEASE Spring ...

  6. 教妹子用IDEA创建web应用,部署到Tomcat服务器

    自从上一篇原创发表之后,粉丝反应热烈.主要分两派,一派关注技术的,觉得看了那么多的公众号文章,终于找到一篇能看懂的了,于是沾沾自喜.另一派是关注妹子的,感叹自己空有一身绝技,公司里却无妹子可教,大喊可 ...

  7. php如何定义数组常量

    是这样吗?<?php define('BEST_PHPER',array('name'=>'巩文','address'=>'china')); My God,明确告诉你不可以:原因是 ...

  8. 巧妙解决element-ui下拉框选项过多的问题

    1. 场景描述 不知道你有没有这样的经历,下拉框的选项很多,上万个选项甚至更多,这个时候如果全部把数据放到下拉框中渲染出来,浏览器会卡死,体验会特别不好 用人会说element-ui的select有一 ...

  9. 2018.11.2 2018NOIP冲刺之最短公共父串

    很有意思的一个题 试题描述 给定字符串A和字符串B,要求找一个最短的字符串,使得字符串A和B均是它的子序列. 输入 输入包含两行,每行一个字符串,分别表示字符串A和字符串B.(串的长度不超过30) 输 ...

  10. OC CollectionView和TableView自身高度的隐式递归计算,改变父试图布局

    CollectionView和TableView自身高度的隐式递归计算 1.前沿:我们一般会碰到这样的需求,一个tableview或者一个colletionview放在一个scrollview上边,而 ...