持久的保存门户转让专利

申请号 : CN200780031438.4

文献号 : CN101578592B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 凯润·安妮·韦伯尔乔纳森·特雷弗爱德华·霍萨曼莎·M·特里波蒂

申请人 : 飞扬管理有限公司

摘要 :

公开了收集因特网上信息的方法和计算机程序产品。方法包括分析网页的内容以形成多个可收集对象,从所述多个可收集对象中选择一个或多个对象,将所述一个或多个对象存储到一个或多个保存门户,根据用户指定的数据批注所述一个或多个对象;并且根据所述一个或多个保存门户的隐式数据批注所述一个或多个对象。方法还包括自动地使用用户指定的数据批注所述一个或多个对象,而不用人工干预,并且自动地使用所述一个或多个保存门户的隐式数据批注所述一个或多个对象,而不用人工干预。

权利要求 :

1.一种收集因特网上信息的方法,包括:由计算设备解析网络上的网页的内容以形成多个可收集对象;

由所述计算设备接收对所述多个可收集对象中的一个或多个对象的选择;

由所述计算设备将所述一个或多个对象存储到一个或多个保存门户;

无需手工干预,使用用户指定的数据来自动批注所述一个或多个对象;

无需手工干预,使用所述一个或多个保存门户的隐式数据来自动批注所述一个或多个对象,所述隐式数据包括关联于所述一个或多个对象的社会数据;

由所述计算设备基于与所述一个或多个对象相关联的数据来提取至少一个实体;以及由所述计算设备致使所述一个或多个对象与所述至少一个实体一起显示。

2.根据权利要求1所述的方法,其中从所述网页中选择的所述一个或多个对象包括从由文本、音频、视频、图形、图像和URL组成的组中选择的一条或多条信息。

3.根据权利要求1所述的方法,其中所述一个或多个对象包括关于人的信息,包括职位、专业协会、联系信息和专长领域。

4.根据权利要求1所述的方法,其中所述关联于所述一个或多个对象的社会数据包括评论、等级以及所述一个或多个对象被查看的次数。

5.根据权利要求1所述的方法,其中所述隐式数据包括从以下各项组成的组中选择的一个或多个项:对象创建的日期;

所述对象被创建的地点;

所述对象被收集的日期;

所述对象的标题;

所述对象的原始所有者;

所述对象的中间所有者;和

去往所述原始所有者的网页的URL。

6.根据权利要求1所述的方法,还包括:根据用户定义的参数组织所述一个或多个保存门户以形成对象集合;和将所述对象集合链接到所述网络上的附加信息,其中所述附加信息包括购物、新闻和地图信息。

7.根据权利要求1所述的方法,其中存储所述一个或多个对象还包括:将所述一个或多个对象存储在所述网络上;和跨越多个用户设备共享所述一个或多个对象。

8.根据权利要求7所述的方法,其中所述共享所述一个或多个对象为包括固定计算设备和移动设备在内的多个用户设备提供对所述一个或多个对象的访问。

9.根据权利要求1所述的方法,其中无需手工干预,使用隐式数据来自动批注所述一个或多个对象的步骤还包括:标识所述一个或多个对象的源;和

提供所述一个或多个对象的源的版权信息。

10.根据权利要求1所述的方法,还包括:使用所述关联于所述一个或多个对象的数据来检索附加信息;和使用所检索的所述附加信息来构造所述一个或多个对象的结构化元数据。

11.根据权利要求1所述的方法,还包括:从所述一个或多个保存门户向目的地发送一个或多个对象,其中所述目的地包括从由组邮件列表和组网站组成的组中选择的至少一个项。

12.一种用于收集因特网上信息的设备,包括:用于解析网络上的网页的内容以形成多个可收集对象的装置;

用于接收所述多个可收集对象中的一个或多个对象的选择的装置;

用于将所述一个或多个对象存储到一个或多个保存门户的装置;

用于无需手工干预,使用用户指定的数据来自动批注所述一个或多个对象的装置;和用于无需手工干预,使用所述一个或多个保存门户的隐式数据来自动批注所述一个或多个对象的装置,所述隐式数据包括关联于所述一个或多个对象的社会数据;

用于基于与所述一个或多个对象相关联的数据来提取至少一个实体的装置;以及用于致使所述一个或多个对象与所述至少一个实体一起显示的装置。

13.根据权利要求12所述的设备,其中从所述网页中选择的所述一个或多个对象包括从由文本、音频、视频、图形、图像和URL组成的组中选择的一条或多条信息。

14.根据权利要求12所述的设备,其中所述一个或多个对象包括关于人的信息,包括职位、专业协会、联系信息和专长领域。

15.根据权利要求12所述的设备,其中所述关联于所述一个或多个对象的社会数据包括评论、等级以及所述一个或多个对象被查看的次数。

16.根据权利要求12所述的设备,其中所述隐式数据包括从以下各项组成的组中选择的一个或多个项:对象创建的日期;

所述对象被创建的地点;

所述对象被收集的日期;

所述对象的标题;

所述对象的原始所有者;

所述对象的中间所有者;和

去往所述原始所有者的网页的URL。

17.根据权利要求12所述的设备,还包括:用于根据用户定义的参数组织一个或多个保存门户以形成对象集合的装置;和用于将所述对象集合链接到所述网络上的附加信息的装置,其中所述附加信息包括购物、新闻和地图信息。

18.根据权利要求12所述的设备,其中用于存储所述一个或多个对象的所述装置还包括:用于将所述一个或多个对象存储在所述网络上的装置;和用于跨越多个用户设备共享所述一个或多个对象的装置。

19.根据权利要求18所述的设备,其中用于共享所述一个或多个对象的装置包括用于为包括固定计算设备和移动设备在内的多个用户设备提供对所述一个或多个对象的访问的装置。

20.根据权利要求12所述的设备,其中用于无需手工干预,使用隐式数据来自动批注所述一个或多个对象的装置还包括:用于标识所述一个或多个对象的源的装置;和用于提供所述一个或多个对象的源的版权信息的装置。

21.根据权利要求12所述的设备,还包括:用于使用所述关联于所述一个或多个对象的数据检索附加信息的装置;和用于使用所检索的所述附加信息来构造所述一个或多个对象的结构化元数据的装置。

22.根据权利要求12所述的设备,还包括:用于从所述一个或多个保存门户向目的地发送一个或多个对象的装置,其中所述目的地包括从由组邮件列表和组网站组成的组中选择的至少一个项。

23.根据权利要求1所述的方法,其中所述至少一个实体是从地址、交易和公司组成的组中选择的成员。

24.根据权利要求12所述的设备,其中所述至少一个实体是从地址、交易和公司组成的组中选择的成员。

说明书 :

持久的保存门户

技术领域

[0001] 本发明涉及因特网应用领域。具体而言,本发明涉及一种用于在因特网上收集信息的方法和系统。

背景技术

[0002] 现今,如果用户想要保存来自web的某些信息,那么用户将必须去网站、通过网页点击、并且接着将页面加为书签以保存页面上的信息。本质上,用户已经保存了到网站的通路。但是,因为因特网是非常短时间进化的环境,所以存在至少两个与此方法关联的问题。首先,当用户再次需要该信息的时候,网站可能不再存在。第二,即使网站仍然存在,该网站的内容已经改变这样用户感兴趣的信息可能不再存在。
[0003] 保存来自web的某些信息的另一种方法是打开诸如Microsoft Word的类似剪贴板的应用程序,并且接着用户可选择、拷贝、并且粘贴感兴趣的特定信息到Word文档。这种方法的一个缺点是当这些信息被拷贝的时候,与感兴趣的信息相关的其它信息没有被移动到Word文档里。用户将不得不手工地键入引用、URL、作者、以及其它与所获取信息相关的上下文信息,这是一个费时并且单调乏味的任务。
[0004] 另一种方法是使用类似由Yahoo!公司提供的我的Web的应用程序,其允许用户保存包含感兴趣的信息的网页的拷贝。但是,这种方法保存了用户感兴趣的信息和用户不感兴趣的信息两者。用户可能仅仅对页面的特定部分或页面上的特定图像感兴趣。这种方法的另一个缺点是一旦用户保存了该页面,用户可能已经丢失了引用、URL、作者、以及其它与所获取信息相关的上下文信息,除非用户手工地键入这些信息。
[0005] 在上面的情况下,一个缺点是要求用户添加关于所获得信息的元数据,作为采后动作。不存在允许用户实时收集并批注具有元数据的信息的机制。另外,不存在以结构化的方式保存信息的机制。结果,在收集了这些信息之后用户必须组织并将该信息构造成为有用的格式。因此,存在解决当前技术的这种问题的需要。具体而言,存在对于用于收集因特网上信息的持久保存门户的需要。

发明内容

[0006] 在一个实施例中,用于收集因特网上信息的方法包括解析网页的内容以形成多个可收集对象、从该多个可收集对象中选择一个或多个对象、将该一个或多个对象存储到一个或多个保存门户、根据用户指定的数据来批注该一个或多个对象、并且根据该一个或多个保存门户的隐式数据来批注该一个或多个对象。本方法还包括自动地使用用户指定的数据来批注该一个或多个对象,而不用人工干预,并且自动地使用该一个或多个保存门户的隐式数据来批注该一个或多个对象,而不用人工干预。

附图说明

[0007] 在结合下面附图阅读本发明实施例的详细描述后,将能更加清楚地理解前面提到的本发明的特征和优点以及其附加特征和优点。
[0008] 图1示出了根据本发明实施例的用于在网站上运行地图应用的系统。
[0009] 图2A、2B和2C示出了根据本发明实施例收集信息的方法。
[0010] 图3示出了根据本发明实施例批注所收集信息的方法。
[0011] 图4示出了根据本发明实施例的在图2的每个持久的保存门户中收集的对象的示例。
[0012] 图5示出了根据本发明实施例的运行上面描述的应用的移动设备。
[0013] 图6示出了根据本发明实施例的持久的保存门户的另一集合。遍及附图使用相似的数字。

具体实施方式

[0014] 提供了用于收集因特网上信息的方法和系统。给出下面的描述以便使本领域任何技术人员能够利用和使用本发明。仅提供特定的实施例和应用的描述作为示例。这里描述的示例的各种修改和组合对本领域技术人员来说将是显而易见的,并且这里定义的一般原理可应用于其它示例和应用,而不会偏离本发明的精神和范围。因此,本发明不旨在限于描述和示出的示例,而是要符合与这里公开的原理和特征相一致的最广泛的范围。
[0015] 根据可在计算机系统上执行的关于信息的操作的流程图、逻辑块、以及其它符号表示法给出了接着的详细描述的某些部分。这里,过程、计算机执行步骤、逻辑块、处理等理解为导致所期望结果的一个或多个步骤或指令的自相一致的序列。这些步骤是对物理量进行物理操纵的步骤。这些量可采用能够在计算机系统中存储、传送、组合、比较、以及用其它方式操纵的电、磁、或无线电信号的形式。有时这些信号可称为比特、值、元素、符号、字符、术语、数字等。每个步骤可由硬件、软件、固件、或其组合执行。
[0016] 图1示出了根据本发明实施例的用于在网站上运行地图应用的系统。该系统包括一个或多个因特网内容提供商服务器102、数据库105、以及一个或多个客户端104。服务器102与客户端104经由通信网络103交互。因特网内容提供商服务器102是可操作来经由网络103对客户端104提供内容的主机服务器。一个或多个服务器托管网站并且包括地图功能。数据库105可操作来存储由服务器102和/或客户端104提供的数据。数据库可经由网络103与服务器102或客户端104通信。数据库可存储包括在网页中的数据项,诸如地图和用户信息。
[0017] 可替换地,服务器102可包括数据库、处理器、交换机、路由器、接口、以及其它组件和模块。根据计算和/或分布式计算需求,每个服务器102可包括一个或多个服务器,或可组合成比所示出的数目更少的服务器。服务器102可位于相对于彼此不同的地点。数据库还可分别连接到服务器102。可根据计算和/或分布式计算需求存在比两个更多或更少的数据库。数据库可位于相对于彼此和服务器102不同的地点。
[0018] 每个客户端104可以是具有中央处理器(CPU)、存储器、输入设备、输出设备和显示器的通用计算机,诸如个人计算机。也可将其它计算机系统结构,包括因特网装置、手持设备、无线设备、便携设备、可穿戴计算机、蜂窝或移动电话、便携式数字助理(PDA)、多处理器系统、基于微处理器或可编程的消费电子产品、机顶盒、网络PC、迷你计算机等实现为客户端104。每个客户端104也可实现模拟和数字基带电路、电源管理电路、射频(RF)收发器、以及电池接口和充电电路。客户端104可包括一个或多个应用、编程模块和/或子例程。作为示例,客户端104可包括浏览器应用(例如,Internet Explorer等)和图形用户接口(GUI)以便访问由服务器102提供的网站和网页以及存储在数据库105中的数据。客户端
104可彼此、与服务器102、和/或与数据库105远离。
[0019] 网络103是通信网络,诸如局域网(LAN)、广域网(WAN)、或因特网。当网络103是公共网络时,可包括安全特征(例如,VPN/SSL安全传输)以确保系统内的授权的访问。
[0020] 服务器102还包括多个单个域,例如,购物域106、新闻域108、我的Web域110、地图域112等。域是针对诸如购物应用、新闻应用和地图应用之类的特定应用而使用不同硬件和软件实现的计算机系统。本发明的持久的保存门户应用运行在我的Web域110上,该我的Web域110使用HTML、CSS、JavaScript、小配件引擎和“异步JavaScript和XML”(AJAX)来实现Web 2.0功能。
[0021] 图2A、2B和2C示出了根据本发明实施例收集信息的方法。如图2A所示,持久的保存门户集合202与网页204一起显示在用户的计算设备上。持久的保存门户集合202可包括一个或多个持久的保存门户,用于存储和组织由用户选择的信息。在本说明书中,持久的保存门户也简称为门户。另外,保存在持久的保存门户中的信息也可称为一个或多个对象。在此示例中,每个持久的保存门户由圆来表示。在持久的保存门户集合202的扩大视图中,三个圆分别标记为“项目1”206、“项目2”208和“项目3”210。用户可通过使用“Add a Saving Portal(添加保存门户)”按钮211来添加新的保存门户。用户还可修改标签以表示存储在每个门户中的对象的内容。例如,表示持久的保存门户集合202的三个圆在图2B中分别标记为“My Workspace(我的工作区)”206、“Xmas ideas(Xmas计划)”208和“Trip to France(法国旅行)”210。在此示例中,门户是包含将用于个人消费的收集的项目。在另一实施例中,这些门户的一个或多个可以是目的地,诸如组邮寄列表或组网站。例如,当用户将地图放到为特定组指定的保存门户上时,该地图可将其传递到对象的组收集。
[0022] 在图2B中,当用户浏览网页204时,用户可能对保存网页上的地图212感兴趣。为此,用户可简单地将地图拖放到持久的保存门户集合202中的相关门户。在此示例中,该地图与“法国旅行”相关,并且其存储在门户210中。项214示出了被拖到标记为“法国旅行”的门户的地图212。注意,可保存网页上任何单元或类型的信息,包括但不限于照片、文本、图形、视频、声音、URL等。还要注意,根据本发明而收集和批注的对象不限于网站上的对象;用户可收集和批注自己创建的信息,诸如由他的蜂窝电话拍摄的汽车照片或由用户扫描的产品条形码。这些对象可用于获得用户感兴趣的其它信息。
[0023] 用户可定义一组属性以标记所收集的对象。根据对象的收集来定义这些属性,并且可在后来任何时间编辑或修改它们。该组属性可包括用户可用于自动批注保存在特定门户中的对象的关键词和/或符号。例如,项218示出了用户指定的批注术语,例如用于标记存储在“法国旅行”门户中的对象的“Paris(巴黎)”、“Honeymoon(蜜月)”。另外,项220示出了其它隐式数据,诸如用户的名字“Karon”、信息保存日期“12.26.05”和数据类型“jpg”。这些数据被自动加入放在该门户中的信息而不需要人工干预。注意,也可加入其它类型的隐式数据,包括但不限于时间、地点、文件类型、文件大小、访问权限等。每个对象的用户指定术语和隐式术语两者都当作是对象的元数据。
[0024] 注意,当收集或抓取对象时,存在构造和关联结构化数据的几种方法。首先,分析与该对象关联的URL以搜索可用于随后查询后端数据库的唯一对象标识。例如,Yahoo!本地中的交易可在其URL中具有唯一ID。如果URL被识别为属于Yahoo!本地(来自域名local.yahoo.com),那么URL中的标识(诸如id=1234567)可用于在Yahoo!本地web服务/数据库查询关于该交易的更多信息,像电话号码、操作时间、客户或专家评论,这些信息全部来自与该交易关联的URL。
[0025] 第二,被收集的对象可包含Microformat。Microformat是在HTML(或XHTML)网页中允许语义表达式的标记。抓取器(gobbler)应用可从用Microformat标记的标准网页中提取意思。现有的XHTML(和HTML)标准允许在它们内部嵌入或编码语义。这通过使用特定HTML属性来实现。将Microformat加入标准HTML网页使机器能够处理HTML文本并可能将数据装入远程数据库。这将使诸如抓取器应用之类的程序能够找到诸如网页上的联系信息、事件和评论之类的项。
[0026] 最后,可使用像LiveWords(http://desktop.yahoo.com)或术语提取(http://developer.yahoo.com)这样的信息分析技术来分析所抓取对象中的文本以提取实体。LiveWords特征给用户提供了一种简单的方法在web中搜索用户感兴趣的其它信息。实体的示例包括地址、交易和公司,其接着可在其它对诸如Yahoo!本地之类的数据源的查询(用于搜索更多的交易或公司信息)中或在一般web搜索中应用。
[0027] 这种结构化元数据可以用很多方式来应用(例如将所抓取的信息放在地图上,或者放入日历)并且也可从用户的批注或标签中采集。例如,添加文本标签“Palo Alto”可用于对在保存门户中收集的具有城市Palo Alto的地理-坐标的对象加上地理标签,其被LiveWords识别为城市。
[0028] 抓取器应用使用户能够有效地分类他所收集的对象并且能够有效地使用批注该对象的元数据来访问这些对象。在已经收集了对象后,可添加或删除元数据。例如,当用户将新术语加入项目时,可使用该术语更新所有包含在项目内的对象。在另一方法中,用户可选择选择性地将某些术语加入某些对象的元数据。那将要求用户方用更多的步骤来选择并添加术语到指定的特定对象。可在用户的环境中将元数据实现为标签云或以其它可视方式实现元数据以支持浏览并查询系统以用于对象和收集检索。随着对象的用户收集增加,对象和收集检索的需要也增加。另外,如果将用户的收集发表到公共储存库中,元数据使类似项目或收集能够群集并且支持从多个源检索。
[0029] 在图2C中,示出了用于收集与法文类101组有关的信息的持久的保存门户“French Class(法文类)”216。用户可为用户所属于的每个组创建多个保存门户。在此示例中,项219示出了用户指定的批注术语,例如用于标记存储在“法文类”门户中的对象的“Reference(参考)”、“Paris Trip(巴黎旅行)”和“Travel Guide(旅行手册)”。另外,项221示出了其它隐式数据,诸如用户的名字“Karon”和数据类型“jpg”。这些数据被自动加入放在该门户中的巴黎地图212而不需要人工干预。在对象被收集到保存门户中后,其可经由RSS(真正简易聚合)种子或其它通过因特网传输信息的方式而广播或分布到用户订阅的目的地。RSS文件格式是在XML中指定并用于Web聚合的web种子格式族。RSS将它的信息作为称为“RSS种子”、“Webfeed”、“RSS流”、或“RSS频道”的XML文件来递送。这些RSS种子为用户提供了一种方式来被动地接收最近发布的内容(诸如文本、网页、声音文件、或其它媒体);这可以是完整内容本身或仅是通往完整内容的链接,可能具有概要或其它元数据。
[0030] 在通常使用情况中,内容提供商在他们的站点上发表终端用户可添加到在他们的机器上运行的聚集器(aggregator)程序的种子链接。周期性地(通常每5-10分钟,虽然大部分聚集器使之可由用户配置),聚集器向其种子列表中的所有服务器询问它们是否有新内容。如果有,聚集器或者把新内容记下来或者下载新内容。在此示例中,巴黎的地图被路由到法文类101组的主页222。在法文类101组的主页上,示出了已经由组成员保存的对象和创建的项目。例如,用户刚收集的巴黎的地图与其它对象一起被张贴为项224。
[0031] 图3示出了根据本发明实施例批注所收集信息的方法。在图3中,用户接口窗口302显示了门户“Trip to France(法国旅行)”的用户指定的批注术语“巴黎、蜜月、12.26.05”。用户指定的批注术语由用户在保存门户创建时输入编辑域。注意,这些用户指定的批注术语可使用编辑操作随后修订。除了文本,任何媒体资源可作为批注而加入对象。在此示例中,使用用户定义的图标(埃菲尔铁塔的缩略图304)来标记保存在“法国旅行”门户中的对象。再如图3中所示,用户接口窗口包括显示开关303。当显示开关303指示向下时,保存在该门户中的对象的代表性视图和自动创建的批注被显示。如图3中所示,数字305、306、307、308和309表示所收集的五个对象。在持久的保存门户中收集的对象获得用户定义的批注和隐式批注两者。在一种实现方式中,每个对象的唯一之处在于给它分配了唯一的标识符。埃菲尔铁塔的缩略图304被加入每个对象。用户定义的图标允许更好地组织和批注在门户中收集的对象。在另一实施例中,人的图片可用作用户定义的图标来标记从那个人收到/收集的信息。注意,这种对非文本元数据的支持使得能够使用对象的属性(像计算机视觉)来进行对对象的查询和检索。例如,相比于简单地搜索用文本术语批注的对象,搜索图像的颜色属性或搜索图形对象的形状的能力可产生不同的对象集合。
[0032] 本发明的一个方面是当最初建立门户时,基于由用户定义的术语(也被称为用户指定术语),批注数据被自动加入在门户中收集的对象,而不需要在初始建立之后的手工干预。根据计算设备的所有者或登录来确定其它隐式术语,例如用户姓名。根据数据源来确定文件类型,或由数据的URL提供文件类型。另外,计算设备可提供其它类型的隐式数据,例如日期、时间、访问权限等。使得用户指定的和隐式的批注数据(也被称为对象的元数据)对于用户可用,并且其当对象被从一个人传送到另一个人时,这些数据可被加入所收集对象。
[0033] 在一个实施例中,当对象被从一个人传送到另一个人时,方法将新的元数据累积到已加入对象的现有元数据。因此,方法向每个对象分配一组唯一元数据。以这种方式,元数据支持引用和版权需求以及上下文递送。用户可使用元数据来查找对象所收集于的原始网站,并且允许用户从网站检索其它信息,如果需要的话。该搜集和批注信息的方法支持用户进行衍生著作的创造。这是因为方法不仅支持将元数据添加到搜集的每个对象,它还维护元数据的历史、出处、上下文和地点。
[0034] 图4示出了根据本发明实施例的在图2的每个持久的保存门户中收集的对象的示例。如图4中所示,“Xmas计划”和“法国旅行”两个门户是打开的。“法国旅行”门户中的对象类似于图3中示出的。对于“Xmas计划”门户,使用用户指定术语“2005,Christmas(圣诞节),family&friends(家庭和朋友)”402来批注对象。“Xmas计划”门户包括三个礼物计划,即给Klaire的洋娃娃404、给Mike的帆船406和给Anna的帐篷407。用户指定的术语“2005,圣诞节,家庭&朋友”和隐式术语“Karon”和“jpg”被自动地生成并加入每个礼物计划。由用户提供礼物接收者的姓名,例如Anna,作为用户指定术语。在门户“我的工作区”中,用户可存储各种与工作有关的信息,例如包括“Objects of interest(感兴趣的对象)”。以该方式,门户充当用于存储有关于用户工作的信息集合的库。潜在有用并且仍未结构化的对象或进行中的计划可收集在一个或多个这种“感兴趣的对象”保存门户中。这些保存门户允许用户收集他尚未决定如何使用的但是他认为对象可能是有用的,并且用户可随后将这些对象组织到集合中。
[0035] 注意,门户中收集的对象超过了文本和图片的汇总。这些对象可结合对于因特网内容提供商可用的其它信息来使用,以向用户提供另外的信息、货物或服务。例如,“Xmas计划”门户中收集的对象可链接到图1的购物域106。以该方式,用户可能够查找本地区域中出售帆船的商人。另外,信息可提供到用户,以允许他比较不同型号帆船的特征和价格。关于帆船配件的信息也可提供到用户,以进一步丰富帆船的用户体验。这种信息可以按照某些方式显示,例如格子,或按照用户选择的特定标准(例如价格)来排列。收集和批注对象的方式使得信息能够以不同的智能方式被查看。
[0036] 对于另一示例,按照惯例当人们看到网页上的地址时,他们或者手工地将文本剪切粘贴到另一文档内,或者手工地在一张纸上写下该地址。将该地址转换为地址簿的项涉及大量单调乏味和耗时的步骤。使用本发明,元数据的增加使得对象能够提供相关的上下文。例如,该地址对象可链接到因特网内容提供商的地图域,以获得姓名、电话号码、地点以及通向位于该地址的商业的驾驶方向,该地址对象或者可链接到因特网内容提供商的新闻域,以获得关于位于该地址的商业的附加信息。
[0037] 图5示出了根据本发明实施例的运行上面描述的应用的移动设备。在该示例中,移动设备500是由加利福尼亚州桑尼维尔市的Palm公司制造的palmOne设备。注意,除了传统的桌面计算设备,上面描述的应用可运行在不同形式的用户设备上。该能力允许用户在任何地点和任何时间具有对门户中保存的信息的多个访问点。为了实现维持持久保存门户的能力,客户端设备(例如,桌面或移动设备)的持久保存门户中包含的对象被保存并且在图1的服务器102和数据库105中联机镜像。结果,用户可经由因特网内容提供商的网络具有对于持久保存门户中保存的信息的普遍访问。
[0038] 不同用户设备具有对持久保存门户的普遍访问的好处可由以下示例说明。假设用户在家从他的桌面计算机进行旅游安排并且在持久保存门户中保存路线。当旅游时,用户可使用移动设备访问持久保存门户中保存的路线。例如,用户可用他的移动设备获得旅馆地址。根据旅馆地址,用户可通过因特网内容提供商的地图域获得地图信息以及通向旅馆的驾驶方向。因此,具有对持久保存门户的普遍访问的能力使得用户能够导航到他的目的地。在一种方法中,用户可使用他们的移动设备将信息收获到一个保存门户内。例如,用户可扫描条形码、拍照或拍摄视频,并且立即用元数据将对象添加到门户。应用可自动地应用用户的地理地点以将隐式数据分配到保存门户中的照片,例如,当用户在巴黎旅行时在巴黎拍摄的照片将进入法国旅行门户内。
[0039] 在一个实施例中,门户可在多个用户之间共享。例如,用户A和用户B正工作于相同项目的不同部分,并且用户B依赖用户A的输出以继续他的工作。每当用户A完成任务,他可将该任务放在第一共享门户中使得用户B可接收用户A的状态通知并且从第一共享门户检索信息。类似地,每当用户B完成任务,他也可将该任务放在第二共享门户中使得用户A可接收用户B的状态通知并且继续将新任务提供到第一共享门户。共享所收集信息的能力可用单个对象、用一组对象、或用所有保存门户中的用户的对象集合来实现。用户可针对每个门户定义定制的共享模型,即公有、私有、或者仅共享于我的朋友。
[0040] 图6示出了根据本发明实施例的持久的保存门户的另一集合。在图6中示出的示例中,提供了九个门户的缩略图图像600和对应的放大图像。每个门户可用于存储用户选择的不同信息,并且每个门户可定制为支持用于不同信息集合的不同的用户指定的批注。每个持久保存门户可通过链接(用虚线表示的)602链接到其它门户。可使用大量持久保存门户来允许用户定制不同的对象集合。每个门户提供预定的区域,用于实时无缝地存储信息,而不需要用户停止并且批注门户中保存的每个项。每个门户可实现为小配件并且用户可组合多个小配件以满足于不同的需要和目的。在候选方法中,用户可使用单个小配件以实现多个门户,以便满足不同的需要和目的。
[0041] 在一个实施例中,浏览器和信息搜集应用(也称为抓取器应用)可利用在用户的计算设备(例如桌面个人计算机)上运行的JavaScript来实现。抓取器应用给出用于收集信息的用户接口(其示出为如在图2A中的一个或多个保存门户206、208和210),并且使用动态链接库(DLL)来侦听将在传输控制协议/因特网协议(TCP/IP)端口上收集的数据。在此示例中,网站提供JavaScript或将其注入到使用bookmarklet的页面。bookmarklet是小JavaScript程序,其能够存储为最流行的web浏览器中书签内或者网页上超链接内的URL。
[0042] 浏览器JavaScript创建Flash对象并将网页内容解析成多个可收集对象,从而创建可以被选择、拖和放到保存门户的可收集对象。用户可通过拖放网页的一个或多个可收集对象到保存门户上来抓取数据,或者通过点击页面中紧邻该元素的动作按钮来抓取数据。当抓取对象时,网页中的JavaScript使用Flash对象来建立通向在预定TCP/IP端口上运行的小配件的连接。接着JavaScript通过该TCP/IP连接来发送关于所抓取对象的数据。接收小配件通过利用各种属性(诸如时间、日期等)来批注对象从而处理它。接着接收小配件将对象发送到后端服务器以进行存储和进一步处理。进一步处理包括分析对象的源以建立其它关于该对象的可收集的元数据。
[0043] 小配件中的JavaScript使用XMLHttpRequest(XHR)或其它类似技术联系抓取器服务来将对象加入适当的用户存储。XHR是可被JavaScript、JScript、VBScript和其它web浏览器脚本语言用于如下用途的API:使用HTTP对去往和来自web服务器的XML数据进行传送和操纵,从而在页面客户端和服务器端之间建立独立连接信道。从XMLHttpRequest调用返回的数据通常可由后端数据库提供。除了XML之外,XMLHttpRequest可用于获取其它格式的数据,例如JSON或者甚至纯文本。XMLHttpRequest是Ajax web开发技术的一部分,并且其被许多网站使用来实现响应和动态的web应用。
[0044] 在另一实施例中,抓取器应用仅包括在用户的计算设备的浏览器中运行的JavaScript。类似地,在此示例中,网站提供JavaScript或将其注入到使用bookmarklet的页面。浏览器JavaScript解析网页,创建可以被选择、拖和放入保存门户的可收集对象。此外,浏览器JavaScript创建呈现用户接口的新页面元素,所述用户接口包括一个或多个用于收集信息的保存门户。用户可通过拖放网页的可收集对象到页面的抓取器部分来抓取数据,或者通过点击页面中紧邻该可收集对象的动作按钮来抓取数据。当抓取对象时,JavaScript利用各种属性(诸如时间、日期等)来批注对象。接着页面JavaScript将对象发送到后端服务器以进行存储和进一步处理。进一步处理包括分析对象的源以建立其它可收集的相关元数据。网页中的JavaScript使用XHR或其它类似技术来联系抓取器服务,以将对象加入适当的用户存储。
[0045] 在另一实施例中,下面描述的Yahoo!小配件引擎可用于实现本发明的持久保存门户。本领域普通技术人员将会理解,其它实现或其它类型的小配件引擎可用于实现持久保存门户。另外,在以下论述中,针对运行Windows操作系统的计算设备而描述了构造和使用小配件的方法。本领域普通技术人员将会理解可为Macintosh、UNIX或Linux操作系统做出类似的实现。
[0046] Yahoo!小配件引擎(在本文档中也称为“小配件引擎”或“引擎”)使用可扩展标记语言(XML)来定义小配件和对象。该语言形成用于每个对象的清楚的分层结构,对象所绘出的顺序,以及关联每个对象的属性的顺序。小配件的示例示出如下:
[0047]
[0048]
[0049] main window
[0050] 500
[0051] 500
[0052]
[0053] 250>
[0054] 250
[0055] menter
[0056]
[0057]
[0058] text1
[0059] 250
[0060] 100
[0061] menter
[0062]
[0063] Sun1.opacity=(sun1.opacity/100)*90
[0064]
[0065]
[0066]
[0067]
[0068] 每当用户点击表示“点击这里”的文本,小配件就将图像的不透明性减少10%。该样本小配件用于说明几点。首先,小配件的结构使用对称的语言XML所以每个对象说明符(例如)具有对应的终结符()。在这些说明符和终结符的对内,定义对象的属性,例如屏幕位置、对齐方式等。第二,用XML定义的对象可用JavaScript来操纵。第三,对象的名称以字母开始。只有字母、数字和下划线允许用于名称。小配件的XML描述存储在具有扩展名.kon的文件中。实际上,小配件可具有许多图像和文本对象,多个JavaScript节,并且可使用JavaScript在运行时创建新对象以实现复杂功能。以下的节描述用于创建新的小配件的技术和代码的各种实施例。
[0069] 根据XML语法存在两种类型的标记法,它们是:
[0070]
[0071] images/image.png
[0072] myImage
[0073]
[0074] 或者:
[0075]
[0076] 用户可混合和匹配这两种标记法,如下:
[0077]
[0078] myImage
[0079]
[0080] 实体是允许用户经由专门换码顺序来指定字符的XML结构。考虑保留用于解析XML语法的某些字符。符号&用作为实体换码的开始(并且为此原因也是保留的字符)。实体的标准集合用于表示XML专门字符:
[0081] &;&
[0082] ";”
[0083] &apos:’
[0084] <<
[0085] >>
[0086] 用户还可使用实体以按照它的unicode码点指定字符:
[0087] ;
[0088] ;
[0089] 因为XML引擎查找符号以标记XML数据的块,JavaScript引擎需要分别用&it和>来代替这些符号。例如:
[0090]
[0091] If(x<;5)
[0092] displayResults();
[0093]
[0094] 作为候选,用户可使用XML注释来向XML引擎隐藏JavaScript代码,如通常在HTML中所做的:
[0095]
[0096] <!-
[0097] If(x<5)
[0098] displayResults();
[0099] //--
[0100]
[0101] 在另一方法中,用户可使用CDATA节,如下:
[0102]
[0103] <![CDATA[
[0104] If(x<5)
[0105] displayResults();
[0106] ]])
[0107]
[0108] 这些候选方式使得代码更容易阅读。在另一方法中,用户可将XML解析器置于“严格模式”,这按照解析器通常不这么做的方式执行XML的规则。为了支持严格模式,将以下行添加到XML文件的顶部:
[0109] <?konfabulator xml-strict=”true”?>
[0110] 在严格模式中,执行程序的以下方面:1)所有属性值放在引号中;2)在普通文本节中不允许杂散的“&”字符;3)在属性值内评估实体(以“&”开始的事物);4)在注释内不允许双虚线(“--”)。为此原因,优选地将代码置入CDATA块内;和5)如果包括外部文件,不需要代替实体,例如该文件中的<。
[0111] 小配件引擎中的文件路径相对于XML文件的位置。这意味着将在与XML文件相同的目录中搜索没有目录的文件引用(例如main.js),同时将在XML文件所驻留于的目录的指定子目录中搜索有目录的文件引用(例如javascript/main.js)。优选地,因为不同计算机的磁盘布局可能有很大不同,不使用绝对路径(例如以/开始的路径)。
[0112] 在Windows机器中,构成小配件的文件存储在.widget文件中。这是标准的ZIP文件,其已将其扩展名改变为.widget。Windows版本的小配件引擎可读取打包的.widget文件。这也是当创建跨平台小配件时选择的格式。在一个示例中,小配件包具有以下结构:
[0113] my Widget.widget
[0114] Contents
[0115] myWidget.kon
[0116] Resources
[0117]
[0118] .kon文件包含实际的小配件代码(类似于上面节中的样本小配件)。在一种实现方式中,.kon文件包含在内容文件中。用户可将诸如图片之类的资源置于其中。通常,资源将置入Resources文件夹中,如上所示。
[0119] 如果用户不使用小配件转换器并且改为决定手工压缩文件,在Windows计算机上这可通过右键点击小配件文件夹并且根据它创建ZIP文件来实现。应当注意,当开发小配件时用户不需要在每次用户做出改变时为测试而创建打包的小配件文件。用户可双击.kon文件以实现相同效果。
[0120] 注意,不应当在运行时修改小配件包。换言之,不应当使用小配件包来在它本身中存储信息。尽管许多小配件使用偏好来存储它们的设置,小配件可在它自己的包内存储信息。另外,当小配件引擎运行压缩的小配件时,它首先将其解压缩到专门位置并且然后从那运行小配件。每次运行小配件时发生该解压缩,所以如果信息存储在小配件的解压缩包中,它可能被改写。为了适应需要存储持久数据的小配件,系统小配件DataFolder文件夹路径可用于存储小配件的持久信息。
[0121] 在又另一实施例中,小配件引擎可支持未压缩的平面文件格式。当未压缩平面文件格式时,小配件的尺寸大于zip格式的小配件的尺寸。因为图像占据小配件尺寸的大部分,由于图像通常已经是压缩格式(PNG、JPG)而文本文件通常未被压缩,平均增加大约15%。压缩文件的好处是直在实际需要之前不需要在RAM中存储文件,因为文件是文件映像的。通过使用该新格式,减少了用于启动小配件应用的时间。
[0122] 当小配件使用平面文件格式时,可不使用可能已经用小配件包装的项,例如动态链接库(DLL),除非新的API(widget.extract File())用于将文件从平面文件小配件提取到文件系统中的位置。一个例外是通过play()函数播放的声音文件可没有任何变化的工作。
[0123] 这一节论述了小配件如何运行和需要解决的某些问题。当打开小配件时,它运行为单独的进程。这么做是为了确保一个小配件不影响用户可使用的剩余小配件。zip格式的小配件解压缩到专门位置(PC上的C:/Documents and Settings//Local Settings/Application Data)。未压缩的小配件从它位于的地方运行。为此原因,不依赖于小配件位于哪里。一旦.kon文件位于小配件中,当前目录设置为.kon文件所位于的目录。所以例如,如果.kon文件处于Contents文件夹中,当前工作目录将是Contents。这允许到Resources的相对路径正确地工作。例如,如果它的图像处于Contents文件夹中的Resources文件夹中,.kon文件例如将图像引用为Resources/Image1.png。
[0124] 当定位了.kon文件并且设置了当前目录时,解析文件并且创建在其中定义的对象。在成功创建所有事物后,调用onLoad处理程序。然后小配件运行初始化例程。注意,在使得小配件可见之前,通常执行onLoad处理程序。换言之,许多小配件开始将它们的窗口设置为隐藏并且在完成onLoad处理程序的执行时变得可见。在成功运行onLoad处理程序之后,小配件启动并运行。注意,下次小配件运行时,它再一次解压缩。为此原因,不能依赖于在小配件包中存储信息。代替地,优选的是,在小配件的DataFolder中存储信息,如前所论述。
[0125] 小配件引擎知道可自动打开哪些小配件。下一次小配件引擎启动时,它自动重新打开在最后关闭小配件引擎时运行的任何小配件。
[0126] 小配件中动作是重要的,因为它们是当用户与小配件交互时用户定义小配件如何运转的地方。在一种实现方式中,通过对某些JavaScript文本设置动作来指定动作。当用户点击时该文本被评估和运行,例如:
[0127]
[0128] Print(“hello”);
[0129]
[0130] 然而,存在至少两个限制:1)用户可能不使用通常引用为其运行动作的对象的JavaScript’this’对象;和2)如果用户具有相同代码的多个对象,他可能必须复制JavaScript并且改变对象的名称以表现他已对其加入代码的每个对象。
[0131] 为了修补这些限制,小配件引擎支持用于这些动作的正确的JavaScript函数。例如,没有参数发送到动作。另外,onMouseUp处理程序可接收鼠标的x和y坐标,而不是检查system.event。为了使用函数,用户可或者使用XML中的函数(通过使用属性),或者对函数设置特性,以在JavaScript中调用,如下所示:
[0132] <!--In XML-->
[0133]
[0134] //在Javascript中
[0135] myImage.onMouseUp=myMouse Up;
[0136] //并且在JS代码中某处,该函数需要被定义:
[0137] function myMouse Up()
[0138] {
[0139] print(this.opacity);
[0140] }
[0141] 在XML描述中,用户可设置特性。这定义了可被创建并且绑定到名字是其一部分的对象的全局JavaScript对象。例如,代码创建了具有名称mainWindow的在全局范围可变的JavaScript。注意,所有名称需要是唯一的。另外,因为在内部这些名称用于追踪对象,它们不能被改变。小配件引擎通过使得所有的特性只读来实施此。当用户使用JavaScript在运行时创建对象时,对象被给予一般名称,例如Image001。
[0142] 制订某些规定用于调试小配件。存在XML标记“debug”,用户可出于调试目的将其设置为“on”。当“debug”标记设置为on时,当小配件启动时调试输出窗口将打开。对于JavaScript代码中log()或print()的调用路由到该调试窗口。在小配件引擎内遇到的任何错误也在该窗口中报告。注意,调试窗口将不会打开,除非调试标记设置为on。
[0143] 当开发小配件时,优选地,开启调试标记使得它可向用户通知小配件运行时出现的错误。例如,如果属性拼写错误,输出窗口向用户通知该错误,连同通知代码中可发现问题的地方。
[0144] 存在可出现在小配件引擎中的两种类型的安全窗口。第一个是初次运行/修改窗口。在小配件引擎所先前未见的小配件初次运行时,窗口出现以向用户通知新的小配件将要打开并且让用户确认动作。这是为了防止在用户不知道的时候可能正好运行的小配件。而且,如果用户允许小配件运行并且随后小配件被修改,那么下一次该小配件启动时另一窗口出现,向用户通知修改的小配件。用户又一次可确认或拒绝请求以启动该修改的小配件。
[0145] 如果用户处于调试小配件的过程中,用户可开启调试模式,这可抑制初次运行/修改安全窗口。因此,每次用户修改代码并且重新加载小配件时不中断用户。
[0146] 第二种类型的窗口是‘沙盒’窗口。在一种方法中,沙盒动作涉及用户登录到他的因特网内容提供商帐户。在小配件第一次试图登录到他的帐户时,将出现窗口以向用户警告该事实并且询问是否应当给予小配件权限来使用帐户上的用户数据。
[0147] 将会理解,为了清楚,上面的描述已参考不同功能单元和处理器描述了本发明的实施例。然而,将明显的是,可使用不同功能单元或处理器之间的功能的任何适当分布,不会从本发明偏移。例如,可由相同处理器或控制器执行示出要由分离处理器或控制器执行的功能。因此,对特定功能单元的引用将看作为对用于提供所描述功能的适当装置的引用,而不是表示严格的逻辑或物理结构或组织。
[0148] 可以任何适当形式实现本发明,包括硬件、软件、固件、或其任何组合。可选择地,本发明可部分地实现为在一个或多个数据处理器和/或数字信号处理器上运行的计算机软件。本发明实施例的元素和组件可以任何适当方式物理地、功能地、和逻辑地实现。实际上,功能可在单个单元中、在多个单元中、或者作为其它功能单元的一部分实现。同样地,本发明可在单个单元中实现,或者可物理地和功能地分布在不同单元和处理器之间。
[0149] 相关领域技术人员将会认识到,可使用所公开实施例的许多可能的修改和组合,同时仍然使用相同的基本底层机制和方法。为说明的目的,已参考特定实施例写下前述描述。然而,上面的说明性论述不旨在是穷尽的,或者将本发明限制于所公开的精确形式。根据上面的教导,许多修改和变化是可能的。选择和描述实施例以说明本发明的原理和它们的实际应用,并且使得本领域其他技术人员能够用如适于预期的特定使用的各种修改来最好地利用本发明和各种实施例。