基于网络课程本体的语义查询推理系统

2014-08-07 13:23宋万里倪立显
微型电脑应用 2014年10期
关键词:知识库实例本体

宋万里,倪立显

基于网络课程本体的语义查询推理系统

宋万里,倪立显

针对网络课程知识点相对孤立、共享性与重用性差、学习资源查找困难、不能提供个性化服务等问题,提出使用基于本体查询推理的解决方法,设计了检索、查询和推理的功能模块和工作流程,并综合运用了Jena和SPARQL实现了相应的原型系统。通过具体的课程本体进行测试,验证了该解决方法的有效性和可行性。该系统能够将网络课程知识内容有机组织到一起,达到共享、重用的效果,可以提供个性化的学习服务,为进一步开发智能化的网络课程平台提供了条件。

网络课程;本体;语义查询;语义推理;Jena

0 引言

《教育信息化十年发展规划(2011-2020年)》提出实施“中国数字教育2020”行动计划,要建设20000门优质网络课程及其资源。由此可以看出网络课程是教育信息化的重要组成部分和表现形式。在传统的网络课程中,课程知识存储于固定层次关系的数据库或者知识库中,知识的结构主要依靠基于超文本进行表示。大部分网络课程知识点相对孤立,共享性与重用性比较差,学习者经常发生“迷航”现象,学习资源查找困难,个性化服务的需求无法得到满足。这些直接影响了网络课程质量,影响了网络教育的发展。如何解决网络课程这些问题,成为了网络教育工作者与研究者共同关注的问题。

传统的基于关键字的信息检索技术不能满足人们对信息查询的需求,语义网技术是解决这一问题最有前景的方法[1]。本体(Ontology)作为一种能够在语义层和知识层上描述信息系统的概念建模工具,在语义Web[2]的层次结构中位于核心位置[3]。基于本体的语义Web技术在多个领域得到应用,张亮亮研究了基于领域本体的语义检索技术,在此基础上构建了基于玉米种植本体的语义检索原型系统[4];孙成国研究设计了一个基于大学领域本体的语义检索系统,设计和构建大学领域本体以及设计与实现了语义检索功能[5];袁国铭等介绍了本体理论的基本概念,基于本体构建了肺癌健康知识系统模型,并给出了系统主体框架[6]。也有研究者将本体引入到网络课程领域,李好、杨贯中提出了一种E-learning课程体系结构框架,在此基础上创建课程本体[7];郝兴伟根据一些教育教学理论,提出了一种基于学科知识本体的网络开放课程建设模型[8];谢明凤在远程课程资源设计中引入本体技术来管理和使用日益丰富的各种类型和结构的过程性资源素材[9]。以上文献虽然都将本体引入到相应的领域中,但都不够深入,要么停留在理论模型阶段,要么只有简单的原型实现,都没有提供语义推理的功能。

本文针对网络课程知识库设计领域本体,将语义查询和语义推理技术运用于网络课程领域,在知识领域本体的基础上构建一个语义查询推理系统,给出了系统设计、实现和对运行结果的分析,验证了基于网络课程本体的语义查询推理的有效性和可行性。

1 系统功能设计

1.1 主要功能模块

本系统主要由分类检索、语义查询、语义推理、知识库导出四个模块组成,各模块相互独立,共同完成基于网络课程本体的语义查询推理任务。分类检索搜索是根据网络课程知识结构和内容来进行检索,语义查询采用SPARQL[10]语义查询语言实现,语义推理采用Jena自带的推理支持开发,新知识库信息导出利用Jena[11]对RDF[12]数据导出到各种关系数据库的友好接口实现。语义查询推理系统功能模块如图1所示:

图1 基于网络课程本体的语义查询推理系统功能模块

1.2 系统工作流程

基于网络课程本体的语义查询推理系统体系结构如图2所示:

图2 基于网络课程本体的语义查询推理系统体系结构

系统的主要工作流程如下:

(1) 用户在检索界面中选取对应的检索项,提交给检索条件生成器,生成器依据检索项生成具体检索条件,调用语义检索器,利用Jena框架检索知识库本体中三元组中的主语、谓语或者宾语,从本体知识库中检索出相应结果并显示给用户。

