<%BANNER%>

Models and a Framework for Cyber Human Persuasion

Permanent Link: http://ufdc.ufl.edu/UFE0045008/00001

Material Information

Title: Models and a Framework for Cyber Human Persuasion
Physical Description: 1 online resource (260 p.)
Language: english
Creator: Lee, Duckki
Publisher: University of Florida
Place of Publication: Gainesville, Fla.
Publication Date: 2013

Subjects

Subjects / Keywords: assessment -- behavior -- change -- computing -- healthcare -- network -- persuasion -- persuasive -- recognition -- situation -- social
Computer and Information Science and Engineering -- Dissertations, Academic -- UF
Genre: Computer Engineering thesis, Ph.D.
bibliography   ( marcgt )
theses   ( marcgt )
government publication (state, provincial, terriorial, dependent)   ( marcgt )
born-digital   ( sobekcm )
Electronic Thesis or Dissertation

Notes

Abstract: With the emergence of mobile and pervasive computing, digital gadgets and products have become pervasive and are part of our lives. Every day, they influence us explicitly or implicitly. They are changing our way of life as well as our behaviors, either intentionally or unintentionally. Throughout the past decade, research has been conducted to make persuasion interactive rather than unilateral. The outcome is known today as persuasive computing technology.  There have been considerable efforts to apply persuasive technology in many domains, especially in the healthcare domain. Although these efforts to implement persuasive technologies are gradually coming to fruition, several problems and challenges remain to be addressed and overcome.   Most currently available persuasive systems were not based on explicit theoretical foundations of persuasion theories and models when they were developed, which is due to two major reasons: (1) there is a general lack of theoretical frameworks and practical methodologies for building persuasive systems or applications, and (2) it is difficult for computer scientists and developers to understand and harness persuasion theories and models. Another problem is that most current persuasive systems have major limitations, which is their lack of adaptability to changes in a user’s situation. This is mainly because of a lack of systematic assessment methodology of user behavior response to persuasive influence. We propose two responses to these challenges in the field.  In order to address the lack of accessible theoretical frameworks for developing persuasive systems, we have developed a new behavior change model that can be utilized by computer scientists and developers. In regards to the lack of a systematic assessment methodology of user behavior response to persuasive influence, we propose a new assessment methodology—Assess Tree—that provides domain-specific behavior assessment. We validate the Assess Tree and the behavior change model through a trace-driven simulation as well as through a scenario-driven case study in the domain of elder care.
General Note: In the series University of Florida Digital Collections.
General Note: Includes vita.
Bibliography: Includes bibliographical references.
Source of Description: Description based on online resource; title from PDF title page.
Source of Description: This bibliographic record is available under the Creative Commons CC0 public domain dedication. The University of Florida Libraries, as creator of this bibliographic record, has waived all rights to it worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.
Statement of Responsibility: by Duckki Lee.
Thesis: Thesis (Ph.D.)--University of Florida, 2013.
Local: Adviser: Helal, Abdelsalam Ali.

Record Information

Source Institution: UFRGP
Rights Management: Applicable rights reserved.
Classification: lcc - LD1780 2013
System ID: UFE0045008:00001

Permanent Link: http://ufdc.ufl.edu/UFE0045008/00001

Material Information

Title: Models and a Framework for Cyber Human Persuasion
Physical Description: 1 online resource (260 p.)
Language: english
Creator: Lee, Duckki
Publisher: University of Florida
Place of Publication: Gainesville, Fla.
Publication Date: 2013

Subjects

Subjects / Keywords: assessment -- behavior -- change -- computing -- healthcare -- network -- persuasion -- persuasive -- recognition -- situation -- social
Computer and Information Science and Engineering -- Dissertations, Academic -- UF
Genre: Computer Engineering thesis, Ph.D.
bibliography   ( marcgt )
theses   ( marcgt )
government publication (state, provincial, terriorial, dependent)   ( marcgt )
born-digital   ( sobekcm )
Electronic Thesis or Dissertation

Notes

Abstract: With the emergence of mobile and pervasive computing, digital gadgets and products have become pervasive and are part of our lives. Every day, they influence us explicitly or implicitly. They are changing our way of life as well as our behaviors, either intentionally or unintentionally. Throughout the past decade, research has been conducted to make persuasion interactive rather than unilateral. The outcome is known today as persuasive computing technology.  There have been considerable efforts to apply persuasive technology in many domains, especially in the healthcare domain. Although these efforts to implement persuasive technologies are gradually coming to fruition, several problems and challenges remain to be addressed and overcome.   Most currently available persuasive systems were not based on explicit theoretical foundations of persuasion theories and models when they were developed, which is due to two major reasons: (1) there is a general lack of theoretical frameworks and practical methodologies for building persuasive systems or applications, and (2) it is difficult for computer scientists and developers to understand and harness persuasion theories and models. Another problem is that most current persuasive systems have major limitations, which is their lack of adaptability to changes in a user’s situation. This is mainly because of a lack of systematic assessment methodology of user behavior response to persuasive influence. We propose two responses to these challenges in the field.  In order to address the lack of accessible theoretical frameworks for developing persuasive systems, we have developed a new behavior change model that can be utilized by computer scientists and developers. In regards to the lack of a systematic assessment methodology of user behavior response to persuasive influence, we propose a new assessment methodology—Assess Tree—that provides domain-specific behavior assessment. We validate the Assess Tree and the behavior change model through a trace-driven simulation as well as through a scenario-driven case study in the domain of elder care.
General Note: In the series University of Florida Digital Collections.
General Note: Includes vita.
Bibliography: Includes bibliographical references.
Source of Description: Description based on online resource; title from PDF title page.
Source of Description: This bibliographic record is available under the Creative Commons CC0 public domain dedication. The University of Florida Libraries, as creator of this bibliographic record, has waived all rights to it worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.
Statement of Responsibility: by Duckki Lee.
Thesis: Thesis (Ph.D.)--University of Florida, 2013.
Local: Adviser: Helal, Abdelsalam Ali.

Record Information

Source Institution: UFRGP
Rights Management: Applicable rights reserved.
Classification: lcc - LD1780 2013
System ID: UFE0045008:00001


This item has the following downloads:


Full Text

PAGE 1

1 MODELS AND A FRAMEWORK FOR CYBER HUMAN PERSUASION By DUCKKI LEE A DISSERTATION PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF DOCTOR OF PHILOSOP HY UNIVERSITY OF FLORIDA 2013

PAGE 2

2 2013 Duckki Lee

PAGE 3

3 To my p arents

PAGE 4

4 ACKNOWLEDGMENTS First, I would like to express my sincere gratitude to my advisor, Dr. Sumi Helal, for his continuous support of my P hD study and research, as well as his patience, motivation, enthusiasm, and immense knowledge. Without his support and guidance, this dissertation would not be complete. I would also like to thank my supervisory committee me mbers, Dr. Shigang Chen, Dr. Pr a bhat Mishra, Dr. Douglas Dankel, and Dr. Stephen Anton, for their valuable time, effort, and advice. Also, I would like to give my deepest gratitude to my parents, Dongman Lee and Pansun Han, for their unconditional love and support. Furthermore, I would l ike to thank all my colleagues in the Mobile and Pervasive Computing Lab, especially Dr. Yunsick Sung, who helped me validate the Assess Tree. Special thanks go to Chao Chen for his support and encouragement, a nd I extend many thanks to Eunju Kim and Jae W oong Lee for their help and support. Last but not least, I thank all my friends. Special appreciation goes to Young In Yeo for his continuous support, help, and encouragement.

PAGE 5

5 TABLE OF CONTENTS page TABLE OF CONTENTS ................................ ................................ ................................ .. 5 LIST OF FIGURES ................................ ................................ ................................ .......... 8 LIST OF ABBREVIATIONS ................................ ................................ ........................... 10 CHAPTER 1 INTRODUCTION ................................ ................................ ................................ .... 13 2 PROBLEMS AND LIMITATIONS OF EXISTING PERSUASIVE SYSTEMS .......... 16 Problem Definition ................................ ................................ ................................ .. 16 Scenario 1 ................................ ................................ ................................ ........ 16 Scenario 2 ................................ ................................ ................................ ........ 17 Limitations of Existing Persuasive Systems ................................ ............................ 18 UbiFit ................................ ................................ ................................ ................ 18 Playful Toothbrush ................................ ................................ ........................... 19 Playful Bottle ................................ ................................ ................................ .... 20 HappinessCounter ................................ ................................ ............................ 21 3 USER BEHAVIOR AND SITUATION MODELING ................................ .................. 24 Action based Behavior Model ................................ ................................ ................. 24 Situation ................................ ................................ ................................ .................. 27 Formal Definition of Situation ................................ ................................ ........... 30 Definition 1. User Activity ................................ ................................ ........... 30 ................................ ................ 30 Definition 3. Intention ................................ ................................ ................. 31 Definition 4. Context ................................ ................................ ................... 31 Definition 5. Situation ................................ ................................ ................. 31 Situation Composition ................................ ................................ ...................... 32 Measuring the Effectiveness of Active Action (Cyber Action) ........................... 34 Situation Trace ................................ ................................ ................................ ........ 35 4 ASSESS TREE ................................ ................................ ................................ ....... 37 Behavior Measurement Type ................................ ................................ .................. 40 Intersection of BMT and CBMT ................................ ................................ ............... 41 Formal Defin ition of Behavior Space, Situation Space and Cyber Space ............... 42 Definition 1. Behavior Space ................................ ................................ ............ 42 Definition 2. Situation Space ................................ ................................ ............ 43 Definition 3. Cyber Space ................................ ................................ ................. 43

PAGE 6

6 Role and Methodology in Behavior Space, Situation Space and Cyber Space ................................ ................................ ................................ ............ 4 3 Formal Definition of Situation Recognition ................................ .............................. 45 Definition 1. Situation Representation ................................ .............................. 46 Def inition 2. Situation Recognition ................................ ................................ .... 47 Three functions defined ................................ ................................ ............. 47 Two functions defined ................................ ................................ ................ 48 One function is defined ................................ ................................ .............. 50 Composed Situation Recognition ................................ ............................... 50 Evaluation of Situation Recognition Algorit hm ................................ ........................ 51 Assess Tree Operation ................................ ................................ ........................... 52 P Node ................................ ................................ ................................ ............. 52 N Node ................................ ................................ ................................ ............. 54 Operators ................................ ................................ ................................ ......... 54 Assessment Algorithm ................................ ................................ ............................ 57 Implementation ................................ ................................ ................................ ....... 63 5 VALIDATION OF THE ASSESS TREE ................................ ................................ ... 67 Trace Generation ................................ ................................ ................................ .... 69 Experiment I ................................ ................................ ................................ ..... 75 Experiment II ................................ ................................ ................................ .... 78 6 CASE STUDY ................................ ................................ ................................ ......... 81 The Application the Human Centric Ubicomp Re quiring Persuasion ................... 81 Background ................................ ................................ ................................ ...... 81 Limitation of Current Telehealth System ................................ ........................... 82 The Case Study: Participatory Telehealth System ................................ ........... 83 Implementation of Participatory Telehealth Case Study ............................ 85 Illus trative Scenario ................................ ................................ .................... 86 Limitation ................................ ................................ ................................ .... 87 Action based Behavior Model Instance for Participatory Telehealth ................ 87 Illustrative Scenario ................................ ................................ .......................... 89 7 CONCLUSION ................................ ................................ ................................ ........ 94 APPENDIX A ASSESS TREE IMPLEMENTATION ................................ ................................ ...... 97 B TRACE GENERATOR IMPLEMENTATION ................................ ......................... 242 C LIST OF REFERENCES ................................ ................................ ....................... 255 BIOGRAPHI CAL SKETCH ................................ ................................ .......................... 260

PAGE 7

7 LIST OF TABLES Table page 4 1 Behavior Measurement Type Example ................................ ............................... 41 4 2 Combined Behavior Measurement Type Example ................................ ............. 41 4 3 Truth Table of Quorum based Decision ................................ .............................. 47 4 4 Single Value Examples ................................ ................................ ................ 53 4 5 Combined Value Examples ................................ ................................ .......... 53 4 6 Assess Tree Operators ................................ ................................ ....................... 55 5 1 Profile ................................ ................................ ................................ ................. 68 5 2 Device, Activity and Context Artifacts ................................ ................................ 68 5 3 P/N Node Setting ................................ ................................ ................................ 69 5 4 Sub Driver and Situations Mapping Table ................................ .......................... 71 5 5 Sub Driver W Parameter ................................ ................................ .................... 71 5 6 Sub Driver G Parame ter ................................ ................................ ..................... 73 5 7 Sub Driver M Parameter ................................ ................................ ..................... 74 5 8 Sub Driver S Parameter ................................ ................................ ..................... 75 5 9 Person Setting ................................ ................................ ................................ .... 78 6 1 Instructions for Cyber Actions ................................ ................................ ............. 90 6 2 Device, Activity and Context Artifacts ................................ ................................ 90 6 3 P/N Node Setting ................................ ................................ ................................ 91 6 4 Goal Setting Guideline and Recommendation ................................ .................... 92

PAGE 8

8 LIST OF FIGURES Figure page 2 1 UbiFit Application Running on a Smart Phone ................................ .................... 19 2 2 Playful Toothbrush System in Action ................................ ................................ .. 20 2 3 Playful Bottle ................................ ................................ ................................ ....... 21 2 4 HappinessCounter ................................ ................................ .............................. 22 3 1 Action Based Behavior Model ................................ ................................ ............ 26 3 2 Multi level Situation Composition Examples. (A) Multi level AP Composition. (B) Multi level PP Composition ................................ ................................ ........... 33 3 3 Measuring the Effectiveness of Active Action ................................ ..................... 34 3 4 Situation Trace State Transition ................................ ................................ ......... 36 4 1 Assess Tree ................................ ................................ ................................ ........ 38 4 2 Situation Examples. (A) P Node Example. (B) N Node Example ........................ 39 4 3 Intersection of Behavior Measurement Type ................................ ...................... 41 4 4 Intersection of Combined Behavior Measurement Type ................................ ..... 42 4 5 Behavior Space ................................ ................................ ................................ .. 42 4 6 Situation Space ................................ ................................ ................................ .. 43 4 7 Role and Methodology in Behavior, Situation and Cyber Space ........................ 45 4 8 Performance Comparison between Nave and Quorum based Situation Recognition ................................ ................................ ................................ ......... 51 4 9 Performance Comparison between Nave and Fuzzy based Situation Recognition ................................ ................................ ................................ ......... 52 4 10 Assess Tree with Operators ................................ ................................ ............... 56 4 11 Assess Tree Assessment Algorithm ................................ ................................ ... 58 4 12 Situation Recognition Algorithm ................................ ................................ .......... 59 4 13 Assess Update Algorithm ................................ ................................ ................... 59

PAGE 9

9 4 14 Assess Propagate Algorithm ................................ ................................ .............. 60 4 15 Assess Algorithm ................................ ................................ ................................ 61 4 16 Assess Flow Chart ................................ ................................ .............................. 62 4 17 Algorithm for Checking Adequacy of P Node and N Node Children ................... 63 4 18 Assess Tree Architecture ................................ ................................ ................... 65 4 19 DataSet.xml ................................ ................................ ................................ ........ 66 5 1 Trace Generator Architecture ................................ ................................ ............. 70 5 2 Sub driver W Flow Chart ................................ ................................ .................... 72 5 3 Sub driver G Flow Chart ................................ ................................ ..................... 73 5 4 Sub driver M Flow Chart ................................ ................................ ..................... 74 5 5 Sub driver S Flow Chart ................................ ................................ ..................... 75 5 6 Assess Tree Assessment Result of Step wise Compliance (5 Days) ................. 76 5 7 Assess Tree Assessment Result of Step wise Compliance (100 Days) ............. 77 5 8 Assess Tree Assessment Result of Steady Compliance ................................ .... 77 5 9 Assess Tree Assessment Result of Person1 ................................ ...................... 79 5 10 Assess Tree Assessment Result of Person2 ................................ ...................... 79 5 11 Assess Tree Assessment Result of Person3 ................................ ...................... 80 6 1 A Framework for Participatory Telehealth ................................ .......................... 84 6 2 A Participatory Telehealth S ystem Architecture ................................ .................. 86 6 3 Architecture for Persuasion enabled Participatory Telehealth ............................ 89

PAGE 10

10 LIST OF ABBREVIATIONS ABM Action based Behavior Model AT Assess Tree SR Situation Recognition BMT Behavior Measurement Type CBMT Combined Behavior Measurement Type XML Extensible Markup Language API Application Programming Interface

PAGE 11

11 Abstract of Dissertation Presented to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy MODELS AND A FRAMEWORK FOR CYBER HUMAN PERSUASION By Duckki Lee May 2013 Chair: Abdelsalam (Sumi) Helal Major: Computer Engineering With the emergence of mobile and perva sive computing, digital gadgets and products have become pervasive and are part of our lives. Every day, they influence us explicitly or implicitly. They are changing our way of life as well as our behaviors, either intentionally or unintentionally. Throug hout the past decade, research has been conducted to make persuasion interactive rather than unilateral. The outcome is known today as persuasive computing technology. There have been considerable efforts to apply persuasive technology in many domains, esp ecially in the healthcare domain. Although these efforts to implement persuasive technologies are gradually coming to fruition, several problems and challenges remain to be addressed and overcome. Most currently available persuasive systems were not based on explicit theoretical foundations of persuasion theories and models when they were developed, which is due to two major reasons: (1) there is a general lack of theoretical frameworks and practical methodologies for building persuasive systems or applica tions, and (2) it is difficult for computer scientists and developers to understand and harness persuasion theories and models. Another problem is that most current persuasive systems have

PAGE 12

12 major limitations, which is their lack of adaptability to changes i is mainly because of a lack of systematic assessment methodology of user behavior response to persuasive influence. We propose two responses to these challenges in the field. In order to address the lack of accessible theoretical frameworks for developing persuasive systems, we have developed a new behavior change model that can be utilized by computer scientists and developers. In regards to the lack of a systematic assessment methodology of user behavior response to persuasive i nfluence, we propose a new assessment methodology A ssess Tree that provides domain specific behavior assessment. We validate the Assess Tree and the behavior change model through a trace driven simulation as well as through a scenario driven case study in the domain of elder care.

PAGE 13

13 CHAPTER 1 INTRODUCTION Persuasion is pervasive and i s part of our lives. W e are influenced either by explicit or implicit persuasive messages every day Mass media, including newspapers, radio, and television, have been used a s major means to deliver persuasive messages to purchase product s and influence, or change our beliefs. With the emergence of mobile and pervasive computing, computing technologies and products (e.g., email, web, high speed Internet, smart phones, mobile applications, and others) have become pervasive and are an essential part of our lives. Every day, they influence us explicitly and implicitly. They have changed our way of living and our behavior, either intentionally or unintentionally. Since we began u sing email, we do not wr ite letters very often and visit the post office much less frequently than before. After a variety of online chat programs became available, we have become more comfortable chatting online than talking on the phone. Because on deman d Internet video streaming is available, an increasing number of people are watching movies on the Internet rather than renting DVDs from the local store. In these ways, we have been affected consciously or unconsciously by computing technologies and prod ucts, and they have changed our behavior s Throughout the past decade, research has been conducted to make persuasion interactive rather than unilateral. The outcome is known today as persuasive technology. Fogg [ 37 ] defined persua sive technology as any interactive computing system which refers to computers as persuasive technologies and focuses on the design, research, and analysis of interactive comp

PAGE 14

14 attitudes and behavior. Fogg [ 35 ] described the potential benefits and pitfalls of persuasive technology, which has the potential to bring out constructive changes in many domains, includin g health, safety, and education. However, persuasive technology can be misused for destructive purposes, as the dark side of changing attitudes and behavior can lead to manipulation and coercion. Fogg [ 37 ] identified several advan tages of persuasive technology over human s who are considered to be strong persuaders. First, computers can be more persistent; humans cannot be as persistent as machines. Second, computers allow anonymity, which is important when sensitive issues are inv olved. Thi rd, computers can store, access and manipulate huge amounts of data. Fourth, computers can employ multiple modalities (e.g., graphics, rich audio and video, animation, simulation, or hyperlinked content). Fifth, computer software can be scaled up ; effective persuasive software can be easily replicated and distributed. Sixth, computers can be ubiquitous; they can be located even where hu man persuaders are not welcomed such as the bathroom or where humans cannot go. Because of these advantages, ther e have been considerable efforts to apply persuasive technology in many domains, especially in the healthcare domain. Although these efforts to implement persuasive technologies are gradually coming to fruition, several problems and challenges have arisen Most current persuasive systems were not based on explicit theoretical foundations of persuasion theories and models when they were developed, which is due to two major reasons. The first reason is that there is a general lack of theoretical frameworks a nd practical methodologies for building persuasive systems or applications. The second reason is

PAGE 15

15 that it is difficult for computer scientists and developers to understand and harness persuasion theories and models. Another problem is that most current pers uasive systems have major limitation s situation. This is mainly because of a lack of systematic assessment methodology of user behavior response to persuasive influence. We propose two responses to these challenges in the field. In order to address the lack of accessible theoretical frameworks for developing persuasive systems, we have developed a new behavior change model that can be utilized by computer scientists and developers. In regards to t he lack of a systematic assessment methodology of user behavior response to persuasive influence we propose a new assessment methodology Assess Tree that provides domain specific behavior assessment We validate the Assess Tree and the behavior change mod el through a trace driven simulation as well as through a scenario driven case study in the domain of elder care. The remainder of this proposal is o rganized into six chapters. In C hapter 2, we describe the problems and limitations of existing persuasive s ystems. In C hapter 3 w e present an action based behavior model (ABM) for providing persu asion template to application developers as well as new definition s of situation and situation trace as mechanisms to detect the need for persuasion and apply persuasi on strategies In C hapter 4, we present the Assess T ree (AT) formalism and algorithms for evaluating a ponsiveness and compliance including its implementation In Chapter 5 we validate AT using trace driven simulation. In Chapter 6, we present a scenario based

PAGE 16

16 case study as further validation and to show how ABM can be utilized to enable persuasion in telehealth system. We conclude this work in Chapter 7 CHAPTER 2 PROBLEMS AND LIMITATIONS OF EXISTING PERSUASIVE SYSTEMS In this chapter, we des cribe the problems of existing persuasive technology systems in the context of ubiquitous computing using scenarios and related work. Problem Definition The problem in existing persuasive systems is that they are not based on an explicit theoretical founda tion when they were developed due to either: (1) a lack of a theoretical framework and practical methodologies, or (2) difficulty for computer scientists, not to mention developers, to understand and utilize persuasion theories and models from the social a nd behavior s ciences and psychology domains. Another problem is that most current persuasive systems have major limitations, which is their syst ematic assessment met hodology for user behavior response to persuasive influence. We need a new model, formalism, structure and algorithms that can embody relevant theoretical frameworks in practical methodologies that can provide common and reusable mechanisms for persuasive system development. We demonstrate the p roblem through two scenarios, and then describe several existing persuasive systems and analyze their limitations. Scenario 1 James (developer) receives an order from ABC Health (customer), a comprehensive healthcar e company, to create a persuasive system for persuading a

PAGE 17

17 user to measure glucose levels regularly. Having no experience developing a system requiring persuasion, James does not know where to begin. Therefore, he searches the web to find relevant theories and knowledge to build a persuasive system. However, despite his efforts in trying to understand persuasion theories and models, he is still confused about which ones to use and how to apply them to an actual persuasive system. Scenario 2 Charley a custo mer of ABC Health, is an elderly patient who was recently diagnosed with diabetes He has difficulty checking his gluc ose levels regularly so he asks ABC Health if they have a system to help him. ABC Health has recently developed a system called PGlucoHeal th, which persuades a user to measure glucose level s regu larly. Charley obtains and starts to use PGlucoHealth In t he beginning, he is satisfied wit h PGlucoHealth, which informs him about the importance and benefits of checking glucose level s and reminds him when he needs to measure them After using PGlucoHealth for some time, Charley becomes more aware so he checks his glucose level regularly. However, he begins to get tired of using PGlucoHealth because it repeatedly informs him of the importance of ch ecking glucose level s regularly which he is well aware of, and it constantly reminds him to check his glucose level s even when he is doing well Charley contacts customer service and share s his experience. C ustomer service passes this story to James who is in the research team. James recognizes the need of me asuring user behavior response to make PGlucoHealth more adaptive. Then, he tries to find a way to assess user behavior response but he is not familiar with user behavior He finds difficult y in asses s ing how a user is aware of and how much inform is needed.

PAGE 18

18 Scenario 1 demonstrates the difficulties that developers face when programming and creating persuasive systems. S cenario 2 describes the need for a new user beh avior assessment methodology to s upport the rapid and efficient development of dynamic and ada ptive persuasive systems. Research and supportive technology are urgently needed to resolve such problems and satisfy the needs. Limitations of Existing Persuasive Systems There have been conside rable efforts to research and develop persuasive applications or systems. Some representative persuasive systems are described below. UbiFit UbiFit [ 38 ] is a mobile, persuasive technology developed to encourage individuals to self monitor their physical activity and incorporate regular and varied activity into everyday life. UbiFit targets individuals who have recognized the need to incorporate regular physical activity into their everyday lives but have not yet done so, at least n ot consistently. It consists of three components, which are a glanceable display, an interactive application, and a fitness device. The glanceable display uses a stylized, aesthetic representation of physical activities and goal attainment to keep the indi vidual focused on the act of self monitoring and her commitment to fitness. It resides on the whenever and wherever the phone is used. The interactive application which reside s activities and a journal in which activities can be added, edited, and deleted. Finally, the fitness device automatically infers and transmits information about several ty pes of activities walking, running, cycling, use of the elliptical trainer, and use of the stair machine to the glanceable display and interactive application. When the individual

PAGE 19

