Patent Description:
Vehicles often provide a communication capability for occupants of the vehicle. The communication capability may allow an occupant of the vehicle to make a voice or possibly a video call via a telecommunications network. To provide this capability the vehicle may include an apparatus for communicably coupling with a user's communication device, such as mobile telephone, in order to make and receive calls or the vehicle includes a communication unit capable of communicating with the telecommunications network. Both may be referred to as a 'hands-free' system of the vehicle.

When a user wishes to make a call, they are able to access a contact list or phonebook which stores details of the user's contacts e.g. friends, family etc. The contact list may be searched by the user. However in a high cognitive load environment, such as for a driver of the vehicle, searching the contact list to find a desired contact is undesirable. It is an object of embodiments of the invention to recommend one or more contacts to a user with whom user wishes to communicate. It is an object of embodiments of the invention to determine one or more contact recommendations without a significant processing requirement.

<CIT> discloses a method and apparatus whereby an application is automatically launched in response to identifying a specific user in the vehicle. Upon launching the application, a historical calling profile is automatically downloaded for the user. The historical calling profile includes individual vehicle call records. The historical calling profile is updated with vehicle call record(s) corresponding to each instance of an outgoing call placed while the user is in the vehicle. A probability of a telephone number being chosen for an outgoing call, within time increments while the user is in the vehicle or in response to a request, is dynamically determined. The probability is dependent upon location data points retrieved from the individual vehicle call records. A list of telephone numbers sorted by the probability is dynamically generated. A most recently generated list of telephone numbers sorted by the probability is caused to be displayed on a vehicle display while the user is in the vehicle.

<CIT> discloses a system and method for generating contact identifier recommendations from a larger electronic phonebook. The system comprising a group of contact identifier predictor modules P, each providing a set of predicted contact identifiers from a second output port and a confidence value associated with each of the predicted contact identifiers from a first output port. There is a weight storage module storing a set of weight values associated with a respective confidence value and modifies each confidence value based on the corresponding weight values to provide weighted confidence values. A selection module selects a set of contact identifier recommendations based on the weighted confidence values for the predicted contact identifiers.

<CIT> discloses a dynamic contact list for a mobile device presents address book contacts in varying arrangements based on external factors. The mobile device may receive a request to display a contact list and may retrieve a sort procedure for the contact list. The sort procedure may be based on a user's prior selections from a group of contact sort rules. The mobile device may retrieve a list of contact identifiers and other information associated with each contact identifier that is applicable to the sort procedure. The mobile device may then apply the sort procedure to the list of contact identifiers and to the information associated with each contact identifier so as to displaying a sorted list of contact identifiers based on the applied sort procedure.

Aspects and embodiments of the invention provide a computer-implemented method of generating contact recommendations, a communication apparatus, computer program and a vehicle as claimed in the appended claims.

According to an aspect of the invention there is provided a computer-implemented method, as defined in appended claim <NUM>, of generating contact recommendations for a vehicle communication apparatus, the method suitable for use in a high cognitive load environment, comprising: determining a plurality of vehicle contact events associated with a communication device, wherein vehicle contact events are contact events that were executed via the vehicle communication apparatus; determining a sum-squared distance between each of a plurality of current parameters and each of a plurality of respective parameters associated with each of the contact events; and generating contact recommendations according to the sum-squared distance determined for each vehicle contact event. Advantageously, contact recommendations are generated based upon a similarity to each respective contact event. The sum-squared distance is determined to each of a plurality of contact events and the contact recommendations selected based thereon.

A contact event may be understood to mean a communication event with the respective contact. A contact event may be a telephone or video call with the respective contact, text message communication with the contact, or an email sent to or received from the contact. In some embodiments, contact events are understood to mean calls, audio or video, made with the contact. Contact events are vehicle contact events.

Vehicle contact events are those contact events that were executed via the vehicle communication apparatus.

The method comprises determining a plurality of vehicle contact events, wherein vehicle contact events are contact events that were executed via the vehicle communication apparatus. In this way, contact recommendations for contact events taking place in the vehicle are based on previous contact events made from the vehicle, thus providing improved recommendations.

At least some of the parameters are temporal parameters. Advantageously, the similarity is determined at least in part on a time associated with the contact event.

