# Patent

## Title
System and method for selecting content for displaying over the internet based upon some user input

## Abstract

The present invention provides a method for displaying information from the Internet. In one embodiment, the invention generates a plurality of content modules, each content module comprising a subset of the content of at least one web site. The content modules are then stored in a content module data directory. When a query is received from a user, the query is assigned to at least one content module. The results of the query are displayed on two regions of the user's screen. On a first region of the user's display screen a list of information relating to the plurality of retrieved web sites is displayed. On a second region of said display screen, information from said at least one content module associated with the query is displayed.

## Background
RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 09/946,061, now U.S. Pat. No. 6,728,705 filed Sep. 4, 2001, which claims the benefit of provisional Application No. 60/229,779, filed Sep. 1, 2000, the contents of which are both incorporated herein in their entirety.


BACKGROUND
1. Field of Invention
This invention relates generally to a system and method for selecting content for displaying over the Internet based upon some user input. Particularly, this invention relates to a system and method of selecting content from a content directory for display in a web-page where the content is based upon some arbitrary user input.
2. Background of the Invention
In recent years, web-pages, and other Internet components have changed to incorporate the popularity of customizable, interactive, and dynamic structure. Most existing web-pages contain pre-specified content, where a user simply downloads the source code of the desired page for viewing in an Internet browser. Some web-pages may have limited dynamic components and may offer limited customizability. For example, existing web pages may allow a user to make certain custom settings to a web-page. However, the user is usually prompted for specific information, and has a limited number of choices. A need still exists for a system and method capable of generating and displaying content in a web-page, based upon some arbitrary input by a user.
SUMMARY
The invention disclosed herein is a novel approach which addresses many of these limitations. A general feature of the present invention is to provide a system and method for displaying content over the Internet, based upon some arbitrary user input. The content may include, but is not limited to web content such as pictures and/or links and/or functional programs and/or tables and/or charts and/or functions etc.
The present invention provides a method for displaying information from the Internet. In one embodiment, the invention generates a plurality of content modules, each content module comprising a subset of the content of at least one web site. The content modules are then stored in a content module data directory. When a query is received from a user, the query is assigned to at least one content module. The results of the query are displayed on two regions of the user's screen. On a first region of the user's display screen a list of information relating to the plurality of retrieved web sites is displayed. On a second region of said display screen, information from said at least one content module associated with the query is displayed.
One feature of the present invention is to maintain a directory of web-page content modules and to algorithmically traverse the directory, based upon some user input, to synthesize content for a web-page.
A module as used herein may be a discrete chunk of content so that combining one or multiple modules will in effect synthesize part or all of the content of a web page. For example, a user may issue as input the word “dolphins” and the invention will dynamically create a web page with various content modules related to dolphins. The exemplary method of the invention may traverse the directory containing the content modules and obtain modules which exactly correspond to the keyword “dolphins” if such modules exist in the directory. For example, the traversal may obtain content modules with pictures and links to dolphin shows. Alternatively the invention may obtain modules that do not directly correspond to the keyword “dolphins,” but are related to keyword, if such modules exist in the directory. For example, the directory traversal may obtain content modules related to marine mammals.
DRAWINGS
FIG. 1 is an exemplary method diagram in accordance with one embodiment of the present invention, which illustrates by way of example a flow chart that represents a functional algorithm for generating content for display over the Internet based upon some user input.
FIG. 2 is an exemplary method diagram in accordance with one embodiment of the present invention, which illustrates by way of example a flow chart that represents a functional algorithm for generating identification numbers for associating with nodes in a data directory.
FIG. 3 discloses a possible resulting web page from user input of “Britney Spears”.
FIG. 4 discloses a possible resulting web page from user input of “bridge”.
FIG. 5 discloses a possible resulting web page from a user selection of “Bridge on the River Kwai, The”.
FIG. 6 discloses a possible resulting web page from a input of “bridges”.
FIG. 7 discloses a possible resulting web page from a user input of “Ioza12”.
FIG. 8 discloses part of the embodiment represented by FIG. 1; namely a detailed description of the communication channels 1-17.
FIG. 9 discloses part of the embodiment represented by FIG. 1; namely, scenarios of the traversal of the data structure 14.
FIG. 10 discloses part of the embodiment represented by FIG. 1; namely obtaining content from each node during the traversal 14.
FIG. 11 discloses part of the embodiment represented by FIG. 1; namely additional checks after the content is retrieved 20.
FIG. 12 discloses the format of the page description.
FIG. 13 discloses part of the embodiment represented by FIG. 1; namely the interstitial page 12.
FIG. 14 discloses part of the embodiment represented by FIG. 1; namely the data structure 14.
FIG. 15 is a list of acronyms referenced by FIGS. 8-14.


