CN101571860A - 动态网页生成方法和装置、提取结构化数据的方法和装置 - Google Patents

动态网页生成方法和装置、提取结构化数据的方法和装置 Download PDF

Info

Publication number
CN101571860A
CN101571860A CNA2008100934932A CN200810093493A CN101571860A CN 101571860 A CN101571860 A CN 101571860A CN A2008100934932 A CNA2008100934932 A CN A2008100934932A CN 200810093493 A CN200810093493 A CN 200810093493A CN 101571860 A CN101571860 A CN 101571860A
Authority
CN
China
Prior art keywords
metamessage
tuple
descriptive statement
print
finger
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.)
Pending
Application number
CNA2008100934932A
Other languages
English (en)
Inventor
俞益琴
肖文鹏
迟长燕
赵石顽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CNA2008100934932A priority Critical patent/CN101571860A/zh
Publication of CN101571860A publication Critical patent/CN101571860A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种动态网页生成方法和装置、以及从动态网页中提取结构化数据的方法和装置。根据本发明的动态网页生成方法包括:分析源代码以生成句元流;根据语法规则对句元流进行匹配,以找到匹配的源代码块;以及对匹配的源代码块添加相应类型的元信息。根据本发明的从动态网页中提取结构化数据的方法包括下列处理步骤中的至少一个:根据HTTP响应中的网页布局元信息将网页内容划分成多个片段并将噪声片段去除;根据HTTP响应中的结构流元信息检测网页内容中包含的有用信息的重复模式,以便提取所述有用信息;以及根据HTTP响应中的程序对象元信息对网页内容进行解析并提取最小语义单位的数据。

Description

动态网页生成方法和装置、提取结构化数据的方法和装置
技术领域
本发明涉及互联网技术,更具体地说本发明涉及动态网页生成方法和装置、以及从动态网页中提取结构化数据的方法和装置。
背景技术
随着计算机和互联网技术的发展,万维网(World Wide Web)已经成为公开各种类型和各种形式的信息的主要形式之一,其数量呈爆炸式增长,格式灵活多样,并且在不断动态更新。因此可以毫不夸张地说,网络已经淹没在信息的海洋中并且即将面临着信息过剩的困境。结果,网络用户在与网络交互时遇到了很多困难,比如很难有效地找到期望的相关信息。另外,对于网络用户来说,从网络上可以利用的信息创建新的知识也是极不便利的。
鉴于上述原因,开发出了诸如Google和百度之类的搜索引擎,从而为用户提供了一种在网络上搜索有用信息的界面。另外,对于低粒度的信息检索,开发出了网络挖掘技术并将其用于从网络中检索信息。网络挖掘技术目前常用的包括例如信息检索(information retrieval,IR)、信息提取(information extraction,IE)、以及数据挖掘(data mining,DM)等等,用以从网络中检索对象层级的内容。但是,由于网络中信息的组织模式的原因,导致了比如计算机的机器自动地高效完成这些任务非常困难。
网络上所公开的文档通常称作网页,其一般都是用称作HTML的语言来进行公开,而HTML为文档的格式规定了标准格式。虽然以HTML格式呈现对于阅读者来说非常便利,但是从HTML文档中进行信息检索以便进行自动化处理则非常困难。例如,网页中的导航(菜单)信息和广告导致搜索引擎的结果中出现大量垃圾信息,这些噪声信息也会导致网络挖掘的精度下降。
因此,非常需要一种能够从网页中检索和提取有用的相关信息的技术,以便将网络中用户不期望的诸如广告的垃圾信息过滤掉,从而提高网络的利用效率。
发明内容
鉴于上述情况,本发明提供一种动态网页生成方法和装置、以及从动态网页中提取结构化数据的方法和装置,通过分析动态网页并从中检索和提取有用的相关信息,避免索引诸如网页中的广告区域和导航条之类的噪声数据来帮助搜索引擎优化其搜索结果。
本发明还提供一种动态网页生成方法和装置、以及从动态网页中提取结构化数据的方法和装置,通过分析动态网页并从中检索和提取有用的相关信息,在网络挖掘中从非结构化的网页中提取结构化的数据,从而有效地扩展数据库。
根据本发明的一个方面,提供一种动态网页生成方法,包括:分析源代码以生成句元流;根据语法规则对句元流进行匹配,以找到匹配的源代码块;以及对匹配的源代码块添加相应类型的元信息。
优选地,该动态网页生成方法还包括,在分析源代码之前解析HTTP请求。如果HTTP请求为请求用于浏览器的网页,则生成没有添加所述元信息的HTTP响应;而如果HTTP请求中包含提取网页中的数据的请求,则生成添加有所述元信息的HTTP响应。
根据本发明的另一个方面,提供一种动态网页生成装置,包括:代码分析器,用于对源代码进行分析,以生成句元流;句元匹配器,用于根据语法规则对代码分析器生成的句元流进行匹配,以找到匹配的源代码块;以及元信息添加单元,用于对句元匹配器输出的匹配的源代码块添加相应类型的元信息。
优选地,该动态网页生成装置还包括HTTP请求解析器,用于解析HTTP请求,以确定HTTP请求中是否包含提取网页中的数据的请求;以及HTTP响应生成器,如果HTTP请求为请求用于浏览器的网页,则生成没有添加所述元信息的HTTP响应,而如果HTTP请求中包含提取网页中的数据的请求,则生成添加有所述元信息的HTTP响应。
根据本发明的优选实施例,元信息包括用于表示网页布局的网页布局元信息、用于表示源代码的编程结构的结构流元信息、以及用于表示程序中的编程对象的程序对象元信息中的至少一种。
根据本发明的再一个方面,提供一种从动态网页中提取结构化数据的方法,包括:接收添加有元信息的HTTP响应;根据HTTP响应中的元信息对网页内容进行处理,其中所述处理包括以下处理中的一种或多种:根据HTTP响应中的网页布局元信息将网页内容划分成多个片段并将噪声片段去除;根据HTTP响应中的结构流元信息检测网页内容中包含的有用信息的重复模式,以便提取所述有用信息;以及根据HTTP响应中的程序对象元信息对网页内容进行解析并提取最小语义单位的数据。
优选地,该从动态网页中提取结构化数据的方法还包括:在HTTP请求中设置用于数据提取的标记;发送设置有所述用于数据提取的标记的HTTP请求;以及接收添加有元信息的HTTP响应。
根据本发明的又一个方面,提供一种从动态网页中提取结构化数据的装置,包括用于接收添加有元信息的HTTP响应的装置;用于根据HTTP响应中的元信息对网页内容进行处理的装置,包括以下部件的一个或多个:片段提取器,用于根据HTTP响应中的网页布局元信息将网页内容划分成多个片段并将噪声片段去除;模式检测器,用于根据HTTP响应中的结构流元信息检测网页内容中包含的有用信息的重复模式,以便提取所述有用信息;以及数据生成器,用于根据HTTP响应中的程序对象元信息对网页内容进行解析并提取最小语义单位的数据。
优选地,该从动态网页中提取结构化数据的装置还包括浏览器仿真器,用于在HTTP请求中设置用于数据提取的标记、发送设置有所述用于数据提取的标记的HTTP请求、以及接收添加有元信息的HTTP响应。
根据本发明的一个优选实施例,网页布局元信息包括起始描述语句和结束描述语句。起始描述语句的主体部分为元素元组(id,weight,finger-print),该元组的第一个元素id为该布局元信息的标识符,该元组的第二个元素weight是该布局区域的权重信息并且权重值的大小表示该区域的重要程度,以及该元组的第三个元素finger-print是该布局区域的指纹,其包含从程序代码片段中摘录的有价值的元信息;以及结束描述语句的主体部分为包括所述id元素的元素元组(id)。
根据本发明的另一个优选实施例,结构流元信息包括起始描述语句和结束描述语句。起始描述语句的主体部分为元素元组(id,index,instruction,finger-print),该元组的第一个元素id为该结构流元信息的标识符,该元组的第二个元素index表示循环指令所产生的重复元信息的索引,该元组的第三个元素instruction表示该区域中的内容是在编程语言的何种指令下产生的,以及该元组的第四个元素finger-print是该结构流元信息的指纹,其包含从程序代码片段中摘录的有价值的元信息;以及结束描述语句的主体部分为包括所述id元素和所述index元素的元素元组(id,index)。
根据本发明的再一个优选实施例,程序对象元信息包括起始描述语句和结束描述语句。起始描述语句的主体部分为元素元组(id,finger-print),该元组的第一个元素id为该程序对象元信息的标识符,该元组的第二个元素finger-print是该程序对象流元信息的指纹,其包含该程序对象的相关变量的信息;以及结束描述语句的主体部分为包括所述id元素的元素元组(id)。
另外,本发明还提供用于实现上述动态网页生成方法和从动态网页中提取结构化数据的方法的计算机程序。
此外,本发明也提供至少计算机可读介质形式的计算机程序产品,其上记录有用于实现上述动态网页生成方法和从动态网页中提取结构化数据的方法的计算机程序代码。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。在附图中,相同的或对应的技术特征或部件将采用相同或对应的附图标记来表示。
图1示出了可实现本发明的分布式数据处理系统的方框图。
图2示出了根据本发明实施例的分布式数据处理系统中的服务器和客户端计算机的结构方框图。
图3示出了根据本发明实施例的网页布局元信息的应用示意图。
图4示出了根据本发明实施例的结构流元信息的应用示意图。
图5示出了根据本发明实施例的程序对象元信息的应用示意图。
图6示出了根据本发明实施例的图2中所示的元信息添加器的结构方框图。
图7示出了根据本发明实施例的结构化数据提取方法的总体流程图。
具体实施方式
下面参照附图来说明本发明的实施例。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
现在参考附图,特别是图1,首先描述可实现本发明的分布式数据处理系统的原理框图。分布式数据处理系统100是可实现本发明的计算机网络。分布式数据处理系统100包含网络102,网络102是用于在不同的设备和分布式数据处理系统100内连接到一起的计算机之间提供通信链接的媒介。
在所描述的例子中,服务器104与存储器106一起连接到网络102。此外,例如工作站、个人计算机、手机、PDA等的客户端108、110和112也被连接到网络102。在所描述的例子中,服务器104向客户端108、110和112提供诸如引导文件、操作系统以及应用程序之类的数据。分布式数据处理系统100可包括另外的服务器、客户端以及其它未显示的设备。在所描述的例子中,分布式数据处理系统100是因特网,网络102表示对使用TCP/IP协议套件来彼此通信的网络以及网关的集合。处于因特网心脏的是位于主节点或者主机计算机之间的高速数据通信线路中枢,其包含数以千计的用于路由数据和消息的商业、政府、教育以及其它计算机系统。当然,分布式数据处理系统100还可被实现为不同类型的网络,例如企业内部网、局域网(LAN)或者广域网(WAN)等。
企图将图1作为例子,而不是作为本发明所述过程的结构限制。在不偏离本发明精神和范围的条件下,可对图1所示系统作出许多更改。
本发明可实现为如图1所示的服务器104的数据处理系统。该数据处理系统可以是包括连接到系统总线的多个处理器的对称对处理器(SMP)系统,亦可使用单处理器系统。本发明亦可实现为图1中客户端计算机108、110和112的数据处理系统。
图2具体示出了根据本发明实施例的分布式数据处理系统中的服务器和客户端计算机的结构方框图。
如图2所示,根据该实施例的分布式数据处理系统包括服务器200、网络300和客户端400。服务器200主要包括HTTP请求解析器210、元信息添加器220和HTTP响应生成器230。客户端400则主要包括浏览器410和数据提取器420,其中数据提取器420包括浏览器仿真器422、片段提取器424、模式检测器426和数据生成器428。
通常情况下,在客户端400用户可以通过网络浏览器410向服务器200发送HTTP请求。当网络服务器200接收到该HTTP请求时,HTTP请求解析器210开始解析该HTTP请求并提供内容和信息给HTTP响应生成器230。然后HTTP响应生成器230发送通常包括用户所请求的HTML文档的HTTP响应给客户端400的网络浏览器410,从而使得用户能够在客户端400上浏览网络浏览器410所接收到的网页。
另一方面,根据本发明,对于诸如网页挖掘的进一步应用,在客户端400中新增加了数据提取器420,相应地在服务器200中则新增加了元信息添加器220。
数据提取器420中的浏览器仿真器422用于仿真网络浏览器并发送添加有数据提取标记的HTTP请求给服务器200。在服务器200一侧,当HTTP请求解析器210收到带有数据提取标记的HTTP请求时,则在上面所述的HTTP请求解析器210的处理和HTTP响应生成器230的处理之间,触发元信息添加器220添加描述性的元信息到HTML文档,即网页中。之后,HTTP响应生成器230将添加有元信息的HTTP响应发送回客户端400处的数据提取器420。
对于元信息,根据本发明的实施例,至少可以添加以下三种形式的元信息中的一种或者多种:网页布局元信息、结构流元信息、以及程序对象元信息。这些元信息的具体内容将在下文中详细描述。
在收到添加有元信息的HTTP响应之后,数据提取器420中的片段提取器424根据网页布局元信息将所接收到的HTTP响应中的网页内容划分成多个片段并将其中的噪声片段去除。接着,模式检测器426根据结构流元信息检测片段提取器424所提取的网页内容的剩余片段中总是包含有用信息的重复模式。最后,数据生成器428根据程序对象元信息对模式检测器426所检测的重复模式进行解析并提取最小语义单位的数据,以便将来进一步处理和应用。
虽然在根据本发明的该实施例中描述了数据提取器420包括片段提取器424、模式检测器426和数据生成器428,用于分别根据不同的元信息来对所接收到的HTTP响应进行递进的相应处理,从而分别得到必要的信息和数据。但是,本领域的技术人员应当理解,在不同的实施例中数据提取器420也可以仅包括片段提取器424、模式检测器426和数据生成器428中的任意一个或任意两个,以达到不同的预期结果,生成不同的预期数据。当然,如果服务器200所发送的元信息还包括其它类型的元信息,则数据提取器420也可以针对性地配置相应类型的处理部件,在这里不再一一详细描述。
下面将分别详细描述根据本发明实施例的网页布局元信息、结构流元信息、以及程序对象元信息。
网页布局元信息
几乎每一个网络应用均具有多于一页的网页,因此采用了称作网页布局的技术来使这些同一个网络应用的网页页面风格保持一致或者使用相同的页面布局。例如,在J2EE应用中如下面所示的程序来编写JSP是经常采用的方法。
  <html><head></head><body><jsp:include page=″/layout/header.jsp″/>Page content here.<jsp:include page=″/layout/footer.jsp″/></body></html>
