CN102741841A - 比特序列检索装置、检索方法以及程序 - Google Patents

比特序列检索装置、检索方法以及程序 Download PDF

Info

Publication number
CN102741841A
CN102741841A CN2010800626871A CN201080062687A CN102741841A CN 102741841 A CN102741841 A CN 102741841A CN 2010800626871 A CN2010800626871 A CN 2010800626871A CN 201080062687 A CN201080062687 A CN 201080062687A CN 102741841 A CN102741841 A CN 102741841A
Authority
CN
China
Prior art keywords
node
array
numbering
branch
index key
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
CN2010800626871A
Other languages
English (en)
Inventor
新庄敏男
国分光裕
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.)
Kousokuya Inc
Original Assignee
S Grants Co 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
Priority claimed from JP2010043644A external-priority patent/JP5220047B2/ja
Priority claimed from JP2010121153A external-priority patent/JP5220057B2/ja
Application filed by S Grants Co Ltd filed Critical S Grants Co Ltd
Publication of CN102741841A publication Critical patent/CN102741841A/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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

分支节点包含鉴别比特位置,配置其链接目的地的节点对的代表节点的数组元素的节点参照编号是配置有分支节点的数组的节点参照编号2倍。叶节点包含索引关键字,仅配置在树的最下级。关于全部分支节点求出检索关键字的鉴别比特位置的比特值作为分支目的地信息,使链接源的分支节点的节点参照编号成为2倍并与分支目的地信息相加,求出配置有链接目的地的节点的数组元素的节点参照编号。

Description