Current parameters may be one or more characteristics of a current point in time, such as a current day or a current time.

The distance is indicative of a difference between the current parameters and the parameters associated with each of the contact events. Advantageously parameters with a smaller distance are those most similar to a current situation.

The distance is based upon the difference squared. The distance is based upon the difference between a plurality of current parameters and a plurality of parameters associated with each of the contact events. The distance is based upon a sum-squared difference between the plurality of current parameters and the plurality of parameters associated with each of the contact events. Advantageously a plurality of parameters are taken into account when determining the difference between the current parameters and parameters associated with each of the contact events, thereby providing improved contact recommendations.

The distance may be calculated based upon a weighted combination of the plurality of current parameters and the plurality of parameters associated with each of the contact events. In this way, the importance of certain parameters may be adjusted dependent on the requirements of different markets or users.

A value may be associated with each of the current parameters and the parameters associated with each of the contact events, wherein the value may be determined by allocating the respective parameter to one or more groups. Advantageously this allows non-numeric parameters to be used in determining the distance.

Optionally, each of the groups corresponds to one or more parameter values, wherein the group for at least some of the parameters may correspond to a period of time, or one or more days of the week. Advantageously the period of time and day of week parameters associated with each of the contact may be taken into account when determining contact recommendations. Optionally the groups consist of a first group for days of the week and a second group for time of day. Advantageously the determination of distance is made relatively straightforward to calculate.

In an embodiment not covered by the claims, the distance may be calculated according to the following expressions:
<IMG>
where x is a first parameter value for a first event, y is the first parameter value for a second event, n is the total number of groups for the first parameter, the abs() function returns the absolute value, and where max_distance is the maximum permitted distance between event parameters being defined by the equation: <MAT> where max_difference is the difference between the largest possible value of group numeric value and smallest possible value of group numeric value, and the Floor() function returns the least succeeding integer.

Optionally, generating contact recommendations comprises generating up to a predetermined number of contact recommendations, wherein the predetermined number may be up to five; optionally the predetermined number may be three. Advantageously a concise number of recommendations may be provided. Advantageously this may be useful in high cognitive load environments, such as to a driver of a vehicle.

Optionally the method comprises selecting a contact event from amongst a plurality of contact events having substantially equal distance based on a discriminating parameter associated with the respective contact events. The discriminating parameter may be a total number of contact events associated with a respective contact ID.

The one or more contact recommendations may be output to a user, wherein the generating may comprise generating a plurality of contact recommendations and the outputting may comprise outputting the plurality of recommendations in an order based upon the distance. Advantageously, most similar recommendations are output first to the user.

Optionally, generating one or more contact recommendations comprises generating a first set of vehicle contact recommendations based on a first subset of the determined vehicle contact events and a second set of contact recommendations based on a second subset of vehicle contact events; and comparing the first and second set of contact recommendations. In this way, recommendations may be optimised to consider the stability of the user's calling patterns, such that a user with a changeable calling pattern will have recommendations derived from a smaller, more recent, set of vehicle contact events.

The first subset may comprise all of the determined vehicle contact events. Further, the second subset comprises only recent determined vehicle contact events. In this way, the method may provide a comparison of recommendations generated over the full set of available vehicle contact events against those generated over a subset of more recent data.

According to another aspect of the invention, there is provided a communication apparatus, as defined in appended claim <NUM>, suitable for use in a high cognitive load environment, comprising memory means for operably storing data indicative of a plurality of vehicle contact events, wherein vehicle contact events are those executed via the vehicle communication apparatus; control means; and an input-output (IO) means. The control means is arranged to determine a sum-squared distance between each of a plurality of current parameters and each of a plurality of respective parameters associated with each of the contact events; and generate contact recommendations according to the sum-squared distance determined for each vehicle contact event and to output the recommendations via the IO means to a user.

The communication apparatus is a vehicle communication apparatus, suitable for providing communication functionality in a vehicle.

In an embodiment, the memory means is for operably storing data indicative of a plurality of vehicle contact events, where vehicle contact events are those contact events that were executed through the vehicle communication apparatus.

The communication apparatus is adapted for use in a high cognitive load environment, such as a vehicle.

