【目的】为实现动态设计过程知识的有效重用, 研究设计过程知识的语义表示方法。【方法】在回顾和分析现有研究的基础上, 引入模块化设计思想; 分析设计过程知识的内容和特征, 提出基于双层模块化封装技术的设计过程知识语义模型, 结合本体表示方法对语义模型进行形式化表示; 以反后坐系统概念设计为例, 利用OWL语言实现案例中设计过程知识的语义表示。【结果】构建面向知识重用的设计过程知识语义模型, 利用本体对语义模型进行形式化表示; 采用OWL语言对反后坐系统设计的过程知识进行语义表示。【局限】采用单一案例进行分析, 方法的通用性需进一步验证。【结论】本文方法能够实现动态设计过程知识的语义表示, 通过案例分析验证了方法的可行性和有效性。
[Objective] This paper explores the semantic representation method of design process knowledge (DPK), aiming to effectively reuse dynamic DPK. [Methods] First, we introduced modular design idea upon reviewing existing research. Then, we analyzed the contents and characteristics of DPK, and semantically modeled DPK based on double-layer modular packaging technology. Finally, we represented the semantic model with the help of ontology representation method. [Results] We took the conceptual design of recoil system as an example to create semantic representation of its DPK with the OWL. [Limitations] We only examined the proposed method with one single case. [Conclusions] The proposed method could semantically represent and reuse knowledge of dynamic design process.
产品设计是一个复杂多变、循环往复的过程, 随着计算机技术的蓬勃发展, 呈现出快速化、个性化和知识化的发展趋势[1]。在工程设计领域, 大约70%的设计工作为自适应设计和变型设计, 其设计过程基本上是对已有设计知识的重用[2]。在产品设计中, 设计过程对产品的质量和成本起着决定性作用, 设计阶段除了最终用于交付的设计结果外, 还会产生大量的设计过程知识。在知识重用方面, 同类产品的设计过程具有极大的相似性, 设计过程知识通常可以在设计中直接进行复用。由此可见, 设计过程知识是产品设计知识链的核心部分, 对产品设计具有重要支撑作用。
在本文中, 设计过程知识指产品设计过程中所涉及的动态知识总和, 包含设计流程、设计活动、设计步骤及其所需设计经验、设计方法、设计约束等在内所有知识的总和。在产品设计中, 设计过程知识依附于设计流程进行流动, 并且与设计流程紧密结合、不可分隔。为实现动态设计过程知识的共享和重用, 需要对设计过程知识进行充分、有效的表达, 使得设计过程知识能够满足一定的功能共性[2]。为此, 本文借鉴软件工程领域的模块化设计思想, 提出可配置流程模板和知识组件相结合的双层模块化封装技术, 利用本体技术对设计过程知识进行语义建模, 并以反后坐系统概念设计为例实现设计过程知识的语义表示。
国内外关于设计过程知识的语义表示研究主要利用本体、语义网、Petri网等知识表示方法对设计过程领域中不同类型的设计知识进行语义建模和表示。这些研究通常可分为两类。
(1) 借助本体或语义网络针对设计流程自身内容进行建模和表示, 如胡玉杰等[3]研究SBF产品知识表达模型, 结合本体描述语言构建了流本体和功能本体; 叶志刚等[4]选用语义网络技术表达设计方案过程、工艺动作、机构及其相互间关系, 实现了方案设计运动循环图的知识表达; Vieira等[5]提出一种由本体驱动, 用于描述工作流、资源、用户之间语义关系的工作流系统框架; Wang等[6]描述了一种用于工作流语义创建、推理及流程重组的基于代理的工作流本体模型; Runde等[7]针对构建自动系统(Building Automation System, BAS)的设计过程自动化, 基于OWL语言提出一个需求本体构建方案; Zhang等[8]在对知识流属性进行分析的基础上, 提出协同系统中的工作流和知识流集成模型; Yin等[9]将设计知识分为原理知识、领域知识和综合知识三类, 基于设计过程不同阶段对应的期待属性、功能属性和形式化属性三个知识属性, 提出设计过程知识三层表达模型(属性层、语义层、资源层)。
(2) 借助本体对设计流程及其关联设计知识进行统一建模和表示。如Cochrane等[10]集成PSL语言和面向对象方法对不同的产品结构及其制造过程知识进行统一表示; 盛文露等[11]提出一种基于本体的饰品创新设计过程知识服务模型, 建立过程本体及其需求模型; 刘晓健等[12]提出一种基于本体与过程关联的产品设计方法, 建立了支持异构系统快速响应设计的本体, 包括流程本体、领域本体与过程本体, 利用过程式表达语言描述改造设计过程; 张辉等[13]提出一个基于静态结构和动态特性的产品共享信息模型框架, 并在OWL语言的基础上通过添加动态过程知识表示算子, 提出一种适合复杂产品知识表示的描述语言OWL-P; 石鑫等[2,14-15]将设计过程知识分为7大类, 采用本体表示方法对产品设计过程领域内的知识进行抽取和描述, 构建产品设计过程领域本体, 并用OWL进行知识的形式化描述; 陈思等[16]利用业务本体将知识与产品设计流程紧密关联起来, 分别从静态和动态两个角度给出基于业务本体的知识表示方法。
综上, 现有设计过程知识的表示研究大多借助本体、语义网络等方法对产品设计过程中的业务流程及其相关设计知识进行组织和建模。然而, 现有研究仍存在不足之处, 如知识表达模型未能将设计流程与设计知识紧密结合、知识表达过程中未考虑知识的共享和重用需求、知识组织和表达形式过于复杂繁琐等, 这些问题使得过程知识表达结果无法直接、有效、快捷地应用于实际的产品设计过程。
为改善上述问题, 本文将模块化设计思想引入设计过程的知识表示, 结合本体表示方法, 提出可配置流程模板和知识组件相结合的双层模块化封装技术, 利用该技术对设计过程知识进行语义组织和建模, 并以反后坐系统概念设计为例, 利用OWL语言实现设计过程知识的形式化表示。
依据现代设计理论, 可将产品设计过程类比IDEF0功能模型, 如图1所示。从知识流动角度来看, 产品设计过程是以设计领域知识和设计过程知识作为输入, 通过设计过程功能模块的处理和转化, 输出得到设计结果知识。在设计过程中, 各种设计知识依托于设计流程进行流动、转化和再生, 最终汇集并外显在设计结果中。根据设计知识的流动特性, 将设计知识分为设计领域知识、设计过程知识和设计结果知识三类。其中, 设计过程知识是以设计流程知识为基础、其他关联设计知识为辅助的动态性设计知识的统称。
综上, 进一步将设计过程知识划分为设计流程知识和设计准则知识, 如图2所示。其中, 设计流程知识是设计流程中不同粒度流程单元及其之间关联映射关系的总和, 包括设计流程、设计活动、设计步骤、设计参数及其之间的逻辑控制关系等知识。设计准则知识是指导或支持流程单元执行所需的信息总和, 包括公式、函数、图表、设计经验、设计约束、设计标准、设计规范等知识。
从知识重用角度出发, 借助本体表示方法, 集成模板技术和组件技术, 提出双层模块化封装技术的设计过程知识语义模型, 如图3所示。在语义模型中, 为表达设计流程之间的嵌套关系, 利用模板技术对设计流程及其组成单元进行封装和配置形成可配置流程模板; 为降低流程单元知识表达和实现的复杂度, 借助组件技术对设计流程中粒度最小的设计功能单元及其对应设计知识单元进行封装形成知识组件; 最后, 结合本体表示方法对设计流程之间及其内部单元之间的映射关系进行明确揭示。
设计过程知识分为设计流程知识和设计准则知识两类。其中, 设计流程知识将以可配置流程模板的形式进行表达和体现, 设计准则知识与设计功能单元以结构化形式封装在知识组件中, 并最终在产品实际设计中进行配置与应用。
如图3所示, 语义模型包含可配置流程模板和知识组件两大层次。其中, 可配置流程模板层又可进一步拆解为设计活动层、设计步骤层、设计参数层三个层次; 知识组件是设计过程知识重用系统中的最小粒度单元, 不可再分。语义模型中映射关系主要有两类: 4个层次之间的映射关系(虚线箭头); 4个层次内过程单元之间的逻辑控制关系(实线箭头)。
为实现不同层次设计流程的相互嵌套, 本文提出可配置流程模板技术, 其可配置性主要体现在两个方面:
(1) 流程模板自身的可配置性。产品结构体系一般是自顶向下逐层分解的树状结构, 与之对应的不同层次流程模板也可以自顶向下逐层进行嵌套, 即上层流程模板可以包含下层模板, 下层流程模板可以嵌套并组合成为上层流程模板。
(2) 流程模板内部的可配置性。设计流程内容分为设计活动、设计步骤、设计参数、知识组件4个不同层次, 流程模板的内部可配置性表现为4个不同层次间以及同层次内的关联映射可以灵活、动态定制。
本文提出的设计过程知识语义模型, 能够满足设计过程知识语义建模和表示需求。将动态设计流程及其内部单元以模板和组件形式封装形成类静态的流程模板和知识组件, 有利于实现动态设计过程知识的高效管理、共享和重用; 而将设计流程中细粒度的设计活动、设计步骤及其设计知识进行封装形成知识组件, 能够进一步提高概念设计过程知识的可重用性。
本体是对共享概念模型形式化和规范化的说明, 将本体技术应用于组织结构复杂、学科多源的产品设计领域知识的建模, 具有结构清晰、可拓展性好、知识语义化等优势[17]。
结合产品设计专业特点及本体固有属性, 本文采用4元组形式描述设计过程知识本体:
其中,
前期已完成某类复杂产品设计过程的调研和抽象。基于此, 根据上述过程本体的定义和描述, 预先对过程本体的基本框架进行说明, 包括过程本体的主要概念、关系、属性等。过程本体的框架主要包含设计流程、设计活动、设计步骤、设计参数、知识组件5个顶层概念, 其主要关系和属性如表1和表2所示。
反后坐系统是火炮系统的关键组成部分, 其设计流程较为复杂。以某反后坐系统的概念设计为例, 对其设计过程中不同类型的设计知识进行语义表示。首先, 获取反后坐系统设计的抽象设计流程, 并对设计流程进行分解、细化和解释; 其次, 采用OWL语言对可配置流程模板进行形式化表达; 最后, 在知识组件构建的基础上, 以过程本体为知识源对知识组件进行语义标注。
(1) 流程模板的获取和说明
在概念设计中, 不同型号的反后坐系统具有不同设计流程。在设计流程具体化过程中, 为体现流程模板的可配置性, 添加“反后坐设计流程_1”(流程实例1)和“反后坐设计流程_2”(流程实例2)两个实例作为示例对可配置流程模板进行语义表示。
本文在对某火炮研制单位进行调研的基础上, 获取主流反后坐系统设计的设计流程, 对该设计流程进行抽象和简化, 形成设计活动集合如表3所示。
可知, 反后坐系统设计流程包括7个抽象的设计活动, 这些设计活动因部件选型的不同而产生差异, 进而导致整个设计流程产生差异。在反后坐系统中, 主要有复进机、制退机和复进节制器三个组成部件, 在开展概念设计前需要对这三个部件进行选型, 也就是根据设计需求将设计流程具体化。以复进机部件选型(设计活动3)为例对流程具体化过程进行说明: 当前主流的复进机分为单筒液压式和双筒液压式, 流程实例1采用单筒液压式复进机, 流程实例2采用双筒液压式复进机, 如表4所示。在对反后坐系统设计流程进行具体化时, 需要根据其具体部件类型将设计活动细化为不同设计步骤, 进而产生不同的设计流程实例。
在过程本体定义中, 综合考虑设计流程、设计活动、设计步骤、设计参数4要素的可重用性。因此, 顺序定义流程实例1和流程实例2, 通过对比两者的定义和表示形式说明流程模板的可配置性。如表4所示, 在假定条件下, 流程实例1和流程实例2之间的区别仅在于复进机选型的不同, 导致整个流程实例产生差异(粗体部分)。进一步对比发现, 两个流程实例中大部分的设计活动、设计步骤和设计参数都可以被重用(非斜体和非粗体部分), 这体现了流程模板自身及其内部单元的可配置性和可重用性。在后续新流程实例的定义过程中, 利用流程模板能够方便快捷地对设计流程及其设计活动进行配置和重用。
(2) 流程模板的细化和语义表示
本文以复进机部件选型为设计需求, 对抽象的反后坐系统设计流程进行细化。针对复进机选型, 对应流程实例1和流程实例2, 需将设计流程中抽象的“复进机设计”设计活动细化为“单筒液压式复进机设计”和“双筒液压式复进机设计”, 其设计活动之间的部分逻辑关系如图4所示。利用对称属性“仅前于”和“仅后于”表示设计活动之间复杂的逻辑控制关系。在图4中, “后坐正面问题设计”仅前于“复进机设计”, “复进机设计”仅前于“制退机设计”; 反之, 使用“仅后于”用于反向链接这些设计活动。
基于以上分析, 采用OWL语言对流程实例1和流程示例2进行形式化表示。定义流程实例所包含的设计活动及其逻辑关系, 进而对流程实例1进行定义和配置, 部分如下所示。
<反后坐系统设计流程 rdf:ID="反后坐系统设计流程_1">
<包含活动>
<设计活动 rdf:ID="制退机设计">
<仅后于 rdf:resource="#单筒液压式复进机设计"/>
<仅后于 rdf:resource="#双筒液压式复进机设计"/>
<仅前于 rdf:resource="#后坐正面问题计算"/>
</设计活动>
</包含活动>
<包含活动 rdf:resource="#单筒液压式复进机设计"/>
<包含活动 rdf:resource="#后坐正面问题设计"/>
…………
</反后坐系统设计流程>
在流程实例1定义的基础上, 流程实例2的定义和配置可直接重用已定义的设计活动及其逻辑关系。因此, 定义流程实例2只需添加其所包含的设计活动即可, 部分如下所示。
<反后坐系统设计流程 rdf:ID="反后坐系统设计流程_2">
<包含活动 rdf:resource="#制退机设计"/>
<包含活动 rdf:resource="#后坐正面问题计算"/>
<包含活动 rdf:resource="#双筒液压式复进机设计"/>
…………
</反后坐系统设计流程>
可以看出, 设计活动及其逻辑关系的形式化表示实际上就是可配置流程模板细化和配置的实现过程。在流程实例1表示的基础上, 流程实例2能够方便地重用已定义的设计活动和逻辑关系。可配置流程模板不仅能够对不同对象、不同类型、不同层次的设计流程进行灵活细化和配置, 并且在后续设计流程的定义和添加过程中能够充分重用已定义的流程单元, 为设计过程中复杂多变的设计流程知识管理、共享和重用提供便利。
知识组件是设计过程中设计流和知识流最小粒度单元的集合体, 主要包含功能单元、知识单元(设计准则知识)以及其间的映射关系。其中, 知识单元及其映射关系在过程本体中进行表示, 功能单元及其设计参数接口通过自编程序形成具有独立功能的程序模块。
(1) 知识组件的内容构建
知识组件是设计步骤的底层实现模块, 也是设计流程中粒度最小的功能实现模块。知识组件在实现过程中有时需要对设计步骤进行进一步拆分, 形成具有一定功能的独立单元模块, 设计步骤的拆分粒度决定了知识组件的功能范围。在设计步骤拆分时需要遵循以下原则:
①功能性。知识组件的本质是具有一定功能的知识单元, 在设计步骤拆分时, 需要确保拆分出的功能单元能够完成一定的设计功能。
②原子性。知识组件是设计系统运行中的最小功能模块, 是设计过程的最小单元, 不可拆分。
③开放性。知识组件不仅能够独立运行, 还能与其他知识组件协同运行, 共同完成一定的设计任务。在运行过程中, 知识组件必须与外部环境发生交互。因此, 知识组件应提供丰富的接口, 是一个开放的功能模块。
④粒度适中。考虑到知识组件在外部系统中的重用性, 设计步骤的拆分粒度应该由产品设计需求以及设计流程的关联性决定。在遵循功能性和独立性的原则下, 确定合适的拆分粒度, 是设计步骤拆分的重要工作。
以表4的“制退机设计”设计活动为例, 其包含“计算制退机工作长度”、“计算活塞工作面积”和“计算制退筒内径和制退杆外径”三个设计步骤(称为设计步骤1-3)。在设计步骤拆分原则的基础上, 综合考虑各种因素, 将设计步骤1直接作为独立的知识组件单元(ZJ00001), 将设计步骤2拆分为“估算制退机液量”(ZJ00002)和“计算活塞工作面积”(ZJ00003)两个知识组件单元, 将设计步骤3拆分为“计算制退 筒内径”(ZJ00004)和“计算制退杆外径”(ZJ00005) 两个知识组件单元。拆分后的知识组件相关信息如表5所示。
将设计步骤拆分为知识组件后, 整个设计流程的灵活性和可重用性有明显提升。拆分后的知识组件既可以作为独立单元实现设计功能, 也可以在设计流程中作为组成单元进行协同运行。此外, 设计步骤拆分能够将设计流程内部粗粒度的组成单元及其复杂关系全部转化为细粒度、标准化的知识组件单元及其之间的映射关系, 降低了设计流程中设计活动、设计步骤之间的复杂关联度, 同时也降低了设计步骤内部不同功能单元之间的耦合度。
(2) 知识组件的语义标注
在知识组件内容构建的基础上, 采用本体内嵌 法[18], 将知识组件集合抽象为本体概念, 具体的知识组件实体作为概念实例, 并建立知识组件与其知识单元之间的映射关系。此外, 知识组件作为设计流程的组成部分, 需要进一步在过程本体中建立知识组件与设计步骤、设计参数之间的关联和配置关系。
知识组件的语义标注主要包括知识组件的概念、概念属性和概念间关系的定义和表示。本文定义“功能描述”数据属性用以描述知识组件的功能; 定义“包含组件”对象属性用以建立设计步骤与知识组件间的映射关系, 也是对知识组件与流程模板之间组合配置关系的建立; 定义“输入参数”和“输出参数”对象属性用以建立知识组件与设计参数之间的映射关系。此外, 由于知识组件之间的逻辑控制关系较为简单, 定义“组件顺序”数据属性表示设计步骤中知识组件之间逻辑控制关系。
在上述工作基础上, 以表5的设计步骤2为例, 利用OWL语言对其拆分后的知识组件进行形式化表示。其中, 设计步骤与知识组件映射关系的OWL表示(部分)如下所示:
<设计步骤 rdf:ID="计算活塞工作面积">
<包含知识组件>
<知识组件 rdf:ID="ZJ00002">
<功能描述 rdf:datatype="&Schema#string">
估算制退机液量</功能描述>
</知识组件>
</包含知识组件>
<包含知识组件>
<知识组件 rdf:ID="ZJ00003">
<功能描述 rdf:datatype="&Schema#string">
计算活塞工作面积</功能描述>
</知识组件>
</包含知识组件>
<组件顺序 rdf:datatype="&Schema #string">
ZJ00002;ZJ00003</组件顺序>
</设计步骤>
知识组件与设计参数之间映射关系的OWL表示(部分)如下所示:
<知识组件 rdf:ID="ZJ00002">
<输入参数>
<设计参数 rdf:ID="自由后坐能量"/>
</输入参数>
<输入参数>
<设计参数 rdf:ID="估算系数">
<设计经验 &Schema#string">大口径火炮
取值1-1.5, 小口径速射炮取值0.7-0.8
</设计经验>
</设计参数>
</输入参数>
<输出参数>
<设计参数 rdf:ID="制退机液量"/>
</输出参数>
</知识组件>
实际上, 知识组件自身也具有一定的可配置性, 包括外部和内部两方面。知识组件的外部可配置性主要表现为设计步骤与知识组件间的映射关系, 内部可配置性表现为知识组件与其知识单元的配置关系。知识组件的内外部配置信息都在过程本体中进行定义和表示, 通过本体编辑可实现用户对知识组件的灵活配置。
在复杂产品设计中, 为实现动态设计过程知识的有效管理和重用, 提高设计知识的流动性和重用性, 本文引入模块化设计思想, 研究设计过程知识的语义建模和表示。在分析设计过程知识内容特征的基础上, 提出基于可配置流程模板和知识组件的双层模块化封装技术, 为设计过程知识的语义建模和表示提供技术支持。结合本体语义表示方法, 利用可配置流程模板对设计流程知识进行语义建模, 利用知识组件对设计流与知识流进行集成建模。以反后坐系统概念设计为例, 结合本体和语义标注技术, 利用OWL语言对可配置流程模板和知识组件进行形式化表示, 进一步验证所提建模方法的可行性和有效性。
本研究引入模块化设计思想, 提出设计过程知识的语义建模和表示方法, 旨在为设计过程中设计流程与设计知识的有效融合和配置, 进而实现动态设计过程知识的管理和重用提供一种新的研究思路。其中, 设计流程与设计知识的有效融合和配置, 使得设计知识服务于设计过程并指导设计的开展, 减少设计人员在设计过程中收集和获取设计知识的时间, 降低时间成本、减少错误、提高产品设计的效率和质量; 引入模块化设计思想, 有利于产品设计中设计流程的结构化和标准化, 便于产品设计中动态设计过程知识的共享和重用, 从而在一定程度上提高产品设计的质量和效率。当然, 本研究仍存在不足之处, 在实证研究中仅采用单一案例进行方法的实现, 其方法通用性需在后续研究中进一步验证。
傅柱: 构建模型, 开展实验, 起草论文;
王曰芬: 提出研究思路, 设计研究方案;
丁绪辉: 数据采集, 修订论文。
所有作者声明不存在利益冲突关系。
支撑数据由作者自存储, E-mail: fuzhu886@163.com。
[1] 傅柱, 王曰芬, 丁绪辉. Fhzxt.owl. 反后坐系统设计案例的OWL表示.
版权所有 © 2015 《数据分析与知识发现》编辑部 地址:北京市海淀区中关村北四环西路33号 邮编:100190 电话/传真:(010)82626611-6626,82624938 E-mail:jishu@mail.las.ac.cn |