CN102282557A - 开放式实体提取系统 - Google Patents

开放式实体提取系统 Download PDF

Info

Publication number
CN102282557A
CN102282557A CN2009801549564A CN200980154956A CN102282557A CN 102282557 A CN102282557 A CN 102282557A CN 2009801549564 A CN2009801549564 A CN 2009801549564A CN 200980154956 A CN200980154956 A CN 200980154956A CN 102282557 A CN102282557 A CN 102282557A
Authority
CN
China
Prior art keywords
user
document
extraction apparatus
matching engine
pattern matching
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
Application number
CN2009801549564A
Other languages
English (en)
Other versions
CN102282557B (zh
Inventor
维什哈·卡塞拉
陈世中
沃伊泰克·斯卡特
乌梅什·帕蒂尔
布拉登·F·科韦兹
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN102282557A publication Critical patent/CN102282557A/zh
Application granted granted Critical
Publication of CN102282557B publication Critical patent/CN102282557B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

提供了与提供小组件有关的方法、计算机程序产品以及系统,所述小组件基于根据提取器所定义的模式提取的实体来生成内容。从多个用户接收定义用于识别文本中的实体的模式的多个不同的提取器。将提取器存储在储存库中。将提取器中的每一个所定义的模式处理成对应的模式匹配引擎。使提取器对来自第一用户的预订第一提取器的预订可用。从合成程序接收关于第一用户的第一文档的修改指示,并且响应于接收修改指示,与第一提取器相对应的模式匹配引擎被应用于第一文档并且识别第一实体。将第一实体提供给第一软件小组件,所述第一软件小组件向用户展现与第一实体有关的信息。

Description

开放式实体提取系统
相关申请的交叉引用
本申请是专利申请并且要求于2008年11月26日提交的美国申请序列号No.12/324,737的优先权,在此通过引用合并所述美国申请的全部内容。
技术领域
本发明涉及向用户提供小组件(gadget),所述小组件基于根据提取器所定义的模式提取的实体来生成内容。
背景技术
一些基于web的应用和其它应用向用户提供小组件,所述小组件基于从搜索查询或文档提取的实体来生成内容。例如,一些应用展现小组件,所述小组件基于从搜索查询提取的实体来展现内容。这些实体典型地基于查询中的关键词或必须匹配整个查询的模式、而不是更复杂的模式来提取。一些应用展现小组件,所述小组件基于从文档提取的实体来展现内容。这些实体典型地基于文档中的关键词来提取。虽然一些应用可以辨识更复杂的文本模式,但是其仅在显示文档时才这样做,并且在对文档进行修改时不会这样做。
发明内容
本公开提供了实现用于向用户提供小组件的技术的方法、计算机程序产品和系统,所述小组件基于根据提取器所定义的模式提取的实体来生成内容。
总的来说,本说明书中描述的主题的一个方面可以具体化在包括下述的方法中:从多个用户接收多个不同的提取器。每一个提取器定义用于识别文本中的实体的模式。将提取器存储在储存库中。将提取器中的每一个所定义的模式处理成对应的模式匹配引擎。使提取器对预订用户的预订可用。接收来自第一用户的预订第一提取器的预订。接收来自合成程序的关于第一用户的第一文档的修改指示,并且响应于接收修改指示,将与第一提取器相对应的模式匹配引擎应用于第一文档。模式匹配引擎识别第一文档中的第一实体。将第一实体提供给第一软件小组件,所述第一软件小组件向用户展现与第一实体有关的信息。本发明的其它实施方式包括对应的系统、装置和计算机程序产品。
这些和其它实施方式可以可选地包括以下特征中的一个或多个。第一软件小组件可以在客户端上,以及第一提取器可以在服务器上。第一提取器所定义的模式可以依赖于第一文档中的字段。来自第一用户的预订可以是针对文件或馈给的。
处理提取器可以包括将每一个提取器处理成不同的模式匹配引擎或将多个提取器处理成相同的模式匹配引擎。
第一文档可以是附加文档,以及模式匹配引擎可以识别附加文档中的第一实体。
可以创建在第一用户、第一提取器和第一小组件之间的关联。可以从第一用户接收对第一小组件的预订。
可以从第二用户接收预订第二提取器的预订。可以从展现程序接收关于第二用户的第二文档的提取请求。响应于接收提取请求,可以将与第二提取器相对应的模式匹配引擎应用于第二文档。模式匹配引擎可以识别第二文档中的第二实体。可以将第二实体提供给第二软件小组件,所述第二软件小组件向用户展现与第二实体有关的信息。
可以从合成程序接收语境信息,并且将其提供给模式匹配引擎。
总的来说,本说明书中描述的主题的另一个方面可以具体化在包括下述的方法中:从多个用户接收多个不同的提取器。每一个提取器定义用于识别文本中的实体的模式。将提取器存储在储存库中。将提取器中的每一个所定义的模式处理成对应的模式匹配引擎。使提取器对预订用户的预订可用。从第一用户接收预订第一提取器的预订。从展现程序接收有关第一用户的第一文档的提取请求,所述第一用户的第一文档带有附加的第二文档,并且响应于接收提取请求,将与第一提取器相对应的模式匹配引擎应用于第一文档。模式匹配引擎将附加的第二文档识别为第一实体。将第一实体提供给第一软件小组件,所述第一软件小组件向用户展现与第一实体有关的信息。本方面的其它实施例包括对应的系统、装置和计算机程序产品。
这些和其它实施方式可以可选地包括以下特征。附加文档可以是媒体文件,以及第一软件小组件可以是用于媒体文件的播放器。
本说明书中描述的主题的特定实施例可以执行来实现下述优势中的一个或多个。本发明允许用户通过预订提供期望的提取功能的提取器和小组件来定制其对于应用的体验。本发明允许用户指定将从他或她的文档提取哪些实体。本发明允许用户从多个开发者所开发的多种多样的提取器和小组件进行选择。
在附图和下面的描述中阐述了本发明的一个或多个实施方式的细节。本发明的其它特征、目的和优势从描述和附图,以及从权利要求将是显而易见的。
附图说明
图1A图示了显示文档以及相关联的小组件的示例在线电子邮件应用的图形用户界面,所述小组件给予用户将所提取的电话号码添加到用户的地址簿的选项。
图1B图示了显示文档以及相关联的小组件的示例在线电子邮件应用的图形用户界面,所述小组件播放与所提取的URL相对应的在线视频。
图1C图示了显示文档以及相关联的小组件的示例在线电子邮件应用的图形用户界面,所述小组件显示与所提取的股票代码相关联的股票价格图。
图2图示了用于从多个用户接收提取器,并且将提取器应用于用户的文档的示例技术。
图3图示了系统的示例体系结构。
图4图示了通过系统的示例信息流。
图5是通用计算机系统的示意图。
具体实施方式
图1A图示了显示文档102以及相关联的小组件的输出104的示例在线电子邮件应用的图形用户界面。一般而言,小组件基于或部分基于通过模式匹配引擎从文档收集的实体来生成输出以向用户展现。小组件可以接受来自多个不同的模式匹配引擎的实体。小组件通常与基于web的应用相关联,但是可以与任何应用相关联,例如在个人用户的计算机上的应用。在各种实施方式中,应用是计算机程序。
举例说明,与基于web的应用相关联的小组件在服务器计算机上执行,并且将来自小组件的输出通过因特网传送给客户端计算机上的web浏览器,例如可从加州山景城的Google公司获得的Google Chrome(TM)或可从加州山景城的Mozilla Project获得的Firefox(TM)。与个人用户的计算机上的应用相关联的小组件通常在用户的计算机上执行;然而,其也可以在服务器计算机上,或部分在个人用户的计算机上以及部分在服务器计算机上执行。在各种实施方式中,用户可以选择将哪些模式匹配引擎和小组件与给定应用相关联。在一些实施方式中,将用户与给定应用自动相关联,以及可以给予用户选择退出关联的选项。
一般而言,提取器定义用于识别文档中的文本、辨识文档类型或两者的一个或多个模式。将提取器应用于文档产生零个或更多实体,诸如文档的满足提取器的模式的一个或多个部分。在一些实施方式中,将提取器处理成模式匹配引擎,然后该模式匹配引擎处理文档。将在文档中识别的实体提供给小组件。小组件使用这些实体来向用户展现基于文档的内容或其它内容。
举例说明,将提取联系信息(例如,个人的地址或电话号码)的提取器以及给予用户将所提取的电话号码添加到用户的地址簿的选项的小组件104与用户的电子邮件应用相关联。用户的电子邮件应用显示包括发件人的联系信息106的电子邮件文档102。在显示电子邮件文档102之前、当时或之后,小组件104提取并且展现电子邮件发件人的联系信息。小组件104允许用户将所提取的信息添加到他或她的地址簿。
图1B图示了带有与不同提取器相关联的不同小组件的相同在线电子邮件程序。在图1B中,提取指定在线视频的位置的URL的提取器以及播放在线视频的小组件114和116与用户的电子邮件应用相关联。URL或统一资源定位符是指定文件或资源在因特网上的位置的地址。在线视频是可以通过因特网流送的视频。在线视频可以由个人用户或诸如YouTube的专业网站托管。
用户的电子邮件程序显示两个电子邮件文档110和112。在较早的电子邮件文档110之下显示更近接收的电子邮件文档112。更近的电子邮件文档112包含在线视频的URL 120。在在线电子邮件程序中显示更近的电子邮件文档112之前、当时或之后,提取该URL,并且将其递送给小组件116,小组件116将与该URL相对应的在线视频加载到在线视频播放器中。较早的电子邮件110也包含在线视频的URL 118。当在在线电子邮件程序中与更近的电子邮件一起显示较早的电子邮件时,提取在线视频的URL 118并且将其递送给小组件114以向用户显示。由于另一个小组件116已经在播放视频,第二小组件114没有显示对应于所提取的URL的视频,而是准备好在用户点击播放按钮115时加载在线视频。在其它实施方式中,两个小组件同时播放其对应的在线视频。
图1C图示了与不同小组件相关联、进一步与不同提取器相关联的相同在线电子邮件程序。在此,提取器从电子邮件消息提取与在证券交易所上交易的股票相关联的股票代码,以及小组件120显示与所提取的股票代码相关联的股票的股票价格图。用户的电子邮件应用显示用户所写的电子邮件文档122,其包括Elephant Shoes″STK:EPSH″124和Kitty Cat Shoe″STK:KCSW″126的股票代码。在修改电子邮件文档122之前、当时或之后,提取股票代码信息,并且将其发送给小组件120。小组件120显示对应于所提取的股票代码的股票价格图。
小组件不限于上面的示例,而是可以基于从文档收集的实体来生成任何内容以向用户展现。例如,小组件可以基于文档中的引用来链接到存储在储存库中的软件代码版本,或基于文档中的用户名来生成指向用户的简档的链接。小组件的展现例如可以包括在显示设备上显示输出、传送声音或提供触觉反馈。
文档不限于电子邮件文档。例如,文档可以是网页、电子邮件、字处理文档、电子表格、用户简档、博客条目或部分文本。其它类型的文档是可能的。此外,文档不必对应于文件。文档可以被存储在保持其它文档的文件的一部分、专用于讨论中的文档的单个文件或者多个协调文件中。此外,文档可以在没有被首先存储在文件中的情况下被存储在存储器中。
图2图示了用于从用户接收提取器并且将提取器应用于文档的示例技术200。该方法可以例如由在一个或多个服务器计算机上的平台提供者执行。在各种实施方式中,平台提供者提供用于预订提取器以及针对用户文档运行与提取器相对应的模式匹配引擎的系统。
在步骤202,(例如,由平台提供者)从多个用户接收多个提取器。提取器定义用于识别文本中的实体的模式,或用于识别文档内容或类型的模式。实体例如是文本片段、部分文档、整个文档或文档类型。在各种实施方式中,提取器以可扩展标记语言(XML)代码编写;然而,提取器可以是以能够由计算机解释的任何标记语言或任何其它形式的。在一些实施方式中,提取器还包含帮助或执行提取的代码或对另一个提取器的引用。在一些实施方式中,提取器可以使用词汇分析器生成器,例如可在Unix计算机上获得的Lex,来定义。
在一些实施方式中,识别文本中的实体的提取器使用正则表达式来定义用于识别实体的模式。正则表达式是定义用于从给定文本提取一个或多个字符串的模式的文本字符串。将所提取的文本字符串识别为实体。识别文本中的实体的提取器在定义用于提取实体的模式时还可以使用字符串储存库。字符串储存库是与名称相关联的字符串集。可以以多种方式存储字符串集。替代手动列出所有字符串,可以在正则表达式中使用对应于储存库的名称。例如,提取器可以通过引用电影片名储存库,而不是列出模式下的每一个电影片名,来定义用来提取包括电影片名的字符串的模式。在一些实施方式中,每一个字符串储存库具有唯一名称。
在此是XML提取器的提取对由加州山景城的Google公司维护的Picasa(TM)相片共享站点的引用的示例代码。例如,对于下述,模式将匹配:指向私人相册的链接(诸如http://picasaweb.google.com/user1/myTrip?)、指向私人相册中的相片的链接(诸如,http://picasaweb.google.com/user1/myTrip?1543268902454325423)、指向私人相册中的视频的链接(诸如,http://picasaweb.google.com/user2/funParty?1432515542123455683)、指向公共相册的链接(诸如,http://picasaweb.google.com/user3/PublicPhotos#)、公共相册中的相片(诸如,http://picasaweb.google.com/user3/PublicPhotos#4687922)、精选相片(诸如,http://picasaweb.google.com/user4/BestPhotos?feat=featured#4598654578913456753)、精选相册(诸如,http://picasaweb.google.com/user4/BestPhotos?feat=featured#)、标记的相片流(诸如,http://picasaweb.google.com/user5/view?feat=tags&psc=G&filter=l&tags=trip#)、单个标记的相片(诸如,http://picasaweb.google.com/user5/view?feat=tags&psc=G&filter=l&tags=trip#1456774123112234789)或近来的相片(诸如,http://picasaweb.google.com/user6/Holidays2008?feat=recent#4245768123788746512)。
Figure BPA00001406527700081
Figure BPA00001406527700091
在此是在提取器中定义的提取用户名的示例模式。名称“user_names”与具有系统的每一个用户的用户名的字符串的字符串储存库相关联。当该标识符在提取器中被引用时,其用作user_names字符串储存库中的所有字符串的占位符。
<Pattern>(?x)
\b(?&lt;username&gt;(?M=user_names))\b
(?-x)</Pattern>
识别文本中的实体的提取器还可以依赖于被处理的文档中的某些字段。例如,从一个人到另一个人的电子邮件消息可以具有指定电子邮件发送至以及发送自何人的“to”字段和“from”字段。用于处理电子邮件消息的提取器然后可以查找电子邮件的“to”字段或“from”字段中的某些文本。提取器可以例如通过依赖于有关显示文档的应用所提供的文档的信息来识别文档的字段中的文本。
识别文本中的实体的提取器不限于上述功能,而是可以以任何数量的方式定义用于识别文本中的实体的模式。
识别文本中的实体的提取器还可以依赖于显示文档的应用所提供的语境信息。语境信息是关于应用的设置或应用的使用的信息。例如,显示文档的应用可以提供关于何人在用户的地址簿中的信息。提取器可以接收该信息,并且仅仅提取未在用户的地址簿中列出的个人的联系信息。
识别文档内容的类型的提取器识别一个或多个特定类型的文档内容。文档内容是指哪些类型的内容被存储在文档中。例如,图片文件具有图片文档内容。电影文件具有电影文档内容。文档可以具有与之相关联的多种类型的内容。例如,文档可以存储文本和图片两者,因此具有文本和图片内容两者。识别文档内容的类型的提取器可以以若干方式这样做,在一些实施方式中,包括分析文件的组成、文件的头类型或文件名。例如,提取器可以通过识别文件名是否以与图片文件相关联的扩展名(.JPG、.bmp、.gif、.tff等)结束来识别图片文件。可以提取这些文件,并且将其递送给向用户显示图片的小组件。识别文档内容的类型的提取器不限于在上面给出的示例,而是可以以任何数量的方式定义用于识别文档内容的类型的模式。
在一些实施方式中,从用户在其中上载其提取器的网页用户界面接收提取器。网页可以提供额外的功能,例如,列出用户先前已上载的提取器、允许用户从储存库删除说明文件、允许用户修改说明文件、允许用户从储存库下载说明文件以及允许用户区分共享提取器和私人提取器。共享提取器是用户希望使其对其他用户的预订可用的提取器。私人提取器是用户不想使其对其他用户的预订可用的提取器。例如当其他用户与上载提取器的用户有关系时,网页可以允许除上载提取器的用户外的用户编辑或删除提取器。网页可以进一步允许用户指定能够预订他或她的提取器的特定用户组。例如,用户可以仅仅允许特定域、组织或组内的用户预订他或她的提取器。网页还可以允许用户查看将其提取器处理成模式匹配引擎的状态,包括提取器是否已被处理以及过程是成功还是失败。网页还可以提供关于提取器的统计,诸如有多少小组件正使用提取器或提取器已处理了多少文档。在其它实施方式中,提取器从预先存在的提取器的数据库或可以生成提取器的过程获取。用于获取提取器的其它技术也是所预见的。
在一个实施方式中,要求用户在上载提取器之前验证他或她的身份。身份验证可以包括让用户输入用户名和密码。
当提取器被接收时,其可以可选地被测试。该测试可以包括确认提取器是良好形成的。良好形成的提取器是没有任何语法错误的提取器。一般而言,语法错误是编写提取器的方式错误,其意味着提取器不能被处理成可行的模式匹配引擎。
在步骤204,(例如,由平台提供者)将提取器存储在储存库中。储存库是存储在一个或多个机器可读存储设备上的提取器集合。可以将其它数据、程序和文件包括在储存库中,包括例如:对应于一个或多个提取器的模式匹配引擎、关于提取器的信息、用户和提取器之间的关联以及小组件。储存库不必在机器可读存储设备上的连续部分中,储存库也不必完全存储在同一机器可读存储设备上。在各种实施方式中,将储存库存储在平台提供者的服务器上。在替选实施方式中,将储存库至少部分地存储在一个或多个客户端机器上。
平台提供者还可以从用户接收小组件,在一些实施方式中,与存储提取器非常像地将小组件存储在储存库中。在一些实施方式中,在单个文件或馈给中定义小组件和提取器。
在步骤206,(例如,由平台提供者)将提取器中的每一个所定义的模式处理成对应的模式匹配引擎。在一些实施方式中,将提取器中的每一个所定义的模式处理成模式匹配引擎包括生成下述计算机程序:能够处理文档,并且将在模式匹配引擎中定义的模式应用于文档以从文档提取匹配模式匹配引擎所定义的模式的实体。例如,模式匹配引擎可以是与提取器所定义的模式相对应的解析器。一般而言,解析器处理文档中的文本字符串,并且识别对应于模式的实体。在一些实施方式中,将提取器中的每一个所定义的模式处理成模式匹配引擎包括将提取器识别为模式匹配引擎。
在一些实施方式中,将提取器处理成模式匹配引擎可以包括分辨提取器中的对字符串储存库的一个或多个引用。在提取器处理期间,用字符串储存库中的实际字符串来替代对字符串储存库的任何引用。
在一些实施方式中,在将对应于提取器的模式匹配引擎应用于文档之前对提取器进行处理。例如,可以在用户将提取器发送给平台提供者时对提取器进行处理。也可以定期,例如每五分钟,对未经处理的提取器进行处理。在一些实施方式中,在用户预订提取器时对提取器进行处理。在又另一个实施方式中,在将模式匹配引擎应用于文档前刻将提取器处理成模式匹配引擎。对提取器进行处理还可以在其它时间完成。
在一个实施方式中,将每一个提取器处理成不同的模式匹配引擎。不同的模式匹配引擎仅仅提取匹配其对应的提取器所定义的一个或多个模式的实体。在替选实施方式中,将多个提取器处理成相同的模式匹配引擎。当将多个提取器处理成相同的模式匹配引擎时,模式匹配引擎提取匹配任何其对应的提取器所定义的任何模式的任何实体。
将多个提取器合成为相同的模式匹配引擎可以通过允许平台提供者的服务器将模式集合同时应用于文档来引起效率增益。
一旦将提取器处理成了模式匹配引擎,就可以(例如,由平台提供者)可选地对对应于提取器的模式匹配引擎进行测试,以评估提取器的效率。对提取器的效率进行估计可以包括在样本文档集合上运行提取器、测量对应于提取器的模式匹配引擎处理文档所花费的时间以及基于对应于提取器的模式匹配引擎处理文档所花费的时间来评估提取器的效率。可以认为其对应的模式匹配引擎花费比预先确定的阈值更长时间的提取器是低效的。如果对应于提取器的模式匹配引擎运行比阈值所指定的时间更长,则平台提供者的服务器可以停止运行该模式匹配引擎,并且认为提取器低效。可以通过选择明理用户会等待由模式匹配引擎产生的结果的时间来确定阈值。
在步骤208,(例如,由平台提供者)使提取器对预订用户的预订可用。这可以以多种方式,包括例如用户可以在其中查看可用提取器的名称并且选择用户希望预订的提取器的网页用户界面、或从将请求由提取器进行提取的应用所提供的界面,来完成。当用户查看可用提取器时,其还可以能够查看关于提取器的额外信息,诸如提取器的描述或提取器的作者。在一些实施方式中,通过用于查看或修改提取器所应用于的文档的应用所提供的界面使提取器对预订可用。
对提取器的预订可以是对文件的预订或对馈给的预订。可以将文件存储在例如平台提供者、用户或第三方的数据处理装置上。馈给是根据允许增量转送数据的协议来从一个数据处理装置转送到另一个的文件。馈给协议的示例包括Atom馈给、RSS馈给以及GData馈给。
在替选实施方式中,可以使小组件对用户的预订可用。可以与提取器分立地预订小组件,或可以与提取器一起预订小组件。在一些实施方式中,可以与使提取器对预订可用非常像地使小组件对预订可用。
在步骤210,(例如,由平台提供者)接收来自第一用户的预订提取器的预订。可以以多种方式接收该预订,包括例如通过网页界面。在一些实施方式中,通过用于查看或修改提取器所应用于的文档的应用所提供的界面来接收预订。
当接收对所选择的提取器的预订时,或在另一个时间,可以(例如,由平台提供者)创建用户、所选择的提取器以及小组件之间的关联。该关联指示:当用户查看文档时,应当将对应于所选择的提取器的模式匹配引擎应用于该文档,并且应当将任何作为结果的实体递送给该小组件。
在一些实施方式中,还可以(例如,由平台提供者)从用户接收对一个或多个小组件的预订。可以以与接收对提取器的预订相同方式接收该预订,包括通过网页界面。当用户对小组件和提取器两者进行预订时,(例如,由平台提供者)进行提取器与小组件之间的关联。关联指示应当将对应于提取器的模式匹配引擎所提取的实体递送给小组件。在一些实施方式中,将提取器与小组件进行关联,以及当用户预订提取器时,使用户自动预订该提取器相关联的小组件。在一些实施方式中,将小组件与提取器进行关联,以及当用户预订小组件时,使用户自动预订该小组件相关联的提取器。
在步骤212,(例如,由平台提供者)从合成程序接收关于第一用户的第一文档的修改指示。修改指示例如可以指示用户正例如通过添加或删除文本来创建或修改文档。在一些实施方式中,修改指示指示过程正创建或修改文档,例如,拼写检查程序自动校正文档中的拼写错误的文本。还可以预期对文档的创建或修改而发送请求。在一些实施方式中,修改指示指示对文档的修改完成或暂时停止。
合成程序是显示文档并且允许用户创建或编辑文档的计算机程序。合成程序可以是基于web的应用,例如在线文档查看程序、在线社交联网程序或通过因特网可访问的任何其它程序。基于web的应用可以是例如在web浏览器中运行的javascript或actionscript程序。然而,合成程序可以是任何应用,例如在个人用户的计算机上的应用,诸如字处理器、因特网浏览器或运行在用户的计算机上的任何其它应用。在一些实施方式中,合成程序还显示小组件所生成的内容或显示小组件的展现组件。
在一些实施方式中,从展现程序接收提取请求。展现程序可以是基于web的应用,例如在线文档查看程序、在线社交联网程序或通过因特网可访问的任何其它程序。基于web的应用可以是例如在web浏览器中运行的javascript或actionscript程序。然而,展现程序可以是任何应用,例如在个人用户的计算机上的应用,诸如字处理器、因特网浏览器或运行在用户的计算机上的任何其它应用。在一些实施方式中,展现程序还显示小组件所生成的内容或显示小组件的展现组件。展现程序可以是合成程序。
提取请求例如可以指示用户正查看文档或预期用户查看文档而被发送。查看文档可以包括选择文档、在应用中加载文档、选择文档已在其中显示的窗口或促使文档向用户部分或全部展现的任何其它动作。在一些实施方式中,展现程序可以请求从多个文档提取多个实体,例如以生成所提取的实体的索引。例如通过硬件接口、软件接口或通过计算机网络,将提取请求从客户端计算机发送给服务器。
在步骤214,(例如,由平台提供者)将与用户的提取器相对应的模式匹配引擎应用于文档。存储指示用户预订了哪个提取器的数据,因此能够识别恰当的模式匹配引擎。如果用户预订了多个提取器,则可以应用与用户预订了的所有提取器相对应的模式匹配引擎。
应用与用户的提取器相对应的模式匹配引擎包括在文档上运行模式匹配引擎,并且收集模式匹配引擎所提取的实体。模式匹配引擎所提取的实体可以是来自文档的任何东西,包括文档自身、附加到文档的第二文档、来自文档的一个或多个文本部分、或者嵌入在文档中的一个或多个图像。例如,实体可以是附加到文档的媒体文件。媒体文件例如可以是音乐文件、视频文件或图像文件。在一些实施方式中,实体还包括其在文档中的位置。
在一些实施方式中,模式匹配引擎在接收修改指示或提取请求之后不立即被应用,而替代地稍后被应用。例如,为了避免在用户不断修改文档时过于频繁的提取,可以在修改指示之间的离散间隔时间应用模式匹配引擎。
在一些实施方式中,针对附加到用户所查看的文档的文档,而不是针对被查看的文档运行模式匹配引擎。
在一些实施方式中,如果模式匹配引擎在最大阈值所指定的时段内没有识别第一实体,则停止对模式匹配引擎的应用。可以例如通过选择明理用户会等待由模式匹配引擎产生的结果的时间来确定最大阈值。
在步骤216,(例如,由平台提供者)将模式匹配引擎所识别的一个或多个实体提供给小组件。
在各种实施方式中,小组件至少部分基于从文档所提取的实体来生成内容以向用户显示。小组件然后向用户展现该内容。小组件独立于合成程序或展现程序(无论哪个正在显示文档)、在合成程序或展现程序(无论哪个正在显示文档)旁边或者在合成程序或展现程序(无论哪个正在显示文档)内向用户展现内容。
在一些实施方式中,小组件生成内容以向用户展现,但是依赖于合成或展现程序来向用户展现内容。在这些实施方式中,小组件可以运行于服务器上,在这种情况下例如通过硬件或软件接口或网络将实体提供给小组件,或者运行于客户端上,在这种情况下例如通过网络将实体提供给小组件。硬件或软件接口是允许机器上的两个程序通信的接口,例如系统总线或在应用编程接口中指定的命令。小组件接收一个或多个实体,并且使用一个或多个实体来生成基于文档的内容。
在一些实施方式中,小组件具有两个部分:后端组件,其生成内容以向用户展现;以及展现组件,其向用户展现内容并且可选地与用户交互。展现组件在合成或展现程序中或者在合成程序或展现程序旁边运行。
在一些实施方式中,后端组件和展现组件两者均在客户端机器上运行。在这些实施方式中,例如通过计算机网络将实体递送给小组件。
在替选实施方式中,后端组件在服务器上运行,以及展现组件在客户端机器上运行。在这些实施方式中,例如通过服务器上的硬件或软件接口将实体递送给小组件,以及小组件的后端组件例如通过网络将用于显示的内容递送给客户端机器上的展现组件。在一些实施方式中,后端组件在第三方服务器而不是平台提供者的服务器上运行。在这些实施方式中,例如通过网络将实体递送给小组件,以及小组件例如通过网络将用于显示的内容递送给客户端机器上的展现组件。
图3图示了系统的示例体系结构。系统一般由下述组成:服务器302、用于将提取器上载到服务器的多个客户端计算机320和322以及用于预订提取器并且运行展现程序和小组件的客户端计算机326,所有上述通过网络324连接。
在一些实施方式中,客户端计算机326也具有客户端计算机320和322的体系结构。在一些实施方式中,客户端计算机320和322也具有客户端计算机326的体系结构。
平台提供者的服务器302是数据处理装置。虽然在图3中仅示出了一个数据处理装置,但是可以使用多个数据处理装置。
在各种实施方式中,平台提供者的服务器302运行提取器处理器程序304和模式匹配引擎应用器程序306。运行程序例如包括:例示程序的副本;将系统资源提供给程序;以及通过软件或硬件接口,例如通过在应用编程接口中指定的命令,与程序通信。
提取器处理器304将提取器处理成对应的模式匹配引擎。一般而言,模式匹配引擎是处理文档并且提取实体的计算机程序。在一些实施方式中,将每一个提取器处理成不同的模式匹配引擎。不同的模式匹配引擎仅仅提取匹配其对应的提取器所定义的一个或多个模式的实体。在替选实施方式中,将多个提取器处理成相同的模式匹配引擎。当将多个提取器处理成相同的模式匹配引擎时,模式匹配引擎提取匹配任何其对应的提取器所定义的任何模式的任何实体。
模式匹配引擎应用器306将模式匹配引擎应用于文档。这包括促使模式匹配引擎处理文档并且提取实体。例如,如果模式匹配引擎是计算机可执行的二进制程序,则模式匹配引擎应用器促使模式匹配引擎由数据处理装置来运行。如果模式匹配引擎是需要被编译的软件代码,则模式匹配引擎应用器将软件代码编译成计算机可执行的二进制程序,并且促使该二进制程序由数据处理装置运行。如果模式匹配引擎需要被解释,则模式匹配引擎应用器对模式匹配引擎进行解释。
其它形式的模式匹配引擎和应用模式匹配引擎的方法也是所预见的。
在一些实施方式中,平台提供者的服务器302还运行小组件程序308。
在一些实施方式中,小组件程序308只是生成内容以向用户显示。在这些实施方式中,小组件308例如通过硬件或软件接口从服务器302接收所提取的实体。小组件308然后生成内容以向用户展现。例如通过网络324将内容发送给客户端计算机326上的合成程序330或展现程序328。
在一些实施方式中,小组件308具有两个组件:后端组件和展现组件。在这些实施方式中,服务器302运行小组件308的后端组件,以及小组件332的展现组件运行在客户端计算机326上。小组件的后端组件例如通过硬件或软件接口从数据处理装置接收所提取的实体。后端组件然后生成内容以向用户展现,并且例如通过网络324将所述内容发送给客户端计算机326上的小组件332的展现组件以向用户展现。
其它实施方式是所预见的。例如,在一些实施方式中,平台提供者的服务器302仅仅运行提取器处理器程序304。在这些实施方式中,模式匹配引擎应用器程序334和小组件程序332在客户端计算机326上运行。在一些实施方式中,平台提供者的服务器302运行提取器处理器程序304和小组件程序308。在这些实施方式中,模式匹配引擎应用器程序334在客户端计算机326上运行。
在一些实施方式中,服务器302还存储提取器储存库。储存库可以包括其它程序、文件和数据,包括模式匹配引擎和小组件。在一些实施方式中,将储存库存储在计算机可读介质314上。在一些实施方式中,将储存库存储在例如硬盘的一个或多个额外设备312上。
服务器302还具有硬件或固件设备,包括一个或多个处理器310、一个或多个额外设备312、计算机可读介质314以及一个或多个用户接口设备318。用户接口设备318例如包括显示器、摄像头、扬声器、麦克风或触觉反馈设备。
服务器302使用其通信接口316来通过网络324与多个客户端计算机320、322和326通信。
通过网络将多个客户端计算机320和322连接到平台提供者的服务器302。用户运行这些计算机,并且可以使用这些计算机来编写提取器。编写提取器可以包括例如在客户端计算机所运行的软件开发程序或文本编辑器中编写对应于提取器的软件代码。客户端计算机320和322例如通过网络324将完成的提取器上载到平台提供者的服务器302。
用户1运行为数据处理装置的客户端计算机326。在各种实施方式中,客户端计算机326运行合成程序330和小组件程序332。
合成程序330向用户展现文档,并且允许用户例如通过添加文本或从文档移除文本来创建以及修改文档。合成程序将修改指示发送给平台提供者的服务器302或客户端计算机326(无论哪个正在运行模式匹配引擎应用器)。该修改指示可以是例如对用户在他或她的计算机326上的合成程序330中更新或创建文档作出响应。
在一些实施方式中,小组件程序332只是生成内容以向用户显示。在这些实施方式中,小组件332例如通过网络324从服务器302接收一个或多个所提取的实体。小组件332至少部分基于所提取的实体来生成内容以向用户显示。小组件332然后将该内容提供给合成程序330或展现程序328以向用户展现。
在一些实施方式中,小组件332具有两个组件:后端组件和展现组件,以及上述两者均运行于客户端计算机326上。在这些实施方式中,小组件332从平台提供者的服务器302接收一个或多个所提取的实体。小组件的后端组件至少部分基于所提取的实体来生成显示以向用户展现。小组件的展现组件展现后端组件所生成的内容,并且可以可选地通过展现程序与用户交互。展现组件例如可以是javascript或activescript程序,其独立于合成程序330或展现程序328(无论哪个正在显示文档)、在合成程序330或展现程序328(无论哪个正在显示文档)旁边或者在合成程序330或展现程序328(无论哪个正在显示文档)内展现内容。在一些实施方式中,小组件的展现组件不与用户交互,以及仅仅对展现程序如何展现内容进行控制。
在一些实施方式中,小组件具有两个组件:后端组件和展现组件,小组件332的展现组件运行于客户端计算机326上,以及小组件308的后端组件运行于平台提供者的服务器302上。在该实施方式中,服务器例如通过硬件或软件接口将所提取的实体发送给小组件308的后端组件。小组件308的后端组件生成内容以向用户显示。例如通过网络324将该内容发送给小组件332的展现组件。小组件332的展现组件独立于合成程序330或展现程序328(无论哪个正在显示文档)、在合成程序330或展现程序328(无论哪个正在显示文档)旁边或者在合成程序330或展现程序328(无论哪个正在显示文档)内展现所生成的内容,并且可选地与用户交互。在一些实施方式中,小组件的展现组件不与用户交互,以及仅仅对展现程序如何展现内容进行控制。
在一些实施方式中,小组件具有两个组件:后端组件和展现组件,小组件332的展现组件运行于客户端计算机326上,以及小组件的后端组件运行于第三方的计算机上。在该实施方式中,服务器例如通过网络将所提取的实体发送给小组件的后端组件。小组件的后端组件生成内容以向用户显示。例如通过网络将该内容发送给小组件332的展现组件。小组件332的展现组件独立于合成程序330或展现程序328(无论哪个正在显示文档)、在合成程序330或展现程序328(无论哪个正在显示文档)旁边或者在合成程序330或展现程序328(无论哪个正在显示文档)内展现所生成的内容,并且可选地与用户交互。在一些实施方式中,小组件的展现组件不与用户交互,以及仅仅对展现程序如何展现内容进行控制。
在一些实施方式中,客户端计算机326还运行模式匹配引擎应用器程序334。客户端计算机326以与在其它实施方式中,平台提供者的服务器302运行模式匹配引擎应用器306相同的方式运行模式匹配引擎应用器334。
在一些实施方式中,除合成程序330外或替代合成程序330,客户端计算机326运行展现程序328。展现程序328可以是合成程序330的一部分,或其可以是独立程序。展现程序328向用户展现一个或多个文档。展现程序还可以接收关于一个或多个文档的用户输入,并且基于用户输入来更新一个或多个文档或对一个或多个文档的展现。例如,当用户查看文档时,展现程序将提取请求发送给平台提供者的服务器302或客户端计算机326(无论哪个正在运行模式匹配应用器)。
其它实施方式也是所预见的。例如,在一些实施方式中,只有合成程序330运行于客户端计算机326上。在这些实施方式中,小组件程序308和模式匹配引擎应用器程序306运行于服务器302上。在一些实施方式中,只有展现程序328运行于客户端计算机326上。在这些实施方式中,小组件程序308和模式匹配引擎应用器程序306运行于服务器302上。在一些实施方式中,只有展现程序328和合成程序330运行于客户端计算机326上。在这些实施方式中,小组件程序308和模式匹配引擎应用器程序306运行于服务器302上。在一些实施方式中,只有合成程序330和模式匹配引擎应用器程序334运行于客户端计算机326上。在这些实施方式中,小组件程序308运行于服务器302上。在一些实施方式中,只有展现程序328和模式匹配引擎应用器程序334运行于客户端计算机326上。在这些实施方式中,小组件程序308运行于服务器302上。在一些实施方式中,只有展现程序328、合成程序330和模式匹配引擎应用器程序334运行于客户端计算机326上。在这些实施方式中,小组件程序308运行于服务器302上。
在一些实施方式中,客户端计算机326还存储提取器储存库。储存库可以包括其它程序、文件和数据,包括模式匹配引擎和小组件。在一些实施方式中,将储存库存储在计算机可读介质上。在一些实施方式中,将储存库存储在例如硬盘的额外设备上。在一些实施方式中,将储存库的一部分存储在服务器302上,以及将储存库的一部分存储在客户端计算机326上。
图4图示了在各种实施方式中遍及系统的信息流。虽然在图4中仅仅示出了一个平台提供者的服务器,但是也可以使用多个服务器。
在各种实施方式中,多个用户计算机402和404通过网络412将提取器上载到存储在平台提供者的服务器414上的储存库416。提取器处理器418将提取器处理成模式匹配引擎。将完成的模式匹配引擎存储在储存库416中。在一些实施方式中,还通过网络412上载小组件,并且将其存储在储存库中。在一些实施方式中,将储存库至少部分存储在客户端计算机上。在该实施方式中,服务器414将提取器处理成模式匹配引擎,并且将提取器或模式匹配引擎发送给客户端计算机上的储存库。在一些实施方式中,将提取器与小组件进行关联。在一些实施方式中,将小组件与提取器一起上载。
在各种实施方式中,用户使用客户端计算机406通过网络412将对提取器的预订发送给平台提供者的服务器414。平台提供者的服务器414然后将所预订的提取器或其相对应的模式匹配引擎与用户进行关联。在一些实施方式中,用户还通过网络412将对小组件的预订发送给平台提供者的服务器414。平台提供者的服务器414然后将小组件与用户进行关联。
在各种实施方式中,当用户在客户端计算机406上的合成程序408中修改文档时,客户端计算机通过网络412将修改指示发送给平台提供者的服务器414。模式匹配引擎应用器420然后将与所预订的提取器相对应的模式匹配引擎应用于文档,并且提取第一实体。平台提供者的服务器414然后通过网络412将第一实体发送给客户端计算机406上的小组件410。在一些实施方式中,展现程序在客户端计算机406上运行,并且通过网络412发送提取请求。在一些实施方式中,模式匹配引擎应用器运行于客户端计算机406上。在这些实施方式中,将通知发送给客户端计算机406,而不是服务器414。如果模式匹配引擎和小组件运行于同一机器上,则可以通过例如硬件或软件接口的其它装置将实体发送给小组件。
在各种实施方式中,小组件410在客户端计算机406上运行、生成与第一实体有关的内容以及独立于合成程序408、在合成程序408旁边或在合成程序408内向用户展现所述内容。所述内容可以包括能够向用户展现的任何东西,包括例如与第一实体相关联的文本、与第一实体相关的动作、与第一实体相关联的声音、与第一实体相关联的触觉反馈或定义对与第一实体相关联的数据的展现的javascript或activescript代码。在一些实施方式中,独立于展现程序、在展现程序旁边或在展现程序内,而不是合成程序408,向用户展现内容。在一些实施方式中,小组件410由后端组件和展现组件组成,以及这两者均运行于客户端计算机406上。后端组件从服务器414接收实体,并且生成内容以供显示。后端组件然后将内容发送给展示组件,其向用户显示内容并且可选地基于与用户的交互来更新展现。在一些实施方式中,小组件完全运行于服务器上。在这些实施方式中,小组件基于所提取的实体来生成内容以供显示,并且通过网络将该内容发送给客户端计算机406。在一些实施方式中,小组件由后端组件和展现组件组成,以及后端组件运行于服务器414上,而展现组件运行于客户端机器406上。在这些实施方式中,后端组件至少部分基于所提取的实体来生成内容,并且通过网络412将内容发送给客户端机器406上的小组件的展现组件。小组件的展现组件促使内容向用户展现,并且可选地基于与用户的交互来更新展现。在一些实施方式中,小组件由后端组件和展现组件组成,以及后端组件运行于第三方计算机上,而展现组件运行于客户端机器406上。在这些实施方式中,后端组件通过例如网络从服务器414接收实体,并且至少部分基于所提取的实体来生成内容。然后通过网络412将内容发送给客户端机器406上的小组件的展现组件。小组件的展现组件促使内容向用户展现,并且可选地基于与用户的交互来更新展现。
与本发明的精神相一致的额外信息流也是所预见的。
图5是通用计算机系统500的示例的示意图。根据一个实施方式,系统500可以用于与方法200相关联地描述的操作。例如,系统500可以包括在下述的任一或所有中:在用户A的客户端计算机320、用户B的客户端计算机322、用户1的客户端计算机326以及服务器302。
系统500包括处理器510、存储器520、存储设备530和输入/输出设备540。组件510、520、530和540中的每一个使用系统总线550互连。可以将实现与上述方法相关联的操作的指令存储在存储器520中或存储设备530上。处理器510能够处理用于在系统500内执行的指令。在一个实施方式中,处理器510是单线程处理器。在另一个实施方式中,处理器510是多线程处理器。处理器510能够处理存储在存储器520中或存储设备530上的指令以在输入/输出设备540上显示用于用户界面的图形信息。
存储器520存储系统500内的信息,包括程序指令。在一个实施方式中,存储器520是计算机可读介质。在一个实施方式中,存储器520是易失性存储器单元。在另一个实施方式中,存储器520是非易失性存储器单元。
存储设备530能够为系统500提供海量存储。在一个实施方式中,存储设备530是计算机可读介质。在各种不同的实施方式中,存储设备530可以是软盘设备、硬盘设备、光盘设备或带设备。存储设备可以存储提取器、模式匹配引擎、小组件、机器以及程序。
输入/输出设备540为系统500提供输入/输出操作。在一个实施方式中,输入/输出设备540包括键盘和/或指示设备。在另一个实施方式中,输入/输出设备540包括用于显示图形用户界面的显示单元。
上述特征可以以数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或以上的组合来实现。各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现,所述可编程系统包括至少一个可编程处理器,其可以是专用或通用的,被耦接以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及向存储系统、至少一个输入设备和至少一个输出设备传送数据和指令。
这些计算机程序(也被称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级程序和/或面向对象的编程语言、和/或汇编/机器语言来实现。如在本说明书中所使用的,术语“机器可读介质”或“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
用于执行指令程序的适当处理器包括例如通用和专用微处理器两者,以及任何类型的计算机的唯一处理器或多个处理器中的一个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的主要元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。通常,计算机还包括用于存储数据文件的一个或多个海量存储设备,或可操作地耦接以与所述一个或多个海量存储设备通信;这样的设备包括磁盘,诸如内部硬盘和可移动盘;磁光盘;以及光盘。适于有形地包含计算机程序指令和数据,包括数据库的存储设备包括所有形式的非易失性存储器,包括例如:半导体存储器设备,诸如EPROM、EEPROM和闪存设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由ASIC(专用集成电路)补充,或合并入ASIC。
为了提供与用户的交互,在此描述的系统和技术可以在具有下述的计算机上实现:用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示)监视器),以及用户通过其可以向计算机提供输入的键盘和指示设备(例如,鼠标或跟踪球)。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感知反馈(例如,视觉反馈、听觉反馈或触觉反馈);以及可以以任何形式,包括声学的、话音的或触觉的输入,接收来自用户的输入。
在此描述的系统和技术可以在包括下述的计算系统中实现:后端组件(例如作为数据服务器)、或中间件组件(例如应用服务器)、或前端组件(例如具有用户通过其可以与在此描述的系统和技术的实施方式交互的图形用户界面或Web浏览器的客户端计算机)、或者这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(″LAN″)、广域网(″WAN″)以及因特网。
计算机系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过诸如所描述的网络的网络交互。客户端和服务器的关系依靠在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生。
尽管在上面详细描述了一些实施方式,但是其它修改是可能的。例如,用户A的客户端计算机320以及服务器302可以在同一计算机系统内实现。
另外,图中所描绘的逻辑流不需要所示的特定顺序或相继顺序,来获得期望的结果。另外,可以提供其它步骤,或可以从所描述的流程除去步骤,以及可以将其它组件添加到所描述的系统或从所描述的系统移除组件。因此,其它实施方式在权利要求的范围内。
已经描述了本发明的多个实施例。然而,将理解的是,在不背离本发明的精神和范围的情况下,可以进行各种修改。因此,其它实施例在权利要求的范围内。

Claims (39)

1.一种计算机实现的方法,包括:
从多个用户接收多个不同的提取器,每一个提取器定义用于识别文本中的实体的模式;
将所述提取器存储在储存库中;
将所述提取器中的每一个所定义的所述模式处理成对应的模式匹配引擎;
使所述提取器对预订用户的预订可用;
从第一用户接收预订第一提取器的预订;
从合成程序接收关于所述第一用户的第一文档的修改指示;以及
响应于接收所述修改指示,将与所述第一提取器相对应的所述模式匹配引擎应用于所述第一文档,所述模式匹配引擎识别所述第一文档中的第一实体,以及将所述第一实体提供给第一软件小组件,所述第一软件小组件向所述用户展现与所述第一实体有关的信息。
2.根据权利要求1所述的方法,其中所述第一软件小组件在客户端上,以及所述第一提取器在服务器上。
3.根据权利要求1所述的方法,其中所述第一提取器所定义的所述模式依赖于所述第一文档中的字段。
4.根据权利要求1所述的方法,其中来自所述第一用户的所述预订是针对文件或馈给的。
5.根据权利要求1所述的方法,其中每一个提取器被处理成不同的对应的模式匹配引擎。
6.根据权利要求1所述的方法,其中多个提取器被处理成相同的对应的模式匹配引擎。
7.根据权利要求1所述的方法,其中所述第一文档包括附加文档,以及所述模式匹配引擎识别所述附加文档中的所述第一实体。
8.根据权利要求1所述的方法,进一步包括:
创建所述第一用户、所述第一提取器和所述第一小组件之间的关联。
9.根据权利要求1所述的方法,进一步包括:
从所述第一用户接收对所述第一小组件的预订。
10.根据权利要求1所述的方法,进一步包括:
从第二用户接收对第二提取器的预订;
从展现程序接收关于所述第二用户的第二文档的提取请求;
响应于接收所述提取请求,将与所述第二提取器相对应的所述模式匹配引擎应用于所述第二文档,所述模式匹配引擎识别所述第二文档中的第二实体,以及将所述第二实体提供给第二软件小组件,所述第二软件小组件向所述用户展现与所述第二实体有关的信息。
11.根据权利要求1所述的方法,进一步包括:
从所述合成程序接收语境信息;以及
将所述语境信息提供给所述模式匹配引擎。
12.一种计算机实现的方法,包括:
从多个用户接收多个不同的提取器,每一个提取器定义用于识别文档内容的类型的模式;
将所述提取器存储在储存库中;
将所述提取器中的每一个所定义的所述模式处理成对应的模式匹配引擎;
使所述提取器对预订用户的预订可用;
从第一用户接收预订第一提取器的预订;
从展现程序接收有关所述第一用户的第一文档的提取请求,所述第一用户的第一文档带有附加的第二文档;以及
响应于接收所述提取请求,将与所述第一提取器相对应的所述模式匹配引擎应用于所述第一文档,所述模式匹配引擎将所述附加的第二文档识别为第一实体,以及将所述第一实体提供给第一软件小组件,所述第一软件小组件向所述用户展现与所述第一实体有关的信息。
13.根据权利要求12所述的方法,其中所述附加的文档包括媒体文件,以及所述第一软件小组件包括用于所述媒体文件的播放器。
14.一种编码在计算机可读介质上、可操作来促使数据处理装置执行操作的计算机程序产品,所述操作包括:
从多个用户接收多个不同的提取器,每一个提取器定义用于识别文本中的实体的模式;
将所述提取器存储在储存库中;
将所述提取器中的每一个所定义的所述模式处理成对应的模式匹配引擎;
使所述提取器对预订用户的预订可用;
从第一用户接收预订第一提取器的预订;
从合成程序接收关于所述第一用户的第一文档的修改指示;以及
响应于接收所述修改指示,将与所述第一提取器相对应的所述模式匹配引擎应用于所述第一文档,所述模式匹配引擎识别所述第一文档中的第一实体,以及将所述第一实体提供给第一软件小组件,所述第一软件小组件向所述用户展现与所述第一实体有关的信息。
15.根据权利要求14所述的计算机程序产品,其中所述第一软件小组件在客户端上,以及所述第一提取器在服务器上。
16.根据权利要求14所述的计算机程序产品,其中所述第一提取器所定义的所述模式依赖于所述第一文档中的字段。
17.根据权利要求14所述的计算机程序产品,其中来自所述第一用户的所述预订是针对文件或馈给的。
18.根据权利要求14所述的计算机程序产品,其中每一个提取器被处理成不同的对应的模式匹配引擎。
19.根据权利要求14所述的计算机程序产品,其中多个提取器被处理成相同的对应的模式匹配引擎。
20.根据权利要求14所述的计算机程序产品,其中所述第一文档包括附加文档,以及所述模式匹配引擎识别所述附加文档中的所述第一实体。
21.根据权利要求14所述的计算机程序产品,可进一步操作来促使所述数据处理装置执行操作,所述操作包括:
创建所述第一用户、所述第一提取器和所述第一小组件之间的关联。
22.根据权利要求14所述的计算机程序产品,可进一步操作来促使所述数据处理装置执行操作,所述操作包括:
从所述第一用户接收对所述第一小组件的预订。
23.根据权利要求14所述的计算机程序产品,可进一步操作来促使所述数据处理装置执行操作,所述操作包括:
从第二用户接收对第二提取器的预订;
从展现程序接收关于所述第二用户的第二文档的提取请求;
响应于接收所述提取请求,将与所述第二提取器相对应的所述模式匹配引擎应用于所述第二文档,所述模式匹配引擎识别所述第二文档中的第二实体,以及将所述第二实体提供给第二软件小组件,所述第二软件小组件展现与所述第二实体有关的信息用于向所述用户展现。
24.根据权利要求14所述的计算机程序产品,可进一步操作来促使所述数据处理装置执行操作,所述操作包括:
从所述合成程序接收语境信息;以及
将所述语境信息提供给所述模式匹配引擎。
25.一种编码在计算机可读介质上、可操作来促使数据处理装置执行操作的计算机程序产品,所述操作包括:
从多个用户接收多个不同的提取器,每一个提取器定义用于识别文档内容的类型的模式;
将所述提取器存储在储存库中;
将所述提取器中的每一个所定义的所述模式处理成对应的模式匹配引擎;
使所述提取器对预订用户的预订可用;
从第一用户接收预订第一提取器的预订;
从展现程序接收有关所述第一用户的第一文档的提取请求,所述第一用户的第一文档带有附加的第二文档;以及
响应于接收所述提取请求,将与所述第一提取器相对应的所述模式匹配引擎应用于所述第一文档,所述模式匹配引擎将所述附加的第二文档识别为第一实体,以及将所述第一实体提供给第一软件小组件,所述第一软件小组件向所述用户展现与所述第一实体有关的信息。
26.根据权利要求25所述的计算机程序产品,其中所述附加的文档包括媒体文件,以及所述第一软件小组件包括用于所述媒体文件的播放器。
27.一种包括一个或多个计算机的系统,所述一个或多个计算机具有存储在所述计算机的存储器上的软件,所述软件促使所述计算机执行操作,所述操作包括:
从多个用户接收多个不同的提取器,每一个提取器定义用于识别文本中的实体的模式;
将所述提取器存储在储存库中;
将所述提取器中的每一个所定义的所述模式处理成对应的模式匹配引擎;
使所述提取器对预订用户的预订可用;
从第一用户接收预订第一提取器的预订;
从合成程序接收关于所述第一用户的第一文档的修改指示;以及
响应于接收所述修改指示,将与所述第一提取器相对应的所述模式匹配引擎应用于所述第一文档,所述模式匹配引擎识别所述第一文档中的第一实体,以及将所述第一实体提供给第一软件小组件,所述第一软件小组件向所述用户展现与所述第一实体有关的信息。
28.根据权利要求27所述的系统,其中所述第一软件小组件在客户端上,以及所述第一提取器在服务器上。
29.根据权利要求27所述的系统,其中所述第一提取器所定义的所述模式依赖于所述第一文档中的字段。
30.根据权利要求27所述的系统,其中来自所述第一用户的所述预订是针对文件或馈给的。
31.根据权利要求27所述的系统,其中每一个提取器被处理成不同的对应的模式匹配引擎。
32.根据权利要求27所述的系统,其中多个提取器被处理成相同的对应的模式匹配引擎。
33.根据权利要求27所述的系统,其中所述第一文档包括附加文档,以及所述模式匹配引擎识别所述附加文档中的所述第一实体。
34.根据权利要求27所述的系统,其中软件进一步促使所述计算机执行操作,所述操作包括:
创建所述第一用户、所述第一提取器和所述第一小组件之间的关联。
35.根据权利要求27所述的系统,其中软件进一步促使所述计算机执行操作,所述操作包括:
从所述第一用户接收对所述第一小组件的预订。
36.根据权利要求27所述的系统,其中软件进一步促使所述计算机执行操作,所述操作包括:
从第二用户接收对第二提取器的预订;
从展现程序接收关于所述第二用户的第二文档的提取请求;
响应于接收所述提取请求,将与所述第二提取器相对应的所述模式匹配引擎应用于所述第二文档,所述模式匹配引擎识别所述第二文档中的第二实体,以及将所述第二实体提供给第二软件小组件,所述第二软件小组件展现与所述第二实体有关的信息用于向所述用户展现。
37.根据权利要求27所述的系统,其中软件进一步促使所述计算机执行操作,所述操作包括:
从所述合成程序接收语境信息;以及
将所述语境信息提供给所述模式匹配引擎。
38.一种包括计算机的系统,所述计算机具有存储在所述计算机的存储器上的软件,所述软件促使所述计算机执行操作,所述操作包括:
从多个用户接收多个不同的提取器,每一个提取器定义用于识别文档内容的类型的模式;
将所述提取器存储在储存库中;
将所述提取器中的每一个所定义的所述模式处理成对应的模式匹配引擎;
使所述提取器对预订用户的预订可用;
从第一用户接收预订第一提取器的预订;
从展现程序接收有关所述第一用户的第一文档的提取请求,所述第一用户的第一文档带有附加的第二文档;以及
响应于接收所述提取请求,将与所述第一提取器相对应的所述模式匹配引擎应用于所述第一文档,所述模式匹配引擎将所述附加的第二文档识别为第一实体,以及将所述第一实体提供给第一软件小组件,所述第一软件小组件向所述用户展现与所述第一实体有关的信息。
39.根据权利要求38所述的系统,其中所述附加的文档包括媒体文件,以及所述第一软件小组件包括用于所述媒体文件的播放器。
CN200980154956.4A 2008-11-26 2009-11-23 开放式实体提取系统 Active CN102282557B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/324,737 US20100131529A1 (en) 2008-11-26 2008-11-26 Open entity extraction system
US12/324,737 2008-11-26
PCT/US2009/065581 WO2010062862A2 (en) 2008-11-26 2009-11-23 Open entity extraction system

Publications (2)

Publication Number Publication Date
CN102282557A true CN102282557A (zh) 2011-12-14
CN102282557B CN102282557B (zh) 2014-06-11

Family

ID=41648625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980154956.4A Active CN102282557B (zh) 2008-11-26 2009-11-23 开放式实体提取系统

Country Status (8)

Country Link
US (1) US20100131529A1 (zh)
EP (1) EP2366158A2 (zh)
JP (1) JP2012510129A (zh)
KR (1) KR20110086840A (zh)
CN (1) CN102282557B (zh)
AU (1) AU2009319822A1 (zh)
CA (1) CA2744546A1 (zh)
WO (1) WO2010062862A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104247378A (zh) * 2012-04-19 2014-12-24 微软公司 提供基于规则的内容分析以管理web扩展的激活

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110145689A1 (en) * 2005-09-09 2011-06-16 Microsoft Corporation Named object view over multiple files
US9747270B2 (en) 2011-01-07 2017-08-29 Microsoft Technology Licensing, Llc Natural input for spreadsheet actions
US20120102383A1 (en) * 2010-10-20 2012-04-26 Jerald Liu Creating, Sharing and Modifying Documents That Include Content and an Integrated Software Application
US8782033B2 (en) 2010-12-01 2014-07-15 Microsoft Corporation Entity following
US9298851B2 (en) * 2011-05-06 2016-03-29 Microsoft Technology Licensing, Llc Presenting related searches on a toolbar
US9524531B2 (en) * 2011-05-09 2016-12-20 Microsoft Technology Licensing, Llc Extensibility features for electronic communications
US20130080900A1 (en) * 2011-09-28 2013-03-28 Microsoft Corporation Techniques for managing and viewing followed content
US9053083B2 (en) 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
USD702248S1 (en) * 2011-11-21 2014-04-08 Google Inc. Portion of a display panel with a subscribe icon
US8959425B2 (en) * 2011-12-09 2015-02-17 Microsoft Corporation Inference-based extension activation
US9679163B2 (en) 2012-01-17 2017-06-13 Microsoft Technology Licensing, Llc Installation and management of client extensions
US9171099B2 (en) 2012-01-26 2015-10-27 Microsoft Technology Licensing, Llc System and method for providing calculation web services for online documents
US9449112B2 (en) * 2012-01-30 2016-09-20 Microsoft Technology Licensing, Llc Extension activation for related documents
US9256445B2 (en) 2012-01-30 2016-02-09 Microsoft Technology Licensing, Llc Dynamic extension view with multiple levels of expansion
US8843822B2 (en) 2012-01-30 2014-09-23 Microsoft Corporation Intelligent prioritization of activated extensions
US9235803B2 (en) * 2012-04-19 2016-01-12 Microsoft Technology Licensing, Llc Linking web extension and content contextually
US10664652B2 (en) 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
CN104301532B (zh) * 2014-09-30 2017-05-24 小米科技有限责任公司 通信消息识别方法及装置
US10846465B2 (en) * 2016-06-30 2020-11-24 Microsoft Technology Licensing, Llc Integrating an application for surfacing data on an email message pane
US10701198B2 (en) * 2018-03-30 2020-06-30 Qualcomm Incorporated Audio call analysis

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001239958A1 (en) * 2000-02-29 2001-09-12 Abridge, Inc. Method and system for processing requests using dynamically loadable rules determined by class and context
US7370283B2 (en) * 2003-08-11 2008-05-06 Core Mobility, Inc. Systems and methods for populating a ticker using multiple data transmission modes
US8024225B1 (en) * 2004-01-27 2011-09-20 Amazon Technologies, Inc. Controlling access to services via usage models
US20060277481A1 (en) * 2005-06-03 2006-12-07 Scott Forstall Presenting clips of content
US20070077921A1 (en) * 2005-09-30 2007-04-05 Yahoo! Inc. Pushing podcasts to mobile devices
US20070162850A1 (en) * 2006-01-06 2007-07-12 Darin Adler Sports-related widgets
US8612847B2 (en) * 2006-10-03 2013-12-17 Adobe Systems Incorporated Embedding rendering interface
US7917853B2 (en) * 2007-03-21 2011-03-29 At&T Intellectual Property I, L.P. System and method of presenting media content
EP2151090A4 (en) * 2007-05-17 2010-06-16 Fat Free Mobile Inc PROCESS AND SYSTEM FOR CONTINUING BROWSING MEETINGS BETWEEN FACILITIES
US8296198B2 (en) * 2007-06-28 2012-10-23 Sap Ag Method and system for distribution of information

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104247378A (zh) * 2012-04-19 2014-12-24 微软公司 提供基于规则的内容分析以管理web扩展的激活
CN104247378B (zh) * 2012-04-19 2017-10-31 微软技术许可有限责任公司 提供基于规则的内容分析以管理web扩展的激活

Also Published As

Publication number Publication date
WO2010062862A2 (en) 2010-06-03
CN102282557B (zh) 2014-06-11
US20100131529A1 (en) 2010-05-27
EP2366158A2 (en) 2011-09-21
WO2010062862A3 (en) 2011-01-20
JP2012510129A (ja) 2012-04-26
KR20110086840A (ko) 2011-08-01
AU2009319822A1 (en) 2010-06-03
CA2744546A1 (en) 2010-06-03

Similar Documents

Publication Publication Date Title
CN102282557B (zh) 开放式实体提取系统
CN101556617B (zh) 用于将元数据与媒体相关联的系统和方法
Richardson et al. RESTful Web APIs: Services for a changing world
US9135228B2 (en) Presentation of document history in a web browsing application
US20130103796A1 (en) Media enhancement mechanism
US20100070862A1 (en) In-page embeddable platform for media selection and playlist creation
US20050033747A1 (en) Apparatus and method for the server-sided linking of information
US20130272679A1 (en) Video Generator System
CN103597469A (zh) 集成开发环境中的实况浏览器工具
US20120177345A1 (en) Automated Video Creation Techniques
TW200928814A (en) Customization of search results
CN103678453A (zh) 个性化内容产生和交付
CN103608802A (zh) 取回的文件和源文件之间的选择映射
US20170161292A1 (en) Digital Content Item Collection Management Boxes (CCMBoxes) - Virtual digital content item collection, characterization, filtering, sorting, management and presentation systems, methods, devices and associated processing logic
CN105453077A (zh) 用于应用启动的搜索结果上下文
CN108292411A (zh) 使用对象资产生成视频内容项目
Stolley How to design and write web pages today
JP2009116519A (ja) 自分史制作装置
US10277538B2 (en) Method and apparatus for creating booklets and the use of the same
KR20130095511A (ko) 전자책 서재에 보유한 전자책의 콘텐츠를 이용하여 저작물을 제작하는 방법
KR20080016028A (ko) 사용자 맞춤 주문을 지원하는 도서 제작 시스템 및 도서제작 방법
Pinto et al. Improving Youtube video retrieval by integrating crowdsourced timed metadata
CN114327221A (zh) 合照方法、介质、装置和计算设备
KR102242055B1 (ko) 각색형 전자책 공유 플랫폼 및 그 플랫폼을 이용한 각색형 전자책 공유 방법
KR20090043396A (ko) 게시물 등록 방법 및 시스템과 이를 위한 기록매체

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.