现代框架(modern framework),比如用于Java语言的Tiles和SiteMesh、用于Ruby语言的Ruby on Rails等,提供了更加先进的特征以便例如以下面的方式对网页进行修饰(decorate)。
  <html><head></head><body><decorator:header/><decorator:body/><decorator:footer/></body></html>
由传统技术对上面的示例程序进行编译解释后最终生成的HTML文档例如简单示例如下。而实际情况中所生成的网页其每一部分都非常复杂,而且相互之间彼此联系极少。
  <html><head></head><body><div id=”header”><b><i>This is header.</i></b><div>Page content here.<div id=”footer”><b><i>This is footer.</i></b></div></body></html>
可以清楚地看出由header.jsp和footer.jsp所生成的内容、或者由<decorator:header>和<decorator:footer>所生成的内容仅仅用于用户阅读方便的目的,因此对于数据处理的目的来说并不是必需的。传统的搜索引擎和例如数据挖掘的数据提取应用往往花费很大的精力来开发复杂的智能算法以便过滤这些修饰性的内容,但很难取得有益的结果。
与现有技术不同,本发明的实施例则通过在返回的HTML文档中添加网页布局元信息,使得客户端的应用程序比如搜索引擎和数据提取应用能够方便地将这些修饰性内容过滤掉,从而直接获取有益的数据。根据本发明的一个实施例,最终所生成的返回给客户端的应用程序的HTML文档示例如下。
  <html><head></head><body><!--LAYOUT(1,0.1,{“header”})--><div id=”header”><b><i>This is header.</i></b><div><!--LAYOUT(1)--><!--LAYOUT(2,0.8,{“body”})-->Page content here.<!--LAYOUT(2)--><!--LAYOUT(3,0.1,{“footer”})--><div id=”footer”><b><i>This is footer.</i></b></div><!--LAYOUT(3)--></body>
  </html>
