The present application claims priority from Norwegian Patent Application No. 20056187, filed Dec. 5, 2005, the entire disclosure of which is incorporated herein by reference.
The present invention relates to a system, method, software arrangement and computer-accessible medium which can provide improved navigation of web content within a web site. The present invention further relates to a system, method, software arrangement and computer-accessible medium for providing navigational menus that facilitate access to specific web pages and specific content on web pages located within a web site, without the need to load or browse intermediate or top-level pages in a hierarchy of the site.
The Internet provides users access to a multitude of web sites. These web sites can be made up of web pages, which may be linked together using a hypertext markup language (“HTML”) code. There is currently no standard procedure for navigating through a web site to pages located at an intermediate or lower level. Different web sites may have different link structures and interfaces. This can make navigating different web sites much more complex and demanding than necessary.
Some of the existing approaches to providing or facilitating web site navigation may suffer from one or more of the following disadvantages:
Thus, there is a clear need to provide navigational aids and menus for existing and new web sites, which can improve access to the specific content and web pages within these sites.
To address such need, methods, systems, software arrangements, and computer-accessible media are provided for availing hierarchal menus which can enhance and simplify the navigation of web sites.
For example, exemplary embodiments of the present invention may include one or more of the following:
These and other objects, features and advantages of the present invention will become apparent upon reading the following detailed description of embodiments of the invention, when taken in conjunction with the appended claims.
Further objects, features and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying Figures showing illustrative embodiments of the invention, in which:
The exemplary embodiments of the system, method, software arrangement and computer-accessible medium according to the present invention, referred to herein as “bMenu,” can be implemented using the following exemplary techniques,procedures and arrangements.
According to certain exemplary embodiments of the present invention, a system, method, software arrangement and computer-accessible medium can be provided for generating a drop-down menu interface for existing web sites. This exemplary menu interface may be hierarchal. The exemplary embodiment of bMenu described herein can detect all or part of the web page hierarchy and structure of the particular web site, and may convert this into menu data. The menu data can be stored in a central database and accessed or made available when requested from a client computer. The client computer and web browser operating thereon can convert this menu data to a dropdown menu interface, thus enabling a user to navigate the web site with a menu.
The client 100 may provide a uniform resource locator (“URL”) or other information capable of identifying the web site 310 (which the client 100 may be browsing or accessing) to the server 200. The server 200 may respond by providing menu data for the requested web site to the client 100 if it is available on the server 200. The client 100 can then use the menu data to generate and display a navigational menu, and may enable the user utilizing the client to navigate the content of the web site 310 by selecting menu items within the navigational menu. The exemplary embodiment of the system according to the present invention can also be configured such that both the client 100 and the server 200 may be executed on the same computer.
Another exemplary embodiment of the system according to the present invention is shown as a block diagram in
The crawler 230 may comprise a standard program or software arrangement stored in memory or another storage arrangement (e.g., hard drive, flash drive, CD-ROM, etc.) which, when run, can configure an associated processor, which may be the bMenu processor 220, to access and/or read Internet- or web-based content 300 by following links on web pages that it accesses. The crawler 230 can be programmed or, alternatively, obtained as an existing software package.
The crawler 230 can configure the processor 220 or, alternatively, a different processor, to “crawl” a web site (e.g., browse or access web pages, optionally without direct supervision or control by a user or a system administrator) for links located on web pages within the site, and detect the link structure of the web site. The link structure of a web site can relate to the links associated with web pages within the web site, which may comprise URLs that identify other web pages within the web site, and the interrelated structure and/or hierarchy of these links.
The crawler 230 can also detect menu data that may optionally be located on a local web server 311 and/or embedded in source code 312 of the web page. The menu data provided on or accessed by a local web server can be placed in a file at root level, e.g., similarly to the way that conventional robot.txt files may be associated with web pages and provided for search engine crawlers. The file containing such menu data may be assigned a predetermined name that can be recognized by the crawler 230 such as, e.g., bMenu.txt. Menu data optionally embedded in the source code of the web site can be provided, e.g., in the form of individual links or as a menu structure of the entire web site, and may be included in the first or main page of the web site. The menu data can be identified by a predetermined tag which may be recognized by the crawler 230 such as, e.g., <bMenu>.
The “link rel” code, which may be implemented by some existing web sites, can represent an example of this type of embedded data coding. However, <link rel> tags generally provide one level of menus, and it is possible that they may not include hierarchal information that can permit generation of a hierarchal menu scheme.
The URL of the web site that the crawler 230 accesses may be located in a crawler database 240. The crawler database 240 can contain a record for each URL accessed by the crawler 230, where the record can include information such as, e.g., a date that the site was most recently accessed or crawled, which may be used by the crawler 220 to keep the crawler database 240 updated, and which can further reduce or eliminate dead and/or duplicate links.
For example, the crawler 230 can communicate via the Internet 300 to crawl or access the web site 310, send the link structure obtained therein to the processor 220, and then receive additional URLs from processor 220 to crawl. The URLs and corresponding link structures thus obtained may be stored in the crawler database 240.
The processor 220 can be configured to process information obtained from the crawler 230, and utilize that information to generate the menu data. The menu data may then be stored in the bMenu database 210. Optionally, the crawler database 240 and the bMenu database 210 may be stored on the same server. Exemplary flow diagrams of exemplary process and methods for generating the menu data are shown in
In certain exemplary embodiments of the method according to the present invention, the processor 220 may also handle requests for receipt and/or generation of the menu data from the client 100 and can respond to these requests by providing the menu data obtained from the bMenu database 210. When there is no menu data available for the requested web site on bMenu database 210, a message or instruction may be transmitted to the crawler 230 to crawl or access the web site to obtain the link structure or other information from the web site, which may be used to generate the menu data. In certain exemplary embodiments of the present invention, the processor 220 can also be configured to receive preprocessed menu data either directly or indirectly via a manual input 260.
The menu data may comprise, but is not limited to, the menu structure of the web site. The menu data may comprise individual menu components, and it can be presented in several ways. For example, each menu component within the menu data may have a specific name or label to identify it. A menu component that is configured to lead or direct to the web page or location within the web site may further comprise an URL or a link. The menu data may further comprise tagging or listing information that is capable of defining a hierarchal structure, which can be converted to a hierarchal menu that may be displayed or accessed by the client 100. A listing of exemplary menu data that may be generated for the exemplary web site link structure shown in
Exemplary HTML code describing the web site, together with the appearance of corresponding web pages generated by the code, is shown in
The bMenu database 210 may be used for storing the menu data. The bMenu database 210 can store the data as plain text and/or utilize conventional database software to make the storage and handling of the menu data more efficient. The menu data stored on the bMenu database 210 can be provided and/or accessed by the processor 220.
The client 100 may be a web browser that is capable of requesting and receiving the menu data received from the processor 220. The client 100 may include, but is not limited to, a browser application accessed via a personal computer, a TV-based browser that can display web content on a television, or a device comprising a software application and a display that can be configured to access and/or browse web content, such as a mobile phone or a PDA. Conventional browser software applications may include Microsoft's Internet Explorer, Netscape, Firefox, Opera or the like.
Existing browsers or other software applications may be enabled to operate or integrate with the exemplary embodiments of the bMenu system of the present invention by implementing native support for bMenu within the browser software code with the use of client-side scripting, and/or by the use of a software component running separately on the client 100. The software component may include a bar which can be displayed at the top of a browser window, such as the search bar provided by Google or Yahoo! Implementing native support can mean that the exemplary embodiments of the bMenu system may be integrated as parts of the browser's software application. The software component that may be configured to display and use the menu data can be programmed, for example, in C++, Java, Visual Basic, Delphi, NET, etc. The choice of a computer language to use can depend on the browser and the operating system. For example, it may only be possible to use .NET to implement the exemplary bMenu system of the present invention into the Microsoft Explorer.
To enhance performance, the client 100 may locally store the menu data associated with frequently accessed web sites. The client 100 may search a cache 140 for the menu data and retrieve such data, if present, rather than sending a request to retrieve web site information by crawling the web site, and generate the menu data. The cached menu data may also have a date or other marker associated with it, which may be compared to data associated with the web site itself to determine if the cached data is current or outdated. If the cached data is determined to be outdated, e.g., because the web site has been modified since the cached data was obtained, then current menu data can be obtained by crawling or accessing the web site again as described above, and such new menu data may be stored on the cache 140.
The client 100 can optionally identify and use the menu data 311 that may be stored on a server hosting the web site 310. The menu data 311, if present, may be retrieved by the crawler 230, and supplied to the processor 220. Alternatively, the menu data 311 associated with a particular web site may be provided by a third party as a preconfigured data file. The webmaster or owner of the web site can create a file containing the menu data 311, and associate the file with the web site 310 on the server hosting the web site. If the optional local menu data 311 is detected by the crawler 230 when accessing the web site, the data can be retrieved and displayed as described above. Alternatively, the client 100 may provide a request to the crawler 230 to locate and retrieve the menu data 311 embedded in the source code 312 of the web site, if present.
In certain exemplary embodiments of the present invention, the menu data may be displayed via an interface comprising drop-down menus, and such menus may optionally be hierarchal. The drop-down menus can enable a user to navigate the web site in a conventional and familiar manner.
In certain exemplary embodiments of the system according to the present invention, a manual input 250 may be used to provide menu data directly to the processor 220. The manual input can be performed, e.g., by using a menu editor or other software program structured to order or arrange the links located within the web site. The manual input can be provided, e.g., in the form of a file containing the menu data or as a data feed or stream that can serve as input to the database 210.
In one exemplary embodiment of the present invention, menu item names, or menu labels, may be translated into different languages. For example, the menu labels can first be stored in the menu database. A dictionary for each desired language can also be stored in the database or in another database that can be accessed. A dictionary may include a list of corresponding words provided in two or more languages. To allow for automatic translation of the menu labels, the most common translation of each word and expression may be provided. The menu labels in the menu data file can then be translated, and the translated results can be stored in the menu file, or alternatively in another menu data file, which may be accessed as described above. Each menu data file may optionally include a marker and/or identifier indicating which language or languages have been used for the menu labels contained therein.
In further exemplary embodiments of the present invention, the crawler 230 may be configured to access and identify certain content of a web site by following the link structure contained therein. The links structures can be transmitted to the processor 220 , and may be processed and converted to the menu data. The processor 220 can use different methods and/or procedures for generating menu data, which may depend on the structure and the content of the web site. In one exemplary embodiment of the present invention, the crawler 230 may detect the existing link structure, filter it for duplicates, and convert this information into the menu data, which may then be stored in the bMenu database 210. The client 100 may be configured to transmit a request for the menu data to the processor 220 each time the user requests access to an URL via the browser. The processor 220 may then access the bMenu database 210 to search for menu data associated with the requested URL, retrieve the menu data if located, and provide it to the client 100. If the requested menu data is not available on the bMenu database 210 , the processor 220 can provide the URL of the web site to the crawler 230, and the crawler 230 can then access or crawl the web site associated with the URL to retrieve the site's link structure and generate the menu data, as described above. The URL and information retrieved from the corresponding web site by the crawler 230 may be stored in the crawler database 240.
A flow diagram of a method according to certain exemplary embodiments of the present invention is shown in
After the bMenu-enabled client receives data from the bMenu server, a menu may be generated (step 105) and displayed by the client. An exemplary generated menu is shown in
A flow diagram of the method according to further exemplary embodiments of the present invention is shown in
A bMenu-enabled client can search for menu data (step 103B) in a client cache 140, on a local web server 311, or in source code 112 of the web site being accessed. If the menu data is located in any of these locations, it can be compared with menu data that may be stored on a bMenu server, the most recent data may be provided to the bMenu-enabled client, and navigational menus based on the current data may then be generated (step 105). If it is not possible, for whatever reason, to determine the most recent version of the menu data found, then the size of the menu data fields may be used. For example, the larger data file may optionally be selected and used to generate menus, based on the assumption that the web site may grow in size and have more web menu data as time passes. Alternatively, the data located on the bMenu server can be selected as a default option. The order of priority for selecting which set of menu data to use can also be predetermined by an administrator of the web site or server.
A flow diagram of the method according to further exemplary embodiments of the present invention is shown in
The bMenu processor 220 may then generate the menu data (step 231) based on the data received from the crawler. The menu data can then be recorded in a bMenu database 210 (step 222), where it may be made available upon request from the client 100. A request for menu data may comprise an URL of a web site that the user is browsing via the client 100. The processor can receive the menu data request from a client 100 (step 225), and then query the bMenu database 210 (step 228) to determine if the requested menu data is stored therein. If the requested menu data is not available in the bMenu database 210, the URL may be provided to the crawler, and the crawler can then crawl or access the web site (step 241) to obtain the requested menu data. If the requested menu data is located in the bMenu database 210, the menu data can be retrieved by the processor and provided to the client 100 (step 227).
In the exemplary menu data generation process shown in
An exemplary web site link structure is shown in
The exemplary index page shown in
The generated menu data can be presented in several ways. An exemplary format of the generated data is shown in
Certain exemplary menu items may be repeated on several menu levels because the menus containing these menu items may be available on several pages within the web site. An example of a menu item appearing on several pages within a web site may be a menu item in the main menu of the site, because the main menu may be provided on several or all pages within the web site. Alternatively, there may be links to a particular web page stored within or by the web site that are provided on a plurality of other web pages at various levels within the site.
The menu structure generated from the link structure of the web site can be simplified by the use of an exemplary filter procedure, such as that shown in
The link structure of a web site may be viewed as a network of nodes, where every page may be considered as a node and every link can be considered as a way to travel or have access from one node to another. An exemplary node structure corresponding to a web site is shown in
The link structure of an exemplary web site is shown in
This exemplary filtering process may be described in more detailed with reference to the source code of the four web pages shown in
The code provided above shows an exemplary set of menu data generated from the web site link structure shown in
A graphical block diagram illustration of an exemplary embodiment of a complete menu structure generated for the exemplary web site link structure of
In certain exemplary embodiments of the present invention, a main menu of the web site may be provided and displayed while any page is being browsed or viewed within the web site. The web sites may have several shortcuts in their link structures, and they may include more than one link leading to a particular web page. A main index page provided by the existing web sites may have more links than may be desirable or practical in the top level menu, including direct links to some of the web pages that may be placed further down in the link structure hierarchy. Also, the space available to display top-level links may be limited by the use of certain web browsers or small-screen displays, particularly when the menu data may be presented in the form of a menu bar.
An exemplary process for detecting the top-level links within a web site and generating a top-level menu is shown in
The top-level menu of the exemplary web site link structure shown in
In certain exemplary embodiments of the present invention, the size of the menu for the web site may be limited or truncated when obtaining menu data and generating the menu structure. The web sites may have thousands of web pages or more, and a navigational menu that can access each of these pages can be cumbersome and inconvenient. Also, it may be preferable to limit the number of menu items and associated links in a single sub-menu so that the hierarchal menus do not become too large and unwieldy to navigate or scroll through.
The menu size may be limited, e.g., by only including links internal to the web site (links within the same domain) when generating menu data, and ignoring links that lead to web pages outside of the web site domain. The menu size generated for a given web site may also be limited by specifying a cut-off level that corresponds to a maximum number of levels below the top level to crawl. The level or depth of a web page may be defined by the number of links present in the shortest path between the web page of interest and the top-level page. The exemplary embodiment of the process for generating the menu data according to the present invention shown in
Alternatively, the size of the navigational menus generated may be reduced by limiting the total number of web pages and corresponding menu items to store as the menu data and/or to display for a certain web site. The size of the generated menus may also be limited by keeping only links to the web pages that have a predetermined page rank in the generated menu data. The page rank used in this exemplary process may be determined based at least in part on the level of the web page and/or the number of pages linking to the web page. Another option for limiting the size of the generated menus can include limiting the number of links and corresponding menu items associated with a web page to the number of menu items that can be clearly and/or conveniently displayed on the client or web browser. The links that are maintained within the menu data can be selected based on their relative ranking as described above. For large web sites, it may also be desirable to limit the number of menu items in the generated navigational menus to a number that may be updated within a reasonable timeframe.
Certain exemplary links may be accessed by clicking on a graphic element displayed on the web page, and may not have any link text associated with them. Examples thereof may include clickable buttons or other graphic elements such as a .JPG or .GIF image that may further comprise text within the graphic element. Menu item labels may be generated for the links associated with graphic elements using, e.g., conventional character recognition of the displayed text within the graphic elements, if any such text is present. Alternatively, if no text is detected as part of the graphic element, or if the graphic element is not displayed, an ALT tag may be used as a menu item label for the link. If there is no ALT tag present, the title of the target page associated with the link, or a portion thereof, may be selected as the menu item label. If there is no title on the target web page, a headline or first line of text in the body of the target web page may be selected as a menu item label. If there is not text present on the target web page, the file name of the document may be used. The menu item label generated by any of the exemplary processes described above may be truncated as appropriate.
In the exemplary process for generating the menu data shown in
The directory tree can then be converted into the menu data (step 234C). The first level directory can be used to generate top-level menu items, and the next level of the directory can be used to generate the next level of menu items, and so on, until the desired number of levels of the directory structure have been used to generate corresponding levels of menu items. If there is a large number of directory levels, the number of levels in the generated menu data may be truncated as described above. Optionally, menu data generated by using the directory structure as described above may be compared with and/or validated by menu data generated by any of the other processes described herein.
The menu data may be generated from an existing menu structure associated with a particular web site, if present. An example of such a process is shown in
An example of the navigational menus generated from the existing menu structures is shown in
If a stylesheet was not used, the menu may be displayed as an ordinary bullet list, such as the exemplary sorted directory tree provided above. The submenus associated with the exemplary source code listed above are shown in
Other types of content may also be linked to predefined menu items in the generated menus, such as the “Employees” and “Available positions” menu items shown under the Info menu item, as shown in
From the description of the exemplary embodiments of the present invention provided herein, together with the figures and appended claims, a number of advantages of the present invention may become evident:
Having thus described in detail several exemplary embodiments of the present invention, it is to be understood that the invention described above is not to be limited to particular details set forth in the above description, as many apparent variations thereof are possible without departing from the spirit or scope of the present invention. The embodiments of the present invention are disclosed herein or are obvious from and encompassed by the detailed description. The detailed description, given by way of example, but not intended to limit the invention solely to the specific embodiments described, may best be understood in conjunction with the accompanying Figures.
The foregoing applications, and all publications or documents cited therein or during their prosecution (“appln. cited documents”) and all publications or documents cited or referenced in the appln. cited documents, and all publications or documents cited or referenced herein (“herein cited documents”), and all publications or documents cited or referenced in the herein cited documents, together with any manufacturer's instructions, descriptions, product specifications, or product sheets for any products mentioned herein or in any document incorporated by reference herein, are hereby incorporated herein by reference, and may be employed in the practice of the present invention. Citation or identification of any document in this application is not an admission that such document is available as prior art to the present invention.
It is noted that in this disclosure and particularly in the claims, terms such as “comprises,” “comprised,” “comprising” and the like can have the meaning attributed to them in U.S. Patent law; e.g., they can mean “includes,” “included,” “including” and the like; and that terms such as “consisting essentially of” and “consists essentially of” can have the meaning ascribed to them in U.S. patent law, e.g., they may allow for elements not explicitly recited, but can exclude elements that are found in the prior art or that may affect a basic or novel characteristic of the invention.
Number | Date | Country | Kind |
---|---|---|---|
20056187 | Dec 2005 | NO | national |
Number | Name | Date | Kind |
---|---|---|---|
5463727 | Wiggins et al. | Oct 1995 | A |
6038610 | Belfiore et al. | Mar 2000 | A |
6226655 | Borman et al. | May 2001 | B1 |
6256028 | Sanford et al. | Jul 2001 | B1 |
6321222 | Söderström et al. | Nov 2001 | B1 |
6598042 | Kienan | Jul 2003 | B1 |
6633316 | Maddalozzo, Jr. et al. | Oct 2003 | B1 |
6687704 | Russell | Feb 2004 | B1 |
6771284 | Anderson et al. | Aug 2004 | B1 |
6809724 | Shiraishi et al. | Oct 2004 | B1 |
6957383 | Smith | Oct 2005 | B1 |
7228340 | De Boor et al. | Jun 2007 | B2 |
7296222 | Sakairi | Nov 2007 | B1 |
20010034746 | Tsakiris et al. | Oct 2001 | A1 |
20020019741 | Heston | Feb 2002 | A1 |
20020091455 | Williams | Jul 2002 | A1 |
20020120682 | Funaki | Aug 2002 | A1 |
20020198810 | Roger | Dec 2002 | A1 |
20030126235 | Chandrasekar et al. | Jul 2003 | A1 |
20040027391 | Tu | Feb 2004 | A1 |
20040044747 | Trevor et al. | Mar 2004 | A1 |
20040117349 | Moricz | Jun 2004 | A1 |
20040128275 | Moehrle | Jul 2004 | A1 |
20040205516 | Tufts | Oct 2004 | A1 |
20040230915 | Diering et al. | Nov 2004 | A1 |
20040268225 | Walsh et al. | Dec 2004 | A1 |
20050050472 | Faseler, Jr. et al. | Mar 2005 | A1 |
20050065970 | King et al. | Mar 2005 | A1 |
20050177784 | Andrews et al. | Aug 2005 | A1 |
20050246627 | Sayed | Nov 2005 | A1 |
20060101330 | Godley | May 2006 | A1 |
20070022125 | Salam et al. | Jan 2007 | A1 |
20070094267 | Good et al. | Apr 2007 | A1 |
Number | Date | Country |
---|---|---|
2004109557 | Dec 2004 | WO |
Number | Date | Country | |
---|---|---|---|
20070130125 A1 | Jun 2007 | US |