====== Ontologies, topic maps, ER diagrams and other methods for knowledge description ====== By Anton Zubarev ===== Introduction ===== 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. ===== Ontologies ===== 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): * Upper/top-level ontologies. Describe rather general concepts independent from a particular domain. Provide semantic interoperability between domain specific ontologies by using core glossary. * Domain and task ontologies. Represent definitions of a specific domain (e.g., airplanes or software) or a task (e.g., controlling a vehicle, developing software). * Application ontologies. 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. ===== Topic Maps ===== 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: - topics – describe any concept, - associations – hypergraph relationships between topics, - occurrences – information resources for a particular topic. 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. ===== ER Diagrams ===== 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: - Conceptual data model. It is the most abstract level of the ER model and it includes some foundational concepts, which can be used as a basis for logical data model. - Logical data model. Logical ER model has more details in comparison with conceptual data model, but it is still not dependent on exact database management system, which may be used for the implementation. - Physical data model. Physical ER model is derived from logical data model and contains enough structure to be implemented in a database. It means, that this model depends on database management system. The model is used as a basis for structural metadata of the database. 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: * Common noun -> entity type (e.g., ‘tourist’) * Proper noun -> entity (e.g., ‘River Hutton’) * Verb -> relationship (e.g., ‘visits’) * Adjective -> attribute for entity (e.g., ‘British’) * Adverb -> attribute for relationship (e.g., ‘by car’) While ER diagram is useful during the process of designing the database, it has some limitations, such as: * Mostly suited for relational structures * Does not show entity’s history * Data needs to be structured ===== Other Methods ===== Other methods of knowledge description may include: * Production rules. Mostly used in cognitive modeling and artificial intelligence to represent the set of rules within a domain. * Mind maps. Diagram used to visually organize information and is often created around a single concept and other connected concepts branching out. * Concept maps. Diagram which also depicts relationships between concepts, but, in comparison with mind map, it can be more free-form, having multiple clusters. * UML diagrams. Various types of diagrams containing specific knowledge about the system. Can only be used to describe a software system. * Organizational chart. Diagram, which is used to show the structure of the organization and relations between departments/positions. ===== Conclusion ===== 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). ===== References ===== - Girard, John P.; Girard, JoAnn L. (2015). "Defining knowledge management: Toward an applied compendium" (PDF). Online Journal of Applied Knowledge Management. - S. Nerur, V. Balijepally, Theoretical reflections on agile development methodologies, Communications of the ACM 50 (2007) 79–83. - Gruber, Thomas R.. “Toward principles for the design of ontologies used for knowledge sharing?” Int. J. Hum. Comput. Stud. 43 (1995): 907-928. - Robert Stevens, What is an Ontology? URL: http://www.cs.man.ac.uk/~stevensr/onto/node3.html - Guarino, Nicola. (1998). Formal Ontologies and Information Systems. - Katifori, A.; Halatsis, C.; Lepouras, G.; Vassilakis, C.; Giannopoulou, E. (2007). "Ontology Visualization Methods - A Survey". - Fu, Bo & Noy, Natalya & Storey, Margaret-Anne. (2013). Indented Tree or Graph? A Usability Study of Ontology Visualization Techniques in the Context of Class Mapping Evaluation. 8218. 117-134. - Alatrish, Emhimed (2013). "A comparison of some ontology editors". - Kalibatiene D., Vasilecas O. (2011) Survey on Ontology Languages. In: Grabis J., Kirikova M. (eds) Perspectives in Business Informatics Research. BIR 2011. Lecture Notes in Business Information Processing, vol 90. Springer, Berlin, Heidelberg. - Calero Coral, Ruiz Francisco, and Piattini Mario. Ontologies for Software Engineering and Software Technology. Springer, Berlin, Heidelberg, 2006. - Seok Won Lee and Robin A. Gandhi. Ontology-based Active Requirements Engineering Framework. In Proc. of the 12th Asia-Pacific Software Eng. Conf., pages 481–490, 2005. - Holger Knublauch. Ontology-Driven Software Development in the Context of the Semantic Web: An Example Scenario with Protege/OWL. In Proc. of 1st Int’l WSh on the Model-Driven Semantic Web, 2004. - Ontology Definition Metamodel. URL: https://www.omg.org/spec/ODM/1.1/PDF - Topic map – Wikipedia. URL: https://en.wikipedia.org/wiki/Topic_map - Steve Pepper, The TAO of Topic Maps. URL: https://ontopia.net/topicmaps/materials/tao.html - Peter Pin-Shan Chen. 1976. The entity-relationship model—toward a unified view of data. ACM Trans. Database Syst. 1, 1 (March 1976), 9–36. - Chen, P.P. (1997). English, Chinese and ER Diagrams. Data Knowl. Eng., 23, 5-16.