您当前的位置:首页 > 计算机论文>软件开发论文

基于软件工程开发的领域本体构建研究

2015-07-03 11:19 来源:学术参考网 作者:未知

基于软件工程开发的领域本体构建研究

  目前流行的领域本体构建方法有:英国edinbunrgh大学ai应用研究所的enterprise项目组开发的“骨架法”,该方法使用middle—out开发方式提供与商业和企业有关的术语及其定义的集合;加拿大toronto大学企业集成实验室开发了tove项目本体,通过该本体来建立指定知识的逻辑模型;bernaras等人开发的欧洲eaprit kactus项目中由应用来控制本体的开发,每个应用都有相应的知识本体,这些本体即能复用其他的本体,又能集成到项目以后的本体应用中;西班牙madrid理工大学ai实验室开发的,methontology法构建知识级本体;美国southern california大学信息科学研究所开发的sensus法,主要通过自然语言处理,提取和合并不同电子知识源的信息而得到该领域本体的内容。
  本文借鉴了上述传统领域本体构建方法中的基本思想,并在构建框架中融合了软件工程开发方法中的结构化开发方法和原型化开发方法。
  1 传统领域本体构建方法分析
  1.1 共同点分析
  纵观上述“骨架法”、“评估法”、“bernaras”、“methonotology”及“sensus”方法构建领域本体过程中的思路,它们之间存在以下共同点:
  (1)许多本体构建方法都以一个具体任务为起点,这样易于知识的获取和本体功能的描述。wwW.133229.COm
  (2)本体构建大致可划分为阶段法(如骨架法)和演化法(如methontology法)。
  (3)在构建过程中可分为“非形式化描述本体”和用正规描述语言“形式化描述本体”前后两个阶段。
  (4)希望通过累积的方法构建本体,即先构建一个基础本体,然后做进一步开发。
  (5)对于由同一个基础本体构建出的领域本体,由于高层概念的共享,本体系统之间具有互操作能力。
  1.2 缺陷分析
  ieee 1074—1995标准是软件开发生命周期过程的标准,其中包括模型阶段、项目管理阶段、软件开发阶段与集成阶段4个开发阶段,其中软件开发阶段的具体步骤如下:
  (1)开发前期:主要进行可行性研究等活动;
  (2)开发阶段:主要进行需求分析、设计和实现等活动;
  (3)开发后期:主要进行软件的安装、试运行、操作和维护等活动。
  与ieee 1074—1995标准对比而言,目前领域本体构建还远远没有成为一种工程性活动,还具有如下缺陷:
  (1)没有一种方法是完全成熟的,不论是bemaras法、sensus法、骨架法、评估法,还是methontology法。
  (2)缺乏工程化的本体本文由论文联盟http://收集整理通用构造方法和标准。由于每个研发团队处于不同的学科领域,虽然总结出各个领域不同的开发方法和体系结构,但是各个本体开发方法都不尽统一,缺乏通用的标准。
  本文在领域本体构建过程中扬弃上述5种领域本体构建方法中的优缺点,而且借鉴了软件工程开发的基本标准。
  2 基于软件工程开发的领域本体构建
  2.1 构建框架
  本文在领域本体框架构建的形式上采用结构化方法中分段式模式,将整个领域本体构建过程分为领域本体规划阶段、领域本体分析阶段、领域本体设计阶段、领域本体实施阶段及领域本体运行阶段,每个阶段都有自己独立的目标及主要任务,前一阶段任务的完成是后一阶段任务开始的前提和基础,后一阶段任务通常是对前一阶段提出的解决问题方法的进一步具体化,即该过程是按照软件工程开发的生命周期流程来逐步解决问题的。在领域本体分析阶段,根据领域本体规划阶段提出的具体要求和目标,采用原型化方法不断地对分析结果进行修改和完善。其构建框架如图1所示。
  2.2 构建框架分析
  2.2.1 领域本体规划阶段
  (1)确定领域本体的用途和范围
  确定领域本体范围的方式之一是设计并填写本体的性能调查表,以下从需求的角度对本体支持的性能调查表进行简单的分类:
  ①需求细化。需求细化过程必须满足何种标准?会产生多余的需求吗?需求是客户的清晰表述吗?
  ②需求追溯能力。需求还能分解吗?需求的来源是什么?谁记录需求?需求在特定的设计团队中适用吗?
  ③需求满足。需求能够满足吗?两个或多个需求间相互冲突吗?更高抽象级别的需求怎样满足评估?
  ④文档生成。需求属于哪类文档?哪些是与需求文档中的段落相符的需求?不属于客户报告的需求有哪些(商业机密)?
  ⑤升级。这是需求的最新版本吗?需求的旧版本有哪些?为什么还要改变需求?变化对需求文档的一致性和完整性有影响吗?
  (2)考虑复用现有领域本体
  一些本体已经初具规模,可以在网上找到相应的本体库及相关资料,在具体开发之前,有必要在这些本体中寻找系统可以重用的本体,这样可以省去元本体和顶层本体的建立,而把本体建立的目标重点放在领域本体的建立上。
  2.2.2领域本体分析阶段
  (1)定义类和类层次
  类描述了领域的概念而非单词。在类和类层次的定义过程中,需要依据以下8个原则:
  ①确保类层次的正确性
  恰当使用is—a和kind-of等类间关系,is-a关系指类a是类b的子类,前提是b的每个实例也是a的实例。类的子类表示概念是kind-of父类表示的概念;层次关系间具有传递性,并应区分直接子类和间接子类的关系;避免类层次的循环,确保类层次随着领域发展而进化。

