用于无线网络的在线智能多语种比较商店代理的制作方法

文档序号:6485026阅读:233来源:国知局

专利名称::用于无线网络的在线智能多语种比较商店代理的制作方法
技术领域
:本发明总体涉及自动操作万维网(“Web”)上的任务,并且更具体地涉及为在线买家或用户自动操作任务,诸如比较购物,或者通过单一的界面与万维网上的多语种卖家交互以提高通信效率,以及特别是通过移动实现(implementation)来提供个性化的购买体验。背景描述自从二十世纪九十年代中期创建了万维网以来,因特网的规模迅速增加了千倍。人们现在不是通过直接的面对面交互、而是通过虚拟的通信信道来互相联系。这个新技术革命从根本上改变了人们的生活方式。与万维网并行发展的是“信息技术时代”,它提供了从产品信息到学术论文的各种令人目眩的在线信息资源。这些因素已经使利用因特网所提供的便利和低成本的电子商务能够呈指数级地增长。万维网上有数百万或更多的在线卖家。尽管目前的比较购物或价格比较搜索引擎能够按照在线买家或用户的询问而从不同的在线竞争者中检索出与所请求的任何期望产品和它们的期望价格相关的有些相关的搜索结果,但是买家或用户可能面临一个没有边际的信息海洋。买家或用户有时收到一个搜索结果的“失败页”,因为搜索引擎漏失了在其余的连接因特网的国家(目前数目为245个)中存在的、出售与所请求的完全相同的其它在线多语种卖家的网站。此外,尽管关于产品和卖家的信息在Web上可容易获得,但是买家或用户仍然陷在购买过程的所有阶段中。因特网用于把当前的电子商务的模式转变为真正的全球性的整体市场的潜力现在在很大程度上没有实现,并且电子采购仍然是非自动化的。在因特网上购物远非简单、高效或令人愉悦。搜索引擎和集中式目录服务对于定位在线买家想要的产品和愿意出售这样的产品或服务的商家来说是不够的。此外,典型的在线采购过程多数是手工驱动的,并要求买家输入他或她想要搜索的所有项和关键字。因此,未来的买家面临一个令人畏缩的任务,要负责收集和解释关于商家和产品的信息,对它们做出决定,并最终输入购买和付款信息。情况是用户或买家容易收到过多的信息而没有足够的时间和专门技术。按照复杂度的顺序,当前有如下两种不完善的策略被采用和实施,以部分地自动操作在线目录价格比较过程(1)非实时方法;(2)实时硬编码包装方法(hard-codedwrapperapproach)。非实时方法是实现价格比较代理的最简单的方式。它的实现包括从万维网手工地收集所有必要的信息,然后为搜索结果的每一项写一个单独的HTML文件,以便直观地显示搜索结果。以上所述的好处是明显的—容易实现且搜索时间短。尽管有这些好处,但有三个主要的不希望的缺点。第一,由于价格比较是手工进行的,所以维持一个大的包装贮藏库(wrapperrepository)变得非常昂贵,尤其是考虑到因特网的持续增长。第二,为了保持价格和其它信息处于最新状态,必须投入极大的努力。最后,存储和协调所有上述信息所需的数据库的规模非常大。实时硬编码包装方法是非实时方法的一种替代选择。实时方法不是像非实时方法中那样直接地取得项目,而是试图把HTML页概括成一个特定的格式。为了执行这个提取任务,调用一个定制的包装过程,其名曰pcwrapHLRT—程序设计首字母缩略词。图1提供具有一个“while”循环的程序的有关局部的一个例子。在这个例子中,在包装创建的后面的算法是通过一对定界符限制HTML页上的目标数据。PcwrapHLRT过程之所以有效是因为站点展示一个统一的格式化协议(formattingconvention)。产品项以粗体的形式呈现,而价格则以斜体的形式呈现。PcwrapHLRT通过扫描HTML文档中标识要被提取的文本片断(fragment)的特定串{″<:B>,“</B>,“<|>“</I>″}。这些串被PcwrapHLRT分别标识为li、ri、lp和rp。记号lk(kε{i,p})表示该串分隔一个要被提取的属性的左边,而rk则表示一个右定界符。其它可能要被包装提取的属性是产品名称、图形、条款等等。当给定一个HTML页时,PcwrapHLRT从标题行号开始顺序地扫描整个页。外循环通过搜索该页上的未扫描部分上的定界符“<B>”来检查是否有额外的要提取的型号和/或价格对。只要找到一个型号的开头,内循环就被调用以提取适当的页子串。很少有网站公布它们的格式化协议。因此,使用pcwrapHLRT的信息采集系统的设计者要手工地为每个资源构造这样一个包装。遗憾的是,这个硬编码过程是繁琐而又容易出错的,因为一个普通HTML页可能由数千行代码组成。此外,大多数站点定期改变它们的格式化协议,这通常将破坏包装。pcwrapHLRT的另一个缺点是,搜索时间的速度是中等的,因为代理在接收来自用户的请求时必须联系卖家网站。因为这种包装是部分自动化的,所以必须进行额外的管理工作来手工地分析HTML页的格式,以便确定包装。发明概要鉴于上述的这种常见的问题,基于新的因特网策略的一个对手工和部分自动化操作的替代选择是自动操作—在线智能价格比较代理,其能缓和在线目录购买或购物(例如拍卖等)的价格比较过程,同时能用一个因特网友好的交互式代理角色图形用户界面(IACGUI)来提供一个更好的导航环境。当所谓的第4代全球整体市场架构—代理中介的B-对-C、C-对-C、B-对-B电子采购和拍卖、G-对-B/C(政府对企业/消费者)招标电子商务和移动商务变得广泛实行时,这将特别有用。因此,本发明的系统为消费者对企业的交易提供更好的环境。简而言之,在线智能价格比较代理是自动化的在线购买或购物助理,其搜索全球的在线多语种商店,并搜出关于每一个产品的交易。它们也向在线买家/用户提供增值的(用户评级的)商务-网络(Business-Web)服务。这样的代理是吸引人的,因为它们能免除用户手工执行消费者购买行为模型中的每个操作的单调性。传统上,买家/用户通过前端的界面与在线服务的网络服务器通信,该界面提供一个由买家/用户完成的表单,用于输入要被搜索的项目。一旦买家/用户提交搜索请求,在线服务的网络服务器就查询它的数据库中的匹配,并将结果呈现给用户的网络浏览器。在本发明中,在线目录价格比较过程中的用户代理(代表人类买家/用户起作用的在线智能价格比较代理)携带要被搜索的项目和关键字,并为买家的/用户的最好的利益而与在万维网上互连计算机网络上的246个因特网互连的国家的任何国家的众多多语种网络服务器通信。用户代理然后排列它所找到的在线卖家站点,并通过网络浏览器向在线人类用户呈现搜索结果的概要。将本发明的系统应用到多个电子商务部分的优点非常显著。通信效率和有效性能够得到显著的提高,并且在线卖家以及在线买家/用户的时间和成本节省能够得到最大化。最重要的是,用户/买家将有权使用全球范围的空前的且数不尽的数量的信息源和无数的产品源,以及无法估量的数量的商业机会。本发明的系统和方法也将有助于推倒时间和语言障碍、人口统计的边界,并真正地实现电子商务的全球化。此外,用户代理的个性化、连续运行、自主的性质使它们很好地适合于通过起中介作用促成买家/消费者行为。相信本发明将有助于优化整个购买体验并彻底变革当前的电子商务。参考于2001年9月27日提交的美国专利申请号09/967,233,在此引用其全部作为参考,并且在此再现其局部。在所参考的美国专利申请号09/967,233中描述的是一种方法和系统,其提供一个使在线用户能够跨国界并以多种语言进行购买/购物的全世界的在线购物入口。已经发现,该系统的JAVA实现是特别有益的,部分原因是这样的实现增加了与用户和基础结构系统的兼容,以及减少了系统对越权侵入的脆弱性。用于移动用户的系统的一个实现已经被建立并在此进行描述。该移动实现优选地使用J2ME和kXML平台,并且特点是具有已经适于移动设备中可用的更有限的资源的一个简化的步骤集合。也描述了一种允许更精确地标识被系统寻求的信息的增强的信息提取方法论。因此,本发明的一个目的是提供一种对在线卖家的产品或服务的改进的价格比较。本发明的另一个目的是构造在线商店的卖家说明。本发明的另一个目的是收集用于训练的数据,包括样本产品和URL。本发明的另一个目的是在进行卖家站点或在线商店的学习之前检索训练数据。本发明的另一个目的是利用在训练数据中给出的信息从在线卖家收集训练页。本发明的另一个目的是从训练数据和所收集的训练页生成卖家说明。本发明的另一个目的是在离线数据库中存储所生成的卖家说明。本发明的另一个目的是为系统管理员提供用于增加、修改和删除系统所支持的卖家的界面。本发明的另一个目的是为管理员提供用于查阅卖家信息的界面。本发明的另一个目的是提供一种价格比较方法,顾客由此能启动价格比较。本发明的另一个目的是把HTML页解析成有用的数据。本发明的另一个目的是提供对希望的产品/服务的过滤和分类。本发明的另一个目的是提供用于比较因特网或万维网上不同在线多语种卖家和不同域的价格的单一界面。本发明的另一个目的是提供该系统和方法的一种移动用户实现,特别是提供可由移动用户访问的用来比较因特网或万维网上不同在线多语种卖家和不同域的价格的界面。本发明的移动用户实现提供一种优选地使用J2ME和kXML平台的简化界面,用于与本文中所说明的基础搜索系统通信。一个第一用户代理被包含在本发明的系统中,并且以语义识别学习者代理(SRLA)的形式实现。它用一种归纳学习方法来进行实时自主的包装归纳(wrapperinduction),以学习卖家站点的URL及其域说明,以及基于系统管理员所提供的以前汇编或准备的训练例子的、关于卖家站点的组织的通用规则。(在一个实施例中,SRLA连接一个微软品牌的后端SQL兼容的服务器或微软Access数据库,以便一个在线商店只产生一次卖家和产品说明。)包装归纳是通过实时构造从在离线数据库中存储的卖家和产品说明中提取的例子的包装而进行的。然后,SRLA用这些例子自主实时地快速通过因特网至卖家站点的远程主机,以按照所提供的URL访问展现指定的例子的网页,然后智能地用域或产品信息填充相关的搜索表单,并且然后虚拟地“按下回车”,由此向该站点提交一个搜索请求。响应该搜索标准而返回的结果页或者是含有准确信息的成功页,或者是失败页。这些含有对于特定卖家(向系统注册的或未注册的卖家)来说是独特的卖家和产品说明的结果页随后被存储在由系统管理员维护的离线数据库(诸如SQL兼容的服务器或微软Access数据库)中的卖家说明列表中。卖家URL、卖家说明和其它信息优选地每天按时自动地更新一次。本发明的系统中包含的第二用户代理被称作语义识别买家代理(SRBA)。SRBA使用由语义识别学习者代理以前“学习的”卖家说明,以在同时访问万维网上各种在线多语种卖家站点的时候搜索一个匹配。SRBA智能地用由买家或用户提供的产品信息填充一个卖家的搜索表单,然后虚拟地“按下回车”。卖家然后以这样的方式通过万维网向SRBA返回搜索结果页,即结果页与从其它卖家返回的其它结果页大约同时到达。(语义识别买家代理将这些返回页存储在一个单独的存储器或高速缓冲存储器位置以作为命中结果,供以后由其它SRBA使用。)SRBA按照对应的卖家说明分析返回页,从它们中提取相关信息和数据,分类价格和型号,然后以格式化的概要通过网络浏览器将它们在客户机的显示屏上显示给在线买家/用户。按照本发明,提供一种用于计算机实现的语义识别学习者代理来进行归纳学习的方法。该方法包含从互连计算机网络中检索特定于在线卖家的、用于生成对应的卖家说明的训练数据。该方法包含用存储在卖家列表中的给定训练数据来收集训练页。利用训练数据以及所检索的训练页,该方法包含一个根据从训练数据以及所检索的训练页中提取的信息生成特定于卖家的卖家说明的归纳学习方法。提供一种在离线数据库中存储被检索和/或被提取的卖家说明的方法,所述卖家说明以后将被语义识别买家代理(SRBA)使用。按照本发明,提供一种用于对在线卖家的产品或服务进行价格比较的方法。该方法包含在线用户启动对特定产品或服务的请求,然后,语义识别买家代理用预定义的卖家说明构造搜索请求的参数。该方法包含优选地同时向不同的在线卖家发送请求,用包含卖家说明的解析器从自在线卖家返回的结果页中提取数据。该方法包含以HTML格式构造/组成由语义识别买家代理分类和过滤的数据,以用于将该数据呈现给在线买家/用户。提供并通过语义识别买家代理实现的一种为检索有用的数据而解析从在线卖家返回的页的方法。该方法包含从离线数据库中检索卖家说明,解析从在万维网上互连的国家(当前有246个)中的任何国家的在线卖家返回的页,并用来自返回的卖家说明中的信息收集有用的数据。在本发明的一个实施例中,上述功能只有在在线买家签约成为一个注册的临时试用成员或终身成员后,才能在成员网页上是可用的。按照本发明,提供一种对互连计算机网络上选定类型的信息进行实时在线搜索处理的方法。该方法包含若干步骤汇集互连计算机网络多个站点的站点说明,包括多个站点的每个的(a)站点URL、站点的搜索表单URL,(b)关于站点的选定类型的信息是如何组织的通用规则,(c)从对应于选定类型的信息的站点检索的样本数据,以及(d)在站点上找到的域的说明;从在线用户接收对特定类型的信息的请求;根据站点说明,标识可能有该特定类型的信息的站点;用所标识的每个站点的站点说明来构造对该选定类型的信息的搜索请求;向所标识的站点提交所构造的搜索请求;从所标识的站点接收搜索结果,并且在所接收的搜索结果中找到准确匹配的位置后,提取对应于该站点本机语言的该特定类型的信息的信息,然后向用户显示所提取的信息。更一般地,本发明涉及一种在该互连计算机网络上进行实时在线搜索处理的方法。该方法包括如下步骤(a)在一个离线数据库中为多个卖家站点保存来自互连计算机网络的信息;该信息包括URL、搜索表单URL、域说明和卖家说明,其中卖家说明包括关于卖家站点中每一个站点上的产品信息是如何组织的通用规则;(b)当从一个在线用户和/或语义识别买家代理接收到价格对比请求时,使用在离线数据库中保存的信息来处理要求的产品的价格对比请求的参数;(c)从多个卖家站点中的经识别的站点中提取实时价格和产品信息,其中所提取的价格和产品信息是以站点的本机语言的形式;以及(d)向该用户显示所提取的价格和产品信息。图1是用于从一个卖家网站检索信息的现有的实时硬编码包装方法中的pcwrapHLRT程序的相关部分的一个例子。图2是一个通用图,它说明通过万维网/因特网在本发明的优选实施例、本发明的用户代理、用户/买家与在线卖家之间的交互。图3是语义识别学习者代理(SRLA)如何利用训练数据来产生一个卖家说明的概观的简化流程图100。图4提供根据本发明可被包含在一个卖家说明中的各种信息的一个说明。图5提供根据本发明可居于卖家说明字段中的数据的一个实例。图6是语义识别学习者代理(SRLA)如何进行归纳学习并产生一个通用的跨网页有效卖家说明的概观的流程图200。图7提供了一个网站的页面在向浏览因特网上该网页的人显示时的排列的部分以及用于生成或者定义这种排列的相应的HTML代码的例子。图8提供了标签的例子,按照本发明,此标签用于标识在训练网页中的项目描述和价格信息的位置。图9是对在本发明的一个实例的训练过程中使用的标签所代表的内容的通用性说明。图10A和10B提供了在图5-9中说明的训练过程的例子中的可能的定界符候选示例。图11是一个网页的屏幕快照(screenshot)的简化说明,根据本发明,该网页的屏幕快照具有带有用于容易地访问具体所查询的数据库的可搜索索引和产品域字段的导航规则(NavigationalRegularity)。图12提供了一个网页的屏幕快照的简化说明,它说明对于所有项目的统一规则的应用,所有项目通常以一种简单一致的格式布置。在该页面中是一个框架(frame),并且该框架包含所查询信息的搜索结果,这些结果都被统一地格式化。图13是与图12所示的相同的屏幕快照的简化说明,该图说明明了对于搜索结果的垂直分离规则的应用,该搜索结果显示被定位在头与尾之间的中央中所排列的产品目录。图14是本发明的语义识别学习者代理的运作过程的一个概括性说明。图15A是一个屏幕快照,它显示在卖家网站“www.800.com”上关键字“electronics(电子产品)”的搜索结果,在这个网站上,每一种产品被概括为其特征和功能(所列图框的左边和中部)的简短介绍以及在所列图框的右侧显示的相关的“ListPrice(定价)”和“YourPrice(您的价格)”信息,以及本发明的语义识别学习者代理的智能价格识别器能够在卖家说明的学习过程中区别的信息。图15B是在如图14所示的卖家说明的学习过程之后的某一时刻访问过卖家站点“www.800.com”的本发明的语义识别买家代理运作过程的概括性说明,该过程使得卖家标识的设计随后变成如图15B中所展示的一样。图15C是下述的概观的流程图300,即图2中的语义识别买家代理(SRBA)20与一个卖家说明如何进行交互以响应在线买家/用户针对一个乃至全部可得到的在线多语种卖家的价格比较请求。图16是一个交互式代理角色的学习者界面屏幕的例子,它可用于获取训练信息以便在本发明中使用。图17是一个提供的例子,其中已经为卖家“lcache.com”填充了训练信息。图18是学习者界面屏幕的一个图示,该屏幕可以用于显示已经学习的卖家说明信息。图19是学习者界面的一个屏幕快照,其具有标注了“卖家信息”标签,通过此标签,卖家信息就能被输入或搜索。图20提供了一个学习者界面的屏幕快照,以用于显示先前对一个特定卖家输入的训练例子。图21是学习者界面的一个屏幕快照,其响应于打开一个称为“VendorDescription(卖家说明)”的文件而被显示。图22说明了按照本发明的学习选项的选择,即“LearnOne(学习一个)”的选项被显示选中,并且已经被填充的卖家名称是“1cache.com”。图23展示的是对卖家“lcache.com”所学习的结果。图24说明以一个信息提取的简单模型的限定的解决方案来公式化表示的包装归纳问题。图25提供过程“execHLRT”的伪码。图26是一个以伪码的简单方法的模块,以用于学习头部和尾部定界符。图27A和图27B为过程learnHLRT提供了一个详细的表和相关子例程。图28说明了按照本发明的一个实施例,用户/买家如何与服务器通信以在该服务器机器上通过一个ASP(活动服务器页面)文件(NextGen.asp)来运行进程内DLL文件(NextGen.dll)。图29说明了语义识别买家代理使用户和数据库服务器之间的通信更加便利的方式。图30提供了一个按照本发明一个实施例的如何建立SQL服务器数据库的详细的流程图。图31是语义识别买家代理如何将搜索表单虚拟地传递给一个在线卖家网站的说明。图32是用于本发明的GUI或者交互式代理角色购物者/买家界面(IACS/BI)的“主菜单”屏幕的简化图示。要注意的是,在该“主菜单”屏幕的右上角为用户提供了产品的“通道”(种类)选择。屏幕的左边还提供了“QuickSearch(快速搜索)”功能。在它的正下方提供一个框,其中一个自键入的活动部分指示在线人类用户如何使用该快速搜索选项。左边的屏幕面板也提供了一组框,以便临时试用成员或终身会员登录。(注意本发明的大多数入口功能都被停用,直到用户身份被验证为有效。)在左下角提供了一组指向已向本发明的入口注册的在线卖家的链接,而在右侧,可以观察到一个标注着“反馈”的大消息框被提供以用于在线用户通过电子邮件向优选是运行微软公司的OutlookExpress品牌的电子邮件应用程序的电子邮件服务器输入注释消息。图33是一个用于本发明的GUI或者购物者/买家界面的屏幕的简化说明,其中响应于在线买家/用户对在先前的屏幕(未示出)上的“政府对企业”文本图标的点击而显示公司。然而注意到,正是这个屏幕不能起作用,因为这些公司或所谓的政府对企业电子商务服务或平台提供商目前通过在整个封闭连接的计算机网络环境中结合验证安全接口来严格限制成员使用它们的网络服务器数据库的特权。图34是一个用于本发明的GUI或者购物者/买家界面的屏幕显示的简化说明,其中提供了关于用户从多个选择中选定的公司的细节,所述多个选择是在用户在图33屏幕上点击“AdvancedSearch(高级搜索)”选项之后提供的。注意在这个屏幕中,屏面的框的标题正好位于五种类型的域的标签的正下方,可以看见大写的消息“ADVANCEDAGENTAREON!(高级代理运行中!)”。此外,在该屏幕的底部向用户提供了一个对话框,此框可填写以便利用由本发明提供的语义识别买家代理的功能来运行搜索。然而再次注意到,正是这个屏幕不能起作用,因为这个公司或所谓的政府对企业电子商务服务或平台提供商目前通过在整个封闭连接的计算机网络环境中结合验证安全接口来严格限制成员使用它们的网络服务器数据库的特权。图35是一个用于本发明的GUI或者购物者/买家界面的屏幕的简化说明,其中,响应于在线买家或用户对在先前的屏幕(未示出)上的“企业对企业”文本图标的点击而显示公司。然而注意到,正是这个屏幕不能起作用,因为这些公司或所谓的企业对企业电子商务服务或平台提供商目前通过在整个封闭连接的计算机网络环境中结合验证安全接口来严格限制成员使用它们的网络服务器数据库的特权。图36是一个用于本发明的GUI或者购物者/买家界面的屏幕的简化说明,其中提供了关于用户从多个选择中选定的公司的细节,所述多个选择是在用户在图35的屏幕上点击“AdvancedSearch”选项之后提供的。图37是一个用于本发明的GUI或者购物者/买家界面的屏幕的简化说明,其中响应于用户选择屏幕上的“域A”标签而显示所选项目及其说明。图38是一个用于本发明的GUI或者购物者/买家界面的屏幕显示的简化说明,其中所列出的卖家出售A域中的项,以响应于在图37的屏幕上点击“AdvancedSearch”选项的用户。图39是一个用于本发明的GUI或者购物者/买家界面的屏幕显示的简化说明,其中提供了利用本发明语义识别买家代理的特性进行搜索的结果的细节。购物者/买家界面对通过如图38的屏幕底部所示的搜索参数界面提交一个搜索要求的用户进行响应。图40说明对于本发明的实施例来说可能在桌上型电脑或膝上型电脑或其他显示器上出现的用户界面的主页。图41说明对于本发明的实施例来说在用户选择感兴趣的卖家所在的国家时可能在桌上型电脑或膝上型电脑或其他显示器上出现的用户界面的主页。图42说明在本发明一个实施例中含有对一个关键字的搜索结果的结果页面。图43说明本发明实施例的高级搜索页面。图44提供描述按照本发明以及其实施例的购物者/购物代理的详细应用逻辑的流程图。图45描述按照本发明实施例的学习者代理的详细应用逻辑。图46提供关于由本发明实施例所保存的国家信息字段的信息。图47说明按照本发明实施例用于增加国家信息的过程。图48说明按照本发明实施例在AdministrationConsole(管理控制台)提供的列出数据库中的国家的屏幕。图49说明在管理控制台上出现的与编辑数据库中的国家信息相关的屏幕。图50说明在管理控制台上出现的与向数据库添加国家信息相关的屏幕。图51提供关于由本发明实施例所保存的卖家信息字段的信息。图52说明按照本发明实施例用于添加卖家信息的过程。图53说明按照本发明实施例当控制台的右上角的Vendor(卖家)链接被点击时出现的AdministrationConsole屏幕。图54说明按照本发明实施例在检索一个给定的特定地点(本例中是美国)的操作之后在AdministrationConsole上出现的屏幕的例子。图55说明按照本发明实施例在AdministrationConsole的一个Vendor(卖家)屏幕/页面中出现的一个卖家的现有细节。图56说明按照本发明实施例在AdministrationConsole上出现的与编辑数据库中的卖家信息相关的屏幕。图57提供按照本发明实施例在AddVendor(添加卖家)操作中所显示的屏幕的例子。图58说明按照本发明实施例的用于新训练例子的操作者输入的AddTrainingExample(添加训练例子)屏幕。图59是按照本发明实施例的EditVendorDescription(编辑卖家说明)屏幕的图示。图60A和60B说明在本发明的移动实现中的选择国家操作。图61A、61B、61C、61D、61E和61F说明在本发明的移动实现中的关键字搜索操作。图62说明用于本发明的移动实现的SelectCountry(选择国家)功能的模型。图63说明本发明的移动实现中所使用的用于搜索一个项目的模型。图64A、64B、64C、64D、64E、64F和64G说明在本发明的移动实施例中对一个移动手持式装置屏幕的模拟中的主屏幕的外观。图65是在Learner(学习者)正在为学习网站所用的各种包装而访问卖家网站时出现的”LearninginProgress-PleaseWait(学习正在进行,请等待)”屏幕的图示。优选实施例的详细说明参见图2,提供了一个通用图,它说明通过万维网/因特网16在本发明优选实施例10、用户/买家12和在线卖家14之间的交互。在本发明的优选实施例10中,提供了一个学习者代理18(也称作语义识别学习者代理)和一个购物者代理20(也称为语义识别买家代理)。用一个服务器22提供对离线数据库24的访问,此数据库存储了全球多语种卖家信息。系统管理员26准备/编辑关于所选择的卖家网站的训练数据,并且通过服务器22将它们存储在离线数据库24的“卖家列表”27中,接着,系统管理员26就能用训练数据和语义识别学习者代理18根据训练页面来进行“归纳学习”,此训练页面是通过万维网16从卖家站点检索而来的。“归纳学习”产生以卖家说明列表28的形式的卖家说明,该列表被存储在离线数据库24中。用户/买家12可以利用本发明的优选实施例来通过利用语义识别买家代理20(SRBA)检索关于指定主题的指定信息。SRBA20通过利用在先前学习的卖家说明28中包含的信息来处理一个来自用户/买家12的请求。卖家说明中的信息24允许语义识别买家代理20即刻准备并发出通过万维网16基本上同时在许多卖家站点上进行搜索的命令。卖家说明也允许语义识别买家代理20即刻处理收到的搜索结果,并且将从所搜索的全部卖家站点中搜索的结果呈现给买家/用户12,这些搜索结果已经被过滤掉无关的和不相干的信息。现在参考图3,流程图100说明了本发明的一个实施例的语义识别学习者代理(SRLA)18的操作。在本发明的优选实施例中,语义识别学习者代理18以运行在服务器或个人电脑上的计算机程序的方式实现。在步骤110中,语义识别学习者代理18从在训练数据库24中存储的“卖家列表”27中检索预定义的或者较早准备的训练数据。训练数据库24优选是离线的。该训练数据包括关于要从中获知信息的在线卖家的一组数据。这些数据可能包含URL、域说明、样本产品和属性以及其他特定于域的信息,如下面右列所示图4提供了按照本发明的被训练或“被学习”数据的名称标签的类型和说明的一个例子。图5是所学习的实际“数据元素”的表格的说明性例子,这些“数据元素”对于图4在卖方说明学习过程期间已经产生并存储于离线数据库中的卖家说明列表中,以及由系统管理员26维护。“被训练”数据优选地存储在一个SQL兼容的或微软Access数据库中。这就增加了对来自不同卖家的数据容器的选择的额外的可扩展性。通常,被训练数据独立于产品域、所写入的字符和在线卖家的呈现风格。被训练数据中的URL路径是一个例外,它被要求唯一性地标识不同的卖家。回到图3,在步骤120进行检查,以看看语义识别学习者代理18是否需要学习更多的卖家。如果有尚待学习的卖家,语义识别学习者代理18将进行步骤130;否则,该学习对话终止。在步骤130中,使用预先定义的训练数据,语义识别学习者代理18智能地访问该预先定义的训练数据所对应的指定在线卖家。对于每一个在训练数据中指定的特定产品,语义识别学习者代理18通过卖家站点的搜索特征来搜索特定产品。通常,语义识别学习者代理18检索训练数据的若干页面,该训练数据将要从本发明系统获悉、或者将要从系统管理员手工输入中获悉,这样的页面被称作“训练页面”,它们稍后将用于进行归纳学习。在该优选实施例中,这个阶段中也包含控制数据(用于引起卖家站点中的错误页面的训练数据)。接着,在步骤140中,计算机程序对由语义识别学习者代理18获得的训练页面执行归纳学习。归纳学习的目的是获得站点的一般性说明,并弄清它是如何组织该产品数据并逻辑地向潜在的在线客户提供该产品数据。此学习的产品被叫做“卖家说明”28-这一阶段将按照图6进行进一步说明和解释。然后,在步骤150中,语义识别学习者代理18将该被学习的结果优选地存储在SQL兼容或微软Access数据库24中。(存储在离线数据库24中的卖家信息或“卖家说明”稍后将为在线语义识别买家代理20所使用。)在存储步骤150完成后,语义识别学习者代理18回到步骤120以看看是否要学习更多的卖家,如果有,130到150的步骤被重复。否则,学习过程终结。卖家说明学习过程现在参考图7,将利用一种信息提取的简单模型和一个简化的训练页面实例来更详细地解释卖家说明学习过程。图7的左侧显示在呈现给一个游览卖家站点的潜在客户时型号和价格信息的排列。图7的右侧显示产生该排列的HTML编码。例如,右侧的前三(3)行识别该编码为HTML,提供该排列的名称一“简单产品目录”,并指示要显示信息的开始。第四(4)行提供表格-“MD价格”的标题的文本。第六(6)和第七(7)行分别提供列名称的文本“型号”和“价格(US$)”。第8行到第11行(8-11)提供型号和价格信息。其余行标识诸如下列的信息表格末尾、表格的对齐和该产品目录体的末尾。首先,包装功能为给出的训练页面产生一套标签。标签用于标识在训练页面中的训练产品信息的位置。对于图7的简单产品训练页面,图8说明了由语义识别学习者代理18产生的一套标签。图8中的“标签”指示图7的简单产品目录页面包含四个(4)“元组”,其中每一个元组由一个“项”值和一个“价格”值组成。每一个值由一对整数来表示。考虑第一对<174,180>。这些整数指明第一元组的属性是在位置174和180之间的子串,即串‘HM381MD’位于位置174和位置180之间。正如这个例子中所应用的那样,位置指的是从指定的起始点起的字符的数量,比如从一个页面的开头或者从一个页面的“头”的末尾。文本字符之间的空间被算作一个字符位置。检查图7,可以看见,串“HM381MD”中的字母“H”从首行中符号“<”起出现于174字符位置,以及该串中的“D”出现于字符位置180。类似地,最后一个“元组”或者整数对<356,361>表明,最后一个价格属性出现于字符位置356和361之间,并标识串“399.95”。要理解,在这个例子中虽然使用字符位置来标识“标签”,但在本发明的精神内可以使用其它标准。其它标准可以用于本发明的方法应用。例如,再次检查图7,考虑图2的语义识别学习者代理18向四个电子产品的型号和“你的价格”自动地赋值一尽管它把它们表示为下面公式所述的样子L=<b1,i,e1,i>,<b1,p,e1,p><b2,i,e2,i>,<b2,p,e2,p><b3,i,e3,i>,<b3,p,e3,p><b4,i,e4,i>,<b4,p,e4,p>]]>型号价格($US)HM381MD399.95MD2070599.95MD203249.95MDR3399.95因此,如果“b”代表开始,而“e”代表结束,那么标识第二元组位置的数值就包含串b-,i,它是型号“M”的开头的数值,而串e-,i是型号“0.”的结尾的数值。类似地,应该理解,本发明通过调用一个模块化试探性的搜索而使标注自动化得以实施,这种搜索基于标准关系数据模型,该模型包括一个“项目识别器”和一个“智能价格识别器”,其中,元组反复地作为一个由两串组成的向量<b2,i,b2,p>。串b-,i是项目属性的值,以及串b-,p是价格属性的值。因此,属性代表列,而元组代表行。在“b”和””之间的数值“b2,i”意味着第二行的一个位置—由此为标注整个Ppc(产品目录页面—页面“P”是包含所要求信息的网页)而确认时在卖家说明的高效可学习包装归纳的调用期间,位置值的计算(即标注)以实时、自动、运行的方式执行,而无论卖家站点(在此例子中为www.800.com)上被格式化的网页是以任何语言的本机字符串或以自然语言,还是用HTML、XML、cXML、Java等编码的。训练页面的内容的标注在图9中被更一般地表示。在首列中,标识被标注的信息—在本实例中,产品和价格为所找的信息。在第二列中,标识“元组”项对应的“标签”-<PRODUCTLEFTDELIMITER(产品左定界符),PRODUCTRIGHTDELIMITER(产品右定界符)>和<PRICELEFTDELMITER(价格左定界符),PRICERIGHTDELMITER(价格右定界符)>。在系统管理程序执行学习系统一次后,在编辑一组可能的定界符候选(candidate)以便与图10A和图10B中可能的这组定界符候选的编辑同步的过程中,它就从离线数据库中的卖家列表中检索训练页面。接着,它利用另一组训练页面同步地自动地(标注)执行实时、运行的计算,且包括位置值,如同上面所述的实例一样。两个候选组的交集产生一个有效的候选集合,然后语义识别学习者代理18就从该有效候选中选择一个作为卖家说明。现在参考图2,流程图200说明本发明语义识别学习者代理18的一个实施例。此方法使用了3个环境性规则,此规则支配购物网站提供的产品说明的编排,该网站允许信息提取独立于该域进行。该规则包括带有可搜索索引的导航规则、统一规则和垂直分离规则。对于导航规则,在线商店或卖家站点是为向消费者和商业买家询问提供服务而设计的。因此,几乎所有在线卖家提供了一个可搜索的索引以便于访问具体被查询的数据库。使用卖家站点的可搜索表单使语义识别学习者代理18能概括出多语种主页及网页的格式化方式。图11是一个简化图,其说明一个带有可搜索索引和产品域字段的主页。对于统一规则,虽然在线商店或者卖家在它们的产品说明格式方面彼此相差很大,但是任何给定的在线卖家都会按照简单一致的格式来布置所有项目说明。图12是一个网页屏幕的简化图,它描述统一格式化搜索结果的布局。因此可以看出,每一个被列出的搜索结果都以“型号(MODELNUMBER)”串开始,其下提供“产品说明(PRODUCTDESCRIPTION)。”此外,“价格1”和“价格2”位于“产品说明”的右边。图13提供了一个同样的搜索结果屏幕的简化图,其说明了采用垂直分隔来显示产品目录。这个垂直格式可分为文档的开头、内容和末尾。正如最初设计的那样,因特网的信息基础结构(网站架构、在线卖家产品说明的格式以及技术的表达)是为了人类的使用。对特别适用于人类直接操作的查询机制和输出标准的应用,明显说明了这一点。在线卖家遵守这些规则,因为这些规则使针对人类购物者或买家的在线销售得以实现。虽然不保证使在线商店让人们得以便利地进行导航的这么一种工具将使得智能软件代理来自由处理(master)是用户友好的,但是多语种电子数据源的在线智能信息比较亦即本发明的该系统,就是本着利用这些规则而设计的。依照本发明,包装的构建是通过一个归纳学习过程来实施的。该方法是通过对卖家网页的样页进行推理来学习一个卖家包装的。在本发明的方法论中,实例对应于卖家页面,页面的标签对应于其相关的内容,以及假定对应于所构建的包装。此外,按照本发明,结合了可高效学习的包装类(wrapperclass),比如HLRT包装类。而且,为了确保本方法得以很好地运用,当训练数据显示出很高的噪声干扰时采用了容噪技术。比如,在图15A中给出www.800.com的屏幕快照例子,智能价格识别器可以区分“定价”和“您的价格”。所识别的实例于是被确认,以标注整个页面。考虑一个用于项目的识别器和另一个用于价格的识别器,确认产生了一个标注包括这些属性对的页面的标注方法。事实上,卖家试图通过使用统一的外观来为所有类型的产品创造一种一致的感觉。举例来说,卖家以与DVD产品一样的格式提供MD产品信息。利用该规则,每一种产品都以同样的格式得以大致的说明。图2中的语义识别学习者代理18仅仅从一些例子中的一个特定域中学习了一个包装,并且试图将此域来适于所有其他域(本体条件完全不同的所有其他产品类别),这些域是在万维网上245个互连国家的所有其余网站上以一致的格式进行组织并在线编录的。所以,对于本发明图2中的语义识别学习者代理18来说可行的是,维护一个完全更新的全球产品数据库的命名法,而既不在一个SQL兼容的数据库模块上写入代码,又不用向微软Access数据库人工输入每个域中的每个产品。继续讨论图6,在步骤210中,语义识别学习者代理18产生了一套标签来表示训练页面的内容。换句话说,标注位置值的方法是标识训练产品的信息在训练页面中的位置。而且,图2中的语义识别学习者代理18自动实时在运行中产生包含如下的位置值的标签L=<b1,i,e1,i>,<b1,p,e1,p><b2,i,e2,i>,<b2,p,e2,p><b3,i,e3,i>,<b3,p,e3,p><b4,i,e4,i>,<b4,p,e4,p>]]>进一步的细节参见图8的右列。在步骤220中,语义识别学习者代理18在检索的页面上利用相关的标签来执行归纳学习,以输出一个可能的“卖家说明”候选集合。由于这些候选是从具有特定训练数据的特定训练页面产生的,所以对于这些页面来说这些候选决不能是无效的。然而,如果要使这些候选在卖家的整个站点有效,则应该执行一个跨页面验证,以导出一个在卖家网站上将是有效的概括性卖家说明。在步骤240中,一个卖家说明验证器(VDV)针对另一组训练页面(在图3的步骤130中检索的)来验证一个可能的专家说明候选。如果一个卖家说明令人满意,则学习过程将会停止,参见步骤250;否则,验证过程将利用其余的候选和通过步骤230、240和250进行循环来继续改进卖家说明选择。“满意的”卖家说明的一个标准是,每一个随后被分析的训练页面的候选的数量和字符与前一个训练页面的相同。如果随后的分析训练页面具有不同数量的候选,则应分析另一个训练页面。图10A和图10B提供作为卖家说明候选的例子的项目说明的左和右定界符、价格信息以及一个训练页面的开头和结尾。图5提供了一个“卖家说明”的例子,它包括为一个示例页面的开头、结尾、项目和价格信息所标识的定界符。用于一个特定卖家的训练数据优选地由系统管理员26汇编。正如将在此进一步详细描述的,为了向本发明的系统添加一个特定的卖家,将相应训练例子的卖家名称、卖家URL、提交表单的URL、域数据提供并存储在离线数据库24中,该数据库例如可以是微软Access数据库。卖家的名称将是记录的主关键字。人工包装输入作为一个选择可以被提供。为了对训练例子提供一组精确的数据(这将进而极大地提高由语义识别学习者代理18在自身准备实时、自动地和在运行中产生卖家说明时学习的卖家信息的精度和效率),重要的是,准备训练例子数据的系统管理员或者其他个人在网页URL和域名设置方面要知识渊博,对用于任何正在处理的多语种卖家网站的本机语言要有一定的了解,并且能识别作为学习的目标的信息类型。这种人无须懂得太多编码。一旦提供了一个卖家信息,管理员26就可以对每个卖家运行语义识别学习者代理过程。管理员对一个卖家执行语义识别学习者代理18一次之后,则在运行如图16到23中所示的任何要求的选项的过程中,他或她就通过学习过程随着交互代理角色学习者界面(IACLI)的屏幕一步一步地进行导航。最后,从返回的训练页面中检索的“卖家说明”结果集合将被存储于离线数据库24中,比如微软Access数据库中。为了删除/除去一个特定的卖家,管理员可以直接地从“卖家列表”或“卖家说明列表”中删除记录。为了修改/编辑一个特定的卖家,系统管理员可以修改数据库中“卖家列表”或“卖家说明列表”中的记录。简言之,本发明的语义识别学习者代理18生成一个对于一个特定卖家来说是唯一的卖家说明。卖家说明是一个卖家如何以一个特定的格式组织它的产品信息的通用规则。所以,本发明的包装构架系统的输入本质上是要被学习的包装的行为的样本。在这个模式下,包装构造变成了根据包装行为的样本重新构造包装的过程。语义识别学习者代理(SRLA)18的方法在图14中通过一个简化的例子被总结。在步骤1中,两条信息被馈送到该系统以便进行该包装归纳(1)该卖家网站的URL(如http://www.800.com),以及(2)域说明,它包含该特定域的训练例子。例如,域描述可能是“电子产品”,以及该域的一个记录可能是“SonyHM381MD”,此即用于填写卖家搜索表单的型号。在步骤2和3中,语义识别学习者代理18利用训练例子的URL地址和域/型号自动通过因特网到达卖家网站。对于特定的例子,该学习者代理按照步骤1中提供的URL地址将去www.800.com网页。然后它将在相关的搜索表单中填写必要的产品信息(即域说明—“电子产品”和“HM381MD”)。最后,它将“提交”搜索表单以请求搜索并等待回应。参考步骤4,一个结果页面按照搜索标准被返回。该结果可能是一个带有相关产品说明的成功的结果页面,也可能是一个失败页面。可以注意到,所返回页面中感兴趣的内容是HTML代码、项目说明、项目价格以及这种信息相对于HTML代码的位置。在步骤5和6中,搜索结果页面通过因特网被返回到学习者代理18以便进行分析。在步骤7中,所执行的分析被称作“包装归纳”,其中该页面被概括为一套编排和格式的规则,卖家遵循这些规则以一个合理的方式呈现它的产品说明。利用这些规则,在本发明的语义识别买家代理过程中,当一个用户/买家正在从卖家站点上同一域中搜索某一产品信息时,买家代理20可以提取同一卖家的产品信息。可以理解的是,按照本发明,语义识别学习者代理过程将对于其卖家说明被要求的每个卖家而被执行。由于本发明使用的信息定界符方法,所以卖家说明可以从以任何语言的任何卖家站点得到,简要地说,虽然呈现给用户的语言可以是特定的本机字符串,但是针对被要求的信息,能被识别为定界符的基础性编码保持不变,而不管该语言的本机字符串是什么。换句话说,卖家说明的信息将以由卖家站点使用的本机语言来从该站点处得到。没有必要将所用的本机语言翻译为一种标准语言。而且,因为用于每个卖家站点的所标识的定界符候选不是以用于该站点的编程语言的基础代码所编码的,所以不需要待搜索站点所使用的不同的编程语言就能进行随后的搜索。这就允许语义识别买家代理20在多语种和多个域(产品目录)基础上进行搜索,并且这种检索与任何编程语言无关。参考图15C,流程图300说明本发明语义识别买家代理20的一个实施例。在步骤310中,买家代理20从图2中的用户/买家12接收请求,该用户/买家想要对一个产品的价格进行比较。在步骤310中,买家代理20也优选地以一个ActiveX组件建立与买家/用户12连接以便通信。用户12必须提供至少一个参数,此参数例如可以包含需要的产品的名称、希望的价格的范围、目标在线卖家或者分类标准。步骤312查看在含有所识别的卖家站点中所要求的信息的存储器或高速缓冲存储器中是否有任何“命中(hit)”;如果是,买家代理将到步聚370以便将所提取的目标信息进行分类。买家代理接着到步聚380,以从以HTML的目标信息中产生结果页面,接着在步骤390中,买家代理将把结果页面显示给在线人类用户/购买者。如果在步聚312没有发现任何命中,则步骤320将激活买家代理20来使用输入参数从离线数据库24提取卖家说明。这些“卖家说明”是语义识别学习者代理18以前在卖家说明学习过程中定义的。在步骤330,买家代理20将编制一个访问在“卖家说明列表”中标识的不同在线卖家的用户的新请求。所编制的用户的新请求将基于用户给定的参数和卖家说明中的数据。优选地,如果向N个在线卖家发出请求(比如产品样式请求),那么语义识别买家代理20就将编制N个新请求。语义识别买家代理20使用卖家说明来从卖家站点实时获得价格信息。买家代理20使用卖家的URL和卖家的名称导航到卖家站点,该卖家的URL和卖家的名称被包括在构成卖家说明的信息中。在卖家说明中还包括卖家的搜索表单URL。在步骤340,在导航到卖家站点之后,语义识别买家代理20基于用户的新请求“虚拟地”填写卖家搜索表单,并“虚拟”按下回车来提交它。对每个识别的在线卖家都要进行这项工作。如上所述,在离线数据库24中的卖家说明包括一个字段,该字段提供卖家搜索表单URL的信息,比如“http://www.onlineshop.com/search.asp?item=.”。语义识别买家代理20使用用户输入参数和搜索表单URL来为每个识别的在线卖家生成新HTTP请求。比如,如果用户需要购买一个“硬盘”,该语义识别买家代理20生成的新请求将如下“http://www.onlineshop.com/search.asp?item=harddisk,”并且语义识别买家代理20将把这个HTTP请求发送给在线卖家,就好象用户自已提交该请求一样。如果有N个识别的卖家,那么语义识别买家代理20将启动N个线程来为N个识别的卖家中的每个填写搜索表单。语义识别买家代理20优选并行地处理每个在线卖家的可搜索的索引,填写它并提交搜索请求。在步骤350,语义识别买家代理20将在指定的超时或用户定义的超时内等待来自在线卖家的响应。如果发生超时,语义识别买家代理20就进行步骤370;否则到步骤358和360以进一步处理所接收的搜索结果数据。在超时时期内,语义识别买家代理20收集来自不同在线卖家对搜索请求的响应。在步骤358,语义识别买家代理20接收来自在线卖家的搜索结果响应,并将其存储在服务器22内的高速缓存或存储器中。在步骤360,感兴趣的数据被从接收的响应中提取。语义识别买家代理20用存储在卖家说明28或离线数据库24中的卖家说明列表中的信息来提取所需数据。例如,卖家说明包括识别左边和右边包装的代码的字段。首先,语义识别买家代理(SRBA)20将使用左边包装信息来定位响应页面中的有效数据的开始。然后,在目标数据的准确位置(如由卖家说明列表中的信息确定的)处的数据将被提取并存储在存储器中。(回想卖家说明中的信息就是语义识别学习者代理18在图3和图6的学习过程中所学习的内容)。重复提取目标信息,直到该页面末尾。在提取过程中将提取例如产品说明和产品价格。应该理解,语义识别学习者代理18定义的卖家说明中含有的信息是域独立的并且是多语言相关的。比如,假设在线买家或用户的平台使用Windows98操作系统,并且正在运行语言版本B(或者优选地,他或她的平台正在运行Windows2000Professional英文版和/或他或她的平台上安装了个人网络服务器的“B”版本),微软InternetExplorer将在他或她登录到本发明的入口时提示他或她下载“B”语言显示软件。在在线买家或用户“A”以“B”语言的本机字符输入产品型号以作为在本发明的入口处提供的文本框中的关键字后,图2中的语义识别买家代理20将使用预先描述的示例数据(在实时包装归纳学习之后从卖家说明中较早检索的)执行数据提取,该示例数据包含以语言“B”撰写的表示产品型号的本地字符串。这些卖家说明存储在离线数据库24(优选是微软Access数据库)中的卖家说明列表中的预先定义的数据结构中。如图15C中步骤312所示,数据提取包括利用由用户输入的“B”语言的产品型号的确切的本机字符串来同时搜索驻留在服务器22中存储的存储器或高速缓存中的“命中”,它包含价格、说明以及前面的搜索结果中的产品的相关信息。因为“B”语言的字符串是使用特定的本机语言,所以被找到的任何“命中”都将是利用本机语言“B”并具有以“B”语言写的字符串的识别的该卖家站点。回想图14的步骤7,在学习过程期间,图2中的语义识别学习者代理18从在线卖家学习包装之后,卖家说明被存储在数据库24(优选是微软Access数据库)或数据库服务器22(优选是微软SQL兼容的数据库服务器)的卖家说明列表中。因为对语义识别买家代理20而言,每当在在线人类买家/用户请求时就检索卖家说明数据是低效率的,所以优选只在语义识别买家代理20第一次请求搜索—匹配—提取期望的卖家说明集合时从离线数据库24或服务器22中检索卖家说明。然后卖家说明将被存储在存储器或高速缓存中,以供在后来来自语义识别买家代理20为相同或新的在线用户的其它请求中的即时检索和使用。在存储器或高速缓存中的卖家说明优选地每天自动更新一次。换言之,语义识别买家代理20能用卖家说明中的数据定位不同域和不同语言的目标数据。这是因为,对特定的卖家而言,尽管语言可能变化,但是对应于目标信息的基础编码不会改变。由于三个“格式化规范”主导大多数卖家站点,比如B-to-C、C-to-B、C-to-C在线商店等,所以卖家站点的不同域将一致地使用同样的格式和基础编码来提供目标信息,比如项目说明和价格。因此,对于每个返回的搜索响应,语义识别买家代理20将利用卖家说明执行数据提取。如果时间超出,则语义识别买家代理20将到图15C中的步骤370。在步骤370,语义识别买家代理20对从不同在线卖家所提取的数据按照用户定义的分类标准分类。如果用户没有定义分类标准,则缺省的将是产品的价格。替换地,分类标准可以是识别找到的最好的价格,并只把有具有最好价格的卖家信息提供给用户/买家(顺便提一句,可以使用其它分类标准)。分类完成之后,语义识别买家代理20将到步骤380。在步骤380,语义识别买家代理20根据来自步骤370的过滤和分类的数据来生成HTML页面。在步骤390,语义识别买家代理20通过利用前面建立的ActiveX组件来将所生成的HTML页面作为“结果”页面提供给用户而响应用户请求。如果在步骤350没有超时,则语义识别买家代理20将到步骤358。在步骤358,语义识别买家代理20将搜索结果页面的数据存储在存储器或高速缓存中,以用于对同一用户/买家进一步的新请求或新用户/买家的请求的即时响应。在步骤358之后,语义识别买家代理20将到步骤360,其中它从搜索结果页面提取目标信息,在步骤370根据用户定义的分类标准对结果以及从不同在线卖家检索的所提取数据进行分类,然后在步骤380根据步骤370所过滤和分类的数据生成HTML页面,最后在步骤390使用以前建立的ActiveX组件来响应用户/买家。语义识别买家代理20的默认语言是英语。按照默认,当接收到用户请求时,语义识别买家代理20将访问所有的卖家。当响应返回时,语义识别买家代理20将使用已由语义识别学习者代理18学习的卖家说明来滤去无效的结果。在本发明的另一个实施例中,可按照用户的地点对卖家分类,以便用户12能够选择“高级搜索”来搜索经过分类的卖家组。本发明所采用的方法本质上是多语言的。当语义识别学习者代理18学习一个卖家站点时,可以该站点的本机语言进行这种学习。所检索并用于构成卖家说明的结果将是以该站点的本机语言。因此,当在线用户/买家12以特定的本机语言在图15C步骤310提交请求时,语义识别买家代理20在步骤312将利用由用户输入的确切字符串在存储器或高速缓存中查找“命中”。因为字符串将是采用特定的本机语言,所以找到的任何“命中”都将是对于使用同样的本机语言并具有同样字符串的所识别的卖家站点。按照这种方法,应该理解,根据本发明不需要将以一种语言提交的搜索请求转换为“标准”语言的“翻译”步骤。通过使用本机语言的搜索请求,避免了由翻译步骤引入的错误和含糊。在本发明的系统的优选实施例中采用的以数据库服务器的开发工具(优选是微软SQL兼容的数据库)建立的计算机程序模块是标准的,并且本发明可以用于任何关系数据库,比如来自加利福尼亚RedwoodShores的Oracle公司、加利福尼亚Emeryville的Sybase公司以及其它公司的支持ODBC的SQL数据库服务器。如上所述,对本发明的优选实例而言,用于并行搜索的多线程是重要的。在这方面,使用WindowsNT4.0平台(微软公司的产品)能够提供这种多线程能力。现在参考图16到23,将更详细地解释汇编或准备“卖家列表”27中的训练数据和“卖家说明列表”28中卖家说明的数据。图16是交互式代理角色学习者接口(IACLI)的实际屏幕,它能够用于获得用于本发明的训练信息。利用与如图18显示的“AddVendor(添加卖家)”标签相对应的屏幕来提供数据输入点,以用来输入由系统管理员在检查卖家网站“lcache.com.”之后获得的信息。因此在图17中提供了一个例子,其中已经为卖家“lcache.com.”输入了这种信息。该信息包括如下右列所示的内容然后,上述信息被存放到卖家列表27以作为离线数据库24中的训练数据。要注意的是,已输入的训练实例是特定产品的列表,这些产品将在指定的被标识卖家站点上的训练过程期间被实时地搜索,从该卖家站点将获得训练页面。然后将从这些返回的训练页面中“学习”“卖家说明”。然后,信息可被显示如图18所示的在屏幕上,与“VendorInformation(卖家信息)”标签相对应。“VendorInformation(卖家信息)”屏幕接口(参见图19)提供对卖家名称(VendorName)的“Search(搜索)”功能。通过输入卖家名称并按下“搜索(Search)”按钮,所输入的卖家的卖家信息将从离线数据库24中被检索并显示出来。在该“卖家信息”屏幕上,要注意“包装(Wrapper)”字段(“Head(头部)”、“Tail(尾部)”、“LeftDelimerofItem(项目左定界符)”、“RightDelimerofItem(项目右定界符)”、“LeftDelimerofPrice(价格左定界符)”以及“RightDelimerofPrice(价格右定界符)”)是空的。这些包装字段要被“学习”。图20提供一个学习者界面的屏幕快照,用于显示以前输入的特定卖家的训练示例。响应于打开称为“训练数据(TrainingData)”的文件而显示该屏幕。关于学习者界面的“卖家信息”屏幕,对“训练数据”提供一个搜索功能。为了使用训练数据搜索功能,系统管理员输入卖家名称并按“执行(GO)”按钮。这调用以前输入的指定卖家的“训练数据”的列表来如所示地进行显示。应注意,“训练数据”界面提供其他功能,比如“添加(Add)”(添加附加示例)、“删除(Delete)”(删除训练示例)、“编辑(Edit)”(编辑训练示例)、“保存(Save)”(将示例列表保存为其当前状态)以及“取消(Cancel)”(取消输入的变更)。现在参考图21,响应于打开一个称为“卖家说明(VendorDescription)”的文件而显示学习者界面的屏幕快照。该界面开始“学习”卖家说明的过程,并向系统管理员提供学习“所有(All)”卖家(其训练数据已被输入)的说明或由管理员在提供的框中输入的名称的“一个(One)”卖家的说明的选项。图22显示“学习一个(LearnOne)”选项被选中,并且所输入的卖家名称为“lcache.com”。利用与万维网连接的系统,要按下“现在学习(LearnNow)”按钮以启动语义识别学习者代理(SRLA)18利用在该卖家的训练例子中指定的学习例子来在其网站上实时“学习”关于指定卖家(lcache.com)的卖家信息。在学习/训练过程完成后,从其站点返回的训练或学习例子的结果将被显示在学习者界面的屏幕上,如图23所示。此外,为了显示该信息,系统管理员可以使用图19卖家信息屏幕上的搜索功能,输入卖家的名称(在此例中为“lcache.com”)并按“搜索”按钮。图23立即显示对卖家“lcache.com”的学习结果。应注意“包装”各字段现在已经被完成。另外,该页面的“头部”被显示为出现在值“5230”处。值“5230”标识行、字符位置或其它位置信息。“尾部”表明如下由定界符串所标识的项目位置“D></TD><TD></TD></TR></”对于项目说明信息,左定界符被标识为下列字符串“GSRC=/Lmg/trahs+1X1.gifBORDER-OWID....”项目说明的右定界符被标识为字符串“</b>”。价格的左定界符被标识为下列字符串“</b></A></TD><TDALIGH=right><FON....”最后,价格的右定界符被标识为字符串“</T”尽管图23中项目左定界符和价格左定界符的字符串由于学习者界面的静止显示状态而呈现为截断的,但是要理解,由语义识别学习者代理18标识的左定界符串中的所有字符将被存储在卖家说明28中(优选存储于微软Access数据库中),并将在以后由语义识别买家代理20使用。现在将在“概念证明”的层次更详细地描述语义识别学习者代理18的基本方法。基本概念如图24所示,包装归纳问题被设计为一个简单的信息提取模型。如图24所示,页面P是包含所需信息的网页。P被取为某一字母表上的串。一般情况下,字母表为ASCII字符集,以及页面为HTML文件。举例来讲,前面所述的图7为从卖家站点获取的一个非常简单的页面。按照“标记术语”,该页将在下文被称为Ppc(产品目录页面)。注意,本发明的方法受HTML应用的启示或启发,但是本发明并不依赖于HTML的应用,例如,页面可能为自然语言文本或可能遵守XML标准。采用了标准的关系数据模型。与每个产品记录相关的是两个独特属性项目和价格。其中“项目”代表产品的名称或型号,以及“价格”表示产品的价格。“元组(tuple)”为由两串组成<Ai,Ap>的向量。串Ai为“项目”属性的值,以及串Ap为“价格”属性的值;而属性表示关系模型中的列,“元组”表示行,因此,如图8所示,图7中产品目录页面示例中包含有四个“元组”,第一个为<`HM381MD`,`399.95`>。页面内容是其所包含的一组“元组”。比如,尽管有足够的文字串记号,但由于页面长度没有限制,因此代之以使用一种更清楚且更简洁的页面内容表达方式。不是明确列举属性,而是用页面的“标签”来表示与页面中的一组索引相关的页面内容。例如,用于简单产品目录页面(Ppc)的“标签”Lpc如图8右侧一列所示。“标签”Lpc表示该简单产品目录页面包含四个“元组”,其中每个“元组”由项目和价格的值组成。一对整数表示一个值。考虑第一对<174,180>。这些整数表示第一元组的属性为位置174和180之间的子串,即串“HM381MD”。通过检查图7右侧的字符串可以发现,这些整数与从第一行“<HTMI>”中“<”开始的字符的位置对应。类似地,第四“元组”中的最后一对整数<356,361>表示最后属性的价格出现在356和361之间,即串`399.95`。更一般来说,页面P的内容可以由标签L表示。L=<b1,i,e1,i>,<b1,p,e1,p>...<bk,i,ek,i>,<bk,p,ek,p>...bm,i,em,i>,<bm,p,em,p>]]>对于只有一个“元组”的页面,产生以下标签L={<<b1,i,e1,i>,<b1,p,e1,p>>}标签L编码页面P的内容。页面包含|L|>0个“元组”,每个元组有两个属性,即项目和价格。整数1<m<|L|索引页面中的“元组”。每对<bm,i,em,i>编码一个项目值,以及每对<bm,p,em,p>编码一个价格值。值bm,i是在P中的第m个“元组”中的项目的起始的索引;值em,i为第m个“元组”中的项目值的结束索引。类似地,值bm,p是在P中的第m个“元组”中的价格的起始索引;值em,p是第m个“元组”中的价格值的结束索引。因此,第m个“元组”的项目属性出现在<bm,i,em,i>之间,而第m个“元组”的价格属性出现在<bm,p,em,p>之间。所以,图8所示的例子中的一对<b2,i,e2,i>=<229,234>对图7中页面的简单产品目录中第二个“元组”的第二个(项目)属性进行编码。如上所示,包装W为从页面到标签的函数;记号W(P)=L表示调用页面P上的包装W的结果为标签L。在这个抽象层面,包装只是一个任意的过程。一个包装类是一组包装。正如将在以下稍后可以看到的,本发明采用的包装为HLRT包装类。鉴于前述用于描述本发明的方法的术语和约定的解释,现在将提供关于学习者如何学习卖家产品目录页面的包装的进一步解释。从直观上来讲,本发明的学习系统的输入是产品目录页面的样本及其相关的“标签”。在这一点,假设已经标识并给出“标签”。随后在下文将提供用于生成样本页面的标签的方法的进一步详细阐述。输出为包装W∈W。在理想的情况下,W为所有样本页面输出适当的标签。但一般不能作出此类保证,因此(根据归纳学习的精神),要求W为一组给定的训练样本生成正确的标签。为找到解决方案,包装归纳问题(关于特定的类W)如下所述输入一组训练例子ε={...,<Pn,Ln>...},其中每个Pn为一个页面,以及每个Ln为一个标签;输出包装W∈W,对于每个<Pn,Ln>∈ε来说,W(Pn)=Ln。HLRT包装类如在本文中较早解释的那样,PcwrapHLRT过程表示一个“编程首字母缩写词”一采用头部定界符、左定界符、右定界符和尾部定界符从卖家产品目录中提取相关的产品信息及其价格。头部—左侧—右侧—尾部HLRT包装类是一种形式化这种缩写词的方式,图25中所述的过程“execHLRT”是pcwrapHLRT的通用形式,它允许定界符为任意串,而不是用于pcwrapHLRT的前面实现中的特定值“<B>”、“</B>”等。注意,尽管本例中的定界符全为HTML标签,但是本发明的方法并不限于用HTML标签操作。另外,文本可以完全不是HTML。因此,美元标志符号“$”可以为价格(比如“$399.95”)的有效左定界符。execHLRT例程规定了HLRT包装如何运作。前文说过,W(P)为通过在页面P上调用包装W生成的标签。对于当W为HLRT包装时的情况,例程execHLRT是用于确定W(P)并且是根据W和P的一个过程。li和ri的值表示项目属性的左定界符和右定界符,而lp和rp表示价格属性的右定界符,以及h和t分别表示页面的头部和尾部。(注意,h是行数而非字符串。比如,如果h=100,则页面的前100行为头部。语义识别买主代理20搜索产品时可以立即跳过这些行)。例如,如果用参数h=7、li=“<B>”、ri=“</B>”、lp=“<l>”、rp=“</l>”和t=“</TABLE>”调用execHLRT,那么execHLRT象pcwrapHLRT一样运作。更一般来说,一个卖家站点的任何HLRT包装等同于一个(h,li,ri,lp,rp,t)的向量,并且任何这样一个向量都可被解释为一个HLRT包装。给出这种等同性,则记号(h,li,ri,lp,rp,t)被用作通过用指定定界符来部分地评估execHLRT得到的HLRT包装的简写形式。因为HLRT只是一个向量(h,li,rt,lp,rp,t),所以图7和8中的HLRT包装归纳示例是在示例页面的一组ε=(...(P,(Pn,Ln),...)及其标签的基础上标识四(4)个定界符串(h,li,ri,lp,rp,t)中的一个。更准确地说,要解决以下约束条件满足问题变量页面P的头部定界符h页页P的尾部定界符t项目属性的左定界符li项目属性的右定界符ri价格属性的左定界符lp价格属性的右定界符rp域每个定界符是一个任意串,头部定界符除外;约束条件对于每个<Pn,Ln>∈ε,W(Pn)=Ln,其中HLRT包装W=(h,li,ri,lp,rp,t),现在将描述learnHLRT方法,它解决以上约束条件满足问题。定界符候选首先要注意的是,定界符变量的域受到示例ε的严格约束。至少定界符将为示例页面的子串。当然还可以做的好得多。仅仅根据一个示例(Ppc,Lpc),可以看出,rp(价格属性的右定界符)必须为前缀“</l></TD></TR>”,其中“”表示一个新行字符。“前缀”是指从串最右边的字符开始的串中字符的组合,比如“>”、“D>”、“TR>”等。注意,如果rp不是这个串的前缀,那么每个带有这个定界符的包装将至少不会提取“399.95”作为Ppc的第四个“元组”的代码属性。因此rp的候选为“</l></TD></TR>”的所有前缀。这些候选在图10A中示出。详细来讲,简单产品目录页面的定界符的候选是以如下方式产生的li和lp的候选考虑lp,即价格属性的左定界符。回想在图7中价格之前的“HM381MD</B></TD><TD><I>”和“MD2070</B></TD><TD><I>”等片断。给定这些片断,可以看出,lp必须是“</B></TD><TD><I>”的后缀。因此lp的候选为该串的16个非空后缀。在图10A中可以看到这些候选。“后缀”指的是从串的最左边的字符开始的串中字符的组合,比如“<”、“</”、“</B”、“</B>”等。定界符li更为复杂,因为第一个属性之前的串出现在前面“元组”的第一个属性和最后一个属性之间,以及在页面的头部和第一个“元组”之间。在示例中所考虑的串为“<TR><TD><B>”和“</I></TD></TR><TR><TD><B>”。很清楚,li是这个串的后缀。因此,li的候选可以通过列举一个此类片断的后缀产生。为了概括此详细描述,得出的结论是,给出示例集和书面candsl(i,p,ε),定界符li和lp的候选是通过列举出现在每个示例中项目属性或价格属性的每个实例的左侧的最短串的后缀来生成的。(如上段所述,示例项目属性有些特殊。必须列举相邻元组之间或第一个元组之前的最短串的后缀。)比如,如果ε={(Ppc,Lpc)},那么Candsl(i,ε)={</I></TD></TR><TR><TD><B>,....}Candsl(p,ε)=(</B></TD><TD><I>,....}ri和rp的候选右定界符候选类似地生成。但存在两个区别。首先,所考虑的串出现在适当属性的右侧(而不是左侧)。第二,ri和rp必须为这些串的前缀(不是后缀)。例如,在简单产品目录示例中,定界符ri必须为串“</B></TD><TD><I>”的前缀,而rp必须为“</I></TD><TR>”和“</I></TD><TR><TR><TD><B>”的前缀。特别是,给出示例集ε—书面candsr(k,ε),右定界符的候选是通过列举出现在每个示例中的属性k的每个实例的右侧的最短串的前缀而产生的。(如上所述,li是一个特殊情况。类似地,rp是一个特殊情况。)所列举的是出现在相邻“元组”之间或最后一个“元组”之后的最短串的前缀。例如Candsr(i,ε)={</B></TD><TR><I>,....}Candsr(p,ε)={</I></TD><TR><TR><TD><B>,....}头部和尾部的候选相似的分析适用于头部和尾部的定界符。“头部”是第一个项目属性出现之前页面的前缀。在此要注意,“头部”被表示为一个串。当实际实现一个包装时,为了提高本发明的性能,优选用一个整数来表示“头部”,这样,当人类购物者或卖主在使用包装来寻找产品信息时,可以不看内容便快速跳过页面的头部。为了将头部串转换为一个整数,只要找出头部字符串所跨的行数即可。识别“尾部”定界符的方法与右定界符li和Lp的方法非常相似。尾部候选为页面最后一个价格属性之后的串的后缀。Cands(head,ε)={<HTML><TITLE>...PRICE($US)</TH></TR>,....}Cands(tail,ε)={</I></TD></TR></TABLE>...<HTML>,....}定界符的独立性给出每个定界符的这些候选,在图26中提供用于学习这两个定界符的以伪码形式的简单方法的模块。因为这个模块是按照与每个定界符候选的数量乘积成比例的时间运行的,并且因为每个定界符可以有许多候选,所以执行时间可能是慢的。通过观察到定界符ri、lp、rp是相互独立的,可以完成更有效的处理。另外,对于一个特定定界符而言,候选是否有效决不依赖于任何其它定界符。例如,无须推理任何其它定界符就可评估“</B>”是否满足ri。为了查看这种独立性适当地成立,回想execHRLT过程。在其执行中的每一点,execHRLT在其输入页面P中搜索定界符ri、lp,和rp中精确的一个。如果这些搜索中的任何一个都没有识别在P中的正确位置,则execHRLT输出的标签将是错误的。但这些搜索能否返回正确答案仅仅取决于所考虑的定界符和示例页面,而不取决于其它定界符。换一种说法,一旦为某个定界符选择了特定的候选(ri,lp,rp),就决不能使这个候选无效,而无论为其它定界符选择了什么候选。这种对换的说法还产生这种直觉如果一个候选无效,就无法修复它,而无论如何仔细地为其他定界符选择候选。注意,这种独立特性可以得到保证;它不仅仅是为便于学习而采用的直观推断。注意到这一点的意义在于,可以分开地学习三个定界符ri、lp和rp。在伪码中,可以按如下方式学习它们1.生成备用集;2.为每个定界符选择一个有效的候选。这种方法比图26的过程快得多它是按照与每个定界符候选数量的和(而不是乘积)成比例的时间运行的。然而,还要注意并非所有的定界符都是相互独立的。相反,对于定界符h、t和li,一个特定字符串对于这三个定界符中的一个是否有效取决于其它两个定界符的选择。例如,“<B>”对li有效吗?答案取决于h和t的选择。如果h=“<HTML>”,那么“<B>”对于li不是一个有效的定界符,因为execHLRT将不会跳过无关的粗体文本“<B>ASimpleProductCatalogues</B>”。另一方面,如果h=“</TH></TR>”,那么li=“<B>”不会产生问题。同样,li和t相互作用如果t=“</HTML>,则li=“<B>”是不可接受的,但如果t=“</TABLE>”则是可以接受的。结果,必须同时考虑三个定界符h、t和li的候选。所以需要列举h、t和li的所有组合,并选择有效的组合。候选的有效性这一改进方法的第二步涉及精确表征定界符候选有效的条件。首先考虑定界符ri和rp。在该方法识别属性的某个实例的开始后,该方法试图定位该属性的实例的结尾。因此定界符ri或rp的候选“u”必须满足两个约束条件约束条件C1在任何示例页面中,“u”不得为属性的任何一个实例的子串。约束条件C2在每个示例页面中,“u”必须是在每个属性的实例之后立即出现的文本的前缀。如果定界符ri或rp的候选“u”违反这些的约束条件,那么每个包装将对其中至少一个示例ε无效。如果违反约束条件C1,那么属性k将会太短;如果违反约束条件C2,那么它将会太长。总之,对于一组给定示例ε,感兴趣的是在某个候选“u”作为一个对定界符ri或rp有效的值时必须满足的条件。这些条件将被称为valid(u,r,ε)。可以看出,对于示例集ε,当且仅当候选“u”满足对定界符ri和rp的约束条件C1和C2时,validr(u,r,ε)才成立。回到示例,如果将validr测试用于由candsr生成的候选,可以发现对于项目属性的右定界符validr(</B></TD><TD><I>,i,ε)=TRUE……对于价格属性的右定界符validr(</I></TD><TR><TR><TD><B>,p,ε)=FALSE....对lp的约束条件execHLRT过程搜索定界符lp。定界符lp的候选“u”必须满足两个约束条件约束条件C3在每个示例页面中,“u”必须是在每个属性k的实例之前立即出现的文本的适当后缀。如果违反这个条件,则每个包装将与示例ε不符。至少由execHLRT计算的起始索引bm、p中将有一个不正确,或者是小于或大于正确值,或者是未定义,这取决于“u”如何违反该条件。总之,根据一组示例ε,感兴趣的是在某个候选“u”作为一个对定界符lp有效的值时必须满足的条件。这些条件被称为validi(u,l,ε)。可以看出,对于C,当且仅当候选“u”满足对定界符lp的约束条件C3时,validi(u,l,ε)才成立。回到简单产品目录示例Ppc,可以发现validl(</B></TD><TD><I>,p,ε)=TRUE....为了确定h、t和li的候选Uh、Ut和Uli的特定组合是否令人满意,采用以下约束条件约束条件C4Uh必须是每个页面头部部分的适当后缀。约束条件C5Uh必须是在第一个Uh出现后每一个页面的头部部分的适当后缀。约束条件C6在任何页面中,Ut不得出现在h第一次出现与随后li的出现之间。约束条件C7Ut必须是每个页面尾部的子串。约束条件C8Uli不得在每个页面尾部中的t之前出现。约束条件C9在每个页面中,Uli必须是“元组”之间文本的适当后缀。约束条件10在任何页面中,Ut不得在“元组”之间文本中的Uli之前出现。HLRT归纳在上述背景下,现在将描述程序learnHLRT。图27A和27B中提供一个详细程序表以及相关的子例程。获得训练数据在本发明的较早描述中,已经假设训练数据已处于适当位置,供语义识别学习者代理18使用。也就是,一组ε={...,<Pn>,<Ln>,...}训练示例已经存在,其中每个Pn为页面,以及每个Ln是标签。为了进一步理解学习者18如何使用训练示例,参考图7和13。如早期所述,在购物/购买阶段,语义识别买家代理20可以执行如下的五种不同的功能(1)采用如图15C所述的模块化启发式搜索法制作标签(LabelOracle)。这些被称为识别器一种是项目识别器,以及另一种是智能价格识别器。(2)因为语义识别买家代理20在每次从在线人类买主或用户收到请求时就检索卖家说明数据的作法效率不高,所以仅当语义识别买主代理20第一次请求搜索—匹配—提取这种说明中的需要的一组时,才从数据库(优选是微软Access数据库)或SQL兼容的数据库服务器22中检索这种说明。卖家说明然后将被存储在存储器或高速缓存中,供在以后其它语义识别买主代理20请求中更加即刻地进行检索使用。(3)存储器或高速缓存中的卖家说明优选地将每天自动更新一次。(4)本发明中的系统产生多线程,并同时动用几个语义识别买主代理,以通过万维网联系各种指定的在线卖家站点。这一多线程方法的使用优选建立在由微软公司提供的DCOM技术之上。每个语义识别买主代理20根据人类买主或用户提供的产品信息以智能方式填写卖家搜索表单并以虚拟方式按下“回车”。(5)另一方面,本发明的语义识别买主代理20通过加快卖家答复时间以及借助多线程方式将返回的搜索结果页面分配给不同的存储器位置,解决目前主宰着购物者/买主在线购买的整个过程的万维网上的网络业务量繁重的问题。训练页面Pn获得训练页面涉及对卖家网站进行示例查询。例如,图12说明从查询到网站(例如http://www.800.com)的示例页面的外观。现在将对按照模块化启发式搜索法构成识别器(被称作标签(LabelOracle))的算法进行更加详细的描述。识别器在页面上搜索一个特定属性的实例。比如,给定图12的示例页面,项目识别器将识别页面上包含的所有“项目”,比如产品“HM381MD”、“MD2070”和“MD203”。识别器的智能程度应足以消除干扰。再举一个例子,给定图12的例子,智能价格识别器能够区别分别可能是例如“定价(ListPrice)”和“您的价格(YourPrice)”的“价格1(Price1)”和“价格2(Price2)”。然后对所识别的实例进行证实以标识整个页面。比如,给定一个用于“项目”的识别器和另一个用于“价格”的识别器,则证实的结果产生一个标记包含有这些属性对的页面的LabelOracle。如果项目识别器事先知道所有项目,则识别“项目”只是一个简单的模式匹配问题。然而这是不可行的,因为这需要一个大的项目名称/型号的列表。另外,维护如此大的项目数据库成本较高。因此,保证这样的项目名称/型号的列表是完整且最新的是不实际的。幸运的是,卖家试图通过对所有产品采用统一的外观来产生一种一致的感觉。比如,卖家提供小型盘(MD)产品信息所采用的格式与用于DVD产品的格式相同。通过利用这一规则,假定每个产品都是以相同格式描述的。本发明仅从示例的特定域中学习包装,并试图使此域适合于在全球因特网上以一致格式组织的所有使用外语的其它域。在优选实施例中,训练示例仅仅源于一个域,比如卖家网站上的MD域。这导致识别器仅需要识别特定的产品域,比如MD。按照这种方式,可以维持一个项目名称的特定域的完全更新的命名。本发明通过调用模块化启发式搜索识别“价格”。比如价格总是在美元标志($)的后面;以及价格经常是一个浮点数等。如果发现一个项目有多于一个的价格,则相应地提取“您的价格”、“我们的价格”、“定价”、“原始价格”等关键字。购物阶段的详细步骤如较早简要描述的,语义识别买家代理20如何工作的机制在图14和15A-15C进行说明。控制流程由图解图中标记的八(8)个步骤组成。第(1)步当用户标识需要特定产品或服务时,代替浏览万维网上不同多语言的卖家站点以手动方式逐个搜索产品信息和价格,本发明提供一个入口,通过该入口并经互动—代理—角色图形用户界面(IACGUI)(一般称为互动—代理—角色购物者/买主界面)一次性输入对产品信息的请求,可以达到相同的目的,但是具有更好、更快和更可靠的结果。所得到的产品说明被存储在SRBA20的成员变量m_ProdDesc中。该搜索还使用户能够定制代理如何通过“高级搜索”功能进行工作,该“高级搜索”功能提供可选择的参数,比如选择的卖家、超时(限制)、价格范围、任何生产商、关键字等。第(2)步例如,假定在线买家或用户平台使用Windows98操作系统并正在运行语言版本“B”(或者,他或她的平台优选运行英语版的Windows2000Professional和/或他或她的平台装有“B”版本的个人网络服务器),当他或她登录到本发明的入口后,微软InternetExplorer将提示他或她下载语言“B”显示软件。当在线买家或用户“A”用语言“B”的本机字符在本发明的入口处提供的文本框中输入一个产品型号作为关键字后,图2中的语义识别买家代理20将利用预先描述的示例数据(以前在实时包装归纳学习之后在卖家说明中检索的数据)进行数据提取,示例数据包含以语言“B”的本机字符串。这些卖家说明被存储在数据库24(优选为微软Access数据库)中的卖家说明列表中预先定义的数据结构中。数据提取涉及利用由用户输入的以语言“B”的确切的本机字符串来同时搜索驻留在服务器22中存储的存储器或高速缓存中的“命中”,它包含价格、说明以及前面的搜索结果中的产品的相关信息,如图15C步骤312所示。因为语言“B”的字符串是使用特定的本机语言,所以发现的任何“命中”都将是利用本机语言“B”并具有以语言“B”写的字符串的识别的该卖家站点。回想图14的第7步,在学习过程中,在图2中的语义识别学习者代理18从在线卖家处学习了包装后,卖家说明被存储在离线数据库24(优选为微软Access数据库)或数据库服务器22(优选为微软SQL兼容的数据库服务器)的卖家说明列表28中。因为语义识别买主代理20在每次从在线人类买主或用户收到请求时就检索卖家说明的数据的作法效率不高,所以仅当语义识别买主代理20第一次请求搜索—匹配—提取这种说明中的需要的一组时,才从数据库24或服务器22中检索卖家说明。卖家说明然后将被存储在存储器或高速缓存中,供以后语义识别买方代理20的其它请求对于相同或新的在线用户更加快速地进行检索使用。存储器或高速缓存中的卖家说明优选每天自动更新一次。第(3)步利用所检索的卖家说明,本发明中的系统产生多条线程,并同时动用若干个语义识别买方代理20以通过万维网联系各种指定的在线卖家站点。第(4)步这一多线程方法的使用优选建立在微软公司的DCOM技术之上。每个语义识别买方代理可以根据人类买家或用户提供的产品信息以智能方式填写卖家搜索表单并以虚拟方式按下“回车”。第(5)步然后每个卖家返回一个搜索结果页面,此页面具有所请求产品的信息或者有一个错误消息。第(6)、(7)步搜索结果页面通过万维网被返回到语义识别买方代理20。值得注意的是,若干结果页面可能同时返回到语义识别买方代理20。通过加快卖家答复时间以及借助多线程方式将返回的搜索结果页面分配给分开的存储器位置,本发明的语义识别买方代理20解决目前主宰着购物者/买主购买的整个过程的万维网上网络业务量繁重的问题。第(8)步语义识别买方代理20根据相应的卖家说明分析返回的页面。在所有搜索结果页面已经到达或者搜索超时之时,相关的信息和数据被从返回的页面上提取出来,并以如图15B中所示的格式化的输出方式被显示出来。参考图28,用户/买家与服务器22进行通信,以通过所示的活动服务页面(ASP)文件(NextGen.asp)在服务器机器22上运行进程内DLL文件(NextGen.dll)。优选地,以ActiveX组件的形式开发语义识别买家代理20产生许多好处。第一,可以改善整体性能。用VisualC++编写的语义识别买家代理20使代理具有鲁棒性(robost),并提供ActiveX组件的强大功能。没有必要提供HTML和脚本代码的工作区(workaround)方案来满足应用程序的需求。使用ActiveX组件,可以通过在客户端HTML文件中添加几行代码来运行该代理,而把所有复杂的过程留给服务端执行。第二,ActiveX组件向其他应用程序提供可重用性而不是在每个应用模块中拷贝类似的功能。所创建的ActiveX组件可以被所有活动服务器页面模块访问。换言之,不需要在ASP模块中编码所有的逻辑。因此,这消除了应用程序中的冗余。虽然语义识别买家代理是在单一应用内创建的,但是这并不妨碍也与其他应用集成的能力。此外,该特性可以有助于大大减少开发时间。第三,把ASP组件连接到DLL(动态链接库)文件是有益的,因为它们是被独立地编译和链接的。不需要附加的重编译和重链接就能更新ASP组件。因此,使用DLL的ActiveX组件的好处是改善速度或以后升级版本增加新功能。另外,DLL通过在多个模块之间共享单一的公共代码拷贝而可以减少对内存和磁盘空间的需求。如果有多个组件使用同一静态链接库,那么必须存储和执行库的多个相同的拷贝。因此,如果它们同时运行就需要在内存中有多个相同的拷贝。所以,显然使用静态链接库可导致冗余和空间浪费。如果使用DLL来代替静态链接库,那么只需要一份代码和资源拷贝。这可以使服务器保持在最小的工作量,因为有来自因特网的多个并发的连接。语义识别买家代理20优选是作为进程内DLL开发的ActiveX组件。它可允许用户通过万维网创建SRBA的对象。为了在用户和服务器之间通信,用ASP充当用户与服务器之间的网关。ASP是一种开放的应用环境,在该环境中HTML页面、脚本和ActiveaX组件被结合起来以创建基于WEB的应用程序。另外,它被构筑为因特网服务器应用程序界面(ISAPI),其在微软公司的因特网信息服务器(IIS)上或与IIS相对的对等网络服务器上运行。为了实现ASP,使用微软的ActiveX脚本,比如在管理ActiveX组件的过程中使用的VisualBasic(VB)脚本。它通过增加调用在服务器上作为DLL运行的ActiveX组件的能力来使语言动态化。程序逻辑—创建语义识别买家代理的对象当用户开始搜索所希望的产品的价格时,语义识别买家代理20的对象被创建。在活动服务器页面,以伪码形式编写的模块如下StartsubsessionSetagent=serverCreateobject(“NextGen......)Endsub当页面被加载时,上述模块创建一个语义识别买家代理20对象,而NextGen是ActiveX组件的名称。语义识别买家是代理在NextGen组件中的名称。用户与服务器之间的连接在语义识别买家代理20的实例被创建之后就在用户和服务器之间建立了连接,如图29所示。语义识别买家代理使用可连接的对象来维护“一对一”(通道),用户通过该通道与服务器通信,比如用户请求服务器比较价格,而语义识别买家代理20使用输出接口作为连接(通道),服务器通过该连接(通道)与用户通信,比如服务器将所请求的搜索结果返回给用户。用户可以利用这些属性并通过IconnectionPoint调用语义识别买家代理的方法。语义识别买家代理20采用下述的方法1、OnStartPage(未知代理)该方法用于初始化语义识别买家代理的对象,该方法在装载ASP时被自动调用。2、OnEndPage()该方法用于终止语义识别买家代理的对象,该方法在卸载ASP时被自动调用。3、GetSearch(BStrinput,BStr*output)该方法用于当用户提供了产品说明(如型号)之后在因特网上搜索所需的产品价格。Input是用户的产品说明,而Output是搜索结果页面的输出。调用该方法的语法是OutputName=AdObjectName.GetSearch(“ProductName”)在上述代码中,AdObjectName是对象的实例名,而“ProductName”是买主/用户代理想要比较价格的产品名称,以及OutputName是得到所返回值的变量。参考如下例子的伪码Ifresult=AgentGetsearch(“Radardetector”)服务器端程序逻辑登记组件在用户可以启动语义识别买家代理的对象之前,其组件必须在服务器上通过下面的命令来登记Registerpath\Nextgen.dll其中Path是Nextgen.dll被存放的绝对路径。对用户请求的响应当语义识别买家代理对象通过IconnectionPoint调用GetSearch方法时,服务器机器上的语义识别买家代理的实例执行动态链接库(DLL)。参见图30。连接数据库需要提供数据源名称(DSN)、标识(ID)以及口令以通过ODBC连接到SQL服务器。RETCODE是存储从SQL服务器返回的值的变量。SQL_SUCCESS表明成功的检索。CStringsDSN=“NextGen”;CStringsID=“NextGen”;CStringsPassword=“NextGen”;RETCODErc;rc=SQLConnect(hdbc,sDSN,”,”sID,”,”sPassword,””);If(rc==SQL_SUCCESS){...executequery...}else{...errorhandling...}执行SQL查询在从SQL检索期望的数据之前,需要指定的查询。//分配语句句柄SQLAllocStmt(hdbc,&hstmt);//查询语句;型号是来自用户的型号CStringsQuery=″select*fromtbl_electronicwheremodel=+″model″;rc=SQLExecDirect(hstmt,sQuery,″″);if(rc==SQL_SUCCESS){...retrievingfields..}检索字段在成功执行查询之后,卖家说明将被存储在一个称作vendor_description的数组中。该数组有两个成员变量包装和卖家URL。rc=SQLGetData(hstmt,column_number,data_type,sWrapper,sizeof(sWrapper));if(rc==SQL_SUCCESS)vendor_description[i].wrapper=sWrapper;rc=SQLGetData(hstmt,column_number,data_type,sURL,sizeof(sURL));if(rc=SQL_SUCCESS)vendor_description[i].url=sURL;填写表单如果有N个卖家说明,则买家代理将启动N个线程来填写在卖家说明中规定的每个卖家的表单。为了运行每个线程,语法是//nNoVendor是卖家说明的数目;IntnNoVendor=no_of_vendor_description;For(IntnCount=0;nCount<nNoVendor;nCount++){//ThreadFillForm实施表单填写的类;Thread*ThreadFillFrom;Thread=AfxBeginThread(RUNTIME_CLASS(ThreadFillForm),...)}对每个线程来说,时间限制优选是大约5秒。如果在5秒内卖家没有返回结果,那么这次将放弃该卖家,否则,结果将被存储在存储器中以便下一个过程使用。当用户在本发明的入口处所提供的文本框中输入购买请求的关键字时,确定是否有任何相关的卖家说明,即包含该关键字的卖家说明。然后从离线数据库中检索出所有包含包装和URL的相关的卖家说明。之后,语义识别买家代理20与每个在线卖家可搜索的索引并行执行,填写表单并提交到卖家站点。在卖家站点,买家代理将调用成员函数httpPost来完成该任务。httpPost成员函数根据卖家说明将URL和表单数据传送给卖家,并用串变量返回一个HTML响应。httpPost成员函数返回布尔值,其中“真(true)”表示成功检索HTML文档,以及“假(false)”表示发生错误。如果返回值是真,则所产生的项目名称和价格将从HTML文档中进行提取。传送表单的流程在图31中示出。在步骤1002,为该会话创建CinternetSession对象。CinternetSession类连接到服务器以进行一个因特网会话。通常该类在会话中被早期地使用,以建立到网络服务器的连接。在步骤1004,通过调用CinternetSession对象的GetHttpConnection成员函数来创建CHttpConnection对象。CHttpConnection类建立与服务器的HTTP连接。在步骤1006,调用CHttpConnection对象的OpenRequest成员函数来创建一个CHttpFile对象。CHttpFile类让因特网上传送的文件能够象工作在本地盘文件一样被处理。它与CHttpConnection对象一起工作来读或写因特网数据。步骤1008调用CHttpFile对象的SendRequest成员函数来发送POST请求和表单数据到远程HTTP服务器。步骤1010、1012和1014重复调用CHttpFile对象的READ成员函数,该函数返回大量的响应数据给程序。当Read返回0时,就没有要检索的数据了。提取价格在得到结果页面之后,语义识别买家代理20将对照概括性错误模板来匹配每个结果页面。如果页面与模板不匹配,就认为是成功的搜索。然后买家代理20将用对应卖家的包装从成功页面中剥离头部和尾部信息。比如,假如用户搜索MD产品,型号是MD203,则给定的包装是{7,<B>,</B>,<l>,</l>,</TABLE>},以及结果页面如下所示。<HTML><TITLE>ASimpleProductCatalogs</TITLE><BODY><H2>MDPrice</H2><TABLEBORDER=1><TRBGCOLOR=ORANGE><TH>ModelNumber</TH><TH>PRlCE(US$)</TH></TR><TR><TD><B>HM381MD</B><TD><I>399.95</I></TD></TR><TR><TD><B>MD2070</B><TD><TD><I>599.95</I></TD></TR><TR><TD><B>MD203</B></TD><TD><I>249.95</I></TD></TR><TR><TD><B>MDR3</B></TD><TD><I>399.95</I></TD></TR></TABLE><HRWIDTH=200ALIGN=LEFT></BODY></TABLE>在包装中,有用的信息开始于第七行,结束于</TABLE>,因此语义识别买家代理20将在提取型号和价格前去掉无用的信息。去掉头部和尾部信息之后的HTML文件是Number</TH><TH>PRICE(US$)</TH></TR><TR><TD><B>HM381MD</B><TD><I>399.95</I></TD></TR><TR><TD><B>MD2070</B></TD><TD><I>599.95</I></TD></TR><TR><TD><B>MD203</B></TD><TD><I>249.95</I></TD></TR><TR><TD><B>MDR3</B></TD><TD><I>399.95</I></TD></TR>然后,语义识别买家代理20将使用模式匹配来提取型号和产品的价格。在包装中,型号的模式是<B>*</B>,以及价格的模式是</l>#</l>。其中*表示型号,而#表示价格。代理将首先提取型号HM381MD,并与用户请求的型号“MD203”相比较。由于它不匹配,所以语义识别买家代理20就查找另一个型号,直到它发现型号MD203为止。找到该型号之后,语义识别买家代理20使用价格模式提取该型号之后的第一个价格。当型号和价格被提取之后,语义识别买家代理20停止从该页面提取信息,并把信息放入一个称为array_item[]的数组。关键部分(CriticalSection)array_item[]是N个线程共享的数据,并且所有的线程都能够访问该成员变量。一个风险是多于一个的线程同时访问array_item[]时产生的访问冲突。为了保护该共享数据处于一致的状态,使用关键部分来阻止一个以上的线程同时修改数据。关键部分被声明为CCriticalSectionm_csDoor;在向array_item插入一个元素之前添加行m_csDoor,Lock();该行被用来启动该关键部分。关键部分内部的所有变量都被锁定以防止其它线程访问该特定变量。在完成插入之后,添加行m_osDoor.Unlock();该行被用来表示该关键部分的结束。所有锁定的变量将被解锁,以允许其它线程访问成员变量。这样,array_Item的成员变量能够安全地被所有线程共享。分类价格在指定的时间间隔,存储产品价格的数组sort_item将通过快速分类的方法被分类。快速分类方法按照以下方式实现IFleft<rightTHENBEGINpivot:=partition(list,left,right);Quicksort(listleft,piVot-1);Quicksort(list)pivot+1,right);END选择该结构的一个“关键”(key)值放在该代码的每个递归位置。该函数按两个方向重复地扫描该结构。小于该关键值的数值被传送到结构的左边,而较大的值被传送到结构的右边。这种“从左到右”和“从右到左”的扫描和交换持续到一个标记条件叫它们停止。将响应返回给用户一个HTML文件将被返回给用户,该文件被存储在成员变量m_output中,并且显示由SRBA20进行的搜索的分类结果。//用于将内容显示给浏览器的串*defineHTTP_HEADER“Content-typetext/htm\n\n”//显示给浏览器的代码与在前述的光盘上的本申请一起提交的是一个计算机程序列表附件,它提供实现本发明的选择性特点的代码部分。具体而言,在标有“3.1ThelearningPhase(学习阶段)”的部分提供了如下的源代码“3.1.1MainCOOSAAppllicationClass”-用于COOSA应用的主要类文件;“3.1.2AddVendorClass”-向数据库添加一个卖家类;“3.13COOSADocClass”-语义识别学习者界面的文件和屏幕的显示的调用;“3.1.4COOSAViewClass”-学习者界面及其功能屏幕;“3.1.5TrainingDataClass”-语义识别学习者代理的调用;以及“3.1.6VendorClass”-对所有的卖家网页进行处理的标记算法的说明。在标记有“ShoppingPhase(购物阶段)”的部分,提供了如下的源代码“3.2.1AgentClass”-语义识别买家代理的说明;以及“3.2.2ThreadProcess”-语义识别买家代理的部分过程。现在参考图32到39,下面将详细描述与本发明相关的所用的GUI或交互式代理角色购物者/买家界面。在图32中简单说明了用于本发明的GUI或交互式代理角色购物者/买主界面(IACS/BI)的“主菜单”屏幕。要注意的是,在该“主菜单”屏幕的右上角有供用户对产品“通道(channel)”(类别)的选择。在屏幕的左边提供了“快速搜索(QuickSearch)”功能。在它的正下方提供了一个框,其中一个自键入的活动部分指导在线人类用户如何使用该快速搜索选项。左边的屏幕面板还提供了一组框,供成员作为临时试用成员或者终身成员进行登录。(注意本发明的大部分入口功能都被禁用,直到用户验证有效为止)。在左下角提供了一组指向已经向本发明的入口注册的在线卖家的链接,而在右边,可以看到一个标记有“feedback(反馈)”的大消息框被提供以用于在线用户通过电子邮件向电子邮件服务器(优选是运行微软公司的OutlookExpress品牌的电子邮件服务器)输入注释消息。图33是与本发明一起使用的GUI或购物者/买主界面的屏幕的简化说明,其中响应于在线买主/用户对在前面的屏幕(未示出)上的“政府对企业”文本图标的点击而显示公司。但是,注意到正是这个屏幕不能起作用,因为这些公司或所谓的政府对企业电子商务服务或平台提供商目前通过在整个封闭连接的计算机网络环境中结合验证安全接口来严格限制成员使用它们的网络服务器数据库的特权。图34是与本发明一起使用的GUI或购物者/买家界面的屏幕显示的简化说明,其中提供了关于用户从多个选择中选定的公司的细节,所述多个选择是在用户在图33屏幕上点击“高级搜索”选项后提供的。注意在该屏幕中,可以看到正好位于五种类型的域的标签的正下方的屏面的框中的标题,即大写的消息“ADVANCEDAGENTSAREON!(高级代理运行中!)”。此外,在该屏幕的底部向用户提供对话框,其可被填写,以便利用由本发明提供的语义识别买家代理的功能来运行搜索。然而再次注意到,正是该屏幕不能起作用,因为这个公司或所谓的政府对企业电子商务服务或平台提供商目前通过在整个封闭连接的计算机网络环境中结合验证安全接口来严格限制成员使用它们的网络服务器数据库的特权。图35是与本发明一起使用的GUI或购物者/买家界面的屏幕的简化说明,其中响应于在线买家/用户对在前面的屏幕(未示出)上的“企业对企业”文本图标的点击而显示公司。然而注意到,正是该屏幕不能起作用,因为这些公司或所谓的企业对企业电子商务服务/平台提供商目前通过在整个封闭连接的计算机网络环境中结合验证安全接口来严格限制成员使用它们的网络服务器数据库的特权。图36是与本发明一起使用的GUI或购物者/买家界面的屏幕显示的简化说明,其中提供了关于用户从多个选择中选定的公司的细节,所述多个选择是在用户在图35屏幕上点击“高级搜索”选项后提供的。图37是与本发明一起使用的GUI或购物者/买家界面的屏幕的简化说明,其中响应于用户选择“域A”标签而显示所选项目及其说明。图38是与本发明一起使用的GUI或购物者/买家界面的屏幕显示的简化说明,其中所列出的卖家出售A域中的项,以响应于在图37的屏幕上点击“高级搜索”选项的用户。图39是与本发明一起使用的GUI或购物者/买家界面的屏幕显示的简化说明,其中提供了利用本发明的语义识别买家代理的特性进行搜索的结果的细节。购物者/买家界面响应通过图38中屏幕底部所示的搜索参数界面提交搜索请求的用户。需要进一步理解的是,尽管已经就因特网和万维网说明了本发明,但是本发明同样适用于最近引入的系统和下一代系统。举例来说,无线应用开发工具J2ME(JavatoMicroEdition)可以用于将在线智能多语言和域独立价格比较性能结合到移动/无线平台,包括所有型号的3G或WEB电话、交互式和极限电视(UltimateTV)、袖珍PC、掌上型管理器(Palmorganizer)、一体化网络使能掌上同步器(all-in-oneWeb-enabledPalmSynchronizer)、无线写字板等,以用于将主页上的众多产品和多语种的增值商业WEB服务发送给移动工作者和网民,其中该主页作为基于24/7/365的一站式任意地点的访问点。此外,本发明可以通过有线和移动/无线平台提供各种产品和多语种增值商业WEB服务,这些产品和服务具体有如下能力、功能和特性价格比较,电子钱包集成,具有协商能力的代理间通信—代理到代理(A-to-A)合同协商—对多个电子商务段的真实世界仿真能力,包括消费者到企业(C-to-B)、消费者到消费者(C-to-C)、和企业到企业(B-to-B)拍卖、政府到企业交易(G-to-B)等。这些A-to-A商务或A商务的活动将结合使用键盘、鼠标和定点设备以动态方式即时在全球整体市场框架中被构筑和激活。在以下部分中,提供关于本发明的基于Java和移动的实现以及在搜索配置中的改进的进一步的信息。用户界面本发明提供一种实时的自动化的全球入口,由此在线用户能够利用无线或硬连线的或其它装置通过万维网和因特网进行多语种和非多语种的字符搜索,以查看超链接第三方卖家网站和它们的在线目录,以便获得任何领域的产品和服务信息、图像和概要、价格—产品—等级比较以及它们的特色比较。一个自动化的助理快速跨国界搜索和提取需要的关键字产品并迅速返回产品的最佳价格、它的略图及其简要描述,并把它们显示在结果页面上。现在参考图40,将简要地说明按照本发明所提供的QuickSearch(快速搜索)和AdvancedSearch(高级搜索)。图40说明在桌上型电脑或膝上型电脑或其它显示器上可能出现的用户界面的主页。本发明的这个实施例优选可以通过微软公司制造的InternetExplorer(IE)4.0或更高版本进行访问。在用户系统的IE被打开后,用户键入该入口所位于的URL,例如http://www.coolsa.com。然后将出现一个类似于图40中所示的主页。用户然后点击一个标签,比如标签“DomainA”,其可能对应于一个诸如“电子/任何产品”的域,于是对应于DomainA的页就出现,如图40中所例示的那样。快速搜索为了进行快速搜索,用户只需要输入一个关键字并选择一个国家来搜索一个产品。如在图41的左边列中所指示的那样,用户选择感兴趣的卖家所位于的国家,将一个诸如“mp3”之类的关键字键入“Keyword”框,然后点击GO!或者按(键盘上的)Enter(回车键)以开始搜索。响应于该搜索查询,系统返回诸如图42中所示的结果页面,该页面含有对早先输入的关键字的搜索的结果。如从图42中可见的那样,SearchResults(搜索结果)标识该关键字(图42中显示为“XXX”)以及所找到的项目的个数(图42中显示为“NNN”)。也为每个项目提供一个项目缩略图、一个项目说明、项目被发现的“store(商店)”以及价格。缩略图或产品说明或“buynow(现在购买)”优选提供超链接,以察看在线卖家搜索结果页上的进一步的细节。提供该商店的超链接以允许用户察看该卖家网站的主页。高级搜索也提供高级搜索功能,该功能通过点击如图42中所示的页的右上角的超链接“AdvancedSearch”而被调用。作为响应,出现如图43中所示的高级搜索(AdvancedSearch)页。用户然后在“Yourcountry/Locale”框中选择感兴趣的卖家所在的国家。该AdvancedSearch页显示所选择的国家中的卖家。用户然后点击所希望的一个或多个商店的复选标记框。(如果没有商店被点击,则将提取缺省值并显示对所有卖家的搜索结果)。需要的话,用户也可以输入一个“超时时间”和“价格范围”(PriceRanges)。用户也输入关键字(Keyword),这是必须要输入的。在用户键击回车或点击“go”以开始搜索后,出现一个搜索结果页,该页类似于图42中所显示的页,并带有类似的信息和链接。示例性的实现本发明的这个实施例优选是用J2EE小服务程序/JSP引擎Tomcat4,一种后端数据库Firebird1.0,JavaSunJDK1.4,架构(Framework)Struts1.1以及构造工具(BuildTool)Ant1.5来实现。这个实施例提供一个管理控制台,它使管理员能够执行维护任务,包括添加/编辑国家信息、添加/编辑卖家信息以及训练/编辑卖家说明。采用一个Struts架构来模拟使用JavaBean、JSP、定制JSP标签(customJSPtag)和Java小服务程序的组合的MVC体系结构的服务器端实现。MVC(模型—视图—控制器)体系结构是把一个应用分解成模型、视图和控制器这三个部分的一种方式。模型一个模型代表一个应用的数据并含有用于访问和操作该数据的逻辑。作为该应用的持久状态的部分的任何数据都应当驻留在模型对象中。一个模型所展示的服务必须通用得足以支持各种客户。通过扫视模型的公共方法列表,应当容易理解如何控制模型的行为。一个模型为提供特定的服务而把相关数据和操作分组;这些操作组包装(wrap)和抽象被模拟的操作的功能。一个模型的接口展示用于访问和更新该模型的状态的方法以及用于执行被封装在该模型内的复杂过程的方法。模型服务被控制器访问以用于查询或实现模型状态中的一个变化。当模型中发生一个状态变化时,模型修改视图。视图视图负责呈现模型的状态。表达语义被封装在视图内。因此,可以使模型数据适于几种不同类型的客户机。当模型中的一个变化被通知给视图时,视图修改自身。视图向控制器转发用户输入。控制器控制器负责截获用户输入并把用户输入翻译成要由模型执行的动作。控制器负责根据用户输入和模型操作的结果选择下一个视图。控制器对象控制器对象支持通常处理视图和导航管理的控制器层的更有规则的分工,从而把模型访问和操纵留给通常是特定于请求的请求处理器。所有输入的请求都在如下的部署描述符中被映射到中央控制器<servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param><param-name>detail</param-name><param-value>0</param-value></init-param><load-on-startup>2</load-on-startup></servlet>所有具有模式*.cgi的请求URL都在如下的部署描述符中被映射到这个小服务程序<servlet-mapping><servlet-name>actlon</servlet-name><url-pattern>*.cgi</url-pattern></servlet-mapping>与这个模式匹配的请求URL具有以下形式http://www.coolsa.com/xxx/xxx.cgi上述的资源的逻辑映射允许配置文件内资源映射的修改而无需变更任何应用代码;这个映射方案也被称作多重资源映射(MulitplexedResourceMapping)。控制器为所有表示层(presentation-tier)请求提供一个集中访问点。同时,控制器把每个输入请求委托给RequestProcessor,后者再把该请求派发到相关的表单bean以用于表单验证,并派发到请求处理器以用于访问该模型。控制器与RequestProcessor的组合构成核心控制器过程。控制器所提供的抽象减轻了开发者创建像管理视图、会话和表单数据这样的公共应用服务的负担;开发者利用诸如出错和异常处理、导航、国际化、数据验证、数据转换等等的标准化机制。调度器对象RequestProcessor起着调度器的作用,并通过实例化(或重新使用)请求处理器和对应的表单bean而处理客户请求。由表单bean和请求处理器产生的错误或造成的异常被影响RequestProcessor的视图管理功能的RequestProcessor处理。表单bean辅助RequestProcessor存储表单数据以及/或者安排视图所需要的中间模型数据。RequestProcessor用下面所示的struts-config.xml文件中的<action>声明来实例化特定于请求的请求处理器。<form-beans><form-beanname=″searchForm″type=″com.coolsa.shopper.SearchForm″/><form-beanname=″vendorForm″type=″com.coolsa.vendor.VendorForm″/>…………</form-beans><actionpath=″/Search″type=″com.coolsa.shopper.SearchAction″name=″searchForm″scope=″request″validate=″false″><forwardname=″success″path=″/pages/searchResult.dhtml″redirect=″false″/><forwardname=″fail″path=″/pages/searchltem.dhtml″redirect=″true″/></action><actionpath=″/Vendor″type=″com.coolsa.vendor.VendorAction″name=″vendorForm″scope=″request″parameter=″method″validate=″false″><forwardname=″success″path=″/advance.dhtml″redirect=″false″/><forwardname=″fail″path=″/pages/vendor.dhtml″redirect=″true″/></action>…………所有输入请求都被控制器委托给作为RequestProcessor对象的调度器。使用ActionMapping的命令模式所描述的实施例采用一种声明的方式来使用XML语法规定在请求URL中的小服务程序路径与适当的请求处理器之间的映射。这个实现非常类似于命令模式。以下的片断来自struts-config.xml文件。这些声明用于创建ActionMapping配置对象,后者是<action>元素的运行时表示。<action-mappings><actionpath=″/Welcome″type=″org.apache.struts.actions.ForwardAction″parameter=″/pages/index.dhtml″/><actionpath=″/Search″type=″com.coolsa.shopper.SearchAction″name=″searchForm″scope=″request″validate=″false″><forwardname=″success″path=″/pages/searchResult.dhtml″redirect=″false″/><forwardname=″fail″path=″/pages/searchltem.dhtml″redirect=″true″/></action>……</action-mappings>前面的声明中所使用的属性被定义如下“path”-在HTTP请求中的上下文相对的路径,其用于标识这个动作映射。“type”-将被用于创建处理这个请求的请求处理器的一个实例的类名。“name”-将被用来保存表单数据的JavaBean,也称为表单bean。利用这个名称将在指定的范围内保存该表单bean。“scope”-用于保存表单bean的请求或会话范围。购物者图44提供一个流程图,它描述按照本发明的购物者/购物代理的详细应用逻辑。特别地,在收到一个购物请求时(4410),在4412中解析该请求中的输入数据。根据所解析的数据,从数据库中检索卖家信息(4414),并创建一个购物代理(4416)。所创建的购物代理的每一个然后向其对应的卖家发送一个请求(4418)。然后,根据来自数据库的卖家定界符信息,检查响应于购物代理请求而返回的信息是否是有效信息(4420),并且有效信息然后被积累,直到发生超时或者所有购物代理都返回了信息(4422)。之后,将有效信息分类(4424),然后合并到一个HTML中并在一个结果页中返回给用户。学习者图45描述按照本发明的学习者代理的详细应用逻辑。首先,在收到一个“学习”卖家的请求后,学习者代理被调用(4512)并被初始化(4514)。然后从数据库中检索卖家信息(4516),并且训练例子也被检索(4518)。然后连接到卖家网站,以收集进一步的训练页(4520)。一旦从卖家网站检索了额外的训练页,则这些页就被解析,以标识产品和价格的定界符候选(4522,4524,4526,4528),然后,学习到可行的价格和产品定界符(4530,4532,4534),然后,确定最佳的定界符组合(4536)。这个信息然后被保存并被用来更新卖家说明信息(4538)。添加国家图46提供关于由本发明维护的国家信息字段的信息,包括数据字段的名称、该数据字段中所保持的信息的描述以及该数据字段所允许的值。参考图47,说明了添加国家信息的过程。在添加国家(AddCountry)模块中所提供的操作包括以下“MapgetAlICountries()”-从数据库中检索所有国家。图48说明在AdministrationConsole(管理控制台)与“MapgetAlICountries()”操作相联系地提供的屏幕。在屏幕的右上角,用“Country”链接来调出这个国家列表。通过点击“CountryID”列中的一个特定国家,“CountrygetCountry(StringcountrylD)”操作就被调用,它检索一个给定了countryID的特定国家。图49说明响应于“CountrygetCountry(StringcountrylD)”而在AdministrationConsole上出现的屏幕。这个屏幕显示关于所选择的国家的现有的细节,并允许操作者编辑所选择的国家的国家信息字段。如果需要的话,可以修改CountryName(国家名称)或Encoding(编码)。操作者可以输入正确的国家名称选项以及/或者从一个下拉式列表中选择正确的Encoding选项,或者从一个下拉式列表中选择现有的国家。操作者可以点击Save以保存修改的国家信息,或者点击Cancel以取消修改的国家信息。点击Save时,“intupdateCountry(Countrycountry)”操作被调用,其在数据库中更新国家信息。如果在图48中的屏幕上操作者希望添加一个国家,则要点击“国家列表”表格的右上角中的Add按钮。这将调用“intaddCountry(Countrycountry)”操作,其向数据库添加一个新国家。这将调出图50中所示的屏幕。操作者然后输入一个新国家名选项或者从下拉式列表中选择已有的国家之一。然后,操作者从下拉式列表中选择已有的编码数据字段之一。操作者然后点击Save以保存添加的国家信息选项,或者点击Cancel以取消添加的国家信息。在图48中所示的屏幕的“国家列表”表格中,操作者也可以点击Action列下的Delete按钮,以删除一个已有的国家。这调用“intdeleteCountry(StringcountrylD)”操作,其从数据库中删除具有其国家ID的已有国家。添加卖家(AddVendor)图51提供关于由本发明维护的卖家信息字段的信息,包括数据字段的名称、该数据字段中所保持的信息的描述以及该数据字段所允许的值。参考图52,说明了添加卖家信息的过程。“卖家”是一个允许在线用户/买主在其网站上购买产品的在线商店。在AdministrationConsole中,“卖家”由卖家信息、训练例子和卖家说明组成。图53说明在控制台的右上角点击卖家(Vendor)链接是出现的AdministrationConsole屏幕。这个链接调用“MapgetAIIVendor()”操作,其从数据库中检索所有的卖家。注意在图51中所述的字段在这个屏幕中被显示,“AllCountries”选择被显示在“ListofVendors”表的左上角的下拉式窗口中。通过选择“ListofVendors”旁边的下拉式列表上的国家之一可以根据国家筛选卖家。这调用“MapgetVendorByLocale(Stringlocale)”操作,其检索给定一个特定地点的卖家。图54中说明这个操作在以美国作为所选择的地点时的一个例子。通过点击一个特定卖家的VendorID(在图53或54中的“VendorID”列中出现的带下划线的数字),操作者能够查阅所选择的卖家的细节。这调用检索一个给定了卖家id的卖家的“VendorgetVendor(StringvendorlD)”操作。Vendor屏幕/页面的现有细节看起来如图55中所示的那样。通过点击图55中所示的VendorDetails(卖家细节)屏幕的“VendorInformation(卖家信息)”表中的“Edit(编辑)”按钮,可以编辑一个卖家的现有细节。这调用“VendorgetVendorByName(Stringname)”操作,其检索一个给定卖家名称的卖家,并显示图56中所示的屏幕。操作者然后可以根据需要修改VendorName、Description、VendorURL、FormURL、Country以及Currency字段。操作者然后可以点击Save以保存修改的卖家信息选项或者点击Cancel以取消修改的卖家信息。这调用更新数据库中卖家信息的“intupdateVendor(Vendorvendor)”操作。如果操作者希望添加一个卖家,则点击图54的屏幕的右上角的Add(添加)按钮,于是调用一个添加一个卖家并返回其卖家id(vendorid)的“StringaddVendor(Vendorvendor)”操作。图57提供一个在“添加卖家”操作中被显示的屏幕的例子。该操作允许操作者输入一个新的卖家名称、输入一个说明(对该卖家的行业的简要说明)、输入其卖家URL、输入其表单URL、从下拉列表中选择其中一个国家以及从下拉列表中选择其中一种货币。操作者然后可以点击Save以保存添加的新卖家信息选项或者点击Cancel以取消添加的新卖家信息。如果操作者希望从卖家列表中删除一个卖家,则这是在图55中所示的VendorDetails(卖家细节)屏幕中完成的。操作者点击“VendorInformation”表中的右上角的Delete(删除)按钮。这调用从数据库中删除一个卖家的“intdeleteVendor(StringvendorolD)”操作。学习现在返回图55,可以看到,在按照本发明的VendorDetails的AdministrationConsole(管理控制台)中显示其它两个表或屏幕—“TrainingExample(训练例子)”和“VendorDescription(卖家说明)”。“TrainingExample”是在用来学习被包含在“VendorDescription”中的信息的训练操作中找出的信息的例子。“VendorDescription”提供关于在卖家的网页中使用的头(head)、尾(tail)和定界符特征的信息。所述的本发明实施例中所用的“TrainingExamples”字段包括TrainingExample模块维持用于学习者功能(Learnerfunction)的训练例子。当点击AdministrationConsole中的“Vendor”链接(例如参见图48的右上角)时,“MapgetTrainingExamples()”操作被调用,其检索所有的训练例子并提供图55中的“TrainingExample”屏幕。也可以调用检索给定域id和卖家id的训练例子的“MapgetTrainingExamples(StringdomainlD,StringvendorlD)”操作,以便显示通过所选择的产品域和所选择的卖家而被筛选的训练例子。在图55中所示的“TrainingExamples”屏幕中,ExampleID的一个例子是10019。这是为已经收集到其训练VendorInformation的卖家分配的ID。收集这种信息所用的搜索字是“TabletPC”,以及与该信息的收集相关联的特定产品是“CompaqTablePCTC1000”。所收集的价格信息也被详细说明。如果操作者点击ExampleID数字,例如图55中的10019,则“TrainingExamplegetTrainingExample(StringexampleID)”操作被调用,其检索给定训练例子id(本例中是10019)的训练例子。如果操作者点击图55的屏幕中的Add按钮,则调用“StringaddTrainingExample(TrainingExampletrainingExample)”操作,该操作把一个训练例子添加到数据库,并返回它的id。图58说明AddTrainingExample(添加训练例子)屏幕,其被用于新的训练例子的操作者输入。操作者可以在“SearchWord”字段中输入搜索字(例如MP3),在“ProductName”字段中输入产品名称/型号,以及在“Price”字段中输入对应的价格。操作者点击Save以保存一个添加的新训练例子选项,或者点击Cancel以取消添加的新训练例子选项。该操作返回新的训练例子的ExampleID。当操作者点击Save时,“intupdateTrainingExample(TrainingExampletrainingExample)”操作被调用,其更新数据库中的训练例子。如果操作者希望删除一个训练例子,则点击图55中的TrainingExample屏幕的“Action”列中的“Delete”按钮,以调用删除给定其id的训练例子的“intdeleteTrainingExample(StringexampIelD)”操作。卖家说明返回到图55,位于图的底部的“VendorDescription(卖家说明)”屏幕说明与本发明这个实施例相联系地为每个卖家收集的信息。VendorDescription优选包括在允许本发明查找在线卖家商店的在线目录上列举的产品和其相应价格的位置的卖家网页中使用的定界符。在本发明的优选实施例中维持的VendorDescription字段包括以下如果操作者希望编辑如图55中所示的VendorDescription,则点击VendorDescription屏幕的Edit(编辑)按钮将导致出现图59中所示的EditVendorDescription(编辑卖家说明)屏幕。操作者然后可以按需要修改项目左定界符、项目右定界符、价格左定界符或价格右定界符。操作者然后可以点击Save以保存修改的定界符选项或者点击Cancel以取消修改的定界符。返回到图55,如果操作者希望让系统“学习”新的VendorDescription,则操作者点击图55的VendorDescription屏幕中的“Learn(学习)”按钮,以及图45中所示的过程被调用。在这个过程期间被调用的操作中的有些如下所示图65是在系统按照图45的过程学习卖家站点时在AdministrationConsole上出现的屏幕的图示。返回到图40,如果操作者希望系统“购物”一个由Keyword标识的项目,则图44中所示的过程被调用。这发起一个实际访问卖家的网站以收集购物信息的智能软件机器人。该过程使用与图55相关的上述VendorDescription来对购物项目解析所收集的内容。在这个过程期间被调用的操作是下述移动实现本发明包括经由无线因特网提供本发明的购物能力的移动应用,通过经由具有购物者代理COOLSA服务器端的接口在J2ME使能或3G蜂窝电话和手持装置上的小屏幕板上显示跨国界的任何卖家的价格—产品比较的实时搜索结果,以便促进空前的在线国际贸易。现在参考图60A,在移动用户与实现本发明的网站的连接之后,用户被呈现一个SearchMenu(搜索菜单)。为了搜索项目,在线用户能选择要被搜索的卖家所位于的国家。如图60B中所示实施例所显示的那样,当选择“Country(国家)”时,这个选择引起一个CountryMenu(国家菜单),其列出信息被保存在服务器端的离线数据库中的那些卖家的国家。这个实施例中的默认国家是“UnitedStates(美国)”。在图60B中显示的屏幕的右下角提供一个“Choose”(选择)按钮,通过这个按钮可以选择被高亮度显示的国家。然后,如图61A中所示,从SearchMenu屏幕中选择“Product(产品)”。这导致出现一个SearchForm(搜索表单)屏幕,如图61B中所示的那样。这允许在线用户只通过输入关键字就能搜索一个产品。用户然后在一个关键字屏幕中输入一个关键字,诸如图61C中所示的“LCD”。当该关键字被输入后,用户然后按如图61D中所示的Search(搜索)按钮来开始搜索。图61E说明在一个搜索的完成之后被返回的结果的形式。用户然后能通过利用手持式装置的UP(上)或DOWN(下)按钮浏览项目。用户能从搜索结果中选择一个项目,并按“Detail”(细节)按钮来获得关于项目的进一步的细节,如图61F中所示的那样。可以用“Back”(返回)按钮以返回到项目搜索结果的列表。移动应用优选地,本发明的移动实施例是利用J2ME库MIDP1.0,J2EE服务小程序/JSP引擎Tomcat4,后端数据库Firebird1.0,JavaSunJDK1.4,FrameworkStruts1.1以及BuildToolAnt1.5实现的。这个实施例使用户能通过例如所有J2ME使能和/或3G蜂窝电话以及手持式装置用跨国界的选择进行在线购买/购物,以促进实时在线国际贸易。按照本发明的这个实施例,移动客户机建立于J2ME平台上。它通过HTTP协议和XML与服务器通信。利用J2ME作为移动应用开发工具具有以下的双重好处(1)服务器检测客户机为移动应用,并返回XML而不是JSP。在服务器端,只有模型对象需要被改变。(2)设计的好处是,服务器端的基础应用无需被改变就能处理不同种类的客户机。Java2MicroEdition(J2ME)是一个用于为手持式装置开发应用的平台。在J2ME中,配置通过规定哪些Java特性是可用的以及哪个虚拟机将被使用而为一组装置定义运行时环境。在J2ME中,连接有限设备配置(CLDC)定义一个针对具有有限的处理能力、显示器和存储器的装置的配置。这些装置大多也是移动的。同时,在配置之上是简档(profile)。简档提供用于用户界面设计、网络支持和持久存储的API。移动信息设备简档(MIDP)是一个JavaAPI的集合,它与CLDC一起提供一个针对诸如蜂窝电话、呼机和入门级PDA的手持式装置的完整的J2ME应用运行时环境。为了集成无线J2ME移动应用,HTTP和XML(具体而言是kXML)被用作客户机端与服务器端之间的集成点。对于HTTP,移动应用以“requestSource=mobile”向服务器发送请求,该请求让服务器知道该客户机是个移动应用。于是服务器返回XML而不是JSP。对于XML,客户机端使用kXML,而服务器端使用JDOM。由于MIDP不提供对XML解析的本机支持,所以kXML被用作XML解析器。它提供特别针对MIDP平台的非验证XML拉式解析器和写入器(non-validatingXMLpullparserandwriter)。最小的kXMLJAR文件处理/大小21k字节,完整的kXMLJAR(包括kDOM和WBXML)为37k字节。提供一个拉式模型(pullmodel)以使得用于处理状态的代码能用局部变量和递归以自然而有效的方式实现。选择国家图62说明用于移动实现的SelectCountry(选择国家)功能的模型。用于Country(国家)信息的数据字段包括“CountryID”,这是一个唯一的ID;“Name”,这是国家的名称;以及“Encoding”,这是MIME类型。作为用于编码SelectCountry的XML解析器的kXML包装(wrapper)代码具有以下的形式<?xmlversion=″1.0″encoding=″ISO-8859-1″?><Countries><Countryid=″Africa″><Name>Africa</Name><Encoding>8859_1</Encoding></Country><Countryid=″Belgium″><Name>Belgium</Name><Encoding>8859_1</Encoding></Country>..........</Countries>现在参考图63,所示的是本实施例中所用的用于搜索一个项目的模型。用于SearchItem(搜索项目)数据字段的编码包括“ItemID”,这是该项目的唯一的ID;“VendorName(卖家名称)”,这是卖家的名称;“VendorURL(卖家URL)”,这是卖家的URL;“Description(说明)”,这是项目说明;以及“Price(价格)”,这是项目的价格。作为用于在与基础应用的购物者代理的接口后在蜂窝电话或手持式装置的小屏幕板上显示上述搜索结果的XML解析器的kXML包装(wrapper)代码具有以下的形式<?xmlverslon=″1.0″encoding=″ISO-8859-1″?><Items><Itemid=″1″><Vendor><Name>Brandsmall.com</Name><Url>http://www.brandsmall.com</Url></Vendor><Description>CobyPersonalMP3/CDPlayerw/Anti-ShockModelMPCD500</Description><Price>99.98</Price></Item><Itemid=″2″><Vendor><Name>Brandsmall.com</Name><Url>http://www.brandsmall.com</Url></Vendor><Description>RCAKazooPortableMP3DigitalPlayerModelRD1000</Description><Price>84.99</Price></Item>........</Items>远程部暑以下是如何能远程地部署本发明的无线应用的一个例子。首先,将实现手持式装置与服务器之间的远程接口的“*.jar”和“*.jad”文件上传到一个远程网络服务器。然后重新配置远程网络服务器,使得它识别JAD和JAR文件(1)对于JAD文件类型,设置文件扩展名为.jad并把MIME类型设置为text/vnd.sun.j2me.app-descriptor;(2)对于JAR文件类型,设置文件扩展名为.jar并把MIME类型设置为application/java-archive。对于TomcatJ2EE服务小程序/VJSP引擎,web.xml文件被如下地配置<mime-mapping><extension>jad</extension><mime-type>text/vnd.sun.j2me.app-descriptor</mlme-type></mime-mapping><mime-mapping><extension>jar</extension><mime-type>application/java-archive</mime-type></mime-mapping>然后改变JAD文件的MIDlet-Jar-URL属性,以规定一个JAR文件的URL。例如,在被上传到服务器的“*.jad”的拷贝中,将“MlDlet-Jar-URLcoolsa.jar”改变为...“MlDlet-Jar-URLhttp://YourWebServerAddress:port/pathTo/coolsa.jar″。为了确定该应用是否被正确地部署,打开一个普通网络浏览器并输入JAD文件的URL。J2ME无线工具包的默认模拟器(emulator)应当出现,并且远程部署的应用应当在其中运行。J2ME使能的装置(例如Motorola/Nexteli85s)包括一个负责下载、安装和配置应用的Java应用管理器(JAM)。J2ME无线工具包包括一个能在默认模拟器中运行的样本JAM。为了看用户将如何下载和管理应用,打开一个命令提示,改变当前目录到<toolkit>/bin,然后输入命令emulator-Xjam模拟器出现,并且JAM的主屏幕将可见。图64A说明该工具包的1.0.4版的主屏幕的外观。选择安装软按钮,以及在图64B中所示的对应用的URL的提示下,输入含有至该应用的JAD文件的超链接的网页的URL。将一个长URL输入无线电话是不方便的。更快速更容易的启动方式是使用以下形式的命令emulator-Xjam:install=http://yourWebServerAddress:port/*.jad其中*.jad是应用文件的名称。无需进一步的输入,JAM下载在JAD文件中规定的JAR文件并安装该应用。模拟器下一次启动时,简单地选择JAM的Menu(菜单)按钮,然后用菜单来运行应用,删除应用,或者执行图64C中所示的其它功能。重要的是注意这个语法只允许一次安装一个MIDlet。输入一个URL允许察看一个可能含有要从中选择的若干个MIDlet的网页。例如,考虑以下含有至三个JAD文件的链接的HTML文件(midlets.html)<html><head><title>Midlets</title></head><body>下载midlets<p><ahref=″http://127.0.0.1:8080/coolsa.jad″>Coolsa.jad</a></body></html>重要的是注意超链接指向应用的JAD文件。现在,将URL输入图64D中所示的安装窗口。(IP地址127.0.0.1相当于本地主机。)JAM读取HTML文档(midlets.html),解析超链接,并显示一个能被下载的MIDlet的列表,如图64E中所示的那样。现在可以选择要下载的MIDlet。JAM读取JAD文件以发现该装置是否能够处理该应用。如果是,它就下载并安装在JAD文件中规定的JAR文件。一旦该应用的MIDlet被下载并安装,则一个类似于图64F的显示将出现,这将包括本发明的移动应用。优选地,“*.jad”应用是随J2ME无线工具包而来的MIDlet套件(suite)。图64G示出由JAM显示的一个屏幕,其通知用户,该用户正在试图安装的MIDlet已经在该装置上。然而,这也允许用户安装MIDlet的更新版本。附件A是手持式装置的一个清单,其被认为是适合用于本发明的移动实施例的部署。这里采用的术语和表达是用作描述的术语而不是限制的术语,并且使用这种术语和表达无意排除本说明中所显示和描述的特征或其部分的等同物,要认识到在本发明要求的范围内存在各种修改的可能。附录A附录A附录A附录A权利要求1.一种用于在互连的计算机网络上通过无线手持式装置客户机进行实时在线搜索处理的方法,该无线手持式装置客户机允许Java2微型版类应用,所述方法包括以下步骤a.配置一个用于识别无线手持式装置客户机并利用XML与该无线手持式装置客户机通信的服务器;b.从服务器接收由无线手持式装置客户机发送到服务器的一个国家名称和一个产品关键字请求;c.访问一个具有在互连的计算机网络上的多个卖家站点的卖家说明的离线数据库,具有关于该多个卖家站点中的每一个的信息的该卖家说明包括i)该多个卖家站点中的每一个的URL;ii)该多个卖家中的每一个的搜索表单URL;iii)在该多个卖家站点中的每一个中发现的域的说明;iv)关于在该多个卖家站点中的每一个上的产品信息是如何组织的通用规则;v)从该多个卖家中检索的价格和产品信息的样本;d.从卖家说明中标识可能具有与对指定国家的产品关键字请求相关的价格信息的卖家站点;e.利用所标识的卖家站点中的每一个的卖家说明来构造对产品关键字的搜索请求,包括对应的搜索表单URL;f.向所标识的卖家站点提交所构造的搜索请求;g.从响应于所提交的搜索请求而收到的搜索结果中提取价格和产品信息,其中所提取的价格和产品信息采用该站点的本机语言;以及h.通过服务器以XML将所提取的价格和产品信息传送到无线手持式装置客户机。2.权利要求1的方法,其中该通用规则包括能够唯一地标识价格和相关信息在该多个卖家中的每一个内的出现的定界符。3.权利要求1的方法,其中提取步骤包括在响应于所提交的搜索请求而收到的搜索结果中验证与所需的产品的准确匹配的步骤。4.权利要求1的方法,其中卖家说明是通过一个归纳学习方法而自动地构造的。5.权利要求4的方法,其中该归纳学习方法能够在多语种环境中工作。6.权利要求5的方法,其中该归纳学习方法是独立于域的。7.权利要求5的方法,其中该归纳学习方法采用一个包括来自在线商店的产品例子和URL的训练数据的小集合。8.一种用于在互连的计算机网络上实时在线搜索处理从无线手持式客户机收到的购物请求的方法,包括以下步骤a.利用XML通过远程服务器与无线手持式客户机通信;b.在离线数据库中保存互连计算机网络上的多个卖家站点的信息,其中该信息包括URL、搜索表单URL、域的说明以及卖家说明,其中卖家说明包括在每个卖家站点上的产品信息是如何组织的通用规则;c.处理通过远程服务器从无线手持式装置客户机收到的产品关键字请求;d.从多个卖家站点中的所标识的一些站点中提取实时的价格和产品信息,其中所提取的价格和产品信息采用站点的本机语言;以及e.通过远程服务器将所提取的价格和产品信息传送到无线手持式装置客户机。9.权利要求8的方法,其中所述处理产品关键字请求的步骤进一步包括从无线手持式装置客户机接收一个国家名称的步骤,并且所述提取步骤包括以下步骤i)实时地向多个卖家站点中的至少一个发送一个使用处理过的参数的请求;以及ii)从响应于该发送步骤而获得的搜索结果中检索与价格和产品信息有关的数据;iii)按价格分类所检索的数据;以及iv)显示来自多个卖家中的至少一个的所需产品的处理过的数据。10.权利要求9的方法,其中在该发送请求的步骤中,处理过的参数是从用户处接收的搜索参数和卖家标识、所标识的卖家的卖家说明以及所标识的卖家的URL的组合。11.权利要求9的方法,其中在离线数据库中保存的卖家说明包括标识卖家站点中的信息的模式,并且进一步地,其中该检索数据的步骤采用这些模式。12.权利要求9的方法,其中该提取实时价格和产品信息的步骤是独立于域并且独立于语言的。13.权利要求9的方法,其中传送处理过的数据的步骤基于以XML形式来包装要显示的信息。全文摘要一种用于在互连的计算机网络上实时在线搜索处理从无线手持式客户机收到的搜索请求的方法和系统,其中服务器利用XML类的协议与无线手持式客户机通信,并且为互连的计算机网络上的多个卖家站点保存离线数据库信息。所述信息包括URL、搜索表单URL、域的说明以及包括关于卖家站点的每个上的产品信息是如何组织的通用规则的卖家说明。来自无线手持式装置客户机的产品关键字请求是利用在离线数据库中保存的信息进行处理的。从标识的多个卖家站点中的一些卖家站点提取使用站点的本机语言的实时价格和产品信息;以及通过服务器将所提取的价格和产品信息传送到用户。文档编号G06Q30/00GK1997992SQ200480014815公开日2007年7月11日申请日期2004年3月25日优先权日2003年3月26日发明者维克托·西申请人:维克托·西
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1