WO2008149101A2 - Mobile applications - Google Patents

Mobile applications Download PDF

Info

Publication number
WO2008149101A2
WO2008149101A2 PCT/GB2008/001933 GB2008001933W WO2008149101A2 WO 2008149101 A2 WO2008149101 A2 WO 2008149101A2 GB 2008001933 W GB2008001933 W GB 2008001933W WO 2008149101 A2 WO2008149101 A2 WO 2008149101A2
Authority
WO
WIPO (PCT)
Prior art keywords
user
content
mobile device
information
data
Prior art date
Application number
PCT/GB2008/001933
Other languages
French (fr)
Other versions
WO2008149101A3 (en
Inventor
Peter Bryant
Alastair Simpson
Daniel Bell
Yiannis Maglaras
Original Assignee
Icom Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Icom Limited filed Critical Icom Limited
Publication of WO2008149101A2 publication Critical patent/WO2008149101A2/en
Publication of WO2008149101A3 publication Critical patent/WO2008149101A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Definitions

  • Embodiments of the invention relate, for example, to the apparatus and method for: transferring data to and from mobile phone devices; caching data locally on the devices; browsing or searching remotely stored databases; and purchasing goods and services for example tickets for events.
  • SMS Short Messaging Service
  • 3G third generation
  • the services associated with 3G technology enable a provider or user to transfer both voice data (e.g. a telephone call) and non-voice data (e.g. email, web browsing) simultaneously.
  • Some providers of 3G services have taken advantage of the high bandwidth capabilities of 3G to offer rich media content, e.g. video calling, applications or streamed media.
  • the 3G protocol, and its predecessor 2.5G, may still be considered sluggish in comparison to a broadband internet connection.
  • media-rich content e.g. high- resolution JPEG images or JAVA applications
  • the user experience is worse still.
  • these protocols rely on the user being within coverage of a wireless service to receive and view content. No known technology allows a user to quickly and easily access relevant and up-to-date content, even in a scenario where there is no wireless service (i.e. on an underground train or in-flight).
  • a user is typically identified by a username, which may be an email address or otherwise, and a user-defined or system-generated password.
  • a user account commonly allows a user to authenticate to system services and be authorised access to such services.
  • HTTPS secure HTTP
  • HTTPS secure HTTP
  • No known mobile application allows a user to quickly and easily access relevant and up-to-date event content and purchase tickets for these events in a quick, simple and secure manner from their mobile device.
  • FIG. 1 illustrates an embodiment of the present invention
  • Figure 2 shows a detailed illustration of the embodiment of figure 1
  • Figure 3 shows the process by which a server generates a registration link and sends it to a mobile device
  • Figure 4 shows the process by which the server accepts registration data from a desktop PC or other browsing means
  • Figure 5 shows the process by which the application is downloaded to the device
  • Figure 6 shows a process by which the server is configured to relay registration links to one or more associated devices forming part of a network
  • Figure 7 shows the process by which a user is given a predetermined length of time to validate registration after generation of the registration link
  • Figure 8 is a schematic illustrating an embodiment of a data communication protocol
  • Figure 9 illustrates how a mobile device displays data content through an application according to an embodiment of the invention.
  • Figure 10 illustrates a caching and wake-up function
  • FIG. 11 shows a detailed illustration of the server
  • Figure 12 shows the process by which an on-device application may be optimised to carry out transactions
  • Figure 13 illustrates the process by which the present invention carries out a ticket transaction request
  • Figure 14 shows an alternative transaction process which is carried out if a user has not entered payment information into their user account.
  • Figure 15 shows an embodiment of the present invention in which the server is configured to perform a 'group buy' function.
  • FIG. 1 illustrates an embodiment of the present invention 100.
  • a server 102 in communication with at least one mobile device 104 and/or at least one desktop PC or other browsing means 106, via a data transfer protocol 107.
  • a Bluetooth transmitter 108 in communication with the mobile device and/or personal computer.
  • the server 102 may additionally be in communication with a third party retailer 110 who supply goods such as music or sporting event tickets.
  • FIG. 2 shows a detailed illustration of the embodiment of figure 1.
  • the mobile server 102 is indicated as being coupled to a Content Engine server such as that referred to by numeral 106 in the annexed specification, entitled "Content Engine”.
  • the content engine may or may not be located remotely.
  • the mobile server replicates a portion of the user profile information relating to registered mobile users.
  • user profile information can flow in both directions so that any user profile record in the chain is updated based on the most up-to-date user profile information.
  • the main content engine database is centrally stored and managed and is preferably accessible by a number of devices, applications or servers, spanning a number of different networks, all of which use the same user account information to authenticate a user to server-implemented services or applications. Typically, this authentication will take place using some or all of the mobile phone number, email, pin or password.
  • the mobile server 102 has a mobile server application 109.
  • the server application 109 comprises data on one or more user accounts 202, which may be logically associated with data relating to one or more user profiles 204. These profiles include but are not limited to: favourite artist, genre of music, preferred location of a music event, browsing history etc. Throughout this description the terms "user profile(s)" and “user preferences” may be used interchangeably.
  • the server application also comprises a database 206 containing information relevant to mobile device users, which is generally one or more music events categorised by one or more of: genre, artist, news, event location.
  • the server application further comprises a time stamp module 208, which is configured to issue a time-stamp to each piece of transmitted data.
  • the mobile device 104 comprises an application 210, which is configured to access one or more templates 212 and images 214 stored in the internal memory of the device 216.
  • the application may also, however, have access to other data, such as video, audio or other data relating to the application stored in the internal memory or an externally connected flash memory device.
  • the on device application 210 which itself resides on the top of the mobile device operating system 205, has various modules which can be implemented in software, hardware or a combination of both. These modules include a user interface 222, a caching module 218, a monitor module 220, a connection manager module 221, and various application components 223a-d.
  • the user interface 222 provides a graphical and text-based interface supporting typical data input and selection functions.
  • the cache module 218 controls aspects of the on device application 210 and is able to communicate with the server 102.
  • the monitor module 220 is deployed to monitor incoming data transmissions from the server or other third party transmitters.
  • connection manager 221 manages aspects of the connection and choice of connection between the mobile device 104 and the mobile server 102.
  • the device manager may be set up to automatically manage connections by for example selecting one type of connection from a number of available connection types including but not limited to GPRS, 2.5G, 3G, Bluetooth WiFi, WiMax, Infrared etc. For example, such selection may be based on economic principles (i.e. cheapest available type of connection is default selection) or for example may be based on a predetermined a set of rules, such as a predefined priority order.
  • the connection manager may enable the user to select connection type based on the user's input each time it connects, or every so often.
  • connection manager is capable of switching between a "connected” operating mode and a "not connected” operating mode.
  • the not connected operating mode is engaged when there is a shortage of signal quality or network capacity.
  • the on device application automatically switches to the "not connected" operating mode when the mobile wireless signal falls below a predetermined quality threshold.
  • connection manager also has a profile building component such that in both its connected mode and its not connected mode, user profiles information is stored on the mobile device and can be referenced and/or updated by various application components.
  • the application components 223a-d may be generally regarded as a suite of related applications which share certain common resources, including data sources, and generally provide the user with some useful or beneficial service.
  • the application components include but are not limited to: directory services; news; ticket purchasing, transport information and a personalised scheduler.
  • the directory services application provides a listing of local, national or even international businesses, categorised according to the product or service provided, alphabetically etc. Using this application a user is able to search for a desired product and/or service using his mobile device and the listings may be generated, for example, based upon user-inputted search terms or may be personalised based on the user profiles 204. Generally, the listings are generated from data stored on the server 102 but may also be generated from other sources.
  • the news application allows users to download and view news content on their mobile device. This may include current affairs or alternatively other news relating to e.g. sport, lifestyle, music or any other. This content may also be personalised based on the user profiles.
  • the ticketing application provides users with an interface through which they ca>i browse and purchase tickets for music events such as gigs and festivals, sporting events, cinema tickets or any other event.
  • the transport information application may be used to deliver high quality, accurate and relevant information to users and may also, for example, be used to generate a personalised journey plan based on a journey planning algorithm.
  • the transport information application may thus download road traffic information, train timetables, bus timetables, maps and/or other travel-related data from the server 102 or another source.
  • a user can then use the application to define at least a starting point and a final destination, e.g. by completing a form or selecting the point on a map, and an algorithm then generates a journey plan based on the downloaded (locally stored) data, user inputted data and/or data contained in user profiles.
  • the transport data can be cached locally to the device and used irrespective of whether the mobile server is contactable or not.
  • the personalised scheduler is an application component which allows a user to view information about one or a series of arranged events: in particular, the time at which these events will take place, at what location etc..
  • One exemplary use of the scheduler is related to allocating time at a music festival.
  • the application component can download schedule information relating to which acts are performing at which locations at which times with an established connection to the server.
  • a user can then generate a custom timetable based on their own preferences by adding the act to the scheduler and the scheduler will alert the user that the event is about to start at the relevant time.
  • the personalised scheduler may use user profile data to alert the user of a certain act based on preferences, prioritise events based on preferences or alert the user of any conflicts in the schedule when they add a new event.
  • the functionality of the scheduler is not dependent on whether the user is able to connect to the mobile server and thus may function irrespective of connectivity.
  • the application components use data sources which can be shared among themselves and they also build user profile data which is used to update corresponding user profile records on for example the mobile server and the content engine.
  • Figure 2 shows how the cache module on the mobile device points to user profile data and application data.
  • User profile information on the mobile device is accessed by application components first, and particularly in the not connected mode, so that they can return the most relevant navigation experience and content to the user.
  • the user profile information on the device is updated when an application component derives new information about the user which may have been for example (i) declared by them, (ii) derived from their behaviour, or (iii) deduced in a more sophisticated manner (see annex).
  • the on device application also allows local control and manipulation of data by the user interface.
  • the application components support manipulation of data between different application components. For example, a user who wishes to attend a music event may use the application to purchase tickets for that event. Upon purchase of the tickets, the date, time and location of the event are added into the personalised scheduler and the journey planning aspects of the transport information component provide the user with a set of instructions telling them how to get to the event.
  • user profile information relevant to the user of the mobile device can arrive on the mobile device by the mobile server polling the content engine based on knowledge a new mobile user has enrolled and then push the relevant user profile to the mobile device.
  • it may be generated initially on the mobile device and fed across to the other parts of the system from there.
  • the user profile information is preferably time stamped and preferably also regularly exchanged between the mobile device, the mobile server and the content engine. This may take place at any predefined time interval.
  • communications from the mobile server to the mobile device are routed through a communications filter module 209.
  • This filter is equivalent to one or more of those indicated as 1350 in figure 13 of the annexed specification entitled "Content Engine”.
  • This filter filters and ranks all content based on the user profile information held on the mobile server such that the relevant mobile device user benefits from a highly personalised experience.
  • the user interface of the mobile device is controlled such that the menu options presented to the user are controlled according to information in the user profiles of either or both of the device and the mobile server.
  • Content on the mobile device is presented to the user based on similar principles.
  • the main principle is that menu options and/or content which are most relevant based on the user profile information has priority over that which is less relevant.
  • both configurations of options and/or menus presented to the user of the device and the content itself is controlled according to the user profile information. For example, where the mobile application is being controlled to present football fixture information to the user, then any options relating to the user's favourite team are presented with priority, namely first or at the top of the options menu.
  • the caching module can hold (or point to) data used by various application components as well as hold or point to the relevant user profile information.
  • Application components 233a-d can thus reference data locally (on the device) and also reference the cached profile information to control presentation of content and/or menus by the user interface.
  • one on device application component can refer to data originally held for another application component.
  • any or all of the application components can update the user profile information, even where there is no current connection to the mobile server via any of the aforementioned connection types.
  • on device application components may support certain group select functions. These functions enable a user of the mobile device to grant certain permissions to one or more other users.
  • a selection group may be defined by the user inputting data/contact details on the group or defined automatically when the user communicates with a certain "group or subset of users".
  • permissions may for example allow a user to state his/her own availability or to probe the availability of others.
  • permissions of this type may grant visibility or access to user profile information.
  • map images can be downloaded from the mobile server and presented to the user in a manner which allows them to be marked.
  • the maps are marked with a data item which is then stored locally along with the Map.
  • the on-device application supports multi-variable queries which may reference any one or more of the available data sources and/or the user profile information.
  • the on device application uses time stamp information to make data or messages become visible to a user at a time materially later than the time it was transferred to the mobile device.
  • the mobile application can cause messages and/or data to be presented to a user at a predetermined number of .seconds, minutes, hours, days, weeks, months and years etc. after it was initially downloaded to the mobile.
  • data or messages cached on the device may be given an expiry time at which point in time the data or message removes itself from the cache; this can be used in order to free up space in the cache.
  • the cache module can validate the time recorded by the on device clock and/or calendar function. According to this process, the on device time is noticed, a network mast is queried for a time on which to base a comparison, and then the on device time and the network time are compared. If the times do not agree within a predetermined difference (say half an hour), an alert is sent to the mobile device indicating its clock may be in error. Alternatively, the clock may be automatically corrected to relevant local time by the on device application.
  • a predetermined difference say half an hour
  • the various functions performed by and in support of the application components are operable both locally (when no connection is available) and remotely (when the mobile server is contactable). Such functions are designed to be as close as possible to fully operable in the absence of a connection with a view to synchronisation / updating of relevant records when a connection is next made.
  • the on-device application 210 is thus configured to access locally stored templates, as well as separately stored data content.
  • Each page view of the application has a predefined visual layout governed by the templates.
  • the templates define, for example, colours, fonts, layout, and other aspects of overall document presentation output through the user interface 222.
  • the templates are deployed primarily to enable the separation of document content (separately stored data content) from document presentation data. This separation improves content accessibility and means that the application only has to request the document content from the server, which is generally images, text and/or video and combine it with the locally stored templates to create a presentation of the data on the mobile device screen.
  • the separate document content is transferred as raw data.
  • Known methods of transferring rich media involve the sending of plain text and images wrapped in WAP/HTML or XHTML headers which have high data overheads.
  • the raw data protocol according to the present invention reduces data overheads by sending a raw data string with no HTML headers etc.
  • a news article within an application will be provided in a standard template stored locally, the data will be provided as a raw data string which is then displayed in a colour and font pre-determined and stored locally to the phone, the news article may also include an image which will be sent as a stripped down image which is placed in the predetermined slot within the locally stored template.
  • the application 210 sends a request to the server application 109 for the relevant data and download it from the server to the device 104 via the data transfer protocol 107. Such data is then cached by the device, depending on the server-issued time stamp.
  • the raw data string may also comprise an image and/or video adapted for the screen size of the phone which can then be cached and used by the application 210 at a later time.
  • This configuration thus allows a user to view a certain piece of data, i.e. an event or news item in rich-media format with very little data transfer.
  • the application 210 is either always running on the device in the background, configured to wake up periodically or at a specific date/time, or loaded by an incoming message on a predetermined socket or port detected by a monitor module 220.
  • a wake-up data stream is transmitted from the server 102 via the wireless transfer protocol to the device 104 (for example via SMS). In this way, the server sends an instruction to the device to run the application 210, or part of it.
  • the monitor module 220 is configured to detect incoming data transmissions from the server 102 and may be active even if the user interface 222 is not loaded. When the monitor module detects new content relevant to a user on the server, and the user interface is not loaded on the device, the monitor module loads the interface, which then displays a copy of the data received over the wireless data transfer protocol from the server application 109.
  • the raw data stream can be used to push relevant data content though the on-device application 210.
  • data is sent with a socket or port number (by analogy to the application listening on a given socket or port via the monitor module) and the incoming message wakes up the user interface at a certain page.
  • the application then connects to the server and transfers the requisite data to display the content via the user interface. This could be an advertisement or content which the user has not requested but the server deems it potentially of interest to the user based on one or more user preferences.
  • the application 210 thus may be used by the mobile device user to remotely browse data stored on the server, such as information relating to music events, and purchase goods such as tickets relating to the events, or data stored locally on the device.
  • the application is also used to enter personal registration information such as a username, password, email address, pin number, or any other means of identifying an individual within a service network, in order to create a user account.
  • the user interface 222 is configured to display forms which accept registration information.
  • the registration information is sent to the server 102 and is stored in a user account database 202.
  • the user interface or other components of the mobile application 109 may be used to send user preferences to the server, which are associated with the user account and are stored in a user profiles database 204.
  • User profile information may relate for example to favourite bands, artists, genres of music, types of event, venue or any other.
  • the user account may be created from a desktop PC, laptop, PDA or other internet browsing means 106, by filling in an appropriate web form or sending the information to the server by some other means, e.g. email.
  • the browsing means 106 may be used to send user profile information to the server which are then associated with the user account and stored on the server accordingly.
  • a Bluetooth transmitter 108 is deployed in order to transmit data to either the mobile device 104, the browsing means 106 or both.
  • the transmitter may be placed in an advertising banner or at a point of sale, and be configured to transmit an account registration link directly to a device with an active Bluetooth receiver.
  • the user of the device can use the registration link to create a user account. It is possible to transmit a version of the application 210 to the device via the Bluetooth transmitter.
  • FIG 3 shows the process by which the server generates a registration link and sends it to a mobile device 300.
  • a user 302 sends a text message (e.g. via SMS) containing a common short code, or keyword, to a number 304 associated with the server 102.
  • this common short code is an instruction which is relayed to the server 306 that indicates the user wishes to register an account.
  • the server then generates a registration link 308 for the user and sends it to the device 310.
  • the link is then displayed on the device, for example as an ordinary text message 312, and may also contain additional information such as instructions for completing the registration process.
  • FIG 4 shows the process by which the server accepts registration data from a desktop PC or other browsing means 400.
  • a user 402 visits a registration website 404, which is accessible from a desktop PC running a conventional HTML browser, a mobile device running a WAP browser, or any other suitable web browser 406.
  • the registration website may be reached by following the registration link, as generated and sent to the device in figure 3, or by the user directly navigating to the website, e.g. using a URL from a promotional email, poster etc.
  • the user then enters registration information, typically into a form on the registration website 408.
  • This information will generally include some or all of a username, email address, password, pin number and/or mobile phone number, to ensure a support of account personalisation across a number of platforms.
  • the information may also include other useful data such as the user's device type and service provider.
  • the server 102 creates a user account 410 based on the information 408 and writes the user account information into the database 412.
  • the server Upon creation of user accounts, the server stores user information in a secure database. As well as information relating to user identification (i.e. email address, password, mobile phone number etc) the database may also store additional information such as user preferences based on user-specified criteria or browsing history. Such user preferences and the like are stored as user profiles on the mobile server 102.
  • Figure 5 shows the process by which the application 210 is downloaded to the device 500.
  • a device-specific application i.e. an application with a user interface optimised for a certain device manufacturer and model
  • a user will specify their device type during or after the account registration process 502, which is then associated with the user account 204.
  • the server 102 checks the device type specified by the user 504.
  • the device type may be determined automatically.
  • UProf User Agent Profile
  • UProf User Agent Profile
  • the server will then access 506 one or more device-specific applications.
  • These applications generally have various user interface images optimised for various phones. For example, a phone with a high-resolution large screen will have an interface which is tailored for use on such a screen, and the interface images and templates will utilise the full capabilities of the phone by displaying larger images, more text etc.
  • the server Once the server has identified the device and relevant application, it will generate an application download link 508 based on the device type. The user then follows the link 510 using the device and downloads 512 and installs the application 514. Alternatively, the user may follow the link and download the application with an alternate browsing means, such as a desktop PC, and thereafter transfer the application to the phone for example via a Bluetooth connection or USB cable.
  • an alternate browsing means such as a desktop PC
  • the mobile device may be pre-embedded with a registration module, which is ready to be activated by the user upon purchase of the device.
  • a registration module which is ready to be activated by the user upon purchase of the device.
  • the user will run an on-device application which is configured with the means to accept registration information.
  • registration data may be collected at a point of sale and used to create an account which is then validated by the user at a later time and some mobile devices may be sold pre-loaded with a device-specific application and thus the user simply needs to register an account and does not need to download the application separately.
  • Figure 6 shows a process by which the server is configured to relay registration links to one or more associated devices forming part of a network 600.
  • a user (known in this case as a 'referrer') 602 initiates a group registration during or after the normal user registration process, e.g. see fig. 2.
  • a user may specify a list of friends by entering the mobile phone numbers or email addresses of friends in a provided form 604.
  • the server is then capable of generating individual registration links 606.
  • the links are thus user (or 'referrer') initiated and are relayed by the server 102 to the specified phone numbers 608, e.g. by SMS or other suitable protocol.
  • the link is then received by one or more new registrants associated with the specified phone numbers 610 as specified by the referrer.
  • the new registrants then follow the registration process as outlined above and the server 102 will create corresponding user accounts for each new registrant 612.
  • the server may also mark within the new registrant and/or referrer user accounts, or alternatively a separate database, the relationship or association between the referrer and new registrant(s) 614.
  • new registrants may also be referred by a user during the web-based registration process, and in this case, each new registrant will be sent a registration link either by email or SMS and follow the registration procedure as described above.
  • Figure 7 shows the process by which a user is given a predetermined length of time to validate registration after generation of the registration link 700. This process ensures that the user account is correctly validated to the particular device specified during the registration process.
  • the server 102 may also generate a corresponding time-stamp and associate it with the link 702, generating a timed 'validation link'.
  • the server checks the time-stamp against the server clock 704 (e.g. periodically or at certain predetermined calendar dates) and, after a predetermined time, e.g. 14 days, will remove the link and make it inaccessible to the user.
  • the user must follow the validation link within the 14 day validation period in order to complete registration 706.
  • the user may validate their account by (1) website registration using a conventional PC or (2) registration from the device. After this time, the user will have to re-register 710 in order for the server to generate a new registration link 712 and re-start the 14 day timer.
  • the application which is installed on the device upon successful registration (see figure 5) displays a count-down timer through the user interface indicating the time remaining for the user to validate their registration.
  • the server is capable of validating the phone clock with the server clock in order to prevent tampering, i.e. by periodically synchronising the device clock with the server clock.
  • Figure 8 is a schematic illustrating a mode of operation of the data communication protocol 107.
  • a user of a mobile device engages 802 the on-device application 210 (or alternatively the application may be loaded according to figure 2) and sends a request for a particular piece of data 804, e.g. by browsing or searching for an event, artist, venue etc. using the user interface.
  • the data request is processed by the application 210 and a check is performed 806 by the cache module 108 as to whether the device has connectivity to the mobile server and whether a particular piece of data is stored locally on the device. If the data is stored locally on the device 808, the cache module then performs a time-stamp check 810 to ascertain whether the requested data is up-to-date (i.e. within the date specified on the time-stamp). If the data is up-to-date, the cache module returns the data to the application 812 and the user of the mobile device is able to view the data with no associated data transfer.
  • the cache module sends an instruction to the application 816 to download the data 818 from the server 102, if a connection is available, and the data is updated with the most recent version stored on the server.
  • the cache module performs a check as to whether a particular piece of requested data is stored locally on the device and returns a result that the data is not present 820, the cache module sends an instruction 822 to the application to request the data 818 from the server 102.
  • the request sent to the server is made in the form of a raw data transfer request (a low bandwidth communication) 824.
  • the communication contains only an instruction for the server to issue a particular piece of data, and this will generally be document content, i.e. images and/or text, also in raw data format which is then combined with the locally stored templates to create a presentation of the data on the mobile device screen, as described in accordance with figure 2.
  • the server 102 Upon receiving the request 826, the server 102 performs a look-up function to access the relevant data 828 and issues the data with a relevant time-stamp 830.
  • the time-stamp therefore enables the server to wirelessly determine aspects of the on-device cache module, particularly relating to which data the cache module sends to the application 210 at a predefined time and date.
  • the time-stamp process typically involves issuing the data with a digital time signature.
  • One such method involves the use of hash functions, which is a reproducible method of turning a piece of data into a small number which serves as a digital signature of the data but any known method of time-stamping may be used.
  • the time-stamp is monitored by the cache module and on-device application and can be viewed by the user within the application at the time specified on the time-stamp. This therefore allows data to be viewed by a user through the user interface regardless of signal strength or extent of operator coverage.
  • all data sources e.g. Events
  • a "use-by" stamp which defines a validity period and/or a data refresh period.
  • news may be refreshed every 5 minutes, weather information refreshed every few hours, and bank holiday information in a calendar refreshed annually.
  • the refresh period differs from one data source to another in dependence on the purpose of the data being conveyed to the mobile device.
  • the application 210 at a general level may update event information daily or hourly for browsing purposes, however, may update seating availability for that event every 30 seconds.
  • the. application may refresh the seat availability and display "x tickets remaining" every 30 seconds, but other data such as images, venue name & description, etc. is kept in the cache and refreshed independently. After a ticket purchase has occurred, the data will revert back to its original validity period based on the latest time- stamp, i.e. it is not longer necessary to convey seat availability information to the user after purchase.
  • cinema data is updated periodically at a given time (e.g. Thursday at noon).
  • a user browses cinema data on a Wednesday, it will show only Wednesday and Thursday's cinema listings.
  • the application will download new cinema listings data and cache it in the device memory, which may then be browsed directly from the device memory until the time stamp expires (i.e. the following Thursday at noon).
  • the time stamp expires (i.e. the following Thursday at noon).
  • a user may directly access data cached in the device memory without needing to download any new data until the data expires according to a predetermined period defined by the time-stamp.
  • the application may also be configured to automatically look for data at a given period and if this data has not been updated within that period, it will generate a reminder to download the data at a later time.
  • Different data types are time stamped and/or triggered for refresh according to their nature, e.g. news can expire and/or refresh every hour, ticket availability every 10 minutes while browsing, every 30 seconds while purchasing, for example.
  • the server transmits the data wirelessly 830 as a low bandwidth raw data transmission to the mobile device 104.
  • the server may be configured to issue relevant data based on one or more predefined user preferences stored on the server and associated with a user account. This configuration may be used to push relevant data to a user in addition to the data they have requested. In other words, while the server is transmitting the requested data to the mobile device, it may also transmit data from the server which may be relevant to the user immediately or at a future date.
  • the cache module will covertly store the data content in the device memory and the data content will remain dormant in the memory until the time and date specified within the time-stamp. At a given time and date, the cache module pushes the data content through the application and it may then be viewed by the user.
  • a user is able to view up-to-date content regardless of wireless service.
  • the server may send data content relating to a music event which is happening in 3 months from the date of sending, and accordingly issue a time stamp for the cache module to push the content through the application at a time and date 3 months in the future.
  • the cache module will load the data content and the user will then be informed of the event through the application.
  • the user does not have to be connected to a wireless network to receive messages (i.e. may be on an underground train or in-flight), since the data is loaded from the on-device memory. This allows a user to view up-to-date content without being within service coverage of a wireless network.
  • Figure 9 illustrates how the mobile device displays data content through the application 900.
  • the mobile device 104 receives a transmission of data 902 from the server 102.
  • the monitor module detects the incoming transmission 404 and performs a check 906 to ascertain whether the user interface 222 is running on the mobile device 104. If the interface is not running on the mobile device 908, the monitor module sends an instruction to the mobile to load the interface 910. If the interface is already running 912 or the monitor module has loaded the interface 910, the application loads up the visual templates 914 from the on-device memory 216 and sends an instruction to the cache module to perform a check 916 to ascertain if the data content is present on the device or within the raw data transmission. If the data content is not present 918, the cache module connects 920 to the server 102 and requests the data. The server then sends the data 922 to the device.
  • the application loads up locally stored templates and combines the data content with the templates to form a visual presentation of the data, which may then be viewed by the user 928 via the user interface 222.
  • the on-device application is configured to function optimally on any number of specific devices.
  • the on-device application is configured to function optimally on any number of specific devices.
  • user interfaces which take into account, for example, device memory, screen size and resolution, soft-keys etc.
  • the on-device application may also be pre-loaded with general images to form a framework, e.g. maps of stadiums, seating plans, images of key acts, directions etc. It is then possible to use the pre-stored seating plans and basic framework to add other artists or bands at a given event by transmitting just the raw data that forms the text in a string and small image of the act (if neither has been previously stored for another event). Any additional changes can be sent as an instruction to draw information on the screen through the user interface in raw data, i.e. "draw square in colour-X, Y pixels by Z pixels, at location A".
  • the instruction is typically a few bytes of data, rather than an image (or images) which are a few kilobytes each.
  • FIG. 10 illustrates the caching and wake-up function 1000.
  • the server 102 is configured to monitor 1002 user accounts 202 and preferences 204.
  • the user preferences are checked against data content 1004 and the server ascertains which data content is relevant to which user accounts, based on the predetermined user preferences.
  • the server issues a time-stamp 1006 to the data and sends it to the user's device 1008 via the wireless data transfer protocol.
  • the data is then cached in the device 1010 by the cache module 218 according to the server-issued time stamp. If the cache module checks and determines 1012 from the time stamp that the data should be displayed immediately 1014, it sends an instruction to wake up the application if it is not currently loaded 1016, which then displays the data on screen 1018.
  • the cache module determines 1012 from the time stamp that the data should be cached for a later date 1020, it will write the data to the on-device memory 1022. The cache module will then load the user interface 1016 at the date and time specified on the time stamp, if the interface is not already loaded, and display the data on screen 1018.
  • a user is able to receive a message to their phone whenever a relevant event becomes available, for which they may then directly buy tickets.
  • Suppliers can push certain tickets, generate more interest and sell tickets directly to phone users very simply and securely.
  • the application can be used to push forward certain personalised content to the user, which may contain rich media.
  • the application also has great cost savings to the user, who does not have to pay for the transfer of large amounts of data.
  • FIG 11 shows a detailed illustration of the server 102.
  • each data source in this case, music events 1102, 1104, 1106
  • each data source is mapped onto a multitude of searchable or browsable categories including: artist 1108, genre 1110, venue 1112, news 1114 or any other to form different horizontal and vertical search categories.
  • artist 1108, genre 1110, venue 1112, news 1114 or any other to form different horizontal and vertical search categories.
  • search categories such as: "rock”, “legends” and “Mick Jagger”.
  • the Rolling Stones event is then logically associated with other "rock” events within a certain timeframe within the same area or same date, or possibly other "legends” from different music genres appearing at the same event.
  • the database and multitude of categories form a multi-level entry schema, accessible by a user at any level using the on-device application 210.
  • the schema describes the objects (events) that are represented in the database, and the relationships among them.
  • There are many different ways of organising a schema and it is possible to use a number of database models (or data models).
  • schemas utilise a relational model, which represents all information in the form of multiple related tables each consisting of rows and columns. This model represents relationships by the use of values common to more than one table.
  • a user therefore, is able to navigate to The Rolling Stones at Glastonbury event by following any of the category threads mentioned in the preceding paragraph. This may involve selecting one of a series of displayed links within the application or alternatively entering a search term into a search engine and being directed to the relevant data source by the search engine.
  • Another feature of the present invention is that it is also possible to suggest alternative and/or additional activity around one or more user-defined preferences and/or information held about the user. If the user is at a festival, and has selected some events within that festival of certain genres, the system can suggest additional events and activities between and around known activities, as well as news and related articles around those preferences. For example, if a user has selected certain rock events at festival but nothing between 4pm and 6pm, the system may suggest related events, activities and news between 4pm and 6pm or after 6pm in the same event and genre.
  • a user of a mobile device 104 may use the mobile device to enter 1202 credit or debit card information into a pre-registered user account (as described for example in figure 3).
  • the user may enter credit or debit card information using a desktop PC or other browsing means 106 using a website associated with the server.
  • the payment information is stored by the server 102 in a database associated with user accounts 1204. Once the information has been added to the user account, the server creates a flag in the database 1206 to indicate that a user has entered payment information.
  • the payment information is stored securely within a payment information database and the user is asked to define a pin number in order to validate themselves at a later date. This is usually a 4-digit pin which may be quickly and easily entered using the keypad of a mobile device, and dispenses with the need for a user to enter payment information for every individual transaction.
  • the server communicates with the mobile device 1208 associated with the user account and newly entered payment information and sends an instruction to the on-device application 1210.
  • the application may then adapt the user interface to present the user of the application with a 'click to buy' button 1212.
  • This function allows a user to complete a transaction 1214 from their mobile device quickly and simply. For example, a user browses a database stored on the server for an event and selects to purchased tickets for that event. The user is then presented with the 'click to buy' button. Upon clicking the button, a transaction request is sent to the server which processes the transaction.
  • Figure 13 illustrates the process by which the present invention carries out a ticket transaction request 1300.
  • a user sends a purchase request 1302 by browsing or searching music event categories and clicking to buy tickets for the event. This is typically done by navigating to the relevant ticket purchase page using the interface and proceeding to the purchase page and the user instructs the application to send the transaction request 1304 to the server.
  • the instruction is sent when the user clicks the 'click to buy' button.
  • the user is asked to enter some account information in order to identify them as validated users. This is generally a username and/or password.
  • the server then connects to the user accounts stored within the server and ascertains whether the user has registered payment information 1306. In this example, the user has pre-registered payment information.
  • the server checks the availability of the requested tickets 1308, which may involve checking a database of tickets stored locally on the server or by communicating with the 3rd party retailer to ascertain if there are requisite number of tickets available.
  • the server will then send a pin request 1310 to the mobile device and the on-device application, via the user interface, will ask the user to enter their pin number in order to validate themselves as the authorised holder of the account and payment information.
  • the pin number is then send as an encrypted data packet to the server, which verifies the pin 1312. If the pin number is entered correctly, the server issues the tickets to the user 1314.
  • the server will remove the relevant number of tickets from the ticket database, indicating that a transaction has taken place, and will also debit the correct payment amount using the credit or debit card information stored on the server.
  • the issuing of tickets may additionally involve the server sending a request to a 3rd party retailer 1316, such as Ticketmaster, along with the payment information associated with the user account.
  • the 3rd party will then verify the payment information from the server and, upon successful verification, assign the tickets to a user and generate a confirmation code 1318.
  • the 3rd party will generally also send an email to the .user 1320 containing the confirmation code, as well as confirmation that the transaction has been successful.
  • Figure 14 shows an alternative transaction process which is carried out if a user has not entered payment information into their user account 1400.
  • a user makes a purchase request 1402. This is typically done by navigating to the relevant ticket purchase page using the application and proceeding to the purchase page.
  • the application then sends the purchase request to the server 1404.
  • the server checks to see if the user has entered any payment information such as credit or debit card information. In this case, the server determines that no payment information has been entered 1408.
  • the server will then send data to the application corresponding which contains alternative payment methods or instructions for completing the transaction 1410.
  • such instructions may include a telephone number, internet link or other means of completing the purchase by communicating with a merchant.
  • Figure 15 shows an embodiment of the present invention in which the server is configured to perform a 'group buy' function 1500.
  • a user sends a purchase request by analogy to figure 14, however, the user additionally specifies one or more additional purchasers 1504, e.g. by specifying the mobile phone numbers of one or more friends.
  • the server then relays the purchase details 1506 initiated by the user (or 'referrer') to the one or more additional purchasers 1508 to 1512.
  • the additional purchasers can then select to accept the transaction 1514 or, alternatively, they can refuse the transaction.
  • a transaction acceptance request is sent to the server 1516, which amalgamates any number of transaction acceptance requests 1518 from the one or more additional purchasers.
  • the transaction is controlled centrally by the server, which may then issue goods and/or services to all purchasers involved in the group buy.
  • the goods may be tickets to a music event and the group buy function results in all purchasers being issued sequential tickets which correspond to seats situated together in the venue.
  • the mobile user can benefit from highly personalised experiences irrespective of whether he is connected via a mobile device a PC, or any other device.
  • Further information about mobile users can be captured when they connect for the first time and their number is recognized. Such capture of information may include for example capture of one or more of device type, make, model and contract type. In use, some or all of the this captured data is used to populate user profile records and/or improve the user experience.
  • the present invention relates to a content engine for establishing relevant content, and in particular but not exclusively, to a web portal application that uses the content engine for accessing internet and local network content relevant to users.
  • search engines can take on a plurality of different forms. For example, there are general search engines or more specific search engines which focus on particular subject areas, for example scientific research, literature, etc. Most of the search engines are based on a user inputting a particular text string describing the content which is sought and an engine that processes the content to find documents which relate to the search string.
  • Figure 1 shows the architecture of an exemplary communication system according to an embodiment of the present invention
  • Figure 2 shows a server of an ASP (Application Service Provider) for supporting a website according to an embodiment of the present invention
  • Figure 3 shows exemplary data structures of an embodiment of the content engine
  • Figure 4 shows an example of scoring for a behaviour
  • Figure 5 shows exemplary predicted data structures of an embodiment of the content engine
  • Figure 6 shows a comparison of exemplary predicted and declared data structures
  • Figure 7 shows a Venn diagram representative of the relatedness between sets of users
  • Figure 8 shows an index listing for determining interactions between sets of users
  • Figure 9 shows a specific example of an index listing applied by a statistical engine
  • Figure 10 shows a screen illustrating a plurality of questions posed to a user of the website
  • Figure 11 shows a screenshot of a homepage with links to a plurality of channels
  • Figure 12 shows an embodiment of a content engine
  • Figure 13 is an overview of a process leading to creation of a relevance resource for use in provision of relevant content to users.
  • Figure 1 shows an exemplary communication system according to an embodiment of the present invention which for example comprises the internet for interconnecting a plurality of devices.
  • these devices are the computer terminals 102 and the mobile phone 104.
  • the computer terminals 102 may connect to the internet 100 using DSL, broadband or a dial ISP, for example.
  • the mobile phone 104 may connect to the internet over cellular networks, for example. It should also be appreciated that other terminal devices, for example laptops, PDAs (Personal Digital
  • the server is owned and maintained by an ASP (Application Service Provider) which provides a website or web portal application for registered users.
  • ASP Application Service Provider
  • the web portal application is concerned with providing life choices in advance for young people and is tailored to provide relevant information content depending on the personal interests and attributes of each user that is registered with the ASP 106.
  • Figure 1 shows a user 102 able to interface with a communication network, such as the internet 100. That is, a user 102 is able to search for relevant content or information stored in a database, either locally or connected via the internet 100. In addition, or in the alternative, various applications are able to "push" relevant content to a user 102.
  • a communication network such as the internet 100. That is, a user 102 is able to search for relevant content or information stored in a database, either locally or connected via the internet 100.
  • various applications are able to "push" relevant content to a user 102.
  • Figure 2 shows an example of the functionality of the computer system, such as server 106.
  • the various elements of functionality represented in Figure 2 can be implemented by way of computer programs or software responsible for performing the various functions of the web portal.
  • the interface 202 is likely to be HTML-based software for supporting a website that can be browsed by respective user terminals 102, 104.
  • ANNEX ANNEX
  • a user 102 performs a search through the ASP 106.
  • the ASP 106 is connected to the internet 100 wherein the ASP 106 provides an interface to the user 102 for accessing internet or local network content. While at least some of the content accessed is stored locally 206 in the server, much of it can be drawn from data stores 208 on the internet 100. Alternatively all of the content searched may be stored on the server, or further alternatively, all of the content searched may be drawn from the internet.
  • content stored in a data store is taken to mean data, but is not intending to be limiting in that the content of a data store might comprise any of a plurality of different types of content in the form of various types of files, documents and/or portions thereof which might be sorted based on their relevance to the user.
  • the content engine 204 is used to build up knowledge of a particular user, through prompting the user to input information about their interests or behaviour, and based thereon to sort the relevance of content stored in either a local content source 206, or a remote content source 208, or a combination of remote and local content sources, in order to provide a user with knowledge which most closely matches the user's interests.
  • the content engine 204 is also able to build up a profile, representing the interests and personal attributes of a user, depending on their input to the website. One way of doing this is by generating a set of questions to be answered by the user. Further batches of questions are also asked to the user over time and can be based on existing knowledge of the user, for example based on answers to previous questions, or monitoring user browsing behaviour. This is explained in more detail below.
  • FIG. 2 shows the ASP 106 as having an interface 202 providing access to the content engine 204, which is able to determine and deliver relevant content to the user 102.
  • ANNEX ANNEX
  • Figure 3 shows exemplary elements of a content engine 204, including three primary data structures ("tables"): Users 300, Content 302 and Categories 304. These primary tables each have a relationship table between them: Classification 306, Behaviour 308 and Profile 310. Specifically, the classification relational table 306 defines the relation between the category 304 and content 302 primary tables. The profile relational table 310 defines the relation between the users 300 and category 304 primary tables. The behaviour relational table 308 defines the relation between users 300 and content 302. As will be appreciated, each such table will in practice contain very many more entries than shown.
  • the content engine is coupled to a statistical engine 205 and a component labelled l-portfolio 207, which contains user profile information representative of user's interests and/or attributes.
  • the components 205 and 207 are provided within the content engine 204.
  • the user profile information of preferred embodiments includes information declared by users, information derived from tracking usage and further information deduced (predicted) based on statistical analysis of declared and/or derived information of all users.
  • the table of users associates a unique number (UID) with each of the users known to the system 106. So for the example shown in Figure 3 the lists of known users are Ed, Chris and Justin, which are associated with UID1 , UID2 and UID3 respectively.
  • the user table 300 is also able to hold (or have a link to): login details, contact and/or other personal information for the user. It is not so important as to the form of data stored about a user, rather the purpose is to allow a unique identifier (for example a numerical code) to be assigned to uniquely identify each of the users that accesses the service provided by the system 106.
  • the content table 302 associates a unique document identifier (DID), for example a number, to each piece of content that the system is aware of (i.e. either from a local source of content 206 or a remote source of content 208).
  • DID unique document identifier
  • the content table 302 ANNEX
  • the content generally holds a link (e.g. a filename or web URL) rather than the content itself.
  • a link e.g. a filename or web URL
  • the content may take the form of a news article, a movie trailer, a photo, a music track, etc and/or groups or parts of such items.
  • anything which may be discretely identified may be recorded as a piece of content, since all that is needed is for the system to assign a DID for the corresponding content to be discretely identifiable.
  • the category table 304 associates a unique category identifier (CID), for example a number, to each category that has been generated by the system.
  • Categories are grouping/classification mechanisms for example for users and/or content. Categories for example might include: the genre of film content (horror, romance, thriller etc), declared user groups (e.g. sailing special interest forum) or even socio-demographic groupings (age, wealth, personality type etc.).
  • the three relationship tables: classification 306, profile 310 and behaviour 308 are many-to-many linking tables. In one embodiment they are implemented using relational databases, wherein each relational database is able to record unique identifiers (IDs) showing a relationship between the two items which these IDs refer to.
  • IDs unique identifiers
  • an SQL mechanism for holding many to many relationships allowing the content engine to record that one user is interested in many items of content, and conversely that one item of content is of interest to many users.
  • the profile table 310 records the relationship between users and categories (i.e. which categories of information each user is interested in).
  • the profile table 310 thus has UID and CID entries to indicate these relationships.
  • the classification table 306 records the relationship between content items and categories (i.e. which of the classifications the content is associated with).
  • the table thus has DID and CID columns to hold these relationships.
  • this table is typically populated from meta-data already included with the content itself. For example, locally held content already has meta-tags that give classification information. Content sourced from the internet may also have meta-tag information.
  • the behaviour table 308 records the relationship between users and content (i.e. which of the content items a user has looked at).
  • the table thus has UID and CID columns to hold these relationships.
  • Each of the above tables is relatively sparsely populated such that tables only record data that is known to be substantially factually correct.
  • Information declared by the user and regarding that user is regarded as substantially factually correct. Such declared information can for example be built up by the system generating questions which it prompts the user to answer, as will be described in more detail later.
  • a given user may have no declared profile entries or may have very limited entries in the behaviour table (if they are a new or infrequent user of the content). That is, the behaviour data is the table which records the relation between users to the content that they access. This information is derived from browsing behaviour over time. Obviously over time, as the user accesses content via the system, more entries will exist for that user in the behaviour table.
  • each of the relational tables 306, 308 and 310 are extended to include a "scoring" column. See the exemplary table 308' of Fig. 4. This is used to store a numeric value representing the relatedness ('strength' of the relationship) between two items. The relatedness score may then be used to determine the overall relevance as will be explained in more detail below. All relationships within the system have date (timestamp) and relatedness score values associated with them. ANNEX
  • the relatedness score value is either directly given by the user (their own rating of how important something is) or a value automatically assigned by the system based on a prediction of how strong the users actions suggest the relationship is (e.g. buying a piece of content would give a higher score than simply browsing to it from a free hyper-link).
  • a relatedness score could for example be a mark out of 10 or a percentage, where in the example of Figure 4 the content identified as DID3 is more relevant to a particular user (UID1), than another piece of content DID 5. This is represented in that the former relationship has a higher score "8" as compared to the latter "5".
  • relational tables 306, 308 and 310 and predicted relatedness scores within them comprise predicted relationship information obtained through relatedness calculations by the statistical engine 205. See for example the predicted information of tables 506, 508 and 510 of Fig. 5. This predicted information generally mirrors the type of information in the declared or derived tables 306, 308 and 510, respectively. However, it is generated in instances (not necessarily all instances) where actual declared or derived relationships are not available. Predicted information is referred to herein as "deduced" information because it is deduced from declared and/or derived information based on statistical analysis. In this case the date is used to record a timestamp of when the calculation was performed.
  • Figure 5 shows the predicted tables which include this so-called deduced information. Specifically, Figure 5 shows that in this embodiment each of the relational tables 306, 308 and 310 comprise corresponding "predicted" tables 506, 508 and 510.
  • the form of the predicted data structures for example whether a separately recorded table or whether new entries within existing tables, is immaterial.
  • tables 306, 308 and 310 relate to information that has either been declared by users or derived from usage patterns in practice, whereas the information in exemplary predicted tables 506, 508 and 510 has been predicted by the ASP.
  • a statistical engine 205 ANNEX
  • Figure 2 shows the statistical engine 205 as being separate from the content engine 204, however it should be appreciated that in an alternative embodiment the functionality of the statistical engine could be integrated into the content engine.
  • An exemplary type of statistical analysis is explained hereinafter with reference to Figures 5 to 13. The following prediction tables result:
  • a predicted profile table 510 comprising an indication of types of information each user is probably most likely to be interested in. For example an entry in a predicted profile might reflect "interest in horror movies" i.e. a type of film.
  • a predicted classification table 506 comprising an indication of the categories each piece of content should most probably be included in (i.e. auto generation of meta-data or similar for the content).
  • a predicted behaviour table 508 which predicts the pieces of content that each user is most likely to be interested in. For example, an entry in a predicted behaviour table might indicate an "interest in Scary Movie2 trailer" i.e. a specific item of content. Accordingly, we may expect predicted "types" of interest to be related to an interest in specific items of content - indeed it is this circular relationship which is exploited to derive and test predictions.
  • First and second inputs 1302, 1304 between which a relationship is to be determined are supplied to a scoring and relevance engine 1306 capable of performing the relevance determination described herein.
  • One or more further relevant factors 1308 may also be taken into account in the determination of overall relevance.
  • the relevance of content to a user is determined and the relevant factors taken into account may include "relatedness score" (user or predicted), “recency” (date stamp of the relationship), “popularity” (number of readers), "peer ANNEX
  • the relevance engine outputs a relevance score 1310, which is the measure of extent of the relationship and which is also suitable for achieving a comprehensive relevance ranking of content.
  • This provides a relevance resource 1320 ranking all content (or defined sub-sets of content) in ascending order of relevance to a particular user.
  • the relevance resource can be coupled with suitable types of filters 1350 (or several filters) in order to facilitate provision of relevant content to users.
  • filters 1350 or several filters
  • one type of useful filter to couple with relevance resource is a search filter which applies search criteria from a user to filter the content of the relevance resource to provide particularly relevant search results to the user.
  • Another type of suitable filter is for example a channel configuration filter or a channel content filter. These are basic types of filters . which assist content providers (say operators of a website or a portal) in pushing the most relevant channel configurations and most relevant channel content, respectively, toward users.
  • Another type of filter is an advertising content filter for supplying particularly relevant advertising content to users.
  • a filter is any mechanism for applying real time interests (or expected current interests) of users to the relevance resource and to assisting with either a "push" of relevant content to the user (e.g. advert) of "pull” of relevant content from the user (e.g. search results).
  • this element of the score is of limited use to the user as they have already rated the document. It is however important for the overall relevance determination and validation of the rankings.
  • related users is itself a predicted relationship table with an associated score. This predicted table is calculated by the weighted summation of user to document relateness scores and user to category relateness scores.
  • Advertisers are typically interested in reaching users most likely respond to adverts or promotions.
  • advertising filters are a particularly useful type of filter 1312 for coupling to the relevance resource 1320. For example a ranking of advertising content taking to account user and category relationships yields strong results, ANNEX
  • the website hosted by the server 106 is responsible for providing relevant content to a user depending on the personal interests and attributes of that user.
  • a particularly useful feature of the 'predicted' information is the ability for the content engine of the ASP to determine the difference between the predicted and actual relationships stored therein.
  • Figure 6 shows an example of a comparator 660 in the content engine 204 that is able to determine the difference " ⁇ " between the predicted and declared/derived information. Specifically Figure 6 shows a predicated profile entry stored in table 510 being compared to a declared profile entry stored in table 310.
  • This result of the comparison, or difference " ⁇ " can be used in a plurality of different ways: i) to identify to users their interests, but which the users might not have been aware of or are outside the norm for their peer group (i.e. things which make them unique). ii) to identify to users the interests of their peer group, but interests they do not appear to share (i.e. things they may be missing out on). iii) the ability for the system to 'self-tune' based on statistical analysis to identify non- ideal predictions. That is, if the predicted information is very different from the declared/derived information, the content engine could be programmed to select one of the options as a default for retrieving the information requested. In an alternative embodiment, the content engine is able, through the interface 202, to request that the user provide information as to whether the declared or predicted information is more accurate.
  • the system can identify relatedness of users based on browsing behaviour.
  • the content engine 204 is able to deduce over time for individual users certain content that various users might be interested in and thereby draw predictions about relatedness of users. This is a type of deduced peer group. For example from the behaviour tables (of Figure 3 and Figure 5), a particular user, UID1 might be interested in a plurality of pieces of content DID2, DID3, DID7. The content engine is able to parse the information in this table and notice that another user UID2 is also interested in similar content and has accessed DID2 and DID7.
  • a peer group can be formed consisting of the users UID1 and UID2.
  • the content engine 204 is further allowed to retrieve information that users in that user's peer group are interested in.
  • peer group relationship it is thus possible for a peer group relationship to be "deduced" as was the case for the other predicted relationships 506, 508 and 510 referred to in Figure 5.
  • Such peer groups would be deduced by performing a statistical analysis that aims to establish the degree of relatedness that might exist between particular users, or the content they access, in order to establish whether a user should be joined to a particular peer group.
  • the content engine is able to deduce the predicted relatedness for entries in each of the primary tables 300, 302 and 304. While Figure 4 showed an embodiment wherein the score that determined the relatedness was declared by a user for a relational table, each of the primary tables has a further column populated by predicted relatedness scores. That is, the content engine is able to score how related each of the primary items are to other items based on how they are used by various peer groups of users. These scores are referred to hereinbefore as "relatedness scores”. ANNEX
  • the extra scoring column (not shown) represented how each piece of content is related to each other piece of content based on usage (i.e. people who were interested in content A were also interested in content B). By grouping content in this manner it is also possible to generate categories of related content.
  • the extra scoring column (not shown) represents how each category is related to other categories based on usage. For example, the socio- demographic category Y has a close affinity for 'Horror' movies.
  • the extra scoring column (not shown) represents how each user is related to other users in terms of their interests, which allows the grouping of users into predicted peer groups of users having similar interests, i.e. deduced user peer groups.
  • a statistical engine 205 is provided with software able to generate the aforementioned deduced information (i.e. predicted tables).
  • the functional aspects of exemplary software are described herein but it will be appreciated such software may take a number of different forms. However, the properties of an exemplary statistical engine 205 are most easily described with reference to the Venn diagram of Figure 7. For each of the predicted tables, the statistical engine is required to determine the extent of the relationship between items in tables.
  • This type of statistical determination may be used to determine predicted contents of any of the predicted tables 506, 508, 510 and the like. According to another embodiment, it has been appreciated that the computing power needed to perform such statistical manipulations in working scenarios is prohibitive, or at least very inefficient.
  • the statistical processing is achieved by a combination of index and inverted-index processing techniques.
  • inverted indexes are generated and stored locally each time a statistical analysis is performed.
  • the content engine maintains these indexes and updates them each time a new analysis generates relevant entries for inclusion therein.
  • Figure 8 shows a basic relational database "select statement" approach which could be used to calculate the intersection 78 between the two sets of users describe in Figure 7. That is, the upper block of Figure 8 represents the first set of users 72 that were interested in the first piece of content DID1. The relevant users are identified by their UIDs such that the users UID1 , UID2 and UID5 are all interested in content DID1.
  • the lower block of Figure 8 represents the second set of users 74 that were interested in the second piece of content Dl D2.
  • the relevant users are identified by the UIDs such that the users UID2, UID5, UID7 and UID9 were all interested in content DID2.
  • the inverted index i.e. UID lists offer advantages in their own right in terms of reduced processing time, and this is potentially even further enhanced by being able to parse such lists in parallel (i.e. simultaneously).
  • Figure 9 shows an example of the application of the inverted index technique described in Figure 8 for determining the relatedness of all content to a given piece of content i.e. the relatedness of the entry of content DID1 to all other entries in the content table 302.
  • the statistical engine 205 extracts all the inverted indexes (UIDs) for all the users that have shown an interest in content DID1.
  • the inverted content index list 900 comprising UID1 , UID5, UID7, UID9 is generated. Then, each of the UID indexes can be processed in parallel to rapidly calculate the intersection (overlap) between all of these sets.
  • the statistical engine used to calculate relatedness operates, as already mentioned, based on statistical techniques that take into consideration the size of overlapping sets. Considering the example shown in Figure 9, it can be seen for example that for
  • UID5 is a list comprising 2 entries
  • UID7 is a list comprising 5 entries and therefore the former has an affect of 1/2, whereas the latter only has an affect of 1/5. This must then also be adjusted to take account of the maximum value possible) for this document, which is naturally the same as the relatedness value for a document with itself - DID1 in this case.
  • an optional factor may be added regarding the 'popularity' of the item delta 2 in the example to help ensure popular content precedes less popular content.
  • each user score is weighted by a factor of I(UID1->DID1) *(1 - modulus( I(UID5->DID1) - l(UID1->DID1)/max I).
  • I(UID1->DID1) Score for User
  • a profile table 310 can be built up by the ASP 106, for example in response to the user answering a series of questions posed by the ASP.
  • the questions are grouped into batches of questions by the ASP 106 wherein the answers supplied by the user to a previous batch of questions are processed by a content engine 204, and based on the answers, the subsequent batch of questions prepared by the content engine are able to take into account the answers supplied to the previous batch of questions.
  • the content engine 204 of the ASP 106 is able to ask progressively more relevant questions to the user and hence has the advantage of increasing the accuracy of the declared profile 310 of a user.
  • Figure 10 shows an example of a screen of the interface 202 provided by the ASP 106 to the user, wherein the user is asked to complete a plurality of questions 1 to 4.
  • An embodiment according to the invention is a web portal enabling students to receive the most relevant information at the relevant stage in their life experience.
  • An advantage of the web portal application of the present invention is that relevant information can be given to a student, which is tailored to take into account a student's age, interests and circumstances. This is useful in enabling the student to make the correct decision with regards to their life goals and the means for achieving them.
  • the web portal application of the present invention uses web-based technology in order to implement this resource tool for students. It can act as a reference tool for them throughout their University life and also afterwards, for example when searching for employment. It is based on the analogy of a best friend who is cleverer than the ANNEX
  • An example of such a web portal application could be in the form of a online search engine which is able to account for the following aspects: choosing the right career for the user while still having flexibility if the user's aspirations change over time. at each stage of the user's development outlining the potential choices open to the user, for example from GCSE all the way through to recruitment and employment. - an online holding form to constantly monitor the, career path or University progression of a user as their grades and social requirements alter, thereby enabling the profile of the user to change as the user develops and with their changing aspirations. to deliver content which is up to date by offering current courses at University or job availability in the market sector, and use the navigable system for interfacing ' with the current UCAS system of University application.
  • the registration process also enables a user to interact with other students that have similar aspirations thereby increasing the user's knowledge base and his social skills. Specifically, this can be achieved by using the afore-described peer group concept, for example by deriving which of the other users most closely match the aspirations of the user in question.
  • This peer group concept can also be extended so as to receive editorial information about the University course or career path taken by a user from people having knowledge in these areas, for example current students, previous students, employers etc. a complete registration and booking system for numerous aspects including:
  • the web portal is configured to pose a series of basic questions to the user in order to build up a basic declared information profile for the user.
  • the declared profile will increase, for example by answering, further and progressively more pertinent questions or increase the derived information profile through the web usage and/or channels accessed by the web user. That is, Figure 11 shows a screen shot wherein the user can select from a plurality of channels including "headline news", “sport", “TV”, “out and about”, “movies”, “music", “style”, “travel” etc.
  • the web portal application is able to use the content engine 204 of the ASP 106 and the interactive input from the user to tailor more precisely the information to be presented to the user for enabling more relevant advice to the user and which is able to take into account changing aspirations of the user over time.
  • the content engine 204 is for example able to interrogate the declared profile and predicted profile to arrive at a more accurate model for providing the most relevant content and information to the user.
  • the user interface 102 of the web portal application provided by the ASP 106 has a plurality of different options allowing the user to stylise the interface as desired.
  • the user interface having a variety of completely different "skins" that provide a different look and feel depending on the age of the user and their progress throughout the education system. This can be set so that as the user progresses through various age groups the skins are updated automatically.
  • ANNEX ANNEX
  • the content of the home page for example the channels that are listed and the specific areas of functionality that can be accessed also depend on the user's age according to one embodiment. For example, at 14 years old the user might be provided with very general careers advice, whereas at 16 they might be encouraged to start thinking about subjects to study at University, and at 18 they might be offered the opportunity to sign up for a credit card, etc.
  • An advantage of the web portal application is that it is dynamic and personalised so as to make the tool as relevant as possible to each individual user.
  • the system is also intelligent enough to handle users who do not fit the typical profile. For example, the content displayed to a particular user is not typically based on age and can take into account situations where for example, some users have taken a gap year.
  • a further advantage of the web portal application is that the questions asked during the registration process have the following characteristics: • asking questions one or two at a time and not in the form of a single long list.
  • the number of questions is carefully selected to be as short as possible, but wherein it is still possible to obtain the minimum information necessary for the portal content to be personalised sufficiently for first use.
  • the content engine being interactive to emphasise the dynamic nature of the web portal for example by changing the colour of the screen background when a user is asked to type in their favourite colour.
  • the web portal is also flexible in allowing each user to change their password as desired.
  • the declared profile is an important source of knowledge for determining the interests, aspirations and attributes of each user.
  • the user In order to develop the declared profile, the user is exposed to a series of tests. The more of these tests that the user completes, the more accurate the declared profile of the user is likely to be.
  • the set of supported tests is not exhaustive, for example it includes the following:
  • test results for the user are stored in the declared profile and will effect the subsequent personalisation of the web portal application for that user. For example to determine what career suggestions are made, which product reviews the user is prompted to read, etc. Hence the user will be using the web-based portal over an extended time period, the user will also be able to go back and retake certain tests at a later date, and in any event this may be mandatory in some cases where the test results have a limited useful life.
  • the web portal provides an interface for allowing chat rooms or message boards to allow students to communicate with other users/students that have similar interests and therefore fall within the peer group of the user in question.
  • a further advantage of the web portal is to automatically provide relevant job searches that match the users declared profile. It is useful in that the user can be presented with the job opportunities that are most likely to be of interest as the student progresses, or alternatively once he has completed his course and looking for full time employment. Furthermore, the user can choose to perform a non-profiled search by deselecting the "Profile ON" button in order to provide a greater range of available jobs. Moreover, it should be appreciated that variations between these extremes are also possible, wherein the user is able to update the declared profile specifically for job searching by deselecting elements of the declared profile which might narrow a search unnecessarily. Also, the user is able to select between applying the declared profile, the predicted profile, or combinations of profiles as described hereinbefore, to see a different and perhaps more relevant set of result appears. ANNEX
  • the web portal application advantageously allows automatic cross references of the job prerequisites against the user's declared profile and indicates whether the user has all of the relevant qualifications and experience to meet the job requirements.
  • the user is able to apply for the job online by completing an application which for example is emailed to the employer.
  • the email may contain the user's standard CV and covering letter or may include information specifically requested by the employer and supplied by the user, depending upon the job requirements.
  • the web portal application provides the ability of tracking the application at all stages, and providing the user with email notification of any updates on the progress of the application.
  • channels in the web portal application can be tailored in line with the interests of the user based on the content engine 204.
  • the web portal provides an online news service.
  • users can either specifically input which new topics they are interested in or alternative each user can opt to receive news items that match the interests in their profile.
  • users can request to receive news update bulletins by email and again these bulletins will link back to the web portal interface so as to encourage return visits to the site.
  • the web portal application also has important ramifications in respect of advertising and making use of products and services from third party partners. For example, having established trade rights, the user is able to deal/contract directly with the relevant third parties through the web portal of the present application.
  • a bank account for example an online bank account provided by a major UK retail bank
  • insurance for example travel, home contents and car insurance schemes
  • the web portal application is advantageous in allowing direct marketing against a target subset of the users of the ASP 106. This is a potentially and particularly powerful advertising tool which should attract a premium from potential advertisers, since the users in the database have potentially already been sorted by their declared profiles and web usage, which would allow the advertisers to target users by matching the interests of the relevant users with the third party requirements.
  • the web portal application is also accessible through other technologies, i.e. apart from the standard web browser internet connection.
  • the web portal application is accessible through WAP- enabled mobile phones, Third Generation (G3) mobile phones, WEBTVTM applications, etc.
  • G3 Third Generation
  • WEBTVTM applications etc.
  • mobile phone any mobile terminal equipped with such technology, for example a PDA (Personal Digital Assistant), laptop or other relevant handheld device equipped with such technologies are equally applicable.
  • a further advantage of the web portal application is that an extensive profile can be built up on the habits and behaviour of individual users. This extends not only to the profile information collected from the questions, but also to areas such as which features of the site they use most frequently, and which third party products and/or services the users make use of most frequently. ANNEX
  • an I-Portfolio 707 can be built up user profiles comprising the declared, derived and deduced knowledge in relation to each user.
  • the I-Portfolio is an evolved electronic portfolio which is user centric and user controlled. It should be appreciated that while the I-Portfolio is shown as a discrete component in the ASP it can be integrated into the content engine 204.
  • the declared profile of each user is voluntarily imparted personal information relating to the user, which for example could include the following:
  • This Personal Testing method of obtaining declared knowledge comprises the use of taking a selection of psychometric-based tests.
  • the tests are set up to perform two main functions which are the categorisation of the user and the weighting of the user's personal attributes.
  • the results of the user tests will determine into which of the types the user is categorised into. Further results from the testing are then quantified into a set of numeric values that are stored within the I-Portfolio and correspond to the user's unique identity. That is, each user having a unique ID for identifying that user.
  • the user is able to turn off the personalisation testing by selecting a "profile OFF" button located on the navigation bar of the web portal interface. That is, when the profile button is off "i.e. deselected” then the content which is retrieved from a database is not sorted by the content engine and instead defaults to the preference settings relevant to the particular interface that the user is viewing the content with. However, when the profile is on "i.e. selected", the content engine 204 applies the knowledge learned about the user to the content that the user is passively viewing or proactively browsing.
  • the advantage of this is that the user is able to subconsciously maintain the accuracy of their declared profile, by allowing the content engine to autonomously perform a matching of the user's web usage as compared to the user's actual declared profile. Any web transactions that are conducted with the filters off are not stored in the declared profile but are generically against users of this type (i.e. a peer group or content with a similar categorisation).
  • an intelligent search facility which enables the user to perform a text search for content stored either within the ASP database or remote databases over the web.
  • the user In order to engage this facility, the
  • the second form of declared knowledge is filtration whereby the users are encouraged to input data in order to create filters depending on the user's requirements.
  • the filters can relate to all elements of life choices and provide filtered information back to the user. That is, the content engine of the web portal application sorts the type of filtered information such that it is relevant to the user's personal attributes as well as to the user's interests. For example, the user with an extraverted personality would receive information in a more ostentatious form, for example a 30 second video clip, whereas an introverted user that requests the same information will be presented this information in a more learned format for example a 300 word article.
  • all users are able to select content to be provided unfiltered.
  • pre- search functionality in the content engine 204 of the ASP 106.
  • This is an enhancement of filtration in that the pre-search allows a user to set parameters for a particular piece of information that they would like to be made aware of at some point in the future when and if the information becomes available. For example, the user can set a pre-search stating that they wish to see the pop group U2 any time in the next two years within ten miles of London. Every time the user logs into the web portal application, the content engine will carry out a search of the latest relevant content available to it.
  • a further form of declared knowledge is to test a user for levels of detail which cover the user's:
  • the questions are put to the user in four progressive levels which determine the structure of the following level and this process creates a progressive focus of information relevance. That is, the declared knowledge of the user can be made more and more accurate over time by progressive testing which takes the results of previous questions and applies them in formulating more relevant questions at the next level of questions posed to the user.
  • derived profile information may be regarded as a specific case of declared data; in that it is really user driven information which is collected automatically based on usage rather than from explicit declarations from the user.
  • Preferred embodiments deal with this internally via weighing mechanisms which reflect a confidence level concerning the usage based data. For example browsing to some free content will record the interest in the appropriate relationship table with a certain weight, but buying content would give a more significant weight.
  • FIG 12 shows an example of a web content engine 204.
  • the web content engine is shown as having a plurality of different components including the processor 1008, an I-Portfolio, containing among other information, user profile information in the various forms described hereinbefore, tracking software 1010 and a filtering engine 1012.
  • the processor is able to execute computer programs for carrying out all of the various functions of the content engine already described herein.
  • the I-Portfolio thus comprises profile information on the plurality of users that have registered with the web portal application and maintains their interests and attributes as obtained from the 3D knowledge engine.
  • the tracking software 1010 is used to monitor the web usage of each user terminal and to compare said web usage with the interests and attributes stored in the I-Portfolio, and to cause updating of relevant table entries as appropriate.
  • a filtering engine 1012 is shown which is able to sort through content from remote databases (accessed over the internet) or a local database (not shown) by comparing the content against the interests and attributes of each user so as to provide the user ANNEX
  • a computer system for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, the computer system comprising: a content engine comprising user profile information representative of interests and/or attributes of individual users; and a processor for determining relevance of content to a particular user based on said user profile information.
  • the user profile information comprises information about the user which is declared by the user.
  • a computer system as in claim 2 comprising means for generating prompts for capturing declared information from the user, wherein said prompts comprise one or more of a form and a series of questions to the user.
  • a computer system as in claim 3 or 4, wherein said means for generating prompts generates a plurality of series of questions, such that one or more series of questions is generated responsive to at least one answer in a previous series of questions.
  • a computer system as in any preceding claim comprising a module for receiving usage information and wherein the user profile information comprises information about a user which is derived from observations of the user's usage behaviour.
  • a computer system as in any preceding claim comprising a statistical engine and wherein the user profile information comprises predicted information which is deduced based on statistical processing of information declared by users.
  • a computer system as in any preceding claim comprising a statistical engine and wherein the user profile information comprises predicted information which is deduced based on statistical processing of information derived based on the usage behaviour of users.
  • a computer system as in any preceding claim comprising a statistical engine and wherein the user profile information comprises predicted information which is deduced based on statistical processing of (i) information declared by users and (ii) information derived based on the usage behaviour of users.
  • the user profile information comprises records of relationships between one or more of (i) users, (ii) content and (iii) categories, and wherein the content engine records score information indicating the significance of relationships recorded in the user profile information.
  • a computer system as in claim 10 comprising means for generating a prompt inviting a user to input score information indicating the relevance of content presented to the user by the content engine, wherein the score information comprises score information provided by users responsive to said prompts.
  • a computer system as in claim 10 or 11 comprising a module for receiving usage information and wherein said content engine records score information indicating the significance of relationships recorded in the user profile information, wherein the score information comprises score information derived by monitoring usage behaviour.
  • the content engine comprises a category table comprising a list of categories each having a unique category ID.
  • a computer system as in claim 20 or 21 wherein the content table comprises pointers to items of content.
  • a computer system as in claim 31 wherein a plurality of tables recording relationships comprise predicted relationships based on statistical analysis.
  • said content engine comprises a table recording peer groups of users based on one or more of: registration of a user with a particular group; usage behaviour of a user; and prediction based on statistical analysis.
  • a computer system as in any preceding claim comprising a statistical engine arranged to determine the extent of relationship between first and second table populations having regard to a reference population.
  • a computer system as in claim 38 wherein said statistical engine is coupled to receive populations and determine the extent of relationships between one or more of: first and second content populations; a first category population and a second category population; a first user population and a second user population; a first content population and a category population; a first category population and a user population; and a first user population and a content population.
  • ANNEX ANNEX
  • said user profile information comprises all information about the user required to make the relevance determination.
  • a computer system as in any of claims 2 to 43 comprising software to support one or more of the following types of declared information gathering: user testing; filtering based on a user input; a pre-search; usage patterns; purchasing patterns; sociological patterns; sociological attributes; entertainment preferences; and indications of groups and/or communities relevant to the user.
  • a computer system as in any preceding claim comprising communications interfaces facilitating communication between users.
  • a computer system as in any preceding claim comprising means for presenting a plurality of channels of content to a user, wherein aspects of the selection and/or configuration of said channels are selectable by the content engine based on a relevance determination.
  • a computer system as in claim 51 comprising an interface through which users can tailor aspects of the system as viewed by them.
  • a web portal supporting development of individual users over time comprising: a content engine for determining the relevance of content, said content engine comprising user profile information representative of individual interests and/or attributes, wherein said user profile information comprises one or more of:
  • a web portal as in claim 53 comprising data selected from or more of the following categories: academic courses; career guidance; job opportunities; and location based amenities.
  • a web portal as in claim 54 comprising information on job opportunities, and further providing an interface for one or more of: job searching; online job applications; and tracking job applications.
  • a method of operating a computer system to determine relevance of content comprising: accessing recorded information about one or more of: users; categories; and content, which information is declared by users and/or derived from observations of user's behaviour, wherein said information comprises a plurality of populations; establishing an intersection between selected ones of said plurality of populations; comparing said intersection with a reference population to determine an extent of relationship between said selected pluralities of populations; and using said extent of relationship to determine a predicted relationship.
  • index lists comprise at least one inverted index list.
  • said predicted relationship comprises a relationship between one or more of: a user and a category; a user and an item of content; an item of content and a category; first and second items of content; first and second users; and first and second categories.
  • index lists are extracted from information including information held relational tables of a content engine.
  • scoring takes into account the age of information declared from the user and/or the age of information derived from the usage, such that more recent information is afforded a score giving it more significance.
  • a server application comprising a content table comprising a list of content items each having a unique content ID, wherein the list of content items comprises content ANNEX
  • a method of building a content table in a server comprising content items sourced from within an environment administered by the operator of the server as well as content items sourced from the Internet, the method comprising providing the server with software causing an entry to be made in said content table responsive to users registered with said server accessing items of content, irrespective of whether the item of content accessed is from within the environment administered by the operator of the server or from Internet.
  • a content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, comprising user profile information based on one or more of information about a users declared by the relevant users and information about users derived from observations of usage behaviour, wherein said user profile information further comprises information predicted about users based on statistical analysis of said declared and/or said derived information.
  • a content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, comprising user profile information representative of interests and/or attributes of individual users, wherein said user profile information comprises information ANNEX
  • said content engine further comprises means for receiving from the user an indication of accuracy of said predicted information.
  • a content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users comprising a table recording relationships between individual users and individual items of content.
  • a content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users comprising a table recording relationships between individual users and individual categories.
  • a content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users comprising a table recording relationships between individual items of content and individual categories.
  • a content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users comprising a first table recording relationships between individual items of content and individual categories and a second table recording relationships between individual users and individual categories.
  • a content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users comprising a first table recording relationships between individual items of content and individual users and a second table recording relationships between individual users and individual categories.
  • a content engine comprising means for predicting aspects of relationships between one or more of users, content and categories, and further comprising means for determining a difference between predicted relationship information and corresponding information declared from the user or derived based on usage behaviour.
  • a content engine comprising relationship tables recording relationship information concerning two or more of users, content and categories, and further comprising index representations of at least some of said relationship information, wherein said index representations are accessible to a statistical engine for determining the extent of relationships for use in determinations of relevance.
  • the computer system comprises a content engine comprising user profile information, representative of interests and/or attributes of individual users, and a processor for determining a correlation between content and said user profile information to determine content most relevant to a particular user.
  • FIG.1 A first figure.

Abstract

A mobile device for receiving content from a remote computer system and displaying it to a user, the mobile device comprising: a mobile operating system; at least one application component arranged to provide the user with a content service and operable to receive user inputs indicative of user content preferences; a user profile building component for generating user profile information based on said user content preferences, wherein said user profile includes user preferences specifically input by the user and user preferences derived from monitoring mobile device browsing behaviour of the user; a time stamp module arranged to time stamp user profile information; a cache storage module; a connection manager operable to determine the existence of an external data connection to the device and configured to switch between a connected mode of operation and a non-connected mode of operation in dependence on said determination; and a transceiver module operable to transmit user profile information to the remote computer system and receive content from the remote computer system, wherein in said non-connected mode of operation, the cache storage module is configured to receive and store said user profile information including said time stamp until the connection module switches mode to the connected mode.

Description

MOBILE APPLICATIONS
TECHNICAL FIELD
This invention relates to mobile phone applications. Embodiments of the invention relate, for example, to the apparatus and method for: transferring data to and from mobile phone devices; caching data locally on the devices; browsing or searching remotely stored databases; and purchasing goods and services for example tickets for events.
BACKGROUND
Mobile phone services have expanded to provide customers with a broad range of information and media, from on-demand news services broadcast by Short Messaging Service (SMS) to websites accessible through a wireless application protocol.
A significant development in mobile phone communication technology was the introduction of third generation (3G) mobile technologies, which have the capacity to support greater numbers of voice and data customers by offering an increase in bandwidth capabilities.
The services associated with 3G technology enable a provider or user to transfer both voice data (e.g. a telephone call) and non-voice data (e.g. email, web browsing) simultaneously. Some providers of 3G services have taken advantage of the high bandwidth capabilities of 3G to offer rich media content, e.g. video calling, applications or streamed media.
More and more, users of mobile phones expect to be able to access rich media and up-to- date content using their mobile phone devices and, increasingly, expect to see an equivalence between the ease of use, speed of transfer and quality of content available from, for example, a desktop PC using a broadband internet connection.
The 3G protocol, and its predecessor 2.5G, may still be considered sluggish in comparison to a broadband internet connection. When transferring media-rich content, e.g. high- resolution JPEG images or JAVA applications via a standard GSM service, the user experience is worse still. There is usually also a certain, and not inconsiderable, cost to the customer associated with such data transfers. Additionally, these protocols rely on the user being within coverage of a wireless service to receive and view content. No known technology allows a user to quickly and easily access relevant and up-to-date content, even in a scenario where there is no wireless service (i.e. on an underground train or in-flight).
As with many conventional web-based services accessible from a desktop PC, many mobile phone services require users to identify themselves for the purposes of accounting, security, logging and general resource management. A user is typically identified by a username, which may be an email address or otherwise, and a user-defined or system-generated password. A user account commonly allows a user to authenticate to system services and be authorised access to such services.
Compared with PCs, however, mobile devices typically have less memory, smaller and lower resolution displays, and different input/output mechanisms depending on the device. Completing online forms to create a user account for a particular service, for example, can be a difficult and slow process. Ideally, sensitive account data should not be stored on the device in case it gets lost or stolen, so a user may end up with a plethora of separate user accounts, spanning different networks and/or websites, which must be individually managed. No known technology efficiently manages mobile service account registration in a manner which is optimised for mobile devices and results in an account which may be used to access a multitude of services from a multitude of devices.
Furthermore, in recent years, there has been a growth in internet ticket sales and users have been easily able to browse online ticket distribution websites and find the tickets for an event they desire using, for example, a desktop PC and a broadband internet connection. Typically, this involves a user searching or browsing various categories of a database via a front-end webpage in order to find the desired event. Such an event may be stored in the database and categorised by any number of distinct criteria, e.g. genre, artist, venue, date etc..
Due to the limitations of current mobile protocols such as WAP and 3G, the browsing of typical ticket-purchase websites on mobile phones can be a very slow and difficult process. Additionally, the ease of navigation of the site can vary greatly depending on the type of device being used, i.e. the screen sizes, keypads and memory all determine how easily this may be achieved. Thus some mobile device users are unable to search, browse and access the content they desire in a quick and easy manner from their device. No known apparatus or method affords the users of such mobile devices with efficient accessibility to content stored in a remote database.
Increasingly, there is a demand to be able to make purchases with a mobile phone in the same way purchases are made on the internet using a desktop PC. Such purchases typically include music event tickets, cinema tickets and tickets for sporting events. Due to the limitations of mobile phones, making purchases through on-device WAP browsers can be a difficult and slow process. This is because many websites are not optimised for mobile browsing and, even if they are optimised, can be difficult and slow to navigate due to the amount of data that needs to be transferred in order to display the page, as well as the usual requirement of the completion of long forms and entry of credit or debit card information each time a transaction is carried out. Further, many on-device browsers do not support secure data transfer protocols such as secure HTTP (HTTPS) so there may be serious security issues relating to the use of certain mobile devices for transactions. Additionally, it may not be desirable or convenient for an individual to get out a credit or debit card, e.g. in a public place. No known mobile application allows a user to quickly and easily access relevant and up-to-date event content and purchase tickets for these events in a quick, simple and secure manner from their mobile device.
SUMMARY OF THE INVENTION
According to aspects of the invention there are provided devices, computer systems and methods according to the claims which follow.
BRIEF DESCRIPTION OF THE DRAWINGS
For a better understanding of the invention and as to how the same may be carried into effect, reference will now be made, by way of example only, to the accompanying drawings, in which:
Figure 1 illustrates an embodiment of the present invention;
Figure 2 shows a detailed illustration of the embodiment of figure 1; Figure 3 shows the process by which a server generates a registration link and sends it to a mobile device;
Figure 4 shows the process by which the server accepts registration data from a desktop PC or other browsing means;
Figure 5 shows the process by which the application is downloaded to the device;
Figure 6 shows a process by which the server is configured to relay registration links to one or more associated devices forming part of a network;
Figure 7 shows the process by which a user is given a predetermined length of time to validate registration after generation of the registration link;
Figure 8 is a schematic illustrating an embodiment of a data communication protocol;
Figure 9 illustrates how a mobile device displays data content through an application according to an embodiment of the invention;
Figure 10 illustrates a caching and wake-up function;
Figure 11 shows a detailed illustration of the server;
Figure 12 shows the process by which an on-device application may be optimised to carry out transactions;
Figure 13 illustrates the process by which the present invention carries out a ticket transaction request;
Figure 14 shows an alternative transaction process which is carried out if a user has not entered payment information into their user account; and
Figure 15 shows an embodiment of the present invention in which the server is configured to perform a 'group buy' function.
DETAILED DESCRIPTION Those skilled in the art will appreciate that while this disclosure describes what is considered to be the best mode and, where appropriate, other modes of performing the invention, the invention should not be limited to the specific configurations and methods disclosed in this description of the preferred embodiment.
Figure 1 illustrates an embodiment of the present invention 100. There is provided a server 102 in communication with at least one mobile device 104 and/or at least one desktop PC or other browsing means 106, via a data transfer protocol 107. There may also be a Bluetooth transmitter 108 in communication with the mobile device and/or personal computer. The server 102 may additionally be in communication with a third party retailer 110 who supply goods such as music or sporting event tickets.
Figure 2 shows a detailed illustration of the embodiment of figure 1. Note that the mobile server 102 is indicated as being coupled to a Content Engine server such as that referred to by numeral 106 in the annexed specification, entitled "Content Engine". The content engine may or may not be located remotely. The mobile server replicates a portion of the user profile information relating to registered mobile users. Note that user profile information can flow in both directions so that any user profile record in the chain is updated based on the most up-to-date user profile information. The main content engine database is centrally stored and managed and is preferably accessible by a number of devices, applications or servers, spanning a number of different networks, all of which use the same user account information to authenticate a user to server-implemented services or applications. Typically, this authentication will take place using some or all of the mobile phone number, email, pin or password.
The mobile server 102 has a mobile server application 109. The server application 109 comprises data on one or more user accounts 202, which may be logically associated with data relating to one or more user profiles 204. These profiles include but are not limited to: favourite artist, genre of music, preferred location of a music event, browsing history etc. Throughout this description the terms "user profile(s)" and "user preferences" may be used interchangeably. The server application also comprises a database 206 containing information relevant to mobile device users, which is generally one or more music events categorised by one or more of: genre, artist, news, event location. The server application further comprises a time stamp module 208, which is configured to issue a time-stamp to each piece of transmitted data.
The mobile device 104 comprises an application 210, which is configured to access one or more templates 212 and images 214 stored in the internal memory of the device 216. The application may also, however, have access to other data, such as video, audio or other data relating to the application stored in the internal memory or an externally connected flash memory device.
The on device application 210, which itself resides on the top of the mobile device operating system 205, has various modules which can be implemented in software, hardware or a combination of both. These modules include a user interface 222, a caching module 218, a monitor module 220, a connection manager module 221, and various application components 223a-d.
The user interface 222 provides a graphical and text-based interface supporting typical data input and selection functions.
The cache module 218 controls aspects of the on device application 210 and is able to communicate with the server 102.
The monitor module 220 is deployed to monitor incoming data transmissions from the server or other third party transmitters.
In this embodiment, the connection manager 221 manages aspects of the connection and choice of connection between the mobile device 104 and the mobile server 102. The device manager may be set up to automatically manage connections by for example selecting one type of connection from a number of available connection types including but not limited to GPRS, 2.5G, 3G, Bluetooth WiFi, WiMax, Infrared etc. For example, such selection may be based on economic principles (i.e. cheapest available type of connection is default selection) or for example may be based on a predetermined a set of rules, such as a predefined priority order. Alternatively, or in addition, the connection manager may enable the user to select connection type based on the user's input each time it connects, or every so often.
The connection manager is capable of switching between a "connected" operating mode and a "not connected" operating mode. Typically, the not connected operating mode is engaged when there is a shortage of signal quality or network capacity. In this embodiment, the on device application automatically switches to the "not connected" operating mode when the mobile wireless signal falls below a predetermined quality threshold.
The connection manager also has a profile building component such that in both its connected mode and its not connected mode, user profiles information is stored on the mobile device and can be referenced and/or updated by various application components. In this embodiment, the application components 223a-d, may be generally regarded as a suite of related applications which share certain common resources, including data sources, and generally provide the user with some useful or beneficial service.
In this embodiment, the application components include but are not limited to: directory services; news; ticket purchasing, transport information and a personalised scheduler.
The directory services application provides a listing of local, national or even international businesses, categorised according to the product or service provided, alphabetically etc. Using this application a user is able to search for a desired product and/or service using his mobile device and the listings may be generated, for example, based upon user-inputted search terms or may be personalised based on the user profiles 204. Generally, the listings are generated from data stored on the server 102 but may also be generated from other sources.
The news application allows users to download and view news content on their mobile device. This may include current affairs or alternatively other news relating to e.g. sport, lifestyle, music or any other. This content may also be personalised based on the user profiles. The ticketing application provides users with an interface through which they ca>i browse and purchase tickets for music events such as gigs and festivals, sporting events, cinema tickets or any other event.
The transport information application may be used to deliver high quality, accurate and relevant information to users and may also, for example, be used to generate a personalised journey plan based on a journey planning algorithm. The transport information application may thus download road traffic information, train timetables, bus timetables, maps and/or other travel-related data from the server 102 or another source. A user can then use the application to define at least a starting point and a final destination, e.g. by completing a form or selecting the point on a map, and an algorithm then generates a journey plan based on the downloaded (locally stored) data, user inputted data and/or data contained in user profiles. The transport data can be cached locally to the device and used irrespective of whether the mobile server is contactable or not.
The personalised scheduler is an application component which allows a user to view information about one or a series of arranged events: in particular, the time at which these events will take place, at what location etc.. One exemplary use of the scheduler is related to allocating time at a music festival. According to this example, the application component can download schedule information relating to which acts are performing at which locations at which times with an established connection to the server. A user can then generate a custom timetable based on their own preferences by adding the act to the scheduler and the scheduler will alert the user that the event is about to start at the relevant time. Additionally, the personalised scheduler may use user profile data to alert the user of a certain act based on preferences, prioritise events based on preferences or alert the user of any conflicts in the schedule when they add a new event. The functionality of the scheduler is not dependent on whether the user is able to connect to the mobile server and thus may function irrespective of connectivity.
The application components use data sources which can be shared among themselves and they also build user profile data which is used to update corresponding user profile records on for example the mobile server and the content engine. Figure 2 shows how the cache module on the mobile device points to user profile data and application data. User profile information on the mobile device is accessed by application components first, and particularly in the not connected mode, so that they can return the most relevant navigation experience and content to the user.
The user profile information on the device is updated when an application component derives new information about the user which may have been for example (i) declared by them, (ii) derived from their behaviour, or (iii) deduced in a more sophisticated manner (see annex).
These processes of referencing data, referencing user profile information and updating data and/or user profile information occur whether or not there is a current connection. If they have occurred in the absence of a current connection then relevant data and/or user profile information held off the device may be updated when a connection is next established. Alternatively, if the version of the data or user preference information held off the device is more recent, then the version(s) on the mobile devices are updated on next connection. To this end, both the data and user profile information in all locations is time-stamped such that the most recent version of each can be shared among the relevant databases on for example the (i) device, (ii) mobile server and (iii) content engine.
The on device application also allows local control and manipulation of data by the user interface. Furthermore, the application components support manipulation of data between different application components. For example, a user who wishes to attend a music event may use the application to purchase tickets for that event. Upon purchase of the tickets, the date, time and location of the event are added into the personalised scheduler and the journey planning aspects of the transport information component provide the user with a set of instructions telling them how to get to the event.
In summary, user profile information relevant to the user of the mobile device can arrive on the mobile device by the mobile server polling the content engine based on knowledge a new mobile user has enrolled and then push the relevant user profile to the mobile device. Alternatively, it may be generated initially on the mobile device and fed across to the other parts of the system from there. In either case the user profile information is preferably time stamped and preferably also regularly exchanged between the mobile device, the mobile server and the content engine. This may take place at any predefined time interval.
In certain modes of operation, for example when the user so elects, communications from the mobile server to the mobile device are routed through a communications filter module 209. This filter is equivalent to one or more of those indicated as 1350 in figure 13 of the annexed specification entitled "Content Engine". This filter filters and ranks all content based on the user profile information held on the mobile server such that the relevant mobile device user benefits from a highly personalised experience.
In this embodiment, the user interface of the mobile device is controlled such that the menu options presented to the user are controlled according to information in the user profiles of either or both of the device and the mobile server. Content on the mobile device is presented to the user based on similar principles. The main principle is that menu options and/or content which are most relevant based on the user profile information has priority over that which is less relevant. Thus both configurations of options and/or menus presented to the user of the device and the content itself is controlled according to the user profile information. For example, where the mobile application is being controlled to present football fixture information to the user, then any options relating to the user's favourite team are presented with priority, namely first or at the top of the options menu.
To achieve this functionality the caching module can hold (or point to) data used by various application components as well as hold or point to the relevant user profile information. Application components 233a-d can thus reference data locally (on the device) and also reference the cached profile information to control presentation of content and/or menus by the user interface. Moreover, one on device application component can refer to data originally held for another application component. Likewise, any or all of the application components can update the user profile information, even where there is no current connection to the mobile server via any of the aforementioned connection types.
In this embodiment, on device application components may support certain group select functions. These functions enable a user of the mobile device to grant certain permissions to one or more other users. For example, a selection group may be defined by the user inputting data/contact details on the group or defined automatically when the user communicates with a certain "group or subset of users". Such permissions may for example allow a user to state his/her own availability or to probe the availability of others. In other embodiments, permissions of this type may grant visibility or access to user profile information.
In one embodiment, map images can be downloaded from the mobile server and presented to the user in a manner which allows them to be marked. In this case, the maps are marked with a data item which is then stored locally along with the Map.
The on-device application supports multi-variable queries which may reference any one or more of the available data sources and/or the user profile information.
In preferred embodiments, the on device application uses time stamp information to make data or messages become visible to a user at a time materially later than the time it was transferred to the mobile device. For example, the mobile application can cause messages and/or data to be presented to a user at a predetermined number of .seconds, minutes, hours, days, weeks, months and years etc. after it was initially downloaded to the mobile. Likewise, data or messages cached on the device may be given an expiry time at which point in time the data or message removes itself from the cache; this can be used in order to free up space in the cache.
The cache module can validate the time recorded by the on device clock and/or calendar function. According to this process, the on device time is noticed, a network mast is queried for a time on which to base a comparison, and then the on device time and the network time are compared. If the times do not agree within a predetermined difference (say half an hour), an alert is sent to the mobile device indicating its clock may be in error. Alternatively, the clock may be automatically corrected to relevant local time by the on device application.
As will be apparent, the various functions performed by and in support of the application components are operable both locally (when no connection is available) and remotely (when the mobile server is contactable). Such functions are designed to be as close as possible to fully operable in the absence of a connection with a view to synchronisation / updating of relevant records when a connection is next made.
The on-device application 210 is thus configured to access locally stored templates, as well as separately stored data content. Each page view of the application has a predefined visual layout governed by the templates. The templates define, for example, colours, fonts, layout, and other aspects of overall document presentation output through the user interface 222.
The templates are deployed primarily to enable the separation of document content (separately stored data content) from document presentation data. This separation improves content accessibility and means that the application only has to request the document content from the server, which is generally images, text and/or video and combine it with the locally stored templates to create a presentation of the data on the mobile device screen.
According to an embodiment of the present invention, the separate document content is transferred as raw data. Known methods of transferring rich media (i.e. via WAP) involve the sending of plain text and images wrapped in WAP/HTML or XHTML headers which have high data overheads. The raw data protocol according to the present invention, however, reduces data overheads by sending a raw data string with no HTML headers etc.
For example a news article within an application will be provided in a standard template stored locally, the data will be provided as a raw data string which is then displayed in a colour and font pre-determined and stored locally to the phone, the news article may also include an image which will be sent as a stripped down image which is placed in the predetermined slot within the locally stored template.
Only if any of the templates, images or text data required to create the page are not already cached on the device, does the application 210 send a request to the server application 109 for the relevant data and download it from the server to the device 104 via the data transfer protocol 107. Such data is then cached by the device, depending on the server-issued time stamp. The raw data string may also comprise an image and/or video adapted for the screen size of the phone which can then be cached and used by the application 210 at a later time.
This configuration thus allows a user to view a certain piece of data, i.e. an event or news item in rich-media format with very little data transfer.
The application 210 is either always running on the device in the background, configured to wake up periodically or at a specific date/time, or loaded by an incoming message on a predetermined socket or port detected by a monitor module 220. Typically, a wake-up data stream is transmitted from the server 102 via the wireless transfer protocol to the device 104 (for example via SMS). In this way, the server sends an instruction to the device to run the application 210, or part of it.
The monitor module 220 is configured to detect incoming data transmissions from the server 102 and may be active even if the user interface 222 is not loaded. When the monitor module detects new content relevant to a user on the server, and the user interface is not loaded on the device, the monitor module loads the interface, which then displays a copy of the data received over the wireless data transfer protocol from the server application 109.
The raw data stream can be used to push relevant data content though the on-device application 210. For example, data is sent with a socket or port number (by analogy to the application listening on a given socket or port via the monitor module) and the incoming message wakes up the user interface at a certain page. The application then connects to the server and transfers the requisite data to display the content via the user interface. This could be an advertisement or content which the user has not requested but the server deems it potentially of interest to the user based on one or more user preferences.
The application 210 thus may be used by the mobile device user to remotely browse data stored on the server, such as information relating to music events, and purchase goods such as tickets relating to the events, or data stored locally on the device.
The application is also used to enter personal registration information such as a username, password, email address, pin number, or any other means of identifying an individual within a service network, in order to create a user account. The user interface 222 is configured to display forms which accept registration information. The registration information is sent to the server 102 and is stored in a user account database 202. Similarly, the user interface or other components of the mobile application 109 may be used to send user preferences to the server, which are associated with the user account and are stored in a user profiles database 204. User profile information may relate for example to favourite bands, artists, genres of music, types of event, venue or any other.
Alternatively, the user account may be created from a desktop PC, laptop, PDA or other internet browsing means 106, by filling in an appropriate web form or sending the information to the server by some other means, e.g. email. Similarly, the browsing means 106 may be used to send user profile information to the server which are then associated with the user account and stored on the server accordingly.
A Bluetooth transmitter 108 is deployed in order to transmit data to either the mobile device 104, the browsing means 106 or both. For example, the transmitter may be placed in an advertising banner or at a point of sale, and be configured to transmit an account registration link directly to a device with an active Bluetooth receiver. The user of the device can use the registration link to create a user account. It is possible to transmit a version of the application 210 to the device via the Bluetooth transmitter.
Figure 3 shows the process by which the server generates a registration link and sends it to a mobile device 300. According to this process, a user 302 sends a text message (e.g. via SMS) containing a common short code, or keyword, to a number 304 associated with the server 102. Typically, this common short code is an instruction which is relayed to the server 306 that indicates the user wishes to register an account. The server then generates a registration link 308 for the user and sends it to the device 310. The link is then displayed on the device, for example as an ordinary text message 312, and may also contain additional information such as instructions for completing the registration process.
Figure 4 shows the process by which the server accepts registration data from a desktop PC or other browsing means 400. According to this process, a user 402 visits a registration website 404, which is accessible from a desktop PC running a conventional HTML browser, a mobile device running a WAP browser, or any other suitable web browser 406. The registration website may be reached by following the registration link, as generated and sent to the device in figure 3, or by the user directly navigating to the website, e.g. using a URL from a promotional email, poster etc.
The user then enters registration information, typically into a form on the registration website 408. This information will generally include some or all of a username, email address, password, pin number and/or mobile phone number, to ensure a support of account personalisation across a number of platforms. The information may also include other useful data such as the user's device type and service provider. The server 102 creates a user account 410 based on the information 408 and writes the user account information into the database 412.
Upon creation of user accounts, the server stores user information in a secure database. As well as information relating to user identification (i.e. email address, password, mobile phone number etc) the database may also store additional information such as user preferences based on user-specified criteria or browsing history. Such user preferences and the like are stored as user profiles on the mobile server 102.
Figure 5 shows the process by which the application 210 is downloaded to the device 500. Once a user has registered an account according to figure 3, for example, a device-specific application (i.e. an application with a user interface optimised for a certain device manufacturer and model) may be downloaded to the phone. Typically, a user will specify their device type during or after the account registration process 502, which is then associated with the user account 204. The server 102 checks the device type specified by the user 504. Alternatively, the device type may be determined automatically. One example uses a User Agent Profile (UAProf), which is a profile stored on wireless devices and which contains capability and preference information for the device and its firmware. In this case, it is not necessary for the user to specify the device type.
Generally, the server will then access 506 one or more device-specific applications. These applications generally have various user interface images optimised for various phones. For example, a phone with a high-resolution large screen will have an interface which is tailored for use on such a screen, and the interface images and templates will utilise the full capabilities of the phone by displaying larger images, more text etc.
Once the server has identified the device and relevant application, it will generate an application download link 508 based on the device type. The user then follows the link 510 using the device and downloads 512 and installs the application 514. Alternatively, the user may follow the link and download the application with an alternate browsing means, such as a desktop PC, and thereafter transfer the application to the phone for example via a Bluetooth connection or USB cable.
In another embodiment, the mobile device may be pre-embedded with a registration module, which is ready to be activated by the user upon purchase of the device. Typically, the user will run an on-device application which is configured with the means to accept registration information. Alternatively, registration data may be collected at a point of sale and used to create an account which is then validated by the user at a later time and some mobile devices may be sold pre-loaded with a device-specific application and thus the user simply needs to register an account and does not need to download the application separately.
Figure 6 shows a process by which the server is configured to relay registration links to one or more associated devices forming part of a network 600. A user (known in this case as a 'referrer') 602 initiates a group registration during or after the normal user registration process, e.g. see fig. 2. For example, during or after account registration, a user may specify a list of friends by entering the mobile phone numbers or email addresses of friends in a provided form 604. The server is then capable of generating individual registration links 606.
The links are thus user (or 'referrer') initiated and are relayed by the server 102 to the specified phone numbers 608, e.g. by SMS or other suitable protocol. The link is then received by one or more new registrants associated with the specified phone numbers 610 as specified by the referrer. The new registrants then follow the registration process as outlined above and the server 102 will create corresponding user accounts for each new registrant 612. The server may also mark within the new registrant and/or referrer user accounts, or alternatively a separate database, the relationship or association between the referrer and new registrant(s) 614.
By analogy, new registrants may also be referred by a user during the web-based registration process, and in this case, each new registrant will be sent a registration link either by email or SMS and follow the registration procedure as described above.
Figure 7 shows the process by which a user is given a predetermined length of time to validate registration after generation of the registration link 700. This process ensures that the user account is correctly validated to the particular device specified during the registration process.
According to the process illustrated in figure 7, upon generating the registration link, the server 102 may also generate a corresponding time-stamp and associate it with the link 702, generating a timed 'validation link'. The server checks the time-stamp against the server clock 704 (e.g. periodically or at certain predetermined calendar dates) and, after a predetermined time, e.g. 14 days, will remove the link and make it inaccessible to the user.
In this example, the user must follow the validation link within the 14 day validation period in order to complete registration 706. During the 14 day validation period, the user may validate their account by (1) website registration using a conventional PC or (2) registration from the device. After this time, the user will have to re-register 710 in order for the server to generate a new registration link 712 and re-start the 14 day timer.
Additionally, the application which is installed on the device upon successful registration (see figure 5) displays a count-down timer through the user interface indicating the time remaining for the user to validate their registration. The server is capable of validating the phone clock with the server clock in order to prevent tampering, i.e. by periodically synchronising the device clock with the server clock.
Figure 8 is a schematic illustrating a mode of operation of the data communication protocol 107. Typically, a user of a mobile device engages 802 the on-device application 210 (or alternatively the application may be loaded according to figure 2) and sends a request for a particular piece of data 804, e.g. by browsing or searching for an event, artist, venue etc. using the user interface.
The data request is processed by the application 210 and a check is performed 806 by the cache module 108 as to whether the device has connectivity to the mobile server and whether a particular piece of data is stored locally on the device. If the data is stored locally on the device 808, the cache module then performs a time-stamp check 810 to ascertain whether the requested data is up-to-date (i.e. within the date specified on the time-stamp). If the data is up-to-date, the cache module returns the data to the application 812 and the user of the mobile device is able to view the data with no associated data transfer. If the time stamp check 810 returns a result that the particular data stored locally is out-of-date 814, the cache module sends an instruction to the application 816 to download the data 818 from the server 102, if a connection is available, and the data is updated with the most recent version stored on the server.
Similarly, if the cache module performs a check as to whether a particular piece of requested data is stored locally on the device and returns a result that the data is not present 820, the cache module sends an instruction 822 to the application to request the data 818 from the server 102.
The request sent to the server is made in the form of a raw data transfer request (a low bandwidth communication) 824. The communication contains only an instruction for the server to issue a particular piece of data, and this will generally be document content, i.e. images and/or text, also in raw data format which is then combined with the locally stored templates to create a presentation of the data on the mobile device screen, as described in accordance with figure 2.
Upon receiving the request 826, the server 102 performs a look-up function to access the relevant data 828 and issues the data with a relevant time-stamp 830. The time-stamp therefore enables the server to wirelessly determine aspects of the on-device cache module, particularly relating to which data the cache module sends to the application 210 at a predefined time and date. The time-stamp process typically involves issuing the data with a digital time signature. One such method involves the use of hash functions, which is a reproducible method of turning a piece of data into a small number which serves as a digital signature of the data but any known method of time-stamping may be used. The time-stamp is monitored by the cache module and on-device application and can be viewed by the user within the application at the time specified on the time-stamp. This therefore allows data to be viewed by a user through the user interface regardless of signal strength or extent of operator coverage.
According to the time-stamp feature, all data sources (e.g. Events) that are entered into the database may be overlaid with a "use-by" stamp, which defines a validity period and/or a data refresh period. For example, news may be refreshed every 5 minutes, weather information refreshed every few hours, and bank holiday information in a calendar refreshed annually. In other words, the refresh period differs from one data source to another in dependence on the purpose of the data being conveyed to the mobile device.
In another example, the application 210 at a general level may update event information daily or hourly for browsing purposes, however, may update seating availability for that event every 30 seconds. Hence, the. application may refresh the seat availability and display "x tickets remaining" every 30 seconds, but other data such as images, venue name & description, etc. is kept in the cache and refreshed independently. After a ticket purchase has occurred, the data will revert back to its original validity period based on the latest time- stamp, i.e. it is not longer necessary to convey seat availability information to the user after purchase.
By avoiding refreshing the entire data periodically, including images, HTML headers, text etc, the browsing speed of the application is greatly increased.
According to another example, cinema data is updated periodically at a given time (e.g. Thursday at noon). Thus in this example, if a user browses cinema data on a Wednesday, it will show only Wednesday and Thursday's cinema listings. If the user then connects on Friday, the application will download new cinema listings data and cache it in the device memory, which may then be browsed directly from the device memory until the time stamp expires (i.e. the following Thursday at noon). In other words, a user may directly access data cached in the device memory without needing to download any new data until the data expires according to a predetermined period defined by the time-stamp. The application may also be configured to automatically look for data at a given period and if this data has not been updated within that period, it will generate a reminder to download the data at a later time. Different data types are time stamped and/or triggered for refresh according to their nature, e.g. news can expire and/or refresh every hour, ticket availability every 10 minutes while browsing, every 30 seconds while purchasing, for example.
Once the time-stamp has been issued to the data 830, the server transmits the data wirelessly 830 as a low bandwidth raw data transmission to the mobile device 104.
Additionally, the server may be configured to issue relevant data based on one or more predefined user preferences stored on the server and associated with a user account. This configuration may be used to push relevant data to a user in addition to the data they have requested. In other words, while the server is transmitting the requested data to the mobile device, it may also transmit data from the server which may be relevant to the user immediately or at a future date.
Where the server determines that certain data content may be relevant to the user at a point in the future based on user preferences, the cache module will covertly store the data content in the device memory and the data content will remain dormant in the memory until the time and date specified within the time-stamp. At a given time and date, the cache module pushes the data content through the application and it may then be viewed by the user.
According to this aspect of the invention, a user is able to view up-to-date content regardless of wireless service. For example, the server may send data content relating to a music event which is happening in 3 months from the date of sending, and accordingly issue a time stamp for the cache module to push the content through the application at a time and date 3 months in the future. At the relevant time and date, the cache module will load the data content and the user will then be informed of the event through the application. The user does not have to be connected to a wireless network to receive messages (i.e. may be on an underground train or in-flight), since the data is loaded from the on-device memory. This allows a user to view up-to-date content without being within service coverage of a wireless network.
Figure 9 illustrates how the mobile device displays data content through the application 900. The mobile device 104 receives a transmission of data 902 from the server 102. The monitor module detects the incoming transmission 404 and performs a check 906 to ascertain whether the user interface 222 is running on the mobile device 104. If the interface is not running on the mobile device 908, the monitor module sends an instruction to the mobile to load the interface 910. If the interface is already running 912 or the monitor module has loaded the interface 910, the application loads up the visual templates 914 from the on-device memory 216 and sends an instruction to the cache module to perform a check 916 to ascertain if the data content is present on the device or within the raw data transmission. If the data content is not present 918, the cache module connects 920 to the server 102 and requests the data. The server then sends the data 922 to the device.
If the data is on the device 924 (which may be received as per the preceding paragraph or already stored locally according to figure 3), the application loads up locally stored templates and combines the data content with the templates to form a visual presentation of the data, which may then be viewed by the user 928 via the user interface 222.
Preferably, the on-device application is configured to function optimally on any number of specific devices. For example, there are a multitude of differently designed and implemented user interfaces which take into account, for example, device memory, screen size and resolution, soft-keys etc.
The on-device application may also be pre-loaded with general images to form a framework, e.g. maps of stadiums, seating plans, images of key acts, directions etc. It is then possible to use the pre-stored seating plans and basic framework to add other artists or bands at a given event by transmitting just the raw data that forms the text in a string and small image of the act (if neither has been previously stored for another event). Any additional changes can be sent as an instruction to draw information on the screen through the user interface in raw data, i.e. "draw square in colour-X, Y pixels by Z pixels, at location A". The instruction is typically a few bytes of data, rather than an image (or images) which are a few kilobytes each.
Figure 10 illustrates the caching and wake-up function 1000. The server 102 is configured to monitor 1002 user accounts 202 and preferences 204. The user preferences are checked against data content 1004 and the server ascertains which data content is relevant to which user accounts, based on the predetermined user preferences. Once the server establishes that a certain data content is relevant to a user account, it issues a time-stamp 1006 to the data and sends it to the user's device 1008 via the wireless data transfer protocol. The data is then cached in the device 1010 by the cache module 218 according to the server-issued time stamp. If the cache module checks and determines 1012 from the time stamp that the data should be displayed immediately 1014, it sends an instruction to wake up the application if it is not currently loaded 1016, which then displays the data on screen 1018.
Alternatively, if the cache module determines 1012 from the time stamp that the data should be cached for a later date 1020, it will write the data to the on-device memory 1022. The cache module will then load the user interface 1016 at the date and time specified on the time stamp, if the interface is not already loaded, and display the data on screen 1018.
Thus a user is able to receive a message to their phone whenever a relevant event becomes available, for which they may then directly buy tickets. Suppliers can push certain tickets, generate more interest and sell tickets directly to phone users very simply and securely. The application can be used to push forward certain personalised content to the user, which may contain rich media. The application also has great cost savings to the user, who does not have to pay for the transfer of large amounts of data.
Figure 11 shows a detailed illustration of the server 102. Within the database 206 each data source (in this case, music events 1102, 1104, 1106) is mapped onto a multitude of searchable or browsable categories including: artist 1108, genre 1110, venue 1112, news 1114 or any other to form different horizontal and vertical search categories. For example, an event by "The Rolling Stones" at Glastonbury, may be associated with additional search categories such as: "rock", "legends" and "Mick Jagger". The Rolling Stones event is then logically associated with other "rock" events within a certain timeframe within the same area or same date, or possibly other "legends" from different music genres appearing at the same event.
Hence the database and multitude of categories form a multi-level entry schema, accessible by a user at any level using the on-device application 210. The schema describes the objects (events) that are represented in the database, and the relationships among them. There are many different ways of organising a schema, and it is possible to use a number of database models (or data models). Commonly, schemas utilise a relational model, which represents all information in the form of multiple related tables each consisting of rows and columns. This model represents relationships by the use of values common to more than one table.
A user, therefore, is able to navigate to The Rolling Stones at Glastonbury event by following any of the category threads mentioned in the preceding paragraph. This may involve selecting one of a series of displayed links within the application or alternatively entering a search term into a search engine and being directed to the relevant data source by the search engine.
Another feature of the present invention is that it is also possible to suggest alternative and/or additional activity around one or more user-defined preferences and/or information held about the user. If the user is at a festival, and has selected some events within that festival of certain genres, the system can suggest additional events and activities between and around known activities, as well as news and related articles around those preferences. For example, if a user has selected certain rock events at festival but nothing between 4pm and 6pm, the system may suggest related events, activities and news between 4pm and 6pm or after 6pm in the same event and genre.
Users are thus able to rapidly search by artist, genre, date, venue, etc and results are always updated so that the user receives the most up-to-date information and availability. When new acts are posted, when tickets become available, when a favourite act becomes available within a certain distance from a given location or when there are spare tickets to an event which have not been sold, a user will be notified and be able to quickly search or navigate to the relevant event. Search results and data pushed to the user are also ranked according to the user's preference profile. Figure 12 shows the process by which the on-device application may be optimised to carry out transactions 1200. A user of a mobile device 104 may use the mobile device to enter 1202 credit or debit card information into a pre-registered user account (as described for example in figure 3). Alternatively, the user may enter credit or debit card information using a desktop PC or other browsing means 106 using a website associated with the server. The payment information is stored by the server 102 in a database associated with user accounts 1204. Once the information has been added to the user account, the server creates a flag in the database 1206 to indicate that a user has entered payment information. The payment information is stored securely within a payment information database and the user is asked to define a pin number in order to validate themselves at a later date. This is usually a 4-digit pin which may be quickly and easily entered using the keypad of a mobile device, and dispenses with the need for a user to enter payment information for every individual transaction.
Once the flag has been created in the database, the server communicates with the mobile device 1208 associated with the user account and newly entered payment information and sends an instruction to the on-device application 1210. The application may then adapt the user interface to present the user of the application with a 'click to buy' button 1212. This function allows a user to complete a transaction 1214 from their mobile device quickly and simply. For example, a user browses a database stored on the server for an event and selects to purchased tickets for that event. The user is then presented with the 'click to buy' button. Upon clicking the button, a transaction request is sent to the server which processes the transaction.
Figure 13 illustrates the process by which the present invention carries out a ticket transaction request 1300. A user sends a purchase request 1302 by browsing or searching music event categories and clicking to buy tickets for the event. This is typically done by navigating to the relevant ticket purchase page using the interface and proceeding to the purchase page and the user instructs the application to send the transaction request 1304 to the server. In this example, the instruction is sent when the user clicks the 'click to buy' button. The user is asked to enter some account information in order to identify them as validated users. This is generally a username and/or password. The server then connects to the user accounts stored within the server and ascertains whether the user has registered payment information 1306. In this example, the user has pre-registered payment information. The server then checks the availability of the requested tickets 1308, which may involve checking a database of tickets stored locally on the server or by communicating with the 3rd party retailer to ascertain if there are requisite number of tickets available.
The server will then send a pin request 1310 to the mobile device and the on-device application, via the user interface, will ask the user to enter their pin number in order to validate themselves as the authorised holder of the account and payment information. The pin number is then send as an encrypted data packet to the server, which verifies the pin 1312. If the pin number is entered correctly, the server issues the tickets to the user 1314.
Additionally, the server will remove the relevant number of tickets from the ticket database, indicating that a transaction has taken place, and will also debit the correct payment amount using the credit or debit card information stored on the server.
The issuing of tickets may additionally involve the server sending a request to a 3rd party retailer 1316, such as Ticketmaster, along with the payment information associated with the user account. The 3rd party will then verify the payment information from the server and, upon successful verification, assign the tickets to a user and generate a confirmation code 1318. The 3rd party will generally also send an email to the .user 1320 containing the confirmation code, as well as confirmation that the transaction has been successful.
Figure 14 shows an alternative transaction process which is carried out if a user has not entered payment information into their user account 1400. By analogy to figure 13, a user makes a purchase request 1402. This is typically done by navigating to the relevant ticket purchase page using the application and proceeding to the purchase page. The application then sends the purchase request to the server 1404. The server checks to see if the user has entered any payment information such as credit or debit card information. In this case, the server determines that no payment information has been entered 1408. The server will then send data to the application corresponding which contains alternative payment methods or instructions for completing the transaction 1410. Typically, such instructions may include a telephone number, internet link or other means of completing the purchase by communicating with a merchant.
Figure 15 shows an embodiment of the present invention in which the server is configured to perform a 'group buy' function 1500. A user sends a purchase request by analogy to figure 14, however, the user additionally specifies one or more additional purchasers 1504, e.g. by specifying the mobile phone numbers of one or more friends. The server then relays the purchase details 1506 initiated by the user (or 'referrer') to the one or more additional purchasers 1508 to 1512. The additional purchasers can then select to accept the transaction 1514 or, alternatively, they can refuse the transaction.
In the event that the additional purchaser opts to accept the transaction 1514, a transaction acceptance request is sent to the server 1516, which amalgamates any number of transaction acceptance requests 1518 from the one or more additional purchasers.
The transaction is controlled centrally by the server, which may then issue goods and/or services to all purchasers involved in the group buy. For example, the goods may be tickets to a music event and the group buy function results in all purchasers being issued sequential tickets which correspond to seats situated together in the venue.
According to the methods described herein, and once a user has registered, for example by declaring his mobile number at a website or by another suitable registration means, then the mobile user can benefit from highly personalised experiences irrespective of whether he is connected via a mobile device a PC, or any other device. Further information about mobile users can be captured when they connect for the first time and their number is recognized. Such capture of information may include for example capture of one or more of device type, make, model and contract type. In use, some or all of the this captured data is used to populate user profile records and/or improve the user experience.
It will be apparent that implementations of the present invention have been described based on specific apparatus and method configurations. In practice, a skilled person will appreciate that a number of different such configurations can be implemented in order to benefit from the advantages of the invention(s) disclosed herein. Advantages of the various efficiencies of the present invention include, but are not limited to, the fact that the users have had a highly personalised experience while at the same time a user's profile information is continually built upon and updated, irrespective of the type of device and or network used by him/her. Advantages associated, with the data efficiencies include, but are not limited to, high-speed, minimal cost, low overhead on network, maximisation of mast capacities and improved user experience.
Those skilled in the art will recognise that the invention has a broad range of applications in sending content to mobile devices and displaying that content at a predetermined date and time. It will be clear that the embodiments may take a wide range of modifications without departing from the inventive concept as defined in the appended claims.
ANNEX
CONTENT ENGINE
FIELD OF THE INVENTION
The present invention relates to a content engine for establishing relevant content, and in particular but not exclusively, to a web portal application that uses the content engine for accessing internet and local network content relevant to users.
BACKGROUND OF THE INVENTION
In the modern world of digital communications and computing there is a great deal of electronic information available. Indeed, the magnitude of this information is often so overwhelming that it is becoming more and more important to be able to perform some sort of data mining or filtering operation in an attempt to recover more relevant information. The internet is a particularly vast source of information, which draws from a plurality of existing data storage areas and wherein more are added daily. As a result, some of the most successful websites are search engines that attempt to provide a user with a more narrowed set of results.
Such search engines can take on a plurality of different forms. For example, there are general search engines or more specific search engines which focus on particular subject areas, for example scientific research, literature, etc. Most of the search engines are based on a user inputting a particular text string describing the content which is sought and an engine that processes the content to find documents which relate to the search string.
However, a disadvantage of these search engines is that the accuracy of the results retrieved is limited by the particular key words that a user chooses to input as a search string. No other factors are taken into account.
Furthermore unscrupulous website providers are deliberately exploiting keywords to increase traffic to their websites. ANNEX
Moreover, while there exist general web portals that users might register with in order to share or partake in a common service, such web portal applications do not provide content in a manner which discriminates between users of the service.
SUMMARY OF THE INVENTION
According to aspects of the present invention there are provided many independent innovations as set out in both the following description and the appended claims.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the present invention will now be described by way of example only with reference to the accompanying drawings:
Figure 1 shows the architecture of an exemplary communication system according to an embodiment of the present invention;
Figure 2 shows a server of an ASP (Application Service Provider) for supporting a website according to an embodiment of the present invention;
Figure 3 shows exemplary data structures of an embodiment of the content engine;
Figure 4 shows an example of scoring for a behaviour; Figure 5 shows exemplary predicted data structures of an embodiment of the content engine;
Figure 6 shows a comparison of exemplary predicted and declared data structures;
Figure 7 shows a Venn diagram representative of the relatedness between sets of users; Figure 8 shows an index listing for determining interactions between sets of users;
Figure 9 shows a specific example of an index listing applied by a statistical engine;
Figure 10 shows a screen illustrating a plurality of questions posed to a user of the website;
Figure 11 shows a screenshot of a homepage with links to a plurality of channels; Figure 12 shows an embodiment of a content engine; and
Figure 13 is an overview of a process leading to creation of a relevance resource for use in provision of relevant content to users. ANNEX
DESCRIPTION
Figure 1 shows an exemplary communication system according to an embodiment of the present invention which for example comprises the internet for interconnecting a plurality of devices. Examples of these devices are the computer terminals 102 and the mobile phone 104. The computer terminals 102 may connect to the internet 100 using DSL, broadband or a dial ISP, for example. The mobile phone 104 may connect to the internet over cellular networks, for example. It should also be appreciated that other terminal devices, for example laptops, PDAs (Personal Digital
Assistants), loaded with the appropriate web browsing functionality are able to browse a website hosted by the server 106.
More particularly, the server is owned and maintained by an ASP (Application Service Provider) which provides a website or web portal application for registered users. According to a preferred embodiment, the web portal application is concerned with providing life choices in advance for young people and is tailored to provide relevant information content depending on the personal interests and attributes of each user that is registered with the ASP 106.
Specifically, Figure 1 shows a user 102 able to interface with a communication network, such as the internet 100. That is, a user 102 is able to search for relevant content or information stored in a database, either locally or connected via the internet 100. In addition, or in the alternative, various applications are able to "push" relevant content to a user 102.
Figure 2 shows an example of the functionality of the computer system, such as server 106. The various elements of functionality represented in Figure 2 can be implemented by way of computer programs or software responsible for performing the various functions of the web portal. For example, the interface 202 is likely to be HTML-based software for supporting a website that can be browsed by respective user terminals 102, 104. ANNEX
In one embodiment, a user 102 performs a search through the ASP 106. The ASP 106 is connected to the internet 100 wherein the ASP 106 provides an interface to the user 102 for accessing internet or local network content. While at least some of the content accessed is stored locally 206 in the server, much of it can be drawn from data stores 208 on the internet 100. Alternatively all of the content searched may be stored on the server, or further alternatively, all of the content searched may be drawn from the internet. It should be appreciated that content stored in a data store is taken to mean data, but is not intending to be limiting in that the content of a data store might comprise any of a plurality of different types of content in the form of various types of files, documents and/or portions thereof which might be sorted based on their relevance to the user.
The content engine 204 is used to build up knowledge of a particular user, through prompting the user to input information about their interests or behaviour, and based thereon to sort the relevance of content stored in either a local content source 206, or a remote content source 208, or a combination of remote and local content sources, in order to provide a user with knowledge which most closely matches the user's interests.
The content engine 204 is also able to build up a profile, representing the interests and personal attributes of a user, depending on their input to the website. One way of doing this is by generating a set of questions to be answered by the user. Further batches of questions are also asked to the user over time and can be based on existing knowledge of the user, for example based on answers to previous questions, or monitoring user browsing behaviour. This is explained in more detail below.
Figure 2 shows the ASP 106 as having an interface 202 providing access to the content engine 204, which is able to determine and deliver relevant content to the user 102. ANNEX
Figure 3 shows exemplary elements of a content engine 204, including three primary data structures ("tables"): Users 300, Content 302 and Categories 304. These primary tables each have a relationship table between them: Classification 306, Behaviour 308 and Profile 310. Specifically, the classification relational table 306 defines the relation between the category 304 and content 302 primary tables. The profile relational table 310 defines the relation between the users 300 and category 304 primary tables. The behaviour relational table 308 defines the relation between users 300 and content 302. As will be appreciated, each such table will in practice contain very many more entries than shown. Although the configuration disclosed herein is not to be regarded as limiting, the content engine is coupled to a statistical engine 205 and a component labelled l-portfolio 207, which contains user profile information representative of user's interests and/or attributes. In some embodiments, the components 205 and 207 are provided within the content engine 204. As will be explained in more detail hereinafter, the user profile information of preferred embodiments includes information declared by users, information derived from tracking usage and further information deduced (predicted) based on statistical analysis of declared and/or derived information of all users.
The primary tables are explained in more detail below.
The table of users associates a unique number (UID) with each of the users known to the system 106. So for the example shown in Figure 3 the lists of known users are Ed, Chris and Justin, which are associated with UID1 , UID2 and UID3 respectively. In a further embodiment, the user table 300 is also able to hold (or have a link to): login details, contact and/or other personal information for the user. It is not so important as to the form of data stored about a user, rather the purpose is to allow a unique identifier (for example a numerical code) to be assigned to uniquely identify each of the users that accesses the service provided by the system 106.
The content table 302 associates a unique document identifier (DID), for example a number, to each piece of content that the system is aware of (i.e. either from a local source of content 206 or a remote source of content 208). The content table 302 ANNEX
generally holds a link (e.g. a filename or web URL) rather than the content itself. There is no restriction on the definition or format of the content. For example, the content may take the form of a news article, a movie trailer, a photo, a music track, etc and/or groups or parts of such items. However, anything which may be discretely identified may be recorded as a piece of content, since all that is needed is for the system to assign a DID for the corresponding content to be discretely identifiable.
The category table 304 associates a unique category identifier (CID), for example a number, to each category that has been generated by the system. Categories are grouping/classification mechanisms for example for users and/or content. Categories for example might include: the genre of film content (horror, romance, thriller etc), declared user groups (e.g. sailing special interest forum) or even socio-demographic groupings (age, wealth, personality type etc.).
It should be appreciated that in order for unique identifiers (i.e. UID, CID and DID) to be assigned to. new users, categories and content respectively; the content engine is equipped with known functionality (not shown in Figure 2) that is able to tag and identify these respective items.
The three relationship tables: classification 306, profile 310 and behaviour 308 are many-to-many linking tables. In one embodiment they are implemented using relational databases, wherein each relational database is able to record unique identifiers (IDs) showing a relationship between the two items which these IDs refer to. For example, an SQL mechanism for holding many to many relationships, allowing the content engine to record that one user is interested in many items of content, and conversely that one item of content is of interest to many users.
The profile table 310 records the relationship between users and categories (i.e. which categories of information each user is interested in). The profile table 310 thus has UID and CID entries to indicate these relationships. ANNEX
The classification table 306 records the relationship between content items and categories (i.e. which of the classifications the content is associated with). The table thus has DID and CID columns to hold these relationships. In one embodiment, this table is typically populated from meta-data already included with the content itself. For example, locally held content already has meta-tags that give classification information. Content sourced from the internet may also have meta-tag information.
The behaviour table 308 records the relationship between users and content (i.e. which of the content items a user has looked at). The table thus has UID and CID columns to hold these relationships.
Each of the above tables is relatively sparsely populated such that tables only record data that is known to be substantially factually correct. Information declared by the user and regarding that user is regarded as substantially factually correct. Such declared information can for example be built up by the system generating questions which it prompts the user to answer, as will be described in more detail later. However, a given user may have no declared profile entries or may have very limited entries in the behaviour table (if they are a new or infrequent user of the content). That is, the behaviour data is the table which records the relation between users to the content that they access. This information is derived from browsing behaviour over time. Obviously over time, as the user accesses content via the system, more entries will exist for that user in the behaviour table.
In a preferred embodiment each of the relational tables 306, 308 and 310 are extended to include a "scoring" column. See the exemplary table 308' of Fig. 4. This is used to store a numeric value representing the relatedness ('strength' of the relationship) between two items. The relatedness score may then be used to determine the overall relevance as will be explained in more detail below. All relationships within the system have date (timestamp) and relatedness score values associated with them. ANNEX
In the case of declared and derived data the relatedness score value is either directly given by the user (their own rating of how important something is) or a value automatically assigned by the system based on a prediction of how strong the users actions suggest the relationship is (e.g. buying a piece of content would give a higher score than simply browsing to it from a free hyper-link). A relatedness score could for example be a mark out of 10 or a percentage, where in the example of Figure 4 the content identified as DID3 is more relevant to a particular user (UID1), than another piece of content DID 5. This is represented in that the former relationship has a higher score "8" as compared to the latter "5".
In a preferred embodiment the relational tables 306, 308 and 310 and predicted relatedness scores within them comprise predicted relationship information obtained through relatedness calculations by the statistical engine 205. See for example the predicted information of tables 506, 508 and 510 of Fig. 5. This predicted information generally mirrors the type of information in the declared or derived tables 306, 308 and 510, respectively. However, it is generated in instances (not necessarily all instances) where actual declared or derived relationships are not available. Predicted information is referred to herein as "deduced" information because it is deduced from declared and/or derived information based on statistical analysis. In this case the date is used to record a timestamp of when the calculation was performed.
Figure 5 shows the predicted tables which include this so-called deduced information. Specifically, Figure 5 shows that in this embodiment each of the relational tables 306, 308 and 310 comprise corresponding "predicted" tables 506, 508 and 510. In practice, the form of the predicted data structures, for example whether a separately recorded table or whether new entries within existing tables, is immaterial.
Broadly speaking, the difference is that tables 306, 308 and 310 relate to information that has either been declared by users or derived from usage patterns in practice, whereas the information in exemplary predicted tables 506, 508 and 510 has been predicted by the ASP. To achieve this the system uses a statistical engine 205, ANNEX
which performs a statistical analysis on the information to deduce "predicted" . relationships. Figure 2 shows the statistical engine 205 as being separate from the content engine 204, however it should be appreciated that in an alternative embodiment the functionality of the statistical engine could be integrated into the content engine. An exemplary type of statistical analysis is explained hereinafter with reference to Figures 5 to 13. The following prediction tables result:
- A predicted profile table 510 comprising an indication of types of information each user is probably most likely to be interested in. For example an entry in a predicted profile might reflect "interest in horror movies" i.e. a type of film.
- A predicted classification table 506 comprising an indication of the categories each piece of content should most probably be included in (i.e. auto generation of meta-data or similar for the content).
- A predicted behaviour table 508 which predicts the pieces of content that each user is most likely to be interested in. For example, an entry in a predicted behaviour table might indicate an "interest in Scary Movie2 trailer" i.e. a specific item of content. Accordingly, we may expect predicted "types" of interest to be related to an interest in specific items of content - indeed it is this circular relationship which is exploited to derive and test predictions.
With reference to Figure 13, relevance determinations within the system are driven by the summation of weighted scores. Exactly which items are taken into account and how these are weighted and summed is a configurable element of system. First and second inputs 1302, 1304 between which a relationship is to be determined are supplied to a scoring and relevance engine 1306 capable of performing the relevance determination described herein. One or more further relevant factors 1308 may also be taken into account in the determination of overall relevance. In the example illustrated below the relevance of content to a user is determined and the relevant factors taken into account may include "relatedness score" (user or predicted), "recency" (date stamp of the relationship), "popularity" (number of readers), "peer ANNEX
group ratings", and "category interests". A skilled person will appreciate that different factors should be taken into account for different types of relationship. The relevance engine outputs a relevance score 1310, which is the measure of extent of the relationship and which is also suitable for achieving a comprehensive relevance ranking of content. This provides a relevance resource 1320 ranking all content (or defined sub-sets of content) in ascending order of relevance to a particular user.
As will be apparent to a skilled person, the relevance resource can be coupled with suitable types of filters 1350 (or several filters) in order to facilitate provision of relevant content to users. For example one type of useful filter to couple with relevance resource is a search filter which applies search criteria from a user to filter the content of the relevance resource to provide particularly relevant search results to the user. Another type of suitable filter is for example a channel configuration filter or a channel content filter. These are basic types of filters.which assist content providers (say operators of a website or a portal) in pushing the most relevant channel configurations and most relevant channel content, respectively, toward users. Another type of filter is an advertising content filter for supplying particularly relevant advertising content to users.
It should be appreciated that a filter is any mechanism for applying real time interests (or expected current interests) of users to the relevance resource and to assisting with either a "push" of relevant content to the user (e.g. advert) of "pull" of relevant content from the user (e.g. search results).
Consider the case of user to document predicted scores. For a given document there may be consideration of:
1) Any explicit existing relatedness score for the document by this user (declared or derived) weighted by date.
Effect: Documents explicitly flagged of interest have higher relevance. Newer documents have higher relevance. ANNEX
Note: this element of the score is of limited use to the user as they have already rated the document. It is however important for the overall relevance determination and validation of the rankings.
2) Any matching categories for the user and document with their associated scores weighted by a factor based on the product of the two scores and date.
Effect: Documents which are of a type the user has declared an interest in are of higher relevance. Newer interests have higher relevance.
3) A factor to allow for the number of users who have expressed an interest in the document (declared or derived).
Effect: Popular content has higher relevance.
4) Any scores for this document from peer group or otherwise "related users" weighted by the relateness score to this user.
Effect: How other users have rated this document effects it's relevance with respect to a given user. The more similar the other user is to this user the more effect their rating will have.
Note: related users is itself a predicted relationship table with an associated score. This predicted table is calculated by the weighted summation of user to document relateness scores and user to category relateness scores.
Advertisers are typically interested in reaching users most likely respond to adverts or promotions. Hence advertising filters are a particularly useful type of filter 1312 for coupling to the relevance resource 1320. For example a ranking of advertising content taking to account user and category relationships yields strong results, ANNEX
allowing advertisers to reach more highly relevant target audiences among the general public.
Thus, in summary the website hosted by the server 106 is responsible for providing relevant content to a user depending on the personal interests and attributes of that user.
A particularly useful feature of the 'predicted' information is the ability for the content engine of the ASP to determine the difference between the predicted and actual relationships stored therein. Figure 6 shows an example of a comparator 660 in the content engine 204 that is able to determine the difference "Δ" between the predicted and declared/derived information. Specifically Figure 6 shows a predicated profile entry stored in table 510 being compared to a declared profile entry stored in table 310.
This result of the comparison, or difference "Δ", can be used in a plurality of different ways: i) to identify to users their interests, but which the users might not have been aware of or are outside the norm for their peer group (i.e. things which make them unique). ii) to identify to users the interests of their peer group, but interests they do not appear to share (i.e. things they may be missing out on). iii) the ability for the system to 'self-tune' based on statistical analysis to identify non- ideal predictions. That is, if the predicted information is very different from the declared/derived information, the content engine could be programmed to select one of the options as a default for retrieving the information requested. In an alternative embodiment, the content engine is able, through the interface 202, to request that the user provide information as to whether the declared or predicted information is more accurate.
At this point it is useful to discuss what is meant by a peer-group. Users often declare themselves members of peer groups, for example by joining online groups or forums. Alternatively, or in addition, users may be deemed to belong to a peer group ANNEX
based on user behaviour, for example the system can identify relatedness of users based on browsing behaviour. Alternatively, or in addition, the content engine 204 is able to deduce over time for individual users certain content that various users might be interested in and thereby draw predictions about relatedness of users. This is a type of deduced peer group. For example from the behaviour tables (of Figure 3 and Figure 5), a particular user, UID1 might be interested in a plurality of pieces of content DID2, DID3, DID7. The content engine is able to parse the information in this table and notice that another user UID2 is also interested in similar content and has accessed DID2 and DID7. If these shared pieces of content DID2 and DID7 are related to for example a particular category CID5 (or a new category can be generated for these peer group users), then a peer group can be formed consisting of the users UID1 and UID2. Thus, in addition to the information that UID1 might retrieve normally, the content engine 204 is further allowed to retrieve information that users in that user's peer group are interested in.
It is thus possible for a peer group relationship to be "deduced" as was the case for the other predicted relationships 506, 508 and 510 referred to in Figure 5. Such peer groups would be deduced by performing a statistical analysis that aims to establish the degree of relatedness that might exist between particular users, or the content they access, in order to establish whether a user should be joined to a particular peer group.
According to a further embodiment, the content engine is able to deduce the predicted relatedness for entries in each of the primary tables 300, 302 and 304. While Figure 4 showed an embodiment wherein the score that determined the relatedness was declared by a user for a relational table, each of the primary tables has a further column populated by predicted relatedness scores. That is, the content engine is able to score how related each of the primary items are to other items based on how they are used by various peer groups of users. These scores are referred to hereinbefore as "relatedness scores". ANNEX
For the content table 302, the extra scoring column (not shown) represented how each piece of content is related to each other piece of content based on usage (i.e. people who were interested in content A were also interested in content B). By grouping content in this manner it is also possible to generate categories of related content.
For the category table 304, the extra scoring column (not shown) represents how each category is related to other categories based on usage. For example, the socio- demographic category Y has a close affinity for 'Horror' movies.
For the users table 300, the extra scoring column (not shown) represents how each user is related to other users in terms of their interests, which allows the grouping of users into predicted peer groups of users having similar interests, i.e. deduced user peer groups.
A statistical engine 205 is provided with software able to generate the aforementioned deduced information (i.e. predicted tables). The functional aspects of exemplary software are described herein but it will be appreciated such software may take a number of different forms. However, the properties of an exemplary statistical engine 205 are most easily described with reference to the Venn diagram of Figure 7. For each of the predicted tables, the statistical engine is required to determine the extent of the relationship between items in tables.
For example, to calculate the relatedness of two pieces of content (represented by DID1 and DID2), it is necessary to consider the intersection (or overlap" 78 as shown in Figure 7) between the set of users 72 interested in content DID1 and the set of users 74 interested in content DID2. Since we know the overall size of the users population 76 (for example those registered with the ASP), the statistical engine is able to use this as a reference to determine the statistical likelihood of the intersection (overlap 78) occurring by chance. The difference between the intersection in practice and the expected intersection based on overall the population ANNEX
of users indicates the extent which these pieces of content are linked by a theme of common interest (i.e. the extent of relationship between two pieces of content).
This type of statistical determination may be used to determine predicted contents of any of the predicted tables 506, 508, 510 and the like. According to another embodiment, it has been appreciated that the computing power needed to perform such statistical manipulations in working scenarios is prohibitive, or at least very inefficient.
A further advantageous embodiment is now described for performing this type of processing. In particular, according to a preferred embodiment the statistical processing is achieved by a combination of index and inverted-index processing techniques. In practice, inverted indexes are generated and stored locally each time a statistical analysis is performed. The content engine maintains these indexes and updates them each time a new analysis generates relevant entries for inclusion therein.
Figure 8 shows a basic relational database "select statement" approach which could be used to calculate the intersection 78 between the two sets of users describe in Figure 7. That is, the upper block of Figure 8 represents the first set of users 72 that were interested in the first piece of content DID1. The relevant users are identified by their UIDs such that the users UID1 , UID2 and UID5 are all interested in content DID1.
The lower block of Figure 8 represents the second set of users 74 that were interested in the second piece of content Dl D2. The relevant users are identified by the UIDs such that the users UID2, UID5, UID7 and UID9 were all interested in content DID2.
Thus, using an inverted (de-normalised) index for the same relationship, this assumes content DID1 is of interest to users UID1.UID2, UID5 and that content DID2 is of interest to users UID2, UID5, UID7, UID9. Using this inverted index, the ANNEX
statistical engine is able to rapidly parse each set of inverted indices to establish that the intersection between these two sets is UID2 and UID5. That is, the users UID2 and UID5 access both DID1 and DID2.
It is possible to process such inverted index lists in parallel using for example an optimised merge-sort algorithm. Thus, the inverted index (i.e. UID) lists offer advantages in their own right in terms of reduced processing time, and this is potentially even further enhanced by being able to parse such lists in parallel (i.e. simultaneously).
Figure 9 shows an example of the application of the inverted index technique described in Figure 8 for determining the relatedness of all content to a given piece of content i.e. the relatedness of the entry of content DID1 to all other entries in the content table 302.
In order to perform this determination; the statistical engine 205 extracts all the inverted indexes (UIDs) for all the users that have shown an interest in content DID1. Thus, the inverted content index list 900 comprising UID1 , UID5, UID7, UID9 is generated. Then, each of the UID indexes can be processed in parallel to rapidly calculate the intersection (overlap) between all of these sets.
Additionally this approach is highly efficient since the compact nature of (inverted) index lists means all data required for relatedness determinations may be loaded and held in a local memory of the statistical engine to be processed simultaneously. When indexing the entire database, or a large part of it, the control process can be configured to work on items already in local memory first, minimising delays due to slower memory access-based operations.
The statistical engine used to calculate relatedness operates, as already mentioned, based on statistical techniques that take into consideration the size of overlapping sets. Considering the example shown in Figure 9, it can be seen for example that for
DID5, the relatedness is based on the intersection of the two overlapping user index ANNEX
lists UID5 and UID7. Moreover, the affect of each of these index lists should be inversely proportional to the size of each of these index lists. UID5 is a list comprising 2 entries, whereas UID7 is a list comprising 5 entries and therefore the former has an affect of 1/2, whereas the latter only has an affect of 1/5. This must then also be adjusted to take account of the maximum value possible) for this document, which is naturally the same as the relatedness value for a document with itself - DID1 in this case.
In a further embodiment, an optional factor may be added regarding the 'popularity' of the item delta 2 in the example to help ensure popular content precedes less popular content.
Where scoring is available for the relationship tables this is additionally used to refine the output from the relatedness algorithm. In this case each user score is weighted by a factor of I(UID1->DID1) *(1 - modulus( I(UID5->DID1) - l(UID1->DID1)/max I).
Numeric Explanation:
I(UID1->DID1) = Score for User
(1-modulus(l(UID5->DID1)-l(UID1->DID1)/max I) = difference between user l and user 5 scores on a scale of 0 to 1 ; where 1=very similar and O=not very similar
Example:
Suppose UID1 Scores DID1 at 9 (on scale of 0-10) and UID5 scores DID1 at 8
Our subsequent relationship score would be: 9*(1-mod(8-9)/10)
=9*(1-1/10) = 9*9/10 = 8.1
Where l(user->doc) is the score of the given document with respect to a given user. ANNEX
It should be appreciated that the primary tables can be built up with declared information. For example, a profile table 310 can be built up by the ASP 106, for example in response to the user answering a series of questions posed by the ASP. According to an embodiment the questions are grouped into batches of questions by the ASP 106 wherein the answers supplied by the user to a previous batch of questions are processed by a content engine 204, and based on the answers, the subsequent batch of questions prepared by the content engine are able to take into account the answers supplied to the previous batch of questions. In this way, the content engine 204 of the ASP 106 is able to ask progressively more relevant questions to the user and hence has the advantage of increasing the accuracy of the declared profile 310 of a user.
Figure 10 shows an example of a screen of the interface 202 provided by the ASP 106 to the user, wherein the user is asked to complete a plurality of questions 1 to 4.
An embodiment according to the invention is a web portal enabling students to receive the most relevant information at the relevant stage in their life experience.
For example, students that go on to University are potentially faced with a huge diversity with regards to the standard of guidance received from their guardians (for example, such guardians can take on a plurality of different forms such as teachers, parents, friends, siblings, publications, TV etc.). Moreover, each student will also have their own priorities and interests, and at various stages in their development will face complications that are unique to them. An advantage of the web portal application of the present invention is that relevant information can be given to a student, which is tailored to take into account a student's age, interests and circumstances. This is useful in enabling the student to make the correct decision with regards to their life goals and the means for achieving them.
The web portal application of the present invention uses web-based technology in order to implement this resource tool for students. It can act as a reference tool for them throughout their University life and also afterwards, for example when searching for employment. It is based on the analogy of a best friend who is cleverer than the ANNEX
user, but has all the contacts and advice that a user can make use of without feeling bad.
An example of such a web portal application could be in the form of a online search engine which is able to account for the following aspects: choosing the right career for the user while still having flexibility if the user's aspirations change over time. at each stage of the user's development outlining the potential choices open to the user, for example from GCSE all the way through to recruitment and employment. - an online holding form to constantly monitor the, career path or University progression of a user as their grades and social requirements alter, thereby enabling the profile of the user to change as the user develops and with their changing aspirations. to deliver content which is up to date by offering current courses at University or job availability in the market sector, and use the navigable system for interfacing ' with the current UCAS system of University application. a registration process to enable a user to be notified of any changes or information with regards to a predicted career path. The registration process also enables a user to interact with other students that have similar aspirations thereby increasing the user's knowledge base and his social skills. Specifically, this can be achieved by using the afore-described peer group concept, for example by deriving which of the other users most closely match the aspirations of the user in question.
This peer group concept can also be extended so as to receive editorial information about the University course or career path taken by a user from people having knowledge in these areas, for example current students, previous students, employers etc. a complete registration and booking system for numerous aspects including:
• accommodation, availability and cost;
• University life specific to the choices of the user; • University campus/local town facilities and information;
• offering advice on financial commitments of a user and tools for achieving maximum financial security; ANNEX
• tips for leaving home for the first time;
• full personal safety report advising a user on how to behave during their stay at University.
Thus, in order to make user of the web portal application of the present invention, a user would need to register with the ASP 106 and provide a valid email address to be used as the user name and choose a password to allow access to the web portal. According to one embodiment, during the registration phase, the web portal is configured to pose a series of basic questions to the user in order to build up a basic declared information profile for the user. As the user makes use of the web portal over time, the declared profile will increase, for example by answering, further and progressively more pertinent questions or increase the derived information profile through the web usage and/or channels accessed by the web user. That is, Figure 11 shows a screen shot wherein the user can select from a plurality of channels including "headline news", "sport", "TV", "out and about", "movies", "music", "style", "travel" etc.
Thus, the web portal application is able to use the content engine 204 of the ASP 106 and the interactive input from the user to tailor more precisely the information to be presented to the user for enabling more relevant advice to the user and which is able to take into account changing aspirations of the user over time. The content engine 204 is for example able to interrogate the declared profile and predicted profile to arrive at a more accurate model for providing the most relevant content and information to the user.
The user interface 102 of the web portal application provided by the ASP 106 has a plurality of different options allowing the user to stylise the interface as desired. For example, the user interface having a variety of completely different "skins" that provide a different look and feel depending on the age of the user and their progress throughout the education system. This can be set so that as the user progresses through various age groups the skins are updated automatically. ANNEX
Also, the content of the home page, for example the channels that are listed and the specific areas of functionality that can be accessed also depend on the user's age according to one embodiment. For example, at 14 years old the user might be provided with very general careers advice, whereas at 16 they might be encouraged to start thinking about subjects to study at University, and at 18 they might be offered the opportunity to sign up for a credit card, etc.
Thus, in general the content of the portal will evolve and grow with the user as their interests change over time, and where newly accessible features are highlighted as they become available.
An advantage of the web portal application is that it is dynamic and personalised so as to make the tool as relevant as possible to each individual user. The system is also intelligent enough to handle users who do not fit the typical profile. For example, the content displayed to a particular user is not typically based on age and can take into account situations where for example, some users have taken a gap year.
A further advantage of the web portal application is that the questions asked during the registration process have the following characteristics: • asking questions one or two at a time and not in the form of a single long list.
The number of questions is carefully selected to be as short as possible, but wherein it is still possible to obtain the minimum information necessary for the portal content to be personalised sufficiently for first use.
• the content engine being interactive to emphasise the dynamic nature of the web portal for example by changing the colour of the screen background when a user is asked to type in their favourite colour.
An example of some of the basic questions that will be required during registration are: - first name and last name; nickname; gender; ANNEX
date of birth; regional domicile; email address; current school/University The web portal is also flexible in allowing each user to change their password as desired.
The declared profile is an important source of knowledge for determining the interests, aspirations and attributes of each user. In order to develop the declared profile, the user is exposed to a series of tests. The more of these tests that the user completes, the more accurate the declared profile of the user is likely to be. The set of supported tests is not exhaustive, for example it includes the following:
• career preference test
• likes and dislikes • proactive factors (i.e. specific career decisions that the user has already made)
• financial
• psycho-dynamic
• aspiration
• career choice • location of learning
• subject likes and dislikes
• learning aptitude
• job fit
• ideal job
All of the test results for the user are stored in the declared profile and will effect the subsequent personalisation of the web portal application for that user. For example to determine what career suggestions are made, which product reviews the user is prompted to read, etc. Hence the user will be using the web-based portal over an extended time period, the user will also be able to go back and retake certain tests at a later date, and in any event this may be mandatory in some cases where the test results have a limited useful life. ANNEX
It is also significant that all declared profile-based search results are stable. For example, if a user retakes a test and gives different (but overall similar) answers, this should not have material consequences in terms of the personalisation of results displayed, since otherwise the portal may appear to exhibit somewhat random behaviour and user confidence would be reduced. This stabilisation effect is largely achieved by way of the predicted profile 158 and the comparison circuitry 660 which is able to negate any spurious data. Indeed, any changes Δ detected by the comparison circuitry can for example be reported to the user 102 for further clarification or may be asked in a successive series of tests posed to the user for resolving this difference.
In further embodiments of the web portal application, the web portal provides an interface for allowing chat rooms or message boards to allow students to communicate with other users/students that have similar interests and therefore fall within the peer group of the user in question.
A further advantage of the web portal is to automatically provide relevant job searches that match the users declared profile. It is useful in that the user can be presented with the job opportunities that are most likely to be of interest as the student progresses, or alternatively once he has completed his course and looking for full time employment. Furthermore, the user can choose to perform a non-profiled search by deselecting the "Profile ON" button in order to provide a greater range of available jobs. Moreover, it should be appreciated that variations between these extremes are also possible, wherein the user is able to update the declared profile specifically for job searching by deselecting elements of the declared profile which might narrow a search unnecessarily. Also, the user is able to select between applying the declared profile, the predicted profile, or combinations of profiles as described hereinbefore, to see a different and perhaps more relevant set of result appears. ANNEX
Thus, the web portal application advantageously allows automatic cross references of the job prerequisites against the user's declared profile and indicates whether the user has all of the relevant qualifications and experience to meet the job requirements.
Moreover, because of the web-based nature of the portal, the user is able to apply for the job online by completing an application which for example is emailed to the employer. The email may contain the user's standard CV and covering letter or may include information specifically requested by the employer and supplied by the user, depending upon the job requirements. The web portal application provides the ability of tracking the application at all stages, and providing the user with email notification of any updates on the progress of the application.
It should be appreciated that channels in the web portal application can be tailored in line with the interests of the user based on the content engine 204. For example for the "News" channel, the web portal provides an online news service. Thus, users can either specifically input which new topics they are interested in or alternative each user can opt to receive news items that match the interests in their profile. Also users can request to receive news update bulletins by email and again these bulletins will link back to the web portal interface so as to encourage return visits to the site.
The web portal application also has important ramifications in respect of advertising and making use of products and services from third party partners. For example, having established trade rights, the user is able to deal/contract directly with the relevant third parties through the web portal of the present application.
Some of these services and products could for example include:
• a bank account, for example an online bank account provided by a major UK retail bank; • insurance, for example travel, home contents and car insurance schemes;
• phone services, for example discounted talk plans from major phone networks;
• broadband services; ANNEX
• web search, powered by a major search engine potentially with customised results, for example by applying filtering based on either the declared profile or the predicted profile.
• books, for example both general books of interest and specialised text books relevant to a University course.
• computer hardware and software;
• music and videos, for example CDs, DVDs etc.
• retail high street brands, for example by providing links through to online shops.
Furthermore, the web portal application is advantageous in allowing direct marketing against a target subset of the users of the ASP 106. This is a potentially and particularly powerful advertising tool which should attract a premium from potential advertisers, since the users in the database have potentially already been sorted by their declared profiles and web usage, which would allow the advertisers to target users by matching the interests of the relevant users with the third party requirements.
According to an alternative embodiment, the web portal application is also accessible through other technologies, i.e. apart from the standard web browser internet connection. For example, the web portal application is accessible through WAP- enabled mobile phones, Third Generation (G3) mobile phones, WEBTV™ applications, etc. It should also be appreciated that although the term mobile phone is used, any mobile terminal equipped with such technology, for example a PDA (Personal Digital Assistant), laptop or other relevant handheld device equipped with such technologies are equally applicable.
A further advantage of the web portal application is that an extensive profile can be built up on the habits and behaviour of individual users. This extends not only to the profile information collected from the questions, but also to areas such as which features of the site they use most frequently, and which third party products and/or services the users make use of most frequently. ANNEX
Indeed, an I-Portfolio 707 can be built up user profiles comprising the declared, derived and deduced knowledge in relation to each user. The I-Portfolio is an evolved electronic portfolio which is user centric and user controlled. It should be appreciated that while the I-Portfolio is shown as a discrete component in the ASP it can be integrated into the content engine 204.
As will now be understood, the declared profile of each user is voluntarily imparted personal information relating to the user, which for example could include the following:
• age and gender;
• demographic and psychographic details;
• learning patterns;
• type of personality, i.e. extraverted, introverted, etc; • individual personality preferences;
• learning preferences;
• type of intelligence;
• skills, interests and preferences;
• environmental preference for learning; • entertainment preferences.
There are a plurality of different mechanisms for obtaining the declared knowledge from the user, which include:
• personal testing; • filtration;
• pre-search;
• knowledge;
• group;
• community. ANNEX
Each of these mechanisms for collecting declared knowledge will be briefly discussed now.
This Personal Testing method of obtaining declared knowledge comprises the use of taking a selection of psychometric-based tests. The tests are set up to perform two main functions which are the categorisation of the user and the weighting of the user's personal attributes. The results of the user tests will determine into which of the types the user is categorised into. Further results from the testing are then quantified into a set of numeric values that are stored within the I-Portfolio and correspond to the user's unique identity. That is, each user having a unique ID for identifying that user.
According to a further embodiment, the user is able to turn off the personalisation testing by selecting a "profile OFF" button located on the navigation bar of the web portal interface. That is, when the profile button is off "i.e. deselected" then the content which is retrieved from a database is not sorted by the content engine and instead defaults to the preference settings relevant to the particular interface that the user is viewing the content with. However, when the profile is on "i.e. selected", the content engine 204 applies the knowledge learned about the user to the content that the user is passively viewing or proactively browsing.
The advantage of this is that the user is able to subconsciously maintain the accuracy of their declared profile, by allowing the content engine to autonomously perform a matching of the user's web usage as compared to the user's actual declared profile. Any web transactions that are conducted with the filters off are not stored in the declared profile but are generically against users of this type (i.e. a peer group or content with a similar categorisation).
According to a different embodiment an intelligent search facility is provided which enables the user to perform a text search for content stored either within the ASP database or remote databases over the web. In order to engage this facility, the
"profile ON/OFF" button is turned on such that the user's I-Portfolio is applied to the ANNEX
contents in the databases such that the returned search results are more relevant to the user's interests and attributes as represented in the I-Portfolio.
The second form of declared knowledge is filtration whereby the users are encouraged to input data in order to create filters depending on the user's requirements. The filters can relate to all elements of life choices and provide filtered information back to the user. That is, the content engine of the web portal application sorts the type of filtered information such that it is relevant to the user's personal attributes as well as to the user's interests. For example, the user with an extraverted personality would receive information in a more ostentatious form, for example a 30 second video clip, whereas an introverted user that requests the same information will be presented this information in a more learned format for example a 300 word article. In order to emphasise the concept of user centricity of the I-Portfolio, all users are able to select content to be provided unfiltered.
According to another embodiment of the present invention there is provided pre- search functionality in the content engine 204 of the ASP 106. This is an enhancement of filtration in that the pre-search allows a user to set parameters for a particular piece of information that they would like to be made aware of at some point in the future when and if the information becomes available. For example, the user can set a pre-search stating that they wish to see the pop group U2 any time in the next two years within ten miles of London. Every time the user logs into the web portal application, the content engine will carry out a search of the latest relevant content available to it.
A further form of declared knowledge is to test a user for levels of detail which cover the user's:
• behavioural patterns;
• purchasing patterns; • sociological patterns;
• sociological attributes;
• entertainment preferences across all levels of content. ANNEX
In this embodiment, the questions are put to the user in four progressive levels which determine the structure of the following level and this process creates a progressive focus of information relevance. That is, the declared knowledge of the user can be made more and more accurate over time by progressive testing which takes the results of previous questions and applies them in formulating more relevant questions at the next level of questions posed to the user.
In one regard, derived profile information may be regarded as a specific case of declared data; in that it is really user driven information which is collected automatically based on usage rather than from explicit declarations from the user.
Preferred embodiments deal with this internally via weighing mechanisms which reflect a confidence level concerning the usage based data. For example browsing to some free content will record the interest in the appropriate relationship table with a certain weight, but buying content would give a more significant weight.
Figure 12 shows an example of a web content engine 204. The web content engine is shown as having a plurality of different components including the processor 1008, an I-Portfolio, containing among other information, user profile information in the various forms described hereinbefore, tracking software 1010 and a filtering engine 1012. It should also be appreciated that the processor is able to execute computer programs for carrying out all of the various functions of the content engine already described herein. The I-Portfolio thus comprises profile information on the plurality of users that have registered with the web portal application and maintains their interests and attributes as obtained from the 3D knowledge engine. The tracking software 1010 is used to monitor the web usage of each user terminal and to compare said web usage with the interests and attributes stored in the I-Portfolio, and to cause updating of relevant table entries as appropriate. Moreover, a filtering engine 1012 is shown which is able to sort through content from remote databases (accessed over the internet) or a local database (not shown) by comparing the content against the interests and attributes of each user so as to provide the user ANNEX
with more relevant content, content in more appropriate formats, and/or more appropriately prioritised content.
Those skilled in the art will appreciate that while the foregoing has described what is considered to be the best mode and, where appropriate, other modes of performing the invention or inventions described herein, the inventions should not be limited to the specific apparatus configurations and methods disclosed in this description. Embodiments within the scope of the novel and inventive concept can be implemented in any available way. Embodiments may comprise individually advantageous features and/or any combinations of the plurality of advantageous features described. Those skilled in the art will recognise that such inventions have a broad range of applications in many different types of computing and relevance determination applications.
ANNEX
1. A computer system for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, the computer system comprising: a content engine comprising user profile information representative of interests and/or attributes of individual users; and a processor for determining relevance of content to a particular user based on said user profile information.
2. A computer system as in claim 1 , wherein the user profile information comprises information about the user which is declared by the user.
3. A computer system as in claim 2, comprising means for generating prompts for capturing declared information from the user, wherein said prompts comprise one or more of a form and a series of questions to the user.
4. A computer system as in claim 3, wherein said means for generating prompts generates a series of questions, such that one or more of the questions in the series is generated dependent on an answer to a previous question in the series.
5. A computer system as in claim 3 or 4, wherein said means for generating prompts generates a plurality of series of questions, such that one or more series of questions is generated responsive to at least one answer in a previous series of questions.
6. A computer system as in any preceding claim, comprising a module for receiving usage information and wherein the user profile information comprises information about a user which is derived from observations of the user's usage behaviour.
7. A computer system as in any preceding claim, comprising a statistical engine and wherein the user profile information comprises predicted information which is deduced based on statistical processing of information declared by users. ANNEX
8. A computer system as in any preceding claim, comprising a statistical engine and wherein the user profile information comprises predicted information which is deduced based on statistical processing of information derived based on the usage behaviour of users.
9. A computer system as in any preceding claim, comprising a statistical engine and wherein the user profile information comprises predicted information which is deduced based on statistical processing of (i) information declared by users and (ii) information derived based on the usage behaviour of users.
10. A computer system as in any preceding claim, wherein the user profile information comprises records of relationships between one or more of (i) users, (ii) content and (iii) categories, and wherein the content engine records score information indicating the significance of relationships recorded in the user profile information.
11. A computer system as in claim 10, comprising means for generating a prompt inviting a user to input score information indicating the relevance of content presented to the user by the content engine, wherein the score information comprises score information provided by users responsive to said prompts.
12. A computer system as in claim 10 or 11 , comprising a module for receiving usage information and wherein said content engine records score information indicating the significance of relationships recorded in the user profile information, wherein the score information comprises score information derived by monitoring usage behaviour.
13. A computer system as in any of claims 10 to 12, comprising a statistical engine, wherein said content engine records score information indicating the significance of relationships recorded in the user profile information, and wherein the score information comprises score information deduced from statistical determinations. ANNEX
14. A computer system as in any of claims 10 to 13, wherein the score information takes into account the relative age user profile information.
15. A computer system as in claim 14, wherein the score information takes into account time elapsed since user profile information was declared by a user.
16. A computer system as in claim 14 or 15, wherein the score information takes into account time elapsed since events providing usage-based user profile information occurred.
17. A computer system as in any of claims 10 to 16, wherein the score information takes into account the current popularity of a particular content or category.
18. A computer system as in any of claims 10 to 17, wherein the score information takes into account a measure of the user's interest in a particular content or category, which measure is derived from usage observations.
19. A computer system as in any of claims 10 to 18, wherein the content engine is provided with means for generation a nominal score which is or replaced by one or more of score information based on user declarations or score information based on usage observations.
20. A computer system as in any preceding claim, wherein the content engine comprises a category table comprising a list of categories each having a unique category ID.
21. A computer system as in any preceding claim, wherein the content engine comprises a content table comprising a list of content items each having a unique content ID.
22. A computer system as in claim 21 , wherein the content table comprises content items. ANNEX
23. A computer system as in claim 20 or 21 , wherein the content table comprises pointers to items of content.
24. A computer system as in claim 23, wherein said pointers to items of content comprise links to items of content accessible via the Internet.
25. A computer system as in any preceding claim, wherein the content engine comprises a user table comprising a plurality of users each having a unique user ID.
26. A computer system as in any preceding claim, wherein the content engine comprises at least one relational table.
27. A computer system as in claim 26, wherein said relational table comprises score information indicating the significance of relationships recorded therein.
28. A computer system as in any preceding claim, wherein the content engine comprises a behaviour table recording relationships between individual users and individual items of content.
29. A computer system as in any preceding claim, wherein the content engine comprises a classification table recording relationships between' individual items of content and individual categories.
30. A computer system as in any preceding claim, wherein the content engine comprises a profile table recording relationships between individual users and individual categories.
31. A computer system as in any of the claims 28, 29 or 30, wherein at least one table recording relationships comprises predicted relationships based on statistical analysis. ANNEX
32. A computer system as in claim 31 , wherein a plurality of tables recording relationships comprise predicted relationships based on statistical analysis.
33. A computer system as in any of claims 6 to 32, wherein said content engine comprises means for comparing declared information of the user's profile with information derived from the users based on usage.
34. A computer system as in any of claims 7 to 33, wherein said content engine comprises means for comparing predicted information of the user's profile with one or more of information declared by the user or derived from the user's usage.
35. A computer system as in any preceding claim, wherein said content engine comprises a table recording peer groups of users based on one or more of: registration of a user with a particular group; usage behaviour of a user; and prediction based on statistical analysis.
36. A computer system as in any preceding claim, wherein a table records a peer group based on common content interests.
37. A computer system as in any preceding claim, wherein a table records content accessed by similar users as likely to be linked by a common theme.
38. A computer system as in any preceding claim, comprising a statistical engine arranged to determine the extent of relationship between first and second table populations having regard to a reference population.
39. A computer system as in claim 38, wherein said statistical engine is coupled to receive populations and determine the extent of relationships between one or more of: first and second content populations; a first category population and a second category population; a first user population and a second user population; a first content population and a category population; a first category population and a user population; and a first user population and a content population. ANNEX
40. A computer system as in claim 39, wherein said statistical engine is capable of determining the extent of relationships between more than two populations.
41. A computer system as in any preceding claim, wherein the content engine comprises one or more relationship tables, and wherein the content engine comprises index representations of information in at least one relationship table.
42. A computer system as in any preceding claim, wherein said user profile information comprises all information about the user required to make the relevance determination.
43. A computer system as in any of claims 2 to 42, wherein information declared by the user falls into one or more of the following categories: age; gender; demographic information; psychographic information; learning patterns; personality type; individual personality preferences; learning preferences; intelligence type; skills; interests; region of domicile; environment preferences; entertainment preferences; and general preferences.
44. A computer system as in any of claims 2 to 43, comprising software to support one or more of the following types of declared information gathering: user testing; filtering based on a user input; a pre-search; usage patterns; purchasing patterns; sociological patterns; sociological attributes; entertainment preferences; and indications of groups and/or communities relevant to the user.
45. A computer system as in any preceding claim, wherein an interface presented to the user provides a means for the user to switch off relevance determination based on the user profile.
46. A computer system as in any preceding claim, wherein an interface presented to the user provides a means for the user to select from among user profile criteria applied in relevance determination. ANNEX
47. A computer system as in any preceding claim, comprising software supporting ' notification of developments to user e-mail accounts.
48. A computer system as in any preceding claim, comprising communications interfaces facilitating communication between users.
49. A computer system as in any preceding claim, comprising means for presenting a plurality of channels of content to a user, wherein aspects of the selection and/or configuration of said channels are selectable by the content engine based on a relevance determination.
50. A computer system as in any preceding claim, wherein the content engine is arranged to select content within a channel presented to a user based on a relevance determination.
51. A computer system as in any preceding claim, comprising third-party content relating to products or services offered to users.
52. A computer system as in claim 51 , comprising an interface through which users can tailor aspects of the system as viewed by them.
53. A web portal supporting development of individual users over time, the web portal comprising: a content engine for determining the relevance of content, said content engine comprising user profile information representative of individual interests and/or attributes, wherein said user profile information comprises one or more of:
(a) information declared by users about themselves;
(b) information about users derived from observations of their usage behaviour; (c) information about users determined based on statistical analyses of (a) or (b) or both (a) and (b); and ANNEX
means for comparing said user profile information with the content to determine relevance of a particular piece of content to a particular user.
54. A web portal as in claim 53, comprising data selected from or more of the following categories: academic courses; career guidance; job opportunities; and location based amenities.
55. A web portal as in claim 54, comprising information on job opportunities, and further providing an interface for one or more of: job searching; online job applications; and tracking job applications.
56. A method of operating a computer system to determine relevance of content, the method comprising: accessing recorded information about one or more of: users; categories; and content, which information is declared by users and/or derived from observations of user's behaviour, wherein said information comprises a plurality of populations; establishing an intersection between selected ones of said plurality of populations; comparing said intersection with a reference population to determine an extent of relationship between said selected pluralities of populations; and using said extent of relationship to determine a predicted relationship.
57. A method as in claim 56, wherein said recorded information comprises index lists and said the step of establishing an intersection is achieved by scanning a plurality of such index lists.
58. A method as in claim 57, wherein said index lists comprise at least one inverted index list.
59. A method as in claim 57, wherein said scanning of a plurality of index lists occurs substantially contemporaneously. ANNEX
60. A method as in any of claims 57 to 59, wherein the influence of an index list on the determination is dependent on the length of the list.
61. A method as in any of claims 57 to 59, wherein scanning of a index list is performed by means of an optimised merge-sort algorithm.
62. A method as in any of claims 56 to 61 , wherein said predicted relationship comprises a relationship between one or more of: a user and a category; a user and an item of content; an item of content and a category; first and second items of content; first and second users; and first and second categories.
63. A method as in any of claims 57 to 62, wherein a plurality of index lists to be scanned are loaded into a memory to facilitate the step of establishing said intersection.
64. A method as in any of claims 57 to 63, wherein said index lists are extracted from information including information held relational tables of a content engine.
65. A method as in any of claims 64, further taking into account scores indicated in relational tables of a content engine.
66. A method as in claim 65, wherein scoring takes into account the age of information declared from the user and/or the age of information derived from the usage, such that more recent information is afforded a score giving it more significance.
67. A method as in any of claims 65 or 66, taking into account timing of declared and or derived information such that more pertinent information carries more significance.
68. A server application comprising a content table comprising a list of content items each having a unique content ID, wherein the list of content items comprises content ANNEX
items sourced from within a network administered by the operator of the server application as well as content items sourced from the Internet.
69. A server application as in claim 68, wherein said content table comprises links to content sourced from the Internet.
70. A method of building a content table in a server, the content table comprising content items sourced from within an environment administered by the operator of the server as well as content items sourced from the Internet, the method comprising providing the server with software causing an entry to be made in said content table responsive to users registered with said server accessing items of content, irrespective of whether the item of content accessed is from within the environment administered by the operator of the server or from Internet.
71. A content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, comprising user profile information comprising information based on information about users declared by the relevant users and information about users derived from observations of usage behaviour.
72. A content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, comprising user profile information based on one or more of information about a users declared by the relevant users and information about users derived from observations of usage behaviour, wherein said user profile information further comprises information predicted about users based on statistical analysis of said declared and/or said derived information.
73. A content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, comprising user profile information representative of interests and/or attributes of individual users, wherein said user profile information comprises information ANNEX
predicted by said content engine, and said content engine further comprises means for receiving from the user an indication of accuracy of said predicted information.
74. A content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, comprising a table recording relationships between individual users and individual items of content.
75. A content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, comprising a table recording relationships between individual users and individual categories.
76. A content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, comprising a table recording relationships between individual items of content and individual categories.
77. A content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, comprising a first table recording relationships between individual items of content and individual categories and a second table recording relationships between individual users and individual categories.
78. A content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, comprising a first table recording relationships between individual items of content and individual users and a second table recording relationships between individual users and individual categories.
79. A content engine for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users, ANNEX
comprising a first table recording relationships between individual items of content and individual users and a second table recording relationships between individual items of content and individual categories.
80. A content engine comprising means for predicting aspects of relationships between one or more of users, content and categories, and further comprising means for determining a difference between predicted relationship information and corresponding information declared from the user or derived based on usage behaviour.
81. A content engine comprising relationship tables recording relationship information concerning two or more of users, content and categories, and further comprising index representations of at least some of said relationship information, wherein said index representations are accessible to a statistical engine for determining the extent of relationships for use in determinations of relevance.
ANNEX
ABSTRACT
There is described a computer system for determining the relevance of stored content to particular users and for facilitating the provision of relevant content to individual users. The computer system comprises a content engine comprising user profile information, representative of interests and/or attributes of individual users, and a processor for determining a correlation between content and said user profile information to determine content most relevant to a particular user.
1 /10
Figure imgf000072_0001
FIG.1
2/10
Figure imgf000073_0001
FIG.2 3 / 10
304
306 310
Figure imgf000074_0001
Figure imgf000074_0003
Figure imgf000074_0004
CONTENT USERS
DID UID
DID1 "BLAIR RESIGNS" UID1 ED DID2 HARRY POTTERTRAILER UID2 CHRIS DID3 UID3 JUSTIN
Figure imgf000074_0002
BEHAVIOUR UID DID
UID1 DID3 UID1 DID5
FIG. 3
308'
401- BEHAVIOUR SCORE UID DID
8 UID1 DID3 5 UID1 DID5
FIG. 4 4/10
304
CATEGORY
306
CLASSIFICATION
>-506 i
PREDICTED CLASSIFICATION
Figure imgf000075_0001
Figure imgf000075_0002
FIG.5 5/10
Figure imgf000076_0001
FIG.6
Figure imgf000076_0002
FIG.7 6/10
DID1 3 UID 1 UID 2 UID 5
DID 2 4 UID 2 UID 5 UID 7 UID 9
FIG.8
DID 1 UID 1 UID 5 UID 7 UID 9
UID 1 DID1 DID 3 DID 4
Figure imgf000077_0001
UID 7 DID 1 DID 3 DID 5 DID 11 DID 13
Figure imgf000077_0002
FIG.9 7/10
Figure imgf000078_0001
FIG.10
Figure imgf000079_0001
FIGURE
Figure imgf000079_0002
9/10
Figure imgf000080_0001
FIG.12 10/10
Figure imgf000081_0001
FIG.13

Claims

1. A mobile device for receiving content from a remote computer system and displaying it to a user, the mobile device comprising: a mobile operating system; at least one application component arranged to provide the user with a content service and operable to receive user inputs indicative of user content preferences; a user profile building component for generating user profile information based on said user content preferences, wherein said user profile includes user preferences specifically input by the user and user preferences derived from monitoring mobile device browsing behaviour of the user; a time stamp module arranged to time stamp user profile information; a cache storage module; a connection manager operable to determine the existence of an external data connection to the device and configured to switch between a connected mode of operation and a non-connected mode of operation in dependence on said determination; and a transceiver module operable to transmit user profile information to the remote computer system and receive content from the remote computer system, wherein in said non-connected mode of operation, the cache storage module is configured to receive and store said user profile information including said time stamp until the connection module switches mode to the connected mode.
2. The mobile device according to claim 1 , comprising a plurality of application components each providing a different service and each being operable to provide user inputs indicative of user content preferences to the profile builder.
3. The mobile device according to claim 2, wherein the application components comprise one or more of: ticketing service; scheduling service; transport service; purchase service; directory service; and news.
4. The mobile device according to any preceding claim, wherein an application component comprises a user interface which is configurable based on user profile information.
5. The mobile device according claim 4, wherein the user interface presents selection options which are prioritised according to user profile information.
6. The mobile device according any preceding claim, wherein application components is operable to display content in dependence on user profile information.
7. The mobile device according to any preceding claim, holding content for display to the use and which is time stamped indicating a period of validity during which the content is suitable for display on the mobile device with or without a suitable network connection.
8. The mobile device according to claim 7, wherein a content item is deleted or refreshed responsive to expiry of its period of validity.
9. The mobile device according to any preceding claim, wherein the connection manager is further operable to select a type of network connection from a number of available connection types based on predetermined rules and/or user selection.
10. The mobile device according to claim 9, wherein the predetermined rules are derived at least in part from user profile information.
11. The mobile device according to claim 2, wherein said plurality of application components are linked such that update events associated with one are transferred through memory in order to update another.
12. The mobile device according to claim 11 , wherein a user input to an application component selected from (i) ticketing service, (ii) scheduling service, (iii) transport service, (iv) purchase service, (v) directory service, and (vii) news service, is used to update on device data relating to another of said application components.
13. The mobile device according to any preceding claim, further comprising a monitor module operable to monitor incoming communications and load at least one application component responsive to receipt of content to be presented to the user.
14. The mobile device according to claim 13, wherein the monitor module is configured to determine a timestamp in order to decide when to load the application component.
15. The mobile device according to claim 14, wherein the monitor module indicates a period of days or weeks or months until an application component should present the content to the user.
16. The mobile device according to any preceding claim, wherein the content comprises an advertisement and/or other content not requested by the user but deemed relevant based on user preferences.
17. The mobile device according to any preceding claim, wherein the device can be configured to load an application component and presents content to the user responsive to one or more of: (i) receipt of a content bearing message from the remote computer; (ii) expiry of a period defined in timestamp; (iii) and a specific date or time defined in a timestamp.
18. A method of operating a mobile device for receiving content from a remote computer system and displaying it to a user, the method comprising: providing at least one application component arranged to provide the user with a content service and operable to receive user inputs indicative of user content preferences; building a user profile on the device recording user profile information based on said user content preferences, wherein said user profile includes user preferences specifically input by the user and user preferences derived from monitoring mobile device browsing behaviour of the user; time stamping user profile information generated on the device; operating a connection manager to determine the existence of an external data connection to the device in order to switch between a connected mode of operation and a non-connected mode of operation in dependence on said determination; and transmitting user profile data to the remote computer in said collected mode of operation and storing timestamps user profile information on said device in said non- connected mode of operation.
19. The method of claim 18, wherein user inputs indicative of user content preferences are received from a plurality of application components each providing a different service selected from two or more of: ticketing service; scheduling service; transport service; purchase service; directory service; news service.
20. A computer readable medium encoded with computer readable code, such that a computer running the code is caused to perform the method of claim 18 or 19.
21. A computer system for providing relevant data content to particular mobile device users, the computer system comprising: a user profile store configured to receive user profile information comprising data indicative of user interests and browsing history, said user profile store comprising user profiles for a plurality of users; a timestamp module for time stamping content based on a defined period of validity; an interface configured to communicate with application components on mobile devices; a database of application content relating to services provided to mobile device uses via said application components; and a control function operable to construct content delivery messages carrying content for presentation to mobile device users in dependence upon user profile information, wherein a content delivery message comprises the timing indicator determining one or more of: a validity period for presentation of the message to a mobile device user; a specific time for presentation of the message to a user; and a delay before presentation of the message to a user.
22. A computer system according to claim 21 , comprising a module configured to monitor updates to said database of application content and determine correspondence between said updates and interests defined in said user profiles.
23. A computer system according to claim 22, arranged to construct a message targeting a user responsive to determination of correspondence between an update and a user profile.
24. A computer system according to claim 23, wherein said message relates to an application service selected from one or more of: a ticketing service; a scheduling service; a transport service; a purchasing service; a directory service; and a news service.
25. A computer system according to any of claims 21-24, further comprising an interface to a content engine, said content engine comprising components for the determination of the relevance of stored content to particular users for facilitating the provision of relevant content to individual users, and user profile information on two or more of said mobile device, said computer system and said content engine managed such that most recent time stamp prevails.
PCT/GB2008/001933 2007-06-06 2008-06-06 Mobile applications WO2008149101A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0710920.0 2007-06-06
GBGB0710920.0A GB0710920D0 (en) 2007-06-06 2007-06-06 Mobile application

Publications (2)

Publication Number Publication Date
WO2008149101A2 true WO2008149101A2 (en) 2008-12-11
WO2008149101A3 WO2008149101A3 (en) 2009-06-04

Family

ID=38318880

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2008/001933 WO2008149101A2 (en) 2007-06-06 2008-06-06 Mobile applications

Country Status (2)

Country Link
GB (1) GB0710920D0 (en)
WO (1) WO2008149101A2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944112A (en) * 2010-09-15 2011-01-12 宇龙计算机通信科技(深圳)有限公司 Software pushing method, system, mobile terminal and software pushing server
WO2011123243A1 (en) * 2010-03-31 2011-10-06 Bank Of America Corporation Integration of different mobile device types with a business infrastructure
WO2011123245A1 (en) * 2010-03-31 2011-10-06 Bank Of America Corporation Conditional establishment of a communications connection with a mobile terminal in response to a query from the mobile terminal
GB2487181A (en) * 2010-12-29 2012-07-18 Nec Casio Mobile Comm Ltd System for user profiling
US8554872B2 (en) 2010-03-31 2013-10-08 Bank Of America Corporation Integration of different mobile device types with a business infrastructure
US8930498B2 (en) 2010-03-31 2015-01-06 Bank Of America Corporation Mobile content management
US9270815B2 (en) 2014-06-24 2016-02-23 At&T Intellectual Property I, Lp Method and apparatus for data management of third party services
EP3173946A1 (en) * 2015-11-24 2017-05-31 Sap Se Atomic visibility switch for transactional cache invalidation
EP3350757A4 (en) * 2015-09-16 2019-07-24 First Data Corporation Systems and methods for facilitating purchases at a gas station
US10877956B2 (en) 2015-11-24 2020-12-29 Sap Se Transactional cache invalidation for inter-node caching

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040122870A1 (en) * 2002-12-24 2004-06-24 Joong-Ki Park Method for data synchronization and update conflict resolution between mobile clients and server in mobile system
US20060056336A1 (en) * 2004-09-10 2006-03-16 Dacosta Behram M Method for data synchronization with mobile wireless devices
WO2007048063A2 (en) * 2005-10-21 2007-04-26 Feeva, Inc. Systems and methods of network operation and information processing, including data acquisition, processing and provision and/or interoperability features
WO2007135436A1 (en) * 2006-05-24 2007-11-29 Icom Limited Content engine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040122870A1 (en) * 2002-12-24 2004-06-24 Joong-Ki Park Method for data synchronization and update conflict resolution between mobile clients and server in mobile system
US20060056336A1 (en) * 2004-09-10 2006-03-16 Dacosta Behram M Method for data synchronization with mobile wireless devices
WO2007048063A2 (en) * 2005-10-21 2007-04-26 Feeva, Inc. Systems and methods of network operation and information processing, including data acquisition, processing and provision and/or interoperability features
WO2007135436A1 (en) * 2006-05-24 2007-11-29 Icom Limited Content engine

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930498B2 (en) 2010-03-31 2015-01-06 Bank Of America Corporation Mobile content management
WO2011123243A1 (en) * 2010-03-31 2011-10-06 Bank Of America Corporation Integration of different mobile device types with a business infrastructure
WO2011123245A1 (en) * 2010-03-31 2011-10-06 Bank Of America Corporation Conditional establishment of a communications connection with a mobile terminal in response to a query from the mobile terminal
US8433775B2 (en) 2010-03-31 2013-04-30 Bank Of America Corporation Integration of different mobile device types with a business infrastructure
US8554872B2 (en) 2010-03-31 2013-10-08 Bank Of America Corporation Integration of different mobile device types with a business infrastructure
CN101944112A (en) * 2010-09-15 2011-01-12 宇龙计算机通信科技(深圳)有限公司 Software pushing method, system, mobile terminal and software pushing server
GB2487181A (en) * 2010-12-29 2012-07-18 Nec Casio Mobile Comm Ltd System for user profiling
US9270815B2 (en) 2014-06-24 2016-02-23 At&T Intellectual Property I, Lp Method and apparatus for data management of third party services
US9781593B2 (en) 2014-06-24 2017-10-03 At&T Intellectual Property I, L.P. Method and apparatus for data management of third party services
EP3350757A4 (en) * 2015-09-16 2019-07-24 First Data Corporation Systems and methods for facilitating purchases at a gas station
US11410147B2 (en) 2015-09-16 2022-08-09 First Data Corporation Systems and methods for facilitating purchases at a gas station
EP3173946A1 (en) * 2015-11-24 2017-05-31 Sap Se Atomic visibility switch for transactional cache invalidation
CN107066467A (en) * 2015-11-24 2017-08-18 Sap欧洲公司 Atom observability for affairs cache invalidation switches
US10353895B2 (en) 2015-11-24 2019-07-16 Sap Se Atomic visibility switch for transactional cache invalidation
US10877956B2 (en) 2015-11-24 2020-12-29 Sap Se Transactional cache invalidation for inter-node caching

Also Published As

Publication number Publication date
GB0710920D0 (en) 2007-07-18
WO2008149101A3 (en) 2009-06-04

Similar Documents

Publication Publication Date Title
US10284715B2 (en) Event handling system
US11106794B2 (en) Trust network effect
WO2008149101A2 (en) Mobile applications
US10706112B1 (en) Personalization techniques using image clouds
TWI443532B (en) System and method for context based query augmentation
US20100030713A1 (en) Content engine
EP2084924B1 (en) Methods, systems and apparatus for delivery of media
US7941430B2 (en) Multi-mode location based e-directory service enabling method, system, and apparatus
US8311893B2 (en) System and method for providing information on selected topics to interested users
US20100042592A1 (en) System and methods for facilitating user- requested content services and related technologies
US20110288911A1 (en) System, Method and Computer Program Product for Collecting and Distributing Mobile Content
US20020032597A1 (en) System and method for providing request based consumer information
US20120078725A1 (en) Method and system for contextual advertisement recommendation across multiple devices of content delivery
JP2012519926A (en) Targeting by context information of content using monetization platform
JP2009510551A (en) Provision of content to mobile communication facilities
JP2010508592A (en) Search results of mobile content by combination of algorithmic review and editorial review
US20130086111A1 (en) System and Method for Providing Information on Selected Topics to Interested Users
EP3057055A1 (en) Advertisement informatin sharing system
CN108463819B (en) Real-time information distribution system and information distribution method based on digit string using intelligent terminal
Daraghmi et al. Pmr: Personalized mobile restaurant system
US20090234926A1 (en) Using a local business directory to generate messages to consumers
KR20150082139A (en) System for providing useful information channel and operation method thereof
JP2005084706A (en) Information registration system, server device, program, storage medium recording the program, and information registration method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08762281

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112 (1) EPC (EPO FORM 1205A DATED 22/04/2010)

122 Ep: pct application non-entry in european phase

Ref document number: 08762281

Country of ref document: EP

Kind code of ref document: A2