本文将简单介绍知识图谱的设计工具之一:Protege, 并通过一个简单的知识图介绍如何构建。在第二篇中将用 webProtege 构建,并将构建的文件导入到图数据库NEO4J中。
Protege: https://protege.stanford.edu
官方介绍:A free, open-source ontology editor and framework for building intelligent systems
应用首页
开始前,将本次的知识图在图数据库neo4j的表示如下:
如图,下载桌面端打开之后显示的界面。这里可修改为自己的项目名,如下,命名为demo项目:
进入 Entities 标签:其中可能有若干个标签,Class标签可以看作知识实体的分类,Data properties标签可以看作是具体某个实体的属性集合;Object properties标签可以看作是实体间的关系集合。
在protege的class中,所有的分类都继承自Thing大类中,我们可以进行添加子类,如,加入Company、Person和Location分类。点击Classes标签内左上角的图标,添加子类
根据知识图,建立三个分类下的具体实体:找到Individuals (by class) 标签,点击标签内左上角的图标,添加实体,输入名称:
为实体添加其类别信息:找到该实体的Description标签,在Types中选择创建好的类别:
再为所有实体添加属性:回到Entities标签中的Data properties标签,选择左上角的添加子属性按钮,与类别相似,属性也是继承自一个顶层属性,添加完成之后可以在Description窗口指定属性的领域和范围。回到Individuals by class 标签,选中实体,在Property assertions窗口中为实体设置数据属性。点击Data property assertions旁的“+”号按钮,在弹出的框中,选择属性名称,在右侧输入属性值。
至此,我们添加了实体和实体的数据属性。可以使用protege自带的OntoGraf查看当前的知识图:如果没有OntoGraf标签,可以点击Window选项,选择Tabs,将OntoGraf标签页勾选,如图:
本项目的图显示如下:
添加了实体和属性之后,还需要添加实体之间的关系,回到Entities标签页中的Object properties标签页,创建 Holding 和 Located 两个关系。同样的,可以为两个关系属性创建约束范围和适用领域。
创建好关系属性之后,去实体上绑定关系。回到individuals by class标签,选择一个实体,在Property assertions内容页中,点击Object property assertions。在左侧填入关系名称,需要准确填写,也可使用 Ctrl + 空格键进行补全,如果填写的关系名称不存在则会提示 非法的属性名;在右侧填写另一个实体的名称。
确定完成之后,可以看到该属性:
再为其他实体绑定关系。完成之后再重新展开OntoGraf中的Thing标签,可以看到完整的知识图如下: