CN101710285A - 一种基于领域模型的服务需求获取与建模方法 - Google Patents
一种基于领域模型的服务需求获取与建模方法 Download PDFInfo
- Publication number
- CN101710285A CN101710285A CN200910272891A CN200910272891A CN101710285A CN 101710285 A CN101710285 A CN 101710285A CN 200910272891 A CN200910272891 A CN 200910272891A CN 200910272891 A CN200910272891 A CN 200910272891A CN 101710285 A CN101710285 A CN 101710285A
- Authority
- CN
- China
- Prior art keywords
- model
- field
- demand
- service
- domain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Machine Translation (AREA)
Abstract
本发明提供一种基于领域模型的服务需求获取与建模方法,采用基于领域模型的分析方法,以领域目标模型的形式描述领域共性需求,以领域过程模型的形式描述为满足这些共性需求而提供的服务组合方案。由于用户需求往往是面向特定领域的,所以本发明的方法将有助于提高服务组合效率。此外,本发明采用了领域本体技术,增加了支持用户需求表达形式多样化的能力,并且,通过与用户的交互,有助于准确理解需求,并能充分复用领域资源,增加用户的服务体验质量。
Description
技术领域
本发明属于计算机软件技术领域,特别是涉及一种基于领域模型的服务需求获取与建模方法。
背景技术
需求获取与建模是长期困扰软件开发者的一个重要问题,糟糕的需求是造成软件危机的根本原因之一。研究表明,需求引发的问题在软件工程中占据的比重越来越大。以著名的Chaos报告为例,1995年的Chaos报告表明[1],在软件项目的成功因素中,42%的因素直接与需求工程有关。同时,在导致项目失败的原因中,有43%的因素直接与需求工程有关;在2003年的Chaos报告中指出[2],项目管理人员认为不合格的需求是导致软件开发项目失败的主要原因之一。在欧洲范围内,对17个国家的3800多个组织的调查表明了类似的结果[3]:大多数可以感知的软件问题发生在需求规约(>50%)和需求管理(50%)阶段。图灵奖得主F.P.Brooks在《人月神话》一书中也强调[4],“构造软件系统中最困难的部分在于精确地决定要构造什么,没有其它的概念化工作象建立详细的技术需求那样困难”。上述调查和相关研究表明,需求工程已经成为软件工程研究和实践中最值得关注的领域之一。
需求分析与建模是需求工程中的一项重要研究内容。经典的需求分析方法主要分为4类:面向过程、面向数据、面向控制、面向对象。面向过程的分析方法主要研究系统各个模块输入输出的转化,以结构化分析方法为代表;面向数据的分析方法注重数据结构的分析,以ER图为代表;面向控制的分析方法强调进程的同步、死锁、互斥、并发等,以数据流图为代表;面向对象的分析方法是目前最为流行的一种方法,它以建立系统对象和对象之间的交互为基础,典型的代表是UML和RUP方法。
上述方法都是在结构化程序设计和面向对象程序设计中广泛采用的。随着SOA(面向服务的架构)、SaaS(软件即服务)等开发技术和开发理念的提出,面向服务的软件开发已经成为一种新的软件范型。Web服务是分布式的、松散耦合的软件构件,在SOA环境中,分布在网络中的各种资源可以被封装为可访问的服务,而无须关注其底层的平台实现。服务为开发和集成大规模信息系统奠定了基础。在这种面向服务的软件新范型下,软件开发方式也正经历着一系列的变革。面向服务的软件开发强调通过重用或组装已经存在的服务资源来开发复杂的应用系统,从而满足用户的各种需求。
面向服务的软件开发针对的用户主要包括两类:终端用户和服务提供商。对于终端用户而言,由于缺乏专业知识,他们提出的需求往往相对比较抽象,希望得到满足其特定需求的服务或服务组合,更注重基本的功能和特定的偏好。如某个终端用户要查询天气情况,其功能需求是“查询天气”,其偏好需求可以是要求免费的查询服务、通过手机短信返回查询结果等。根据用户的需求,可以在网络中找到功能上可以满足的若干服务,并按照其偏好的满足程度对服务进行排序。
对于服务提供商而言,其基本需求是开发新的服务、或发现已有的服务并将其组合成为新的服务。服务提供商往往具有一定的专业知识,他们考虑的不仅仅是服务的功能,还要考虑输入、输出、接口间的绑定和控制结构等问题。
现有的面向服务的需求获取方法[5]往往需要服务请求者明确提供希望得到的服务名称、输入、输出等信息,而不能对终端用户的抽象需求提供有效支持,而且,在进行动态服务组合时如果缺乏导向性的支持,这将使得服务组合的效率降低。
参考文献如下:
[1]The Standish Group,“The Chaos Report”,The Standish GroupInternational,Inc.,1995.
[2]The Standish Group,“Chaos Chronicles v3.0”,The Standish GroupInternational,Inc.,2003.
[3]European Software Institute,“European User Survey Analysis”,ReportUSV_EUR 2.1,ESPITI Project,1996.
[4]F.P.Brooks,The Mythical Man-month:Essays on Software Engineering,Anniversary Edition,Addison Wesley Longman,1995.
[5]Eran Toch,Iris Reinhartz-Berger,Avigdor Gal,and Dov,DoriOPOSSUM:Bridging the Gap between Web Services and the Semantic Web,Proceedings ofNGITS 2006:357-358
发明内容
针对服务这种新的软件形态,本发明提出一种基于领域模型的服务需求获取与建模方法,该方法能获取用户需求,对需求进行分析和处理,构建满足用户需求的服务组合模型。
本发明所提供技术方案包括以下步骤:
步骤1,根据领域中的共性需求和服务资源,构造领域模型,所述领域模型包括领域角色模型、领域目标模型、领域过程模型和领域服务模型;构建实现包括以下步骤,
步骤1.1,构造一个面向服务的RGPS需求元模型框架,其中包括四个层次的元模型,并在四个层次间建立相应的关联关系;所述四个层次为角色层、目标层、过程层和服务层,所述四个层次的元模型即角色层元模型、目标层元模型、过程层元模型和服务层元模型;
步骤1.2,针对具体应用领域,根据领域中的基本概念构造领域实体本体和领域操作本体,所述领域实体本体用于描述领域中的实体概念及其之间的关系,所述领域操作本体用于描述领域中的操作概念及其之间的关系;
步骤1.3,针对领域中的某一共性问题,基于步骤2构造所得领域实体本体和领域操作本体,按照步骤1所得RGPS需求元模型框架构建领域角色模型、领域目标模型和领域过程模型,并在建模过程中利用领域实体本体和领域操作本体对这三类模型进行语义标识;
步骤1.4,采用步骤1所得RGPS需求元模型框架中的服务层元模型注册领域中的服务资源;利用领域实体本体和领域操作本体,对领域中的服务资源进行描述和语义标识,得到领域服务模型;
步骤2,分析用户通过结构化自然语言描述的需求,得到初始需求模型;将初始需求模型与步骤1所得领域目标模型进行语义匹配;
步骤3,将步骤2所得匹配结果返回给用户,允许用户对返回的匹配结果进行选择,然后确认用户所选择结果为需求模型;
步骤4,在领域模型中利用目标层与过程层的关联、过程层与服务层之间的关联,返回与步骤3所得需求模型对应的领域服务模型中服务。
而且,步骤2中,所述分析用户通过结构化自然语言描述的需求,实现过程如下,
对结构化自然语言描述的需求进行分词与词性标注,得到分词序列;分析分词序列,得到需求中的功能目标和非功能目标;将功能目标与非功能目标关联,得到初始需求模型。
用户提出的需求是以目标的形式呈现的,可以是功能目标或非功能目标。在面向服务的软件范型下,用户的需求呈现出多样化和个性化的特点,非功能需求显得尤为重要,本发明可以有效的获取用户的非功能需求。众所周知,服务的动态组合算法复杂,如果缺乏导向性的指导,就容易导致组合效率低下。本发明采用基于领域模型的分析方法,以目标模型的形式描述领域共性需求,以过程模型的形式描述为满足这些共性需求而提供的服务组合方案。由于用户需求往往是面向特定领域的,所以本发明的方法将有助于提高服务组合效率。此外,本发明采用了领域本体技术,增加了支持用户需求表达形式多样化的能力,并且,通过与用户的交互,有助于准确理解需求,并能充分复用领域资源,增加用户的服务体验质量。
附图说明
图1基于领域模型的服务需求获取的流程图;
图2本发明实施例的角色层元模型;
图3本发明实施例的目标层元模型;
图4本发明实施例的过程层元模型;
图5本发明实施例的服务层元模型;
图6本发明实施例的RGPS层次间关系元模型;
图7有限状态自动机中功能模式部分;
图8有限状态自动机中属性定量描述模式部分;
图9初始需求模型的元模型。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步说明,所举例子来自城市交通领域的需求获取与建模,实施例中所述的具体应用领域不应构成对本发明的限制。
如图1所示,本发明包括以下顺序执行步骤:
步骤1,根据领域中的共性需求和服务资源,构造领域模型,所述领域模型包括领域角色模型、领域目标模型、领域过程模型和领域服务模型。共性需求是指根据共性问题需要建立的领域角色模型、领域目标模型和领域过程模型。领域服务模型则是针对已有的服务资源构建的,不属于需求。所有领域模型构建实现又可以细分为步骤1.1~1.4这4个步骤:
步骤1.1,构造一个面向服务的RGPS需求元模型框架,其中包括四个层次的元模型,并在四个层次间建立相应的关联关系;所述四个层次为角色层、目标层、过程层和服务层,所述四个层次的元模型即角色层元模型、目标层元模型、过程层元模型和服务层元模型;
步骤1.2,针对具体应用领域,根据领域中的基本概念构造领域实体本体和领域操作本体,所述领域实体本体用于描述领域中的实体概念及其之间的关系,所述领域操作本体用于描述领域中的操作概念及其之间的关系;
步骤1.3,针对领域中的某一共性问题,基于步骤2构造所得领域实体本体和领域操作本体,按照步骤1所得RGPS需求元模型框架构建领域角色模型、领域目标模型和领域过程模型,并在建模过程中利用领域实体本体和领域操作本体对这三类模型进行语义标识;
步骤1.4,采用步骤1所得RGPS需求元模型框架中的服务层元模型注册领域中的服务资源;利用领域实体本体和领域操作本体,对领域中的服务资源进行描述和语义标识,得到领域服务模型。
为了得到向导性的支持,本发明建立了领域模型。该领域模型采用规模化定制的思想,基于RGPS需求元模型框架构建,因此可称为O-RGPS领域模型。通过预先对特定领域的领域知识和共性需求进行建模,得到的领域模型可以为具体应用服务系统的建模提供公共的可重用基础。从而,有效地组织领域中可重用的服务资源,建立起用户需求到服务之间的桥梁。本发明提出的需求获取方法将利用O-RGPS领域模型对服务需求的获取和服务组合提供指导,主要针对终端用户,同时也可以对服务提供商提供支持。
首先,介绍一下RGPS需求元模型框架,其中包括角色-目标-过程-服务(Role-Goal-Process-Service)四个层次的元模型,通过这四个层次元模型之间的关联,能够为领域模型的互操作提供有力的支持。建立了RGPS需求元模型框架,并以此作为模板来进行领域资产建模,从而使整个建模过程摆脱了对建模人员的领域知识和建模经验的过分依赖,并促进领域资产的高效复用。本发明中的RGPS需求元模型框架包括角色-目标-过程-服务(Role-Goal-Process-Service)四个层次的元模型,通过这四个层次元模型之间的关联,能够为领域模型的互操作提供有力的支持。
角色层描述需求问题空间中组织、角色、扮演角色的参与者,及其之间的交互与协同。图2中展示了角色层元模型的基本结构。组织(Organization)包含许多相互关联的角色(Role),而组织的运转依赖于多个角色根据一定的业务规则进行交互完成。角色(如“游客”、“司机”)是在特定的组织情境下,对组织中的部分行为和责任所进行的抽象刻画。角色可以由一到多个参与者(Actor)扮演,每个参与者也可以扮演一到多个角色。在一个组织中,角色目标(RoleGoal)是角色负责承担的组织目标,如“制定出行规划”。同时,扮演角色的参与者也有其偏好的个人目标(Personal Goal),如“最少时间到达”。参与者可以为人或软件代理。
目标层对目标的逐层精化过程进行刻画,直到将所有目标分解为可操作目标为止。同时,定义目标之间的约束关系。图3列出了目标层元模型的基本结构。目标(Goal)被定义为用户期望系统能够达到的目的状态。根据目标的提出角度不同,可以分为角色目标和个人目标。而根据目标的完成准则不同,可以分为功能目标(Functional Goal)和非功能目标(Nonfunctional Goal)。功能目标(如“通过视频显示出行路线”)包括三个部分:操作(如“显示”)、操作所处理的业务对象(如“出行路线”)、以及方式(如“通过视频”)。其中,操作是领域操作本体(Operation Ontology)中的概念,而业务对象则是领域实体本体(Entity Ontology)中的概念。非功能目标可由过程促进完成,非功能目标通过转化,最终是需要功能目标来实现的,功能目标是通过过程来完成的。非功能目标中包括有非功能目标类型(如“响应时间”、“可靠性”),此外根据其描述方式可以进一步分为定量目标(Quantitative Goal)和定性目标(QualitativeGoal)。定量目标(如“响应时间小于2秒”)包括三个部分:比较符(如“小于”)、值(如“2”)和计量单位(如“秒”);定性目标(如“可靠性高”)包括一个部分:程度(如“高”)。
用户提出的目标通常是比较抽象的、高层次的。这种高层目标需要进行精化或分解,才能指导后续的开发。目标的分解到可操作目标(Operational Goal,能由过程层中的过程直接完成的目标)结束,即当所有的最下层目标都是可操作目标时,目标分解过程结束。可操作目标是一种功能目标,同时具备非功能目标的属性。
在目标分解时,采用了类似于特征分解的方式,上层目标和下层目标集之间定义了四种关系:必选(Mandatory)、可选(Optional)、多选一(Alternative)和多选多(OR)。除了纵向的分解关系外,目标之间还存在约束(Constraint)关系,分为两类:依赖(Depend)和排斥(Exclude)。“必选”关系意味着,当上层目标被选择到结果目标集里,与该目标有“必选”关联的下层目标集也必须被选择到结果目标集里;“可选”关系意味着,当上层目标被选择到结果目标集里,与该目标有“可选”关联的下层目标集中的目标可以被选择或不被选择到结果目标集里;“多选一”关系意味着,当上层目标被选择到结果目标集里,与该目标有“多选一”关联的下层目标集中,有且只有一个目标被选择到结果目标集里;“多选多”关系意味着,当上层目标被选择到结果目标集里,与该上层目标有“多选多”关联的下层目标集中,允许有一到多个目标被选择到结果目标集里。“依赖”关系意味着,如果某个目标A被选择到结果目标集中,与该目标A具有“依赖”关联的目标B也必须被选择到结果目标集中。目标A称为源端,目标B称为目的端。“排斥”关系意味着,如果某个目标被选择到结果目标集中,与该目标具有“排斥”关联的目标必须不能同时被选择到结果目标集中。
过程层定义了过程的输入/输出以及前置/后置条件,并基于控制结构对过程进行组合。图4给出过程层元模型的结构,目标和过程是一个双向关联关系,目标可以关联过程,同样,过程也可以关联目标,表示该过程可以实现该目标。过程可以分为原子过程(Atomic Process)和组合过程(Composite Process)。组合过程通过控制结构将一组过程(原子过程或组合过程)进行组合起来构成的。现有典型的控制结构一般包括顺序(Sequence)、循环(Loop)、选择(Choice)、并发(Join)和任意次序(Any Order)。过程中定义了输入(Input)、输出(Output)、前置条件(Precondition)、后置条件(Effect)和质量期望(Quality Expectation)。输入和输出表示过程所转换的数据流,而前置条件和后置条件分别表示过程开始执行和结束时所必须保持的约束条件。质量期望描述了用户对过程的非功能性方面的要求。
服务层用来指导服务资源的聚合,为用户需求提供基于服务的实现方案。图5展示了服务层元模型的基本结构。服务包括如下属性:输入消息、输出消息前置条件、后置条件、服务描述语言、访问协议、异常、质量属性、资源、过程。每个消息都有其数据类型,数据类型决定了消息的取值范围,数据类型可以是整型、字符串型等简单数据类型,也可以是来自于领域实体本体中的概念。前置条件和后置条件分别表示服务开始执行和结束时所必须保持的约束条件。服务可以由特定的服务描述语言进行描述,并可以通过相应的访问协议进行访问。异常用于刻画服务可能会遇到的非正确执行时的情形。服务的质量属性用于描述服务在响应时间、可用性等非功能类型的取值。资源表示服务所封装的数据和业务逻辑。过程则是该服务可以实现的过程。
四个层次间的关系描述如图6。角色层与目标层之间的关系体现在:角色承担相应的角色目标;每个参与者都扮演特定的角色,除了具有其所承担的角色目标外,参与者还具有偏好性的个人目标。目标层与过程层之间的关系体现在:目标的完成或满足要依赖于相关的业务过程,每个过程都与目标进行关联,一方面,过程可以完成相应的功能目标,直接完成用户对功能方面的要求;另一方面,过程可以促进非功能目标的实现,能够提高非功能目标的满足程度。过程层与服务层之间的关系体现在:服务可以实现过程,这意味着服务不只是在功能上满足过程的需要,还要保证服务的非功能性属性能够满足过程的非功能性期望。即,过程层描述的是一个基于业务流程的解决方案,该解决方案中的每个任务或活动都通过服务来实现。
本发明充分利用了本体的标识和推理功能。在基于RGPS需求元模型框架,针对具体应用领域进行建模时,构造的领域资产包括领域本体和领域模型,构成领域资产库。之前所有构建的内容都存在领域资产库中,以便以后复用。利用领域本体确保领域模型之间的语义协同,利用领域问题本体建立领域模型的分类和索引。
首先构造领域本体,本发明中定义了领域实体本体和领域操作本体两类领域本体。实施例中,领域实体本体描述了领域中的实体概念(如“出行路线”、“天气预报”)及其之间的关联关系和约束,领域操作本体定义了领域中的操作(如“显示”、“查询”)概念及其之间的关联关系和约束。在构造领域本体时,通过对领域的相关文档进行分词,抽取领域中的基本概念。输出的文件格式为OWL。
然后,基于上述两类领域本体,在RGPS需求元模型的指导下,构造领域角色模型、领域目标模型、领域过程模型这三类领域模型。在具体建模时,首先分析根据应用问题列出其所涉及的角色,描述出它们之间的关联关系,并给出每个角色的顶层需求目标,从而完成角色建模;然后针对每个顶层需求目标进行精化,将其细化为一系列功能和非功能子目标,直到细化为可操作目标为止,并通过将所涉及的角色作为顶层需求目标属性的方法建立目标模型与角色模型的关联关系;进而由系统根据同一目标模型内的不同目标之间的关系自动将该目标模型转化为过程模型,从而完成过程模型的构建。
为了便于对领域模型进行解析和推理,促进领域模型的共享和服务,利用本体的方式对这三类模型进行描述。其中,领域角色模型和领域目标模型利用OWL进行描述,领域过程模型利用OWL-S进行描述。在本发明中,本体在领域建模中的作用体现在三个方面:一方面,利用领域本体对领域模型进行语义标识,为领域模型提供了语义互操作性支持。其具体实施方法是利用领域实体本体中的概念对领域角色模型中所涉及的角色及领域目标模型和领域过程模型中的操作对象、场所、方式进行标识;同时利用领域操作本体中的概念对领域资产库中的目标模型和过程模型中的操作进行标识。另一方面,领域模型利用本体的描述方式(OWL或OWL-S格式)进行描述,便于进行领域模型的语义推理和共享。最后,领域问题本体用于对所有领域模型按照其功能进行分类,并将隶属于同一领域问题的领域模型组织起来,建立其相互之间的对应关系。
进而,基于RGPS需求元模型框架中的服务层元模型作为注册模板,具体实施时可以构建服务注册库,在服务注册库中对领域中可用的服务资源进行注册;利用领域实体本体和领域操作本体,对领域中的服务资源进行描述和语义标识,得到领域服务模型。领域服务模型利用OWL-S进行描述。具体实施时,可以用领域实体本体中的概念来标识服务的输入和输出属性,利用领域操作本体中的概念来标识服务的操作属性;同时,描述服务的安全性、可靠性、响应时间等非功能属性;最后,建立服务与过程模型的关联,并登记在服务注册库中。
上述四层模型的主要建模元素之间存在相应的关联关系:1个角色拥有0到多个目标,1个目标至少属于1个角色,1个目标可以分解为1到多个可操作目标,1个可操作目标至少可以由1个过程来完成,1个过程至少可以通过1个服务实现。图2~6按照UML图的画法提供,其中1..*表示一个到多个,1..1表示当且仅当1个,0..*表示0个到多个,0..1表示0个到1个。
步骤2:分析用户通过结构化自然语言描述的需求,得到初始需求模型;将初始需求模型与步骤1所得领域目标模型进行语义匹配。
本发明借助于结构化的自然语言,以一种简便的、易于用户接受的方式提出需求,这种方式可以获取用户提出的抽象需求。实施例所用结构化语言分为四个层次,按粒度从大到小可分为:语句、模式、短语、单词。他们之间的关系如下:一个语句可以由一个或多个模式构成;一个模式可以由一个或多个短语构成;一个短语可以由一个或多个单词构成。
单词包括领域本体中的概念、句型中的关键词、地名列表中的词、表示时间的词,也可以是现代汉语中的其他词。
短语包括时间短语、地点短语、比较符短语和单位短语。时间短语:表示时间的词(如:×年×月×日×时×分×秒,早晨、中午…);地点短语:表示地点的词(如:省、城市、街道的名称…);比较符短语:表示比较关系的词(如:大于|小于|不大于|不小于|等于|不等于|多于|少于|不多于|不少于|高于|低于|不高于|不低于…);单位短语:表示单位的词(如:米、元…)。
模式包括功能模式,时间模式,地点模式,方式模式,定性描述模式,定量描述模式,属性定性描述模式,属性定量描述模式,原子条件模式,条件模式,原子效应模式,效应模式。这些模式涵盖功能目标,非功能目标的各种提出方式。
实施例用巴科斯范式来描述模式与语句。首先,说明巴科斯范式的语法规范:
在双引号中的字(“word”)代表着这些字符本身。
在双引号外的字(有可能有下划线)代表着语法部分。
尖括号(<>)内包含的为必选项。
方括号([])内包含的为可选项。
大括号({})内包含的为可重复0至无数次的项。
竖线(|)表示在其左右两边任选一项,相当于″OR″的意思。
::=是“被定义为”的意思。
实施例中,巴科斯范式描述的模式与语句如下:
功能模式::=[角色]动词名词{(“和”|“与”|“以及”)名词}
时间模式::=“在”时间短语|“从”时间短语“到”时间短语|“到”时间短语
地点模式::=“在”地点短语|“从”地点短语“到”地点短语|“到”地点短语|“经过”地点短语|“途经”地点短语
方式模式::=(“根据”|“依据”|“通过”|“按”|“按照”)名词
定性描述模式::=名词[“是”]名词修饰语
定量描述模式::=名词比较符短语数字[单位短语]
属性定性描述模式::=名词“的”名词[“是”]名词修饰语
属性定量描述模式::=名词“的”名词比较符短语数字[单位短语]
原子条件模式::=定性描述模式|定量描述模式|属性定性描述模式|属性定量描述模式
条件模式::=原子条件模式{(“并”|“并且”|“或”|“或者”)原子条件模式}
原子效应模式::=(名词动词|动词名词)“后”,(定性描述模式|定量描述模式|属性定性描述模式|属性定量描述模式){(“并”|“并且”|“或”|“或者”)(定性描述模式|定量描述模式|属性定性描述模式|属性定量描述模式)}
效应模式::=原子效应模式{(“并”|“并且”|“或”|“或者”)原子效应模式}
语句包括简单语句、并列语句和条件语句。
简单语句::=[方式模式][时间模式][地点模式]功能模式“。”|属性定性描述模式“。”|属性定量描述模式“。”|效应模式“。”
并列语句::=简单语句{(“并”|“并且”)简单语句}“。”
条件语句::=“如果”条件模式,(简单语句|并列语句)[(“,”|“;”)“否则”,(简单语句|并列语句)]“。”
语句::=简单语句|条件语句|并列语句
如可以用该结构化语句提出如下需求:“安排出行并且通过短信显示出行规划。”这条需求是并列语句连接的两个功能模式的子句。还可以提出需求:“搜索停车场。停车场的价格小于4元每小时。”这条需求中,前者是只包含一个功能模式的简单语句,而后者是只包含一个定量描述模式的简单语句。
具体实施中,步骤2又可以细分为如下几步:
(1)分词与词性标注:分词需要借助于词典,在此,在常用词典的基础上加入领域词汇、上述结构化自然语言中的关键词。其中,领域词汇是由领域本体中的概念组成的。词典中的每一个词,都会有一个词性(如名词、动词)。此外,规定关键词的词性就是其本身(如地点模式中的“经过”,它的词性为“经过”),以便标识出关键词供语法分析。由于领域词汇可能由多个单词组成,因此,采用现有技术中的正向最大匹配算法,以防将领域词汇拆散。
为便于实施参考起见,提供正向最大匹配算法说明如下:
假设句子:S=c1c2…cn,某一词:wi=c1c2…cm,m为词典中最长词的字数。
1)令i=0,当前指针pi指向输入字串的初始位置,执行下面的操作:
2)计算当前指针pi到字串末端的字数(即未被切分字串的长度)n,如果n=1,转4),结束算法。否则,令m=词典中最长单词的字数,如果n<m,令m=n;
3)从当前pi起取m个汉字作为词wi,判断:
a)如果wi确实是词典中的词,则在wi后添加一个切分标志,转c);
b)如果wi不是词典中的词且wi的长度大于1,将wi从右端去掉一个字,转a)步;否则(wi的长度等于1),则在wi后添加一个切分标志,将wi作为单字词添加到词典中,执行c)步;
c)根据wi的长度修改指针pi的位置,如果pi指向字串末端,转4),否则,i=i+1,返回2);
4)输出切分结果,结束分词程序。
分词的同时,进行词性标注。例如,将需求“安排出行并且通过短信显示出行规划。”进行分词,可以得到分词序列“安排:动词/出行:名词/并且:并且/通过:通过/短信:名词/显示:动词/出行规划:名词。”将需求“搜索停车场。停车场的价格小于4元每小时。”进行分词,可以得到分词序列“搜索:动词/停车场:名词。停车场:名词/的:的/价格:名词/小于:比较符短语/4:数字/元每小时:单位短语。”
(2)语法分析:根据上述句型,具体实施时可以构建语法分析器来分析分词之后的序列,从而确定句型。该语法分析器的核心是一个有限状态自动机,语句中的各种模式在自动机中分别有相应的部分与之对应,如图7、图8分别描述了与功能模式和属性定量描述模式相对应的有限自动机。图中的圈表示状态,带箭头的边表示状态的转换,边上字表示当输入的字符串与它相同时发生状态转换。圈中的字符串表示状态的名称,除了Start表示开始状态,End表示结束状态外,其他的数字只是为了区分不同的状态。边上的字如果有“/”分隔表示它们是“或”的关系,如“和/与/以及”表示当输入“和”或“与”或“以及”时,都从状态2转换到状态3。
如图7:
处于开始状态Start时,如果输入为“角色”,则转向中间状态1;
处于开始状态Start时,如果输入为“动词”,则转向中间状态2;
处于中间状态1时,如果输入为“动词”,则转向中间状态2;
处于中间状态2时,如果输入为“和”或“与”或“以及”,则转向中间状态3;
处于中间状态2时,如果输入为“名词”,则转向结束状态End;
处于中间状态3时,如果输入为“名词”,则转向结束状态End。
如图8:
处于开始状态Start时,如果输入为“名词”,则转向中间状态1;
处于中间状态1时,如果输入为“的”,则转向中间状态2;
处于中间状态2时,如果输入为“名词”,则转向中间状态3;
处于中间状态3时,如果输入为“比较符短语”,则转向中间状态4;
处于中间状态4时,如果输入为“数字”,则转向中间状态5;
处于中间状态4时,如果输入为“数字”,则转向结束状态End;
处于中间状态5时,如果输入为“单位短语”,则转向结束状态End。
这两个图的输入都是分词后得到的分词序列的词性,即进行分词,可以得到分词序列“安排:动词/出行:名词/并且:并且/通过:通过/短信:名词/显示:动词/出行规划:名词。”,输入其中的“动词名词并且通过名词动词名词”。
在句型确定之后,便可以方便地提取功能目标的操作、业务对象、方式,定性非功能目标的非功能类型、程度,定量非功能目标的非功能类型、比较符、数值、单位,构建一个包含这些信息的初始需求模型,其元模型如图9。例如,分析上述分词结果,可以得到功能目标:“安排出行”、“通过短信显示出行规划”、“搜索停车场”和非功能目标:“价格小于4元每小时”。
(3)将功能目标与非功能目标关联:“属性定性描述模式”和“属性定量描述模式”中的第一个名词表示功能目标,第二个名词则是非功能类型。据此,可以将功能目标和非功能目标关联起来。例如,上述结果中的非功能目标“价格小于4元每小时”可以被关联到“搜索停车场”。
(4)语义匹配领域模型:上述步骤(1)、(2)、(3)之后已经得到了用户的初始需求模型,为了重用领域模型中共性的解决方案,需要将用户的初始需求模型与领域模型中的领域目标模型进行匹配,从而找到与初始需求模型最相似的领域目标模型。
功能目标的匹配的依据是操作和对象,如果目标中包含方式,还要考虑方式;定性非功能目标匹配的依据是非功能类型;定量的非功能目标匹配的依据是非功能类型和比较符。
由于采用的是语义匹配,返回的领域模型中的目标并不一定与需求模型中的目标完全一致,这时可以借助于领域本体(领域实体本体和领域操作本体)进行相似度匹配。在匹配过程中遵循最优匹配的原则,按此原则返回一系列领域模型中存在的功能目标和非功能目标,并按两者接近的程度进行排序。这一原则就是定义用户需求和领域模型中共性需求相似程度的原则。
在介绍该原则之前,先定义一些约定。
用户需求中的属性(如:操作、对象、非功能类型)与领域模型中的相应的属性字符串匹配称为两者“精确匹配”。
如果需求中的某个属性在领域本体中找不到一个和它字符串匹配的概念,则称该属性与领域模型“不匹配”(因为领域模型中的每一个属性在领域本体中都有一个概念对应)。如果需求中的某个属性在领域本体中存在一个和它字符串匹配的概念,我们将领域本体中的这个概念叫做该属性的“映像”。为方便描述,以下不区分属性和它的“映像”。
如果需求中的某个属性和领域模型中的某个属性在领域本体中存在“相等”的关系,也称为两者“精确匹配”。
“被包含匹配”指需求中的某个属性在本体中是领域模型中同类型属性的子类(该子类可以是间接的,即子类的子类);“包含匹配”指需求中的某个属性在本体中是领域模型中同类型属性的父类(该父类可以是间接的,即父类的父类);不满足“精确匹配”、“被包含匹配”、“包含匹配”以上条件的称为“不匹配”。“精确匹配”、“被包含匹配”和“包含匹配”统称为“匹配”。
实施例规定这四类匹配的相似度为:“精确匹配”>“被包含匹配”>“包含匹配”>“不匹配”。
功能目标的匹配相似度为:如果需求中不包括“方式”,则“操作”>“对象”;如果需求中包括“方式”,则“操作”>“对象”>“方式”。
定性非功能目标只考虑“非功能类型”,因而不用规定匹配相似度。
由于定量非功能目标的“比较符”只有“精确匹配”与“不匹配”两种,故,匹配相似度根据“非功能类型”的匹配类型,并且“两者都匹配”优于“其中之一不匹配”,“其中之一不匹配”等于“两者都不匹配”。
(5)将语义匹配得到的目标按相似程度从高到低返回给用户。语义匹配得到的目标可能是一个领域目标模型中的多个目标,也可能是多个领域目标模型分别都有提供目标。因此具体实施时,返回的目标除了写明目标名称,还可写明来自哪个领域目标模型。
步骤3,将步骤2所得匹配结果返回给用户,允许用户对返回的匹配结果进行选择,然后确认用户所选择结果为需求模型。
步骤2中返回的每一个用户初始需求中的目标都有一组(0到多个)领域目标模型中的目标与之对应。如果与初始需求中的目标对应的目标数多于1个,那么用户可以从中选择一个目标来匹配该需求。否则,该需求在领域中不存在与之匹配的共性目标,即在领域模型中不存在相关的共性解决方案,这时,建议基于关键词搜索的方式在互联网上直接搜索满足该需求的服务。
步骤4,在领域模型中利用目标层与过程层的关联、过程层与服务层之间的关联,返回与步骤3所得需求模型对应的领域服务模型中服务。
如图3、4、5中可以看到可操作目标与过程有关联,过程与目标有关联,服务又与过程有关联,因此根据用户所选择的目标,通过关联搜索到相应过程,再搜索到相应服务,返回提供了领域服务模型中对应的服务给用户即可。
以上方法技术方案可以采用计算机软件技术实现,也可以采用装置形式实现。为便于实施参考,本发明提供相应的一种服务需求获取与建模系统,包括如下模块,
1)领域建模模块,用于构建领域本体和领域模型。领域本体包括领域实体本体和领域操作本体。所述领域实体本体用于描述领域中的实体概念及其之间的关系,所述领域操作本体用于描述领域中的操作概念及其之间的关系。在构建领域本体后,利用面向服务的RGPS需求元模型框架,构建领域模型,包括领域角色模型、领域目标模型、领域过程模型和领域服务模型,所述RGPS需求元模型框架包括四个层次的元模型,并在四个层次间建立相应的关联关系;所述四个层次的元模型即角色层元模型、目标层元模型、过程层元模型和服务层元模型。领域建模模块构建的领域本体输出到需求预处理模块和语义匹配模块,领域模型输出到语义匹配模块和服务选择模块。
2)需求预处理模块,用于接收用户用结构化自然语言描述的需求,通过分词、词性标注、语法分析和非功能目标与功能目标的关联,将该需求转化为初始需求模型。将领域建模模块构建的领域本体中的专业词汇加入通用的词库,构成一个带专业词汇的词库,可以根据这个词库进行分词。需求预处理模块生成的初始需求模型输出到语义匹配模块。
3)语义匹配模块,用于将需求预处理模块所提供初始需求模型中的目标与领域建模模块所提供领域模型中的目标进行语义匹配,语义匹配时可借用领域建模模块构建的领域本体进行相似度匹配。每一个初始需求模型中的目标都会对应有0个、1个或多个领域目标模型所提供目标,有多个目标时按相似程度由高到低排序。语义匹配模块得到的排序后的目标输出到需求确认模块。
4)需求确认模块,用于让用户从语义匹配模块所提供排序后的目标中选择一个需要的目标,作为需求模型。需求确认模块将用户做出的选择输出到服务选择模块。特殊情况下,如果领域目标组中没有目标或只有一个目标,则不需要用户选择。
5)服务选择模块,用于根据领域建模模块所提供领域模型中定义的目标、过程和服务之间的关联关系,对应需求确认模块所传输的目标于返回被关联的服务,供用户选择。返回的服务可能有多个,用户选择其中之一即可。
以上模块的划分并非唯一方案,具体实施时本领域技术人员可以自行设计。
Claims (2)
1.一种基于领域模型的服务需求获取与建模方法,其特征在于:包括以下处理步骤,
步骤1,根据领域中的共性需求和服务资源,构造领域模型,所述领域模型包括领域角色模型、领域目标模型、领域过程模型和领域服务模型;构建实现包括以下步骤,
步骤1.1,构造一个面向服务的RGPS需求元模型框架,其中包括四个层次的元模型,并在四个层次间建立相应的关联关系;所述四个层次为角色层、目标层、过程层和服务层,所述四个层次的元模型即角色层元模型、目标层元模型、过程层元模型和服务层元模型;
步骤1.2,针对具体应用领域,根据领域中的基本概念构造领域实体本体和领域操作本体,所述领域实体本体用于描述领域中的实体概念及其之间的关系,所述领域操作本体用于描述领域中的操作概念及其之间的关系;
步骤1.3,针对领域中的某一共性问题,基于步骤2构造所得领域实体本体和领域操作本体,按照步骤1所得RGPS需求元模型框架构建领域角色模型、领域目标模型和领域过程模型,并在建模过程中利用领域实体本体和领域操作本体对这三类模型进行语义标识;
步骤1.4,采用步骤1所得RGPS需求元模型框架中的服务层元模型注册领域中的服务资源;利用领域实体本体和领域操作本体,对领域中的服务资源进行描述和语义标识,得到领域服务模型;
步骤2,分析用户通过结构化自然语言描述的需求,得到初始需求模型;将初始需求模型与步骤1所得领域目标模型进行语义匹配;
步骤3,将步骤2所得匹配结果返回给用户,允许用户对返回的匹配结果进行选择,然后确认用户所选择结果为需求模型;
步骤4,在领域模型中利用目标层与过程层的关联、过程层与服务层之间的关联,返回与步骤3所得需求模型对应的领域服务模型中服务。
2.如权利要求1的服务需求获取与建模方法,其特征在于:步骤2中,所述分析用户通过结构化自然语言描述的需求,实现过程如下,
对结构化自然语言描述的需求进行分词与词性标注,得到分词序列;分析分词序列,得到需求中的功能目标和非功能目标;将功能目标与非功能目标关联,得到初始需求模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910272891A CN101710285A (zh) | 2009-11-24 | 2009-11-24 | 一种基于领域模型的服务需求获取与建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910272891A CN101710285A (zh) | 2009-11-24 | 2009-11-24 | 一种基于领域模型的服务需求获取与建模方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101710285A true CN101710285A (zh) | 2010-05-19 |
Family
ID=42403077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910272891A Pending CN101710285A (zh) | 2009-11-24 | 2009-11-24 | 一种基于领域模型的服务需求获取与建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101710285A (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102006320A (zh) * | 2010-11-08 | 2011-04-06 | 北京大学 | 基于语义的网格地理信息服务匹配方法 |
CN102135905A (zh) * | 2011-03-17 | 2011-07-27 | 清华大学 | 基于用户定制的本体匹配系统及方法 |
CN102509351A (zh) * | 2011-10-08 | 2012-06-20 | 电子科技大学 | 设计意图驱动的自然语言几何建模方法 |
CN102880725A (zh) * | 2012-10-23 | 2013-01-16 | 武汉大学 | 一种基于按需服务组织的推荐方法 |
CN103210413A (zh) * | 2010-11-12 | 2013-07-17 | 三星电子株式会社 | 用于产生社会团体的方法和设备 |
CN103246926A (zh) * | 2013-05-23 | 2013-08-14 | 西安电子科技大学 | 一种基于目标和场景的用例驱动需求获取方法 |
CN103530368A (zh) * | 2013-10-14 | 2014-01-22 | 中国联合网络通信集团有限公司 | 一种需求数据的分解方法及系统 |
CN104573916A (zh) * | 2014-12-10 | 2015-04-29 | 南车青岛四方机车车辆股份有限公司 | 一种技术指标实例生成方法及装置 |
CN104881468A (zh) * | 2015-05-26 | 2015-09-02 | 南京邮电大学 | 基于本体的用户需求描述方法 |
WO2016165321A1 (zh) * | 2015-04-17 | 2016-10-20 | 中车青岛四方机车车辆股份有限公司 | 一种高速列车需求元模型建立方法和装置 |
CN107066248A (zh) * | 2016-12-29 | 2017-08-18 | 北京五八信息技术有限公司 | 处理模型确定方法及装置 |
CN107783957A (zh) * | 2016-08-30 | 2018-03-09 | 中国电信股份有限公司 | 本体创建方法和装置 |
CN107895595A (zh) * | 2017-11-14 | 2018-04-10 | 重庆大学 | 面向用户需求的软件快速定义智能环境的规划选择方案推荐方法 |
CN109375904A (zh) * | 2018-09-26 | 2019-02-22 | 思朋网络科技(武汉)有限公司 | 一种基于模型的计算机软件开发方法 |
CN109697050A (zh) * | 2019-01-07 | 2019-04-30 | 浙江大学 | 一种基于知识图谱面向电商领域的需求描述模型设计方法 |
CN109992244A (zh) * | 2018-12-06 | 2019-07-09 | 中国船舶重工集团公司第七0九研究所 | 一种服务化信息系统需求的离散划分方法 |
CN110442737A (zh) * | 2019-07-11 | 2019-11-12 | 北京飞利信电子技术有限公司 | 基于图数据库的数字孪生方法及系统 |
CN110888860A (zh) * | 2019-11-06 | 2020-03-17 | 浙江大搜车软件技术有限公司 | 模型特征处理方法、装置、计算机设备和存储介质 |
CN111191088A (zh) * | 2020-01-02 | 2020-05-22 | 武汉大学 | 一种跨界服务需求分析方法、系统和可读介质 |
CN113010296A (zh) * | 2021-04-01 | 2021-06-22 | 上海交通大学 | 基于形式化模型的任务解析与资源分配方法及系统 |
CN117575548A (zh) * | 2024-01-17 | 2024-02-20 | 华安证券股份有限公司 | 基于业务需求的服务方案智能化生成方法及系统 |
-
2009
- 2009-11-24 CN CN200910272891A patent/CN101710285A/zh active Pending
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102006320B (zh) * | 2010-11-08 | 2013-04-17 | 北京大学 | 基于语义的网格地理信息服务匹配方法 |
CN102006320A (zh) * | 2010-11-08 | 2011-04-06 | 北京大学 | 基于语义的网格地理信息服务匹配方法 |
US9489656B2 (en) | 2010-11-12 | 2016-11-08 | Samsung Electronics Co. Ltd. | Method and apparatus for generating community |
CN103210413A (zh) * | 2010-11-12 | 2013-07-17 | 三星电子株式会社 | 用于产生社会团体的方法和设备 |
CN102135905A (zh) * | 2011-03-17 | 2011-07-27 | 清华大学 | 基于用户定制的本体匹配系统及方法 |
CN102509351A (zh) * | 2011-10-08 | 2012-06-20 | 电子科技大学 | 设计意图驱动的自然语言几何建模方法 |
CN102880725A (zh) * | 2012-10-23 | 2013-01-16 | 武汉大学 | 一种基于按需服务组织的推荐方法 |
CN103246926A (zh) * | 2013-05-23 | 2013-08-14 | 西安电子科技大学 | 一种基于目标和场景的用例驱动需求获取方法 |
CN103530368A (zh) * | 2013-10-14 | 2014-01-22 | 中国联合网络通信集团有限公司 | 一种需求数据的分解方法及系统 |
CN103530368B (zh) * | 2013-10-14 | 2017-01-25 | 中国联合网络通信集团有限公司 | 一种需求数据的分解方法及系统 |
CN104573916B (zh) * | 2014-12-10 | 2018-04-20 | 中车青岛四方机车车辆股份有限公司 | 一种技术指标实例生成方法及装置 |
CN104573916A (zh) * | 2014-12-10 | 2015-04-29 | 南车青岛四方机车车辆股份有限公司 | 一种技术指标实例生成方法及装置 |
WO2016165321A1 (zh) * | 2015-04-17 | 2016-10-20 | 中车青岛四方机车车辆股份有限公司 | 一种高速列车需求元模型建立方法和装置 |
CN104881468A (zh) * | 2015-05-26 | 2015-09-02 | 南京邮电大学 | 基于本体的用户需求描述方法 |
CN104881468B (zh) * | 2015-05-26 | 2019-03-08 | 南京邮电大学 | 基于本体的用户需求描述方法 |
CN107783957A (zh) * | 2016-08-30 | 2018-03-09 | 中国电信股份有限公司 | 本体创建方法和装置 |
CN107783957B (zh) * | 2016-08-30 | 2021-05-18 | 中国电信股份有限公司 | 本体创建方法和装置 |
CN107066248A (zh) * | 2016-12-29 | 2017-08-18 | 北京五八信息技术有限公司 | 处理模型确定方法及装置 |
CN107895595A (zh) * | 2017-11-14 | 2018-04-10 | 重庆大学 | 面向用户需求的软件快速定义智能环境的规划选择方案推荐方法 |
CN107895595B (zh) * | 2017-11-14 | 2020-06-19 | 重庆大学 | 面向用户需求的软件快速定义智能环境的规划选择方案推荐方法 |
CN109375904A (zh) * | 2018-09-26 | 2019-02-22 | 思朋网络科技(武汉)有限公司 | 一种基于模型的计算机软件开发方法 |
CN109992244A (zh) * | 2018-12-06 | 2019-07-09 | 中国船舶重工集团公司第七0九研究所 | 一种服务化信息系统需求的离散划分方法 |
CN109992244B (zh) * | 2018-12-06 | 2022-08-02 | 中国船舶重工集团公司第七0九研究所 | 一种服务化信息系统需求的离散划分方法 |
CN109697050A (zh) * | 2019-01-07 | 2019-04-30 | 浙江大学 | 一种基于知识图谱面向电商领域的需求描述模型设计方法 |
CN110442737A (zh) * | 2019-07-11 | 2019-11-12 | 北京飞利信电子技术有限公司 | 基于图数据库的数字孪生方法及系统 |
CN110888860B (zh) * | 2019-11-06 | 2022-07-29 | 浙江大搜车软件技术有限公司 | 模型特征处理方法、装置、计算机设备和存储介质 |
CN110888860A (zh) * | 2019-11-06 | 2020-03-17 | 浙江大搜车软件技术有限公司 | 模型特征处理方法、装置、计算机设备和存储介质 |
CN111191088A (zh) * | 2020-01-02 | 2020-05-22 | 武汉大学 | 一种跨界服务需求分析方法、系统和可读介质 |
CN111191088B (zh) * | 2020-01-02 | 2022-02-01 | 武汉大学 | 一种跨界服务需求分析方法、系统和可读介质 |
CN113010296A (zh) * | 2021-04-01 | 2021-06-22 | 上海交通大学 | 基于形式化模型的任务解析与资源分配方法及系统 |
CN117575548A (zh) * | 2024-01-17 | 2024-02-20 | 华安证券股份有限公司 | 基于业务需求的服务方案智能化生成方法及系统 |
CN117575548B (zh) * | 2024-01-17 | 2024-03-22 | 华安证券股份有限公司 | 基于业务需求的服务方案智能化生成方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101710285A (zh) | 一种基于领域模型的服务需求获取与建模方法 | |
Smolander et al. | Software architectures: blueprint, literature, language or decision? | |
Sanz | Entity-centric operations modeling for business process management—a multidisciplinary review of the state-of-the-art | |
Glassey | Developing a one-stop government data model | |
Perez-Soler et al. | Towards automating the synthesis of chatbots for conversational model query | |
CN104750499B (zh) | 基于约束求解和描述逻辑的Web服务组合方法 | |
Karakoc et al. | Composing semantic Web services under constraints | |
Halpin | Business rule verbalization | |
Friedrich | Automated generation of business process models from natural language input | |
Lamharhar et al. | How semantic technologies transform e-government domain: a comparative study and framework | |
Cho et al. | An activity-based carpooling microsimulation using ontology | |
Karakoc et al. | A workflow-based Web service composition system | |
Glissmann et al. | Business architectures for the design of enterprise service systems | |
Sepúlveda et al. | Feature modeling languages: Denotations and semantic differences | |
Nolan et al. | Model driven systems development with rational products | |
Cheng | A simulation access language and framework with applications to project management | |
Butkiene et al. | The approach for user requirements specification | |
Zhao et al. | A generative and model driven framework for automated software product generation | |
Mika et al. | Ontology-based content management in a virtual organization | |
de Souza Bomfim et al. | Design and implementation of linked data applications using shdm and synth | |
Taxén | Activity Modalities-A Multi-dimensional Perspective on Coordination, Business Processes and Communication | |
AbuJarour et al. | Web services and business processes: A round trip | |
Kang et al. | Organization-driven business process configurable modeling for spatial variability | |
Mamouni et al. | ZCP Modernization by Recovering ZCM Models from Existing Platforms | |
Laguna et al. | DocFlow: workflow based requirements elicitation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100519 |