每一个布局元信息都包括起始描述语句例如<!--LAYOUT(2,0.8,{“body”})-->和结束描述语句例如<!--LAYOUT(2)-->。根据本发明的一个实施例,可以通过执行静态代码扫描来定位JSP文件中的<jsp:include>或者修饰文件中的<decorator>并添加相应的起始描述语句和结束描述语句。在根据本发明的另一个实施例中,可以对JSP编译器或修饰处理器进行扩展,以便当处理JSP文件中的<jsp:include>或者修饰文件中的<decorator>时动态地添加起始描述语句和结束描述语句。类似的技术也可以应用到其它框架或语言中。
起始描述语句的主体部分是可以描述为(id,weight,finger-print)的三元素元组。该元组的第一个元素是该布局元信息的标识符,用于将该布局元信息与其它元信息区分开来。该元组的第二个元素是该布局区域的权重信息,值的大小表示该区域的重要程度。在根据本发明的一个实施例中,权重值可以通过增加称作权重的属性由编程人员在JSP文件中的<jsp:include>或者修饰文件中的<decorator>中来分配。在根据本发明的另一个实施例中,通过模式识别或者自动机学习技术来自动地计算权重,从而确定哪一部分是真实的内容区域并为该区域分配较大的权重值。该元组的第三个元素是该布局区域的指纹,其包含从程序代码片段中摘录的有价值的元信息,以便在客户端应用程序中生成该布局区域。在根据本发明的一个实施例中,指纹包括从程序代码中提取的一组关键字。
结束描述语句的主体部分是单元素元组,仅包含该布局元信息的标识符并且可以描述为(id)。
利用根据本发明实施例的上述布局元信息,客户端的数据提取器能够方便地将网页分割成几个主要的结构部分,从而将网页中诸如导航(菜单)信息、站点信息和广告等之类的噪声块去除,然后提取出包含需要的内容的片段。
图3示出了根据本发明实施例的网页布局元信息的应用示意图。如图3所示,用粗实线框表示的上、左和右内容块是由包含根据本发明的网页布局元信息的布局所产生的,在客户端的数据提取器能够检测并去除这些内容块,由此仅关注并保存图3的中间块所示的主体内容片段。
结构流元信息
在使用网络挖掘技术时,需要经常检索对象层级的信息,即,经常需要获取网页中的一组数据记录,比如从商业站点中获取多个产品记录。HTML作为标记语言能够在文档中呈现基于文本的信息,但是HTML却是静态语言,不能执行动态功能。为了实现更多的功能,现在大多数网页中都嵌入诸如Java、PHP、Ruby之类的功能强大的语言,以便实现丰富的功能。多数动态网页使用Java代码来连接到数据库并对数据库进行读取、写入、增加以及删除数据的操作。来自数据库的数据可以呈现在网页中并由用户阅读浏览。下面的示例即是调用Java语言来从商业站点的数据库中读取产品信息并在网页中逐个显示的HTML程序示例。
  <TABLE><%Connection conn=DriverManager.getConnection(url,user,password);Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(″select*from database″);while(rs.next()){<TR><%=rs%></TR>}%></TABLE>
一旦上述网页程序由网络服务器执行,则其内容变为如下所示,并且该内容是显示在客户端的显示器上的实际内容。
  <TABLE><TR>product 1</TR><TR>product 2</TR>......<TR>product n</TR></TABLE>
在上面的示例中可以看出,每一次“while”循环查询并且呈现数据库中的一条产品记录。但是,当将这些内容显示在网页中时,则由HTML标签进行了重新组织并且丢失了它们的初始结构。对于网络挖掘技术来说,识别这些数据记录并确认数据记录的范围成为其最大的障碍。如果能够将有关网页上显示的内容的该初始结构的信息保留,上述工作对于网络挖掘来说将变得非常容易。
根据本发明的实施例采用结构流(structure flow)元信息来解决这一问题。就上面的例子而言,包含根据本发明实施例的结构流元信息的网页代码如下所示。
  <TABLE><!--FLOW(1,1,“while”,{“product”})--><TR>product 1</TR><!--FLOW(1,1)--><!--FLOW(1,2,“while”,{“product”})--><TR>product 2</TR><!--FLOW(1,2)-->......<!--FLOW(1,n,“while”,{“product”})--><TR>product n</TR><!--FLOW(1,n)--></TABLE>
每一个结构流元信息都包括起始描述语句例如<!--FLOW(1,1,“while”,{“product”})-->和结束描述语句例如<!--FLOW(1,1)-->。在根据本发明的一个实施例中,当JSP编译器解析并解释网页中的Java代码时,如果遇到用于逻辑控制的指令,比如“while”、“for”、以及“if-else”等,则如上所述添加相应的起始描述语句和结束描述语句。由其它编译器或处理器比如PHP、Ruby等所执行的添加描述语句的方法与上面所述的JSP编译器所执行的方法类似,在此省略其详细描述。
根据本发明的实施例,结构流元信息的起始描述语句的元素元组可以描述为(id,index,instruction,finger-print)。该元组的id元素和finger-print元素的含义与网页布局元信息中相应的元素的含义相同。该元组中的index元素用于表示循环指令所产生的重复元信息的索引,表示循环的顺序号。该元组中的instruction元素具体指出该区域中的内容是在编程语言的何种指令下产生的。
结构流元信息的结束描述语句的主体元组包括上述id元素和index元素二者,可以描述为(id,index)。
利用根据本发明实施例的上述结构流元信息,能够容易地检测重复模式并集中关注由嵌入的编程语言的逻辑控制指令所产生的每一条数据记录,如图4所示。
图4示出了根据本发明实施例的结构流元信息的应用示意图。在图4中,每一个双线框表示一条产品记录。数据记录通常通过查询数据库产生并呈现为Java/PHP的while/for循环语句,因此能够方便地添加结构流元信息,以便算出数据记录的范围。借助于此,客户端的应用程序能够直接聚焦到所需要的数据记录而无需复杂的定位算法。
程序对象元信息
在使用比如Java、PHP的非HTML语言来实现复杂功能时,总是会遇到诸如各种变量的大量程序对象。一般情况下这些对象都包含具体的语义信息,如下面所示的从商业站点的数据库中读取产品信息的示例。
  <TABLE><%Connection conn=DriverManager.getConnection(url,user,password);Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(″select*from database″);while(rs.next()){<TR><DIV><%=rs.getString(“name”)%></DIV><DIV><%=rs.getString(“description”)%></DIV><DIV><%=rs.getString(“url”)%></DIV></TR>}%></TABLE>
数据库中每一栏的名称表示产品信息的一个语义项目,在Java查询数据库时利用该信息。但是在生成传统的网页时会将该信息丢失,所产生的网页的代码如下所示。
Figure A20081009349300181
Figure A20081009349300191
人能够非常容易地理解网页上的哪一部分是产品的名称或者其描述、URL等,但是对于机器来说,从自然语言的文本流中获取语义信息并且正确地理解其含义是非常困难的。为此,根据本发明的实施例在生成的网页的源代码中保留了相关的信息,称作程序对象元信息,但是并不影响初始的内容。根据本发明的实施例所生成的网页源代码如下所示。
  <TABLE><!--FLOW(1,1,“while”,{“product”})--><TR><TD><!--OBJECT(1,{“name”})--><a>IBM WebSphere Software</a><!--OBJECT(1)--><!--OBJECT(2,{“description”})--><b>Web Sphere</b>is the leading software...<!--OBJECT(2)--><!--OBJECT(3,{“URL”})--><a>http://www-306.ib m.com/software/websphere/</a><!--OBJECT(3)--><TD></TR><!--FLOW(1,1)-->......</TABLE>
