CN115702425A - 对分层的数据结构进行索引的方法 - Google Patents

对分层的数据结构进行索引的方法 Download PDF

Info

Publication number
CN115702425A
CN115702425A CN202080102074.XA CN202080102074A CN115702425A CN 115702425 A CN115702425 A CN 115702425A CN 202080102074 A CN202080102074 A CN 202080102074A CN 115702425 A CN115702425 A CN 115702425A
Authority
CN
China
Prior art keywords
item
unconfigured
product
path
index
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.)
Pending
Application number
CN202080102074.XA
Other languages
English (en)
Inventor
A·菲特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SIEMENS INDUSTRY SOFTWARE Ltd
Original Assignee
SIEMENS INDUSTRY SOFTWARE Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SIEMENS INDUSTRY SOFTWARE Ltd filed Critical SIEMENS INDUSTRY SOFTWARE Ltd
Publication of CN115702425A publication Critical patent/CN115702425A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/16Customisation or personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/20Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Graphics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种对分层的数据结构或产品结构进行索引的计算机实施的方法。对于包括产品和与该产品相关联的多个项目的产品结构,其中每个项目与该产品或至少一个其他项目共享父子关系,该方法包括数个步骤。首先,通过对产品到每个项目中的一个项目的未经配置的项目路径进行枚举来生成产品结构的打包的与配置无关的索引。然后,如果一个或多个未经配置的项目路径是相同的,则仅保留相同的未经配置的项目路径中的一者。该索引还可以与未经配置的项目路径的空间边界的索引组合。可以针对组合索引对产品结构和空间位置的搜索请求进行过滤。

Description

