There are various meanings that the term ontology can have in AI . We adopt the same view as  and take ontology first to mean a specification of a conceptualisation, and second--pragmatically--to define a (standard) vocabulary with which queries and assertions are exchanged among agents. Ontologies are particularly useful in knowledge sharing and reuse. If two agents make the same ontological commitment, then they can exchange knowledge. Alternatively, any knowledge base represented within an ontology can be accessed by agents who committed to the respective ontology. The latter viewpoint is relevant to our proposal. If an ontology for the representation of patterns is in place, then pattern repositories (represented in the respective ontology) become accessible by various tools--for intelligent organisation, retrieval and provision of explanations--provided they committed to the ontology.
An ontology becomes standard within a community when sufficient (or sufficiently powerful) agencies from that community commit to it. The quality of an ontology being standard is only required if knowledge reuse and sharing is an issue within the community. sharing and reuse should be understood, in the context of software patterns, with respect to the type of the patterns. Idioms should be shareable across application domains, whereas application specific patterns may need to be shared only at the level of an institution.
As a method of work, we started with the development of a basic ontology for design patterns. They are of a manageable size and their generality is implicitly transferred to the basic ontology. Thereafter, we shall enhance the basic ontology with language-specific concepts and domain-specific concepts, when we move towards the representation of the respective software patterns.
Although we do not necessarily intend that the deployment of documentation based on patterns be made within the web, our work, here, is strongly connected with that carried out within the semantic web . The use of ontologies was proposed in software engineering, but in the context of component based development. The focus of these efforts (e.g., ) is on automatic retrieval and assembly. Our focus is on the provision of intelligent advice to software engineers.