每一个程序对象元信息都包括例如<!--OBJECT(1,{“name”})-->的起始描述语句和例如<!--OBJECT(1)-->的结束描述语句。在根据本发明的一个实施例中,当存在针对语义丰富的变量的操作时,则围绕这些操作添加相应的起始描述语句和结束描述语句。如上面所示,当JSP编译器解析指令“getString(columnName)”时,检查并选择变量columnName,并根据columnName的内容添加相关的描述语句。
根据本发明的实施例,程序对象元信息的起始描述语句的元素元组可以描述为(id,finger-print)。该元组的id元素的含义与网页布局元信息和结构流元信息中相应的元素的含义相同。该元组的finger-print元素包含相关变量的信息。利用该信息,机器能够容易地识别哪些内容是产品的名称和其描述及URL,以及哪些内容不过是噪声信息而已。
程序对象元信息的结束描述语句的主体元组仅包括上述id元素,可以描述为(id)。
利用根据本发明实施例的上述程序对象元信息,能够获取给定内容的具体语义信息,如图5中的虚线框内的各部分内容的具体语义含义。图5示出了根据本发明实施例的程序对象元信息的应用示意图。在图5中,将每一条数据记录分割成了数个语义片段,由此能够直接提取、存储和使用这些数据。换句话说,客户端的应用程序能够容易地理解哪一部分是产品名称,哪一部分是URL并且能够直接使用这些信息内容。
图6示出了根据本发明实施例的图2中所示的元信息添加器的一种具体结构方框图。如图6所示,该元信息添加器主要包括源代码过滤器510、代码分析器(lexer)520、句元匹配器530、以及元信息添加单元540。
源代码过滤器510、代码分析器520、以及句元匹配器530构成本发明实施例的网页解析器,主要用于对网页的编程逻辑进行解析。
首先,源代码过滤器510对源代码500进行过滤,以过滤出有用的各个代码片段。然后,代码分析器520对源代码过滤器510生成的代码片段进行分析,从而生成句元流。句元匹配器530则根据语法数据库600提供的语法规则对代码分析器520生成的句元流进行一一匹配,以便找到匹配的源代码块。
之后,元信息添加单元540按照上面所述的元信息添加原则,对句元匹配器530输出的匹配块添加相应的适当类型的元信息,从而生成添加了元信息之后的源代码700,即添加有元信息的HTML文档。
在服务器200响应客户端400的数据提取器420的请求,按照上面所述生成添加有元信息的HTML文档之后,将具有元信息的HTTP响应作为响应发送回客户端400。为了提取所需的数据,大多数技术首先将HTML源代码解析为DOM(文档对象模型,Document Object Model)树。树的每一个节点为具有起始描述语句和结束描述语句的HTML标签。在该处理过程中,根据本发明的实施例所添加的元信息能够用于帮助将内容组织成结构化的数据,从而为后续的数据提取工作提供了极大的便利。
上面结合附图详细描述了本发明的动态网页生成装置、从动态网页中提取结构化数据的装置、以及实现从网页中识别和提取期望信息的分布式数据处理系统。下面将结合附图详细描述根据本发明的动态网页生成方法和从动态网页中提取结构化数据的方法。图7示出了根据本发明实施例的结构化数据提取方法的总体流程图。
如图7所示,该结构化数据提取方法的处理流程包括服务器端执行的动态网页生成方法和客户端执行的从动态网页中提取结构化数据的方法。服务器端执行的动态网页生成方法包括图7的虚线框中所含的步骤S806、S808、S810、S812、S814和S816。客户端执行的从动态网页中提取结构化数据的方法包括图7的实线框中所含的步骤S818、S820、S822、S824、S826和S828。下面将结合图7对服务器端和客户端执行的相应步骤分别进行详细描述。
服务器端执行的动态网页生成方法从步骤S800开始。接着在步骤S806,服务器从客户端接收HTTP请求。然后服务器在步骤S808处理从客户端接收到的HTTP请求,在步骤S810中检查HTTP请求中是否设置有用于数据提取的标记。如果在步骤S810中确定没有设置用于数据提取的标记,则不添加元信息直接前进到步骤S814。另一方面,如果在步骤S810中确定设置了用于数据提取的标记,则在步骤S812中添加元信息,然后前进到步骤S814。
在步骤S814,服务器生成HTML文档,并且服务器在步骤S816将HTML响应返回客户端。
对于客户端执行的从动态网页中提取结构化数据的方法来说,首先在步骤S818中接收服务器发送的HTML响应。然后,客户端在步骤S820中判断所接收到的HTML响应是否是用于浏览器的HTML文档。如果在步骤S820中判断所接收到的HTML响应是用于浏览器的HTML文档,则前进到步骤S822,在浏览器上显示所请求的网页,并在步骤S830结束处理流程。
另一方面,如果在步骤S820中判断所接收到的HTML响应不是用于浏览器的HTML文档,而是针对数据提取器的HTML文档,则前进到步骤S824,根据HTTP响应中的网页布局元信息,从接收到的HTML文档中提取有用的内容片段并将噪声片段去除。然后,在步骤S826,根据HTTP响应中的结构流元信息检测有用的内容片段中的重复模式,并在步骤S828中根据HTTP响应中的程序对象元信息构建结构化的数据。之后,流程在步骤S830结束。
同样,在客户端执行的上述步骤S824、S826、S828并不是都是必需的,也可以仅执行这些步骤中的一个或者两个。
另外,客户端在向服务器发出HTTP请求时,可以先判断是针对浏览器的处理还是针对数据提取器的处理。如果是针对浏览器的处理,则无需处理直接向服务器发出HTTP请求即可。否则,如果确定是针对数据提取器的处理,则在向服务器发出HTTP请求之前设置用于数据提取的标记,然后将设置有用于数据提取的标记的HTTP请求发送给服务器。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算设备(包括处理器、存储介质等)或者计算设备的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的,因此在这里省略了详细说明。
因此,基于上述理解,本发明的目的还可以通过在任何信息处理设备上运行一个程序或者一组程序来实现。所述信息处理设备可以是公知的通用设备。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者设备的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质,因此也没有必要在此对各种存储介质一一列举。
在本发明的设备和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
以上描述了本发明的优选实施方式。本领域的普通技术人员知道,本发明的保护范围不限于这里所公开的具体细节,而可以具有在本发明的精神实质范围内的各种变化和等效方案。