At least some of the parameters are temporal parameters. The distance is indicative of a difference between the current parameters and the parameters associated with each of the contact events, and the distance is based upon the difference squared.

The distance is based upon the difference between a plurality of current parameters and a plurality of parameters associated with each of the contact events. The distance is based upon a sum-squared difference between the plurality of current parameters and the plurality of parameters associated with each of the contact events. Advantageously a plurality of parameters are taken into account when determining the difference between the current parameters and parameters associated with each of the contact events, thereby providing more accurate contact recommendations.

The control means may be arranged to determine a value associated with each of the current parameters and the parameters associated with each of the contact events, wherein the value may be determined by allocating the respective parameter to one or more groups, wherein each of the groups corresponds to one or more parameter values. The group for at least some of the parameters may correspond to a period of time, or to one or more days of the week.

The distance may be determined according to: <MAT> wherein D is the distance, I is a total number of parameters, i is an parameter number between <NUM> and I, Currenti is an ith current parameter, and Eventi is an ith parameter associated with a contact event. The distance calculation enables current parameters and contact event parameters to be compared directly to provide a more accurate distance.

Optionally, the communication apparatus may be adapted to generate contact recommendations up to a predetermined number of contact recommendations, wherein the predetermined number may be up to five; optionally the predetermined number may be three. Advantageously a concise number of recommendations may be provided. This may be useful in high cognitive load environments, such as to a driver of a vehicle.

Optionally, the communication apparatus comprises a communication means for wireless communication with a mobile device, wherein the data indicative of the plurality of contact events is received from the mobile device. Advantageously, the communication apparatus may operate in combination with a mobile device to obtain the contact information upon which recommended contacts may be determined.

The IO means may comprise a display means for displaying the contact recommendations. Advantageously, a graphical user-interface may provide the contact recommendations.

According to an aspect of the invention there is provided a computer-implemented method of generating contact recommendations, comprising determining a distance as: <MAT> wherein D is the distance, Daycurrent is a current day, Dayevent is a day of a contact event, Timecurrent is a current time of day, Timeevent is a time of a contact event, and generating a contact recommendations according to the distance. Advantageously, contact recommendations are generated based upon a similarity to each respective contact event.

According to yet another aspect of the invention, there is provided a vehicle comprising a communication apparatus according to an aspect of the invention. Advantageously contact recommendations may be provided to one or more occupants of the vehicle. Advantageously the one or more occupants may include the driver of the vehicle. According to a further aspect of the invention, there is provided computer software which, when executed by a computer, is arranged to perform a method according to an aspect of the invention, wherein the computer software may be stored on a computer readable medium.

<FIG> illustrates a method <NUM> of generating contact recommendations according to an embodiment of the invention. The method <NUM> provides one or more recommended contacts to a user. The method <NUM> may provide up to a predetermined number of contacts. In some embodiments the predetermined number is relatively small, such that the recommend contacts are most relevant to the user i.e. it is most likely that the user wishes to contact one of the contacts from the set of recommended contacts and the user is able to select one of the contacts from the set without undue distraction, such as whilst in a high cognitive load environment, for example driving a vehicle.

The method <NUM> as shown in <FIG> will be described with reference to <FIG>, which illustrates an apparatus <NUM> according to an embodiment of the invention.

The apparatus <NUM> is a communication apparatus. The communication apparatus <NUM> is arranged for communicating with a mobile device <NUM>, such as a mobile telephone or portable communication device such as a tablet computer, although it will be realised that this list is not exhaustive and is merely illustrative. The communication apparatus <NUM> is arranged within a vehicle. The communication apparatus <NUM> may be a hands-free apparatus for allowing use of the mobile telephone in the vehicle. In this respect the apparatus may form part of a user-interface of the vehicle, such as part of an infotainment system of the vehicle. In other embodiments the communication apparatus may be capable of communicating with a wireless telecommunication network itself, such forming a mobile telephone.

