METHOD OF DYNAMICALLY CREATING A WEB PAGE ACCORDING TO USER
PREFERENCES
Background of the invention
The invention relates to a method of dynamically creating a web page according to user preferences.
One problem with existing web sites, such as web-based software applications, is that these are designed for use by a particular audience of users from a particular cultural group or for users with particular preferences. This makes use of such web sites difficult, for example, for users who are not familiar with the language, date format and culturally specific icons used in the web site. Even for uses who are familiar with the language and culturally specific icons used in a given web-site, that user may still be presented with irrelevant information because that web-site is designed to operate for many different types of users.
Previously, this problem has been addressed by creating several versions of a given web site, for example, in which the web pages are translated into different languages and any culturally specific format and other changes made. However, this is time consuming, expensive and slows down release of the web site. Storage requirements are increased and images and source code typically have to be changed. Because such changes are required, it is then necessary to test each version of the web site and this in turn is expensive and time consuming.
Even in the case that several versions of a web site are provided, for example, in different languages or for users of other different preference types, a user must still be able to select the most appropriate version for display. One problem has been enabling such a selection to be made effectively. For example, if the options are presented in a single language the user may not be able to understand that language and make the selection.
It is accordingly an object of the present invention to provide a method of dynamically creating a web page according to user preferences which overcomes or at least mitigates one or more of the problems noted above. Further benefits and advantages of the invention will become apparent from a consideration of the following detailed description given with reference to the accompanying drawings, which specify and show preferred embodiments of the invention.
Summary of the invention
According to an aspect of the present invention there is provided a method of dynamically creating a web page according to user preferences said user preferences being pre-specified by a plurality of locales, said method comprising the steps of:-
• for each locale, storing a resource file comprising pre-specified information;
• accessing information about preferences of a particular user;
• invoking a selection algorithm to select one of the resource files on the basis of the accessed information about preferences; and
• dynamically creating a web page using the selected resource file.
A corresponding computer system is also provided for dynamically creating a web page according to user preferences said user preferences being pre-specified by a plurality of locales, said computer system comprising:-
• a stored resource file for each locale, each of said resource files comprising pre-specified information;
• an input arranged to access information about preferences of a particular user;
• a processor arranged to invoke a selection algorithm to select one of the resource files on the basis of the accessed information about preferences; and • wherein said processor is further arranged to dynamically create a web page using the selected resource file.
A corresponding computer program is provided which is arranged to control a computer system for dynamically creating a web page according to user preferences said user preferences being pre-specified by a plurality of locales, said computer program being arranged to control the computer system such tha -
• for each locale, a resource file is stored comprising pre-specified information;
• information is accessed about preferences of a particular user;
• a selection algorithm is invoked to select one of the resource files on the basis of the accessed information about preferences; and
• a web page is dynamically created using the selected resource file.
This provides the advantage that it is not necessary to create and store several different versions of a web site in different languages or for users who have other different preferences. Rather, web pages are dynamically created to fit the preferences of individual users. For example, a plurality of locales may be specified, such as French-Canadian, French, US-English and UK-English. Web pages may then be dynamically created to fit one of these locales. In another example, different types of customer are specified for a flight-booking service such as frequent business users, frequent leisure users and family users. Web-pages are then dynamically created to fit one of these customer types. In addition, because resource files are used, it is simple to add more resource files or to update existing resource files without needing to make changes to several different version of a web site. This is possible whilst the system is "live" without the need for any "downtime". In this way, easy deployment of local-language or other versions of web-based applications and other web based services and products is enabled without the need to make changes to any of the existing software code for those web based applications, services and products. Preferably the accessed information about preferences of a particular user is accessed automatically, such that in use, web pages are created according to preferences of a user without manual input about those preferences by the user being required. This provides the advantage that the system is effectively "invisible" to users who are unaware that web pages are being dynamically created for a particular locale suited to that user. For example, users are presented automatically with their preferred language or a "next best" choice without any intervention from them. In one embodiment, when a user initially connects to a web server, information received from the user's machine and/or web browser is used to automatically determine which locale is most appropriate.
It is also possible for users to change the current locale by making a manual selection which is "remembered" by the system so that when the user next logs in, the manually selected locale is used. Preferably, a user interface is provided such that the user is able to manually specify a locale from those available without the need to understand the language of the current locale being provided.
In the event that the specific locale required by a user is not available, the system is able to provide a "next best" locale. For example, if French-Canadian is not available, the French locale is selected.
According to another aspect of the present invention there is provided a web-page for display to a particular user, said web page comprising a plurality of items of information selected according to preferences of the user, said items of information having been dynamically selected using pre-specified information from a selected resource file; and said resource file having been selected from a plurality of reserve files according to accessed information about preferences of the particular user.
Brief description of the drawings
Figure 1 is a schematic diagram of a client computer connected to a web server via the internet according to the prior art.
Figure 2 is a schematic diagram of a client computer connected to a web server which is arranged to dynamically create web pages according to preferences of a user. Figure 3 is a flow diagram of a method of dynamically creating web pages according to preferences of a user.
Figure 4 is a schematic diagram of client computers connected to a web server and CallPilot (trade mark) server such that web pages may be dynamically created to present the CallPilot web messaging service in different formats and/or languages.
Figure 5 is an example of a web page display that has been dynamically created according to user preferences.
Detailed description of the embodiments
Embodiments of the present invention are described below by way of example only. These examples represent the best ways of putting the invention into practice that are currently known to the Applicant although they are not the only ways in which this could be achieved.
The term "locale" is used to refer to pre-specified information about user preferences (such as language, date format and format of icons) that are typically exhibited by people from a particular group. For example, a locale may be specified for North American English speakers and a different locale specified for UK English speakers. A locale may also be specified for users of other types, such as frequent users of flight-booking services.
Figure 1 illustrates operation of a web site as is known in the art. A client computer 10 is connected to a web server 12 via the internet 11 or other suitable communications network. The client computer 10 comprises web browser software 13 such as Internet Explorer (trade mark), Netscape Navigator (trade mark) or any other suitable web browser software. The web browser software typically provides a user interface in a particular language, such as English, Japanese, German or French. A web site comprising a plurality of linked web pages 14 is stored on the web server 12 and is accessible by a user at the client computer 10 using the web browser software 13.
When a user of the client computer requires access to a particular web site, that user enters details of the particular web site to the web browser software which then sends a request to the web server on which the particular web site is stored. This request contains information about the location of the client computer in order that the requested web pages may be sent from the web server 12 to the client computer 10.
During use of the web browser software a temporary file, called a cookie, is written by the web browser 13 to the client computer 10. This temporary file contains information such as a history of web sites visited by the user in the last web surfing session. If the user exits the web browser software the cookie remains stored on the client PC. Also, when the user of the client computer sends a request to the web server 12, cookie information available on the client computer is sent together with the request, in the form of a cookie.
Previously, in order to provide different versions of a web site suitable for different locales, a separate version of the web site for each required locale has been created and stored on the web server 12. This is unsatisfactory for many reasons as described in the section above headed "Background of the invention". In the present invention, different versions of web pages, suitable for different locales (e.g. languages and cultures), are dynamically created. This avoids the need to create and store many different versions of a web site for different locales and user preferences.
An example in which different language versions of a web-site are dynamically created is now described. In order to dynamically create web pages for web sites in different locales, a plurality of resource files are created, one for each required locale. As shown in Figure 2, these resource files 15 are stored on the web server 12. The resource files are stored in the form of dynamic link library (DLL) files and this gives the advantage that they can be dynamically loaded based on a user's requested preferences such as a language selection. For example, a localisation company can take a dll file and process/localise it to contain strings for any particular language required, be it French/German, etc. The locale value that is contained within the resource file is then appended onto the end of the resource file e.g. resource_de.dll for German, resource_fr.dll for French. However, it is not essential to use DLL files; the information in the resource files may be stored in any suitable format provided a method of retrieving the strings from the relevant resource file is available. Each resource file contains a plurality of strings of text in the particular language for the particular locale. For example, "welcome" is one possible string where the locale is English. The creator of the resource files, uses knowledge about the particular web pages to be presented in order to create these resource files. That is, the resource files are specific to a particular instance of a web site.
If the web pages are to comprise images, a separate directory of images 16 is stored on the web server 12.
Also stored on the web server 12 is a selection algorithm 17 which when executed is arranged to select a locale from a plurality of pre-specified locales. The selection algorithm uses information about preferences of a user of the client computer 10 in order to make the selection. More detail about the selection algorithm 17 is described below in the section headed "selection algorithm". The information about the preferences of the user may either be provided manually by the user or may be automatically "detected" by software provided on the web server 12.
Figure 3 is a high level flow diagram of the method of dynamically creating web pages for particular locales. For each locale a resource file is stored comprising pre- specified text information (box31 of Figure 3). For example, the resource files are stored on the web-server and contain strings as described above. Information about preferences of a user is accessed (box 32 of Figure 3). For example, this is done by accessing information in a request for the web page made to the web server from a web-browser on a client computer. This is described further below in the section headed "information about preferences of a user". A selection algorithm is then invoked to select one of the resource files on the basis of the accessed information about preferences (box 33 of Figure 3). Finally, the web page is dynamically created using the selected resource file (box 34 of Figure 3). As mentioned above, the information about the preferences of the user may either be provided manually by the user or may be automatically "detected" by software provided on the web server 12.
Information about preferences of a user
In order to describe the information about preferences of the user, the case in which the preferences are automatically detected is now described. A user of the client computer 10 operates the web-browser to request a first web page of a web site from the web server 12. This request contains information about the location of the client computer 10 in order that the requested web page may be sent to the client computer. For example, such a request typically contains a universal resource locator (URL) for the client computer 10. This URL may contain a locale value such as "En" for English, "Fr-Ca," for French Canadian and so on. In that case, analysis software (which may be stored and executed at the web server 12) obtains the locale value from the URL and uses this as at least part of the "information about preferences of a user" (see box 32 of Figure 3).
If a cookie has been sent to the web server 12 together with the request, then the analysis software is able to analyse the cookie to see if it contains a locale value. If so, the locale value is used as at least part of the information about preferences of a user. Other information in the cookie may also be analysed to assess preferences of a user.
Other information about preferences of the user is obtainable from the web browser 13. As mentioned above, web browsers 13 are usually support a single language, such as French or Spanish. The analysis software checks the HTTP (hyper text transfer protocol) header to establish which language or languages are supported by the web browser 13. This also provides information about the preferences of the user.
The analysis software is also arranged to check the characters of the top-level domain name of the client computer 10 (or a server from which the client computer subtends). In some cases the last two characters of the top-level domain name indicate a country. For example, the domain name "some.host.ie" has a domain of "ie2 for Ireland. Other domain names which end in ".com", ".org", or other non- country specific domains are not analysed in this way.
Selection Algorithm
In a preferred embodiment, the selection algorithm comprises an ordered sequence of steps, which are carried out in sequence. If one of the steps succeeds in identifying user preference information then the remaining steps of the selection algorithm are ignored. That is, if a certain step fails to identify preference information, then the next step in the selection algorithm sequence is followed. Preferably there are five steps as listed in the order below: Step l
Step 1 involves checking whether any locale value is specified in the URL for the client computer 10 as described above. If so, that locale value is passed as a parameter to the process which dynamically creates the first web page. This is achieved through an ASP (Active Server Page) page parameter.
Step 2
Step 2 comprises checking the cookie for a locale value or other information as described above.
Step 3
Step 3 comprises checking the HTTP header value for the language supported by the web browser 13, as described above.
Step 4
Step 4 comprises checking the last two characters of the top level domain name of the client (or server from which the client subtends), as described above.
Step 5
Step 5 is a default step and comprises setting the locale value to any pre-specified value, such as "En" for English.
Once one of these five steps has been successful in producing a locale value, that locale value is used to select a corresponding resource file. That is, there is one resource file for each locale that it is desired to support. This may be achieved by giving each resource file a name which ends with the appropriate locale value and then matching the locale value output by the selection algorithm with the resource file name. If no match is found, then an attempt is made to find a generalised version of the resource. For example, if a resource file is required for French-Canadian users, then the locale value may be FR-CA. If no resource file named "resourcefile FR CA.dll" is found then a search is carried out for resource files named "resourcefile_FR.dll". If this second resource file is not found then the default resource file for the default locale is selected.
In other embodiments, the selection algorithm comprises some or all of the five steps above, arranged in different sequences, or where all the steps are carried out and the results combined to produce a single locale value.
Dynamic creation of the web pages
As described with reference to Figure 3 above, once a resource file has been selected, this is used to dynamically create web pages suitable for the corresponding locale. As explained above, every string that has to be displayed on the web pages is held within the resource file. As a request for one of the web pages arrives at the web server 12, software for dynamically creating the web pages processes the request and begins to build a view. This view is a software entity which acts as a container or template which has variables or slots in which text and or images may be inserted. The form of the view that is created depends on which web page has been requested, with each web page being represented by a different view. The software for dynamically creating the web pages then retrieves the necessary strings and or images from the resource file 17 and images directory 16 by making function calls to the selected resource file. Each string that can be loaded up has an identifier (ID) associated with it, which is defined in a cpp header file. The ID in the cpp header file maps into the selected resource file, in which each ID has a string associated with it. Whilst the string can change for each language the ID remains static, and therefore the identifier (ID) is placed in the view. A function is called which is passed this resource ID and the relevant string from the resource file is returned. These retrieved strings (and or images) are then wrapped in HTML tags to form a completed web page and returned to the web browser 13. The whole process of retrieving the images/strings and wrapping them in HTML tags takes place all at the same time. As the HTML tags are created the strings and other relevant details are obtained from the resource file and the tags, strings and other details such as images are output as a single page to the user's browser. Manual selection of locale value
As described above it is also possible for the user to manually provide information about his or her preferences. For example, this is achieved by presenting one button on the first web page for each locale that is supported. These buttons comprise pre- specified images that enable the user to select one of the supported locales (other than the one that is currently being used) in a manner that is independent of the language presented by the web browser. Once the user selects one of these buttons, a locale value is set in a cookie stored on the client computer. This ensures that in future, when the user accesses the same web site, his or her manually set preference is taken into account first. Also, as a result of the selection, the current web page is re-created and presented again to the user according to the selected locale.
Only buttons for locales that are currently supported are presented to the user. This is achieved by creating a list of available resource files each time a user logs into or request a first web page from the web server 12. This enables resource files to be updated, installed or removed from the web server 12 without the need to stop and restart the web server 12 or the client computer 10.
Preferably the analysis software, software for dynamically creating the web pages and the software for implementing the selection algorithm are implemented using a programming language such as C++ and are stored and executed on the web server 12. However, this is not essential, any suitable programming language can be used and the software may be stored in any location accessible to the web server and executed on any suitable processor which is accessible to the web server. The web pages may be of any suitable type such as ASP (Active Server Pages), JSP (Java Server Pages) or HTML (hyper text mark up language).
In a preferred embodiment, the web site comprises a web based software application for unified messaging such as Nortel Network's CallPilot (trade mark) unified messaging tool. The CallPilot tool provides a single inbox through which users are able to receive voice, fax and email messages. Users are able to operate this inbox using voice commands because the CallPilot tool uses voice recognition technology. Provision of a CallPilot system is illustrated in Figure 4 in which a CallPilot I MAP (internet messaging applications protocol) server 40 is provided in communication with the web server 12 which in this case is an I MAP proxy. The present invention enables the CallPilot Web Messaging tool to be used by people of different locales. In this example, three different locales, Japanese, French and German are supported and three different client computers 10a, 10b and 10c are illustrated, each requiring a different locale. By dynamically creating web pages of the web based CallPilot tool, the three different locales are supported without the need to provide three separate versions of Web Messaging, one for each locale.
Figure 5 shows an example of a web page that has been dynamically created using the method described herein. This web page is displayed in pseudo Swedish to illustrate how the method is used to display a given web page in formats and language suitable for a particular locale. The text shown in the web page has all been provided from a resource file for this particular locale. Also, four buttons 50, 51 , 52, 53 are displayed in order for a user to manually select another locale as described above.
A range of applications are within the scope of the invention. These include situations in which it is required to dynamically create web pages according to user preferences. For example, to provide web pages in different languages such as French, German or English or to enable date formats and icons to be adjusted for people from different cultures. The web pages may form part of a web-based application such as CallPilot (trade mark) produced by Nortel Networks, or any other suitable web-based application. For example, E-commerce applications, web-based email, on-line banking and web shopping applications.