1 Ontology and Software Engineering Waralak V. Siricharoen UTCC, Bangkok Thailand Ontologies are rising as an important tool for coping with very great, compound and various sources of information. The term ontology is used to refer to “an explicit specification of a conceptualization [of a domain]” is mentioned by Tom Gruber. Ontologies are formally specified models of bodies of knowledge defining concepts used to describe a knowledge domain and the relationship that hold between them. In Figure 1 show the picture of concepts and relationships can be arranged in two distinct generalization hierarchies in large ontologies called Cyc System. Ontology is besides well known as description of declaration and abstract way the domain information of the application, it involved with vocabulary and how to constrain the use of the data. And they are used widely in the semantic web approach. Figure 1 Example of Ontologies: Cyc Ontology The object oriented paradigm is the framework in software engineering, influencing all effort in information science. An object is something that is capable of being seen, touched, or otherwise sensed, and about which users store data and associate behavior. An important concept of object modeling is the concept of categorizing objects into classes. A class is a set of objects that share common attributes and behavior. A class is sometimes referred to as an object class. When levels of classes are identified, the concept of inheritance is applied. Inheritance means that methods and/or attributes defined in an object class can be inherited or reused by another object class. The approach that seeks to discover and exploit the commonalties between objects/classes is referred to as generalization/specialization as you can see in the Figure 2 that boxes represent the objects which relate to other objects in the same domain. Ontologies shows the promising that the Semantic Web can serve as an artifact on which domain models can be produced, shared, and reused. Ontologies are recently initiated tools for structuring knowledge and defined as a collection of concepts (is a class of items) and their interrelationships, which provide an abstract view of an application domain. It differs from conceptual models by having declarative data in its model. Ontologies are primarily used in text retrieval. We use ontology to define the semantic content as object ontology, event/concept ontology, and upper level domain ontology. “It is common for software systems to be centered on domain of interesting models. Domain models can describe the relevant concepts and data structures from an application domain and encode knowledge that is useful to drive an application's behavior”. For example, assume that our task is to develop a system. After some thinking, we may come up with an object-oriented design as UML class diagram. In an ideal world, developers would discover shareable domain models and knowledge parents from a variety of interrelated repositories and then wire them together with the remaining object-oriented components for user interface and control components. The domain modeling activities ( in ontology engineering) in such a development process can be compared to requirements analysis and design steps in traditional Software Engineering. 2 The similarity between ontologies and object models in object oriented software engineering is the important issue to address. From researcher point of view, the classes in object oriented are similar to classes in ontologies (Vongdoiwang, 2005). Many organizations try to construct ontologies for reusing and integrating. So this benefit comes to the interest of supporting software engineering as well. Ontologies are specifications of conceptualizations, used to help programs and humans share knowledge (Gruber, 1993). Ontology provides the fundamental in describing concepts as well as their relationships. It forms the basis in describing how information with a different data structure can be transformed from different application and/or platforms. From a technology point of view, it can be seen as a repository of classes; much like a database represents a repository of data (Siricharoen, 2007). Ontologies enhance the semantics by providing richer relationships between the terms of concepts/classes. One significant of the major advantages claimed of ontologies is the potential for the “reuse” of knowledge. We should be able to reuse available ontologies, thereby avoiding the huge effort of starting from scratch (Ding and Fensel, 2001). There are many public online ontologies available for reusing. Some of them are stored in ontology libraries. Ontology libraries are storage areas for ontologies. A number of ontologies currently exist, hosting various ontology files. Most of the files here are in a machinereadable form (Ding and Fensel, 2001). There is no one ontology language, therefore ontologies are usually restricted to plain text files or some XML-based storage format. In order to achieve an effective level of ontologies reuse, we need semantic search engines capable of helping us find the ontologies we are looking for. Some ontologies search engines have been developed that can provide lists of ontologies that contain specific search terms or keywords, such as Swoogle 1. After all, ontologies are meant to provide an “easy to reuse library of class objects for modeling problems and domains''. The motivation of why we are interested to compare ontologies with object model which is one of the popular model for software engineering, because the concept within ontologies which allow to express the similarity of concept in ontology with object model in object oriented software engineering. Ontology has been focused on knowledge modeling. In addition, commercial interest has results in ideas from object oriented programming developing group growing into industry standards and powerful tools for object oriented analysis design and implementation. And this maturing standards and tools can be used for ontology modeling. Object Model is intended to allow portability of applications among object database products. Figure 2 High Level object model The major objective of this talk is to acknowledge the software engineering and ontologies in various issues and then explore some connection they have. And also the talk will emphasize on available reusability of ontologies and object model and some of the application using ontologies. 1 http://swoogle.umbc.edu/