Supplying notifications related to supply and consumption of user context data
First Claim
1. A method in a wearable computer for providing information about a current state of a user of the wearable computer, the current state modeled with multiple state attributes, the wearable computer executing a plurality of state server modules to supply values for the state attributes, executing a plurality of state client modules to receive and process values for the state attributes, and executing an intermediary module to facilitate exchange of state attribute values, the method comprising:
- under control of each of the executing state server modules, sending to the intermediary module a registration message indicating a current availability to supply values for an indicated one of the state attributes;
under control of a first of the executing state client modules, sending to the intermediary module a request for a current value of a first of the state attributes; and
under control of the intermediary module, receiving the sent registration messages and the sent request; and
without further intervention by the first state client module, determining that the first state attribute is not one of the state attributes indicated by the state server modules;
sending to the first state client module an indication that the requested value is not available;
after the sending of the indication, receiving an indication from a first state server module of an ability to supply values for the first state attribute; and
in response to the receiving of the indication, notifying the first state client module that the requested value is available, so that the state client modules can automatically be notified when state attribute values of interest become available.
4 Assignments
0 Petitions
Accused Products
Abstract
Techniques are described for providing information about a current state that is modeled with multiple state attributes. In some situations, the providing includes receiving from a module a request related to the modeling of the current state with the multiple state attributes. In such situations, the providing further includes, without further intervention related to the request by the module, determining that the request cannot currently be satisfied, and indicating to the module that the request cannot currently be satisfied, monitoring at later times after the indicating to determine whether the request can be satisfied, and indicating to the module that the request can be satisfied if it is determined at one of the later times that the request can currently be satisfied.
507 Citations
64 Claims
-
1. A method in a wearable computer for providing information about a current state of a user of the wearable computer, the current state modeled with multiple state attributes, the wearable computer executing a plurality of state server modules to supply values for the state attributes, executing a plurality of state client modules to receive and process values for the state attributes, and executing an intermediary module to facilitate exchange of state attribute values, the method comprising:
-
under control of each of the executing state server modules, sending to the intermediary module a registration message indicating a current availability to supply values for an indicated one of the state attributes;
under control of a first of the executing state client modules, sending to the intermediary module a request for a current value of a first of the state attributes; and
under control of the intermediary module, receiving the sent registration messages and the sent request; and
without further intervention by the first state client module, determining that the first state attribute is not one of the state attributes indicated by the state server modules;
sending to the first state client module an indication that the requested value is not available;
after the sending of the indication, receiving an indication from a first state server module of an ability to supply values for the first state attribute; and
in response to the receiving of the indication, notifying the first state client module that the requested value is available, so that the state client modules can automatically be notified when state attribute values of interest become available. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
receiving from a second of the state client modules a request for a current value of a second state attribute that was indicated in the registration message sent by a second of the state server modules; and
without further intervention by the second state client, determining that the second state server module is not currently able to supply the requested current value for the second state attribute;
in response to the determining, sending to the second state client module an indication that the requested current value for the second state attribute is not available;
after the sending of the indication to the second state client module, determining that the second state server module is currently able to supply the requested current value for the second state attribute; and
notifying the second state client module that the requested current value for the second state attribute is available.
-
-
4. The method of claim 3 wherein the determining that the second state server module is currently able to supply the requested current value for the second state attribute is based on the intermediary module receiving a current value for the second state attribute from the second state server module, and wherein the notifying of the second state client module includes sending the received value for the second state attribute to the second state client module.
-
5. The method of claim 1 including, under the control of the intermediary module:
-
receiving from each of multiple modules an indication of an event of interest; and
when one of the indicated events of interest occurs, notifying the module that indicated the occurring event of the occurrence.
-
-
6. The method of claim 5 wherein a received indication from a first module of a first event of interest includes a criteria related to the first event, and wherein the notifying of the first module of the occurrence of the first event is performed only when the criteria is satisfied by the occurrence of the first event.
-
7. The method of claim 1 including, under the control of the intermediary module:
-
receiving from a second of the state client modules an indication of a condition related to one or more specified state attributes such that the second state client module desires to know when the condition has been satisfied;
determining whether any received values for the specified state attributes satisfy the condition; and
when it is determined that the condition is satisfied, notifying the second state client module.
-
-
8. The method of claim 1 including:
-
monitoring activities of a module;
detecting an occurrence; and
automatically without further intervention by the module, determining based on the monitoring that the detected occurrence would be of interest to the module; and
notifying the module of the detected occurrence.
-
-
9. The method of claim 1 including, under the control of a third of the state client modules:
-
receiving a sent current value from the intermediary module; and
presenting information to a user of the third state client module based on the receiving of the value.
-
-
10. The method of claim 1 wherein at least some of the state server modules generate values for additional state attributes of a current state other than for the user and send those generated values to the intermediary module, and wherein the intermediary module additionally sends received values for the additional state attributes to state client modules based on requests from those state client modules for the received values.
-
11. A method in a computer for providing information about a current state that is modeled with multiple state attributes, the method comprising:
-
under control of an attribute request receiver component of an intermediary module executing in memory, receiving from a module a request related to the modeling of the current state with the multiple state attributes; and
under control of an attribute request satisfier component of the intermediary module executing in memory and without further intervention related to the request by the module, determining that the request cannot currently be satisfied, and indicating to the module that the request cannot currently be satisfied;
after the indicating, monitoring at later times to determine whether the request can be satisfied; and
when it is determined at one of the later times that the request can currently be satisfied, indicating to the module that the request can be satisfied. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59)
receiving from the module an indication of a condition related to a value of one of the state attributes such that the module desires to know when the condition has been satisfied;
detecting changes in the value of the one state attribute to determine whether the condition is satisfied; and
when it is determined that the condition is satisfied, notifying the module that the condition is satisfied.
-
-
14. The method of claim 13 wherein the condition relates to the one state attribute having a specified value.
-
15. The method of claim 13 wherein the detecting of the changes in the value of the one state attribute includes creating a condition monitor to detect satisfaction of the indicated condition.
-
16. The method of claim 11 wherein the module is a source of values for at least one of the state attributes.
-
17. The method of claim 11 wherein the module is a consumer of values for at least one of the state attributes.
-
18. The method of claim 11 wherein the request is from a client module for a value of a specified state attribute such that no sources are currently available to supply values for the specified state attribute value.
-
19. The method of claim 18 wherein the monitoring involves detecting when a value for the specified state attribute is received.
-
20. The method of claim 18 wherein the monitoring involves detecting when a source indicates an ability to supply values for the specified state attribute.
-
21. The method of claim 18 wherein the indicating to the client module that the request can be satisfied involves sending the requested value to the client module.
-
22. The method of claim 11 wherein the request is from a client module for a value of a specified state attribute that satisfies a specified criteria, and wherein each of the sources currently available to supply values for the specified state attribute are unable to supply a value for the specified state attribute that satisfies the specified criteria.
-
23. The method of claim 22 wherein the monitoring involves detecting when a value for the specified state attribute is received.
-
24. The method of claim 22 wherein the monitoring involves repeatedly requesting at least one of the sources to supply a value for the specified state attribute.
-
25. The method of claim 22 wherein the specified criteria is that the requested value come from a specified source that is not currently available to supply state attribute values, and wherein the monitoring involves detecting that the specified source is able to supply values for the specified state attribute.
-
26. The method of claim 11 wherein the request is from a source module to send a supplied value of a state attribute to a specified client that is not currently available to receive state attribute values.
-
27. The method of claim 26 wherein the determining that the request can be satisfied is based on receiving a request from the specified client for a value of the state attribute.
-
28. The method of claim 11 wherein the request is from a source module to send a supplied value of a specified state attribute to at least one client, the receiving of the request at a time when no clients that have an interest in receiving values for the specified state attribute are currently available to receive values for the specified state attribute.
-
29. The method of claim 28 wherein the determining that the request can be satisfied is based on receiving an indication from a client of an interest in receiving at least one value for the specified state attribute.
-
30. The method of claim 11 wherein the computer has access to various devices, and wherein the request is for access to a device.
-
31. The method of claim 30 wherein the device is an input device of the computer.
-
32. The method of claim 30 wherein the device is an output device of the computer.
-
33. The method of claim 30 wherein the device is a remote device.
-
34. The method of claim 11 wherein the request is for access to a group of themed attributes.
-
35. The method of claim 34 wherein the determining that the request can be satisfied is based on one or more sources being executed that are able to supply values for the themed attributes of the group.
-
36. The method of claim 11 wherein the providing of the information about the current state is performed by a characterization module, and wherein the request is for access to other functionality provided by the characterization module.
-
37. The method of claim 36 wherein the other functionality is a specified mediator, and wherein the determining that the request can be satisfied is based on loading of software that when executed will provide mediating for the specified mediator.
-
38. The method of claim 11 wherein the request is to be notified when a specified criteria is satisfied, and wherein the determining that the request cannot currently be satisfied is based on the specified criteria not being satisfied at the time of the receiving of the request.
-
39. The method of claim 38 wherein the indicating to the module that the request cannot currently be satisfied is performed by not notifying the module that the request is satisfied.
-
40. The method of claim 38 wherein the specified criteria is availability or unavailability of a source for supplying values of a specified state attribute.
-
41. The method of claim 38 wherein the specified criteria is availability or unavailability of a specified source for supplying values of at least one state attribute.
-
42. The method of claim 38 wherein the specified criteria is availability or unavailability of a client for receiving values of a specified state attribute.
-
43. The method of claim 38 wherein the specified criteria is availability or unavailability of a specified client for receiving values of at least one state attribute.
-
44. The method of claim 38 wherein the specified criteria is availability or unavailability of a specified device.
-
45. The method of claim 28 wherein the specified criteria is availability or unavailability of specified other functionality.
-
46. The method of claim 31 wherein a module performing the method provides alternatives for at least one type of behavior, and wherein the specified criteria is a change in a value for at least one of the types of behavior.
-
47. The method of claim 38 wherein the specified criteria is a change in a value of a specified state attribute.
-
48. The method of claim 38 wherein the request includes an indication of a number of times that the satisfaction of the specified criteria is to occur.
-
49. The method of claim 38 wherein the specified criteria includes an occurrence of a specified type.
-
50. The method of claim 11 wherein the state attributes represent information about a user of the computer.
-
51. The method of claim 50 wherein the represented information reflects a modeled mental state of the user.
-
52. The method of claim 11 wherein the state attributes represent information about the computer.
-
53. The method of claim 11 wherein the state attributes represent information about a physical environment.
-
54. The method of claim 11 wherein the state attributes represent information about a cyber-environment of a user of the computer.
-
55. The method of claim 11 wherein the state attributes represent current predictions about a future state.
-
56. The method of claim 11 wherein receiving of a state attribute value by the module prompts the module to present information to a user of the module.
-
57. The method of claim 11 wherein receiving of the indication that the request can be satisfied prompts the module to present information to a user of the module.
-
58. The method of claim 11 including:
-
receiving from the module an indication of a notification request such that the module desires to be notified when an occurrence of a specified event is detected;
after the receiving of the indication, detecting an occurrence of the specified event; and
in response to the detecting, notifying the module of the occurrence of the specified event.
-
-
59. The method of claim 58 wherein the detecting of the occurrence of the specified event includes analyzing information that is received.
-
60. A computer-readable medium whose contents when executed cause a computing device to provide information about a current state that is represented with multiple attributes, by performing a method comprising:
-
receiving from a module a request related to modeling of the current state with the multiple attributes; and
without further input from the module related to the request, indicating to the module a determination that the request cannot currently be satisfied;
after the indicating, monitoring to determine whether the request can be satisfied; and
when it is determined that the request can currently be satisfied, indicating to the module that the request can be satisfied, and wherein the receiving of the request is performed by an attribute request receiver component, wherein the indicating of the determination and the monitoring and the indicating that the request can be satisfied are performed by an attribute request satisfier component, and wherein the attribute request receiver component and the attribute request satisfier component are part of an intermediary module executing in memory. - View Dependent Claims (61)
-
-
62. A computing device for providing information about a current state that is represented with multiple attributes, comprising:
-
an attribute request receiver component that is capable of receiving from a module a request related to modeling of a current state with multiple state attributes; and
an attribute request satisfier component that is capable of, without further input from the module related to the request, indicating to the module a determination that the request cannot currently be satisfied, automatically monitoring to determine whether the request can be satisfied after the indicating, and indicating to the module that the request can be satisfied after it is determined that the request can currently be satisfied, and wherein the attribute request receiver component and the attribute request satisfier component are part of an intermediary module executing in memory. - View Dependent Claims (63)
-
-
64. A computing device for providing information about a current state that is represented with multiple attributes, comprising:
-
means for, under control of an attribute request receiver component of an intermediary module executing in memory, receiving from a module a request related to modeling of the current state with the multiple attributes; and
means for, under control of an attribute request satisfier component of the intermediary module executing in memory and without further input from the module related to the request, indicating to the module a determination that the request cannot currently be satisfied, automatically monitoring to determine whether the request can be satisfied after the indicating, and indicating to the module that the request can be satisfied after it is determined that the request can currently be satisfied.
-
Specification