19 performs an activity, a flower blooms in his/her garden. If the user meets h is/her weekly goal, a large butterfly appears. Smaller butterflies indicate when goals were met for the attainments in her garden. They conducted a three month field experim ent that qualitatively to evaluate the effectiveness of the UbiFit system. The quantitative and qualitative results indicate that such displays can indeed be effective at raising awareness and potentially influencing behavior. Participants with the glanceable display could maintain their activity level, while the activity level for participants without the glanceable display dropped significantly. Photo courtesy of Con solvo, S., Klasnja, P., McDonald, D. W., Avrahami, D., Froehlich, J., LeG rand, L., Libby, R., Mosher, K. and Landay, J. Figure 2 1 UbiFit Application Running on a Smart Phone Playful Toothbrush Playful Toothbrush [ 39 ] targets to oth brushing behavior in kindergarten children and the goal is to teach proper brushing technique. The Playful toothbrush system has The two main components: (1) a vision based brushing tracker comprised of a web

PAGE 20

20 camera with a brush extension coded with LE D marker patterns; and (2) a brushing game presented on the LCD display which uses tooth brushing motions as game input. The LCD display shows the virtual image of plaq ued teeth displayed at the beginning of the game. Each correct brushing stroke recogniz ed by the brushing tracker causes one layer of plague to be removed from the teeth and each successful brushing stroke is indicated by a musical note on the progressive 7 note diatonic tone (Do Re Mi Fa So La Ti). They conducted a user study with 13 kinder garten children. The user study indicated that playful toothbrush improves the tooth brushing skills of kindergarten children within a short training period. Photo courtesy of Chang, Y., Lo, J., Huang, C., Hsu, N., Chu, H., Wang, H., Chi, P. and Hsieh, Y Figure 2 2 Playful Toothbrush System in Action Playful Bottle Playful Bottle [ 40 ] is a mobile social persuasion system to motivate office workers to drink healthy quantities of water. A camera and accelerometer sensors in the p hone

PAGE 21

21 are used to build a vision/motion based water intake tracker to detect the amount and regularity of water consumed by the user. Additionally, the phone includes hydration games in which natural drinking actions are used as game input. They developed t wo hydration games: a single user TreeGame with automated computer reminders and a multi user ForestGame with computer mediated social reminders from members of the group playing the game. They conducted a 7 week user study with 16 test subjects. The resul ts suggest that both hydration games are effective for encouraging adequate and regular water intake by users. Additionally, results of this study suggest that adding social reminders to the hydration game is more effective than system reminders alone. P hoto courtesy of Chiu, M.C., et al Figure 2 3 Playful Bottle HappinessCounter HappinessCounter [ 41 splays visual

PAGE 22

22 They combined the HappinessCounter with an electric magnet and attached it to the ss to the refrigerator if the user does not smile. The HappinessCounter combines visual smile recognition, user feedback, and network communication. They conducted two trials with HappinessCounter with a single occupant and a couple living together. The r esults show that the participants smiled more than before and the system improved the their mood. Photo courtesy of Tsujita, H. and Rekimoto, J. Figure 2 4 HappinessCounter All the persuasive systems introduced were designed and hard wired to achieve specific goals. They have been shown to be effective through user studies. However, due to a lack of systematic assessment methodology, these systems are vulnerable to thus rending the systems inefficient In addition, many o f these systems do not rely on an explicit foundation of persuasion theories and models

PAGE 23

23 even though they utilize one or tw o theories. Future systems can be made more effective if th ey have a strong theoretical foundation of persuasion theories and models.

PAGE 24

24 CHAPTER 3 USER BEHAVIOR AND SITUATION MODELING This chapter introduces the Act ion based Behavior Model (ABM), s ituation and situation trace The Action based Behavior Model is intended as a persuasion template designed by incorporating several persuasion computer scientists can understand and utilize. New definitions of situation and situation trace mechanisms are introduced to detect persuasion needs and keep track of changing needs as well as changes in how a user resp onds to persuasive influence. Action based Behavior Model Existing behavioral m odification theories and models [ 24 34 ] from the behavior science domain attempt to explain how people change their behaviors. Each theory and model focuses on different factors such as self efficacy, intention, social, environmental and personal factors. However, these models are not easily utilized as is by health telematics researchers, including engineering and computer scient ists because they are not in a form that they can understand and take action on it We contribute a behavior change model that is palatable and utilizable to the health t elematics researcher community. The model is based on the collective knowledge gained by studying social and behavioral science theories. Specifically, an Action based Behavior Model (ABM) is pr oposed as a persuasion template a for m that computer scientists can understand and utilize. In this m odel, the user awareness of their condition s is increased by informing them about their current health status. This should increase their motivatio n by giving them reasons to change. Ne xt, goals are set. In this step several types of goal setting strategies are utilized: self setting, assigned, pa rticipatory [ 49 ], as well as guided and group setting [ 50 ]. This process allows the users to understand the details of the

PAGE 25

25 goals and the benefits of achieving them. Then, users are educated about how to ach ieve those goals. The next step in the model is reminding the users to act toward the goals. Even if the users are highly motivated and are capable of acting to achieve the goals, they may simply forget. There are two manifestations of the reminding proces s. The first manifestation reminds the users to get started acting towards the goal. The second reminder strategy is deployed gradually, informing users of their progress towards their goals. The final step is rewarding based on the achievement progress. R ewarding can be intrinsic (e.g., praise), extrinsic (e.g., gifts, credit, gift cards) or virtual reward (e.g. virtual credit as well practiced in game). In our proposed ABM shown in Figure 3 1 each step (represented as a rectangle) is an action and a sta te, which can be easily understood and applied to some technological intervention channels. The model consists of a cyber system and a set of user actions. The cyber system is further divided into cyber s ense and cyber i nfluence to sense and influence exa ctly the set of actions prescribed by our model. The possible influence include: inform, exemplif y, simulate (e.g., play of what if scenarios) [ 51 ], tai lor, educate, remind, monitor, morally support, analyze and observe These act ion s are shown above the influence/sense arrows in Figure 3 1. Some influence acts may support different actions. For example, simulation increases awareness and provides effecti ve education through a virtual experience. In our model, cyber s ense learn s general senses any relevant vital and status information. It also learns once (initially) a Cyber i nfluence, on the other hand, is where

PAGE 26

26 technological channels are used to deliver and affect controlled persuasion, within ethical guidelines [ 52 ]. Actions in the model consist of human actions (solid rectangles) and cyber ac tions (dotted rectangles). The intuition behind our model is that we designed it so that we guarantee progress of persuasion as the user (guided by the cyber system) steps through it. In fact, each human (and one cyber) action increases persuasion through one or more of its elements (motivation, ability and trigger) [ 36 ]. Figure 3 1 shows which element is contributed to by which action (see Figure 3 1 legend). Figure 3 1 Action Based Behavior Model Cyber i nfluence will affect and help the user to take each action. As the user works toward the goals, cyber s ense

PAGE 27

27 rounds of acting, the Asses s cyber action will evaluate the achievements of the goals and will advise the user to ei ther continue, or roll back the user to the appropriate action based on the achievement and deficit of each action. Such roll backs create loops in the model, which we call reinforcement loops. For positive achievements, the Reward cyber action may give intrinsic, extrinsic or virtual rewards to reinforce the motivation Cyber s ense is easy However, in our model, we assume capabilities to sense not only vital, but als o, actions, activities and even more complex sentience that we call situation (defined in the following section). This requires availability for activity models, activity recognition algorithm s, as well as situation model s and situation recognition algorit hm s The latter is proposed in C hapter 4 Cyber i nfluence requires both actuation and persuasion. While actuation is straight forward (e.g., delivery of a reminder to a TV set or a mobile phone), persuasion is tric ky and complicated. As a template to be us ed by programmers, t he model is not compli cated except for the Assess cyber action However, we propose a sub template for the Assess cyber action to further streamline and support development of the persuasive system. The Assess cyber action t emplate reli es centrally on the notion of situation as a sentience that indicates a need for persuasion, and that measures the exact level to which persuasion (and hence compliance) is achieved. Now, we discuss situation and situation trace as a mechanism to detect pe rsuasion needs and keep track of changing needs as well as changes in how a user responds to persuasive influence. Situation Research on situation awareness has a long history involving several research communities Many definitions of situation a wareness have been developed; some are

PAGE 28

28 closely tied to the aircraft domain [ 57 ], while others are more general [ 58 ]. Among 44 ] is widely a ccepted. Endsley [ 44 ] defined situation awareness as the perception of elements in the environment along with a comprehension of their meaning and along with a projection of their statuses in the near future. Recently, situation aw are computing has been utilized in many different research areas [ 44 45 46 47 ], with each area defining situation differently according to i ts problems and research area. Chang [ 48 ] defined computing. Cho [ 46 ] defined s ituation as a temporal sequence of contexts for exception detection for safety in pervasive systems. Kim [ 47 ] defined situation for assurance oriented activity recognition as a set of activities and contexts. From the widely accept ed definition of context and various definitions of situation, we can conclude that context is one element of the situation and situation has more expressive power than context. to persuasive influence from a cyber physical infrastructure, more information than actions. Knowledge of user activity is needed to check problematic behavior and how th ly the information related to the goal is meaningful.

PAGE 29

29 In summary, and contexts, all of which are related to a goal and their relationships over a period of time. Dev user) and passive actions (which are affected by a user). Passive actions can be used user has intention active activity (which is caused by the user himself/herself) and passive activity (which is caused by a device action). Also, it can be classified as activity before active actions and activity a fter active actions, and this can be used to measure the effectiveness/influence of active actions This will be discussed in greater detail later in the chapter. The following examples assist in better understanding. checking blood gl ucose three times a day after every meal, the contexts related to the goal are time duration, measurement frequency, and measured glucose level. Active actions would include sending a text message through a smart phone to a user to remind him or her to me asure glucose levels and giving instructions on how to use the glucose meter. Passive actions would include glucose meter powers on has an error powers off The glucose meter powers on, wh ich means the user has in tention to use the glucose meter The glucose meter has an error, which most likely means the user does not know how to use the glucose meter depending on the type of the error (e.g. the error indicates wrong placement of test strip ) The glucose meter powers off, which means the user has intention not to use the glucose meter A situation can be further categorized into an active situation and passive situation. An active situation is used to create persuasive influence and a passive action

PAGE 30

30 is used to detect the persuasion need and evaluate how a user responds to the influence. Formal Definition of Situation Definition 1. User Activity User Activity is defined as the activity set related to a goal The user activity further divides into active activity and passive activity. Active activity ( ) is defined as the activity caused by the user himself /herself and this could cause the tive activity is related to the devices. The ) is defined as actions. Thus, the user can be denoted by : active activity : passive activity : certain activity tions i : device index j : action index Devices are represented by a device set The actions of a device are denoted by where i is device i ndex and j is action index.

PAGE 31

31 follows: : active action : passive action Definition 3 Intention Intention is defined as the intention set related to a goal, where Intention could cause user activity. Th e user activity could cause passive action so we may be able to infer intention from passive action Definition 4. Context Context is defined as the set of contexts related to a goal, where Devices context. Thus, the device and context have a producer consumer relationship. Definition 5. Situation all of whi ch are related to a specific goal and it is denoted by In some cases, it is not possible to define one or two elements among thus we allow a classified as an active situation or a passive situation. An a ctive situation affects a user by A passive situation is used to express persuasion need situation,

PAGE 32

32 situation. Passive action is defined as Situation Composition Context has a hierarchy and it can be composed of other contexts. Similarly, situation can be expressed in terms of other situations, which give a rise to complex situatio n. However, unlike context, there are constraints of possible compositions. There are restrictions on the specific possible compositions. We discussed the possible compositions of situation under our previous definitions. A situation can be composed by in tegrating two or more different situations. An active situation can be composed by integrating two active situations or an active situation and a passive situation. Likewise, a passive situation can be composed by combining two passive situations or a pass ive situation and an active situation. A total of four different kinds of compositions are thus possible. AA Composition : This composition can be used when two or more sequential active situations are needed. A newly composed active situation is denoted by AS=AS 2 +AS 1 AS 1 is executed first followed by AS 2 AS 1 is used as a triggering situation to initiate AS 2 (triggered situation). Multi ple execution in the same situation but the AA composed situation is utilized to execute two different sets of actions in two different situations. AP Composition : This composition is designed to trigger an active situation when a passive situation happens. It is represented by AS=AS 2 +AP 1 This active situation consists of a passive a ction and an active action triggered by the passive action.

PAGE 33

33 PA Composition : This composition can be utilized to discover a passive situation after the active situatio n occurs This composition is denoted by PS=PS 2 +AS 1 AS 1 triggers PS 2, and this is usually used to measure the effectiveness/influence of the active situation. PP Composition : This composition is used to detect two integrated passive actions. It is denoted by PS=PS 2 +PS 1 The PP composed situation is considered as 1 and PS 2 happen. Then, the PP composed situation becomes higher level passive situation than PS 1 and PS 2 We presented four different kinds of compositions that can be constructed hierarchically. Figure 3 2 presents examples of a multi level situation composition The first example ( Figure 3 2A ) demonstrates a multi level AP composition. AS is formed by AS 2 and PS 1 AS 2 is formed by an AA composition and PS 1 is formed by a PP composition. It can be represented by AS=AS 2 (AS+AS)+PS 1 (PS+PS). The second example ( F igure 3 2B ) represents a multi level PP composition. PS is created by integrating PS 2 and PS 1 PS 2 is formulated by a PA composition and PS 1 is formed by a PP composition. This can be denoted by PS=PS 2 (PS+AS)+PS 1 (PS+PS). (A) (B) Figure 3 2 Multi level Situation Composition Examples (A ) Multi level AP Composition (B ) Multi level PP Composition

PAGE 34

34 Measuring the Effectiveness of Active Action (Cyber A ction) Cyber actions are executed through active actions. As Figure 4 3 shows, an active action is activated after a triggering activity and context occur, and an active action has a specific target activity and context, influencing people to have a target activity an triggering activity, is represented by A; the target activity and context are denoted by B; f activity influenced by the active action can be measured by determining the level of difference in activity between A and C. Figure 3 3 Measuring the Effectivenes s of Active Action The following scenario demonstrates how to measure the effectiveness of the active action. Charley is a patient who has recently been diagnosed with diabetes and his primary physician ordered him to check his glucose level at least three times a day since his glucose variations are high. Charley recently joined a persuasive telehealth trial study that aims to help participants achieve their health goals. Charley sets his goal, which is checking his glucose level three times a day after me als. Charley has learned how to use the glucose meter from his nurse but he barely remembers how to use it. Charley turns on his glucose meter and tries to insert a test strip but places it in the wrong location and the glucose meter generates the error c ode that indicates

PAGE 35

