# US 8,751,601 B2 · User interface that provides relevant alternative links

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,601 B2
- Document ID: US8751601B2
- Status: Granted
- Kind: B2
- Application number: 11/465,564
- Filed: 2006-08-18
- Published: 2007-02-08
- Granted: 2014-06-10
- Earliest claimed: 2004-07-22
- Assignees: Barefruit Limited
- Applicants: Simon Richard Edge; Shane Lee Ambridge
- Inventors: Simon Richard Edge; Shane Lee Ambridge
- Web page: https://patentgrep.com/patent/US8751601B2

## CPC

- H04L 61/4511: using domain name system [DNS]
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/561: Adding application-functional data or data for application control, e.g. adding metadata
- H04L 67/567: Integrating service provisioning from a plurality of service providers
- H04L 67/75: Indicating network or usage conditions on the user display
- H04L 69/329: in the application layer [OSI layer 7]
- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

There is disclosed an improved user interface for a network, for example the Internet. If a user clicks on an incorrect hyperlink then the system, instead of merely informing the user that an error (e.g. “404 Not Found” error—meaning that the requested web page is not available) has occurred, provides the user with a list (503) of hyperlinks to alternative web pages. The alternative web pages are related to the context of the web page that was originally requested by the user (but was not available, due to the incorrect hyperlink, to the user). In a preferred embodiment (300), the system analyzes a web page (201) (i.e. the web page that contained the incorrect hyperlink) for context information and uses the context information to improve the relevance to the user of the list (503). The system may also analyze other web pages for context information.

## Claims

### Claim 1

A system configured to respond to a second web page not being sent from a web server to a web browser following a selection of a link on a first web page, said link specifying the second web page, comprising:
a terminal for use by a user, wherein the terminal comprises a processor configured by executing software instructions stored in a memory and the web browser operable to request web pages on behalf of the user;
a web server communicatively connected to the terminal over a network and operable to receive the selection of the link on the first web page specifying the second web page from the web browser;
an error detector, wherein the error detector is operable to generate a hypertext transfer protocol (HTTP) error code when, following the selection of the link on the first web page specifying the second web page, the second web page is not sent from the web server to the web browser due to the link being a broken link;
an error code receiver, wherein the error code receiver is operable to receive the HTTP error code from the error detector and, in response, cause information to be sent to a context analyser identifying the first web page;
a context analyser operable to: receive the information identifying the first web page from the error code receiver, analyse the content of the first web page to determine a location of the link on the first web page and at least one or more keywords in a vicinity of the location of the link on the first web page, analyse at least the one or more keywords but less than the entire first web page to determine information regarding the context of the link specifying the second web page and thereby deduce information regarding the context of the second web page, establish a list of one or more web pages that are relevant to the context of the second web page on the basis of the so determined information regarding the context of the link specifying the second web page, and communicate the list to a response generator; and
a response generator, wherein the response generator is operable to generate a response based on the list and to communicate the response to the web browser.

### Claim 2 (depends on 1)

A system according to claim 1, wherein the system comprises a DNS server, and wherein the error detector is operable to generate an error code responsive to a DNS resolution failure of the web page as requested by the web browser.

### Claim 3 (depends on 2)

A system according to claim 2, wherein the error detector is embodied as a DNS add-in that operates in conjunction with the DNS server.

### Claim 4 (depends on 1)

A system according to claim 1, wherein the error detector is operable to generate an error code when the web page as requested by the web browser is not available to the web browser.

### Claim 5 (depends on 4)

A system according to claim 4, wherein the web server comprises the error detector.

### Claim 6 (depends on 4)

A system according to claim 4, wherein the web browser comprises the error detector.

### Claim 7 (depends on 1)

A system according to claim 1, wherein the error detector comprises a timeout detector operable to cause the error detector to generate an error code when a request for a web page has timed out.

### Claim 8 (depends on 1)

A system according to claim 1, wherein the terminal comprises one of a desktop PC, a mobile telephone and a personal digital assistant.

### Claim 9 (depends on 1)