(2) 用户在查询界面中填写或选取相应的查询语句片段,提交给SPARQL语句组装器,组装器在提交的片段的基础上添加必要的信息生成完整的SPARQL查询语句,调用语义查询器,利用完整SPARQL查询语句从知识库中查询相应的结果并显示给用户。

(3) 用户在推理界面中选取或填写规则信息,提交给推理规则加载器,加载器加载完推理规则后调用语义推理器,利用Jena推理机从现有的知识库中产生新知识,并把推理出的新知识显示给用户。

(4) 用户在推理界面中调用知识库导出器,利用Jena的数据库API接口使存储在内存中的新增知识数据持久化到数据库中。

2 系统实现

本系统是遵循模型-视图-控制器MVC(Model-View-Controller)3层架构,采用Java EE 6.0平台开发的Web应用程序。前端使用Extjs2.0框架设计,后端使用轻量级开源Struct2和Spring框架设计开发,并部署在Apache Tomcat上运行。

2.1 构建网络课程本体

网络课程本体采用Protégé[13]工具设计开发,目前该本体总共含有3个类,分别是知识点类KnowledgePoint、教师类Teacher和知识点分类类Category。本文主要以KnowledgePoint类为例,在此仅给出该类的属性设置,具体如表1所示:

表1 网络课程本体中知识点类KnowledgePoint的属性

在创建了本体中的类及其相应属性之后,创建类实例并为其填充属性数据。本文主要以KnowledgePoint类的实例为例,在此仅给出该类的实例数据,具体如表2所示:

表2 本网络课程本体中知识点KnowledgePoint类的实例数据集

备注:所有实例URI都省略了前缀“http://www.njci.edu.cn/swl/ontologies/knowledge#”,并且省略了一些属性,比如knowledgeDes等。

但为了更便于对下面的实验结果的理解,这里给出本体中各类以及实例间的联系,如图3所示:

图3 网络课程本体中的类以及实例之间的联系

2.2 系统检索

本模块实现系统的语义检索功能。用户在界面选择或者输入相应的选项,提交到后台的检索条件生成Action中构建检索条件,之后调用检索Action,首先根据知识库本体初始化RDF模型,随后使用服务类中定义的Jena对Model进行检索属性和属性值的方法。该方法根据实例陈述三元组的属性值构造出完整URI的主语信息,根据主语信息获得其属性和相应的属性值,并将这些信息填充到实体类中,最终添加到列表里返回给用户。主要代码如下:

//模型初始化

filePath = ServletActionContext.getServletContext().getRealPath("/ontology/knowledge.owl ");

modelService = new ModelServiceImpl();

model = modelService.getModelFromFilePath(filepath);

//模型检索

searchProperty = model.getProperty(this.itemToPropertyStr(item));

if (item.equals("hasTeacher")||item.equals("isClassified"))

{//对象数据类型情况

SearchValue = model.createResource(this.addNameSpace(value));

searchResult = model.listSubjectsWithProperty(searchProperty, SearchValue);

}

else {//文本类型的情况

searchResult = model.listSubjectsWithProperty(searchProperty, SearchValue);

}

2.3 系统查询

本模块实现系统的语义查询功能。模块中使用Jena框架中的ARQ来实现对本体模型的SPARQL查询。首先,和语义检索模块一样加载本体文件,生成本体模型。然后通过对输入的语句片段拼接成完整的查询语句,作为相应的Query接口查询函数的输入提交查询,最终将查询出的结果集返回到Action中,利用Action的属性注入在页面进行显示。主要代码如下:

Query query=QueryFactory.create(queryStr); //创建查询

QueryExecution execu

tion=QueryExecutionFactory.create(query,model);

ResultSet resultSet=execution.execSelect();//执行查询

while(resultSet.hasNext()){//循环读取查询出的信息

QuerySolution solution=resultSet.nextSolution();

RDFNode nodeName=solution.get("?name");

RDFNode nodeKnowledgePoint=solution.get("?kp");

}

2.4 系统推理

