我们要做一个智能问答搜索引擎,这个搜索引擎是基于知识图谱(本质上是一种大规模语义网络)本体库的。首先,第一步,我们需要构建一个本体库。下面,我将简要说明一下本体库的构建过程。
一. 工具说明
本体构建工具采用的是斯坦福大学开发的Protege,它是用Java开发的一个开源项目,采用图形化界面来编辑,支持owl文件的生成和管理。课程培养方案本体采用的是protege5.5.0版本,类关系图采用的是OntoGraf,以OWL作为本体描述语言。protege工具中对于本体的描述,使用了Class(类)、Properties(属性)、Individuals(个体)选项。在Class选项中,可以定义类及其子类。在Properties选项中,可以设定对象属性和数据属性。 对象属性用于设定类之间的关系,可以设定作用的定义域和值域。数据属性用于设定类的某一个方面的特性。本体是以OWL作为描述语言。
二.构建步骤
1. 本体主要构建如下类:
专业、基本信息、学期、教学方法、教学目标、教学计划和内容、教材、考核、课程、课程实验、课程描述。其之间的关系图如下:
![](https://img.haomeiwen.com/i13977750/0805a2dcd85a15f7.png)
其中,每个类都有其相关的实例,实例之间由数据属性和对象属性进行表示和连接。这里以《Java程序设计》进行举例说明:
首先提取出如上的类关系图,其中教学目标有子类指标点、毕业要求、课程目标。教学计划和内容有子类学时、学分、章节。教材有子类参考书目、指定教材。考核有子类成绩评定、考核方式。课程实验有实验内容、实验要求等。
2.对第一步中所建立的类进行实例化,实例化的结果如下:(以章节为例)
![](https://img.haomeiwen.com/i13977750/585ced2d3d4d409d.png)
主要实例如下:
![](https://img.haomeiwen.com/i13977750/87bf270e355bec54.png)
3.在实例之间添加对象属性和数据属性(has与is_a 是逆属性关系)
![](https://img.haomeiwen.com/i13977750/84da420641df2a46.png)
![](https://img.haomeiwen.com/i13977750/e4b5928bd8413c94.png)
具体以Java程序设计这个课程实例为例,其数据属性,对象属性的关系如下:
对象属性包括《Java程序设计》这门课程适用的专业、课程性质、学分、学时等信息。数据属性主要包括课程名称、大纲执笔者、课程代码、课程英文名等信息。
![](https://img.haomeiwen.com/i13977750/0a60edec0a08e502.png)
4.添加一些基本的限制(Restrictions)
例如“Java程序设计”课程最大为45个学时,3个学分,可添加数据属性限制。教学内容包含重点和难点,可添加限制表示为:教学内容has_contained some 重点;教学内容has_contained some 难点;
5. 类、实例之间的关系如下图
![](https://img.haomeiwen.com/i13977750/614055f8be41c0cd.png)
以上写的是关于《Java程序设计》这一门课的本体,只是粗略的写了一下构建过程,具体的构建过程在完全确定好本体结构后再写一份详细的进行阐述。
网友评论