对分层的数据结构进行索引的方法
技术领域
本发明涉及一种对分层的数据结构进行索引的方法,特别是包括数据的根和与数据的根相关联的多个值的数据结构,其中该多个值与至少一个其他值或与该数据的根具有父子关系。
背景技术
计算机辅助设计(CAD)工具频繁地用于复杂产品的制造。在软件内,这些产品通常被表示为分层的产品结构,通常以产品树的形式显示。这允许用户以简单的方式查询产品结构,以查看或编辑存储在产品结构内的部件和部件组件。随着时间的推移,这些部件和部件组件将经历多次的修改,这需要进行配置以产生可制造的产品。例如,在汽车制造中,车轮需要数个车轮螺栓将其固定到轮轴上,车轮本身可以是前轮、后轮、左轮或右轮,轮轴将安装到底盘上,底盘连接到车辆模型等。这表示根部(车辆)与最终项目(车轮螺栓)之间的产品树相当短,但是对于完全配置的、可制造的产品而言,每个车轮螺栓需要在产品结构树中有其自己的分支。因为无论是否向用户显示,每个分支都必须经过配置,所以获得的经配置的产品的规模可能是相当大的。
为了对根产品(在本例中为车辆)进行修改、操作或做出选择,用户需要能够在产品结构内对部件和部件组件、单个部件或部件修改的事件进行搜索。取决于所涉及的数据量,搜索和配置这种产品结构可能是缓慢的,并且通常通过使用经配置的产品的缓存和将部件和部件组件的事件展开来改善搜索和配置。然而,用于这种经配置的产品的缓存方法具有多个缺点。首先,产品的每个单个的配置需要单独的缓存。需要对每个缓存进行存储并且将其保持为最新。其次,变更管理过程产生产品的变更特定、用户特定和分组特定的配置。这增加了所需的缓存数量。最后,无论做出修改的次数是多是少,历史配置还需要用于每个历史点的单独的缓存。这进一步增加了所需的缓存的数量。可替代的方法包括例如对产品结构中的路径进行数据库索引的技术,该技术虽然是对缓存方法的改进,但是仅在短时期内是有效的。对部件和部件组件进行的修改在较长时期内可能会引发路径爆炸。这可以通过索引短时间范围内的最近的改变来限制,但是对于用户来说,这可能是不实际的或不期望的。因此,需要能够以这样的方式对这种分层的产品结构进行索引:不管对产品或对其任何部件执行修改的数量如何,可以在不发生数据爆炸的情况下完成对部件和部件组件的搜索以及对产品的配置。
发明内容
本发明旨在通过在第一方面中提供的一种对分层的数据结构进行索引的计算机实施的方法来解决这一问题,所述分层的数据结构包括数据的根以及与数据的根相关联的多个值,其中,每个值与数据的根或至少一个其他值共享父子关系,所述方法包括以下步骤:通过对所述数据的根到每个值中的一个值的未经配置的值路径进行枚举来生成所述数据结构的打包的与配置无关的索引;以及如果一个或多个未经配置的值路径是相同的,则仅保留相同的所述未经配置的值路径中的一者。
利用未经配置的索引消除了经配置的索引的缺点,因为未经配置的索引不需要对数据结构中的值的每个配置进行配置和存储,而是仅需要单一的未经配置的值路径。通过消除与配置相关联的约束,索引还在时间方面变得灵活,因为不需要对单个的值或数据修改进行配置和存储。因此,这提供了在无需过多的缓存的情况下,在任何时间范围内,查询产品结构和过程,以及查看修订的能力。
优选地,所述值与所述根和每个所述其他值中的至少一者具有空间关系。
优选地,所述方法还包括以下步骤:对于每个未经配置的值路径:确定用于所述未经配置的值路径中的每个父子关系的变换;使用所述值的几何边界来确定用于所述未经配置的值路径中的最后一项的空间边界框;以及对所述未经配置的值路径中的变换和未经配置的项目路径中的最后一项的空间边界框进行排列,以形成未经配置的值路径的空间边界索引。
最优选地,所述数据结构是产品结构,所述根是产品,并且值是产品中的项目。
在另一方面,本发明还提供了一种对分层的产品结构进行索引的计算机实施的方法,所述分层的产品结构包括产品以及与所述产品相关联的多个项目,其中每个项目与所述产品或至少一个其他项目共享父子关系,所述方法包括以下步骤:通过对所述产品到每个项目中的一个项目的未经配置的项目路径进行枚举来生成所述产品结构的打包的与配置无关的索引;以及如果一个或多个未经配置的项目路径是相同的,则仅保留相同的未经配置的项目路径中的一者。
优选地,所述项目与所述产品和每个所述其他项目中的至少一者具有空间关系。
优选地,所述方法还包括以下步骤:对于每个未经配置的项目路径:确定用于所述未经配置的项目路径中的每个父子关系的变换;使用所述项目的几何边界来确定用于所述未经配置的项目路径中的最后一项的空间边界框;以及对所述未经配置的项目路径中的变换和所述未经配置的项目路径中的最后一项的空间边界框进行排列,以形成未经配置的项目路径的空间边界索引。
优选地,项目是部件或部件的组件。
优选地,所述产品具有一组三个正交的轴线,并且所述空间边界框的轴线与所述产品的轴线对齐。
优选地,对未经配置的项目路径中的相似的空间边界框进行合并。
优选地,对分层的产品结构进行索引是实时执行的,并且索引包括对项目或产品的至少一个修改。
在另一方面,本发明提供了一种在分层的产品结构的索引中对搜索请求进行过滤的方法,包括:访问根据上述方法生成的分层的产品结构的索引;针对与配置无关的产品结构的索引对结构内容的搜索请求进行过滤,以标识项目路径;针对空间边界的索引对空间位置的搜索请求进行过滤,以标识框路径;以及针对生成于框路径的经配置的产品结构对所述结构内容的搜索请求和/或所述空间位置的搜索请求进行再过滤。
在第三方面,本发明提供一种包括指令的非瞬态计算机程序的产品,当所述程序由计算机执行时,所述指令使所述计算机执行所述方法的步骤。
附图说明
参考附图,现在将仅以示例的方式对本发明进行描述,其中:
图1是示出产品结构树的示例部分的示意图;
图2是未经配置的产品结构索引的示例,其用于根据本发明实施例的图1的产品结构树;
图3是未经配置的产品边界空间索引的变换列表的示例,其用于根据本发明实施例的图1的产品结构树;
图4是用于未经配置的产品边界空间索引的空间边界框列表的示例,其用于根据本发明实施例的图1的产品结构树;以及
图5是未经配置的产品边界空间索引的示例,其用于根据本发明实施例的图2的未经配置的产品结构索引。
具体实施方式
本发明采用一种可替代方法来对现有技术中的分层结构进行索引。分层结构包括共享父子关系的多个值,并且可以表示为树状结构,该树状结构具有显示为树的分支的父子关系分组。通过采用未经配置的产品结构的索引的构思,避免了已知的涉及经配置的产品或追踪经配置的产品结构中的路径的缓存方法和其他方法。顾名思义,这既不需要存储经配置的产品结构,也不依赖于经配置的产品结构的索引。使用一种计算机实施的方法,对包括数据的根和与数据的根相关联的多个值的分层的数据结构进行索引。每个值与至少一个其他值或数据的根共享父子关系。数据的根可以是,例如产品结构或过程,以及组成该产品的项目(部件或部件组件)或形成该过程的过程步骤。该方法最初包括通过对数据的根到每个值中的一个值的未经配置的值路径进行枚举,来生成打包的与配置无关的数据结构索引。这使得项目或过程步骤之间的父子关系能够被确定并且被列在路径中。一旦未经配置的值路径被确定,如果两个或多个未经配置的项目路径是相同的,则仅保持相同的未经配置的值路径中的一者。这消除了在经配置的产品的索引中所发现的数据爆炸的可能性,因为不存在可能相同的索引路径的激增。
在以下示例中,以产品结构作为数据结构,以便于对本发明进行说明。如果我们考虑包括大量部件和部件组件的产品,则项目路径是表示产品内的可能的物料清单(BOM)行的项目序列。换句话说,项目(值)与产品(根)相关联,并且与至少一个其他项目或产品形成父子关系。图1中示出了单个产品线内的序列。图1是示出产品结构树的一个示例部分的示意图。产品结构100开始于产品的项目标识符“产品1”,并且之后是第一级组件标识符“项目1”、“项目2”,分别通过路线“路线至1”和“路线至2”连接到产品的项目标识符。该级别之后是第二级组件标识符,就图1的左侧路径而言,该第二级组件标识符仅是“项目1.1”和“项目1.2”,分别通过路线“路线至1.1”和“路线至1.2”连接到“项目1”。第三级组件标识符“项目1.1.1”、“项目1.1.2”以此类推,直到到达表示感兴趣的部件或部件组件的项目。序列中的每个项目可能是前一级别的子项,并且是后一级别中的子项的父项,因此,父子关系可以用于以相同的方式表示叶子级别的零件和组件。
图2是未经配置的产品结构的索引的示例,其用于根据本发明实施例的图1的产品结构树。每个未经配置的项目路径具有一个序列:/项目n/项目n.n1/项目n.n1.n2…,其中n1表示第一子项,n2表示第二子项,以此类推。项目路径同样可以通过父项的标记来表示,其中对于子项项目nm,父项可以是项目nm-1。图1仅示出了用于每个项目的单一的和可能的未经配置的项目路径,尽管在实际中部件会在部件组件和产品中多次出现,例如在上面的车轮螺栓的示例中。作为简单的说明,如果车辆的所有的四个车轮是相同的,并且每个车轮需要五个车轮螺栓,则仅对于车轮螺栓来说,就需要二十个经配置的项目路径。一旦考虑到车轮与轮轴、轮轴与底盘等之间的关系,很容易看到这将会如何增长。
相反,根据本发明实施例,仅需要一个未经配置的项目路径,因为项目标识符的使用允许将多个子项的事件打包在一起,甚至跨越修改。当对每个项目进行修改时,不创建新的项目路径。而且当项目在组件内重新定位,或项目的数量被调整时,没有生成额外的项目路径。原有的产品/项目关系和父/子关系保持不变,并且没有创建新的父/子关系。然而,这不是将新的项目添加到组件或产品的情况。新的项目将创建新的父/子关系,因此该项目和它可能具有的任何子项需要额外的项目路径。结果是,需要更新与配置无关的产品结构索引。相反,如果将项目从产品或组件中移除,则项目路径的数量可能会由于该项目及其子项(如果该项目有任何子项)而减少。这些被移除的路径可以被保留(并且在搜索期间将被视为误报(false positives))或可以从索引中移除以确保使索引的规模最小化。
与使用事件路径(occurrence paths)相比,使用项目路径也是有益的,该项目路径能够将多个子项的事件(occurrence)打包在一起。事件路径除了将项目事件连接在一起之外,其在本质上是相似的。例如,图1中的项目1.1.1的发生路径将会被写为/路线至1/路线至1.1/路线至1.1.1。这里,随着时间的推移,索引中的数据发生爆炸的可能性远高于使用项目路径的情况,相比之下,使用项目路径情况下的索引展现出的实际数据随时间的增长要少得多。
另外,项目路径允许容易地对循环进行检测和处理。循环是指项目成为其自己的父项或祖先项,如此就不能存在于经配置的产品结构中。因此,经配置的产品结构的索引需要对循环进行处理,但是当考虑根据本发明实施例的项目路径的方法时,包含两次或多次相同的项目的任何路径表示产品结构的循环,并且可以从索引中删除。
在上面的示例中,产品结构用于说明根据本发明实施例的数据结构中的值路径的构思。值路径的索引可以用于确定与数据结构有关的问题的答案。这些问题包括:在特定的数据的根中能找到哪些值;在数据树中可以在哪找到这些值;哪些值与特定的数据的根相关以及哪些值存在于特定的数据的根中。这意味着该构思适用于在过程以及产品中使用。例如,复杂的制造指令可能包括许多过程,每个过程依赖于过程步骤,所有的过程步骤都可以用树状结构来表示。当考虑哪些过程步骤被重复时,应用与产品结构相同的原理。再次回到汽车的示例,将包括轮胎的车轮安装到汽车的轮轴上的过程包括将轮胎放置在车轮上,然后将车轮安装在轮轴上并且用五个车轮螺栓将其紧固。在组装过程中,该过程将会进行四次,这意味着将会有二十个拧紧车轮螺栓的指令。因此,通过产生用于拧紧车轮螺栓步骤的未经配置的步骤路径,在与配置无关的索引方法中仅需要一个未经配置的步骤路径。
回到图1的产品结构的示例,尽管未经配置的项目路径的索引方法能够解答产品结构的问题,但是用户可能需要关于定位产品结构内的项目的信息。与配置无关的索引的构思可以扩展为包含空间边界,然后该构思能够解答与产品内的项目的定位相关的问题,并且创建未经配置的产品的空间边界的索引。
通常,产品结构内的部件和部件组件将具有与产品的坐标系相关的几何边界。部件本身可以在它们自己的坐标系中绘制,例如,部件的中心位于零点,部件的各方面沿着x轴、y轴和z轴延伸。这通常用于可重复使用的部件,其中对该部件进行设计,并且然后将该部件定位在产品内。另一种可替代的方法是使用就地设计过程(design in-placeprocess),在该过程中,在需要装配部件的位置对该部件进行设计,例如,在汽车底盘上。在设计之后,需要对定位的部件进行变换,以将该部件转移到产品的坐标空间。对于未经配置的项目路径的结构,通过对用于每个项目到项目的路径跳跃(item-to-item-path hop)的不同的变换和路径中的最后一项在产品的坐标系中的不同的几何边界进行排列,来形成用于一个项目路径的几何边界。项目到项目的路径跳跃是从父项到子项的转变。这在图3中示出并且在下面更详细地进行描述。当经配置的组件中的项目事件的次数多于一次时,不同事件通常具有不同的几何位置。因此,这些将对应于未经配置的几何边界中的不同子集。
将项目路径的空间边界分组为独立的几何位置也是常见的。例如,轴对齐的三维框(box)可以用于表示空间边界。这使得在产品的坐标空间中能够形成用于项目路径中的每个项目的一组轴对齐的三维框,从而使得多个框表示项目路径。每个项目路径内的相似的框可以进行合并,这将减少所需的存储容量。
图3是用于根据本发明实施例的图1的产品结构树的未经配置的产品结构的索引示例。父项列表示每个父子关系中的父项,子项列表示子项。变换列表示在相应的父项与子项之间执行项目到项目的跳跃所需的变换。对于父项n和子项n-1,变换将是变换n-1。因此,对于父项1.1和子项1.1.1,项目到项目的跳跃由变换1.1.1来确定。
图4是未经配置的产品边界的空间索引的空间边界框(spatial-bounding box)列表的示例,其用于根据本发明实施例的图1的产品结构树。每个空间边界框以用于项目n的框n的形式来表示,使得用于项目1.1的空间边界框表示为框1.1。将用于每个项目的变换列表和空间边界框组合,可以创建与配置无关的空间边界的索引。如果未经配置的项目路径不具有几何位置,则不可能构建出空间边界框。
图5是未经配置的产品边界的空间索引示例,其用于根据本发明实施例的图2的未经配置的产品结构索引。针对图2中所示的每个未经配置的项目路径来创建路径框,该路径框包含用于项目的未经配置的项目路径和未经配置的空间边界的索引的路径框。这些项目路径和路径框具有如下格式:
项目路径:/产品1/项目n1/项目n2/项目n3
以及
框:变换n*变换n1*变换n2*变换n3*框n3
因此,对于项目1.1.1,将这些项目路径和路径框表示为:
项目路径:/产品1/项目1/项目1.1/项目1.1.1,
框:变换1*变换1.1*变换1.1.1*框1.1.1
如果在项目1.1下进一步添加项目1.1.1事件,例如在车轮的新车轮区域中的额外的螺栓,则创建额外的索引条目:
项目路径:/产品1/项目1/项目1.1/项目1.1.1,
框:变换1*变换1.1*变换1.1.1a*框1.1.1
当考虑空间边界时,尽管用于项目的空间-边界框是相同的,但是有必要进一步引入变换1.1.1a,因为项目到项目的路径跳跃不在其他项目路径中复制。虽然在上面的示例中使用了框,但是取决于产品结构,其他的可替代方案可能是优选的,例如边界球(bounding sphere)或多个边界框。
类似于与配置无关的产品结构的索引,未经配置的项目路径的空间索引适合于解答产品结构的空间位置的问题。这些问题可以包括例如项目的哪些事件位于空间区域中;哪些事件靠近给定的事件;哪个事件跨越给定的部分。因此,通过一起使用与配置无关的产品结构的索引和未经配置的项目路径的空间边界的索引,用户能够查询产品结构的内容和位置信息。当考虑数据结构时,有必要为未经配置的值路径中的每个父子关系确定变换。然后,使用值的几何边界来确定用于未经配置的值路径中的最后一个值的空间边界框。最后,对未经配置的值路径中的变换和未经配置的值路径中的最后一项的空间边界框进行排列,以形成未经配置的值路径的空间边界的索引。
当用户希望用根据本发明实施例进行索引的产品结构来开展工作时,该方法的优点是显而易见的。最初,用户能够查看折叠产品结构树,该折叠产品结构树可以被展开成所需的许多分支和级别以查看该产品结构内的单个项目。为了找到项目,用户可以将搜索项目输入到用于产品结构的专用搜索功能中。使用上面的汽车示例,用户可能希望找到车轮螺栓。在搜索功能中键入“车轮螺栓”将会针对与配置无关的产品结构对搜索请求进行初始过滤,并且一旦找到,将会展开产品结构树以显示产品内的车轮螺栓。键入“车轮螺栓左轮区域”将会针对与配置无关的产品结构索引和未经配置的项目路径的空间界限索引对搜索请求进行过滤,使产品树展开以显示左轮区域中的车轮螺栓。然后还可以针对该经配置的产品结构执行进一步的搜索。
因此,为了使用索引,针对与配置无关的产品结构索引对结构内容的搜索请求进行过滤,以识别项目路径。然后再针对空间边界的索引对空间位置的搜索请求执行过滤,以识别框路径。一个例外是,如果项目不具有几何位置,则不存在与变换进行排列的空间边界信息,因此不存在用于该项目的空间位置的搜索请求和空间边界的索引条目。最后,针对生成于框路径的经配置的产品结构,对结构内容的搜索请求和/或空间位置的搜索请求进行再过滤。因此,当产品结构树已经在所讨论的项目的正确点处被展开时,这种再过滤使得能够进行更详细的搜索。可以使用各种过滤技术来执行这样的过滤过程。例如,包围盒层次(BVH)方法很好地适用于对未经配置的项目路径索引和/或未经配置的项目路径的空间边界索引进行过滤的过程。包围盒层次是一组几何对象上的树状结构,这些几何对象被包裹在形成树的叶子节点的包围盒中。然后,这些节点被分组为小集合,并且被包围在更大的包围盒中,这些更大的包围盒又依次被分组并且被包围在更大的包围盒中,以此类推,直到创建了在树的顶部具有单一包围盒的树状结构。轴对齐的边界框,例如上述的那些用于每个项目的几何边界的边界框,可以被分类为包围盒层次的一部分。包围盒层次的典型用途是碰撞测试和光线追踪。因此,可以将使用包围盒层次对多组几何对象执行操作的方法论应用到本发明实施例中。特别地,碰撞测试在本发明实施例中是有效的,在该碰撞测试中,对两个或多个物体的相交进行检测。
与如上所述的过程相似,可能存在如过程步骤一样的需要包含在内的空间项目。用户可能需要知道特定的过程将在何处进行,例如,部件是否需要在工作台和产品之间移动。
使用本发明实施例的方法还可以获得比经配置的产品结构索引所支持的搜索场景数量更多的索引。这减少了索引管理的负荷,并且使得管理员用户需要执行较少的显式索引管理。此外,还能够通过索引管理工具创建更多的先占索引(pre-emptive index)。因为不需要对相同项目的许多事件进行过滤,所以也会对产品结构中用户不感兴趣的部分进行快速过滤。
本发明实施例的进一步的益处是对关于处理项目和产品结构的修改进行索引的灵活性。当项目随着时间的推移被修改或被移动就位时,尽管空间边界当然可以发生改变,但是不需要创建额外的未经配置的项目路径。经配置的产品结构的索引不具有这种时间敏感性和跟踪修改的能力。因此,这种索引缺乏处理时间分量(time component)的能力,除非采用过多的缓存,因为每当做出改变时都必须重新配置索引。因此,经配置的索引仅仅是配置在一个时刻的快照,然而与配置无关的索引是产品结构的实时表示。因此,对分层的产品结构的索引被实时地执行,并且包括项目或产品的至少一次修改。这种关于修改的灵活性还使得相同的与配置无关的索引能够由不同的用户或在不同的位置以及在不同的时间使用,因为不需要考虑修改对产品的配置产生的影响。

