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.
- 2. The method of claim 1 wherein the received indication from the first state server module includes a value for the first state attribute, and wherein the notifying of the first state client module includes sending the received value to the first state client module.
- 3. The method of claim 1 including, under the control of the intermediary module:
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:
receiving from a module a request related to the modeling of the current state with the multiple state attributes; 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.
- 12. The method of claim 11 wherein the monitoring includes detecting changes in status of the modeling of the current state.
- 13. The method of claim 11 including:
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 11 wherein the module is a source of values for at least one of the state attributes.
- 16. The method of claim 11 wherein the module is a consumer of values for at least one of the state attributes.
- 17. 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.
- 18. The method of claim 17 wherein the monitoring involves detecting when a value for the specified state attribute is received.
- 19. The method of claim 17 wherein the monitoring involves detecting when a source indicates an ability to supply values for the specified state attribute.
- 20. The method of claim 17 wherein the indicating to the client module that the request can be satisfied involves sending the requested value to the client module.
- 21. 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.
- 22. The method of claim 21 wherein the monitoring involves detecting when a value for the specified state attribute is received.
- 23. The method of claim 21 wherein the monitoring involves repeatedly requesting at least one of the sources to supply a value for the specified state attribute.
- 24. The method of claim 21 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.
- 25. 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.
- 26. The method of claim 25 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.
- 27. 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.
- 28. The method of claim 27 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.
- 29. The method of claim 11 wherein the computer has access to various devices, and wherein the request is for access to a device.
- 30. The method of claim 29 wherein the device is an input device of the computer.
- 31. The method of claim 29 wherein the device is an output device of the computer.
- 32. The method of claim 29 wherein the device is a remote device.
- 33. The method of claim 11 wherein the request is for access to a group of themed attributes.
- 34. The method of claim 33 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.
- 35. 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.
- 36. The method of claim 35 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.
- 37. 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.
- 38. The method of claim 37 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.
- 39. The method of claim 37 wherein the specified criteria is availability or unavailability of a source for supplying values of a specified state attribute.
- 40. The method of claim 37 wherein the specified criteria is availability or unavailability of a specified source for supplying values of at least one state attribute.
- 41. The method of claim 37 wherein the specified criteria is availability or unavailability of a client for receiving values of a specified state attribute.
- 42. The method of claim 37 wherein the specified criteria is availability or unavailability of a specified client for receiving values of at least one state attribute.
- 43. The method of claim 37 wherein the specified criteria is availability or unavailability of a specified device.
- 44. The method of claim 37 wherein the specified criteria is availability or unavailability of specified other functionality.
- 45. The method of claim 37 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.
- 46. The method of claim 37 wherein the specified criteria is a change in a value of a specified state attribute.
- 47. The method of claim 37 wherein the request includes an indication of a number of times that the satisfaction of the specified criteria is to occur.
- 48. The method of claim 11 wherein the state attributes represent information about a user of the computer.
- 49. The method of claim 48 wherein the represented information reflects a modeled mental state of the user.
- 50. The method of claim 111 wherein the state attributes represent information about the computer.
- 51. The method of claim 11 wherein the state attributes represent information about a physical environment.
- 52. The method of claim 11 wherein the state attributes represent information about a cyber-environment of a user of the computer.
- 53. The method of claim 11 wherein the state attributes represent current predictions about a future state.
- 54. 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.
- 55. 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.
- 56. 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:
receiving from a module a request related to the 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.
- 57. The computer-readable medium of claim 56 wherein the computer-readable medium is a memory of the computing device.
- 58. 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 the modeling of the current state with the 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.
- 59. The computing device of claim 58 wherein the attribute request receiver component and the attribute request satisfier component are part of an intermediary module executing in memory.
- 60. The computing device of claim 58 further comprising multiple sources and multiple clients executing in the memory.
- 61. A computing device for providing information about a current state that is represented with multiple attributes, comprising:
means for receiving from a module a request related to the modeling of the current state with the multiple state attributes; and means for, 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.
- 62. A method in a portable computer for providing information about a context that is modeled with multiple context attributes, comprising:
receiving from a first client an indication of an interest in receiving notification when a specified event that is related to at least one of the context attributes occurs; monitoring information related to the at least one context attributes for an indication of an occurrence of the specified event; and when the monitoring detects an indication of the occurrence of the specified event, notifying the first client of the occurrence.
- 63. The method of claim 62 wherein the context attributes represent information about a user of the portable computer.
- 64. The method of claim 62 wherein the context that is represented is a current context.
- 65. The method of claim 62 including:
receiving from the first client an indication of a condition related to a value of one of the context attributes such that the first client desires to know when the condition has been satisfied; monitoring changes in the value of the one context attribute to determine whether the condition is satisfied; and when it is determined that the condition is satisfied, notifying the first client that the condition is satisfied.
- 66. The method of claim 62 wherein the specified event is availability of a source for supplying values of a specified context attribute.
- 67. The method of claim 62 wherein the specified event is availability of a specified source for supplying values of at least one context attribute.
- 68. The method of claim 62 wherein the received indication from the first client additionally specifies circumstances related to the event such that the notifying is to be performed only if the circumstances are satisfied by the occurrence of the event.
- 69. The method of claim 62 wherein receiving of the notification by the first client prompts the first client to present information to a user of the first client.
- 70. A computer-readable medium containing instructions that when executed cause a computing device to provide information about a context that is modeled with multiple context attributes, by:
receiving from a first client an indication of an interest in receiving notification when a specified event that is related to at least one of the context attributes occurs; monitoring information related to the at least one context attributes for an indication of an occurrence of the specified event; and when the monitoring detects an indication of the occurrence of the specified event, notifying the first client of the occurrence.
- 71. A portable computer for providing information about a context that is represented with multiple attributes, comprising:
a notification input module that is capable of receiving from a first client an indication of an interest in receiving notification when a specified event that is related to at least one of the context attributes occurs; and a notifier module that is capable of monitoring information related to the at least one context attributes for an indication of an occurrence of the specified event, and of notifying the first client of the occurrence after the monitoring detects an indication of the occurrence of the specified event.
- 72. A method in a computer for providing information about a state that is modeled with multiple state attributes, comprising:
monitoring activities of a module related to at least one of the state attributes; and automatically and without other input from the module,
determining based on the monitoring an event whose occurrence is of interest to the module; monitoring information related to state attributes for an indication of an occurrence of the event; and when the monitoring detects an indication of the occurrence of the event, notifying the module of the occurrence.
- 73. The method of claim 72 wherein the monitored activities of the module include supplying of values of state attributes to others or receiving of values of state attributes from others, and wherein the determined event is related to availability of a value of at least one state attribute.
- 74. The method of claim 72 wherein the event is availability of a source for supplying values of a first state attribute.
- 75. The method of claim 72 wherein the state attributes represent information about a user of the computer.
- 76. A computer-implemented method for providing information about a current state that is modeled with multiple state attributes, the method comprising:
receiving an indication of an event that is related to at least one of the state attributes; determining that an occurrence of the event is of interest if criteria related to the event are satisfied by the occurrence; sending to an intermediary module an indication of the event and of the criteria; after an occurrence of the event that satisfies the criteria, receiving from the intermediary module a notification of the occurrence; and performing processing based on the received notification.
- 77. The method of claim 76 wherein the processing includes presenting information to a user.
- 78. The method of claim 76 wherein the state attributes represent information about a user of the computer.
- 79. The method of claim 76 including:
sending to the intermediary module an indication of a condition related to a value of at least one of the state attributes; and receiving an indication from the intermediary module that the condition is satisfied.
- 80. A computer-readable medium whose contents cause a computing device to provide information about a current state that is modeled with multiple state attributes, by:
determining that an occurrence of an event is of interest if criteria related to the event are satisfied by the occurrence, the event being related to at least one of the state attributes; sending to an intermediary module an indication of the event and of the criteria; after an occurrence of the event that satisfies the criteria, receiving from the intermediary module a notification of the occurrence; and performing processing based on the received notification.
- 81. A computing device for providing information about a current state that is modeled with multiple state attributes, comprising:
a first module capable of determining that an occurrence of an event is of interest if criteria related to the event are satisfied by the occurrence, the event being related to at least one of the state attributes, and of sending to an intermediary module an indication of the event and of the criteria; and a second module capable of, after an occurrence of the event that satisfies the criteria, receiving from the intermediary module a notification of the occurrence and performing processing based on the received notification.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 09/216,193, entitled “METHOD AND SYSTEM FOR CONTROLLING PRESENTATION OF INFORMATION TO A USER BASED ON THE USER'S CONDITION” and filed Dec. 18, 1998, and a continuation-in-part of U.S. patent application Ser. No. 09/464,659, entitled “STORING AND RECALLING INFORMATION TO AUGMENT HUMAN MEMORIES” and filed Dec. 15, 1999. Both of these applications are hereby incorporated by reference in their entirety.
[0002] This application also claims the benefit of provisional U.S. Patent Application No. 60/194,222 (Attorney Docket No. 294438022US), entitled “SUPPLYING NOTIFICATIONS RELATED TO SUPPLY AND CONSUMPTION OF USER CONTEXT DATA” and filed Apr. 2, 2000, and of provisional U.S. Patent Application No. 60/193,999 (Attorney Docket No. 294438008US), entitled “OBTAINING AND USING CONTEXTUAL DATA FOR SELECTED TASKS OR SCENARIOS, SUCH AS FOR A WEARABLE PERSONAL COMPUTER” and filed Apr. 2, 2000. These applications are both hereby incorporated by reference in their entirety.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60194222 |
Apr 2000 |
US |
|
60193999 |
Apr 2000 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09724949 |
Nov 2000 |
US |
Child |
09878948 |
Jun 2001 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
09216193 |
Dec 1998 |
US |
Child |
09724949 |
Nov 2000 |
US |
Parent |
09464659 |
Dec 1999 |
US |
Child |
09724949 |
Nov 2000 |
US |