The communication apparatus <NUM> comprises a control means <NUM> in the form of one or more processing devices for executing software instructions, a memory means <NUM> for operably storing data formed by one or more memory devices, a communication means <NUM> in the form of a communication device for wireless communication, and an input-output (IO) means <NUM> formed by one or more IO devices. The communication device <NUM> is provided for wireless communication <NUM> which, in some embodiments, is with the mobile device <NUM> e.g. the mobile telephone or portable communication device (hereinafter collectively referred to as mobile phone <NUM>). The IO device <NUM> is provided for inputting or outputting data from/to the user. The IO device <NUM> may be arranged to output data to the user, such as visibly or audibly, and to receive an input from the user. For example, the IO device <NUM> may comprise a display device for visibly displaying data thereon. The IO device <NUM> may further comprise an input device for receiving the user input, wherein the input device may be a touch-sensitive portion of the display device. In use the display device may be controlled by the processing device <NUM> to display one or more contact recommendations thereon, as will be explained. It will be realised that in some embodiments the one or more contact recommendations may be audibly output by the IO device <NUM>.

The communication device <NUM> is arranged to communicate <NUM> with the mobile phone <NUM> to determine contact events as in step <NUM> of <FIG>.

The mobile phone <NUM> is associated with contact data indicative of a plurality of contacts. Each contact in the contact data comprises a contact ID, such as a name or other identifying information, and one or more unique items of contact information by which the contact can be reached, such as a telephone number, email address, social media identifier, etc. The contact data may be stored in a memory of the mobile phone <NUM> or in a memory accessible to the mobile phone <NUM>, i.e. at a remote storage location sometimes referred to as 'cloud storage'. The term contact event is intended to mean a communication event with the respective contact. For example, a contact event may be understood to broadly comprise a telephone or video call with the respective contact, text message communication with the contact, or an email sent to or received from the contact. However, in some embodiments, contact events are understood to mean calls, audio or video, made with the contact from the mobile phone <NUM>. In some embodiments the contact events used to determine the contact recommendations are only those made from the mobile phone <NUM> to the respective contact. Vehicle contact events are those contact events which are executed via the communication apparatus <NUM> of the vehicle.

Data indicative of the contact events is obtained by the apparatus <NUM> receiving <NUM> the data from the mobile phone <NUM> via the communication device <NUM>. The data may comprise data indicative of the contact, such as the contact ID, and temporal information relating to the contact event, i.e. indicative of a time and date of the call to the contact. The data indicative of the contact events may be obtained for a predetermined period of time prior to a current time. For example, the data may be obtained for a previous seven days, one month or other time period, although it will be realised that these time periods are merely illustrative. Alternatively, a predetermined number of the most recent contact events may be obtained, for example, depending on the memory available in the communication apparatus <NUM>. Thus, based on the received data, the processing device <NUM> of the apparatus <NUM> is provided with data indicative of with whom and when calls were made by the user of the mobile phone <NUM>. The received data may be stored in the memory device <NUM> of the apparatus <NUM>.

In an alternative arrangement, the communication apparatus <NUM> monitors the status of a mobile phone <NUM> while they are in communication. In this way, the communication apparatus is aware <NUM> of contact events that occur while the mobile phone <NUM> is in communication with the communication apparatus <NUM>. Typically, such contact events occur via the communication apparatus <NUM>, for example with the communication apparatus providing a hands-free option for calls. By monitoring in this way, the communication apparatus is able to establish those contact events that occurred via the communication apparatus.

In step <NUM> a distance is determined to each of the contact events determined in step <NUM>. The distance is determined based upon one or more current parameters and one or more respective parameters associated with each of the contact events. Current parameters are understood to mean characteristics of a current point in time, such as a current day or a current time. The distance is indicative of a difference between the one or more current parameters and the one or more parameters associated with each of the contact events. In some embodiments at least some of the parameters are temporal parameters. The total distance may be considered as a sum-squared distance between a plurality of parameters as in the following Equation <NUM>: <MAT> wherein D is the total distance, I is a total number of parameters, i is a parameter number between <NUM> and I, and di is the ith parameter distance associated with a contact event.

In some embodiments, the parameter distance may be determined as a difference between parameters, such that Equation <NUM> becomes: <MAT> wherein D is a total distance, I is a total number of parameters, i is a parameter number between <NUM> and I, Currenti is an ith current parameter, and Eventi is an ith parameter associated with a contact event. The distance calculation enables current parameters and contact event parameters to be compared directly to provide a more accurate distance. For example, a first i=<NUM> parameter may be a current day and a day of the respective contact event where each day of the week is assigned a respective numeric value. Similarly, a second i=<NUM> parameter may be a current time and a time of the respective contact event. Advantageously, by using a calculation of this form significant computational overhead is avoided. In other words, it is not necessary to employ a computationally expensive method such as using Bayesian mathematics.

Alternatively, the total distance D may be determined as a weighted sum-squared distance between a plurality of weighted parameters as in the following Equation <NUM>: <MAT> wherein D is the total distance, I is a total number of parameters, i is a parameter number between <NUM> and I, wi is the weight associated with the ith parameter, and di is ith parameter distance associated with a contact event.

In some embodiments, the parameter distance may be determined as a difference between parameters, such that equation <NUM> becomes: <MAT> wherein D is the total distance, I is a total number of parameters, i is a parameter number between <NUM> and I, wi is the weight associated with the ith parameter, Currenti is an ith current parameter, and Eventi is an ith parameter associated with a contact event.

In one embodiment a first current parameter value is a current day and a first parameter associated with the contact event is a day of the respective contact event, and a second current parameter value is a current hour and a second parameter associated with the contact event is an hour of the respective contact event. In some embodiments a third parameter is indicative of a weekend or weekday, i.e. whether the current time is at a weekend and whether the respective contact event was at a weekend.

In some embodiments, at least some of the one or more current parameters and one or more parameters associated with each of the contact events are assigned to a respective group, wherein each group is associated with a respective numeric value or identifier. The assignment to each group is based upon the value of the parameter wherein each group is associated with one or more parameter values. A range of the parameter values associated with the group denotes a width of the respective group.

The first parameter indicative of the day may be assigned to a group wherein each group is associated with a respective Day of Week value. The Day of Week values may be as indicated in the table below, although it will be realised that other values may be used.

The values of Day of Week may be defined as:.

Whilst the above table indicates that each day of the week is assigned a respective Day of Week value, it will be appreciated that the width of each group may be increased to include a plurality of days. For example, one group may include Monday and Tuesday and be associated with a Day of Week value of <NUM>, although it will be realised that this is merely an example.

The second parameter indicative of the time may be assigned to a group wherein each group is associated with a respective Hour ID value. The Hour ID values may be as indicated in the table below, although it will be realised that other values may be used.

The values of Hour ID may be defined as:.

For example, if the time is <NUM>:<NUM>:<NUM>, the hour number is <NUM>, therefore the Hour ID is determined as <NUM>. Whilst the above table indicates that three hours are assigned to a respective Hour ID value, it will be appreciated that the width of each group may be increased or decreased to include more or fewer hours. For example, one group may include hours <NUM> and <NUM> and be associated with an Hour ID value of <NUM>, although it will be realised that this is merely an example. Each group may be assigned with one or a plurality of hours.

As noted above, in some embodiments the third parameter is indicative of a weekend or weekday. The third parameter may be assigned to a group wherein each group is associated with a respective Weekend value. In some embodiments, the Weekend value may be determined from the first parameter representative of the day of the week.

The values of Weekend may be defined as:.

It will be appreciated that the above values of Weekend are merely illustrative. Furthermore it will be appreciated that in some countries the days of the week corresponding to weekend may be different.

The actual distance between the current parameter value and the event parameter value is calculated in a manner that allows for the cyclic nature of periods of time, such as days of the week and hours of the day. If a first event X has a parameter value x for a parameter Q and a second event Y has a parameter value y for a parameter Q, then the actual distance between those events for parameter Q is given by the following expressions:
<IMG>
where n is the total number of groups for that parameter, the abs() function returns the absolute value, and where max_distance is the maximum permitted distance between event parameters being defined by the equation: <MAT> where max_difference is the difference between the largest possible value of group numeric value and smallest possible value of group numeric value, and the Floor() function returns the greatest integer less than or equal to the input parameter.

For example, for the Day of Week group values shown earlier, the largest possible value of group numeric value is <NUM> and the smallest possible value of group numeric value is <NUM>. Therefore, the max_difference is <NUM> - <NUM>, i.e. <NUM>.

For the Hour ID group values shown earlier, the largest possible value of group numeric value is <NUM> and the smallest possible value of group numeric value is <NUM>. Therefore the max_difference is <NUM> - <NUM>, i.e. <NUM>.

So for these example values, the max_distance for Day of Week is equal to Floor(<NUM>/<NUM>), which is Floor(<NUM>), i.e. <NUM>. For the example Hour ID values, the max_distance is equal to Floor(<NUM>/<NUM>), i.e. <NUM>. The person skilled in the art will understand that it is not necessary that the max_distance for different parameters be the same.

Considering our example of events X and Y, if event X occurred at <NUM>:<NUM>:<NUM> such that x = <NUM>; and event Y occurred at <NUM>:<NUM>:<NUM> such that y = <NUM>, then the actual distance is calculated by first evaluating abs(x - y) as follows: <MAT> <NUM> is greater than <NUM> therefore, we use the following expression to calculate the actual distance: <MAT>.

As such, the actual_distance = <NUM> - abs(<NUM> - <NUM>), which gives an actual distance of <NUM>.

Based on the above values for Day of Week, Hour ID and, in some embodiments, additionally Weekend the value of D may be determined for each contact event.

For example, if the current time is Wednesday <NUM>:<NUM>:<NUM>, the corresponding current parameter values will be:.

For the three exemplary contact events shown in Table <NUM>,.

the following parameters may be determined: <MAT> <MAT> <MAT>.

Corresponding distances are determined as follows:
As described previously, the max_difference for the Day of Week parameter is <NUM> - <NUM>, that is, max_difference = <NUM>. As such, the max_distance is Floor(<NUM>/<NUM>), that is, max_distance = <NUM>. Furthermore, the total number, n, of groups for the Day of Week parameter is <NUM>.

As described previously, the max_difference for the Hour parameter is <NUM> - <NUM>, that is, max_difference = <NUM>. As such, the max_distance is Floor(<NUM>/<NUM>), that is, max_distance = <NUM>. Furthermore, the total number, n, of groups for the Hour parameter is <NUM>.

To begin, we evaluate the expressions abs(x - y), which in this case is abs(<NUM> - <NUM>). As such, the expression has a value of <NUM>, which is less than <NUM> (i.e. max_distance for Day of Week parameter), therefore actual distance is calculated as follows: <MAT>.

To begin, we evaluate the expressions abs(x - y), which in this case abs(<NUM> - <NUM>). As such, the expression has a value of <NUM>, which is less than <NUM> (i.e. max_distance for Hour ID parameter), therefore actual distance is calculated as follows: <MAT>.

It is not necessary to carry out cyclic calculations for the Weekend parameter.

Therefore the distance calculation is as follows: <MAT>.

To begin, we evaluate the expressions abs(x - y), which in this case abs(<NUM> - <NUM>). As such, the expression has a value of <NUM>, which is less than or equal to <NUM>, therefore the actual distance is calculated as follows: <MAT>.

To begin, we evaluate the expressions abs(x - y), which in this case abs(<NUM> - <NUM>). As such, the expression has a value of <NUM>, which is greater than <NUM>, therefore actual distance is calculated as follows: <MAT>.

To begin, we evaluate the expressions abs(x - y), which in this case abs(<NUM> - <NUM>). As such, the expression has a value of <NUM> which is less than or equal to <NUM>, therefore actual distance is calculated as follows: <MAT>.

Therefore D1 = <NUM>, D2 = <NUM> and D3 = <NUM>.

In this case, distance of the current time to Call <NUM> is smaller relative to Call <NUM> or Call <NUM>, and therefore will be considered to be closest (less distance) and hence is more 'similar' to the current parameters. In other words, it is determined based on historical contact event data that the user is more likely to call the telephone number of Call <NUM> (+<NUM>). It is noted that Call <NUM> is two days away from the current day, while Call <NUM> is only one day away, however the similarity between the current time and the time of Call <NUM> reduces the overall distance from Call <NUM>.

In another example, weightings are applied. Weightings may be used, for example, to take into account that weekday calling patterns may be different to weekend calling patterns, or that the time of the call may be more or less important than the day of the call. Example weightings may be a weighting value of <NUM> for the Day of Week parameters; a weighting value of <NUM> for Grouped Hour ID; and a weighting value of <NUM> for the Weekend parameter. These values emphasise the distance in the time of day (hour group) from a current call in the calculation of the overall distance.

For example, if the current time is Tuesday <NUM>:<NUM>:<NUM>, the corresponding current parameter values will be: <MAT>.

For the two exemplary contact events shown in Table <NUM>,.

the following parameters may be determined: <MAT> <MAT>.

Corresponding distances are determined as follows: <MAT> <MAT>.

In this case it can be seen that that the distances are equal. To determine a priority between the two contact events, it will be necessary to consider another parameter such as the frequency of calls to each number.

However, if we apply the weightings discussed above in Equation <NUM>, the distance calculations become <MAT> <MAT>.

In this instance we can see that the distance to Call <NUM> is greater than that Call <NUM>. In this way, the contact associated with Call <NUM> will be higher in the list of recommendations that the contact associated with Call <NUM>.

Weightings may be useful to take into account differences between countries or regions. It will be apparent to the person skilled in the art that the hour parameter is particularly sensitive to weightings as it represents a group of values.

<FIG> illustrates an exemplary graph of contact events. The contact events are shown distributed upon axes indicative of days of the week and time of day. A current time and day is indicated with reference numeral <NUM>. First to fourth contact events are indicated with reference numerals <NUM>-<NUM>, respectively. It can be appreciated that a location of each of the contact events corresponds to a day and time of the contact event. However the contact events are illustrated as being unequally sized. The size of each of the contact events <NUM>-<NUM> is determined in dependence on a number of contact events associated with the respective contact ID. For example, contact event <NUM> is illustrated as being larger than contact events <NUM>, <NUM> and <NUM>, corresponding to a greater number of contact events existing corresponding to that telephone number.

In <FIG>, a distance to contact events <NUM> and <NUM> is determined to be equal. However contact event <NUM> is illustrated larger in size than contact event <NUM> corresponding to a greater number of contacts or calls to that telephone number associated with contact event <NUM>. In some embodiments contact event <NUM> is preferential over contact event <NUM> due to the greater number of contact events to that contact ID or telephone number. That is, in the event of equal distance to a plurality of contact events, a further parameter may be used to resolve the tie between the contact events. The further parameter may be, in some embodiments, a total number of contact events with the respective contact IDs.

In step <NUM>, one or more contact recommendations are generated according to the distance determined in step <NUM>. Step <NUM> may comprise generating up to a predetermined maximum number of contact recommendations. The maximum number of contact recommendations may be relatively small to avoid providing excessive information, particularly where the recommendations are being provided to a user in a high cognitive load environment, such as a driver of the vehicle. In some embodiments the maximum number is <NUM>, although in other embodiments the maximum number is <NUM> contact recommendations. The contact recommendations generated in step <NUM> are those having the smallest distance, as determined in step <NUM>, where in some embodiments a tie in distance between contact events is resolved in favour of a greatest number of contact events as discussed above.

In step <NUM> the one or more contact recommendations generated in step <NUM> are output. As noted above, the recommendations may be output visibly and/or audibly by the IO device <NUM>.

<FIG> illustrates an output of a display screen <NUM> which may form part of the IO device <NUM>. The display screen <NUM> comprises a plurality of contact recommendations <NUM>, <NUM>, <NUM> selected in step <NUM>. As illustrated in <FIG>, the display screen <NUM> comprises three contact recommendations although it will be realised that this is merely illustrative and that other numbers of contact recommendations are envisaged, such as five or less. The generation and output of relatively few contact recommendations is useful in high cognitive load environments, such as when the recommendations are being provided to a user who is the driver of a vehicle. As illustrated in <FIG>, each contact recommendation <NUM>, <NUM>, <NUM> comprises information identifying the contact, such as the contact ID, e.g. "Maurice Wilks". In some embodiments each contact recommendation may comprise an indication of associated contact information, such as a telephone number, although it will be appreciated that other types of contact information, such as an email address or other identifier, may be displayed. Furthermore, in the exemplary embodiment illustrated in <FIG>, a control <NUM>, <NUM>, <NUM> is displayed associated with each contact recommendation <NUM>, <NUM>, <NUM> allowing contact, such as a call, to be initiated with the respective contact upon activation of the control.