Claims (13)

1.一种对分层的数据结构进行索引的计算机实施的方法,所述分层的数据结构包括根以及与数据的根相关联的多个值,其中,每个值与所述数据的根或至少一个其他值共享父子关系,所述方法包括以下步骤:
通过对所述数据的根到每个值中的一个值的未经配置的值路径进行枚举来生成所述数据结构的打包的与配置无关的索引;以及
如果一个或多个未经配置的值路径是相同的,则仅保留相同的所述未经配置的值路径中的一者。
2.根据权利要求1所述的方法,其中,值与所述根和每个其他值中的至少一者具有空间关系。
3.根据权利要求2所述的方法,其中,所述方法还包括以下步骤:
对于每个未经配置的值路径:
确定用于所述未经配置的值路径中的每个父子关系的变换;
使用所述值的几何边界来确定用于所述未经配置的值路径中的最后一项的空间边界框;以及
对所述未经配置的值路径中的变换和未经配置的项目路径中的最后一项的空间边界框进行排列,以形成未经配置的值路径的空间边界索引。
4.根据权利要求1至3中任一项所述的方法,其中,所述数据结构是产品结构,所述根是产品,并且值是项目。
5.一种对分层的产品结构进行索引的计算机实施的方法,所述分层的产品结构包括产品以及与所述产品相关联的多个项目,其中每个项目与所述产品或至少一个其他项目共享父子关系,所述方法包括以下步骤:
通过对所述产品到每个项目中的一个项目的未经配置的项目路径进行枚举来生成所述产品结构的打包的与配置无关的索引;以及
如果一个或多个未经配置的项目路径是相同的,则仅保留相同的所述未经配置的项目路径中的一者。
6.根据权利要求5所述的方法,其中,项目与所述产品和每个其他项目中的至少一者具有空间关系。
7.根据权利要求6所述的方法,其中,所述方法还包括以下步骤:
对于每个未经配置的项目路径:
确定用于所述未经配置的项目路径中的每个父子关系的变换;
使用所述项目的几何边界来确定用于所述未经配置的项目路径中的最后一项的空间边界框;以及
对所述未经配置的项目路径中的变换和所述未经配置的项目路径中的最后一项的空间边界框进行排列,以形成未经配置的项目路径的空间边界索引。
8.根据权利要求7所述的方法,其中,项目是部件或部件的组件。
9.根据权利要求7所述的方法,其中,所述产品具有一组三个正交的轴线,并且所述空间边界框的轴线与所述产品的轴线对齐。
10.根据权利要求7所述的方法,其中,对未经配置的项目路径中的相似的空间边界框进行合并。
11.根据权利要求5至10中任一项所述的方法,其中,对分层的产品结构进行索引是实时执行的,并且包括对项目或产品进行的至少一个修改。
12.一种在分层的产品结构的索引中对搜索请求进行过滤的方法,包括:
访问根据权利要求5至10中任一项所述的方法生成的分层的产品结构的索引;
针对与配置无关的产品结构的索引对结构内容的搜索请求进行过滤以标识项目路径;
针对空间边界的索引对空间位置的搜索请求进行过滤以标识框路径;以及
针对生成于框路径的经配置的产品结构对所述结构内容的搜索请求和/或对所述空间位置的搜索请求进行再过滤。
13.一种包括指令的非瞬态计算机程序产品,当程序由计算机执行时,所述指令使所述计算机执行权利要求1至12中任一项中的步骤。
CN202080102074.XA 2020-06-18 2020-06-18 对分层的数据结构进行索引的方法 Pending CN115702425A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/038385 WO2021257078A1 (en) 2020-06-18 2020-06-18 Method of indexing a hierarchical data structure