Claims (18)

1.一种动态网页生成方法,包括:
分析源代码以生成句元流;
根据语法规则对句元流进行匹配以找到匹配的源代码块;以及
对匹配的源代码块添加相应类型的元信息。
2.根据权利要求1所述的方法,其中元信息包括用于表示网页布局的网页布局元信息、用于表示源代码的编程结构的结构流元信息、以及用于表示程序中的编程对象的程序对象元信息中的至少一种。
3.根据权利要求2所述的方法,还包括:
对源代码进行过滤以过滤出包含有需要的数据的代码片段;
其中对包含有需要的数据的代码片段进行分析生成所述句元流。
4.根据权利要求3所述的方法,其中:
网页布局元信息包括起始描述语句和结束描述语句;
起始描述语句的主体部分为元素元组(id,weight,finger-print),该元组的第一个元素id为该布局元信息的标识符,该元组的第二个元素weight是该布局区域的权重信息并且权重值的大小表示该区域的重要程度,以及该元组的第三个元素finger-print是该布局区域的指纹,其包含从程序代码片段中摘录的有价值的元信息;以及
结束描述语句的主体部分为包括所述id元素的元素元组(id)。
5.根据权利要求3所述的方法,其中:
结构流元信息包括起始描述语句和结束描述语句;
起始描述语句的主体部分为元素元组(id,index,instruction,finger-print),该元组的第一个元素id为该结构流元信息的标识符,该元组的第二个元素index表示循环指令所产生的重复元信息的索引,该元组的第三个元素instruction表示该区域中的内容是在编程语言的何种指令下产生的,以及该元组的第四个元素finger-print是该结构流元信息的指纹,其包含从程序代码片段中摘录的有价值的元信息;以及
结束描述语句的主体部分为包括所述id元素和所述index元素的元素元组(id,index)。
6.根据权利要求3所述的方法,其中:
程序对象元信息包括起始描述语句和结束描述语句;
起始描述语句的主体部分为元素元组(id,finger-print),该元组的第一个元素id为该程序对象元信息的标识符,该元组的第二个元素finger-print是该程序对象流元信息的指纹,其包含该程序对象的相关变量的信息;以及
结束描述语句的主体部分为包括所述id元素的元素元组(id)。
7.根据权利要求3所述的方法,还包括:
解析HTTP请求;
如果HTTP请求为请求用于浏览器的网页,则生成没有添加所述元信息的HTTP响应;以及
如果HTTP请求中包含提取网页中的数据的请求,则生成添加有所述元信息的HTTP响应。
8.一种动态网页生成装置,包括:
代码分析器,用于对源代码进行分析以生成句元流;
句元匹配器,用于根据语法规则对代码分析器生成的句元流进行匹配以找到匹配的源代码块;以及
元信息添加单元,用于对句元匹配器输出的匹配的源代码块添加相应类型的元信息。
9.根据权利要求8所述的装置,其中元信息包括用于表示网页布局的网页布局元信息、用于表示源代码的编程结构的结构流元信息、以及用于表示程序中的编程对象的程序对象元信息中的至少一种。
10.根据权利要求8或9所述的装置,还包括:
源代码过滤器,用于对源代码进行过滤以过滤出包含有需要的数据的代码片段;
其中,代码分析器对源代码过滤器过滤出的包含有需要的数据的代码片段进行分析来生成所述句元流。
11.根据权利要求10所述的装置,其中:
网页布局元信息包括起始描述语句和结束描述语句;
起始描述语句的主体部分为元素元组(id,weight,finger-print),该元组的第一个元素id为该布局元信息的标识符,该元组的第二个元素weight是该布局区域的权重信息并且权重值的大小表示该区域的重要程度,以及该元组的第三个元素finger-print是该布局区域的指纹,其包含从程序代码片段中摘录的有价值的元信息;以及
结束描述语句的主体部分为包括所述id元素的元素元组(id)。
12.根据权利要求10所述的装置,其中:
结构流元信息包括起始描述语句和结束描述语句;
起始描述语句的主体部分为元素元组(id,index,instruction,finger-print),该元组的第一个元素id为该结构流元信息的标识符,该元组的第二个元素index表示循环指令所产生的重复元信息的索引,该元组的第三个元素instruction表示该区域中的内容是在编程语言的何种指令下产生的,以及该元组的第四个元素finger-print是该结构流元信息的指纹,其包含从程序代码片段中摘录的有价值的元信息;以及
结束描述语句的主体部分为包括所述id元素和所述index元素的元素元组(id,index)。
13.根据权利要求10所述的装置,其中:
程序对象元信息包括起始描述语句和结束描述语句;
起始描述语句的主体部分为元素元组(id,finger-print),该元组的第一个元素id为该程序对象元信息的标识符,该元组的第二个元素finger-print是该程序对象流元信息的指纹,其包含该程序对象的相关变量的信息;以及
结束描述语句的主体部分为包括所述id元素的元素元组(id)。
14.根据权利要求10所述的装置,还包括:
HTTP请求解析器,用于解析HTTP请求,以确定HTTP请求中是否包含提取网页中的数据的请求;以及
HTTP响应生成器,如果HTTP请求为请求用于浏览器的网页,则生成没有添加所述元信息的HTTP响应,而如果HTTP请求中包含提取网页中的数据的请求,则生成添加有所述元信息的HTTP响应。
15.一种从动态网页中提取结构化数据的方法,包括:
接收添加有元信息的HTTP响应;
根据HTTP响应中的元信息对网页内容进行处理,其中所述处理包括以下处理中的一种或多种:
根据HTTP响应中的网页布局元信息将网页内容划分成多个片段并将噪声片段去除;
根据HTTP响应中的结构流元信息检测网页内容中包含的有用信息的重复模式,以便提取所述有用信息;以及
根据HTTP响应中的程序对象元信息对网页内容进行解析并提取最小语义单位的数据。
16.根据权利要求15所述的方法,其中:
网页布局元信息、结构流元信息、以及程序对象元信息各自均包括起始描述语句和结束描述语句;
网页布局元信息的起始描述语句的主体部分为元素元组(id,weight,finger-print),该元组的第一个元素id为该布局元信息的标识符,该元组的第二个元素weight是该布局区域的权重信息并且权重值的大小表示该区域的重要程度,以及该元组的第三个元素finger-print是该布局区域的指纹,其包含从程序代码片段中摘录的有价值的元信息;
网页布局元信息的结束描述语句的主体部分为包括所述id元素的元素元组(id);
结构流元信息的起始描述语句的主体部分为元素元组(id,index,instruction,finger-print),该元组的第一个元素id为该结构流元信息的标识符,该元组的第二个元素index表示循环指令所产生的重复元信息的索引,该元组的第三个元素instruction表示该区域中的内容是在编程语言的何种指令下产生的,以及该元组的第四个元素finger-print是该结构流元信息的指纹,其包含从程序代码片段中摘录的有价值的元信息;
结构流元信息的结束描述语句的主体部分为包括所述id元素和所述index元素的元素元组(id,index);
程序对象元信息的起始描述语句的主体部分为元素元组(id,finger-print),该元组的第一个元素id为该程序对象元信息的标识符,该元组的第二个元素finger-print是该程序对象流元信息的指纹,其包含该程序对象的相关变量的信息;以及
程序对象元信息的结束描述语句的主体部分为包括所述id元素的元素元组(id)。
17.一种从动态网页中提取结构化数据的装置,包括:
用于接收添加有元信息的HTTP响应的装置;
用于根据HTTP响应中的元信息对网页内容进行处理的装置,包括以下部件的一个或多个:
片段提取器,用于根据HTTP响应中的网页布局元信息将网页内容划分成多个片段并将噪声片段去除;
模式检测器,用于根据HTTP响应中的结构流元信息检测网页内容中包含的有用信息的重复模式,以便提取所述有用信息;以及
数据生成器,用于根据HTTP响应中的程序对象元信息对网页内容进行解析并提取最小语义单位的数据。
18.根据权利要求17所述的装置,其中:
网页布局元信息、结构流元信息、以及程序对象元信息各自均包括起始描述语句和结束描述语句;
网页布局元信息的起始描述语句的主体部分为元素元组(id,weight,finger-print),该元组的第一个元素id为该布局元信息的标识符,该元组的第二个元素weight是该布局区域的权重信息并且权重值的大小表示该区域的重要程度,以及该元组的第三个元素finger-print是该布局区域的指纹,其包含从程序代码片段中摘录的有价值的元信息;
网页布局元信息的结束描述语句的主体部分为包括所述id元素的元素元组(id);
结构流元信息的起始描述语句的主体部分为元素元组(id,index,instruction,finger-print),该元组的第一个元素id为该结构流元信息的标识符,该元组的第二个元素index表示循环指令所产生的重复元信息的索引,该元组的第三个元素instruction表示该区域中的内容是在编程语言的何种指令下产生的,以及该元组的第四个元素finger-print是该结构流元信息的指纹,其包含从程序代码片段中摘录的有价值的元信息;
结构流元信息的结束描述语句的主体部分为包括所述id元素和所述index元素的元素元组(id,index);
程序对象元信息的起始描述语句的主体部分为元素元组(id,finger-print),该元组的第一个元素id为该程序对象元信息的标识符,该元组的第二个元素finger-print是该程序对象流元信息的指纹,其包含该程序对象的相关变量的信息;以及
程序对象元信息的结束描述语句的主体部分为包括所述id元素的元素元组(id)。
CNA2008100934932A 2008-04-29 2008-04-29 动态网页生成方法和装置、提取结构化数据的方法和装置 Pending CN101571860A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008100934932A CN101571860A (zh) 2008-04-29 2008-04-29 动态网页生成方法和装置、提取结构化数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008100934932A CN101571860A (zh) 2008-04-29 2008-04-29 动态网页生成方法和装置、提取结构化数据的方法和装置

