Software Visualization Ontology


Ontologies are formal and explicit descriptions of concepts in a domainGrub93a. Ontologies can help to:

Through a software visualization ontology we aim to encapsulate the main characteristics of proposed software visualizations such as tasks, techniques, and media to enable both textual and visual search methods that support developers. We believe that an ontology can help developers to find suitable visualizations for their particular problems, and also it can support researchers to reflect on the software visualization domain. In this section, we elaborate on early results of designing and implementing an ontology.


An ontology is a formalization of a model to describe what is essential in a domain. That is, the ontology describes the concepts in the domain, which can define various properties and restrictions. Hence, an ontology that is populated with a set of individual instances of the concepts is usually referred as a knowledge base. However, defining what in the domain is modeled as a concept or an instance is subjective. We opted to follow the widely used guide proposed by Noy and McGuiness. We now elaborate on how we addressed their suggested steps to create our software visualization ontology.

Step 1. Determine the domain and scope of the ontology.


The figure above shows the classes view in Protégé with a detail of the hierarchy of concepts. We selected the name of the tools' concept, which are listed in the right pane.


The figure above shows an overview of our implementation of the concepts hierarchy using the OntoGraf visualization plug-in including in Protégé.

Usage Scenarios

We have developed an initial ontology.

Scenario 1. Find suitable visualization tools that support the analysis of performance issues at runtime.

To two concepts are defined in the specification of this need:

We translate this specification to the syntax specified by the ontology web language (OWL). The figure below shows the resulting query, and the suitable tools returned.


Scenario 2. Find visualization tools under a free license that support the analysis of source code.

Similarly, the specification of this need defines two concepts:

We translate this specification to the syntax specified by the ontology web language (OWL). The figure below shows the translated specification of the need in the OWL syntax, and the suitable tools returned.



We motivated the need of a richer model to encapsulate the various characteristics of software visualizations. We argued that ontologies represent a suitable means for modeling for software visualizations. We elaborated on our experience when designing an ontology for software visualizations. We discussed our implementation of the ontology in the Protégé tool. Then, we demonstrated how the ontology can be used through basic usage scenarios. Although our implemented software visualization ontology contains only little data of a limited number of software visualizations, we expect it will grow when researchers in the field use it. In the future we plan to combine the previously described meta-visualization approach to our software visualization ontology.



Leonel Merino