对数据的反向分层方法

文档序号:6569204阅读:230来源:国知局
专利名称:对数据的反向分层方法
对数据的反向分层方法背景随着用户越来越多地使用计算机,对数据的创建也增加。如何有效地储存 和搜索这一数据已成为一种挑战。己创建了各种模型来帮助使得数据存储更有 效且更可理解。例如,已用树形格式来储存数据,其中对数据的搜索在仅需较 远分支上的特定数据时需要搜索整棵树。概述可储存数据和数据定义,并且如有所需,搜索从子层数据开始并朝向父数 据和祖父数据前进。可首先将定义应用于子数据,并且如果该定义是适当的, 则将其应用于父数据,而如果定义不是适当的,则不将其应用于父数据。类似 地,首先搜索子数据,并且如果找到匹配,则还可搜索父数据。此外,可组合 自顶向下和自底向上搜索以获得所需结果。数据可以是顾客关系管理数据,并且数据可用XML格式来储存。 附1是可根据权利要求书操作的计算系统的框图; 图2是根据依照权利要求书的一个方法的流程图的图示;以及 图3可以是数据存储的分层树的图示。描述尽管下文阐明了众多不同实施例的详细描述,但是应当理解,本说明书的 法定范围是由本专利开头所述的权利要求书的文字来定义的。该详细描述应被 解释为仅示例性,而未描述每一可能的实施例,因为描述每一可能的实施例即 使不是不可能的也是不切实际的。使用现有技术或在本专利的提交日之后开发 的技术,可实现众多替换实施例,这仍落入权利要求书的范围之内。还应当理解,除非一术语在本专利中使用语句"如此处所使用的,术语 '—'此处被定义为指……"或类似的语句来明确地定义,否则毫无意图将 该术语的含义明确地或隐含地限制在其简单或普通意义之外,且这类术语不应 当被解释为基于本专利的任何一节中所作出的任何陈述(权利要求书的语言除 外)而在范围上有限制。就本专利开头的权利要求书中引用的任何术语在本专 利中以与单数意义相一致的方式来引用而言,这是为清楚起见而如此做的,仅 仅是为了不使读者感到混淆,且这类权利要求术语并不旨在隐含地或以其它方 式限于该单数意义。最后,除非一权利要求要素是通过叙述单词"装置"和功能而没有叙述任何结构来定义的,否则任何权利要求要素的范围并不旨在基于35U.S.C. § 112第6段的应用来解释。

图1示出了其上可实现用于所要求保护的方法的步骤和装置的系统的合 适的计算系统环境100的一个示例。计算系统环境100仅为合适的计算环境的 一个示例,并非对权利要求的装置的方法的使用范围或功能提出任何局限。也 不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合 具有任何依赖或需求。所要求保护的方法的步骤和装置可以使用众多其它通用或专用计算系统 环境或配置来操作。适用于权利要求的方法或装置的众所周知的计算系统、环 境和/或配置的示例包括但不限于,个人计算机、服务器计算机、手持式或膝上 设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、 网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。所要求保护的方法的步骤和装置可在诸如程序模块等由计算机执行的计 算机可执行指令的一般上下文环境中描述。 一般而言,程序模块包括执行特定 的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等等。 该方法和装置也可以在其中任务由通过通信网络链接的远程处理设备来执行 的分布式计算环境中实践。在分布式计算环境中,程序模块可以位于包括存储 器存储设备的本地和远程计算机存储介质中。参考图1,用于实现所要求保护的方法的步骤和装置的示例性系统包括计 算机110形式的通用计算设备。计算机110的组件可包括但不限于,处理单元 120、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干种总线结构类型中的任一种, 包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构中的任 一种的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构 (ISA)总线、微通道体系结构(MCA)总线、增强ISA (EISA)总线、视频 电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为 背板(Mezzanine)总线。计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计 算机110访问的任一可用介质,并包括易失性和非易失性介质、可移动和不可 移动介质。作为示例而非局限,计算机可读介质可包括计算机存储介质和通信 介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序 模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和 不可移动介质。计算机存储介质包括但不限于,RAM、 ROM、 EEPROM、闪 存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁 盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由 计算机110访问的任一其它介质。通信介质通常具体化为诸如载波或其它传输 机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据, 并包括任何信息传送介质。术语"已调制数据信号"指以对信号中的信息进行 编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介 质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、 红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之 内。系统存储器B0包括以易失性和/或非易失性存储器形式的计算机存储介 质,如只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/ 输出系统133 (BIOS)包括如在启动时帮助在计算机110内的元件之间传输信 息的基本例程,通常储存在ROM131中。RAM 132通常包含处理单元120立 即可访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图1 示出了操作系统134、应用程序135、其它程序模块136和程序数据137。计算机110也可包括其它可移动/不可移动、易失性/非易失性计算机存储 介质。仅作示例,图l示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器140,对可移动、非易失性磁盘152进行读写的磁盘驱动器151以及对可 移动、非易失性光盘156,如CD ROM或其它光介质进行读写的光盘驱动器 155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性 计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、 固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口, 如接口 140连接到系统总线121,磁盘驱动器151和光盘驱动器155通常通过 可移动存储器接口,如接口 150连接到系统总线121。上文讨论并在图1示出的驱动器及其关联的计算机存储介质为计算机110 提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图 1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块 146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其 它程序模块136和程序数据137相同,也可以与它们不同。这里对操作系统144、 应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少 它们是不同的副本。用户可以通过输入设备,如键盘162和定点设备161 (通 常指鼠标、跟踪球或触摸垫)向计算机20输入命令和信息。其它输入设备(未 示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些 和其它输入设备通常通过耦合至系统总线的用户输入接口 160连接至处理单元 120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通 用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频 接口 190连接至系统总线121。除监视器之外,计算机也可包括其它外围输出 设备,如扬声器197和打印机196,它们通过输出外围接口 190连接。计算机110可以使用到一台或多台远程计算机,如远程计算机180的逻辑 连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由 器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有以上 相对于计算机IIO所描述的元件,尽管在图1中仅示出了存储器存储设备181。 图1描述的逻辑连接包括局域网(LAN) 171和广域网(WAN) 173,但也可 包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以 及因特网。当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调 器172或用于通过WAN 173,如因特网建立通信的其它装置。调制解调器172 可以是内置或外置的,它通过用户输入接口 160或其它适当的机制连接至系统 总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可 储存在远程存储器存储设备中。作为示例而非局限,图1示出远程应用程序185 驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,并且可以 使用在计算机之间建立通信链路的其它手段。图2可以是根据权利要求书的以反向分层方式定义数据的方法的流程图 的图示。在框210处,该方法可以用分层方式来储存数据。可视化以分层方式 储存的数据的常见方式是考虑其中单个父数据位于顶端并且子数据位于下方 的金字塔。图3可以是这样一个示例。子数据继承了父数据的特性,并且可以 具有附加特性,且这些附加特性可以在各子数据之间不是相同的。另外,子数 据可具有子数据,从而使得父数据变为"祖父数据"305 (图3),并且可以意 味着所有父数据310和子数据315都可具有祖父数据305的特性。可能会混淆 的是,如果父数据具有其自己的父数据,则父数据可被分类为子数据。在图3 的示例中,USPTO的事务所320是Marshall, Gerstien & Borun LLP 332和 Hunton & Williams 324的父数据,但USPTO的事务所320可以是美国律师事 务所340的子数据。在框220处,该方法可允许对数据的定义。定义可以是被添加到每一数据 的另一元素。例如,如果所储存的数据是关于在USPTO的领导下执业的事务 所320 (图3)的数据,则第一定义可以是事务所的电话号码325,第二定义可 以是事务所的客户编号330,而第三定义可以是诸如破产法律等该事务所所了 解的其它业务领域335。在框230处,该方法可将定义应用于所需子数据。例如,当査看在USPTO 的领导下执业的事务所时并且如果定义是该事务所所了解的其它业务领域,则 许多USPTO专利事务所将没有任何其它业务领域350 (图3),而某些将具有 其它业务领域355。因此,定义不被应用于所有事务所。作为另一示例,如果 定义是注册专利代理人的客户编号,则在USPTO的领导下执业的所有事务所 都应具有注册专利代理人。在框240处,如果定义被应用于子数据315 (图3),则定义可被应用于 父数据310。例如,如果子数据是在USPTO领导下执业的事务所320,并且父 数据是美国的所有事务所340,则子数据(在USPTO领导下执业的事务所320) 应具有电话号码325。另外,美国所有的事务所340应具有电话号码345,因 此这可从子数据320应用于父数据(美国的律师事务所)340。在框250处,如果定义不适用于父数据,则定义可以不被应用于父数据。 例如,假设在USPTO领导下执业的事务所的子数据是USPTO客户编号330 (图3)。在美国,考虑到惊人数目的律师事务所,不在USP丁O领导下执业 的事务所的数目可能是相当大的。因此,这些事务所可能没有USPTO客户编 号330,并且该定义可以不从子(USPTO事务所320)应用于所有父(美国的 律师事务所340)。在框260处,可将定义首先应用于所需子数据。例如,在其中美国律师事 务所是父340 (图3),而USPTO事务所是子320的示例中,定义可首先被应 用于USPTO事务所320。数据定义可选择自多个预定义数据定义,或者该方 法可允许创建新的数据定义。数据定义可被应用于父数据的某一子数据,而不 被应用于该父数据的其它子数据。例如,如果父是美国律师事务所340,而子 是USPTO事务所320,如果定义是用于USPTO生物技术事务所的,则并非所 有的USPTO事务所320都是生物技术事务所。在图3的示例中,Marshall, Gerstein & Borun LLP 322具有公知的生物技术业务,而Hunton & Williams 324 可能不是如此。因此,即使所有的USPTO事务所320都是父美国事务所340 的子,也并非所有子(USPTO事务所)320都具有生物技术业务,并且可能没 有生物技术定义,因此该定义可以不被应用于所有的父。在框270处,该方法可通过以搜索子数据315 (图3)开始搜索来搜索数 据。整本工作簿是以搜索数据的不同方式编写的。在这一情况下,搜索将以子 数据315开始。如果存在多层数据,即曾祖父数据、祖父数据、父数据和子数 据,则该方法将以最低层数据(可以是数据315的子层)开始。在框280处,如果对子数据315 (图3)的搜索产生一匹配,则可搜索匹 配子数据的父数据。由于某些父可能具有与子相同的定义,因此将搜索父以确 保找到所有可能的匹配。在存在多层数据的情形中,搜索可从底部(子315)开始向着顶部305沿该分层结构"向上"继续,直到找到没有匹配的层。例如, 如果对子数据315的搜索不产生匹配,则可停止该搜索,并且不返回任何结果, 并且如果对父数据310的搜索不产生匹配,则可停止该搜索并且该方法可返回 匹配的子数据315。该方法可用于顾客关系管理("CRM")数据,因为CRM文件可能是复 杂的,且充满了关于数据所有权的问题。通过搜索最低层数据,可在一精确的 层次上建立数据的所有权。在早先的系统中,可能用一特定的所有权来标记了 整棵树,而实际上某些子数据为其它数据所有并且需要对其它数据所有的子数 据添加排除。作为一个示例,"顾客数据"可包括顾客记录,以及该顾客记录 的所有子记录(例如,定单、信用卡购买、服务事件等)。然而,尽管分段是 自然的,但是额外的要求可能会迫使对所得数据的进一步过滤。例如,如果要 对休眠顾客归档,则可将在过去三个月内没有活动的所有顾客连同所有的子记 录一起归档。然而,出于某些审计目的可能需要将信用卡购买保留一年时间段, 因此所归档的顾客数据集将被定义为除了时效少于一年的信用卡购买外的顾 客记录及其所有子对象。沿着附加要求外推(例如,定单必须被保存30天、 服务事件永远不能被归档、当归档业务记录时必须还满足所有这些要求等), 可以看到,自顶向下定义基于分层的数据集可能是复杂的、重复的且不是集中 的。如权利要求书中所描述的定义分层结构的自底向上方法允许以可重复使 用且集中的方式更自然地定义附加准则。它将分层方面作为子对象而非父对象 的定义中的子句来解决。在上述示例中,所保留的信用卡购买可被定义为时效 小于一年的那些购买,或者如果是归档业务记录的子对象,则为小于90天。 相关顾客记录的定义不会涉及信用卡购买。除了自底向上方法之外,也可添加某些自顶向下方法以进一步细化搜索。 有时候,自顶向下方法可能对确保捕捉了所有结果是有用的。例如,假如C是 "联系人"对象并且是B的子对象和A的孙子对象。用户可具有对联系人对 象的某些选择准则,如"生活在西雅图的联系人"。反向分层结构或自底向上 方法允许用户通过具有如"'已下载,帐户的子对象"等某一附加准则来考虑 分层结构A和B (例如,是"帐户"对象)。该选择准则可最终可以是"生活在西雅图的联系人或作为已下载帐户的子对象的联系人"。结果,用户可将帐 户的准则与联系人的准则分开,并且可在联系人准则中指定作为帐户中满足帐 户准则的子对象的任何联系人。概念化这一理念的另一种方法是对该分层结构 的第一层具有一组准则,而对该分层结构的第二层具有另一组准则。在前一示 例中,在帐户层,帐户准则要求该帐户被下载,而在联系人层,联系人准则要 求该联系人生活在西雅图。同样,该分层结构中可隐含地作出某些链接以借助成为该分层结构中的链接而适合准则。例如,假如A是"帐户"对象,B是"联系人对象",而C 是"销售定单"对象。假如A匹配关于帐户的准则,但是B不匹配此处关于 联系人的准则。假如关于"销售定单"的准则包括"'己下载'帐户的子对象"。 基于该准则,销售定单C匹配。假定B是A和C之间的链接,则可认为B因 此隐含地匹配。数据可被储存在数据库中。并未考虑任何特定的数据库格式、品牌或制造 商,因为该方法实际上可在任何数据库上操作。该方法可以在数据以XML格 式储存时适用,因为XML格式具有适用于该方法的内置分层结构。该方法还可作为储存在诸如先前所述的有形计算机可读介质等计算机可 读介质上的计算机可执行指令来储存。另外,该方法可以是计算机系统的一部 分。如图1所描述的计算机系统可具有存储器、处理器、输入设备和输出设备, 其中该处理器适用于执行用于执行该方法的计算机指令。尽管上文阐明了众多不同实施例的详细描述,但是应当理解,本专利的范 围是由本专利开头的权利要求书的文字来定义的。该详细描述应被解释为仅是 示例性的,并且未描述每一可能的实施例,因为描述每一可能的实施例即使不 是不可能的也是不切实际的。可使用现有技术或在本专利的提交日之后开发的 技术来实现众多替换实施例,这仍落入权利要求书的范围之内。由此,可对此处所描述并示出的技术和结构作出许多修改和变化而不脱离 本权利要求书的精神和范围。因此,应当理解,此处所描述的方法和装置仅是 说明性的,而非限制权利要求书的范围。
权利要求
1. 一种以反向分层方式定义数据的方法,包括以其中子数据具有父数据的分层方式储存数据;允许所述数据的定义;将所述定义应用于所需的子数据;如果所述定义适用于所述父数据,则将所述定义应用于所述父数据;以及如果所述定义不适用于所述父数据,则不将所述定义应用于所述父数据。
2. 如权利要求1所述的方法,其特征在于,还包括首先将所述定义应用 于所需的子数据。
3. 如权利要求1所述的方法,其特征在于,还包括从多个预定义数据定 义中选择所述数据定义。
4. 如权利要求1所述的方法,其特征在于,还包括允许新数据定义的创建。
5. 如权利要求1所述的方法,其特征在于,还包括允许将所述定义应用 于所述父数据的某一子数据而不将所述定义应用于所述父数据的其它子数据。
6. 如权利要求1所述的方法,其特征在于,还包括通过以搜索所述子数 据开始搜索来搜索所述数据。
7. 如权利要求6所述的方法,其特征在于,还包括如果对所述子数据的 搜索产生匹配,则搜索所述匹配子数据的父数据。
8. 如权利要求6所述的方法,其特征在于,还包括如果对所述子数据的 搜索不产生匹配,则停止所述搜索。
9. 如权利要求8所述的方法,其特征在于,还包括不返回任何结果作为 所述搜索的结果。
10. 如权利要求6所述的方法,其特征在于,还包括如果对所述父数据的 搜索不产生匹配,则停止所述搜索。
11. 如权利要求IO所述的方法,其特征在于,还包括返回所述匹配的子 数据。
12. 如权利要求l所述的方法,其特征在于,还包括将所述数据储存在数据库中。
13. 如权利要求l所述的方法,其特征在于,还包括以XML格式储存所述数据。
14. 如权利要求l所述的方法,其特征在于,还包括以XML格式将所述数据储存在数据库中。
15. 如权利要求l所述的方法,其特征在于,所储存的数据是顾客关系管 理数据。
16. —种包括用于以反向分层方式定义数据的计算机可执行指令的有形计算机可读介质,包括用于执行以下动作的计算机可执行指令 以其中子数据具有父数据的分层方式储存数据; 允许所述数据的定义; 将所述定义应用于所需子数据;如果所述定义适用于所述父数据,则将所述定义应用于所述父数据; 如果所述定义不适用于所述父数据,则不将所述定义应用于所述父数据; 允许将所述定义应用于父数据的某一子数据而不将所述定义应用于所述 父数据的其它子数据。
17. 如权利要求16所述的有形计算机可读介质,其特征在于,还包括包 含用于执行以下动作的指令的计算机可执行指令通过以搜索所述子数据开始搜索来搜索所述数据; 如果对所述子数据的搜索产生匹配,则搜索所述匹配子数据的父数据; 如果对所述子数据的搜索不产生匹配,则停止所述搜索;以及 如果对所述父数据的搜索不产生匹配,则停止所述搜索。
18. 如权利要求16所述的有形计算机可读介质,其特征在于,还包括包 含用于执行以下动作的指令的计算机可执行指令-储存顾客关系数据作为所述数据; 将所述顾客关系数据储存在数据库中;以及 以XML格式储存所述数据。
19. 一种包括存储器、处理器、输入设备和输出设备的计算机系统,其中 所述处理器适用于执行用于以反向分层方式定义数据的计算机指令,所述计算机可执行指令包括用于执行以下动作的指令以其中子数据具有父数据的分层方式储存数据;允许所述数据的定义; 将所述定义应用于所需子数据;如果所述定义适用于所述父数据,则将所述定义应用于所述父数据; 如果所述定义不适用于所述父数据,则不将所述定义应用于所述父数据; 允许将所述定义应用于第一父数据的某一子数据而不将所述定义应用于 所述第一父数据的其它子数据;通过以搜索所述子数据开始搜索来搜索所述数据;如果对所述子数据的搜索产生匹配,则搜索所述匹配子数据的父数据; 如果对所述子数据的搜索不产生匹配,则停止所述搜索;以及 如果对所述父数据的搜索不产生匹配,则停止所述搜索。 20.如权利要求19所述的计算机系统,其特征在于,所述计算机可执行 指令还包括用于执行以下动作的指令 储存顾客关系数据作为所述数据; 将所述顾客关系数据储存在数据库中;以及 以XML格式储存所述数据。
全文摘要
数据可被储存,并且搜索在子层数据处开始并在需要时朝向父数据和祖父数据前进。
文档编号G06Q90/00GK101283358SQ200680037673
公开日2008年10月8日 申请日期2006年10月10日 优先权日2005年10月12日
发明者A·萨姆廷, H·R·史密斯, J·S·格鲁沃 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1