不使用结构化查询语言的数据库的制作方法_4

文档序号:9646595阅读:来源:国知局
搜索的数据的结构的先验知识。
[0071]例如,参考图4A,不出了根据本发明一个实施例实现的表的第一部分400。这一表部分400可存储在双射集合存储器102中。此表部分400包括键列404a以及属性列404b。表部分400包括行402a-f,每行包括键和相应的属性名或标识符。这样,表部分400提供键和属性间的统一映射。
[0072]类似地,参考图4B,示出了根据本发明一个实施例实现的表的第二部分410。这一表部分410可存储在双射集合存储器102中。注意,图4A的表部分400以及图4B的表部分410在双射集合存储器102中可存储为相同表的不同部分或作为不同的表。图4B示出的表部分410包括键列414a和值列414b。表部分410包括行412a_i,每行包括键和相应值。这样,表部分410提供键和值之间的统一映射。注意,虽然列414b在图4B中被标不为“值”而列404b在图4A中被标示为“属性”,但这些列两者都可为相同表中的相同列,只不过彼此的解释不同。
[0073]参考图4C,示出了根据本发明一个实施例实现的该表的第三部分420。注意,图4A的表部分400、图4B的表部分410以及图4C的表部分420可在双射集合存储器102中存储为相同表的不同部分或存储为不同表。图4C中不出的表部分420包括键列424a和元组列424bο表部分420包括行422a-c,每行包括键和相应的元组。例如,行422a包括键021和相应的元组302 ;202 ;058-44-1234 ;505。这意味着键021关联于:
[0074]键302 (它与图4B的表部分410中的值“凯伦布朗”相关联);
[0075]键202(它与图4B的表部分410中的值“丰田”相关联);
[0076]键058-44-1234(它应假定为附图未示出的另一表部分中的键);以及
[0077]键505 (它与图4B的表部分410中的值“波士顿”相关联)
[0078]如上文的示例说明的,图4C的表部分420提供了统一键集合与多个元组之间的统一映射。这样,图4C的表部分420使用键和元组间映射表示关系。如上文的示例进一步说明的,本发明实施例可使用单个表(诸如包括图4A、4B和4C的所有表部分400、410和420的单个表)至少表示与传统关系数据库需要多个表来表示的相同的关系。
[0079]图3A、3B、3C、4A、4B和4C表示的表可使用根据本发明实施例的高效技术进行搜索(查询)。例如,图5示意了根据本发明一个实施例的查询表的一种方法。出于示例的目的,假设由图5A的方法执行的查询为查询“在波士顿购买丰田的人的电话号码是什么? ”。注意,此查询并不指定要查询的任何表,并不指定连接操作,并且并不以SQL或其他形式查询语言进行编写。
[0080]图5A示出了与图4C相同的表部分420。为了执行该查询“在波士顿购买丰田的人的电话号码是什么? ”,图5A的方法可搜索表部分420中表示由该查询指定的值的键,诸如“丰田”和“波士顿”。该方法可搜索表部分420并查找任何这种匹配的键,诸如键202,它表示值“丰田”(根据图4B的表部分410),以及键505,它表示值“波士顿”(根据图4B的表部分410)。
[0081]然后图5A的方法可识别包含匹配值“丰田”和“波士顿”的记录,也就是记录422a。图5A的方法可断定此记录422表示在波士顿购买了丰田的人。该方法然后可识别所识别出的记录422的主键,也就是键302。图5A的方法可断定此键302是在波士顿购买了丰田的人的标识符。现在图5A的方法必须找到这个人的电话号码。
[0082]图5A的方法可通过在表部分420中搜索作为主键的值302来查找在波士顿购买丰田的人的电话号码。该方法在记录422b中找到此键。该方法然后可检查记录422b除键302以外的每个元素并确定是否各元素表示一个电话号码。该方法可通过例如确定每个元素在表中的别处或在相同数据库中的另一表中是否被分类为电话号码而作出这一决定。例如,图5A的方法可基于表部分410 (图4B)中的记录412e确定主键302涉及凯伦布朗。然后图5A的方法可基于图3B确定凯伦布朗的电话号码是570-524-3333,因为图3B中表320的列324b被标记为“电话”,并且因为表示凯伦布朗的记录322b中的列324b的内容包括570-524-3333。因此,该方法可断定表部分420中的号码570-524-3333是一个电话号码。
[0083]该方法可基于上文的推理断定在波士顿购买丰田的人的电话号码是570-524-3333。注意,该方法可在不执行连接操作的情况下得出这一结论。附加地或备选地,该方法可通过执行不以SQL或另一形式查询语言编写的查询得出这一结论。
[0084]图5A通过参考查询的一个特定示例和数据库的一个特定示例示意了根据本发明一个实施例的查询数据库的方法。现在参考图5B,示出说明根据本发明多个实施例的用于查询数据库的更一般方法520的流程图。该方法520可由图1的NTM 100执行。
[0085]图5B的方法520接收查询(操作522)。输入106 (图1)例如可表示查询,并且输入106可提供至认知逻辑单元104。认知逻辑单元104可从各种源中的任意一个接收该查询,诸如手动使用多种输入设备(诸如键盘、鼠标、轨迹板和/或触控屏)中的任意一个将该查询提供至认知逻辑单元104的人类用户。作为另一示例,认知逻辑单元104可从计算机程序或计算设备接收该查询。该查询可存储在非顺泰计算机可读介质中(诸如在双射集合存储器102中)。该查询可以任何可由NTM 100读取的格式进行存储。
[0086]如上文所述,该查询无需以SQL或其他形式查询语言表示。该查询可以多种形式中的任意一种进行表示。例如,如图5A的示例所示,该查询可使用英文或另一自然语言编写。作为另一示例,当该查询由NTM 100执行时,该查询可不指定要查询的任何特定表,无论该查询是否以形式语言编写。作为另一示例,该查询可不指定连接操作,并且NTM 100当它执行该查询时可不执行连接操作,无论该查询是否以形式语言编写。
[0087]该查询可指定下述内容中的一个或多个:
[0088].要对类的指定实例执行的演绎运算。例如,该查询可指定特定人(例如,凯伦布朗)并指定该演绎运算要对此实例执行,使得当NTM 100执行该查询时,演绎模块116对指定实例(例如,凯伦布朗)执行演绎并识别该指定实例作为其中一个成员的一个或多个类(例如,丰田的购买者)。
[0089].对指定类执行的还原运算。例如,该查询可指定特定类(例如,丰田的购买者)并指定还原操作要对此类执行,使得当NTM 100执行该查询时,还原模块118对指定类(例如,丰田的购买者)执行还原并识别作为指定类的成员的一个或多个实例(例如,凯伦布朗)。
[0090].要对一个或多个类执行的任何集合运算,诸如交、并、差和补。例如,该查询可指定将要对购买丰田的人的类和在波士顿购买车辆的人的类执行交运算。当NTM 100执行这一查询时,NTM100可对指定类执行指定的集合运算,并产生获得的类(集合)作为输出。例如,NTM 100可对购买丰田的人的类和在波士顿购买车辆的人的类执行交运算,并产生在波士顿购买丰田的人的类作为输出。
[0091]上文记载了该查询可“指定”一个或多个运算。应当理解,查询可以多种方式中的任意一种指定运算。例如,查询可显式地指定运算,诸如通过包括显式表示运算的关键词(例如,“演绎”)。作为另一示例,查询可隐式地指定运算,如在自然语言查询的情况下,“在波士顿购买丰田的人的电话号码是什么? ”。这一查询隐式指定了演绎运算,但而不显式包括术语“演绎”或显式表示演绎运算的任意其他相似术语。取而代之的是,本发明的实施例可推断出这一自然语言查询使用本文公开的技术指定了演绎运算。
[0092]该查询可包括任意组合、任意顺序并可通过任意逻辑运算符进行连接(例如,AND,0R,N0T以及X0R)的上文指示的任意种类的运算中的一个或多个。如果该查询并不以形式查询语言编写,那么NTM 100可使用多种技术的任意一种,诸如多种已知自然语言处理(NLP)技术中的任意一种,来识别由该查询指定的运算符和操作数。NTM 100然后可通过对所识别的操作数执行所识别的运算符来执行查询以产生输出108,它表示对指定的操作数执行指定运算符的结果。因此,NTM 100可执行以自然语言编写的查询,而无需编写该查询的人员以SQL或任意其他结构化语言编写该查询。
[0093]回到图5B,NTM 100可识别并从该查询中提取由该查询指定的一个或多个运算(诸如演绎、还原、交集、并集、差集和补集)(图5B,操作524)。NTM 100还可识别并从该查询中提取由该查询指定的一个或多个操作数(诸如类和/或实例)(图5B,操作526)。作为操作524和526的一部分,NTM 100可指定所识别的运算和操作数之间的关联。例如,NTM100可识别出该查询指定要对由该查询指定的特定类执行特定的还原运算。作为另一示例,NTM 100可识别该查询指定要对由该查询指定的特定实例执行特定的演绎运算。作为另一示例,NTM 100可识别该查询指定将要对由该查询指定的两个特定类执行特定的交集运算。
[0094]然后NTM 100可对每个识别的操作数执行每个识别的操作以产生查询输出,它可采用图1的输出108的形式(图5B,操作528)。执行该查询中的运算可包括执行第一运算以产生第一中间输出,然后执行第二运算以执行第二中间输出,以此类推直到产生最终输出108。可对之前产生的中间结果执行运算。
[0095]在操作524中识别的运算以及在操作526中识别的操作数可不指定任何特定的表。NTM 10
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1