比特序列检索装置、检索方法以及程序
技术领域
本发明涉及比特序列检索的技术,尤其涉及采用配对节点树的比特序列检索。
背景技术
近年来,随着社会的信息化进展,大规模的数据库逐渐被用于各个领域。为了从这样的大规模的数据库中检索记录,通常是将与存储各个记录的地址相对应的记录内的项目作为索引关键字进行检索,并找出期望的记录。另外,全文检索中的字符串也能够视为文档的索引关键字。
并且,以比特序列来表现这些索引关键字,因而能够将数据库的检索归结于比特序列数据的检索。作为与检索比特序列数据的比特序列检索相关的内容,具有采用下述专利文献1、专利文献2以及专利文献3等公开的配对节点树的检索技术。
图1A所示的是说明现有的配置在数组中的配对节点树的结构例的图。
参照图1A,在数组100的数组编号10的数组元素中配置节点101。节点101由节点类别102、鉴别比特位置103以及代表节点编号104构成。节点类别102是0表示节点101是分支节点。在鉴别比特位置103中存储有1。在代表节点编号104中存储有链接目的地的节点对的代表节点的数组编号20。此外,以下为了简化表述,有时也将代表节点编号中存储的数组编号称作代表节点编号。另外,有时还利用对该节点标注的标号或者对节点对标注的标号来表示代表节点编号中存储的数组编号。
在数组编号20的数组元素中存储有节点对111的代表节点即节点[0]112。并且,在相邻的下一数组元素(数组编号20+1)中存储有与代表节点配对的节点[1]113。在节点[0]112的节点类别114中存储有0,在鉴别比特位置115中存储有3,在代表节点编号116中存储有30。另外,在节点[1]113的节点类别117中存储有1,表示节点[1]113是叶节点。在索引关键字118中存储有“0001”。
此外,有时利用节点[0]来表示代表节点,利用节点[1]来表示与其配对的节点。另外,有时将某数组编号的数组元素中存储的节点称作该数组编号的节点,有时还将存储有节点的数组元素的数组编号称作节点的数组编号。
省略由数组编号30、31的数组元素中存储的节点122和节点123构成的节点对121的内容。
对存储有节点[0]112、节点[1]113、节点122以及节点123的数组元素分别附加的0或者1,表示在利用检索关键字进行检索时与节点对的哪个节点进行链接。与将位于前级分支节点的鉴别比特位置的检索关键字的比特值0或1与代表节点编号相加而得到的数组编号的节点链接。
因此,通过将检索关键字的鉴别比特位置的比特值与前级分支节点的代表节点编号相加,可求出存储有链接目的地的节点的数组元素的数组编号。
此外,在上述例子中,采用配置有节点对的数组编号中较小的数组编号作为代表节点编号,但是,显然也可以采用较大的数组编号作为代表节点编号。
图1B是概念性示出现有的配对节点树的树结构的图。
标号210a所示的是由图1B例示的配对节点树200的根节点。在图示的例子中,将根节点210a作为配置在数组编号220中的节点对201a的代表节点。
作为树结构,在根节点210a之下配置节点对201b,在其下层配置节点对201c和节点对201f,在节点对201f的下层配置节点对201h和节点对201g。在节点对201c之下配置节点对201d,在节点对201d之下配置节点对201e。
在各个节点之前附加的0或者1的标号与在图1中说明的数组元素之前附加的标号相同。根据检索关键字的鉴别比特位置的比特值来检索树,找到检索对象的叶节点。
在图示的例子中,根节点210a的节点类别260a是0,表示是分支节点,鉴别比特位置230a示出0。代表节点编号是220a,这是存储有节点对201b的代表节点210b的数组元素的数组编号。
节点对201b由节点210b和211b构成,它们的节点类别260b、261b都是0,表示是分支节点。在节点210b的鉴别比特位置230b中存储有1,在链接目的地的代表节点编号中存储有下述数组元素的数组编号220b,在该数组元素中存储有节点对201c的代表节点210c。
在节点210c的节点类别260c中存储有1,因而该节点是叶节点,因此,包含索引关键字。在索引关键字250c中存储有“000111”。另一方面,节点211c的节点类别261c是0,鉴别比特位置231c是2,在代表节点编号中存储有下述数组元素的数组编号221c,在该数组元素中存储有节点对201d的代表节点210d。
节点210d的节点类别260d是0,鉴别比特位置230d是5,在代表节点编号中存储有下述数组元素的数组编号220d,在该数组元素中存储有节点对201e的代表节点210e。与节点210d配对的节点211d的节点类别261d是1,在索引关键字251d中存储有“011010”。
节点对201e的节点210e、211e的节点类别260e、261e都是1,表示双方都是叶节点,在各自的索引关键字250e、251e中存储有“010010”和“010011”作为索引关键字。
在节点对201b的另一个节点即节点211b的鉴别比特位置231b中存储有2,在链接目的地的代表节点编号中存储有下述数组元素的数组编号221b,在该数组元素中存储有节点对201f的代表节点210f。
节点对201f的节点210f、211f的节点类别260f、261f都是0,表示双方都是分支节点。在各自的鉴别比特位置230f、231f中存储有5、3。在节点210f的代表节点编号中存储有下述数组元素的数组编号220f,在该数组元素中存储有节点对201g的代表节点210g,在节点211f的代表节点编号中存储有下述数组元素的数组编号221f,在该数组元素中存储有节点对201h的代表节点即节点[0]210h。
节点对201g的节点210g、211g的节点类别260g、261g都是1,表示双方都是叶节点,在各自的索引关键字250g、251g中存储有“100010”和“100011”。
另外同样,节点对201h的代表节点即节点[0]210h和与其配对的节点[1]211h的节点类别260h、261h都是1,表示双方都是叶节点,在各自的索引关键字250h、251h中存储有“101011”和“101100”。
接着,对采用上述配对节点树的基本检索处理进行说明。在以下的说明中虽然没有特别地图示,但是,为了在之后的处理中使用在处理中途得到的各种值,采用与各个处理相应的临时存储区域。另外,有时对某数据存储区域中存储的数据本身附加数据存储区域的标号进行说明,或者有时将数据本身的名字作为存储该数据的临时存储区域的名字使用。
图2是说明采用现有的配对节点树的比特序列检索的处理流程例的图。
首先,在步骤S201中,取得检索开始节点的数组编号。与取得的数组编号对应的数组存储有构成配对节点树的任意的节点。可根据来自操作人员的输入进行检索开始节点的指定,也可以通过利用图2例示的处理的应用程序进行检索开始节点的指定。
在未图示的检索开始节点设定区域内设定取得的检索开始节点的数组编号,但是,该检索开始节点设定区域是先前所述的“为了在之后的处理中采用在处理中途得到的各种值而与各个处理相应的临时存储区域”之一。在以下的说明中,有时改变成“在未图示的检索开始节点设定区域内设定”这样的表现,表述成“得到检索开始节点的数组编号”、“设定成为检索开始节点”或者仅仅表述成“设定为检索开始节点”。
接着,在步骤S202中,存储在搜索路径堆栈内取得的数组编号,在步骤S203中,将与该数组编号对应的数组元素作为应该参照的节点读出。然后,在步骤S204中,从读出的节点中取出节点类别,在步骤S205中,判定节点类别是否是分支节点。
在步骤S205的判定中,当读出的节点是分支节点时进到步骤S206,从节点中取出关于鉴别比特位置的信息,进而在步骤S207中,从检索关键字中取出与取出的鉴别比特位置对应的比特值。然后,在步骤S208中,从节点中取出代表节点编号,在步骤S209中,将从检索关键字中取出的比特值与代表节点编号相加作为新的数组编号,返回步骤S202。
以后,在步骤S205的判定中判定为叶节点而进到步骤S210之前,反复进行步骤S202到步骤S209的处理。在步骤S210中,从叶节点中取出索引关键字作为检索结果关键字,结束处理。
简单说明将根节点作为检索开始节点从图1B例示的配对节点树200中检索索引关键字“100010”的处理。鉴别比特位置从最上位比特的位置起为0、1、2、…。
检索开始节点是根节点,因而将比特序列“100010”作为检索关键字从根节点210a开始处理。根节点210a的鉴别比特位置230a是0,因而当观察到检索关键字“100010”的鉴别比特位置是0的比特值时是1。因此,与存储有代表节点编号的数组编号220a加1而得到的数组编号的数组元素中存储的节点211b链接。在节点211b的鉴别比特位置231b中存储有2,因而当观察到检索关键字“100010”的鉴别比特位置是2的比特值时是0,因而与存储有代表节点编号的数组编号221b的数组元素中存储的节点210f链接。
在节点210f的鉴别比特位置230f中存储有5,因而当观察到检索关键字“100010”的鉴别比特位置是5的比特值时是0,因而与存储有代表节点编号的数组编号220f的数组元素中存储的节点210g链接。
节点210g的节点类别260g是1,表示是叶节点,因而将索引关键字250g作为检索结果关键字读出。这样进行采用配对节点树的检索。此外,当对检索结果关键字与检索关键字比较时,双方都一致地是“100010”。
在上述图2所示的流程图例中,通过从节点中取出索引关键字作为检索结果关键字来结束检索处理,但是,还可以进一步进行检索结果关键字与检索关键字的一致判定,当一致时设为检索成功,当不一致时设为检索失败。
图1A和图1B所示的配对节点树的叶节点直接包含叶节点索引关键字,图2所示的检索处理是从叶节点中取出索引关键字。同样,在专利文献1和专利文献2中公开有该叶节点的结构和在检索处理中取出索引关键字。
另一方面,在专利文献3公开的配对节点树的叶节点中,存储有指示存储索引关键字的存储区域的位置的指针即参照指针来代替索引关键字。并且,通过从叶节点中取出参照指针并访问参照指针指向的存储区域,在检索处理中取出索引关键字。
另外,在专利文献4中记载有依次循环地转移配对节点树的节点的情况。
现有技术文献
专利文献
专利文献1:日本特开2008-015872号公报
专利文献2:日本特开2008-112240号公报
专利文献3:日本特开2008-269503号公报
专利文献4:日本特开2008-269197号公报
发明内容
发明要解决的问题
配对节点树与其以前用于检索处理的树相比,具有存储树的存储容量小这样的特征。但是,当检索对象的数据尺寸非常大时,希望成为可配置于更小容量的存储单元的树结构。
因此,本发明要解决的问题是提供可配置于更小容量的存储单元的配对节点树的树结构。
用于解决问题的手段
根据本发明,在与树上的位置相应的数组的数组元素中配置配对节点树的各个节点。将配置有根节点的数组元素的数组编号设为1,通过使配置有分支节点的数组元素的数组编号成为2倍来求出配置有分支节点的链接目的地的节点对的代表节点的数组元素的数组编号。因此,本发明的分支节点不需要包含代表节点编号。
根据本发明的第1方式,分支节点包含节点类别和鉴别比特位置,但不包含代表节点编号。另外,叶节点包含节点类别和索引关键字或者用于访问索引关键字的信息。用于访问索引关键字的信息可以是上述专利文献3所述的表示存储有索引关键字的存储区域的位置的参照指针,或者不仅限于此,还可以是求出存储有索引关键字的存储区域的位置的索引中的索引。
另外,根据本发明的第2方式,通过在检索对象的索引关键字的某特定比特位置***特定比特值“0”或者“1”来构成配对节点树,同样通过在检索关键字的与检索对象的索引关键字相同的特定比特位置***同一特定比特值“0”或者“1”来进行检索。并且,分支节点和叶节点不包含节点类别,分支节点包含鉴别比特位置,但不包含代表节点编号,叶节点包含索引关键字或者用于访问索引关键字的信息。
并且,当配对节点树的最大级数为N时,叶节点仅存在于第N级,而且可通过以在第N级只存在叶节点的方式构成树来判别节点的类别。因此,通过反复进行从根节点到最终级即第N级节点的链接动作来进行检索处理。
另外,根据本发明的第3方式,通过在检索对象的索引关键字的某特定比特位置***特定比特值“0”或者“1”来构成配对节点树,同样通过在检索关键字的与检索对象的索引关键字相同的特定比特位置***同一特定比特值“0”或者“1”来进行检索。并且,分支节点和叶节点不包含节点类别,分支节点包含鉴别比特位置,但不包含代表节点编号,叶节点包含索引关键字或者用于访问索引关键字的信息。
当配对节点树的最大级数为N时,叶节点仅存在于第N级,而且可通过以在第N级仅存在叶节点的方式构成树来判别节点的类别。
即,根据本发明的第3方式,配对节点树的结构与本发明第2实施方式的相同。
但是,在本发明的第3实施方式中,在基于检索关键字的检索处理的起始,利用分支节点的鉴别比特位置和检索关键字的比特值,求出表示在各分支节点的链接目的地中要分支到节点位置[0]和节点位置[1]的哪一方的分支目的地信息。然后,通过反复进行检索从根节点到最终级即第N级节点的各级分支目的地信息的链接动作来进行检索处理。
发明效果
根据本发明,分支节点至少不包含识别链接目的地的代表节点编号,因而能够减小节点的尺寸。例如当索引关键字数为16时,规定叶节点尺寸的用于表现索引关键字的比特数是4。另一方面,规定现有的分支节点尺寸的鉴别比特位置所需的比特数是2,作为包含根节点的链接目的地的节点对数为1+1+2+4+8=16,因而代表节点编号所需的比特数是4,因此,所需的比特数共计为6。
因此,现有的分支节点需要比叶节点大的存储容量。当索引关键字数变大时,该存储容量的差距进一步扩大。但是,根据本发明,不需要存储代表节点编号的存储区域,因而能够减小配置配对节点树的数组尺寸。
另外,根据本发明的第2实施方式和第3实施方式,除了减小配置配对节点树的数组尺寸之外,还删除了基于检索处理中的节点类别判定的分支动作,因而能够提高处理速度。
附图说明
图1A是说明现有的配置在数组中的配对节点树的结构例的图。
图1B是概念性示出现有的配对节点树的树结构的图。
图2是说明采用现有的配对节点树的比特序列检索的处理流程例的图。
图3是说明用于实施本发明的硬件结构例的图。
图4A是说明本发明第1实施方式中的配置于数组中的配对节点树的结构例的图。
图4B是概念性示出本发明第1实施方式的配对节点树的树结构的图。
图5是说明本发明第1实施方式中的比特序列检索装置的功能块结构例的图。
图6是说明本发明第1实施方式中的比特序列检索的处理流程例的图。
图7是示出采用本发明第1实施方式中的配对节点树的检索例的图。
图8A是说明本发明第2实施方式中的配置于数组中的配对节点树的结构例的图。
图8B是概念性示出本发明第2实施方式的配对节点树的树结构的图。
图9是说明本发明第2实施方式中的比特序列检索装置的功能块结构例的图。
图10是说明本发明第2实施方式中的比特序列检索的处理流程例的图。
图11是说明本发明第2实施方式中的求出链接目的地的数组编号的处理流程例的图。
图12是示出采用本发明第2实施方式中的配对节点树的检索例的图。
图13是说明本发明第1实施方式的变形例中的配置于数组中的配对节点树的结构例的图。
图14是说明本发明第1实施方式的变形例中的比特序列检索的处理流程例的图。
图15是说明本发明第2实施方式的变形例中的配置于数组中的配对节点树的结构例的图。
图16是说明本发明第2实施方式的变形例中的比特序列检索的处理流程例的图。
图17是说明求出链接目的地的数组编号的处理流程例的图。
图18A是说明本发明第1以及第2实施方式中的生成无指针树的处理的前级处理流程例的图。
图18B是说明本发明第1以及第2实施方式中的生成无指针树的处理的后级处理流程例的图。
图19是说明从循环开始节点起循环树并在无指针树中存储节点的处理流程例的图。
图20A是说明本发明第1实施方式中的生成节点的处理的处理流程例的图。
图20B是说明本发明第2实施方式中的生成节点的处理的处理流程例的图。
图21是说明求出变换前的树的最大级数的处理流程例的图。
图22是示出从循环开始节点起循环树并对节点的级数进行计数来求出已循环节点的最大级数的处理流程例的图。
图23是说明本发明第3实施方式中的检索处理的概念的图。
图24是说明本发明第3实施方式中的检索处理的处理流程例的图。
图25A是说明利用检索关键字根据分支节点数组求出分支目的地数组的处理流程例的图。
图25B是说明利用鉴别比特位置和检索关键字来在分支目的地数组中设定分支目的地信息的处理流程例的图。
图26A是说明根据分支目的地数组来求出叶节点数组的节点参照编号的处理流程例的图。
图26B是说明利用分支目的地信息来求出下一级节点的数组编号的处理流程例的图。
图26C是说明利用分支目的地信息来求出叶节点数组的节点参照编号的处理流程例的图。
图27是说明本发明第3实施方式中的比特序列检索装置的功能块结构例的图。
图28A是说明本发明第3实施方式中的生成无指针树的处理的前级处理流程例的图。
图28B是说明本发明第3实施方式中的生成无指针树的处理的后级处理流程例的图。
图29是说明本发明第3实施方式中的生成分支节点的处理的处理流程例的图。
图30是说明本发明第3实施方式中的生成叶节点的处理的处理流程例的图。
图31A是说明求出变换前的树的最大级数的处理的前级处理流程例的图。
图31B是说明求出变换前的树的最大级数的处理的后级处理流程例的图。
具体实施方式
图3是说明用于实施本发明的硬件结构例的图。可通过至少具备中央处理装置302和高速缓冲存储器303的数据处理装置301采用数据存储装置308来实施本发明的检索装置的检索处理。具有配置配对节点树的数组309和存储在检索中存储有搜寻节点的数组元素的数组编号的搜索路径堆栈310的数据存储装置308可利用主存储装置305或外部存储装置306来实现,或者还可以采用经由通信装置307连接的配置于远方的装置。
此外,当在叶节点上存储用于访问索引关键字的信息而不是索引关键字时,在数据存储装置上设置有存储索引关键字的存储区域。
在图3的例示中,主存储装置305、外部存储装置306以及通信装置307可经由一根总线304与数据处理装置301连接,但是,连接方法不仅限于此。另外,可以使主存储装置305成为数据处理装置301内的装置,也可以将搜索路径堆栈310作为中央处理装置302内的硬件来实现。或者,显然,数组309在外部存储装置306中,可根据可使用的硬件环境、索引关键字集合的大小等来适当地选择硬件结构,例如将搜索路径堆栈310保持在主存储装置305内等。
另外,虽没有特别地图示,但是,显然为了在之后的处理中使用在处理中途得到的各种值而采用了对应于各个处理的临时存储装置。
接着,参照图4A~图7来说明本发明的第1实施方式。
图4A是说明本发明第1实施方式中的配置于数组中的配对节点树的结构例的图。与图1A所示的结构例相比,没有存储分支节点到代表节点编号的区域。另外,数组编号记载有1~15的连续编号。
参照图4A,在数组400的数组编号1的数组元素中配置有根节点401。根节点401由节点类别402和鉴别比特位置403构成。节点类别402是0,表示根节点401是分支节点。在鉴别比特位置403存储有1。
在具有在树上位于最接近上位的父节点即根节点401的数组编号1的2倍值的数组编号2的数组元素中,配置有从数组编号是1的根节点401起的虚线箭头410所示的链接目的地节点对411的代表节点即节点[0]412。并且,在相邻的下一数组元素(数组编号3)中配置有与代表节点配对的节点[1]413。在节点[0]412的节点类别中存储有1,表示节点[0]412是叶节点。在索引关键字418中存储有“0001”。另一方面,在节点[1]413的节点类别中存储有0,表示节点[1]413是分支节点。在分支节点413的鉴别比特位置存储有3。
在具有父节点即节点413的数组编号3的2倍值的数组编号6的数组元素中,配置有从数组编号是3的分支节点413起的虚线箭头420所示的链接目的地节点对421的代表节点即节点422。并且,在相邻的下一数组元素(数组编号7)中配置有与代表节点配对的节点423。在节点422的节点类别中存储有0,表示节点422是分支节点。在分支节点422的鉴别比特位置存储有4。另外,在节点423的节点类别中也存储有0,表示节点423是分支节点。在分支节点422的鉴别比特位置存储有5。
并且,在数组编号4和数组编号5的数组元素中没有配置节点。
由上述例示可知,链接目的地的节点对的代表节点的数组编号是父节点的数组编号的2倍。
因此,在数组编号12的数组元素中,配置有从数组编号是6的分支节点422起的虚线箭头430所示的链接目的地节点对431的代表节点即节点432。并且,在相邻的下一数组元素(数组编号13)中配置有与代表节点配对的节点433。省略节点432和节点433的内容记载。
同样,在数组编号14的数组元素中,配置有从数组编号是7的分支节点423起的虚线箭头440所示的链接目的地节点对441的代表节点即节点442。并且,在相邻的下一数组元素(数组编号15)中配置有与代表节点配对的节点443。省略节点442和节点443的内容记载。
另外,在数组编号8~数组编号11的数组元素中没有配置节点。
图4B是概念性示出本发明第1实施方式中的配对节点树的树结构的图。与图1B所示的配对节点树200的树结构相比,图4B所示的配对节点树200a的叶节点是相同的,分支节点的鉴别比特位置的值也与图1B所示的相同,因而树本身的分支图形也相同。但是,分支节点不包含链接目的地的节点对的代表节点的数组编号即代表节点编号。可通过使分支节点的数组编号成为2倍来得到代表节点编号,因而通过附加有代表节点编号的标号的虚线箭头来表示基于代表节点编号的与链接目的地的结合。另外,在表示各个节点的标号附近,如[1]那样对根节点210a显示配置有各个节点的数组元素的数组编号。除了代表节点编号和数组编号的表述之外都与图1B所述的内容相同,因此省略更多的说明。
图5是说明本发明第1实施方式中的比特序列检索装置的功能块结构例的图。
图5例示的本实施方式的比特序列检索装置500具备检索树存储单元510、检索开始位置设定单元520、节点读出单元530、节点类别判定单元540、检索关键字设定单元550、节点链接单元560以及检索结果输出单元570。
在检索树存储单元510的存储区域内确保数组,在该数组中配置配对节点树。在检索开始位置设定单元520中设定检索开始节点的数组编号。当将根节点作为检索开始节点时,设定1作为数组编号。可由利用检索处理结果的用户来设定检索开始位置。
节点读出单元530读出检索开始位置设定单元520设定的数组编号的检索开始节点或者节点链接单元560设定的数组编号的链接目的地的节点。节点类别识别单元540判定节点读出单元530读出的节点的类别,如果是叶节点则将该叶节点发送到检索结果输出单元570,如果是分支节点则将该分支节点发送到节点链接单元560。
在检索关键字设定单元550中设定检索关键字。可由利用检索处理结果的用户来设定检索关键字。节点链接单元560将位于从节点类别判定单元540发送来的分支节点的鉴别比特位置的、检索关键字设定单元550设定的检索关键字的比特值与配置有分支节点的数组元素的数组编号的2倍值相加而得到的值,设定为配置有接着读出的节点的数组元素的数组编号。
检索结果输出单元570由从节点类别判定单元540发送来的叶节点中取出索引关键字或者用于访问索引关键字的信息。在从叶节点中取出的是索引关键字时,将该索引关键字作为检索结果关键字输出。在从叶节点取出的是用于访问索引关键字的信息时,根据取出的用于访问索引关键字的信息读出索引关键字,作为检索结果关键字输出。
此外,对检索结果关键字与检索关键字进行比较,能够输出在一致时设为检索成功,在不一致时设为检索失败的检索结果。
参照上述图5说明的功能块结构仅仅是一个例子,显然能够进行各种变形。
以下,参照图6说明本发明第1实施方式中的检索处理。图6是说明本发明第1实施方式中的比特序列检索的处理流程例的图。
首先,在步骤S601中,对链接目的地数组编号设定1。这里所说的链接目的地数组编号是先前所述的未图示的临时存储区域的一个例子。在链接目的地数组编号中设定有检索开始节点的数组编号和链接目的地的节点对的代表节点的数组编号。在图6所示的例子中,将检索开始节点设为根节点。即使在将检索开始节点设为根节点以外的节点时,以下的处理流程也是同样的。
接着,在步骤S603中,从数组中读出设定为链接目的地数组编号的数组编号的数组元素作为应该参照的节点。然后,在步骤S604中,从读出的节点中取出节点类别,在步骤S605中,判定节点类别是否是分支节点。
在步骤S605的判定中读出的节点是分支节点时进到步骤S606,从节点中取出关于鉴别比特位置的信息,进而,在步骤S607中,从检索关键字中取出与取出的鉴别比特位置对应的比特值。然后,在步骤S608中,使设定为链接目的地数组编号的数组编号成为2倍,设定为链接目的地数组编号。进而,在步骤S609中,将在步骤S607中从检索关键字中取出的比特值与在步骤S608中设定为链接目的地数组编号的数组编号相加,作为新的数组编号设定为链接目的地数组编号,返回至步骤S603。
以后,在步骤S605的判定中判定为叶节点而进到步骤S610之前,反复进行步骤S603到步骤S609的处理。在步骤S610中,从叶节点中取出索引关键字,结束处理。
此外,在上述的例子中,假定在叶节点中直接含有索引关键字,但是,当在叶节点中含有用于访问索引关键字的信息时,在步骤S610中从叶节点中取出用于访问索引关键字的信息,进而在追加步骤中,采用取出的用于访问索引关键字的信息来取出索引关键字。
另外,在取出索引关键字之后,还可以将该索引关键字作为检索结果关键字用于其它应用,或者还可以进行与检索关键字的一致判定,设为检索成功或者检索失败。
接着,参照图7来说明采用本发明第1实施方式的配对节点树的检索例。图7仅记载有图4B例示的配对节点树中需要说明的部分,节点211b的下位部分被省略。
在图7所示的例子中,在检索关键字设定区域270内设定比特序列“011010”(以下,表述为检索关键字270)作为检索关键字,检索开始节点为根节点210a。另外,还记载有如下内容:利用使链接源的分支节点的数组编号成为2倍而得到的代表节点编号与检索关键字的鉴别比特位置的比特值之和,求出链接目的地的数组编号。
以下,沿着图7的记载来说明检索处理的流程。
检索开始节点是根节点,因而在检索开始时,对链接目的地数组编号设定1,因而读出节点210a。然后,节点210a的节点类别220a是0,表示是分支节点,因而从鉴别比特位置230a取出其值0。检索关键字270的比特位置0的值是0,因而链接目的地数组编号是使数组编号1成为2倍后的代表节点编号220a加0而得到的2,接着读出配置在数组编号2的数组元素中的节点210b。
节点210b的节点类别220b是0,表示是分支节点,因而从鉴别比特位置230b中取出其值1。检索关键字270的比特位置1的值是1,因而链接目的地数组编号是使数组编号2成为2倍后的代表节点编号220b加1而得到的5,接着读出配置在数组编号5的数组元素中的节点211c。
节点211c的节点类别221c是0,表示是分支节点,因而从鉴别比特位置231c取出其值2。检索关键字270的比特位置2的值是1,因而链接目的地数组编号是使数组编号5成为2倍后的代表节点编号221c加1而得到的11,接着读出配置在数组编号11的数组元素中的节点211d。
节点211d的节点类别221d是1,表示是叶节点,因而从索引关键字251d中取出索引关键字“011010”,结束检索处理。
接着参照图8A~图12来说明本发明的第2实施方式。
图8A是说明本发明第2实施方式中的配置于数组内的配对节点树的结构例的图。在本实施方式中,从叶节点、分支节点中删除节点类别,仅在树的最下级配置叶节点。此外,假定索引关键字、检索关键字相对于原来的索引关键字、检索关键字,在某特定的比特位置即最上位比特***0。链接目的地的数组编号的求出方法与第1实施方式相同。此外,作为最上位比特附加的比特值也可以是1而不是0。总之,只要将同一比特值作为最上位比特附加即可。另外,***特定比特值的某特定的比特位置可以是任意的比特位置,而不仅限于最上位的比特位置。***同一比特值的比特位置不会出现在配对节点树的原来的分支节点的鉴别比特位置。因此,可将其作为后面说明的虚拟分支节点的鉴别比特位置使用并***虚拟的分支节点,由此能够仅在树的最下级配置叶节点。
参照图8A,在数组800的数组编号1的数组元素中配置有根节点801。根节点801由鉴别比特位置803构成。在鉴别比特位置803中存储有2。
在具有在树上位于最接近上位的父节点即根节点801的数组编号1的2倍值的数组编号2的数组元素中,配置有从数组编号是1的根节点801起的虚线箭头810所示的链接目的地节点对811的代表节点即节点[0]812。然后,在相邻的下一数组元素(数组编号3)中配置有与代表节点配对的节点[1]813。
在节点[0]812的鉴别比特位置存储有0,其链接目的地如虚线箭头840所示,是存储在节点[0]812的数组编号2的2倍的数组编号4的数组元素中的节点842。另外,在节点842的鉴别比特位置存储有0,其链接目的地如虚线箭头850所示,是存储在节点842的数组编号4的2倍的数组编号8的数组元素中的节点852。
节点852位于图8A例示的配对节点树的最下级,因而是叶节点,在索引关键字818中存储有在最上位比特***0的索引关键字“00001”。
在图8A所示的例子中,索引关键字“00001”根据根节点801的鉴别比特位置803的比特位置2上的比特值0,与已经存储于其它数组元素中的索引关键字区别。因此,如图4A所示的第1实施方式那样,存储在根节点的最接近下位的数组编号2的数组元素中的节点是原来的叶节点的位置,但是,在本实施方式中,没有采用识别是叶节点的节点类别,因而***鉴别比特位置是最上位比特位置0的虚拟分支节点812、842而位于最下级。此外,如图8A所示的数组编号5的数组元素为空那样,与第2级的虚拟分支节点842配对的节点为实质上不存在的空节点。
另一方面,在节点[1]813的鉴别比特位置存储有4。在具有父节点即节点813的数组编号3的2倍值的数组编号6的数组元素中,配置有从数组编号是3的分支节点813起的虚线箭头820所示的链接目的地节点对821的代表节点即节点822。然后,在相邻的下一数组元素(数组编号7)中配置有与代表节点配对的节点823。在节点822的鉴别比特位置存储有5。另外,在节点823的鉴别比特位置存储有6。
在数组编号12的数组元素中,配置有从数组编号是6的分支节点822起的虚线箭头830所示的链接目的地节点对831的代表节点即节点832。然后,在相邻的下一数组元素(数组编号13)中配置有与代表节点配对的节点833。省略节点832和节点833的内容记载。另外,还省略分支节点823的链接目的地的记载。
图8B是概念性示出本发明第2实施方式中的配对节点树的树结构的图。在图8B所示的树结构中,在存储于图4B所示的树结构内的各索引关键字的最上位比特位置追加0,比特长度从6比特变成7比特。与其相伴,标注有与图4B所示的分支节点同一标号的分支节点的鉴别比特位置移动1比特,值增大1。
另外,图4B所示的树结构中的级数是5级,因而在图8B所示的树结构中,叶节点仅位于第5级。并且,在图4A所示的树结构中位于第5级的上位阶层的叶节点成为鉴别比特位置是0的虚拟分支节点。然后,在虚拟分支节点的最接近下位的节点成为第5级节点之前,***虚拟的分支节点。
配置有最接近下位的节点对的代表节点的数组元素的数组编号即代表节点编号的计算方法与第1实施方式的相同。
在图4B所示的例示中,附加0作为最上位比特,因而例如将原来的索引关键字“000111”存储于叶节点210j,但是,显然在附加1作为最上位比特的情况下存储于叶节点211j。
图9是说明本发明第2实施方式中的比特序列检索装置的功能块结构例的图。
图9例示的本实施方式的比特序列检索装置900具备检索树存储单元910、检索开始位置设定单元920、节点读出单元9301~930n、检索关键字设定单元950、节点链接单元9601~960n-1以及检索结果输出单元970。其中,n是配对节点树的级数。
与先前说明的第1实施方式相同,在检索树存储单元910的存储区域内确保数组,在该数组中配置有本发明第2实施方式的配对节点树。另外,检索开始位置设定单元920设定根节点的数组编号1作为检索开始节点的数组编号。
节点读出单元9301读出检索开始位置设定单元设定的数组编号1的根节点。
检索关键字设定单元950设定检索关键字。可由利用检索处理结果的用户来设定检索关键字。节点链接单元9601将位于节点读出单元9601读出的分支节点的鉴别比特位置的、检索关键字设定单元950设定的检索关键字的比特值与根节点的数组编号1的2倍值相加而得到的值,设定为配置有接着读出的节点的数组元素的数组编号。
以下同样地,节点链接单元9602~960n-1将位于节点读出单元9302~930n-1读出的分支节点的鉴别比特位置的、检索关键字设定单元950设定的检索关键字的比特值与前级的节点链接单元9601~960n-2设定的数组编号的2倍值相加而得到的值,分别设定为配置有接着读出的节点的数组元素的数组编号。
节点读出单元9302~930n-1读出前级的节点链接单元9601~960n-2设定的数组编号的分支节点,节点读出单元930n读出节点链接单元960n-1设定的数组编号的叶节点,发送到检索结果输出单元970。
检索结果输出单元970与第1实施方式的情况相同地由从节点读出单元930n发送来的叶节点中,取出索引关键字或者用于访问索引关键字的信息。在从叶节点中取出的是索引关键字时,将该索引关键字作为检索结果关键字输出。在从叶节点中取出的是用于访问索引关键字的信息时,根据取出的用于访问索引关键字的信息读出索引关键字,作为检索结果关键字输出。
另外,以下情况也与第1实施方式的情况相同,即对检索结果关键字与检索关键字进行比较,能够输出在一致时设为检索成功,在不一致时设为检索失败的检索结果。
接着,参照图10和图11来说明本发明第2实施方式中的检索处理。
图10是说明本发明第2实施方式中的比特序列检索的处理流程例的图。在图10所示的例子中,配对节点树的级数为n。
首先,在步骤S1001中,对链接目的地数组编号设定1。
接着,在步骤S1002中,利用存储在链接目的地数组编号(根节点的数组编号)指向的数组中的鉴别比特位置和检索关键字,求出第2级节点的数组编号。
接着,在步骤S1003中,利用存储在第2级节点的数组编号指向的数组中的鉴别比特位置和检索关键字,求出第3级节点的数组编号。
以下同样地,在步骤S1004~步骤S100n中,利用存储在第3级~第n-1级节点的数组编号指向的数组中的鉴别比特位置和检索关键字,分别求出第4级~第n级节点的数组编号。后面参照图11来详细说明步骤S1002~步骤S100n的处理。
最后,取出存储在第n级节点的数组编号指向的数组中的比特序列作为索引关键字,结束处理。
此外,图10例示的处理流程例采用具有特定级数n的本实施方式的配对节点树,但是,通过将级数n作为参数的汇编程序宏,可生成用于实现采用本实施方式的任意级数的配对节点树的检索处理的处理流程。
图11是说明本发明第2实施方式中的求出链接目的地的数组编号的处理流程例的图,示出图10所示的步骤S1002~步骤S100n的详细处理。
首先,在步骤S1101中,从数组中读出存储在链接目的地数组编号指向的数组元素中的内容作为鉴别比特位置,在步骤S1102中,从检索关键字中取出该读出的鉴别比特位置指向的比特值。
接着,在步骤S1103中,使设定为链接目的地数组编号的数组编号成为2倍,设定为链接目的地数组编号。进而在步骤S1104中,将在步骤S1102中取出的比特值与在步骤S1103中设定为链接目的地数组编号的数组编号相加,设定为链接目的地数组编号,结束处理。
接着,参照图12说明采用本发明第2实施方式的配对节点树的检索例。图12仅记载图8B例示的配对节点树中需要说明的部分,节点211b的下位部分被省略。
在图12所示的例子中,在检索关键字设定区域280内设定有比特序列“0011010”(以下,表述为检索关键字280)作为检索关键字。检索关键字280对采用图4B所示的本发明第1实施方式的配对节点树的检索例中的检索关键字270附加0而作为最上位比特。检索开始节点是根节点210a。与图4B所示的检索例相同,还记载有利用使链接源的分支节点的数组编号成为2倍后的代表节点编号与检索关键字的鉴别比特位置的比特值之和,求出链接目的地的数组编号。
以下,沿着图12的记载来说明检索处理的流程。
检索开始节点是根节点,因而在检索开始时,对链接目的地数组编号设定1,因此读出节点210a。然后,从节点210a的鉴别比特位置230a取出其值1。检索关键字280的比特位置1的值是0,因而链接目的地数组编号是使数组编号1成为2倍后的代表节点编号220a加0而得到的2,接着读出配置在数组编号2的数组元素中的节点210b。
然后,从节点210b的鉴别比特位置230b中取出其值2。检索关键字280的比特位置2的值是1,因而链接目的地数组编号是使数组编号2成为2倍后的代表节点编号220b加1而得到的5,接着读出配置在数组编号5的数组元素中的节点211c。
然后,从节点211c的鉴别比特位置231c取出其值3。检索关键字280的比特位置3的值是1,因而链接目的地数组编号是使数组编号5成为2倍后的代表节点编号221c加1而得到的11,接着读出配置在数组编号11的数组元素中的节点211d。
然后,从节点211d的鉴别比特位置231d取出其值0。检索关键字280的比特位置0的值是0,因而链接目的地数组编号是使数组编号11成为2倍后的代表节点编号221i加0而得到的22,接着读出配置在数组编号22的数组元素中的节点2101。
节点2101位于配对节点树的最下位级,因而从索引关键字2501中取出检索结果的索引关键字“0011010”,结束检索处理。
接着,说明上述第1实施方式和第2实施方式的变形例。这些变形例用于能够将存储树的数组灵活地配置到存储装置的区域内,或者能够将树配置到存在于存储装置的任意区域内的数组中。
图13是说明本发明第1实施方式的变形例中的存储于数组中的配对节点树的结构例的图。与图4A所示的结构例进行比较,追加基础编号600和偏移编号610。另外,取代图4A的数组编号1~15,记载节点参照编号620的值1~15。在图13中,关于数组编号630,记载100、111、122、123、134~137、148~155作为该编号的值。
另外,在图13中作为基础编号600的值例示100,作为偏移编号610的值例示10、20、30、40。
其它标号使用对图4A所示的对应标号附加a后的标号。
基础编号是与后述第1级的偏移编号组合来规定树的根节点位置的编号。通过采用基础编号,可不需要如图4A和图4B例示的那样将根节点的数组编号限制成1。
偏移编号是规定存储树的各级节点的开始位置的编号。通过采用偏移编号,可按照该节点所处的树上的级数来配置树的节点。在偏移编号表中按照级数预先设定偏移编号。
节点参照编号是规定节点顺次的编号,相对于图4例示的数组编号。
可通过基础编号、偏移编号以及节点参照编号之和,求出数组编号。
在本变形例中,当将基础编号设为0,将各级的偏移编号设为0时,节点参照编号与图4A和图4B例示的数组编号一致,本变形例的配对节点树与图4A和图4B例示的第1实施方式的配对节点树一致。
参照图13,基础编号600是100(以下,称作基础编号100),偏移编号610(第1级)是10(以下,称作偏移编号10),节点参照编号620是1(以下,称作节点参照编号1),因而在数组400a的数组编号630是111(以下,称作数组编号111)的数组元素中配置根节点401a。根节点401a由节点类别402a和鉴别比特位置403a构成。节点类别402a是0,表示根节点401a是分支节点。在鉴别比特位置403a存储有1。
在将基础编号100和偏移编号20之和与具有在树上位于最接近上位的父节点即根节点401a的节点参照编号1的2倍值的节点参照编号2相加而得到的数组编号122的数组元素中,配置有从节点参照编号1的根节点401a起的虚线箭头410a所示的链接目的地节点对411a的代表节点即节点[0]412a。然后,在相邻的下一数组元素(节点参照编号3、数组编号123)中配置有与代表节点配对的节点[1]413a。在节点[0]412a的节点类别中存储有1,表示节点[0]412a是叶节点。在索引关键字418a中存储有“0001”。另一方面,在节点[1]413a的节点类别中存储有0,表示节点[1]413a是分支节点。在分支节点413a的鉴别比特位置存储有3。
在将基础编号100和偏移编号30之和与具有父节点即节点413a的节点参照编号3的2倍值的节点参照编号6相加而得到的数组编号136的数组元素中,配置有从节点参照编号是3的分支节点413a起的虚线箭头420a所示的链接目的地节点对421a的代表节点即节点422a。然后,在相邻的下一数组元素(节点参照编号7、数组编号137)中配置有与代表节点配对的节点423a。在节点422a的节点类别中存储有0,表示节点422a是分支节点。在分支节点422a的鉴别比特位置存储有4。另外,在节点423a的节点类别中也存储有0,表示节点423a是分支节点。在分支节点422a的鉴别比特位置存储有5。
并且,在数组编号134和数组编号135的数组元素中没有配置节点。
由上述例示可知,链接目的地的节点对的代表节点的节点参照编号为父节点的节点参照编号的2倍。
因此,在将基础编号100和偏移编号40之和与节点参照编号12相加而得到的数组编号152的数组元素中,配置有从节点参照编号是6的分支节点422a起的虚线箭头430a所示的链接目的地节点对431a的代表节点即节点432a。然后,在相邻的下一数组元素(节点参照编号13、数组编号153)中配置有与代表节点配对的节点433a。省略节点432a和节点433a的内容记载。
同样,在将基础编号100和偏移编号40之和与节点参照编号14相加而得到的数组编号154的数组元素中,配置有从节点参照编号是7的分支节点423a起的虚线箭头440a所示的链接目的地节点对441a的代表节点即节点442a。然后,在相邻的下一数组元素(节点参照编号15、数组编号155)中配置有与代表节点配对的节点443a。省略节点442a和节点443a的内容记载。
另外,在数组编号148~数组编号151的数组元素中没有配置节点。
在本变形例中,配对节点树的树结构本身与图4B所示的相同。不同点是在图4A和图4B所示的树结构中,利用与数组相连的数组编号来规定节点在树上的位置,与此相对,在本变形例中是利用与数组独立的节点参照编号进行规定。
并且,可通过组合节点参照编号与基础编号和偏移编号来访问节点。
因此,可通过适当选择偏移编号,在主存储装置中配置例如树中的上位n级,在外部存储装置中配置第n级的下位节点。
接着,参照图14说明本发明第1实施方式的变形例中的检索处理。图14是说明本发明第1实施方式的变形例中的比特序列检索的处理流程例的图。与图6所示的处理流程例进行比较,不同点是,增加了节点参照编号、基础编号以及偏移编号的使用和利用这些编号求出数组编号。
首先,在步骤S1401a中设定基础编号,在步骤S1401b中设定偏移编号表。进而,在步骤S1401c中对级数计数器设定值1,在步骤S1401d中对节点参照编号设定值1。在图14所示的例子中,将检索开始节点设为根节点,但是,对级数计数器和节点参照编号指定1以外的编号,将检索开始节点设为根节点以外的节点时,以下的处理流程也是同样的。
接着,在步骤S1402a中,从偏移编号表内取出级数计数器指示的偏移编号,在步骤S1402b中,将基础编号和偏移编号与节点参照编号相加而得到的值设定为链接目的地数组编号。
接着,在步骤S1403中,从数组中读出设定为链接目的地数组编号的数组编号的数组元素作为应该参照的节点。然后,在步骤S1404中,从读出的节点中取出节点类别,在步骤S1405中,判定节点类别是否是分支节点。
在步骤S1405的判定中读出的节点是分支节点时进到步骤S1406,从节点中取出关于鉴别比特位置的信息,进而在步骤S1407中,从检索关键字中取出与取出的鉴别比特位置对应的比特值。然后,在步骤S1408中,将在步骤S1407中得到的值与使节点参照编号成为2倍后的值相加而得到的值设定为节点参照编号。进而,在步骤S1409中对级数计数器加1,返回至步骤S1403。
以后,在步骤S1405的判定中判定为叶节点而进到步骤S1410之前,反复进行步骤S1402a~步骤S1409的处理。
在步骤S1410中,从叶节点中取出索引关键字,结束处理。
此外,在上述的例子中,在叶节点中直接包含索引关键字,但是,当在叶节点中包含用于访问索引关键字的信息时,在步骤S1410中从叶节点中取出用于访问索引关键字的信息,进而在追加步骤中,采用取出的用于访问索引关键字的信息来取出索引关键字。
另外,在取出索引关键字之后,可将该索引关键字作为检索结果关键字用于其它应用,或者还可以进行与检索关键字的一致判定,设为检索成功或者检索失败。
接着,对本发明第2实施方式的变形例进行说明。基础编号、偏移编号以及节点参照编号的技术意义、与数组编号的关系和第1实施方式的变形例相同。
图15是说明本发明第2实施方式的变形例中的存储于数组中的配对节点树的结构例的图。与图8A所示的结构例进行比较,追加基础编号700和偏移编号710。另外,取代图8A的数组编号1~15,记载有节点参照编号720的值1~15。在图15中,关于数组编号730,记载有100、111、122、123、134~137、148~155作为其编号值。
另外,在图15中作为基础编号700的值例示100,作为偏移编号710的值例示10、20、30、40。
其它标号使用对图8A所示的对应标号附加a后的标号。
在本变形例中,与第1实施方式的变形例相同,当将基础编号设为0,将各级的偏移编号设为0时,节点参照编号与图8A和图8B例示的数组编号一致,本变形例的配对节点树与图8A和图8B例示的第2实施方式的配对节点树一致。
参照图15,基础编号是100,偏移编号是10,节点参照编号是1,因而在数组800a的数组编号111的数组元素中配置有根节点801a。根节点801a由鉴别比特位置803a构成。在鉴别比特位置803a存储有2。
在将基础编号100和偏移编号20之和与具有在树上位于最接近上位的父节点即根节点801a的节点参照编号1的2倍值的节点参照编号2相加而得到的数组编号122的数组元素中,配置有从节点参照编号是1的根节点801a起的虚线箭头810a所示的链接目的地节点对811a的代表节点即节点[0]812a。然后,在相邻的下一数组元素(节点参照编号3、数组编号123)中配置有与代表节点配对的节点[1]813a。
在节点[0]812a的鉴别比特位置存储有0,其链接目的地如虚线箭头840a所示,是存储在将基础编号100和偏移编号30之和与具有节点[0]812a的节点参照编号2的2倍值的节点参照编号4相加而得到的数组编号134的数组元素中的节点842a。另外,在节点842的鉴别比特位置存储有0,其链接目的地如虚线箭头850a所示,是存储在将基础编号100和偏移编号40之和与具有节点842a的节点参照编号4的2倍值的节点参照编号8相加而得到的数组编号148的数组元素中的节点852a。
节点852a位于图15例示的配对节点树的最下级,因而是叶节点,在索引关键字818a中存储有在最上位比特***0的索引关键字“00001”。
另一方面,在节点[1]813a的鉴别比特位置存储有4。在将基础编号100和偏移编号30之和与具有父节点即节点813a的节点参照编号3的2倍值的节点参照编号6相加而得到的数组编号136的数组元素中,配置有从节点参照编号是3的分支节点813a起的虚线箭头820a所示的链接目的地节点对821a的代表节点即节点822a。然后,在相邻的下一数组元素(节点参照编号7、数组编号137)中配置有与代表节点配对的节点823a。在节点822a的鉴别比特位置存储有5。另外,在节点823a的鉴别比特位置存储有6。
在将基础编号100和偏移编号40之和与具有节点参照编号6的2倍值的节点参照编号12与相加而得到的数组编号152的数组元素中,配置有从节点参照编号是6的分支节点822a起的虚线箭头830a所示的链接目的地节点对831a的代表节点即节点832a。然后,在相邻的下一数组元素(节点参照编号13、数组编号153)中配置有与代表节点配对的节点833a。省略节点832和节点833的内容记载。另外,还省略分支节点823a的链接目的地的记载。
在本变形例中,配对节点树的树结构本身与图8B所示的相同。不同点是,在图8A和图8B所示的树结构中利用与数组相连的数组编号来规定节点在树上的位置,与此相对,与第1实施方式的变形例相同,在本变形例中也是利用与数组独立的节点参照编号进行规定。
然后,可通过组合节点参照编号与基础编号和偏移编号来访问节点。
因此,可通过适当选择偏移编号,在主存储装置中配置例如树中的上位n级,在外部存储装置中配置第n级的下位节点。
接着,参照图16说明本发明第2实施方式的变形例中的检索处理。图16是说明本发明第2实施方式的变形例中的比特序列检索的处理流程例的图。与图10所示的处理流程例进行比较,不同点是增加了节点参照编号、基础编号以及偏移编号的使用和利用这些编号求出数组编号。
首先,在步骤S1601a中设定基础编号,在步骤S1601b中设定偏移编号表。进而,在步骤S1601c中对节点参照编号设定值1。进而,在步骤S1601d中,将基础编号和偏移编号与节点参照编号相加而得到的值设定为链接目的地数组编号。通过步骤S1601d的处理,在链接目的地数组编号中设定根节点的数组编号。
接着,在步骤S1602中,利用存储在根节点的数组编号(链接目的地数组编号)指向的数组中的鉴别比特位置和检索关键字,求出第2级节点的数组编号。
接着,在步骤S1603中,利用存储在第2级节点的数组编号指向的数组中的鉴别比特位置和检索关键字,求出第3级节点的数组编号。
以下同样地,在步骤S1604~步骤S160n中,利用存储在第3级~n-1级节点的数组编号指向的数组中的鉴别比特位置和检索关键字,分别求出第4级~第n级节点的数组编号。后面参照图17详细说明步骤S1602~步骤S160n的处理。
最后,取出存储在第n级节点的数组编号指向的数组中的比特序列作为索引关键字,结束处理。
此外,与图10例示的处理流程例相同,图16例示的处理流程例采用具有特定级数n的本实施方式的配对节点树,但是,也可以通过将级数n作为参数的汇编程序宏,生成用于实现采用本实施方式的任意级数的配对节点树的检索处理的处理流程。
图17是说明本发明第2实施方式的变形例中的求出链接目的地的数组编号的处理流程例的图,表示图16所示的步骤S1602~步骤S160n的详细处理。
首先,在步骤S1701中,从数组中读出存储在链接目的地数组编号指向的数组元素中的内容作为鉴别比特位置,在步骤S1702中,从检索关键字中取出该读出的鉴别比特位置指向的比特值。
接着,在步骤S1703a中,从偏移编号表中取出下一级的偏移编号,在步骤S1703b中,将在步骤S1702中得到的值与使节点参照编号成为2倍后的值相加而得到的值设定为节点参照编号。进而,在步骤S1704中,将基础编号和偏移编号与节点参照编号相加而得到的值设定为链接目的地数组编号,结束处理。
接着,说明本发明第1实施方式和第2实施方式的配对节点树的生成。此外,在以下的说明中,有时将本发明第1实施方式和第2实施方式的树称作无指针树,将以往的配对节点树简称作树或者变换前的树。
例如可如下这样地实现本发明的无指针树的生成。即,在生成无指针树时,利用存储在无指针树上的索引关键字来生成图1A和图1B例示的方式的树。并且,通过从根节点依次循环树的节点并变换成本发明第1实施方式或者第2实施方式的节点,来实现无指针树的生成。以下详细地说明该节点的循环,该节点的循环与在作为上述专利文献4引用的日本特开2008-269197号公报的图10A~图12以及与其关联的说明书的记载中公开的节点转移处理中使用的循环类似。
树的生成已在作为上述专利文献1引用的日本特开2008-15872号公报的图5~图8以及与其关联的说明书的记载中公开,并作了详细说明,因而在此省略说明。
图18A是示出生成本发明第1以及第2实施方式中的无指针树的处理的前级处理流程例的图。如图18A所示,首先,在步骤S1801中,取得用于生成无指针树的数组,在步骤S1802中对数组元素初始化。在采用虚拟分支节点的第2实施方式的处理例中需要该步骤S1802的处理,在第1实施方式中可予以省略。
接着,在步骤S1802a中求出变换前的树的最大级数,在步骤S1802b中将该最大级数设定为级数计数器的上限值。在第2实施方式中为了将叶节点配置于无指针树的最下级而采用级数计数器的上限值。因此,与步骤S1802的处理相同,在第1实施方式中可予以省略。
后面,参照图21和图22来详细说明步骤S1802a的处理。
接着,在步骤S1803中设定基础编号,在步骤S1804中设定偏移编号表。
此外,在步骤S1805中对级数计数器设定1,在步骤S1806中将1设定为节点参照编号,在步骤S1807中,将树的根节点的数组编号设定为循环开始节点的数组编号,进到图18B所示的步骤S1812。
此外,上述图18A和以下附图例示的流程与图13或者图15所示的变形例对应。但是,在变形例中,当将基础编号设为0,将各级中的偏移编号设为0,将节点参照编号设为数组编号时,示出图4A或者图8A所示的方式的树的生成处理。因此,图18A和以下附图例示的流程说明包含变形例的第1实施方式和第2实施方式的无指针树的生成处理。
图18B是示出生成本发明第1以及第2实施方式中的无指针树的处理的后级处理流程例的图。如图18B所示,在步骤S1812中,从循环开始节点起循环树,变换循环目的地的节点并存储到无指针树上。后面,参照图19来详细说明步骤S1812的处理。
接着,在步骤S1813中,判定搜索路径堆栈的堆栈指针是否指向树的根节点的数组编号。在步骤S1812的处理中向搜索路径堆栈存储数组编号。
当搜索路径堆栈的堆栈指针指向树的根节点的数组编号时,树的全部节点的处理结束,因而结束处理。否则进到步骤S1814。
在步骤S1814中,从搜索路径堆栈取出数组编号,使搜索路径堆栈的堆栈指针减1。接着,在步骤S1815中,根据在步骤S1814中取出的数组编号求出节点位置,在步骤S1816中判定该节点位置是否是节点[0]。如果节点位置不是节点[0],则在步骤S1817中从级数计数器减去值1,返回到步骤S1813。如果节点位置是节点[0],则进到步骤S1818。
在步骤S1818中,对在步骤S1814中取出的数组编号加上值1,得到节点[1]的数组编号。然后,在步骤S1819中将在步骤S1818中得到的节点[1]的数组编号设定为循环开始节点的数组编号,在步骤S1820中对节点参照编号加1,返回到步骤S1812。
在步骤S1813中判定为搜索路径堆栈的堆栈指针指向树的根节点的数组编号之前反复进行上述步骤S1812~步骤S1820的环路处理,由此进行树上的全部节点的循环,将各个节点变换成无指针树的节点而生成无指针树。
图19是说明从循环开始节点起循环树并将节点存储于无指针树上的处理流程例的图,是说明图18B的步骤S1812的详细处理的图。
如图所示,首先,在步骤S1901中,将循环开始节点的数组编号设定为数组编号。在图18B所示的步骤S1812~步骤S1820的环路处理的初次处理中,在图18A的步骤S1807中设定循环开始节点的数组编号,在其以后的处理中在图18B所示的步骤S1819中设定。
接着,在步骤S1902中,在搜索路径堆栈中存储数组编号。在步骤S1901或者后述的步骤S1910中设定该数组编号。
接着,在步骤S1903中,从存储有变换前的树的数组中读出数组编号指向的数组元素作为节点,在步骤S1904中,根据节点参照编号,对在图18A的步骤S1801中取得的数组的数组元素写入节点,由此生成无指针树的节点。后面,参照图20A和图20B来详细说明步骤S1904的处理。图20A用于说明第1实施方式,图20B用于说明第2实施方式。
接着,在步骤S1905中,从在步骤S1903中读出的节点中取出节点类别,在步骤S1906中判定该取出的节点类别是否表示分支节点。当在步骤S1906中判定为节点类别不表示分支节点而表示叶节点时结束处理,当表示分支节点时,进到步骤S1907。
在步骤S1907中,对级数计数器加上值1,进到步骤S1908,使节点参照编号成为2倍。进而,在步骤S1909中,从在步骤S1903中读出的节点中取出代表节点编号,在步骤S1910中,将值0与该取出的代表节点编号相加而得到的值设定为数组编号,返回至步骤S1902。
在步骤S1906中节点类别表示叶节点之前反复进行上述步骤S1902~步骤S1910的环路处理。即,作为成组的处理使节点从循环开始节点循环到最初的叶节点而读出节点,在变换该节点后写入无指针树的节点。在图19所示的处理流程例中,根据以上的说明本领域的技术人员可知,在步骤S1910中对代表节点编号加上值0而设定为数组编号,因而节点优先循环到节点[0]侧,但是,也可以节点优先循环到节点[1]侧。
图20A是说明本发明第1实施方式中的生成节点的处理的处理流程例的图,是详细说明图19所示的步骤S1904的第1实施方式中的处理的图。
如图所示,首先,在步骤S2001中,从偏移编号表取出级数计数器指示的偏移编号,在步骤S2002中,将基础编号和偏移编号与节点参照编号相加而得到的值设定为数组编号。这里的数组编号是设定存储无指针树的数组的数组元素的数组编号的临时存储区域,与设定存储在图19A的步骤S1901或步骤S1910中设定的变换前的树的数组的数组元素的数组编号的临时存储区域不同。
接着,在步骤S2003中,从在图19的步骤S1903中读出的节点中取出节点类别,在步骤S2004中,判定该取出的节点类别是否是分支节点。当判定结果是肯定时,进到步骤S2005,当是否定时,进到步骤S2007。
在步骤S2005中,从节点中取出鉴别比特位置,在步骤S2006中,对在步骤S2002中设定的数组编号指向的数组元素写入节点类别和鉴别比特位置,生成分支节点并结束处理。
在步骤S2007中,从节点中取出索引关键字,在步骤S2008中,对在步骤S2002中设定的数组编号指向的数组元素写入节点类别和索引关键字,生成分支节点并结束处理。
图20B是说明本发明第2实施方式中的生成节点的处理的处理流程例的图,是详细说明图19所示的步骤S1904的第2实施方式中的处理的图。
如图所示,首先,在步骤S2021中,从偏移编号表中取出级数计数器指示的偏移编号,在步骤S2023中,从在图19的步骤S1903中读出的节点中取出节点类别,进到步骤S2024。
在步骤S2024中,判定在步骤S2023中取出的节点类别是否是分支节点。当判定结果是肯定时,进到步骤S2025,当是否定时,进到步骤S2029。
在步骤S2025中,将基础编号和偏移编号与节点参照编号相加而得到的值设定为数组编号。然后,在步骤S2026中,从节点中取出鉴别比特位置,在步骤S2027中,对该鉴别比特位置加上值1,在步骤S2028中,对在步骤S2025中设定的数组编号指向的数组元素写入鉴别比特位置,生成分支节点并结束处理。
另一方面,在步骤S2024的判定是否定且在步骤S2023中取出的节点类别为叶节点时,进到步骤S2029,转移节点参照编号和级数计数器,进到步骤S2030。
在步骤S2030中,判定级数计数器是否是上限值,如果不是上限值,则在步骤S2031中使节点参照编号成为2倍,在步骤S2032中将值1与级数计数器相加,在步骤S2033中从偏移编号表中取出级数计数器指示的偏移编号并返回至步骤S2030。
上述步骤S2030~S2033的环路处理用于将第2实施方式中的叶节点配置在无指针树的最下级水平。在图1B、图8B的例示中,例如在图1B的变换前的树中处于第3级的叶节点210c变换成在图8B中处于第5级的节点210j。然后,利用图20B的步骤S2029的处理来转移图8B中的节点210c的位置信息。
此外,在图18A所示的步骤S1802b中设定级数计数器的上限值,但是,也可以取而代之地,在生成变换前的树时,每次***叶节点时对该叶节点的级数进行计数,将其最大值作为树的属性进行存储,在生成第2实施方式的无指针树时,将其最大值作为级数计数器的上限值。
在上述步骤S2030中,当判定为级数计数器是上限值时,进到步骤S2034,将基础编号和偏移编号与节点参照编号相加而得到的值设定为数组编号。然后,在步骤S2035中,从节点中取出索引关键字,在步骤S2036中,在该索引关键字的最上位的比特位置***比特值“0”,在步骤S2037中,对在步骤S2034中设定的数组编号指向的数组元素写入索引关键字,生成叶节点并进到步骤S2038。
在步骤S2038中,将在步骤S2029中转移的节点参照编号和级数计数器分别设定为节点参照编号和级数计数器,结束处理。
接着,说明求出变换前的树的最大级数的处理。
图21是说明求出变换前的树的最大级数的处理流程例的图,是详细说明图18A的步骤S1802a的处理的图。
如图21所示,首先,在步骤S2101中,对级数计数器设定值1,在步骤S2102中,对最大级数计数器设定在级数计数器中设定的值。即,对级数计数器和最大级数计数器设定值1作为初始值。
接着,在步骤S2112中,从循环开始节点起循环树,对循环目的地的节点的级数进行计数,求出已循环节点的最大级数。后面,参照图22详细说明步骤S2112的处理。
接着,在步骤S2113中,判定搜索路径堆栈的堆栈指针是否指向树的根节点的数组编号。在步骤S2112的处理中向搜索路径堆栈存储数组编号。
当搜索路径堆栈的堆栈指针指向树的根节点的数组编号时,树的全部节点的循环完成因而结束处理。否则进到步骤S2114。
在步骤S2114中,从搜索路径堆栈中取出数组编号,使搜索路径堆栈的堆栈指针减1。接着,在步骤S2115中,根据在步骤S2114中取出的数组编号求出节点位置,在步骤S2116中判定该节点位置是否是节点[0]。如果节点位置是节点[0],则在步骤S2117中从级数计数器减去值1后返回到步骤S2113。如果节点位置是节点[0],则进到步骤S2118。
在步骤S2118中,对在步骤S2114中取出的数组编号加上值1而得到节点[1]的数组编号。然后,在步骤S2119中将在步骤S2118中得到的节点[1]的数组编号设定为循环开始节点的数组编号并返回到步骤S2112。
在步骤S2113中判定为搜索路径堆栈的堆栈指针指向树的根节点的数组编号之前,反复进行上述步骤S2112~步骤S2119的环路处理,由此进行树上的全部节点的循环,求出已循环节点的最大级数即变换前树的最大级数。
图22是示出从循环开始节点起循环树并对节点的级数进行计数来求出已循环节点的最大级数的处理流程例的图,是详细说明图21的步骤S2112的处理的图。
如图所示,首先,在步骤S2201中,将循环开始节点的数组编号设定为数组编号。在图21所示的步骤S2112~步骤S2119的环路处理的初次处理中,在图21的步骤S2107中设定循环开始节点的数组编号,在其以后的处理中在图21所示的步骤S2119中进行设定。
接着,在步骤S2202中,在搜索路径堆栈中存储数组编号。在步骤S2201或者后述的步骤S2210中设定该数组编号。
接着,在步骤S2203中,从存储有变换前的树的数组中读出数组编号指向的数组元素作为节点,接着,在步骤S2205中,从该读出的节点中取出节点类别。
接着,在步骤S2206中,判定该取出的节点类别是否表示分支节点。在步骤S2206中判定为节点类别表示分支节点时,进到步骤S2207,当判定为节点类别不表示分支节点而表示叶节点时,进到步骤S2210。
在步骤S2207中,将值1与级数计数器相加,在步骤S2209中,从在步骤S2203中读出的节点中取出代表节点编号,在步骤S2210中,将对该取出的代表节点编号加上值0而得到的值设定为数组编号,返回到步骤S2202。
在步骤S2206中节点类别表示叶节点之前,反复进行上述步骤S2202~步骤S2210的环路处理。此外,在图22所示的处理流程例中,在步骤S2210中,对代表节点编号加上值0而设定为数组编号,因而节点优先循环到节点[0]侧,但是,本领域的技术人员可知,与先前说明的图19的处理同样,也可以节点优先循环到节点[1]侧。
当在上述步骤S2206中判定为节点类别表示叶节点时,进到步骤S2210,判定级数计数器的值是否大于最大级数计数器中设定的值,如果不大于最大级数计数器中设定的值,则直接结束处理,如果大于最大级数计数器中设定的值,则在步骤S2211中,将级数计数器的值设定为最大级数计数器,结束处理。
接着,参照图23~图31A对本发明的第3实施方式进行说明。此外,如前所述,本发明第3实施方式的配对节点树的结构与第2实施方式的相同。因此,在以下的本发明第3实施方式的说明中,参照图8A和图8B的记载。
图23是说明本发明第3实施方式的检索处理的概念的图。
存储图3所示的配对节点树的数组309被分离为存储图23所示的分支节点的分支节点数组309a和存储叶节点的叶节点数组309b。在各个数组中存储有图8B所示的配对节点树200b的分支节点和叶节点。
[0160]
在分支节点数组309a和叶节点数组309b的数组元素中,除了各个数组编号730a、730b之外还分别附加节点参照编号720a、720b。然后,在分支节点数组309a和叶节点数组309b中还分别附加有基础编号700a、700b。节点参照编号是虚拟的或者逻辑的数组编号,是从1开始的连续编号。
基础编号用于从1开始数组的数组元素的节点参照编号。基础编号与节点参照编号之和为数组编号。在图23的例子中,分支节点数组309a的数组编号730a的开头值是11,因而通过将基础编号700a的值设为10,使节点参照编号720a的值从1开始。叶节点数组309b的数组编号730b的开头值是51,因而通过将基础编号700b的值设为50,使节点参照编号720b的值与节点参照编号720a同样从1开始。
通过导入基础编号和节点参照编号,可提高分支节点数组309a与叶节点数组309b在数组内的配置自由度。另外,还可以提高存储分支节点数组309a和叶节点数组309b的存储单元的选择度。
此外,当将基础编号设为0时,节点参照编号与数组编号相等。在图8A中例示不将分支节点数组与叶节点数组分离地存储到基础编号为0的数组中的配对节点树的结构例。另外,图8B是概念性示出不将分支节点数组与叶节点数组分离地存储到基础编号为0的数组中的配对节点树的树结构的图。
图23还记载有检索关键字280和分支目的地数组311。在检索关键字280中存储有比特序列“0011010”。
在分支节点数组309a的节点参照编号720a的值1的数组元素(以下,称作节点参照编号1的数组元素)中存储有根节点210a的鉴别比特位置的值1(以下,称作鉴别比特位置1),存储在检索关键字280中的比特序列的比特位置1的比特值是0,因而在分支目的地数组的数组编号1的数组元素中存储有0。
存储在该分支目的地数组的数组编号1的数组元素中的分支目的地信息0表示当利用检索关键字280检索图2B所示的配对节点树时,在根节点210a的最接近下位的节点对210b中,检索通路向节点位置是0的节点210b分支。
接着,在分支节点数组309a的节点参照编号2的数组元素中存储有节点210b的鉴别比特位置2,存储在检索关键字280中的比特序列的比特位置2的比特值是1,因而在分支目的地数组的数组编号2的数组元素中存储有1。
以下同样地,在分支节点数组309a的节点参照编号3的数组元素中存储有节点211b的鉴别比特位置3,存储在检索关键字280中的比特序列的比特位置3的比特值是1,因而在分支目的地数组的数组编号3的数组元素中存储有1。
在分支节点数组309a的节点参照编号5的数组元素中存储有节点211c的鉴别比特位置3,存储在检索关键字280中的比特序列的比特位置3的比特值是1,因而在分支目的地数组的数组编号5的数组元素中存储有1。
在分支节点数组309a的节点参照编号6的数组元素中存储有鉴别比特位置6,存储在检索关键字280中的比特序列的比特位置6的比特值是0,因而在分支目的地数组的数组编号6的数组元素中存储有0。
在分支节点数组309a的节点参照编号7的数组元素中存储有鉴别比特位置4,存储在检索关键字280中的比特序列的比特位置4的比特值是0,因而在分支目的地数组的数组编号4的数组元素中存储有0。
在分支节点数组309a的节点参照编号10的数组元素中存储有鉴别比特位置6,存储在检索关键字280中的比特序列的比特位置6的比特值是0,因而在分支目的地数组的数组编号10的数组元素中存储有0。
在分支节点数组309a的节点参照编号11的数组元素中存储有节点211d的鉴别比特位置0,存储在检索关键字280中的比特序列的比特位置0的比特值是0,因而在分支目的地数组的数组编号11的数组元素中存储有0。同样,在其它分支节点数组309a的、与存储有鉴别比特位置0的数组元素的节点参照编号同一值的数组编号指向的分支目的地数组311的数组元素中存储有0。
在本发明的第3实施方式中,从作为比特序列检索对象的比特序列的集合中生成分支节点数组309a和叶节点数组309b,当指定检索关键字280时,利用检索关键字280和分支节点数组来生成分支目的地数组311。
然后,利用分支目的地数组求出存储有作为检索结果的索引关键字的叶节点数组的数组编号。
首先,读出存储在分支目的地数组311的数组编号1的粗框所示的数组元素中的分支目的地信息(以下,称作数组编号1的分支目的地信息),与使数组编号成为2倍后的值相加,存储接着读出的分支目的地信息,求出数组元素的数组编号。在图23的例示中,如与图8B中的表述同样附有标号的虚线箭头220a所示,使数组编号1成为2倍后加上0,求出数组编号2。读出存储在粗框所示的数组元素中的分支目的地信息的值1。
接着,如虚线箭头220b所示,读出存储在数组编号2的粗框所示的数组元素中的分支目的地信息的值1,与使数组编号2成为2倍后的值相加,求出数组编号5。
此外,如虚线箭头221c所示,读出存储在数组编号5的粗框所示的数组元素中的分支目的地信息的值1,与使数组编号5成为2倍后的值相加,求出数组编号11。
下一分支目的地是配对节点树的最下级。如虚线箭头221i所示,读出存储在数组编号11的粗框所示的数组元素中的分支目的地信息的值0,并将其与使数组编号11成为2倍后的值相加,从相加求出的值减去分支节点数组309a的最大节点参照编号15,得到叶节点数组309b的节点参照编号7。从粗框所示的叶节点数组309b的节点参照编号7的数组元素中存储的叶节点210i取出索引关键字“0011010”,结束检索处理。
此外,在上述图23的例示中,假定分离分支节点数组309a和叶节点数组309b进行说明,为了求出叶节点数组309b的节点参照编号7,从分支目的地信息0与使分支目的地数组的数组编号11成为2倍后的值相加而求出的值减去分支节点数组309a的最大节点参照编号15,在1个数组中存储分支节点和叶节点的情况下,节点参照编号为一连串编号,因而当求出存储有叶节点的数组元素的节点参照编号时,不需要减去存储分支节点的最后数组元素的节点参照编号。
接着,参照图24~图26来详细说明本发明第3实施方式中的检索处理。
图24是示出本发明第3实施方式中的检索处理的处理流程例的图。
如图24所示,首先,在步骤S2401中设定检索关键字。该检索关键字的设定在图23所示的例子中相当于在检索关键字280中设定比特序列“0011010”。
接着,在步骤S2402中,根据检索关键字由分支节点数组求出分支目的地数组。该处理在图23所示的例子中相当于由先前说明的检索关键字280和分支节点数组309a来生成分支目的地数组311的处理。后面参照图25A以及图25B来说明步骤S2402的详细处理流程。
接着,在步骤S2403中,根据分支目的地数组求出叶节点数组的节点参照编号。该处理在图23所示的例子中相对于如下这样的处理,即依次读出从先前说明的分支目的地数组的数组编号1的数组元素中存储的分支目的地信息到数组编号11的数组元素中存储的分支目的地信息,根据数组编号11的数组元素中存储的分支目的地信息和分支节点数组的节点参照编号的最大值,求出叶节点数组的节点参照编号。后面参照图26A和图26B来说明步骤S2403的详细处理流程。
最后,在步骤S2404中,将在步骤S2403中求出的节点参照编号指向的叶节点数组的数组元素的内容作为索引关键字取出并结束处理。这里,还可以将在步骤S2404中取出的索引关键字作为检索结果关键字,或者还可以将该索引关键字与检索关键字进行比较,当一致时设为检索成功,当不一致时设为检索失败。
图25A是说明利用检索关键字根据分支节点数组求出分支目的地数组的处理流程例的图,是说明图24所示的步骤S2402的详细处理流程的图。在图25A所示的例子中,将配置在分支节点数组中的分支节点数设为m。
首先,在步骤S2500中,对数组编号和节点参照编号设定1。
接着,在步骤S2501中,利用存储在节点参照编号1指向的分支节点数组的数组元素中的鉴别比特位置和检索关键字,对数组编号1指向的分支目的地数组的数组元素设定表示分支目的地信息的比特值。
接着,在步骤S2502中,利用存储在节点参照编号2指向的分支节点数组的数组元素中的鉴别比特位置和检索关键字,对数组编号2指向的分支目的地数组的数组元素设定表示分支目的地信息的比特值。
以下同样地,在步骤S2503~步骤S250m中,利用存储在节点参照编号3~m指向的分支节点数组的数组元素中的鉴别比特位置和检索关键字,在数组编号3~m指向的分支目的地数组的数组元素中分别设定表示分支目的地信息的比特值。
此外,图25A例示的处理流程例是利用配置有特定数即m个分支节点的分支节点数组来生成分支目的地数组,但是,也可以利用将个数m作为参数的汇编程序宏,生成用于实现利用配置有任意个数的分支节点的分支节点数组来生成分支目的地数组的处理的处理流程。
另外,如图25A例示的那样可知,取代与配置在分支节点数组中的各鉴别比特位置对应地依次串联执行采用该鉴别比特位置的处理的处理流程,而是设置判定与配置在分支节点数组中的鉴别比特位置对应的处理是否全部结束的判定处理,利用包含如果没有结束则反复进行采用下一鉴别比特位置的处理的环路处理在内的处理流程,也可得到相同的处理结果。接着,参照图25B来详细说明步骤S2501~步骤S250m的处理。
图25B是说明利用存储在分支节点数组的数组元素中的鉴别比特位置和检索关键字来对分支目的地数组的数组元素设定表示分支目的地信息的比特值的处理流程例的图。
首先,在步骤S2510中,从分支节点数组中读出节点参照编号指向的数组元素的内容作为鉴别比特位置。在步骤S2510的最初处理中,利用图25A的步骤S2500中的处理对节点参照编号设定1。
接着,在步骤S2511中,从检索关键字中取出在步骤S2510中读出的鉴别比特位置指示的比特值,在步骤S2512中,在数组编号指向的分支目的地数组的数组元素中设定该取出的比特值作为分支目的地信息。在步骤S2512的最初处理中,利用图25A的步骤S2500中的处理对数组编号设定1。
接着,在步骤S2513中,对数组编号加1,在步骤S2514中,对节点参照编号加1并结束处理。通过按照分支节点数组的每个数组元素依次执行以上说明的步骤S2510~步骤S2514的处理,可以对分支目的地数组的数组元素依次设定分支目的地信息。
图26A是说明根据分支目的地数组求出叶节点数组的节点参照编号的处理流程例的图,是说明图24所示的步骤S2403的详细处理流程的图。在图26A所示的例子中,设配对节点树的级数为n。
首先,在步骤S2600中,对数组编号设定1。接着,在步骤S2601中,利用存储在与第1级节点(根节点)对应的数组编号(以下,称作第1级节点的数组编号)即数组编号1指向的分支目的地数组中的分支目的地信息,求出第2级节点的数组编号。
接着,在步骤S2602中,利用存储在第2级节点的数组编号指向的分支目的地数组中的分支目的地信息,求出第3级节点的数组编号。
以下同样地,在步骤S2603~步骤S260n-2中,利用存储在第3级~第n-2级节点的数组编号指向的分支目的地数组中的分支目的地信息,分别求出第4级~第n-1级节点的数组编号。后面,参照图26B详细说明步骤S2601~步骤S260n-2的处理。
最后,在步骤S260n-1中,利用存储在第n-1级节点的数组编号指向的分支目的地数组中的分支目的地信息,求出叶节点数组的节点参照编号并结束处理。后面,参照图26C详细说明步骤S260n-1的处理。
此外,图26A例示的处理流程例采用了具有特定级数n的本实施方式的配对节点树,但是,也可以利用将级数n设为参数的汇编程序宏,生成用于实现采用本实施方式的任意级数的配对节点树的检索处理的处理流程。
另外,如图26A例示的那样可知,取代与配置在分支目的地数组中的配对节点树的各级节点的分支目的地信息对应地依次串联执行采用该分支目的地信息的处理的处理流程,而是设置判定与最下级的上一级节点的分支目的地信息对应的处理是否已结束的判定处理,利用包含如果没有结束则反复进行采用下一级节点的分支目的地信息的处理的环路处理在内的处理流程,也可得到相同的处理结果。
图26B是说明利用分支目的地信息求出下一级节点的数组编号的处理流程例的图,是说明图26A所示的步骤S2602~步骤S260n-2的处理的详细处理流程的图。
如图所示,首先,在步骤S2611中,从分支目的地数组中读出数组编号指向的分支目的地信息。在步骤S2611的最初处理中,利用图26A的步骤S2600中的处理对数组编号设定1。
接着,在步骤S2612中,使数组编号成为2倍,在步骤S2613中,将在步骤S2611中得到的分支目的地信息与数组编号相加,结束处理。
上述图26B的处理在图23所示的例示中是虚线箭头220a、220b、221c所示的处理。例如虚线箭头220b所示,该处理是读出存储在数组编号2的粗框所示的数组元素中的分支目的地信息的值1,并与使数组编号2成为2倍后的值相加而求出数组编号5。
图26C是说明利用分支目的地信息求出叶节点数组的节点参照编号的处理流程例的图,是说明图26A所示的步骤S260n-1的详细处理流程的图。
如图所示,首先,在步骤S2621中,从分支目的地数组中读出第(n-1)级节点的数组编号指向的分支目的地信息。利用图26A的步骤S260n-2中的处理来设定第(n-1)级节点的数组编号。
接着,在步骤S2622中,使数组编号成为2倍,在步骤S2623中,将在步骤S2611中得到的分支目的地信息与数组编号相加而得到的值设定为叶节点数组的节点参照编号。
然后,在步骤S2624中,将从在步骤S2623中设定的叶节点数组的节点参照编号中减去分支节点数组的节点参照编号的最大值而得到的值设定为叶节点数组的节点参照编号,结束处理。
上述图26C的处理在图23所示的例示中是虚线箭头221i所示的处理。
如先前所述,当在1个数组中存储分支节点和叶节点时,节点参照编号为一连串的编号,因而当求出存储有叶节点的数组元素的节点参照编号时,不需要减去存储分支节点的最后数组元素的节点参照编号。因此,在此情况下,从处理流程中删除图26C所示的步骤S2624的处理。
图27是说明本发明第3实施方式中的比特序列检索装置的功能块结构例的图。
图27例示的本实施方式的比特序列检索装置1000具有:检索树存储单元1010、检索开始位置设定单元1020、检索关键字设定单元1050、分支目的地信息设定执行部1030、分支目的地信息存储单元1070、初级节点分支目的地信息存储位置设定单元1080、下一级节点分支目的地信息存储位置计算执行部1040以及叶节点输出执行部1060。
在检索树存储单元1010的存储区域中确保数组,在该数组中配置本发明第3实施方式的配对节点树。如图23例示的那样,还可以将配对节点树分离成存储分支节点的分支节点数组和存储叶节点的叶节点数组进行配置。
检索开始位置设定单元1020对检索开始节点的节点参照编号设定根节点的节点参照编号1,并且,对存储分支目的地信息的分支目的地数组的数组编号设定1。检索开始位置设定单元1020的功能与图25A所示的步骤S2500的处理相对应。另外,在检索关键字设定单元1050中设定检索关键字。
分支目的地信息设定执行部1030包含分支节点读出单元1031~103m以及分支目的地信息提取单元1051~105m。m是存储在检索树存储单元1010中的分支节点数。在图23所示的例子中m=15。
分支节点读出单元1031~103m从配置在检索树存储单元1010中的分支节点数组中读出节点参照编号指向的数组元素的内容作为鉴别比特位置,并与分支目的地数组的数组编号一起输出到分支目的地信息提取单元。然后,分别对分支目的地数组的数组编号和分支节点数组的节点参照编号加1后输出到下一分支节点读出单元。
分支目的地信息提取单元1051~105m从检索关键字设定单元1050设定的检索关键字中取出分支节点读出单元1031~103m输出的鉴别比特位置指示的比特值,在分支节点读出单元1031~103m输出的数组编号指向的分支目的地数组的数组元素中设定该比特值作为分支目的地信息。分支节点读出单元1031和分支目的地信息提取单元1051的功能与图25A所示步骤S2501的处理相对应。同样,直到分支节点读出单元103m和分支目的地信息提取单元105m为止的各个分支节点读出单元和分支目的地信息提取单元的功能与直到图25A所示的步骤S250m为止的各个处理相对应。
在分支目的地信息存储单元1070的存储区域中确保分支目的地数组。
初级节点分支目的地信息存储位置设定单元1080对分支目的地数组的数组编号设定1。初级节点分支目的地信息存储位置设定单元1080的功能与图26A所示的步骤S2600的处理相对应。
下一级节点分支目的地信息存储位置计算执行部1040包含下一级节点分支目的地信息存储位置计算算单元1041~104n-2。n是配对节点树的级数。
下一级节点分支目的地信息存储位置计算单元1041~104n-2从分支目的地数组中读出数组编号指向的分支目的地信息,使数组编号成为2倍,求出成为2倍后的数组编号加上分支目的地信息而得到的值,作为存储有与下一级节点对应的分支目的地信息的分支目的地数组的数组元素的数组编号。下一级节点分支目的地信息存储位置计算单元1041~104n-2的功能与图26A所示的步骤S2601~S260n-2的处理分别对应。
用于下一级节点分支目的地信息存储位置计算单元1041读出分支目的地信息的数组编号是初级节点分支目的地信息存储位置设定单元1080设定的。用于下一级节点分支目的地信息存储位置计算单元1042~104n-2读出分支目的地信息的数组编号是各个前级的下一级节点分支目的地信息存储位置计算单元求出的数组编号。
将下一级节点分支目的地信息存储位置计算单元104n-2求出的数组编号输入以下说明的叶节点输出执行部1060,用于读出叶节点。
叶节点输出执行部1060包含叶节点存储位置计算单元1061和检索结果输出单元1062。
叶节点存储位置计算单元1061读出下一级节点分支目的地信息存储位置计算单元104n-2求出的数组编号指向的分支目的地信息,使数组编号成为2倍,求出成为2倍后的数组编号加上分支目的地信息而得到的值,作为叶节点数组的数组元素的虚拟节点参照编号。然后,求出从虚拟节点参照编号中减去分支节点数组的节点参照编号的最大值即存储在检索树存储单元1010中的分支节点数m而得到的值,作为叶节点数组的数组元素的节点参照编号。叶节点存储位置计算单元1061的功能与图26A的步骤S260n-1即图26C所示的处理相对应。
检索结果输出单元1062利用叶节点存储位置计算单元1061求出的叶节点数组的数组元素的节点参照编号从检索树存储单元1010中读出叶节点,取出索引关键字或者用于访问索引关键字的信息。在从叶节点中取出的是索引关键字时,将该索引关键字作为检索结果关键字输出。在从叶节点取出的是用于访问索引关键字的信息时,根据取出的用于访问索引关键字的信息读出索引关键字,作为检索结果关键字输出。
另外,还可以对检索结果关键字与检索关键字进行比较,输出在一致时设为检索成功,在不一致时设为检索失败的检索结果。
接着,参照图28A~图31B来说明本发明第3实施方式的配对节点树的生成。如先前所述,本发明第3实施方式的配对节点树的结构与第2实施方式的配对节点树的结构相同,因而可利用图18A和图18B所述的处理流程例来生成第3实施方式的配对节点树。因此,以下说明的第3实施方式的配对节点树的生成处理可称作先前说明的第2实施方式的配对节点树的生成处理的变形例。
此外,在以下的说明中,与第2实施方式的说明相同,有时将本发明第3实施方式的配对节点树称作无指针树,将现有的配对节点树简称作树或者变换前的树。
本发明第3实施方式的无指针树的生成与第2实施方式的无指针树的生成同样能够例如这样来实现。即,在生成无指针树时,利用存储在无指针树中的索引关键字来生成图1A和图1B例示的方式的树。然后,通过从根节点起依次循环树的节点并变换为本发明第3实施方式的节点来实现无指针树的生成。
图28A是说明本发明第3实施方式中的生成无指针树的处理的前级处理流程例的图。如图28A所示,首先,在步骤S2801中,取得用于生成无指针树的数组(分支节点数组和叶节点数组),在步骤S2802中,对数组元素初始化。为了采用虚拟的分支节点而需要该步骤S2802的处理。
接着,在步骤S2802a中求出变换前的树的最大级数,在步骤S2802b中将该最大级数设定为级数计数器的上限值。
后面,参照图31A和图31B来详细说明步骤S2802a的处理。
接着,在步骤S2803中设定分支节点数组和叶节点数组的基础编号,在步骤S2805中对级数计数器设定1。接着,在步骤S2806中对节点参照编号设定1,在步骤S2807中将树的根节点的数组编号设定为数组编号。进而,在步骤S2808中,在搜索路径堆栈内存储数组编号和级数计数器的计数值,进到图28B所示的步骤S2813。
图28B是示出本发明第3实施方式中的生成无指针树的处理的后级处理流程例的图。如图28B所示,在步骤S2813中,从存储有变换前的树的数组中读出数组编号指向的数组元素作为节点。在步骤S2813的最初处理中,在步骤S2807中将根节点的数组编号设定为数组编号。在第2次以后的处理中利用后面说明的步骤S2828进行设定。在以下的说明中,有时将在步骤S2813中读出的节点称作循环开始节点。
接着,在步骤S2815中从在步骤S2813中读出的节点中取出节点类别,在步骤S2816中判定该取出的节点类别是否表示分支节点。如果步骤S2816的判定为节点类别不是表示分支节点而是表示叶节点,则进到步骤S2822,如果是表示分支节点则进到步骤S2816a。
在步骤S2816a中,根据节点参照编号向分支节点数组的数组元素写入节点。后面,参照图29来详细说明步骤S2816a的处理。
接着,在步骤S2817中将值1与级数计数器相加并进到步骤S2818,使节点参照编号成为2倍。进而,在步骤S2819中,从在步骤S2813中读出的节点中取出代表节点编号,在步骤S2820中,将该取出的代表节点编号加上值0而得到的值设定为数组编号。
然后,在步骤S2821中,在搜索路径堆栈中存储数组编号和级数计数器的计数值并返回到步骤S2813。这里,存储在搜索路径堆栈中的数组编号是在步骤S2820中对代表节点编号加上值0而得到的值,因而是节点[0]的数组编号。
在步骤S2816中节点类别表示叶节点之前,反复进行上述步骤S2813~步骤S2821的环路处理。即,作为成组的处理使节点从循环开始节点循环到最初的叶节点并读出节点,在变换该节点之后写入无指针树的节点。根据以上的说明本领域的技术人员可知,在图28B所示的处理流程例中,在步骤S2820中对代表节点编号加上值0后设定为数组编号,因而使节点优先循环到节点[0]侧,但是,也可以使节点优先循环到节点[1]侧。
另一方面,当在步骤S2816中判定为节点类别不是表示分支节点而是表示叶节点并进到步骤S2822时,根据节点参照编号在叶节点数组的数组元素中写入节点。后面,参照图30来详细说明步骤S2822的处理。
接着,在步骤S2823中判定搜索路径堆栈的堆栈指针是否指向树的根节点的数组编号。
当搜索路径堆栈的堆栈指针指向树的根节点的数组编号时,树的全部节点的处理完成,因而结束处理。否则进到步骤S2824。
在步骤S2824中,从搜索路径堆栈中取出数组编号和级数计数器的计数值,使搜索路径堆栈的堆栈指针减1。接着,在步骤S2828中,对在步骤S2824中取出的数组编号加上值1而得到节点[1]的数组编号,作为循环开始节点的数组编号。然后,在步骤S2830中,对节点参照编号加上1并返回到步骤S2813。
在步骤S2823中判定为搜索路径堆栈的堆栈指针指向树的根节点的数组编号之前,反复进行上述步骤S2813~步骤S2830的环路处理,由此进行树上的全部节点的循环,将各个节点变换为无指针树的节点来生成无指针树。
图29是说明本发明第3实施方式中的生成分支节点的处理的处理流程例的图,是详细说明图28B所示的步骤S2816a的处理的图。
如图所示,首先,在步骤S1025中,将分支节点数组的基础编号与节点参照编号相加而得到的值设定为数组编号。然后,在步骤S1026中,从节点中取出鉴别比特位置,在步骤S1027中对该鉴别比特位置加上值1,在步骤S1028中,对在步骤S1025中设定的数组编号指向的分支节点数组的数组元素写入鉴别比特位置,生成分支节点,结束处理。
图30是说明本发明第3实施方式中的生成叶节点的处理的处理流程例的图,是详细说明图28B所示的步骤S2822的处理的图。
如图所示,首先,在步骤S3029中,转移节点参照编号和级数计数器并进到步骤S3030。
在步骤S3030中判定级数计数器是否是上限值,如果不是上限值,则在步骤S3031中使节点参照编号成为2倍,在步骤S3032中将值1与级数计数器相加并返回到步骤S3030。
上述步骤S3030~S3032的环路处理用于将叶节点配置于无指针树的最下级水平。在图1B、图2B的例示中,例如将在图1B的变换前的树中处于第3级的叶节点210c变换为在图2B中处于第5级的节点210j。然后,利用图30的步骤S3029的处理来转移图2B中的节点210c的位置信息。
此外,在图28A所示的步骤S2802b中设定级数计数器的上限值,但是,也可以在生成变换前的树时每当***叶节点时对该叶节点的级数进行计数,并将其最大值作为树的属性进行存储,在生成本发明第3实施方式的无指针树时,将该最大值作为级数计数器的上限值。
当在上述步骤S3030中判定为级数计数器是上限值时,进到步骤S3034。在步骤S3034中,求出从级数计数器的上限值减去1而得到的值的二次幂的数值,将该数值减去1后的值与节点参照编号相减而得到的值与叶节点数组的基础编号之和设定为叶节点数组的数组编号。在图8B的例示中,级数计数器的上限值是5,从该上限值减去1而得到的值的二次幂为16。从该值减去1而得到的值15成为配置在分支节点数组中的分支节点数。这里,节点参照编号是分支节点数组的节点参照编号,因而从该节点参照编号减去15而得到的值如在图23的例示中说明的那样,是叶节点数组的节点参照编号。然后,利用节点参照编号与基础编号之和求出数组编号。
然后,在步骤S3035中,从图28B所示的步骤S2813中读出的节点中取出索引关键字,在步骤S3036中,对该索引关键字的最上位比特位置***比特值“0”,在步骤S3037中,对在步骤S3034中设定的数组编号指向的叶节点数组的数组元素写入索引关键字,生成叶节点并进到步骤S3038。
在步骤S3038中,将在步骤S3029中转移的节点参照编号和级数计数器分别设定为节点参照编号和级数计数器后,结束处理。
接着,参照图31A和图31B来说明求出变换前的树的最大级数的处理。图31A和图31B所示的处理流程例详细说明图28A所示的步骤S2802a的处理。
图31A是说明求出变换前的树的最大级数的处理的前级处理流程例的图。
如图31A所示,首先,在步骤S3101中,对级数计数器设定值1,在步骤S3102中,对最大级数计数器设定对级数计数器设定的值。即,对级数计数器和最大级数计数器设定值1作为初始值。
接着,在步骤S3107中,将树的根节点的数组编号设定为数组编号,并进到图31B所示的步骤S3113。
图31B是说明求出变换前的树的最大级数的处理的后级处理流程例的图。如图31B所示,在步骤S3113中,从存储有变换前的树的数组中读出数组编号指向的数组元素作为节点。在步骤S3113的最初处理中,在步骤S3107中将根节点的数组编号设定为数组编号。在第2次以后的处理中利用之后说明的步骤S3128进行设定。与图28B的说明相同,在以下的说明中有时将在步骤S3113中读出的节点称作循环开始节点。
接着,在步骤S3115中,从在步骤S3113中读出的节点中取出节点类别,在步骤S3116中判定该取出的节点类别是否表示分支节点。如果步骤S3116的判定为节点类别不是表示分支节点而是表示叶节点,则进到步骤S3121,如果是表示分支节点,则进到步骤S3117。
在步骤S3117中,对级数计数器加值1,进到步骤S3119,从在步骤S3113中读出的节点中取出代表节点编号,在步骤S3120中将对该取出的代表节点编号加上值0而得到的值设定为数组编号。
然后,在步骤S3120a中,在搜索路径堆栈中存储数组编号和级数计数器的计数值,并返回到步骤S3113。这里存储到搜索路径堆栈中的数组编号是在步骤S3120中对代表节点编号加上值0而得到的值,因而是节点[0]的数组编号。
在步骤S3116中节点类别表示叶节点之前反复进行上述步骤S3113~步骤S3120a的环路处理。即,作为成组的处理,使节点从循环开始节点循环到最初的叶节点,求出叶节点的级数。根据以上的说明本领域的技术人员可知,在图31B所示的处理流程例中,在步骤S3120中,对代表节点编号加上值0后设定为数组编号,因而使节点优先循环到节点[0]侧,但是,也可以使节点优先循环到节点[1]侧。
另一方面,当在步骤S3116中判定为节点类别不表示分支节点而是表示叶节点时,进到步骤S3121,判定级数计数器的计数值是否大于对最大级数计数器设定的值。当步骤S3116的判定结果是级数计数器的计数值大于对最大级数计数器设定的值时,在步骤S3122中,将级数计数器的计数值设定为最大级数计数器并进到步骤S3123,当上述判定结果是级数计数器的计数值不大于对最大级数计数器设定的值时,进到步骤S3123。
在步骤S3123中,判定搜索路径堆栈的堆栈指针是否指向树的根节点的数组编号。
当搜索路径堆栈的堆栈指针指向树的根节点的数组编号时,关于树的全部叶节点的级数处理完成,因而结束处理。否则进到步骤S3124。
在步骤S3124中,从搜索路径堆栈中取出数组编号和级数计数器的计数值,使搜索路径堆栈的堆栈指针减1。接着,在步骤S3128中,对在步骤S3124中取出的数组编号加上值1而得到节点[1]的数组编号作为循环开始节点的数组编号,返回至步骤S3113。
在步骤S3123中判定为搜索路径堆栈的堆栈指针指向树的根节点的数组编号之前,反复进行上述步骤S3113~步骤S3128的环路处理,由此进行树上的全部节点的循环,求出树的最大级数。
以上详细说明了用于实施本发明的方式,但是,本领域的技术人员可知本发明的实施方式不仅限于此,还可以进行各种变形。
另外还可知,可通过使计算机执行图6、图10以及图11、图14、图16以及图17或者图24~图26C例示的处理的程序,在计算机上构建本发明第1实施方式、第2实施方式和第3实施方式的比特序列检索装置。
因此,在本发明的实施方式中包含上述程序以及存储有程序的计算机可读取的存储介质。此外,在本发明的实施方式中还包含本发明的配对节点树的数据结构。