35 incorrect placement of the test strip (triggering activity & context). The persuasive telehealth (active action) to help him learn how to insert the test strip correct ly (target activity & context). Now, Charley knows how to insert the test strip and he can measure his glucose level action matches the target activity, indicating t he educate cyber action is effective. The degree of the effectiveness of the active action is same as the degree of the similarity level (0 either that he knows how to insert the test strip and successfully measures his glucose level or he still does not know how to insert the test strip. If a target activity is complex and requires multiple activities, then the degree of the effectiveness of active action can be more dynamic. Situation Trace Situation t race is designed to track situations related to persuasion need and user reaction to persuasive influence. As shown in Figure 3 4, situation t race has five states, each of which is defined as follows: Init Situation: The init si tuation is a situation where situation trace initializes. Persuasion Need Situation: The persuasion need situation indicates a situation where persuasion strategies need to be applied. Progress Situation: The progress situation is a situation where a user makes progress toward a goal. Regress Situation: The regress situation is a sit uation where a user regresses from their goal. Target Situation: The target situation is a situation where a user achieves a goal.

PAGE 36

36 Figure 3 4. Situation Trace State Transitio n By u sing situation trace, we can track the recent status of a user toward a goal and apply different persuasion strategies depending on the situation states. Furthermore, the effectiveness of a persuasion strategy can be checked by referenci ng a recent situation state in the situation trace. Situation trace is updated when it gets the feedback f rom the A sse ss cyber action presented earlier The A ssess cyber action is The A ssess cyber action utilizes Assess Tree (AT) as the describe the AT in the following chapter

PAGE 37

37 CHAPTER 4 ASSESS TREE We already presented the Action based Behavior Mod el (ABM) and a formal definition of situation in the previo us chapter We illustrated how the model can be used as a template to streamline and tap into cybernetic resources to achieve sentience of the user and him/her situation, and to enact an influence on user behavior. ABM requires, however, an assessment of t he user responsiveness and compliance to the cyber influence. This is no easy task. There are many challenging problems that must be overcome to enable such assessment. Development of persuasive system will not be enable d without providing substantial and streamlined support to programmer s in designing and coding the Assess cyber action. In this chapter we introduce a theory, formalism, structure and algorithms for behavior assessment under ABM. Our approach that we call the Assess Tree (AT) is presented n ext in greater details. Our hope is that AT is adequately and easily usable by program mers who adopt our ABM, and who are not well versed in persuasion theory. Assess Tree (AT) is a five level tree in which the root represents the Assess cyber action. Nod es at the second level refer to action nodes, which correspond to all human actions in ABM. N odes at third level refer to sub act ion node s that we introduce below specifically for the AT and nodes at the fourth level refer to the P node and N node. P node and N node are denoted by + and as shown in Figure 5 1. Nodes at fifth level refer to leaf node, where positive and negative behaviors are attached. Action nodes at the second level are designed to match with human actions in ABM Sub action nodes furth er specify actions into different categories of behavior. Aware node shows how a user is aware of their current status, the severity of their

PAGE 38

38 symptoms and disease, and the benefits of good behaviors and the ramification s of bad behaviors. Aware node consis ts of two sub action nodes: Self Aware and Behavior Aware. Self Aware describes if a user is aware of the importance of knowing and checking the current status and severeness of his/her disease. Behavior Aware indicates if a user is aware of benefits of pe rforming good behaviors and the ramification s of performing bad behaviors. Plan has a goal setting status as a sub action node and it explains how a user set his/her goals and how the goals (the user set) satisfy goal setting requirement s and recommendatio n s It also checks if the current goals are appropriate or not. Figure 4 1. Assess Tree Learn shows how a user understands to use and execute necessary actions in devices that are associated with the target behaviors (Device Knowle dge) and if a user has the necessary knowledge to perform target behaviors (Behavior Knowledge). Recall has an On Time A cting sub action node and it describes how well a user remembers when they need to perform target behaviors. Act indicates how a user ma kes a progress Sub Action Node s A ction Node s P & N Nod es P N Positive Behaviors Negative Behaviors Leaf Nodes

PAGE 39

39 toward achieving goals. Each sub action node has P node as a left child and N node as a right child, which represent the positive behaviors and negative behaviors of that sub action node. Leaf nodes have positive behaviors as children of P n ode and negative behaviors as children of N node. The positive and negative behaviors are represented by positive a nd negative situations with Behavior Measurement Type (BMT). The details of BMT will be illustrated in the next section. The AT is designed f or evalua ting user response at each step in ABM and deci ding which step the user needs to go back. The positive behaviors and negative behaviors can be represented by a situation. The situation can be defined as a triplet of a set of d goal and their relationships over a period o f time as described in C hapter 3 Figure 4 2 shows two situation examples. (A) (B ) Figure 4 2. Situation Examples (A) P Node Example. (B) N Node Example The first example ( Figure 4 2A a ctivity (taking

PAGE 40

40 medication), and a context (on time). The second example ( Figure 4 2 B ) represents the vel), and a context (the error code) is attached to the N node as a negative behavior. Each P node and N node can have as many positive behaviors and negative behaviors as a child. Behavior Measurement Type Different types of behavior require different mea sureme nt approaches. The following define five different behavior types that we believe are representative of a wide variety of behaviors Frequency (the number of occurrence). How many times the behavior occurs is important in this category of behavior. Duration In this type of behavior, the number of occurrence s is not important but how long this behavior happen is significant. Completeness Frequency and duration are not essential in this type of behavior, the crucial thing is whether or not the beh avior is completed Standard metric In this type of behavior, the behavior is dependent on the standard metric. Time The behavior is only meaningful if it occurs at a specific time. This measurement type can have tolerance value, which indicates an allo wed interval from the specific time. We will explain this in further detail in the Assess Tree Operation section. Table 4 1 shows an example of behavior measurement type utilizing a single behavior measurement type. Table 4 2 demonstrates an example of combined behavior measurement type. Of course, there are more combined behavior measurement types depending on the situation. Behavior measurement types (single or combined) are utilized in calc ulati ng the reference value of P and N node s

PAGE 41

41 Table 4 1 Behavior Measurement Type Example BMT Example F (Frequency) Type Check glucose level three times a day D (Duration) Type Exercise for 30 minutes C (Completeness) Type Join patient car e portal M (Metric) Type Drink two liters of water a day T (Time) Type Take medication at noon Table 4 2 Combined Behavior Measurement Type Example CBMT Example FT Type Take medication three times a day after having a meal FM Type Drink 200ml water 10 times a day DT Type Walk for 30 minutes at 7 am Intersection of BMT and CBMT As shown in Figure 4 3 the completeness type intersects with other types. Every behavior needs to check if it is completed, bu t different behaviors may use frequency, duration, metric, or time to check for completeness. In CBMT (Figure 5 4) unlike BMT all five measurement types possibly intersect with each other. Figure 4 3 Intersection of Behavior Measurement Type

PAGE 42

42 Figure 4 4 Intersection of Combined Behavior Measurement Type Formal Definition of Behavior Space, Situation Space and Cyber Space Definition 1. Behavior Space Behavi or s pace is defined as a behavior set Be havior space is limited by a behavior set that can be defined on each action node in ABM, represented by B ehavior space is further divided into positive behavior ( ) and negative behavior ( ) that can show positiveness and negativeness of a user beh avior This concept is illustrated in Figure 4 5. Figure 4 5. Behavior Space

PAGE 43

43 Definition 2. Situation Space We define situation s pace as a situation set The definition of sit uation is given in C hapter 3 As shown in Figure 5 6, situation space is categorized into a positive situation ( ) and negative situation ( ), where Those situations are defined from the positive and negative behaviors defined in the behavior space. The s ituation can hav e a specification and that specification can be implemented using sensors and devices. Figure 4 6. Situation Space Definition 3. Cyber Space Cyber s pace is represented by where is cyber sense and is cyber influence. C yber sense consists of sensors and c yber influence consists of actuators. The cyber sense supports detection of situation defined in the situation space Role and Methodology in Behavior Space, Situation Space and Cyber Space In this section, we briefly discuss the role and methodology of the three previously defined three spaces. In behavior space, domain experts define positive and negative behaviors based on each action node in ABM. Once the positive and negative

PAGE 44

44 behaviors are defined, they can identi fy po sitive and negative situations which will be attached into P node and N node respectively, in the Assess Tree. Computer scientists take these situation specification manifests and extract device actions, user activities and contexts. Based on these criteria they design and implement the cyber space in order to support detection of the extracted artifacts from the defined situations through devices and sensors. The completeness of the Assess Tree has to do with exploiting an adequate number of usefu The a dequacy of the situations in turn relies on exploiting all relevant context, activity and device artifacts in cyber space. Therefore, using an inadequate number of situations can easi ly be biased for the asses s tree to capture good compliant and non compliant behaviors. However, the completeness is not repaired to a larger number of situations. For example, in regards to the large number of negative situations attached to N nodes, if n egative behaviors are not exhibite d by the user, the small and large number of situations have the same effect. There are other limitations in knowing all negative behaviors and positive behaviors but sometimes we are not even aware of them ; so we try to p ut the whole concept in perspective, which can be very useful. This is a good step forward, but it is not a philosophical tool and there is an art to capturing. It goes hand in hand with efforts to instrument the cyber space. Therefore, as much as fine con text, activity and device artifacts are used and useful situations are defined, you can use the Assess Tree to capture user compliance.

PAGE 45

45 Figure 4 7 Role and Methodology in Behavior, Situation and Cyber Space Formal Definition of Situation Recognition As context and activity require algorithms and models for detection, situations are also needy of the same. Unlike context and activity, we have concept composed of device, context, and activity. Situation recognition will not be as difficult as activity reco gnition because situation is composed of these higher concepts. Nevertheless, we

PAGE 46

46 need an explicit model for situation recognition. We proposed to utilize a logical/fuzzy logical approach to situation recog nition assuming the availability of recognizers of situation constituents. Definition 1. Situation Representation Situation is represented by one or more of the following functions and Those functions stem from the definition of situation presente d in Chapter 3. ma nifest the situation The function returns 0 (undetected) or 1 (detected). Multiple situation In this case, is calculated by AND ing a refers to the activity function that represents an activity that could manifest the situation This function returns 0 (undetected) or 1 (detected). When multiple activities represent the same situation a set of activities is associated with that situation Activity recognition contain s a measurement error hence we utilize a quorum base d decision method to obtain If the number of the detected activities among a set of activities is more than half o f a set of activities, then will be 1. Otherwise, it will be 0. refers to co ntext function, which detects the context that could exhibit the situat ion This function returns 0 (undetected) or 1 (detected). When multiple contexts are associated with and represent the same situation is computed by AND ding all associated contexts.

PAGE 47

47 Definition 2. Situation Recognition Situation recognition util izes which refers to the situation function that returns 0 (unrec ognized) or 1 (recognized). is dependent on or or a combination of these functions. It is not always possible to outfit a cyber sense that can allow for all three functions to be implemented. We use a different decision method to recognize situation according to how many functions are possible to define. Three functions defined All three functions are not always accurate so there might be errors. In order to tolerate the errors and maintain accuracy, we utilize a quorum based decision method If two or more of the three functions are true, it returns 1; otherwise it returns 0. is defined as and its truth table is represented in Table 4 3 Table 4 3 Truth Table of Quorum based Decision 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1

PAGE 48

48 Two functions defined A q uorum based decision method cannot be utilized because only two functions are defined There could be an indistinct s ituation when one function is 1 but the other function is 0 when two functions are defined. We utilize a fuzzy based decision method to handle the indi stinct situation. F uzzy logic [ 60 ] was introduce d in 1965 by Lotfi Zadeh wit h the proposal of fuzzy set theory in order to deal with imprecise and uncertain knowledge F uzzy logic is multi valued logic and it is derived from fuzzy set theory. The fuzzy set theory is an extensio n of classical set theory that allows its members to h ave different degree s of membership which are determined by a fuzzy membership function ranging between 0 (completely f alse) and 1 (completely true). The fuzzy set in is expressed as where is a membership functi on, The fuzzy set has the following operators: fuzzy intersection operator, fuzzy union operator, and fuzzy complement operator. Fuzzy intersection operator (fuzzy AND) Fuzzy intersection operator applied to two fuzzy sets A and B wit h the membership functions and is Fuzzy u nion operator (fuzzy OR) Fuzzy intersection operator applied to two fuzzy sets A and B with the membership functions and is Fuzzy c omplement operator (fuzzy NOT) Fuzzy intersection operator applied to the fuzzy set A with the membership functions is

PAGE 49

49 We describe how the fuzzy based decision method is used to recognize the situation when two functions are defined. It is further divided into three cases depending on which two functions are defined. and are defined : utilizes a situation fuzzy member ship function, which is defined by exploiting device fuzzy membership function and acti vity fuzzy membership function Both fuzzy membership functions use accuracy information to determine the degree of membership. When either or is set to 1, the situation fuzzy membership will follow the one with higher accuracy. For example, let = 0 and =1, and = 0.95 and = 0.80. In this case, therefore therefore will be 0. The device fuzzy m embership function where is accuracy of The activity fuzzy membership function where is accuracy of The situation fuzzy membership function where and are defined : The context fuzzy membership function where is accuracy of The activity fuzzy membership function where is accuracy of

PAGE 50

50 Th e situation fuzzy membership function where and are defined : The device fuzzy membership function where is accuracy of The activity fuzzy membership function where is accuracy of The situation fuzzy m embership function where One function is defined utilizes a detection based decision method. Detection based decision relies o n detection of the defined function. is denoted by This is very obvious so we do not describe the truth table of detection based decision. Composed Situation Recognition We described situation composition in the previo us chapter. Multiple single situations can be associated with the composed situation. A s ingle situation is recognized by a quorum based, fuzzy based and detection based decision method as described earlier. The composed situation is computed by AND ing al l associated single situations. A s ituation recognition timer can be utilized when there is a time difference among the associated single situations.

PAGE 51

51 Evaluation of Situation Recognition Algorithm We evaluate the performance of the situation recognition alg orithm by comparing nave method (on the one hand) and the quorum based and fuz zy based methods (on the other hand) In our experiment, we assume device, activity and context events occurred for 1000 situations The device, activity and context event s ar e randomly generated based on their accuracies We set the detection accuracy range for device, activity and context events as the following: and Based on the generated events, we use the nave decision method, quorum based decision method and fuzzy based decision m ethod to recognize a situation. We repeatedly run the simulation by in crementing the detection accuracy of device, activity and context events and get average recognition performance As described in Figure 4 8 quorum based situation recognition shows higher accuracy than nave s ituation recognition. Figure 4 9 shows situa tion recognition performance difference between native situation recognition and fuzzy based situation recognition when the two functions are defined. Figure 4 8 Performance Comparison between Nave and Quorum based Situation R ecognition 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Nave Quorum Accuracy

PAGE 52

52 Figure 4 9 Performance C om parison between Nave and F uzzy based Situation R ecognition Assess Tree Operation P N ode P node has positive behaviors defined by situations as children. The value of P node is calculated by the following formula: where i is the number of children of P node has a dif ferent value depending on the behavior measurement type. can have either a single value or a combined value. In order to clarify we provide the examples of in Table 4 4 and Table 4 5 In Table 4 4 T Type has a tolerance value, which represents the allowed time interval from a specific time as described in the previous section. We explain further using an example of medication to clarify usage of the tolerance value. The T Ty 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 (Device,Activity) (Activity,Context) (Device,Context) Accuracy Nave Fuzzy

PAGE 53

53 meaningful when this behavior occurs at noon. If this behavior does not have a strict time requirement, then we can add a tolerance value (30mintues) indicating that medication 30 minutes before and after 1 2pm is tolerable We next describe how is calculated using the above example. When the T node, then the automatically attached to the N node to achieve a balance as described earlier. If a user takes t he medication at 12:05pm, then is 30(minutes) and will be 25 ( time difference). Since the P node has only one T Type child, Table 4 4 Single Value Examples BMT Example F Type Check glucose level 3 times a day 3 Actual frequency (ex. 2) D Type Exercise for 30 minutes 30 (minutes) Actual exercise d uration (ex. 25 minutes) C Type Join patient care portal 1 Joined (1) M Type Drink 2 liters of water a day 2 (liters) Actual amount of water consumed (ex. 1.5 liters) T Type Take medication at noon Tolerance value: 30 minutes 1 (no tolerance value) 30 ( with tolerance value) Whether actual behavior happens (1) or not (0) (no tolerance value) Tolerance value actual time passed (with tolerance value) Table 4 5 Combined Value Examples CBMT Example FT Type Take medication 3 times a day after having a meal Tolerance value: 30minutes 3, 30 FM Type Drink 200ml water 10 times a day 10, 200 DT Type Walk for 30minutes at 7 am 30, 1

PAGE 54

54 N Node N node has negative behaviors defined by situati ons as children. The value of N node is calculated by the following formula: where i is the number of children of N node, Calculating is same as calculating Operators In this section, we define the operators for several different purposes. F irst, they act as a comparator capture of the net effect of positive and negative behavior. Second, they act as an accumulator of various behaviors (action nodes & sub action nodes) Third, they act as a selector. Finally, they act as an information fusion network in which influential situations are identified and propagated over the tree. AT operators are divided into four different types of operators: assessing operator, diagnostic operator, propagating operator and analytic operator, as shown in Table 4 6 The assessing operator is used to assess a user behavior. The propagating operator can be exploited to control and limit transferring data to the upper node s The analytic operator can be utilized to check the adequacy of regi the U opera tor can be utilized in all node levels Figure 4 10 clearly shows which operator can be applied to which node level.

PAGE 55

55 Table 4 6 Assess Tree Operators Type Operator Description Applicable Node Assessing Calculate P node value P Node Calculate N node value N Node Integrate one node value with the other node value Sub Action Node, Action Node Diagnostic Union behavior IDs and values into behavior set All Nodes Propagating Forward one node value if it is smaller than threshold Action Node Forward the behavior ID and value all the way to the action node Leaf Node Analytic Calculate correlation value between P node child value and Act value P Node Calculate correlation value between N node child value and Act value N Node The assessing opera tor includes and and are used to c alculate P node and N node values as dep icted in the previous section. The operator is utilized to catch the net effect of positive and negative behaviors by integrating from P node value and N node value, and to integrate effects from two sub action no des. The assessment value shows good view of user compliance level but it is hard to see which behaviors contribute to that compliance level. Therefore, the operator is used to provide a diagnosis of the cause of compliance level. It performs a union of positive and negative behaviors and their values into a behavior set at each node level and propagates the behavior set all the way to root node. The pro pagating operator consists of and operator s The operator is used in action nodes to control passing assessment values into the root node. Critical negative situations, which prevent a user to act toward a goal, must be handled even if the overall assessment of sub action node shows high compliance. The operator is utilized to resolve the crit ical negative situations. It acts as a flag to indicate a critical negative behavior which should be handled immediately. If the operator is set, then

PAGE 56

56 that negative behavior will be forwarded all the way to the action node. For example, let us revisit Charley scenario described in C hapter 3 In the scenario, Charley sets his checking Charley sets three more goals and several relevant positive and negative behaviors related to the g oals are attached into the Device Knowledge and Beha vior Knowledge sub action node s The is attached to Device Knowledge it occurs achieved so this should be handled immediately. However, this negative behavior could be disregarded when overall compliance is high due to high P node value. Therefore, we use the operator to forward this negative behavior all the way to action node to resolve the negative behavior The operator is further divided into operator and operator. The operator is used to calculate correlation value between P node child value and Act value. The operator is utilized to calculate correlation between N node child value and Act value. Figure 4 10 Assess Tree with Operators ,

PAGE 57

57 A designer of AT should have this variety of operators available so he or she can utilize AT in one of many possible ways. Different operators can be chosen to support a variety of different use cases of AT. For example, one such use is that in which there is a datas et that has limit ed information. In this case, researchers can use pro pagating operators to select a particular and available part of the dataset a nd limit others. In another use case, there is a full dataset that might have all the necessary information. However, researchers may focus on a particular aspect such as learnin g and di agnosing specific learning behaviors. Then, they can choose and apply the appropriate operators for their purpose and need. Assessment Algorithm In this section, we explain how we employ assessment algorithm to assess a user behavior with the oper ators that were explained in the previous section. As show n in Figure 4 11 the Assess T ree assessment algorithm consists of four sub algorithms: Situation Recognition (SR) algorithm, Assess Update (AU) algorithm, Assess Propagate (AP) algorithm, and Asse ss algorithm. When device event ( ), activity event ( ), or context event ( ) is triggered, that event ( is passed to the SR algorithm to recognize a situation by using a different situation recognition decision method depending on the number of functions defined Once the situation is recognized through the SR algorithm, t he re cognized situatio n will be triggered and then the Assess Update algorithm is called to update the assessment value in each b ehavior registered in P and N node s When the current time ( ) reaches the assessment window ( ), the Assess T ree starts propagating the assessment value to an upper node using the Assess Propagate

PAGE 58

58 algorithm. Finally, the Assess algorithm is used to determine whether reinforcement is needed or not based on the propagated assessment value in each action node. Assess_Tree_Assessment_Algorithm( ) while true do if device or activity or context event trigger then getDACEvent() // :event, :device event, :act ivity event, :context event Situation_Recognition ( ) end if if situation event trigger then getSituationEvent() // : situation subscriptionMapper( ) Assess_Update ( ) end if if then // :current time, : last assessment time, assessment window Assess_Propagate () Assess () end if end while Figure 4 11 Assess Tree Assessment Algorithm We explained overall assessment algorithm and now we will describe each sub algor ithm in more detail. We describe the Situation Recognitio n algorithm in Figure 4 12 The SR algorithm is used to recognize a situation from device, activity and context events by utilizing a different situation recognition decision method depending on the number of functions defined. It f irst gets a subscribing situation for the passed event Then, it checks if a recognition timer starts. If not, it starts the recognition timer. Each situation has a recognition timer, which limits time duration for situatio n recognition. When the first event occur s the recognition timer starts. Before the timer expires, all the device, activity, and context events defined in the situation should be triggered to recognize that situation. Next, it retrieves the number of func tions defined in the situation. As described in the formal definition of the situation recognition section, it uses different decision methods (quorum based, fuzzy based, detection based) to recognize

PAGE 59

59 the situation based on the number of functions. If the SR decision method retur ns true and the recognition timer has not expired, then it triggers a recognized situation event. Situation_Recognition ( ) subscriptionMapper ( ) if is Recognition TimerStart( ) = false then star Recogntion Timer( ) end if select getNumOfFunction( ) case 1 if detectionBasedSR( ) = true and isTimerExpire( ) = false then triggerSituationEvent( ) end if case 2 if fuzzyBasedSR( ) = true and isTimerExpire( ) = false then triggerSituationEvent( ) e nd if case 3 if quorumBasedSR( ) = true and isTimerExpire( ) = false then triggerSituationEvent( ) end if end select Figure 4 12 Situation Recognition Algorithm Once the situation event is triggered, the Assess Update algorithm in P and N nodes that have subscribed to that situation event is executed. The AU algorithm illustrated in Figure 4 13 first goes through each behavior in the child list registered in subscribed P and N nodes to check if that behavior is same as the situation, then i t will update the assessment value of that behavior. If a flag in the passed situation is set, then we execute operator to handle that flag. Assess_Update ( ) for each behavior // child list if then update if isFlagSet( ) = true then end if end if end for Figure 4 13 Assess Update Algorithm

PAGE 60

60 The Assess Propagate al gorithm is called when current time reaches the assessment window. We describe the AP algorithm in Figure 4 14. The AP algorithm repeatedly calculates the assessment values and preform operator from P and N nodes to action nodes via sub action nodes. As sess_Propagate () for each P node for each behavior end for end for for each N node for each behavior end for end for f or each Sub Action node end for for each Action node if = Plan or Recall or Act then else if = Aware or Learn then end if end for Figure 4 14 Assess Propagate Algorithm After the Assess Propagate is finished, the Assess a lgorithm depicted in Figure 4 15 is executed to finalize the evaluation and decide whether a user needs reinforcement. The flow chart for this algor ithm is described in Figure 4 16

PAGE 61

61 Assess() for each Action node if = undefined then continue to Actin g Loop else if then assign the degree of need for cyber influence add to Reinforcing Loop else continue to Action Loop end if end if end for Figure 4 15 Assess Algorithm

PAGE 62

62 Figure 4 16 Assess Flow Chart Checking adequacy of P node a nd N node c hildren The completeness of the Assess T ree depends on exploiting an adequate number of useful situations that capture both positive and negative behaviors. The a dequacy of situations in turn relies on exploiting all relevant context, activity and de vice artifacts in cyber space. Therefore, using an inadequate number of situations can easily create bias for the A ssess T ree in captur ing the positive and negative behaviors that represent compliance and non compliance We describe an algorithm for checking adequacy of positive and negative behaviors registere d in P and N nodes in Figure 4 17 When the assessment vector size ( ) reaches correlation window size ( ), it calculates the correlation value of positive behaviors ( ) and the correlation value of negative behaviors ( ) between each positive behavior assessment vector ( ) and Act assessment value ( ), and negative behavior assessment vector ( ) and Act assessment vector using the f ollowing equations If the calculated correlation value of positive behavior s and negative behaviors are less than positive/negative threshold values ( ) then the cor responding positive behaviors and negative behaviors are added to the inadequacy list ( ).

PAGE 63

63 Adequacy Check PN Children ( ) if = then for each < get co rrelation value ( ) if < then add to end if end for for each child < get correlation value ( ) if < then add to end if end for reset end if Figure 4 17 Algorit hm for Checking A dequacy of P Node and N N ode C hildren Implementation We describe the AT implementation architecture in Figure 4 18 I t includ es the followi ng five modules: Device Emulator Device Manager, Event Manager, Behavior Manager, and Assess Tree M anager. The Device Emulator emulates real devices and sensors by utilizing dataset. It includes the Dataset Parser and Dataset S cheduler. The Dataset P arser takes and parses xml formatted dataset file described in Figure 4 19 which includes configuration, P and N node registration information, and data information. Based on the parsed information, it configures AT register s pos itive and negative behaviors into P and N node, and converts data into device, context and activity events and store s them into the DataSet DB The Dataset S cheduler gets the events and passes them into the Event Manager depending on their date and time. The Event Manager is in charge of detecting device, activity and context events and recognizes situation events by using detected device, activity and context events. It

PAGE 64

64 consists of the DeviceEvent Manager, the Context Event Manager, the ActivityEvent Mana ger, and the SituationEvent Manager. The DeviceEvent Manager, the ContextEvent Manager, and the AcitivityEvent Manager are responsible for managing event subscriptions, detecting and handling device ac tions, contexts, and activities. When the subscribed th e device action, contexts, and activities are detected, they are passed to the SituationEvent Manager. The SituationEvent Manager detects situation event through the SituationEvent Recognizer passes the detected situation event to the Behavior Manager if it is subscribed. Th e Behavior Manager notifies to P or N nodes that subscribe to the detected behavior. If P or N node get s the notification of detected positive or negative behavior, it updates the assessment value and propagates it using assess tree op erators

PAGE 65

65 Figure 4 18 Assess Tree Architecture

PAGE 66

66 Figure 4 19 DataSet.xml

PAGE 67

67 CHAPTER 5 VALIDATION OF THE ASSESS TREE In this chapter, w e validate Assess Tree using a trace driven simulation technique [ 62 ]. Trace driven simulation is an approach where a trace of the event s or entirety prior to the start of the simulation. The trace is then fed in to the simulator, which guides and generates events and simulat ion results. This contrasts with stochastic simulation s w hich rely on the use of generators to generate events according to specific probability distribution s that drive the simulation. Our overall validation approach can be summarized as follows First, w e choose a specific domain and create a scenario that entails defining and describing profile, possible device, activity and context artifacts as well as specifying possible positive and negative situations. Second, we extract a user profile and device, a ctivity and context artifacts and set up an Assess Tree (AT) by setting P/N Node s from the scenario. Third, we generate traces that modulate possible user behaviors from the scenario using four different drivers that were carefully chosen to represent typi cal (normal) user activity and span most of the positive and negative situations We begin with generating fu ll compliance traces and then inject various level s of non co mpliance into the traces. Finally we input generated traces into the AT and compare t he AT assessments against the non compliance of the traces. Our validation is based on the following scenario. Charley is an elderly patient who has been managing diabetes and obesity. Recently, he joined a persuasive telehealth trial study. Charley has be en provided devices (glucose meter, weight scale, electronic pill box and smart phone) to influence him to promote healthy behaviors and measure his behavior al response to persuasive influence. During the first week, the

PAGE 68

68 persuasive telehealth system monito rs his behaviors and builds his profile including his vital and status information, as shown in Table 5 1. Beginning with the second week, the persuasive telehealth system starts to influence him using cyber actions based on ABM [ 3 plan stag e, h e set four daily goals based on goal setting requirements and guidelines from his doctor. The goals h times a day within 30 mi nutes after walk 5000 steps a day begins to assess his behavior response using AT from the third week. Table 5 2 describes the device, activity and context artifacts that are utilized in the above scenario. Positive and negative situations registered in the AT are provided in Table 5 3. Table 5 1. Profile Average of checking weight frequency 0.4 Average of checking glucose leve l frequency 1.6 Average of taking medication frequency 1.2 Average of walking step count 2600 Table 5 2. Device, Activity and Context Artifacts Devices Device Actions Activities Contexts Glucose meter, weight scale, pillbox, video camera Turn on, tur n off, sense glucose level, sense weight, generate error code, open and close, sense food Measuring glucose level, m easuring weight, eating, taking medication, walking Glucose level, weight, calorie, error code, step count and time

PAGE 69

69 Table 5 3. P/N Node Setting Action Node Sub Action Node P/N Node Situation Aware Self Aware P Node P1: C heck more glucose level than before P2: Check more weight than before N Node N1: Do not attempt to check glucose level N2: Do not attempt to check weight Beh avior Aware P Node P3: Take medication more accurately than before P4: Walk more than before N Node N3: T ake medication less accurately than before N4: Walk less than before Plan Goal Setting Status P Node P5: Complete set goals as required and guided N Node N5 : Do not set goals Learn Device Knowledge P Node P6: C heck glucose level successfully P7: Check weight successfully N Node N6: Fail to check glucose level N7: Fail to check weight Behavior Knowledge P Node P8: Take medicat ion as prescribed N Node N8: Take medication incorrectly Recall On time Acting P Node P9: Check glu cose level 3 times a day on time P10: Check weight on time P11: Take medication on time N Node N9: Do not check glucose level on time N10: Do not check weight in the morning N11: Do not take medication on time Act Goal related Activity P Node P12: Check glucose level 3 times a day within 30 minutes after having a meal P13: Check weight in the morning P14: Take medication as pre scribed P15: Walk 5000 steps Trace Generation In this section, we explain how we gene rate traces for the experiment. We design a trace generator based on the time sequence of a normal day with different compliance level s We adjust the compliance lev el by injecting possible non compliances. One possible way to construct non compliance is to control time and the way behaviors are performed Although there are many other ways to synthesize and inject non

PAGE 70

70 compliance, it is very difficult to model all of them. Therefore, w e only focus on doing so by controlling time and the way that behaviors are performed. There are some patterns of behaviors Some behaviors are performed without depending on a specific time, while o ther s are performed depending on time. Therefore, the scheduling of behaviors should be based on their patterns Figure 5 1 shows the architecture of a trace generator, which consists of four different drivers: whole day driver, morning driver, afternoon driver, and evening driver. The w hole d ay driver generates time insensitive situations that can hap pen at any time during the day by utilizing sub driver S The m orning, afternoon, and evening driver s generate situations that can happen in the morning, afternoon, and in the evening by employing sub driver s W, M, and G. Each sub driver expands several positive and negative situations be long ing to different action nodes: sub driver W for checking weight related traces, sub driv er G for checking glucose level related traces, and sub driver M for ta king medication related traces. Figure 5 1 Trace Generator Architecture Table 5 4 describes which sub driver covers which positive and negative situations. For example, sub driver W is connected with situation P2, N2, P7, N7, P10, N10, and P13.

PAGE 71

71 Table 5 4. Sub Driver and Situations Mapping Table Sub Driver Situations W P2, N2, P7, N7, P10, N10, and P13 M P3, N3, P8, N8, P11, and N11 G P1, N1, P6, N6, P9, N9, and P12 S P4, N4, and P15 We present a flow c hart of sub driver W in Figure 5 2 and the par ameters used in sub driver W in Table 5 5. Sub driver W generates collective situations related to checking weight. It first decides whether or not it performs checking weight related behaviors using parameter S and then it d ecides when the behaviors occu r using parameter T M T A and T E which decide the time when weight is checked. Finally, it deter mines whether checking weight has succeeded or failed using parameter F I for the initial attempt and parameter F R for the following attempt. Sub driver G and it s para meters are presented in Figure 5 3 and Table 5 6. Sub driver G is almost identical to sub driver W except for time parameters Figure 5 4 and Table 5 7 respectively, show the flow chart of sub driver M and its parameters. Sub driver M first decides if it performs taking medication related behav ior and then decide s when it will happen. Sub driver S and its parameter are depicted in Figu re 5 5 and Table 5 8. Unlike other drivers, s ub driver S does not check if it p erforms the walking behavior because the walking behavior always happens. After the initial walking behavior is performed, sub driver S uses parameter C to check if it continue s as described in Table 5 8 Table 5 5. Sub Driver W Parameter Parameter Description S Skip probability T M Time pr obability (in the morning) T A Time probability (in the afternoon) T E Time probability (in the evening) F I Fail probability (Initial) F R Fail probability (Retry)

PAGE 72

72 Figure 5 2. Sub driver W Flow Chart

PAGE 73

73 Table 5 6. Sub Driver G Parameter Parameter Descri ption S Skip probability T Time probability F I Fail probability (Initial) F R Fail probability (Retry) Figure 5 3. Sub driver G Flow Chart

PAGE 74

74 Table 5 7. Sub Driver M Parameter Parameter Description S Skip probability T 1 Time probability ( 30 to 0 min ) T 2 Time probability ( 60 to 30 min) T 3 Time probability (0 to 30 min ) Figure 5 4. Sub driver M Flow Chart

PAGE 75

75 Table 5 8. Sub Driver S Parameter Parameter Description C Continue probability Figure 5 5. Sub driver S Flow Chart Experiment I In the first experiment, w e conducted two different evaluations. In the first evaluation, we aim ed to validate if AT can produce consistent result s and capture situational differences in same compliance by using 5 day and 100 day traces that modulate ehaviors of 100% 20% step wise compliance based on the scenario and goals described earlier. In the second evaluation, we aimed to val idate if AT can catch a steady de crease (1 00% 1 %) in compliance over a period of time by utilizing randoml y generated trac es with steady compliance elevation. In both evaluations, we assume Charley has already set his goals and there are no problem s in goal setting All traces are randomly generated based on rules that make traces more realistic by excluding impossible cases and enhancing randomness in possible cases.

PAGE 76

76 Figure 5 6 and 5 7 describes the assessment result of 100%, 80%, 60%, 40%, and 20% compliance traces for 5 days and 100 days respecti ve ly. As can be seen in Figure 5 6, a ssessment value s of Aware, Learn, Recall and Act are decreasing but there are some variati ons due to situational differences in traces. In 40% compliance, the Recall assessment value decreases significantly compared to assessment value. This is because on t hat day, Charley performed fewer behavi or s that require d timeliness and performed more beh aviors for time insensitive goals (e.g. walk 5000 steps a day ). Figure 5 7 which is similar to Figure 5 6 shows some variations in assessment values for the same compliance level due to situational diff erences but the assessment values are getting lower according to a step wise decrease in compliance. Figure 5 8 describes assessment results of the case for steady user compliance decrease The result shows that AT can capture a steady decrease in user co mpliance. Fig ure 5 6 Assess Tree Assessment Result of Step wise Compliance (5 Days) Full Compliance 80% Compliance 60% Compliance 40% Compliance 20% Compliance

PAGE 77

77 Fig ure 5 7 Assess Tree Assessment Result of Step wise Compliance (100 Days) Fig ure 5 8 Assess Tree Assessment Result of Steady Compliance Full Compliance 80% Compliance 60% Compliance 40% Compliance 20% Compliance

PAGE 78

78 Expe riment II In the second experiment, we aimed to validate if AT can detect different characteristic varian ce among three different persons as descr ibed in Table 5 9 Table 5 9. Person Setting Person Name History Characteristic Person1 Jim Newly diagnosed with diabetes and obesity Easily get s excited and bored Person2 Jane Has been managing diabetes and obesity for 3 years Easily forget s things Person3 James Has been managing diabetes and obesity for 5 years Very steady and usually do es what he plans Pe rson1, Jim, is a new patient who ha s recently been diagnosed with diabetes and obesity so h e is not very familiar with the routines needed to manage these conditions (e.g. checking glucose level) In addition Jim easily gets excited but also easily get s bored. In order to reflect his history and characteristic s we design his compliance level to increas e very quickly at the beginning, then decre ase very quickly before making his compliance level fluctua te s more We also increase the fail probability in su b drive r W and G. The result (Figure 5 9) shows high fluctuation in value s in all action nodes so AT can capture his persona (easily gets excited and b ored) and un familarity with managing diabetes and obesity.

PAGE 79

79 Figure 5 9. Assess Tree Assessment Result of Person1 We model P erson2, Jane as a person who is calm and st eady but forgets things easily. Assessm ent result of P erson 2 (Figure 5 10) shows relatively low value in Recall compared to other action node values so AT can capture her persona. Fig ure 5 1 0. Assess Tree Assessment Result of Person2

PAGE 80

80 Person 3, James is a very steady person who usually does what he plans to do. As described in Figure 5 11, the assessment result for Charley shows a little fluctuation at the beginning and then all action node va lues become very steady. It is also shown here that AT responsively captures the persona. Fig ure 5 11. Assess Tree Assessment Result of Person3

PAGE 81

81 CHAPTER 6 CASE STUDY The purpose of this chapter is to use a case study to demonstrate how ABM can be used to enable persuasion. We utilize the case study in the domain of telehealth system. Specifically, we utilize a participatory telehealth system[ 2 ] that we jointly developed with IBM. The remainder of this chapter is organized as follows. First, we introduce necessary background information about telehealth system. Then, we cover its limitation and introduce the concept of participatory telehealth. Finally, we describe the specific system that we developed for required persuasion. The Application t he Human Centric Ubicomp Requiring Persuasion Background Advances in healthcare have led to a longer life expectancy, resulting in an increasing proportion of the elderly population. By 2030, the number of US adults aged 65 years or o lder will more than double to about 71 million [1]. Moreover, about 80% of the elderly has one chronic condition, and 50% of the elderly population has two or more chronic conditions [1]. Chronic diseases disproportionately affect older adults and are asso ciated with disability, diminished quality of life, and increased costs for health care and long term care [ 1 ]. Many elderly people prefer independent living without caretakers, and industry and academia have put forth considerabl e effort to support independent living as well as to provide cost effective solutions to promote healthy aging [ 2 3 5 6 7 8 9 10 ]. Telehealth, or the delivery of health related services and information via telecommunications technologies by a health care provider to persons that are some

PAGE 82

82 distance from the provi der, is a cost effective approach that could support independent living and facilitate tele care in general. Considerable academic, industrial, standard organizational and multi national efforts [ 2 3 5 6 7 8 9 10 11 12 ] have been put forth to improve telehealth systems but they still miss valuable opportunity. In order to utilize the misse d opportunity, we tried to the collection of insights develop a more complete view of that patient. L imitation of Current Telehealth System Telehealth solutions have increased in prevalence, and improved the quality of care by enabling the patient to take reading s and measurements in the comfort of their own home. Personal medical devices are broadly av ailable, affordable, and their accuracy of measurement is improving. Thanks to emerging standards such as the Continua Health Alliance [ 6 ], building highly interoperable telehealth systems using personal medical devices is becoming a reality, hopefully leading to improved quality of care. In addition to standards adoption, there have been joint efforts between industry and academia on middleware enablers for telehealth systems. For example, STEPSTONE [ 5 ] is a joint project between IBM and the University of Florida to create based healthcare solutions into enterprise systems using a Service Oriented Device Architecture (SODA) [ 13 ]. The Center for Connected Health [ 7 ], a division of Partners HealthCare in Boston, develops innovative and effective solutions for delivering quality patient care outside of the traditional medical setting. Two representative efforts for health record

PAGE 83

83 interoperation are Microsoft Healthvault [ 8 ] and Google Health [ 9 ]. Through these two web portals (services), patients can easily manage their health records an d share them with medical professionals. In Europe, the European Union (EU) funds programs such as the Ambient Assistive Living (AAL) [ 10 ] to enhance the quality of life for older people, strengthening the industrial base in Europe through the use of Information and Communication Technologies (ICT). Many present telehealth systems, however, do not perform as effectively as would be expected. One important resource that telehealth systems miss, and one that may be critical to improv e health monitoring, are the networks of people that are a part they are immersed in a variety of social networks, including family, friends, and neighbors. The knowledge contained within these networks can be used to augment the underutilized in telehealth systems. These networks often extend care to patients, thus making t hem an important reso urce in their overall care By utilizing extended care networks, valuable information can be attained beyond vital signs, enabling a more 2 ]. The Case Study: Par ticipatory Telehealth System The participatory telehealth system has been developed jointly with IBM to create an ecosystem in which people close to a patient would naturally participate in the monitoring of, and delivering care to, the patient by leverag ing social networks. It is based on the framework that we introduce in Figure 6 1 which combines the typical telehealth framework with social networks to provide additional context beyond physical readings by adding the network effect from the extended car e network [ 2 ]. This

PAGE 84

84 16 ]. Figure 6 1. A Framework fo r Participatory Telehealth In the Profiling stage, any predefined or existing information, such as age, gender, medical history, preferences, etc, related to the user are collected. Vital signs are measured through sensors and medical devices in the Monit oring stage. The perspectives of the Extended Care Network, providing valuable information about the user, which is then added with vital signs in the Extended Monitoring stage Monitoring Extended Care Network. Information gathered during this stage is then utilized in the Intervention stage. A key technology that enables the participatory telehealth system is Web 2.0. Broadly speaking, Web 2.0 technologies enable individuals to produce and assemble content in new and unique ways. Furthermore, Web 2.0 enables sites, such as iGoogle, to allow information to be collected, organized, and presen ted in a manner tailored

PAGE 85

85 "gadgets." A "gadget" is a portable web application that can be embedded in almost any Web page. Implementation of Participatory Telehealth Case Stud y Web 2.0 technologies and gadgets are integrated with a remote monitoring server in support of the patients and their extended care networks as shown in Figure 6 2. We utilize stepstone reference implementation [ 5 13 54 ] and extend it to include social networking components from Shindig [ 55 ]. The gadget rendering server is responsible for parsing and visualizing the gadget. The OpenSocial AP I [ 53 ] supports belongs to, as well as activities that he posted ( part A in Figure 6 2). Now, Josie is able to leverage a mashup displaying Ch these clinical gadgets provide a p ortable interface into his healthcare information (part B in Figure 6 2). It shows that their view of Ch a tus through care gadgets (part C in Figure 6 2). Once this data is persisted, Josie can use her patient management mashup and the network gain new insights into his status through the lens of his social network.

PAGE 86

86 Figure 6 2. A Participatory Telehealth System Architecture Illustrative Scenario We briefly explain this case study using an illustrative scenario. Charley, an independently living senior, is managing his diabetes and related conditions through parti cipatory telehealth with the help of his telehealth clinician, Josie. Charley's blood glucose level, weight, blood pressure and daily activity information is automatically e physical readings, broader context about Charley beyond basic profiling and monitoring proves increasingly valuable and accessible by utilizing his social network. Josie de cides to share this new gadget with his extended care network. Once members in the extended care network accept the gadget, it is added to their view. Then, they start to

PAGE 87

87 ork clients to the RMS to persist them as events and to aggregate them into a consolidated and collective social network input. Limitation Problem with participatory telehealth system is their lack of support for persuasion. Participatory telehealth is a symmetric it mostly provides capabilities to monitor and collect medical data by utilizing social networks but offer very limited means to affect and change behavior. While sensing and monitoring are crucial components of a telehealth system, interventio n and behavior alteration for affecting changes are equally important. Many people, especially the elderly, are resistant to change. Such resistance diminishes the impact factor of telehealth systems. Research and supportive technology for intervention and behavior alteration are urgently needed to counter this resistance to change and promote healthy lifestyles. Simple and nave approaches for intervention, such as directly telling people what they need to do, have not been overtly successful. Thus, there is need for a more advanced system. What we really need is persuasive power to make intervention and behavior alteration more effective [ 3 ]. Action based Behavior Model Instance for Participatory Telehealth Now, we describe how ABM can be utilized for participatory telehealth to enable persuasion. Participatory telehealth extends the monitoring of a patient by leveraging social networks in order to provide additional information beyond physical readings so that we can have a more complete view of the patient. We chose participatory telehealth for case study for the following reasons: 1. extended care network.

PAGE 88

88 2. We can harness social network effe cts to cyber influence, which requires very complicated and supplicated instruments as well as intricate technology channels, by exploiting human intelligence to relay such influence and represent a promising approach. Figure 6 3 shows the architecture fo r participatory telehealth integrated with ABM. used as human actuators to influence Charley to change his behavior. However, people and models. In order to utilize people as persuasive actuators, we need to give guidance and instruction. ABM enables such guidance a nd instruction through gadgets in social network clients. In this way, we can reduce the complexity of the system, and we can also create a more effective telehealth system by utilizing humans since they have more intelligence and more adaptability. As s hown in Figure 6 3, persuasion enabled participatory telehealth consists of cyber influence and cyber sense as well as social network and gadget related components. Cyber influence includes cyber actions, which can be actuated by a persuasive human actuato r through social networks to create a persuasive influence on Charley to make human actions and eventually change behavior. The persuasion enabled participatory telehealth system provides those reate persuasive influence. Cyber sense is composed of a sensing integrator, device manager (sensing part) and assess (evaluation part). Sensors, medical devices and human sensors are used to

PAGE 89

89 Fi gure 6 3. Architecture for Persuasion enabled Participatory Telehealth Illustrative Scenario We have network and how people in the network record and report their views of his status t hrough gadgets. Participatory telehealth extends monitoring by leveraging people in and to be guided to act as persuasive human actuators by leveraging ABM. ABM can partition cybe r system is further divided into cyber influence and cyber sesnse, which is used to sense and influence the user. Cyber influence uses a set of cyber actions to affect the u ser to change behavior through persuasive human actuators. Table 6 1 shows instruct ions for the cyber actions, such as inform, set goal, educate, remind and reward that were used in this scenario.

PAGE 90

90 Table 6 1. Instruction s for Cyber Actions Cyber Action Instruction Inform Please inform Charley about the importance and benefits and risks of checking glucose level s regularly, by referring to the following web link s: http://ndep.nih.gov/i have diabetes/index.aspx http://ndep.nih.gov/am i at risk/index.aspx Set Goal Please help Charley set goals according to the this guideline: S et one goal from glucose monitoring and an other goal to either take medications or exercise via the following recommendations: Exercise: 30 minutes of moderate level exercise daily Glucose Monitoring: At least once a day Taking medications: As prescribed Educate Charley needs help with using the glucose meter Someone who is familiar with the glucose meter needs to help Charley and teach him how to insert the test strip correctly us ing the interactive education material from the following link http://myglucosehealth.net/learningcenter/myglucohealth.net Remind Please remind Charley to his check glucose level s Reward Charley achieved the following goal: check glucose level s 3 times a day after having a meal. Please give him praise for achievement The Assess Tree (AT) is utilized in the cyber sense as the main methodology to measure user behavioral response to cyber influence. Table 6 2 describes the device, activity and context arti facts that will be utilized for the following scenario. Positive and negative situations, which are used for setting up AT, are described in Table 6 3. Table 6 2. Device, Activity and Context Artifacts Devices Device Actions Activities Contexts Glucose me ter, smart phone, pill box, video camera Turn on, turn off, sense glucose level, generate error code, send message, receive message, play video, open and close, sense food Measuring glucose level, eating, taking medication, setting goal Glucose level, error code, time, goals, writings

PAGE 91

91 Table 6 3. P/N Node Setting Action Node Sub Action Node P/N Node Situation Aware Self Aware P Node P1: Check more glucose level than before N Node N1: Do not attempt to check glucose level Behavior Aware P Node P 2: Take medication more correctly than before N Node N2: Take medication less correctly than before Plan Goal Setting Status P Node P3: Complete set goals as recommended N Node N3: Do not set goals Learn Device Knowledge P Node P4: Check glucose le vel successfully N Node N4: Fail to check glucose level Behavior Knowledge P Node P5: Take medication as prescribed N Node N5: Take medication incorrectly Recall On time Acting P Node P6: Check glucose level 3 times a day on time P7: Take medi cation on time N Node N6: Do not check glucose level on time N7: Do not take medication on time Act Goal related Activity P Node P8: Check glucose 3 times a day after having a meal within 30 minutes P9: Take medication as prescribed In the fo llowing scenario, we demonstrate how persuasion enabled participatory telehealth is built by utilizing ABM. Let us revisit the patient Charley. Charley is a 65 year old elderly patient who is newly diagnosed with diabetes. His primary doctor, William, orde rs Charley to check his glucose level as many times as he can every day because his glucose level variability is high. However, Charley considers this order overly excessive and vague and he believes that non adherence will be of little consequence. Charl ey decides to participate in a persuasion enabled participatory telehealth trial study after Josie informed him about it. The persuasion enabled participatory telehealth trial still utilizes his monitoring devices and his care network. The network consists of his family, friends and neighbors.

PAGE 92

92 For in his care network to take action s his condition, the system instructs people i n his care network via the gadget so that they can inform Charley of his condition and the risks of glucose level variability. His neighbor, Bill, who is an expert in diabetes, see s house to act as instructed Charley s tarts to understand the nature of his condition and becomes more aware of the risks. He is now motivated to follow the order. As a result, Charley starts to measure his glucose level several times a day but the measurement frequency varies a great deal so metimes he measures his glucose level eight times a day and other times he measures it only once a day. Charley needs to set a specific measurement goal so the system advises William to provide recommendation s for setting goals. William is notified of Char glucose level increase s significantly after having a meal. Therefore, he set s guideline s and recommendation s for goal setting as described in Table 6 4. Table 6 4. Goal Setting Guideline and Recommendation Gui deline Recommendation Set goals for glucose monitoring and either exercise or take medications Glucose Monitoring Taking Medications Exercising At least once a day after having a meal within 30 minutes As prescribed 30 minutes of daily moderate level ex ercise Based on the guideline and recommendation s the system instructs someone in care netw ork to help him set goal s His son sees the instruction and calls Charley to discuss setting goal s The y discuss it for a while and Charley concludes th at three times a day is a sufficient glucose monitoring goal He sets his second goal as

PAGE 93

93 the first day of the second week, he struggles to measure his glucose level. He tri es several times but gives up. The system catches that Charley fails to measure his glucose level that day. It recognizes the error code that indicates that Charley had inserted a test strip the wrong way. Again, the system notifies his care network throu gh the gadget by posting neighbor, Frank sees the instruction and teaches Charley how to insert the test stri p correctly. can also be utilized to remind Charley when ever he forgets and give praise as a reward when he achieves his goal s which will encourage him to continue with meeting his goals Thus, persuasion enabled particip atory telehealth successfully helps Charley to meet his daily measurement goal by leveraging people in his care network as persuasive human actuators.

PAGE 94

94 CHAPTER 7 CONCLUSION Computing technologies and products have become pervasive and are an essential par t of our lives. They are changing our way of life as well as our behaviors. Throughout the past decade, research has been conducted to utilize computing technology to change human behavior, which is known today as persuasive computing. Persuasive computing can be utilized as a powerful intervention tool to create a better and more effective healthcare system. Recently, considerable efforts have been made to apply persuasive technology in many domains, especially in the healthcare domain. Those efforts are gradually coming to fruition, however, several problems and challenges have yet to be overcome. The key challenges to the development of persuasive systems are: (1) how to create persuasion strategies and apply them to technological channels, (2) how to This dissertation has investigated solutions to those key challenges. For the first key challenge, we studied social and behavior science theories and developed an Acti on based Behavior Model (ABM) based on the collective knowledge gained from our studies. We intended to design ABM as a persuasion template that computer scientists can understand and utilize. For the second challenge, we recognized that user activity inf ormation alone is not adequate to accurately capture and characterize subtle differences in similar user behavior situations. We then proposed a new definition of a situation, which integrates and combines context and activity along with direct cybe rnetics (devices). Also, w e proposed a framework for designing situation recognition algorithms. After that w e presented ABM and a formal definition of a

PAGE 95

95 situation in Chapter 3. For the third challenge, we developed Assess Tree (AT) as a methodology for domain s pecific behavior assessment under ABM, as described in Chapter 4. We evaluated AT using randomly generated traces that modulate user behaviors at different compliance levels. The results show that AT is adeq uately sentient to variations in user compliance. We also conducted an experiment to see if AT can detect different characteristics among three different persons along with compliances. The results show that AT can capture different personas. Finally, we presented a case study to demonstrate how ABM can be used to enable persuasion in participatory telehealth in Chapter 6. It has been shown through trace driven simulation that AT is adeq uately sentient to variations in user compliance. Also, we have shown that AT properly captures the characteristic diff erences among three different persons. We plan to further validate AT through the following future works: (1) modeling cyber influences and their effects, and reflecting those effects to user compliance in a trace generator, and (2) implementing persuasion enabled participatory telehealth and conducting experiment s with real human subject s Another area we must consider in future research is providing the right ecosystem for inter disciplinary collaboration. Persuasive computing in nature is a mult i discipl inary research area that needs inter disciplinary collaboration among developers, psychologist s and domain experts. However, it is not easy to collaborate closely with people who have different backgrounds and knowledge. Therefore, the right ecosystem is requir ed to provide an environment where computer scientists, psychologists, and

PAGE 96

96 domain experts can naturally collaborate, even with strangers in developing a better and effective persuasive system. To address this issue, we are exploring methodologies or tools that psychologists and domain experts could easily employ to convert their knowledge of persuasion into utilizable resources for computer scientists or developers of persuasive systems.

PAGE 97

97 APPENDIX A ASSESS TREE IMPLEMENTATION This appendix presents Assess Tree API Specification in the next section.

PAGE 98

98 Assess Tree API Specification

PAGE 99

Contents Page 99 of 260 Contents Overview ................................ ................................ ................................ .................... 101 Package Summary ................................ ................................ ............................... 101 assesstree ................................ ................................ ................................ ................... 101 Act ................................ ................................ ................................ ......................... 103 Activity ................................ ................................ ................................ .................. 105 ActivityEvent ................................ ................................ ................................ ......... 107 ActivityEventListener ................................ ................................ ............................. 109 ActivityEventManager ................................ ................................ ........................... 109 ActivityName ................................ ................................ ................................ ......... 111 Assess ................................ ................................ ................................ .................. 114 AssessTree ................................ ................................ ................................ ........... 118 AssessTree.ActionNode ................................ ................................ ....................... 120 AssessTree.PNNode ................................ ................................ ............................ 122 AssessTree.SubActionNode ................................ ................................ ................. 123 AssessTreeOp ................................ ................................ ................................ ...... 126 Aware ................................ ................................ ................................ .................... 128 Behavior ................................ ................................ ................................ ................ 131 BehaviorAware ................................ ................................ ................................ ..... 133 BehaviorEvent ................................ ................................ ................................ ...... 137 BehaviorKnowledge ................................ ................................ .............................. 138 BMT ................................ ................................ ................................ ...................... 141 BMT.Type ................................ ................................ ................................ ............. 145 CBMT ................................ ................................ ................................ .................... 146 Context ................................ ................................ ................................ ................. 148 ContextEvent ................................ ................................ ................................ ........ 150 ContextEvent Listener ................................ ................................ ............................ 152 ContextEventManager ................................ ................................ .......................... 152 ContextName ................................ ................................ ................................ ........ 154 DataSetDB ................................ ................................ ................................ ............ 157 Date ................................ ................................ ................................ ...................... 159 Device ................................ ................................ ................................ ................... 163 DeviceActionName ................................ ................................ ............................... 166 DeviceEvent ................................ ................................ ................................ .......... 172 DeviceEventListener ................................ ................................ ............................. 174 DeviceEventManager ................................ ................................ ............................ 175 DeviceKnowledge ................................ ................................ ................................ 176 DeviceName ................................ ................................ ................................ ......... 178 Evaluator ................................ ................................ ................................ ............... 180 Event ................................ ................................ ................................ ..................... 182 EventComparator ................................ ................................ ................................ .. 184

PAGE 100

Contents Page 100 of 260 GoalRelatedActivity ................................ ................................ .............................. 185 GoalSettingSta tus ................................ ................................ ................................ 187 HistoryDB ................................ ................................ ................................ .............. 189 Learn ................................ ................................ ................................ ..................... 191 NNode ................................ ................................ ................................ ................... 194 Node ................................ ................................ ................................ ..................... 197 OnTimeActing ................................ ................................ ................................ ....... 199 Plan ................................ ................................ ................................ ....................... 202 PNode ................................ ................................ ................................ ................... 204 Recall ................................ ................................ ................................ .................... 208 SelfAware ................................ ................................ ................................ ............. 210 Situation ................................ ................................ ................................ ................ 213 SituationDB ................................ ................................ ................................ ........... 217 SituationE vent ................................ ................................ ................................ ....... 218 SituationEventListener ................................ ................................ .......................... 220 SituationEventManager ................................ ................................ ......................... 221 SituationName ................................ ................................ ................................ ...... 223 SubAction ................................ ................................ ................................ ............. 227 Time ................................ ................................ ................................ ...................... 229 TimeComparator ................................ ................................ ................................ ... 232 Tree ................................ ................................ ................................ ...................... 233 Util ................................ ................................ ................................ ......................... 234 assesstree.input ................................ ................................ ................................ .......... 235 ConvertDataSet ................................ ................................ ................................ .... 235 Pa rseDataSet ................................ ................................ ................................ ....... 237

PAGE 101

Overview Page 101 of 260 Overview Package Summary Page assesstree Provides classes and interfaces used in Assess Tree 101 assesstree.input Provides classes that are used in parsing and converting dataset 235 Package assesstree Interface Summary Page ActivityEventListener The listener interface for receiving Activity Event 109 ContextEventLi stener The listener interface for receiving Context Event 152 DeviceEventListener The listener interface for receiving Device Event 1 74 SituationEventListener The listener i nterface for receiving Situation Event 220 Class Summary Page Act Act action node implementation of the Assess Tree 103 Activity This class provides user activity information 105 ActivityEvent The class that indicates Activity Event 107 ActivityEventManager The class that manages Activity Event. 109 Assess Asse ss root node implementation of the Assess Tree 114 AssessTree Assess Tree implementation. 118 Aware Aware action node implementation of the Assess Tree 128 Behavior This class provides behavior information 131 BehaviorAware BehaviorAware sub action node implementation of the Assess Tree 133 BehaviorEvent T he class that indicates Behavior Event 137 BehaviorKnowledge BehaviorKnowledge sub action node implementation of the Assess Tree 138 BMT This class implements Behavior Mea surement Type F: Frequency D: Duration C: Completeness M: Metric T: Time 141 CBMT This class implements Combined Behavior Measurement Type 146 Context This class provides con text information 148 ContextEvent The class that indicates Context Event 150 ContextEventManager The class that manages Context Event. 152 DataSetDB This class contains database for dataset 157 Date This class provides date and methods to create, set, and compare date 159

PAGE 102

Class Summary Package assesstree Page 102 of 260 Device This class provides device information as well as device action information 163 DeviceEvent The class that indicates Device Event 172 DeviceEventManager The class that manages Device Event. 175 DeviceKnowledge DeviceKnowledge sub action node implementation of the Assess Tree 176 Evaluator Assess Tree Evaluator 180 Event The root cla ss from which all event state objects (e.g activity, device, context, and situation events) shall be derived. 182 EventComparator This class implements the comparator for Event 184 GoalRelatedActivity GoalRelatedActivity sub action node implementation of the Assess Tree 185 GoalSettingStatus GoalSettingStatus sub action node implementation of the Assess Tree 187 HistoryDB This class contains database for all events happened 189 Learn Learn action node implementation of the Assess Tree 191 NNode N Node implementation of the Assess Tree 194 Node Abstract class for Node of Tree 197 OnTimeActing OnTimeActing sub action node implementation of the Assess Tree 199 Plan Plan action node implementation of the Assess Tree 202 PNode P Node implementation of the Assess Tree 204 Recall Recall action node implementation of the Asse ss Tree 208 SelfAware SelfAware sub action node implementation of the Assess Tree 210 Situation This class provides situation information 213 SituationDB This class contains database for situation 217 SituationEvent The class that indicates Situation Event 218 SituationEventManager The class that manages D evice Event. 221 Time This class provides time and methods to create, set, and compare time 229 TimeComparator This class implements the comparator for Time 232 Tree This class provides Tree data structure 233 Util This class provides utility method 234 Enum Summary Page ActivityName Enumeration of Activ ity Name 111 AssessTree.ActionNode Enumeration of Action Node 120 AssessTree.PNNode Enumeration of P/N Node 122 AssessTree.SubActionNod e Enumeration of SubAction Node 123

PAGE 103

Enum Summary Package assesstree Page 103 of 260 AssessTreeOp Assess Tree Operators fp indicates f(p) operator which calculates P Node value fn indicates f(n) operator which calculates N Node value I indicates I operator which integrates one node value with the other node value U indicates U operator which unions behavior IDs and values into behavior set F indicates F operator which forward behavior ID and value all the way to the Action Node Rp indicates Rp operator which calcu late correlation value between P Node and Act value Rn indicates Rn operator which calculate correlation value between N Node and Act value 126 BMT.Type Enumeration of Behavior Measurement Type F: Frequency D: Durat ion C: Completeness M: Metric T: Time 145 ContextName Enumeration of Context Name 154 DeviceActionName Enumeration of Device Action Name 166 DeviceName Enumeration of Device Name 178 SituationName Enumerations of Situation Name 223 SubAction Enumeration of SubAction 227 assesstree Act jav a.lang.Object assesstree.Node assesstree.Act Direct Known Subclasses: GoalRelatedActivity public class Act extends Node Act action node implementation of the Assess Tree Field Summary Page GoalRelatedActivity goalrelatedactivity 104 Fields inherited from class assesstree. Node child pa rent size value Constructor Summary Page Act () 104 Act ( Node parent) 104

PAGE 104

assesstree.Ac t Page 104 of 260 Method Summary Page double getChildValue () 105 double getChildValue ( AssessTreeOp op) 105 double getChildValue ( Node node) 105 double getChildValue ( Node node, AssessTreeOp op) 105 GoalRelatedActivity getGoalRelatedActivity () R eturns GoalRelatedActivity 104 String toString () 105 Methods inherited from class assesstree. Node add remove Methods inher ited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail goalrelatedactivity GoalRelatedActivity goalrelatedactivity Constructor Detail Act public Act () Ac t public Act ( Node parent) Method Detail getGoalRelatedActivity public GoalRelatedActivity getGoalRelatedActivity () Returns GoalRelatedActivity Returns: GoalRelatedActivity

PAGE 105

assesstree.Ac t Page 105 of 260 getChildValue public double getC hildValue () Overrides: getChildValue in class Node getChildValue public double getChildValue ( Node node) Overrides: getChildValue in class Node getChildValue public double getChildValue ( AssessTreeOp op) Overrides: getChildValue in class Node getChildValue public double getChildValue ( No de node, AssessTreeOp op) Overrides: getChildValue in class Node toString public String toString () Overrides: toString in class Object assesstree Acti vity java.lang.Object assesstree.Activity

PAGE 106

assesstree.Activity Page 106 of 260 public class Activity extends Object This class provides user activity information Field Summary Page ActivityName name 106 boolean value 106 Constructor Summary Page Activity () 106 Activity ( ActivityName name) 107 Activity ( ActivityName name, boolean value) 107 Method Summary Page ActivityName getActivityName () 107 void setActivityName ( Ac tivityName name) 107 String toString () 107 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail name ActivityName name value boolean value Constructor Detail Activity public Activity ()

PAGE 107

assesstree.Activity Page 107 of 260 Activity public Activity ( ActivityName name) Activity public Activity ( ActivityName name, boolean value) Method Detail getActivityName public ActivityName getActivityName () setActivityName public void setActivityName ( ActivityName name) toString public String toString () Overrides: toString in cl ass Object assesstree ActivityEvent java.lang.Object java.util.EventObject assesstree.ActivityEvent All Implemented Interfaces: Serializable public class ActivityEvent extends EventObject The class that indicates Activity Event

PAGE 108

assesstree.ActivityEvent Page 108 of 260 Field Summary P age Activity _activity 108 Date _date 108 Fields inherited from class java.util.EventObject source Constructor Summary Page ActivityEvent (Object source, Activity activity, Date date) Constructs ActivityEvent object 108 Method Summary Page Activity activity () Returns Activity 109 Methods inherited from class java.util.EventObject getSource, toString Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyA ll, wait, wait, wait Field Detail _activity Activity _activity _date Date _date Constructor Detail ActivityEvent public ActivityEvent (Object source, Activity activity, Date date) Constructs ActivityEvent object

PAGE 109

assesstree.ActivityEvent Page 109 of 260 Parameters: source The object on which event initially occurred activity User activity information date The date when event occurred Method Detail ac tivity public Activity activity () Returns Activity Returns: Activity assesstree ActivityEventListener All Known Implementing Classes: SituationEventManager public interface ActivityEventListener The listen er interface for receiving Activity Event Method Summary Page void handleActivityEvent ( ActivityEvent ae) 109 Method Detail handleActivityEvent void handleActivityEvent ( ActivityEvent ae) assesstree ActivityEventManager java.lang.Object assesstree.ActivityEventManager

PAGE 110

assesstree.ActivityEventManager Page 110 of 260 public class ActivityEventManager extends Object The class that manages Activity Event. ActivityEventManager is responsible for managing Activity Eve nt subscription, detecting and handling Activity Event Constructor Summary Page ActivityEventManager () 110 Method Summary Page void _fireActivityEvent ( Activity activ ity, Date date) 110 void _fireActivityEvent ( ActivityEvent ae) 111 void addActivityEventListener ( ActivityEv entListener al) 110 void removeActivityEventListener ( ActivityEventListener al) 110 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, n otify, notifyAll, toString, wait, wait, wait Constructor Detail ActivityEventManager public ActivityEventManager () Method Detail addActivityEventListener public void addActivityEventListener ( ActivityEventListener al) removeActi vityEventListener public void removeActivityEventListener ( ActivityEventListener al) _fireActivityEvent void _fireActivityEvent ( Activity activity, Date date)

PAGE 111

assesstree.ActivityEventManager Page 111 of 260 _fireActivityEvent void _fireActivityEvent ( ActivityEvent ae) assesstree ActivityName java.lang.Object java.lang.Enum< ActivityName > assesstree.ActivityName All Implemented Interfaces: Comparable< ActivityName >, Serializable public enum ActivityName extends Enum< ActivityName > Enumeration of Activity Name Enum Constant Summary Page Drinking 113 Eating 113 MeasuringBodyFat 112 MeasuringGlucoseLevel 112 MeasuringWeightScale 112 NoDrinking 114 NotEating 114 NotMeasuringBodyFat 113 NotMeasuringGlucoseLevel 113 NotMeasuringWeightScale 113 NotSettingGoal 113 NotTakingMedication 113 NotWalking 113 NoUsingSmartPhone 114 SettingGoal 112 TakingMedication 112 UsingSmartPhone 113 Walking 112

PAGE 112

assesstree.ActivityName Page 112 of 260 Method Summary Page static ActivityName valueOf (String name) 114 static ActivityName [] values () 114 Methods inherited from class java.lang.Enum clone, compareTo, equ als, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf Methods inherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait Enum Constant Detail MeasuringGlucoseLevel public static final ActivityName MeasuringGlucoseLevel MeasuringWeightScale public static final ActivityName MeasuringWeightScale MeasuringBodyFat public static final ActivityName MeasuringBodyFat TakingMedication publi c static final ActivityName TakingMedication Walking public static final ActivityName Walking SettingGoal public static final ActivityName SettingGoal

PAGE 113

assesstree.ActivityName Page 113 of 260 Eating public static final ActivityName Eating Drinking public static final ActivityName Drinking UsingSmartPhone public static final ActivityName UsingSmartPhone NotMeasuringGlucoseLevel public static final ActivityName NotMeasuringGlucoseLevel NotMeasuringWeightScale public static final ActivityName NotMeasuringWeightScale NotMeasuringBodyFat public static final ActivityName NotMeasuringB odyFat NotTakingMedication public static final ActivityName NotTakingMedication NotWalking public static final ActivityName NotWalking NotSettingGoal public static final ActivityName NotSettingGoal

PAGE 114

assesstree.ActivityName Page 114 of 260 NotEating public static final ActivityName NotEating NoDrinking public static final ActivityName NoDrinking NoUsingSmartPhone public static final ActivityName NoUsi ngSmartPhone Method Detail values public static ActivityName [] values () valueOf public static ActivityName valueOf (String name) assesstree Assess java.lang.Object assesstree.Node assesstree.Assess public class Assess extends Node Assess root node implementation of the Assess Tree Field Summary Page Act act 115 Aware aware 116 Learn learn 116 Plan plan 116

PAGE 115

assesstree.Assess Page 115 of 260 Recall recall 116 static double UnknownBMT 116 Fields inherited from class assesstree. Node child parent size value Constructor Summary Page Assess () 116 Method Summary Page static Double assess ( Behavior b, Time time, int size) 116 Act getAct () 117 Aware getAware () 116 double getChildValue () 118 double getChildValue ( AssessTreeOp op) 118 double getChildValue ( Node node) 118 double getChildValue ( Node node, AssessTreeOp op) 118 Learn getLearn () 117 Plan getPlan () 117 Recall getRecall () 117 void setAct ( Act act) 117 void setAware ( Aware aware) 117 void setLearn ( Learn learn) 117 void setPlan ( Plan plan) 117 void setRecall ( Recall recall) 117 String toString () 118 Methods inherited from class assesstree. Node add remove Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail act Act act

PAGE 116

assesstree.Assess Page 116 of 260 aware Aware aware learn Learn learn plan Plan plan recall Recall recall UnknownBMT static final double UnknownBMT Constructor Detail Assess Assess () Method Detail assess public static Double as sess ( Behavior b, Time time, int size) getAware public Aware getAware ()

PAGE 117

assesstree.Assess Page 117 of 260 getPlan public Plan getPlan () getLearn public Learn getLearn () getRecall public Recall getRecall () getAct public Act getAct () setAware public void setAware ( Aware aware) setPlan pu blic void setPlan ( Plan plan) setLearn public void setLearn ( Learn learn) setRecall public void setRecall ( Recall recall) setAct public void setAct ( Act act)

PAGE 118

assesstree.Assess Page 118 of 260 getChildValue public double getChildValue () Overrides: getChildValue in class Node getChildValue public double getChildValue ( Node node) Overrides: getChild Value in class Node getChildValue public double getChildValue ( AssessTreeOp op) Overrides: getChildValue in class Node getChildValue public double getChil dValue ( Node node, AssessTreeOp op) Overrides: getChildValue in class Node toString public String toString () Overrides: toString in class Object assesstree AssessTree java.lang.Object assesstree.Tree assesstree.AssessTree

PAGE 119

assesstree.AssessTree Page 119 of 260 public class AssessTree extends Tree Assess Tree implementation. It contains Action Nodes, Sub Actio n Nodes, P Nodes, and N Nodes Nested Class Summary Page static enum AssessTree.ActionNode Enumeration of Action Node 120 static enum AssessTree.PNNode Enumeration of P/ N Node 122 static enum AssessTree.SubActionNode Enumeration of SubAction Node 123 Field Summary Page Assess root 119 Con structor Summary Page AssessTree () Constructs Assess Tree 119 Method Summary Page Assess getRoot () Returns Root 120 Methods i nherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Field Detail root Assess root Constructor Detail AssessTree public AssessTree () Constructs Assess Tree

PAGE 120

assesstree.AssessTree Page 120 of 260 Method Detail getRoot public Assess getRoot () Returns Root Returns: Root of Assess Tree, which is Assess assesstree AssessTree.ActionNode java.lang.Object java.lang.Enum< AssessTree.ActionNode > assesstree.AssessTree.ActionNode All Implemented Interfaces: Comparable< AssessTree.ActionNode >, Serializable Enclosing class: AssessTree public static enum AssessTree.ActionNode extends Enum< AssessTree.ActionNode > Enumeration of Action Node Enum Constant Summary Page Act 121 Aware 121 Learn 121 Plan 121 Recall 121 Field Summary Page static int num 121 Method Summary Page static AssessTree.ActionNode valueOf (String name) 122

PAGE 121

assesstree.AssessTree.ActionNode Page 121 of 260 static AssessTree.ActionNode [] values () 122 Methods inherited from class java.lang.Enum clone, compareTo, equals, finalize, getDec laringClass, hashCode, name, ordinal, toString, valueOf Methods inherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait Enum Constant Detail Aware public static final AssessTree.ActionNode Aware P lan public static final AssessTree.ActionNode Plan Learn public static final AssessTree.ActionNode Learn Recall public static final AssessTree.ActionNode Recall Act public static final AssessTree.ActionNode Act Field Detail num public static final int num

PAGE 122

assesstree.AssessTree.ActionNode Page 122 of 260 Method Detail values public static AssessTree.ActionNode [] values () valueOf public static AssessTree. ActionNode valueOf (String name) assesstree AssessTree.PNNode java.lang.Object java.lang.Enum< AssessTree.PNNode > assesstree.AssessTree.PNNode All Implemented Interfaces: Comparable< AssessTree.PNNo de >, Serializable Enclosing class: AssessTree public static enum AssessTree.PNNode extends Enum< AssessTree.PNNode > Enumeration of P/N Node Enum Constant Summary Page NNode 123 PNode 123 Field Summary Page static int num 123 Method Summary Page static AssessTree.PNNode valueOf (Stri ng name) 123 static AssessTree.PNNode [] values () 123

PAGE 123

assesstree.AssessTree.PNNode Page 123 of 260 Methods inherited from class java.lang.Enum clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordi nal, toString, valueOf Methods inherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait Enum Constant Detail PNode public static final AssessTree.PNNode PNode NNode public static final AssessTree.PNNode NNode Field Detail num public static final int num Method Detail values public static AssessTree.PNNode [] values () valueOf public static AssessTree.PNNode valueOf (String na me) assesstree AssessTree.SubActionNode java.lang.Object java.lang.Enum< AssessTree.SubActionNode > assesstree.AssessTree.SubActionNode

PAGE 124

assesstr ee.AssessTree.SubActionNode Page 124 of 260 All Implemented Interfaces: Comparable< AssessTree.SubActionNod e >, Serializable Enclosing class: AssessTree public static enum AssessTree.SubActionNode extends Enum< AssessTree.SubActionNode > Enumeration of SubAction Node Enum Constant Summary Page BehaviorAware 125 BehaviorKnowledge 125 DeviceKnowledge 125 GoalRelatedActivity 125 G oalSettingStatus 125 OnTimeActing 125 SelfAware 124 Field Summary Page static int num 125 Method Summary Page st atic AssessTree.SubActionNode valueOf (String name) 126 static AssessTree.SubActionNode [] values () 125 Methods inherited fro m class java.lang.Enum clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf Methods inherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait Enum Constant Detail SelfAware publi c static final AssessTree.SubActionNode SelfAware

PAGE 125

assesstr ee.AssessTree.SubActionNode Page 125 of 260 BehaviorAware public static final AssessTree.SubActionNode BehaviorAware GoalSettingStatus public static final AssessTree.SubActio nNode GoalSettingStatus DeviceKnowledge public static final AssessTree.SubActionNode DeviceKnowledge BehaviorKnowledge public static final AssessTree.SubActionNode BehaviorKnowledge OnTimeActing public static final AssessTree.SubActionNode OnTimeActing GoalRelatedActivity public static final AssessTree.SubActionNode GoalRelatedActivity Field Detail num public static final int num Method Detail values p ublic static AssessTree.SubActionNode [] values ()

PAGE 126

assesstr ee.AssessTree.SubActionNode Page 126 of 260 valueOf public static AssessTree.SubActionNode valueOf (String name) assesstree AssessTreeOp java.lang.Object java.lang.Enum< Asse ssTreeOp > assesstree.AssessTreeOp All Implemented Interfaces: Comparable< AssessTreeOp >, Serializable public enum AssessTreeOp extends Enum< AssessTreeOp > Assess Tree Operators fp indicates f(p) oper ator which calculates P Node value fn indicates f(n) operator which calculates N Node value I indicates I operator which integrates one node value with the other node value U indicates U operator which unions behavior IDs and values into behavior set F ind icates F operator which forward behavior ID and value all the way to the Action Node Rp indicates Rp operator which calculate correlation value between P Node and Act value Rn indicates Rn operator which calculate correlation value between N Node and Act v alue Enum Constant Summary Page C 127 F 127 fn 127 fp 127 I 127 Rn 127 Rp 127 U 127 Method Summary Page static AssessTreeOp valueOf (String name) 128 static AssessTreeOp [] values () 128 Methods inherited from class java.lang.Enum clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ord inal, toString, valueOf

PAGE 127

assesstree.AssessTreeOp Page 127 of 260 Methods inherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait Enum Constant Detail fp public static final AssessTreeOp fp fn public static final A ssessTreeOp fn I public static final AssessTreeOp I U public static final AssessTreeOp U C public static final AssessTreeOp C F public static final Asse ssTreeOp F Rp public static final AssessTreeOp Rp Rn public static final AssessTreeOp Rn

PAGE 128

assesstree.AssessTreeOp Page 128 of 260 Method Detail values public static AssessTreeOp [] values () valueOf public static AssessTreeOp valueOf (String name) assesstree Aware java.lang.Object assesstree.Node assesstree.Aware Direct Known Subclasses: BehaviorAware SelfAware public class Aware extends Node Aware action node implementation of the Assess Tree Field Summary Page BehaviorAware behavioraware 129 Sel fAware selfaware 129 Fields inherited from class assesstree. Node child parent size va lue Constructor Summary Page Aware () 129 Aware ( Node parent) 129 Aware ( Node parent, SelfAware selfaware, BehaviorAware behavioraware) 1 29 Method Summary Page BehaviorAware getBehaviorAware () 130

PAGE 129

assesstree.Aware Page 129 of 260 double getChildValue () 130 double getChildValue ( AssessTreeOp op) 130 double getChildValue ( Node node) 130 d ouble getChildValue ( Node node, AssessTreeOp op) 130 SelfAware getSelfAware () 130 double integrate () 130 String toString () 131 Methods inherited from class assesstree. Node add remove Methods inh erited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail behavioraware BehaviorAware behavioraware selfaware SelfAware selfaware Constructor Detail Aware public Aware () Aware public Aware ( Node parent) Aware public Aware ( Node parent, SelfAware selfaware, Beh aviorAware behavioraware)

PAGE 130

assesstree.Aware Page 130 of 260 Method Detail getSelfAware public SelfAware getSelfAware () getBehaviorAware public BehaviorAware getBehaviorAware () integrate public double integrate () getChildValue public do uble getChildValue () Overrides: getChildValue in class Node getChildValue public double getChildValue ( Node node) Overrides: getChildValue in class Node getChildValue public double getChildValue ( AssessTreeOp op) Overrides: getChildValue in class Node getChildValue public double getChildValue ( Node node, AssessTreeOp op) Overrides: getChildValue in class Node

PAGE 131

assesstree.Aware Page 1 31 of 260 toString public String toString () Overrides: toString in class Object assess tree Behavior java.lang.Object assesstree.Situation assesstree.Behavior public class Behavior extends Situation This class provides behavior information Field Summary Page BMT bmt 132 double realvalue 132 double value 132 Fields inherited from class assesstree. Situation activity context device isAcitivity isContext isDevice name user Constructor Summary Page Behavior () 132 Behavior ( Situation s, BMT bmt) 132 Behavi or ( SituationName name, Device device, Activity activity, Context context, BMT bmt) 132 Method Summary Page BMT getBMT () 133 void setBMT ( BMT bmt) 133 void setSituation ( Situation s) 133 String toString () Returns a string representation of this component and its values. 133

PAGE 132

assesstree.Behavior Page 132 of 260 Methods inherited from class assesstree. Situation get Activity getContext getDevice getSituationName setActivity setContext setDevice setSituationName Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail bmt BMT bmt realvalue double realvalue value double value C onstructor Detail Behavior public Behavior () Behavior Behavior ( Situation s, BMT bmt) Behavior Behavior ( SituationName name, Device devic e, Activity activity, Context context, BMT bmt)

PAGE 133

assesstree.Behavior Page 133 of 260 Method Detail setSituation public void setSituation ( Situation s) setBMT public v oid setBMT ( BMT bmt) getBMT public BMT getBMT () toString public String toString () Returns a string representation of this component and its values. Overrides: toString in class Situation Returns: a string representation of this component assesstree BehaviorAware java.lang.Object assesstree.Node assesstree.Aware assesstree.BehaviorAware public class BehaviorAware extends Aware BehaviorAware sub action node implementation of the Assess Tree Field Summary Page NNode nnode 134 PNode pnode 135

PAGE 134

assesstree.BehaviorAware Page 134 of 260 Fields inherited from class assesstree. Aware behavioraware selfaware Fields inherited from class assesstree. Node child parent size value Constructor Summary Page BehaviorAware () 135 BehaviorAware ( Node parent) 135 BehaviorAware ( Node parent, PNode pnode, NNode nnode) 135 Met hod Summary Page double getChildValue () 136 double getChildValue ( AssessTreeOp op) 136 double getChildValue ( Node node) 136 double getChildValue ( Node node, AssessTreeOp op) 136 NNode getNNode () 135 PNode getPNode () 135 double getValue () 136 void setNNode ( NNode nnode) 135 void setPNode ( PNode pnode) 135 String toString () 136 Methods inherited from class assesstree. Aware getBehaviorAware getSelfAware integrate Methods inherited from class assesstree. Node add remove Methods inherited f rom class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail nnode NNode nnode

PAGE 135

assesstree.BehaviorAware Page 135 of 260 pnode PNode pnode Constructor Detail BehaviorAware public Beh aviorAware () BehaviorAware public BehaviorAware ( Node parent) BehaviorAware public BehaviorAware ( Node parent, PNode pnode, NNode nnode) Method Detail getPNode public PNode getPNode () getNNode public NNode getNNode () setPNode public void setPNode ( PNode pnode) setNNode public void setNNode ( NNode nnode)

PAGE 136

assesstree.BehaviorAware Page 136 of 260 getChildValue public double getChildValue () Overrides: getChildValue in class Aware getChildValue public double getChildValue ( Node node) Overr ides: getChildValue in class Aware getChildValue public double getChildValue ( AssessTreeOp op) Overrides: getChildValue in class Awa re getChildValue public double getChildValue ( Node node, AssessTreeOp op) Overrides: getChildValue in class Aware getValue pub lic double getValue () toString public String toString () Overrides: toString in class Aware

PAGE 137

assesstree.BehaviorEvent Page 137 of 260 assesstree BehaviorEvent java.lang.Object java.util.EventObject assesstree.BehaviorEvent All Implemente d Interfaces: Serializable public class BehaviorEvent extends EventObject The class that indicates Behavior Event Field Summary Page Behavior _behavior 137 Time _time 138 Fields inherited from class java.util.EventObject source Constructor Summary Page BehaviorEvent (Object source, Behavior behavior, Time time) 138 Method Summary Page Behavior behavior () Returns Behavior 138 Methods inherited from class java.util.EventObject getSource, toString Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail _behavior Behavior _behavior

PAGE 138

assesstree.BehaviorEvent Page 138 of 260 _time Time _time Constructor Detail Be haviorEvent public BehaviorEvent (Object source, Behavior behavior, Time time) Parameters: source he object on which event initially occurred behavior Behavior i nformation time The time when event occurred Method Detail behavior public Behavior behavior () Returns Behavior Returns: Behavior assesstree BehaviorKnowledge java.lang.Object assesstree.Node assesstree.Learn assesstree.BehaviorKnowledge public class BehaviorKnowledge extends Learn BehaviorKnowledge sub action node implementation of the Assess Tree Field Summary Page NNode nnode 139 PNode pnode 139

PAGE 139

assesstree.BehaviorKnowledge Page 139 of 260 Fields inherited from class assesstree. Learn behaviorkn owledge deviceknowledge Fields inherited from class assesstree. Node child parent size value Cons tructor Summary Page BehaviorKnowledge () 140 BehaviorKnowledge ( Node parent) 140 Method Summary Page double getChildValue ( ) 140 NNode getNNode () 140 PNode getPNode () 140 double getValue () 140 String toString () 140 Methods inherited from class assesstree. Learn getBehaviorKnowledge getChildValue getChi ldValue getChildValue getDeviceKnowledge Methods inherited from class assesstree. Node add remove Methods inherited from cl ass java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail nnode NNode nnode pnode PNode pnode

PAGE 140

assesstree.BehaviorKnowledge Page 140 of 260 Constructor Detail BehaviorKnowledge public Behav iorKnowledge () BehaviorKnowledge public BehaviorKnowledge ( Node parent) Method Detail getPNode public PNode getPNode () getNNode public NNode getNNode () getChildValue public doubl e getChildValue () Overrides: getChildValue in class Learn getValue public double getValue () toString public String toString () Overrides: toString in class Learn

PAGE 141

assesstree.BMT Page 141 of 260 assesstree BMT java.lang.Object assesstree.BMT Direct Known Subclasses: CBMT public class BMT extends Object This class implements Behavior Measurement Type F: Frequency D: Duration C: Completeness M: Metric T: Ti me Nested Class Summary Page static enum BMT.Type Enumeration of Behavior Measurement Type F: Frequency D: Duration C: Completeness M: Metric T: Time 145 Field Summary Page BMT C 142 BMT D 142 BMT F 142 int length 142 BMT M 142 Object metric 143 Object refVal 143 BMT T 143 Object tolVal 143 BMT.Type type 143 Constructor Summary Page BMT () 143 BMT ( BMT.Type type) 143 BMT ( BMT.Type type, Object refVal) 143 BMT ( BMT.Type type, Object refV al, Object metric) 143

PAGE 142

assesstree.BMT Page 142 of 260 Method Summary Page int getLength () 145 Object getMetric () 144 Object getRefVal () 144 Object getTolVal () 144 BMT.Type getType () 144 void setLength (int length) 144 void setMetri c (Object metric) 144 void setRefVal (Object refVal) 144 void setTolVal (Object tolVal) 144 void setType ( BMT.Ty pe type) 144 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Field Detail C BMT C D BMT D F BMT F length int length M BMT M

PAGE 143

assesstree.BMT Page 143 of 260 metric Object metric refVal Object refVal T BMT T tolVal Object tolVal type BMT.Type type Constructor Detail BMT publ ic BMT () BMT BMT ( BMT.Type type) BMT BMT ( BMT.Type type, Object refVal) BMT BMT ( BMT.Type type, Object refVal, Object metric)

PAGE 144

assesstree.BMT Page 144 of 260 Method Detail setType public void setType ( BMT.Type type) setRefVal public void setRefVal (Object refVal) setMetric public void setMetric (Object metric) setTolVal public void setTolVal (Object tolVal) setLength public void setLength (int length) getType public BMT.Type getType () getRefVal public Object getRefVal () getMetric public Object getMetric () getTolVal public Object getTolVal ()

PAGE 145

assesstree.BMT Page 145 of 260 getLength public int getLength () assesstree BMT.Type java.lang.Object java.lang.Enum< BMT.Type > assesstree.BMT.Type All Implemented Interfaces: Comparable< BMT.Type >, Serializable Enclosing class: BMT < R > public static enum BMT.Type extends Enum< BMT.Type > Enumeration of Behavior Measurement Type F: Frequency D: Duration C: Completeness M: Metric T: Time Enum Constant Summary Page C 146 D 146 F 146 M 146 T 146 Method Summary Page static BMT.Type valueOf (String name) 146 static BMT.Type [] values () 146 Methods inherited from class java.lang.Enum clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf Methods i nherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait

PAGE 146

assesstree.BMT.Type Page 146 of 260 Enum Constant Detail F public static final BMT.Type F D public static final BMT.Type D C public static final BMT.Type C M public static final BMT.Type M T public static final BMT.Type T Method Detail values public static BMT.Type [] values () valueOf public static BMT.Type valueOf (String name) assesstree CBMT java.lang.Object assesstree.BMT assesstree.CBMT

PAGE 147

assesstree.CBMT Page 147 of 260 public class CBMT extends BMT This class implements Combined Behavior Measurement Type Nested classes/interfaces inherited from class assesstree. BMT BMT.Type Field Summary Page ArrayList< BMT > child 147 int size 147 Fields inherited from class assesstree. BMT C D F length M metric refVal T tolVal type Constructor Summary Page CBMT () 148 Method Summary Page void add ( BMT bmt) 148 void remove ( BMT bmt) 148 Methods inherited from class assesstree. BMT getLength getMetric getRefVal getTolVal getType setLength setMetric setRefVal setTolVal setType Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Field Detail child ArrayList< BMT > child size int size

PAGE 148

assesstree.CBMT Page 148 of 260 Constructor Detail CBMT public CBMT () Method Detail add public void add ( BMT bmt) remove public void remove ( BMT bmt) assesstree Context java. lang.Object assesstree.Context public class Context extends Object This class provides context information Field Summary Page ContextName name 149 Object value 14 9 Constructor Summary Page Context () 149 Context ( ContextName name) 149 Context ( ContextName name, Object value) 149 Method Summary Page ContextName getContextName () 149 Object getValue () 150

PAGE 149

assesstree.Context Page 149 of 260 void setContextName ( ContextName name) 150 void setValue (Object value) 150 String toString () 150 Methods inherited from class j ava.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail name ContextName name value Object value Constructor Detail Context public Context () Context public Context ( ContextName name) Context public Context ( ContextName name, Object value) Method Detail getContextName public ContextName getContextName ()

PAGE 150

assesstree.Context Page 150 of 260 getValue public Object getValue () setContextName public void setContextName ( ContextName name) setValue public void setValue (Object value) toString public String toString () Overrides: toString in class Object assesstree ContextEvent java.lang.Object java.u til.EventObject assesstree.ContextEvent All Implemented Interfaces: Serializable public class ContextEvent extends EventObject The class that indicates Context Event Field Summary Page Context _con text 151 Date _date 151 Fields inherited from class java.util.EventObject source

PAGE 151

assesst ree.ContextEvent Page 151 of 260 Constructor Summary Page ContextEvent (Object source, Context context, Date date) Constructs Context Event 151 Method Summary Page Context context () Returns Context 152 Methods inherited from class java.util.EventObject getSource, toString Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail _context Context _context _date Date _date Constructor Detail ContextEvent public ContextEvent (Object source, Context context, Date date) Construct s Context Event Parameters: source The object on which event initially occurred context Context information date The date when event occurred

PAGE 152

assesst ree.ContextEvent Page 152 of 260 Method Detail context public Context context () Returns Context Returns: Context a ssesstree ContextEventListener All Known Implementing Classes: SituationEventManager public interface ContextEventListener The listener interface for receiving Context Event Method Summary Page void handl eContextEvent ( ContextEvent ce) 152 Method Detail handleContextEvent void handleContextEvent ( ContextEvent ce) assesstree ContextEventManager java.lang.Object assesstree.ContextEventMan ager public class ContextEventManager extends Object The class that manages Context Event. ContextEventManager is responsible for managing Context Event subscription, detecting and handling Context Event

PAGE 153

assesstree.ContextEventManager Page 153 of 260 Constructor Summary Page ContextEventManager () 153 Method Summary Page void _fireContextEvent ( Context context, Date date) 153 void _fireContextEven t ( ContextEvent ce) 153 void addContextEventListener ( ContextEventListener cl) 153 void removeContextEventListener ( ContextEventListener cl) 153 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Constructor Detail ContextEventManager public ContextE ventManager () Method Detail addContextEventListener public void addContextEventListener ( ContextEventListener cl) removeContextEventListener public void removeContextEventListener ( ContextEventListener cl) _fireContextEvent void _fireContextEvent ( Context context, Date date) _fireContextEvent void _fireContextEvent ( ContextEvent ce)

PAGE 154

assesstree.ContextName Page 154 of 260 assesstree ContextName java. lang.Object java.lang.Enum< ContextName > assesstree.ContextName All Implemented Interfaces: Comparable< ContextName >, Serializable public enum ContextName extends Enum< Conte xtName > Enumeration of Context Name Enum Constant Summary Page BodyFat 155 Default 155 FoodCategory 156 Gl ucoseLevel 155 Liter 155 NoBodyFat 156 NoFoodCategory 156 NoGlucoseLevel 156 NoLiter 156 NoStepCount 156 NoTime 156 NoWater 157 NoWeight 156 StepCount 155 Time 155 Water 156 Weight 155 Method Summary Page static ContextName valueOf (String name) 157 static ContextName [] values () 157

PAGE 155

assesstree.ContextName Page 155 of 260 Methods inherited from class java.lang.Enum clone, comp areTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf Methods inherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait Enum Constant Detail Default public static final ContextName Default GlucoseLevel public static final ContextName GlucoseLevel Weight public static final ContextName Weight BodyFat public static final ContextName BodyFat Ti me public static final ContextName Time StepCount public static final ContextName StepCount Liter public static final ContextName Liter

PAGE 156

assesstree.ContextName Page 156 of 260 FoodCategory public static final ContextName FoodCategory Water public static final ContextName Water NoGlucoseLevel public static final ContextName NoGlucoseLevel NoWeight public static final Con textName NoWeight NoBodyFat public static final ContextName NoBodyFat NoTime public static final ContextName NoTime NoStepCount public static final ContextName NoStepCount NoLi ter public static final ContextName NoLiter NoFoodCategory public static final ContextName NoFoodCategory

PAGE 157

assesstree.ContextName Page 157 of 260 NoWater public static final ContextName NoWater Method Detail values pub lic static ContextName [] values () valueOf public static ContextName valueOf (String name) assesstree DataSetDB java.lang.Object assesstree.DataSetDB public class DataSetDB extends Object This class con tains database for dataset Field Summary Page Comparator< Event > comparator 158 PriorityQueue< Event > DB 158 Date end 158 Date start 158 Constructor Summary Page DataSetDB () 158 Dat aSetDB (int initialCapacity) 158 Method Summary Page void addEvent ( Event e) 159 Date getEndDate () 159 Date getStartDate () 159

PAGE 158

assesstree.DataSetDB Page 158 of 260 Event peekEvent () 159 Event removeEvent () 159 void setEndDate ( Date date) 159 void setStartDate ( Date date) 159 Methods inherited from class java.lang.Object clon e, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Field Detail comparator Comparator< Event > comparator DB PriorityQueue< Event > DB end Date end start Date start Constructor Detail DataSetDB public DataSetDB () DataSetDB public DataSetDB (int initialCapacity)

PAGE 159

assesstree.DataSetDB Page 159 of 260 Method Detail addEvent public void addEvent ( Event e) removeEvent public Event removeEvent () peekEvent public Event peekEvent () getStartDate public Date getStartDate () setStartDate public void setStartDate ( Date date) getEndDate public Date getEndDate () setEndDate public void setEndDate ( Date date) assesstree Date java.lang.Object assesstree.Date All Implemented Interfaces: Comparable< Date >

PAGE 160

assesstree.Date Page 160 of 260 public class Date ex tends Object implements Comparable< Date > This class provides date and methods to create, set, and compare date Field Summary Page int day 161 int hour 161 int min 161 int month 161 int sec 161 int year 161 Constructor Summary Page Date () 161 Date (int year, int month, int day, int hour, int min) 161 Date (int year, int month, int day, int hour, int min, int sec) 162 Method Summary Page int compareTo ( Date date) 163 static Date createDate (String dateStr, String dateDelimiter) 163 static Date createDate (String dateStr, String timeStr, String dateDelimiter, String timeDelimiter) 163 String getDate () 162 int getDa y () 162 int getHour () 162 int getMin () 162 int getMonth () 162 int getSec () 162 String getTime () 163 int getYear () 162 void setDate (int year, int month, int day, int hour, int min, int sec) 163 String toString () 163 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

PAGE 161

assesstree.Date Page 161 of 260 Field Detail day int day hour int hour min int min month int month sec i nt sec year int year Constructor Detail Date public Date () Date Date (int year, int month, int day, int hour, int min)

PAGE 162

assesstree.Date Page 162 of 260 Date Date (int year, int month, int day, int hour, int min, int sec) Method Detail getYea r public int getYear () getMonth public int getMonth () getDay public int getDay () getHour public int getHour () getMin public int getMin () getSec public int getSec () getDate public String getDate ()

PAGE 163

assesstree.Date Page 163 of 260 getTime public String getTime () setDate public void setDate (int year, int month, int day, int hour, int min, int sec) createDate public static Date createDate (String dateStr, String timeStr, String dateDelimiter, String timeDelimiter) createDate public static Date createDate (String dateStr, String dateDelimiter) compareTo public int compareTo ( Date date) Specified by: compareTo in interface Comparable toString public String toString () Overrides: toString in class Object assesstree Device java.lang.Object asses stree.Device

PAGE 164

assesstree.Device Page 164 of 260 public class Device extends Object This class provides device information as well as device action information Field Summary Page DeviceActionName action 164 DeviceName name 164 boolean value 165 Constructor Summary Page Device () 165 Device ( DeviceName name, DeviceActionName action) 165 Device ( DeviceName name, DeviceActionName action, boolean value) 165 Method Summary Page DeviceActionName getActionName () 165 DeviceName getDeviceName () 165 Boolean g etValue () 165 void setActionName ( DeviceActionName action) 166 void setDeviceName ( DeviceName name) 165 void setValue (boolean value) 166 String toString () 166 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail action DeviceActionName action name DeviceName name

PAGE 165

assesstree.Device Page 165 of 260 value boolean value Constructor Detail Device public Device () Device public Device ( DeviceName name, DeviceActionName action) Device public Device ( DeviceName name, DeviceActionName action, boolean value) Method Detail getDeviceName public DeviceName getDeviceName () getActionName public DeviceActionName getActionName () getValue public Boolean getValue () setDeviceName public void setDeviceName ( DeviceName name)

PAGE 166

assesstree.Device Page 166 of 260 setActi onName public void setActionName ( DeviceActionName action) setValue public void setValue (boolean value) toString public String toString () Overrides: toString in class Object assesstree DeviceActionName java.lang.Object java.la ng.Enum< DeviceActionName > assesstree.DeviceActionName All Implemented Interfaces: Comparable< DeviceActionName >, Serializable public enum DeviceActionName extends Enum< DeviceA ctionName > Enumeration of Device Action Name Enum Constant Summary Page Close 169 Default 168 DetectStep 169 GenerateBodyFat 168 GenerateErrorCode 168 GenerateGlucoseLevel 168 GenerateWaterAmount 169 GenerateWeight 168 NoDetectStep 171

PAGE 167

assesstree.DeviceActionName Page 167 of 260 NoGenerateWaterAmount 171 NoNotifyNutritionHabitRegistration 171 NotClose 171 NotGenerateBodyFat 170 NotGenerateErrorCode 170 NotGenerateGlucoseLevel 170 NotGenerateWeight 170 NotifyCompletenessofSettingGoal 168 NotifyNutritionHabitRegistration 169 NotNotifyCompletenessofSetting Goal 170 NotOpen 170 NotOpenClose 171 NotPowerOff 170 NotPowerOn 170 NotSenseFood 171 NotSenseGlucoseLevel 171 NotSenseWalking 171 NotSenseWeight 171 Open 169 OpenClose 170 PowerOff 168 PowerOn 168 SenseFood 169 SenseGlucoseLevel 169 SenseWalking 169 SenseWeight 169 Field Summary Page String name 172 Metho d Summary Page static DeviceActionName valueOf (String name) 172 static DeviceActionName [] values () 172 Methods inherited f rom class java.lang.Enum clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

PAGE 168

assesstree.DeviceActionName Page 168 of 260 Methods inherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait Enum Constant Detail Default publi c static final DeviceActionName Default PowerOn public static final DeviceActionName PowerOn PowerOff public static final DeviceActionName PowerOff GenerateGlucoseLevel public st atic final DeviceActionName GenerateGlucoseLevel GenerateWeight public static final DeviceActionName GenerateWeight GenerateBodyFat public static final DeviceActionName GenerateBo dyFat GenerateErrorCode public static final DeviceActionName GenerateErrorCode NotifyCompletenessofSettingGoal public static final DeviceActionName NotifyCompletenessofSettingGoal

PAGE 169

assesstree.DeviceActionName Page 169 of 260 Open public static fina l DeviceActionName Open Close public static final DeviceActionName Close DetectStep public static final DeviceActionName DetectStep GenerateWaterAmount public static final DeviceActionName GenerateWaterAmount NotifyNutritionHabitRegistration public static final DeviceActionName NotifyNutritionHabitRegistration SenseFood public static final DeviceActionName SenseFood SenseGlucoseLevel public static final DeviceActionName SenseGlucoseLevel SenseWeight public static final DeviceActionName SenseWeight SenseWalking public static final DeviceActionName SenseWalking

PAGE 170

assesstree.DeviceActionName Page 170 of 260 OpenClose public static final DeviceActionName OpenClose NotPowerOn public static final DeviceActionName NotPowerOn NotPowerOff public static final DeviceActionName NotPowerOff NotGenerateGlucoseLevel public static final DeviceActionName NotGenerateGlucoseLevel NotGenerateWeight public static final DeviceActionName NotGenerateWeight NotGenerateBody Fat public static final DeviceActionName NotGenerateBodyFat NotGenerateErrorCode public static final DeviceActionName NotGenerateErrorCode NotNotifyCompletenessofSettingGoal public static final DeviceActionName NotNotifyCompletenessofSettingGoal NotOpen public static final DeviceActionName NotOpen

PAGE 171

assesstree.DeviceActionName Page 171 of 260 NotClose public static final DeviceActionName NotClose NoDetectStep public static f inal DeviceActionName NoDetectStep NoGenerateWaterAmount public static final DeviceActionName NoGenerateWaterAmount NoNotifyNutritionHabitRegistration public static final DeviceAct ionName NoNotifyNutritionHabitRegistration NotSenseFood public static final DeviceActionName NotSenseFood NotSenseGlucoseLevel public static final DeviceActionName NotSenseGlucoseLevel NotSenseWeight pu blic static final DeviceActionName NotSenseWeight NotSenseWalking public static final DeviceActionName NotSenseWalking NotOpenClose public static final DeviceActionName NotOpenClo se

PAGE 172

assesstree.DeviceActionName Page 172 of 260 Field Detail name String name Method Detail values public static DeviceActionName [] values () valueOf public static DeviceActionName valueOf (String name) assesstree DeviceEvent java.lang.Object jav a.util.EventObject assesstree.DeviceEvent All Implemented Interfaces: Serializable public class DeviceEvent extends EventObject The class that indicates Device Event Field Summary Page Date _date 173 Device _device 173 Fields inherited from class java.util.EventObject source

PAGE 173

assesstree.DeviceEvent Page 173 of 26 0 Constructor Summary Page DeviceEvent (Object source, Device device, Date date) Constructs Device Event 173 Method Summary Page Device device () Returns Device 174 Strin g toString () Returns a string representation of this component and its values. 174 Methods inherited from class java.util.EventObject getSource Methods inherited from class java.lang.Object clone, equ als, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail _date Date _date _device Device _device Constructor Detail DeviceEvent public DeviceEvent (Object source, Device device, Date date) Constructs Device Event Parameters: source The object on which event initially occurred device Device and device action information date The date wh en event occurred

PAGE 174

assesstree.DeviceEvent Page 174 of 260 Method Detail device public Device device () Returns Device Returns: Device toString public String toString () Returns a string representation of this component and its values. Overrides: toString in class EventOb ject Returns: a string representation of this component assesstree DeviceEventListener All Known Implementing Classes: SituationEventManager public interface DeviceEventListener The listener interface for receiving Device Event Method Summary Page void handleDeviceEvent ( DeviceEvent de) 174 Method Detail handleDeviceEvent void handleDeviceEvent ( DeviceEvent de)

PAGE 175

assess tree.DeviceEventManager Page 175 of 260 assesstree DeviceEventManag er java.lang.Object assesstree.DeviceEventManager public class DeviceEventManager extends Object The class that manages Device Event. DeviceEventManager is responsible for managing Device Event subscription, detecting and handling Device Event Constru ctor Summary Page DeviceEventManager () 175 Method Summary Page void _fireDeviceEvent ( Device device, Date date) 176 void _fireDeviceEvent ( DeviceEvent de) 176 void addDeviceEventListener ( DeviceEventListener dl) 175 void rem oveDeviceEventListener ( DeviceEventListener dl) 175 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Constructor Detail De viceEventManager public DeviceEventManager () Method Detail addDeviceEventListener public void addDeviceEventListener ( DeviceEventListener dl) removeDeviceEventListener public void removeDeviceEventListener ( DeviceEventListener dl)

PAGE 176

assess tree.DeviceEventManager Page 176 of 260 _fireDeviceEvent void _fireDeviceEvent ( Device device, Date date) _fireDeviceEvent void _fireDeviceEvent ( DeviceEvent de) assesstree DeviceKnowledge java.lang.Object assesstree.Node assesstree.Learn assesstree.DeviceKnowledge public class DeviceKnowledge extends Learn DeviceKnowledge sub act ion node implementation of the Assess Tree Field Summary Page NNode nnode 177 PNode pnode 177 Fields inherited from class assesstree. Learn behaviorknowledge deviceknowledge Fields inherited from class assesstree. Node child parent size value Constructor Summary Page DeviceKnowledge () 177 DeviceKnowledge ( Node parent) 177 Method Summary Page double getChildValue () 178 NNode getNNode () 178

PAGE 177

assesstree.DeviceKnowledge Page 177 of 260 PNode getPNode () 177 double getValue () 178 String toString () 178 Methods inherited from class assesstree. Learn getBehaviorKnowledg e getChildValue getChildValue getChildValue getDeviceKnowledge Methods inherited from class assesstree. Node add remove Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail nnode NNode nnode pnode PNode pnode Constructor Detail DeviceKnowledge public DeviceKnowledge () DeviceKnowledge public DeviceKnowledge ( Node parent) Method Detail getPNode public PNode getPNode ()

PAGE 178

assesstree.DeviceKnowledge Page 178 of 260 getNNode public NNode getNNode () getChildValue public double getChildValue () Overrides: getChildValue in class Learn getValue public double getValue () toString public String toString () Overrides: toString in class Learn assesstree DeviceName java.lang.Object java.lang.Enum< DeviceName > assesstree.DeviceName All Implemented Interfaces: Comparable< DeviceName >, Serializable public enum DeviceName extends Enum< DeviceName > Enumeration of Device Name Enum Constant Summary Page Default 179 GlucoseMeter 179 PillBox 180

PAGE 179

assesstree.DeviceName Page 179 of 260 PlayfulBottle 180 SmartPhone 179 StepCounter 180 VideoCamera 180 WeightScale 179 Field Summary Page String name 180 Method Summary Page static DeviceName valueOf (String name) 180 static DeviceName [] values () 180 Methods inherited from class java.lang.Enum clone, compareTo, equals, finalize, getDeclaringClass, hash Code, name, ordinal, toString, valueOf Methods inherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait Enum Constant Detail Default public static final DeviceName Default GlucoseMeter public stati c final DeviceName GlucoseMeter WeightScale public static final DeviceName WeightScale SmartPhone public static final DeviceName SmartPhone

PAGE 180

assesstree.DeviceName Page 180 of 260 PillBox public static final DeviceName PillBox StepCounter public static final DeviceName StepCounter PlayfulBottle public static final DeviceName PlayfulBottle VideoCamera public static final DeviceName VideoCamera Field Detail name String name Method Detail values public static DeviceName [] values () valueOf public static DeviceName valueOf (String name) assesstree Evaluator java.lang.Objec t assesstree.Evaluator public class Evaluator extends Object

PAGE 181

assesstree.Evaluator Page 181 of 260 Assess Tree Evaluator Field Summary Page static HistoryDB historyDB 181 static int NumOfUser 181 static PrintWriter out 181 Constructor Summary Page Evaluator () 181 Method Summary Page static void main (String[] args) 182 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Field Detail historyDB public static HistoryDB historyDB NumOfUser public stat ic int NumOfUser out public static PrintWriter out Constructor Detail Evaluator public Evaluator ()

PAGE 182

assesstree.Evaluator Page 182 of 260 Method Detail main public static void main (String[] args) assesstree Event java.lang.Object assesstree.Event public class Event extends Object The ro ot class from which all event state objects (e.g activity, device, context, and situation events) shall be derived. Field Summary Page EventObject _event 183 Date d ate 183 Constructor Summary Page Event () 183 Event ( Date date) 183 Event ( Date date, EventObject event) 183 Method Summary Page ActivityEvent createActivityEvent ( Activity activity, Date date) 184 ContextEvent createContextEvent ( Context context, Date date) 183 DeviceEvent createDeviceEvent ( Device device, Date date) 183 void setEvent (EventObject event) 183 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, ha shCode, notify, notifyAll, toString, wait, wait, wait

PAGE 183

assesstree.Event Page 183 of 260 Field Detail _event EventObject _event date Date date Constructor Detail Event public Event () Event public Event ( Date date) Event Event ( Date date, EventObject event) Method Detail setEvent public void setEvent (EventObject event) createDeviceEvent public DeviceEvent createDeviceEvent ( Device device, Date date) createContextEvent public ContextEvent createContextEvent ( Context context, Date date)

PAGE 184

assesstree.Event Page 184 of 260 createActivityEvent public ActivityEvent createActivityEvent ( Activity activity, Date date) assesstree EventComparator java.lang.Object ass esstree.EventComparator All Implemented Interfaces: Comparator< Event > public class EventComparator extends Object implements Comparator< Event > This class implements the comparator for Event Constructor Su mmary Page EventComparator () 184 Method Summary Page int compare ( Event x, Event y) 185 Methods inherited from class java .lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Methods inherited from interface java.util.Comparator equals Constructor Detail EventComparator public EventComparator ()

PAGE 185

assesstree.EventComparator Page 185 of 260 Method Detail compare p ublic int compare ( Event x, Event y) Specified by: compare in interface Comparator assesstree GoalRelatedActivity java.lang.Object assesstree.Node assesstree.Act assesstree.GoalRelatedActivity public class GoalRelatedActivity extends Act GoalRelatedActivity sub action node implementation of the Assess Tree Field Summary Page NNode nnode 1 86 PNode pnode 186 Fields inherited from class assesstree. Act goalrelatedactivi ty Fields inherited from class assesstree. Node child parent size value Constructor Summary Page G oalRelatedActivity () 186 GoalRelatedActivity ( Node parent) 186 Method Summary Page double getChildValue () 187 NNode getNNode () 187

PAGE 186

assesstree.GoalRelatedActivity Page 186 of 260 PNode getPNode () 186 double getValue () 187 String toString () 187 Methods inherited from class assesstree. Act getChildValue getChildValue getChildValue getGoalRelatedActivity Methods inherited from class assesstree. Node add remove Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, w ait, wait Field Detail nnode NNode nnode pnode PNode pnode Constructor Detail GoalRelatedActivity public GoalRelatedActivity () GoalRelatedActivity public GoalRelatedActivity ( No de parent) Method Detail getPNode public PNode getPNode ()

PAGE 187

assesstree.GoalRelatedActivity Page 187 of 260 getNNode public NNode getNNode () getChildValue public double getChildValue () Overrides: getChildValue in class Act getValue public double getValue () toString public String toString () Overrides: toString in class Act assesstree GoalSettingStatus java.lang.Object assesstree.N ode assesstree.Plan assesstree.GoalSettingStatus public class GoalSettingStatus extends Plan GoalSettingStatus sub action node implementation of the Assess Tree Field Summary Page NNode nnode 188 PNode pnode 188 Fields inherited from class assesstree. Plan g oalsettingstatus

PAGE 188

assesstree.GoalSettingStatus Page 188 of 260 Fields inherited from class assesstree. Node child parent size value Constructor Summary Page GoalSettingStatus () 188 GoalSettingStatus ( Node parent) 189 Method Summary Page double getChildValue () 189 NNode getNNode () 189 PNode getPNode () 189 double getValue () 189 String toString () 189 Methods inherited from class assesstree. Plan getChildValue getChildValue getChildValue getGoal SettingStatus Methods inherited from class assesstree. Node add remove Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, noti fyAll, wait, wait, wait Field Detail nnode NNode nnode pnode PNode pnode Constructor Detail GoalSettingStatus public GoalSettingStatus ()

PAGE 189

assesstree.GoalSettingStatus Page 189 of 260 GoalSettingStatus public GoalSettingStatus ( Node parent) Method Detail getPNode public PNode getPNode () getNNode public NNode getNNode () getChildValue public double getChildValue () Overrides: getChildValue in class Plan getValue public double getValue () toString public String toString () Overrides: toString in class Plan assesstree HistoryDB java.lang.Object java.util.AbstractCollection< BehaviorEvent > java.util.AbstractList< BehaviorEvent > java.util.Vector< BehaviorEvent > java.util.Stack< BehaviorEvent > assesstree.HistoryDB

PAGE 190

assesstree.HistoryDB Page 190 of 260 All Implemented Interfaces: List< BehaviorEvent >, Collection< BehaviorEvent >, Iterable< BehaviorEvent >, RandomAccess, Cloneable, Serializable public clas s HistoryDB extends Stack< BehaviorEvent > This class contains database for all events happened Fields inherited from class java.util.Vector capacityIncrement, elementCount, elementData Fields inherited from class java.util.Abstr actList modCount Constructor Summary Page HistoryDB () 191 Method Summary Page BehaviorEvent pop () 191 BehaviorEvent push ( BehaviorEvent item) 191 Methods inherited from class java.util.Stack empty, peek, search Methods inherited from class java.util.Vector add, add, addAll, addAll, addElement, capacity clear, clone, contains, containsAll, copyInto, elementAt, elements, ensureCapacity, equals, firstElement, get, hashCode, indexOf, indexOf, insertElementAt, isEmpty, lastElement, lastIndexOf, lastIndexOf, remove, remove, removeAll, removeAllElements, remo veElement, removeElementAt, removeRange, retainAll, set, setElementAt, setSize, size, subList, toArray, toArray, toString, trimToSize Methods inherited from class java.util.AbstractList iterator, listIterator, listIterator Methods inherited from class java.lang.Object finalize, getClass, notify, notifyAll, wait, wait, wait

PAGE 191

assesstree.HistoryDB Page 191 of 260 Constructor Detail HistoryDB HistoryDB () Method Detail pop public BehaviorEvent pop () Overrides: pop in class Stack push public BehaviorEvent push ( BehaviorEvent item) Overrides: push in class Stack assesstree Learn java.lang.Object assesstree.Node assesstree.Learn Direct Known Subclasses: B ehaviorKnowledge DeviceKnowledge public class Learn extends Node Learn action node implementation of the Assess Tree Field Summary Page BehaviorKnowledge behaviorknowledge 192 DeviceKnowledge deviceknowledge 192

PAGE 192

assesstree.Learn Page 192 of 260 Fields inherited from class assesstree. Node child parent size value Constructor Summary Page Learn () 192 Learn ( Node parent) 193 Method Summary Page BehaviorKnowledge getBehaviorKnowledge () 193 double getChildValue () 193 double getChildValue ( AssessTreeOp op) 193 double getChildValue ( Node node) 193 double getChildValue ( Node node, AssessTreeOp op) 193 DeviceKnowledge getDeviceKnowledge () 193 String toString () 194 Methods inherited from class assesstree. Node add remove Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail behaviorknowledge BehaviorKnowledge behaviorknowledge deviceknowledge DeviceKnowledge deviceknowledge Constructor Detail Learn public Learn ()

PAGE 193

assesstree.Learn Page 193 of 260 Learn public Learn ( Node parent) Method Detail getDevice Knowledge public DeviceKnowledge getDeviceKnowledge () getBehaviorKnowledge public BehaviorKnowledge getBehaviorKnowledge () getChildValue public double getChildValue () Overrides: ge tChildValue in class Node getChildValue public double getChildValue ( Node node) Overrides: getChildValue in class Node getChildValue public double getChil dValue ( AssessTreeOp op) Overrides: getChildValue in class Node getChildValue public double getChildValue ( Node node, AssessTreeOp op) Overrides: getChildValue in class Node

PAGE 194

assesstree.Learn Page 194 of 260 toString public String toString () Overrides: toString in class Object assesstree NNode java.lang.Object ass esstree.Node assesstree.NNode All Implemented Interfaces: SituationEventListener public class NNode extends Node implements SituationEventListener N Node implementation of the Assess Tree Field Summary Page ArrayList< Behavior > child 195 Fields inherited from class assesstree. Node parent size value Constructor Summary Page NNode () 195 NNode ( Node parent) 195 Method Summary Page void add ( Behavior b) 195 void delete ( Behavior b) 195 Behavior get ( Situa tion s) 195 double getChildValue () 196 double getChildValue ( AssessTreeOp op) 196 double getChildValue ( Node node) 196 double getChildValue ( Node node, AssessTreeOp op) 196

PAGE 195

assesstree .NNode Page 195 of 260 void handleSituationEvent ( SituationEvent se) 196 String toString () 196 Methods inherited from class assesstree. Node add remove Met hods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail child ArrayList< Behavior > child Constructor Detail NNode public NNode () NNode public NNo de ( Node parent) Method Detail add public void add ( Behavior b) delete public void delete ( Behavior b) get public Behavior get ( Situa tion s)

PAGE 196

assesstree .NNode Page 196 of 260 handleSituationEvent public void handleSituationEvent ( SituationEvent se) Specified by: handleSituationEvent in interface SituationEventListener getChildValue public doubl e getChildValue () Overrides: getChildValue in class Node getChildValue public double getChildValue ( Node node) Overrides: getChildValue in class Node getChildValue public double getChildValue ( AssessTreeOp op) Overrides: getChildValue in class Node getChildValue public double getChildValue ( Node node, AssessTreeOp op) Overrides: getChildValue in class Node toString public String toString () Overrides: toString in class Object

PAGE 197

assesstree.Node Page 197 of 260 assesstre e Node java.lang.Object assesstree.Node Direct Known Subclasses: Act Assess Aware Learn NNode Plan PNode Recall public abstract class Node extends Object Abstract class for Node of Tree Field Summary Page ArrayList< Node > child 198 Node parent 198 int size 198 double value 198 Constructor Summary Page Node () 198 Node ( Node parent, ArrayList< Node > child) 198 Node ( Node parent, ArrayList< N ode > child, double value) 198 Node (ArrayList< Node > child) 198 Method Summary Page void add ( Node node) 199 abstract double getChildValue () 199 abstract double getChildValue ( AssessTreeOp op) 199 abstract double getChildValue ( Node node) 199 abstract double getChildValue ( Node node, AssessTreeOp op) 199 void remove ( Node node) 199 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

PAGE 198

assesstree.Node Page 198 of 260 Field Detail child ArrayList< Node > child parent Node parent size int size value double value Constructor Detail Node Node () Node Node (ArrayList< Node > child) Node Node ( Node parent, ArrayList< Node > child) Node Node ( Node parent, ArrayList< Node > child, double value)

PAGE 199

assesstree.Node Page 199 of 260 Method Detail add public void add ( Node node) remove public void remove ( Nod e node) getChildValue public abstract double getChildValue () getChildValue public abstract double getChildValue ( Node node) getChildValue public abstract double getChildValue ( AssessTreeOp op) getChildVa lue public abstract double getChildValue ( Node node, AssessTreeOp op) assesstree OnTimeActing java.lang.Object assesstree.Node assesstree.Recall assesstree.OnTimeActing public class OnTimeActing extends Recall OnTimeActing sub actio node implementation of the Assess Tree

PAGE 200

assesstree.OnTimeActing Page 200 of 260 Field Summary Page NNode nnode 200 PNode pnode 200 Fields inherited from class assesstree. Recall ontimeacting Fields inherit ed from class assesstree. Node child parent size value Constructor Summary Page OnTimeActing () 201 OnTimeActing ( Node parent) 201 Method Summary Page double getChildValue () 201 NNode getNNode () 201 PNode getPNode () 201 double getValue () 201 String toString () 201 Methods in herited from class assesstree. Recall getChildValue getChildValue getChildValue getOnTimeActing Methods inherited from class a ssesstree. Node add remove Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail nnode NNode nnode pnode PNode pnode

PAGE 201

assesstree.OnTimeActing Page 201 of 260 Constructor Detail OnTimeActing public OnTimeActing () OnTimeActing public OnTimeActing ( Node parent) Method Detail getPNode public PNode getPNode () getNNode public NNode getNNode () getChildValue public double getChildValue () Overrides: getChildValue in class Recall getValue public double getValue () t oString public String toString () Overrides: toString in class Recall

PAGE 202

assesstree.Plan Page 202 of 260 assesstree Plan java.lang.Object assesstree.Node assesstree.Plan Direct Known Subclasses: GoalSettingStatus public class Plan extends Node Plan action node implementation of the Assess Tree Field Summary Page GoalSettingStatus goalsettingstatus 203 Fields inherited from class assesstree. Node child parent size value Constructor Summary Page Plan () 203 Plan ( Node parent) 203 Method Summary Page double getChildValue () 203 double getChildValue ( AssessTreeOp op) 203 double getChildValue ( Node node) 203 double getChildValue ( Node node, AssessTreeOp op) 204 GoalSettingStatus getGoalSettingStatus () 203 String toString () 204 Methods inherited from class assesstree. Node add remove Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

PAGE 203

assesstree.Plan Page 203 of 260 Field Detail goals ettingstatus GoalSettingStatus goalsettingstatus Constructor Detail Plan public Plan () Plan public Plan ( Node parent) Method Detail getGoalSettingStatus public GoalSettingStatus g etGoalSettingStatus () getChildValue public double getChildValue () Overrides: getChildValue in class Node getChildValue public double getChildValue ( Node node) Overrides: getChildValue in class Node getChildValue public double getChildValue ( AssessTreeOp op) Overrides: getChildValue in class Node

PAGE 204

assesstree.Plan Page 204 of 260 getChildValue public double getChildValue ( Node node, AssessTreeOp op) Overrides: getChildValue in class Node toString public String toString () Overrides: toString in class Object assesstree PNode java.lang.Object assesstree.Node assesstree.PNode All Implemented Interfaces: SituationEventListener public class PNode extends Node implements SituationEventListener P Node implementation of the Assess Tree Field Summary Page ArrayList< Behavior > child 205 double realvalue 205 Fields inherited from class assesstree. Node parent size value Constructor Summary Page PNode () 205 PNode ( Node parent) 206

PAGE 205

assesstree.PNode Page 205 of 260 Method Summary Page void add ( Behavior b) 206 void assess ( Behavior b, Time time) 206 void delete ( Behavior b) 206 Behavior get ( Situation s) 206 ArrayList getChild () 206 int getChildSize () 20 6 double getChildValue () 207 double getChildValue ( AssessTreeOp op) 207 double getChildValue ( Node node) 207 double getC hildValue ( Node node, AssessTreeOp op) 207 double getRealValue () 207 double getValue () 207 void handleSituationEvent ( SituationEvent se) 207 String toString () 206 Methods inherited from class assesstree. Node add remove Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail child ArrayList< Behavior > child realvalue dou ble realvalue Constructor Detail PNode public PNode ()

PAGE 206

assesstree.PNode Page 206 of 260 PNode public PNode ( Node parent) Method Detail add public void add ( Behavior b) delete public void delete ( Behavior b) get pu blic Behavior get ( Situation s) assess public void assess ( Behavior b, Time time) toString public String toString () Overrides: toString i n class Object getChildSize public int getChildSize () getChild public ArrayList getChild ()

PAGE 207

assesstree.PNode Page 207 of 260 handleSituationEvent public void handleSituationEvent ( SituationEvent se) Specified by: handleSituationEvent in i nterface SituationEventListener getChildValue public double getChildValue () Overrides: getChildValue in class Node getValue public double getValue () getRealValue public double ge tRealValue () getChildValue public double getChildValue ( Node node) Overrides: getChildValue in class Node getChildValue public double getChildValue ( AssessTr eeOp op) Overrides: getChildValue in class Node getChildValue public double getChildValue ( Node node, AssessTreeOp op) Override s: getChildValue in class Node

PAGE 208

assesstree.Recall Page 208 of 260 assesstree Recall java.lang.Object assesstree.Node assesstree.Recall Direct Known Subclasses: OnTimeActing public class Recall extends Node Recall action node implementation of the Assess Tree Field Summary Page OnTimeActing ontimeacting 209 Fields inherited from class asses stree. Node child parent size value Constructor Summary Page Recall () 209 Recall ( Node parent) 209 Method Summary Page double getChildValue () 209 double getChildValue ( AssessTreeOp op ) 209 double getChildValue ( Node node) 209 double getChildValue ( Node node, AssessTreeOp op) 210 OnTimeActing getOnTimeActing () 209 String toString () 210 Methods inherited from class assesstree. Node add remove Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

PAGE 209

assesstree.Recall Page 209 of 260 Field Detail ontimeacting OnTimeActing ontim eacting Constructor Detail Recall public Recall () Recall public Recall ( Node parent) Method Detail getOnTimeActing public OnTimeActing getOnTimeActing () getChildValue public double getChildValue () Overri des: getChildValue in class Node getChildValue public double getChildValue ( Node node) Overrides: getChildValue in class Node getC hildValue public double getChildValue ( AssessTreeOp op) Overrides: getChildValue in class Node

PAGE 210

assesstree.Recall Page 210 of 260 getChildValue public double getChildValue ( Node node, AssessTreeOp op) Overrides: getChildValue in class Node toString public String toString () Overrides: toString in class Object assesstree SelfAware java.lang.Ob ject assesstree.Node assesstree.Aware assesstree.SelfAware public class SelfAware extends Aware SelfAware sub action node implementation of the Assess Tree Fi eld Summary Page NNode nnode 211 PNode pnode 211 Fields inherited from class assesstree. Aware behavioraware selfaware Fields inherited from class assesstree. Node child parent size value Constructor Summary Page SelfAware () 211 SelfAware ( Node parent) 212

PAGE 211

assesstree.SelfAware Page 211 of 260 SelfAware ( Nod e parent, PNode pnode, NNode nnode) 212 Method Summary Page double getChildValue () 212 double getChildValue ( AssessTreeOp op) 213 double getChildValue ( Node node) 212 double getChildValue ( Node node, AssessTreeOp op) 213 NNode getNNode () 212 PNode getPNode () 212 double getValue () 213 void setNNode ( NNode nnode) 212 void setPNode ( PNode pnode) 212 String toString () 213 void update () 213 Methods inherited from class assesstree. Aware getBehaviorAware getSelfAware integrate Methods inherited from class assesstree. Node add remove Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notif yAll, wait, wait, wait Field Detail nnode NNode nnode pnode PNode pnode Constructor Detail SelfAware public SelfAware ()

PAGE 212

assesstree.SelfAware Page 212 of 260 SelfAware public SelfAware ( Node parent) SelfAware publ ic SelfAware ( Node parent, PNode pnode, NNode nnode) Method Detail getPNode public PNode getPNode () getNNode public NNode getNNode () setPNode public void setPNode ( PNode pnode) setNNode public void setNNode ( NNode nnode) getChildValue public double getChildValue () Overrides: g etChildValue in class Aware getChildValue public double getChildValue ( Node node)

PAGE 213

assesstree.SelfAware Page 213 of 260 Overrides: getChildValue in class Aware getChildValue public double getC hildValue ( AssessTreeOp op) Overrides: getChildValue in class Aware getChildValue public double getChildValue ( Node node, AssessTreeOp op) Overrides: getChildValue in class Aware getValue public double getValue () update public void update () toString public String toString () Overrides: toString in class Aware assesstree Situation java.lang.Object assesstree.Situation Direct Known Subclasses: Behavior

PAGE 214

assesstree.Situation Page 214 of 260 public class Situation extends Object This class provides situation information Field Summary Page Activity activity 214 Context context 215 Device device 215 boolean isAcitivity 215 boolean isContext 215 boolean isDevice 215 SituationName name 215 String user 215 Constructor Summary Page Situation () 215 Situation ( SituationNa me name, Device device, Activity activity, Context context) 216 Method Summary Page Activity getActivity () 216 Context getContext () 216 Device getDevice () 216 SituationName getSituationName () 216 void setActivity ( Activity activity) 216 void setContext ( Context context) 216 void setDevice ( Device device) 216 void setSituationName ( SituationName name) 216 String toString () 217 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail activity Activity activity

PAGE 215

assesstree.Situation Page 215 of 260 context Context context device Device device isAcitivity boolean isAcitivity isContext boolean isContext isDevice boolean isDevice name SituationName name user String user Constructor Detail Situation public Situation ()

PAGE 216

assesstree.Situation Page 216 of 260 S ituation public Situation ( SituationName name, Device device, Activity activity, Context context) Method De tail getSituationName public SituationName getSituationName () getDevice public Device getDevice () getActivity public Activity getActivity () getContext public Context getContext () setSituationName public void setSituationName ( SituationName name) setDevice public void setDevice ( Device device) setActivity public void setActivity ( Activ ity activity) setContext public void setContext ( Context context)

PAGE 217

assesstree.Situation Page 217 of 260 toString public String toString () Overrides: toString in class Object assesstree SituationDB java.lang.Object assesstree.SituationDB public class SituationDB extends Object This class contains database for situation Field Summary Page String name 217 Constructor Summary Page SituationDB () 218 SituationD B (String name) 218 Method Summary Page Situation get ( SituationName sname) 218 void put ( SituationN ame sname, Situation s) 218 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Field Detail name String name

PAGE 218

assesstree.SituationDB Page 218 of 260 Constructor De tail SituationDB public SituationDB () SituationDB public SituationDB (String name) Method Detail get public Situation get ( SituationName sname) put public void put ( SituationName s name, Situation s) assesstree SituationEvent java.lang.Object java.util.EventObject assesstree.SituationEvent All Implemented Interfaces: Serializable public class SituationEvent extends EventObject The class that indicates Situation Event Field Summary Page Date _date 219 Situation _situation 219

PAGE 219

assesstree.SituationEvent Page 219 of 260 Fields inherited from cla ss java.util.EventObject source Constructor Summary Page SituationEvent (Object source, Situation situation, Date date) Constructs Situation Event 219 Method Summary Page Situation situation () Returns Situation 220 String toString () Returns a string representation of this component and its valu es. 220 Methods inherited from class java.util.EventObject getSource Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Field Detail _date Date _date _situation Situation _situation Constructor Detail SituationEvent public SituationEvent (Object source, Situation situation, Date date) Constructs Situation Event Parameters: source The object on which event initially occurred situation Situation information date The date when event occurred

PAGE 220

assesstree.SituationEvent Page 220 of 260 Method Detail situation public Situation situati on () Returns Situation Returns: Situation toString public String toString () Returns a string representation of this component and its values. Overrides: toString in class EventObject Returns: a string representation of this component assesstree Situation EventListener All Known Implementing Classes: NNode PNode public interface SituationEventListener The listener interface for receiving Situation Event Method Summary Page void ha ndleSituationEvent ( SituationEvent se) 220 Method Detail handleSituationEvent void handleSituationEvent ( SituationEvent se)

PAGE 221

assesstree.SituationEv entManager Page 221 of 260 assesstree SituationEventManager java.lang.Object assesstree. SituationEventManager All Implemented Interfaces: DeviceEventListener ActivityEventListener ContextEventListener public class SituationEventManager extends Object implements DeviceEventListener ActivityEventListener ContextEventListener The class that manages Device Event. SituationEventManager is responsible for managing Situation Event subscription, detec ting and handling Situation Event Field Summary Page LinkedList< ActivityEvent > la 221 LinkedList< ContextEvent > lc 222 Linke dList< DeviceEvent > ld 222 Constructor Summary Page SituationEventManager () 222 Method Summary Page void _fireSituationEve nt ( Situation situation, Date date) 222 void addSituationEventListener ( SituationEventListener sl) 222 void handleActivityEvent ( ActivityEvent ae) 222 void handleContextEvent ( ContextEvent ce) 223 void handleDeviceEvent ( DeviceEvent de) 222 void removeSituationEventListener ( SituationEventListener sl) 222 Methods inherited from class java.lang.Object clone, equals, finalize getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Field Detail la LinkedList< ActivityEvent > la

PAGE 222

assesstree.SituationEv entManager Page 222 of 260 lc LinkedList< ContextEvent > lc ld LinkedList< DeviceEvent > ld Con structor Detail SituationEventManager public SituationEventManager () Method Detail addSituationEventListener public void addSituationEventListener ( SituationEventListener sl) removeSituationEventListener public void removeSituati onEventListener ( SituationEventListener sl) _fireSituationEvent void _fireSituationEvent ( Situation situation, Date date) handleDeviceEvent public void hand leDeviceEvent ( DeviceEvent de) Specified by: handleDeviceEvent in interface DeviceEventListener handleActivityEvent public void handleActivityEvent ( ActivityEv ent ae)

PAGE 223

assesstree.SituationEv entManager Page 223 of 260 Specified by: handleActivityEvent in interface ActivityEventListener handleContextEvent public void handleContextEvent ( ContextEvent ce) Specified by: handleContextEvent in interface ContextEventListener assesstree SituationName java.lang.Object java.lang.Enum< SituationName > assesstree.SituationName All Implemented Interfaces: Comparable< SituationName >, Serializable public enum SituationName extends Enum< SituationName > Enumerations of Situation Name Enum Constant Summary Page ActivityLevelIncrease 224 CheckGlucoseLevel 225 CheckingGlucoseLevel 224 CheckWeight 225 CheckWeightBMI 225 Default 224 DrinkingWater 225 EatBreakfast 225 EatDinner 225 EatLunch 225 EatMeal 226 FailToCheckGlucoseLevel 226 FailToCheckWeightBMI 226 HavingBreakfast 224

PAGE 224

assesstree.SituationName Page 224 of 260 NotCheckGlucoseLevel 226 NotCheckWeightBMI 226 NotEatMeal 226 RegisteringNutritionHabit 225 TakeMedication 226 TakeMedicationAsPrescribed 226 WalkForSteps 225 Method Summary Page static Situat ionName valueOf (String name) 227 static SituationName [] values () 226 Methods inherited from class java.lang.Enum clone, compareTo, equals, finaliz e, getDeclaringClass, hashCode, name, ordinal, toString, valueOf Methods inherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait Enum Constant Detail Default public static final SituationName Defau lt CheckingGlucoseLevel public static final SituationName CheckingGlucoseLevel HavingBreakfast public static final SituationName HavingBreakfast ActivityLevelIncrease public static final SituationName ActivityLevelIncrease

PAGE 225

assesstree.SituationName Page 225 of 260 DrinkingWater public static final SituationName DrinkingWater RegisteringNutritionHabit public static final SituationName RegisteringNutritionHabit EatBreakfa st public static final SituationName EatBreakfast EatLunch public static final SituationName EatLunch EatDinner public static final SituationName EatDinner CheckGlucoseLevel publ ic static final SituationName CheckGlucoseLevel CheckWeight public static final SituationName CheckWeight CheckWeightBMI public static final SituationName CheckWeightBMI WalkForS teps public static final SituationName WalkForSteps

PAGE 226

assesstree.SituationName Page 226 of 260 EatMeal public static final SituationName EatMeal TakeMedication public static final SituationName TakeMedication TakeMedicati onAsPrescribed public static final SituationName TakeMedicationAsPrescribed NotCheckGlucoseLevel public static final SituationName NotCheckGlucoseLevel NotCheckWeightBMI public static final SituationName NotCheckWeightBMI NotEatMeal public static final SituationName NotEatMeal FailToCheckGlucoseLevel public static final SituationName FailToCheckGlucoseLevel FailToCheckWeightBMI p ublic static final SituationName FailToCheckWeightBMI Method Detail values public static SituationName [] values ()

PAGE 227

assesstree.SituationName Page 227 of 260 valueOf public static SituationName valueOf (String name) assesst ree SubAction java.lang.Object java.lang.Enum< SubAction > assesstree.SubAction All Implemented Interfaces: Comparable< SubAction >, Serializable public enum SubAction extends Enum< SubAction > Enumeration of SubAction Enum Constant Summary Page BehaviorAware 228 BehaviorKnowledge 228 DeviceKnowledge 228 GoalRelatedActivity 228 GoalSettingStatus 228 OnTimeActing 228 SelfAware 228 Method Summary Page static SubAction valueOf (String name) 229 static SubAction [] values () 228 Methods inherited from class java.lang.Enum clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf Methods inherited from class java.lang.Object getClass, notify, notifyAll, wait, wait, wait

PAGE 228

assesstree.SubAction Page 228 of 260 Enum Constant Detail SelfAware public static final SubAction SelfAware BehaviorAware public static final SubAction BehaviorAware GoalSettingStatus public static final SubAction GoalSettingStatus DeviceKnowledge public static final SubAction DeviceKnowledge BehaviorKnowledge public static final SubAction BehaviorKnowledge OnTimeActing public static final SubAction OnTimeActing GoalRelatedActivity public static f inal SubAction GoalRelatedActivity Method Detail values public static SubAction [] values ()

PAGE 229

assesstree.SubAction Page 229 of 260 valueOf public static SubAction valueOf (String name) assesstree Time java.lang.Object assesstree.Time public class Time extends Object This class provides time and methods to create, set, and compare time Field Summary Page int hour 230 int min 230 int sec 230 Constructor Summary Page Time () 230 Time (int hour, int min) 230 Time (int hour, int min, int sec) 230 Time (long sec) 230 Method Summary Page static Time add ( Time time1, Time time2) 231 static Time createTime (String timeStr, String timeDelimiter) 232 Double divide ( Time time) 231 static long getSec ( Time time) 231 static Time secToTime (long sec) 231 void setTime (int hour, int min) 231 void setTime (int hour, int min, int sec) 231 Time substract ( Time time) 231 static Time substract ( Time time1, Time time2) 231 String toString () 232

PAGE 230

assesstree.Time Page 230 of 260 Methods inherited from class java.lang.Object clone, equals, finalize, get Class, hashCode, notify, notifyAll, wait, wait, wait Field Detail hour int hour min int min sec int sec Constructor Detail Time public Time () Time Time (long sec) Time Time (int hour, int min) Time Time (int hour, int min, int sec)

PAGE 231

assesstree.Time Page 231 of 260 Met hod Detail setTime void setTime (int hour, int min) setTime void setTime (int hour, int min, int sec) getSec static long getSec ( Time time) secToTime static Time secT oTime (long sec) add static Time add ( Time time1, Time time2) substract Time substract ( Time time) substract static Time substract ( Time time1, Time time2) divide Double divide ( Time time)

PAGE 232

assesstree.Time Page 232 of 260 createTime public static Time creat eTime (String timeStr, String timeDelimiter) toString public String toString () Overrides: toString in class Object assesstree TimeComparator java.lang.Object assesstree.TimeComparator All Implemented Interfaces: Comparator < Time > public class TimeComparator extends Object implements Comparator< Time > This class implements the comparator for Time Constructor Summary Page TimeComparator () 233 Method Summary Page int compare ( Time x, Time y) 233 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, no tifyAll, toString, wait, wait, wait Methods inherited from interface java.util.Comparator equals

PAGE 233

assesstree.TimeComparator Page 233 of 260 Constructor Detail TimeComparator public TimeComparator () Method Detail compare public int compare ( Time x, Time y) Specified by: compare in interface Comparator assesstree Tree java.lang.Object assesstree.Tree Direct Known Subclasses: AssessTree public class Tree extends Object This class provides Tree da ta structure Field Summary Page Node root 234 Constructor Summary Page Tree () 234 Tree ( Node r oot) 234 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

PAGE 234

assesstree.Tree Page 234 of 260 Field Detail root Node root Constructor Detail Tree Tree () Tre e Tree ( Node root) assesstree Util java.lang.Object assesstree.Util public class Util extends Object This class provides utility method Constructor Summary Page Util () 235 Method Summ ary Page static String getClassName (Object o) 235 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

PAGE 235

assesstree.Util Page 235 of 260 Constructor Detail Uti l public Util () Method Detail getClassName public static String getClassName (Object o) Package assesstree.input Class Summary Page ConvertDataSet This class converts different form of dataset to the form of device, activity, an d context events 235 ParseDataSet This class parses dataset to check correctness of dataset 237 assesstree.input ConvertDataSet java.lang.Object assesstree.input.ConvertDataSet public class C onvertDataSet extends Object This class converts different form of dataset to the form of device, activity, and context events Field Summary Page PrintWriter out 236 Constructor Summary Page ConvertDataSet (String input, String output) 236

PAGE 236

assesstree.input.ConvertDataSet Page 236 of 260 Method Summary Page static void main (String[] args) 237 void parseBloodGlucose (String in) 237 int parseDateandTime (String in) 236 void parseFoodCategory (String in) 236 int parseItem (String in) 236 void parseStepC ount (String in) 237 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Field Detail out PrintWriter out Constructor Detail ConvertDataSet public Co nvertDataSet (String input, String output) Method Detail parseDateandTime public int parseDateandTime (String in) parseItem public int parseItem (String in) parseFoodCategory public void parseFoodCategory (String in)

PAGE 237

assesstree.input.ConvertDataSet Page 237 of 260 parseStepCount pu blic void parseStepCount (String in) parseBloodGlucose public void parseBloodGlucose (String in) main public static void main (String[] args) assesstree.input ParseDataSet java.lang.Object assesstree.input.ParseDataSet public class ParseDataSet extends Object This class parses dataset to check correctness of dataset Field Summary Page static AssessTree [] at 238 static DataSetDB [] datasetD B 238 static Date Enddate 238 static int Length 238 int linenum 239 static Date Startdate 239 static int UserNum 239 Constructor Summary Page ParseDataSet (String fileName) 239 Method Summary Page AssessTree [] initAT () 239 DataSetDB [] initDB () 239

PAGE 238

Page 238 of 260 Node [][][][] mapToArra y ( AssessTree [] at) 241 Activity parseActivity (String in) 240 Event parseActivityEvent (String in) 241 int parseCommand (String in) 239 Context parseContext (String in) 241 Event pars eContextEvent (String in) 241 Device parseDevice (String in) 240 Event parseDeviceEvent (String in) 241 int [] parseLength (String in) 240 BMT parseMeasurement (String in) 240 int[] parseNode (String in) 240 int[] parseNodeConf (String in) 240 Date [] parsePeriod (String in) 240 Situation parseSituation (String in) 240 int parseUser (String in) 239 int parseUserNum (String in) 240 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notif y, notifyAll, toString, wait, wait, wait Field Detail at public static AssessTree [] at datasetDB public static DataSetDB [] datasetDB Enddate public static Date Enddate Length public static int Length

PAGE 239

Page 239 of 260 linenum public int linenum Startdate public static Date Startdate UserNum static int UserNum Constructor Detail ParseDataSet public ParseDataSet (String fileName) Method Detail initAT public AssessTree [] initAT () initDB public DataSetDB [] initDB () parseCommand public int parseCommand (String in) parseUser public int parseUser (String in)

PAGE 240

Page 240 of 260 parseUserNum public int parseUserNum (String in) parseNode public int[] parseNode (String in) parseNodeConf public int[] parseNodeConf (String in) parseLength public int[] parseLength (String in) parsePeriod public Date [] parsePeriod (String in) parseMeasurement public BMT parseMeasurement (String in) parseSituation public Situation parseSituation (String in) parseDevice public Device parseDevice (String in) parseActivity public Activity parseActivit y (String in)

PAGE 241

Page 241 of 260 parseContext public Context parseContext (String in) parseDeviceEvent public Event parseDeviceEvent (String in) parseActivityEvent public Event parseActivityEvent (Stri ng in) parseContextEvent public Event parseContextEvent (String in) mapToArray public Node [][][][] mapToArray ( AssessTree [] at)

PAGE 242

242 APPENDIX B TRACE GENERATOR IMPLEMENTATION Trace g enerator consists of four different drivers: whole day driver, morning driver, afternoon driver, and evening driver. Whole day driver generates time insensitive situations that can happen at any time during the day by utilizing sub driver. Morning, afterno on, and evening drivers generate situations that can happen in the morning, afternoon, and in the evening by employing a sub driver W for checking weight related traces, a sub driver G for checking glucose level related traces, and a sub driver M for takin g medication related traces. Trace generator API specification and sample traces are presented in the next section.

PAGE 243

243 Trace Generator API Specification & Sample Traces

PAGE 244

C ontents Page 244 of 260 Contents Overview ................................ ................................ ................................ .................... 245 Package Summary ................................ ................................ ............................... 245 tracegenerator ................................ ................................ ................................ ............. 245 TraceGenerator ................................ ................................ ................................ .... 245 Sample Traces ................................ ................................ ................................ ............ 250 Overview ................................ ................................ ................................ ............... 2 50 Samples ................................ ................................ ................................ ................ 250

PAGE 245

Overview Page 245 of 260 Overview Package Summary Page tracegenerator Provides a class that is used in Trace Generator 101 Package tracegenerator Class Summary Page TraceGenerator Generates Trace 105 tracegenerator TraceGenerator java.lang.Object tracegenerator.TraceGenerator public class TraceGenerator extends Object Trace Generator using AssessTree Constructor Summary Page TraceGenerator () Constructor of Tra ceGenerator. 246 Method Summary Page static void AfternoonDriver (float fAvailableCompliance, float fMaximumCompliance) Generate Traces for Afternoon using SubDriverW, SubDriverG and SubDriverM 104 static void EveningDriver (float fAvailableCompliance, float fMaximumCompliance) Generate Traces for Evening using SubDriverW, SubDriverG and SubDriverM 104 static void MorningDriver (flo at fAvailableCompliance, float fMaximumCompliance) Generate Trace for Morning using SubDriverW, SubDriverG and SubDriverM 246 static void SubDriverG (int nTimeZone, float fAvailableCompliance, float fMaximumCom pliance) Generate Traces of G 105 static void SubDriverM (int nTimeZone, float fAvailableCompliance, float fMaximumCompliance) Generate Traces of M 105

PAGE 246

tracegenerator.TraceGenerator Page 246 of 260 static void SubDriverS (float fAvailableCompliance) Generate Traces of M 105 static void SubDriverW (float fAvailableCompliance, float fMaximumCompliance) Generate Traces of W 104 static void WholeDayDriver (float fAvailableCompliance) Generate Traces for whole day using SubDriverS 247 Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, noti fy, notifyAll, toString, wait, wait, wait Constructor Detail TraceGenerator TraceGenerator () Constructor of TraceGenerator. Generate Traces using MorningDriver, AfternoonDriver, EveningDriver and WholeDayDriver Method Detail MorningDriver public static void MorningDriver (float fAvailableCompliance, float fMaximumCompliance) Generate Trace for Morning using SubDriverW, SubDriverG and SubDriverM Parameters: fAvailableCompliance Available Compliance for MorningDriver fMax imumCompliance Maximumly Available Compliance after Generating Traces AfternoonDriver public static void AfternoonDriver (float fAvailableCompliance, float fMaximumCompliance) Generate Traces for Afternoon using SubDriv erW, SubDriverG and SubDriverM Parameters: fAvailableCompliance Available Compliance for MorningDriver fMaximumCompliance Maximumly Available Compliance after Generating Traces

PAGE 247

tracegenerator.TraceGenerator Page 247 of 260 EveningDriver public static void EveningDriver (float fAvailableCompliance, float fMaximumCompliance) Generate Traces for Evening using SubDriverW, SubDriverG and SubDriverM Parameters: fAvailableCompliance Available Compliance for MorningDriver fMaximumCompliance Maximumly Available Complianc e after Generating Traces WholeDayDriver public static void WholeDayDriver (float fAvailableCompliance) Generate Traces for whole day using SubDriverS Parameters: fAvailableCompliance Available Compliance for MorningDriver SubDriverW public static void SubDriverW (float fAvailableCompliance, float fMaximumCompliance) Generate Traces of W Parameters: fAvailableCompliance Available Compliance for MorningDriver fMaximumCompliance Maximumly Available Compliance after Generati ng Traces SubDriverG public static void SubDriverG (int nTimeZone, float fAvailableCompliance, float fMaximumCompliance) Generate Traces of G Parameters: fAvailableCompliance Available Complianc e for MorningDriver fMaximumCompliance Maximumly Available Compliance after Generating Traces SubDriverM public static void SubDriverM (int nTimeZone, float fAvailableCompliance, float fMaximumC ompliance)

PAGE 248

tracegenerator.TraceGenerator Page 248 of 260 Generate Traces of M Parameters: fAvailableCompliance Available Compliance for MorningDriver fMaximumCompliance Maximumly Available Compliance after Generating Traces SubDriverS public static void SubDriverS (float fAvailableCompliance) Gene rate Traces of M Parameters: fAvailableCompliance Available Compliance for MorningDriver

PAGE 249

249 Java API documentation generated with DocFlex/Javadoc 1.6.1 using JavadocPro template set.

PAGE 250

250 Sample Traces Overview In the experiment, we generated diverse kinds of traces. Here, we show traces of three days of 60% compliance of step wise decreasing compliance. Eac h situation contains three events: device event, activity event, and context event. The events were generated not according to the linearly increasing time but according to the flow charts previously described. Samples 1. The First Day Trace For the first day of 60% compliance of step wise decreasing compliance, ten situations were generated as shown in Figure B 1. Figure B 1. The First Day Trace

PAGE 251

251 DeviceEvent: WeightScale SenseWeightBMI 02/01/2013 09:48 ActivityEvent: MeasuringWeightBMI 02/01/2013 09:48 ContextEvent: WeightBMI 02/01/2013 09:48 DeviceEvent: VideoCamera SenseFood 02/01/2013 08:03 ActivityEvent: Eating 02/01/2013 08:03 ContextEvent: Calorie 4408 02/01/2013 08:03 DeviceEvent: PillBox OpenClose 02/01/2013 07:47 ActivityEvent: TakingPill 02/ 01/2013 07:47 ContextEvent: PillName Bentaoxen 02/01/2013 07:47 DeviceEvent: VideoCamera SenseFood 02/01/2013 13:02 ActivityEvent: Eating 02/01/2013 13:02 ContextEvent: Calorie 2704 02/01/2013 13:02 DeviceEvent: PillBox OpenClose 02/01/2013 12:11 Activit yEvent: TakingPill 02/01/2013 12:11 ContextEvent: PillName Bentaoxen 02/01/2013 12:11 DeviceEvent: GlucoseMeter SenseGlucoseLevel 02/01/2013 13:09 Activity: MeasuringGlucoseLevel 02/01/2013 13:09 Context: GlucoseLevel 02/01/2013 13:09 DeviceEvent: VideoC amera SenseFood 02/01/2013 18:24 ActivityEvent: Eating 02/01/2013 18:24 ContextEvent: Calorie 4381 02/01/2013 18:24 DeviceEvent: PillBox OpenClose 02/01/2013 18:21 ActivityEvent: TakingPill 02/01/2013 18:21 ContextEvent: PillName Bentaoxen 02/01/2013 18:2 1 DeviceEvent: StepCounter SenseWalking 02/01/2013 09:49 ActivityEvent: Walking 02/01/2013 09:49 ContextEvent: StepCount 879 02/01/2013 09:49 DeviceEvent: StepCounter SenseWalking 02/01/2013 10:23 ActivityEvent: Walking 02/01/2013 10:23 ContextEvent: Ste pCount 622 02/01/2013 10:23 2. The Second Day Trace For the second day of 60% compliance of step wise decreasing compliance, 13 situations were generated as shown in Figure B 2.

PAGE 252

252 Figure B 2. The Second Day Trace DeviceEvent: WeightScale GenerateErrorCo de ActivityEvent: MeasuringWeightBMI 02/02/2013 20:32 ContextEvent: ErrorCode DeviceEvent: VideoCamera SenseFood 02/02/2013 07:46 ActivityEvent: Eating 02/02/2013 07:46 ContextEvent: Calorie 2427 02/02/2013 07:46 DeviceEvent: PillBox OpenClose 02/02/2013 07:19 ActivityEvent: TakingPill 02/02/2013 07:19 ContextEvent: PillName Bentaoxen 02/02/2013 07:19 DeviceEvent: VideoCamera SenseFood 02/02/2013 11:32 ActivityEvent: Eating 02/02/2013 11:32 ContextEvent: Calorie 930 02/02/2013 11:32 DeviceEvent: PillBox OpenClose 02/02/2013 11:19 ActivityEvent: TakingPill 02/02/2013 11:19 ContextEvent: PillName Bentaoxen 02/02/2013 11:19 DeviceEvent: GlucoseMeter SenseGlucoseLevel 02/02/2013 11:50 Activity: MeasuringGlucoseLevel 02/02/2013 11:50 Context: GlucoseLevel 02 /02/2013 11:50 DeviceEvent: VideoCamera SenseFood 02/02/2013 18:35 ActivityEvent: Eating 02/02/2013 18:35 ContextEvent: Calorie 4970 02/02/2013 18:35 DeviceEvent: PillBox OpenClose 02/02/2013 18:20 ActivityEvent: TakingPill 02/02/2013 18:20

PAGE 253

253 ContextEvent: PillName Bentaoxen 02/02/2013 18:20 DeviceEvent: GlucoseMeter SenseGlucoseLevel 02/02/2013 18:58 Activity: MeasuringGlucoseLevel 02/02/2013 18:58 Context: GlucoseLevel 02/02/2013 18:58 DeviceEvent: StepCounter SenseWalking 02/02/2013 13:53 ActivityEvent : Walking 02/02/2013 13:53 ContextEvent: StepCount 1190 02/02/2013 13:53 DeviceEvent: StepCounter SenseWalking 02/02/2013 14:28 ActivityEvent: Walking 02/02/2013 14:28 ContextEvent: StepCount 596 02/02/2013 14:28 DeviceEvent: StepCounter SenseWalking 02/ 02/2013 15:19 ActivityEvent: Walking 02/02/2013 15:19 ContextEvent: StepCount 1293 02/02/2013 15:19 DeviceEvent: StepCounter SenseWalking 02/02/2013 15:52 ActivityEvent: Walking 02/02/2013 15:52 ContextEvent: StepCount 588 02/02/2013 15:52 3) Third Day T race For the third day of 60% compliance of step wise decreasing compliance, ten situations were generated as shown in Figure B 3 Figure B 3. The Third Day Trace DeviceEvent: VideoCamera SenseFood 02/03/2013 08:46 ActivityEvent: Eating 02/03/2013 08:4 6 ContextEvent: Calorie 599 02/03/2013 08:46

