一种聚合Web站点内容的系统和方法转让专利

申请号 : CN200910077248.7

文献号 : CN101488151B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王桂玲杨少华韩燕波赵卓峰季光

申请人 : 中国科学院计算技术研究所

摘要 :

本发明提供一种聚合Web站点内容的系统和方法。该方法包括:10)接收网页内容,根据用户的交互将该网页内容封装到信息源中,建立嵌套表格数据模型并生成Mashup脚本,其中该嵌套表格数据模型包括原子属性及其实例和/或元组属性及其实例;20)执行Mashup脚本对该信息源进行处理或聚合,生成信息视图。使用该系统和方法可以让没有任何编程知识的大众用户,不需编写任何程序代码,即可将Web站点的HTML网页、RSS内容等抽取出来,并构造出对网站内容进行处理或聚合的Mashup应用。

权利要求 :

1.一种聚合Web站点内容的系统,包括:客户端系统,Mashup服务器,和包括一个或多个内容服务器的网络,其中所述客户端系统,用于通过所述网络访问所述一个或多个内容服务器并接收网页内容,并生成Mashup脚本;其中,所述客户端系统包括Mashup编辑器,其用于根据用户的交互将所述网页内容封装到信息源中,建立嵌套表格数据模型并生成所述Mashup脚本,所述嵌套表格数据模型包括原子属性及其实例和/或元组属性及其实例;

Mashup服务器,用于执行所述Mashup脚本对所述信息源进行处理或聚合,生成信息视图;

包括一个或多个内容服务器的网络,其中所述内容服务器用于通过所述网络向所述客户端系统提供所述网页内容;

其中,所述Mashup指聚合应用;所述信息源是封装类,包括描述信息,它提供了网页内容的统一数据访问接口,以及一致的数据模型来表示网页内容的结构或模式,其中,描述信息包括名字、类型、网络访问地址、基本描述和输入参数。

2.根据权利要求1所述的系统,其特征在于,所述Mashup服务器包括:Mashup处理模块,用于执行所述Mashup脚本,根据所述Mashup脚本对所述信息源进行处理或聚合。

3.根据权利要求1或2所述的系统,其特征在于,所述Mashup编辑器包括:内容发现与标注器,用于根据所述网页内容和用户的交互将所述网页内容封装到信息源中,建立嵌套表格数据模型,其中所述嵌套表格数据模型包括原子属性及其实例和/或元组属性及其实例;

内容聚合器,用于根据所述用户的交互生成所述Mashup脚本。

4.根据权利要求3所述的系统,其特征在于,

所述内容发现与标注器还包括抽取规则生成模块,用于根据用户的交互生成网页抽取规则;

所述内容发现与标注器,还用于识别所述网页内容的内容类型,如果所述网页内容是HTML内容则根据所述网页抽取规则抽取为结构化数据,并将所述结构化数据封装到所述信息源中,建立嵌套表格数据模型。

5.根据权利要求1或2所述的系统,其特征在于,

所述Mashup服务器包括内容服务调用代理,其用于通过所述网络访问所述一个或多个内容服务器并根据所述Mashup脚本接收所述信息源对应的最新的网页内容,根据用户的交互将所述最新的网页内容封装到所述信息源中,建立嵌套表格数据模型;

所述Mashup服务器,还用于执行所述Mashup脚本对所述封装了所述最新的网页内容的信息源进行处理或聚合,生成信息视图;

所述包括一个或多个内容服务器的网络,其中所述内容服务器还用于通过所述网络向所述内容服务调用代理提供所述最新的网页内容。

6.根据权利要求5所述的系统,其特征在于,

所述Mashup编辑器包括内容发现与标注器和内容聚合器:

所述内容发现与标注器,用于根据所述网页内容和用户的交互将所述网页内容封装到信息源中,建立嵌套表格数据模型,其中所述嵌套表格数据模型包括原子属性及其实例和/或元组属性及其实例;所述内容发现与标注器还包括抽取规则生成模块,其用于根据用户的交互生成网页抽取规则;

所述内容聚合器,用于根据所述用户的交互生成所述Mashup脚本;

所述内容服务调用代理还用于识别所述最新的网页内容的内容类型,如果所述最新的网页内容是HTML内容则根据所述网页抽取规则抽取为结构化数据,根据用户的交互将所述结构化数据封装到所述信息源中,建立嵌套表格数据模型。

7.根据权利要求1或2所述的系统,其特征在于,所述客户端系统还包括:用于访问所述网络的浏览器。

8.根据权利要求1或2所述的系统,其特征在于,所述客户端系统还包括:信息阅读器,用于显示所述信息视图。

9.根据权利要求1或2所述的系统,其特征在于,所述信息视图包括:内容列表视图、地理信息视图、或Excel表格。

10.根据权利要求1或2所述的系统,其特征在于,所述一个或多个内容服务器包括:RSS内容服务器或HTML内容服务器。

11.一种聚合Web站点内容的方法,包括:

10)接收网页内容,根据用户的交互将所述网页内容封装到信息源中,建立嵌套表格数据模型并生成Mashup脚本,其中所述嵌套表格数据模型包括原子属性及其实例和/或元组属性及其实例;

20)执行所述Mashup脚本对所述信息源进行处理或聚合,生成信息视图;其中,所述Mashup指聚合应用;所述信息源是封装类,包括描述信息,它提供了网页内容的统一数据访问接口,以及一致的数据模型来表示网页内容的结构或模式,其中,描述信息包括名字、类型、网络访问地址、基本描述和输入参数。

