Journal of Convergence Information Technology Volume 5, Number 9. November 2010
Dealing with Uncertainty in Situation-aware Computing System 1
Chunchen Liu, 2Dayou Liu, 3Shengsheng Wang College of Computer Science and Technology, Jilin University, Changchun, Jilin, China
[email protected] doi:10.4156/jcit.vol5. issue9.18
Abstract Situation awareness is a more holistic and promising version of context awareness, which is a key to making Ambient Intelligence systems more adaptive and intelligent. A situation-aware computing system needs to represent context information, identify relevant situations based on the context, and then take appropriate actions according to situations. However, two main kinds of uncertainty need to be handled in these processes: the semantic of context or situation may be fuzzy; context is inherently imperfect. This paper proposes an innovative framework for carrying out situation-aware computing under uncertainty where fuzzy ontology based on fuzzy description logic is used to model context, several new algorithms are proposed to identify entities’ situations considering uncertainty, a fuzzy system based on fuzzy logic and fuzzy learning techniques is developed to make decisions proactively and automatically. In addition, we develop a prototype of smart home application, experimental results from it show that our new technologies are feasible and effective.
Keywords: Ambient Intelligence, Situation-awareness, Uncertainty, Fuzzy Ontology 1. Introduction Ambient Intelligence (AmI) is a new information paradigm where people are empowered through a digital environment that proactively, but sensibly, supports them in their daily lives [1]. Today, AmI researchers show increasing interest in context-aware applications, for context awareness is a key to building AmI, which can make AmI systems more sensitive, responsive and adaptive. A context-aware computing system (CCS) will provide adaptive actions according to different contexts. Context is any information that can be used to characterize the situation of an entity, where an entity can be a person, place, physical or computational devices [2]. It can be acquired from various sources such as sensors, databases, agents and so on. This context, without any further interpretation, is called low-level context. It’s not a good choice for context-aware computing system to build actions that adapt directly to low-level context, for 1) the low-level context may be meaningless, trivial, or vulnerable to small changes, 2) it’s not necessary for a system to adapt its behavior to each and every change of context [3]. It’s more attractive that a CCS is aware of situations, which are logically aggregated pieces of context and semantic abstractions that describe the phenomena we observe in rich and dynamic environment. By abstracting context into situations and adapting system behaviors only to these situations, a system not only can imitate human decision making process to act more intelligently, but also can be prevented from dealing with much meaningless information. In this sense, a promising CCS tends to be situation-aware. Researches in situation-aware computing include representing situations and context, identifying entities’ situations and then taking proper actions according to them. However, it’s inevitable that two main kinds of uncertainty need to be handled in these processes: 1) Fuzzy situation. The semantic of a situation may be fuzzy as well as the relations among situations, because the human subjective cognition on things is often fuzzy and their cognitive activities are thinking processes full of fuzziness. E.g., if the temperature is warm, my body state is good, exercising time is coming and there’s a club nearby, it’s a situation that I will go out for physical training; Dancing is a kind of exercising to a degree of 0.8. 2) Context derived or acquired from sensors and other resources is often imperfect, which lead situations to be uncertain. E.g., context information may be fuzzy (e.g., Alice is Tom’s confidant to some degree), imprecise, unknown or missing, ambiguous, incorrect. Dealing with uncertainty depicted above well will make a system more practical and robust. However, several challenges need to be solved to realize this target, such as how to represent and organize fuzzy
175
Dealing with Uncertainty in Situation-aware Computing System Chunchen Liu, Dayou Liu, Shengsheng Wang
situations and context? How to identify situation when its nature is fuzzy and context is imperfect? How to take actions according to situations in uncertain and dynamic changing environment? This paper focus on the problems stated above, and proposes an innovative conceptual framework SCUF for CCS, where several new technologies are developed for carrying out situation-aware computing under uncertainty. Fuzzy ontology based on Fuzzy Description Logic (FDL) is used to represent and organize fuzzy situations and context for the first time, then a set of novel algorithms, which take the imperfect nature of context as well as its fuzzy semantic into consideration, are proposed to identify entities’ situations, finally a fuzzy decision making system based on fuzzy learning techniques is developed to trigger actions autonomously according to current situations. This architecture not only makes fuzzy context/situation easily understood, reused and shared by different systems, but also makes a CCS more robust, intelligent, and transparent. The reminder of this paper is organized as follows: Section 2 analyses the current researches on situation awareness under uncertainty; Section 3 gives a global view on SCUF with its concrete techniques detailed in Section 4-6; Section 4 describes how situation and context are modeled using fuzzy ontology; Our situation identify algorithms under uncertainty will be introduced in Section 5; Section 6 details the fuzzy decision making system; Section 7 gives a set of experiments to validate the effectiveness of our new technologies. Finally, conclusions and future work are outlined in Section 8.
2. Related work The significance of handling uncertainty in situation awareness is realized by more and more researchers. Some representative researches are shown in the following paragraphs. Amir et al. [4] presented a Context Spaces model to describe context and situation, and developed a data fusion algorithm based on multi-attribute utility theory to identify situation, which takes the effect of inaccurate sensor readings into consideration. Thomas et al. [5] proposed to use the Description Logics (DL) based ontology language, OWL DL, to model situation. They also developed a framework for employing DL reasoning services to recognize the current situation based on context, which is a fast and reliable, but coarse-grained way. The types of uncertainty considered in the framework are context incompleteness and incorrectness. Juan et al. [3] proposed to use lattice to organize situations, which reflects the internal structure of situations, and introduced a fine-grained approach based on Bayesian network to reason about imperfect context, but its hypothesis that the structure of a Bayesian network is known a priori and will never change usually can’t be met in practical applications. One year later, Juan developed another model [6] for identifying situation under imperfect context. It first describes context by three-valued triples consisting of context value, its life span and confidence value, then integrates context using an algorithm based on Bayes’ Theorem, finally, identifies a situation by combining the confidence values associated with context and the match degree to which the context satisfies the specification of the situation. Anagnostopoulos et al. [7] proposed a situation approximate identifying method, which computes the situation similarity based on the hierarchy of ontology to identify situation under imperfect observations. It works well only when the concepts and relations are classified well in context ontology, and the distance between two concepts in an ontology tree can reflect their semantic variation properly. They also defined fuzzy inference rules to make decisions, which enable the system to assume actions autonomously according to previous user reactions and current situation. However, the fuzzy membership functions as well as fuzzy rules are fixed and predefined by developers. Pari et al. [8] realized the importance of dealing with fuzziness in situation awareness, and presented a model for modeling and identifying situation under uncertainty (fuzziness and inaccuracy), which integrates fuzzy logic principles into the Context Spaces model [4]. However, the fuzzy representing and reasoning ability of this model is limited, a lot of fuzziness, such as the various fuzzy relations among situations/context, fuzzy concepts and etc, can’t be described and propagated. Most of the current researches focus on dealing with imperfect context, the fuzziness of situation and context is ignored although it’s common in context-aware applications. Except for Pari’s model whose representing and reasoning ability is limit, none of the prior researches considered developing a formal mechanism to represent and organize fuzzy situations. In addition, the existing situation identify methods are not fit to recognize a fuzzy situation under imperfect context. A fuzzy decision making
176
Journal of Convergence Information Technology Volume 5, Number 9. November 2010
mechanism that is transparent to developers and users needs to be considered to make a system more intelligent and adaptive.
3. Situation-aware computing framework SCUF A conceptual framework SCUF is developed in this paper for situation-aware computing under uncertainty. A generalized view on SCUF is depicted in Figure 1 introducing four processing phases
IP1
Abstraction Context information
IP2
instances
Abstraction Converter ... Context information
... IPn
FCO1
Fuzzy ontology management
... instances
FCOm FSO
Action Fuzzy decision making Identified situation
... Action
Uncertain inference engine
Fusion FCOi =fuzzy context ontology FSO =fuzzy situation ontology
IPi = Information Provider 1. Acquiring context data
2. Context abstraction and fusion
3. Situation identifying
4. Fuzzy decision making
Figure 1. The conceptual framework SCUF for situation-aware computing system The first phase of SCUF starts with collecting data from enironment using information providers. The providers can be physical sensors that acquire information from the real world (e.g., temperature, humidity, pressure, user’s location, etc), agents that extract information from databases and other applications (e.g., mining travel information from web pages), or agents that get the state of devices which distribute in AmI environment. In the second phase, information from phase 1 will be abstracted and fused, then converted to instances in fuzzy context ontologies. Part of the ambiguous or incorrect information can be eliminated in this phase by fusing information. The fusing methods may be various according to the types of data derived from providers and the types of information to create. Many existing techniques (e.g., [16-18], [21]) can be adopted or referred to realize the fusing processes. Fuzzy reasoners (e.g., fuzzyDL) can be used in the converting processes. The third phase is in charge of identifying the current situations. Fuzzy ontology models fuzzy situations and context. Fuzzy reasoner will maintain the consistency of fuzzy ontology as well as mining implicit information. The uncertain inference engine takes the fuzzy situation/context ontology and a set of instances describing the current situation as inputs to identify situations, which also takes the imperfect nature of context into consideration. Its output is a set of situations, each of them is coupled with two value in [0,1] denoting its occurrence degree and reliability. In the fourth phase, the fuzzy decision making module carries out proper actions according to the current uncertain situations and user’s preference. It is realized as a fuzzy system based on fuzzy logic and fuzzy learning techniques. Our techniques in phase 3 and phase 4 are the focus of this paper.
4. Context representation Context reflects the state of a highly dynamic environment. It describes heterogeneous aspects of the real world of interest comprising time, location, environment (temperature, noise level, etc), device, service, personal information (role, preference, profile, etc). Situation is also a kind of context we name as high-level context, which is logically aggregated from context of other types. Modeling context and situations, then defining their corresponding actions are processes that imitate the human cognition and decision making behaviors, which are full of fuzziness. E.g., people may turn on air conditioner when temperature is hot, they won’t consider whether the current temperature lies accurately in a certain range such as [28, 38] or not. Thus context model has to represent and reason fuzziness in order to make a CCS more intelligent and practical. The types of fuzziness handled in this
177
Dealing with Uncertainty in Situation-aware Computing System Chunchen Liu, Dayou Liu, Shengsheng Wang
paper comprise, 1) fuzzy context type (e.g., fuzzy situations), 2) fuzzy linguistic variables describing context (e.g., hot, long, very), 3) fuzzy relations among context (e.g., Tom stands near to the desk, dancing is a kind of excising to a degree of 0.8). Ontology has been widely used, and proved to be an efficient mechanism to model context. It has many advantages such as sharing communing understanding of the structure of context information among users, devices and services to enable semantic interoperability, enabling reuse and formal analysis of domain knowledge [10]. However, the descriptive power of the ontology widely used in prior work is limited. None of the fuzziness can be represented or reasoned. This paper uses a more descriptive mechanism, fuzzy ontology, to model both certain and fuzzy context. Definition 1: A Fuzzy Ontology is defined as the tuple O = {I, C, D, Df, TR, OO, OV, A} where: - I is the set of individuals, also called instances of the classes. - C is the set of fuzzy classes. Each class c C is a fuzzy set on the domain of individuals. - D is the set of basic data types, such as string, integer, float and etc. - Df is the set of fuzzy data types. Each fuzzy data type d Df is a fuzzy set on the domain of a basic data type, such as d: Integer→ [0,1]. - TR is the set of fuzzy taxonomic relations TR: C2→[0,1], which describe the fuzzy inclusion relations between classes. - OO is the set of fuzzy abstract properties connecting classes. Each property oo OO can be represented as oo: Cn→[0,1]. - OV is the set of fuzzy concrete properties connecting classes with data types. Each property ov OV can be represented as ov: C×D→[0,1] or ov: C×Df→[0,1]. - A is the set of axioms, such as predicates that constrain the meaning of classes, properties. Fuzzy SHIF(D) [11] is a type of fuzzy description logic, which can be used to describe fuzzy ontology. Its supporting reasoner fuzzyDL [12] can help to maintain the consistency of fuzzy ontology and acquire implicit information.
4.1. A quick look to fuzzy SHIF(D) Fuzzy SHIF(D) is a knowledge-based representation system mainly characterized by a set of constructors that enable to build complex concepts and roles from atomic ones. In fuzzy SHIF(D), a semantics is associated with concepts, data types comprising basic data types and fuzzy data types, roles comprising abstract roles and concrete roles, individuals using interpretations I = (ΔI, ·I) and D = (ΔD,·D). ΔI is a nonempty set named abstract domain, and ΔD is a nonempty set disjoint from ΔI named concrete domain. ·I is a fuzzy interpretation function, and it maps a concept C to a fuzzy set CI on the domain of ΔI, maps a abstract role r to a fuzzy set RI: ΔI ×ΔI→[0, 1], and maps a concrete role t to a fuzzy set TI: ΔI ×ΔD→[0,1]. ·D interprets a fuzzy data type d as a fuzzy set DD: ΔD→[0,1]. Table 1 describes the constructors of fuzzy SHIF(D) and their corresponding syntax and semantic, where denotes t-conorm function, denotes t-norm function, denotes negation function and denotes implication function in fuzzy logic. In fuzzy SHIF(D), the membership functions of fuzzy data types are defined as a set of functions over the set of non-negative rationals (Table 2). For backward compatibility, it also allows crisp intervals. Fuzzy modifiers are also allowed, such as very, slightly, which can be applied to fuzzy sets to change their membership functions. Formally, a modifier is a function fm: [0,1] → [0,1]. More details about fuzzy SHIF(D) can be found in [11].
4.2. Formal representation of context We now show the formalization of context using fuzzy SHIF(D). Figure 2 depicts the main hierarchies of context ontologies by a smart home example. In fuzzy context ontology, each context type is modeled as a concept in C, the relations between different types are mapped to fuzzy taxonomic relations in TR or abstract properties in OO, the fuzzy linguistic variables corresponds to fuzzy data types in Df, linguistic variable can constrain context type through fuzzy concrete properties in OV, each piece of basic context information is modeled as an instance of a concept or a relation.
178
Journal of Convergence Information Technology Volume 5, Number 9. November 2010
Constructor Atomic Concept Data type Individual Top Bottom Abstract role Concrete role Conjunction Disjunction Negation Modifier Abstract existential restriction Abstract universal restriction Concrete existential restriction Concrete universal restriction Inequalities Concept inclusion Concept definition Disjoint Role inclusion Inverse role Functional role Transitive role Concept assertion Abstract role assertion Concrete role assertion
Table 1. Fuzzy SHIF(D) syntax and semantic Syntax Example A d a T ⊥ r t C∩D C ∪D C m(C) r.C r.C t.d t.d t val t val =t val C=D r1 r2 (inv r1 r2) (fun r) (trans r)
People Young(x)=L(10,30) Tom Thing Nothing hasConfident hasAge People ∩ Male Male ∪ Female People Very(x) = linear(0.8) hasConfident. Male hasConfident. People hasAge. Young hasWeight. Heavy hasAge 16 hasAge 16 = hasAge 16 Oldster=People∩ hasAge.Old hasConfident hasFriend (inv hasMother hasChild) (fun hasGender) (trans ancestor)
Semantics
AI: ΔI→[0, 1] dI: ΔD→[0, 1] aI ΔI TI=ΔI ⊥I= I rI: ΔI×ΔI→[0, 1] tI: ΔI×ΔD→[0, 1] (C∩D)I(x)=CI(x) DI(x) (C∪D) I(x)= CI(x) DI(x) ( C)I(x)= CI(x) (m(C))I(x)=fm(CI(x)) ( r.C)I(x)= sup yI rI(x,y) CI(y) ( r.C)I(x)= inf yI rI(x,y) CI(y) ( t.d)I(x)= sup y D tI(x,y) dI(y) ( t.d)I(x)= inf y D tI(x,y) dI(y) ( t val)I(x)= supv D tI(x,v) (v val) ( t val)I(x)= supv D tI(x,v) (v val) (= t val)I(x)= supv D tI(x,v) (v = val) ( inf xI CI(x) DI(x)) I
CI(x) = DI(x) I I x Δ : C (x) D (x) = 0 I I I x, y Δ : r1 (x,y) r2 (x,y) I I I x, y Δ : r1 (x,y) = r2 (y,x) I only one y Δ satisfies rI(x,y) CI(y)>0 I I I I x, y Δ : supzI r (x,z) r (z,y) r (x,y) x Δ : I
CI(a) rI(a,b) tI(a,v) 1
Table 2. Membership functions for fuzzy data type in fuzzy SHIF(D) Functions Crisp interval crisp(a, b) Left-shoulder function L(a, b) Right-shoulder function R(a, b) Triangular function triangular(a, b, c) Trapezoidal function trapezoidal(a, b, c, d)
179
Dealing with Uncertainty in Situation-aware Computing System Chunchen Liu, Dayou Liu, Shengsheng Wang isInvolvedBy
hasTime
Time
Environment
Situation Exercising time User situation
Reading time
...
...
Temprtature
Light
...
hasLocation hasEnvironment
Person hasRole
hasBodystate
Location Service
Resting
Exercising
Working
Entertainment
Family
...
Friend
Role Sleeping
Going-exercise
Cleaning
Drowsing
Running
Reading
Meeting
Bodystate
locatedat
PhysicalObject provideService
... Device
Furniture
OutdoorSpace
Home
Club
Room
...
partof
Normalstate Friend meeting
...
IndoorSpace
TV
Sofa
PDA
Chair
... Family meeting
Abnormalstate
...
Rsetroom Livingroom
...
Figure 2. Main hierarchies of fuzzy context ontologies (1) Fuzzy linguistic variable Fuzzy data types and modifiers are good candidates for representing fuzzy linguistic variables, which can interpret their semantic quantitatively. For example, the data type Warm=trapezoidal(16,20,25,30) (Figure 3(a)) represents the degree of warmth of the temperature. Very can be modeled as a modifier Very=linear(0.8) (Figure 3(b)). 1
1
5/9
0
16
20
25
30
x
0
4/9
1
x
(a) (b) Figure 3. (a) Warm=trapezoidal(16,20,25,30) (b) Very=linear(0.8) (2) Fuzzy relations The taxonomic relation between concepts may be fuzzy, and can be described using fuzzy concept inclusion axioms such as , where α (0,1]. It states that all instances of Sleeping are instances of Resting to a degree of α, the subsumption degree between Sleeping and Resting is at least α. The semantic relations among concepts may also be fuzzy, such as the spatial relations between objects (e.g., a club named haosha locates near to my house). This kind of relations can be modeled as fuzzy abstract roles connecting concepts. For example, a fuzzy role near is defined with its domain and range both on concepts Person, Device, PhysicalObject or Location. < near. T Person Device PhysicalObject Location, 1> < T near. Person Device PhysicalObject Location, 1> The relations between concepts and data types are modeled as fuzzy concrete roles through which linguistic valuables can constraint concepts. E.g., a concrete role hasHumidity is defined as: < hasHumidity. T Location, 1> < T hasHumidity. High, 1> (3) Fuzzy context types Fuzzy context types are modeled as concepts in context ontology, which can be defined based on fuzzy linguistic variables and relations. For example, Going-exercise is a fuzzy situation concept, which implies that the user will go out for exercise when he’s at home now, the outdoor temperature is warm, his physical condition is normal, there’s a club near his house and its time for physical training. Warm, Middle and Moderate are fuzzy data types. Going-exercise= Exercising isInvolvedBy (Person hasLocation. (Home near. Club hasOutdoorTemprature. Warm) hasBodystate. Normalstate hasTime. Exercisingtime)
180
Journal of Convergence Information Technology Volume 5, Number 9. November 2010
Normalstate= Bodystate hasBloodpressure. Middle hasHeartrate. Moderate (4) Basic fuzzy context information The context information abstracted from information providers are added to the fuzzy context ontology as instances, whose forms are , or . E.g., states that Tom is the user’s confidant to a degree at least 0.8. states that club1 lies near to home1 to a degree at least 0.9. states that Tom is 18 years old.
5. Situation identifying The structure of situation identifying problem is as follows [7]: Given a description d(s) of the current (unknown) situation s and a solution space O represented as a set of predefined situations, then the solution set W O to the identifying problem is W={o O| d(s) o}. In SCUF, basic context information is added to the context ontologies as instances at run-time, which compose the description d(s) of s, situations are modeled as concepts and s is modeled as instance in situation ontology. The solution set in SCUF is the set of situation concepts that s belongs to, W={(S, Vo, Vr)|S Csituation ontology, Vo >0, Vr >0}. Vo [0,1] describes the occurrence degree of situation S , and Vr [0,1] describes the reliability of the identified situation S. The uncertain inference engine in SCUF is responsible for identifying the current situation under uncertainty. Its inputs are the fuzzy situation ontology, the fuzzy context ontologies and the description of the current situation d(s), and its output is the solution set W. Elements of d(s) take the form of (, r’), (, r’) or (, r’), where r’ [0, 1] is a probability value denoting the reliability of basic context information because the information providers may produce incorrect information. r’ is calculated by the abstracting or fusing models in Phase 2 using a set of existing techniques (e.g., [9], [13], etc). E.g., d(s)={(, 1), (, 0.9), (, 0.95), (, 0.8), (, 1), (, 0.97)}. W can be acquired by classifying the current situation in fuzzy situation ontology. We have to consider the fuzzy semantic of situation and imperfect context information when classifying. Our situation approximate identifying algorithm introduced in section 5.1 aims at computing Vo while minimizing the effect of fuzzy, imprecise, unknown or missing context on our identifying result. The effect of incorrect context on the identified situation is measured by Vr whose computing method will be introduced in section 5.2.
5.1. Situation approximate identifying algorithm fuzzyDL[12] is a DL reasoner supporting fuzzy logic reasoning, which allows several reasoning tasks such as concept satisfiability, entailment problem, etc. Its reasoning service (min-instance? a C) is a good candidate for classifying situation, which considers the fuzzy semantic of situation and context and returns a value in [0,1] denoting the membership degree of an instance in a concept. When classifying situation, the existence of imprecise context can’t be ignored. Their effect can be weakened by using fuzzy sets to describe the imprecise information first, and then define fuzzy data types in context ontology to represent the fuzzy sets (e.g., about3 is defined as a fuzzy data type that represent triangular(2.5, 3, 3.5)), which will then be used to constraint situation concepts. Thus the imprecise information can be understood by the computer and reasoned by (min-instance? a C) to classify situation. One thing for attention, as the basic assumption of description logic is the open world assumption, which means that we can’t assume something doesn’t exist until it is explicitly stated that it doesn’t exist, fuzzyDL can’t evaluate the effect of unknown or missing context properly. Taking the previous situation description d(s)={ (, 1), …} as an example, where Tom’s current blood pressure information is missing, the situation Going-exercise is reasoned out by (min-instance? s Going-exercise) as happen to a degree of 0.9, although this situation doesn’t happen in fact because Tom’s blood pressure is so low that he can’t exercise. Therefore, we developed an algorithm to modify the result reasoned out by (min-instance? a C), which take the effect of unknown/missing information
181
Dealing with Uncertainty in Situation-aware Computing System Chunchen Liu, Dayou Liu, Shengsheng Wang
into consideration and computes the occurrence degree of a situation approximately. Formula (1) and (2) show how to compute Vo. Vo(s, S)=min{fc, fc W +
1W } 2
fc=(min-instance? s S)
(1) (2)
fc is the result computed by the fuzzy classifying service that computes the membership degree of s in S. W is a weight evaluating the influence of the existing knowledge on classifying s as S. (1-W) is the weight of unknown knowledge. Algorithm 1 shows how to compute W, which is a fine-grained one. This algorithm computes W by comparing d(s) and knowledge in the knowledge bases of context ontologies with the semantic description of situation concept. Generally speaking, the semantic description consists of a set of superclasses and a set of restrictions including abstract existential/universal restriction ( r.C, r.C), concrete existential/universal restriction ( t.d, t.d), inequality restriction ( t val, t val, = t val). A concept C can be put in normal form, C=SS SR, SS is the set of superclasses except the most abstracted one that sits on the top of ontology tree, SR is the set of restrictions. E.g., Normalstate={Bodystate} { hasBloodpressure. Middle, hasHeartrate. Moderate}. Algorithm 1. Weight-calculating (s, S) Input: d(s), the set of descriptions of the current situation s, which describe facts about s S= SS SR, S is a situation concept Output: W Begin For each class c SS // Acquiring all the restrictions of S. {let c=SSc SRc; // SSc is the set of superclasses of c, SRc is the set of restrictions of c. SR=SR SRc;} n=|SR|; m=0; /*n is the total number of restrictions of S, m is the number of restrictions satisfied by existing knowledge.*/ If n=0 Then Return 1; // If a concept has no restrictions, the weight is set to 1. For each concrete role t in SR {Let S’ be the set of descriptions which belong to d(s) and have the form (, r’); For each restriction on t {1) If restriction is ( t.d) Then If (there exists (, r’) S’ && μd(v)>0) Then m=m+1; //μd() is the membership function of d. 2) If restriction is ( t.d) Then If (S’ && d (dr.v) >0) drS '
Then m=m+1; 3) If restriction is ( t val) Then If (S’ && each (, r’) S’ satisfies v val) Then m=m+1; 4) If restriction is ( t val) Then If (S’ && each (, r’) S’ satisfies v val) Then m=m+1; 5) If restriction is (= t val) Then If (|S’|=1 && v=val) Then m=m+1; } } For each abstract role r in SR {Let S’ be the set of descriptions which belong to d(s) and have the form (, r’); For each restriction on r {1) If restriction is ( r.C) Then If (S’ && max {min{Vo(s1.i1, C), s1. α}}>0) //i1 is an instance. s1S '
Then m=m+ 1; 2) If restriction is ( r.C)
182
Journal of Convergence Information Technology Volume 5, Number 9. November 2010 Then If (S’ && min {max{Vo(s1.i1, C), (1-s1. )}}>0) s1S '
Then m=m+1; }} Return m/n; End
5.2. Situation reliability Situations are identified based on information acquired from the information providers. However, the providers may produce incorrect information. For example, we use RFID to detect if a user is in a certain room, because the range of a RFID reader can fall outside the room it’s monitoring, the reader might sense the user when he moves outside. Thus, a CCS should consider the reliability of an identified situation (e.g., a system identifies that Tom is going for exercise with a certainty of 0.7, and the reliability of this conclusion is 0.9.), which coupled with Vc will affect the decision making process. This section focuses on computing the reliability of a situation. The reliability Vr of a situation will be computed when its occurrence degree Vo>0. Formula (3) shows its computing method. Vr(s, S) =
reliability(s, S , rs)
(3)
rsSRS
s is the current situation modeled as an instance with d(s) as its description set. S is a concept in situation ontology, which describes the semantic of an identified situation. SR S is the set of all the restrictions of S, and reliability(s,S,rs) represents the reliability of restrictions. Algorithm 2 shows how to compute reliability(s,S,rs), which will be carried out only when Vo(s,S)>0. In this algorithm, if there doesn’t exist any facts about a restriction, its reliability is set to 1, which means that the reliability of the situation isn’t affected by this restriction. Algorithm 2. Reliability-calculating (s, S, rs) Input: d(s), the set of descriptions of the current situation s rs SRS, S=SSS SRS, SRS is the set of restrictions on the situation concept S Output: a value in [0,1], which represents the reliability of rs supported by d(s) and facts in the knowledge base of context ontology Begin 1. If (rs= t.d) /*Its reliability is the maximum value among the reliability of the basic context information that makes t.d satisfied.*/ Then {Let S1 be the set of descriptions which belong to d(s) and have the form (, r’); If (S1= ) Then Return 1; Else {If max { d (dr.v)} >0; Then {Let S’={s’|s’ S1 d (s'.v) = max { d (dr.v)} }; Return drS 1
drS 1
max {s'.r '} ; s 'S '
Else Return 1;} } 2. If (rs= t.d) /*Its reliability is the minimum value among the reliability of the basic context information that make t.d satisfied.*/ Then {Let S1 be the set of descriptions which belong to d(s) and have the form (, r’); If (S1= ) Then Return 1; Else {Let S’={s’|s’ S1 d (s'.v) = min{ d (dr.v)} ; Return min{s'.r ' } ;} drS 1
s 'S '
} 3. If (rs= t val or rs= t val) Then {Let S1 be the set of descriptions which belong to d(s) and have the form (, r’); If (S1= ) Then Return 1; Else Return min{dr.r ' } ;} drS 1
4. If (rs= (= t val))
183
Dealing with Uncertainty in Situation-aware Computing System Chunchen Liu, Dayou Liu, Shengsheng Wang Then {If (there exist (, r’) d(s) && v=val) Then Return r’; Else Return 1;} 5. If (rs= r.C ) /*Its reliability is set to the maximum value among the reliability of the basic context information that satisfies r.C.*/ Then {Let S2 be the set of descriptions which belong to d(s) and have the form (, r’); If (S2= ) Then Return 1; Else {fv= max {min {dr. , (min-instance? dr.i1 C)}}; drS 2
If (fv>0) Then {Let S’={s’|s’ S2 min{s’. , (min-instance? s’.i1 C)}=fv}; Return max {min{s'.r ' , r (s'.i1 : C )}} ;} s 'S '
/* r (a : C) represents the reliability of the fact that instance a belongs to concept C*/ Else Return 1; } } 6. If (rs= r.C) /* Its reliability is set to the minimum value among the reliability of the basic context information that makes r.D satisfied.*/ Then {Let S2 be the set of descriptions which belong to d(s) and have the form (, r’); If (S2= ) Then Return 1; 1 if x y Else {fv= min {cmp(dr. , (min-instance? dr.i1 C))}; // cmp( x, y ) { drS 2 y if x y Let S’={s’|s’ S’ cmp(s’. , (min-instance? s’.i1 C))=fv}; Return min{min{s'.r ' , r (s'.i1 : C )}} ; s 'S '
} } End
6. Fuzzy decision making Fuzzy decision making is a process that decides how a CCS will react to the current identified situation. The developer can specify a task to be executed when a specific situation happens, e.g., notify the traffic condition when Tom is leaving for physical training. A CCS should take into account the certainty of the occurrence of a situation and the reliability of this conclusion when making decisions. For example, if the occurrence degree of a situation is high while this conclusion is unreliable, should the tasks corresponding to the situation be executed or not? We develop a fuzzy system (Figure. 4) based on fuzzy logic and fuzzy learning technique to make decisions according to situations occurrence degree and reliability. (Si, Vo, Vr)
Uncertain inference model training data Fuzzy learning algorithm
Fuzzifier
Action
Membership functions and rules
Defuzzifier
... Action
Fuzzy rule base
Inference
Figure 4. Architecture of the fuzzy decision making system In this system, the solution set W from the uncertain inference engine is sent to the Fuzzifier which converts the crisp Vo and Vr into fuzzy sets, the inference module uses fuzzy rules to produce fuzzy conclusions, and the Defuzzifier will convert the fuzzy conclusions to crisp values which control the system to take proper actions.
184
Journal of Convergence Information Technology Volume 5, Number 9. November 2010
Fuzzy rules are crucial in fuzzy decision making process, for they show the reactions of a system to uncertain situations. Fuzzy rules in the rule base describe the relationship between (Vo, Vr) and T which is the action decision on a situation, and take the following form: RSi 1 : IF Vo (S1) is ASi 1 and Vr (S1) is BSi 1 , THEN T(S1) is C Si 1 i=1, 2, … , MS1, MS1 is the total number of rules about a situation S1, i is the index of the rules. Vo (S1) is interpreted as the occurrence degree of S1, Vr (S1) is interpreted as its reliability. ASi 1 is a linguistic variable from the set AS1={ ASj1 : j=1,…, N1} that describe the characteristic of Vo(S1), such as AS1 ={very low, low, middle, high, very high}. Each element of AS1 is interpreted as a fuzzy set whose membership function maps [0,1] to [0,1]. BSi 1 is a linguistic variable from the set BS1={ BSj1 : j=1,…, N2} describing the characteristic of Vr (S1). C Si 1 takes value from the set {inactive, active}. Inactive and active are both fuzzy sets on the domain of [0,1], inactive indicates the certainty of the system to take no action while active denotes the certainty of the system to take actions that are specified by users in advance. As the AMI environment changes dynamically and it contains various information providers, predefining fuzzy membership functions for linguistic variables and predefining fuzzy rules based on developer’s experiences are hard jobs. This paper uses fuzzy learning techniques to learn membership functions and rules automatically, which make a CCS more adaptive and intelligent. Castellano’s Double Clustering approach [14] used for extracting fuzzy membership functions and Wang’s fuzzy rules extracting method [15] are adopted for learning, for they are effective and don’t require heavy computation. The learning process is as follows: 1) Acquiring training data: training data are accumulated from the uncertain inference engine and the system behaviors over a period of time, which takes the form of ( Vol (S i ) , Vrl (S i ) , a l ), i=1,…, M1, l=1,…, M2 M1 is the number of situations. M2 is the number of data instances about Si. Vol (S i ) [0,1], l l l Vrl ( S i ) [0,1] and a {0,1}. a =0 means that the system takes no action while a =1 means that the system executes the tasks corresponding to Si. 2) Using the Double Clustering approach to learn the membership functions of the linguistic variables for each situation. The number of linguistic variables for each Vo(Si) or Vr(Si) is predefined by developers, and the optimum number in our case is 5. 3) Using the fuzzy rules extracting method to extract rules for each situation. Formula (4) shows how to map a vector (S, Vo, Vr) in the solution set W to a crisp value in the fuzzy decision making system. M i 1 a i A (V0 ) B (Vr ) S
y(S)=
i S
i S
A (Vo ) B (Vr ) MS i 1
i S
(4)
i S
MS is the number of the rules about the situation S, i is the index of the rules, ai is a value in [0,1] that has the maximum membership in the output fuzzy set C Si of the ith rule. After acquiring y(S),
inactive( y(s)) and active( y(s)) will be compared, the system will execute the tasks corresponding to S if active( y(s)) is larger, otherwise no action will be done.
7. Experiment We have developed a prototype of smart home application based on SCUF to validate the effectiveness of our new context representing and reasoning techniques. A smart home test bed comprising two sub-rooms, a bedroom and a living room, is built. Several sensors distribute in the rooms including internal and external temperature sensors, light level sensors, sofa/chair/bed pressure sensors, TV/air conditioner/treadmills status sensors. We also implement three services to get
185
Dealing with Uncertainty in Situation-aware Computing System Chunchen Liu, Dayou Liu, Shengsheng Wang
information: getting location information of outdoor buildings from the electronic map of Beijing; acquiring traffic information from internet; getting user’s information from his electronic calendar. All the sensors and services mentioned above serve as information providers in our system. Data acquired from the providers should be preprocessed by agents that realize the functions of the abstracting/fusing models in SCUF, before converting to instances in fuzzy context ontology. For example, we use the Ekahau Positioning Engine [16] that tracks user’s personal devices (e.g., PDA) to compute his spatial position, the positioning service provides the reliability of the inferred location with a value in [0,1]; we develop services to calculate the fuzzy spatial relation between objects based on their location, using the existing fuzzy directional or distance relation computing techniques [17-18], the reliability of a computed spatial relation is set to the minimum value of the location information reliability of its corresponding objects; temperature information is acquired directly from the temperature sensor, and its reliability is set to the sensor reliability that is specified by manufacturers. After preprocessing, the processed information will be added to the fuzzy context ontologies by fuzzyDL. Fuzzy situation ontology and context ontology are the important base of our system, their main hierarchies are already shown in Figure 2. In our experiment, we focus on user’s situation and select 16 situations that usually happen in our daily lives at home, which are sorted out into four basic categories: working, resting, exercising and entertainment, and model them as concepts in fuzzy situation ontology. The fuzzy context ontology comprises 6 concrete ontologies describing different aspects of the context. We refer to the temporal terms in DAML-Time [19] when defining the time ontology, and refer to the service description structure in OWL-S [20] when defining the service ontology. All fuzzy ontologies are written in fuzzy SHIF(D) and maintained by the fuzzy reasoning engine fuzzyDL. Two agents are developed to identify situations and make decisions using the techniques in section 5 and 6. Once a situation is identified, this situation along with the decision on it will be sent to the user’s PDA, thus the user can judge whether the decision is right or not. Our experiment lasts for two weeks. The first week is the rule training period when user controlled devices in the house himself, situations that were identified by the identifying agent and the executing status of their corresponding tasks were recorded. The number of records we acquired on each day during the training period is shown in Table 3. We applied the learning techniques once everyday during the training period to learn fuzzy rules based on these records. Figure 5 depicts the learning results. The number of fuzzy sets describing each input parameter of the rules was set to 5 and the fuzzy membership function overlap threshold was set to 0.5. According to the results, we can see that the number of rules has stepped into a stable state since the 5 th day.
Monday 85 Total number of fuzzy rules
Records
Table 3. Number of records acquired on each day Tuesday Wednesday Thursday Friday Saturday 99
73
77
63
102
Sunday
Total
90
589
140 120 100 80 60 40 20 0 1
2
3
4 Days
5
6
7
Figure 5. Variation of the number of fuzzy rules, the system learnt 129 fuzzy rules in all Two parameters, Precision and Recall, are used to evaluate the system performance. Precision is N defined as right , Nright is the number of the recognized situations whose corresponding tasks are N execute
186
Journal of Convergence Information Technology Volume 5, Number 9. November 2010
executed and the decision on it is right, N executed is the number of the recognized situations whose N corresponding tasks are executed. Recall is defined as right , Nall is the number of situations that N all actually happened. We compare our system with its two another versions. One version is a system (we name it as Edition1) that uses the classifying service provided by fuzzyDL to compute the occurrence degree Vo of a situation. The other version is a system (we name it as Edition2) that makes decisions only based on Vo without considering Vr. The acquired fuzzy rules are not fit to be used in these new versions, so we trained two new sets of fuzzy rules for them separately using the learning mechanism. The performance comparisons of the three systems are depicted in Figure 6 and Figure 7. After analyzing the experiment data of Figure 6, we find that information incompleteness is not an occasional phenomenon, and their effect on system performance can’t be ignored. Using our situation identifying technology will loss a little Recall (0.39% on average) comparing with Edition1, but it can evaluate the effects of unknown or missing information on situation identifying properly and cooperates with the decision making mechanism to weaken them, which improve the Precision by 3.58% on average. The comparing results in Figure 7 show that taking the reliability of an identified situation into consideration when making decisions is necessary, which can improve both the Precision and Recall. And the improved percentage of Precision is a little higher than that of Recall. Edition1
our system
0.9 0.88 0.86 0.84 0.82 0.8 0.78 0.76 0.74 0.72
Recall
Precision
Edition1
200
400
600
800
1000
our system
0.935 0.93 0.925 0.92 0.915 0.91 0.905 0.9 0.895 0.89
1200
200
400
The number of test instances
600 800 1000 The number of test instances
1200
Figure 6. Comparing the performance of Edition1 with our system Edition2
our system
Recall
Precision
Edition2 0.9 0.88 0.86 0.84 0.82 0.8 0.78 0.76 0.74 0.72 200
400
600
800
1000
1200
200
The number of test instances
our system
0.93 0.92 0.91 0.9 0.89 0.88 0.87 0.86 0.85 400
600 800 1000 The number of test instances
1200
Figure 7. Comparing the performance of Edition2 with our system
8. Conclusions and future work Firstly, we proposed to use fuzzy ontology to represent and organize situation and context. The ontology describing language, fuzzy SHIF(D), is used to represent fuzzy information while its supporting reasoning engine, fuzzyDL, helps to maintain the consistence of ontology and reason potential information. The benefits of our method are manifold: fuzzy ontology has rich expressing ability, it can describe both fuzzy and certain semantic of context and the various relations among them; information modeled by context/situation ontologies can be easily shared and reused; defining fuzzy situation to describe phenomenon in AmI environment can make a CCS act more humanlike. Secondly, we developed a set of algorithms to identify situations under uncertainty. Two parameters, occurrence degree and reliability, are computed to describe situation, and both of them are validated by
187
Dealing with Uncertainty in Situation-aware Computing System Chunchen Liu, Dayou Liu, Shengsheng Wang
experiments to be important to make correct decisions, thus improve the Precision and Recall efficiently. Thirdly, we indicated that fuzzy system based on fuzzy logic is an efficient tool to make decisions, which make the decision making process transparent to users and developers, however, predefining membership functions for fuzzy linguistic variables and predefining fuzzy rules are hard jobs especially in dynamic changing environment. We proposed to make decisions based on Vo and Vr, and adopted fuzzy learning techniques to learn fuzzy membership functions and rules automatically, thus make a CCS more reliable. Fourthly, we developed a prototype of smart home application based on the situation-aware computing framework, SCUF, to validate the effectiveness of our new technologies. Of course, something should be done to improve our work in the future. In our current work, situations are predefined explicitly in situation ontology. However, as user’s requirements might change, a situation definition may become out of date. How to make a CCS adapt to user’s changing requirements and learn the changing situation is our next work.
9. Acknowledgments This paper is supported by National Natural Science Foundation of China under Grant Nos. 60603030, 60773099, 60873149, 60973088; the National High-Tech Research and Development Plan of China under Grant No. 2006AA10Z245, 2006AA10A309; Erasmus Mundus External Cooperation Window's Project (EMECW): Bridging the Gap, 155776-EM-1-2009-1-IT ERAMUNDUS-ECW-L12. 2009 - 2012.
10. References [1] J. C. Augusto, “Ambient Intelligence: the confluence of Ubiquitous/Pervasive computing and Artificial Intelligence”, Intelligent Computing Everywhere, Springer, pp.213-234, 2007. [2] A. Dey, “Understanding and Using Context”, Personal and Ubiquitous Computing, Springer, vol. 5, no. 1, pp.4-7, 2001. [3] J. Ye, L. Coyle, S. Dobson, P. Nixon, “Using Situation Lattices to Model and Reason about Context”, In Proceedings of MRC 2007, pp.1-12, 2007. [4] A. Padovitz, S. W. Loke, A. Zaslavsky, “An approach to Data Fusion for Context Awareness”, In Proceeding of CONTEXT’05, pp.353-367, 2005. [5] T. Springer, A. Y. Turhan, “Employing Description Logics in Ambient Intelligence for Modeling and Reasoning about Complex Situations”, Journal of Ambient Intelligence and Smart Environments, IOS Press, vol. 1, no. 3, pp.235-259, 2009. [6] J. Ye, S. Mckeever, L. Coyle, “Resolving Uncertainty in Context Integration and Abstraction”, In Proceeding of ICPS’08, pp.131-140, 2008. [7] C. B. Anagnostopoulos, Y. Ntarladimas, S. Hadjiefthymiades, “Situational computing: An innovative architecture with imprecise reasoning”, Journal of Systems and Software, Elsevier, vol. 80, no. 12, pp.1993-2014, 2007. [8] P. D. Hauhighi, S. Krishnaswamy, A. Zaslavsky, “Reasoning about Context in Uncertain Pervasive Computing Environments”, In Proceeding of EuroSSC 2008, pp.112-125, 2008. [9] C. B. Anagnostopoulos, O. Sekkas, S. Hadjiefthymiades, “Context Fusion: Dealing with Sensor Reliability”, In Proceeding of 2007 International Conference on Mobile Adhoc and Sensor System, pp.1-6, 2007. [10] T. Gu, X. H. Wang, H. K. Pung, D. Q. Zhang, “An Ontology-based Context Model in Intelligent Environments”, In Proceeding of Communication Networks and Distributed Systems Modeling and Simulation Conference, pp.270-275, 2004. [11] F. Bobillo, U. Straccia, “fuzzyDL: An Expressive Fuzzy Description Logic Reasoner”, In Proceeding of the 17th IEEE International Conference on Fuzzy System (FUZZ-IEEE 2008), pp. 923-930, 2008. [12] http://gaia.isti.cnr.it/~straccia/software/fuzzyDL.
188
Journal of Convergence Information Technology Volume 5, Number 9. November 2010
[13] A. Ranganathan, J. A. Muhtadi, “Reasoning about Uncertain Contexts in Pervasive Computing Environments”, IEEE Pervasive Computing, IEEE, vol. 3, no. 2, pp.62-70, 2004. [14] G. Castellano, A. M. Fanelli, C. Mencar, “Generation of Interpretable Fuzzy Granules by a Double-Clustering Technique”, Archives of Control Science: Special Issue on Granular Computing, vol. 12, no. 4, pp.397-410, 2002. [15] L.X. Wang, J. M. Mendel, “Generating Fuzzy Rules By Learning From Examples”, IEEE Trans. On Systems Man and Cybernetics, IEEE, vol. 22, no. 6, pp.1414-1427, 1992. [16] Ekahau Positioning Engine, http://www.ekahau.com. [17] I. Bloch, A. Ralescu, “Directional relative position between objects in image processing: a comparison between fuzzy approaches”, Pattern Recognition, Elsevier, vol. 36, no. 7, pp.15631582, 2003. [18] K. Sridharan, H. E. Stephanou, “Fuzzy distances for proximity characterization under uncertainty”, Fuzzy Sets and Systems, Elsevier, vol. 103, no. 33, pp.427-434, 1999. [19] http://www.cs.rochester.edu/~ferguson/daml/. [20] The OWL Services Coalition: OWL-S: Semantic Markup for Web Services. http://www.daml.org/services/owl-s/1.0/owl-s.html. [21] M. J. Islam, Q. M. Jonathan Wu, M. Ahmadi, “Investigating the performance of Naïve-Bayes classifier and K-Nearest Neighbor classifier”, Journal of Convergence Information Technology, AICIT, vol. 5, no. 2, 2010.
189