Publications (1)

Publication Number Publication Date
CN101571860A true CN101571860A (zh) 2009-11-04

Family

ID=41231217

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008100934932A Pending CN101571860A (zh) 2008-04-29 2008-04-29 动态网页生成方法和装置、提取结构化数据的方法和装置

Country Status (1)

Country Link
CN (1) CN101571860A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137146A (zh) * 2010-12-22 2011-07-27 百度在线网络技术(北京)有限公司 一种互联网多源信息处理与展示方法及其装置
CN102420851A (zh) * 2011-11-10 2012-04-18 百度在线网络技术(北京)有限公司 Http服务监控方法及系统
WO2013030685A1 (en) * 2011-08-26 2013-03-07 International Business Machines Corporation Automatic detection of item lists within web page
CN103544320A (zh) * 2013-11-05 2014-01-29 从兴技术有限公司 一种网页生成方法及装置
CN104980459A (zh) * 2014-04-04 2015-10-14 中国移动通信集团广东有限公司 一种应用程序运行的方法及站点接入设备
CN105426500A (zh) * 2015-11-25 2016-03-23 北京奇虎科技有限公司 网页脚本动态生成的链接的提取方法及装置
CN105893235A (zh) * 2015-01-26 2016-08-24 中国移动通信集团浙江有限公司 一种仿真测试方法、装置及服务器
CN106033338A (zh) * 2015-03-13 2016-10-19 上海爱韦讯信息技术有限公司 基于fog数据的源代码导入及解析的方法和装置
CN102137146B (zh) * 2010-12-22 2016-12-14 百度在线网络技术(北京)有限公司 一种互联网多源信息处理与展示方法及其装置
CN108509395A (zh) * 2017-02-24 2018-09-07 北京国双科技有限公司 数据绑定方法及装置
CN109067853A (zh) * 2018-07-16 2018-12-21 郑州云海信息技术有限公司 一种Web动态网页源码自动化尝试获取方法
CN109683978A (zh) * 2017-10-17 2019-04-26 阿里巴巴集团控股有限公司 一种流式布局界面渲染的方法、装置以及电子设备
CN110728009A (zh) * 2018-06-28 2020-01-24 北京京东尚科信息技术有限公司 仿真方法、装置和系统
CN113641933A (zh) * 2021-06-30 2021-11-12 北京百度网讯科技有限公司 异常网页识别方法、异常站点识别方法及装置

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137146B (zh) * 2010-12-22 2016-12-14 百度在线网络技术(北京)有限公司 一种互联网多源信息处理与展示方法及其装置
CN102137146A (zh) * 2010-12-22 2011-07-27 百度在线网络技术(北京)有限公司 一种互联网多源信息处理与展示方法及其装置
WO2013030685A1 (en) * 2011-08-26 2013-03-07 International Business Machines Corporation Automatic detection of item lists within web page
US8806330B2 (en) 2011-08-26 2014-08-12 International Business Machines Corporation Automatic detection of item lists within a web page
US9251287B2 (en) 2011-08-26 2016-02-02 International Business Machines Corporation Automatic detection of item lists within a web page
CN103748584B (zh) * 2011-08-26 2017-02-15 国际商业机器公司 网页中的项目列表的自动检测
CN102420851A (zh) * 2011-11-10 2012-04-18 百度在线网络技术(北京)有限公司 Http服务监控方法及系统
CN103544320A (zh) * 2013-11-05 2014-01-29 从兴技术有限公司 一种网页生成方法及装置
CN104980459A (zh) * 2014-04-04 2015-10-14 中国移动通信集团广东有限公司 一种应用程序运行的方法及站点接入设备
CN104980459B (zh) * 2014-04-04 2018-06-26 中国移动通信集团广东有限公司 一种应用程序运行的方法及站点接入设备
CN105893235B (zh) * 2015-01-26 2019-03-01 中国移动通信集团浙江有限公司 一种仿真测试方法、装置及服务器
CN105893235A (zh) * 2015-01-26 2016-08-24 中国移动通信集团浙江有限公司 一种仿真测试方法、装置及服务器
CN106033338A (zh) * 2015-03-13 2016-10-19 上海爱韦讯信息技术有限公司 基于fog数据的源代码导入及解析的方法和装置
CN105426500A (zh) * 2015-11-25 2016-03-23 北京奇虎科技有限公司 网页脚本动态生成的链接的提取方法及装置
CN105426500B (zh) * 2015-11-25 2019-06-25 北京奇虎科技有限公司 网页脚本动态生成的链接的提取方法及装置
CN108509395A (zh) * 2017-02-24 2018-09-07 北京国双科技有限公司 数据绑定方法及装置
CN109683978A (zh) * 2017-10-17 2019-04-26 阿里巴巴集团控股有限公司 一种流式布局界面渲染的方法、装置以及电子设备
CN109683978B (zh) * 2017-10-17 2022-06-14 阿里巴巴集团控股有限公司 一种流式布局界面渲染的方法、装置以及电子设备
CN110728009A (zh) * 2018-06-28 2020-01-24 北京京东尚科信息技术有限公司 仿真方法、装置和系统
CN109067853A (zh) * 2018-07-16 2018-12-21 郑州云海信息技术有限公司 一种Web动态网页源码自动化尝试获取方法
CN109067853B (zh) * 2018-07-16 2021-07-30 郑州云海信息技术有限公司 一种Web动态网页源码自动化尝试获取方法
CN113641933A (zh) * 2021-06-30 2021-11-12 北京百度网讯科技有限公司 异常网页识别方法、异常站点识别方法及装置
CN113641933B (zh) * 2021-06-30 2023-10-20 北京百度网讯科技有限公司 异常网页识别方法、异常站点识别方法及装置

