操纵分级组织的信息的制作方法

文档序号:6516082阅读:210来源:国知局
专利名称:操纵分级组织的信息的制作方法
背景技术
本发明涉及一种用户界面,该界面可以用来操纵按照级次排列的信息,并且这些信息的数量有可能是相当巨大的。
在一个典型的分级结构或者“树”中,每个“节点”都与一个“父亲”节点相连,它可能没有或者有多个“孩子”节点,而“树根”节点却例外,它却没有“父亲”节点。
在数据处理中,分级结构是相当普遍的。分级结构通常可以为组织为数巨大的信息提供一条清晰的途径,这样用户可以轻易地找到某条特定地信息。一般来讲,用户可以反复查看对所选择节点的邻近节点的描述并从中选择一个邻近节点,直到发现预期的信息,这样用户就实现了对树型结构的“操纵”。
举例来说,用户要想操纵Windows文件系统的分级结构,可以反复查看目录——即对这些邻近节点“描述”,包括文件名和子目录名称——然后选择查看一个相邻目录,知道找到预期文件。Windows为这个查看/选择过程提供了多个用户界面位于应用程序之中的文件选择对话框;起始于“我的电脑”的连续目录查看;在Windows Explorer中的“树型查看”;以及甚至是允许显示和更换“当前”目录的命令行。
另外,现在已经提出了用来表示和操纵分级结构的其他用户界面。其中诸如“锥形树”等等可以使用3D效果在拥挤的显示设备上表示大部分分级结构。有一些用户界面采用了“焦点+上下文”技术;也就是,把用户当前所关注分级结构的那一部分完整地显示出来,例如当前目录等等,而远离这个焦点的部分将会被逐渐简略显示。这些都可以通过下面的这些技术完成关于曲线面的树型的2D表示以及将远离焦点的视图部分用阴影处理(这两个技术创建了“超广角镜头”效果),分形技术,或者通过嵌套方框,即用表示孩子节点的矩形填充表示父亲节点的矩形(树图)。还有些技术可以在3D环境中描述节点对象,其中相距越远的节点在图上越小。
至于操纵,从“树状结构”到“树图”的共同任务就是探测用户输入的所选节点(即通过鼠标在其上点击的节点)并将所选节点作为新的“焦点”重新渲染(rerendering)树型分级结构。很多用户界面为了暗示这个类对象的持续性,以中介物活动序列的视角描述树图之中的变化。某些用户界面,例如3D环境,允许阶级结构发生持续变化的操作模式,暗示3D环境上的一段。
按照等级识别的信息是同时存在的。计算机文件系统、词典、索引、表单内容、以及XML文档是分成若干级次的。在一些应用程序中的功能在菜单中是按照级次结构组织起来的。在网络上,一些门户网站和零售站点都是按照级次结构组织起来的。万维网站点并不拘泥于分级结构,但是这种分级结构确实是对大量信息加以组织的好办法。
发明概述通常来讲,本发明的特征是在由节点分级结构定义的空间里识别级位置。这个空间的维数至少为2。每个节点根据在各自的维中数值唯一标识,这些数值包括确定节点级的节点级值以及在同一级中唯一确定节点的级中节点值。级次位置是由在相同维之中的位置值确定的。这个位置值并不需要与实际的节点级值和级中节点值相对应。
本发明的实现应该包括下列一个或多个特性。
位置值包括深度值和级内位置(position-within-level)值,这些数值都可以是非整数形式的。级内位置值可包括标识一个节点的值中节点(node-in-value)值加上一个表示与该节点的位置偏移值的浮点数。这个分级结构位置可以用来标识该分级结构的用户视图的焦点。
概括来说,在其它方面,本发明的特征是在显示设备的空间中显示分级结构的节点的表示(representation),每个节点的表示完全占据空间中的子空间,并将空间完全分配给子空间。
本发明的实现应该包括下列一个或多个特性。这些节点按分级结构中的级组织,所有空间都被分配给这些级,使得一个级在与变动的级对应的显示的一维中完全表示出来。而分级结构中该级之上或者之下的级应该被至少部分表示。每一个级都被表示为空间中的一个带(band)。在一个带中表示的节点都有一个位于临近带之中的节点有父子关系。在一个带中,空间被划分成使得父的子空间沿该带拥有与它的孩子沿邻近的带的维数之和相同的维数。
概括来说,在其它方面,本发明的特征是渲染与节点相关的容器,以及与节点相关信息的表示。容器的维数随着基于分级结构中可变焦点而动态分配的空间数量而改变,而表示有不变的维。在显示器上绘制容器和表示,当焦点发生变化时,用更新维重新渲染容器并在显示器上绘制容器,和在不进行重新描述的情况下,把渲染的表示拷贝到新的位置上。
在本发明的具体实施方案中,绘制的容器指示分级结构中节点的位置和它与相邻节点的关系,以及表示包括图像、文本或者它们两者。
概括来说,在其它方面,接收二维引用帧中用户输入设备位移的信息;把至少一维的位移转换成用于确定分级结构用户视图焦点的分级结构位置变化率。
概括来说,在其它方面,本发明的特征是向用户显示节点分级结构一部分的表示;把各个节点与由应用程序执行的动作相结合,该动作不同于分级结构的操作,使用户通过第一类动作操作分级结构一部分中显示的表示;和通过使用第二类动作激发节点,使用户能够启动与分级结构的显示节点相关的动作。
在本发明的具体实施方案中,第一类的动作可以是拖拽,而第二类的动作可以是点击。
概括来说,在本发明的其它方面,一个返回至中心(reture-to-center)输入设备的模拟可以使用户操作分级结构。用户可以通过操纵非返回至中心输入设备来指示操作分级结构目的的对模拟所期望的操作。用户的操作被作为返回至中心输入设备的处理。
本发明的具体实施方案应包括下面的一个或多个特性。非返回至中心输入设备是计算机鼠标、轨迹球以或手写板(pad)。而返回至中心设备就是操纵杆。而模拟包括在显示设备上渲染设备。对用户操作的响应就是更改在分级结构之中的焦点位置。焦点位置是由周期性地向焦点位置添加焦点增加向量而改变,焦点增加向量是模拟控制器离开它的中心或静止位置的位移的向量的函数。用户以单一的拖拽动作操纵非返回至中心控制器来查看一个任意大型分级结构的节点。函数是非线性的,以允许用户在很大的二维空间里改变操作速度。
在其它方面,本发明的特征是在客户端设备中,显示多个节点分级结构的部分的信息,多个节点包括在分级结构中子分级结构顶端的节点;当用户的操作导致子分级结构接近所显示信息的视图,从服务器中获取关于接近视图的子分级结构的信息。
在其它方面,在服务器上接收来自于客户端上关于分级结构的定义的请求;响应请求,为客户端提供分级结构定义的一部分但不是全部,该部分引用该分级结构中的其他部分。
在本发明的具体实施方案中,基于优化服务器和客户端之间的通信的参数,确定将要提供给客户端的那部分的尺寸大小。服务器自动建立与给定的最小部分尺寸尽可能接近的分级结构定义部分。服务器生成对子分级结构的引用,并将其包含在所提供的节点定义部分内。
在其它方面,一个万维网页包括提供允许对节点的分级结构进行连续操作的操作界面,比如说,到其它万维网页的链接。
在其它方面,用户界面包括允许在分级结构之中进行选择的连续操作的设备。
在本发明的具体实施方案,分级结构包括一个功能菜单,一个文件系统,一个XML文档,一个文档、列表、或者表单建立的索引,一个编码分级结构,杜威十进制分类法系统,目录化产品,邮政地址或地理化区域的其他位置,一个被选择而进行文本输入的属于一个字符集的字符,或者原本形式并非分级结构主体,而是使用相似性查询技术而使其成为分级结构。
本发明拥有如下诸多优势。
一个不确定的大型分级结构是可以操纵的。其界面允许对分级结构进行快速操纵。
该界面以下列方式之中的至少一种减少了认知的负担。
这里给用户提出了一个简单的比喻,把分级结构比喻成连续的平面,它的视图可以随着用户的操作而平滑地变化。由于允许直接对焦点的变化率加以控制,避免了用户可会对视图之中突然的、不调和的(对于新手来说是非常令人胆战心惊的)变化的忧虑,这样一来,分级结构会随着时间的变化而平稳变化。随着时间的变化,在视图中的这些必然的不连续被分成若干小的分区,从而是这些不连续所造成的后果最小化。在级中的节点并不会立刻完全彻底地出现,而是首先出现小的略图,而在不同时间里,不同的节点会详尽地显示出来。
用户并不会为上下移动,旋转,或者缩放而分别加以控制担心——所有的这些操作可以通过简单的物理的比喻而直观地完成。例如,简单的控制功能可以变为四个滚动按钮,两个滚动条,以及Windows的“树状视图”中众多标以“+”和“-”按钮。界面通过这些途径减少了重复多余的手和眼睛的动作以及认知的需求。
介于父亲和孩子节点之间的联系是通过将父亲节点叙述为包含孩子节点,而不是通过绘制不明确的连接线来向第一用户明示的。
关于当今已知的计算机显示设备的实际情况的界面是不俗的。空间是被充分有效地分配的,这样可以使大多数典型计算机解放出来,显示其它的任务。
这个界面只需要一个很小的实现大小。对于的内存的情况和通过网络快速传输的情况,可以用紧缩码来理解分级结构的算法。
关于分级结构加载的带宽界面是朴素的。分级结构信息——可以是不确定大小的——可以在用户处理它们时根据要求转化成小的部分。用户可以操纵大型分级结构的所有级,任意改变其大小,这些只能影响到被加载的分级结构信息的一小部分。
这个界面在“万维网”的应用中是非常有用的。根据广告而到来的初学用户对新的比喻而感到陌生,而对视图的变换而感到无所适从。通过左边的“操纵框”影响操纵,界面会符合用户的希望值。实现用户界面的程序代码是简洁的,可以使用一个页(或者小应用程序)下载以适应用户安装插件的要求。网上冲浪者大可不必为通过缓慢的网络加载描述庞大的分级结构的信息而苦苦等待。
每个节点都可以有一个不同的文本和/或者图形表示。当节点被选择的时候,为了执行一个与操纵相分离的独特动作,联合每个节点是非常好的途径。
分级结构帧,每个节点的文本和/或者图形表示,以及与每个节点相联系的动作是以用户可阅读的形式定义的。这个分级结构的定义根据需求被逐渐增加地请求和传输。传输是数据流的一种特殊情况,它被在二维上分散,而数据所要求的顺序并不能很有把握地进行预报。
上述这些优势和特性将在下面的权利要求中被相加描述。