DESCRIPTION
This description is not to be taken in a limiting sense, but is made merely for the purpose of illustrating the general principles of the invention. The section titles and overall organization of the present detailed description are for the purpose of convenience only and are not intended to limit the present invention. Accordingly, the invention will be described with respect to a ontology content directory data structure which is a data tree. It is to be understood that the particular data structure described for the ontology directory herein is for illustration only; the invention also applies to other data structures and combinations of other data structures. For example, linked lists, heaps, deaps, hash tables, directories etc. Also, the invention may apply to numerous types of each of these data structures, such as binary search trees, 2-3 trees, 23-4 trees, red-black trees, m-way search trees, b-trees, digital search trees, k-dimensional trees, min-max heaps, binomial heaps, f-heaps, etc., individually and/or collectively.
The invention may also be run on multiple computer hardware and software platforms. For example, Intel/AMD based systems, Sun Microsystems, Silicon Graphics, IBM RS/6000, IBM AS/400, Macintosh, Windows, Unix, etc. The invention may also encompass various internet technologies such as Java applets, active servers, xml, html, dynamic html, Active X, Java script, etc. The invention may be written in a number of computer languages, such as, C/C++, Java, Perl, Java script, Lisp, Visual Basic, etc., individually or collectively. The resulting web page may be viewed on various browsers such as Netscape Navigator, Internet Explorer, and/or various document editors such as Microsoft Word, Word Perfect etc.
Displaying Content over the Internet Based Upon Some User Input
FIG. 1 illustrates by way of example a flow chart that represents a functional algorithm for generating content for display over the Internet based upon some user input. In this embodiment of the present invention, a user on a client system first sends a query to a server system (1). This query may be any textual input and/or keyword and/or phrase and/or search term etc.
Generating a Subject Category Identifier
The query is then algorithmically associated with a subject category identifier (shown in steps 1-12). In general, there may be four possible outcomes of the first pass of the algorithm: first, a single subject category identifier is obtained which is an exact match to the user input (15); second, a single subject category identifier is obtained which is an alternative match to the user input (17); third, multiple subject category identifiers are obtained which are alternative matches to the user input and the algorithm narrows the subject category identifiers to one (16); fourth no subject category identifier is found (7). FIG. 2 discloses another embodiment of generating the subject category identifiers (15, 16, 17, 7 on FIG. 1).
Subject category identifiers associated with user input may be stored in two different tables; namely, an exact match table (3) or an alternative table (6). First, the algorithm checks the exact match table (2, 3) to determine if there is a subject category identifier that corresponds to the query. The subject category identifiers in the exact match table correspond to nodes in the content module data directory (13) directly relating to the user input. For example, if the user input is “dolphins” and the algorithm obtains a subject category identifier in the exact match table (3), the respective node in the data directory (13) associated with that subject category identifier may contain a content module directly relating to dolphins. Furthermore a subject category identifier obtained from the exact match table (3) may indicate the starting node point for traversing the content module directory (14) and determine the algorithm for traversing the data directory for additional content modules. If no corresponding subject category identifier is found in the exact match table for some user input (4), the algorithm checks the alternative table to determine a subject category identifier that corresponds to the query (5, 6). If a single subject category identifier in the alternative table is found associated with the user input (9, 10, 17), then this subject category identifier is used for the directory traversal for obtaining content modules (14). The subject category identifiers in the alternative match table correspond to nodes in the content module data directory (13) relating to the user input and may indicate the starting node point for traversing the content module directory (14) and determine the algorithm for traversing the data directory for additional content modules. If a plurality of subject category identifiers are found (9, 10, 11) associated with the user input the algorithm may provide the user a choice of different query options to narrow the subject category identifiers to one (12). After the user makes a selection from the given choices, the algorithm selects the single subject category identifier (16). It is also possible that the algorithm not find a subject category identifier (7, 8) in either the exact match table or the alternative match table. In this case, the directory of content modules is not traversed.
Directory of Content Modules
A directory of content is maintained on the server system in a data structure such as a data tree which can be traversed (13). The content information may be stored in a variety of data structures known to one skilled in the art or methods developed in the future. An algorithmic traversal is then performed on the data structure based upon the subject category identifier generated from the query (14), in order to determine content for displaying (20). The data structure may be a data tree wherein each tree node contains pointer(s) to web content modules and each node is associated with a subject category identifier. The data tree may be hierarchically arranged so that the specificity of the web content module referenced by the node is a subset of the more general web content module referenced by the parent node. As an example, a node, associated with a subject category identifier, may be associated with mammals, and may contain a pointer to a web content module relating to mammals. The children node(s) of that node, also associated with subject category identifiers, may be associated with particular mammals, and may contain pointers to web content modules relating to those specific mammals such as dolphins or elephants. The children node(s) of the dolphin, for example, also associated with a subject category identifier, may be associated with a particular type of dolphin and may contain a pointer to a web content module relating to that particular type of dolphin. This type of data arrangement is just one method of maintaining the web content module directory. The data structure can be a collection of multiple data structures, and these data structures can be separated and/or merged. An arbitrary number of web content modules can be used in order to collectively provide content for a web page. The traversal may start at a particular node, wherein the node's number is equal to the subject category identifier generated from the query. The traversal may move up or down the data directory, depending upon how the subject category identifier was generated (15, 16, 17), in order to obtain content modules related to the query. For example, if the user input “dolphins” generated a subject category identifier from the exact match table (15), the algorithm may first use the content module referenced by the node corresponding to that subject category identifier, and then traverse down the data tree to obtain more specific content modules. If, on the other hand, the user input “dolphins” generated a subject category identifier from the alternative match table (16 or 17), the algorithm may first use the content module referenced by the node corresponding to that subject category identifier, and then traverse up the tree to obtain more general content modules. The web page is finally synthesized with the content modules obtained in the process outlined by FIG. 1.
FIG. 2 is an exemplary method diagram in accordance with one embodiment of the present invention, which illustrates by way of example a flow chart that represents a functional algorithm for generating identification numbers for associating with nodes in a data directory.
FIG. 3 discloses the resulting web page from a subject category identifier obtained from the exact match table (15) from a query for “Britney Spears”. FIG. 4 discloses the resulting web page from multiple subject category identifiers obtained (11) from the alternative match table from a query for “bridge” wherein no content modules are obtained and the user is given a choice of different query options (12). FIG. 5 discloses the resulting web page from a subject category identifier obtained (16) after the user selects “Bridge on the River Kwai, The” from the interstitial page (12) represented by FIG. 4. FIG. 6 discloses the resulting web page from a single subject category identifier obtained from the alternative match table (17) from a query for “bridges”. FIG. 7 discloses the resulting web page from no match (7, 8) from a query for “Ioza12”. FIGS. 8-14 disclose additional details of processes for implementing the embodiment of the invention shown in FIG. 1.

