基于上下文来在数据库中导航的系统和方法

文档序号:6512105阅读:157来源:国知局
基于上下文来在数据库中导航的系统和方法
【专利摘要】本发明涉及基于上下文来在数据库中导航的系统和方法。处理器实现的方法、系统和/或计算机程序产品在数据库中导航。不明确地涉及多个主题的非上下文相关的数据对象与上下文对象相关联来定义合成的基于上下文的对象。上下文对象提供上下文,该上下文标识出所述多个主题中的、非上下文相关的数据对象的具体主题。合成的基于上下文的对象与数据库内的第一数据节点和第二数据节点相关联。响应于接收到对于识别与第一数据节点具有相同上下文的数据节点并从该数据节点取回数据的请求,从第二数据节点取回数据。
【专利说明】基于上下文来在数据库中导航的系统和方法
【技术领域】
[0001 ] 本公开涉及计算机领域,具体地,涉及计算机中的数据库的使用。更具体地,本公开涉及针对数据库中的数据节点中的数据进行的基于上下文(context-based)的搜索。
【背景技术】
[0002]数据库是数据的集合。数据库类型的示例包括层级数据库、非层级数据库、关系数据库、图形数据库、网络数据库和面向对象的数据库。每种类型的数据库以非动态方式呈现数据,其中数据被静态储存。

【发明内容】

[0003]在本发明一个实施例中,处理器实现的方法、系统和/或计算机程序产品合成在数据库中导航。不明确地涉及多个主题的非上下文相关的(non-contextual)数据对象与上下文对象相关联来定义合成的(synthetic)基于上下文的对象。上下文对象提供上下文,该上下文标识出所述多个主题中的、所述非上下文相关的数据对象的具体主题。合成的基于上下文的对象与数据库内的第一数据节点和第二数据节点相关联。响应于接收到对于识别与第一数据节点具有相同上下文的数据节点和从该数据节点取回数据的请求,从第二数据节点取回数据。
【专利附图】

