《小议基于语义的构件检索系统研究与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
基于语义的构件检索系统研究与实现学校代码:10246学号:052021118灌*大硕士学位论文(科学学位)基于语义的构件检索系统研究与实现专院系:信息科学与工程学院业:计算机软件与理论姓名:蔡怡峰指导老师:钱乐秋教授完成日期:2008年5月12日 基于语义的构件检索系统研究与实现指导小组成员名单钱乐秋(教授)赵文耘(教授)彭鑫(讲师)公、 基于语义的构件检索系统研究与实现目录【摘要】..............................……5第一章引言...........................……71.1研究意义.........................................................................……71.2相关工作.........................................................................……81.2.1关键字和字符串查找…“.…”.”.......……””.”二”……“”.”…”……“”…”.”.91.2.2型构匹配(signatureMatching)二”.……”.……”.........……””...……”.91.2.3行为匹配…”............……”...............……“............……”.”........……”…“.101.2.4基于刻面的分类和检索..……”二“..…”..……”“..…“..……”…”..……”“.101.2.5基于语义的构件描述和检索.”....……””.””…“...........……”“......……121.3本文的研究工作...........................................................……131.4本文的组织结构...........................................................……14第二章基于本体的构件描述框架与检索过程.…152.1本体(Ontology)........................................................……152.2本体描述语言0、VL.....................................................……162.3功能本体元模型...........................................................……202.4构件语义描述框架.......................................................……232.5构件检索过程...............................................................……24第三章概念映射......................……263.1概念映射算法...............................................................……283.2概念映射的相似度.....................................................……”.313.3算法复杂度分析............................................................……32第四章语义匹配......................……34勺) 基于语义的构件检索系统研究与实现4.1扩展构件查询................................................................……344.2计算匹配度...................................................................……364.2.1匹配算法…”.“““.”……“。“..…“....……“...........……“…“.…”......一”.”.364.2.2基于集合论观点的功能匹配算法二”二”.”...……””.”.””.”..…““”.”.…374.2.3基于属性距离的功能匹配算法…”“.”.“..……””.””.”.”.”..…”.…”.….394.2.4本文使用的功能匹配算法…””””.”””“.“..…””.”.””””.”.“.”.”“”.….41第五章优化构件查询..................……44第六章系统实现与实验数据分析........……476.1系统实现.......................................................................……476.2实验分析.......................................................................……57总结与展望...........................……63参考文献.............................……64致谢.............................……68忆 基于语义的构件检索系统研究与实现【摘要]基于构件的软件开发(CBSD)提出复用软件构件,而不是采用一切“从零开始”的方式,来组装特定领域的应用系统。CBSD可以充分利用已有的开发成果,减少重复劳动,提高软件的开发效率。同时,通过复用已测试过的高质量构件,避免了重新开发可能引入的错误,从而提高了软件质量。然而当存在大量构件时,在构件库中检索符合特定复用需求的构件变得十分困难。特别是在万维网(WWW)逐渐成为一个丰富的构件来源之后,这一问题变得更加突出。因此可复用构件的描述和检索一直是CBSD的一个研究重点。传统的基于关键字、型构(Signat盯e)或刻面的构件检索由于缺少特定领域语义信息,因此在查准率和查全率上存在不足。针对这些问题,许多学者提出对基于语义的构件检索方法进行研究。基于语义的构件检索在各个步骤都考虑到用户查询的语义以及相关领域的知识,因而具有较高的查准率和查全率。然而从当前一些研究工作看,基于语义的构件检索仍然存在一个突出的问题,即用户对问题域的理解以及所熟悉的自然语言表达方式与构件的规范语义描述之间存在差异。本文提出了一种基于语义构件检索的交互式查询方案生成方法,允许用户使用受限的自然语言进行检索。该方法首先通过概念映射将用户的自然语言查询转换为本体描述,在此基础上根据语义约束关系对原始查询方案进行扩展,并根据初步的返回结果进行优化,从而最终确定用户的查询方案。其中,概念映射充分利用了用户自然语言描述中的上下文(主要由谓语、宾语、状语和定语组成)信息以及领域本体中的语义上下文之间侧郎渡纂息,同时辅以交互式会话过程。而查询方案优化过程则根据初步的查询返回结果计算可能的优化方案,并通过交互会话引导用户进行确认。该方法可以充分挖掘潜在的用户查询语义,对于提高构件检索的查准率和查全率、减少查询努力具有十分重要的作用。本文对基于语义的构件检索的各个步骤进行了研究,并实现了整个构件检索系统。文章的最后对用户查询实例进行了演示,并且分析了检索系统的查准率、查全率和检索效率,以此验证了本文所提出方法。【关键词】软件复用,构件检索,语义,本体,概念映射,会话,交互【中图分类号】TP319 基于语义的构件检索系统研究与实现[Abstraet]Co帅onent一BasedSoftwareDevelopment(CBSD)teehnologypromotesassemblingaPPlieationsofeertaindomainbymeansofreusingsoftwareeomPonentsratherthandoingeverythingfromtheverybeginning.CBSDtakesadvantageofexistingassetstoredueeeffortsandraiseProduetivity.SoftwareeomPonentsarefullytested50thattheyhavehighquality.However,whenthereareagreatnumberofeomponentsinrePository,it’5hardtoretrieveeomPonentswhiehmeetthesPeeifiereuseneed.ThusthedeseriPtionandretrievalofreusableeomPonentsarealwayshotissuesinCBSD.Traditionalkeyword一based,signaturemethodorfaeet一basedeomPonentretrievalhavelowPreeisionandreeallduetothelaekofdomainknowledge.ManyresearehersProPosesemantie一basedeomPonentretrievalmethod.Semantie一basedretrievalmethodtakesthesemantieofuserqueryandtheknowledgeofeertaindomainintoaeeountduringeverystePofretrievalProeess,whiehresultsinhigherPreeisionandreeall.There’5onemajorProbleminsemantie一basedeomPonentretrievalProeess15thediscrePaneybetweennaturelanguagewhiehusersarefamiliarwithandformalsemantiedeseriPtionsofeomPonents.InthisPaPer,aninteraetivequerygenerationmethod15ProPosed,whiehallowseonsumerusenaturallanguage.ThemethoduseseoneePtidentifieationProeesstomaPusers’naturelanguagetoontologydeseriPtionsofeomPonents,thenextendsinitialqueriesbysemantieeonstraintsandrevisesqueriesaeeordingtoretrievedresults.ConeePtidentifieationmakesfulluseofuserqueryeontext(mainlyeomposedofpredieate,objeet,attribute,andadverbial).ConeeptidentifieationandqueryrevisionuseeonversationalProeesstointeraetwithusers.ThismethodextraetsimPlieitsemantiesinuserqueries50thatit,leadstoimProvereeallandPreeisionrates,redueeretrievaleffortineomPonentretrieval.ThisPaPerresearehesoneaehstePduringeomPonent一basedeomPonentretrieval,andimPlementsthewholeeomPonentretrievalsystem.WedemonstratearealqueryProeessandanalyzethePreeision,reeallandtimePerformaneeofthissysteminordertoverifyourtheory.【Ke”ords]softwarereuseeomPonentretrieval,semantie,ontology,eoneePtidentifieatiofl,eonversationinteraetion 基于语义的构件检索系统研究与实现佑—雀梦己l吉.刁7二F.J.口1.1研究意义软件需求的高速增长与软件生产率的持续低下,导致了软件工程研究的主流之一—软件复用技术的蓬勃发展。软件复用是指利用已有的软件资产开发和构建新的软件系统,而不再采用一切“从零开始”的开发模式。这使得应用系统的开发可以充分利用已有的开发成果,减少了包括需求分析、设计、编码、测试等活动的许多重复劳动,大大提高了软件的生产效率。同时,通过复用已经被充分测试了的软件资产,避免了重新设计或者开发可能引入的错误,从而提高了软件的质量【l]。借鉴计算机硬件组装的成功经验,软件工程界也提出了构件的概念,成为支持软件复用的核心技术之一。虽然软件构件还没有一个统一的定义,但2000年5月CMU/sEl的FelixBeehlnan等人在一份关于基于构件的软件工程的报告中给出了如下定义【2]:软件构件是①一个不透明的功能实现;②能够被第三方组装;③符合一个构件模型。软件构件改变了软件生产方式,将软件开发的重点从分析、设计、编码转移到了基于己有构件的组装,这被称为基于构件的开发(CBSD)。近年来,随着面向对象技术、Intemet和节几b技术的成熟、以及OLE和CORBA等工业标准的出现,大大刺激了构件技术的发展。另一方面,软件产业的竞争日益激烈,如何缩短软件的交付时间和提高软件质量已经成为决定企业生存的关键。正是因为对竞争的时间优势和质量优势的追求,造成了对可复用构件的需求。随着实践的深入和时间的积累,企业内部的构件库会保存大量自主开发或者从市场上购买的构件,万维网(ww,v)更是逐渐成为一个资源丰富的构件库[3]。如何在大规模的构件库中检索符合特定复用需求的构件变得十分困难,因此,可复用构件的描述和检索就成为了CBSD的一个研究重点〔4]【习。构件的复用包括构件检索、构件理解和适应性修改三个部分。而构件的复用成本就由这三部分组成:复用成本=检索成本+理解成本+修改成本。有效的构件描述和检索机制能够大大降低构件检索和理解的成本,同时提高构件的复用率,为构件的制作者带来回报。因此,一个有效的构件描述和检索机制应该包含以下特性:①较高的检索指标。一个好的构件描述和检索方法需要有足够的分辨度,能够区分出构件库中具有本质不同的构件。检索工作是使用软件构件的前提,它直 基于语义的构件检索系统研究与实现接影响到后续的构件使用、集成等步骤。对于一个复用者来说,如果他无法定位到满足需求的软件构件,那复用也就无从谈起。可以用查全率和查准率来定义检索效果:查全率=检索到的满足需求的构件个数/构件库中所有的满足需求的构件个数查准率=检索到的满足需求的构件个数/检索到的所有构件个数第一个指标保证了构件的复用率。举例来说,当用户在构件库中检索构件时,他可能得到了一个较小的结果集合,并且这些结果都不满足他的需求。然而,构件库中还有其他的相关构件能满足需求,但用户却无从知晓,这就降低了构件被复用的频率。第二个指标降低了用户的理解成本。如果用户需要在一大堆检索结果中,逐一理解并排除掉和需求无关的构件,那么即便构件库中确实存在着解决问题的高质量构件,用户也只会退而求其次来自己重新开发该功能,因为他们认识到查找和理解构件的时间和精力成本过于巨大【6]。②易于理解和使用。不同的构件库有不同的查询语法,用户在使用构件库并输入查询信息时,需要使用特定的语言或语法。如果这种查询语言或者语法难以学习,那么用户检索构件的效率就会降低,从而增加了检索成本。同时,晦涩的查询语言或语法也会限制用户灵活正确地表达出自己的需求,从而达不到好的检索效果。正是基于以上这些考虑,本文研究基于语义的构件描述和检索方法,以改进构件检索的性能。LZ相关工作基于构件的软件开发(CBSD)是近年来国内外软件界研究的热点之一。它能提高软件系统的可靠性和产品质量、提高开发的效率、缩短产品的开发周期和上市时间、降低开发人员的技术需求和开发成本【7]。大规模的软件复用要求有足够数量的构件支持,而对这些构件的管理所涉及到的构件描述和检索方法是实现软件复用的一项关键技术。目前已经有很多组织和研究机构对此作了大量的探索,并提出了许多构件描述和检索的方法,但每种方法都有其各自的长处,也都存在一定的不足。这些方法主要被分为如下5类【8]:简单的关键字和字符串查找、型构匹配、行为匹配、基于刻面的分类和检索、基于语义的构件描述和检索。 基于语义的构件检索系统研究与实现1.2.1关键字和字符串查找这是一种简单而且为人们所熟悉的方法,采用了基于关键字匹配的传统的图书馆及信息科学编目查询技术。在该方法中,软件构件以一组与之相关的关键词编目,这些关键字可能是由构件的提供者输入的,也可能是从软件构件的自然语言描述文本中自动抽取的。构件的查询者给出一组感兴趣的关键字来描述所需的构件。检索算法主要是计算查询关键字与构件描述关键字之间的匹配程度,来返回候选构件集。这种方法最大的好处就在于简单,不但便于检索者使用,同时也利于在具体的应用中实现。但基于关键字的方法只和字符串的形式有关,却忽略了字符串所代表的语义,使得构件的查询效率受到限制。例如,自然语言中与生俱来的多词同义与一词多义,就分别对查全率和查准率有着极大的影响。如果用户使用的关键字与构件描述的关键字虽然不同,但表示同一个语义,这个有效构件就会在检索时被遗漏;如果用户使用的关键字与构件描述的关键字相同,但分别表示了不同的语义,这个无效的构件就会被检索出来,增加了用户的理解成本。基于关键字方法的另一个弊端是忽略了用户查询的关键字的上下文语境以及关键字之间相互的逻辑联系。针对这个问题,Zaz。等人对信息检索领域进行了研究,提出把用户查询的关键字集合作为一个整体来考虑,使用相似性词典,在用户查询中补充进最相关的关键字集合来扩充原先的查询,以得到更为准确的检索结果【9]。这从很大程度上弥补了关键字之间缺乏逻辑联系的弊端。1.2.2型构匹配(signatureMatching)型构匹配关注构件所提供的接口的参数类型和参数数量,这是一种基于形式化规约的编码和检索方法。用户在查找构件时,提供所需功能的输入参数类型和数量,以及输出参数的类型,来找到提供该接口的候选构件集合。这种方法基于形式化的理论背景,排除了查询的二义性。同时,又比较符合构件用户使用构件的方式。但这种方法有诸多弊端。对于构件来说,接口的型构与其所提供的功能语义往往不具有一一对应的关系。两个方法有相同的型构,却未必提供相同的功能,例如Listsort(col1ectionc)对集合中的元素进行冒泡排序,排序结果是稳定的,而另一个相同型构的方法对集合中的元素进行快速排序,排序结果是不稳定的。反过来,两个方法也许有相同的功能,但它们的型构却未必 基于语义的构件检索系统研究与实现完全相同,可能在输入参数的数量或者前后顺序上并不一致。这直接导致了构件检索的查全率和查准率的下降。另外,这种方法大多采用精确匹配,较难计算部分匹配的匹配度。1.2.3行为匹配行为匹配是与构件检索的目的关联得最紧密的一种方法,因为它直接考虑了构件的执行行为。在这种方法中,用户在查询时提供输入向量以及预期的输出。所有在执行后得到的输出与预期输出相同的构件,被作为候选构件返回给用户。这种方法对用户来说非常直观,也具有比较高的查准度。这种方法需要用户首先提供一组测试用例才能使用,但这并不是一个弊端,因为如今基于测试的开发和极限编程己经越来越受到重视。行为匹配的弊端在于应用范围过窄,只对可单独运行的构件有效。但构件库中的构件并不全是可运行的代码,有时候还包括分析或者设计文档,这些同样也是可复用的软件资产。行为匹配的第二个弊端在于检索效率的低下。由于构件库中的每一个构件都要尝试运行测试用例,对于保存了大量构件的构件库来说,用户的检索成本会变得非常大。行为匹配的最后一个弊端是只适用于精确匹配,较难使用部分匹配算法,这导致了查全率的下降。1.2.4基于刻面的分类和检索基于刻面的分类描述和检索是目前在实践中应用最为广泛的一种方法[4]【5]。这种方法包括三个主要组成部分:①刻面分类方案;②每个刻面下的术语层次空间;③各个构件的刻面描述集合。图1一1是一个构件描述刻面树及术语空间的部分示例【101。 基于语义的构件检索系统研究与实现RRootNOdeeFFunetionalityyEllvifoflmenttAAetionnMediaaHardwareeSoftwareeDDBB酗口刻面〔〕术语图1一1构件描述刻面树及术语空间的部分示例刻面(Facet)反映了观察构件的不同视角,它们之间按照组成关系(part一of)构成一颗树。例如图1一1中,一个构件有两个刻面视角:功能与运行环境。这两个刻面又由各自的子刻面组合而成。所有的刻面综合在一起,可以全面地描述一个构件的本质特性。每个叶子刻面可以赋予一个术语仃七nn),表示构件在这个叶子刻面上的取值。术语按照一般一特殊关系(subelass一of)构成一颗树,术语的层次空间同时也代表了对应的叶子刻面的取值空间。用户检索构件时,对感兴趣的叶子刻面进行赋值,构成一颗查询树,与构件库中构件的描述树进行匹配。于是,构件的检索就转化为树匹配的问题,这个问题的研究已有许多成果【川【12]。构件的刻面描述能够表达丰富的构件信息、方便管理和查询,因此被目前大多数企业的构件库采用「13]【14]。REB00T、NATo提出的构件分类方法都是基于刻面的,北京大学青鸟构件库也采用了以刻面分类为主,多种分类模式相结合的方法对构件进行分类描述【141。上海构件库也采用了基于刻面的构件库管理系统。刻面分类法主要的弊端在于:①建立和维护构件库中所有构件的刻面分类的代价十分高昂;②术语空间的一般一特殊关系可以支持构件检索的模糊匹配,但其表达能力仍然十分有限。术语之间的关系过于单一,导致匹配过程中无法运用语义进行推理;③刻面及术语方案往往只能满足构件一般的描述需要,而无法体 基于语义的构件检索系统研究与实现现特定领域及特定功能的描述内容,这也是刻面分类方法最大的缺点。举例来说,刻面方法中对于术语空间较为稳定的刻面,如使用环境、开发工具等,容易进行预先的分类和描述。这是由于这些刻面对于所有的构件含义相同的原因。但对于构件的功能,由于不同领域的构件具有的功能不同,因此功能刻面所对应的术语空间的共性较少。这导致对于构件检索来说最重要的功能刻面,构件的描述反而比较粗略,降低了构件检索的查准率和查全率。1.2.5基于语义的构件描述和检索以上四种方法由于缺少特定领域的语义信息,因此在查准率和查全率上存在不足。针对这些问题,许多学者提出对基于语义的构件检索方法进行研究。文献【3]对基于语义的构件描述和检索方法的总体框架进行了阐述,认为基于语义的构件描述和检索方法应该包含以下三方面的优势:①将软件构件视为领域本体基础上的语义描述体;②允许用户使用自然语言表达检索请求,然后将其自动转化为语义描述框架。由于构件描述和检索请求使用相同的语义描述框架,因此可以提高检索的查准率和查全率;③在领域本体基础上通过用户查询语义表示与构件语义描述之间的语义匹配来改进检索效果。这里提到的本体正是用来描述或表达某一领域知识的一组概念或术语。该框架虽然没有涉及其中每一步的细节技术,但是概括了基于语义的构件描述与检索的基本特征,为以后的工作指明了方向。文献【10]提出使用本体来扩展传统刻面方法中的术语空间,并通过术语之间丰富的关系,来支持匹配过程中的语义推理,得到更高的查全率。文献【15]在基于案例推理(case一BasedReasoning)方法的基础上,提出通过会话的方式来筛选前一次检索得到的候选构件集合,以减少用户的理解成本。但该方法假设用户十分了解领域本体的表示方式,能够遵从系统的要求输入初始的查询请求,这显然限制了检索系统的实际应用,加大了用户的检索成本。文献【16]根据用户已经使用的构件,对用户进行分类。并把相似用户使用过的其他构件主动推荐给用户,而不是等待用户来检索,以增加构件的复用度。该方法利用了构件间的关系作为语义,得到了不错的效果。但该方法需要积累动态的语义信息,不利于尚无历史信息的用户检索构件。 基于语义的构件检索系统研究与实现1.3本文的研究工作基于语义的构件检索需要考虑领域知识、用户查询信息的上下文以及构件之间的相互关系。前文提到的文献〔10]和文献【15〕考虑了领域知识;文献[161考虑了构件间的关系。本文结合领域知识和用户查询信息的上下文,对如何用本体来描述构件的功能语义,以及如何降低用户的检索成本、减少查询努力进行了研究。研究内容和成果包括以下几个方面:①给出了基于本体的构件描述框架。本体阐明了知识的结构并且支持知识共享,使得机器可以基于知识进行逻辑推理。对于一个领域来说,它的本体构成了该领域内任何知识表示系统的核心。本文给出了描述领域功能的本体元模型,在此基础上建立的领域本体模型可以被我们的构件描述框架利用,以表达丰富的领域知识。②给出了基于会话和语义的构件检索过程。基于语义的构件检索在各个步骤都考虑到用户查询的语义以及相关领域的知识,因而具有较高的查准率和查全率。会话式的用户查询方案生成则将用户的自然语言查询转换为本体描述,在此基础上根据语义约束关系对原始查询方案进行扩展并根据初步的返回结果进行优化,从而最终确定用户的查询方案。该检索过程减少了用户的检索成本,提高了实用性。③提出了概念映射方法。针对用户对问题域的理解以及所熟悉的自然语言表达方式与构件的规范语义描述之间存在差异,本文使用概念映射将用户的自然语言查询转换为本体描述,从而确定用户的查询方案。本文假设用户输入若干英语的自然语言动宾短语,描述所需构件的各个功能。概念映射充分利用了用户自然语言描述中的上下文(主要由谓语、宾语、状语和定语组成)信息以及领域本体中的语义上下文之间的相似度信息,同时辅以交互式会话过程,让用户不必了解构件的规范语义描述方式,直接使用自然语言即可准确刻画自己的检索请求。④综合了两种相似度匹配算法,提出了一个构件相似度算法。该算法适合本文的构件描述框架,用于用户查询与构件库中的构件的匹配。⑤本文实现了整个构件检索系统。不但给出了构件检索的实例,同时对该系统的查准率和查全率进行了实验,并把实验数据与传统的构件检索方法进行比较,来验证本文所提出方法的效果。另外本文实验了构件检索系统在大规模构件库中的检索效率,以验证本系统的可行性。 基于语义的构件检索系统研究与实现1.4本文的组织结构本文共由6章组成。第一章:引言。在这一章中介绍了本课题的研究背景,描述了现有的构件描述和检索方法的机制和优缺点,并简略介绍了本文的研究工作和成果。第二章:基于本体的构件描述框架与检索过程。在这一章里,我们介绍了本体的相关知识和背景,包括本体的定义、用途、以及本体描述语言等。其中我们着重介绍了W3C提出的OWL语言。接着我们给出了本文使用的领域本体元模型以及形式化的构件描述框架。本章的最后我们给出了整个构件检索过程的全局视图。第三章:概念映射。本章描述了构件检索过程中的第一步,把用户的自然语言查询转化为系统内部的形式化构件功能本体描述。该章不但介绍了概念映射的思想背景,而且给出了概念映射的完整算法和其中使用到的各种公式,最后还分析了该算法的时间复杂性。第四章:语义匹配。本章描述了构件检索过程中的第二第三步。第二步扩展用户的构件查询,对形式化了的用户查询进行语义推理,以得到其中的隐含知识;第三步计算用户查询信息与构件库中构件的相似度。该算法综合了两种已有的匹配算法,以适应本文提出的构件描述框架。第五章:优化构件查询。在实际的构件检索过程中,用户往往要经过多次查询才能获得满意的结果。针对这一问题,本文使用交互式的方法,在分析前一次查询结果的基础上通过提问与用户进行会话,引导用户逐步优化自己的构件查询。本章给出了优化构件查询的算法,并且讨论了会话过程中系统对于问题进行排列的顺序。第六章:系统实现与实验数据分析。本章给出了两个构件检索的实例与相应的系统界面,对系统的查准率和查全率进行了实验,并把实验数据与传统的构件检索方法进行比较,来验证本文所提出方法的效果。最后本章实验了构件检索系统在大规模构件库中的检索效率。 基于语义的构件检索系统研究与实现第二章基于本体的构件描述框架与检索过程2.1本体(Ontology)本体的概念最早来自于哲学,它是对所存在事物的性质的研究。在计算机科学领域,第一个被广泛接受的本体定义是:对概念化的显式的解释说明【17]。这里的概念化,是知识的形式化表达的基础,是对领域内的对象、概念和其他实体,以及它们之间的关系的研究。另一个更靠近计算机科学的本体定义是:对共享的概念化的形式化规约「18]。其中的形式化是指无二义的、机器可读的。而共享则表示本体所捕获的是已经达成共识的知识。本体对于计算机科学的重要性有两点[19]:①本体阐明了知识的结构,使得机器可以基于知识进行逻辑推理。对于一个领域来说,它的本体构成了该领域内任何知识表示系统的核心。②本体支持知识共享。本体捕获了领域的内在概念结构,这是通过对领域进行分析得到的。我们可以与在该领域同样需要捕获知识表示的人共享这个本体,以避免重复的知识分析过程。这个被共享的本体也因此成为了特定领域的知识基础,大大地增加了知识复用的可能性。图2一1是操作系统领域的本体示例。本体中的概念主要由类(Class)和关系(Property)组成。类定义了因共有某些属性而同属一组的实例(Instance),例如图中Win95和Win98都是类V肖ngx的实例。多个类可以用一般一特殊关系(subClassof)组织为一个特定的层次结构。需要注意的是,多继承在本体中是允许的,例如Wingx既是一种桌面操作系统,也是一种V西ndows操作系统。类的语义不仅取决于自己的文字标签,更取决于它与其它类之间的关系,因此关系是本体中非常重要的概念。除了一般一特殊关系之外,本体还能定义其他任何关系,以表达丰富的领域知识。对比图2一1和第一章的图1一1可以发现,两者最大的区别就是图2一1定义了后续版本(following)关系。定义在类上的关系说明了类成员的一般事实,例如一个操作系统可能是另一个操作系统的后续版本。关系同样可以通过一般一特殊(subPropertyof)关系组织为一个特定的层次结构。定义在类实例上的关系实例说明了该类实例的具体事实,例如win98通过folfowing关系关联到Win95,表示Wi心8是Win95的后续版本这样一个具体事实。 基于语义的构件检索系统研究与实现OOPeratingSystemm一一一~一一一叫弓..WWindowssDesktoP055SServer055WWingXXNTFamilyy图例口类〔〕实例一一一卜一般一特殊关系一实例化一fouowing-争后续版本关系一following-,后续版本关系的实例图2一1操作系统领域的本体示例本体还可以在关系上定义规则,例如可以定义folfowing关系满足传递(肠阶sitive)规则,这意味着在following关系上成立如下公式:(afollowingb)八伪fonowingc)今(afolfowingc)。正是由于关系以及规则,使得机器可以自动推理并获得隐含的领域知识。如果用户的检索请求需要一个能在WinZ000上运行的构件,那么运行于Win98上的构件也是符合要求的,因为能够运行于Win98上的构件同样可以运行于V百nZ000上,这是由操作系统向下兼容的特性决定的。可以看到,本体正是通过对概念及其相互关系的规范化描述,勾画出了特定领域的基本知识体系。2.2本体描述语言0、VLOWL是2004年2月w3corg发布的w七b本体语言【20]【21〕,其目的就是为了让应用程序而不是人来处理领域中所包含的知识。OWL是逐步从RDF、RDFS、 基于语义的构件检索系统研究与实现DAML+OIL演化而来的,它也沿袭了RDF的基本事实陈述方式以及RDFS的类和属性分层结构〔22]。oWL提供了三种表达能力递增的子语言,来满足不同的应用需求,它们分别是OWLLite、OWLDL和OWLFull,如图2一2所示。OWL九!!OWLDLOWL翻teRDFSROF图2一ZOWL关系图OWLLite用于提供给那些只需要一个分类层次和简单约束的用户。例如,虽然OWLLite支持基数限制,但只允许基数为0或1。支持OWLLite的工具应该比支持其他表达能力更强的OWL子语言的工具更简单,并且从辞典(thesauri)和分类系统(taxonomy)转换到oWLLite更为迅速。相比oWLDL,oWLLite还具有更低的形式复杂度。OWLDL支持最强的表达能力,同时又能保持计算完备性(comPutatinnalcomPleteness,即所有的结论都能够确保被计算出来)和可判定性(decidability,即所有的计算都能在有限的时间内完成)。OwLDL包括了OWL语言的所有语言成分,但使用时必须符合一定的约束,例如,一个概念是类时,不能同时是另外一个类的实例。OWLDL这么命名是因为它对应于描述逻辑,这是一个研究一阶逻辑的一个特定可判定片断的领域。OWLDL旨在支持己有的描述逻辑商业处理(businesssegment)和具有良好计算性质的推理系统。OWLFun对应于一阶逻辑,用于支持那些不需要可计算性保证,但需要最强的表达能力和完全自由的RDF语法的用户。例如,在OWLFull中,一个概念可以被同时看为一个类以及一个实例。OWLFull允许一个本体增加预定义的(RDF、OWL)词汇的含义。这样,不太可能有推理软件能支持对OWLFull的所有成分的完全推理。在表达能力和推理能力上,每个子语言都是前面的语言的扩展,用户需要根据自己的应用程序来选择适合的子语言。这三种子语言之间有如下关系成立,但这些关系反过来并不成立: 基于语义的构件检索系统研究与实现每个合法的OWLLite本体都是一个合法的OWLDL本体;….每个合法的OWLDL本体都是一个合法的OWLFull本体;每个有效的OWLLite结论都是一个有效的OWLDL结论;每个有效的OWLDL结论都是一个有效的OWLFull结论。下面我们来看看OWL如何描述图2一1所示的操作系统领域本体: ,其中P是谓语,O是宾语,ADVs是状语(描述谓语)词汇集合,ATTs是定语(描述宾语)词汇集合。定义3一2(概念和词汇的词根集合):对丫eone即t任owl:ClassUowl:Property,R(concePt)表示conc印t名字标签的词根集合;对任何自然语言短语x,R(x)表示x包含的所有词汇的词根集合〔27]。定义3一3(刻面词汇集合):对丫eoneePtEOPerationUobjeet,Fwords(concePt)={x}xE甲R(faeeti),其中faeeti是领域本体中第i个约束描述concePt的刻面概念}。定义3一(术语词汇集合)对丫eone叩t任OPerationUobjeet,Twords(eonCPet)={x}xE目R(termi),其中termi是领域本体中第i个约束描述conc即t的术语概念}。定义3一5(约束词汇集合):对丫conc印tEOPerationU0bject,Fl’words(eone印t)=Fwords(con印et)UTwords(eon印et)O在此基础上我们给出构件查询方案概念映射算法如图3一3。 基于语义的构件检索系统研究与实现输入:四元组NL= 输出:构件语义描述Quer又CSD= 与每一个 映射到本体中有Acton属性关联的 与有Aoton属性关联的<叩件以ion,obje少二元组的相似度如下:S从了( 分<叩erarion,objeet>)=(义材(P峥叩eratton)+召刀以(O分object))/2(7)3.3算法复杂度分析一般来说概念映射算法需要反复迭代,因此是一个NP完全问题「27)。但构 基于语义的构件检索系统研究与实现件功能描述有确定的 与每一个被Acton属性关联的<叩eration,object>二元组的相似度。假设领域模型中共有n个oPeration概念,m个objeet概念,每个operation概念通过Aeton属性和ki(i二o,l,…,n一l)个objeet关联。当n和m都很大时,k*近似于常数。因此第l步计算的相似度总数约为kn个,具有线性的时间复杂度。 基于语义的构件检索系统研究与实现第四章语义匹配在将用户的自然语言查询转换为规范的构件语义描述之后,我们接下去的工作就是在构件库中查找匹配的构件集合。这包括了2.5小节图2一5的第3和第4步,前者通过推理得到用户查询中隐含的需求,以利于找到更符合用户要求的构件,后者在第3步的基础上,计算用户查询和构件库中每个构件的匹配度,并按照匹配度的高低按序返回候选构件列表。4.1扩展构件查询如果构件功能的某一个约束描述可以通过已知的约束描述推理得到,该约束描述就应当自动地被加入到构件描述的框架中。对于领域中非常明显的隐含知识,这一步显得更为重要,这是因为用户可能在描述构件需求时,就已经默认了这个知识,如果在查找时未考虑这些隐含知识,那么会降低整个构件查询的效率,也会让用户对构件检索系统产生怀疑。领域模型或者领域规则可以用来对隐含的约束描述进行推理,这在我们的元模型中体现为图4一1椭圆圈内的hifer关系,它代表了两个术语值之间的推断关系。Legend:目一Owl:CI朋S。wl饰:沐勺rdfdatatyperdfs:dom,inrd丘range图4一1支持知识推理的领域本体元模型 基于语义的构件检索系统研究与实现在此基础上,我们定义推理规则如下:规则4一1(隐含约束描述推理):在用户查询Que乃乞CsD中,对丫t~eT七nn(FTs(oPeration))UTenn(FTs(object)),如果(三inferEInfer八日ten,ETerm,满足 令
此文档下载收益归作者所有