Claims (30)

1.一种比特序列检索装置,其利用由比特序列构成的检索关键字,根据存储有作为检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的树的数据结构来检索所述索引关键字,其特征在于,
所述树存储于数组中,
所述比特序列检索装置具有:
配对节点树,其具有作为该树的起始点的配置在所述数组的数组编号1的数组元素中的根节点以及作为树的构成元素的节点对,该节点对具有配置在所述数组的相邻数组元素中的作为代表节点和非代表节点的2个节点,所述节点具有存储表示该节点是分支节点还是叶节点的节点类别的区域,所述分支节点除了所述节点类别之外,还包含存储所述检索关键字的鉴别比特位置的区域,但不包含存储配置有作为链接目的地的最接近下位节点对的代表节点的数组元素的数组编号的区域、以及存储所述检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的区域,所述叶节点除了所述节点类别之外,还包含存储所述检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的区域,但不包含存储所述检索关键字的鉴别比特位置的区域,配置所述代表节点的数组元素的数组编号的值是配置有该代表节点的最接近上位分支节点的数组元素的数组编号的2倍;
检索开始位置设定单元,其取得配置有开始检索的节点的数组元素的数组编号,将该取得的数组编号设定为链接目的地节点数组编号;
节点读出单元,其从被所述检索开始位置设定单元或者后述的链接单元设定为链接目的地节点数组编号的数组编号的数组元素中读出配置于该数组元素内的节点;
节点类别判定单元,其从由所述节点读出单元读出的节点的存储节点类别的区域中读出相应节点类别,判定该节点类别是表示所述叶节点还是表示分支节点;
索引关键字读出单元,其从所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字;以及
链接单元,其在由所述节点类别判定单元判定出的节点类别表示分支节点时,从该分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与配置有所述分支节点的数组元素的数组编号的2倍值之和设定为所述链接目的地节点数组编号,
所述比特序列检索装置利用所述节点类别判定单元判定由所述节点读出单元读出的节点的节点类别,当该节点类别表示叶节点时,利用所述索引关键字读出单元读出索引关键字,当该节点类别表示分支节点时,反复进行如下的动作直到该节点类别表示叶节点为止:利用所述链接单元设定所述链接目的地节点数组编号、利用所述节点读出单元读出配置在该设定的链接目的地节点数组编号的数组元素中的节点、利用所述节点类别判定单元判定该读出的节点的节点类别,在该节点类别表示叶节点时利用所述索引关键字读出单元读出索引关键字。
2.一种权利要求1所述的比特序列检索装置执行的比特序列检索方法,其特征在于,该比特序列检索方法具有以下的步骤:
检索开始位置设定步骤,取得配置有开始检索的节点的数组元素的数组编号,将该取得的数组编号设定为链接目的地节点数组编号;
节点读出步骤,从在所述检索开始位置设定步骤或者后述的链接步骤中设定为链接目的地节点数组编号的数组编号的数组元素中读出配置于该数组元素中的节点;
节点类别判定步骤,从在所述节点读出步骤中读出的节点的存储节点类别的区域中读出相应节点类别,判定该节点类别是表示所述叶节点还是表示分支节点;
索引关键字读出步骤,从所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字;以及
链接步骤,在所述节点类别判定步骤中判定出的节点类别表示分支节点时,从该分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与配置有所述分支节点的数组元素的数组编号的2倍值之和设定为所述链接目的地节点数组编号,
在所述检索方法中,在所述节点类别判定步骤中判定在所述节点读出步骤中读出的节点的节点类别,当该节点类别表示叶节点时,在所述索引关键字读出步骤中读出索引关键字,当该节点类别表示分支节点时,反复进行如下的动作直到该节点类别表示叶节点为止:在所述链接步骤中设定所述链接目的地节点数组编号、在所述节点读出步骤中读出配置在该设定的链接目的地节点数组编号的数组元素中的节点、在所述节点类别判定步骤中判定该读出的节点的节点类别,在该节点类别表示叶节点时在所述索引关键字读出步骤中读出索引关键字。
3.一种程序,其特征在于,该程序使计算机执行权利要求2所述的比特序列检索方法。
4.一种计算机可读取的存储介质,其特征在于,该存储介质存储有使计算机执行权利要求2所述的比特序列检索方法的程序。
5.一种树的数据结构,用于基于由比特序列构成的检索关键字的比特序列检索,存储有作为检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息,其特征在于,
所述树存储于数组中,具有作为该树的起始点的配置在所述数组的数组编号1的数组元素中的根节点以及作为树的构成元素的节点对,该节点对具有配置在所述数组的相邻数组元素中的作为代表节点和非代表节点的2个节点,所述节点具有存储表示该节点是分支节点还是叶节点的节点类别的区域,所述分支节点除了所述节点类别之外,还包含存储所述检索关键字的鉴别比特位置的区域,但不包含存储配置有作为链接目的地的最接近下位节点对的代表节点的数组元素的数组编号的区域、以及存储所述检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的区域,所述叶节点除了所述节点类别之外,还包含存储所述检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的区域,但不包含存储所述检索关键字的鉴别比特位置的区域,配置所述代表节点的数组元素的数组编号的值是配置有该代表节点的最接近上位分支节点的数组元素的数组编号的2倍,
能够利用具有所述树的存储单元的比特序列检索装置执行如下的检索方法,该检索方法具有以下的步骤:
检索开始位置设定步骤,取得配置有开始检索的节点的数组元素的数组编号,将该取得的数组编号设定为链接目的地节点数组编号;
节点读出步骤,从在所述检索开始位置设定步骤或者后述的链接步骤中设定为链接目的地节点数组编号的数组编号的数组元素中读出配置于该数组元素中的节点;
节点类别判定步骤,从在所述节点读出步骤中读出的节点的存储节点类别的区域中读出相应节点类别,判定该节点类别是表示所述叶节点还是表示分支节点;
索引关键字读出步骤,从所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字;以及
链接步骤,在所述节点类别判定步骤中判定出的节点类别表示分支节点时,从该分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与配置有所述分支节点的数组元素的数组编号的2倍值之和设定为所述链接目的地节点数组编号,
在所述检索方法中,在所述节点类别判定步骤中判定在所述节点读出步骤中读出的节点的节点类别,当该节点类别表示叶节点时,在所述索引关键字读出步骤中读出索引关键字,当该节点类别表示分支节点时,反复进行如下的动作直到该节点类别表示叶节点为止:在所述链接步骤中设定所述链接目的地节点数组编号、在所述节点读出步骤中读出配置在该设定的链接目的地节点数组编号的数组元素中的节点、在所述节点类别判定步骤中判定该读出的节点的节点类别,在该节点类别表示叶节点时在所述索引关键字读出步骤中读出索引关键字。
6.一种计算机可读取的存储介质,其特征在于,该存储介质存储有权利要求5所述的数据结构。
7.一种比特序列检索装置,其利用由比特序列构成的检索关键字,根据存储有作为检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的树的数据结构来检索所述索引关键字,其特征在于,
所述树存储于数组中,
所述比特序列检索装置具有:
配对节点树,其具有作为该树的起始点的根节点和作为树的构成元素的节点对,配置该根节点的数组元素的数组编号的值是将规定该根节点的位置的数组编号即基础编号和规定所述树的各级节点的开始位置的编号即偏移编号与节点参照编号1相加而得到的,该节点对具有配置在所述数组的相邻数组元素中的作为代表节点和非代表节点的2个节点,所述节点具有存储表示该节点是分支节点还是叶节点的节点类别的区域,所述分支节点除了所述节点类别之外,还包含存储所述检索关键字的鉴别比特位置的区域,但不包含存储配置有作为链接目的地的最接近下位节点对的代表节点的数组元素的数组编号的区域、以及存储所述检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的区域,所述叶节点除了所述节点类别之外,还包含存储所述检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的区域,但不包含存储所述检索关键字的鉴别比特位置的区域,配置所述代表节点的数组元素的数组编号的值,是对该代表节点的最接近上位分支节点的节点参照编号的2倍值的节点参照编号加上所述基础编号和该最接近上位分支节点的下一级的偏移编号而得到的;
检索开始位置设定单元,其根据开始检索的节点的节点参照编号、关于该节点的所述偏移编号和所述基础编号,取得配置有该节点的数组元素的数组编号,将该取得的数组编号设定为链接目的地节点数组编号;
节点读出单元,其从被所述检索开始位置设定单元或者后述的链接单元设定为链接目的地节点数组编号的数组编号的数组元素中读出配置于该数组元素中的节点;
节点类别判定单元,其从由所述节点读出单元读出的节点的存储节点类别的区域中读出相应节点类别,判定该节点类别是表示所述叶节点还是表示分支节点;
索引关键字读出单元,其从所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字;以及
链接单元,其在由所述节点类别判定单元判定出的节点类别表示分支节点时,从该分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与所述分支节点的节点参照编号的2倍值之和设定为所述链接目的地节点的节点参照编号,将该节点参照编号、所述基础编号以及所述分支节点的下一级的偏移编号之和设定为链接目的地节点数组编号,
所述比特序列检索装置利用所述节点类别判定单元判定由所述节点读出单元读出的节点的节点类别,当该节点类别表示叶节点时,利用所述索引关键字读出单元读出索引关键字,当该节点类别表示分支节点时,反复进行如下的动作直到该节点类别表示叶节点为止:利用所述链接单元设定所述链接目的地节点数组编号、利用所述节点读出单元读出配置在该设定的链接目的地节点数组编号的数组元素中的节点、利用所述节点类别判定单元判定该读出的节点的节点类别,在该节点类别表示叶节点时利用所述索引关键字读出单元读出索引关键字。
8.一种权利要求1所述的比特序列检索装置执行的比特序列检索方法,其特征在于,该比特序列检索方法具有以下的步骤:
检索开始位置设定步骤,根据开始检索的节点的节点参照编号、关于该节点的所述偏移编号和所述基础编号,取得配置有该节点的数组元素的数组编号,将该取得的数组编号设定为链接目的地节点数组编号;
节点读出步骤,从在所述检索开始位置设定步骤或者后述的链接步骤中设定为链接目的地节点数组编号的数组编号的数组元素中读出配置于该数组元素中的节点;
节点类别判定步骤,从在所述节点读出步骤中读出的节点的存储节点类别的区域中读出相应节点类别,判定该节点类别是表示所述叶节点还是表示分支节点;
索引关键字读出步骤,从所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字;以及
链接步骤,在所述节点类别判定步骤中判定出的节点类别表示分支节点时,从该分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与所述分支节点的节点参照编号的2倍值之和设定为所述链接目的地节点的节点参照编号,将该节点参照编号、所述基础编号以及所述分支节点的下一级的偏移编号之和设定为链接目的地节点数组编号,
在所述检索方法中,在所述节点类别判定步骤中判定在所述节点读出步骤中读出的节点的节点类别,当该节点类别表示叶节点时,在所述索引关键字读出步骤中读出索引关键字,当该节点类别表示分支节点时,反复进行如下的动作直到该节点类别表示叶节点为止:在所述链接步骤中设定所述链接目的地节点数组编号、在所述节点读出步骤中读出配置在该设定的链接目的地节点数组编号的数组元素中的节点、在所述节点类别判定步骤中判定该读出的节点的节点类别,在该节点类别表示叶节点时在所述索引关键字读出步骤中读出索引关键字。
9.一种程序,其特征在于,该程序使计算机执行权利要求8所述的比特序列检索方法。
10.一种计算机可读取的存储介质,其特征在于,该存储介质存储有其特征在于使计算机执行权利要求8所述的比特序列检索方法的程序。
11.一种树的数据结构,用于基于由比特序列构成的检索关键字的比特序列检索,存储有作为检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息,其特征在于,
所述树存储于数组中,具有作为该树的起始点的根节点和作为树的构成元素的节点对,配置该根节点的数组元素的数组编号的值是将规定该根节点的位置的数组编号即基础编号和规定所述树的各级节点的开始位置的编号即偏移编号与节点参照编号1相加而得到的,该节点对具有配置在所述数组的相邻数组元素中的作为代表节点和非代表节点的2个节点,所述节点具有存储表示该节点是分支节点还是叶节点的节点类别的区域,所述分支节点除了所述节点类别之外,还包含存储所述检索关键字的鉴别比特位置的区域,但不包含存储配置有作为链接目的地的最接近下位节点对的代表节点的数组元素的数组编号的区域、以及存储所述检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的区域,所述叶节点除了所述节点类别之外,还包含存储所述检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的区域,但不包含存储所述检索关键字的鉴别比特位置的区域,配置所述代表节点的数组元素的数组编号的值,是对该代表节点的最接近上位分支节点的节点参照编号的2倍值的节点参照编号加上所述基础编号和该最接近上位分支节点的下一级的偏移编号而得到的,
能够利用具有所述树的存储单元的比特序列检索装置执行如下的检索方法,该检索方法具有以下的步骤:
检索开始位置设定步骤,根据开始检索的节点的节点参照编号、关于该节点的所述偏移编号和所述基础编号,取得配置有该节点的数组元素的数组编号,将该取得的数组编号设定为链接目的地节点数组编号;
节点读出步骤,从在所述检索开始位置设定步骤或者后述的链接步骤中设定为链接目的地节点数组编号的数组编号的数组元素中读出配置于该数组元素中的节点;
节点类别判定步骤,从在所述节点读出步骤中读出的节点的存储节点类别的区域中读出相应节点类别,判定该节点类别是表示所述叶节点还是表示分支节点;
索引关键字读出步骤,从所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字;以及
链接步骤,在所述节点类别判定步骤中判定出的节点类别表示分支节点时,从该分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与所述分支节点的节点参照编号的2倍值之和设定为所述链接目的地节点的节点参照编号,将该节点参照编号、所述基础编号以及所述分支节点的下一级的偏移编号之和设定为链接目的地节点数组编号,
在所述检索方法中,在所述节点类别判定步骤中判定在所述节点读出步骤中读出的节点的节点类别,当该节点类别表示叶节点时,在所述索引关键字读出步骤中读出索引关键字,当该节点类别表示分支节点时,反复进行如下的动作直到该节点类别表示叶节点为止:在所述链接步骤中设定所述链接目的地节点数组编号、在所述节点读出步骤中读出配置在该设定的链接目的地节点数组编号的数组元素中的节点、在所述节点类别判定步骤中判定该读出的节点的节点类别,在该节点类别表示叶节点时在所述索引关键字读出步骤中读出索引关键字。
12.一种计算机可读取的存储介质,其特征在于,该存储介质存储有权利要求11所述的数据结构。
13.一种比特序列检索装置,其利用由比特序列构成的检索关键字,根据存储有作为检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的树的数据结构来检索所述索引关键字,其特征在于,
所述索引关键字是在原来索引关键字的某特定比特位置上***特定比特值而得到的,
所述检索关键字是在原来检索关键字的与所述原来索引关键字相同的特定比特位置上***所述特定比特值而得到的,
所述树存储于数组中,具有直至第n级(n是正整数)的树的构成元素,
所述比特序列检索装置具有:
配对节点树,其具有作为该树的起始点的配置在所述数组的数组编号1的数组元素中的根节点以及作为树的构成元素的节点对,该节点对具有配置在所述数组的相邻数组元素中的作为代表节点和非代表节点的2个节点,所述分支节点包含存储所述检索关键字的鉴别比特位置的区域,但不包含存储识别分支节点和叶节点的节点类别的区域、存储配置有作为链接目的地的最接近下位节点对的代表节点的数组元素的数组编号的区域以及存储所述索引关键字或者用于访问该索引关键字的信息的区域,所述叶节点包含存储所述索引关键字或者用于访问该索引关键字的信息的区域,但不包含存储所述节点类别的区域以及存储所述检索关键字的鉴别比特位置的区域,配置所述代表节点的数组元素的数组编号的值是配置有该代表节点的最接近上位分支节点的数组元素的数组编号的2倍,所述叶节点仅位于第n级,
检索开始位置设定单元,其将配置有开始检索的根节点的数组元素的数组编号1设定为链接目的地节点数组编号;
第1节点读出单元~第n节点读出单元;
第1链接单元~第n-1链接单元;以及
索引关键字读出单元,
所述第1节点读出单元从被所述检索开始位置设定单元设定为链接目的地节点数组编号的数组编号1的数组元素中读出配置于该数组元素中的根节点,
所述第1链接单元从由所述第1节点读出单元读出的根节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与配置有所述根节点的数组元素的数组编号的2倍值之和设定为所述链接目的地节点数组编号,
所述第2节点读出单元~第n-1节点读出单元分别读出所述第1链接单元~第n-2链接单元设定的链接目的地节点数组编号指向的数组元素作为分支节点,
所述第2链接单元~第n-1链接单元分别从所述第2节点读出单元~第n-1节点读出单元读出的分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与配置有所述分支节点的数组元素的数组编号的2倍值之和设定为所述链接目的地节点数组编号,
所述第n节点读出单元读出所述第n-1链接单元设定的链接目的地节点数组编号指向的数组元素作为叶节点,
索引关键字读出单元从所述第n节点读出单元读出的所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字。
14.一种权利要求13所述的比特序列检索装置执行的比特序列检索方法,其特征在于,该比特序列检索方法具有如下的步骤:
检索开始位置设定步骤,将配置有开始检索的根节点的数组元素的数组编号1设定为链接目的地节点数组编号;
第1节点读出步骤~第n节点读出步骤;
第1链接步骤~第n-1链接步骤;以及
索引关键字读出步骤,
在所述第1节点读出步骤中,从在所述检索开始位置设定步骤中设定为链接目的地节点数组编号的数组编号1的数组元素中读出配置于该数组元素中的根节点,
在所述第1链接步骤中,从在所述第1节点读出步骤中读出的根节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与配置有所述根节点的数组元素的数组编号的2倍值之和设定为所述链接目的地节点数组编号,
在所述第2节点读出步骤~第n-1节点读出步骤中,分别读出在所述第1链接步骤~第n-2链接步骤中设定的链接目的地节点数组编号指向的数组元素作为分支节点,
在所述第2链接步骤~第n-1链接步骤中,分别从在所述第2节点读出步骤~第n-1节点读出步骤中读出的分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与配置有所述分支节点的数组元素的数组编号的2倍值之和设定为所述链接目的地节点数组编号,
在所述第n节点读出步骤中,读出在所述第n-1链接步骤中设定的链接目的地节点数组编号指向的数组元素作为叶节点,
在所述索引关键字读出步骤中,从在所述第n节点读出步骤中读出的所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字。
15.一种程序,其特征在于,该程序使计算机执行权利要求14所述的比特序列检索方法。
16.一种计算机可读取的存储介质,其特征在于,该存储介质存储有使计算机执行权利要求14所述的比特序列检索方法的程序。
17.一种树的数据结构,用于基于由比特序列构成的检索关键字的比特序列检索,存储有作为检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息,其特征在于,
所述索引关键字是在原来索引关键字的某特定比特位置上***特定比特值而得到的,
所述检索关键字是在原来检索关键字的与所述原来索引关键字相同的特定比特位置上***所述特定比特值而得到的,
所述树存储于数组中,具有直至第n级(n是正整数)的树的构成元素,
所述树具有作为该树的起始点的配置在所述数组的数组编号1的数组元素中的根节点以及作为树的构成元素的节点对,该节点对具有配置在所述数组的相邻数组元素中的作为代表节点和非代表节点的2个节点,所述分支节点包含存储所述检索关键字的鉴别比特位置的区域,但不包含存储识别分支节点和叶节点的节点类别的区域、存储配置有作为链接目的地的最接近下位节点对的代表节点的数组元素的数组编号的区域以及存储所述索引关键字或者用于访问该索引关键字的信息的区域,所述叶节点包含存储所述索引关键字或者用于访问该索引关键字的信息的区域,但不包含存储所述节点类别的区域以及存储所述检索关键字的鉴别比特位置的区域,配置所述代表节点的数组元素的数组编号的值是配置有该代表节点的最接近上位分支节点的数组元素的数组编号的2倍,所述叶节点仅位于第n级,
能够利用具有所述树的存储单元的比特序列检索装置执行如下的检索方法,该检索方法具有以下的步骤:
检索开始位置设定步骤,将配置有开始检索的根节点的数组元素的数组编号1设定为链接目的地节点数组编号;
第1节点读出步骤~第n节点读出步骤;
第1链接步骤~第n-1链接步骤;以及
索引关键字读出步骤,
在所述第1节点读出步骤中,从在所述检索开始位置设定步骤中设定为链接目的地节点数组编号的数组编号1的数组元素中读出配置于该数组元素中的根节点,
在所述第1链接步骤中,从在所述第1节点读出步骤中读出的根节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与配置有所述根节点的数组元素的数组编号的2倍值之和设定为所述链接目的地节点数组编号,
在所述第2节点读出步骤~第n-1节点读出步骤中,分别读出在所述第1链接步骤~第n-2链接步骤中设定的链接目的地节点数组编号指向的数组元素作为分支节点,
在所述第2链接步骤~第n-1链接步骤中,分别从在所述第2节点读出步骤~第n-1节点读出步骤中读出的分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与配置有所述分支节点的数组元素的数组编号的2倍值之和设定为所述链接目的地节点数组编号,
在所述第n节点读出步骤中,读出在所述第n-1链接步骤中设定的链接目的地节点数组编号指向的数组元素作为叶节点,
在所述索引关键字读出步骤中,从在所述第n节点读出步骤中读出的所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字。
18.一种计算机可读取的存储介质,其特征在于,该存储介质存储有权利要求17所述的数据结构。
19.一种比特序列检索装置,利用由比特序列构成的检索关键字,根据存储有作为检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的树的数据结构来检索所述索引关键字,其特征在于,
所述索引关键字是在原来索引关键字的某特定比特位置上***特定比特值而得到的,
所述检索关键字是在原来检索关键字的与所述原来索引关键字相同的特定比特位置上***所述特定比特值而得到的,
所述树存储于数组中,具有直至第n级(n为正整数)的树的构成元素,
所述比特序列检索装置具有:
配对节点树,其具有作为该树的起始点的根节点以及作为树的构成元素的节点对,配置该根节点的数组元素的数组编号的值,是规定该根节点的位置的数组编号即基础编号和规定所述树的各级节点的开始位置的编号即偏移编号与节点参照编号1相加而得到的,该节点对具有配置在所述数组的相邻数组元素中的作为代表节点和非代表节点的2个节点,所述分支节点包含存储所述检索关键字的鉴别比特位置的区域,但不包含存储识别分支节点和叶节点的节点类别的区域、存储配置有作为链接目的地的最接近下位节点对的代表节点的数组元素的数组编号的区域以及存储所述索引关键字或者用于访问该索引关键字的信息的区域,所述叶节点包含存储所述索引关键字或者用于访问该索引关键字的信息的区域,但不包含存储所述节点类别的区域以及存储所述检索关键字的鉴别比特位置的区域,配置所述代表节点的数组元素的数组编号的值,是对该代表节点的最接近上位分支节点的节点参照编号的2倍值的节点参照编号加上所述基础编号和该最接近上位分支节点的下一级的偏移编号而得到的,所述叶节点仅位于第n级;
检索开始位置设定单元,其根据开始检索的根节点的节点参照编号1、关于该节点的所述偏移编号和所述基础编号,取得配置有该根节点的数组元素的数组编号,将该取得的数组编号设定为链接目的地节点数组编号;
第1节点读出单元~第n节点读出单元;
第1链接单元~第n-1链接单元;以及
索引关键字读出单元,
所述第1节点读出单元从被所述检索开始位置设定单元设定为链接目的地节点数组编号的数组编号的数组元素中读出配置于该数组元素中的根节点,
所述第1链接单元从由所述第1节点读出单元读出的根节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与所述根节点的节点参照编号1的2倍值之和设定为所述链接目的地节点的节点参照编号,将该节点参照编号、所述基础编号以及所述根节点的下一级的偏移编号之和设定为链接目的地节点数组编号,
所述第2节点读出单元~第n-1节点读出单元分别读出所述第1链接单元~第n-2链接单元设定的链接目的地节点数组编号指向的数组元素作为分支节点,
所述第2链接单元~第n-1链接单元分别从由所述第2节点读出单元~第n-1节点读出单元读出的分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与所述分支节点的节点参照编号的2倍值之和设定为所述链接目的地节点的节点参照编号,将该节点参照编号、所述基础编号以及所述分支节点的下一级的偏移编号之和设定为链接目的地节点数组编号,
所述第n节点读出单元读出所述第n-1链接单元设定的链接目的地节点数组编号指向的数组元素作为叶节点,
索引关键字读出单元从所述第n节点读出单元读出的所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字。
20.一种权利要求19所述的比特序列检索装置执行的比特序列检索方法,其特征在于,该比特序列检索方法具有以下的步骤:
检索开始位置设定步骤,根据开始检索的根节点的节点参照编号1、关于该根节点的所述偏移编号和所述基础编号,取得配置有该根节点的数组元素的数组编号,将该取得的数组编号设定为链接目的地节点数组编号;
第1节点读出步骤~第n节点读出步骤;
第1链接步骤~第n-1链接步骤;以及
索引关键字读出步骤,
在所述第1节点读出步骤中,从在所述检索开始位置设定步骤中设定为链接目的地节点数组编号的数组编号的数组元素中读出配置于该数组元素中的根节点,
在所述第1链接步骤中,从在所述第1节点读出步骤中读出的根节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与所述根节点的节点参照编号1的2倍值之和设定为所述链接目的地节点的节点参照编号,将该节点参照编号、所述基础编号以及所述根节点的下一级的偏移编号之和设定为链接目的地节点数组编号,
在所述第2节点读出步骤~第n-1节点读出步骤中,分别读出在所述第1链接步骤~第n-2链接步骤中设定的链接目的地节点数组编号指向的数组元素作为分支节点,
在所述第2链接步骤~第n-1链接步骤中,分别从在所述第2节点读出步骤~第n-1节点读出步骤中读出的分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与所述分支节点的节点参照编号的2倍值之和设定为所述链接目的地节点的节点参照编号,将该节点参照编号、所述基础编号以及所述分支节点的下一级的偏移编号之和设定为链接目的地节点数组编号,
在所述第n节点读出步骤中,读出在所述第n-1链接步骤中设定的链接目的地节点数组编号指向的数组元素作为叶节点,
在所述索引关键字读出步骤中,从在所述第n节点读出步骤中读出的所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字。
21.一种程序,其特征在于,该程序使计算机执行权利要求20所述的比特序列检索方法。
22.一种计算机可读取的存储介质,其特征在于,该存储介质存储有使计算机执行权利要求20所述的比特序列检索方法的程序。
23.一种树的数据结构,用于基于由比特序列构成的检索关键字的比特序列检索,存储有作为检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息,其特征在于,
所述索引关键字是在原来索引关键字的某特定比特位置上***特定比特值而得到的,
所述检索关键字是在原来检索关键字的与所述原来索引关键字相同的特定比特位置上***所述特定比特值而得到的,
所述树存储于数组中,具有直至第n级(n为正整数)的树的构成元素,
所述树具有作为该树的起始点的根节点以及作为树的构成元素的节点对,配置该根节点的数组元素的数组编号的值,是规定该根节点的位置的数组编号即基础编号和规定所述树的各级节点的开始位置的编号即偏移编号与节点参照编号1相加而得到的,该节点对具有配置在所述数组的相邻数组元素中的作为代表节点和非代表节点的2个节点,所述分支节点包含存储所述检索关键字的鉴别比特位置的区域,但不包含存储识别分支节点和叶节点的节点类别的区域、存储配置有作为链接目的地的最接近下位节点对的代表节点的数组元素的数组编号的区域以及存储所述索引关键字或者用于访问该索引关键字的信息的区域,所述叶节点包含存储所述索引关键字或者用于访问该索引关键字的信息的区域,但不包含存储所述节点类别的区域以及存储所述检索关键字的鉴别比特位置的区域,配置所述代表节点的数组元素的数组编号的值,是对该代表节点的最接近上位分支节点的节点参照编号的2倍值的节点参照编号加上所述基础编号和该最接近上位分支节点的下一级的偏移编号而得到的,所述叶节点仅位于第n级,
能够利用具有所述树的存储单元的比特序列检索装置执行如下的检索方法,该检索方法具有以下的步骤:
检索开始位置设定步骤,根据开始检索的根节点的节点参照编号1、关于该根节点的所述偏移编号和所述基础编号,取得配置有该根节点的数组元素的数组编号,将该取得的数组编号设定为链接目的地节点数组编号;
第1节点读出步骤~第n节点读出步骤;
第1链接步骤~第n-1链接步骤;以及
索引关键字读出步骤,
在所述第1节点读出步骤中,从在所述检索开始位置设定步骤中设定为链接目的地节点数组编号的数组编号的数组元素中读出配置于该数组元素中的根节点,
在所述第1链接步骤中,从在所述第1节点读出步骤中读出的根节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与所述根节点的节点参照编号1的2倍值之和设定为所述链接目的地节点的节点参照编号,将该节点参照编号、所述基础编号以及所述根节点的下一级的偏移编号之和设定为链接目的地节点数组编号,
在所述第2节点读出步骤~第n-1节点读出步骤中,分别读出在所述第1链接步骤~第n-2链接步骤中设定的链接目的地节点数组编号指向的数组元素作为分支节点,
在所述第2链接步骤~第n-1链接步骤中,分别从在所述第2节点读出步骤~第n-1节点读出步骤中读出的分支节点的存储鉴别比特位置的区域中读出相应鉴别比特位置,将该读出的鉴别比特位置的所述检索关键字的比特值与所述分支节点的节点参照编号的2倍值之和设定为所述链接目的地节点的节点参照编号,将该节点参照编号、所述基础编号以及所述分支节点的下一级的偏移编号之和设定为链接目的地节点数组编号,
在所述第n节点读出步骤中,读出在所述第n-1链接步骤中设定的链接目的地节点数组编号指向的数组元素作为叶节点,
在所述索引关键字读出步骤中,从在所述第n节点读出步骤中读出的所述叶节点的存储索引关键字或者用于访问该索引关键字的信息的区域中直接读出相应索引关键字,或者根据用于访问该索引关键字的信息读出相应索引关键字。
24.一种计算机可读取的存储介质,其特征在于,该存储介质存储有权利要求23所述的数据结构。
25.一种比特序列检索装置,利用由比特序列构成的检索关键字,根据存储有作为检索对象的由比特序列构成的索引关键字或者用于访问该索引关键字的信息的树的数据结构来检索所述索引关键字,其特征在于,
所述索引关键字是在原来索引关键字的某特定比特位置上***特定比特值而得到的,
所述检索关键字是在原来检索关键字的与所述原来索引关键字相同的特定比特位置上***所述特定比特值而得到的,
所述树存储于数组中,具有直至第n级(n为正整数)的树的构成元素,
所述比特序列检索装置具有:
检索树存储单元,其存储配对节点树,该配对节点树具有作为该树的起始点的根节点以及作为树的构成元素的节点对,配置该根节点的数组元素的数组编号的值,是将规定所述数组的开头数组元素的位置的编号即基础编号与节点参照编号1相加而得到的,该节点对具有配置在所述数组的相邻数组元素中的作为代表节点和非代表节点的2个节点,所述分支节点包含存储所述检索关键字的鉴别比特位置的区域,但不包含存储识别分支节点和叶节点的节点类别的区域、存储配置有作为链接目的地的最接近下位节点对的代表节点的数组元素的数组编号的区域以及存储所述索引关键字或者用于访问该索引关键字的信息的区域,所述叶节点包含存储所述索引关键字或者用于访问该索引关键字的信息的区域,但不包含存储所述节点类别的区域以及存储所述检索关键字的鉴别比特位置的区域,配置所述代表节点的数组元素的数组编号的值,是将所述基础编号与该代表节点的最接近上位分支节点的节点参照编号的2倍值的节点参照编号相加而得到的,所述叶节点仅位于第n级;
分支目的地信息存储单元,其存储分支目的地数组,该分支目的地数组与所述分支节点相对应地存储所述检索关键字的与各分支节点的所述鉴别比特位置一致的比特位置的比特值,作为分支目的地信息;
分支目的地信息设定执行部,其按照节点参照编号的顺序从存储在所述检索树存储单元中的配对节点树中读出分支节点,利用该分支节点的鉴别比特位置和所述检索关键字来提取所述分支目的地信息,从所述分支目的地数组的数组编号1的数组元素起依次设定在各个数组元素中;
下一级节点分支目的地信息存储位置计算执行部,其读出存储在所述分支目的地数组中设定的数组编号1的数组元素中的分支目的地信息,作为所述配对节点树的第1级节点的分支目的地信息,将该读出的分支目的地信息加上所述数组编号1的2倍值而得到的值,设为存储有所述配对节点树的第2级节点的分支目的地信息的、所述分支目的地数组的数组元素的数组编号,以下,反复进行如下的动作直到成为所述配对节点树的第n-2级节点为止,从而求出存储有所述配对节点树的第n-1级节点的分支目的地信息的、所述分支目的地数组的数组元素的数组编号,所述动作是:将本级节点的分支目的地信息加上存储有该本级节点的分支目的地信息的所述数组元素的数组编号的2倍值而得到的值,设为存储有所述配对节点树的下一级节点的分支目的地信息的、所述分支目的地数组的数组元素的数组编号,例如,将第2级节点的分支目的地信息加上存储有该第2级节点的分支目的地信息的所述数组元素的数组编号的2倍值而得到的值,设为存储有所述配对节点树的第3级节点的分支目的地信息的、所述分支目的地数组的数组元素的数组编号;以及
叶节点输出执行部,其根据所述下一级节点分支目的地信息存储位置计算执行部求出的数组编号,从所述分支目的地数组中读出所述配对节点树的第n-1级节点的分支目的地信息,根据该读出的分支目的地信息和该数组编号求出叶节点的存储位置,从存储在所述检索树存储单元中的配对节点树中读出存储在该存储位置的叶节点。
26.根据权利要求25所述的比特序列检索装置,其特征在于,
存储所述配对节点树的数组由存储分支节点的分支节点数组和存储叶节点的叶节点数组构成,该分支节点数组与存储所述配对节点树的数组中的、存储所述配对节点树的第n-1级为止的树的构成元素的部分一致,
所述叶节点输出执行部根据所述下一级节点分支目的地信息存储位置计算执行部求出的数组编号,从所述分支目的地数组中读出所述配对节点树的第n-1级节点的分支目的地信息,求出从该读出的分支目的地信息与该数组编号的2倍值之和减去所述分支节点数组的节点参照编号的最大值而得到的叶节点数组的节点参照编号,求出该叶节点数组的节点参照编号加上规定该叶节点数组的开头数组元素的位置的编号即基础编号而得到的值的数组编号,作为所述叶节点的存储位置,从存储在所述检索树存储单元中的配对节点树中读出存储在该存储位置的叶节点,从该叶节点中读出索引关键字,或者根据用于访问索引关键字的信息读出相应索引关键字。
27.一种权利要求25所述的比特序列检索装置执行的比特序列检索方法,其特征在于,该比特序列检索方法具有以下的步骤:
分支目的地信息设定步骤,按照节点参照编号的顺序从存储在所述检索树存储单元中的配对节点树中读出分支节点,利用该分支节点的鉴别比特位置和所述检索关键字来提取所述分支目的地信息,从所述分支目的地数组的数组编号1的数组元素起依次设定在各个数组元素中;
下一级节点分支目的地信息存储位置计算步骤,读出存储在所述分支目的地数组中设定的数组编号1的数组元素中的分支目的地信息,作为所述配对节点树的第1级节点的分支目的地信息,将该读出的分支目的地信息加上所述数组编号1的2倍值而得到的值,设为存储有所述配对节点树的第2级节点的分支目的地信息的、所述分支目的地数组的数组元素的数组编号,以下,反复进行如下的动作直到成为所述配对节点树的第n-2级节点为止,从而求出存储有所述配对节点树的第n-1级节点的分支目的地信息的、所述分支目的地数组的数组元素的数组编号,所述动作是,将本级节点的分支目的地信息加上存储有该本级节点的分支目的地信息的所述数组元素的数组编号的2倍值而得到的值,设为存储有所述配对节点树的下一级节点的分支目的地信息的、所述分支目的地数组的数组元素的数组编号,例如,将第2级节点的分支目的地信息加上存储有该第2级节点的分支目的地信息的所述数组元素的数组编号的2倍值而得到的值,设为存储有所述配对节点树的第3级节点的分支目的地信息的、所述分支目的地数组的数组元素的数组编号;
叶节点输出步骤,根据在所述下一级节点分支目的地信息存储位置计算步骤中求出的数组编号,从所述分支目的地数组中读出所述配对节点树的第n-1级节点的分支目的地信息,根据该读出的分支目的地信息和该数组编号求出叶节点的存储位置,从存储在所述检索树存储单元中的配对节点树中读出存储在该存储位置的叶节点。
28.根据权利要求27所述的比特序列检索方法,其特征在于,
存储所述配对节点树的数组由存储分支节点的分支节点数组和存储叶节点的叶节点数组构成,该分支节点数组与存储所述配对节点树的数组中的、存储所述配对节点树的第n-1级为止的树的构成元素的部分一致,
在所述叶节点输出步骤中,根据在所述下一级节点分支目的地信息存储位置计算步骤中求出的数组编号,从所述分支目的地数组中读出所述配对节点树的第n-1级节点的分支目的地信息,求出从该读出的分支目的地信息与该数组编号的2倍值之和减去所述分支节点数组的节点参照编号的最大值而得到的叶节点数组的节点参照编号,求出该叶节点数组的节点参照编号加上规定该叶节点数组的开头数组元素的位置的编号即基础编号而得到的值的数组编号,作为所述叶节点的存储位置,从存储在所述所述检索树存储单元中的配对节点树中读出存储在该存储位置的叶节点,从该叶节点中读出索引关键字,或者根据用于访问索引关键字的信息读出相应索引关键字。
29.一种程序,其特征在于,该程序使计算机执行权利要求27或28所述的比特序列检索方法。
30.一种计算机可读取的存储介质,其特征在于,该存储介质存储有使计算机执行权利要求27或28所述的比特序列检索方法的程序。
CN2010800626871A 2009-11-30 2010-11-23 比特序列检索装置、检索方法以及程序 Pending CN102741841A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP2009272514 2009-11-30
JP2009-272514 2009-11-30
JP2010-043644 2010-02-28
JP2010043644A JP5220047B2 (ja) 2009-11-30 2010-02-28 ビット列検索装置、検索方法及びプログラム
JP2010121153A JP5220057B2 (ja) 2010-05-27 2010-05-27 ビット列検索装置、検索方法及びプログラム
JP2010-121153 2010-05-27
PCT/JP2010/006834 WO2011064984A1 (ja) 2009-11-30 2010-11-23 ビット列検索装置、検索方法及びプログラム