转贴于论文联盟 http://www.ybask.com

  ②分析类层次中的兄弟关系
  在类层次中,兄弟关系是同一类的直接子类,并在同一抽象级别上。关于直接子类的个数并没有明确规定,但父类一般只有2-12个直接子类,过多或过少不都合适。
  ③多重继承关系
  一个类可以是几个类的子类,则子类的实例是其所有父类的实例,子类将继承所有父类的属性和关系约束。
  ④引入新类的时机
  当类的子类有其父类不具有的新属性,或有已定义的新属性值,或覆盖父类属性的约束,此时可以引入一个新类。新类可以没有任何新的属性,没有必要为了一个额外的限定条件来创建新类。
  ⑤新类或特性值
  如果有不同属性值的概念变成其他类中不同属性的约束,则应该生成新类,以便加以区别;类的单个实例不应经常改变,当使用概念的外在(非固有)属性来区别类时,这些类的实例将需从一个类移动到另一类。
  ⑥类或实例
  判断类结束和单个实例开始依赖于知识表示中最低的粒度级,而粒度级又由本体应用来确定;如果概念已经形成自然的层次,则应表述为类,单个实例是最特殊的概念表述,实例没有层次性。
  ⑦限定范围
  确保不包括类具有的所有特性,仅在本体中表述类最突出的特性,不增添所有类(术语)间全部的关系。
  ⑧不相关子类
  很多系统明确指定某些子类不相交,如果类没有任何共同的实例,则它们不相交。
  (2)定义类的属性及其约束
  类的属性是描述类和实例的特性,也是类间区分的特性。通常有四种对象特性能变成本体中的属性:本文由论文联盟http://收集整理
  ①固有的特性,如圆柱的半径和高度。
  ②外在的属性,如螺旋的设计者。
  ③局部,若对象是结构化的,物理和抽象的部分。
  ④与其他个体间的关系。
  不同的约束可以用来描述属性的值类型、值范围、值基准,及值的其他特征。下面从5个方面来描述属性普通的约束:
  ①属性基数。基数定义属性有多少值。有些系统定义单一和多个基数,而有些系统用最小和最大基数来描述属性值的个数。有些属性设置最大基数为o,目的是为了表示特定子类的属性不能有任何值。
  ②属性值类型。通常属性值类型可分为字符串型(string)、“浮点或整数”数值型(float或integer number)、“是或否”布尔型(yes或no boolean)、枚举型或符号型(enumerated或symbol)、实例型(instance)。
  ③属性的领域和范围
  属性应能描述其领域中所有的类,属性应能填充其范围内所有类的实例,同时不应指定属性的范围是本体中最通用的类。
  ④逆属性
  属性值可能会依赖于另一属性值,称为逆关系,在两个方向保存此数据是冗余的,通常使用逆属性,可以自动填充另一逆关系的值。
  ⑤默认值
  如果类的多数实例的特定属性值是相同的,则可把该值定义成默认值。当类的每个新实例包含这个属性值时,系统自动填充默认值,还能把此值改成约束允许的其他值。
  (3)生成实例
  定义类的单个实例首先需要选择类,接着生成这些类的单个实例,最后填充属性值。
  为了使生成的类、类间层次关系、类属性及约束、类实例等更符合构建目标和用途,并为了保障在较短时间内适合用户的需求,在领域专家的指导下,采用原型化软件工程开发方法对该阶段产生的成果不断修改和完善。
  2.2.3 领域本体设计阶段
  (1)领域本体的形式化表示
  一般用语义模型表示领域本体。perez等人用分类法组织领域本体,归纳出5个基本建模元语:
  ①类(classes)或概念(concepts)
  从语义上讲,它表示的是对象的集合,其定义一般采用框架(frame)结构,包括概念的名称、与其他概念之间的关系集合、以及用自然语言对概念的描述。
  ②关系(relatiom)
  在领域中概念之间的交互作用,形式上定义为n维笛卡尔积的子集,即:r=c1×c2×……×cn
  ③函数(functions)
  一类特殊的关系。该关系的前n-1个元素可以惟一决定第n个转贴于论文联盟 http://www.ybask.com