PAGE 254

254 DeviceEvent: PillBox OpenClose 02/03/2013 09:13 ActivityEvent: TakingPill 02/03/2013 09:13 ContextEvent: PillName Bentaoxen 02/03/2013 09:13 DeviceEvent: GlucoseMeter SenseGlucoseLevel 02/03/2013 09:05 Activit y: MeasuringGlucoseLevel 02/03/2013 09:05 Context: GlucoseLevel 02/03/2013 09:05 DeviceEvent: VideoCamera SenseFood 02/03/2013 11:56 ActivityEvent: Eating 02/03/2013 11:56 ContextEvent: Calorie 4796 02/03/2013 11:56 DeviceEvent: PillBox OpenClose 02/03/2 013 11:41 ActivityEvent: TakingPill 02/03/2013 11:41 ContextEvent: PillName Bentaoxen 02/03/2013 11:41 DeviceEvent: GlucoseMeter SenseGlucoseLevel 02/03/2013 12:24 Activity: MeasuringGlucoseLevel 02/03/2013 12:24 Context: GlucoseLevel 02/03/2013 12:24 De viceEvent: VideoCamera SenseFood 02/03/2013 18:50 ActivityEvent: Eating 02/03/2013 18:50 ContextEvent: Calorie 1179 02/03/2013 18:50 DeviceEvent: PillBox OpenClose 02/03/2013 18:31 ActivityEvent: TakingPill 02/03/2013 18:31 ContextEvent: PillName Bentaoxe n 02/03/2013 18:31 DeviceEvent: GlucoseMeter SenseGlucoseLevel 02/03/2013 19:07 Activity: MeasuringGlucoseLevel 02/03/2013 19:07 Context: GlucoseLevel 02/03/2013 19:07 DeviceEvent: StepCounter SenseWalking 02/03/2013 14:05 ActivityEvent: Walking 02/03/20 13 14:05 ContextEvent: StepCount 4 02/03/2013 14:05

