Protege: the way to ontology

本文介绍可视化本体编辑器Protege的使用。
* 首先介绍对于Class、Property(包括Data property & Object property)的添加、修改,以及层级结构的构建。
* 接下来会介绍利用Protege编辑A-box信息。

Protege是一款基于JRE的知识图谱、本体编辑软件,支持Linux、MacOS、Windows多种平台。

下面我以一个医疗本体为例介绍本体知识库的构建。

什么是本体

本体概念起源很早,但是在信息学领域,它是一种知识的形式化表示。那么它描述的是什么知识?如何形式化表示?在我理解看来,实际上本体就是
* 用形式化、合乎某种规范的语言,来表示现实世界中的事件、物体;
* 本体是一种概念层面的用法,它描述了事物的类型、属性、相互间的关系的表示方式。

wikipedia有一段描述,关于Ontolog(Information Science)讲解得比较简单,摘录如下:

In computer science and information science, ontologies are used to formally represent knowledge within a domain. An ontology is defined as a formal, explicit specification of a shared conceptualization. It provides a common vocabulary to denote the types, properties and interrelationships of concepts in a domain.

Ontologies are the structural frameworks for organizing information and are used in artificial intelligence, the Semantic Web, systems engineering, software engineering, biomedical informatics, library science, enterprise bookmarking, and information architecture as a form of knowledge representation about the world or some part of it. The creation of domain ontologies is also fundamental to the definition and use of an enterprise architecture framework.

下面将介绍Protege的具体使用,其中创建并编辑了一个关于医疗、体检的本体。

为什么要用Protege

Protege作为一款跨平台的知识图谱编辑软件,能够提供本体创建、编辑,以及知识库中基于当前本体创建大量的EntityProperty等实例(Individuals)。

打开Protege

在Protege官网,需要JRE的支持。截至目前Protege的稳定版本已经到4.3,但是MacOS 10.9貌似不支持4.3,但是支持5.0 beta版。

在5.0 beta版,Mac下面打开Protege需要从命令行进入,输入./run.sh即可运行。

创建第一个本体

在下图中我们看到了Protege全貌。我们主要使用标签页中的Active OntologyEntitesClassObject PropertyData PropertyIndividuals这些标签。下面将一一进行介绍。

编辑本体元信息(meta data)

Active Ontology中,我们可以编辑本体的众多信息。例如

  • Ontology Header能编辑本体的名称、版本号,如图所示:

  • 在右侧Metrics一栏可以对当前本体的信息进行统计,如图:

  • 下方的栏目(如图)可以非常方便地导入已有的本体,以及修改本体的前缀等信息

添加类(Class)信息

在第三个标签页Classes中可以对本体中,类型信息与类型的层级结构进行编辑。

  • 左上角的栏目可以增加类型、编辑、删除类型信息,同时能够进行拖动某个类型实体,然后放到对应的其它实体层级下面,形成subclass关系,如图:

  • 下图显示的是一个比较完整的编辑好的类型层级结构,同时对于单个类型实体,我们能够编辑comment信息等。

添加关系(Property)信息

这里比较关键的一点是

  • Object Property是知识库中,两个不同实体之间的关系,它们连接的是两个实体(Entity);
  • Data Property是知识库中,为某一个实体添加其它属性的关系链接,它们连接的是一个实体与一个Literal;

所以很容易就解释了Protege中为什么有两种Property。下面两张图,

  • 第一张显示了Object Property的一些结果,操作类似于Class,也能规定不同Property之间的层级关系,可以用来进行推理(reasoning);

  • 第二张图显示Data Property的一些层级关系与对应的限制。

二者的相同特性都是可以规定限制的domainrange信息,用来表示知识库中有向关系的主语、宾语类型限制

添加实例(Individual)信息

Individuals标签页中,我们可以对不同的类型信息,定义一些实例,例如下图所示。这里对于ECGExam定义了一个实体,然后右侧是对应的实体类型、属性信息,可以发现已经用到了之前定义的一些属性关系。

开始推理

Protege自带了一个Hermit推理工具。在Reasoner工具栏中选择相应的推理工具,点击start即可开始推理过程。期间可以发现一些类型、属性的层级错误,或者对应的属性domain、range限制错误。

你可能感兴趣的:(NoSQL,Semantic,Web)