A system according to claim 1, wherein the error code receiver is embodied as a plug-in that operates in conjunction with the web browser.

### Claim 10 (depends on 1)

A system according to claim 1, wherein the error code receiver is embodied as a proxy add-in that operates in conjunction with a proxy web server.

### Claim 11 (depends on 1)

A system according to claim 1, wherein the error code receiver is embodied as a server that operates in conjunction with a proxy web server to modify the behaviour of the proxy web server.

### Claim 12 (depends on 1)

A system according to claim 1, wherein the error code receiver is embodied as an error handler that operates in conjunction with a second web server other than the web server.

### Claim 13 (depends on 1)

A system according to claim 1, wherein the context analyser and response generator are embodied as a helper web server.

### Claim 14 (depends on 1)

A system according to claim 1, wherein the error code receiver, the context analyser and the response generator are embodied as a plug-in that operates in conjunction with the web browser.

### Claim 15 (depends on 1)

A system according to claim 1, comprising a helper web server in communication with the context analyser and the response generator.

### Claim 16 (depends on 1)

A system according to claim 1, wherein the context analyser comprises a database that indexes web pages with keywords.

### Claim 17 (depends on 1)

A system according to claim 1, wherein when the second web page is not sent to the terminal, the context analyser is operable to:
retrieve a web page other than the second web page, and
analyse the other web page to determine context information.

### Claim 18 (depends on 17)

A system according to claim 17, wherein the context analyser is operable to: (i) determine a history of one or more web pages having links and also determining which links led the user to the second web page, (ii) retrieve the one or more web pages, and (iii) analyse the one or more web pages to determine context information.

### Claim 19 (depends on 17)

A system according to claim 17, wherein the context analyser is operable to retrieve a homepage associated with the second web page, and to analyse the homepage to determine context information.

### Claim 20 (depends on 17)

A system according to claim 17, wherein the context analyser is operable to retrieve a web page from an auxiliary server, and to analyse the retrieved web page to determine context information.

### Claim 21 (depends on 20)

A system according to claim 20, wherein the auxiliary server comprises a whois server.

### Claim 22 (depends on 20)

A system according to claim 20, wherein the auxiliary server is a first auxiliary server, wherein the context analyser is operable to use context information determined from a web page retrieved from the first auxiliary server as an input to a second auxiliary server, wherein the context analyser is operable to retrieve a web page from a second auxiliary server in response to the input, and wherein the context analyser operable to analyse the web page retrieved from the second auxiliary server to determine context information.

### Claim 23 (depends on 22)

A system according to claim 22, wherein the second auxiliary server comprises a what is server.

### Claim 24 (depends on 17)

A system according to claim 17, wherein the context analyser is operable to analyse the one or more web pages to determine keywords as context information.

### Claim 25 (depends on 1)

A system according to claim 1, wherein the error code receiver stores participant ID information, wherein the error code receiver is operable to send to the context analyser the participant ID information, and wherein the context analyser is operable to interpret the participant ID information as information regarding the context of the web page requested by the web browser.

### Claim 26 (depends on 1)

A system according to claim 1, wherein the response generator is operable to send a response to the web browser to re-direct the web browser to one of the web pages of the list of one or more web pages that may be of interest to the user.

### Claim 27 (depends on 1)

A system according to claim 1, wherein the response generator is operable to generate a web page and send the web page to the terminal.

### Claim 28 (depends on 27)

A system according to claim 27, wherein the web page contains one or more links to one or more respective web pages that may be of interest to the user.

### Claim 29 (depends on 28)

A system according to claim 28, wherein the context analyser stores linked ID information in association with the one or more links to one or more respective web pages, wherein the context analyser is operable to convey the linked ID information to the response generator, and wherein the response generator is operable to include respective linked ID information in the one or more links of the generated web page.

### Claim 30 (depends on 27)

A system according to claim 27,
wherein the response generator is operable to generate a preliminary web page based on a preliminary list received from the context analyser, and
wherein the response generator is operable to generate a supplementary web page based on a supplementary list received from the context analyser.