Publications (1)

Publication Number Publication Date
CN102741841A true CN102741841A (zh) 2012-10-17

Family

ID=46829310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800626871A Pending CN102741841A (zh) 2009-11-30 2010-11-23 比特序列检索装置、检索方法以及程序

Country Status (4)

Country Link
US (1) US20120239664A1 (zh)
EP (1) EP2515245A1 (zh)
CN (1) CN102741841A (zh)
WO (1) WO2011064984A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107431660A (zh) * 2015-03-11 2017-12-01 Ntt通信公司 检索装置、检索方法、程序及记录介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9971821B1 (en) * 2015-02-17 2018-05-15 Cohesity, Inc. Search and analytics for a storage systems
US10776426B1 (en) * 2017-04-28 2020-09-15 EMC IP Holding Company LLC Capacity management for trees under multi-version concurrency control
CN107451486B (zh) * 2017-06-30 2021-05-18 华为技术有限公司 一种文件***的权限设置方法及装置
CN109614411B (zh) * 2018-11-19 2022-03-04 杭州复杂美科技有限公司 数据存储方法、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999046696A1 (en) * 1998-03-12 1999-09-16 Telefonaktiebolaget Lm Ericsson (Publ) Method and access means for determining the storage address of a data value in a memory device
US20040015494A1 (en) * 2002-06-03 2004-01-22 International Business Machines Corporation Multi-bit patricia trees
CN101484895A (zh) * 2006-07-07 2009-07-15 新叶股份有限公司 比特序列检索装置、检索方法以及程序
CN101589390A (zh) * 2007-01-24 2009-11-25 新叶股份有限公司 比特序列检索装置、检索方法以及程序

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4271227B2 (ja) 2006-10-30 2009-06-03 株式会社エスグランツ ビット列検索装置、検索方法及びプログラム
JP4439013B2 (ja) 2007-04-25 2010-03-24 株式会社エスグランツ ビット列検索方法及び検索プログラム
JP4514768B2 (ja) 2007-04-19 2010-07-28 株式会社エスグランツ カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム
JP2009251840A (ja) * 2008-04-04 2009-10-29 S Grants Co Ltd ビット列検索装置、検索方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999046696A1 (en) * 1998-03-12 1999-09-16 Telefonaktiebolaget Lm Ericsson (Publ) Method and access means for determining the storage address of a data value in a memory device
US20040015494A1 (en) * 2002-06-03 2004-01-22 International Business Machines Corporation Multi-bit patricia trees
CN101484895A (zh) * 2006-07-07 2009-07-15 新叶股份有限公司 比特序列检索装置、检索方法以及程序
CN101589390A (zh) * 2007-01-24 2009-11-25 新叶股份有限公司 比特序列检索装置、检索方法以及程序

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107431660A (zh) * 2015-03-11 2017-12-01 Ntt通信公司 检索装置、检索方法、程序及记录介质
CN107431660B (zh) * 2015-03-11 2020-08-18 Ntt通信公司 检索装置、检索方法及记录介质
US11762826B2 (en) 2015-03-11 2023-09-19 Ntt Communications Corporation Search apparatus, search method, program and recording medium