PAGE 255

255 LIST OF REFERENCES 1. Healthy Aging: Improving and Extending Quality of Life Among Older Americans: At a Glance 2009, http://www.cdc.gov/chronicdisease/resources/publications/AAG/aging.htm 2. Weitzel, M. Smith, A., Lee, D., Deugd, S., Helal, S.: Participatory Medicine: Leveraging Social Networks in Telehealth Solutions. In: Mokhtari M.,Khalil I.,Bauchet J.,Zhang D., and Nugent C. (eds.) ICOST 2009. LNCS, vol. 5597, pp.40 47. Springer, Heidelberg (2009). 3. Lee, D., Helal, S. and Johnson, B. D: An Action based Behavior Model for Persuasive Telehealth. In Proceedings of the 8 th International Conference on Smart Homes and Healt h Telematics (ICOST), June 2010 4. Mark Weitzel, Andy Smith, Scott de Deugd, Robert Yates, "A Web 2.0 Model for Patient Centered Health Informatics Applications," Computer, vol. 43, no. 7, pp. 43 50, July 2010, doi:10.1109/MC.2010.190 5. Helal, A., Bose, R., Che n, C., Smith, A. de Deugd S., Cook D.: STEPSTONE: A SODA Case Study in Personal Tele Health Management Submitted to the Journal of Ambient Intelligence and Smart Environments. 6. The Continua Health Alliance, http://www.continuaalliance.org 7. The Center for Connected Health http://www.connected health.org 8. Microsoft Health Vault http:// www.healthvault.com 9. Google He alth https://health.google.com/health 10. Ambient Assisted Living Joint Programme, http://www.aal europe.edu/ 11. Patientslikeme, http://www.patientslikeme.com/ 12. Rahman, Md. A., Saddik, A. El and Gueaieb, W.: SenseFace: A Sensor Network Overlay for Social Networks. International Instrumentation and Measurement Technology Conference (I2MTC) (2009) 13. de Deugd, S., Carroll, R., Kelly, K.E., Millett, B., Ricker, J.: SODA: Service Oriented Device Architecture. IEEE Pervasive Computing, vol. 5, pp. 94 -97 ( 2006 ) 14. A Smarter World for Charley, http://www.youtube.com/watch?v= QUEXdDxO37c1 15. The Center for Disease Control (CDC), http://www.cdc.gov/widgets