### Claim 31 (depends on 30)

A system according to claim 30, wherein the response generator is operable to generate a web page comprising a frameset wherein one of the frames of the frameset specifies the preliminary web page and another of the frames of the frameset specifies the supplementary web page.

### Claim 32 (depends on 1)

A system according to claim 1, wherein the context analyser and response generator are a helper web server,
wherein the error code receiver stores participant ID information,
wherein the error code receiver is operable to cause the participant ID information to be conveyed to the response generator,
wherein the response generator is operable to generate a web page containing one or more links that point to the helper server and to send the generated web page to the terminal, wherein each of the one or more links of the generated web page includes (i) information specifying a respective one of the one or more web pages that may be of interest to the user and (ii) the participant ID information, and
wherein the helper server is operable to receive a web page request from the terminal that includes information specifying a web page and the participant ID information and, in response to the web page request, send a response to the web browser to re-direct the web browser to the web page specified in the web page request and increment a counter associated with the participant ID information.

### Claim 33 (depends on 32)

A system according to claim 32, further comprising a plurality of counters, each counter being associated with respective participant ID information.

### Claim 34 (depends on 32)

A system according to claim 32, wherein the error code receiver is operable to convey the participant ID information to the context analyser, and wherein the context analyser is operable to convey the participant ID information to the response generator.

### Claim 35 (depends on 1)

A system according to claim 1, further comprising one or more linked servers, wherein the one or more linked servers store web pages that may be of interest to the user.

### Claim 36 (depends on 1)

The system of claim 1, wherein the context of the link comprises a web address of the second web page that is included in the first web page.

### Claim 37 (depends on 1)

The system of claim 1, wherein the context of the link comprises at least one linked keyword that corresponds to the link included in the first web page.

### Claim 38 (depends on 1)

The system of claim 1, wherein the context of the link comprises at least one keyword that is included in the first web page and is within the vicinity of the link, and wherein the vicinity of the link is a threshold number of keywords from the location of the link.

### Claim 39 (depends on 1)

The system of claim 1, wherein the first web page is the only web page analysed to determine information regarding the context of the link specifying the second web page.

### Claim 40

A system comprising: an error code receiver communicatively connected to a context analyser of the type that responds to a second web page not being sent to a web browser following a selection of a link on a first web page due to the link being a broken link, said link specifying the second web page, and which is configured to receive information identifying the first web page from an error code receiver, analyse at least a location of the link on the first web page and at least one or more keywords in a vicinity of the location of the link on the first web page but less than the entire first web page to determine information regarding the context of the link specifying the second web page and thereby deduce information regarding the context of the second web page, establish a list of one or more web pages that are relevant to the context of the second web page on the basis of the so determined information regarding the context of the link specifying the second web page, and communicate the list to a response generator, the response generator being operable to generate a response based on the list and to communicate the response to the web browser, the error code receiver being arranged to receive, in at least one computing device comprising a processor configured by executing software instructions stored in a memory, a hypertext transfer protocol (HTTP) error code from an error detector, wherein the HTTP error code is indicative that, following the selection of the link on the first web page specifying the second web page, the second web page was not sent to the web browser;
the error code receiver being arranged to cause, in the at least one computing device, in response to receiving the error code, information identifying the first web page to be sent to the context analyser.

### Claim 41 (depends on 40)

An error code receiver according to claim 40, wherein the error code receiver is operable to cause information to be sent to the context analyser by sending a HTTP re-direct response to the web browser.

### Claim 42 (depends on 40)

An error code receiver according to claim 40, wherein the error code receiver is a plug-in for a web browser.

### Claim 43 (depends on 42)

An error code receiver according to claim 42, wherein the plug-in further comprises a web browser.

### Claim 44 (depends on 40)

An error code receiver according to claim 40, further comprising a proxy add-in for a proxy server.

### Claim 45 (depends on 44)

The plug-in according to claim 44 further comprising a proxy server.

### Claim 46 (depends on 40)

