By Anton Zubarev
There are various knowledge description methods, but the common goal is to represent knowledge for the best possible use of it. Connected field of knowledge management deals with methods related to creating, using, sharing and managing the knowledge of the organization [1]. There are many approaches to the way software should be developed and that, in turn, affects knowledge management. One way is to rely on explicit knowledge and plan in advance and another way is using agile methods, which mostly rely on tacit knowledge [2]. In any case, knowledge is one of the basic blocks during the design of any software system, and the essay provides an overview of existing methods of knowledge description, including ontologies, topic maps and ER diagrams.
One way to describe knowledge is with ontologies. An ontology can be viewed as a formal representation of knowledge – a set of concepts within a discourse domain and relations between them. Initially, the term “ontology” appeared in philosophy and was a study of basic concepts/categories and their relations. In the early days of artificial intelligence and, in particular, knowledge-based systems, ontologies were used as a basis for automated reasoning in scope of concrete domain. The widely used definition of ontology was introduced by Tom Gruber, who describes it as a specification of a conceptualization [3].
Regardless of the exact language, used to express the ontology, generally they have these basic components: concepts representing classes of entities, instances, relations (ways classes or instances relate to each other) and axioms – logical assertions, including rules. [4].
Ontologies can be classified by the level of abstraction [5] (from highest to lowest):
Describe rather general concepts independent from a particular domain. Provide semantic interoperability between domain specific ontologies by using core glossary.
Represent definitions of a specific domain (e.g., airplanes or software) or a task (e.g., controlling a vehicle, developing software).
Describe concepts used in a particular application within the domain/task.
There are various ontology visualization methods [6] with features like 3d information landscape or space-filling. However, the most widespread visualizations are in the form of an indented tree or a graph [7], because they facilitate the design, browsing and management of the ontology. Visualization is useful when designing the structure of an ontology. These days ontologies are usually built with the use of special software– ontology editors [8], which offer useful tools, such as information extraction and inference engine.
To represent ontologies in a system, multiple ontology languages are used. Ontology language is a formal language used to construct ontologies. It is often designed to allow easier reasoning for effective knowledge processing. Some of the most popular ontology languages are KIF, OWL, RDF + RDF(S) and DAML+OIL [9].
Ontologies are of importance to software engineering community, since they are used to solve various problems connected with domain knowledge, requirements, policies and contexts [10]. In particular, researchers suggested using ontologies in requirement engineering [11], model transformations, software modeling [12] and software maintenance. Object Management Group (OMG) proposed the standard – Ontology Definition Metamodel (ODM) [13], which specifies usage of ontologies with model-driven architecture.
Another way to represent knowledge is by using topic maps. A topic map is a standard for interchange and representation of knowledge, with the focus on findability of information [14]. Topic maps were developed during the exploration of ways to represent knowledge structures similar to “back-of-the-book” indexes. Topic maps share some similarities with concept and mind maps. However, only topic maps have been formalized by the ISO standard (ISO/IEC 13250:2003).
Topic map consists of 3 main structural objects:
These objects can be restricted to particular types and sets of these types can be viewed as the ontology of the topic map.
Topic maps are useful for knowledge management, as they link topics to information assets. One way of using them in the context of software engineering is by linking interrelations of products, procedures, roles (corporate information) to the corresponding documentation [15]. Topic maps can be represented by several standardized serialization formats such as: XTM 2.0 (XML syntax), CXTM, CTM, GTM.
Entity-relationship diagram can be also use to represent knowledge in a form of “entities” and relations between them. Entity-relationship modeling was developed by Peter Chen for database design in 1970s [16]. E-R model is usually drawn in a graphical form. ER diagrams are used when designing or debugging relational databases.
ER models can be created in 3 different levels of abstraction:
These stages can be used during the design of some information system (its database) moving from highest to lowest level of abstraction.
Entities can be thought of as nouns and relations – as verbs. Another component of ER diagram is entity-type, which is a category of some set of entities. Relationships may be depicted as diamonds or labelled lines. Entities can have attributes, often depicted as circles or ellipses. Relationships can have cardinalities, that is, numerical attributes, most common of which are one-to-one, one-to-many and many-to-many.
Peter Chen formulated the rules to map natural language parts of speech to ER components [17], the rules in slightly simplified form are:
While ER diagram is useful during the process of designing the database, it has some limitations, such as:
Other methods of knowledge description may include:
This essay presented an overview of knowledge description methods such as ontologies, topic maps and ER diagrams. All of them can be used in the software engineering space. However, their usefulness depends on the design goals and problems arising during the development of the system. Ontologies are suitable for a more formalized approach and they can provide reasoning over knowledge. Topic maps, while being easy to work with, in my opinion, have narrow scope of application and are of questionable usefulness considering the existence of efficient data structures and mind maps. ER-diagrams can be used during the process of designing a database, although they can be replaced with other diagrams such as class or use case diagrams. Other methods of knowledge description are more free-from (mind maps, concept maps) or have narrow range of applications (production rules, organizational charts).