CN110457490A - 一种基于领域本体的语义工作流索引构造及检索方法 - Google Patents
一种基于领域本体的语义工作流索引构造及检索方法 Download PDFInfo
- Publication number
- CN110457490A CN110457490A CN201910754733.7A CN201910754733A CN110457490A CN 110457490 A CN110457490 A CN 110457490A CN 201910754733 A CN201910754733 A CN 201910754733A CN 110457490 A CN110457490 A CN 110457490A
- Authority
- CN
- China
- Prior art keywords
- task
- index
- semantic
- data
- qtask
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/325—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Human Resources & Organizations (AREA)
- Computational Linguistics (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Economics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于领域本体的语义工作流索引构造和检索方法,步骤为:1)建立语义工作流的领域任务本体和领域数据本体;2)构造语义工作流的结构特征索引:一步路径索引、数据‑工作流索引、数据‑任务索引和两步路径索引,并设计基于各索引的检索方法;3)构造语义工作流的行为特征索引:任务因果关系索引、任务并行关系索引、任务互斥关系索引和任务循环关系索引,并设计基于各索引的检索方法。4)在新语义工作流加入时,增量构造语义工作流索引;在删除语义工作流时,动态删除旧语义工作流的索引项。该方法可以提高语义工作流的检索速度和准确性,为语义工作流重用提供良好的支持,为语义工作流库的组织和管理方法提供理论依据。
Description
技术领域
本发明涉及业务过程管理技术领域,具体涉及
一种基于领域本体的语义工作流索引构造及检索方法
一种基于领域本体的语义工作流索引构造和检索方法。
背景技术
业务过程的质量和运行效率是现代企业和组织在竞争中保持优势的关键因素。业务过程管理(Business process management,BPM)研究关注企业和组织的业务过程管理、分析、控制与改进,以提高业务处理效率,改进产品质量,提高服务水平。而业务过程管理技术可以被用于快速构建和更新过程感知信息系统,是现代企业和组织的信息系统的共性基础性技术。
语义工作流是一种基于领域知识的工作流,为业务工作流管理(Businessworkflow management,BWM)提供了充足的语义和数据或资源信息。它同时包含控制流和数据流,适于建模以控制流为中心,且兼顾数据流的业务过程。与传统工作流相比,语义工作流更适合建模工业环境中的生成制造过程,可以为工业大数据系统软件的开发及运行提供一定的基础支持。目前,语义工作流的应用已经涵盖了业务过程、电子商务、医疗、软件开发、科学分析和工业生产制造等领域。
随着各领域使用的语义工作流模型的大量增加,为了重用或重构业务过程而进行的相似语义工作流检索成为业务过程管理中的常见场景。如何提高相似语义工作流的检索效率是必须要解决的问题。
Bergmann等人将基于语义标注有向图结构匹配的相似性方法用于相似语义工作流检索,该方法采用遍历语义工作流库的方式进行检索,计算量较大,对于小规模工作流库,该方法可以得出满意的检索性能,对于规模较大的语义工作流库,实际上是不可行的。Forbus等人提出一种用于相似性检索的MAC/FAC(Many are called but few are chosen)模型。该模型由两个阶段构成:MAC阶段使用计算量较小的非结构匹配算法从项目池中过滤出候选项目集;FAC阶段使用结构匹配算法从候选项目集中找出最匹配的项目。近年来,许多系统都使用了这种两阶段检索方法。在图数据库领域应用这种方法成为一个趋势,比如Graphgrep,G-Hash,Periscope/GQ和gIndex,Fg-Index等。但语义工作流所对应的语义标注有向图是稀疏图,其中的频繁子图并不多,并且频繁子图不能覆盖所有的工作流模型。从而图索引的检索技术不能直接用于相似语义工作流检索。
Jin等人构造基于标签Petri网的过程模型集的变迁路径索引LnP(n为路径长度),提出了两阶段的精确过程模型检索方法。Bergmann等人提出了基于MAC/FAC模型的两阶段相似语义工作流检索方法。MAC阶段基于语义工作流的语义特征和语法特征进行过滤,FAC阶段使用图检索方法选出最匹配的语义工作流。接着,Kendall-Morwick等人在MAC阶段建立路径索引:Path-k(k为路径长度)进行语义工作流过滤。Müller等人使用聚类方法建立索引结构,提出了基于排队的检索算法。Müller等人提出了用于POCBR的相似语义工作流检索语言POQL,可以表达泛化的检索项目。以上检索方法仅关注业务过程模型或语义工作流的结构特征,没有考虑它们的执行行为,因而检索结果集的准确性有待提高。
Jin等人构造了基于标签Petri网的过程模型集的行为特征索引TARIndex,提出了两阶段的相似过程模型检索方法。该方法关注了业务过程模型的执行行为,但不能区分循环和顺序结构。Weidlich等人指出在过程模型检索的一致性检查中应该考虑业务过程的数据和资源。由于标签Petri网不含数据流并引入领域知识,故针对标签Petri网的过程模型检索方法不能直接用于相似语义工作流检索。
其他专门用于相似语义工作流检索的研究有:Gil等人使用语义信息来增强科学工作流的组件和数据使其成为语义工作流,提出了针对给定组件和数据属性从工作流库检索匹配科学工作流的方法。该方法基于包含关系确定数据、组件等属性间的匹配,进而获得匹配工作流;提高了匹配科学工作流的检索准确性。
因而,现有的语义工作流的检索和索引方法并不能完全解决语义工作流的检索问题,比如它们无法处理语义工作流中数据-工作流或任务节点、任务循环关系检索等问题。于是针对提高语义工作流检索效率这一需求,本发明提出了一种基于领域本体的语义工作流索引构造及检索方法。
发明内容
本发明的目的在于针对现有的语义工作流索引的不足,提供一种基于领域本体语义工作流索引构造及检索方法,该方法提高了语义工作流的检索效率,可以提高语义工作流的重用质量。
实现本发明目的的技术方案是:
一种基于领域本体的语义工作流索引构造及检索方法,包括如下步骤:
1)建立语义工作流的领域任务本体和领域数据本体:是将语义工作流库中的语义工作流任务节点的语义描述看作与任务相关的概念,利用概念间的包含关系,构建任务本体的层次结构,建立领域任务本体;将语义工作流的数据对象节点的语义描述看作与数据对象相关的概念,利用概念间的包含关系,构建数据本体的层次结构,建立领域数据本体;
2)构造语义工作流的结构特征索引SWStructIndex及其检索方法,索引SWStructIndex包括一步路径索引Path1Index、数据-工作流索引DataIndex、数据-任务索引DataTaskIndex和两步路径索引Path2Index;
2-1)一步路径索引Path1Index,由于每个索引项对应的路径中只有一个任务节点,故也称为任务索引;索引项的形式为(task, S 1),其中task为任务节点,S 1为包含task的语义工作流集合;
一步路径索引Path1Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的任务节点集合TS;然后,若某任务节点task∈TS在索引Path1Index中不存在,则先新建一个索引项(task, S 1),将SW的ID加入集合S 1中;若task已存在,则直接将SW的ID加入task对应索引项的集合S 1中;遍历SW的任务节点集合TS、语义工作流库SWC,建立索引Path1Index;在保存索引Path1Index时,不直接存储(task, S 1),而是将Path1Index存储为(task.hashcode, S 1.pointer),其中task.hashcode为一步路径或任务节点task的语义描述的哈希值,S 1.pointer指向语义工作流集合S 1的存储位置;
一步路径索引Path1Index的检索方法为:对于给定的查询任务节点qtask,若qtask在索引Path1Index中已存在,则直接返回qtask对应索引项的集合S 1;若qtask在索引中不存在,说明在语义工作流库SWC中不存在包含qtask的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中查询qtask的语义描述对应概念C的直接子概念C 1,然后获取包含C 1对应任务节点的语义工作流集合,遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S 1返回;
2-2)数据-工作流索引DataIndex,包括输入数据-工作流索引Data In Index和输出数据-工作流索引Data Out Index两种;
) 输入数据-工作流索引Data In Index的索引项形式为(data In, S 2),其中data In为语义工作流的输入数据对象,但不是中间数据对象(中间数据对象指由某任务节点生成,但又因被另一任务节点消耗而不再被生成的数据对象),S 2为输入数据对象集合包含data In的语义工作流集合;
输入数据-工作流索引Data In Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输入数据对象集合DS In;然后,若data In∈DS In在索引Data In Index中不存在,则新建一个索引项(data In, S 2),将SW的ID加入集合S 2中,若data In已存在,则直接将SW的ID加入S 2,遍历SW的输入数据对象集合DS In 、语义工作流库SWC,建立索引Data In Index;在保存索引Data In Index时,不直接存储(data In, S 2),而是将Data In Index存储为(data In .hashcode, S 2.pointer),其中data In .hashcode为数据对象data In的语义描述的哈希值,S 2.pointer指向语义工作流集合S 2的存储位置;
输入数据-工作流索引Data In Index的检索方法为:对于给定的查询数据节点qdata In,若qdata In在索引Data In Index中已存在,则直接返回qdata In对应索引项的集合S 2;若qdata In在索引中不存在,说明SWC中不存在输入数据对象集合包含qdata In的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdata In的语义描述对应概念C的直接子概念C 1,然后获取输入数据对象集合包含C 1对应任务节点的语义工作流集合,遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S 2返回;
) 输出数据-工作流索引Data Out Index的索引项形式为(data Out, S 3),其中data Out为语义工作流的输出数据对象(非中间数据对象),S 3为输出数据对象集合包含data Out的语义工作流集合;
输出数据-工作流索引Data Out Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输出数据对象节点集合DS Out;然后,若data Out∈DS Out在索引Data Out Index中不存在,则新建一个索引项(data Out , S 3),将SW的ID加入集合S 2中,若data Out已存在,则直接将SW的ID加入S 3;遍历集合DS Out 、语义工作流库SWC,建立索引Data Out Index;在保存索引Data Out Index时,不直接存储(data Out, S 3),而是将索引Data Out Index存储为(data Out .hashcode, S 3.pointer),其中data Out .hashcode为数据对象data Out的语义描述的哈希值,S 3.pointer指向语义工作流集合S 3的存储位置;
输出数据-工作流索引Data Out Index的检索方法为:对于给定的查询数据节点qdata Out,若qdata Out在索引Data Out Index中已存在,则直接返回qdata Out对应索引项的集合S 3;若qdata Out在索引中不存在,说明SWC中不存在输出数据对象集合包含qdata Out的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdata Out的语义描述对应概念C的直接子概念C 1,获取输出数据对象集合包含C 1对应任务节点的语义工作流集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S 3返回;
2-3)数据-任务索引DataTaskIndex,包括输入数据-任务索引Data In TaskIndex和输出数据-任务索引Data Out TaskIndex两种;
)索引Data In TaskIndex的索引项形式为(data In, TS 1),其中data In为语义工作流的输入数据对象(非中间数据对象),TS 1的形式为{(task, SW)},为输入数据对象集合包含data In的任务节点task及其所属语义工作流SW的集合;
数据-任务索引DataTaskIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输入数据对象集合DS In;然后,若data In∈DS In在索引Data In TaskIndex中不存在,则新建一个索引项(data In, TS 1),将SW中消耗data In的每个任务节点task的ID标识taskID加入集合TS 1中,若data In已存在,则直接SW中消耗data In的每个任务节点task的ID标识taskID加入TS 1;遍历SW的输入数据对象集合DS In 、语义工作流库SWC,建立索引Data In TaskIndex;在保存索引Data In TaskIndex时,不直接存储(data In, TS 1),而是将索引Data In TaskIndex存储为(data In .hashcode, TS 1.pointer),其中data In .hashcode为数据对象data In的语义描述的哈希值,TS 1.pointer指向任务节点集合TS 1的存储位置;
数据-任务索引DataTaskIndex的检索方法为:对于查询数据对象qdata In,若qdata In在索引Data In TaskIndex中已存在,则直接返回qdata In对应索引项的集合TS 1;若qdata In在索引中不存在,说明SWC中不存在输入数据对象集合包含qdata In的任务节点,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdata In的语义描述对应概念C的直接子概念C 1,然后输入数据对象集合包含C 1所指代数据对象的任务节点集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为TS 1返回;
)索引Data Out TaskIndex的索引项形式为(data Out, TS 2),其中data Out为语义工作流的输出数据对象(非中间数据对象),TS 2的形式为{(task, SW)},为输出数据对象集包含data Out的任务节点task及其所属语义工作流SW的集合;
索引Data Out TaskIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输出数据对象节点集合DS Out;然后,若data Out∈DS Out在索引Data Out TaskIndex中不存在,则新建一个索引项(data Out , TS 2),将SW中生成data Out的任务节点task的ID标识taskID加入集合TS 2中,若data Out已存在,则直接将SW中生成data Out的任务节点task的ID标识taskID加入TS 2;遍历集合DS Out 、语义工作流库SWC,建立索引Data Out TaskIndex;在保存索引Data Out TaskIndex时,不直接存储(data Out, S 3),而是将Data Out TaskIndex存储为(data Out .hashcode, TS 2.pointer),其中data Out .hashcode为数据对象data Out的语义描述的哈希值,TS 2.pointer指向任务节点集合TS 2的存储位置;
索引Data Out TaskIndex的检索方法为:对于给定的查询数据对象qdata Out,若qdata Out在索引Data Out TaskIndex中已存在,则直接返回qdata Out对应索引项的集合TS 2;若qdata Out在索引中不存在,说明SWC中不存在输出数据对象集合包含qdata Out的任务节点,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdata Out的语义描述对应概念C的直接子概念C 1,然后获取输出数据对象集合包含C 1所指代数据对象的任务节点集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为TS 2返回;
2-4)两步路径索引Path2Index的索引项形式为(<task 1, task 2>, S 4),其中<task 1, task 2>为任务节点task 1, task 2组成的两步路径“task 1→task 2”的序偶形式,S 4为语义工作流对应的语义标注图的某一路径上包含此路径“task 1→task 2”的语义工作流集合;
两步路径索引Path2Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW对应语义标注图(忽略控制流节点)中的所有相邻任务节点对集合TA;然后,若ta∈TA在索引Path2Index中不存在,则先新建一个索引项(<task 1, task 2>, S 4),将SW的ID加入集合S 4,若ta已存在,则直接将SW的ID加入S 4;遍历SW的集合TA,以及SWC中的所有语义工作流构建,构建索引Path2Index;在保存索引Path2Index时,在索引中不直接存储(<task 1, task 2>, S 4),而是将索引Path2Index存储为(<task 1, task 2>.hashcode, S 4.pointer),其中<task 1, task 2>.hashcode为两步路径<task 1, task 2>的语义描述的哈希值,S 4.pointer指向语义工作流S 4的存储位置;
两步路径索引Path2Index的检索方法为:对于查询相邻任务节点对<qtask 1, qtask 2>,若路径<qtask 1, qtask 2>在索引Path2Index中已存在,则直接返回<qtask 1, qtask 2>对应索引项的集合S 4;若路径<qtask 1, qtask 2>不存在,说明在SWC中不存在包含路径<qtask 1, qtask 2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask 1、qtask 2的语义描述C 1、 C 2的直接子概念的集合CS 1、CS 2,然后获取包含笛卡尔积CS 1×CS 2中的每个概念序偶(C 3, C 4)指代的任务节点两步路径的语义工作流集合,最后计算这些集合的并集作为S 4返回;
3)构造语义工作流的行为特征索引SWBebavIndex及其检索方法,索引SWBebavIndex包括任务因果关系索引CasualIndex、任务互斥关系索引ExclusiveIndex、任务并行关系索引ParalellIndex和循环关系索引LoopIndex;
3-1)任务因果关系索引CasualIndex,索引项的形式为(<task 1, task 2>, S 5),其中<task 1, task 2>为具有因果关系的任务节点task 1, task 2组成的序偶,S 5为包含此序偶的语义工作流集合;
任务因果关系索引CasualIndex的构造方法:首先,对于语义工作流库SWC中的某语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务因果关系序偶集合TC,然后,若tc∈TC在索引CasualIndex中不存在,则先新建一个索引项(<task 1, task 2>, S 5),将SW的ID加入集合S 5中;若tc已存在,则直接将SW的ID加入S 5;遍历SW的集合TC,语义工作流库SWC,建立索引CasualIndex,在保存索引CasualIndex时,在索引中不直接存储(<task 1, task 2>, S 5),而是将索引CasualIndex存储为(<task 1, task 2>.hashcode, S 5.pointer),其中<task 1, task 2>.hashcode为任务因果关系<task 1, task 2>的语义描述的哈希值,S 5.pointer指向语义工作流集合S 5的存储位置;
任务因果关系索引CasualIndex的检索方法为:对于查询任务因果关系<qtask 1, qtask 2>,若<qtask 1, qtask 2>在索引CasualIndex中已存在,则直接返回<qtask 1, qtask 2>对应索引项的集合S 5,若<qtask 1, qtask 2>在索引中不存在,说明SWC中不存在包含因果任务节点对<qtask 1, qtask 2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask 1、 qtask 2的语义描述C 1、 C 2的直接子概念的集合CS 1、CS 2,然后获取包含笛卡尔积CS 1×CS 2中的每个概念序偶(C 3, C 4)指代的任务因果关系的语义工作流集合,最后计算这些集合的并集作为S 5返回;
3-2)任务并行关系索引ParalellIndex,索引项的形式为(<task 1, task 2>, S 6),其中<task 1, task 2>为具有并行关系的任务节点task 1, task 2组成的序偶,S 6为包含此序偶的语义工作流集合;
任务并行关系索引ParalellIndex的构造方法为:首先,对于语义工作流库SWC中的语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务并行关系集合TP;然后,若tp∈TP在索引ParalellIndex中不存在,则先新建一个索引项(<task 1, task 2>, S 6),将SW的ID加入集合S 6中;若tp已存在,则直接将SW的ID加入S 6;遍历SW的集合TP,语义工作流库SWC,建立索引ParalellIndex;在保存索引ParalellIndex时,不直接存储(<task 1, task 2>,S 6),而是将索引ParalellIndex存储为(<task 1, task 2>.hashcode, S 6.pointer),其中<task 1, task 2>.hashcode为任务并行关系<task 1, task 2>的语义描述的哈希值,S 6.pointer指向语义工作流集合S 6的存储位置;
任务并行关系索引ParalellIndex的检索方法为:对于查询任务因果关系<qtask 1, qtask 2>,若<qtask 1, qtask 2>在索引ParalellIndex中已存在,则直接返回<qtask 1, qtask 2>对应索引项的集合S 5,若<qtask 1, qtask 2>在索引中不存在,说明SWC中不存在包含并行任务节点对<qtask 1, qtask 2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask 1、 qtask 2的语义描述C 1、 C 2的直接子概念的集合CS 1、CS 2,然后获取包含笛卡尔积CS 1×CS 2中的每个概念序偶(C 3, C 4)指代的任务并行关系的语义工作流集合,最后计算这些集合的并集作为S 6返回;
3-3)任务互斥关系索引ExclusiveIndex,索引项的形式为(<task 1, task 2>, S 7),其中<task 1, task 2>为具有互斥关系的任务节点task 1, task 2组成的序偶,S 7为包含此序偶的语义工作流集合;
任务互斥关系索引ExclusiveIndex的构造方法为:首先,对于语义工作流库SWC中的某语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务互斥关系集合TE;然后,若te∈TE在索引ExclusiveIndex中不存在,则先新建一个索引项(<task 1, task 2>,S 7),将SW的ID加入集合S 7中,若te已存在,则直接将SW的ID加入S 7;遍历SW的集合TE,语义工作流库SWC,建立索引ExclusiveIndex;在保存索引ExclusiveIndex时,不直接存储(<task 1, task 2>, S 7),而是将索引ExclusiveIndex存储为(<task 1, task 2>.hashcode,S 7.pointer) ,其中<task 1, task 2>.hashcode为任务互斥关系<task 1, task 2>的语义描述的哈希值,S 7.pointer指向语义工作流集合S 7的存储位置;
任务互斥关系索引ExclusiveIndex的检索方法为:对于查询任务互斥关系<qtask 1, qtask 2>,若<qtask 1, qtask 2>在索引ExclusiveIndex中已存在,则直接返回<qtask 1, qtask 2>对应索引项的集合S 7,若<qtask 1, qtask 2>在索引中不存在,说明SWC中不存在包含互斥任务节点对<qtask 1, qtask 2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask 1、qtask 2的语义描述C 1、C 2的直接子概念的集合CS 1、CS 2,然后获取包含笛卡尔积CS 1×CS 2中的每个概念序偶(C 3, C 4)指代的任务互斥关系的语义工作流集合,最后计算这些集合的并集作为S 7返回;
3-4)任务循环关系索引LoopIndex,索引项的形式为(<task 1, task 2>, S 8),其中<task 1, task 2>为具有循环关系的任务节点task 1, task 2组成的序偶,S 8为包含此序偶的语义工作流集合;
任务循环关系索引LoopIndex的构造方法为:首先,对于语义工作流库SWC中的语义工作流SW,使用完全前缀展开法、最近公共前驱法和循环结构判断法计算SW的任务循环关系集合TL;然后,若tl∈TL在索引LoopIndex中不存在,则先新建一个索引项(<task 1, task 2>,S 8),将SW的ID加入集合S 8中,若tl已存在,则直接将SW的ID加入S 8;遍历SW的集合TL,语义工作流库SWC,建立索引LoopIndex;在保存索引LoopIndex时,不直接存储(<task 1, task 2>,S 8),而是将索引LoopIndex存储为(<task 1, task 2>.hashcode, S 8.pointer) ,其中<task 1, task 2>.hashcode为任务循环关系<task 1, task 2>的语义描述的哈希值,S 8.pointer指向语义工作流集合S 8的存储位置;
任务循环关系索引LoopIndex的检索方法为:对于查询任务循环关系<qtask 1, qtask 2>,若<qtask 1, qtask 2>在索引LoopIndex中已存在,则直接返回<qtask 1, qtask 2>对应索引项的集合S 8;若<qtask 1, qtask 2>在索引中不存在,说明SWC中不存在包含循环任务节点对<qtask 1, qtask 2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask 1、qtask 2的语义描述C 1、C 2的直接子概念的集合CS 1、CS 2,然后获取包含笛卡尔积CS 1×CS 2中的每个概念序偶(C 3, C 4)指代的任务循环关系的语义工作流集合,最后计算这些集合的并集作为S 8返回;
4)当与控制流、数据流相关的多个查询条件组合时,检索方法为:首先,执行满足控制流或数据流相关的每个查询条件的语义工作流或任务集合检索任务;然后,计算所有查询结果集的交集作为最终结果集返回;
5)更新语义工作流的结构和行为特征索引:当一个新语义工作流加入语义工作流库SWC时,结构特征索引SWStructIndex和行为特征索引SWBebavIndex均可以增量构造;当从语义工作流库中删除某语义工作流时,可以先记录该工作流,待被删除的语义工作流达到设定数量后,一次性将它们涉及的索引项删除,并更新。
有益效果:本发明提供了一种基于领域本体的语义工作流索引构建和检索方法,该方法有如下优点:
1. 能够为用户提供满足控制流、数据流或二者组合的多种类型查询条件的语义工作流或任务检索功能;
2. 利用引入的领域本体,能够为用户提供基于语义相似性近似匹配查询条件的语义工作流或任务检索功能;
3. 提高了语义工作流的检索速度和准确率,为语义工作流重用提供了良好的支持;
4. 为高效地组织和管理语义工作流库提供了理论依据。
附图说明
图1为语义工作流索引的构造流程图;
图2为语义工作流索引SWIndex的结构图;
图3为语义工作流SW 1;
图4为语义工作流SW 2;
图5为语义工作流SW 3;
图6为语义工作流SW 4;
图7为语义工作流SW 5;
图8为领域任务本体TaskOnto;
图9为领域数据本体DataOnto。
具体实施方式
下面结合附图和实施例对本发明内容做进一步阐述,但不是对本发明的限定。
实施例1:
下面以烹饪领域的5个语义工作流组成的语义工作流库SWC 1为例,5个语义工作流SW 1、SW 2、SW 3、SW 4和SW 5的示意图分别如图3—图7所示。一种基于领域本体的语义工作流索引构造及检索方法,如图1所示,语义工作流索引SWIndex的结构如图2所示,包括如下步骤:
1)构建如图8所示的烹饪领域的任务本体TaskOnto、如图9所示的数据本体DataOnto;SWC 1中工作流的任务节点的语义描述来自于TaskOnto中的概念,数据对象节点的语义描述来自于DataOnto中的概念;在说明书中,暂以任务节点的语义描述指代该节点,数据对象节点的语义描述指代该节点;
2)建立语义工作流库SWC 1的一步路径索引Path1Index,以语义工作流SW 1中的任务节点“Saute”为例,显然SW 1, SW 4中都包含任务节点“Saute”,则建立索引项:(“Saute”, { SW 1, SW 4});再以语义工作流SW 1中的任务节点“Sprinkle”为例,显然SW 1, SW 2, SW 3, SW 4, SW 5均包含任务节点“Sprinkle”,则建立索引项:(“Sprinkle”, { SW 1, SW 2, SW 3, SW 4, SW 5}),使用同样的方法建立其他索引项。
检索示例:如果要在SWC 1中检索包含任务节点“Saute”的语义工作流,由于在Path1Index中存在“Saute”的索引项,则直接返回索引项中的集合{SW 1, SW 4}。如果要检索包含任务节点“Fry”的语义工作流,由于在Path1Index中不存在“Fry”的索引项,则可以返回“Fry”在任务本体中的子节点“Saute”的索引项中的语义工作流集合{SW 1, SW 4},作为近似结果集提供给用户。
3)建立语义工作流库SWC 1的数据-工作流索引Data In Index和Data Out Index,首先构造Data In Index,以语义工作流SW 2中的数据对象“Salt”为例,显然SW 2, SW 5中包含此数据对象,则建立Data In Index的索引项:(“Salt”, { SW 2, SW 5}),使用同样的方法可建立其他索引项;然后构造Data Out Index,以语义工作流SW 1中的数据对象“Fettuccine_pasta”为例,显然只有SW 1包含此数据对象,则建立Data Out Index的索引项:(“Fettuccine_pasta”, { SW 1}),使用同样的方法可建立其他索引项。
检索示例:如果要在SWC 1中检索包含输入数据对象“Salt”的语义工作流,由于在Data In Index中存在“Salt”的索引项,则直接返回索引项中的集合{ SW 2, SW 5}。如果要检索包含输入数据对象“Oil”的语义工作流,由于在Data In Index中不存在“Oil”的索引项,则可以返回“Oil”在领域数据本体中的子节点“Salad_oil”的索引项中的集合{SW 2, SW 5},作为近似结果集。
如果要在SWC 1中检索包含输出数据对象“Lasagna_pasta”的语义工作流,由于在Data Out Index中存在“Lasagna_pasta”的索引项,则直接返回索引项中的语义工作流集合{ SW 2, SW 5}。
4)建立语义工作流库SWC 1的数据-任务索引Data In TaskIndex和Data Out TaskIndex,首先构造Data In TaskIndex,以语义工作流SW 2中的数据对象“Salt”为例,显然SW 2中的任务节点“Toss”, SW 5中的任务节点“Toss”包含数据对象“Salt”。则建立Data In TaskIndex的索引项:(“Salt”, {(“Toss”, SW 2), (“Toss”, SW 5)}),使用同样的方法可建立其他索引项;然后构造Data Out TaskIndex,以语义工作流SW 1中的数据对象“Fettuccine_pasta”为例,显然只有SW 1的任务节点“Toss”和“Sprinkle”包含此数据对象。则Data Out Index的索引项:(“Fettuccine_pasta”, {(“Toss”, SW 1), ( “Sprinkle”, SW 1)}),使用同样的方法可建立其他索引项。
检索示例:如果要在SWC 1中检索包含输入数据对象“Salt”的语义工作流,由于在Data In TaskIndex中存在“Salt”的索引项,则直接返回索引项中的集合{(“Toss”, SW 2),(“Toss”, SW 5)},再从中抽取出语义工作流集合{ SW 2, SW 5}。
Data Out TaskIndex索引的检索方法类似,此处省略。
5)建立语义工作流库SWC 1的两步路径索引Path2Index,以语义工作流SW 1中的路径“Cook”→“Stir”为例,显然SW 1只有包含此路径,则Path2Index的索引项:(<“Cook”,“Stir”>, { SW 1}),使用同样的方法可建立其他索引项;以语义工作流SW 2中的路径“Sprinkle”→“Bake”为例,显然SW 2, SW 3, SW 4, SW 5包含此路径,则Path2Index的索引项:(<“Sprinkle”,“Bake”>, { SW 2, SW 3, SW 4, SW 5})。
检索示例:如果要在SWC 1中检索包含路径“Sprinkle”→“Bake”的语义工作流,由于在Path2Index中存在“Sprinkle”→“Bake”的索引项,则直接返回索引项中的集合{ SW 2, SW 3, SW 4, SW 5}。如果要在SWC 1中检索包含路径“Saute”→“Gather”的语义工作流,由于在Path2Index中不存在“Saute”→“Gather”的索引项,则可以用“Gather”在领域任务本体中的子节点“Add”来代替“Gather”,返回“Saute”→“Add”的索引项中的集合{SW 1, SW 4},作为近似结果集。
6)建立语义工作流库SWC 1的任务因果关系索引CasualIndex,以语义工作流SW 4中的任务因果关系<“Grate”,“Mix”>为例,显然SW 4中包含此因果关系,则建立索引项:(<“Grate”,“Mix”>, { SW 4})。使用同样的方法建立其他索引项。
检索示例:如果要在SWC 1中检索包含任务因果关系<“Grate”,“Mix”>的语义工作流,由于在CasualIndex中存在任务因果关系<“Grate”,“Mix”>的索引项,则直接返回索引项中的集合{SW 4}。如果要在SWC 1中检索包含任务因果关系<“Saute”,“Gather”>的语义工作流,由于在CasualIndex中不存在<“Saute”,“Gather”>的索引项,则可以用“Gather”在任务本体中的子节点“Add”来代替“Gather”。返回<“Saute”,“Add”>的索引项中的集合{SW 1, SW 4},作为近似结果集。
7)建立语义工作流库SWC 1的任务并行关系索引ParalellIndex,以语义工作流SW 2中的任务并行关系<“Grate”,“Cook”>为例,显然SW 2中包含此因果关系,则ParalellIndex的索引项:(<“Grate”,“Cook”>, { SW 2});使用同样的方法建立其他索引项。
检索示例:如果要在SWC 1中检索包含任务并行关系<“Simmer”,“Mix”>的语义工作流,由于在ParalellIndex中存在<“Simmer”,“Mix”>的索引项,则直接返回索引项中的集合{ SW 4 }。
8)建立语义工作流库SWC 1的任务互斥关系索引ExclusiveIndex,以语义工作流SW 3中的任务互斥关系<“Boil”,“Heat”>为例,显然SW 3中包含此互斥关系,则ExclusiveIndex的索引项:(<“Boil”,“Heat”>, { SW 3})。使用同样的方法建立其他索引项。
检索示例:如果要在SWC 1中检索包含任务互斥关系<“Boil”,“Heat”>的语义工作流,由于在ExclusiveIndex中存在<“Boil”,“Heat”>的索引项,则直接返回索引项中的集合{ SW 3 }。
9)建立语义工作流库SWC 1的任务循环关系索引LoopIndex,以语义工作流SW 5中的任务循环关系<“Arrange”,“Top”>为例,显然SW 5中包含此任务循环关系,则建立LoopIndex的索引项:(<“Arrange”,“Top”>, { SW 5})。使用同样的方法建立其他索引项。
检索示例:如果要在SWC 1中检索包含任务循环关系<“Arrange”,“Top”>的语义工作流,由于在LoopIndex中存在<“Arrange”,“Top”>的索引项,则直接返回索引项中的集合{ SW 5 }。
10)检索示例:如果要在SWC 1中检索包含任务节点“Sprinkle”和输入数据对象“Spaghetti”的语义工作流,则由于Path1Index存在索引项:(“Sprinkle”, { SW 1, SW 2, SW 3, SW 4, SW 5}),易得包含任务节点“Sprinkle”的语义工作流集合A 1={ SW 1, SW 2, SW 3, SW 4, SW 5};由于Data In Inde x存在索引项:(“Spaghetti”, { SW 4}),易得包含输入数据对象“Spaghetti”的语义工作流集合A 2={ SW 4};由以上可得满足原检索要求的语义工作流集合A 3=A 1∩A 2={ SW 1, SW 2, SW 3, SW 4, SW 5}∩{ SW 4}={ SW 4}。
检索示例:如果要在SWC 1中检索包含任务因果关系<“Saute”,“Gather”>和输入数据对象“Fettuccine”的语义工作流,则由于在CasualIndex中不存在<“Saute”,“Gather”>的索引项,则可用“Gather”在任务本体中的子节点“Add”来代替“Gather”,于是返回包含任务因果关系<“Saute”,“Add”>的索引项中的语义工作流集合A 4={SW 1, SW 4}作为近似结果集。由于Data In Index中存在索引项:(“Fettuccine”, {SW 1}),易得包含输入数据对象“Fettuccine”的语义工作流集合A 5={ SW 1};由以上可得满足原检索要求的语义工作流的近似集合A 6=A 4∩A 5={ SW 1, SW 4}∩{ SW 1}={ SW 1}。
Claims (4)
1.一种基于领域本体的语义工作流索引构造及检索方法,其特征在于,包括如下步骤:
1)建立语义工作流的领域任务本体和领域数据本体;
2)构造语义工作流的结构特征索引SWStructIndex及其检索方法,索引SWStructIndex包括一步路径索引Path1Index、数据-工作流索引DataIndex、数据-任务索引DataTaskIndex和两步路径索引Path2Index;
3)构造语义工作流的行为特征索引SWBebavIndex及其检索方法,索引SWBebavIndex包括任务因果关系索引CasualIndex、任务互斥关系索引ExclusiveIndex、任务并行关系索引ParalellIndex和循环关系索引LoopIndex;
4)当与控制流、数据流相关的多个查询条件组合时,检索方法为:首先,执行满足控制流或数据流相关的每个查询条件的语义工作流或任务集合检索任务;然后,计算所有查询结果集的交集作为最终结果集返回;
5)更新语义工作流的结构和行为特征索引:当一个新语义工作流加入语义工作流库时,结构特征索引SWStructIndex和行为特征索引SWBebavIndex均可以增量构造;当从语义工作流库中删除语义工作流时,先记录该工作流,待被删除的语义工作流达到设定数量后,一次将它们涉及的索引项删除或更新。
2.根据权利要求1所述的一种基于领域本体的语义工作流索引构造及检索方法,其特征在于,步骤1)中,具体是将语义工作流库中的语义工作流任务节点的语义描述看作与任务相关的概念,利用概念间的包含关系,构建任务本体的层次结构,建立领域任务本体;将语义工作流的数据对象节点的语义描述看作与数据对象相关的概念,利用概念间的包含关系,构建数据本体的层次结构,建立领域数据本体。
3.根据权利要求1所述的一种基于领域本体的语义工作流索引构造及检索方法,其特征在于,步骤2)中,所述的一步路径索引Path1Index,索引项的形式为(task, S 1),其中task为任务节点,S 1为包含task的语义工作流集合;
一步路径索引Path1Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的任务节点集合TS;然后,若某任务节点task∈TS在索引Path1Index中不存在,则先新建一个索引项(task, S 1),将SW的ID加入集合S 1中;若task已存在,则直接将SW的ID加入task对应索引项的集合S 1中;遍历SW的任务节点集合TS、语义工作流库SWC,建立索引Path1Index;将索引Path1Index存储为(task.hashcode, S 1.pointer),其中task.hashcode为一步路径或任务节点task的语义描述的哈希值,S 1.pointer指向语义工作流集合S 1的存储位置;
一步路径索引Path1Index的检索方法为:对于给定的查询任务节点qtask,若qtask在索引Path1Index中已存在,则直接返回qtask对应索引项的集合S 1;若qtask在索引中不存在,说明在语义工作流库SWC中不存在包含qtask的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中查询qtask的语义描述对应概念C的直接子概念C 1,然后获取包含C 1对应任务节点的语义工作流集合,遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S 1返回;
所述的数据-工作流索引DataIndex,包括输入数据-工作流索引Data In Index和输出数据-工作流索引Data Out Index两种;
) 输入数据-工作流索引Data In Index的索引项形式为(data In, S 2),其中data In为语义工作流的输入数据对象,S 2为输入数据对象集合包含data In的语义工作流集合;
输入数据-工作流索引Data In Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输入数据对象集合DS In;然后,若data In∈DS In在索引Data In Index中不存在,则新建一个索引项(data In, S 2),将SW的ID加入集合S 2中,若data In已存在,则直接将SW的ID加入S 2,遍历SW的输入数据对象集合DS In 、语义工作流库SWC,建立索引Data In Index;将索引Data In Index存储为(data In .hashcode, S 2.pointer),其中data In .hashcode为数据对象data In的语义描述的哈希值,S 2.pointer指向语义工作流集合S 2的存储位置;
输入数据-工作流索引Data In Index的检索方法为:对于给定的查询数据节点qdata In,若qdata In在索引Data In Index中已存在,则直接返回qdata In对应索引项的集合S 2;若qdata In在索引中不存在,说明SWC中不存在输入数据对象集合包含qdata In的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdata In的语义描述对应概念C的直接子概念C 1,然后获取输入数据对象集合包含C 1对应任务节点的语义工作流集合,遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S 2返回;
)输出数据-工作流索引Data Out Index的索引项形式为(data Out, S 3),其中data Out为语义工作流的输出数据对象,S 3为输出数据对象集合包含data Out的语义工作流集合;
输出数据-工作流索引Data Out Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输出数据对象节点集合DS Out;然后,若data Out∈DS Out在索引Data Out Index中不存在,则新建一个索引项(data Out , S 3),将SW的ID加入集合S 3中,若data Out已存在,则直接将SW的ID加入S 3;遍历集合DS Out 、语义工作流库SWC,建立索引Data Out Index;将索引Data Out Index存储为(data Out .
hashcode, S 3.pointer),其中data Out .hashcode为数据对象data Out的语义描述的哈希值,S 3.pointer指向语义工作流集合S 3的存储位置;
输出数据-工作流索引Data Out Index的检索方法为:对于给定的查询数据节点qdata Out,若qdata Out在索引Data Out Index中已存在,则直接返回qdata Out对应索引项的集合S 3;若qdata Out在索引中不存在,说明SWC中不存在输出数据对象集合包含qdata Out的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdata Out的语义描述对应概念C的直接子概念C 1,获取输出数据对象集合包含C 1对应任务节点的语义工作流集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S 3返回;
所述的数据-任务索引DataTaskIndex,包括输入数据-任务索引Data In TaskIndex和输出数据-任务索引Data Out TaskIndex两种;
)索引Data In TaskIndex的索引项形式为(data In, TS 1),其中data In为语义工作流的输入数据对象,TS 1的形式为{(task, SW)},为输入数据对象集合包含data In的任务节点task及其所属语义工作流SW的集合;
数据-任务索引DataTaskIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输入数据对象集合DS In;然后,若data In∈DS In在索引Data In TaskIndex中不存在,则新建一个索引项(data In, TS 1),将SW中消耗data In的每个任务节点task的ID标识taskID加入集合TS 1中,若data In已存在,则直接SW中消耗data In的每个任务节点task的ID标识taskID加入TS 1;遍历SW的输入数据对象集合DS In 、语义工作流库SWC,建立索引Data In TaskIndex;将索引Data In TaskIndex存储为(data In .hashcode, TS 1.pointer),其中data In .hashcode为数据对象data In的语义描述的哈希值,TS 1.pointer指向任务节点集合TS 1的存储位置;
数据-任务索引DataTaskIndex的检索方法为:对于查询数据对象qdata In,若qdata In在索引Data In TaskIndex中已存在,则直接返回qdata In对应索引项的任务节点集合TS 1;若qdata In在索引中不存在,说明SWC中不存在输入数据对象集合包含qdata In的任务节点,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdata In的语义描述对应概念C的直接子概念C 1,然后获取输入数据对象集合包含C 1所指代数据对象的任务节点集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为TS 1返回;
)索引Data Out TaskIndex的索引项形式为(data Out, TS 2),其中data Out为语义工作流的输出数据对象,TS 2的形式为{(task, SW)},为输出数据对象集包含data Out的任务节点task及其所属语义工作流SW的集合;
索引Data Out TaskIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输出数据对象节点集合DS Out;然后,若data Out∈DS Out在索引Data Out TaskIndex中不存在,则新建一个索引项(data Out, TS 2),将SW中生成data Out的任务节点task的ID标识taskID加入集合TS 2中,若data Out已存在,则直接将SW中生成data Out的任务节点task的ID标识taskID加入TS 2;遍历集合DS Out 、语义工作流库SWC,建立索引Data Out TaskIndex;将索引Data Out TaskIndex存储为(data Out .hashcode, TS 2.pointer),其中data Out .hashcode为数据对象data Out的语义描述的哈希值,TS 2.pointer指向任务节点集合TS 2的存储位置;
索引Data Out TaskIndex的检索方法为:对于给定的查询数据对象qdata Out,若qdata Out在索引Data Out TaskIndex中已存在,则直接返回qdata Out对应索引项的任务节点集合TS 2;若qdata Out在索引中不存在,说明SWC中不存在输出数据对象集合包含qdata Out的任务节点,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdata Out的语义描述对应概念C的直接子概念C 1,然后获取输出数据对象集合包含C 1所指代数据对象的任务节点集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为TS 2返回;
所述的两步路径索引Path2Index,索引项形式为(<task 1, task 2>,S 4),其中<task 1, task 2>为任务节点task 1, task 2组成的两步路径“task 1→task 2”的序偶形式,S 4为语义工作流对应的语义标注图的某一路径上包含路径“task 1→task 2”的语义工作流集合;
两步路径索引Path2Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW对应语义标注图中的所有相邻任务节点对集合TA,然后,若ta∈TA在索引Path2Index中不存在,则先新建一个索引项(<task 1, task 2>, S 4),将SW的ID加入集合S 4,若ta已存在,则直接将SW的ID加入S 4;遍历SW的集合TA,以及SWC中的所有语义工作流,构建索引Path2Index;将索引Path2Index存储为(<task 1, task 2>.hashcode, S 4.pointer),其中<task 1, task 2>.hashcode为两步路径<task 1, task 2>的语义描述的哈希值,S 4.pointer指向语义工作流S 4的存储位置;
两步路径索引Path2Index的检索方法为:对于查询相邻任务节点对<qtask 1, qtask 2>,若路径<qtask 1, qtask 2>在索引Path2Index中已存在,则直接返回<qtask 1, qtask 2>对应索引项的集合S 4;若路径<qtask 1, qtask 2>不存在,说明在SWC中不存在包含路径<qtask 1, qtask 2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask 1、qtask 2的语义描述C 1、C 2的直接子概念的集合CS 1、CS 2,然后获取包含笛卡尔积CS 1×CS 2中的每个概念序偶(C 3, C 4)指代的任务节点两步路径的语义工作流集合,最后计算这些集合的并集作为S 4返回。
4.根据权利要求1所述的一种基于领域本体的语义工作流索引构造及检索方法,其特征在于,步骤3)中,所述的任务因果关系索引CasualIndex,索引项的形式为(<task 1, task 2>, S 5),其中<task 1, task 2>为具有因果关系的任务节点task 1, task 2组成的序偶,S 5为包含此序偶的语义工作流集合;
任务因果关系索引CasualIndex的构造方法:首先,对于语义工作流库SWC中的某语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务因果关系序偶集合TC,然后,若tc∈TC在索引CasualIndex中不存在,则先新建一个索引项(<task 1, task 2>, S 5),将SW的ID加入集合S 5中;若tc已存在,则直接将SW的ID加入S 5;遍历SW的集合TC,语义工作流库SWC,建立索引CasualIndex,将索引CasualIndex存储为(<task 1, task 2>.hashcode,S 5.pointer),其中<task 1, task 2>.hashcode为任务因果关系<task 1, task 2>的语义描述的哈希值,S 5.pointer指向语义工作流集合S 5的存储位置;
任务因果关系索引CasualIndex的检索方法为:对于查询任务因果关系<qtask 1, qtask 2>,若<qtask 1, qtask 2>在索引CasualIndex中已存在,则直接返回<qtask 1, qtask 2>对应索引项的集合S 5,若<qtask 1, qtask 2>在索引中不存在,说明SWC中不存在包含因果任务节点对<qtask 1, qtask 2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask 1、 qtask 2的语义描述C 1、C 2的直接子概念的集合CS 1、CS 2,然后获取包含笛卡尔积CS 1×CS 2中的每个概念序偶(C 3, C 4)指代的任务因果关系的语义工作流集合,最后计算这些集合的并集作为S 5返回;
所述的任务并行关系索引ParalellIndex,索引项的形式为(<task 1, task 2>, S 6),其中<task 1, task 2>为具有并行关系的任务节点task 1, task 2组成的序偶,S 6为包含此序偶的语义工作流集合;
任务并行关系索引ParalellIndex的构造方法为:首先,对于语义工作流库SWC中的语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务并行关系集合TP;然后,若tp∈TP在索引ParalellIndex中不存在,则先新建一个索引项(<task 1, task 2>, S 6),将SW的ID加入集合S 6中;若tp已存在,则直接将SW的ID加入S 6;遍历SW的集合TP,语义工作流库SWC,建立索引ParalellIndex;将索引ParalellIndex存储为(<task 1, task 2>.hashcode,S 6.pointer),其中<task 1, task 2>.hashcode为任务并行关系<task 1, task 2>的语义描述的哈希值,S 6.pointer指向语义工作流集合S 6的存储位置;
任务并行关系索引ParalellIndex的检索方法为:对于查询任务因果关系<qtask 1, qtask 2>,若<qtask 1, qtask 2>在索引ParalellIndex中已存在,则直接返回<qtask 1, qtask 2>对应索引项的集合S 5,若<qtask 1, qtask 2>在索引中不存在,说明SWC中不存在包含并行任务节点对<qtask 1, qtask 2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask 1、 qtask 2的语义描述C 1、C 2的直接子概念的集合CS 1、CS 2,然后获取包含笛卡尔积CS 1×CS 2中的每个概念序偶(C 3, C 4)指代的任务并行关系的语义工作流集合,最后计算这些集合的并集作为S 6返回;
所述的任务互斥关系索引ExclusiveIndex,索引项的形式为(<task 1, task 2>, S 7),其中<task 1, task 2>为具有互斥关系的任务节点task 1, task 2组成的序偶,S 7为包含此序偶的语义工作流集合;
任务互斥关系索引ExclusiveIndex的构造方法为:首先,对于语义工作流库SWC中的某语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务互斥关系集合TE;然后,若te∈TE在索引ExclusiveIndex中不存在,则先新建一个索引项(<task 1, task 2>,S 7),将SW的ID加入集合S 7中,若te已存在,则直接将SW的ID加入S 7;遍历SW的集合TE,语义工作流库SWC,建立索引ExclusiveIndex;将索引ExclusiveIndex存储为(<task 1, task 2>.hashcode, S 7.pointer),其中<task 1, task 2>.hashcode为任务互斥关系<task 1, task 2>的语义描述的哈希值,S 7.pointer指向语义工作流集合S 7的存储位置;
任务互斥关系索引ExclusiveIndex的检索方法为:对于查询任务互斥关系<qtask 1, qtask 2>,若<qtask 1, qtask 2>在索引ExclusiveIndex中已存在,则直接返回<qtask 1, qtask 2>对应索引项的集合S 7,若<qtask 1, qtask 2>在索引中不存在,说明SWC中不存在包含互斥任务节点对<qtask 1, qtask 2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask 1、qtask 2的语义描述C 1、C 2的直接子概念的集合CS 1、CS 2,然后获取包含笛卡尔积CS 1×CS 2中的每个概念序偶(C 3, C 4)指代的任务互斥关系的语义工作流集合,最后计算这些集合的并集作为S 7返回;
所述的任务循环关系索引LoopIndex,索引项的形式为(<task 1, task 2>, S 8),其中<task 1, task 2>为具有循环关系的任务节点task 1, task 2组成的序偶,S 8为包含此序偶的语义工作流集合;
任务循环关系索引LoopIndex的构造方法为:首先,对于语义工作流库SWC中的语义工作流SW,使用完全前缀展开法、最近公共前驱法和循环结构判断法计算SW的任务循环关系集合TL;然后,若tl∈TL在索引LoopIndex中不存在,则先新建一个索引项(<task 1, task 2>,S 8),将SW的ID加入集合S 8中,若tl已存在,则直接将SW的ID加入S 8;遍历SW的集合TL,语义工作流库SWC,建立索引LoopIndex;将索引LoopIndex存储为(<task 1, task 2>.hashcode,S 8.pointer),其中<task 1, task 2>.hashcode为任务循环关系<task 1, task 2>的语义描述的哈希值,S 8.pointer指向语义工作流集合S 8的存储位置;
任务循环关系索引LoopIndex的检索方法为:对于查询任务循环关系<qtask 1, qtask 2>,若<qtask 1, qtask 2>在索引LoopIndex中已存在,则直接返回<qtask 1, qtask 2>对应索引项的集合S 8;若<qtask 1, qtask 2>在索引中不存在,说明SWC中不存在包含循环任务节点对<qtask 1, qtask 2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask 1、qtask 2的语义描述C 1、C 2的直接子概念的集合CS 1、CS 2,然后获取包含笛卡尔积CS 1×CS 2中的每个概念序偶(C 3, C 4)指代的任务循环关系的语义工作流集合,最后计算这些集合的并集作为S 8返回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910754733.7A CN110457490B (zh) | 2019-08-15 | 2019-08-15 | 一种基于领域本体的语义工作流索引构造及检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910754733.7A CN110457490B (zh) | 2019-08-15 | 2019-08-15 | 一种基于领域本体的语义工作流索引构造及检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457490A true CN110457490A (zh) | 2019-11-15 |
CN110457490B CN110457490B (zh) | 2021-06-18 |
Family
ID=68486888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910754733.7A Active CN110457490B (zh) | 2019-08-15 | 2019-08-15 | 一种基于领域本体的语义工作流索引构造及检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457490B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112529543A (zh) * | 2020-12-28 | 2021-03-19 | 平安普惠企业管理有限公司 | 工作流互斥关系的校验方法、装置、设备及存储介质 |
CN112765314A (zh) * | 2020-12-31 | 2021-05-07 | 广东电网有限责任公司 | 一种基于电力本体知识库的电力信息检索方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957936A (zh) * | 2009-07-15 | 2011-01-26 | 深圳市艾派应用系统有限公司 | 一种工作流表单实现方法和系统 |
CN102081668A (zh) * | 2011-01-24 | 2011-06-01 | 熊晶 | 基于领域本体的信息检索优化方法 |
US20120030163A1 (en) * | 2006-01-30 | 2012-02-02 | Xerox Corporation | Solution recommendation based on incomplete data sets |
CN105378660A (zh) * | 2013-05-29 | 2016-03-02 | 微软技术许可有限责任公司 | 来自源应用的基于上下文的动作 |
US20160125070A1 (en) * | 2014-08-01 | 2016-05-05 | Ncino, Inc. | Unified system for real-time coordination of content-object action items across devices |
CN109327321A (zh) * | 2017-08-01 | 2019-02-12 | 中兴通讯股份有限公司 | 网络模型业务执行方法、装置、sdn控制器及可读存储介质 |
CN110119268A (zh) * | 2019-05-21 | 2019-08-13 | 成都派沃特科技股份有限公司 | 基于人工智能的工作流优化方法 |
-
2019
- 2019-08-15 CN CN201910754733.7A patent/CN110457490B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030163A1 (en) * | 2006-01-30 | 2012-02-02 | Xerox Corporation | Solution recommendation based on incomplete data sets |
CN101957936A (zh) * | 2009-07-15 | 2011-01-26 | 深圳市艾派应用系统有限公司 | 一种工作流表单实现方法和系统 |
CN102081668A (zh) * | 2011-01-24 | 2011-06-01 | 熊晶 | 基于领域本体的信息检索优化方法 |
CN105378660A (zh) * | 2013-05-29 | 2016-03-02 | 微软技术许可有限责任公司 | 来自源应用的基于上下文的动作 |
US20160125070A1 (en) * | 2014-08-01 | 2016-05-05 | Ncino, Inc. | Unified system for real-time coordination of content-object action items across devices |
CN109327321A (zh) * | 2017-08-01 | 2019-02-12 | 中兴通讯股份有限公司 | 网络模型业务执行方法、装置、sdn控制器及可读存储介质 |
CN110119268A (zh) * | 2019-05-21 | 2019-08-13 | 成都派沃特科技股份有限公司 | 基于人工智能的工作流优化方法 |
Non-Patent Citations (6)
Title |
---|
JINYONG SUN 等: ""A Behavioral Similarity Metric for Semantic Workflows Based on Semantic Task Adjacency Relations With Importance "", 《IEEE ACCESS》 * |
YINGLONG MA 等: ""Measuring Semantic and Structural Information for Data Oriented Workflow Retrieval with Cost Constraints"", 《HTTP://DX.DOI.ORG/10.1155/2014/407809》 * |
孙晋永 等: ""基于行为和结构特征的相似语义工作流检索"", 《计算机研究与发展》 * |
孙晋永 等: ""基于行为特征的语义工作流修正算法"", 《软件学报》 * |
孙晋永 等: ""用于面向过程的基于实例推理的语义工作流相似性算法"", 《计算机集成制造系统》 * |
孙晋永: ""基于事例推理及行为特征的语义工作流重用研究"", 《中国博士学位论文全文数据库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112529543A (zh) * | 2020-12-28 | 2021-03-19 | 平安普惠企业管理有限公司 | 工作流互斥关系的校验方法、装置、设备及存储介质 |
CN112765314A (zh) * | 2020-12-31 | 2021-05-07 | 广东电网有限责任公司 | 一种基于电力本体知识库的电力信息检索方法 |
CN112765314B (zh) * | 2020-12-31 | 2023-08-18 | 广东电网有限责任公司 | 一种基于电力本体知识库的电力信息检索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110457490B (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104346377B (zh) | 一种基于唯一标识的数据集成和交换方法 | |
Behm et al. | Asterix: towards a scalable, semistructured data platform for evolving-world models | |
CN101595476B (zh) | 用于客户定义信息架构的系统、方法和计算机程序 | |
CN106227800A (zh) | 一种高度关联大数据的存储方法及管理系统 | |
CN107193967A (zh) | 一种多源异构行业领域大数据处理全链路解决方案 | |
CN105630881B (zh) | 一种rdf的数据存储方法和查询方法 | |
CN103793467B (zh) | 一种基于超图和动态规划的大数据实时查询优化方法 | |
CN102982076A (zh) | 基于语义标签库的多维度内容标注方法 | |
Cudré-Mauroux et al. | Graph data management systems for new application domains | |
WO2022048164A1 (zh) | 一种基于粒计算的智能机器人对话策略生成方法 | |
CN110457490A (zh) | 一种基于领域本体的语义工作流索引构造及检索方法 | |
CN110321446A (zh) | 相关数据推荐方法、装置、计算机设备及存储介质 | |
CN110019314A (zh) | 基于数据项分析的动态数据封装方法、客户端和服务端 | |
CN107256217A (zh) | 一种xml数据的快速查询方法 | |
CN102779186A (zh) | 一种非结构化数据管理的全过程建模方法 | |
CN104156431B (zh) | 一种基于实体图社团结构的rdf关键词查询方法 | |
CN106527912B (zh) | 一种基于Voronoi树图的信息检索可视化系统及方法 | |
CN109086381A (zh) | 模糊概念格的一种更新生成方法 | |
Dotan et al. | HyperFlow: An integrated visual query and dataflow language for end-user information analysis | |
CN108959358B (zh) | 一种基于本体模型的终端用户数据访问方法及系统 | |
CN106383863A (zh) | 一种同构子图查询优化方法 | |
Goyal | Qp-subdue: Processing queries over graph databases | |
US8190597B1 (en) | Multistage pipeline for feeding joined tables to a search system | |
Amer-Yahia et al. | SOCLE: Towards a framework for data preparation in social applications. | |
Jagadish et al. | Organic databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |