CN102004777A - 一种可定制的Web信息集成方法及系统 - Google Patents
一种可定制的Web信息集成方法及系统 Download PDFInfo
- Publication number
- CN102004777A CN102004777A CN 201010554432 CN201010554432A CN102004777A CN 102004777 A CN102004777 A CN 102004777A CN 201010554432 CN201010554432 CN 201010554432 CN 201010554432 A CN201010554432 A CN 201010554432A CN 102004777 A CN102004777 A CN 102004777A
- Authority
- CN
- China
- Prior art keywords
- data
- service
- user
- module
- web
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000010354 integration Effects 0.000 title claims abstract description 25
- 238000001914 filtration Methods 0.000 claims abstract description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 30
- 238000006116 polymerization reaction Methods 0.000 claims description 9
- 238000005065 mining Methods 0.000 claims description 5
- 239000002131 composite material Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 15
- 238000000605 extraction Methods 0.000 abstract description 13
- 238000013461 design Methods 0.000 abstract description 8
- 238000013075 data extraction Methods 0.000 abstract description 5
- 238000011161 development Methods 0.000 abstract description 3
- 230000002776 aggregation Effects 0.000 abstract description 2
- 238000004220 aggregation Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 235000010044 Hernandia moerenhoutiana Nutrition 0.000 description 5
- 244000084296 Hernandia moerenhoutiana Species 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 108010087367 P-glycoprotein 2 Proteins 0.000 description 4
- 102100039032 Phosphatidylcholine translocator ABCB4 Human genes 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000879217 Apocynum androsaemifolium Species 0.000 description 1
- 241000272183 Geococcyx californianus Species 0.000 description 1
- 241000736235 Polemonium reptans Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种可定制的Web信息集成方法及系统,其方法包括:1)由用户指定不同服务数据源的URL集合;2)根据服务数据源类型的不同,使用数据抽取器从服务数据源获取记录集合,由用户指定数据字段,生成对应数据源的抽取规则;3)根据上述生成的抽取规则从不同数据源获取数据并整理为结果记录集合;4)使用过滤器过滤结果记录集合,将集成数据输出显示。本发明适用于构建大数据量、复杂数据结构的Mashup应用,构建过程中的二次开发无需终端用户参与编程;在数据层面能够提供个性化的抽取和聚合,用户方便的设定个性化的显示样式和数据显示方式;能够保证逻辑型Mashup的快速构建。
Description
技术领域
本发明涉及一种面向终端用户的可定制的Web信息集成方法及其系统,可以引导用户简单、快捷地定制信息集成应用,并提供集成应用的运行环境,属于软件应用技术领域。
背景技术
Web2.0时代的到来,加速了网络信息的爆炸式增长。当今的Internet上蕴藏着海量的数据和资源,种类多、数量大,而且分布广,不便于终端用户对数据的精确查询。另一方面,用户需要的信息一般是经过对多个数据源数据的重组再加工得到。用户在很多时候,需要访问多个Web服务取得源数据,然后手工地汇总、过滤,得到他感兴趣部分,从而得到有助于决策的信息。结果就是——伴随着数据源的不断丰富,作为终端用户,想要获取想要的信息,不得不付出越来越多的时间和工作量成本。
Mashup技术的产生从一定程度上解决这一问题。Mashup作为一种交互式的Web应用程序,是Web2.0的特征之一,其能够从Web上各种离散的数据源中获取数据,并集成这些数据从而构建出新的应用。它将互联网视为一个大的平台,让非专业人士即终端用户能够根据自己的需求能够组合出全新的应用,提升数据的价值。一般来说,有3种类型的混搭应用:表现型、数据型和逻辑型。
Mashup应用的重要意义在于合并了多个源的信息和服务,和传统的应用相比,Mashup应用的搭建更快捷。但是还是不能保证将开发门槛降低至无编程基础的终端用户。一些商业团队和研究人员,在意识到这个问题之后,发布了Mashup工具试图改善这个问题。Yahoo Pipies(http://pipes.yahoo.com/pipes/)就是一个典型的成功案例,但是它的局限性在于只能很方便的处理简单、少量的结构化数据,比如RSS。
在大数据量、复杂数据结构的Mashup应用环境,对于终端用户而言,Mashup工具的学习成本也是很高的,要理解性能、程序并行及优化、数据的ETL过程等诸多复杂的概念和编程模型。而且,作为一个典型的Mashup工具,Yahoo Pipies提供的聚合仅在数据层面,终端用户如果要将Yahoo Pipies聚合的数据与自己的应用Mashup或者为数据提供个性化的UI,还是需要编程,并且依赖和受限制于Yahoo提供的服务。Yahoo Pipies的同类工具也存在相似不足之处。
Mashup应用的重要意义还在于,为Web上分布的、自治的、异构的数据源提供强交互性和个性化的访问接口。
个性化体现在:首先,用户可以方便的选择和添加数据源;其次,用户可以选择感兴趣的数据子集;第三,用户可以选择数据的展现方式,包括显示外观和显示所使用的格式(比如销售人员选择用列表形式查看客户信息,配送人员选择地图显示客户信息以方便送货)。
强交互性突出体现在:逻辑型的Mashup应用,这种应用场景有更好的用户体验,应用之间的场景可以根据用户的需要产生交互操作。考虑一个汽车集团的市场部,部署了三个应用系统:销售管理系统(Sale Management System,SM),客户关系管理系统(CustomerRelationship Management System,CRM)和商务智能系统(Business Intelligence System,BI)。由于这三个系统是在不同的阶段分别开发与部署到企业的,因此相互间完全独立。一个新的Mashup应用基于上述三个独立系统构建完成后,就能够完成三者之间的互操作,于是,市场经理希望的事情发生了:通过在SM系统上选定某个订单并点击特定的按钮,该订单的Consumer ID会自动转换并送到CRM系统,同时自动提交查询请求,然后,请求获得的Occupation信息以及SM系统中的Date和Producer ID会转换并传递到BI系统,同样自动提交查询请求,从而仅仅通过一次鼠标点击动作,在最终结果中同时显示市场经理所需的全部信息。
针对个性化可定制数据集的需求,在数据抽取系统的研究领域,已经取得了不少成果。ASByE(J.P.Lage,A.S.da Silva,P.B.Golgher,et al.Automatic generation of agents for collectinghidden Web pages for data extraction.Data &Knowledge Engineering,Vol.49,No.2,2004.Pages:177-196.)和Lixto(Baumgartner.R,Flesca.S,Gottlob.G.Visual Web Information withLixto.Proceedings of the 27th International Conference on VLDB,2001:119-128.),都可以创建数据Mashup的应用,但是定制应用的过程相当繁琐,数据抽取需要用户指定复杂的规则,不能自动执行。
另外,与数据Mashup相关的,还有一些针对应用集成策略研究的文章,提出将数据集成封装为Gadget或者Service(Baumgartner.R,Campi.A,Gottlob.G,et al.Chapter 6:Web DataExtraction for Service Creation,in Search Computing,S.Ceri and M.Brambilla,Editors.2010,Springer Berlin/Heidelberg.p.94-113.)。
综上,已有的数据Mashup方法,缺点总结如下:
(1)如果需要构建大数据量、复杂数据结构的Mashup应用,需要对Mashup工具所提供服务的二次开发,因此不适用于终端用户。
(2)在数据层面能够提供个性化的抽取和聚合,允许用户指定感兴趣的Web数据集,系统代为抽取,但对于表示层,不能方便的设定个性化的显示样式和数据显示方式。
(3)应用之间不可以根据用户简单设定,产生交互操作,从而限制了逻辑型Mashup的快速构建。
因此,需要一个简单易用、方便终端用户定制的Web数据Mashup方法,该方法可以在用户参与最少的情况下自动生成数据源的抽取规则,生成Mashup应用,汇总多源数据并以个性化的方式显示,同时允许其他应用访问和操作这一应用。依照此方法开发的Web信息集成系统,能够达到引导用户简单、快捷地定制信息集成应用,并提供集成应用的运行环境的目的。
发明内容
本发明的目的在于克服现有技术中存在的问题,提供面向终端用户的可定制的Web数据集成方法及系统。为保证快速创建Mashup应用,保证终端用户参与指导应用的创建,本发明将定制Mashup应用的方法进行了抽象,用户只需要指定输入(服务URL,也即Mashup数据源)和感兴趣的数据字段(下文也称为抽取字段),就相当于实现了应用的定制。整个过程简单、快捷,无须用户编程。
为了实现本发明方法的目的采用的技术方案概述如下:
一种可定制的Web信息集成方法,包括以下步骤:
1)由用户指定不同服务数据源的URL集合;
2)根据服务数据源类型的不同,使用数据抽取器从服务数据源获取记录集合,由用户指定数据字段,生成对应数据源的抽取规则;
3)根据上述生成的抽取规则从不同数据源获取数据并整理为结果记录集合;
4)使用过滤器过滤结果记录集合,将集成数据输出显示。
所述步骤1)每个URL所标识的服务,提供的数据结构是相同的。
所述步骤2)生成抽取规则后,进一步使用过滤器进行过滤。
所述步骤2)数据抽取器利用无指导的数据抽取算法从服务数据源获取记录集合。
所述步骤3)采用有指导的数据抽取算法,包括:
5-1)去掉服务数据源页面上无关的节点后表示为dom树,使用数据区域集合挖据算法作用于dom树;
5-2)在找出的节点集合上做层次聚类;
5-3)计算数据区域的rank值,取值最大的为正确数据区域。
所述过滤器为基于关键字的过滤和基于重复键值的过滤。
为了实现本发明的另一目的,采用的技术方案如下:
一种可定制的Web信息集成系统,其特征在于,包括服务调用模块、服务组合模块、个性化输出模块,其中:
所述服务调用模块包括内置的数据抽取器,该模块根据服务数据源类型的不同,自动调用内置的数据抽取器,将从不同数据源得到的数据统一整理为Web数据记录集合,传递给服务组合模块。
所述服务组合模块包括过滤器,用于汇总和过滤已抽取的Web数据。
所述输出模块设包括不同输出方式的插件,该模块从服务组合模块取得数据并调用相应插件,分析并加入显示元素后将数据显示。
还包括缓存管理模块,用于负责服务调用和组合两个层面的数据缓存。服务调用层的缓存对象为从单个Web服务获取的全部字段;服务组合层的缓存对象为单个用户从组合服务获取的经过聚合、过滤后的字段。
还包括基础服务模块,用于提供基础的服务,其中包含单点登录服务,用于需要用户认证之后才能抽取数据的用例场景中。
所述插件包括若干标准接口和JSP模板页。
与现有技术相比,本发明具有如下技术优势:
(1)适用于构建大数据量、复杂数据结构的Mashup应用,构建过程中的二次开发无需终端用户参与编程。
(2)在数据层面能够提供个性化的抽取和聚合,允许用户指定感兴趣的Web数据集,系统代为抽取,上升到表示层,也允许用户方便的设定个性化的显示样式和数据显示方式。
(3)应用之间可以根据用户简单设定,产生交互操作,因此能够保证逻辑型Mashup的快速构建。
附图说明
图1a为本发明方法信息集成定制阶段指定Web服务URL的示意图;
图1b为本发明方法信息集成定制阶段指定数据字段的示意图;
图2为本发明方法应用阶段的执行示意图;
图3为本发明方法中数据抽取算法流程图;
图4为本发明系统中输出模块的插件框架示意图;
图5为本发明系统中输出模块的核心类示意图;
图6为本发明实施例个性化输出的效果示意图;
图7为本发明涉及系统的整体架构图。
具体实施方式
以下结合具体实施例和附图对本发明进行详细说明。
本发明方法详细的定制过程如下:用户首先指定Web服务的URL,如图1a所示。假设用户想要的数据都来自一个服务,但是数据跨越多页或者多个RSS文件,用户也可以在这一步指定URL集合——前提是集合中每个URL所标识的服务,提供的数据结构是相同的,该前提确保了系统可以通过一个服务自动产生抽取规则并将之作用于其它服务。典型的应用场景包括:合并指定搜索引擎查询结果的前N页、合并多个新闻订阅等。接下来,系统获得用户输入的首个URL,根据服务类型的不同,自动调用数据抽取器,并利用无指导的数据抽取算法聪服务数据源获取记录集合,将之整理为表格显示给用户。由用户选择从服务数据源获取记录集合,将之整理为表格显示给用户。由用户选择感兴趣的数据字段,如图1b所示,系统据此生成上述URL集合对应的数据源的抽取规则。
上述两步可以重复,系统允许用户聚合多源的Web数据,但用户应保证多源数据之间的可比性,即数据字段结构形同。数据源和抽取规则设置完成后,用户还可以选择添加系统提供的几种过滤器,如:过滤相同记录(基于key值),过滤关键字等,进一步操纵多源数据的整合。
至此,单一Mashup应用定制完成,自动部署到PIIS系统中。这里,名词单一Mashup应用仅仅为了区别于支持交互操作的Mashup应用。用户可以为部署在PIIS中的单一Mashup应用设置可处理事件和可发送事件以及事件的处理过程。总之,PIIS为Mashup应用提供运行环境和互操作的支持,定制完成后,用户可以在任一时刻登录PIIS,方便的访问这一应用,查看最新的汇总信息,还可以同时看到多个应用之间的交互结果。对于单个聚合应用,用户访问将触发系统执行数据集成的流程,该流程分为三个步骤,如图2所示:第一步,系统根据输入服务的类型,自动选用内置的数据抽取器(对应RSS/ATOM、WebPages、XML类型的服务数据源,系统内置不同的数据抽取器),并根据定制产生的抽取规则将从不同数据源得到的数据都整理为记录集合。第二步,系统根据用户定制的过滤器集合处理多源数据的整合结果。最后,系统根据用户选择的输出方式,调用对应的个性化输出插件,为最终结果数据加入显示元素,比如为地图输出的数据加入地理编码,加入显示元素后结果数据被传递到相应的模板页显示给用户端的浏览器。模板页根据用户选择的数据显示方式自动生成,默认内置的模板页包括地图显示模板、列表显示模板、表格显示模板和日历显示模板。
为了实现上述的信息集成方法,本发明提出一种个性化信息集成系统(PIIS),能够极大的方便终端用户快速搭建数据Mashup应用。PIIS系统实现基于门户中间件OncePortal(中科院软件所.网驰平台门户中间件(OncePortal)[EB/OL].(2007).http://www.once.org.cn.)。
PIIS的基础功能——单点登录、访问控制、配置信息管理,均由OncePortal的底层服务提供。PIIS部署的Mashup应用,它们之间的互操作服务也由门户中间件提供(宋靖宇,魏峻,万淑超.门户环境中基于语义数据协作应用集成方法[J].软件学报,2007,18(7):1705-1714.)。
选择门户作为本实施例方法的使用环境,因为门户在应用集成领域的实用性已经得到广泛认可。而且,门户提供了上述多项基础服务,使得发明的实施可以更专注于核心步骤的设计和实现。
系统功能的实现由四个核心模块支持,分别是:服务调用模块、服务组合模块、个性化输出模块和缓存管理模块。服务调用、组合和个性化输出模块存在层次调用关系,数据流由上而下的过程中完成抽取、聚合、过滤以及加入显示元素,并最终整合转化成统一的数据格式,以用户期望的方式输出。为了进一步提升方法的性能,对PIIS改进设计,加入数据缓存和并行处理能力。系统的整体设计采用分层架构,如图7所示。
服务调用模块的主要功能是完成数据的抽取。系统将根据服务类型的不同,自动选用内置的数据抽取器(如图2所示),将从不同数据源得到的数据统一为系统预定义的格式。在定制阶段,抽取器的作用是生成抽取规则。定制完成后,在应用运行阶段,各个抽取器是并行工作的,依据抽取规则将不同源的Web数据取回,传递给服务组合模块。服务组合模块的主要功能是汇总和过滤已抽取的Web数据。原型系统中实现的数据汇总和过滤,以用户为指导,仅考虑了简单的基于关键字的过滤和基于重复键值的过滤,目前不涉及复杂的算法。个性化输出模块设计为插件框架,对应不同的输出方式,自动调用相应插件,从服务组合模块取得数据,分析并加入显示元素(如地图插件会自动给包含位置关键字的数据记录加入相应的地理编码字段)后将数据传至客户端浏览器。
用户定制的信息集成应用部署到系统中后,仅当用户访问这一应用时,才实际进行多源信息的整合,这保证了用户得到的数据是最新的。这个过程以用户请求为驱动,详述如下:首先输出模块向服务组合模块索取数据;服务组合模块将返回可用的缓存数据,如果缓存过期,则首先向服务调用模块请求数据,并对返回的数据进行汇总、过滤,更新缓存。服务调用模块为服务组合提供数据,也是优先使用数据缓存,仅当缓存不可用时,才会并行的调用多个抽取器,抽取器请求指定的Web服务并根据定制生成的抽取规则处理从服务处获取的源数据。最终,输出模块根据用户设定的输出方式将由服务组合模块提供的汇总数据显示给用户。
缓存的引入是为了提高数据整合的效率,如前所述,缓存管理模块负责服务调用和组合两个层面的数据缓存。服务调用层的缓存,缓存对象从单个Web服务获取的全部字段。服务组合层的缓存,缓存的对象为单个用户从组合服务获取的经过聚合、过滤后的字段。
下文将详细阐述方法实施过程和涉及的关键步骤。
验证本发明所采用Mashup应用构建场景描述如下:
以用户需要构建一个应用——使用地图显示他所关心的城市的天气状况为例。数据源用户选用Yahoo的天气服务,但是该服务只允许每次查询一个城市的天气状况。那么如果要建立这样一个地图应用,用户需要重复的查询每个城市天气数据,并依次将数据标记到在线地图上。
为避免手工执行这些重复的查询和标记操作,用户可以在PIIS上定制应用。第一步,指定输入为URL集合(类似http://xml.weather.yahoo.com/forecastrss?p=CHXX0008,可用其他城市的代码替换p参数值)。一旦用户完成一个服务URL的输入,系统会根据服务类型的不同,自动调用相应的数据抽取器,获取从输入URL返回的记录集合,这时候进行的是无指导的数据抽取。系统会将正确识别的记录返回给用户,由用户选择那些记录字段是他感兴趣的,系统将自动为这些字段生成基于XPath的抽取规则,忽略掉用户不感兴趣的字段。
在本应用场景中,假设用户想要的数据都来自Yahoo的天气服务,但是数据跨越多页或者多个RSS文件,因此用户需要在这一步指定URL集合——前提是集合中每个URL所标识的服务。如果有其它更复杂的应用场景,需要重复输入不同服务的URL,则重复一、二过程。
如前所述,信息集成应用在定制阶段,PIIS系统需要支持无指导的数据抽取。因此,PIIS在服务调用模块设计实现了针对不同服务类型的数据抽取算法。
对应新闻、天气这类服务,响应一般是返回RSS格式的数据,因为RSS数据具有固定的XML Schema,处理起来相对容易,伪代码表示如下所示。算法GetDataRecordFromRss(String serviceURL)
输入:服务URL
输出:数据记录集合
1.CreateServiceRequest();
2.Charset=GetResponseCharset();
3.XML=GetResponseString(Charset);
4.XMLDom=XMLParser.parse(XML);
5.DataRecordsList=XMLDom.getRoot()
.getEelement(″channel″).getElements(″item″);
而对应网页类型的Web服务,由于HTML页面是半结构化的,完全自动化、无指导的数据抽取相对复杂,是本方法的研究难点。目前还没有无需人工标注的自动化抽取算法,能够适应任意网页的数据抽取。现有的研究成果中,能够做到完全自动抽取的方法都需要附加一些前提条件(Baumgartner.R,Gatterbauer.W,G.Gottlob.Web data extraction system.In:Encyclopedia of Database Systems 2009):如RoadRunner需要提供同一模板生成的2个页面;DeLa、MDR都要求页面里含有重复模式。
我们首先考察PIIS要集成的Mashup数据源,作为输入的页面,比如:搜索的结果页、商品列表页、送货地址列表页,这类网页大多是利用预定义的模板动态生成的,都存在集中的数据区域。数据区域即包含数据记录的HTML节点集中的页面片段。数据区域的特征是:组成它的每个记录节点的内部结构构成一棵子树,同一个数据区域中的记录节点存在相似的子树结构,即重复模式。
综上,本发明在对要集成的信息的特点进行了分析后,认为基于重复模式的自动化抽取算法有很强的实用性,适用于本发明提出的系统使用场景,不需要多个网页进行就能进行抽取规则的学习。但是,现有的基于重复模式的数据抽取算法,正确率和效率都不够理想,因此,有人提出了MDR的改进算法MDR2(Zhai Yanhong,Liu Bing,Web data extraction based onpartial tree alignment,Proceedings of the 14th international conference on World Wide Web,May10-14,2005.)。
本发明提出的数据抽取算法,总体流程如图4所示。其中,数据区域集合的挖掘算法,是对MDR的改进,受MDR2的启发,使用子树相似度替代字符串的编辑距离聚类数据区域,降低了算法的时间复杂度。MDR2建议使用页面Tag Tree进行子树匹配,而Tag Tree相比DOM树,丢失了显示样式、文本标记等关键信息,因此本发明使用DOM树进行子树匹配,另外,为了提高匹配效率,本发明首先对输入页面做清理。改进后的数据区域的挖掘算法分为两步,解决了实验中发现的MDR2不能正确的抽取不同父节点下的数据记录的问题。
流程的第一步,人为去除无关节点(<head>、<script>、<style>等,去除无关节点的主要目的是对输入页面做清理从而提高算法效率)后的页面可以表示为Dom树T,T包含根节点R。数据区域集合挖掘算法FindDRSet作用于T,从根节点R开始,自顶向下逐层对每个节点N的子节点C1,C2,…进行基于相似度的聚类,认为以C1,C2,…为根的子树,如果两两之间的相似度超过了阈值(本发明中使用0.6作为相似度阈值),则可认为C1,C2,…节点是包含重复结构的记录节点,那么N就是候选的数据区域的根节点。这个过程按照广度搜索T,一旦C1,C2,…被确定为是记录节点,不再对其下层子节点聚类。
相似度的计算公式如下:
其中T(Node)表示以Node为根节点的子树,Size函数求的是子树的结点个数。
WeightedTreeMatching(WTM)是对用于比较两段程序的算法Simple_Tree_Matching(WuYang.Identifying Syntactic Differences Between Two Programs[J].Software-practice andExperience 1991,21(7):739-755.)的改进。Simple_Tree_Matching,下文简称STM,算法的思想是用动态规划方法计算两棵树的最大匹配结点个数,进而得到两颗树间的相似度——整数值。WTM对原算法的改进假设是,认为在计算相似度时,深度越大的节点(最大为叶节点)应该被赋予高权值,这是因为,这些节点包含明显特征的可能性更大,可以被用来确定树的相似性,实验结果也证实了这一假设的正确性。WTM计算得到的相似度是一个浮点数,算法描述如下所示,其中对M、A、B等变量的描述同STM算法。
算法WeightedTreeMatching(A,B,depth)
输入:子树A,B,树A/B根节点的树深
输出:A,B的相似度
//Initialized depth is 0
1.if(!isNodeValueEqual(A.root,B.root))return 0.0.
2.m:xthe number of first-level subtrees of A.
3.n:=the number of first-level subtrees of B.
4.Initialization,
M[i,0]:=0 for i=0,...,m.
M[0,j]:=0 for j=0,...,n.
5.for i:=l to m d o{
6. for j:=l to n do{
7. M[i,j]:=max(M[i,j-1],M[i-1,j],
M[i-l,j-1]+W[i,j])
8. where W[i,j]=WeightedTreeMatching(Ai,Bj,depth+1)
9. where Ai and Bj are the i th and j th first-level subtrees of A and B,respectively.
10. }//end j loop
11.}//end i loop
12.return(M[m,n]+pow(FACTOR,depth)).
//FACTOR as weight here is 1.2
第二步,在第一步找出的N的节点集合上,做层次聚类,相似度的计算公式同上。因为,第一步使用的WTM是一个受限的匹配算法,这个算法中不允许跨层匹配,所以只能找到父节点相同的记录节点。但是有可能存在正确的记录集合,它们对应的父节点不同,为了找出这部分记录集合,步骤二是必须的。
大部分的网页使用上述数据区域集合挖掘算法,会得到唯一的数据区域,比如:百度、Google的搜索页面。但是,部分网页,可能存在数据区域的干扰项,比如购物网站的产品搜索结果页面,广告区域、商品分类信息等页面区域也可能被识别为数据区域。因此需要进行数据区域的进一步判断,计算各个候选数据区域的Rank,取值最大的认为是正确的数据区域。得到正确的数据区域的同时,产生了数据记录集合。假设,N1为数据区域的记录条数,N2为包含长文本节点的数据记录的条数,长度阈值为15,HerfRadio为数据区里含有超链接的记录数与N1的比率,则Rank的计算公式为:
其中,N1为该数据区域的记录条数,N2为该数据区里含有长文本节点的数据记录的条数,长度阈值为15,HerfRadio为该数据区里含有超链接的记录数与N1的比率。得到正确的数据区域的同时,产生了数据记录集合。
为了应对缺失字段和多值字段的问题,记录集合还需要执行简单的字段对齐操作,实现参考了论文(Mohammed Kayed,Chang Chia-Hui,FiVaTech:Page-Level Web Data Extractionfrom Template Pages,IEEE Transactions on Knowledge and Data Engineering,vol.22,no.2,pp.249-263.)中3.2章节的对齐算法,以此保证抽取完成后的数据记录是相同结构的。
由上述数据记录得到的对应字段的XPath,即可为每个URL的每个字段生成抽取规则。规则确立后,单个数据Mashup应用的定制过程结束,新的应用会自动部署到系统中。用户访问PIIS上的新应用,系统自动抽取得到显示数据,在此场景下为全国各地的天气状况。系统默认是以简单列表显示结果数据,用户也可以选择将显示方式设定为地图。显然,地图显示方式的定制,使得信息的展示更直观、清晰,效果图如图6所示,一个简单的示例Mashup应用搭建完成。用户可以通过任意的浏览器访问这一应用,查看地图上标记的汇总后的天气数据。
要实现用户对不同数据显示方式的定制,PIIS设置了个性化输出模块。个性化输出模块的工作方式如下:系统根据用户设定的输出方式,创建对应的个性化输出插件,为系统自动抽取、过滤、汇总得到的数据加入显示元素,比如为地图输出的数据加入地理编码字段,最后结果数据被传递到相应的显示模板页显示给用户,默认内置的模板页有地图、列表等。该模块采用插件框架进行设计和实现。插件框架包括两个部分:控制程序和插件,如图4所示。本模块几个核心类的定义见图5。
个性化输出模块中控制程序的执行流程是:一,读取用户配置文件,得到输出方式,比如表格输出;二,调用工厂方法获得输出方式对应的插件实例;三,调用插件的接口方法,传入数据,并得到加入显示元素后的HTML片段,将该片段返回给客户端。插件可以自由扩展,插件的作用是对应不同的输出样式,生成不同显示效果的HTML代码。在本发明的实现中,为方便上述HTML代码的生成,插件除了要实现若干标准接口,还包括一个JSP模板页。
每个输出插件都必须按照一定的标准定义,实现接口类OutputPlugin。OutputPlugin包含两个重要的方法:render和getDispTemplate。render方法接收服务组合模块输出的数据,将数据发送至与插件绑定的模板页。如果是地图或者日历等特殊格式输出,render方法还需要对传入的数据记录进行分析,识别其中与位置、日期相关的文本关键字,并向传入的原始数据中加入关键字对应的显示数据,再统一发送至模板页,比如根据城市关键字为地图输出的数据加入地理编码、为日历输出的数据加入格式化的日期字段等。getDispTemplate方法的功能相对直观,就是获取与插件绑定的模板页的URL。以系统内置的地图输出插件为代表,说明OutputPlugin接口的实现方式,MapOutputPlugin的核心代码表示如下所示:
public class MapOutputPlugin implements OutputPlugin{
//接口方法的实现,返回对应的JSP模板页
public String getDispTemplate(){...}
//接口方法的实现
public void render(...){...
/*得到JSON表示的包含显示元素(地理坐标)
的数据,传回给客户端*/
String strJson=getJsonString(datas);
renderRequest.getPortletSession(true)
.setAttribute(″dataJson″,strJson);
...}
private String getJsonString
(Vector<Vector<String>>datas){
/*拼接JSON字符串,其中point的信息通过
getGeoPoint函数获取,jsonString示例
[{address:′北京′,
infoHtml:′<h2>简介</h2><br><h3>北京</h3>′,
point:{x:116.408198,y:39.904667}}]*/
...}
private String getGeoPoint(String address,GPoint point){
/*查询本地已建立的地理信息数据库,
返回address对应的地理坐标*/
...}
}//end class
个性化输出模块预置了列表、表格、地图、日历4个输出插件,都实现了OutputPlugin接口。这四种信息输出方式能够基本满足用户最常用的数据使用需求:信息监控(监控当前股价、显示当日新闻等)和信息比较(比较不同日期的机票价格等)。PIIS允许用户自定义输出插件的功能和样式。
综上,以上实例证实了系统的可用性,验证了本发明提出的一种可定制的Web数据的Mashup方法是可行的。
在本发明方法中,为了方便、快速的创建Mashup应用,设计了PIIS(PersonalizedInformation Integration System)个性化Web信息集成系统。终端用户可以通过简单的设定向导,在该系统上定制Mashup应用。定制完成后,应用将自动部署到系统中。用户访问这一应用时,系统将智能地根据用户设定进行多源数据(数据格式可以是RSS、ATOM、XML和Web页面)的合并、过滤,产生汇总的信息供用户查看。
PIIS的目标是引导用户简单、快捷地定制数据Mashup应用,并提供Mashup应用的运行环境,应用成功运行后,将从多个数据源获取用户感兴趣的数据,并选择最直观清晰的方式将汇总数据展示给用户。PIIS解决了如下问题:
第一,满足快速创建信息集成应用和终端用户参与指导创建的需求,以适应用户需求的多样性。
第二,通过在系统中引入数据集成的处理流程,复用已有Web服务,通过数据抽取、合并、过滤等用户定制操作得到高质量、综合性信息。
第三,系统包含单点登录模块,服务如果需要用户认证或包含Session信息,系统将自动代替用户登录以确保信息集成的连续性。
第四,系统设计实现了个性化输出插件,允许用户在应用部署完成后,选择结果数据显示方式(可以是列表、表格、地图等)。
PIIS与Yahoo Pipies和比价系统ShopBot(Robert B.D,Oren E,and Daniels.W.A scalablecomparison shopping agent for the World-Wide Web[C].In proceedings of the First InternationalConfence onAutonomous Agents,1997.)相比,适用更广泛的数据源类型和应用领域,并提供UI定制和应用之间的互操作支持;与ASByE和Lixto相比,优势在于无需用户手工一一录入数据抽取的规则,整个Mashup应用的创建和部署、运行,都是系统自动完成的。
Claims (10)
1.一种可定制的Web信息集成方法,包括以下步骤:
1)由用户指定不同服务数据源的URL集合;
2)根据服务数据源类型的不同,使用数据抽取器从服务数据源获取记录集合,由用户指定数据字段,生成对应数据源的抽取规则;
3)根据上述生成的抽取规则从不同数据源获取数据并整理为结果记录集合;
4)使用过滤器过滤结果记录集合,将集成数据输出显示。
2.如权利要求1所述的方法,其特征在于,所述步骤1)每个URL所标识的服务,提供的数据结构是相同的。
3.如权利要求1所述的方法,其特征在于,所述步骤2)生成抽取规则后,进一步使用过滤器进行过滤。
4.如权利要求1所述的方法,其特征在于,所述步骤2)数据抽取器利用无指导的数据抽取算法从服务数据源获取记录集合。
5.如权利要求1所述的方法,其特征在于,所述步骤3)采用的数据抽取算法,包括步骤:
5-1)去掉服务数据源页面上无关的节点后表示为dom树,使用数据区域集合挖掘算法作用于dom树;
5-2)在找出的节点集合上做层次聚类;
5-3)计算数据区域的rank值,取值最大的为正确数据区域。
6.如权利要求1或3所述的方法,其特征在于,所述过滤器为基于关键字的过滤或基于重复键值的过滤。
7.一种可定制的Web信息集成系统,其特征在于,包括服务调用模块、服务组合模块、个性化输出模块,其中:
所述服务调用模块包括内置的数据抽取器,该模块根据服务数据源类型的不同,自动调用内置的数据抽取器,将从不同数据源得到的数据统一整理为Web数据记录集合,传递给服务组合模块;
所述服务组合模块包括过滤器,用于汇总和过滤已抽取的Web数据;
所述输出模块设包括不同输出方式的插件,该模块从服务组合模块取得数据并调用相应插件,分析并加入显示元素后将数据显示。
8.如权利要求7所述的系统,其特征在于,还包括缓存管理模块,用于负责服务调用和组合两个层面的数据缓存,服务调用层的缓存对象为从单个Web服务获取的全部字段;服务组合层的缓存对象为单个用户从组合服务获取的经过聚合、过滤后的字段。
9.如权利要求7所述的系统,其特征在于,还包括基础服务模块,用于提供基础的服务,其中包含单点登录服务,用于需要用户认证之后才能抽取数据的用例场景中。
10.如权利要求7所述的系统,其特征在于,所述插件包括若干标准接口和JSP模板页。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010554432 CN102004777B (zh) | 2010-11-19 | 2010-11-19 | 一种可定制的Web信息集成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010554432 CN102004777B (zh) | 2010-11-19 | 2010-11-19 | 一种可定制的Web信息集成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102004777A true CN102004777A (zh) | 2011-04-06 |
CN102004777B CN102004777B (zh) | 2013-03-27 |
Family
ID=43812139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010554432 Expired - Fee Related CN102004777B (zh) | 2010-11-19 | 2010-11-19 | 一种可定制的Web信息集成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102004777B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760151A (zh) * | 2012-04-05 | 2012-10-31 | 中国人民解放军国防科学技术大学 | 开源软件获取与搜索系统的实现方法 |
CN102799634A (zh) * | 2012-06-26 | 2012-11-28 | 中国农业银行股份有限公司 | 数据存储方法及装置 |
CN103166936A (zh) * | 2011-12-15 | 2013-06-19 | 中国移动通信集团公司 | 一种用于提供第三方能力的系统、开放装置和方法 |
CN103246719A (zh) * | 2013-04-27 | 2013-08-14 | 北京交通大学 | 一种基于Web的网络信息资源整合方法 |
CN104462348A (zh) * | 2014-12-05 | 2015-03-25 | 无锡城市云计算中心有限公司 | 一种数据抽取的方法及装置 |
CN104615435A (zh) * | 2015-02-11 | 2015-05-13 | 浪潮通用软件有限公司 | 一种实现数据向导的方法和装置 |
CN105095525A (zh) * | 2015-09-28 | 2015-11-25 | 北京奇虎科技有限公司 | 获取网页页面数据的方法及装置 |
WO2016045542A1 (zh) * | 2014-09-26 | 2016-03-31 | 阿里巴巴集团控股有限公司 | 数据可视化的实现方法及装置 |
CN105786912A (zh) * | 2014-12-25 | 2016-07-20 | 远光软件股份有限公司 | 数据采集转换方法及装置 |
CN104915238B (zh) * | 2015-06-29 | 2018-03-30 | 中国科学院软件研究所 | 一种Web应用的配置参数关联确定方法 |
CN108268260A (zh) * | 2017-12-21 | 2018-07-10 | 博康智能信息技术有限公司 | 一种基于一体化支撑技术的快速微应用组装方法 |
CN110321177A (zh) * | 2019-06-18 | 2019-10-11 | 北京奇艺世纪科技有限公司 | 一种移动应用本地化加载方法、装置及电子设备 |
CN110580258A (zh) * | 2019-09-20 | 2019-12-17 | 中国银行股份有限公司 | 大数据自由查询方法及装置 |
CN110968742A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 数据过滤方法和装置 |
CN111159592A (zh) * | 2019-12-16 | 2020-05-15 | 百度在线网络技术(北京)有限公司 | 搜索结果页生成方法、装置、电子设备及存储介质 |
CN111680327A (zh) * | 2020-06-10 | 2020-09-18 | 中国银行股份有限公司 | 基于区块链的客户信息整合方法、装置、设备及存储介质 |
CN111989699A (zh) * | 2018-01-29 | 2020-11-24 | 微软技术许可有限责任公司 | 日历感知的资源检索 |
CN115168714A (zh) * | 2022-07-07 | 2022-10-11 | 中国测绘科学研究院 | 一种Web API数据抽取方法及装置 |
CN116432871A (zh) * | 2023-06-13 | 2023-07-14 | 北京化工大学 | 一种基于AdaBoost算法的公交调度优化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488151A (zh) * | 2009-01-20 | 2009-07-22 | 中国科学院计算技术研究所 | 一种聚合Web站点内容的系统和方法 |
CN101789973A (zh) * | 2010-02-05 | 2010-07-28 | 中兴通讯股份有限公司 | 一种构建糅合应用的方法及系统 |
-
2010
- 2010-11-19 CN CN 201010554432 patent/CN102004777B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488151A (zh) * | 2009-01-20 | 2009-07-22 | 中国科学院计算技术研究所 | 一种聚合Web站点内容的系统和方法 |
CN101789973A (zh) * | 2010-02-05 | 2010-07-28 | 中兴通讯股份有限公司 | 一种构建糅合应用的方法及系统 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166936B (zh) * | 2011-12-15 | 2016-01-27 | 中国移动通信集团公司 | 一种用于提供第三方能力的系统、开放装置和方法 |
CN103166936A (zh) * | 2011-12-15 | 2013-06-19 | 中国移动通信集团公司 | 一种用于提供第三方能力的系统、开放装置和方法 |
CN102760151A (zh) * | 2012-04-05 | 2012-10-31 | 中国人民解放军国防科学技术大学 | 开源软件获取与搜索系统的实现方法 |
CN102760151B (zh) * | 2012-04-05 | 2015-02-25 | 中国人民解放军国防科学技术大学 | 开源软件获取与搜索系统的实现方法 |
CN102799634A (zh) * | 2012-06-26 | 2012-11-28 | 中国农业银行股份有限公司 | 数据存储方法及装置 |
CN102799634B (zh) * | 2012-06-26 | 2014-11-12 | 中国农业银行股份有限公司 | 数据存储方法及装置 |
CN103246719A (zh) * | 2013-04-27 | 2013-08-14 | 北京交通大学 | 一种基于Web的网络信息资源整合方法 |
CN103246719B (zh) * | 2013-04-27 | 2016-03-09 | 北京交通大学 | 一种基于Web的网络信息资源整合方法 |
WO2016045542A1 (zh) * | 2014-09-26 | 2016-03-31 | 阿里巴巴集团控股有限公司 | 数据可视化的实现方法及装置 |
CN104462348A (zh) * | 2014-12-05 | 2015-03-25 | 无锡城市云计算中心有限公司 | 一种数据抽取的方法及装置 |
CN105786912A (zh) * | 2014-12-25 | 2016-07-20 | 远光软件股份有限公司 | 数据采集转换方法及装置 |
CN105786912B (zh) * | 2014-12-25 | 2019-05-10 | 远光软件股份有限公司 | 数据采集转换方法及装置 |
CN104615435A (zh) * | 2015-02-11 | 2015-05-13 | 浪潮通用软件有限公司 | 一种实现数据向导的方法和装置 |
CN104915238B (zh) * | 2015-06-29 | 2018-03-30 | 中国科学院软件研究所 | 一种Web应用的配置参数关联确定方法 |
CN105095525A (zh) * | 2015-09-28 | 2015-11-25 | 北京奇虎科技有限公司 | 获取网页页面数据的方法及装置 |
CN108268260A (zh) * | 2017-12-21 | 2018-07-10 | 博康智能信息技术有限公司 | 一种基于一体化支撑技术的快速微应用组装方法 |
CN111989699A (zh) * | 2018-01-29 | 2020-11-24 | 微软技术许可有限责任公司 | 日历感知的资源检索 |
CN110968742A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 数据过滤方法和装置 |
CN110321177A (zh) * | 2019-06-18 | 2019-10-11 | 北京奇艺世纪科技有限公司 | 一种移动应用本地化加载方法、装置及电子设备 |
CN110321177B (zh) * | 2019-06-18 | 2022-06-03 | 北京奇艺世纪科技有限公司 | 一种移动应用本地化加载方法、装置及电子设备 |
CN110580258A (zh) * | 2019-09-20 | 2019-12-17 | 中国银行股份有限公司 | 大数据自由查询方法及装置 |
CN110580258B (zh) * | 2019-09-20 | 2022-05-17 | 中国银行股份有限公司 | 大数据自由查询方法及装置 |
CN111159592B (zh) * | 2019-12-16 | 2021-12-24 | 百度在线网络技术(北京)有限公司 | 搜索结果页生成方法、装置、电子设备及存储介质 |
CN111159592A (zh) * | 2019-12-16 | 2020-05-15 | 百度在线网络技术(北京)有限公司 | 搜索结果页生成方法、装置、电子设备及存储介质 |
CN111680327A (zh) * | 2020-06-10 | 2020-09-18 | 中国银行股份有限公司 | 基于区块链的客户信息整合方法、装置、设备及存储介质 |
CN111680327B (zh) * | 2020-06-10 | 2024-02-23 | 中国银行股份有限公司 | 基于区块链的客户信息整合方法、装置、设备及存储介质 |
CN115168714A (zh) * | 2022-07-07 | 2022-10-11 | 中国测绘科学研究院 | 一种Web API数据抽取方法及装置 |
CN115168714B (zh) * | 2022-07-07 | 2023-11-10 | 中国测绘科学研究院 | 一种Web API数据抽取方法及装置 |
CN116432871A (zh) * | 2023-06-13 | 2023-07-14 | 北京化工大学 | 一种基于AdaBoost算法的公交调度优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102004777B (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102004777B (zh) | 一种可定制的Web信息集成方法及系统 | |
CN101488151B (zh) | 一种聚合Web站点内容的系统和方法 | |
Hyvönen | Semantic portals for cultural heritage | |
CN1841376B (zh) | 对网络表单的数据驱动动作 | |
US20120054143A1 (en) | Systems and methods for rule based inclusion of pixel retargeting in campaign management | |
Antonyuk et al. | Online tourism system development for searching and planning trips with user’s requirements | |
JP2008123547A (ja) | 半構造化情報の照会および解釈を構造化する方法および装置 | |
CN110175192A (zh) | 一种基于主题序列模式的旅游产品推荐方法 | |
US11422984B2 (en) | Clustering within database data models | |
Trinh et al. | Linked widgets: An approach to exploit open government data | |
Baiskar et al. | MERN: A Full-Stack Development | |
Roy et al. | Discovery layer in library retrieval: VuFind as an open source service for academic libraries in developing countries | |
US20100121830A1 (en) | Identifying screen flows to support multiple entities and their diverse rules with a single application instance | |
Uvidia Fassler et al. | Moving towards a methodology employing knowledge discovery in databases to assist in decision making regarding academic placement and student admissions for universities | |
Burrows | Connecting medieval and renaissance manuscript collections | |
Xiao et al. | An automatic approach for extracting process knowledge from the Web | |
Kokolaki et al. | Facetize: An interactive tool for cleaning and transforming datasets for facilitating exploratory search | |
CN101727485A (zh) | 一种基于聚焦搜索的wsdl搜集方法 | |
Siricharoen | Learning semantic web from e-tourism | |
US9208224B2 (en) | Business content hierarchy | |
Lingam et al. | Supporting end-users in the creation of dependable web clips | |
Albhbah et al. | Using RuleML and database metadata for automatic generation of web forms | |
Kumar et al. | Web data mining using xML and agent framework | |
Goehring et al. | A knowledge-based system approach for extracting abstractions from service oriented architecture artifacts | |
Borke | Dynamic Clustering and Visualization of Smart Data via D3-3D-LSA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130327 |