CN110457490B - 一种基于领域本体的语义工作流索引构造及检索方法 - Google Patents
一种基于领域本体的语义工作流索引构造及检索方法 Download PDFInfo
- Publication number
- CN110457490B CN110457490B CN201910754733.7A CN201910754733A CN110457490B CN 110457490 B CN110457490 B CN 110457490B CN 201910754733 A CN201910754733 A CN 201910754733A CN 110457490 B CN110457490 B CN 110457490B
- Authority
- CN
- China
- Prior art keywords
- task
- index
- data
- semantic
- workflow
- 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.)
- Active
Links
Images
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,S1),其中task为任务节点,S1为包含task的语义工作流集合;
一步路径索引Path1Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的任务节点集合TS;然后,若某任务节点task∈TS在索引Path1Index中不存在,则先新建一个索引项(task,S1),将SW的ID加入集合S1中;若task已存在,则直接将SW的ID加入task对应索引项的集合S1中;遍历SW的任务节点集合TS、语义工作流库SWC,建立索引Path1Index;在保存索引Path1Index时,不直接存储(task,S1),而是将Path1Index存储为(task.hashcode,S1.pointer),其中task.hashcode为一步路径或任务节点task的语义描述的哈希值,S1.pointer指向语义工作流集合S1的存储位置;
一步路径索引Path1Index的检索方法为:对于给定的查询任务节点qtask,若qtask在索引Path1Index中已存在,则直接返回qtask对应索引项的集合S1;若qtask在索引中不存在,说明在语义工作流库SWC中不存在包含qtask的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中查询qtask的语义描述对应概念C的直接子概念C1,然后获取包含C1对应任务节点的语义工作流集合,遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S1返回;
2-2)数据-工作流索引DataIndex,包括输入数据-工作流索引DataInIndex和输出数据-工作流索引DataOutIndex两种;
i)输入数据-工作流索引DataInIndex的索引项形式为(dataIn,S2),其中dataIn为语义工作流的输入数据对象,但不是中间数据对象(中间数据对象指由某任务节点生成,但又因被另一任务节点消耗而不再被生成的数据对象),S2为输入数据对象集合包含dataIn的语义工作流集合;
输入数据-工作流索引DataInIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输入数据对象集合DSIn;然后,若dataIn∈DSIn在索引DataInIndex中不存在,则新建一个索引项(dataIn,S2),将SW的ID加入集合S2中,若dataIn已存在,则直接将SW的ID加入S2,遍历SW的输入数据对象集合DSIn、语义工作流库SWC,建立索引DataInIndex;在保存索引DataInIndex时,不直接存储(dataIn,S2),而是将DataInIndex存储为(dataIn.hashcode,S2.pointer),其中dataIn.hashcode为数据对象dataIn的语义描述的哈希值,S2.pointer指向语义工作流集合S2的存储位置;
输入数据-工作流索引DataInIndex的检索方法为:对于给定的查询数据节点qdataIn,若qdataIn在索引DataInIndex中已存在,则直接返回qdataIn对应索引项的集合S2;若qdataIn在索引中不存在,说明SWC中不存在输入数据对象集合包含qdataIn的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdataIn的语义描述对应概念C的直接子概念C1,然后获取输入数据对象集合包含C1对应任务节点的语义工作流集合,遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S2返回;
ii)输出数据-工作流索引DataOutIndex的索引项形式为(dataOut,S3),其中dataOut为语义工作流的输出数据对象(非中间数据对象),S3为输出数据对象集合包含dataOut的语义工作流集合;
输出数据-工作流索引DataOutIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输出数据对象节点集合DSOut;然后,若dataOut∈DSOut在索引DataOutIndex中不存在,则新建一个索引项(dataOut,S3),将SW的ID加入集合S2中,若dataOut已存在,则直接将SW的ID加入S3;遍历集合DSOut、语义工作流库SWC,建立索引DataOutIndex;在保存索引DataOutIndex时,不直接存储(dataOut,S3),而是将索引DataOutIndex存储为(dataOut.hashcode,S3.pointer),其中dataOut.hashcode为数据对象dataOut的语义描述的哈希值,S3.pointer指向语义工作流集合S3的存储位置;
输出数据-工作流索引DataOutIndex的检索方法为:对于给定的查询数据节点qdataOut,若qdataOut在索引DataOutIndex中已存在,则直接返回qdataOut对应索引项的集合S3;若qdataOut在索引中不存在,说明SWC中不存在输出数据对象集合包含qdataOut的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdataOut的语义描述对应概念C的直接子概念C1,获取输出数据对象集合包含C1对应任务节点的语义工作流集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S3返回;
2-3)数据-任务索引DataTaskIndex,包括输入数据-任务索引DataInTaskIndex和输出数据-任务索引DataOutTaskIndex两种;
i)索引DataInTaskIndex的索引项形式为(dataIn,TS1),其中dataIn为语义工作流的输入数据对象(非中间数据对象),TS1的形式为{(task,SW)},为输入数据对象集合包含dataIn的任务节点task及其所属语义工作流SW的集合;
数据-任务索引DataTaskIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输入数据对象集合DSIn;然后,若dataIn∈DSIn在索引DataInTaskIndex中不存在,则新建一个索引项(dataIn,TS1),将SW中消耗dataIn的每个任务节点task的ID标识taskID加入集合TS1中,若dataIn已存在,则直接SW中消耗dataIn的每个任务节点task的ID标识taskID加入TS1;遍历SW的输入数据对象集合DSIn、语义工作流库SWC,建立索引DataInTaskIndex;在保存索引DataInTaskIndex时,不直接存储(dataIn,TS1),而是将索引DataInTaskIndex存储为(dataIn.hashcode,TS1.pointer),其中dataIn.hashcode为数据对象dataIn的语义描述的哈希值,TS1.pointer指向任务节点集合TS1的存储位置;
数据-任务索引DataTaskIndex的检索方法为:对于查询数据对象qdataIn,若qdataIn在索引DataInTaskIndex中已存在,则直接返回qdataIn对应索引项的集合TS1;若qdataIn在索引中不存在,说明SWC中不存在输入数据对象集合包含qdataIn的任务节点,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdataIn的语义描述对应概念C的直接子概念C1,然后输入数据对象集合包含C1所指代数据对象的任务节点集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为TS1返回;
ii)索引DataOutTaskIndex的索引项形式为(dataOut,TS2),其中dataOut为语义工作流的输出数据对象(非中间数据对象),TS2的形式为{(task,SW)},为输出数据对象集包含dataOut的任务节点task及其所属语义工作流SW的集合;
索引DataOutTaskIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输出数据对象节点集合DSOut;然后,若dataOut∈DSOut在索引DataOutTaskIndex中不存在,则新建一个索引项(dataOut,TS2),将SW中生成dataOut的任务节点task的ID标识taskID加入集合TS2中,若dataOut已存在,则直接将SW中生成dataOut的任务节点task的ID标识taskID加入TS2;遍历集合DSOut、语义工作流库SWC,建立索引DataOutTaskIndex;在保存索引DataOutTaskIndex时,不直接存储(dataOut,S3),而是将DataOutTaskIndex存储为(dataOut.hashcode,TS2.pointer),其中dataOut.hashcode为数据对象dataOut的语义描述的哈希值,TS2.pointer指向任务节点集合TS2的存储位置;
索引DataOutTaskIndex的检索方法为:对于给定的查询数据对象qdataOut,若qdataOut在索引DataOutTaskIndex中已存在,则直接返回qdataOut对应索引项的集合TS2;若qdataOut在索引中不存在,说明SWC中不存在输出数据对象集合包含qdataOut的任务节点,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdataOut的语义描述对应概念C的直接子概念C1,然后获取输出数据对象集合包含C1所指代数据对象的任务节点集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为TS2返回;
2-4)两步路径索引Path2Index的索引项形式为(<task1,task2>,S4),其中<task1,task2>为任务节点task1,task2组成的两步路径“task1→task2”的序偶形式,S4为语义工作流对应的语义标注图的某一路径上包含此路径“task1→task2”的语义工作流集合;
两步路径索引Path2Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW对应语义标注图(忽略控制流节点)中的所有相邻任务节点对集合TA;然后,若ta∈TA在索引Path2Index中不存在,则先新建一个索引项(<task1,task2>,S4),将SW的ID加入集合S4,若ta已存在,则直接将SW的ID加入S4;遍历SW的集合TA,以及SWC中的所有语义工作流构建,构建索引Path2Index;在保存索引Path2Index时,在索引中不直接存储(<task1,task2>,S4),而是将索引Path2Index存储为(<task1,task2>.hashcode,S4.pointer),其中<task1,task2>.hashcode为两步路径<task1,task2>的语义描述的哈希值,S4.pointer指向语义工作流S4的存储位置;
两步路径索引Path2Index的检索方法为:对于查询相邻任务节点对<qtask1,qtask2>,若路径<qtask1,qtask2>在索引Path2Index中已存在,则直接返回<qtask1,qtask2>对应索引项的集合S4;若路径<qtask1,qtask2>不存在,说明在SWC中不存在包含路径<qtask1,qtask2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask1、qtask2的语义描述C1、C2的直接子概念的集合CS1、CS2,然后获取包含笛卡尔积CS1×CS2中的每个概念序偶(C3,C4)指代的任务节点两步路径的语义工作流集合,最后计算这些集合的并集作为S4返回;
3)构造语义工作流的行为特征索引SWBebavIndex及其检索方法,索引SWBebavIndex包括任务因果关系索引CasualIndex、任务互斥关系索引ExclusiveIndex、任务并行关系索引ParalellIndex和任务循环关系索引LoopIndex;
3-1)任务因果关系索引CasualIndex,索引项的形式为(<task1,task2>,S5),其中<task1,task2>为具有因果关系的任务节点task1,task2组成的序偶,S5为包含此序偶的语义工作流集合;
任务因果关系索引CasualIndex的构造方法:首先,对于语义工作流库SWC中的某语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务因果关系序偶集合TC,然后,若tc∈TC在索引CasualIndex中不存在,则先新建一个索引项(<task1,task2>,S5),将SW的ID加入集合S5中;若tc已存在,则直接将SW的ID加入S5;遍历SW的集合TC,语义工作流库SWC,建立索引CasualIndex,在保存索引CasualIndex时,在索引中不直接存储(<task1,task2>,S5),而是将索引CasualIndex存储为(<task1,task2>.hashcode,S5.pointer),其中<task1,task2>.hashcode为任务因果关系<task1,task2>的语义描述的哈希值,S5.pointer指向语义工作流集合S5的存储位置;
任务因果关系索引CasualIndex的检索方法为:对于查询任务因果关系<qtask1,qtask2>,若<qtask1,qtask2>在索引CasualIndex中已存在,则直接返回<qtask1,qtask2>对应索引项的集合S5,若<qtask1,qtask2>在索引中不存在,说明SWC中不存在包含因果任务节点对<qtask1,qtask2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask1、qtask2的语义描述C1、C2的直接子概念的集合CS1、CS2,然后获取包含笛卡尔积CS1×CS2中的每个概念序偶(C3,C4)指代的任务因果关系的语义工作流集合,最后计算这些集合的并集作为S5返回;
3-2)任务并行关系索引ParalellIndex,索引项的形式为(<task1,task2>,S6),其中<task1,task2>为具有并行关系的任务节点task1,task2组成的序偶,S6为包含此序偶的语义工作流集合;
任务并行关系索引ParalellIndex的构造方法为:首先,对于语义工作流库SWC中的语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务并行关系集合TP;然后,若tp∈TP在索引ParalellIndex中不存在,则先新建一个索引项(<task1,task2>,S6),将SW的ID加入集合S6中;若tp已存在,则直接将SW的ID加入S6;遍历SW的集合TP,语义工作流库SWC,建立索引ParalellIndex;在保存索引ParalellIndex时,不直接存储(<task1,task2>,S6),而是将索引ParalellIndex存储为(<task1,task2>.hashcode,S6.pointer),其中<task1,task2>.hashcode为任务并行关系<task1,task2>的语义描述的哈希值,S6.pointer指向语义工作流集合S6的存储位置;
任务并行关系索引ParalellIndex的检索方法为:对于查询任务并行关系<qtask1,qtask2>,若<qtask1,qtask2>在索引ParalellIndex中已存在,则直接返回<qtask1,qtask2>对应索引项的集合S6,若<qtask1,qtask2>在索引中不存在,说明SWC中不存在包含并行任务节点对<qtask1,qtask2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask1、qtask2的语义描述C1、C2的直接子概念的集合CS1、CS2,然后获取包含笛卡尔积CS1×CS2中的每个概念序偶(C3,C4)指代的任务并行关系的语义工作流集合,最后计算这些集合的并集作为S6返回;
3-3)任务互斥关系索引ExclusiveIndex,索引项的形式为(<task1,task2>,S7),其中<task1,task2>为具有互斥关系的任务节点task1,task2组成的序偶,S7为包含此序偶的语义工作流集合;
任务互斥关系索引ExclusiveIndex的构造方法为:首先,对于语义工作流库SWC中的某语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务互斥关系集合TE;然后,若te∈TE在索引ExclusiveIndex中不存在,则先新建一个索引项(<task1,task2>,S7),将SW的ID加入集合S7中,若te已存在,则直接将SW的ID加入S7;遍历SW的集合TE,语义工作流库SWC,建立索引ExclusiveIndex;在保存索引ExclusiveIndex时,不直接存储(<task1,task2>,S7),而是将索引ExclusiveIndex存储为(<task1,task2>.hashcode,S7.pointer),其中<task1,task2>.hashcode为任务互斥关系<task1,task2>的语义描述的哈希值,S7.pointer指向语义工作流集合S7的存储位置;
任务互斥关系索引ExclusiveIndex的检索方法为:对于查询任务互斥关系<qtask1,qtask2>,若<qtask1,qtask2>在索引ExclusiveIndex中已存在,则直接返回<qtask1,qtask2>对应索引项的集合S7,若<qtask1,qtask2>在索引中不存在,说明SWC中不存在包含互斥任务节点对<qtask1,qtask2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask1、qtask2的语义描述C1、C2的直接子概念的集合CS1、CS2,然后获取包含笛卡尔积CS1×CS2中的每个概念序偶(C3,C4)指代的任务互斥关系的语义工作流集合,最后计算这些集合的并集作为S7返回;
3-4)任务循环关系索引LoopIndex,索引项的形式为(<task1,task2>,S8),其中<task1,task2>为具有循环关系的任务节点task1,task2组成的序偶,S8为包含此序偶的语义工作流集合;
任务循环关系索引LoopIndex的构造方法为:首先,对于语义工作流库SWC中的语义工作流SW,使用完全前缀展开法、最近公共前驱法和循环结构判断法计算SW的任务循环关系集合TL;然后,若tl∈TL在索引LoopIndex中不存在,则先新建一个索引项(<task1,task2>,S8),将SW的ID加入集合S8中,若tl已存在,则直接将SW的ID加入S8;遍历SW的集合TL,语义工作流库SWC,建立索引LoopIndex;在保存索引LoopIndex时,不直接存储(<task1,task2>,S8),而是将索引LoopIndex存储为(<task1,task2>.hashcode,S8.pointer),其中<task1,task2>.hashcode为任务循环关系<task1,task2>的语义描述的哈希值,S8.pointer指向语义工作流集合S8的存储位置;
任务循环关系索引LoopIndex的检索方法为:对于查询任务循环关系<qtask1,qtask2>,若<qtask1,qtask2>在索引LoopIndex中已存在,则直接返回<qtask1,qtask2>对应索引项的集合S8;若<qtask1,qtask2>在索引中不存在,说明SWC中不存在包含循环任务节点对<qtask1,qtask2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask1、qtask2的语义描述C1、C2的直接子概念的集合CS1、CS2,然后获取包含笛卡尔积CS1×CS2中的每个概念序偶(C3,C4)指代的任务循环关系的语义工作流集合,最后计算这些集合的并集作为S8返回;
4)当与控制流、数据流相关的多个查询条件组合时,检索方法为:首先,执行满足控制流或数据流相关的每个查询条件的语义工作流或任务集合检索任务;然后,计算所有查询结果集的交集作为最终结果集返回;
5)更新语义工作流的结构和行为特征索引:当一个新语义工作流加入语义工作流库SWC时,结构特征索引SWStructIndex和行为特征索引SWBebavIndex均可以增量构造;当从语义工作流库中删除某语义工作流时,可以先记录该工作流,待被删除的语义工作流达到设定数量后,一次性将它们涉及的索引项删除,并更新。
有益效果:本发明提供了一种基于领域本体的语义工作流索引构建和检索方法,该方法有如下优点:
1.能够为用户提供满足控制流、数据流或二者组合的多种类型查询条件的语义工作流或任务检索功能;
2.利用引入的领域本体,能够为用户提供基于语义相似性近似匹配查询条件的语义工作流或任务检索功能;
3.提高了语义工作流的检索速度和准确率,为语义工作流重用提供了良好的支持;
4.为高效地组织和管理语义工作流库提供了理论依据。
附图说明
图1为语义工作流索引的构造流程图;
图2为语义工作流索引SWIndex的结构图;
图3为语义工作流SW1;
图4为语义工作流SW2;
图5为语义工作流SW3;
图6为语义工作流SW4;
图7为语义工作流SW5;
图8为领域任务本体TaskOnto;
图9为领域数据本体DataOnto。
具体实施方式
下面结合附图和实施例对本发明内容做进一步阐述,但不是对本发明的限定。
实施例1:
下面以烹饪领域的5个语义工作流组成的语义工作流库SWC1为例,5个语义工作流SW1、SW2、SW3、SW4和SW5的示意图分别如图3—图7所示。一种基于领域本体的语义工作流索引构建和检索方法,如图1所示,语义工作流索引SWIndex的结构如图2所示,包括如下步骤:
1)构建如图8所示的烹饪领域的任务本体TaskOnto、如图9所示的数据本体DataOnto;SWC1中工作流的任务节点的语义描述来自于TaskOnto中的概念,数据对象节点的语义描述来自于DataOnto中的概念;在说明书中,暂以任务节点的语义描述指代该节点,数据对象节点的语义描述指代该节点;
2)建立语义工作流库SWC1的一步路径索引Path1Index,以语义工作流SW1中的任务节点“Saute”为例,显然SW1,SW4中都包含任务节点“Saute”,则建立索引项:(“Saute”,{SW1,SW4});再以语义工作流SW1中的任务节点“Sprinkle”为例,显然SW1,SW2,SW3,SW4,SW5均包含任务节点“Sprinkle”,则建立索引项:(“Sprinkle”,{SW1,SW2,SW3,SW4,SW5}),使用同样的方法建立其他索引项。
检索示例:如果要在SWC1中检索包含任务节点“Saute”的语义工作流,由于在Path1Index中存在“Saute”的索引项,则直接返回索引项中的集合{SW1,SW4}。如果要检索包含任务节点“Fry”的语义工作流,由于在Path1Index中不存在“Fry”的索引项,则可以返回“Fry”在任务本体中的子节点“Saute”的索引项中的语义工作流集合{SW1,SW4},作为近似结果集提供给用户。
3)建立语义工作流库SWC1的数据-工作流索引DataInIndex和DataOutIndex,首先构造DataInIndex,以语义工作流SW2中的数据对象“Salt”为例,显然SW2,SW5中包含此数据对象,则建立DataInIndex的索引项:(“Salt”,{SW2,SW5}),使用同样的方法可建立其他索引项;然后构造DataOutIndex,以语义工作流SW1中的数据对象“Fettuccine_pasta”为例,显然只有SW1包含此数据对象,则建立DataOutIndex的索引项:(“Fettuccine_pasta”,{SW1}),使用同样的方法可建立其他索引项。
检索示例:如果要在SWC1中检索包含输入数据对象“Salt”的语义工作流,由于在DataInIndex中存在“Salt”的索引项,则直接返回索引项中的集合{SW2,SW5}。如果要检索包含输入数据对象“Oil”的语义工作流,由于在DataInIndex中不存在“Oil”的索引项,则可以返回“Oil”在领域数据本体中的子节点“Salad_oil”的索引项中的集合{SW2,SW5},作为近似结果集。
如果要在SWC1中检索包含输出数据对象“Lasagna_pasta”的语义工作流,由于在DataOutIndex中存在“Lasagna_pasta”的索引项,则直接返回索引项中的语义工作流集合{SW2,SW5}。
4)建立语义工作流库SWC1的数据-任务索引DataInTaskIndex和DataOutTaskIndex,首先构造DataInTaskIndex,以语义工作流SW2中的数据对象“Salt”为例,显然SW2中的任务节点“Toss”,SW5中的任务节点“Toss”包含数据对象“Salt”。则建立DataInTaskIndex的索引项:(“Salt”,{(“Toss”,SW2),(“Toss”,SW5)}),使用同样的方法可建立其他索引项;然后构造DataOutTaskIndex,以语义工作流SW1中的数据对象“Fettuccine_pasta”为例,显然只有SW1的任务节点“Toss”和“Sprinkle”包含此数据对象。则DataOutIndex的索引项:(“Fettuccine_pasta”,{(“Toss”,SW1),(“Sprinkle”,SW1)}),使用同样的方法可建立其他索引项。
检索示例:如果要在SWC1中检索包含输入数据对象“Salt”的语义工作流,由于在DataInTaskIndex中存在“Salt”的索引项,则直接返回索引项中的集合{(“Toss”,SW2),(“Toss”,SW5)},再从中抽取出语义工作流集合{SW2,SW5}。
DataOutTaskIndex索引的检索方法类似,此处省略。
5)建立语义工作流库SWC1的两步路径索引Path2Index,以语义工作流SW1中的路径“Cook”→“Stir”为例,显然SW1只有包含此路径,则Path2Index的索引项:(<“Cook”,“Stir”>,{SW1}),使用同样的方法可建立其他索引项;以语义工作流SW2中的路径“Sprinkle”→“Bake”为例,显然SW2,SW3,SW4,SW5包含此路径,则Path2Index的索引项:(<“Sprinkle”,“Bake”>,{SW2,SW3,SW4,SW5})。
检索示例:如果要在SWC1中检索包含路径“Sprinkle”→“Bake”的语义工作流,由于在Path2Index中存在“Sprinkle”→“Bake”的索引项,则直接返回索引项中的集合{SW2,SW3,SW4,SW5}。如果要在SWC1中检索包含路径“Saute”→“Gather”的语义工作流,由于在Path2Index中不存在“Saute”→“Gather”的索引项,则可以用“Gather”在领域任务本体中的子节点“Add”来代替“Gather”,返回“Saute”→“Add”的索引项中的集合{SW1,SW4},作为近似结果集。
6)建立语义工作流库SWC1的任务因果关系索引CasualIndex,以语义工作流SW4中的任务因果关系<“Grate”,“Mix”>为例,显然SW4中包含此因果关系,则建立索引项:(<“Grate”,“Mix”>,{SW4})。使用同样的方法建立其他索引项。
检索示例:如果要在SWC1中检索包含任务因果关系<“Grate”,“Mix”>的语义工作流,由于在CasualIndex中存在任务因果关系<“Grate”,“Mix”>的索引项,则直接返回索引项中的集合{SW4}。如果要在SWC1中检索包含任务因果关系<“Saute”,“Gather”>的语义工作流,由于在CasualIndex中不存在<“Saute”,“Gather”>的索引项,则可以用“Gather”在任务本体中的子节点“Add”来代替“Gather”。返回<“Saute”,“Add”>的索引项中的集合{SW1,SW4},作为近似结果集。
7)建立语义工作流库SWC1的任务并行关系索引ParalellIndex,以语义工作流SW2中的任务并行关系<“Grate”,“Cook”>为例,显然SW2中包含此因果关系,则ParalellIndex的索引项:(<“Grate”,“Cook”>,{SW2});使用同样的方法建立其他索引项。
检索示例:如果要在SWC1中检索包含任务并行关系<“Simmer”,“Mix”>的语义工作流,由于在ParalellIndex中存在<“Simmer”,“Mix”>的索引项,则直接返回索引项中的集合{SW4}。
8)建立语义工作流库SWC1的任务互斥关系索引ExclusiveIndex,以语义工作流SW3中的任务互斥关系<“Boil”,“Heat”>为例,显然SW3中包含此互斥关系,则ExclusiveIndex的索引项:(<“Boil”,“Heat”>,{SW3})。使用同样的方法建立其他索引项。
检索示例:如果要在SWC1中检索包含任务互斥关系<“Boil”,“Heat”>的语义工作流,由于在ExclusiveIndex中存在<“Boil”,“Heat”>的索引项,则直接返回索引项中的集合{SW3}。
9)建立语义工作流库SWC1的任务循环关系索引LoopIndex,以语义工作流SW5中的任务循环关系<“Arrange”,“Top”>为例,显然SW5中包含此任务循环关系,则建立LoopIndex的索引项:(<“Arrange”,“Top”>,{SW5})。使用同样的方法建立其他索引项。
检索示例:如果要在SWC1中检索包含任务循环关系<“Arrange”,“Top”>的语义工作流,由于在LoopIndex中存在<“Arrange”,“Top”>的索引项,则直接返回索引项中的集合{SW5}。
10)检索示例:如果要在SWC1中检索包含任务节点“Sprinkle”和输入数据对象“Spaghetti”的语义工作流,则由于Path1Index存在索引项:(“Sprinkle”,{SW1,SW2,SW3,SW4,SW5}),易得包含任务节点“Sprinkle”的语义工作流集合A1={SW1,SW2,SW3,SW4,SW5};由于DataInInde x存在索引项:(“Spaghetti”,{SW4}),易得包含输入数据对象“Spaghetti”的语义工作流集合A2={SW4};由以上可得满足原检索要求的语义工作流集合A3=A1∩A2={SW1,SW2,SW3,SW4,SW5}∩{SW4}={SW4}。
检索示例:如果要在SWC1中检索包含任务因果关系<“Saute”,“Gather”>和输入数据对象“Fettuccine”的语义工作流,则由于在CasualIndex中不存在<“Saute”,“Gather”>的索引项,则可用“Gather”在任务本体中的子节点“Add”来代替“Gather”,于是返回包含任务因果关系<“Saute”,“Add”>的索引项中的语义工作流集合A4={SW1,SW4}作为近似结果集。由于DataInIndex中存在索引项:(“Fettuccine”,{SW1}),易得包含输入数据对象“Fettuccine”的语义工作流集合A5={SW1};由以上可得满足原检索要求的语义工作流的近似集合A6=A4∩A5={SW1,SW4}∩{SW1}={SW1}。
Claims (2)
1.一种基于领域本体的语义工作流索引构造及检索方法,其特征在于,包括如下步骤:
1)建立语义工作流的领域任务本体和领域数据本体;
2)构造语义工作流的结构特征索引SWStructIndex及其检索方法,索引SWStructIndex包括一步路径索引Path1Index、数据-工作流索引DataIndex、数据-任务索引DataTaskIndex和两步路径索引Path2Index;
3)构造语义工作流的行为特征索引SWBebavIndex及其检索方法,索引SWBebavIndex包括任务因果关系索引CasualIndex、任务互斥关系索引ExclusiveIndex、任务并行关系索引ParalellIndex和任务循环关系索引LoopIndex;
4)当与控制流、数据流相关的多个查询条件组合时,检索方法为:首先,执行满足控制流或数据流相关的每个查询条件的语义工作流或任务集合检索任务;然后,计算所有查询结果集的交集作为最终结果集返回;
5)更新语义工作流的结构和行为特征索引:当一个新语义工作流加入语义工作流库时,结构特征索引SWStructIndex和行为特征索引SWBebavIndex均可以增量构造;当从语义工作流库中删除语义工作流时,先记录该工作流,待被删除的语义工作流达到设定数量后,一次将它们涉及的索引项删除或更新;
步骤2)中,所述的一步路径索引Path1Index,索引项的形式为(task,S1),其中task为任务节点,S1为包含task的语义工作流集合;
一步路径索引Path1Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的任务节点集合TS;然后,若某任务节点task∈TS在索引Path1Index中不存在,则先新建一个索引项(task,S1),将SW的ID加入集合S1中;若task已存在,则直接将SW的ID加入task对应索引项的集合S1中;遍历SW的任务节点集合TS、语义工作流库SWC,建立索引Path1Index;将索引Path1Index存储为(task.hashcode,S1.pointer),其中task.hashcode为一步路径或任务节点task的语义描述的哈希值,S1.pointer指向语义工作流集合S1的存储位置;
一步路径索引Path1Index的检索方法为:对于给定的查询任务节点qtask,若qtask在索引Path1Index中已存在,则直接返回qtask对应索引项的集合S1;若qtask在索引中不存在,说明在语义工作流库SWC中不存在包含qtask的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中查询qtask的语义描述对应概念C的直接子概念C1,然后获取包含C1对应任务节点的语义工作流集合,遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S1返回;
所述的数据-工作流索引DataIndex,包括输入数据-工作流索引DataInIndex和输出数据-工作流索引DataOutIndex两种;
i)输入数据-工作流索引DataInIndex的索引项形式为(dataIn,S2),其中dataIn为语义工作流的输入数据对象,S2为输入数据对象集合包含dataIn的语义工作流集合;
输入数据-工作流索引DataInIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输入数据对象集合DSIn;然后,若dataIn∈DSIn在索引DataInIndex中不存在,则新建一个索引项(dataIn,S2),将SW的ID加入集合S2中,若dataIn已存在,则直接将SW的ID加入S2,遍历SW的输入数据对象集合DSIn、语义工作流库SWC,建立索引DataInIndex;将索引DataInIndex存储为(dataIn.hashcode,S2.pointer),其中dataIn.hashcode为数据对象dataIn的语义描述的哈希值,S2.pointer指向语义工作流集合S2的存储位置;
输入数据-工作流索引DataInIndex的检索方法为:对于给定的查询数据节点qdataIn,若qdataIn在索引DataInIndex中已存在,则直接返回qdataIn对应索引项的集合S2;若qdataIn在索引中不存在,说明SWC中不存在输入数据对象集合包含qdataIn的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdataIn的语义描述对应概念C的直接子概念C1,然后获取输入数据对象集合包含C1对应任务节点的语义工作流集合,遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S2返回;
ii)输出数据-工作流索引DataOutIndex的索引项形式为(dataOut,S3),其中dataOut为语义工作流的输出数据对象,S3为输出数据对象集合包含dataOut的语义工作流集合;
输出数据-工作流索引DataOutIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输出数据对象节点集合DSOut;然后,若dataOut∈DSOut在索引DataOutIndex中不存在,则新建一个索引项(dataOut,S3),将SW的ID加入集合S3中,若dataOut已存在,则直接将SW的ID加入S3;遍历集合DSOut、语义工作流库SWC,建立索引DataOutIndex;将索引DataOutIndex存储为(dataOut.hashcode,S3.pointer),其中dataOut.hashcode为数据对象dataOut的语义描述的哈希值,S3.pointer指向语义工作流集合S3的存储位置;
输出数据-工作流索引DataOutIndex的检索方法为:对于给定的查询数据节点qdataOut,若qdataOut在索引DataOutIndex中已存在,则直接返回qdataOut对应索引项的集合S3;若qdataOut在索引中不存在,说明SWC中不存在输出数据对象集合包含qdataOut的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdataOut的语义描述对应概念C的直接子概念C1,获取输出数据对象集合包含C1对应任务节点的语义工作流集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为S3返回;
所述的数据-任务索引DataTaskIndex,包括输入数据-任务索引DataInTaskIndex和输出数据-任务索引DataOutTaskIndex两种;
i)索引DataInTaskIndex的索引项形式为(dataIn,TS1),其中dataIn为语义工作流的输入数据对象,TS1的形式为{(task,SW)},为输入数据对象集合包含dataIn的任务节点task及其所属语义工作流SW的集合;
数据-任务索引DataTaskIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输入数据对象集合DSIn;然后,若dataIn∈DSIn在索引DataInTaskIndex中不存在,则新建一个索引项(dataIn,TS1),将SW中消耗dataIn的每个任务节点task的ID标识taskID加入集合TS1中,若dataIn已存在,则直接SW中消耗dataIn的每个任务节点task的ID标识taskID加入TS1;遍历SW的输入数据对象集合DSIn、语义工作流库SWC,建立索引DataInTaskIndex;将索引DataInTaskIndex存储为(dataIn.hashcode,TS1.pointer),其中dataIn.hashcode为数据对象dataIn的语义描述的哈希值,TS1.pointer指向任务节点集合TS1的存储位置;
数据-任务索引DataTaskIndex的检索方法为:对于查询数据对象qdataIn,若qdataIn在索引DataInTaskIndex中已存在,则直接返回qdataIn对应索引项的任务节点集合TS1;若qdataIn在索引中不存在,说明SWC中不存在输入数据对象集合包含qdataIn的任务节点,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdataIn的语义描述对应概念C的直接子概念C1,然后获取输入数据对象集合包含C1所指代数据对象的任务节点集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为TS1返回;
ii)索引DataOutTaskIndex的索引项形式为(dataOut,TS2),其中dataOut为语义工作流的输出数据对象,TS2的形式为{(task,SW)},为输出数据对象集包含dataOut的任务节点task及其所属语义工作流SW的集合;
索引DataOutTaskIndex的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW的输出数据对象节点集合DSOut;然后,若dataOut∈DSOut在索引DataOutTaskIndex中不存在,则新建一个索引项(dataOut,TS2),将SW中生成dataOut的任务节点task的ID标识taskID加入集合TS2中,若dataOut已存在,则直接将SW中生成dataOut的任务节点task的ID标识taskID加入TS2;遍历集合DSOut、语义工作流库SWC,建立索引DataOutTaskIndex;将索引DataOutTaskIndex存储为(dataOut.hashcode,TS2.pointer),其中dataOut.hashcode为数据对象dataOut的语义描述的哈希值,TS2.pointer指向任务节点集合TS2的存储位置;
索引DataOutTaskIndex的检索方法为:对于给定的查询数据对象qdataOut,若qdataOut在索引DataOutTaskIndex中已存在,则直接返回qdataOut对应索引项的任务节点集合TS2;若qdataOut在索引中不存在,说明SWC中不存在输出数据对象集合包含qdataOut的任务节点,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域数据本体中查询qdataOut的语义描述对应概念C的直接子概念C1,然后获取输出数据对象集合包含C1所指代数据对象的任务节点集合;遍历概念C的所有直接子概念得到多个这样的集合,最后计算这些集合的并集作为TS2返回;
所述的两步路径索引Path2Index,索引项形式为(<task1,task2>,S4),其中<task1,task2>为任务节点task1,task2组成的两步路径“task1→task2”的序偶形式,S4为语义工作流对应的语义标注图的某一路径上包含路径“task1→task2”的语义工作流集合;
两步路径索引Path2Index的构造方法为:首先,获取语义工作流库SWC中某语义工作流SW对应语义标注图中的所有相邻任务节点对集合TA,然后,若ta∈TA在索引Path2Index中不存在,则先新建一个索引项(<task1,task2>,S4),将SW的ID加入集合S4,若ta已存在,则直接将SW的ID加入S4;遍历SW的集合TA,以及SWC中的所有语义工作流,构建索引Path2Index;将索引Path2Index存储为(<task1,task2>.hashcode,S4.pointer),其中<task1,task2>.hashcode为两步路径<task1,task2>的语义描述的哈希值,S4.pointer指向语义工作流S4的存储位置;
两步路径索引Path2Index的检索方法为:对于查询相邻任务节点对<qtask1,qtask2>,若路径<qtask1,qtask2>在索引Path2Index中已存在,则直接返回<qtask1,qtask2>对应索引项的集合S4;若路径<qtask1,qtask2>不存在,说明在SWC中不存在包含路径<qtask1,qtask2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask1、qtask2的语义描述C1、C2的直接子概念的集合CS1、CS2,然后获取包含笛卡尔积CS1×CS2中的每个概念序偶(C3,C4)指代的任务节点两步路径的语义工作流集合,最后计算这些集合的并集作为S4返回;
步骤3)中,所述的任务因果关系索引CasualIndex,索引项的形式为(<task1,task2>,S5),其中<task1,task2>为具有因果关系的任务节点task1,task2组成的序偶,S5为包含此序偶的语义工作流集合;
任务因果关系索引CasualIndex的构造方法:首先,对于语义工作流库SWC中的某语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务因果关系序偶集合TC,然后,若tc∈TC在索引CasualIndex中不存在,则先新建一个索引项(<task1,task2>,S5),将SW的ID加入集合S5中;若tc已存在,则直接将SW的ID加入S5;遍历SW的集合TC,语义工作流库SWC,建立索引CasualIndex,将索引CasualIndex存储为(<task1,task2>.hashcode,S5.pointer),其中<task1,task2>.hashcode为任务因果关系<task1,task2>的语义描述的哈希值,S5.pointer指向语义工作流集合S5的存储位置;
任务因果关系索引CasualIndex的检索方法为:对于查询任务因果关系<qtask1,qtask2>,若<qtask1,qtask2>在索引CasualIndex中已存在,则直接返回<qtask1,qtask2>对应索引项的集合S5,若<qtask1,qtask2>在索引中不存在,说明SWC中不存在包含因果任务节点对<qtask1,qtask2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask1、qtask2的语义描述C1、C2的直接子概念的集合CS1、CS2,然后获取包含笛卡尔积CS1×CS2中的每个概念序偶(C3,C4)指代的任务因果关系的语义工作流集合,最后计算这些集合的并集作为S5返回;
所述的任务并行关系索引ParalellIndex,索引项的形式为(<task1,task2>,S6),其中<task1,task2>为具有并行关系的任务节点task1,task2组成的序偶,S6为包含此序偶的语义工作流集合;
任务并行关系索引ParalellIndex的构造方法为:首先,对于语义工作流库SWC中的语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务并行关系集合TP;然后,若tp∈TP在索引ParalellIndex中不存在,则先新建一个索引项(<task1,task2>,S6),将SW的ID加入集合S6中;若tp已存在,则直接将SW的ID加入S6;遍历SW的集合TP,语义工作流库SWC,建立索引ParalellIndex;将索引ParalellIndex存储为(<task1,task2>.hashcode,S6.pointer),其中<task1,task2>.hashcode为任务并行关系<task1,task2>的语义描述的哈希值,S6.pointer指向语义工作流集合S6的存储位置;
任务并行关系索引ParalellIndex的检索方法为:对于查询任务并行关系<qtask1,qtask2>,若<qtask1,qtask2>在索引ParalellIndex中已存在,则直接返回<qtask1,qtask2>对应索引项的集合S6,若<qtask1,qtask2>在索引中不存在,说明SWC中不存在包含并行任务节点对<qtask1,qtask2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask1、qtask2的语义描述C1、C2的直接子概念的集合CS1、CS2,然后获取包含笛卡尔积CS1×CS2中的每个概念序偶(C3,C4)指代的任务并行关系的语义工作流集合,最后计算这些集合的并集作为S6返回;
所述的任务互斥关系索引ExclusiveIndex,索引项的形式为(<task1,task2>,S7),其中<task1,task2>为具有互斥关系的任务节点task1,task2组成的序偶,S7为包含此序偶的语义工作流集合;
任务互斥关系索引ExclusiveIndex的构造方法为:首先,对于语义工作流库SWC中的某语义工作流SW,使用完全前缀展开法和最近公共前驱法计算SW的任务互斥关系集合TE;然后,若te∈TE在索引ExclusiveIndex中不存在,则先新建一个索引项(<task1,task2>,S7),将SW的ID加入集合S7中,若te已存在,则直接将SW的ID加入S7;遍历SW的集合TE,语义工作流库SWC,建立索引ExclusiveIndex;将索引ExclusiveIndex存储为(<task1,task2>.hashcode,S7.pointer),其中<task1,task2>.hashcode为任务互斥关系<task1,task2>的语义描述的哈希值,S7.pointer指向语义工作流集合S7的存储位置;
任务互斥关系索引ExclusiveIndex的检索方法为:对于查询任务互斥关系<qtask1,qtask2>,若<qtask1,qtask2>在索引ExclusiveIndex中已存在,则直接返回<qtask1,qtask2>对应索引项的集合S7,若<qtask1,qtask2>在索引中不存在,说明SWC中不存在包含互斥任务节点对<qtask1,qtask2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask1、qtask2的语义描述C1、C2的直接子概念的集合CS1、CS2,然后获取包含笛卡尔积CS1×CS2中的每个概念序偶(C3,C4)指代的任务互斥关系的语义工作流集合,最后计算这些集合的并集作为S7返回;
所述的任务循环关系索引LoopIndex,索引项的形式为(<task1,task2>,S8),其中<task1,task2>为具有循环关系的任务节点task1,task2组成的序偶,S8为包含此序偶的语义工作流集合;
任务循环关系索引LoopIndex的构造方法为:首先,对于语义工作流库SWC中的语义工作流SW,使用完全前缀展开法、最近公共前驱法和循环结构判断法计算SW的任务循环关系集合TL;然后,若tl∈TL在索引LoopIndex中不存在,则先新建一个索引项(<task1,task2>,S8),将SW的ID加入集合S8中,若tl已存在,则直接将SW的ID加入S8;遍历SW的集合TL,语义工作流库SWC,建立索引LoopIndex;将索引LoopIndex存储为(<task1,task2>.hashcode,S8.pointer),其中<task1,task2>.hashcode为任务循环关系<task1,task2>的语义描述的哈希值,S8.pointer指向语义工作流集合S8的存储位置;
任务循环关系索引LoopIndex的检索方法为:对于查询任务循环关系<qtask1,qtask2>,若<qtask1,qtask2>在索引LoopIndex中已存在,则直接返回<qtask1,qtask2>对应索引项的集合S8;若<qtask1,qtask2>在索引中不存在,说明SWC中不存在包含循环任务节点对<qtask1,qtask2>的语义工作流,则基于本体中父子概念间的较高语义相似性,使用子概念代替父概念;先在领域任务本体中分别获取qtask1、qtask2的语义描述C1、C2的直接子概念的集合CS1、CS2,然后获取包含笛卡尔积CS1×CS2中的每个概念序偶(C3,C4)指代的任务循环关系的语义工作流集合,最后计算这些集合的并集作为S8返回。
2.根据权利要求1所述的一种基于领域本体的语义工作流索引构造及检索方法,其特征在于,步骤1)中,具体是将语义工作流库中的语义工作流任务节点的语义描述看作与任务相关的概念,利用概念间的包含关系,构建任务本体的层次结构,建立领域任务本体;将语义工作流的数据对象节点的语义描述看作与数据对象相关的概念,利用概念间的包含关系,构建数据本体的层次结构,建立领域数据本体。
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 CN110457490A (zh) | 2019-11-15 |
CN110457490B true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112529543A (zh) * | 2020-12-28 | 2021-03-19 | 平安普惠企业管理有限公司 | 工作流互斥关系的校验方法、装置、设备及存储介质 |
CN112765314B (zh) * | 2020-12-31 | 2023-08-18 | 广东电网有限责任公司 | 一种基于电力本体知识库的电力信息检索方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957936A (zh) * | 2009-07-15 | 2011-01-26 | 深圳市艾派应用系统有限公司 | 一种工作流表单实现方法和系统 |
CN102081668A (zh) * | 2011-01-24 | 2011-06-01 | 熊晶 | 基于领域本体的信息检索优化方法 |
CN110119268A (zh) * | 2019-05-21 | 2019-08-13 | 成都派沃特科技股份有限公司 | 基于人工智能的工作流优化方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8037003B2 (en) * | 2006-01-30 | 2011-10-11 | Xerox Corporation | Solution recommendation based on incomplete data sets |
US9471665B2 (en) * | 2014-08-01 | 2016-10-18 | Ncino, Inc. | Unified system for real-time coordination of content-object action items across devices |
US10430418B2 (en) * | 2013-05-29 | 2019-10-01 | Microsoft Technology Licensing, Llc | Context-based actions from a source application |
CN109327321B (zh) * | 2017-08-01 | 2021-10-15 | 中兴通讯股份有限公司 | 网络模型业务执行方法、装置、sdn控制器及可读存储介质 |
-
2019
- 2019-08-15 CN CN201910754733.7A patent/CN110457490B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957936A (zh) * | 2009-07-15 | 2011-01-26 | 深圳市艾派应用系统有限公司 | 一种工作流表单实现方法和系统 |
CN102081668A (zh) * | 2011-01-24 | 2011-06-01 | 熊晶 | 基于领域本体的信息检索优化方法 |
CN110119268A (zh) * | 2019-05-21 | 2019-08-13 | 成都派沃特科技股份有限公司 | 基于人工智能的工作流优化方法 |
Non-Patent Citations (6)
Title |
---|
"A Behavioral Similarity Metric for Semantic Workflows Based on Semantic Task Adjacency Relations With Importance ";JINYONG SUN 等;《IEEE Access》;20170727;第5卷;第15609-15618页 * |
"Measuring Semantic and Structural Information for Data Oriented Workflow Retrieval with Cost Constraints";Yinglong Ma 等;《http://dx.doi.org/10.1155/2014/407809》;20140623;第1-9页 * |
"基于事例推理及行为特征的语义工作流重用研究";孙晋永;《中国博士学位论文全文数据库信息科技辑》;20190115(第01期);摘要,第3.3.3节,图3.18、3.19,第四章、第六章 * |
"基于行为和结构特征的相似语义工作流检索";孙晋永 等;《计算机研究与发展》;20170915;第54卷(第9期);第1880-1891页 * |
"基于行为特征的语义工作流修正算法";孙晋永 等;《软件学报》;20171206;第29卷(第11期);第3260-3277页 * |
"用于面向过程的基于实例推理的语义工作流相似性算法";孙晋永 等;《计算机集成制造系统》;20160215;第22卷(第2期);第381-394页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110457490A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | MMKG: multi-modal knowledge graphs | |
Rodriguez et al. | Constructions from dots and lines | |
Junghanns et al. | Management and analysis of big graph data: current systems and open challenges | |
CN104346377B (zh) | 一种基于唯一标识的数据集成和交换方法 | |
US8756237B2 (en) | Scalable distributed processing of RDF data | |
CN105630881B (zh) | 一种rdf的数据存储方法和查询方法 | |
CN1858737B (zh) | 一种数据搜索的方法和系统 | |
CN104809190B (zh) | 一种树形结构数据的数据库存取方法 | |
CN103646032A (zh) | 一种基于本体和受限自然语言处理的数据库查询方法 | |
CN110457490B (zh) | 一种基于领域本体的语义工作流索引构造及检索方法 | |
CN107391502A (zh) | 时间间隔的数据查询方法、装置及索引构建方法、装置 | |
CN102541631A (zh) | 以多线程不同驱动源执行计划处理查询的方法和系统 | |
CN104137095A (zh) | 用于演进分析的系统 | |
Liu et al. | Keyword search on temporal graphs | |
Yan et al. | FNet: An index for advanced business process querying | |
Pan et al. | Exploiting tractable fuzzy and crisp reasoning in ontology applications | |
Chakraborty et al. | Semantic etl—State-of-the-art and open research challenges | |
Cedeno et al. | R2DF framework for ranked path queries over weighted RDF graphs | |
Li et al. | Adaptation rule learning for case‐based reasoning | |
Song et al. | Mining multi-relational high utility itemsets from star schemas | |
CN115309789B (zh) | 一种基于业务对象智能动态化实时生成关联数据图的方法 | |
CN101968747B (zh) | 一种机群应用管理系统及其应用管理方法 | |
Hoang et al. | Dashboard by-example: A hypergraph-based approach to on-demand data warehousing systems | |
Berkani et al. | ETL-aware materialized view selection in semantic data stream warehouses | |
Shahzad et al. | Towards goal-driven access to process warehouse: Integrating goals with process warehouse for business process analysis |
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 |