<<

Purpose of using in Software :

Ontologies are used for formal representation of domain knowledge. Knowledge based Applications use Ontologies for knowledge sharing, which forms the primary use of Ontologies. development is largely aimed at AI experts with knowledge of diverse techniques originating from the field of AI. This knowledge is however unknown to a large section of the software industry. To bridge the gap between knowledge of practitioners and AI techniques, several proposals have been made suggesting the use of Ontologies in the field of Software Engineering. Proposals include the use of UML diagrams in the development of Ontologies. Infact, the Protégé Software developed by Stanford University has a tab which uniquely defines the use of UML diagrams in Ontology development. This functionality can be used to develop a UML diagrams from the Ontology developed. However, it can also be seen, that software engineering approaches themselves do not enable the representation of ontology concepts derived from description logics and other concepts included in the Semantic Web Languages.

History of Ontology Modeling:

Extending the Unified for Ontology Development

[Cranefield, 2001a] first introduced the idea of using UML in Ontology engineering. According to [Cranefield, 2001a] , similarities exist between standard concepts of UML and those in Ontologies : classes, relations, properties, inheritance etc . He was able to trace several dissimilarities between the conceptual definitions in UML and Ontologies. One such example would be the scope of an attribute is the class that defines the attribute or ‘property’, whereas an object or data property in Ontology can exist independently without being associated with any particular class. However, Cranefield also listed the lack of formal description in UML.

The Unified

Cranfield’s pioneering work on software engineering techniques for ontology development inspired others towards more advanced solutions. Baclawski and colleagues further proposed that several UML tools and techniques could not only be used for visualizing complex Ontologies btu also for managing the ontology development process. They further developed a an independent ontology metamodel using the MOF , which was called the Unified Ontology Language (UOL). The core UOL not only had the same notions as UML such as Package, Class, Binary association, Generalization, Attribute, and Multiplicity constraints but also included a bounded two-way mapping between core UML and core UOL thus preserving the semantic equivalence at the 0 and 1 levels of the MDA. UML for the Semantic Web: Transformation-Based Approach

Several computer scientists have proposed a transformation approach to the semantic extraction of Ontologies from UML models. Their initial presumption is that UML and Ontologies complement each other. That is to say, UML is designed for building models by human experts, while OWL is designed to be used at run time by intelligent processing methods. Falkovych proposed the transformation of UML diagrams into DAML+OIL Ontologies which enables the of UML concepts to be preserved. The main motivation for developing such a transformation is the existence of large sources of ontological knowledge already available in the UML design documents of existing applications.

The AIFB OWL DL Metamodel

Brockmans et al. proposed the use of OMG metamodel mapping facilities to perform mapping between different knowledge representations [OMG QVT, 2003]. They argued for such an approach rather than for having one core ontology metamodel that would be a common denominator of different knowledge representations and serve for mapping purposes. Brockmans and colleagues developed a metamodel based on OWL DL using MOF2. This metamodel has a one-tone mapping to the abstract syntax of OWL DL and thereby to the formal semantics of OWL DL. They also defined a UML profile on top of the metamodel. The model even had UML profile containing graphical icons for ontology-specific primitives (e.g., restriction, union, and some ValuesOf), similarly to the UML profile for developing Web applications. It is possible develop Ontologies in most of the present UML tools. However, the currently available tools do not provide support for transforming either the metamodel or the UML profile into any ontology language (e.g., OWL). Therefore, ontology developers are prevented from automatically employing Ontologies developed using UML tools in Semantic Web ontology-based applications.

The GOOD OLD AI ODM Proposal This proposal provides a comprehensive response to the ODM RFP that defines a metamodel based on OWL Full [Djuri et al., 2005a], a corresponding ontology UML profile (see Chap. 9) [Djuri et al., 2005b]. An ontology editor called AIR [Djuri et al., 2006a] was developed based on this proposal.

Ontology Development Tools Based on Software Engineering Techniques:

Several relevant approaches to applying software engineering techniques to ontology development lead to UML based tools that enable the development of ontologies using software engineering languages. We will list some of the tools in this section ,

Protégé: Protégé is one of the leading ontological engineering tool . It is a freely available tool Protégé is known to have a complex architecture which can further be extended using plug-ins. Many components providing interfaces to other knowledge-based tools (Jess, Argenon, OIL, PAL Constraint, etc.) have been implemented and integrated in Protégé. This metamodel is extensible and adaptable. This means that Protégé can be adapted to support a new ontology language by adding new metaclasses and metaslots to the Protégé ontology. The introduction of these new metamodeling concepts enables users to add the necessary ontology Primitives.

