A Survey on Ontologies for Context Reasoning

In context-aware computing environments, there are lots of data that are obtained from heterogeneous sensors. As the amount of data becomes massive, it is difficult to process in conventional database systems. Accordingly, there is a need for technology that can be processed, analyzed, and retrieved for the massive data. In order to grasp the meaning of the massive amounts of unstructured data, ontologies can be utilized. Gruber defined that an ontology is an explicit specification of a conceptualization1. An ontology is a logical set of terms that explicitly define the concept derived from the real world. The ontology is expressed in a form that a computer can understand and process2. In addition, Studer defined that an ontology is formal, explicit specification of a shared conceptualization3. The ontology means a machine readable knowledge which is obtained from the real world4. For example, the National Geographic Information Institute provides ontologies for humanities-geographic information5. A user can discover the ontology result through the XML. In another example, Music ontology data can be published by anyone as a part of a web site or an API, and it can be linked with existing data6. A user can easily create a music-related web of data. Especially ontologies are important in context-aware computing environments, because the ontologies enable knowledge sharing for context-aware applications. Precisely, the ontological analysis clarifies the structure of contextual knowledge. Context ontology is a representation vocabulary, which is specialized to contextaware computing environments7. The main aim of context ontology is to identify specific classes of contexts and relations that exist in context-aware applications. There are advantages when we apply context ontologies to the context-aware applications. The context ontology maintains coherent formats for context representation, and it can represent any form of contextual information. In addition, the context ontology can make inference by specifying the contextual information. Despite these advantages, suitable ontology development processes and methodologies for context-aware applications are deficient in. Accordingly, it is necessary to develop software development methodologies for context ontology development that enables a decision to be made based on context reasoning. Therefore, in this paper we survey and review ontologies for context reasoning in context-aware computing environments. Abstract


Introduction
In context-aware computing environments, there are lots of data that are obtained from heterogeneous sensors. As the amount of data becomes massive, it is difficult to process in conventional database systems. Accordingly, there is a need for technology that can be processed, analyzed, and retrieved for the massive data. In order to grasp the meaning of the massive amounts of unstructured data, ontologies can be utilized.
Gruber defined that an ontology is an explicit specification of a conceptualization 1 . An ontology is a logical set of terms that explicitly define the concept derived from the real world. The ontology is expressed in a form that a computer can understand and process 2 . In addition, Studer defined that an ontology is formal, explicit specification of a shared conceptualization 3 . The ontology means a machine readable knowledge which is obtained from the real world 4 .
For example, the National Geographic Information Institute provides ontologies for humanities-geographic information 5 . A user can discover the ontology result through the XML. In another example, Music ontology data can be published by anyone as a part of a web site or an API, and it can be linked with existing data 6 . A user can easily create a music-related web of data.
Especially ontologies are important in context-aware computing environments, because the ontologies enable knowledge sharing for context-aware applications. Precisely, the ontological analysis clarifies the structure of contextual knowledge. Context ontology is a representation vocabulary, which is specialized to contextaware computing environments 7 . The main aim of context ontology is to identify specific classes of contexts and relations that exist in context-aware applications.
There are advantages when we apply context ontologies to the context-aware applications. The context ontology maintains coherent formats for context representation, and it can represent any form of contextual information. In addition, the context ontology can make inference by specifying the contextual information. Despite these advantages, suitable ontology development processes and methodologies for context-aware applications are deficient in. Accordingly, it is necessary to develop software development methodologies for context ontology development that enables a decision to be made based on context reasoning. Therefore, in this paper we survey and review ontologies for context reasoning in context-aware computing environments.

Abstract
In this paper, we survey and review ontologies for context reasoning in context-aware computing environments. There are lots of data obtained from heterogeneous sensors. In order to acquire the meaning of the massive data, ontologies for contextual information should be applied to a context-aware middleware. Accordingly, it is necessary to develop context ontology methodologies for context reasoning. Context ontology can identify specific classes of contexts and relations for context-aware applications. Also, the context ontology can represent any form of contextual information. In addition, the context ontology can make inference by specifying contextual information.

Ontology Support for Context-Aware Computing
Ontology languages are classified by logical languages, frame-based languages, and graph-based languages 4 . Logical languages contain first order predicate logic, rulebased logic, and description logic 8 . The logical ontology languages are similar to the process of context reasoning.
To build context ontology for context reasoning, some requirements should be satisfied. First of all, the context ontology should be intuitive to users in order to provide user-centric services. In addition, the context ontology should support reasoning by using formal semantics 2 . By understanding the context ontology, we can develop a context reasoning process in a context-aware middleware.
Usually, ontology has compatibility with XML and RDF. XML is a specification for describing data with markup tags, and RDF is a markup language based on the XML syntax 4,9 . The RDF can be developed to represent various contexts in a distributed computing environment. The RDF represents data with the meaning, and also has capability to represent the metadata. Moreover, the RDF supports information exchange in a heterogeneous distributed environment. Context is semantic information which means the metadata with the meaning. Context is shared and exchanged in heterogeneous systems (e.g., sensors, actuators, services). Thus, the context can be modeled with the ontology, because the ontology is wellmatched with the XML and RDF.
The context ontology can be used as a uniformed language for developing a complex pervasive computing system. The context ontology can save an effort to build a uniform data format. The context ontology can interact with various context-aware systems through ontology-based context model. Additionally, the context ontology can be validated by the context-aware systems. For instance, the context ontology can be described by 5W1H (Who, What, Where, When, Why, How 10 ) context ontologies. The 5W1H context ontology simplifies the characteristics of each user, and also represents semantic information from heterogeneous sensors.