图1说明了在一个简单分级结构中的联系。
图2说明了分配给分级结构实例带的显示区域,它按照级方向排列。
图3说明了分配给分级结构实例带的显示区域,它按照垂直方向排列。
图4显示了一个分级结构的视图和控制循环,它包括用户可在计算机网络领域之中的发明。
图5是整个的流程图。
图6说明了对分级结构级分配显示区域的一个维的概念。
图7显示了对这个维进行载分配的逻辑图。
图8说明了关于对级中的节点分配显示设备的概念。
图9显示了分配的概念。
图10和图11说明了提出分级结构一个带的过程。
图12说明了用来在一级上绘制分级结构节点的子程序。
图13说明了用来在另一级上绘制分级结构节点的子程序。
图14说明了用来从服务器加载分级结构信息的逻辑关系。
图15说明了如何模拟“控制杆”,显示了模拟控制器的任意的外观。
图16显示了对通过轻触视图中控制杆来操纵分级结构的用户提出的序列实例,其中具体的实施方案是在分级结构顶部级配置的,位于视图顶部。
图17显示了对操纵词典的用户提出的两个视图,其中具体实施方案是在分级结构顶部垂直配置的,位于视图的左部。
图18显示了在单个万维网站点上的分级结构配置,它允许对该站点进行快速连续的操纵。
优先实施方案详述图1说明了存在于由分级结构18组成的节点之间的关系并介绍了一些命名方法。每个节点都有零个或者多个“孩子”节点,并且除了“根”节点20没有“父亲”节点之外,每个节点只有一个“父亲”节点。例如,节点26是节点24的孩子节点,而它又是节点26和27的父亲节点。在后面,从左到右对孩子节点进行计数是非常有用的;这样,节点26就有一个0的“子索引”而节点27的子索引为1。而没有子节点的节点,像节点22,被称为“叶子”节点。
节点可以根据其分级结构的“级”归类,我们将“级”定义为从根节点到达它们所需要的步数。在图1的分级结构中,有四个级30。
根据本发明的具体实施方案,在有限的显示区域中,分级结构的视图可以在用户的控制下更改。视图在任何时候都是“聚焦”或者集中于一个节点或者多个节点之间,它将所有的节点包含在这个焦点或者“焦点”周围。用户可以看到这些包围节点之一,并操纵焦点移到该节点处,以便于所有节点在当前都围绕该节点。通过继续这种操作可以发现这个道理,即分级结构之中的任何节点都通过一系列的步骤从其它节点通过一些中间节点而达到,用户可以查看位于分级结构之中的任何节点。下面所讨论的方法可以让操作过程变得更加“平滑”——焦点是逐渐变化的,而在视图之中所导致的变化被“激活”或者表现为许多小的步骤。
图2和3显示了两个有限显示区域的实例。图2显示了一个级排列的显示区域31,它被分配给节点24附近的焦点。而焦点是在分级结构之中假想的点,它与恰好位于显示区域的中心点相关。在这个“级”设计中,级30的每一个节点都是按级组织的。由于这是一个小型的分级结构实例,所以显示区域(33,阴影部分)对于这个精确焦点来说是不确定的。
图3显示了一个垂直排列的有限显示区域,它可能在万维网应用之中具有特殊的作用。在级中的这每一个节点都是垂直排列的,而分级结构的顶部位于显示区域的左端。
为了方便,下面的描述将只参照图2所示的水平布局。
参考图4,在基于驻留在计算机59的软件的一些具体实施方案之中,软件程序50对模拟返回中心式控制器,例如“操纵杆”,的屏幕显示表示52以及模拟控制器从中心变换到其它位置的数据表示进行更新。这个更新是与例如鼠标的物理计算机定点设备66相关的。焦点更新程序54会导致表示用户在分级结构中焦点的内部数据的持续更新。当焦点被更新的时候,分级结构绘制程序56被调用,从而提出关于围绕焦点分级结构的带的屏幕显示表示58。(下面将讨论更为具体的模拟控制视图和提出分级结构。)尽管用户的眼睛60以及用户的大脑62持续不断地监控着展开的分级结构表示58以及当前的“操纵杆”52的位置,用户通过它们进行直接控制,但是大脑指示手64在移动物理定点设备66并按下按钮来指示焦点的变化以及从而导致的分级结构对用户可视的那一部分的变化。如此一来用户通过不断的反馈信息来了解如何操纵提出表现的分级结构查看当前显示的任何节点,而通过迭代以及所有节点都是相连的原理来查看整个分级结构。
透视图之中不会发生突然的变化,因此用户的手和眼睛位置也不会突然变化,这是非常必要的。
在网络环境中,本发明的软件组件70能够从远程分级结构服务器72通过计算机74的网络在计算机59上加载分级结构的信息,它可以表示为分级结构服务器的客户机。通常情况下,服务器同时为多个客户机服务。分级结构信息加载器70将在下面关于图14中加以详细描述。
参考图5,从步骤100开始,软件实施方案执行一些配置参数的收集102,这些信息包括显示区域大小和分级结构信息的网络资源。下一步是其它变量的初始化104。在步骤104之中,创建了一个伪根节点,并把分级结构信息资源分配给它。步骤104还在伪根节点旁边的点上初始化了用户“焦点”——也就是绘制在屏幕上的分级结构部分的中心——这些就是现有的本地分级结构数据。接着,启动分级结构加载器70来使用标准网络协议从配置资源中异步加载分级结构信息。在关于图14的描述中将具体解释分级结构加载的流程。现在我们注意到资源有可能存在于远程服务器72上;信息到达目的地可能会伴随着用户可察觉的时间延迟;随着节点信息的到达,它被添加到本地分级结构的数据里。
软件接下来会对操纵杆及其在屏幕上的表示方式进行初始化108。下面的程序120到126可以异步监控物理定点设备,而主循环将在平行路径上被启动。这个循环从在屏幕上绘制分级结构140开始。
步骤120监控用户输入设备,它可以探测到物理的用户输入设备“状态”的改变——位置以及按键状态。有的改变可能需要模拟操纵杆位置130的更新122。如果探测124到在模拟操纵杆位置中有变化,模拟操纵杆会在126被重新渲染。这些将在图15中加以详细说明。
返回到主循环(图形的右边)之中,模拟操纵杆步骤124探测到在其中心位置有所变化。当在任何维上变化值都非零,这个变化会由步骤144映射为分级结构焦点的增量。“焦点”表示在分级结构中用户当前视图的中心。焦点被定义为一个二元的向量,{深度,级内位置}。分级结构“深度”类似于分级结构的级,但是它被允许采用限定级的整数之间的浮点数。“级内位置”在级中节点之间的相互位置,最左边的节点的级内位置为0.0,这类似于一个索引,但是它允许采用浮点数和整数。例如,在图1中的分级结构实例中的焦点{1.1,1.5}表示用户视图的焦点是介于级1和级2之间,并且更接近于级1,并且在节点24和28之间的水平中点。
如在图8中所示,在级中确定位置的任意方法可以分为两部分“FocalNode”,对在级<深度的整数部分>中索引为<级内位置的整数部分>的引用;“horiFract”,出现在用户视图中心左边的小数。
因此,“FocalNode”与级中节点的整数部分相关,而“horiFract”是它的小数部分。这就是我们将在下面描述中使用的在级中确定位置的方法。
根据具体实施方案的配置情况,模拟操纵杆变化可以精确映射144其在焦点{dDepth,dFract},但是对于分级结构级按照级排列以及分级结构上升/下降的配置情况来说,如果k1和k2在操作过程中是固定的数,这种映射就简化成dDepth=k1*表示模拟操纵杆的垂直位移dFract(horiFract的变化)=k2*模拟操纵杆的水平位移。
其中k1和k2是操作期间固定的数字。对于分级结构级按照垂直排列的配置情况,dDepth将跟随操纵杆的水平位移,而dFract将跟随其垂直位移。其它有用的映射调节包括大于线性的(greater-than-linear)映射允许进行有限的移动的返回中心式控制器进行微调控制和高速操纵。例如,一个具体实施方案使用dDepth与模拟控制器在某个方向上位移的平方成比例。这允许操作指定的“动态范围”——最快与最慢速度的比率——12×12表示模拟控制器在某一维介于-12到12象素中变化的情况。
减少对角线操作,特别是沿着分级结构上升的方向。在分级结构上升过程中,用户通常不会打算同时进行任何横向操作。在分级结构下降的过程中经常会希望使用对角线操作,但是这是应该被避免的,这样可以减少用户感到失控的机会。
限制模拟控制器每次在一维中进行操作。这里建议选择控制器的透视图。图15显示了“操纵杆”的外观以及一些任选的式样。一个具体实施方案允许用户在诸多“外观和感觉”的控制器中进行选择。
将位移映射到dFact,dFract不仅是位移的函数,而且对深度的小数部分的灵敏度是在渲染的节点位置的第二阶中断。(无论何种状态,我们描述的具体实施方案禁止节点位置或大小的第一阶中断;这种改进进一步消除了二阶中断。)在146中将增量变化dDepth添加到Depth之后,步骤148使用如图7所示的逻辑步骤更新“垂直”参数,这些具体将在下面讨论。“垂直”在这里表示“沿着分级结构上升或者下降的方向”,而这些可以依靠配置情况实际表示成级或者垂直方向。
在150中将增量变化dFract添加到horiFract之后,“水平”(沿着一个节点到其同族的方向)参数是在步骤152中使用如图9所示的逻辑步骤被更新的,具体如下讨论。
步骤154会根据预定义的阈值测试自从绘制分级结构最后使用阈值之后Depth或者horiFract是否发生变化。如果发生变化,就会使用图10和11中的逻辑步骤在步骤140中重新绘制分级结构。阈值的目的就是通过禁止代价昂贵的重新渲染动作来减少对计算机能力的要求。
在这些情况里,主操作循环将会持续对模拟控制器位置进行监视142。这个循环在固定时间间隔里执行。当144的逻辑把给定的二维模拟控制器位移映射到二维的每循环重复焦点改变(上时,定期重复更进一步把它映射到一个二维焦点速率上。
图6显示了显示区域402是如何由图7的逻辑分配多个分级结构级。406显示了一种可行的分配方法,它把显示区域分配给三个相邻的级,我们称之为“hiLevel”,“loLevel”以及“beloLevel”,其中loLevel节点的父节点位于hiLevel并且如果存在子节点的话它们位于beloLevel之中。分配的带可以是部分在实际显示区域402之外的(如hiLevel)或者完全在外(如hiLevel-1)。分配带的厚度会随着级的增加而沿几何级数减小。例如,在实例中显示,如果厚度Rth的比率为2.0的话,每个级被分配了分配给其父节点的空间一半。应该注意的是,随着用户降低分级结构,节点的级数会变得非常小并且会随着接近焦点而获得可视权重;这近似于每个节点的渐进的外观允许进行实际平滑的操作过程。
带厚度之间的几何关系通过“指数关系”排列分隔带的线段而获得的。更精确地讲,可以定义一个“虚拟显示区域”404,实际显示区域4 02是其分数HADA/HVDA的值介于0.5到1之间。于是,从虚拟显示区域的底部到级N顶部线段的距离是虚拟显示区域高度*Rth(Depth-N)(记住“Depth”是焦点的一部分),或者对于我们的例子来说,虚拟显示区域高度*2.0(Depth-N)如果N远远小于Depth,这些划分级的线段会落在显示区域之外(或上面),对于N增加,线段接近虚拟显示区域的底部,在虚拟显示区域之下。具体实施方案说明了应该选择HADA/HVDA=3/4,以便于能够恰好显示两个完整的级。如果Depth是1.0的倍数的话,hiLevel和loLevel将会分配上面1/2以及接下来的1/4的虚拟显示区域,总和为全部实际显示区。在示出的情况下,所有的LoLevel和部分hiLevel和beloLevel落在了实际显示区域之外。对于HADA/HVDA<=3/4的任意选择来说,只有划分loLevel的两条线段408和410需要为了绘制而被计算,与所有其它的位于虚拟显示区域之外的线段一样。由于大多数3级节点是相关的,所以绘制过程可以被加速。对于能够访问大量资源的具体实施方案来说,HADA/HVDA可以选择为近于1.0,这样可以使大多数划分线段412位于虚拟显示区域之内,这样可以表示更多的级和更多的节点。
从图7上我们可以看到,在图6中Rth=2.0,HADA/HVDA<=3/4的情况变成了获得垂直分配的逻辑148。当Depth由于1或者-1的小数部分而改变的时候,这个逻辑就会被从图5的主操作中调用,服务器会预先计算一些绘制参数。在步骤418中,Focus Depth首先被强制大于那些可配置但是通常在1.0附近的最小值,然后被指定小于任何节点加载的最高级的最大值。步骤420接着决定那个级将要在显示区域之中表示出来,或者换句话说,与“hiLevel”,“loLevel”,和“beloLevel”相关的是什么整数。舍入操作的余数“vertFract”将被保存以决定在步骤428以及随后的绘制计算中划分线段的位置。检查422可以用来了解hiLevel是否有所变化;也就是Depth是否跨过整数界线。在大多数情况下并没有发生。如果hiLevel降低了,那么在步骤424中将会改变级参数FocalNode的父节点变成了FocalNode,horiFract随着构成FocalNode的子节点索引的分数被加载,由前面的horiFract增加,属于父节点的子节点。如果hiLevel增加,级参数在步骤426中有所变化FocalNode子节点随着horiFract子节点索引乘以和子节点的数目,从而变成了FocalNode,而舍入操作的余数变成了horiFract。
步骤428现在计算划分线段的位置。这可以描述为距虚拟显示区域底部虚拟显示区域的高度*2.0(Depth-N)428之中的计算公式计算了从虚拟显示区域顶部的最有用的距离,因此是“1-”这些距离“hiLevelBot”和“loLevelBot”在图6上被显示为408和410。对于HADA/HVDA=3/4来说,只需针对两个整数级N的Depth-N介于0和B2之间的情况进行计算。
图8说明了“水平”分配必须做什么。显示区域520已经被“垂直”分配为分级结构级hiLevel522、loLevel524、以及beloLevel526的多个带,每个带必须更进一步分配节点。“Focus”可以是分级结构之中假想的点,它与显示区域532的中心相联系。“FocalNode”就是将要被绘制的包括这个中心的节点;阴影框534是它的配置。“horiFract”就是出现在中心左边的FocalNode的比率,0.0<=horiFract<=1.0。也就是说,horiFract是黑色实线536于FocalNode的配置534的宽度之间的比率。
“水平”配置通常发生在使用图10到13中说明的逻辑进行绘制的时候。图9显示了一些在增加horiFract之后进行的预计算如果在552处horiFract已经溢出而不再大于0,除非没有左节点,步骤556使用在分级结构之中位于其左边的节点替代FocalNode,而horiFract被加1,而对于没有左节点的情况而言,步骤558将horiFract减为0.0。如果horiFract在步骤562处已经溢出并且不再小于1的话,步骤566将FocalNode替换为分级结构中位于其右边的节点,并且从horiFract减1,除非它没有右节点,这样的话步骤568将把horiFract减到1.0。
水平配置是由确定在绘制级loLevel节点宽度而驱动。首先对于FocalNode,然后向左边节点重复进行该动作,直到显示区域被占用为止,然后再向右边重复进行。节点要求的显示区域的宽度取决于表现它所需要的宽度以及其子节点透视图宽度的总和。对这两个向量给定的几何分量随着Depth的小数部分变化而变化。如前面所说,loLevel节点比其它拥有更多子节点(在beloLevel之中)的节点更为狭窄,但是它的子节点比其它节点更宽。从loLevel宽度配置来说子节点宽度配置分配起来相当简单。对于同时能够显示多于3级节点的具体实施方案(HADA/HVDA>3/4)来说,可以在beloLevel基础上进行持续分配。例如,如果loLevel节点的宽度为W并且拥有3个子节点,每个子节点的宽度就是w/3。并且每个孙子节点的宽度配置为w/9。
父节点(在hiLevel中)宽度就是它的子节点宽度之和。在图8中,四个loLevel节点拥有一个父节点540,而最后一个的父节点实542。
在完成绘制逻辑状态的图10和11之中绘制逻辑图之前,注意水平参数术语应该使用“左”和“右”来表示节点的显示配置的左边界和右边界,这些在图8对FocalNode的544和546加以标注。
图10和11的绘制逻辑图可以被大致分为若干区域绘制FocalNode,绘制其左边的节点,然后绘制其右边的节点。可以对每个loLevel节点(步骤612,618,652)调用软件程序loDraw(节点,级位置,左边部分),这样不仅可以绘制节点并且可以计算并返回其“左”和“右”界线的位置以及画出其子节点,该程序将在图12的索引中加以描述。在画出所有loLevel节点之后,其宽度值被加给父节点“hiNode”,包括新的节点(步骤614,630,660)以及现有节点(步骤622,656)。根据检验620和654,当绘制出loLevel节点的父节点不是“hiNode”的时候,需要有一个新的“hiNode”节点。在这时以及在程序末尾,现有的hiNode节点被使用软件程序“HiDraw(node)”绘制出来(步骤626,642,658,662)。
图12说明了软件程序“loDraw(节点,级位置,左边部分)”的逻辑图。步骤714表现了节点的轮廓,而步骤71 8绘制了确定节点的同中心表示。对于每个子节点来说,步骤720绘制了节点的轮廓而724对它进行详述,这是在轮廓区域的大小足够放置透视图的情况下的。有多少节点是被完全表现出来依赖于根据显示区域大小提出的空间要求以及分级结构散开的速度。然而对于通常的应用程序来说,三级上的节点都会被粗略显示而有一半可以详细显示。而其它时候,对于两级节点来说都是完全表示的。
在绘制和粗略表示之前,loDraw()必须首先(步骤710)计算节点对Depth“verFract”给定的的配置显示宽度“Wide”,子节点的数目,以及一个目标透视图宽度,它使用如下公式target render width*childCountveriFrare接着它必须(步骤712)转换“宽度”并把参数“horizLoc”和“fractionLeft”上传给“left”和“rite”,其左边与右边的边界。“horizLoc”是一个级位置;一旦“fractionLeft”为0,它就确定了左边界,一旦“fractionLeft”为1,它就确定了右边界,在FractionLeft介于0和1之间的时候,能够确定一些点。
为了“绘制节点特定渲染(draw node-specific rendering)”可以调用简单的代码来表现文本和/或者图形。然而在某些具体实施方案中出于性能考虑,这个方法可以把预先提出的图像复制到轮廓中心,以便于花费在提出每个节点上的时间变为单一的时间。
图13说明了许多绘制hiLevel节点的近似逻辑图绘制节点的轮廓,然后绘制节点特定渲染。
如果要用划分级的线段的计算与节点宽度替代位于虚拟显示区域之外的节点,节点轮廓将被设置为与实际显示区域的边界相关。在这个减小的区域里中心化指定节点透视图使得指定节点透视图在实际显示区域中移出的可能性大大减小。通过在步骤710和716中选择“目标渲染宽度”和“最小渲染宽度”可以完全消除或者允许这种情况发生。
图13中的步骤802和图12中的步骤714和720并不是绘制过程的一部分,但是它们与节点轮廓的绘制相联系,节点被检查是否有非阅读的输入资源。如果它有,启动软件程序“hierarchyLoad”可以根据从字元读取的信息在这个节点之下异步产生分级结构。第一个启动hierarchyLoad的时候可以加载分级结构的信息,它可以在伪根节点之下产生分级结构,而对于这个应用来说可能并不是一个完整的分级结构。分级结构服务器也许只能发出分级结构信息的一部分。这可以允许用户处理来自服务器而发送到客户机上的分级结构信息的一部分,从而很大程度上地操纵一个广大的分级结构。这个部分被加载到命令上,但是在实际需要提出调用它们之前,它们的父节点必须首先被绘制轮廓。
通过手工或者自动从分级结构服务器中的独立文件中取出信息,可以将整个分级结构划分成若干小区域。另外,分级结构服务器可以自动将分级结构分成若干区域,其中每个区域都有适当的网络宽度,服务器还可以产生信息“文件”的索引来描述整个分级结构的子分级结构。也就是说,通过网络传输的“文件”也许从来没有以文件的形式存在过。
我们把分部分和随选地(on demand)发送的分级结构称为“分级结构流”,不论分成部分操作是服务器的优先操作还是部分操作。“分级结构流”可以与通常应用在网络中同时由客户机使用(已经接收的)数据的数据传输术语相比较,而当语音信息被客户计算机作为附加声音信息播放的时候它同时正在网络上传输。然而,分级结构流不同于后者,它的数据传输是在多维空间中进行的,并且很有可能客户机并不需要所有的信息。因此双向通信在分级结构流中是非常有用的。不仅是服务器必需传输信息,客户机也必需按照自身要求请求分级结构之中的不同部分。一个分级结构流的性能提高就是在客户机与服务器之间维持两个连接(向各个方向),而不是为每个部分打开和关闭一个连接。
流部分的最小大小是服务器的固定参数。为了性能提高,分级结构服务器应该根据客户机与服务器之间网络性能的变化调整最小部分的大小。例如,服务器接收到来自于一个客户机的急速请求,这会产生一个高带宽的连接并将非常大的部分传输给该客户机,当然这也会导致较高的出错率,以及来自于其它客户机的对相同部分的重复请求以及向该客户机传送小型的部分。
这里说明了分级结构服务器如何对一个分级结构信息请求并考虑最小部分的大小。
从请求中,确定发出请求分级结构或者是子分级结构的父节点。
把该节点的信息从整个分级结构数据中拷贝-这些信息可能在数据库中,一个或者是多个文件中,或者是在内存中的数据结构-到新的分级结构数据结构中,作为根节点信息。
在为各个节点拷贝的信息可作为节点是根节点的分级结构部分的引用。对部分的“引用”是关于向被创建的服务器发出部分请求的信息。对第一个拷贝来说,引用只是简单地表示出分级结构信息请求。
在所有已经添加到新分级结构数据结构,并仍然保存着的引用,将会被首先添加并从数据结构中删除出去,把所有子节点的信息从整个分级结构数据拷贝到新的分级结构数据结构中。拷贝过的信息可能还是包括引用。
当引用保存的时候,以及新分级结构数据结构比最小的部分尺寸还小的时候,重复前面所述的步骤。
图14表示了从视图的客户端点的分级结构加载进程。软件路线“分级结构加载”通过有相关“未读输入资源”的节点。这就是把对如网络或文件名的访问的URL命名到分级结构定义文件。分级结构源代码也可能是数据库,数据结构,或者是其他程序,但是这里我们讨论的是在网络上传输文件。步骤832“打开了”源,也可能是让它变成可读的。在客户端-服务器环境中,这种“打开”就构成了对服务器的请求,从而可提供分级结构信息。在循环中,步骤836应用于读取各个行,直至在838步骤的读取失败终止步骤840的路线。各行都描述了一个节点,详细地讲,就是节点级与文件顶端节点级相关,这个也就是相对的表示,这样分级结构定义文件就可以借由从“父”分级结构文件中的节点表示上引用分级结构定义文件将其结合起来。“子”分级结构定义文件的顶端不仅仅是引用的节点级。借由这种方式分级结构模板就可由用户使用编辑器随意分解和重组。在某些实施方案中,分级结构定义文件是用户可读可编辑的;格式可通过使用行缩格来指定相应级。从前行的缩格形式增加表示更高的一级级;而前行缩格形式的减少则表示缩格缩表示的前行级。类似于节点1节点2节点3节点4这样的文件汇导致节点1和4放置在级N上,级2放置在级N+1上,级3在N+2上,而级N比引用该文件的节点级要高些。
(可选)用于节点“标签”的文本用来描述节点(可选)到图形化“图像”的路径,用于描述节点。如果标签和图形都被指定,并且就会被描述到图形的顶端。当前的实施方案使用“<image=URL>”格式来表示这条信息。
(可选)如果用户选择节点的话,那么借由使用定点设备来“点击”,就会执行该动作的表示。各个“动作”是由通过依赖于应用程序的方式传输的软件来编译的。格式<action=URL>可以用于该信息。某一些实施方案描述那些与push按钮类形状有关的动作的节点,向点击屏幕外观的用户暗示会生效。
(可选)“hief”引用指定将要在该节点下被接在的分级结构源代码。当前实施方案使用格式<hier=URL>来表示该信息。
(可选)<key=value>表示中的任一数字把一个短字符分配来表示长字符,这样“动作”“图像”以及其他一些表示都可使用这种速记式。这些指定对所有节点的子节点的表示都有效。
步骤842表示节点级的解析。其他表示的解析在步骤844和846中有显示。
在步骤848中,新节点被放置在分级结构数据中,作为前面级上新近添加的子节点(通过分级结构加载的扩展名),同时该节点会被最新记录在该级中。这样当受影响的父节点当前显示出的时候,就会重新渲染分级结构。
图15显示模拟返回中心式的控制器首选屏幕格式(当类似于操纵杆这样的定点设备被发出的时候,会返回到停留位置中)以及一些替换的方案。
与“控制杆”视图有关的是,当用户能使用非返回中心式定点设备,和鼠标之类的按钮的时候,我们讨论返回中心式的控制器被模拟。当用户使用鼠标“拖拽”显示对象922的时候,从对象可能经过的区域926的中心(阴影部分),在它的停留位置924的任何方向,操作动作启动。
“拖拽”就意味着用户点击对象,并按下按钮来移动鼠标。当按钮被按下,模拟就会移动到显示目标922,跟随由传输区域所限制的指示器。特别值得一提的是,如果游标928-用户鼠标位置,或者是其他由操作系统提供的定点设备的屏幕表示-这就是当按钮被按下的时候,在视图920中的位置,随后用户就会使用仍然按下的按钮,让它移动到视图930上步骤120图5的“监视器用户输入设备”监测这些事件。
步骤122“更新模拟操纵杆的位置”,然后再借由游标所移动的各个维的同等数量,来显示对象922,并会记录该当前位移,向量932。
接着,模拟控制器的位移会用于本发明的其他部分,就好像它是物理返回中心式的控制器的位移。
步骤120还监测鼠标按钮的发出,在这时步骤122把显示对象922移回在924上的停留位置,并把模拟控制器位移更新到{0,0}。
接下来对象从停留位置拖拽,模拟控制器位移越大,通过图5的144映射,Focus改变的越迅速。
通过使用在传输区域底端,和显示对象922中心附近的另一终端来描述控制杆的“杆”部分,图像概括出从上但由并非直接从上看的控制杆的外观形状,这样在视图930上,操纵杆就会透视省略出现。
接下来的各种替换格式也会在允许传输的阴影部分中,它们的停留位置显示出圆形可拖拽对象。替换格式940是分级结构根在左边的垂直显示分级结构的。它显示可被拖拽到分级结构的上级,或者是对应和垂直方向的任何结合的圆形对象。与分级结构上级结合在一起的侧面操作是禁止使用的。格式950显示了把传输完全同时限制在一维中。格式960把这个分成两个独立的滚动条,其中每个都是“返回中心式”。
图16显示出呈现在用户面前的序列范例,它通过轻推控制杆992使其偏离中心位置,来操纵分级结构。具体实施方案是级排列的,其中分级结构的顶部位于视图的顶部。这里的视图显示的是用户看到的模拟序列实例。当查看视图884的时候,用户向下轻推控制杆992来降低分级结构,然后再看视图995,用户向左移动控制杆992来转向标为“Computers and Internet”的节点的子节点。在视图996中,用户从左边向中心“Build Your Visual Studio 6.0 Library”移动。接着如下面的视图997所示,控制杆992再次被向下轻推,从而将子节点带到视图997之中。此时用户松开控制杆992使它返回到其本来位置,具体如图所示。
图17显示了一个从972到977的六个视图的序列,它向用户显示了操纵索引数据(在这个例子里是字典)的过程,其中具体实施方案是垂直排列的,并且分级结构的根节点位于视图的左边。这一次显示的视图仍然是用户看到的视图模拟序列的实例。在这个序列里,用户通过向右轻推控制杆来直接向右移动分级结构。由于用户对操作之中毫无帮助的非叶子节点并不感兴趣,所以它们是不活动的。只有视图977之中出现的叶子节点是活动的,它出现在视图底部。
图18说明了一个单独万维网站点分级结构具体实施方案,该站点允许在浏览器窗口中进行快速的连续操作。从外观上看,站点的页面是由主帧986和操纵帧984组成。操纵帧里面有分级结构980垂直方向的视图和一个模拟控制杆992。实例中的分级结构就是万维网站点的分级结构。每个节点都与能够加载到主帧中的站点分级结构中的页相对应,而节点的相关动作可以把相应的页面加载到主帧中。按下标为“Museum Review 1998”的按钮可以把相应的内容加载到主帧中,我们就可以看到站点了。
其它的具体实施方案都是在下列权利要求范围之内。
本发明可以轻易应用到广大的领域中,这是因为分级结构是无处不在的。
分级结构的几何状态是作为分级结构信息的一部分输入的,而不是作为实施方案中的硬编码(hard-coded)。
指定节点的外观是作为分级结构信息的一部分输入的,而不是实施方案中的硬编码。
指定节点的动作是作为分级结构信息的一部分输入的,它是由应用确定方式中的周围环境解释的,而不是被本发明解释。
本发明可以应用于操纵文件系统。为了达到目的,节点确定的动作对于文件来说可以以文件类型确定的方式打开文件,而对于字典并不需要进行指定节点的动作,这是因为操作本身可以“打开”字典。本发明可以被应用到假设包含大型文件系统的网络中的文件系统中。
本发明可以应用于允许用户在大型万维网站点上操纵分级结构中页面的集合。具体如图18所示。本发明中可以操纵任何大小的分级结构的小型显示区域可以在“操纵帧”中替换为浏览器窗口,这允许用户浏览站点并且同时控制窗口的巨大“主帧”的内容。在通常情况下,本发明可以被同样地应用于允许用户轻松存操纵存在于大量不同站点中的分级结构组织的页面集合。基于这种目的,把由指定节点的动作宣传的网页放置在主帧中。本发明可以通过多种方式应用于这种情况,其中包括“java小程序”、“插件”,或者是浏览器本身的一部分。
本发明可以被应用于操纵带有轮廓的文档。“有轮廓的文档”包括教科书,圣经的章节段落以及其他一些参考指导用书之类的提纲挈领的书。
本发明可以通过“索引”列表或文件,用于操作统一规定。换而言之,分级结构可以创建在末行由与操作目标相关的叶节点构成的元素列表中(把字典作为示例,所谓的借节点就与单词相关)。所有其他节点都被合成并做上标记,以便提供可靠的路标,获取正确的叶节点。非叶节点没有非节点指定动作。字典上叶节点的动作可能是指令计算机打印或说出某一个单词的定义或译义。接触列表叶节点的动作可能是打印出地址,启动邮件信息,抑或是拨打电话。图17表明出单词列表的这些字母操作。
本发明还可以应用于XML文件的操作,它既可以对文件进行编辑,叶可以创建由XML文件驱动的灵活应用程序。
本发明还可应用于诸如Deway十进制系统之类的编码分级结构的用户操作中。在这种情况之下,指定节点动作可能会引导出关于本书的信息。
本发明还可应用于允许邮政地址和其他通过浏览结构化安排的地理区域方位的简单用户登录。举例来说,标记维“New England”的节点的子节点可能会被标记上州名。
本发明还可应用于允许诸如邮政编码的快捷用户登录,在这种编码里,标记为“347”的节点的子节点可能是“3470”、“3471”、“3472”、“3473”、“3474”、“3475”、“3476”、“3477”、“3478”、“3479”,邮政编码分级结构就可这样被合成。
本发明还可应用于允许目录化产品的简单用户选择。举例来说,一首录下的歌可被首先目录化为“music”,然后是“rock/pop”,接着是“hip-hop”,然后在目录化为录音师,接着是曲目名称。
本发明还可应用于任何字符集的文本登录。对于“hanzi”这种中文使用的大字符集来说,字符可被目录化为使用惯例索引方法(中文字典通常目录化为笔划)的分级结构,或者是通过其他方法,比如使用视觉效果上的简单性进行目录化。该项发明还可应用于不能使用键盘的情况下。
本发明还可应用于允许文本内容源模式非分级结构的(例如大型无组织化站点,文学主体以及整个站点)简单用户操作中,但在这里,可使用“自我组织图”或其他相似性查询技术分级结构,将分级结构强加于其上。
权利要求
1.一种方法,包括标识由节点分级结构所定义的空间中分级结构位置,该空间至少为二维,每个节点在空间中可通过不同维中的值唯一确定,包括标识节点分级结构级的节点级,以及唯一标识在该级节点中的节点的级中节点,由分级结构位置值不同于节点级和级中节点的维中的位置值标识的位置值。
2.如权利要求1的方法,位置值中的一个包括非整数形式的深度值。
3.如权利要求1的方法,位置值中的一个包括非整数形式的级内位置值。
4.如权利要求3的方法,级内位置值包括标识一个节点的值中节点级加表示该节点位置偏移的浮点数。
5.权利要求1的方法,还包括使用分级结构位置标识分级结构用户视图的焦点。
6.一种方法,包括在显示器的空间中显示分级结构的节点的表示,每个节点表示完全占据空间内的子空间,和把空间完全分配至子空间。
7.如权利要求6的方法,其中各个节点按分级结构中的级来组织和空间在各级中分配使得在显示器上与变化的级对应的中完全显示一个级和该级之上或之下的分级结构的级至少被部分显示。
8.如权利要求7的方法,每个级表示为空间中的一条带,在一条带中所表示的节点与相邻带中表示的节点有父子关系,空间在带中分配成父亲的子空间的维与相邻带中子节点的维相同。
9.一种方法,包括对于节点分级结构中的节点渲染与节点相关的容器,以及与节点相关信息的表示,容器的维数随着基于分级结构中可变焦点而动态分配的空间数量而改变,而表示有不变的维,在显示器上绘制容器和表示,当焦点发生变化时用更新维重新渲染容器并在显示器上绘制容器,和在不进行重新描述的情况下,把渲染的表示拷贝到新的位置上。
10.如权利要求9的方法,其中所绘制的容器表明分级结构中节点的位置以及其与相邻节点的关系。
11.如权利要求10的方法,表示包括图形或文本或两者。
12.一种方法,包括接收二维引用帧中用户输入设备位移的信息;把至少一维的位移转换成用于确定分级结构用户视图焦点的分级结构位置变化率。
13.如权利要求12的方法,其中一个维表示分级结构中的深度,而另一个维则表示级内位置。
14.如权利要求12的方法,其中一个维表示分级结构中的级深度,而另一个维则表示级内位置。
15.一种方法,包括向用户显示节点分级结构一部分的表示;把各个节点与由应用程序执行的动作相结合,该动作不同于分级结构的操作,使用户通过第一类动作操作分级结构一部分中显示的表示;和通过使用第二类动作激发节点,使用户能够启动与分级结构的显示节点相关的动作。
16.如权利要求15的方法,其中第一类动作包括拖拽。
17.如权利要求15的方法,其中第二类动作包括点击。
18.一种方法,包括显示节点分级结构中的一部分的表示,提供返回中心式输入设备的模拟,以便用户能够操作分级结构;响应用户操作非返回中心式输入设备表示对模拟操作以操作分级结构,把用户操作看作是返回中心式的输入设备的操作。
19.如权利要求18的方法,非返回中心式输入设备包括计算机鼠标,轨迹球或者是手写板。
20.如权利要求18的方法,返回中心式输入设备包括操纵杆。
21.如权利要求18的方法,模拟包括在显示器上渲染的设备。
22.如权利要求18的方法,其中响应用户操作是改变分级结构中的焦点位置。
23.如权利要求22的方法,其中通过把焦点的递增向量定期添加到焦点位置以改变焦点的位置,焦点递增向量是模拟控制器位移向量的函数。
24.如权利要求18的方法,其中用户在单个拖拽动作中操作非返回中心式控制器使用户就能够观看到任意大的节点分级结构。
25.如权利要求23的方法,其中函数是非线性的,使用户在二维宽的范围内改变操作速率。
26.一种方法,包括在客户端设备中,显示多个节点分级结构的部分的信息,多个节点包括在分级结构中子分级结构顶端的节点;当用户的操作导致子分级结构接近所显示信息的视图,从服务器中获取关于接近视图的子分级结构的信息。
27.一种方法,包括在服务器上接收来自于客户端上关于分级结构的定义的请求;响应请求,为客户端提供分级结构定义的一部分但不是全部,该部分引用该分级结构中的其他部分。
28.如权利要求27的方法,其中每个部分包括子分级结构。
29.权利要求27的方法,还包括基于优化服务器和客户端之间的通信的参数,确定将要提供给客户端的那部分的尺寸大小。
30.如权利要求27的方法,其中服务器自动建立与给定的最小部分尺寸尽可能接近的分级结构定义部分。
31.如权利要求27的方法,服务器生成对子分级结构的引用,并将其包含在所提供的节点定义部分内。
32.一种万维网网页,包括提供允许节点分级结构的持续操作的可操作界面的区域。
33.如权利要求32的网页,其中节点包括对其他网页的链接。
34.一种万维网浏览器部件,包括提供允许对节点分级结构持续操作的用户界面视窗的软件。
35.如权利要求34的方法,其中节点包括对万维网网页的链接。
36.如权利要求35的方法,其中视窗占据少于25%的万维网网页。
37.一种用户界面,包括允许持续操作分级结构以便从分级结构中选择的设备。
38.如权利要求37中的用户界面,其中分级结构包括分级结构功能菜单。
39.如权利要求37中的用户界面,其中分级结构包括分级结构文件系统。
40.如权利要求37中的用户界面,其中分级结构包括以XML或其扩展编码的文档。
41.如权利要求37中的用户界面,其中分级结构包括从文档,列表或者是表格中创建的分级结构索引。
42.如权利要求37中的用户界面,其中分级结构包括编码的分级结构。
43.如权利要求37中的用户界面,其中编码的分级结构包括杜威十进制系统。
44.如权利要求37中的用户界面,其中分级结构包括目录化产品。
45.如权利要求37中的用户界面,其中分级结构包括邮政地址或地理化区域的其他位置。
46.如权利要求37中的用户界面,其中分级结构包括被选择而进行文本输入的属于一个字符集的字符。
47.如权利要求37中的用户界面,其中分级结构包括原本形式并非分级结构主体,而是使用相似性查询技术而使其成为分级结构。
48.一种方法,包括在浏览器上显示分级结构的某一部分;使用户持续操作分级结构的节点和级;和在操作期间及时从远程服务器向浏览器传输分级结构的部分,能够进行持续操作。
全文摘要
通过在节点信息表示中是连续的用户界面从而容易地操作分级结构并能够使用小的显示空间实现。
文档编号G06F3/033GK1364266SQ00810788
公开日2002年8月14日 申请日期2000年5月26日 优先权日1999年5月28日
发明者S·W·莱尼斯 申请人:瑟沃尔互动技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1