12.根据权利要求11所述的方法,其特征在于,其中步骤20)的所述处理包括对所述嵌套表格数据模型的原子属性及其实例进行删除,对所述原子属性进行重命名,或对所述原子属性实例进行排序、去重或替换。

13.根据权利要求11所述的方法,其特征在于,其中步骤20)的所述处理包括对所述嵌套表格数据模型的元组属性及其实例进行删除,对所述元组属性进行重命名,或对所述元组属性实例进行内容截取或过滤。

14.根据权利要求11所述的方法,其特征在于,其中步骤20)的所述处理包括对所述嵌套表格数据模型的元组属性及其实例进行折叠或去折叠。

15.根据权利要求11所述的方法,其特征在于,其中步骤20)的所述处理包括对所述嵌套表格数据模型的原子属性实例进行算术或字符运算以增加新的所述嵌套表格数据模型的原子属性及其实例。

16.根据权利要求11所述的方法,其特征在于,其中步骤20)的所述聚合包括对所述嵌套表格数据模型的元组属性实例进行合并的聚合操作。

17.根据权利要求11所述的方法,其特征在于,其中步骤20)的所述聚合包括对所述嵌套表格数据模型进行新增内容服务的聚合操作。

18.根据权利要求11所述的方法,其特征在于,所述步骤10)还包括步骤:

11)识别所述网页内容的内容类型;

12)如果所述内容类型为HTML,根据所述用户的交互生成网页抽取规则,并根据所述网页抽取规则将所述网页内容抽取为结构化数据,并将所述结构化数据封装到所述信息源中,建立嵌套表格数据模型。

19.根据权利要求11或18所述的方法,其特征在于,还包括步骤:

30)根据所述Mashup脚本,接收所述信息源对应的最新的网页内容,根据用户的交互将所述最新的网页内容封装到所述信息源中,建立嵌套表格数据模型;

40)执行所述Mashup脚本对所述封装了所述最新的网页内容的信息源进行处理或聚合,生成信息视图。

20.根据权利要求18所述的方法,其特征在于,还包括步骤:

30)根据所述Mashup脚本,接收所述信息源对应的最新的网页内容;

31)根据所述抽取规则识别将HTML类型的最新的网页内容抽取为结构化数据,根据用户的交互将所述结构化数据封装到所述信息源中,建立嵌套表格数据模型;

41)执行Mashup脚本对所述封装了所述最新的网页内容的信息源进行处理或聚合,生成信息视图。

说明书 :

一种聚合Web站点内容的系统和方法

技术领域

[0001] 本发明涉及万维网领域,更具体的说,涉及一种聚合Web站点内容的系统和方法。

背景技术

[0002] 基于Web的内容聚合应用程序正在互联网上逐渐兴起,它们通常被称为Web聚合应用(Mashup),这种应用程序通过集成Web站点的功能和/或数据来创建,形成一个整合应用。例如,Housingmaps.com将Craigslist.org上的公寓出租以及购买数据与Google的地图呈现服务集成起来;而Diggdot.us则将Digg.com、Slashdot.org和Del.icio.us上与技术有关的内容聚合起来。用户只需访问该Mashup应用,即可得到网站最新内容的聚合视图,避免了用户经常需要访问一个或多个网站并进行内容聚合的重复劳动。
[0003] 一般来说,这样的Mashup应用是由掌握一定编程知识的开发人员来创建的,不懂得编程知识的大众用户无法根据自己的个性化需求方便地进行Web内容的聚合。
[0004] 为了方便大众用户按照自己的需求聚合Web站点的内容,有必要提供支持大众用户进行Web站点内容聚合的系统。目前,也出现了一些帮助普通用户创建Mashup应用的工具,例如公开日期为2008年6月26日的公开号为US 2008/0155440 A1的美国专利申请中提供的Yahoo!Pipes。它们提供可视编辑器,让用户不需要编写任何代码,就可以使用现有网站的内容或功能来创建新的Web应用(或服务)。但是目前支持大众用户进行Web站点内容聚合的Mashup应用构建工具,对普通用户来说仍然具有较高的使用门槛:一方面,它们一般基于可视化“数据流建模”的方式提供内容聚合的用户交互界面,例如,在Yahoo!Pipes中,其内容聚合器的几个核心元素是模块(module)、线(wire)和管(pipe)。其中,模块是执行某任务的可视化模块,一个模块包括一个输入或/和输出节点,线用来描述模块之间的输入/输出关系,用模块之间的可视化连线表示;管实质上是一系列数据处理指令,用多个模块通过“线”的连接构成的可视化“流程”表示。对普通用户来说,这种可视化数据流建模方式仍然是一种陌生的复杂交互方式,例如输入输出的关联操作,普通用户通常难以理解;另一方面,在这些工具中,内容聚合的信息来源往往局限于系统所提供的有限的“信息源”,要聚合系统中尚未有的HTML网页内容,需要用户掌握一定的正则表达式知识,而这是普通用户所不易理解的,例如,在Yahoo!Pipe中,对于HTML格式的Web信息源,需用用户自行编写正则表达式得到网页上的内容再与其他内容进行聚合。

发明内容

[0005] 本发明要解决的技术问题是提供一种支持大众用户对Web站点内容进行聚合的系统及方法,使用该系统和方法可以让没有任何编程知识的大众用户,不需编写任何程序代码,即可将Web站点的HTML网页、RSS内容等抽取出来,并构造出对网站内容进行处理或聚合的Mashup应用。
[0006] 为实现上述目的,根据本发明的一个方面,提供了一种聚合Web站点内容的系统,包括:客户端系统,Mashup服务器,和包括一个或多个内容服务器的网络,其中[0007] 该客户端系统,用于通过该网络访问该一个或多个内容服务器并接收网页内容,并生成Mashup脚本;其中,该客户端系统包括Mashup编辑器,其用于根据用户的交互将该网页内容封装到信息源中,建立嵌套表格数据模型并生成该Mashup脚本,该嵌套表格数据模型包括原子属性及其实例和/或元组属性及其实例;
[0008] Mashup服务器,用于执行该Mashup脚本对该信息源进行处理或聚合,生成信息视图;
[0009] 包括一个或多个内容服务器的网络,其中该内容服务器用于通过该网络向该客户端系统提供该网页内容;
[0010] 其中,所述Mashup指聚合应用;所述信息源是封装类,包括描述信息,它提供了网页内容的统一数据访问接口,以及一致的数据模型来表示网页内容的结构或模式。
[0011] 在上述系统中,该Mashup服务器包括:
[0012] Mashup处理模块,用于执行该Mashup脚本,根据该Mashup脚本对该信息源进行处理或聚合。
[0013] 在上述系统中,该Mashup编辑器包括:
[0014] 内容发现与标注器,用于根据该网页内容和用户的交互将该网页内容封装到信息源中,建立嵌套表格数据模型,其中该嵌套表格数据模型包括原子属性及其实例和/或元组属性及其实例;
[0015] 内容聚合器,用于根据该用户的交互生成该Mashup脚本。
[0016] 在上述系统中,该内容发现与标注器还包括抽取规则生成模块,用于根据用户的交互生成网页抽取规则;
[0017] 该内容发现与标注器,还用于识别该网页内容的内容类型,如果该网页内容是HTML内容则根据该网页抽取规则抽取为结构化数据,并将该结构化数据封装到该信息源中,建立嵌套表格数据模型。
[0018] 在上述系统中,该Mashup服务器包括内容服务调用代理,其用于通过该网络访问该一个或多个内容服务器并根据该Mashup脚本接收该信息源对应的最新的网页内容,根据用户的交互将该最新的网页内容封装到该信息源中,建立嵌套表格数据模型;
[0019] 该Mashup服务器,还用于执行该Mashup脚本对该封装了该最新的网页内容的信息源进行处理或聚合,生成信息视图;
[0020] 该包括一个或多个内容服务器的网络,其中该内容服务器还用于通过该网络向该内容服务调用代理提供该最新的网页内容。
[0021] 在上述系统中,该内容发现与标注器还包括抽取规则生成模块,其用于根据用户的交互生成网页抽取规则;
[0022] 该内容服务调用代理还用于识别该最新的网页内容的内容类型,如果该最新的网页内容是HTML内容则根据该网页抽取规则抽取为结构化数据,根据用户的交互将该结构化数据封装到该信息源中,建立嵌套表格数据模型。
[0023] 在上述系统中,该信息视图包括:内容列表视图、地理信息视图、或Excel表格。
[0024] 在上述系统中,该一个或多个内容服务器包括:RSS内容服务器或HTML内容服务器。
[0025] 根据本发明的另一方面,还提供一种聚合Web站点内容的方法,包括:
[0026] 10)接收网页内容,根据用户的交互将该网页内容封装到信息源中,建立嵌套表格数据模型并生成Mashup脚本,其中该嵌套表格数据模型包括原子属性及其实例和/或元组属性及其实例;
[0027] 20)执行该Mashup脚本对该信息源进行处理或聚合,生成信息视图。
[0028] 在上述方法中,步骤20)的处理包括对该嵌套表格数据模型的原子属性及其实例进行删除,对该原子属性进行重命名,或对该原子属性实例进行排序、去重或替换。
[0029] 在上述方法中,步骤20)的处理包括对该嵌套表格数据模型的元组属性及其实例进行删除,对该元组属性进行重命名,或对该元组属性实例进行内容截取或过滤。
[0030] 在上述方法中,步骤20)的处理包括对该嵌套表格数据模型的元组属性及其实例进行折叠或去折叠。
[0031] 在上述方法中,步骤20)的处理包括对该嵌套表格数据模型的原子属性实例进行算术或字符运算以增加新的该嵌套表格数据模型的原子属性及其实例。
[0032] 在上述方法中,步骤20)的聚合包括对该嵌套表格数据模型的元组属性实例进行合并的聚合操作。
[0033] 在上述方法中,步骤20)的聚合包括对该嵌套表格数据模型进行新增内容服务的聚合操作。
[0034] 在上述方法中,步骤10)还包括步骤:
[0035] 11)识别该网页内容的内容类型;
[0036] 12)如果该内容类型为HTML,根据该用户的交互生成网页抽取规则,并根据该网页抽取规则将该网页内容抽取为结构化数据,并将该结构化数据封装到该信息源中,建立嵌套表格数据模型。
[0037] 在上述方法中,还包括步骤:
[0038] 30)根据该Mashup脚本,接收该信息源对应的最新的网页内容,根据用户的交互将该最新的网页内容封装到该信息源中,建立嵌套表格数据模型;
[0039] 40)执行该Mashup脚本对该封装了该最新的网页内容的信息源进行处理或聚合,生成信息视图。
[0040] 本发明带来的有益效果是:1).本发明通过将网页内容封装到信息源中,建立嵌套表格数据模型,以基于“嵌套表格”的方式提供内容聚合的用户交互界面,类似于Excel风格,无需专门的编程知识,无需用户熟悉“数据流建模”的方式,符合大众用户使用习惯,降低了用户的使用门槛。2).本发明为用户提供了对HTML网页内容进行发现、标注、抽取和聚合的集成交互界面,用户可以通过简单的鼠标选取等操作将自己感兴趣的网页内容标注、抽取出来,作为“信息源”导入到系统中与其他信息源进行聚合。3).由于本发明允许以可视化的方式表达用户的聚合需求,并将操作序列保存起来,可通过参数进行配置,可重复由Mashup服务器执行,大众用户无需编写代码,只需简单操作即可构造Mashup应用。

