Ontologies for Semantic Web Components
by Claus Pahl
Enabling the Web for software components can be ideally supported through the use of Semantic Web technologies. The Semantic Web activity aims to introduce meaning to the Web using ontologies. Ontologies can create a shared understanding of application domain and development process knowledge that is crucial for component development activities such as matching and connecting requestors and providers of component services.
Making the Web more meaningful and open to manipulation by software applications is the objective of the Semantic Web activity. Research at the School of Computer Applications at Dublin City University investigates Web components, which utilise Semantic Web technologies to enable component-based software engineering (CBSE) for the Web platform. Efforts in taking the Web from a document-oriented to a services-oriented environment - bundled in the Web Services Framework (WSF) - are a first step towards the Web as a software development and deployment platform. The purpose of the WSF is to define a distributed computing model for the Web and to provide languages and protocols for service description, discovery and invocation. However, adding semantics to this framework is essential if Web components instead of Web services are considered.
Providing reusable software components and plug-and-play style software deployment is the central objective of CBSE. Components are reusable, internally coherent software entities that are specified using interface description languages (IDL). Traditional IDLs focus on the syntactical description of services that are provided by the component. However, semantic annotations of components in form of semantic IDLs are essential for Web components. In order to facilitate precise retrieval and matching and to guarantee the reliable and correct execution of components, semantic service descriptions and component interaction processes need to be captured in semantic IDLs. To achieve a high degree of reusability, not only which services a component provides, but also which services a component requires needs to be explicitly specified in an interface. Our research aims to solve problems identified in relation to semantics in the specification of behaviour of component services and the component's interaction processes. Here, representing knowledge about components is as important as knowledge about the process of component development.
The Semantic Web objective to open the Web to manipulation by software applications in our case means to enable component development activities that are based on the semantical representation of software components. Using the Web as an infrastructure for components development requires support for two different activities - see Figure 1. Firstly, discovery and retrieval functionality - possibly in form of a Web component directory or marketplace - allows providers of services and components to publish descriptions of their software entities and requestors to discover and retrieve them. A notion of contracts ties matching components together. However, unlike for a document-oriented Web, a second form of support is needed. Interaction support allows components to be composed through connections for interaction. Essentially, knowledge about all life cycle processes of components is required.
|Web Component Life-Cycle. A component request might by matched by a server component published in a Web component directory. Successful matching results in direct communication between client and server component to establish a connector for service invocation and reply.
Providing meaning and a shared understanding are crucial for Web-based CBSE. Ontologies are means to define the concepts and properties of a domain and to provide facilities to reason about them. A central objective of our research is the formulation of ontologies for Web component development. An application domain ontology describes the domain of the software application under development. A software development ontology describes the component development entities and processes. Ontology technology integrates notions to describe components and their behaviour and an inference system to reason about composition. These ontologies create a shared understanding between software developers and software agents that allow a developer to describe provided or required components and agents to reason about matching of suitable components and to control the composition and interaction of components.
Classical formalisms that we have used to represent component-related knowledge are process calculi and modal logics. Ontologies for Web-based component development, however, have to adopt Web standards and technologies. DAML+OIL is a Web ontology language. DAML+OIL can be seen as a very expressive description logic. Knowledge representation techniques suitable for the classical use of the Web are, however, not necessarily directly suitable for software components and software development, for example if a process- or transition-oriented view on components is taken. Our approach to Web components is based on a description logic geared towards the representation of component properties and the support of reasoning for matching. To enable modal reasoning about components and their behaviour in a description logic framework is a central objective of our research. A correspondence between description logics and dynamic logic - a modal logic of programs - that relates roles and transitions allows us to integrate classical software engineering techniques into a Semantic Web environment.
Claus Pahl, Dublin City University
Tel: +353 1 700 5620