PAGE 256

256 16. Fox, S.: Participatory Medicine: Text of my speech at the Connected Health symposium, http://e patients.net/archives/2008/11/particip atory medicine text of my speech at the connected health symposium.html 17. Lee, D., Yamazaki, T. and Helal S.: Robotic Companions for Smart Space Interactions IEEE Pervasive Computing, vol. 8, no. 2, pp. 78 84 ( 2009 ) 18. Kidd, C. and Breazeal, C.: Designing a S ociable Robot Sstem for Weight Maintenance. In IEEE Consumer Communications and Networking Conference (2006) 19. Intimate Home Appliances. In: Proc of Ubicomp 2007, pp.145 162. Springer ( 2007) 20. ATLAS Website, http://www.pervasa.com/ 21. King, J., Bose, R., Yang, H., Pickles S. and Helal, A.: Atlas A Service Oriented Sensor Platform. In Proceedings of the first IEEE International Workshop on Practical Is sues in Building Sensor Network Applications (SenseApp 2006) 22. DDL Webiste. http://www.icta.ufl.edu/atlas/ddl/. 23. Chen, C. and Helal, A.: Device Integration in SODA Using the Device Description Language. SAINT, pp.100 106, 2009 Ninth Annual International Sympo sium on Applications and the Internet (2009) 24. Glanz, K., Rimer, B.K. & Lewis, F.M. : Health Behavior and Health Education. Theory, Research and Practice. San Fransisco: Wiley & Sons. (2002) 25. Becker MH (ed): The health belief model and personal health behavior Health Educ Monogr 2:324 508 ( 1974 ) 26. Rosenstock, I. : Historical Origins of the Health Belief Model. Health Education Monographs. v ol. 2 No. 4 (1974) 27. Prochaska J.O. Velicer W F Rossi J S Goldstein M G Marcus B H et al. Stages of change and decisio nal balance for 12 problem behaviors. Heal th Psychol Jan;13(1):39 46 (1994) 28. Prochaska, J.O., DiClemente, C.C and Norcross, J.C.: In search of how people change applications to addictive behaviors. American Psychologist, 47(9), 1102 1114 (1992) 29. Sbeppard, B.H., Hartwick, J. and Warshaw, P.R. : The theory of reasoned action: A meta analysis of past research with recommendations for modifications and future research. Journal of Consumer Research, 15, 325 343 (1988)