附图说明

[0041] 图1是根据本发明一个具体实施例的Web站点内容聚合和通信网络的系统框图。
[0042] 图2是根据本发明一个具体实施例的聚合Web站点内容的Mashup应用构造系统的结构框图。
[0043] 图3是根据本发明一个具体实施例的信息源数据模型及其实例示意图。
[0044] 图4是根据本发明一个具体实施例的关于“内容聚合表格”中的“嵌套表格”的用户交互界面示意图。
[0045] 图5是根据本发明一个具体实施例的嵌套表格“折叠”操作语义示意图。
[0046] 图6是是根据本发明一个具体实施例的聚合Web站点内容的方法流程图。
[0047] 图7是根据本发明另一个具体实施例的聚合Web站点内容的方法流程图。
[0048] 图8根据本发明一个具体实施例的用于发现当前网页RSS信息源的Mashup编辑器用户交互界面示意图。
[0049] 图9是根据本发明一个具体实施例的用于对当前HTML网页内容进行标注的Mashup编辑器用户交互界面示意图。
[0050] 图10是根据本发明一个具体实施例的用于对一个信息源进行配置的用户交互界面示意图。
[0051] 图11是根据本发明一个具体实施例的创建一个新的Mashup并导入两个信息源进行聚合的用户交互界面示意图。
[0052] 图12是根据本发明一个具体实施例的通过新增列的方式将两个Source的内容进行聚合的界面示意图。
[0053] 图13是根据本发明一个具体实施例的通过弹出菜单方式对当前“内容聚合表格”中的一个或多个“列”进行算术或字符运算的界面示意图。

具体实施方式

[0054] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对根据本发明一个实施例的聚合Web站点内容的系统进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0055] 图1示出了根据本发明一个具体实施例的Web站点内容聚合和通信网络的系统框图。客户端系统101通过因特网103与一个或多个内容服务器系统1041到104N建立连接。如这里所述,客户端系统101被配置为与服务器系统1041到104N中的任意一个或多个进行通信,访问并接收媒体信息和数据,例如HTML网页、RSS内容。客户端系统101生成对媒体信息和数据进行处理、聚合的指令,客户端系统101还被配置为与Mashup服务器102进行通信,将上述指令发送给Mashup服务器102执行。Mashup服务器102被配置为与客户端系统101进行通信,接收客户端系统101生成的指令并执行。Mashup服务器102被配置为通过因特网103与内容服务器系统1041到104N中的任意一个或多个进行通信,从而当执行来自客户端系统101的处理和聚合指令时,Mashup服务器102可实时从内容服务器系统获取最新的媒体信息和数据,按照指令进行数据的处理和聚合,其中处理和聚合的指令被序列化为Mashup脚本。在所有处理和聚合操作结束后,Mashup服务器102根据用户设定的最终结果呈现方式,生成可供客户端系统显示的“信息视图”。内容服务器系统1041到104N被配置为可以通过因特网103向客户端系统101和Mashup服务器102提供HTML网页或RSS内容。
[0056] 图1所示系统中的若干个部件包括公知的部件,这些部件在此无需详细说明。例如客户端系统101可以是诸如个人计算机(PC)、笔记本电脑、个人数字助理(PDA)、智能手机或者能够访问因特网的任何计算设备。客户端系统101一般运行浏览器程序,例如,微软TM TM(Microsoft)的InternetExplorer 浏览器、Mozilla Firefox 浏览器、或者在移动设备中使用的能访问因特网的浏览器等,从而允许客户端系统101的用户访问、处理和查看其通过因特网102从内容服务器系统1041到104N获得的信息和页面。客户端系统101一般还包括一个或多个用户接口设备,例如键盘、鼠标、触摸屏等,用于与客户端系统101上的浏览器提供的图形用户界面(GUI)进行交互。Mashup服务器102可以是诸如服务器、个人计算机(PC)等能够访问因特网、并且具有一定计算和存储能力的计算设备。若客户端系统
101为具有一定计算和存储能力的计算设备,如个人计算机,则Mashup服务器102和客户端系统101可以被配置为在物理上为同一计算设备。本发明适于与因特网一起使用,因特网指特定的全球互联网。然而,应当理解,其他网络可以用来替换因特网,或者与因特网一起使用,例如局域网LAN等。
[0057] 本领域技术人员可以理解,用于实现本发明多个方面的计算机代码可以是C、C++、Java、Javascript等代码,或者可以在客户端系统101、Mashup服务器102上被执行或者编译后执行的任何其他合适的编程语言。
[0058] 图2示出了根据本发明一个具体实施例的聚合Web站点内容的Mashup应用构造系统200的详细结构框图。如图所示,系统200包括HTML内容服务器2041、RSS内容服务器2042、其它内容服务器204N、因特网203、客户端系统201和Mashup服务器202。
[0059] 其中客户端系统201包括Mashup编辑器205。Mashup编辑器205是一个提供给用户对网页内容进行发现、标注、处理和聚合的基于图形用户界面的编辑环境,它包括内容发现与标注器207和内容聚合器208。客户端系统201可还配置有专门的信息阅读器215,用以显示信息视图,信息阅读器215可以是浏览器、也可以是Excel程序或者其他被配置为能够显示对应视图的任何应用程序。Mashup服务器202包括Mashup处理模块209、内容服务调用代理模块210以及视图生成模块214,Mashup服务器202用于接收并执行所述客户端系统生成的Mashup脚本,生成可供信息阅读器215显示的信息视图。
[0060] 内容发现与标注器207提供了对HTML页面、含有RSS内容的页面进行发现、抽取的“网页发现和抽取图形用户界面(GUI)”。对来自互联网上内容服务器的任一页面,内容发现与标注器207识别并发现该页面所包含的内容,创建一个信息源(Source)的实例。其中,网页内容的识别方法和网页内容中包含的RSS链接的发现方法,为本领域普通技术人员所公知。信息源是一个封装类,创建一个信息源的实例即实例化该封装类,生成该封装类的一个对象。信息源包括名字、类型、网络访问地址、基本描述和输入参数等描述信息,作为网页内容的统一数据访问接口,信息源对网页结构化内容进行封装,它提供了一致的数据模型,用以表示网页内容的结构或模式(schema)。其数据模型采用“嵌套表格数据模型”,该数据模型包括一系列的属性(attribute),每个属性都可以包括其他属性,该数据模型用一个树型的数据结构来实现。图3示出一个信息源的树型数据结构示意图,其中信息源封装的网页内容表示电影的豆瓣评论信息。图3的信息源所对应的数据模型可以表示为:
[0061] Movie Items(title,director,actor,douban-movie(subjectID,title,movie-reviews(link,summary)*)*)
[0062] 其中,Movie Items由title、director、actor、douban movie等来描述,它们都称为嵌套表格数据模型的属性。本发明称由其他属性来构成的属性为“元组属性(tuple attribute)”,例如,Movie Items为“元组属性”,它由title等四个子属性(subattribute)构成。title、director、actor没有自己的子属性,本发明称它们为“原子属性(atom attribute)”。“*”表示该属性可以有多个实例。
[0063] 原子属性的实例(instance)可以为任意字符串值,例如,“功夫熊猫”为原子属性“title”的一个实例。元组属性的实例是由构成该元组属性的每一个子属性的实例构成的,例如(00001,“功夫熊猫”,((http://link1,“某评论摘要1......”),(http://link2,“某评论摘要2......”)......))为元组属性douban-movie的一个实例,其中,00001是原子属性subjectID的一个实例,“功夫熊猫”为“title”的一个实例,(http://link1,“某评论摘要1......”)又为元组属性movie-reviews的一个实例,而http://link1、“某评论摘要1......”分别是原子属性link和summary的一个实例。上述数据模型表示,在一个douban-movie实例中,包括原子属性subjectID、title的一个实例,以及元组属性movie-reviews的一个或多个实例。
[0064] 内容发现与标注器还可以包括抽取规则生成模块212。抽取规则生成模块212生成抽取规则,并根据所识别的内容类型对需要抽取的网页内容进行抽取。对于RSS内容,由于本身是结构化的内容,因此将其转换为嵌套表格数据模型表示的结构化数据,封装到信息源中。对于HTML内容,则进行抽取,如所公知的,抽取即从半结构化的网页中抽取出数据,变为结构化的数据,以方便对数据的处理和聚合。具体为根据用户在内容发现与标注器207所提供的网页发现和抽取GUI中的交互对当前网页内容进行的标注并生成网页抽取规则,进而抽取从而使该网页内容成为嵌套表格数据模型表示的结构化数据,并将该结构化数据封装到信息源中,提供给该网页发现和抽取GUI显示,其中网页结构化内容抽取过程为公知的方法,在此不作赘述。在本发明一个实施例中,客户端系统201和Mashup服务器
202在物理上位于同一计算设备上,因此,信息源/网页抽取规则211由客户端系统201所包括的Mashup编辑器205负责存储和维护。在其他实施例中,信息源/网页抽取规则211可由Mashup服务器202进行存储和维护。
[0065] 内容聚合器208提供对HTML、RSS等页面内容进行处理和聚合的“内容处理和聚合GUI”,根据用户与该内容处理和聚合GUI的交互产生处理和聚合指令,该指令经过内容聚合器208生成为Mashup脚本213,供Mashup服务器202负责执行。下面结合附图详细描述内容聚合器208的具体操作。
[0066] 由于信息源采用了如图3所述的“嵌套表格数据模型”,可以通过树的遍历来将数据内容呈现到嵌套表格上,根据本发明的一个具体实施例,每个信息源所封装的网页内容在内容处理和聚合GUI中呈现为一个嵌套表格。图4以嵌套表格的形式呈现了图3所示信息源所封装的结构化数据,其中原子列对应于图3中的“原子属性”及其实例,复合列对应于“元组属性”及其实例。如图4所示,“嵌套表格”由表结构401、表内容402构成。表结构401刻画了表内容402的结构,它由原子列403、复合列404以及新增列405构成,每个原子列都对应一个原子列菜单406,每个复合列对应一个复合列菜单407,新增列则对应一个新增列菜单408。其中,复合列是由多个原子列构成的。每个复合列均对应一个空白的新增列,该新增列将来可以根据需要成为原子列或复合列,用以在聚合其他信息源所封装的结构化数据时对表结构进行扩展。
[0067] 可作用在嵌套表格上的处理和聚合指令包括三大类,它们的语义分别介绍如下:
[0068] (1).导入操作:在内容处理和聚合GUI中新建一个嵌套表格,根据一个新的信息源,通过树的遍历,在嵌套表格中呈现信息源所封装的数据,以便进一步处理和聚合。
[0069] (2).处理操作:以原子列为单位的删除(Delete)、重命名(Rename)、内容排序(Sort)、去重(Merge instance)、替换(Replace)等操作;以复合列为单位的删除(Delete)、重命名(Rename)、截取(Head/Tail Truncate)、折叠(Nest)、去折叠(Unnest)、过滤(Filter)等操作;对一个或多个“列”进行算术或字符运算,并将其结果作为新增列的新增列(Add Function)操作。
[0070] 其中,删除、重命名、排序、过滤以及对一个或多个“列”进行算术或字符运算的新增列等操作为本领域技术人员所公知,在此不作赘述。“去重(Merge instance)”操作指将重复的记录去掉,只保留一条记录(行)。“替换(Replace)”操作针对字符串类型的原子列,用以将字符串操作作用到该原子列的每个值,并且替换掉原有的值,字符串操作表达式由用户来设置。“截取(Head/Tail Truncate)”操作指只保留开头(Head)或结尾(Truncate)n条记录(行),其余的记录均去掉,其中n可由用户来设置。“折叠(Nest)/去折叠(Nest)”是嵌套表格与普通表格之间的转换操作,图5示出了一个去折叠实例,其中图5a经过“去折叠”操作成为图5b,图5b经过“折叠”操作成为图5a。
[0071] (3).聚合操作:对数据模型相匹配的多个信息源封装的数据进行“合并(Union)”的聚合操作;对存在输入/输出参数关联关系的多个信息源封装的数据进行“新增内容服务(Add service function)”聚合操作。
[0072] 本领域普通技术人员可以理解上述处理操作均是根据需要的可选操作,在具体实施例中可以选择其中的任一操作或任何多个操作的组合。
[0073] 上述每个操作指令均有形式化的描述,例如,导入操作可被描述为import(sid,mapping,...),其中sid指被导入的信息源ID,mapping用以设置该信息源的参数与mashup应用的参数之间的映射关系;Delete操作描述为delete(col),其中,col指列的名称;其余操作的描述可依此类推,在此不作赘述。用户在内容处理和聚合GUI中发起的所有操作,其操作指令的描述序列化为一个XML文档,称为Mashup脚本。下面是一个Mashup脚本的例子。
[0074] <?xml version=″1.0″encoding=″GBK″?>
[0075]
[0076] Beijing
[0077]
[0091]
[0092] 在该例中,首先导入一个Google Movie搜索的信息源,其次,用该信息源中的原子属性“title”作为“豆瓣搜索”信息源的输入参数,得到GoogleMovie信息源与豆瓣搜索信息源的聚合结果。然后,对搜索结果进行过滤,将豆瓣搜索结果中原子属性“title”与Google Movie中原子属性“title”不相等的实例过滤掉。最后,以豆瓣搜索结果中原子属性“subjectID”作为“豆瓣电影评论搜索”信息源的输入参数,得到最终聚合结果,即Google最新影讯及其在豆瓣上的电影评论。在该脚本中,“ref-service”指信息源的名字;“ref-datasheet”指嵌套表格的名字;“ref-atom”指原子列的标识,用其对应的原子属性的路径名表示;“id”指该操作指令的标识,为系统随机生成的全局惟一标识,为节省空间,这里省略为“xx”;脚本中其余标签的语义依此类推。
[0093] 如上所述系统中的Mashup服务器202包括Mashup处理模块209、内容服务调用代理模块210以及视图生成模块214。其中Mashup处理模块209负责解析执行Mashup脚本213,按照脚本中的指令对先前创建的信息源所封装的结构化数据进行处理和聚合。Mashup处理模块209被配置为执行所述Mashup脚本从而对所述嵌套表格数据模型的原子属性及其实例进行删除、对原子属性进行重命名、对原子属性的实例进行排序、去重或替换,对元组属性及其实例进行删除、对元组属性进行重命名、对元组属性实例进行内容截取或过滤,对元组属性及其实例进行折叠或去折叠,对原子属性实例进行算术或字符运算以增加新的原子属性及其实例,或者对元组属性实例进行合并;以及对存在输入/输出参数关联关系的多个信息源所封装的结构化数据进行聚合。
[0094] 在实现时,脚本中的上述操作指令,对于“导入”操作,由Mashup处理模块将信息源所封装的结构化数据呈现为嵌套表格;对除“导入”操作外的其他操作,均由Mashup处理模块转换为树型数据结构上“原子属性”、“元组属性”及其实例的修改、增加、删除的基本运算,从而得到执行结果。
[0095] 当重新执行脚本中特定信息源的“导入”操作时,内容服务调用代理210实时获取内容服务器所提供的HTML或RSS内容,根据指令中信息源的标识,识别内容服务器所提供的媒体类型(HTML或RSS内容)。对HTML类型的网页内容,还根据网页抽取规则匹配最新网页内容,得到最新网页的结构化数据。从而将RSS内容或HTML类型网页的结构化数据封装到信息源。
[0096] 视图生成模块214将Mashup处理模块209生成的结果生成可供信息阅读器215显示的各种信息视图,例如内容列表视图、在地图上显示信息的地理信息视图、Excel表格形式的视图等。
[0097] 本领域普通技术人员可以理解,图1和图2所示系统为优选实施例的示意图。Mashup服务器也可以不与网络相连接,在此情况下,Mashup服务器则不能通过网络从内容服务器实时获取网页最新内容,进而每次聚合Web站点内容,都从客户端系统接收网页内容,再进行处理和聚合操作。
[0098] 利用上述系统的聚合Web站点内容的方法可以分为Mashup应用的“构造”和“运行”两个阶段。在构造阶段,系统接收用户的Web站点内容处理和聚合指令,生成并执行Mashup脚本,并呈现聚合结果,从而将一个或多个信息源经处理、聚合后生成复合信息源(一个复合信息源又可称之为一个Mashup应用);在下一次打开该Mashup应用运行时,系统重复执行该Mashup脚本,从网站获得最新站点内容并进行处理和聚合,并为用户呈现聚合结果。
[0099] 图6示出了一个基于图2所示系统的方法流程图。该流程图仅是示例性的,本领域技术人员将认识到各个步骤可以被添加、删除和/或修改,并且被认为仍在本发明的范围内。因此,该示例性实施例不应当被看作是对由权利要求书限定的发明的限制。下面详细描述该方法在Mashup构造阶段的流程:
[0100] 步骤601,通过用户使用浏览器打开某网站的页面,并点击“DiscoverSources”按钮来接收当前打开网页的网页内容。
[0101] 步骤602,识别网页内容的类型为HTML内容或RSS内容,发现网页内容中包含的RSS链接,创建信息源。
[0102] 步骤603,根据步骤602识别的内容类型,判断是否对内容进行抽取,若内容类型为HTML则进行步骤604,否则进行步骤605;
[0103] 步骤604,对网页内容进行抽取,具体为根据用户在内容发现与标注器207所提供的网页发现和抽取GUI中的交互对当前网页内容进行的标注并生成网页抽取规则,进而抽取从而使该网页内容成为嵌套表格数据模型表示的结构化数据,并将该结构化数据封装到信息源中。
[0104] 步骤605,网页内容为RSS数据,将其转换为嵌套表格数据模型表示的结构化数据,封装到信息源中。
[0105] 步骤606,根据用户在内容聚合器208所提供的内容处理和聚合GUI中的交互,对信息源所封装的结构化数据进行操作,生成Mashup脚本。
[0106] 步骤607,由Mashup处理模块209解析执行Mashup脚本,得到聚合结果。内容处理和聚合GUI中的内容聚合表格根据该执行结果更新其显示内容。此时,若结束Mashup应用构造过程,则视图生成模块214根据用户设定的视图类型,生成信息源聚合结果的信息视图,否则重复进入步骤306,根据用户操作,更新Mashup脚本。
[0107] 一旦上述Mashup应用已经构造好,当用户下一次打开该Mashup应用时,系统即重新执行该脚本,并由Mashup服务器202实时从网站获得最新内容,因此用户每次打开Mashup应用得到的均是各网站最新内容的聚合结果。图7示出了一个基于图2所示系统的方法在用户打开该Mashup应用时重复执行的方法流程图。该方法具体包括下述步骤:在步骤701中,Mashup处理模块根据在构造阶段生成的Mashup脚本,按照脚本指令中信息源的标识,获取信息源的描述信息,通过信息源提供的统一数据访问接口,调用内容服务调用代理,通过HTTP请求获取该信息源对应的网页内容。在步骤702中,根据信息源的描述信息,识别当前获取的网页内容类型,判断是否对内容进行抽取。若网页内容类型为HTML则进行步骤703,Mashup处理模块根据系统在Mashup构造阶段生成的网页抽取规则对网页内容进行抽取,得到结构化数据并封装进信息源;否则进行步骤704。在步骤704中,将RSS网页内容封装进信息源中。在步骤705中,根据系统在构造阶段生成的Mashup脚本,Mashup处理模块对上述信息源所封装的结构化数据进行处理和聚合。在步骤705中,根据用户设定的视图类型,视图生成模块214生成可供显示的信息视图。
[0108] 下面详细描述根据本发明一个实施例的各个图形用户界面的实例示意图。
[0109] 图8示出了根据本发明一个实施例的Mashup编辑器的“网页发现和抽取图形用户界面(GUI)”和“内容处理和聚合GUI”共有的两个界面模块:信息源(Source)801、复合信息源(Mashup应用,其由多个信息源聚合而成)802。其中,Source是构建Mashup的基本构成元素。“Createa Mashup”按钮803用以创建一个新的“Mashup”,“Discover Sources”按钮804用以发现并增添Source到Source列表中。根据本发明的一个实施例,Source有两种类型:HTML网页内容、RSS内容。
[0110] 当用户通过在当前网站打开的页面中选择发现网页信息源请求时,内容发现与标注器207发现并识别当前页面的内容,从而创建一个新的Source。图8还示出了包括“Discover Sources”按钮804在内的示例当前页面。通过点击“Discover Sources”按钮804,用户指引内容发现与标注器207解析当前页面,从中识别当前网页的类型,进而创建一个信息源。图8还示出了在“百度新闻RSS订阅”的当前页面上发现并创建1个RSS信息源805的示例。对于HTML内容类型的Source,当用户选择“高亮(Highlight)”进行标注请求时,抽取规则生成模块212根据用户标注生成网页抽取规则。图9示出了根据本发明一个实施例的对一个HTML内容类型的来自“电影资料库IMDB中文网(http://www.imdb.cn)”的当前示例网页进行标注请求及其请求后的结果页面。在图9的示例中,当用户将鼠标停留在当前网页一个电影海报图片链接元素上,点击右键菜单中的“Highlight Selected Link”按钮901时,抽取规则生成模块212响应用户请求生成网页抽取规则和相应的结构化数据。其中,结构化的数据实时显示到“Source Chart”视图903中。“View Source Chart”按钮902被配置为响应用户请求来显示当前网页抽取规则作用的结果。
[0111] 在经过上述发现网页内容并创建Source的过程之后,一个新创建的Source包括名字、类型、网络访问地址、基本描述、输入参数等信息,并提供配置选项来允许用户配置该Source的名字、基本描述和输入参数。图10示出了根据本发明一个实施例的对Source进行配置的示例。页面1000为在百度搜索网站(http://www.baidu.com)输入“功夫熊猫”为关键字的搜索结果页面,选择“Discover Source”按钮后,发现并识别出一项名为“百度搜索_功夫熊猫”的Source,如前所述,通过点击该Source菜单项,该Source即加入到Mashup编辑器中。此时,对话框1001被用来显示该Source的配置选项,1002、1003、1004、1005和1006分别被配置为接收用户对该Source的重命名、描述信息更改、输入参数设置以及参数描述信息更改的输入,在1007中显示参数缺省值,为当调用该Source时所使用的输入参数的默认值。需要说明的是,RSS类型的Source以及某些HTML类型的Source是没有输入参数的,因而无需进行输入参数配置。Source输出具有默认的呈现方式,例如本实施例中如
903所示的“Source Chart”视图来呈现。
[0112] 可以将如上所述所创建的source导入到构建的Mashup中,一个新创建的Mashup包括名字、基本描述、输入配置参数和输出,Source的输入参数在导入时可配置为Mashup的输入参数。同Source一样,Mashup也具有默认的呈现方式。
[0113] 图11示出了根据本发明一个实施例的创建一个新的Mashup并导入一个Source的实施例,“Create a Mashup”1101响应用户请求创建一个新的Mashup后,在页面中显示一个空白的表格区域1102。每个Source 1103都可通过双击操作将其导入到1102中,如果该Source有输入参数,则双击后先配置其输入参数。Source在区域1102中以“内容聚合表格”1104的方式呈现。
[0114] 用户通过图5的原子列及复合列菜单,发起信息源处理与聚合指令。复合列和原子列均被设置为可拖拽的,通过鼠标“拖拽(drag and drop)”操作将多个Source的内容进行“合并(Union)”的聚合操作。图11中的嵌套表格1104是百度搜索关键字“功夫熊猫”的结果,嵌套表格1105是谷歌搜索关键字“功夫熊猫”的结果,将谷歌搜索结果的复合列1107拖拽到百度搜索结果的对应复合列1106上,则1105表格的内容按照复合列所包含的原子列的名字进行匹配,依次叠加到1104表格中。
[0115] 图12示出了根据本发明一个实施例以“新增内容服务(Add servicefunction)”聚合操作进行内容聚合的示例。1201是导入信息源“最新影讯”后在Mashup编辑区呈现的表格,该信息源来源于谷歌“最新电影放映时间”网站(http://www.google.cn/movies)。“内容聚合表格”中的每一个子表格都包括一个“新增列”1202及其弹出菜单项“Add Service Function”1203。1204是用户点击菜单项1203后弹出的对话框,在此对话框中进行两个Source输入/输出参数的关联。例如,用户从当前Source列表1205中选择“Google搜索”,并选择当前表格中的“作者”列1206作为“Google搜索”输入参数“关键字”的输入值。嵌套表格1207呈现了进行上述操作后的结果,显示了每个作者及该作者在Google上的搜索结果。
[0116] 特别的,内容聚合表格被配置为可通过新增列弹出菜单的方式对当前表格中的一个或多个“列”进行算术或字符运算,并将计算结果作为新的“列”增加到当前内容聚合表格中。图13示出了根据本发明一个实施例的点击“新增列”1301,在随后弹出的菜单中选择“Add Function”1302,系统所弹出的Mashup计算器1303。该计算器支持表达式“暂存”,点击“M(Memory)”按钮1304,可以将当前表达式文本框1305里面的表达式暂存到文本框1306中。点击新增“暂存”按钮1307,可以增加一个用以“暂存”表达式的文本框,从而帮助用户灵活地构造基于“列”的运算表达式。
[0117] 应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。