【附图说明】
[0004]图1描绘了其中可实现本公开的示例性系统和网络;
[0005]图2图示出用于创建合成的基于上下文的对象的新颖的基于上下文的系统;
[0006]图3描绘了包含纯数字非上下文数据的合成的基于上下文的对象的创建;
[0007]图4图示出包含不明确的非上下文相关的术语的合成的基于上下文的对象的创建;
[0008]图5描绘了其中某些数据节点与特定合成的基于上下文的对象相关联的层级数据库;
[0009]图6图示出使用合成的基于上下文的对象来在层级数据库中导航;
[0010]图7图示出使用合成的基于上下文的对象来在非层级数据库中导航;以及
[0011]图8是由计算机处理器执行来通过使用合成的基于上下文的对象以在层级数据库中导航的一个或多个步骤的高层级流程图。
【具体实施方式】
[0012]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0013]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0014]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0015]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0016]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN) —连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0017]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0018]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0019]计算机程序指令也可被加载到计算机、其它可编程数据处理装置或其它设备上,致使在所述计算机、其它可编程装置或其它设备上执行一系列的操作步骤,从而产生计算机实现的处理,使得在所述计算机或其它可编程装置上执行的指令提供用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的处理。[0020]现在参考附图,具体地参考图1,图中描绘了本发明可以利用和/或在本发明的实现方式中可以利用的示例性的系统和网络的方框图。注意,软件部署服务器150和/或数据储存系统152可以利用在计算机102内以及针对计算机102所示的一些或所有的示例性体系结构,包括所描绘的硬件和软件两者。
[0021]示例性的计算机102包括耦接到系统总线106的处理器104。处理器104可以利用一个或多个处理器,每个处理器具有一个或多个处理器核。驱动/支持显示器110的视频适配器108也耦接到系统总线106。系统总线106经总线桥112,耦接到输入/输出(I/O)总线114。I/O接口 116耦接到I/O总线114。I/O接口 116提供与各种I/O设备的通信,所述各种I/O设备包括键盘118、鼠标120、介质托盘122 (它可包括诸如⑶-ROM驱动器、多媒体接口等之类的储存设备)、打印机124和(一个或多个)外部USB端口 126。尽管连接到I/O接口 116的端口的格式可以是计算机体系结构领域的技术人员已知的任意格式,不过在一个实施例中,一些或者所有的这些端口都是通用串行总线(USB)端口。
[0022]如所描绘的,计算机102能够使用网络接口 130,与软件部署服务器150通信。网络接口 130是诸如网络接口卡(NIC)等之类的硬件网络接口。网络128可以是诸如因特网之类的外部网络,或者诸如以太网或虚拟专用网(VPN)之类的内部网络。
[0023]硬盘驱动器接口 132也耦接到系统总线106。硬盘驱动器接口 132与硬盘驱动器134接口连接。在一个实施例中,硬盘驱动器134构成系统存储器136的一部分,系统存储器136也耦接到系统总线106。系统存储器被定义成计算机102中的最低级别的易失性存储器。该易失性存储器包括另外的更高级别的易失性存储器(未示出),包括但不限于高速缓冲存储器、寄存器和缓冲器。系统存储器136中的数据包括计算机102的操作系统(OS)138和应用程序144。
[0024]0S138包括外壳140,用于提供对诸如应用程序144之类的资源的透明用户访问。通常,外壳140是提供用户和操作系统之间的解释器和接口的程序。更具体地,外壳140执行输入到命令行用户接口中的或者来自文件的命令。从而,也称为命令处理器的外壳140通常是操作系统软件层级的最高级,并用作命令解释器。外壳提供系统提示,解释利用键盘、鼠标或其它用户输入媒介输入的命令,并把解释后的(一个或多个)命令发送给操作系统的适当较低级(例如,内核142),以供处理。注意,尽管外壳140是基于文本的面向行的用户接口,但是本发明同样良好地支持其它用户接口模式,比如图形、语音、姿势等。
[0025]如所描绘的,0S138还包括内核142,内核142包括0S138的较低级功能,包括提供应用程序144和0S138的其它部分所需的基本服务,所述基本服务包括存储管理、进程和任务管理、盘管理以及鼠标和键盘管理。
[0026]应用程序144包括示例性地被示出为浏览器146的呈现器。浏览器146包括如下这样的程序模块和指令,所述程序模块和指令使万维网(WWW)客户端(即,计算机102)能够使用超文本传输协议(HTTP)消息接发技术,相对于因特网发送和接收网络消息,从而使能与软件部署服务器150和其它计算机系统的通信。
[0027]计算机102的系统存储器(以及软件部署服务器150的系统存储器)中的应用程序144还包括数据库导航程序(DNP) 148。DNP148包括用于实现下面描述的处理(包括图2_8中所描述的那些处理)的代码。在一个实施例中,计算机102能够从软件部署服务器150下载DNP148,包括按需下载,其中直到需要执行时才下载DNP148中的代码。此外注意,在本发明的一个实施例中,软件部署服务器150执行与本发明相关联的所有功能(包括DNP148的执行),从而使计算机102不必利用它自己的内部计算资源来执行DNP148。
[0028]数据储存系统152储存电子数据库,电子数据库在一个实施例中是层级数据库,例如图形数据库、树形数据库等。在一个实施例中,计算机102包含这里描述以及要求保护的合成的基于上下文的对象数据库储存系统,而该数据库储存系统被储存在层级数据库储存系统152和/或计算机102内。
[0029]注意,计算机102中描绘的硬件元件不意欲是穷尽性的,而是用于突显本发明所需的必要组件的代表。例如,计算机102可以包括备选的存储器储存器件,例如磁带、数字通用盘(DVD)、Bernoulli盒式磁盘等。这些和其他变体都意欲在本发明的精神和范围之内。
[0030]注意,DNP148能够生成和/或使用在图2中的基于上下文的系统200中描绘的一些或所有数据库。
[0031]现在参考图2,图中呈现了用于生成系统200中的一个或多个合成的基于上下文的对象的处理。注意,系统200是图1所示的数据储存系统152和/或计算机102中找到的处理和储存逻辑,其处理、支持和/或包含图2中所描绘的数据库、指针和对象。
[0032]在系统200内有合成的基于上下文的对象数据库202,合成的基于上下文的对象数据库202包含多个合成的基于上下文的对象204a-204n (从而指示出对象数量为“n”,其中“η”是整数)。每一个合成的基于上下文的对象204a-204n由至少一个非上下文相关的数据对象和至少一个上下文对象定义。也就是说,至少一个非上下文相关的数据对象与至少一个上下文对象相关联来定义合成的基于上下文的对象204a-204n中的一个或多个。非上下文相关的数据对象不明确地涉及多个主题,而上下文对象提供上下文,所述上下文标识出所述多个主题中的、所述非上下文相关的数据对象的具体主题。
[0033]注意,非上下文相关的数据对象包含其内在及本身无意义的数据。也就是说,上下文对象中的数据不仅仅是由非上下文相关的数据对象描述的数据/对象的属性或描述符。而是,上下文对象提供有关非上下文相关的数据对象的额外信息,以便赋予这些非上下文相关的数据对象以意义。从而,上下文对象不是仅仅描述事项,而是,它们定义该事项是什么。在没有上下文对象的情况下,非上下文相关的数据对象包含无意义的数据;在有上下文对象的情况下,非上下文相关的数据对象变得有意义。
[0034]例如,假定非上下文相关的数据对象数据库206包括多个非上下文相关的数据对象208r-208t (从而指示出对象数量为“t”,其中“t”是整数)。然而,由于每一个这些非上下文相关的数据对象208r-208t内的数据没有上下文,所以其本身是不明确的。也就是说,每一个非上下文相关的数据对象208r-208t内的数据独立而言是没有意义的,因而其主题是不明确的。为了赋予每一个非上下文相关的数据对象208r-208t内的数据以意义,他们被赋予了上下文,所述上下文是由储存在上下文对象数据库212内的一个或多个上下文对象210x-210z (从而指示出对象数量为“z”,其中“z”是整数)内所包含的数据提供的。例如,如果指针214a将非上下文相关的数据对象208r指向合成的基于上下文的对象204a,同时指针216a将上下文对象210x指向合成的基于上下文的对象204a,从而将非上下文相关的数据对象208r和上下文对象210x与合成的基于上下文的对象204a相关联(例如,将非上下文相关的数据对象208r和上下文对象210x内的数据储存在合成的基于上下文的对象204a中,或者以其他方式将他们相关联),则非上下文相关的数据对象208r内的数据现在被上下文对象210x内的数据赋予了明确的意义。该上下文相关的意义从而被储存在合成的基于上下文的对象204a内(或者以其他方式与合成的基于上下文的对象204a相关联)。
[0035]类似地,如果指针214b将非上下文相关的数据对象208s内的数据与合成的基于上下文的对象204b相关联,同时指针216c将上下文对象210z内的数据与合成的基于上下文的对象204b相关联,则非上下文相关的数据对象208s内的数据现在被上下文对象210z中的数据赋予了意义。该上下文相关的意义从而被储存在合成的基于上下文的对象204b内(或者以其他方式与合成的基于上下文的对象204b相关联)。
[0036]注意,可以有多于一个上下文对象向特定非上下文相关的数据对象赋予意义。例如,上下文对象210x和上下文对象210y两者都可以指向合成的基于上下文的对象204a,从而向图2所示的非上下文相关的数据对象208r提供复合的上下文意义。该复合的上下文意义向非上下文相关的数据对象208r中的数据提供了各种层次的上下文。
[0037]还要注意,虽然指针214a_214b和216a_216c在逻辑上被示出为指向一个或多个合成的基于上下文的对象204a-204n,但是在一个实施例中,合成的基于上下文的对象204a-204n实际上指向非上下文相关的数据对象208r_208t和上下文对象210x_210z。也就是说,在一个实施例中,合成的基于上下文的对象204a-204n通过使用指针214a-214b和216a-216c来定位非上下文相关的数据对象208r_208t和上下文对象210x_210z。
[0038]现在考虑图3中描绘的示例性情况,其中,非上下文相关的数据对象308r内的数据仅仅是数字和/或字母的组合,从而是无意义的。在此示例中,非上下文相关的数据对象308r内所包含的数据“104-106”在没有任何上下文的情况下独立而言,是无意义的,它们没有标识出特定主题,从而完全是不明确的。也就是说,“104-106”可能涉及诸如身体检查状况、物理值、人的年龄、货币数额、人的识别号等等的主题。在此示例中,数据“104-106”是如此模糊/无意义,以至于该数据甚至都没有标识出该术语所描述的单位,更不用说这些单位的上下文。
[0039]在图3所示的示例中,于是,来自(在非上下文相关的数据对象数据库306中找到的)非上下文相关的数据对象308r的数据(即,术语/值“ 104-106”)与合成的基于上下文的对象304a相关联(例如,储存在查找表中或由查找表关联,等等),该合成的基于上下文的对象304a专用于主题“高血压”。来自非上下文相关的数据对象308r的术语/值“ 104-106”还与合成的基于上下文的对象304b和合成的基于上下文的对象404η相关联,合成的基于上下文的对象304b专用于主题“人类发烧”,合成的基于上下文的对象304η专用于主题“深海洋学”。为了在“高血压”的上下文中对术语/值“104-106”赋予上下文相关的意义(SP,定义术语/值“ 104-106”),来自上下文对象数据库312且包含上下文数据“毫米汞柱”和“舒张压”的上下文对象310x与合成的基于上下文的对象304a相关联(例如,储存在查找表中或由查找表关联,等等)。从而,多个数据可以不仅提供值“104-106”的尺度/单位(毫米汞柱)上下文,而且这些数据还可以提供识别合成的基于上下文的对象304a的主题(高血压)所需的上下文数据“舒张压”。
[0040]与合成的基于上下文的对象304b相关联的是上下文对象310y,该上下文对象310y向非上下文相关的数据对象308r所提供的术语/值“ 104-106”提供“华氏温标度数”和“人类”的上下文/数据。从而,合成的基于上下文的对象304b现在将术语/值“ 104-106”定义为与“人类发烧”的主题相关的对象。类似地,与合成的基于上下文的对象304η相关联的是上下文对象310ζ,上下文对象310ζ向非上下文相关的数据对象308r所提供的术语/值“104-106”提供了 “大气压”的上下文/数据。在这种情况下,合成的基于上下文的对象数据库302的生成器确定:大数目的大气压被用于定义深海压力。从而,合成的基于上下文的对象304η现在将术语/值“104-106”定义为与“深海洋学”的主题相关的对象。
[0041]在一个实施例中,非上下文相关的数据对象可以提供足够的自上下文(self-context)以标识出该数据是什么,不过不是标识出其意义是什么和/或其用于什么。例如,考虑图4所示的来自非上下文相关的数据对象数据库406的非上下文相关的数据对象4081内包含的数据“抑制素”(“statin”)。在图4所示的示例中,来自非上下文相关的数据对象408r的数据卿,术语“抑制素”)与合成的基于上下文的对象404a相关联(例如,储存在查找表中或由查找表关联,等等),该合成的基于上下文的对象404a现在是合成的基于上下文的对象数据库402的一部分并且专用于主题“心脏病学”。来自非上下文相关的数据对象408r的术语“抑制素”还与合成的基于上下文的对象404b和合成的基于上下文的对象404η相关联,合成的基于上下文的对象404b专用于主题“营养学”,而合成的基于上下文的对象404η专用于主题“组织炎症”。为了在“心脏病学”的上下文中对术语“抑制素”赋予上下文相关的意义(即,定义术语“抑制素”),来自上下文对象数据库412且包含上下文数据“胆固醇降低剂”的上下文对象410χ与合成的基于上下文的对象404a相关联(例如,储存在查找表中或者由查找表关联,等等)。从而,来自上下文对象410x的数据“胆固醇降低剂”提供了上下文,用以理解“抑制素”是用在主题“心脏病学”的上下文中的。
[0042]与合成的基于上下文的对象404b相关联的是上下文对象410y,该上下文对象410y为非上下文相关的数据对象408r所提供的术语“抑制素”提供“抗氧化剂”的上下文/数据。也就是说,抑制素具有既作为胆固醇降低剂又作为抗氧化剂的特性。从而,可以在降低胆固醇的上下文中考虑抑制素(即,如合成的基于上下文的对象404a的主题所描述的),或者可以在作为抗氧化剂的上下文中考虑抑制素(即,与合成的基于上下文的对象404b的主题相关)。类似地,抑制素还可以是消炎药。从而,与合成的基于上下文的对象404η相关联的是上下文对象410ζ,该上下文对象410ζ为非上下文相关的数据对象408r所提供的术语“抑制素”提供“消炎药”的上下文/数据。这个组合将合成的基于上下文的对象404η的主题标识为“组织炎症”。
[0043]一旦定义了合成的基于上下文的对象,就可以将它们链接到特定节点,包括在层级数据库和/或非层级数据库中的数据节点。现在参考图5,诸如图1所示的数据储存系统152之类的层级数据库服务器内包含的示例性层级数据库502包含多个数据节点504a-504j (指示出数据节点数目为“ j ”,其中“ j ”是整数)。
[0044]在其中层级数据库502是图形数据库的实施例中,这种图形数据库是其中数据被组织成具有特性(属性或值)的一组节点(对象)的无模式(schema-less)数据库。这些节点通过边线而被链接到其它节点,所述边线描述出两个节点之间的关系。无论层级数据库502是图形数据库还是另一种类型的层级数据库,层级数据库中的数据节点504a-504j都被以分层级方式组织(如名称“层级数据库”所指示的)。也就是说,数据节点504a在层级顶部,并且是第二层中的较低数据节点504b-504c的父数据节点。类似地,数据节点504b和504c在第三层中的数据节点504d-504f的上方。从而,(来自较高层的)每一个父数据节点可以具有(来自一个或多个较低层的)许多子数据节点。图5所描绘的层级数据库502包含的父节点与其子节点、孙节点、曾孙节点等之间具有一对多的关系,其中,每一个父数据节点具有许多子节点,而每一个子数据节点仅具有一个父数据节点。可替代地,层级数据库502可以具有链接到一个或多个父节点的子节点。这样的数据库(未描绘)被描述为具有多对多关系的父/子节点。
[0045]注意,较高层级被定义为包含描述出来自多个子数据节点的数据的父数据节点。类似地,来自较低层级的多个子数据节点包含由父节点中的数据包含性描述的数据。该父节点可以由兄弟数据节点(即,在同一层级中的、全部从属于父节点的数据节点)分享,和/或父节点可由多世代(即,子、孙等)数据节点分享。
[0046]在传统的层级数据库搜索中,必须依次遍历数据节点,不管是向上还是向下导航穿过各层级。例如,为了在从数据节点504a开始时获得来自数据节点504j的数据,必须首先遍历从数据节点504a到数据节点504c的链路,然后向下“行进”至数据节点504f,最后到达数据节点504j。该“行进”是通过使用创建了从数据节点504a到目标数据节点504j的数据路径的指针来实现的。在此示例中,数据路径将看起来像是数据节点504a/数据节点504c/数据节点504f/数据节点504j。(注意,非层级数据库也可以使用这种类型的数据路径,在非层级数据库中,不同的数据节点通过数据路径来逻辑连接。)通过使用这样的数据路径来遍历经过层级数据库502中的节点就处理时间/资源而言是慢速且昂贵的。然而,层级数据库502中所示的一个或多个数据节点504a-504j是新颖的,因为它们包含对这里所描述的一个或多个合成的基于上下文的对象的引用。
[0047]例如,考虑图6所示的层级数据库602。数据节点604a_604j被以类似于上面针对图5所示的数据节点504a-504j所述的方式组织。也就是说,数据节点604a在顶层/层级,而数据节点604b-604c在接着的较低层/层级,数据节点604d-604f在更低层/层级,并且数据节点604g-604j在底层/层级。如上所述,这些数据节点中的一个或多个还包含或者至少指向特定合成的上下文事件节点,或者以其它方式(例如,经由查找表、一组指针等)与该特定合成的上下文事件节点相关。
[0048]在图6所示的示例中,假定顶部数据节点604a包含有关所有类型“心血管疾病”的数据。从其名称可以看出,“心血管疾病”包括心脏(“心”)和血管(“脉管”)的疾病。如此,将合成的基于上下文的对象404a与数据节点604a相关联指示出在一个实施例中数据节点604a中的数据的上下文是“心脏病学”。为了找到用于治疗“动脉硬化症”(与“心脏病学”相关的疾病)的药物,本发明允许用户“跳跃”到数据节点604j (包含有关用于治疗动脉硬化症的药物的数据),而不是遍历经过数据节点604c和604f。这种“跳跃”是通过指针606a和606b来实现的。指针606a/606b始于合成的基于上下文的对象404a,合成的基于上下文的对象404a如上所述包含针对“抑制素”的非上下文相关的数据对象408r以及针对“胆固醇降低剂”的上下文对象410x,它们一起对合成的基于上下文的对象404a (“心脏病学”)赋予上下文。
[0049]注意,虽然所有数据节点604a_604j都与上下文“心血管疾病”的某种变体相关,但是仅数据节点604a和604j (以及在一个实施例中,数据节点604c和604f)被预先确定为与“心脏病学”的上下文相关。然而,数据节点604b、604d、604e、604g、604h和604i都在“血管疾病”的上下文内。[0050]如这里所述,直接从数据节点604a “跳跃”到数据节点604j而不遍历经过数据节点604c和604f (例如,通过使用指针606a-606b,指针606a_606b指向数据节点604a和604f使用的存储器地址、标识符等)允许定位到数据节点604j而无需使用从数据节点604a到数据节点604j的节点路径。
[0051]在一个实施例中,合成的基于上下文的对象404a的上下文与数据节点604a和604j的上下文之间的关联是通过用户判定合成的基于上下文的对象404a与这两个数据节点604a和604j具有相同上下文(“心脏病学”)来手动实现的。然而,在另一个实施例中,这种相关是由计算机逻辑(例如,图1所示的DNP148)来智能执行的。
[0052]在一个实施例中,这种相关是通过计算机逻辑数据挖掘来自数据节点604a和604j的数据并对所挖掘的数据进行分析来进行的。例如,如果在数据节点604a和604j两者中都找到了某些单词组合,则计算机逻辑(例如,图1所示的DNP148)将确定这些节点与“心脏病学”的上下文相关。然而,注意,这不仅仅是针对数据节点604a和604j内的关键字进行的数据搜索。也就是说,如果存在上下文的匹配(“心脏病学”,如DNP148所确定的),而非简单地存在在数据节点604a和604j中找到的关键字的匹配,则合成的基于上下文的对象404a将指向数据节点604a和604j。在一个实施例中,(在确定数据节点的上下文之后创建的)上下文标识符不是单词/术语(例如,“心脏病学”),而是指示出数据节点604a和604j和合成的基于上下文的对象404a共享相同上下文和/或主题的标志、符号或其它非文本标记。
[0053]注意,在其中特定合成的基于上下文的对象与一个或多个数据节点的相关性由计算机逻辑智能执行的一个实施例中,一个或多个数据节点的上下文独立于数据节点中储存的实际数据。也就是说,不是根据数据本身(通过如上所述的数据挖掘)来确定数据节点的上下文,而是通过非数据因素来确定数据节点的上下文。
[0054]在一个实施例中,用于确定存储在数据节点内的数据的上下文的非数据因素是储存在数据节点中的数据的来源。从而,如果储存在数据节点内的数据来自关于心脏病学的期刊,则该数据节点的上下文将是“心脏病学”而非“血管疾病”。
[0055]在一个实施例中,用于确定储存在数据节点内的数据的上下文的非数据因素是用于供给数据节点数据的数据通道。例如,由蜂窝电话网络递送的数据被确定为具有与通过高速因特网连接递送的数据不同的上下文。也就是说,蜂窝电话网络更倾向于递送比高速因特网连接更小量的数据。从而,如果在蜂窝电话网络传输(例如,蜂窝电话文本消息)中找到术语“心”,则该术语“心”的上下文不太可能与关于如何执行心脏手术的科学细节(这种科学细节更加可能在高速因特网连接上的数据传输中找到)相关,而更可能与“情感”相关。
[0056]在一个实施例中,用于确定储存在数据节点内的数据的上下文的非数据因素是用于接收和/或储存填充数据节点的数据的设备的类型。例如,如果术语“心”被储存在蜂窝电话中,则上下文很可能是“情感”。如果术语“心”被储存在平板计算机中,则上下文很可能是“主流新闻报导”。如果术语“心”被储存在医学院的服务器中,则上下文很可能是“手术过程”或其它心脏病学相关的主题。
[0057]在一个实施例中,用于确定储存在数据节点内的数据的上下文的非数据因素是填充数据节点的数据的格式。例如,如果数据是包含(例如,通过将音乐文件转换成文本文件而确定的)歌词“心”的音乐文件,则上下文很可能是“情感”。如果数据是包含术语“心”的原始文本文件,则上下文很可能是“医疗科学”。
[0058]虽然已经在图6中的层级数据库602的上下文中说明了本发明,但是使用合成的基于上下文的对象来指向具有相同上下文的数据节点在非层级数据库中也是有用的。例如,考虑图7中描绘的非层级数据库702,该非层级数据库702包括数据节点704a-704j(其中,“j”是整数,指示出节点数目为“j”),并且被包含在诸如图1所示的数据储存系统152之类的非层级数据库服务器中。在一个实施例中,非层级数据库702是关系数据库,其是通过一组形式化描述表格组织的数据项目(即,数据节点704a-704j)的集合。表格由被称为“元组”的一行或多行组成。这些元组中的每一个共享公共属性,公共属性在表格中由列标题描述。每一个元组还包括键,键可以是主键(primary key)或者外键(foreign key)。主键是储存在本地元组的第一数据单元中的标识符(例如,字母、数字、符号等)。除了被储存在远程元组的第一数据单元中之外,外键通常与主键相同,从而允许本地元组被逻辑链接到外来元组。
[0059]在一个实施例中,非层级数据库702是面向对象的数据库,其储存对象(S卩,数据节点704a-704j)。计算机软件领域的技术人员将理解,对象包含两种属性,即数据(即,整数、字符串、实数、对另一个对象的引用等)和方法,所述方法类似于过程/功能并且定义对象的行为。从而,面向对象的数据库包含可执行代码和数据两者。
[0060]在一个实施例中,非层级数据库702是电子表格,其由多行和列的单元组成。每一个单元(即,数据节点704a-704 j之一)包含数字或文本数据,或者基于电子表格中的一个或多个其他单元的内容来计算值的公式。
[0061]从而,如图7所描绘的,数据节点704a和数据节点704j已被认定为与“心脏病学”的上下文相关。从而,如果(例如以包含要由接收处理器处理的数据/指令的数据流的形式)作出请求以识别具有与数据节点704a相同的上下文的数据节点并从该数据节点取回数据,则指针706a指向合成的基于上下文的对象404a,该合成的基于上下文的对象404a具有与数据节点704a中找到的上下文指示符/标志/符号相同的上下文指示符/标志/符号。该相同的上下文指示符/标志/符号(针对“心脏病学”)也在数据节点704j中被找到,从而指针706b指向数据节点704j。来自数据节点704j的数据随后被返回给请求者。
[0062]注意,在一个实施例中,请求可以简单地是针对具有与合成的基于上下文的对象404a中找到的上下文相同的上下文的任意数据节点(层级的或非层级的)的请求。在此实施例中,指针706a和706b将指向相应的数据节点704a和704 j,从而使能从相应的数据节点704a和704 j取回数据。
[0063]现在参考图8,图中呈现了由计算机处理器执行来通过使用合成的基于上下文的对象来在层级数据库中导航的一个或多个步骤的高层级流程图。在起始方框802之后,由处理器将非上下文相关的数据对象与上下文对象相关联以定义合成的基于上下文的对象(方框804)。该非上下文相关的数据对象不明确地涉及多个主题。不过,上下文对象提供了上下文,所述上下文标识出了所述多个主题中的、非上下文相关的数据对象的具体主题,如这里所描述的。
[0064]如方框806中所述,处理器将合成的基于上下文的对象与层级数据库内的第一数据节点和第二数据节点相关联,如上文在图6中示例性地详细描绘的。第一数据节点处于层级数据库中的第一层级,第二数据节点处于层级数据库中的第二层级,并且第一层级高于第二层级。在一个实施例中,至少一个中间层级介于第一层级和第二层级之间。
[0065]如方框808中所述,处理器接收针对下述数据节点中的数据的请求,所述数据节点:1)处在层级数据库中比第一数据节点低的层级中,并且2)与第一数据节点共享合成的基于上下文的对象的上下文。如方框810中所述,处理器利用从合成的基于上下文的对象到第二数据节点的指针来从第二数据节点取回数据。从而,在没有使用从第一数据节点到第二数据节点的节点路径的情况下定位出第二数据节点。处理在终止方框812结束。
[0066]在一个实施例中,处理器将合成的基于上下文的对象与层级数据库内的从第一数据节点到第二数据节点的路径中的所有数据节点相关联。例如,指针606c指向数据节点604c,并且指针606d指向数据节点604f,数据节点604c和数据节点604f两者都处在图6所示的数据节点604a和数据节点604j之间的中间层级。在一个实施例中,这些中间层级中的所有数据节点(例如,数据节点604c和数据节点604f)包含合成的基于上下文的对象(例如,合成的基于上下文的对象404a)中所包含的上下文数据。然而,在另一个实施例中,这些中间层级数据节点不包含合成的基于上下文的对象中所包含的上下文数据。从而,当从不包含合成的基于上下文的对象中所包含的上下文数据的这些中间层级数据节点取回数据时,来自合成的基于上下文的对象的上下文被强加于这些中间层级数据节点。在任一个实施例中,响应于接收到请求,处理器返回来自层级数据库内的从第一数据节点到第二数据节点的路径中的所有数据节点的数据。在一个实施例中,这样强加上下文给数据节点604c和604f导致无论何时执行经由合成的基于上下文的对象404a作出的数据搜索,都从这些节点返回数据。
[0067]在一个实施例中,不是将中间层级数据节点与在合成的基于上下文的对象中找到的上下文相关联,而是由处理器阻止将合成的基于上下文的对象与层级数据库中处于所述至少一个中间层级的特定数据节点相关联。在此实施例中,当对针对来自较低层(B卩,来自较低层级的)数据节点的数据的请求作出响应时,处理器返回来自层级数据库内的从第一数据节点到第二数据节点的路径中的、除了已被阻止与合成的基于上下文的对象相关联(例如,指向合成的基于上下文的对象)的这些特定数据节点之外的所有数据节点的数据。
[0068]注意,在一个实施例中,定位具有与合成的基于上下文的对象相同的上下文的数据节点是通过接收针对具有此相同上下文的任意数据节点的请求而实现的。从而,首先在合成的基于上下文的对象处接收请求,该合成的基于上下文的对象随后(使用如这里所述的指针)指向(数据库中的)具有与处理该数据/数据节点请求的合成的基于上下文的对象相同的上下文的任意数据节点。
[0069]附图中的流程图和框图图示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现(一个或多个)规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0070]这里使用的术语只是出于描述特定实施例的目的,并不意图限制本发明。这里使用的单数形式“一”、“一个”和“该”意图还包括复数形式,除非上下文明确地另有所示。另外还要明白,当用在本说明书中时,术语“包括”指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,不过并不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或它们的群组的存在或增加。
[0071]以下权利要求中的所有装置或步骤加功能要素的对应结构、材料、动作和等同物意图包括与明确主张的其它要求保护的要素结合地执行功能的任何结构、材料或动作。本发明的各个实施例的描述是出于举例说明的目的给出的,而不是穷尽的,也不意图把本发明局限于公开的形式。对本领域的普通技术人员来说,许多修改和变化是显而易见的,而不脱离本发明的范围和精神。选择和描述实施例是为了最佳地解释本发明的原理和实际应用,和使本领域的其他普通技术人员能够理解本发明各个实施例具有适合于预期的特定应用的各种修改。
[0072]此外注意,在本公开中描述的任意方法可通过使用VHDL (VHSIC硬件描述语言)程序和VHDL芯片来实现。VHDL是用于现场可编程门阵列(FPGA)、专用集成电路(ASIC)和其它类似的电子器件的示例性设计入口语言。从而,这里描述的任何软件实现的方法可以利用基于硬件的VHDL程序仿真,所述基于硬件的VHDL程序随后被应用于VHDL芯片,比如FPGA。
[0073]在参考本发明的示例性实施例,这样详细描述了本申请的发明的实施例的情况下,显然各种修改和变化都是可能的,而不脱离在所附权利要求中限定的本发明的范围。
【权利要求】
1.一种在数据库中导航的处理器实现的方法,所述处理器实现的方法包括: 由处理器将非上下文相关的数据对象与上下文对象相关联以定义合成的基于上下文的对象,其中,所述非上下文相关的数据对象不明确地涉及多个主题,并且其中,所述上下文对象提供上下文,所述上下文标识出所述多个主题中的、所述非上下文相关的数据对象的具体主题; 由所述处理器将所述合成的基于上下文的对象与数据库内的第一数据节点和第二数据节点相关联; 由所述处理器接收数据流,所述数据流调用用以识别与所述第一数据节点上下文相关地相关联的数据节点并从与所述第一数据节点上下文相关地相关联的所述数据节点取回数据的请求;以及 响应于接收到所述请求,识别所述第二数据节点并从所述第二数据节点取回数据。
2.根据权利要求1所述的处理器实现的方法,还包括: 识别所述第二数据节点并通过使用从所述合成的基于上下文的对象到所述第二数据节点的指针来从所述第二数据节点取回数据。
3.根据权利要求1所述的处理器实现的方法,还包括: 所述处理器在不使用从所述第一数据节点到所述第二数据节点的节点路径的情况下定位出所述第二数据节点。
4.根据权利要求1所述的处理器实现的方法,其中所述第一数据节点在层级数据库中的第一层级中,其中所述第二数据节点在所述层级数据库中的第二层级中,其中所述第一层级高于所述第二层级,并且其中至少一个中间层级介于所述第一层级和所述第二层级之间。
5.根据权利要求4所述的处`理器实现的方法,还包括: 由所述处理器将所述合成的基于上下文的对象与所述层级数据库内的从所述第一数据节点到所述第二数据节点的路径中的所有数据节点相关联,其中在所述至少一个中间层级中的所述所有数据节点包含被包含在所述合成的基于上下文的对象中的上下文数据;以及 响应于接收到所述请求,所述处理器返回来自所述层级数据库内的从所述第一数据节点到所述第二数据节点的路径中的所述所有数据节点的数据。
6.根据权利要求4所述的处理器实现的方法,其中,所述第一数据节点和所述第二数据节点包含被包含在所述合成的基于上下文的对象中的上下文数据,并且其中所述处理器实现的方法还包括: 由所述处理器将所述合成的基于上下文的对象与所述至少一个中间层级中的所有数据节点相关联,其中所述至少一个中间层级中的所述所有数据节点不包含被包含在所述合成的基于上下文的对象中的上下文数据;以及 响应于接收到所述请求,所述处理器从所述层级数据库内的从所述第一数据节点到所述第二数据节点的路径中的所有数据节点取回数据。
7.根据权利要求4所述的处理器实现的方法,还包括: 由所述处理器阻止将所述合成的基于上下文的对象与所述层级数据库内的所述至少一个中间层级中的特定数据节点相关联;以及响应于接收到所述请求,所述处理器从所述层级数据库内的从所述第一数据节点到所述第二数据节点的路径中的、除了所述特定数据节点之外的所有数据节点取回数据。
8.根据权利要求1所述的处理器实现的方法,还包括: 根据储存在所述第一数据节点和所述第二数据节点中的数据的来源,确定储存在所述第一数据节点和所述第二数据节点中的数据的上下文;以及 通过对储存在所述第一数据节点和所述第二数据节点中的数据的上下文与所述合成的基于上下文的对象的上下文进行匹配,将所述合成的基于上下文的对象与所述第一数据节点和所述第二数据节点相关联。
9.根据权利要求1所述的处理器实现的方法,还包括: 根据用于向所述第一数据节点和所述第二数据节点填充数据的数据通道,确定储存在所述第一数据节点和所述第二数据节点中的数据的上下文;以及 通过对储存在所述第一数据节点和所述第二数据节点中的数据的上下文与所述合成的基于上下文的对象的上下文进行匹配,将所述合成的基于上下文的对象与所述第一数据节点和所述第二数据节点相关联。
10.根据权利要求1所述的处理器实现的方法,还包括: 根据储存在所述第一数据节点和所述第二数据节点中的数据所使用的数据通道,确定储存在所述第一数据节点和所述第二数据节点中的数据的上下文;以及 通过对储存在所述第一数据节点和所述第二数据节点中的数据的上下文与所述合成的基于上下文的对象的上下文进行匹配,将所述合成的基于上下文的对象与所述第一数据节点和所述第二数据节点相关联。
11.根据权利要求1所述的处理器实现的方法,还包括: 根据用于接收数据并将数据储存在所述第一数据节点和所述第二数据节点中的设备的类型,确定储存在所述第一数据节点和所述第二数据节点中的数据的上下文;以及 通过对储存在所述第一数据节点和所述第二数据节点中的数据的上下文与所述合成的基于上下文的对象的上下文进行匹配,将所述合成的基于上下文的对象与所述第一数据节点和所述第二数据节点相关联。
12.根据权利要求1所述的处理器实现的方法,还包括: 根据储存在所述第一数据节点和所述第二数据节点中的数据的格式,确定储存在所述第一数据节点和所述第二数据节点中的数据的上下文;以及 通过对储存在所述第一数据节点和所述第二数据节点中的数据的上下文与所述合成的基于上下文的对象的上下文进行匹配,将所述合成的基于上下文的对象与所述第一数据节点和所述第二数据节点相关联。
13.一种计算机系统,包括: 处理器、计算机可读存储器和计算机可读存储介质; 第一程序指令,用以将非上下文相关的数据对象与上下文对象相关联以定义合成的基于上下文的对象,其中,所述非上下文相关的数据对象不明确地涉及多个主题,并且其中,所述上下文对象提供上下文 ,所述上下文标识出所述多个主题中的、所述非上下文相关的数据对象的具体主题; 第二程序指令,用以将所述合成的基于上下文的对象与数据库内的第一数据节点和第二数据节点相关联; 第三程序指令,用以接收对于识别与所述第一数据节点上下文相关地相关联的数据节点并从与所述第一数据节点上下文相关地相关联的所述数据节点取回数据的请求;以及 第四程序指令,用以响应于接收到所述请求,识别所述第二数据节点并从所述第二数据节点取回数据;并且其中 所述第一程序指令、所述第二程序指令、所述第三程序指令和所述第四程序指令被储存在所述计算机可读存储介质上,以供由所述处理器经由所述计算机可读存储器执行。
14.根据权利要求13所述的计算机系统,还包括: 第五程序指令,用以识别所述第二数据节点并通过使用从所述合成的基于上下文的对象到所述第二数据节点的指针来从所述第二数据节点取回数据;并且其中 所述第五程序指令被储存在所述计算机可读存储介质上,以供由所述处理器经由所述计算机可读存储器执行。
15.根据权利要求13所述的计算机系统,其中,所述第一数据节点和所述第二数据节点是在图形数据库内的数据节点,并且其中所述第二数据节点在不使用从所述第一数据节点到所述第二数据节点的节点路径的情况下被定位出。
16.根据权利要求13所述的计算机系统,其中所述第一数据节点在层级数据库中的第一层级中,其中所述第二数据节点在所述层级数据库中的第二层级中,其中所述第一层级高于所述第二层级,并且其中至少一个中间层级介于所述第一层级和所述第二层级之间。
17.根据权利要求16所述的计算机系统,还包括: 第五程序指令,用以将所述合成的基于上下文的对象与所述层级数据库内的从所述第一数据节点到所述第二数据节点的路径中的所有数据节点相关联,其中所述至少一个中间层级中的所述所有数据节点包含被包含在所述合成的基于上下文的对象中的上下文数据;以及 第六程序指令,用以响应于接收到所述请求,返回来自所述层级数据库内的从所述第一数据节点到所述第二数据节点的路径中的所述所有数据节点的数据;并且其中 所述第五程序指令和所述第六程序指令被储存在所述计算机可读存储介质上,以供由所述处理器经由所述计算机可读存储器执行。
【文档编号】G06F17/30GK103678465SQ201310425963
【公开日】2014年3月26日 申请日期:2013年9月18日 优先权日:2012年9月18日
【发明者】S·S·亚当斯, R·R·弗莱德朗得, J·R·可里默 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1