PAGE 257

257 30. Fishbein, M .: (1980) : A Theory of Reasoned Ac tion: Some Applications and Implications in Nebraska Symposium on Motivation, eds. H. Howe and M. Page, Lincoln, NB: University of Nebraska Press, 65 116. (1980) 31. Ajzen, I.: The Theory of Planned Behavior Organizational Behavior and Human Decision Process es, Special Issue: Theories of Cognitive Self Regulation, 50 (2), 179 211 (1991) 32. Mearns, J. : Social learning theory In H. Reis & S. Sprecher (Eds.), Encyclopedia of human relationships (vol. 3) (pp. 1537 1540). Thousand Oaks, CA: Sage (2009) 33. Bandura, A. : Social cognitive theory: An agentive perspective. Annual Review of Psychology, 52, 1 26 (2001) 34. Rotter, J B .: The development and applications of social learning theory Selected papers. Englewood Cliffs, NJ: Prentice Hall ( 1982 ) 35. Fogg, B.J.: 1999, Persuasiv e Technologies, Communications of the ACM, Vol. 42, pp. 27 29. 36. Fogg, B.J.: A behavior model for persuasive design In PERSUASIVE ( 2009 ) 37. Fogg, B.J.: Persuasive Technology: Using Computers to Change What We Think and Do. Morgan Kaufmann Publishers, CA, 20 03 38. Consolvo, S., Klasnja, P., McDonald, D. W., Avrahami, D., Froehlich, J., LeGrand L., Libby, R., Mosher, K., Landay, J. Flowers or a robot army?: Encouraging aw areness and activity with personal, mobile displays. In: Proc. Of UbiComp 2008, pp. 5463 (20 08) 39. Chang, Y., Lo, J., Huang, C., Hsu, N., Chu, H., Wang, H., Chi, P., Hsieh, Y.: Playful toothbrush: UbiComp technology for teaching tooth brushing to kindergarten children. In: Proceedings of ACM CHI 2008 (2008) 40. Chiu, M.C., et al.: Playful bottle: a mobi le social persuasion system to motivate healthy water intake. In: Proc. of UbiComp 2009, pp. 185 194 (2009) 41. Tsujita, H., Rekimoto, J.: Smiling Makes Us Happier: Enhancing Positive Mood and Communication with Smile Encouraging Digital Appliances. In: Proc. Of UbiComp 2011, pp. 1 10 (2011) 42. aware Computing Computing Systems and Applications, pp. 85 90, Santa Cruz, CA, IEEE. Decemb er 8 9, 1994

