A Robust Mechanism for Categorizing Context-Aware Applications into Generations

— The hunt to categorize context-aware applications has been a prevalent issue to developers of context-aware applications. The previous categorizations were based on the functions of the applications. These mechanisms yielded limited results since many applications could not be categorized. This paper categorizes applications into four generations based on developmental trends through a literature survey. The first generation applications focused on data acquisition and used hardware sensors. The second generation applications focused on knowledge acquisition and used software sensors, semantic language and ontology-based modelling languages. The third generation applications focused on intelligent reasoning and used mechanisms to handle information uncertainty. The fourth generation applications deprecate cumbersome ruleset implementations and focus on artificial intelligence whilst taking into consideration the effect of the dynamics of users’ background and preference on contextual information. The study demonstrated that when applications, methods or technologies can be categorized over some time, it is better to classify them into generations.


I. INTRODUCTION
An application is context-aware when it acquires and utilizes context for adaptation. There have been many context-aware applications over the years. Unfortunately, the hunt to categorize these applications has been a prevalent issue to the research community of pervasive computing. Dey and Abowd [1] attempted to classify context-aware applications into three categories based on the functions of the applications. They listed guides, reminders, and environmental controls. Dey [2] realized that many applications could not fit the three categorizations. He also argued that the three categorizations impeded advancement in the field of context-aware computing. Researchers over the years had provided their categorization when their applications do not fit the categorization in [1]. Among them were location-aware systems [3] and healthcare systems [4].
[5] categorized context-aware applications as mobile health, personalization or recommendation and mobile commerce. These were also based on functions. Most of the guide applications in [1] could be considered as personalization or recommender systems as defined by Beierle et al. [5]. However, their work could not consider the applications categorized as contemporary applications by Dey [2]. Moreover, the Submitted [7] to assist Alzheimer disease could be categorized as both mobile health and personalization or recommendation systems. Hence there is the need to recategorize these applications.
This study categorizes context-aware applications into generations based on the developmental trend by looking at the architecture of the application, the limitation the implementation mechanism handled and the year of implementation. The remaining section of the paper is organized as follows: Section II looks at the methodology employed in this work. A detailed review of some of the applications to establish the trend of application development is discussed in Section III. Section IV summarizes the findings of the study and Section V provides the conclusion.

II. METHODOLOGY
The methodology of the research was mainly through a literature survey. This method was employed because the applications to be categorized have been implemented and their methods of implementation, strengths and limitations were available in the literature.

A. Paper Search and Paper Inclusion Criteria
The first task was to identify when the first context-aware application was developed. The year was found to be 1992 [12] even before context-aware computing was founded in 1994 by Schilit and Theimer [11]. Articles were gathered from 1992 from the popular digital libraries like ACM, Google Scholar, Emerald, IEEE Explore, Pubmed, Science Direct and Springer Link using the search term "Contextaware". Table I shows results obtained from the various digital libraries The subsequent phases determined which paper should be included in the categorization mechanism. The various phases have their criteria respectively set as: 1. The paper should be relevant. This criterion ensured that the paper has a method of implementation, algorithm or framework which has been evaluated. 2. Duplication of papers was ignored. 3. The article has been peer-reviewed in a scientific journal, conference or workshop and it was written in English. Table II depicts the number of papers that remained after applying each criterion From Table II, 2187 papers were gathered and used during the categorization mechanism