本模块实现系统的语义推理功能。根据系统的实际需求,编写相应的推理规则并保存在规则文件中。以下是规则文件中的规则内容:

(1) [successor: (?b kld:precursor ?a),notEqual(?b, ?a)->(?a kld:successor ?b)]

(2) [isEasy:(?c rdf:type kld:KnowledgePoint),(?c kld:difficultLevel ?d), greater-Than(?d,0),lessThan(?d,5)->(?c kld:isEasy ?d)]

(3) [isHard:(?e rdf:type kld:KnowledgePoint),(?e kld:difficultLevel ?f), greaterThan(?f,5)->(?e kld:isHard ?f)]

下面对上述规则文件中定义了的规则进行说明。规则一,如果要学习知识点a必须先学习知识点b,并且b和a不是一个知识点,则只有学习完知识点b才能学习知识点a,即precursor和successor是反函数。规则二,如果知识点的难度系数在0-5之间,那么这个知识点被定义为容易,学生比较好掌握。规则三,如果知识点的难度系数大于5,那么这个知识点被定义为复杂,学生学习起来相对比较吃力。系统运行时规则文件被Jena框架动态加载到模型中,系统在加载了规则的模型上能查询出新的知识内容。主要代码如下:

Model result = ModelFactory.createDefaultModel();

Model model=this.getModelFromFilePath(owlFilePath);

Resource configuration = model.createResource();//创建空资源

configura

tion.addProperty(ReasonerVocabulary.PROPruleMode,

"forward");//设定推理引擎工作模式

configura

tion.addProperty(ReasonerVocabulary.PROPruleSet, ruleFilePath);//设定加载的规则文件

Reasoner reasoner = GenericRuleReasonerFactory.theInstance().create(configuration);//创建推理机

result = ModelFactory.createInfModel(reasoner, model);//初

始化推理模型

2.5 知识库导出

本模块实现系统的导出功能。系统利用Jena提供的支持导入到MySQL数据库的程序接口,在不直接操作数据,也不知道数据库模式的情况下,就可以方便地对知识库信息进行数据库的持久化保存。主要代码如下:

ModelMaker maker = ModelFacto

ry.createModelRDBMaker(getDBConn());//为数据库创建一个ModelMaker

Model defModel = maker.createModel(ontoName); //为本体创建一个模型

defModel.read(in, null);//读取模型数据

defModel.commit();//提交到数据库

closeDBResource();//关闭资源

3 系统运行结果与分析

3.1 系统检索和查询

系统成功查询所有网络课程知识点实例及其相应的前序知识点的结果界面如图4所示:

图4 系统查询所有网络课程知识点实例数据的结果

对应的SPARQL查询语句如下:

PREFIX kld:

PREFIX rdf:

SELECT ?name, ?kp WHERE { ?name rdf:type

kld:KnowledgePoint.

OPTIONAL { ?name kld:precursor ?kp. } }

在图4中显示共显示出8个知识点实例以及相应的前序知识点信息,查询结果与knowledge本体中的实例数据(见表2)一致,即验证了在网络课程知识库中运用语义查询是可行的,并且通过本体的属性将相互孤立的网络课程知识内容有机组织到一起,共享、重用。

3.2 系统推理

系统成功加载推理规则生成新数据的结果界面如图5所示:

图5 系统加载规则后推理生成的新增数据界面

该规则已在上文2.4节中给出。图5中左侧显示的是加载了规则以后的新增信息,包括了intercepter的两个前序知识点共6条,更明确了知识点间的关系,可以快速地找到学习资源,避免“迷航”。图5中右侧显示的是加载了第二、三条规则后的新增信息,较简单知识点4条和较复杂知识点3条,可以针对学生循序渐进,进行个性化的教学。以上推理所获得的新增信息与表2中实际的本体实例数据一致,即验证了在网络课程知识库中经过语义推理出来的结果是可信的,可以通过不同的推理规则设置达到既定的效果。

4 总结

