Abstract:
A method includes scanning content of a web page in which a web component is to be inserted, inferring a profile from the scanned content and serving the web component in the web page according to the profile.

Description:
BACKGROUND  
         [0001]    This invention relates to serving content to a client  
           [0002]    Content may be served, for example, in web pages, which are adapted text and graphics documents that a user views utilizing a web browser such as Netscape Navigator® and Internet Explorer®. The documents are constructed using HyperText Markup Language (“HTML”). HTML is composed of a set of elements that define a document and guide its display.  
         SUMMARY  
         [0003]    In general, in one aspect, the invention features a method including scanning content of a web page or site in which a web component is to be inserted, inferring a profile from the scanned content and serving the web component in the web page according to the profile. This aspect may include one or more of the following features.  
           [0004]    In implementations of the invention, the web page and the component include HyperText Markup Language (HTML). The content includes contextual material including topical, geographical, temporal and semantic characteristics. The component may include syndicated services including message boards, chat rooms, file exchanges, link exchanges, E-commerce and auctions.  
           [0005]    The component may include syndicated content including news feeds, weather information, stock information, road maps, pictures, video, audio and text.  
           [0006]    The profile includes a format of the scanned content and a topic of the scanned topic. The component includes embedded elements such as in-situ syndicated textual or multimedia material shown within a context of the web page.  
           [0007]    Serving includes script insertion, inserting frames, iframes, layers, applets, active-x controls and plugins.  
           [0008]    The embedded element may include a standalone element such as syndicated textual or multimedia material shown within its own context in a browser window, dialog window or pop-up window.  
           [0009]    Scanning includes analyzing a site format of the content, analyzing a site content of the content and saving the site format and the site content as a profile. The profile is utilized as the profile and the profile may be utilized in real-time each time a component is displayed to a user.  
           [0010]    Serving may include checking the web page for updates and updating the profile in response to checking, where checking can include comparing expiry information, last modified dates, CRCs or MD5s.  
           [0011]    Other features and advantages of the invention will become apparent from the following description, including the claims and drawings. 
       
    
    
     DESCRIPTION OF DRAWINGS  
       [0012]    [0012]FIG. 1 is a view of a computer network.  
         [0013]    [0013]FIG. 2 is a flowchart showing a process for provider information to a user.  
         [0014]    [0014]FIG. 3 is a flowchart showing an adaptation process.  
     
    
     DETAILED DESCRIPTION  
       [0015]    In FIG. 1, a system  10  includes a computer  12 , such as a personal computer (PC). Computer  12  is connected to a network  14 , such as the Internet, that runs TCP/IP (Transmission Control Protocol/Internet Protocol) or another suitable protocol. Connections may be via Ethernet, wireless link, telephone line, or the like. Network  14  contains a first server  16  and a second server  17 , each of which may be a mainframe computer, a PC, or any other type of processing device.  
         [0016]    Computer  12  contains a processor  18  and a memory  20 . Memory  20  stores an operating system (“OS”)  24  such as Windows98®, a TCP/IP protocol stack  26  for communicating over network  14 , and a Web browser  28 , such as Internet Explorer® or Netscape Navigator®, for accessing Web sites and pages hosted and served by devices on network  14 .  
         [0017]    First server  16  contains a processor  30  and a memory  32 . Memory  32  stores machine-executable instructions  36 , OS  38 , TCP/IP protocol stack  40 , and database  42  containing user accessible Web content, e.g., Web pages. Database  42  is described below. Instructions  36  may be part of an Internet search engine or not, and are executed by processor  30  to perform process  70  below. That is, a user at computer  12  uses Web browser  28  to access first server  16 , which, in response, executes instructions  36  to perform the process described below.  
         [0018]    Second server  17  contains a processor  44  and a memory  46 . Memory  46  stores machine-executable instructions  48 , OS  50 , TCP/IP protocol stack  52 , and database  54  containing Web components (e.g., content) accessible by the first server  16 . Database  54  is described below.  
         [0019]    Referring to FIG. 2, a process  70  is shown for providing useful information from the first server  16 , such as Web content, to a user that includes an additional web component or components from one or more secondary sources, such as the second server  17 , adapted and inserted into the useful information. Example additional web components are syndicated content and syndicated services that are made available to subscriber sites, such as first server  16 , from database  54  of the second server  17 . Examples of syndicated content in the database  54  are news feeds, weather information, stock information, road maps, pictures, audio, video and text. Examples of syndicated services contained in the database  54  are message boards, chat rooms, file exchanges, link exchanges, E-commerce, auctions, and so forth.  
         [0020]    Process  70  includes a pre-processing phase  72  and a run-time phase  74 . During preprocessing phase  72 , process  70  requests ( 76 ), in conjunction with specific Web content residing in its database  42 , subscription to one or more web components, e.g., syndicated content and/or syndicated services, resident in the database  54  of the second server  17  or externally via the network  14 . In response to the request ( 76 ), the second server  17  sends ( 78 ) a web component to the first server  16 . The web component is adapted to the first server  16  by the second server  17  to the specific Web content residing in database  42 . In this context, “adapted” refers to a process by which at least the format and content of the specific Web content are determined and utilized to generate a profile. The profile is used by the second server  17  to format the requested web component in the database  54  for insertion into the specific web content in the database  42  for storage and/or display to a user.  
         [0021]    During run-time phase  74 , process  70  receives ( 80 ) a request for specific web content from a user. The request may be direct input of a universal resource locator (URL) by the user. Alternatively the request may be the result of the user directing their browser software to load the specific web content as part of a response to a search.  
         [0022]    Process  70  searches ( 82 ) its database  42  for the requested specific web content. When the requested specific web content is located, the process  70  inserts ( 84 ) an additional web component from the database  54  of the second server  17  prior to serving the specific web content to the user. Process  70  displays ( 86 ) the specific web content with the additional adapted web component to the user on computer  12 .  
         [0023]    Referring to FIG. 3, a process  100  for adapting a web component to specific content resides in the memory  46  of the second server  17 . Process  100  includes scanning ( 102 ) the specific web content contained in the database  42  of the first server. Web content in the database  42  is composed of HyperText Markup Language (HTML), Style Sheets, XML, CSS, XSL, PDF and other machine-readable content such as digital images or text.  
         [0024]    Using HTML as an example, HTML is a language of elements that are used to define a document and guide its display. HTML documents are plain-text (also known as ASCII) files that can be composed using any text editor. An element is a fundamental component of the structure of a text document. Examples of elements are heads, tables, paragraphs, and lists. HTML uses tags to denote elements contained in the document. Some elements may include one or more attributes. An attribute is additional information that is included in a smart tag. For example, one can specify the alignment of images, e.g., top, middle, bottom, by including the appropriate image source HTML code. Other attributes may be specified. For example, background color may be specified to match a color of text font, and external images, sounds, and animations may be incorporated. Document style, colors, background, background images, table characteristics, fonts, margins, and other visual characteristic may be specified in the document.  
         [0025]    Style Sheets allow an HTML author to separate presentation definitions from content in HTML documents. HTML was designed primarily as a content-based mark up language. Styles are defined and then applied to blocks of text (or even single characters) by referring to the definition in the available style range. An example of a simple form of style sheet could be: P {color : #800000}. This would cause any text that is classified as a paragraph to be rendered using a dark red color.  
         [0026]    Style definitions can be applied to documents and their elements in one of four ways, i.e., using the &lt;LINK&gt; attribute to point to an external style sheet, using the &lt;STYLE&gt; element within the &lt;HEAD&gt; of a document, using the @import mechanism (similar to the &lt;LINK&gt; method above, this allows the importing of external style sheets.), and using the STYLE attribute in an element. This (to which does the “this” refer?) is allowed for any elements allowed within the &lt;BODY&gt; of a HTML document. There are various methods for denoting the style declaration and all use separate methods within HTML to determine the style to be used.  
         [0027]    The process  100  generates ( 104 ) a profile representative of at least the format and style of the specific web content. More specifically, the profile represents the style, colors, background, background images, table characteristics, fonts, margins, and other visual characteristics that are specified in the specific web content. The profile may represent an automatically derivable description of the specific web content. For example, determining the writing style of the content and making selections in response to the determination, e.g., formal and informal presentations of embedded news stories. Further, the language in which the content is written may be determined, and subsequently selecting or translating the component into that language, or decorating it with culturally appropriate symbols may be included. Content refers to contextual material of the specific web content including topical, geographical, temporal and semantic. The profile includes style, colors, background, background images, table characteristics, fonts, margins, and other visual characteristics associated with the specific web content. The profile is stored and maintained in database  54  along with an identifier that associates the profile with the specific web content.  
         [0028]    The process applies ( 106 ) the profile to the delivery of a component, such as syndicated services and/or syndicated content, contained in the database  54  and delivers ( 108 ) the component. Specifically, the component is modified in accordance with the profile so as to seamlessly “fit” in the specific web content as if it originated from a single source.  
         [0029]    The component may include an embedded element and/or a standalone element. Embedded elements are in-situ syndicated textual or multimedia material shown within the context of the specified web content. Utilizing one or more methods, such as script insertion, frames, interior frames (I-frames, layers, applets, active-x controls, plugins, and so forth) may accomplish this. Standalone elements are syndicated textual or multimedia material shown within their own contexts in a browser window, dialog window, pop-up window, and so forth.  
         [0030]    Processes  70  and  100  are not limited to use with the hardware/software configuration of FIG. 1; they may find applicability in any computing or processing environment. Processes  70  and may be implemented in hardware (e.g., an ASIC {Application-Specific Integrated Circuit} and/or an FPGA {Field Programmable Gate Array}), software, or a combination of hardware and software.  
         [0031]    Processes  70  and  100  may be implemented using one or more computer programs executing on programmable computers that each includes a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices.  
         [0032]    Each such program may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system. Also, the programs can be implemented in assembly or machine language. The language may be a compiled or an interpreted language.  
         [0033]    Each computer program may be stored on a storage medium or device (e.g., CDROM, hard disk, or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform processes  70  and  100 .  
         [0034]    Processes  70  and  100  may also be implemented as a computer-readable storage medium, configured with a computer program, where, upon execution, instructions in the computer program cause the computer to operate in accordance with processes  70  and  100 .  
         [0035]    The invention is not limited to the order of processing shown in FIGS. 2 and 3. The blocks of FIGS. 2 and 3 may be rearranged, where appropriate, to perform the functions described herein.  
         [0036]    Other implementations are within the scope of the following claims.  
         [0037]    For example, process  100  may include dynamic adaptation. Specifically, each time a component is requested by the first server, the specific web content contained in the database  42  is checked for any updates to determine if the profile associated with the specific web content is still valid. This check is accomplished in one of several ways, such as expiry  20  information, last modified dates, CRCs, MD5s, and so forth. Thus, a newly generated profile is used in real-time each time the component is requested.  
         [0038]    In another example, process  100  stores a baseline profile and a number of deltas. The deltas contain information captured when the specific web content or the database  42  changes in any significant manner. Each delta adds more overall information about the specific web content and the first server.