B. Paper Categorization Procedure
The following procedures were employed: 1. Start. 2. Gather implementations, research papers or publications (hereinafter called papers) from 1992 onwards. 3. Arrange the papers in chronological order, according to the date of publication. 4. Get the next paper, such that ∀ ∈ ℤ + , ≠ 0 and the current generation, , ∀ ∈ ℤ + , ≠ 0. If = = 1, then P1 is placed into G1. 5. If the end of papers, go to step 9 otherwise determine the implementation mechanisms of . 6. If the implementation mechanism of is similar to −1 ∀ ∈ ℤ + , > 1 then place into . Set = + 1 and go to step 4. 7. Otherwise, if ∈ , a generation which has already been considered, such that q ∈ ℤ + and < for > 1 and ≠ 0, then classify the paper, as an outlier of . Set = + 1 and go to step 4. 8. Otherwise, create a new generation, +1 and place as the first paper in +1 . Set = + 1 and go to step 4. 9. Analyze the outliers for each generation starting with G1. 10. If the number of outliers is more than 5% (the margin of error chosen for this work and considered acceptable by most researchers [8], of the total number of papers of the generation, , review the generation by going to step 1. Otherwise, discard the outliers. Move to the outliers of the next generation, +1 and go to step 10. If there is no generation to consider, go to step 13. 11. If the number of papers of +1 with dates less than the dates of the outliers of is less than 5% of the number of papers in +1 then reconsider the implementation mechanism of and obtain an appropriate generic name to encompass the outliers of . The papers in +1 with dates less than the dates of the outliers of are now considered as outliers of +1. Next, get +1 and go to step 10.

If the condition in
Step 10 is false, then generation is expanded by combining the generic names to consider the outliers of and the papers of +1 with dates less than the outliers of . A typical example occurred when the study combined software sensors, semantic language and ontology-based modelling languages for second generation applications. Get the next generation and go to step 10. 13. Get the generations. 14. Stop.

III. DEVELOPMENTAL TRENDS OF THE APPLICATIONS
The first application that relied on context to provide information was developed in 1992. The Olivetti Research Limited developed the first application and called it the Active Badge System [3]. This application used the location context of the user and relied extensively on the hardware componentthe badge. The location context of the badge wearer was delivered to a central point which routinely forwarded telephone calls to users based on their location.
The second application called Active Map was developed by Weiser [12] and modified by Want et al. [13] in Xerox PARC Research Group. The application relied on both hardware and software components, using the software as a middleware. The work focused on location context. Room numbers of individuals representing location information were collected from the PARC Tab system through separate wireless base stations for each room.
The Olivetti Research Limited developed another application called Teleporting, usually called "Follow-me" [14]. This application used a hardware component that was complemented by software (middleware). The application focused on the location of users and the workstation. Teleporting was an application that dynamically maps the user of a wearable badge system to resources within a particular area.
In the same year, Voelker and Bershad [15] developed a Mobisaic Web Browser application that used location and time contexts. The browser was embedded with the information of the surroundings. Users were privileged to know who or what was in their environment so that they could access it if they wished. The web page updated itself automatically to reflect the current situation in the environment.
Another contemporary in 1994 at the AT&T Bell Laboratories developed the Shopping Assistant application [16]. Information about items in the location of the shoppers was provided to them. The system maintained customer profiles for trading which affected their privacy.
In 1996, the Future Computing Environments (FCE) of the Georgia Institute of Technology developed the Cyber guide application to assist tourists [17] that focused on the location and time contexts of tourists. The application used infrared when indoor and Global Positioning System mechanism when outdoor to locate and direct tourists on an interactive map. A diary was employed to automatically compile the history of a tourist which helped the system to suggest places of interest to tourists. Other systems that followed the Cyber guide project for visitors to tour through physical and information space have been developed. For instance, the GUIDE system [18] of the University of Lancaster guided visitors to tour Lancaster, England. Others include museum visitors and tourist guides [19], [20]. Other applications also use augmented reality [21] to provide additional information to users.
The University of Kent at Canterbury developed an application called People and Object Pager [22]. The application sent a notice to a badge wearer without any pager through nearby visitors. Also, if an item was needed, a notification was broadcasted and whoever had the item would be notified to hand it over to the requester. The University also went ahead to develop another application called Fieldwork [23], [24] which relied on location (of the user) and time. The application collected contextual information about the environment, location, time, and tagged them on a map.
The FCE introduced another application called Conference Assistant which focused on location, time and plan of presentations [25]. The application assisted users to choose the presentation to attend by examining plans of a conference, presentation topic, location and research interest. The application also recorded the proceedings for later use. This application fits the guide category since it provides information to users. In the same year, the Technology for Enabling Awareness (TEA) at Starlab developed an Adaptive GSM phone and PDA [26]. Based on the user's current activity, the notepad application changed its font size. The phone responded to these conditions by ringing, vibrating, or adjusting the ring volume.
The MIT Media Laboratory developed the Office Assistant application [27]. Activity (of office owner) and scheduled contexts were used. The Office Assistant was an agent between a visitor and an office owner. Visitors stepped on pressure-sensitive mats on the front door and their identity was collected by sensing their visitor's ID. The schedule of the office owner was determined to allow or disallow the visitor to see the office owner. Truong et al. in [28] developed a similar but improved system.
Another application developed by the MIT Media Laboratory was the ComMotion [29] which relied on the location and time of users. The application created messages considering the time and location when the recipient arrived at a place. The system could also send and read voice messages on the screen to the user. A similar project was also developed at Stanford [30]. Another application called CybreMinder [31] developed at Georgia Tech reminded users based on environmental conditions like weather.
It can be deduced from the above that most of the applications before 2005 were implemented using hardware sensors supported by software middleware.
Next, the author discusses a different approach to the implementation of context-aware applications. The first application to use semantic language and ontology was developed by Gu et al. [32]. This work focused on tracking activity context through software sensors. This application realized the dream of using software to design sensors and also provided an ontology-based model to track users' activities while generating context reasoning. Loke's work [33] followed with Sensory Information Modelling. The work designed a model from the user's circumstances and their environment. The work was done using the ontologybased technique.
Paganelli and Giuli [34] also developed an ontology-based context model which relied on the location and activities of users. The work designed context management middleware for supervising patients at home. It provided flexible instruments for context representation, reasoning mechanisms. Similar applications had been implemented by Chen and Nugent [35], Bettini et al. [36], Mileo et al. [37].
From 2005 to 2010, most of the research works were based on semantic language and ontology focusing on activity recognition through software sensors. These applications could not fit a single category as provided in [1] and [5] but they hybridized these categories. Another limitation of these applications had to do with the high noise level in activity context acquisition [38], [39].
Next, the author discusses applications after 2010 that handled the above limitations. Opoku [40] developed an indoor location tracking system. The application focused on location context. Items in a warehouse were tracked by using Bluetooth technology. When the object moves significantly, an alarm was sounded at a central monitoring system to the hearing of the security persons. The triangulation mechanism of Bluetooth access points reduced false alarms.
Pathan et al. developed applications to track users' activities using software sensors and keyword mapping to reduce noise [41], [42]. Users' activities were automatically tracked using software sensors based on semantic language. Keywords were used to map well-known activities in the system to determine users' actions. Similar research works that used semantic language in connection with data extraction and annotation to accurately map users' actions were also carried out in 2013 and 2014 [43], [44].
Yuan and Herbert developed a middleware called Context-Aware Real-time Assistant (CARA) based on the user's activity and time [39]. This was a pervasive health care system to monitor and assist the elderly in coping with chronic diseases. The application handled data uncertainty using a fuzzy-logic reasoning system. Similar research work was conducted by Ter Horst & Sinitsyn [38]. Other healthrelated context-aware applications had been developed to track users with Alzheimer disease. They used semantic language and probabilistic reasoning methods [4], [6], [7]. System Reasoning was achieved through activity, location, identity, and time contexts of users.
From 2010 to 2014, complex applications and research works were carried out in which context sensing formed part of the features of the systems making most of the applications developed difficult to classify them under a single category as done by the previous works. These research works mainly focused on handling inconsistency in sensed data making sure that uncertainties in data do not affect context reasoning. Activity context was usually tracked alongside other contextual information like location and/or time when the application served as a guide, recommender, reminder or health system. This indeed distorted the categorizations of the previous works.
From 2014 onwards, researchers employed machine learning mechanisms to handle the limitations of the rule set systems. Feuz and Cook succeeded in implementing the first context-aware system based on the machine learning technique using a transfer learning mechanism from evolutionary computing [45]. This application was used to track users with Alzheimer disease. Though the work solved the cumbersome ruleset issues of the previous works, it could not differentiate many but different activity contexts, could not handle concurrent activities and inherited the limitations of evolutionary computing [46], [47].
Some researchers currently rely on threshold-scoring mechanisms to implement context-aware applications as implicit recommender systems to overshadow the limitations of the existing works. These systems analyze users' activities and recommend things that users may be interested in such as shopping. Sachdeva et al. [48] outlined some of the implementation mechanisms and presented an empirical analysis on genetic algorithm, decision tree, bagging and boosting used to perform context reasoning. They concluded that the genetic algorithm produced results with higher accuracy and efficiency [48].
Different algorithms have been used to train Artificial Neural Networks used in these modern systems. Mehr et al. [48] designed a smart home technology for recognizing and detecting human activity using an Artificial Neural Network (ANN). Their work compared three algorithms -Quick Propagation, Levenberg Marquardt and Batch Backpropagation algorithms. They concluded that Levenberg Marquardt had better performance than Quick Propagation and Batch Backpropagation [49]. Salam used a scaled conjugate gradient to provide a recommendation to users at a gas station, restaurant and attractions [50]. Lee et al. [51], users' activities were tracked using probabilities that follow Zipf's law and log-normal distribution for autonomous classification based on unsupervised learning. Lian et al. [52], Jing and Smola [53], and Martin et al. [54] proposed a latent factorization mechanism based on deep learning technique on a traditional artificial neural network to boost collaborative filtering for cross-domain recommender system. The work of Opoku and Rao [55] analyzed recommender systems in detail and provided their strengths and their limitations.
Not only have recommender systems as suggested in [5] been developed in recent years, reminder systems as suggested in [1] have also been developed. Apart from using location and time contexts, some context-aware reminder systems employ short messages (SMS), commonly termed as text messages, in prompting users. This mechanism has been widely used in the health and business sectors [56], [57], [58, [59], [60], [61]. The work of Eggerth et al. [62] combined artificial neural network (ANN) and near field communications (NFC) in designing a reminder system to manage adherence to long-term medications. The NFC components obtained the data for monitoring adherence to medications whilst the trained ANN predicted the adherence rate and advice accordingly using the data. Naeem et al. [63] used a multi-agent system from reinforcement learning and deep learning mechanisms to develop an intelligent system to automatically assist the elderly to follow a planned treatment at home with a reduced medication errors. Later Naeem et al. [64] developed a convolutional neural network (CNN) based medication monitoring system as a subcomponent of an intelligent pill reminder system. The intelligent pill reminder system assisted patients during the treatment process at home and minimized medication errors. Opoku et al. [65] developed a context-aware reminder system for tracking SMS in a mobile device environment using ANN. Their work focused on users' preferences and the effect of the dynamics of users' background in receiving certain categories of SMS.
In the quest to handle the limitations of the current systems, an interesting issue sprouted out. This issue has to deal with the effect of users' preferences, beliefs and background on contextual information. Opoku and Appiah [66] deduced that given the same activities, users' preferences and beliefs affect the choice of activities undertaken within a specific period. Similarly, Rodriguez-Hernandez and Ilari [67] concluded that there is a need to determine the effect of static data from users' profiles on the dynamic context data from the environment. Karimi et al. [68] asserted that users' preferences change with time and that affects modelling users' behaviour. To solve the problems associated with new items or new users of recommender systems, Wang et al. [69] tried to generalize individuals in their system. Unfortunately, this mechanism rather irritated some users as individual preferences differ [70], [71]. Thus, the user's demography has a part to play in context recognition, adaptation and utilization thereby diminishing the essence of collaborative filtering mechanisms. The dynamic effects of the individual attributes of users' demography on activity context have been discussed [72], [73].
The major works identified from 2014 to date which contributed to the body of knowledge extensively were the use of machine learning approach and the effect of user's demography, preference and belief on context acquisition and utilization. There were other applications developed outside a particular range. They were ignored due to the recycling of knowledge as observed by Dey [2], Naeem et al.
[9], and Sharif and Alesheikh [10]. A typical example is the work of Opoku and Awisie [74] which used Bluetooth communication technology to handle the uncertainty of data after 2014. The above narration sets a foundation for the inevitability of the re-categorization of these applications.

IV. RESULTS AND FINDINGS
The study gathered 2,187 publications of which 2,078 publications representing 95.0% were categorized successfully into four generations. One hundred and nine (109) outliers were ignored because ideas were recycled. This confirmed the observations in [2], [9] and [10].
The re-categorization focused on the trends of application development and the limitation handled over the period. The study found out that although various applications were designed to handle specific context over the period, these applications were implemented to handle different limitations inherited over the period. The introduction of hardware sensors [3], [14] complemented with design models usually called middleware [75], [76], [77], [78] achieved many successes in marking the beginning of context-aware implementations. Most of these research works focused on location context, time context and entity context. These achievements, however, survived with such limitations as the uncertainty of information, no knowledge acquisition attached to the sensed data and thus data interpretation became difficult, to say nothing of making intelligent decisions. The cost of producing context-aware systems was overwhelming. The external sensors also restricted movement. These applications existed from 1992 to 2005 and constituted the first generation applications.
Next came the invention of software sensors [32], [33] and applications based on semantic language and ontologies [34]- [37] which made sure that activity context was sensed. These systems were able to attach knowledge and interpretation to the sensed data. These systems reduced the cost of producing context-aware systems but required extensive backend server computing [71] placing undue pressure on data communication and network infrastructure. Intelligent reasoning and uncertainty of information were left unhandled in these systems. These applications existed from 2005 to 2010 and formed the core of second generation applications.
Several significant studies were developed to handle the uncertainty of information and context reasoning through fuzzy logic reasoning [38], [39], knowledge graph [80] and heuristic search modelling [81]. Other studies used combinations of approaches such as semantic language and keyword mapping [41], [42] semantic language and probabilistic reasoning [4], [6], [36], [7], and semantic language and data extraction or annotation [43], [44]. These applications existed from 2010 to 2014 and they were the third generation of context-aware applications.
Researchers have been employing various mechanisms of artificial intelligence to implement context-aware systems since 2014 to date. The effect of users' background and preferences have been recognized and it is being handled accordingly. This class of applications constitute the fourth generation. Fig 1 illustrates

V. CONCLUSION
A new categorization of context-aware applications has been produced based on the trend of handling limitations that have been generated over the years. The current generation in which researchers and industries should focus on is the use of mechanisms based on artificial intelligence to develop context-aware applications. The dynamics of the attributes of users' backgrounds should also be researched so that relevant attributes can be used to complement the implementation of context-aware applications. The major significance of this work is to serve as a basis for continuous review of industrial standards in developing context-aware applications.