Ontology Tools Classification for Context Reasoning
We surveyed several ontology tools 4,11 for context reasoning. As general ontology tools, Protege is a representative which is an open source visual ontology editor and knowledge-based framework. TopBraid Composer supports to develop semantic web ontologies and builds semantic applications. DOME is a programmable XML editor which extracts knowledge and generates RDF. Altova Semantic Works is a visual RDF and OWL editor that automatically generates RDF based on visual ontology design. Adaptiva is a user-centered ontology building environment, and supports adaptive information extraction. Ontolingua provides a distributed collaborative environment for ontologies. OWLifier creates OWL-based ontologies by utilizing simple spreadsheet-based knowledge. Morpho provides cross-platform applications for manipulating the metadata. OBO-Edit is an open source ontology editor written in Java, and is optimized for the biological ontology. Additional tools are described as follows.

Visualization and Editing Tools
• COE is based on a graph diagram that shows the relationships among concepts. It shares and presents OWL. • RDF123 is a web service for converting data to an RDF graph. • HOZO is an ontology visualization tool that supports group ontology developments. • OWLViz is a visual editor for OWL and is available as a Protege plug-in. • Stanford Network Analysis Package (SNAP) is a network analysis and graph mining library, and it scales to massive networks with many nodes.

• [Mapping Tools]
• Blooms is a tool for ontology matching, and utilizes relationship between entities. • COMA++ is a schema and ontology matching tool, and supports various interaction.

• [Learning Tools] • ASIUM (Acquisition of Semantic Knowledge Using
Machine learning method) is to help the expert in the acquisition of semantic knowledge from texts. It generalizes the knowledge of the corpus. • TEXT-TO-ONTO is a semi-automatic ontology learning from text. It discovers conceptual structures and engineering ontologies from text.

Context Ontology Methodology
In order to analyze contextual information, we should determine how to model contextual data. For context modeling, we classify the contextual data, and then generate features of the context. With the reviewed ontology, we can build context ontology in contextaware computing environments. Precisely, we can depict context ontology with a context-aware middleware. In this section, we discuss two types of context ontology usages, such as uniform data and semantic data.
As the uniform data, we consider a multiple layered architecture for context-aware middleware. Figure 1 describes a multiple layered architecture for context integration 12 . The multiple-layered architecture for context integration improves the quality of the context output with high-level intelligence 12 . As shown in Figure  1, compared to a single-layered architecture, the multiplelayered architecture manages contexts with a parallel processing according to the divided time interval. The multiple-layered architecture for context integration is based on sequential layered approach, because the context ontology has the continuity. The parallel layered approach supports concurrent processing according to function; on the other hand, the sequential layered approach sequentially processes the context according to time. In a multiple layered architecture, the unification of contextual data between individual layers is required. The requirement can be solved by describing the context ontology.  As the semantic data, we consider a context reasoning approach for context-aware middleware 13 . The context reasoning approach utilizes the 5W1H context reasoning methods which is based on statistical inference. The context reasoning approach easily processes context ontology, because the characteristic of the 5W1H context is similar to ontologies 10 . Also, the 5W1H context is metadata.
The metadata is data about data 9 which is very useful in describing context ontology. In particular, the metadata is about relationships. A set of relationship can be formalized in a machine-readable language such as context ontology. "A valid meta-model is an ontology, but not all ontologies are modeled explicitly as metamodels 14" . Thus, meta-models (i.e., metadata) are closely related to ontologies, because both are often used to describe and analyze the relations between concepts.
There are a huge number of possible context variables that can be used to adapt the metadata 9 . Context-aware applications can derive the metadata from environmental sensors attached to the mobile device (e.g., smart phones, smart watches, location sensors, or GPS). The sensors present data and the data can also be aggregated by a context-aware middleware which correlates contextual information from lower-level sensors in order to deduce some higher level information. The deduced information is the metadata in the context-aware middleware. Reasoning about the metadata can be occurred by adapting context ontologies with rules. The reasoning can simply receive context input, make inference, and then generate context output. In particular, the context reasoning works by using a formal relationship on the context ontology.

Conclusion
In this paper, we surveyed and reviewed ontologies for context reasoning in context-aware computing environments. Moreover, we described context ontology methodologies for context reasoning based on a context-aware middleware. Context ontology identifies specific classes of contexts and relations for contextaware applications. Furthermore, the context ontology should support reasoning by using formal semantics. By understanding the context ontology, we can develop a context reasoning process in a context-aware middleware. The context ontology can be utilized as a uniformed