A server computer for modifying the behaviour of a proxy server in response to a second web page not being sent to a web browser following a selection of a link on a first web page, said link specifying the second web page, comprising:
a processor configured by executing software instructions stored in a memory,
means for transferring messages between the server computer and a proxy server over a network;
an error code receiver according to claim 40, operable to analyse messages to determine whether a message contains an error code.

### Claim 47 (depends on 46)

A server computer according to claim 46, wherein the error code receiver is operable to measure the length of a message, and operable to cause the information regarding the first web page to be sent to a context analyser when both the length of a message exceeds a threshold and the message contains the error code.

### Claim 48 (depends on 46)

A server computer according to claim 46, comprising a network connection for communicating with a DNS server.

### Claim 49 (depends on 46)

A server computer according to claim 46, comprising a network connection for communicating with a web server.

### Claim 50 (depends on 40)

A server computer for modifying the behaviour of a proxy server in response to a second web page not being available to be sent to a web browser following a selection of a link on a first web page, said link specifying the second web page, comprising:
a processor configured by executing software instructions stored in a memory,
means for transferring messages between the server computer and a proxy server;
an error detector, operable to analyse messages resulting from the selection of the link on the first web page specifying the second web page, and operable to generate an error code when the second web page is not available to be sent to the web browser;
an error code receiver according to claim 40, operable to receive error codes from the error detector.

### Claim 51 (depends on 50)

A server computer according to claim 50, wherein the error detector comprises a timer configured to indicate a time taken for determining whether a second web page has taken too long to be sent to a web browser.

### Claim 52 (depends on 50)

A server computer according to claim 50, wherein the error code receiver is also operable to analyse messages to detect the error codes.

### Claim 53 (depends on 40)

An error code receiver according to claim 40, wherein the error code receiver is an error handler for a web server.

### Claim 54 (depends on 53)

An error code receiver according to claim 53, further comprising a web server.

### Claim 55 (depends on 40)

An error code receiver according to claim 40, wherein the error code receiver is a DNS add-in for a DNS server.

### Claim 56 (depends on 55)

An error code receiver according to claim 55, further comprising a DNS server.

### Claim 57 (depends on 40)

A computer program product embodied in a non-transitory computer readable medium defining processor interpretable instructions for causing a processor to implement an error code receiver according to claim 40.

### Claim 58 (depends on 57)

A computer program product embodied in a non-transitory computer readable medium according to claim 57, wherein the computer program product is downloadable over a network.

### Claim 59 (depends on 58)

A computer program product embodied in a non-transitory computer readable medium according to claim 58, wherein the computer program product comprises data downloadable from the internet.

### Claim 60

A server computer for modifying the behaviour of a proxy server, the server computer being communicatively connected to a context analyser of the type that responds to a second web page not being sent to a web browser following a selection of a link on a first web page due to the link being a broken link, said link specifying the second web page, and which is configured to receive information identifying the first web page from an error code receiver, analyse at least a location of the link on the first web page and at least one or more keywords in a vicinity of the location of the link on the first web page but less than the entire first web page to determine information regarding the context of the link specifying the second web page and thereby deduce information regarding the context of the second web page, establish a list of one or more web pages that are relevant to the context of the second web page on the basis of the so determined information regarding the context of the link specifying the second web page, and communicate the list to a response generator that is operable to generate a response based on the list and to communicate the response to the web browser, comprising:
a processor configured by executing software instructions stored in a memory,
a communication means for transferring messages between the server computer and a proxy server, wherein the communication means is operable to transfer Internet Content Adaptation Protocol (ICAP) messages; and
the error code receiver, arranged to:
receive, in at least one computing device, an error code from an error detector, wherein the error code is indicative that, following the selection of the link on the first web page specifying the second web page, the second web page was not sent to the web browser;
cause, in the at least one computing device, in response to receiving the error code, information identifying the first web page to be sent to the context analyser; and
wherein the error code receiver is operable to analyse messages to determine whether a message contains the error code.

### Claim 61

