一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

验证和推荐引擎的制作方法

2022-03-18 12:05:25 来源:中国专利 TAG:
本申请要求2019年7月30日提交的美国临时申请号62/880,358的权益。上述美国临时申请(包括其任何附录或附件)据此全文以引用方式并入本文。本申请还要求2019年11月25日提交的美国专利申请号16/694,910的权益,该申请据此以引用方式并入本文。
背景技术

技术领域
:本发明的实施方案总体涉及计算机科学,并且更具体地涉及验证和推荐引擎。相关技术的描述从桌面软件应用到基于云的软件应用的转变已经改变了许多软件应用的设计和体系结构。历史上,基于桌面的软件应用被设计成包含这些软件应用在单个装置上正确且有效运行所必需的从显示到数据处置和处理的所有功能要求。相比之下,基于云的软件应用通常被设计为被配置为可在基于云的或分布式计算平台上容易地部署和实现的服务的功能集合。为了在分布式环境内有效运行,基于云的软件应用通常使用面向服务的体系结构(SOA)来构建,并且依赖于衍生服务或代理来执行所有非核心功能。在大多数实现中,用户通过基于浏览器的用户界面或与连接到分布式计算平台内提供几乎无限的存储和计算能力的后端机器的轻量桌面界面软件相关联的用户界面来访问基于云的软件应用。与单片桌面体系结构不同,基于云的实现需要可靠的进程间通信和数据集成才能正确运转。数据集成需要在多个计算系统上具有很强的数据一致性,而数据验证是保持这种一致性的核心。例如,当基于云的或分布式计算平台内的后端机器的任务是执行基于云的软件应用的一系列计算密集型操作(诸如一系列复杂的模拟操作)时,确保这些操作的输入数据一致且有效(即有用且没有错误)对于模拟的正确执行是关键的。如果输入数据以某种方式不一致或无效,则后端机器可消耗大量计算资源以生成潜在无意义的结果或甚至完全失败。例如,结构问题的边界条件可描述已知超过特定结构构件所考虑的各种材料强度的力。如果没有一种稳健的方式来验证与那些边界条件和所考虑的各种材料的强度相关的数据,则结构问题求解器不能可靠地生成一系列有效的解决方案,其中正确的解决方案将涉及具有适当强度的材料。在许多情况下,执行更复杂的软件应用所需的输入数据本身可能是复杂的。例如,用于流体分析软件应用的输入数据包括各种数据子集,诸如三维网格的完整几何定义、初始流体流动条件、具体边界条件、分析参数等等。每个数据子集可包括特定于该特定类型的数据的错误,或包括特定于此类数据子集之间的互连的错误,因此需要专门的验证程序和规则。因此,用于所有不同数据子集的合适的验证过程可能难以实现,并且也可能需要大量的计算资源。此外,因为任何无效的输入数据在组织上可能很复杂且在数量上也可能很大,所以确定如何修改该数据以校正任何错误或不一致性可能相当困难,并需要进行长期的试错故障排除。如上所述,本领域所需要的是用于验证与基于云的软件应用一起使用的数据的更有效的技术。技术实现要素:本发明的一个实施方案阐述一种用于验证软件应用使用的输入数据集的技术,方法包括:为所述输入数据集的第一部分确定第一验证类;基于所述第一验证类确定要对所述输入数据集的所述第一部分执行的第一验证操作;使得对所述输入数据集的所述第一部分执行所述第一验证操作;确定所述第一验证操作不成功;以及生成指示所述输入数据集包括错误的验证报告。所公开技术的至少一个技术优点是可在输入数据用于大规模模拟或其他计算密集型操作之前对输入数据执行复杂验证过程。因此,没有消耗计算资源来生成基于无效数据的解决方案。所公开技术的另一技术优点是用于计算密集型操作的输入数据的每一数据子集(诸如与特定验证类相关联的数据子集)可经历单独的验证过程。因此,可更容易地跟踪和校正验证错误,即通过验证类。此外,每个单独的验证过程可根据复杂性由服务在本地执行,或者在基于云的计算资产上在外部执行。这样,利用分布式计算平台的扩展存储和计算能力。通过促进输入数据的验证,即使当输入数据与各种验证域相关联时,所公开的技术也改进计算装置的功能或操作。因此,这些优点提供相对于现有技术的至少一种技术改进,现有技术经常导致处理无效数据和生成难以排除的验证错误的计算资源的消耗。附图说明通过参考各种实施方案,可具有可详细地在对以上简述的本发明概念的更具体的描述中理解各种实施方案的上述特征的方式,所述各种实施方案中的一些在附图中示出。然而,应注意,附图仅示出本发明概念的典型实施方案并且因此不应被视为以任何方式限制范围,并且存在其他等效的实施方案。图1示出被配置为实现本发明的一个或多个方面的数据查验系统。图2是根据本发明的各种实施方案的图1的验证引擎的更详细图解。图3是根据本发明的各种实施方案的图2的知识结构的更详细图解。图4阐述根据本发明的各种实施方案的用于生成知识结构以验证特定软件应用的数据的方法步骤的流程图。图5阐述根据本发明的各种实施方案的用于验证软件应用的数据的方法步骤的流程图。图6示意性地示出根据本发明的实施方案将输入数据集加载到选定的应用模型中。图7是被配置来实现本发明的一个或多个方面的计算装置的框图。具体实施方式在以下描述中,阐述众多具体细节以提供对本发明的实施方案的更透彻理解。然而,对于本领域技术人员将明显是,可在没有这些具体细节中的一者或多者的情况下实践本发明的实施方案。系统概述图1示出被配置为实现本发明的一个或多个方面的数据查验系统100。数据查验系统100被配置成在后端应用140处理输入数据集102之前验证输入数据集102并生成足够的信息来引导用户101找到并校正包括在输入数据集102中的无效条目和/或其他不一致。数据查验系统100包括通信地耦合到验证引擎130和后端应用140的web浏览器应用120。验证引擎130又通信地耦合到一个或多个单独的微服务151至153或耦合到管理在多个互连微服务151至153上的协调执行的基础设施。附加地或替代地,验证引擎130可直接在诸如内部处理器131的内部自己的计算实例内运行验证。例如,在一些实施方案中,验证引擎130在内部处理器131上运行一个或多个验证,用于具有低复杂度级别的验证。输入数据集102通常包括用于实现后端应用140的执行的多个数据条目。此外,在一些实施方案中,输入数据集102可包括不同值类型的数据条目,诸如整数值、浮点值、文本值、时间和/或日期值、节点位置的阵列、材料性质值、二维或三维几何形状的边界条件和/或其他约束的值、二维或三维几何形状内的初始条件的值等。在一些实施方案中,输入数据集102被配置有有效载荷,该有效载荷被格式化为由模式结构化的合适的数据传输格式,以验证内容语法,诸如JavaScript对象表示法(JSON)、可扩展标记语言(XML)等。在此类实施方案中,由验证引擎130生成的验证报告103包括类似格式化的有效载荷。web浏览器应用120也可为轻量桌面应用,其使用户101能够向验证引擎130提供输入数据集102和/或还经由其用户界面(UI)121与后端应用140通信。因此,在一些实施方案中,web浏览器应用120在诸如用户101所采用的计算装置的第一计算装置161上执行,而验证引擎130在与第一计算装置161分离的第二计算装置162上执行。此外,在此类实施方案中,后端应用140可在第三计算装置163上执行。因此,在此类实施方案中,web浏览器应用120使用户101能够采用在远程计算装置上执行的远程资源。在操作中,web浏览器应用120将可执行输入104传输到后端应用140并接收解决方案数据105。在验证引擎130确定没有错误的情况下,可执行输入104等同于输入数据集102。在验证引擎130返回指示输入数据集102中的一个或多个错误的验证报告103的情况下,可执行输入104是基于输入数据集102并且基于基于验证报告103对输入数据集102做出的改变。后端应用140可为模拟平台,诸如生成式求解器应用,或执行计算密集型操作的任何其他后端求解器应用。例如,在一些实施方案中,后端应用140执行三维分析和/或设计,诸如计算机辅助设计应用。在一些实施方案中,后端应用140作为单个软件应用在计算装置163上执行。替代地,在一些实施方案中,后端应用140在分布式计算环境(诸如云计算环境)中执行。在此类实施方案中,计算装置163表示多个分布式计算资源。验证引擎130为被配置成从web浏览器应用120接收输入数据集102并验证输入数据集102的服务或其他软件应用。具体地,验证引擎130在后端应用140处理输入数据集102之前对输入数据集102执行数据验证。因此,防止后端应用140消耗计算资源来处理无效的输入数据集、生成无意义的结果、或潜在地导致完全执行失败。在一些实施方案中,验证引擎130还被配置成当输入数据集102的至少一部分被确定为无效时生成验证报告103。在此类实施方案中,验证报告103包括指示输入数据集102包括错误的错误消息、检测到的具体错误的描述、以及如果在验证过程期间生成的对用户101校正检测到的错误的建议中的一者或多者。如由数据验证引擎130执行的,数据验证为从由值组成的给定数据集(例如,输入数据集102)开始并以成功或失败结果结束的决策过程。通过使数据集通过控制数据集中的每个条目的有效性的一组规则来确定决策。如果数据集中的条目满足规则,即不违反相关的验证规则,则认为数据有效。验证规则的失败指示所关注的数据集没有达到目标验证水平。在一些实施方案中,作为验证输入数据集102的一部分,验证引擎130确定包括在输入数据集102中的条目是否与待由后端应用140执行的其他输入数据集一致、是否与输入数据集102中的其他条目一致、和/或是否以其他方式适合后端应用140对该条目的预期使用。在此类实施方案中,验证引擎130可采用描述用于具体应用模型310的数据的模式。附加地或替代地,在一些实施方案中,验证引擎130确定特定输入数据集102是否具有足够的数据质量以供后端应用140执行,其中数据质量可具有各种维度。例如,在一个此类实施方案中,验证引擎130确定包括在输入数据集102中的特定条目是否具有正确的值类型,诸如整数值、浮点值、落在规定阈值内的值、适当长度的文本条目等。例如,当特定条目是数值但期望文本条目由后端应用140正确执行时,验证引擎130确定输入数据集102至少部分无效。在另一示例中,对于输入数据集102中的特定条目,期望浮点数值以供后端应用140正确执行,其中浮点数值必须小于预定最大阈值且大于预定最小阈值。因此,当验证引擎130确定输入数据集102中的特定条目未能满足这些标准时,验证引擎130确定输入数据集102至少部分无效。在一些实施方案中,验证引擎130确定输入数据集102中的特定条目或多个条目是否满足更复杂的标准。在一个此类实施方案中,验证引擎130执行一个或多个预处理操作以实现输入数据集102的验证。在一个此类实施方案中,验证引擎130对包括在输入数据集102中的具体数据条目(诸如计算网格的节点位置)执行几何分析,并基于该几何分析来确定该具体数据条目是否具有有效值。例如,在实施方案中,当此类几何分析指示由具体数据条目表示的结构不是防水的时,验证引擎130认为结构是无效的。在另一实施方案中,当此类几何分析指示由具体数据条目表示的结构的重心定位在指定区域之外和/或导致超过阈值的力矩时,验证引擎130认为结构无效。在另一实施方案中,当此类几何分析指示由具体数据条目表示的结构的一部分与某一其他结构重叠或以其他方式冲突时,验证引擎130认为结构无效。在另一实施方案中,当此类几何分析指示由输入数据集102中的具体数据条目表示的节点未充分描述该节点与相邻节点的关系时,诸如当该节点未连接到其他节点时,验证引擎130认为具体条目无效。在一些实施方案中,预处理操作(例如,上述几何分析)由一个或多个内部处理器131本地执行。在其他实施方案中,验证引擎130使预处理操作中的一个或多个由微服务或通过利用管理多个互连微服务151至153的协调执行的基础设施来远程执行。在任一情况下,验证引擎130分析输入数据集102,确定哪些验证类与输入数据集102相关联,执行适当的预处理操作(或使执行适当的预处理操作),并且基于1)预处理操作的输出和2)可适用于与输入数据集102相关联的应用域的一个或多个验证规则来验证输入数据集102或使输入数据集102无效。验证引擎130所采用的验证规则可基于描述性逻辑和/或代码逻辑。描述性逻辑是本体建模的特征。描述性逻辑规则被嵌入为定义应用模型的验证类之间的一个或多个关系的特定应用模型的验证类之间的公理(下面结合图3描述)。因此,当推理器确定本体的连贯性和一致性时,在本发明的实施方案中实现的描述性逻辑规则补充验证类和关系的本体树。下面结合图3描述此类推理器的示例。相比之下,代码逻辑规则通常用程序语言编写,该程序语言提供必要的函数以变换类属性的内容用于验证。图2和图3示出由验证引擎130所采用的验证规则的实现。图2是根据本发明的各种实施方案的包括在数据查验系统100中的验证引擎130的更详细图解。在图2所示的实施方案中,验证引擎130包括一个或多个处理器131、多个知识结构210和引擎服务器220。知识结构210中的每一者被配置成验证用于特定后端应用140的输入数据集102。因此,知识结构210中的每一者是验证引擎130的不同的特定于应用的元素。在操作中,验证引擎130确定哪个特定后端应用140与从web浏览器应用102接收的具体输入数据集102相关联,选择对应于该特定后端应用140的知识结构210,并使用选定的知识结构210来验证输入数据集102。下面结合图3描述知识结构210的一个实施方案。图3是根据本发明的各种实施方案的包括在验证引擎130中的知识结构210的更详细图解。在图3所示的实施方案中,知识结构210包括具体应用模型310和一个或多个域本体320。对于每个具体软件应用(诸如特定后端应用140),通常存在与其相关联的单个知识结构。应用模型310包括属于对应于知识结构210的后端应用140所消费的内容的域本体(例如,验证规则)的具体验证材料或验证类。应用模型存储在本体(即类树)内,并且保存域本体的必要验证类以覆盖应用输入数据集的验证。应用模型310由应用特征和域特征组成。每个应用模型310具有用作应用模型310的根的一个应用类。然后,数据结构,或具体地输入数据集102中的数组的存在,由列表类312表示并连接到根应用类311。最后,根据所需数据在期望输入集数据102内的位置,将验证类313连接到应用类311或列表类312。一些实施方案包括具有或不具有列表类312但具有一个或多个验证类313的应用类311。应用模型310的每个实例具有至少一个应用类311和一个验证类312。应用类311与列表类312和验证类313的组合创建预期输入数据集102的映射。在知识结构210的设置期间,主题专家通过将应用特征属性与来自描述对应于知识结构210的后端应用140所消费的内容的模式的不相交或嵌套的数据集进行匹配来将验证类313添加到应用图。例如,在后端应用140包括三维求解器应用的实例中,此类内容通常包括形成待分析的三维结构的多个网格元素(诸如四面体、六面体和/或立方体)的节点的位置。在输入数据集102的验证期间,描述由后端应用140所消费的内容的模式与应用特征属性之间的此匹配用于将数据从输入数据集102注入到验证类313的实例中。除了验证类313之外,在一些实施方案中,应用模型310包括两个附加类型的实体:应用类311以及在输入数据集102中存在数组时的一个或多个列表类312。应用类311指示应用模型310对其执行数据验证的对应后端应用140。列表类312标记包括在输入数据集102中的数组,其影响包括在输入数据集102中的值条目与应用特征属性之间的匹配。在一些实施方案中,对于相同的验证类313,当应用特征属性与数组内的值匹配时,剩余的应用特征属性只能与应用模型310的模式树314中的相同数组内的值或放置在该数组下面的值匹配。在此类实施方案中,应用模型310被配置为映射到期望数据的验证类313的映射。因此,当应用特征属性与包含在应用模型310的数组内的值匹配时,存在用于构成选定的值与描述由后端应用140所消费的内容的模式的根之间的分支的每个数组的列表类312。虽然包括在应用模型310中的上述验证规则可各自验证具体验证类313,但在一些实施方案中,应用模型310还包括一个或多个依赖规则。采用依赖规则来构建由应用模型310执行的预定验证流程。类似于验证规则,依赖规则可包括描述性逻辑和/或代码逻辑。对于此类依赖规则,描述性逻辑使用“依赖于”关系来连接类,使得一个验证类313仅在原始类依赖于的验证类313已被验证的情况下触发验证。另外,对于此类依赖规则,在输入数据集102内检测到具体内容的情况下,代码逻辑的简单形式可触发类验证的激活。验证类313可在验证期间生成可添加到原始输入数据集102的附加内容,诸如数据值。在一些实施方案中,将应用特征属性连接到该生成的内容自动创建消费特征类与生成特征类之间的依赖规则。保存核心验证类的域本体320中的每一者在逻辑上与特定应用域相关联。应用域是与一组通用要求、术语和/或函数相关联的研究域,并且在应用域中执行分析或解决问题的软件应用通常采用此类要求、术语和函数。应用域的不同实例包括流体流动分析、结构分析、热分析等。因此,每个域本体320可包括多个域特征,每个域特征映射到包括在输入数据集102中的具体内容。例如,在域本体320与结构分析的应用域相关联并且后端应用140包括结构模拟求解器的实例中,输入数据集102通常包括网格形式的充分定义的几何形状。具体地,此类几何形状的网格由节点和元素组成,这些节点和元素由包括在输入数据集102中的对应数据条目定量地描述。在此类情况下,几何形状是域,而几何形状的网格、节点和元素是域特征。因此,每个元素被标识为由后端应用140(例如,结构模拟求解器)所消费的内容中的一组值或域特征。例如,节点的轴向坐标是每个节点的属性。在一些实施方案中,每个域特征使用验证规则集或与之相关联以查验此类属性的一致性。例如,在几何形状的节点是域特征的实例中,节点的简单验证规则可包括检查节点的坐标值是否高于某个值。在一些实施方案中,域特征可在相同的域空间内连接以引导域特征验证的流程。域特征之间的此类相互依赖性在本体中被表示为验证类之间的关系。经由描述性逻辑来实现相互依赖性。此类描述性逻辑可使用本体推理器240来验证,该本体推理器可为容易获得的行业推理器,以从断言的描述性逻辑事实和公理集来推断逻辑连贯性和内容一致性。一些推理器使用tableaux推理算法的变体来计算事实和规则集的推导闭包,诸如Pellet推理器,其是基于开放源Java的Web本体语言(OWL)推理器。使用OWL编写的本体的替代推理器是HermiT。在此类实施方案中,知识结构210可包括两层描述性逻辑:在域级的第一层(并且包括在域本体320中的一个或多个中)和在应用级的第二层(并且包括在应用模型310中)。每个域本体由其自己独特的命名空间来描述。在此类实施方案中,当描述性逻辑被绑定到验证类313的域命名空间时,相关联的规则然后被嵌入在相关联的域本体320内。相反地,当描述性逻辑连接多个命名空间时,相关联的规则改为嵌入在应用模型310内。如图3所示,一个或多个列表类312和一个或多个验证类313的生成是基于多个域本体320。在一些实施方案中,包括在特定知识结构210中的某一域本体320也可包括在与不同后端应用140相关联的不同知识结构210(未示出)中。例如,在后端应用140包括三维结构求解器应用的实例中,三维几何形状的验证是验证输入数据集102中的一个元素。因此,用于生成应用模型310的验证规则的一个域本体320是具有描述三维几何形状的类的本体。因为三维几何形状的验证也是对包括三维流体流动求解器应用的后端应用140的输入数据集102进行验证的元素,所以包括在用于三维结构求解器应用的知识结构210中的三维几何形状本体也可包括在用于三维流体流动求解器应用的知识结构210中。因此,此类实施方案促进了一种方法,由此可以以可被重新使用和重新组合用于不同应用的模块化形式来采用必要的知识/域本体来验证用于复杂应用的数据。返回到图2,引擎服务器220被配置成自动生成知识结构210或促进该知识结构的生成。因此,对于每个新应用,给定输入数据集102的特定格式(诸如JSON、HTML或XML模式),验证引擎130自动创建覆盖整个数据源的验证规则的应用类310。此外,在一些实施方案中,在特定知识结构210的设置期间,主题专家通过将应用特征属性与来自描述针对该特定知识结构210的后端应用140所消费的内容的模式的数据相匹配来将域特征添加到应用模型的映射中。图4示出一个此类实施方案。数据验证图4阐述根据本发明的各种实施方案的用于生成知识结构210以验证特定软件应用的数据的方法步骤的流程图。尽管结合图1至图3的系统描述了方法步骤,但本领域技术人员将理解,被配置来按任何次序执行方法步骤的任何系统都在本发明的范围内。如图所示,方法400开始于步骤401,其中引擎服务器220或验证引擎130的另一元件加载诸如后端应用140的目标软件应用的应用数据模式。在步骤402中,引擎服务器220或验证引擎130的另一元件加载目标软件应用的具体输入数据集。当被导入到在方法400中还没有被修改的应用模型310的当前版本中时,具体输入数据集被选择为具有已知的验证结果。在步骤403中,然后导入或以其他方式加载描述应用输入数据的模式,并且为目标软件应用创建应用模型310。在步骤404中,主题专家将一个或多个验证类313添加到应用模型310。在步骤405中,主题专家将每个验证类313的属性关联或以其他方式映射到模式。在步骤406中,在应用模型310的内容完成之后,主题专家将该内容提交为应用模型310的新版本。在步骤407中,引擎服务器220或验证引擎130的另一元件(诸如本体推理器240)测试修订的应用模型310的本体的连贯性。一般来说,在步骤407中不考虑输入数据集。在步骤408中,引擎服务器220或验证引擎130的另一元件使用在步骤402中加载的具体输入数据集来确认应用模型的新版本一致地起作用。具体地,在步骤402中加载的输入数据集被用作具有已知结果的测试案例。因此,对应用模型的验证类313的改变用此类测试案例来测试,以确认应用模型310的新版本的所添加的验证内容(例如,新的验证规则)仍然正确地起作用,并且对应用模型310的现有版本所做的改变没有被损害。在一些实施方案中,可在步骤402中加载多个输入数据集,并将其用于测试应用模型310的当前版本。在此类实施方案中,一个输入数据集的已知结果可为一个或多个验证规则的失败。因此,当在步骤406中没有发生此类失败时,可假定现有的验证规则受到损害。在步骤409中,引擎服务器220或验证引擎130的另一元件确定应用模型310的新版本是否连贯和一致。步骤409的确定是基于步骤407和408的结果。如果是,则方法400前进到步骤410,保存该应用模型310的新版本,并且方法400终止;如果否,则方法400返回到步骤403,其中主题专家修改应用模型310的新版本。在一些实施方案中,将必要信息提供给主题专家以识别哪些验证资料与给定输入数据不匹配。数据验证图5阐述根据本发明的各种实施方案的用于验证软件应用的数据的方法步骤的流程图。尽管结合图1至图4的系统描述了方法步骤,但本领域技术人员将理解,被配置来按任何次序执行方法步骤的任何系统都在本发明的范围内。如图所示,方法500开始于步骤501,其中验证引擎130从web浏览器应用120接收输入数据集102。在步骤502中,验证引擎130选择对应于在步骤501中接收的输入数据集102的应用模型310。在一些实施方案中,验证引擎130基于哪个后端应用140与输入数据集102相关联来选择应用模型310。在步骤503中,验证引擎130对输入数据集102运行语法验证。在步骤504中,基于在步骤503中执行的语法验证,验证引擎130确定输入数据集102是否无效。如果是,则方法500前进到步骤520;如果否,则方法500前进到步骤505。在步骤505中,验证引擎130将输入数据集102加载到选定的应用模型310中。图6示出将输入数据集102加载到选定的应用模型310中的实施方案。图6示意性地示出根据本发明的实施方案将输入数据集102加载到选定的应用模型310中。如图所示,输入数据集102包括多个条目602。每个不同的条目602对应于包括在应用模型310中的不同的验证类313,并且充当该特定验证类313的实例。因此,当将输入数据集102加载到应用模型310中时,不同的条目602被加载到不同的验证类313中以由验证引擎130进行验证。在图6所示的实施方案中,来自输入数据集102的单个连续部分的条目602被加载到特定验证类313中。在其他实施方案中,来自输入数据集102的多个不连续部分的数据条目602可与单个验证类313相关联。返回到图5,在步骤506中,验证引擎130利用本体推理器240检查包括在应用模型中的描述性逻辑的有效性。在步骤505中,验证引擎130确定当加载有输入数据集时选定的应用模型301的描述性逻辑是否有效。如果是,则方法500前进到步骤520;如果否,则方法500继续到步骤508。在步骤508中,验证引擎130确定待在应用模型310中验证的验证类313。基于输入数据集102的内容进行确定。例如,在后端应用140包括三维流体流动求解器的实施方案中,输入数据集102中的数据条目的一部分对应于与三维几何形状的元素(诸如三维几何形状的节点)相关联的域特征。因此,在该实施方案中,待验证的一个验证类313是与输入数据集102中对应于与三维几何形状的元素相关联的域特征的数据条目的部分相关联的验证类313。在该实施方案中,输入数据集102中的数据条目的另一部分对应于与流体流动分析相关联的域特征,诸如边界条件、初始条件、材料性质等。因此,在该实施方案中,待验证的一个验证类313是与输入数据集102中对应于与流体流动分析相关联的域特征的数据条目的部分相关联的验证类313。在步骤509中,验证引擎130从在步骤508中确定的验证类313中选择待验证的特定验证类313。例如,基于包括在输入数据集102中的格式、内容和/或元数据,验证引擎130可为输入数据集102选择与流体流动分析、结构分析、热分析、几何分析等中的一者相关联的一个验证类313。在步骤510中,验证引擎130基于在步骤509中确定的验证类313来确定选定的验证类313的验证操作。例如,在一些实施方案中,验证引擎130为域特征或域特征组选择验证操作。在此类实施方案中,选定的验证操作可与应用模型310的具体列表类312和/或一个或多个验证类313相关联。在步骤511中,验证引擎130使在步骤406中选择的验证操作被执行。即,使用在步骤510中选择的验证操作来测试包括在输入数据集102的选定部分中的数据条目的有效性。在一些实施方案中,验证引擎130例如经由一个或多个内部处理器131本地执行验证操作中的一个或多个。替代地或附加地,在一些实施方案中,验证引擎130使验证操作中的一个或多个经由一个或多个外部微服务151至153来实现。在步骤512中,验证引擎130确定步骤511的验证操作是否成功。例如,在一些实施方案中,此类确定是基于所有验证规则是否未被用作正被验证的验证类313的实例的数据条目中的任一者违反。如果验证引擎130确定验证操作成功,则方法500前进到步骤513;如果验证引擎130确定验证操作不成功,则方法500前进到步骤520。在步骤513中,验证引擎130确定是否有任何剩余的验证类待验证。如果是,则方法500返回到步骤506;如果否,则方法500前进到步骤514。在图5所示的实施方案中,验证类313被顺序地验证。在其他实施方案中,可并行地对多个验证类执行步骤509至512。例如,在此类实施方案中,对于每个验证类313,可采用不同的外部微服务151来执行步骤509至512以验证该验证类313。在步骤514中,验证引擎130确定是否为尚未被确定为待验证的验证类313的验证类313生成任何新数据。如果是,则方法500继续到步骤514;如果否,则方法500继续到步骤530并终止。在步骤515中,验证引擎130确定哪个或哪些验证类313受到在步骤514中确定的新数据的影响。例如,当第一验证类313包括网格的节点时,在第一验证操作中验证网格的节点。可对第二验证类313执行随后的第二验证操作,其中基于经验证的网格来计算网格的重心。然后可对第三验证类313执行第三验证操作,其中基于网格的重心来计算施加到结构的力的力矩。然后可对第四验证类313执行第四验证操作,其中基于网格的重心和力矩来验证边界条件上的边界一致性。方法500然后返回到步骤508,其中确定需要验证的验证类313。在步骤520中,验证引擎130相应地报告验证失败。例如,在一些实施方案中,验证引擎130传输验证不成功的验证报告或其他通知。一般来说,验证报告包括足够的信息来通知主题专家是什么阻止了成功的验证。在步骤530中,验证引擎130在适用时将验证报告103传输到web浏览器应用120。在一些实施方案中,除了由验证引擎130在输入数据集102中检测到的特定错误之外,验证报告103还包括用于校正在验证报告103中指示的检测到的错误的建议。图7是被配置来实现本发明的一个或多个方面的计算装置700的框图。因此,计算装置700可被配置为图1的第一计算装置161、第二计算装置162或第三计算装置163中的一个或多个。计算装置700可为台式计算机、膝上型计算机、平板计算机或任何其他类型的计算装置,其被配置成接收输入、处理数据、生成控制信号和显示图像。计算装置700被配置成运行驻留在存储器710中的web浏览器应用120、验证引擎130、后端应用140、外部微服务151至153和/或其他合适的软件应用。注意,本文描述的计算装置是说明性的,并且任何其他技术上可行的配置落入本发明的范围内。如图所示,计算装置700包括但不限于连接处理单元750、耦接到输入/输出(I/O)装置780的输入/输出(I/O)装置接口760、存储器710、存储装置730和网络接口770的互连(总线)740。处理单元750可为实现为以下的任何合适的处理器:中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、任何其他类型的处理单元或不同处理单元的组合,诸如被配置来结合GPU操作的CPU。一般来说,处理单元750可为能够处理数据和/或执行软件应用的任何技术上可行的硬件单元,包括web浏览器应用120、验证引擎130、后端应用140和/或外部微服务151至153。此外,在本公开的上下文中,计算装置700中所示的计算元件可对应于物理计算系统(例如,数据中心中的系统)或者可为在计算云内执行的虚拟计算实例。I/O装置780可包括能够提供输入的装置,诸如键盘、鼠标、触敏屏幕等等,以及能够提供输出的装置,诸如显示装置781。此外,I/O装置780可包括能够接收输入和提供输出两者的装置,诸如触摸屏、通用串行总线(USB)端口等等。I/O装置780可被配置来从计算装置700的终端用户接收各种类型的输入,并且还向计算装置700的终端用户提供各种类型的输出,诸如一个或多个图形用户界面(GUI)、所显示的数字图像和/或数字视频。在一些实施方案中,I/O装置780中的一个或多个被配置来将计算装置700耦接到网络705。网络705可为允许在计算装置700与诸如智能装置、可穿戴智能装置、web服务器或另一联网计算装置(未示出)的外部实体或装置之间交换数据的任何技术上可行类型的通信网络。例如,网络705可包括广域网(WAN)、局域网(LAN)、无线(WiFi)网络、蓝牙网络和/或因特网等。存储器710可包括随机存取存储器(RAM)模块、闪存存储器单元或任何其他类型的存储器单元或其组合。处理单元750、I/O装置接口760和网络接口770被配置来从存储器710读取数据和向该存储器写入数据。存储器710包括可由处理器750执行的各种软件程序和与所述软件程序相关联的应用数据,包括web浏览器应用120、验证引擎130、后端应用140和/或外部微服务151至153。总之,本发明的实施方案提供用于在分布式体系结构或云环境中验证数据以有效执行计算密集型操作和分析的技术。验证引擎对后端应用的输入数据执行验证操作,从而分离历史上嵌入在桌面应用内的验证步骤,并还从前端接口(诸如被配置成访问后端应用的web浏览器应用)卸载验证检查的负担。基于特定于域的本体生成包括验证规则的知识结构和应用模型。特定于域的本体是模块化的,并且可应用于为其他后端应用生成知识结构和应用模型。所公开技术的至少一个技术优点是可在输入数据用于大规模模拟或其他计算密集型操作之前对输入数据执行复杂验证过程。因此,没有消耗计算资源来生成基于无效数据的解决方案。所公开技术的另一技术优点是用于计算密集型操作的输入数据的每一数据子集(诸如与特定应用域相关联的数据子集)可经历单独的验证过程。因此,可更容易地跟踪和校正验证错误,即通过域特征类。此外,每个单独的验证过程可在基于云的计算资产上执行,利用分布式计算平台的扩展存储和计算能力。通过促进输入数据的验证,即使当输入数据与各种域特征类相关联时。因此,这些优点提供相对于现有技术的至少一种技术改进,现有技术经常导致处理无效数据和生成难以排除的验证错误的计算资源的消耗。1.在一些实施方案中,一种用于验证软件应用使用的输入数据集的计算机实现的方法包括:为所述输入数据集的第一部分确定第一验证类;基于所述第一验证类确定要对所述输入数据集的所述第一部分执行的第一验证操作;使得对所述输入数据集的所述第一部分执行所述第一验证操作;确定所述第一验证操作不成功;以及生成指示所述输入数据集包括错误的验证报告。2.如条款1所述的计算机实现的方法,其还包括:为所述输入数据集的第二部分确定第二验证类;基于所述第二验证类确定要对所述输入数据集的第二部分执行的第二验证操作;以及使得对所述输入数据集的所述第二部分执行所述第二验证操作。3.如条款1或2所述的计算机实现的方法,其中确定所述第二验证操作包括响应于确定所述第一验证类来确定所述第二验证操作。4.如条款1至3中任一项所述的计算机实现的方法,其中确定所述第一验证类和所述第二验证类包括用语义推理器分析所述输入数据集。5.如条款1至4所述的计算机实现的方法,其中生成所述验证报告包括基于所述第一验证操作的第一结果和所述第二验证操作的第二结果来生成所述验证报告。6.如条款1至5中任一项所述的计算机实现的方法,其中所述第一验证类和所述第二验证类包括在与所述软件应用相关联的应用模型中。7.如条款1至6中任一项所述的计算机实现的方法,其还包括将所述输入数据集加载到所述应用模型中,其中所述输入数据集的所述第一部分包括所述第一验证类的第一实例,并且所述输入数据集的所述第二部分包括所述第二验证类的第二实例。8.如条款1至7中任一项所述的计算机实现的方法,其中启动所述第一验证类的验证在逻辑上依赖于所述第一验证类的验证的完成。9.如条款1至8中任一项所述的计算机实现的方法,其中使得对所述输入数据集的至少一部分执行所述第一验证操作包括:确定执行所述第一验证操作的第一微服务;以及使所述第一微服务对所述输入数据集的所述第一部分执行所述第一验证操作。10.如条款1至9中任一项所述的计算机实现的方法,其中所述第一微服务在执行确定所述验证类的第一计算装置或远离所述第一计算装置的第二计算装置中的一者上被执行时执行所述第一验证操作。11.如条款1至10中任一项所述的计算机实现的方法,其中所述第一验证操作包括生成与所述输入数据集相关联的值的预处理操作。12.如条款1至11中任一项所述的计算机实现的方法,其还包括基于与所述输入数据集的所述第一部分相关联的所述值使得对所述输入数据集的所述第一部分执行第二验证操作。13.如条款1至12中任一项所述的计算机实现的方法,其中使得对所述输入数据集的所述第一部分执行所述第一验证操作包括执行特定于所述第一验证类的多个验证规则。14.如条款1至13中任一项所述的计算机实现的方法,其还包括:确定所述第一验证操作成功;以及使所述软件应用生成指示所述输入数据集不包括错误的验证报告。15.如条款1至14中任一项所述的计算机实现的方法,其中使得执行第一验证操作包括使得执行特定于所述第一验证类的验证规则。16.一种存储指令的非暂时性计算机可读介质,所述指令在由处理器执行时使所述处理器执行以下步骤:为输入数据集确定应用模型;基于应用特征类确定要对所述输入数据集执行的第一验证操作集;使得对所述输入数据集的至少一部分执行所述第一验证操作;确定所述第一验证操作集是成功或不成功;以及生成指示所述输入数据集包括错误的验证报告。17.如条款16所述的非暂时性计算机可读介质,其中确定要对所述输入数据集执行的所述第一验证操作包括从与所述应用模型相关联的多个验证规则中选择一个或多个验证规则。18.如条款16或17所述的非暂时性计算机可读介质,其中使得对所述输入数据集的所述至少一部分执行所述第一验证操作还包括执行所述一个或多个验证规则。19.如条款16至18中任一项所述的非暂时性计算机可读介质,其中所述第一验证操作与所述应用模型的域特征相关联。20.如条款16至19中任一项所述的非暂时性计算机可读介质,其中使得对所述输入数据集的至少一部分执行所述第一验证操作包括:确定应执行所述第一验证操作的至少一部分的第一过程或微服务集;以及使所述第一过程或微服务集对所述输入数据集的所述至少一部分执行所述第一验证操作集的所述至少一部分。21.如条款16至20中任一项所述的非暂时性计算机可读介质,其中所述第一验证操作的所述至少一部分包括预处理操作,所述预处理操作可生成与所述输入数据集的所述至少一部分相关联的值。22.如条款16至21中任一项所述的非暂时性计算机可读介质,其中使得对所述输入数据集的所述至少一部分执行所述第一验证操作的所述至少一部分还包括基于与所述输入数据集的所述至少一部分相关联的所述值来执行特定于所述应用域的至少一个验证规则。23.如条款16至22中任一项所述的非暂时性计算机可读介质,其还包括:确定所述第一验证操作成功;以及使所述软件应用生成指示所述输入数据集不包括错误的验证报告。24.如条款16至23中任一项所述的非暂时性计算机可读介质,其中使得执行第一验证操作包括使得执行特定于所述应用域的验证规则。25.在一些实施方案中,一种系统包括:存储器,所述存储器存储指令;以及处理器,所述处理器耦合到所述存储器并且被配置成在执行所述指令时执行以下步骤:为输入数据集确定应用模型;基于所述应用模型确定要对所述输入数据集执行的第一验证操作集;使得对所述输入数据集的至少一部分执行所述第一验证操作;确定所述第一验证操作是成功或不成功;以及生成指示所述输入数据集包括错误的验证报告。权利要求中任一项所述的权利要求元素中的任一者和/或本申请所描述的任何元素的以任何方式进行的任何和全部组合落在本发明和保护的设想范围内。已经出于说明目的呈现了对各种实施方案的描述,但是这些描述并不意图是详尽的或限于所公开的实施方案。在不脱离所描述的实施方案的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是明显的。本实施方案的各方面可实施为系统、方法或计算机程序产品。因此,本发明的方面可采取完全硬件实施方案、完全软件实施方案(包括固件、常驻软件,微代码等)或结合软件方面与硬件方面的实施方案的形式,所述实施方案在本文中通常可全部称为“模块”或“系统”。此外,本发明的方面可采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有在其上体现的计算机可读程序代码。可利用一个或多个计算机可读介质的任何组合。计算机可读介质可为计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可为例如但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或装置、或者前述项的任何合适的组合。计算机可读存储介质的更具体实例(非详尽列表)将包括以下介质:具有一根或多根导线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述介质的任何合适组合。在本文档的背景中,计算机可读存储介质可为可含有或存储供指令执行系统、设备或装置使用或者结合指令执行系统、设备或装置使用的程序的任何有形介质。以上参考根据本发明的实施方案的方法、设备(系统)和计算机程序产品的流程图图解和/或框图描述了本发明的方面。将理解,可通过计算机程序指令来实现流程图图解和/或框图中的每个框以及流程图图解和/或框图中的框的组合。这些计算机程序指令可提供到通用计算机、专用计算机的处理器或其他可编程数据处理设备以产生机器,从而指令(其经由计算机的处理器或其他可编程数据处理设备执行)能够实现流程图和/或框图一个或多个框中规定的功能/动作。此类处理器可为但不限于通用处理器、专用处理器、特定用途处理器或现场可编程处理器。上面已经参考具体实施方案描述了本发明。然而,本领域普通技术人员将理解,在不脱离如所附权利要求中阐述的本发明的较宽泛的精神和范围的情况下可对其做出各种修改和改变。例如,但不限于,尽管本文许多描述涉及具体类型的应用数据、内容服务器和客户端装置,但本领域技术人员将了解,本文描述的系统和技术可应用于其他类型的应用数据、内容服务器和客户端装置。因此,上述描述和附图被认为是说明性的而不是限制性的意义。附图中的流程图和框图示出了根据本发明的各种实施方案的系统、方法和计算机程序产品的可能的实现方式的体系结构、功能和操作。就这一点而言,流程图或框图中的每个框可表示包括用于实现一个或多个指定逻辑功能的一个或多个可执行指令的代码的模块、区段或代码部分。还应注意,在一些替代实现方式中,框中提及的功能可不按附图中提及的次序出现。例如,连续示出的两个框实际上可基本同时执行,或者这些框有时可按相反的次序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图解中的每个框以及框图和/或流程图图解中的框的组合可由执行指定功能或动作的基于专用硬件的系统或专用硬件与计算机指令的组合来实现。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献