Publications (1)

Publication Number Publication Date
CN115702425A true CN115702425A (zh) 2023-02-14

Family

ID=71575792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080102074.XA Pending CN115702425A (zh) 2020-06-18 2020-06-18 对分层的数据结构进行索引的方法

Country Status (4)

Country Link
US (1) US20230205748A1 (zh)
EP (1) EP4168919A1 (zh)
CN (1) CN115702425A (zh)
WO (1) WO2021257078A1 (zh)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7970667B2 (en) * 2008-08-29 2011-06-28 Siemens Industry, Inc. System, method, and computer program product for a geometric search of a configurable product structure
US9128955B2 (en) * 2008-08-29 2015-09-08 Siemens Product Lifestyle Management Software Inc. System and method for a spatial index
US8725763B2 (en) * 2011-11-23 2014-05-13 Siemens Product Lifecycle Management Software Inc. Massive model visualization with spatial indexing
US9461876B2 (en) * 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
US20140214753A1 (en) * 2012-12-28 2014-07-31 Joseph Guerra Systems and methods for multi-source data-warehousing
US9613371B2 (en) * 2014-09-02 2017-04-04 Wal-Mart Stores, Inc. Dynamic taxonomy generation with demand-based product groups
US10614632B2 (en) * 2015-04-23 2020-04-07 Siemens Industry Software Inc. Massive model visualization with a product lifecycle management system
US11157517B2 (en) * 2016-04-18 2021-10-26 Amazon Technologies, Inc. Versioned hierarchical data structures in a distributed data store
US10983507B2 (en) * 2016-05-09 2021-04-20 Strong Force Iot Portfolio 2016, Llc Method for data collection and frequency analysis with self-organization functionality
US20170351226A1 (en) * 2016-06-01 2017-12-07 Rockwell Automation Technologies, Inc. Industrial machine diagnosis and maintenance using a cloud platform
US12020305B2 (en) * 2018-04-27 2024-06-25 Aras Corporation Query engine for executing configurator services in a self-describing data system
US11507054B2 (en) * 2018-12-31 2022-11-22 Palo Alto Research Center Incorporated Method and system for hierarchical multi-scale part design with the aid of a digital computer
US11029806B1 (en) * 2019-10-31 2021-06-08 Nationwide Mutual Insurance Company Digital product navigation tool
CN116113949A (zh) * 2020-08-31 2023-05-12 西门子工业软件有限公司 空间数据的限界方法
WO2022072921A1 (en) * 2020-10-04 2022-04-07 Strong Force Iot Portfolio 2016, Llc Industrial digital twin systems and methods with echelons of executive, advisory and operations messaging and visualization

