第29卷第5期 闽江学院学报 V01.29 No.5 2008年1O月 JOURNAL OF MINj『IANG UNIVERSITY 0ct.2008 一种基于本体的学科知识库构建方法 林木辉 ,张杰 ,汪星一 (1.福建师范大学教育技术系,福建福州350007;2.闽江学院教育技术中心,福建福州350108) 摘要:学科知识库是智能答疑系统和智能教学系统的基础部件.基于本体的学科知识构建方法,能够描述知识库中 学习资源的语义,有利于知识的共享和重用以及个性化服务.首先分析现有网络教学支持系统普遍存在的问题,指 出构建基于本体的知识库是一种解决已存在问题的有效方法;接着,介绍了本体基本概念及其构建的一般步骤;最 后,在分析了《数据结构》学科的知识结构特点之后,利用斯坦福大学开发的本体建模工具Prot6g6构建《数据结构》 学科知识库案例来具体演示知识库的构建过程,并通过调用Protrg6一OWL API对知识库进行查询. 关键词:知识库;本体;OWL 中图分类号:TP311:BO16 文献标识码:A 文章编号:1009—7821(2oo8)o5—0069—05 A construction method of the subject knowledge database based on ontology UN MU.hui‘。ZHANG Jie .WANG Xing.yi (1.Department ofEducation Technology,Fujian Normal Unive ̄ity,Fuzhou,Fujian 350007,China; 2.Modern Educational Technology Center,Minjiang University,Fuzhou,Fujian 350108,Chian) Abstract:A subject knowledge database is the basic component of the automatic answer system and intel— ligence teaching system.The method of constructing the subject knowledge database based on ontology is able to describle the symantic of learning resource in knowledge base,which will be helpful to knowledge sharing and reusing as well as personalized service.In this paper,firstly we analyze the common problem of the e-learnihg suppo ̄system currently,and indicate that it is a efifcient way to solve the problem it by constructing a subject knowledge database based on ontology.Thereby,we intoduce a general approach htat how to conctruct knowledge database.Finally,we present it in detail through designing a subject knowledge database of data s ̄cuction using protrg6 that developed by Stanford University and query it by calling Prot6g6一OWL API. Key words:knowledge database;ontology;OWL 0引言 知识库系统广泛应用于决策、控制、诊断、教学、设计等领域,是现代许多智能系统的关键基础部件,不同 的知识库设计方式不但直接影响到系统的设计与实现,而且会影响系统间的共享和互操作.知识库是知识的 集合,这些知识包括陈述型知识和过程型知识,并通过合理的结构将这些知识组织在一起以有利于知识的共享 和重用.目前,知识库系统由于缺少统一、标准的知识描述语言,影响了计算机系统进行自动知识处理和互操作. 收稿日期:2008—04—28 基金项目:福建省自然基金资助项目(S0750004),福建省教育厅科研资助项目(JA07049) 作者简介:林木辉(1978一),男,福建漳州人,福建师范大学教育技术系讲师. 张杰(1967一),男,福建福州人,福建师范大学教育技术系副教授. 汪星一(1982一),女,福建福鼎人,闽江学院教育技术中心助理实验师. 70 闽江学院学报 第29卷 起源于哲学的本体论(ontology)近年来受到信息科学领域的广泛关注¨ J.哲学上的本体论是对世界任 何领域内的真实存在所做出的客观描述.起初,人工智能学者直接借用“本体论”这个术语来表示他们在知识 工程中对领域世界的“存在”研究.但随着本体论在人工智能和信息系统领域的发展,人们认识到信息科学领 域的本体和哲学上的本体存在不同.一个比较广泛接受的信息科学领域本体论定义是由美国斯坦福大学知 识系统实验室提出的,他们认为:本体论就是用来清楚的描述一个领域内的概念和与所描述概念有关的特 征、属性以及属性的特定限制,和依此概念分类法所产生的实体.由此可见,本体就是用来描述特定领域的概 念,以及这些概念之间的关系,并通过概念之间的关系来描述概念之间的语义. 1问题的提出 目前,Internet上存在许多教学支持系统,这些平台促进了网络远程教育的发展,但是仔细分析这些系统 之后,这些系统明显存在以下问题: 1)各教学系统间的资源难于共享,形成资源孤岛,导致不同系统间教学资源重复建设,浪费了大量的人 力物力. 2)教学资源的格式各种各样,缺乏语义,机器难于理解和自动处理. 3)检索效率不高.由于教学知识内容多而广,传统的基于关键字的搜索技术不能完全满足需要.目前实 用化的教学信息检索系统对海量信息资源的检索效率不高、深度有限,一是检索到大量无关的学习材料,二 是会把相关的重要学习材料丢失. 4)智能性不够.每个学生的学习需求不一样,但面对的系统界面往往都一样,难于体现个性化. 5)不能变被动服务为主动服务.没有对学生学习特征进行分析和建模,无法实现主动推送服务. 仔细分析以上问题不难看出,教学系统间共享性和智能性缺乏,主要是由于学习资源的语义性不强,各 种知识表现形式没有一种统一的、标准化的形式化语言. 教学领域知识库是开发各种教学系统的基础,是制约教学系统智能化的瓶颈之一.因此,构建具有语义 的、统一的、标准化的学科知识库,对于增加教学系统之间知识的共享性,减少学习资源重复开发工作,提高 知识的检索效率,实现个性化学习和主动推送服务等功能具有重要作用. 知识库中的知识反映的是客观事物属性和本质联系,表现了人们对事物概念或规律的理性认识;而信息 领域的本体是用来描述特定领域的概念,以及这些概念之间的关系.由此可见两者有本质上的相似性,采用 本体来对知识进行概念建模是一种有效途径. 2本体及其一般构建步骤 本体是对某一领域D的概念及其概念问关系的描述,可形式化地描述为二元组D(C,R).其中:C是领域 D中的概念集合;R是D中概念之间关系的集合.在具体对学科领域知识表示时,可以对其模型进行适当地扩 展.而概念是由属性来表示的,属性可以是元属性(不可再分属性),也可以是另一个概念的实例;关系可以根 据领域知识和目标进行语义抽象,常见的关系有:属性关系(Attribute—of),继承关系(Kind—of),部分与整体关 系(Part—of)和实例与类之间的关系(Instance—of) j. 知识库系统的知识建模一般可以分为3个层次:领域层,推理层和任务层(如图1).领域层包含了求解 问题所需要的特定领域内的知识和对领域概念的描述;推理层说明求解问题的方法;任务层把系统所要求求 解的问题划分成子任务,并设定这些子任务的目标和执行顺序. 本文重点要阐述的是知识库系统中建立领域本体这个层 次,领域本体的构建过程一般有如下步骤: 1)选择本体形式化描述语言; 2)选择本体开发工具; 3)确定领域本体的范围和对象; 4)领域本体的内容分析和详细设计; 5)领域本体的形式化表示和存储. 图1知识库建模过程 Fig.1 Knowledge base modeling process 第5期 林木辉,等:一种基于本体的学科知识库构建方法 7l 下面我们将以严蔚敏教授的《数据结构》课程为例阐述学科知识库的构建过程. 3案例 3.1 本体描述语言和建模工具 本体语言对编写清晰的、形式化的概念描述,及其领域模型表达能力和可扩展能力都有影响.目前的形 式化的本体描述语言有多种,主要有OWL和RDF、RDF S、OIL、DAML等.OWL的优点是以Web资源为描述 对象,而且是W3C的推荐标准的,比其他语言具有更好的兼容性和适用性,在此,我们选用OWL(Ontology web Language)作为本体描述语言. 对于本体开发工具,目前国内外已经有许多较成熟的本体开发平台软件可供选择.Protrg6是由斯坦福大 学医学信息化研究小组开发的基于Java环境的开放式架构的开源知识建模工具,Pmt6g6包含有使用者接 口,核心模块及长期储存体模块等.使用者接口主要是利用预设的接口模块,可让使用者:一般为领域专家及 知识工程师设计修改,新增和呈现知识撷取的接口,使用者也可外挂即插即用的方式增加其接口.Prot6g6核 心模块主要用来管理系统知识库,包括知识表示法及知识阶层的建立、撷取与管理.长期储存体模块则包含 实体储存媒体的管理及知识库对应机能两部份,利用知识库对应机能将本体论知识表示法及其实例对映到 实体储存媒体上. Prot6g6支持本体论的主要组件有类别(Class)及槽(Slot).类别代表了知识的概念(Concept);槽描述类 别的属性(attributes)和关系(Relation).属性或关系差别在于属性所连结的是基本数据型态,而关系所连结 的可以是另一个Instance或Class.知识实例则为Instance.类别与类别之间的关系除了支持一般化(generali— zation)和特例化关系(specialization)之外,也支持Inverse Slot、Slot Override和多重继承等.所谓的一般化和特 例化关系是指类别间的阶层关系,一般存在有继承(Inherit)和实例(instance)的特性.Inverse Slot是可以建立 两个相反Slot的关联,如“学习”与“被学习”;Slot Override可以在特定的Class中建立同名异型的Slot;多重 继承为一个Class可为多个Class的子类别. 3.2《数据结构》课程的知识结构分析 学科知识的表示目的是能使教学步骤有序进 行,如何根据学科特点和认知规律设计知识点的粒 度相当重要,它的划分不但要能保证学科知识内容 的完整性,而且要满足学生后续学习的需要.因此, 知识点的划分要根据一定的教学目的和教学对象 以及教师的教学策略或经验来进行,它需要专业教 师和知识工程师的共同参与.知识点是我们对学科 中教学内容的抽象和划分单元,它可能是概念,语 法,程序实例,习题等.通过分析,《数据结构》课程 图2学科知识结构 的知识组织结构可以抽象成如图2所示: Fig.2 Structure of subject knowledge 从图2不难看出,各个知识点是知识库中的实体,知识点不但是知识的载体,而且要能表达知识之间的 内在联系.这就需要我们对知识点进行抽象,设计出合理的结构,保证学科知识的完堑陛及其内在关联. 3.3基于Protrg6的形式化表示 参考中国教育技术标准协会规定的学习对象标准(LOM)模型 J,并根据教学系统功能 需要,我们将 《数据结构》课程的知识点主要分成3个类别:数据结构类型,算法类型和学习资源类型. 数据结构类型的描述内容包括:①名称及其描述信息;②知识点类型:是概念,定理,性质等类型;③重要 程度:是一般知识还是重点知识;④难易程度:可设容易,中等,难,极难等等级;⑤学习时间:按课时来算;⑥ 前驱知识点与后继知识.表示成元组:(name,descirble,type,important,ease,studytime,preknowledge,nextknowl— edge) 算法类型的描述内容包括:①名称及其描述信息;②算法主要采用的数据结构;③算法关联的知识点 72 闽江学院学报 第29卷 位置; ④算法的时间复杂度和空间复杂度;⑤重要程度;⑥难易程度;⑦学习时间.表示成元组:(name,descir— ble,type,impo ̄ant,ease,studytime,mainstruct,relposition,timecomplex,spacecomplex). 学习资源类型的描述内容包括:①名称及其描述信息;②关联的知识点实例;③资源格式:视频,图象,文 本等;④大小;⑤难度;⑥日期;(7)URI:学习资源的存放位置.表示成元组:(name,descirble,format,ease,relpo— sition。size。datetime,URI). 利用建模工具Protrg6 L6 创建完 的本体截图如图3,图4所示. 3.4基于本体的查询设计 构造完领域知识库后,可以利 用Protrg6-OWL API的开发包根据 教学系统的目标任务来查询知识库 中的信息,下面用两个程序小片断 来简单说明其查询的一般过程,第 一个用于查询与某个知识点相关的 习题;另一个则用于查询某个知识 点的前驱知识.由于Protrg6一OWL API是基于java开发环境的,所以 在开发环境中配置好外部开发包路 径后我们就可以使用其所提供的 类,具体代码演示如下: 图3 Protrg6工具构建的本体示例 Fig.3 An ontology example sturtting by Prot6g6 / 查询某个知识点相关的习 题 / e,cca ■哪w TOOls String uri =“../datastruct. jl岛日 咕矗毒 凶 rot ̄gg ● _妯 =hr咐;●hm嘣 I}-a_ owl”;//载人本体模型 露譬怒麓辅;鞣 ; 揪 翻 搿: 躐 积疆群 涌鞘鞲鞫 瓣满糯翱鞫鼎黼鼎黼黼礤潮聚辅嘲释嘲麟鞋醛 …¨IEc ● …o r‘s^. *(Imt ̄ofsT邶^∞ .^ ) OWLModel owlModel=Prote. ……tc~ , ・一’ l‘ ,e ……'0n c…h 只 r r geOWL. createJenaOWLModelFro— mURI(uri); …,l…I - “ *- I I№I"aH v jⅫ} OWLNamedClass myclass = -E●* s ● … 蝌 一.酬cl^一1 0 l_髓sa g q owlMode1. createOWLNamedClass ~ r¨【 q j-蛐J 。岍 qⅢ c 。 。 H。 (“某个知识点类”); ● r帕J ● Collection instances=myclass. getInstances(false);//获取类的直 接实例 for(Iterator it:instances.ite卜 图4 Protrg6工具构建的本体示例 ator();jt.hasNext();) Fig・4 An。“ 。 。gY amp 。 m。 i“g by Protrg6 {OWLIndividual knowledge=(OWLIndividua1)jt.next(); OWLNamedClass exersise=owlMode1.createOWLNamedClass(“习题”); Collection exersises=exersise.getInstances(false);////获习题类的直接实例 for(herator et=exersises.iterator();exersise.hasNext();) { OWLIndividual exe=(OWLIndividua1)et.next(); / 若习题类实例的relposition属性等于某个知识点,则该习题属于这个知识点 / 第5期 林木辉,等:一种基于本体的学科知识库构建方法 RDFProperty relp=owlMode1.createRDFProperty(“relposition”); if(exe.getPropertyValue(relp)==knowledge) 73 {RDFProperty uri=owlMode1.createRDFProperty(“URI”); System.out.println((string)exe.getProprertyValue(uri)); } } } / 查询某个知识点的前驱知识 / Stirng uri=“../datastruct.owl”;//载入本体模型 OwLM0del owlModel=ProtegeOWL.createJenaOwLModelFromURI(uri); OWLNamedClass myclass=owlMode1.createOWLNamedClass(“某个知识点类”); Collection ins/ances:myclass.getInstances(false);//获取类的直接实例 for(Iterator jt=instances.iterator();jt.hasNext();) {OWLIndividual inst=(OWLIndividua1)jt.next(); RDFProperty pre=owlMode1.createRDFProperty(“preknowledge”); Collection mut=ints.getPropertyValueLiterals(pre);//获取该知识点的前驱知识列表 for(Iterator k=mut.iterator();mut.hasNext();) { OWLIndividual know=(OWLIndividua1)k.next(); RDFProperty name=owlMode1.createRDFProperty(“name”); System.out.println((string)know.getProprertyValue(nanle)); } } 4结语 本文利用Prot6g6建模工具来阐述学科领域知识库构建的一般方法.一个具有语义的、统一的、标准化的 学科知识库,对于增加教学系统之间知识的共享性,减少学习资源重复开发工作,提高知识的检索效率,实现 个性化学习和主动推送服务等功能具有重要作用.当然,一个完整教学系统不仅需要知识库部件,还需要对 教师和学生特征进行建模,这也是我们未来要进行的工作. 参考文献: [1]N Guarino.Formal ontology and informationsystems[J].Proc of the 1 st Int’l Conf on Formal Ontology in Information Systems.Tren— to:IOS Press。1998:13—15. [2]Schold Gruninger.Ontologies:principles,methods,and applications[J].Knowledge Engineering Review,1996,11(2):93—155. [3]李善平,胡玉杰,郭鸣,等.本体论研究综述[J].计算机研究与发展,2004,7:1 040—1 050 [4]全国信息技术标准化技术委员会教育技术分技术委员会.CELTS-41.教育资源建设规范[s].http://www.se.edu.cn/ 68O75 1 c665875e93/65595b668d446e907c7b/ [5]郁书好,郭学俊.基于本体的教学知识库研究与应用[J].计算机研究与发展.2007,8:161—164. [6]严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,2002. (责任编辑:唐诚煜)