## Claims

1. A method for displaying information comprising:
generating a plurality of content modules, each content module comprising a subset of content of a web site;
storing the content modules in a data store referenced by a content module data directory, the content module data directory arranged in a data tree hierarchy having a plurality of tree nodes, wherein each tree node comprises a pointer to a content module and each node is associated with a subject category identifier;
receiving a query;
determining if the query matches a subject category identifier in an exact match table;
responsive to determining that the query matches the subject category identifier in the exact match table, retrieving a first content module referenced by a tree node associated with the subject category identifier from the exact match table, and traversing the data tree hierarchy from the matching node associated with the exact matching subject category identifier to a child node to retrieve a second content module comprising more specific content than the first content module;
responsive to determining that the query does not match any subject category identifiers in the exact match table, determining if an alternative match exists between the query and an alternative subject category identifier in an alternative match table;
responsive to determining that the query matches the alternative subject category identifier in the alternative match table, retrieving a first content module referenced by a tree node associated with the alternative matching subject category identifier, and traversing the data tree hierarchy from the matching node associated with the alternative matching subject category identifier to a parent node to retrieve a second content module, wherein the second content module comprises more general content than the first content module; and
outputting said subsets of content of a web site from said first and second content modules to a display screen.

2. A method according to claim 1, wherein summaries of a plurality of retrieved web sites satisfying the search query are displayed on a first region of the display screen and said subset of content of a web site is displayed on a second region of the display screen in response to a single input from a user.