Also Published As

Publication number Publication date
EP4168919A1 (en) 2023-04-26
US20230205748A1 (en) 2023-06-29
WO2021257078A1 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
US9582613B2 (en) Massive model visualization with spatial retrieval
CN111295651B (zh) 在多维数据库环境中使多个父母具有权重的系统和方法
US8583707B2 (en) Method, computer program, and system-model converter for converting system model
JP4934291B2 (ja) モデル化オブジェクトのデータベースにおいてグラフィカルにナビゲートを行う方法
RU2119188C1 (ru) Способ компьютерного управления построением изделий
CN101013425B (zh) 在plm数据库中选择对象的方法及实现该方法的装置
US20070067146A1 (en) System and method of interactively optimizing shipping density for a container
US20080046422A1 (en) System and Method for Planning and Generating Queries for Multi-Dimensional Analysis using Domain Models and Data Federation
US7698314B2 (en) Computer-implemented systems and methods for providing a counting measure
CN101004750A (zh) 用于在plm数据库中选择对象的方法和实现该方法的装置
JP2004519039A (ja) 圧縮データの構造を問い合わせる方法
JP5421248B2 (ja) 相互作用するオブジェクト集合をシミュレートするコンピュータ装置とその対応方法
CN115702425A (zh) 对分层的数据结构进行索引的方法
CN113297300A (zh) 数据表布局视图生成方法和装置,数据表输出方法和装置
US10600025B2 (en) Product intelligence engine
US20230334779A1 (en) Method of bounding spatial data
JP3470248B2 (ja) 部品展開処理システム
US11882001B2 (en) Efficient network updates
CN115186546A (zh) 车身质量优化方法、装置、设备及存储介质
CN117501272A (zh) 空间数据的限界方法
Nyström et al. Linking analytical target cascading to engineering information systems for simulation-based optimal vehicle design
CN118467369A (zh) 一种基于DataCube模型的数据库逻辑缺陷测试方法
Murti et al. Adapting Temporal Aspects to Static GIS Models
JP2001334431A (ja) 組み立て手順生成装置
Dewson Creating Indexes

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