本文为解决网络课程知识点相对孤立,共享性与重用性差,学习者“迷航”,查找学习资源困难,不能提供个性化服务等问题,将语义查询和语义推理技术运用于网络课程领域,对基于网络课程知识库的语义检索、查询和推理进行了设计与实现。通过具体的课程本体进行测试,验证了本文的解决方式的有效性和可行性,进一步加大了本体技术在网络课程领域中应用的深度。为了更好的满足学习资源发现和个性化服务问题,要加大网络课程本体与具体学习资源的关联程度和更高效的检索方法,并将本体应用于对学生学习资源的推荐工作中,这些将是本文下一步研究的重点。

[1] 倪立显,吴 婷. 基于领域本体的语义查询推理系统[J].计算机与现代化,2014,225(5):74-78.

[2] T. Berners-Lee, J. Hendler and O. Lassila. “The Sem antic Web: A New Form of Web Content That Is M eaningful to Computers will Unleash a Revolution of New Possibilities” [J]. Scientific America, May 17, 2001.

[3] 高志强,潘越,马力.语义Web原理及应用[M].北京:机械工业出版,2009.

[4] 张亮亮.基于领域本体的语义检索研究[D]. 长春:吉林大学, 2009.

[5] 孙成国.基于大学领域本体的语义检索技术研究[D].太原:中北大学, 2012.

[6] 袁国铭,樊波,陈新利,成天华.计算机本体理论在肺癌健康知识系统中的应用研究[J].微型电脑应用,2014,30(5): 44-47

[7] 李好,杨贯中.基于本体的e-Learning课程构建[J].计算机工程与设计,2010,31(4):881-884.

[8] 郝兴伟. 基于学科知识本体的网络开放课程建设研究[J]. 中国大学教学, 2013(9):45-49.

[9] 谢明凤. 基于网络学习平台和知识本体应用的远程课程资源设计[J]. 中国电化教育, 2013(5):78-86

[10] SPARQL Language for RDF. http://www.w3c.org/TR/ 2008/REC-rdf-sparql-query-20080115/

[11] TAN Y, XIAO B, CHEN J, et al. The suvery of Je na′s reasoning and applying[J]. Journal of the Hebei Academy of Sciences, 2009, 4: 006

[12] Klyne G, Carroll J J. Resource description framework (RDF): Concepts and abstract syntax[J]. 2006(4).

[13] Noy N F, Crubézy M, Fergerson R W, et al. Creatin g semantic web contents with protege-2000[J]. IEEE intelligent systems, 2001, 16(2): 60-71.

Semantic Query and Reasoning System based on ontology of Online Course

Song Wanli1,2, Ni Lixian2
(1. School of Electronic and Information Engineering, Nanjing Communications Institute of Technology Nanjing 211100, China; 2. School of Computer and Information, Hohai University, Nanjing 211100, China)

In order to tackle the issues such as isolation of knowledge, poor sharing and reusability, difficulty in learning resource founding and personalized service providing in online course, a solution of ontology-based query and reasoning was proposed. The solution designed the function module and working process including retrieval, query and reasoning. A corresponding system was implemented by using Jena and SPARQL. The implementation and experimental results indicated that the method was effective and feasible. It is concluded that this system can provide organic organization, achieve to share and reuse the course knowledge content and personalized learning service, while provide facilities for developing intelligent online course platform.

Online Course; Ontology; Semantic Query; Semantic Reasoning; Jena

TP311

A

1007-757X(2014)10-0057-04

2014.08.21)

江苏省自然科学基金(BK20141420);南京交通职业技术学院科研基金(JY1108);南京交通职业技术学院大学生实践创新计划项目(CX1326)

宋万里(1981-),男,汉族,辽宁法库县人,南京交通职业技术学院,讲师,河海大学计算机与信息学院博士研究生,研究方向:语义网、软件工程,南京,211188倪立显(1988-),男,江苏连云港人,河海大学计算机与信息学院,硕士研究生,研究方向:语义网、数据管理,南京,211100

猜你喜欢
知识库实例本体
眼睛是“本体”
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
基于本体的机械产品工艺知识表示
高速公路信息系统维护知识库的建立和应用
基于Drupal发布学者知识库关联数据的研究
完形填空Ⅱ
完形填空Ⅰ
专题
Care about the virtue moral education
位置与方向测试题