正在加载图片...
第2期 蒋艳荣,等:一种基于知识树和约束的柔性活动动态细化方法 .161. 动。在这里,逻辑运算符的优先性满足:NOT>AND> 3)属性约束规则 OR。 包括时间约束规则、地点约束规则等,用于对活 用产生式规则对活动选取的逻辑约束进行规 动属性的约束。如对活动的时间属性进行约束: 定,形式如下: “活动a的持续时间不能大于3天”、“活动b在活 IF(context(I)〉AND〈context(2)). 动a结束后的3hour内必须开始”等。 AND〈context(n)〉THEN〈selections〉(I) 显然,逻辑运算符的引入可以实现复杂的约束 式中:context为与工作流相关的上下文环境,可以 逻辑,以适应复杂多变的建模需求。那么通过对模 是当前的上下文事实,如“the calculus type is stag- 糊信息的封装,在较大粒度的层面快速建立起流程 hom”,也可以是对某个活动的选取或未选取情况。 模型之后,通过对柔性活动约束条件的设定,可以作 selections为一个或多个活动的选取逻辑,如select 为启发信息用于柔性活动的细化和确保创建的工作 (a)AND NOT select(b)。以上表达可以简写为 流的正确性。 C,∧C2A…Cn→S,where C:means〈context(i)〉and 2.3柔性活动的动态细化算法 S means selections。规则的前题和结论可以为多个i- 柔性活动的细化算法FlexActRefining()如图2 tem的合取范式。对于多个context组成的析取范 所示。 式,如(CAC2A…)V(C2!AC2A…)V…则拆分 为由简单的合取范式前提组成的多个规则如下: 柔性活动 (C1ΛC2A.)→S 查找领域知识树 (2) (C21∧C2∧.)→S 存在映射的 2)活动的时序约束规则 选择最匹配的流程模板 流程模板 用于约束活动之间的时序关系。①用Previous N 返回N (x,y)表示活动x在活动y之前执行(中间可以插 存在子节点> N 入其他活动);②ImtPrevious(x,y)表示活动x在y 是否存在约束 Y 存在明 Y 按该逻辑 之前执行,且x是y的直接前驱(中间没有其他活 <确定义的时序 生成子流图 用约束生 、逻辑 动);③AndSyn(x,y)表示活动x与y为并行执行 成流程 关系(AND-split/AND-join),必须要在x与y两者执 获取该节点与子 出错返回)返回D 节点的关系类型 行完之后才能执行下一活动;④OSyn(x,y)表示 泛化关系■ 包含关系 其他 生成OR结构 生成AND/顺序生成顺序结构 活动x与y为选择执行关系(OR-split/OR-join),在 子流图 结构子流图 子流图 执行时,根据上下文在x与y两者选择其一执行,x 根据约束规则,对生成的 与y任意一个执行完可以触发后续活动的运行:⑤ 子流图进行校验 NotLimit(x,y)表示活动x与y的执行次序随意,活 动x可以在y之前执行,也可以在y之后执行。 通过N Y 可以用规则描述活动之间复杂的时序约束,规 检查生成的子流图中 (出借返回) 是否存在子柔性活动 则的形式如下:IF selectOp(x,)AND selectOp(x2) 依次取出Y AND selectOp(x:)AND…。AND selectOp(xn) 子柔性活动 存在> N THEN temporalCons1 AND temporalCons2 AND...tem- 返回D poralCons.,。这里,selectOp表示select()或NOT se- lect(),temporalCons表示这5个时序约束。 图2柔性活动细化算法FlexActRefining 以下为一个时序约束的规则实例: Fig.2 Refinement algorithm for flexible activity IF select(a)AND select(b)THEN Previous(a, 在细化过程中,利用知识树中知识点之间的关系作 b),如果选择了活动a和b,则活动a必须要在b之 为启发信息用于辅助生成子流图,用柔性活动的约 前执行。 束规则(包括活动选取约束、时序关系约束等)对细 一般情况下,规则的前件都是对涉及到的活动 化后的子流程进行验证,其主要步骤如下: 的选取情况进行判断,即很少有NOT的情况,此时 1)根据柔性活动的目标,在知识树中查找匹配 前件可以忽略,则规则可以转换为时序约束集: 的节点。对该节点映射的流程模板进行分析:若存 {Previous(a,b),AndSyn(c,d),…}。 在完善的流程模板,则选择匹配最佳的流程模板返动。 在这里,逻辑运算符的优先性满足:NOT>AND> OR。 用产生式规则对活动选取的逻辑约束进行规 定,形式如下: IF 〈context(1)〉 AND 〈 context(2)〉 … AND 〈 context(n)〉 THEN 〈selections〉 (1) 式中:context 为与工作流相关的上下文环境,可以 是当前的上下文事实,如“ the calculus type is stag⁃ horn”,也可以是对某个活动的选取或未选取情况。 selections 为一个或多个活动的选取逻辑,如 select (a) AND NOT select ( b)。 以上表达可以简写为 C1∧C2∧…Cn→S, where Ci means 〈context(i)〉 and S means selections。 规则的前题和结论可以为多个 i⁃ tem 的合取范式。 对于多个 context 组成的析取范 式,如(C11∧C12∧…)∨(C21∧C22∧…)∨…则拆分 为由简单的合取范式前提组成的多个规则如下: (C11 ∧ C12 ∧...) → S (C21 ∧ C22 ∧...) → S (2) 2) 活动的时序约束规则 用于约束活动之间的时序关系。 ① 用 Previous (x,y)表示活动 x 在活动 y 之前执行(中间可以插 入其他活动); ② ImtPrevious(x, y)表示活动 x 在 y 之前执行,且 x 是 y 的直接前驱(中间没有其他活 动);③ AndSyn (x, y)表示活动 x 与 y 为并行执行 关系(AND⁃split / AND⁃join),必须要在 x 与 y 两者执 行完之后才能执行下一活动;④ OrSyn( x, y) 表示 活动 x 与 y 为选择执行关系(OR⁃split / OR⁃join),在 执行时,根据上下文在 x 与 y 两者选择其一执行, x 与 y 任意一个执行完可以触发后续活动的运行; ⑤ NotLimit(x, y) 表示活动 x 与 y 的执行次序随意,活 动 x 可以在 y 之前执行,也可以在 y 之后执行。 可以用规则描述活动之间复杂的时序约束,规 则的形式如下: IF selectOp( x1 ) AND selectOp( x2 ) AND selectOp ( xi ) AND …。 AND selectOp ( xn ) THEN temporalCons1 AND temporalCons2 AND…tem⁃ poralConsn 。 这里,selectOp 表示 select() 或 NOT se⁃ lect(), temporalCons 表示这 5 个时序约束。 以下为一个时序约束的规则实例: IF select(a) AND select(b) THEN Previous(a, b), 如果选择了活动 a 和 b,则活动 a 必须要在 b 之 前执行。 一般情况下,规则的前件都是对涉及到的活动 的选取情况进行判断,即很少有 NOT 的情况,此时 前件可以忽略, 则规则可以转换为时序约束集: {Previous(a,b), AndSyn(c, d), …}。 3)属性约束规则 包括时间约束规则、地点约束规则等,用于对活 动属性的约束。 如对活动的时间属性进行约束: “活动 a 的持续时间不能大于 3 天”、“活动 b 在活 动 a 结束后的 3 hour 内必须开始”等。 显然,逻辑运算符的引入可以实现复杂的约束 逻辑,以适应复杂多变的建模需求。 那么通过对模 糊信息的封装,在较大粒度的层面快速建立起流程 模型之后,通过对柔性活动约束条件的设定,可以作 为启发信息用于柔性活动的细化和确保创建的工作 流的正确性。 2.3 柔性活动的动态细化算法 柔性活动的细化算法 FlexActRefining( )如图 2 所示。 图 2 柔性活动细化算法 FlexActRefining Fig.2 Refinement algorithm for flexible activity 在细化过程中,利用知识树中知识点之间的关系作 为启发信息用于辅助生成子流图,用柔性活动的约 束规则(包括活动选取约束、时序关系约束等)对细 化后的子流程进行验证,其主要步骤如下: 1) 根据柔性活动的目标,在知识树中查找匹配 的节点。 对该节点映射的流程模板进行分析:若存 在完善的流程模板,则选择匹配最佳的流程模板返 第 2 期 蒋艳荣,等:一种基于知识树和约束的柔性活动动态细化方法 ·161·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有