<FIG> illustrates a vehicle <NUM> according to an embodiment of the invention. The vehicle <NUM> comprises an apparatus <NUM> as described above, although said apparatus is not visible in the exterior view of <FIG>. The apparatus <NUM> may form part of a user-interface of the vehicle <NUM>, such as forming part of an infotainment system of the vehicle <NUM> which provides communication functions for occupants of the vehicle <NUM>.

Steps <NUM> to <NUM> of the method <NUM> described above with reference to <FIG> may be performed during an initialisation or start-up process of the vehicle <NUM>. During the initialisation process, the operation of one or more systems of the vehicle <NUM> are begun before the vehicle <NUM> is operational in a state to be driven. During this process, a communication connection with the mobile phone <NUM> is made and the data indicative of the contact events is received from the mobile phone. As part of the initialisation process, steps <NUM> and <NUM> may be performed and data indicative of the one or more contact recommendations may be stored in the memory means <NUM> of the apparatus <NUM>. Then, in response to a user request to provide contact recommendations, step <NUM> is performed with reference to the stored data. In this way, a processing overhead of computing the contact recommendations whilst the vehicle <NUM> is fully operational, such as being driven, is avoided.

Users may fall into either a "stable" user group or "changeable" user group, where the calling patterns of stable users tend not to vary over time while the calling patterns of changeable users do tend to alter over time. The numbers called regularly by a user in the stable user group do not change significantly over time, however the regularly called numbers for a user in the changeable user group may change over time. In the light of this, once the contact events have been obtained, the step of generating the recommendations may be carried out over different data sets each time they are requested. In one example, the recommendations may be carried out over a first subset and a second subset of the determined contact events. The first subset may be the full set of determined contact events. The second subset may relate to a shorter time period, typically that immediately preceding the time of determining the contact events. For example, the second subset may be the contact events for a certain period of time, for example, the preceding three weeks, or may simply be based, for example, on be the previous ten contact events or other predefined number.

Initially, the recommendations from the first subset are presented to the user. However, once the user has made a selection, the user selection is compared to the recommendations based on the first subset and the recommendations based on the second sub-set. Periodically, the accuracy of each recommendation type is compared. After the accuracy comparison, if the results over the second subset prove more accurate, the method will switch to outputting those recommendations. Recommendations for both subsets may continue to be generated, with the outputted recommendations changing as the periodic accuracy analysis indicates.

It will be appreciated that a vehicle may be shared between a plurality of users, each of whom may drive the vehicle at different times. Certain embodiments of the invention provide for a user profile for each user to be defined within the communication apparatus <NUM>. As such, the data indicative of the contact events that the communication apparatus obtains, in step <NUM>, from the user mobile device <NUM> is associated with the user's profile when stored on the communication apparatus <NUM>. Sometimes, however, a user may have more than one mobile device, for example a personal mobile device and a work mobile device. In such cases, the user may choose to associate all of their mobile devices with their profile. When making a call, the apparatus <NUM> may prompt the user to select which mobile device to use. In this way, the communication apparatus <NUM> may obtain data indicative of contact events from all mobile devices associated with the profile, and present in the vehicle. The communication apparatus <NUM> may store each contact event with a tag identifying the mobile device from which the contact event was obtained.

When carrying out the steps of determining <NUM> the distance to contact events and generating <NUM> recommendations, the communication apparatus <NUM> may automatically select the data from one mobile device on which to base recommendations; may prompt the user to select which mobile device to use for recommendations; or may merge the data indicative of contact events from both mobile devices and base the analysis on the merged data. Where the user makes a selection, they may choose more than one mobile device wherein the communication apparatus <NUM> will merge the data from the selected devices.

Claim 1:
A computer-implemented method (<NUM>) of generating contact recommendations for a vehicle communication apparatus, the method suitable for use in a high cognitive load environment, comprising:
determining (<NUM>) a plurality of vehicle contact events associated with a communication device, wherein vehicle contact events are contact events that were executed via the vehicle communication apparatus;
characterized in that the method comprises:
determining (<NUM>) a sum-squared distance between each of a plurality of current parameters and each of a plurality of respective parameters associated with each of the vehicle contact events; and
generating (<NUM>) one or more contact recommendations according to the sum-squared distance determined for each vehicle contact event.