Ontologies and Software Engineering

advertisement
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/
Download