详细描述
以下详细描述针对用于可视化并导航搜索结果的***、方法、和计算机可读介质。如以下详细讨论的,多个搜索结果的经缩放的可视表示可以显示在单个显示屏上并按类别来组织。用户可以流畅地将显示放大到特定搜索结果的全尺寸可视表示,流畅地将显示放大到特定类别中的搜索结果的可视表示,获得特定类别中的附加搜索结果的经缩放的可视表示,或获得一个或多个子类别中的搜索结果的经缩放的可视表示。尽管此处所述的主题是在结合操作***和应用程序在计算***上的执行而执行的程序模块的一般上下文中提供的,但本领域技术人员可以认识到,可结合其它类型的程序模块来执行其它实现。
一般而言,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。此外,本领域的技术人员可以理解,此处所述的本主题可以使用其它计算机***配置来实践,这些其它计算机***配置包括手持式设备、多处理器***、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机等。
此处所述的本主题也可被描述为在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践,在这种环境中程序模块可位于本地和远程存储器存储设备两者中。然而,应当理解,此处所述的实现也可结合单机计算机***和其它类型的计算设备来利用。也应理解,尽管在此做出了对因特网的引用,但此处所给出的各实施例也可在任一类型的局域网(“LAN”)或广域网(“WAN”)的情况下利用。
在以下详细描述中,对构成其一部分并作为说明示出了各具体实施例或示例的附图进行了参考。现在参考附图(全部若干附图中相同的标号表示相同的元素),将描述用于可视化和导航搜索结果的计算***和方法的各方面。具体地,图1是示出用于此处所描述的主题的说明性操作环境的各方面的网络图,该环境包括客户机计算机102、服务器计算机104和网络106。
如图1所示,客户机计算机102与服务器计算机104通过各自到网络310的连接来彼此通信地耦合。根据一个实现,网络106包括因特网。然而,应当理解,网络106可包括LAN、WAN或用于连接客户机计算机102与服务器计算机104的其它类型的合适网络。
图1还示出供客户机计算机102和服务器计算机104利用的多个软件组件。具体而言,客户机计算机102包括适用于控制联网的台式或膝上型计算机的操作的操作***108。服务器计算机104包括适用于控制联网的服务器计算机的操作的操作***108。例如,根据各实现,客户机计算机102和服务器计算机104可利用来自华盛顿州雷蒙德市的微软公司的WINDOWS XP或WINDOWS VISTA操作***。可以利用诸如LINUX操作***或来自苹果计算机有限公司的OSX操作***等其它操作***。应当理解,尽管此处所给出的各实施例是在台式或膝上型客户机计算机102与远程服务器计算机104的上下文中描述的,但可利用许多其它类型的计算设备或***来具体化此处所给出的各方面。
根据一个实现,客户机计算机102还包括web浏览器程序(此处被称为“浏览器”)110。浏览器110可用于从服务器计算机104请求、接收并显示诸如网页等信息页面。具体地,浏览器110可用于与在服务器计算机104上执行的搜索引擎114建立连接。通过该连接,浏览器110可以请求执行搜索引擎114所提供的搜索查询的网页。通过该网页,客户机计算机102的用户可以指定搜索引擎114在搜索数据库116时使用的一个或多个搜索项。在此处所呈现的一个实施例中,数据库116包括关于位于因特网上的网页和其它类型的文档的数据。然而,应当理解,数据库116可包括实际上任何种类的数据,包括但不限于网页、文档、图像和多媒体文件。
响应于执行查询,搜索引擎114可用于返回搜索结果集合。在一个实施例中,搜索结果使用统一资源定位符(“URL”)标识存储在因特网上的网页,并可按照与搜索项的相关性来排序。根据一个实现,搜索结果还可以根据类别和子类别来分组。例如,对项“jaguar(美洲虎)”的搜索可返回分类成对应于动物、汽车或体育运动队的类别的搜索结果。每一类别可以被进一步定义成子类别。一旦执行了搜索并分类了结果,则将类别名称和每一类别中的搜索结果的URL返回到客户机计算机102。
如以下将详细描述的,客户机计算机102提供用于可视化和导航响应于搜索查询所提供的搜索结果的用户界面。在一个实现中,该用户界面包括响应于以上述方式执行的搜索查询所返回的搜索结果的经缩放的可视表示。经缩放的可视表示是通过检索对应于搜索结果的网页、呈现网页、并随后缩小所呈现的网页以便可以在客户机计算机102的单个显示器上呈现多个表示来生成的。在一个实现中,web浏览器110执行这些处理操作。然而,应当理解,在其它实现中,在客户机计算机102上执行的操作***108或应用程序112执行这些处理操作的一些或全部。另选地,服务器计算机104可以执行这些处理操作的一些或全部。以下描述的图2A-2B、3A-3G、4A-4C和5A-5B提供关于此处所提供的用于可视化和导航搜索结果的各用户界面的结构和使用的附加细节。
现在参考图2A,描述了此处提供的一个用户界面所生成的说明性显示200A的各方面。具体地,图2A示出在服务器计算机104使用说明性搜索项“jaguar”执行查询之后浏览器110所生成的显示200A。如图2A所示,显示200A包括用于接收搜索项的域202和用户界面按钮204,该按钮在被选择时将使所输入的搜索项连同使用所提供的搜索项执行数据库116的搜索的请求一起被传送到搜索引擎114。响应于这一请求,搜索引擎114执行对数据库116的搜索并以上述方式向浏览器110返回搜索结果。浏览器110随后使用所返回的搜索结果来生成图2A所示的显示200A。
在一个实施例中,显示200A包括所返回的结果的经缩放的可视表示206A-206I。经缩放的可视表示206A-206I是搜索结果所标识的网页的、已被缩小以适合同时处于显示200A中的可视呈现。根据各实现,经缩放的可视表示206A-206I按照类别在显示200A上组织成各组。例如,经缩放的可视表示206A-206C处于对应于动物类别的一个组中,经缩放的可视表示206D-206F处于对应于汽车类别的第二组中,并且经缩放的可视表示206G-206I处于对应于体育运动队类别的第三组中。类别名称210A-210C可以与每一组经缩放的可视表示相邻地显示。
应当理解,虽然图2A所示的显示200A在3个不同的组中示出3类经缩放的可视表示,但可以显示更多或更少的结果和组。所示的经缩放的可视表示和组的数量可以根据其上显示它们的屏幕显示器的分辨率来计算。用于计算经缩放的可视表示的每一个的尺寸的比例因子也可以基于要显示的表示的数量、类别的数量和屏幕显示器的分辨率来确定。在一个实现中,还可以提供用户界面按钮214,以用于检索下一最相关的搜索结果并以与图2A所示的方式相同的方式来显示它们。
根据此处所展示的公开的一个方面,诸如鼠标、键盘、触摸屏、触摸垫或其它类似设备等用户输入设备可被用来控制指针(此处被称为“指针”)208在显示200A上的位置。这一用户输入设备还可被用来进行对显示200A上示出的用户界面对象的选择。例如,在用户输入设备是鼠标时,鼠标上的一个按钮可被用来选择显示200A上示出的对象。
指针208还可以置于用户界面对象之上而不选择该对象。在此,该过程被称为“悬停”。在一个实现中,在指针208悬停在经缩放的可视表示上方时,显示示出对应的搜索结果的页面标题的用户界面对象。例如,在图2A所示示例中,指针208正悬停在经缩放的可视表示206B上方。结果,显示了示出对应于经缩放的可视表示206B的搜索结果的标题的用户界面对象212。
现转向图2B,将描述在执行搜索之后浏览器110所生成的另一说明性显示200B。在该实现中,经缩放的可视表示206A-206I仍然在对应于搜索结果的类别的各组中示出。然而,在该实施例中,搜索结果的经缩放的可视表示206A-206I被显示在重叠的搜索结果的栈中而非以图2A所示的平铺方式显示。如以下更详细地描述的,可以使用用户输入设备来选择类别名称210A-210C的一个来聚焦在所选类别中的结果上。响应于这一选择,所选类别中的经缩放的可视表示将从栈中重新组织成平铺安排,以便可以整体查看所选组中的每一经缩放的可视表示。
现参考图2C,将描述在执行搜索之后浏览器110所生成的另一说明性显示200C。在该实现中,经缩放的可视表示206A-206I的每一个的共同部分在页首212中示出。以此方式,共同元素(例如品牌、用户界面、共同广告等)被折叠在页首212中并只显示一次。这些元素不在经缩放的可视表示206A-206I的每一个中示出。只有经缩放的可视表示206A-206I的每一个中的不同的元素才被分开显示。
现参考图3A-3G,将提供关于此处所呈现的公开的用于导航搜索结果的一个方面的附加细节。具体地,图3A示出执行对项“jaguar”的示例搜索查询之后浏览器110所生成的屏幕显示300。在该实现中,用户可以利用用户输入设备来选择经缩放的可视表示206A-206I中的一个来流畅地将显示300放大到所选的经缩放的可视表示的全尺寸表示。放大所选的经缩放的可视表示使得所选表示作为使用显示300的整个区域的全尺寸表示来显示。
在图3A-3G所示的示例中,用户使用指针208选择了经缩放的可视表示206B。响应于这一选择,显示300流畅地放大到所选可视表示206B的全尺寸表示302B。该过程在图3A-3D中示出。应当理解,虽然缩放过程在图3A-3D中以离散的缩放等级示出,但缩放可以用流畅的方式来执行。为提供此处所描述的流畅的扫视和缩放能力,此处所呈现的各实施例利用允许在缩放等级之间流畅且连续地转换的算法。该过程在2004年3月1日提交的题为“System and Method for Exact Rendering in a Zooming UserInterface(用于在缩放用户界面中精确呈现的***和方法)”的美国专利第7,075,535号、2005年8月22日提交的题为“System and Method for UpscalingLow-Resolution Images(用于放大低分辨率图像的***和方法)”的美国专利申请第11/208,826号、2004年10月15日提交的题为“Nonlinear Cachingfor Virtual Books,Wizards or Slideshows(用于虚拟书、向导或幻灯片放映的非线性高速缓存)”的美国临时专利申请第60/619,053号、2004年10月15日提交的题为“System and Method for Managing Communication and/orStorage of Image Data(用于管理图像数据的通信和/或存储的***和方法)”的美国临时专利申请第60/619,118号、2005年3月29日提交的题为“Systemand Method for Interactive Multiresolution Transfer of World Wide WebContent By Proxy(用于通过代理的、万维网内容的交互式多分辨率传输的***和方法)”的美国临时专利申请第60/666,142号中的一个或多个中描述,这些专利或申请的每一个都通过整体引用明确地结合于此。
一旦显示300在所选的经缩放的可视表示206B上放大,如图3D所示,用户可以查看、导航和以其它方式与对应的搜索结果的全尺寸表示302B交互。在用户完成其交互时,用户可以利用用户输入设备来请求显示300返回到图3A所示的搜索结果显示。响应于这一请求,显示300流畅地缩小全尺寸表示302B以返回到图3B所示的搜索结果显示。流畅地缩小全尺寸表示302B来示出搜索结果显示的过程在图3E-3G中示出。
根据一个实现,用户可以请求只是临时地放大到经缩放的可视表示。这可以例如在选择所需的经缩放的可视表示的同时通过按下并保持鼠标按钮或通过按住命令键来实现。响应于这一选择,显示300被流畅地临时放大到所选的经缩放的可视表示以供检查。在用户完成检查所选的经缩放的可视表示时,用户可以释放鼠标按钮或执行另一功能以使显示300流畅地缩放回图3A所示的类别显示。
现转向图4A-4C,将提供关于此处所呈现的公开的用于导航搜索结果的一个方面的附加细节。具体地,图4A示出执行对项“jaguar”的示例搜索查询之后浏览器110所生成的屏幕显示400A。在该实现中,用户可以利用用户输入设备通过用指针208选择类别名称210A-210C中的一个来请求类别中的一个的附加细节。响应于这一选择,显示400A流畅地放大来只显示所选类别中的搜索结果。例如,在图4A所示的示例中,用户选择了类别名称210A。响应于此,显示400A流畅地放大到图4B所示的显示400B,其包括对应于所选类别中的搜索结果的经缩放的可视表示206A-206C和206J。如果经缩放的可视表示用以上参考图3B所述的方式堆叠,则在显示被放大到所选类别时它们将被平铺。
如图4B所示,在放大显示400A来只示出特定类别中的结果时,该类别的经缩放的可视表示以大于图4A示出的搜索结果视图中的大小来显示。以此方式,当在特定类别上放大时,使用户可获得更多细节。另外,根据一个实现,在显示400A被放大到特定类别时,可以表示附加搜索结果。例如,在图4B所示示例中,显示了经缩放的可视表示206J所表示的附加搜索结果。可以用类似方式显示所选类别的任何数量的附加搜索结果。可以选择经缩放的可视表示206A-206C和206J中的任一个,并用上述方式来放大。另外,用户界面对象可被呈现在显示400B上,这允许用户在所选类别中检索附加结果。
根据另一实现,每一类别可被细分成各个子类别。在该实现中,选择类别名称210A将使显示400A被流畅地放大来在示出所选类别的子类别中的结果。例如,如图4C所示,响应于选择类别名称210A,子类别中的结果被显示在显示400C中。这些结果由经缩放的可视表示206K-206N来表示。如果经缩放的可视表示用以上参考图3B所述的方式堆叠,则在显示被放大到所选子类别时它们将被平铺。应当理解,可以选择经缩放的可视表示206K-206N中的任一个并以上述方式来放大。另外,用户界面对象可被呈现在显示400C上,这允许用户在所选类别中检索附加结果。
根据一个实现,用户可以请求只是临时地放大特定类别或子类别中的结果。这可以例如在选择所需类别或子类别的同时通过按下并保持鼠标按钮或通过按住命令键来实现。响应于这一选择,显示400A被流畅地放大所选类别或子类别中的结果以供检查。在用户完成检查所选类别或子类别时,用户可以释放鼠标按钮以使显示400B或400C流畅地缩放回图4A所示的搜索结果显示。
现参考图5A-5B,将提供关于此处所呈现的用于可视化和导航搜索结果的各实施例的附加细节。具体地,图5A-5B是示出例程500的流程图,例程500示出根据一个实现的用于可视化搜索结果并允许用户可视地导航搜索结果的客户机计算机102的操作。如上简述,应当理解,在替换实现中,图5A-5B所示的并在此处描述为由客户机计算机102执行的处理操作的一些或全部可以由服务器计算机104执行。例如,服务器计算机104可以将搜索结果的经缩放的可视表示作为图像来呈现,并提供允许客户机计算机102流畅地放大和缩小所呈现的图像的设施。
还应理解,此处所述的逻辑操作被实现为(1)计算***上运行的计算机实现的动作或程序模块的序列,和/或(2)计算***内的互连机器逻辑电路或电路模块。该实现是取决于计算机***的性能要求来选择的。因此,此处所描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及任何组合来实现。
例程500在操作502处开始,其中使用浏览器110来请求搜索引擎114搜索数据库116。响应于此,在操作504处,搜索引擎114执行所请求的搜索并分类搜索结果。在操作506处,服务器计算机104将经分类的搜索结果发送给浏览器110。如上所述,在一个实现中,搜索结果被分类并包括每一搜索结果的URL和页面标题。响应于搜索请求,搜索引擎114可以返回前N个结果。可以通过向搜索引擎114作出后续请求来获得附加结果。
从操作506,例程500继续至操作508,其中浏览器110呈现搜索结果的经缩放的可视表示。为呈现经缩放的可视表示,浏览器110从指定URL检索每一结果的网页,呈现该网页并缩放所呈现的图像。如上所述,在其它实施例中,在服务器104上执行的软件组件可执行该呈现过程。一旦呈现了经缩放的可视表示,则浏览器110用以上参考图2A所述的方式在根据类别分配的各组中显示经缩放的可视表示。
从操作508,例程500继续至操作510,其中浏览器110确定指针208是否悬停在经缩放的可视表示上方。如果是,则例程500分支到操作512,其中用以上参考图2A所述的方式显示关于对应的搜索结果的数据。如果否,则例程500从操作510继续至操作514。
在操作514处,浏览器110确定是否作出临时放大经缩放的可视表示中的一个的请求。如上所述,在一个实施例中,这一选择可以通过将指针208置于经缩放的可视表示上并点击且保持鼠标按钮或其它类型的用户输入设备按钮来做出。响应于这一请求,例程500分支到操作506,其中流畅地放大显示来示出所选的经缩放的可视表示的全尺寸表示。从操作516,例程500继续至操作518,其中作出关于按钮是否被释放的判定。在释放了按钮时,例程500从操作518继续至操作520,其中显示流畅地从经缩放的可视表示缩小来示出搜索结果。从操作520,例程500继续至操作522。
在操作522,浏览器110确定是否作出了放大经缩放的可视表示中的一个的请求,如通过使用用户输入指针208和用户输入设备来选择经缩放的可视表示。如果接收到这种请求,则例程500继续至操作524,其中显示被流畅地放大到所选的经缩放的可视表示,从而示出所选搜索结果的全尺寸表示。用户随后可以查看、导航和以其它方式与搜索结果的全尺寸表示交互。如果浏览器110接收到返回搜索结果的请求,则例程500分支到操作528,其中显示流畅地从全尺寸表示缩小以展示搜索结果。
在操作522处,如果未接收到放大到搜索结果的全尺寸表示的请求,则例程500继续至操作530。在图5B中的操作530处,浏览器110确定是否接收到临时放大到特定类别中的搜索结果的请求。这可以例如通过将用户输入指针208移动到类别名称210并随后点击且保持鼠标按钮来实现。响应于这一请求,例程500分支到操作532,其中显示被放大到所选类别以示出附加细节并可能示出所选类别的附加搜索结果。这在以上参考图4A-4C描述。如果接收到返回到搜索结果的请求,如通过释放鼠标按钮,则例程500从操作534分支到操作536,其中显示流畅地从类别视图缩小来返回到搜索结果。从操作536,例程500继续至操作538。
在操作538处,浏览器110确定是否接收到放大到特定类别中的搜索结果的请求。这可以例如通过将用户输入指针208移动到类别名称210并随后点击鼠标按钮来实现。响应于这一请求,例程500分支到操作540,其中显示被放大到所选类别以示出附加细节并可能示出所选类别的附加搜索结果。这在以上参考图4A-4C描述。如果接收到返回到搜索结果的请求,则例程500从操作542分支到操作544,其中显示流畅地从类别视图缩小来返回到搜索结果。从操作544,例程500继续至操作546。
在操作546处,浏览器110确定是否接收到显示附加搜索结果的请求。如果否,则例程500分支回到操作510(在图5A中示出),如上所述。如果要显示附加搜索结果,则例程500从操作546继续至操作548。在操作548处,浏览器从搜索引擎114请求附加搜索结果,呈现这些结果,并以上述方式来显示它们。例程500随后从操作510继续,如上所述。
现参考图6,将讨论在此处所给出的各实施例中利用的计算机600的说明性计算机体系结构。图6所示的计算机体系结构示出了常规台式计算机、膝上型计算机或服务器计算机。图6所示的计算机体系结构包括中央处理单元602(“CPU”)、包括随机存取存储器614(“RAM”)和只读存储器(“ROM”)616的***存储器608、以及将存储器耦合至CPU 602的***总线604。基本输入/输出***存储在ROM 616中,它包含帮助诸如在启动期间在计算机600内元件之间传递信息的基本例程。计算机600还包括用于存储操作***108、应用程序和其它程序模块等的大容量存储设备610,这将在以下更为详尽地描述。
大容量存储设备610通过连接至总线604的大容量存储控制器(未示出)连接到CPU 602。大容量存储设备610及其相关联的计算机可读介质为计算机600提供非易失性存储。尽管此处所包含的计算机可读介质的描述指的是大容量存储设备,如硬盘或CD-ROM驱动器,但本领域的技术人员应理解,计算机可读介质可以是可由计算机600访问的任何可用介质。
作为示例而非限制,计算机可读介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机可读介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、BLU-RAY或其它光学存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机600访问的任何其它介质。
根据各实施例,计算机600可以使用通过诸如因特网等网络106与远程计算机的逻辑连接在联网环境中操作。计算机600可以通过连接至总线604的网络接口单元606来连接到网络106。应理解,网络接口单元606也可用于连接至其它类型的网络和远程计算机***。计算机600还可以包括用于接收和处理来自多个其它设备的输入的输入/输出控制器612,这些设备包括键盘、鼠标或者电子指示笔(未在图6中示出)。类似地,输入/输出控制器可以向显示屏617提供输出。
如前简述地,多个程序模块和数据文件可被存储在计算机600的大容量存储设备610和RAM 614中,包括适用于控制联网的台式或服务器计算机的操作的操作***108,如华盛顿州雷蒙德市的微软公司的WINDOWSXP或WINDOWS VISTA操作***。大容量存储设备610和RAM 614还可以存储一个或多个程序模块。具体而言,大容量存储设备610和RAM 614可存储web浏览器程序110、搜索引擎114以及以上参考图1描述的其它程序模块。其它程序模块也可被存储在大容量存储设备610中并供计算机600利用。
应当理解,虽然参考网页描述了此处所呈现的各实施例,但各实现可以与任何类型的搜索引擎所提供的任何类型的搜索结果一起使用。此外,虽然在可通过因特网访问搜索引擎的上下文中描述了此处呈现的各实施例,但此处呈现的各实施例可被用来可视化并导航通过搜索存储在单个台式计算机上的数据所得到的搜索结果。还应当理解,此处描述的由浏览器110执行的操作的一些或全部可以由在客户机计算机102上执行的其它软件组件来执行,如由操作***108或应用程序112来执行。
基于前述内容,应当理解,此处提供了用于可视化并导航搜索结果的***、方法和计算机可读介质。尽管用对计算机结构特征、方法动作和计算机可读介质专用的语言描述了此处呈现的本主题,但可以理解,所附权利要求书中定义的本发明不必限于此处所述的具体特征、动作或介质。相反,具体特征、动作和介质是作为实现权利要求的示例形式公开的。
上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。