PAGE 258

258 43. Computing, Vol 5, No. 1, pp 4 7, 2001 44. Endsley, M.R., Theoretical underpinnings of situation awareness: a critical review. In: Endsley, M.R., Garland, D.J. (Eds.), Situation Awareness Analysis and Measurement. Lawrence Erlbaum, Mahwah, NJ. (2000) 45. Kim, M. and Kim, M. A Formal Definition of Situation towards Situation Aware Computing. In Proc WSKS (1). 553 563. (2009) 46. Cho E. and Helal, A.: A Situation based Exception Detection Mechanism for Safety in Pervasive Systems. In Proceedings of the IEEE/IPSJ 11th Annual International Symposium on Applications and the Internet (SAINT), July 2011, Munich, Germany 47. Kim, E., Helal A., Nugent C., and Lee J.W.: Assurance Oriented Activity Reco gnition. In Proceedings of the International Workshop on Situation, Activity and Goal Awareness (SAGAware), in conjunction with ACM Ubicomp Conference, September 2011, Beijing, China. 48. Chang, C.K., Jiang, H., Ming, H., and Oyama, K. Situ: A Situation Theo retic Approach to Context Aware Service Evolution. In Proc of IEEE T. Services Computing. 2009, 261 275 49. Locke, E.A. and Latham, G.P.: Building a Practically Useful Theory of Goal Setting and Task Motivation: A 35 Year Odyssey. American Psychologist, 57(9 ) 705 17 (2002) 50. Shilts, M.K., Horowitz, M., and Townsend, M.S.: Goal Setting as a Strategy for Dietary and Physical Activity Behavior Change: A Review of the Literature. American Journal of Health Promotion, 19(2), 81 93 (2004) 51. King P and Tester J : Th e Landscape of Persuasive Technologies. Communications of the ACM, 42 (5), 51 58 (1999) 52. Berdichevsky, D. and Neunschwander, E. : Towards an Ethics of Persuasive Technology Communications of the ACM, 42 (5), 51 58 (1999) 53. The OpenSocial Foundation http:// www. opensocial.org 54. Open Health Tools Project, https://stepstone.projects.openhealthtools.org/ 55. The Apache Shindig Project, http://incubator.apache.org/shindig 56. Helal, S., Mann, W., Zabadani, H., King, J, Kaddoura, Y, Jensen, E .: The Gator Tech Smart House: A Programmable Pervasive Space. IEEE Comput er vol. 38, pp. 50 60. (2005)

PAGE 259

259 57. Dominguez, C.: Can SA b G. McMillan (Eds.), Situation awareness: papers and annotated bibliography (pp. 5 15; Report AL/CF TR 1994 0085). Wright Patterson Airforce Base, OH: Air Force Systems Command. (1994) 58. Fracker, M. L.: A t heory of situation assessment: Implications for measuring situation awareness. In Proceedings of the 32nd Annual Meeting of the Human Factors Society (pp. 102 106). Santa Monica, CA. Human Factors Society. (1988) 59. Pfau, M., & Parrott, R.: Persuasive communi cation campaigns. Needham Heights, MA: Allyn & Bacon. (1993) 60. Lee, D., Helal A., Anton S., De Deugd, S. and Smith A.: Participatory and Persuasive Tele Health. The International Journal of Experimental, Clinical, Behavioral, Regenerative and Technological G erontology. Gerontology, vol. 58, no. 3, pp. 269 281 Karger AG, Bassel, Swistzerland. (2012) 61. Zadeh, L.: Fuzzy sets. Information and Control, 8: 338 353 (1965) 62. Sherman, S. W.: Trace driven modeling: An update. In Proceedings of the fourth symposium on Sim ulation of computer systems, pages 87 91. (1976)

PAGE 260

260 BIOGRAPHICAL SKETCH Duckki Lee received his Bachelor of Engineering in telecommunication and information engineering from Korea Aviation University, South K orea in 2001. He joined PhD program in the Departm ent of Computer and Information Science and Engineering at the University of Florida in 2005. His research interest includes ubiquitous computing, persuasive computing, situation recognition and user behavior assessment.