Similar Documents

Publication Publication Date Title
CN101571860A (zh) 动态网页生成方法和装置、提取结构化数据的方法和装置
US8239387B2 (en) Structural clustering and template identification for electronic documents
US11520800B2 (en) Extensible data transformations
CN102073726B (zh) 搜索引擎系统的结构化数据的引入方法和装置
US8185530B2 (en) Method and system for web document clustering
CN101452453B (zh) 一种输入法网址导航的方法和一种输入法系统
CN113822067A (zh) 关键信息提取方法、装置、计算机设备及存储介质
US11809442B2 (en) Facilitating data transformations
Papadakis et al. Stavies: A system for information extraction from unknown web data sources through automatic web wrapper generation using clustering techniques
CN103023714B (zh) 基于网络话题的活跃度与集群结构分析系统及方法
US11809223B2 (en) Collecting and annotating transformation tools for use in generating transformation programs
US20210011926A1 (en) Efficient transformation program generation
US20070198727A1 (en) Method, apparatus and system for extracting field-specific structured data from the web using sample
US11263062B2 (en) API mashup exploration and recommendation
JP2020191075A (ja) Web APIおよび関連エンドポイントの推薦
US8489643B1 (en) System and method for automated content aggregation using knowledge base construction
EP4364044A1 (en) Automated troubleshooter
CN106776744A (zh) 一种基于互联网信息的软件开发方法及系统
CN114398138B (zh) 界面生成方法、装置、计算机设备和存储介质
CN103778156A (zh) 数据搜索的方法和装置以及用于数据搜索的服务器
CN110413882B (zh) 信息推送方法、装置及设备
CN100543741C (zh) 自动下载和过滤网页的系统及方法
Maroua et al. Webt-idc: A web tool for intelligent dataset creation a use case for forums and blogs
Nethra et al. WEB CONTENT EXTRACTION USING HYBRID APPROACH.
Liu et al. An XML-enabled data extraction toolkit for web sources

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20091104