Also Published As

Publication number Publication date
WO2011064984A1 (ja) 2011-06-03
US20120239664A1 (en) 2012-09-20
EP2515245A1 (en) 2012-10-24

Similar Documents

Publication Publication Date Title
CN101484895B (zh) 比特序列检索装置以及检索方法
CN101535993B (zh) 比特序列检索装置及检索方法
CN101911060B (zh) 数据库的索引关键字更新方法
CN101542485B (zh) 配对节点树的分割/结合方法和程序
US8171029B2 (en) Automatic generation of ontologies using word affinities
CN101689204B (zh) 比特序列检索方法以及程序
CN102741841A (zh) 比特序列检索装置、检索方法以及程序
US7103536B1 (en) Symbol dictionary compiling method and symbol dictionary retrieving method
CN101589390B (zh) 比特序列检索装置、检索方法
CN102834802A (zh) 使用结构化数据储存库实现更快的全文搜索
CN108292315A (zh) 储存和检索数据立方体中的数据
CN101657818B (zh) 配对节点树保存/复原方法、最长一致/最短一致检索方法、比特序列检索方法以及存储介质
RU2013119801A (ru) Способы и системы для реализации приближенного сравнения строк в базе данных
EP1342177A1 (en) Method for structuring and searching information
CN101763415B (zh) 一种数据库的b树索引的生成方法及装置
JP2009140161A (ja) ビット列のマージソート方法及びプログラム
CN102096845A (zh) 森林分类经营知识库全文搜索引擎***
CN101441654B (zh) 数据库检索方法及***
CN101088082A (zh) 全文查询和搜索***及其使用方法
CN101944086A (zh) 全字索引词典
CN105005627A (zh) 基于Spark分布式***的最短路径关键点查询方法
JP5220047B2 (ja) ビット列検索装置、検索方法及びプログラム
JP2009251840A (ja) ビット列検索装置、検索方法及びプログラム
JP2011018296A (ja) カップルドノードツリーのインデックスキー挿入/削除方法
Toke et al. Enhancing text mining using side information

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: KOUSOKUYA INC.

Free format text: FORMER OWNER: GRANTS CO. LTD S.

Effective date: 20121031

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20121031

Address after: Kanagawa

Applicant after: Kousokuya Inc.

Address before: Chiba County, Japan

Applicant before: Grants Co. Ltd S.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20121017