3. A method according to claim 1, wherein each tree node in the data tree hierarchy is associated with one or more key numbers linking the tree nodes to the subject category identifiers.

4. The method of claim 1, wherein the data tree hierarchy comprises a parent node referencing a parent content module that contains general content for a topic, and a child node beneath the parent node in the data tree hierarchy, the child node referencing a child content module that contains specific content for a topic.

5. The method of claim 1, wherein said first or second content modules comprise at least one of pictures, programs, charts, and tables.

6. The method of claim 1, wherein the information relating to the plurality of retrieved web sites and said subset of content of a web site from said first and second content modules are contemporaneously displayed on said display screen.

7. A computer readable storage medium comprising computer executable instructions, the instruction when executed causing an application to perform the steps of:
generating a plurality of content modules, each content module comprising a subset of content of a web site;
storing the content modules in a data store referenced by a content module data directory, the content module data directory arranged in a data tree hierarchy having a plurality of tree nodes, wherein each tree node comprises a pointer to a content module and each node is associated with a subject category identifier;
receiving a query;
determining if the query matches a subject category identifier in an exact match table;
responsive to determining that the query matches the subject category identifier in the exact match table, retrieving a first content module referenced by a tree node associated with the subject category identifier from the exact match table, and traversing the data tree hierarchy from the matching node associated with the exact matching subject category identifier to a child node to retrieve a second content module comprising more specific content than the first content module;
responsive to determining that the query does not match any subject category identifiers in the exact match table, determining if an alternative match exists between the query and an alternative subject category identifier in an alternative match table;
responsive to determining that the query matches the alternative subject category identifier in the alternative match table, retrieving a first content module referenced by a tree node associated with the alternative matching subject category identifier, and traversing the data tree hierarchy from the matching node associated with the alternative matching subject category identifier to a parent node to retrieve a second content module, wherein the second content module comprises more general content than the first content module; and
outputting said subsets of content of a web site from said first and second content modules to a display screen.

8. The computer readable storage medium of claim 7, wherein summaries of a plurality of retrieved web sites satisfying the search query is displayed on a first region of the display screen and said subset of content of a web site is displayed on a second region of the display screen in response to a single input from a user.

9. The computer readable storage medium of claim 7, wherein each tree node in the data tree hierarchy is associated with one or more key numbers linking the tree nodes to the subject category identifiers.

10. The computer readable storage medium of claim 7, wherein the data tree hierarchy comprises a parent node referencing a parent content module that contains general content for a topic, and a child node beneath the parent node in the data tree hierarchy, the child node referencing a child content module that contains specific content for a topic.

11. The computer readable storage medium of claim 7, wherein said first or second content modules comprise at least one of pictures, programs, charts, and tables.

12. The computer readable storage medium of claim 7, wherein the information relating to the plurality of retrieved web sites and said subset of content of a web site from said first and second content modules are contemporaneously displayed on said display screen.