DUET (DAML UML Enhanced Tool):

DUET enables the importing of DAML Ontologies into IBM Rational Rose and ArgoUML and the exporting of UML models into the DAML ontology language. The tool is actually implemented as an add-in for IBM Rational Rose and as a plug-in for ArgoUML. Like Protégé it is freely available. DUET has a simple UML profile that contains stereotypes for modeling Ontologies (based on a UML package) and properties (based on a UML class). DUET was the first UML tool extension that enables sharing of Ontologies between an ontology language (i.e., DAML) and a UML tool in both directions.

An Ontology Tool for IBM Rational Rose UML Models :

An Ontology tool which transforms IBM Rational Rose models from the mdl format to RDF and RDFS Ontologies has been developed , better know as XPetal.The tool has been implemented in Java.

Visual Ontology Modeler (VOM):

The Visual Ontology Modeler (VOM) is a result of a collaborative work between Sandpiper Software Inc. and the Knowledge System Laboratory at Stanford University. This tool was used to extend IBM Rational Rose and enable ontology development with user-friendly wizards that automate the creation of a logical model and related diagrams. The tool is based upon a UML profile for ontology development that is closely related to Protégé’s metamodel for Ontologies and to Gruber’s Frame ontology.

Ontologies in Software Engineering Domain: This category represents Ontologies whose goal is to represent (at least partially) knowledge of a certain sub-domain. On a larger scale, a domain Ontology will help researchers and scientists develop a Universal Ontology, helping conceptualize knowledge in any domain .This would assist researchers, computer scientist avoid any ambiguities and inconsistencies commonly produced for representing term and concepts. There are various forms classifying the Ontologies of a domain of knowledge. However, the classification based on norms, recommendations and standards published by prestigious organizations and associations (such as the IEEE or ACM). In order to establish the hierarchy of subcategories, we have adopted the following: Make a clear distinction between software engineering from software technology, as established in the “Overview Report” of the Computing Curricula 2005 [3]. Distinguish between the generic proposals that include the complete scope of Software engineering and the specifics focused on some part of it. Employ the classification in 10 knowledge areas defined in the 2004 version of the “Software Engineering Body of Knowledge” (SWEBOK) [49]. Use the extended taxonomy of the “ACM Computing Classification System” [50] to identify the subcategories with two breakdown levels within the field of software technology. The ACM taxonomy categories and subcategories that have been considered are those whose content refers to the field of software technology. That is to say, those identified by the letters D (software, but without software engineering because this topic corresponds to the previous category), E (data in general) and H (information technologies and systems, especially and Web systems). Considering the above conditions, the taxonomy for the Ontologies of domain is as follows,

Software Engineering (SE) -- Generic (all-domain) -- Specific (sub-domain)  Software Requirements   Software Testing   Software Configuration Management   Software Engineering Tools & Methods  Software Engineering Process  Software Engineering Management Software Technology (ST) -- Software  Programming Techniques  Programming Languages  Operating Systems -- Data  Data Structures  Data Storage Representations  Data Encryption  Coding and  Files -- Information Technology and Systems  Models and Principles  Management  Information Storage and Retrieval  Information Technology and Systems Applications  Information Interfaces and Representation (HCI)

“Software Engineering generic Ontologies”, also known as “Software Engineering all- domain Ontologies” have the objective of modeling the complete software engineering body of knowledge. It is based on three different sources  Glossaries ( IEEE glossaries )  Body of knowledge guides (as SWEBOK)  Books of reference in the matter (Pressman) “Software Engineering specific Ontologies” present a conceptual representation for one part (sub-domain) of the SE discipline, of interest for a determined goal, collective, or moment.

References: Ontologies in the Software Engineering process - Wolfgang Hesse Using Ontologies in Software Engineering and Technology -- Francisco Ruiz , José R. Hilera Software Engineering Approaches to Ontology Development -- Francisco Ruiz , José R. Hilera Software Engineering Ontology – the Instance Knowledge ( Part 1 ) -- Wongthongtham P, Chang E, Dillon T and Sommerville I Software Engineering Ontology – the Instance Knowledge ( Part 2 ) -- Wongthongtham P, Chang E, Dillon T and Sommerville I Towards a Reverse Engineering Ontology -- Bart Du Bois SOFTWARE ENGINEERING ONTOLOGY: A DEVELOPMENT METHODOLOGY – Olavo Mendes , Alain Abran