元素。形式化定义为f:c1×c2×……×cn-1→cn
  ④公理(axioms)
  代表永真断言,如概念乙属于概念甲的范围。
  ⑤实例(instances)
  代表元素,从语义上讲实例表示的就是对象。
  另外,从语义上讲基本的关系有4种:整体与部分关系(part—whole)、分类关系(is—a)、实例与概念关系(instance—concept)和属性关系(attribute-of)。但在实际建模过程中,概念之间的关系不限于上述4类关系,可以根据领域的具体情况定义相应的关系。
  (2)领域本体的形式化描述语言
  领域本体可用自然语言、框架、语义网络或逻辑语言等来描述。但对计算机来说,形式化描述语言做为一种可供计算机处理的概念模型,应具备以下条件:
  ①应该具有较强的表示能力,同时也应兼顾推理能力,以满足智能检索中进一步实现推理的需求。
  ②应该具有较强的内在逻辑系统支持。
  ③应该具备一致的描述概念和表示数据的能力。
  ④应该尽可能与w3c已有标准兼容,从而保证其持续发展需求。
  ⑤应该具备xml语法特性,最好是基于语义web。
  ⑥所表示的领域知识是形式化的,即机器可读和可理解的。
  目前已经开发了6种本体语言,有些是直接基于xml语言的语法,如简单html本体扩展(simple html ontologyextension,shoe)、本体标记语言(ontology markup language,oml)和基于xml的本体交换语言(xml—based ontology exchange language,xol);另外有2种本体语言是建立于rdf(s)之上,以便改善rdf(s)的特征:本体交互语言(ontology interchange language,oil)和darpa主体标记语言+本体推理层(darap agent markup language with ontology inference layer,daml+oil)。最近,以oil和daml+oil语言为起点,已开发出语义网所用的web本体语言(web ontology language,owl)。各个本体语言之间的层次化关系如图2所示:

  (3)领域本体的文档化构建和存储
  构建领域本体文档,可对后续领域本体修改和进化奠定基础。1个owl文档由以下4个部分组成:
  ①本体首部:包含了文档的元数据,如导入数据、版本数据及与其他owl文档的兼容数据。
  ②类的定义:通过(owl:class)标签定义类,使用(rdfs:subclassof)来继承1个或多个类,由此建立类的层次关系。类的语义用类的描述来表达。owl区分了6种类的描述:1个类标识,1个详细的列举,1个属性的限定,2个或多个类描述的交,2个或多个类描述的并,1个类描述的补。
  ③属性的定义:owl存在2种类型的属性,即对象属性(object property)和数据类型属性(datatype property)。对象属性是用来表述2个类实例之间的关系,而数据类型属性则描述类的实例、rdf literals,以及xml schema数据类型之间的关系。属性之间还能够定义子属性关系以及为属性声明额外的特征(传递属性和逆属性)。如能够定义father是parent的子属性,定义anceator为传递属性,定义child为parent的逆属性。
  ④个体(实例)的定义:一个个体是一个特定类的实例,并与其属性相联系。
  2.2.4 领域本体实施和运行阶段
  (1)领域本体评价
  这里采用gruber在1995年提出的5条准则:
  ①清晰性。所定义的术语应尽量客观,避免受社会背景和客观环境的影响;给出的定义应尽可能完整。
  ②一致性。即本体中定义的公理应该是逻辑一致的,概念和概念间关系在逻辑上也应该是一致的。
  ③可扩展性。本体应该能够保证添加新的通用或专用术语,而不需要修改原有的定义,即能支持在已有的概念基础上定义新术语。
  ④编码偏好程度最小。概念应该在知识层次上说明,而不应该依赖于特定的符号层次的编码,因为不同的系统可能采用不同的表示风格。
  ⑤最小本体承诺。一般地,本体承诺只要满足特定的知识共享需求即可,这可以通过定义约束最弱的公理及只定义交流所需的基本词汇来保证。
  (2)领域本体试运行
  可针对某一应用目标,可利用初始生成的领域本体在特定的应用范围内进行试运行,来验证初始领域本体是否能够满足领域范围应用的需求,特别是要检验其一致性、完整性和可扩展性。经过试运行,若符合要求则转向(4);若不符合要求则要重新经过本体分析阶段,然后转向(3)与(4)。
  (3)领域本体文档的修改
  针对试运行的结果,可在owl文档的基础上做一些标注性的修改。
  (4)领域本体应用
  对于修改后的领域本体,可正式投入实际运行应用过程。
  3 总结和展望
  本文在总结与分析传统领域本体构建方法中的基本思想及缺陷的基础上,提出了基于软件工程开发角度来构建领域本体的思路。其中利用结构化开发方法构建领域本体整体开发流程,充分借鉴了结构化开发方法中的用户至上原则,结构化、模块化、自顶向下地对系统进行分析和设计等优点,但由于结构化开发方法中存在开发周期过长、不易满足用户需求并难易修改等缺陷,因此在领域本体构建的重要环节,即在领域本体分析阶段采用原型化开发方法,使用户与开发者通过不断地沟通尽快确定领域本体初始模型,并通过结构化开发方法所划分的层次结构过程不断地优化和修改初始模型,使其能够尽快满足用户的需求。

转贴于论文联盟 http://www.ybask.com
相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页