A context analyser, executable in at least one computing device comprising a processor configured by executing software instructions stored in a memory, that is operable, in an event that, following the selection of a link on a first web page specifying a second web page, the second web page is not sent from a web server to a web browser, to:
receive information identifying the first web page from a hypertext transfer protocol (HTTP) error code receiver, analyse at least a location of the link on the first web page and at least one or more keywords in a vicinity of the location of the link on the first web page but less than the entire first web page to determine information regarding the context of the link and thereby deduce the context of the second web page, establish a list of one or more web pages that are relevant to the context of the second web page on the basis of the so determined information regarding the context of the link specifying the second web page, and communicate the list to a response generator that is operable to generate a response based on the list and to communicate the response to the web browser.

### Claim 62 (depends on 61)

A context analyser according to claim 61 wherein the context analyser is a helper server.

### Claim 63 (depends on 62)

A context analyser according to claim 62, the helper server comprising a response generator, wherein the response generator is operable to generate a response based on the list and to communicate the response to the web browser.

### Claim 64

A method of providing a user with a user interface responsive to a second web page not being available to be sent to a web browser following a selection of a link on a first web page, said link specifying the second web page, the method comprising the steps of:
selecting the link on the first web page specifying the second web page;
detecting that the second web page as requested by the web browser is not available to be sent to the web browser due to the link being a broken link and, in response, generating a hypertext transfer protocol (HTTP) error code;
receiving the HTTP error code and, in response, analyzing at least a location of the link on the first web page and at least one or more keywords in a vicinity of the location of the link on the first web page but less than the entire first web page to determine the context of the selected link and thereby deduce the context of the second web page and thereby establishing a list of one or more web pages that are relevant to the context of the second web page and may be of interest to the user on the basis of the so determined information regarding the context of the link specifying the second web page, and
generating a response based on the list and communicating the response to the user.

### Claim 65

A system responsive to a second web page being inaccessible following a selection in a web browser of a link on a first web page, said link specifying the second web page, comprising at least one computing device comprising a processor configured by executing software instructions stored in a memory, an error code receiver executable in the at least one computing device, a context analyser executable in the at least one computing device and a response generator executable in the at least one computing device, wherein:
the error code receiver is operable to receive a hypertext transfer protocol (HTTP) error code and, in response, cause information to be sent to a context analyser, the HTTP error code being indicative of the selection in the web browser of the link on the first web page specifying the second web page and the second web page being inaccessible due to the link being a broken link and the information including information identifying the first web page;
the context analyser being operable to: receive the information from the error code receiver, analyse at least a location of the link on the first web page and at least one or more keywords in a vicinity of the location of the link on the first web page but less than the entire first web page to determine information regarding the context of the link and thereby deduce the context of the second web page, establish a list of one or more web pages that are relevant to the context of the second web page on the basis of the so determined information regarding the context of the link specifying the second web page, and communicate the list to a response generator; and
the response generator being operable to generate a response based on the list and to communicate the response to the web browser.

### Claim 66

A system responsive to a second web page being inaccessible following a selection of a link on a first web page, said link specifying the second web page, comprising a processor configured by executing software instructions stored in a memory, an error code receiver, a context analyser and a response generator, wherein:
the error code receiver is operable to intercept a hypertext transfer protocol (HTTP) error code sent from a server computer to a client computer and, in response, cause information to be sent to a context analyser, the HTTP error code being indicative of the selection, at the client computer, of the link on the first web page specifying the second web page and the second web page being inaccessible and the information including information on the first web page;
the context analyser being operable to: receive the information from the error code receiver, analyse at least a location of the link on the first web page and at least one or more keywords in a vicinity of the location of the link on the first web page but less than the entire first web page to determine information regarding the context of the link and thereby deduce the context of the second web page, establish a list of one or more web pages that are relevant to the context of the second web page on the basis of the so determined information regarding the context of the link specifying the second web page, and communicate the list to a response generator; and
the response generator being operable to generate a response based on the list and to communicate the response to the client computer.
