VOWL: Visual Notation for OWL Ontologies


Authors:
Stefan Negru, Alexandru Ioan Cuza University
Steffen Lohmann, University of Stuttgart
Florian Haag, University of Stuttgart

Abstract

The Visual Notation for OWL Ontologies (VOWL) defines a visual language for the user-oriented representation of ontologies. It provides graphical depictions for elements of the Web Ontology Language (OWL) that are combined to a force-directed graph layout visualizing the ontology.

This specification focuses on the visualization of the ontology schema (i.e. the classes, properties and datatypes, sometimes called TBox), while it also includes recommendations on how to depict individuals and data values (the ABox). Familiarity with OWL and other Semantic Web technologies is required to understand this specification.


Table of Contents

  1. Overview
  2. Basic Building Blocks
  3. Visual Notation
  4. Example
  5. Acknowledgments
  6. References

Overview [back to top]

The Visual Notation for OWL Ontologies (VOWL) is based on only a handful of graphical primitives forming the alphabet of the visual language: Classes are depicted as circles that are connected by lines and arrows representing the property relations. Property labels and datatypes are shown in rectangles. Information on individuals and data values is either displayed in the visualization itself or in another part of the user interface.

The second ingredient of VOWL is a color scheme complementing the graphical primitives. It defines colors for the visual elements to allow for an easy distinction of different types of classes and properties. Although the color scheme is defined in an abstract way leaving room for customization, a set of concrete color recommendations provides guidance for developers.

Finally, the visual elements are combined to a graph that is rendered in a force-directed layout and represents the ontology. VOWL defines splitting rules to specify which elements are multiplied and thus displayed several times in the visualization to improve the overall layout.

VOWL can be used with any version of OWL (i.e. OWL 1 and OWL 2 ), although not all language constructs (especially of OWL 2) are included in this specification. Best results may be achieved with OWL DL or the more restrictive profiles OWL 2 EL/QL/RL , as well as OWL Lite . VOWL also provides graphical depictions for elements of RDF and RDFS that are reused in OWL, such as rdf:Property or rdfs:subClassOf .


Basic Building Blocks [back to top]

This section introduces the graphical primitives and color scheme that form the basic building blocks of VOWL. It also defines splitting rules for elements in the graph visualization and gives some general guidelines for using the notation.

Graphical Primitives

Table 1 lists all graphical primitives used in VOWL.

Table 1. Graphical primitives.
Name Primitive Description Application
Circle

Each circle represents a class of the ontology. The color of the circle depends on the type of class. There is an implementation-specific default size for circles.

If an ontology contains individuals and unless purely the schema (i.e. the TBox) is considered, the circle can become larger than the default size – in that case, its size corresponds to the number of individuals that are instances of the class. VOWL does not specify a particular function for mapping the number of individuals to the circle size – good results may be achieved with a logarithmic or square-root scaling in most cases. A maximum size may be imposed. Individuals inferred from subclasses are counted as well if reasoning is available and not deactivated.

The circles representing the special classes owl:Thing and rdfs:Resource are exceptions. They are not scaled but have a fixed size that is smaller than the default size of classes. In addition, the circles of these two classes have a dashed border and are multiplied in the visualization according to the splitting rules .

owl:Class , rdfs:Class , owl:DeprecatedClass , owl:Thing , rdfs:Resource
Line

Lines are used to represent property relations. They usually have an arrowhead indicating the direction of the relation. The line style and arrowhead to use are determined by the type of the property. If the same two classes are connected by multiple lines (i.e. if there are multi-edges between circle nodes in the graph visualization), the lines may be curved.

rdfs:domain , rdfs:range , owl:disjointWith , rdfs:subClassOf , owl:unionOf , owl:intersectionOf , owl:complementOf
Arrowhead

Arrowheads indicate the direction of property relations by pointing to the object of the property – i.e., a datatype, class, or class instance that is defined as the range of that property.

Arrowheads representing range axioms are filled with the foreground color ; arrowheads representing subclass relations are filled with the neutral color .

rdfs:range (with foreground color ), rdfs:subClassOf (with neutral color )

Rectangle

Property labels and datatypes are shown in rectangles. If representing datatypes, the rectangles have the datatype color and a border. If representing property labels, they are borderless and colored according to the property type.

rdfs:Datatype , rdfs:Literal , property labels

Line style

The lines and borders of some types of classes and properties are dashed or dotted. A dashed line indicates set operators and class disjointness ( if visualized ). A dashed border indicates literals and special types of classes. A dotted line is reserved for subclass relations.

dotted line: rdfs:subClassOf ;
dashed line: owl:disjointWith , owl:unionOf , owl:intersectionOf , owl:ComplementOf ;
dashed border: owl:Thing , rdfs:Resource , rdfs:Literal , and anonymous classes (as part of set operators)

Text text number symbol

Text is used for labels and type information, numbers represent cardinalities and symbols may complement schematic illustrations. Moreover, an infobox with textual information from the ontology header, such as the title and description of the ontology, may be displayed in the visualization.

rdfs:label , type of property ("Subclass of" for rdfs:subClassOf ), additional type information in brackets (e.g. "deprecated", "functional", etc.), symbols in schematic illustrations (e.g. union symbol ("∪") for owl:unionOf ), cardinalities , infobox

Color Scheme

Table 2 lists the colors used in VOWL. They are defined in an abstract way, along with a description and a recommendation for a concrete color, including its hex code. Developers may choose different colors, as long as they comply with the abstract descriptions. All colors are defined relative to the canvas color , which is assumed to be very light. The colors (and color descriptions) may be 'inverted' if the visualization is presented on a dark background.

While the colors ease the reading of the visualization, they are not required to understand it. The visualization is also understandable if printed in black and white or read by color-blind people, though some details may not be visible any longer (e.g. if a class is of type owl:Class or rdfs:Class ). If these details should also be available in black and white prints of the visualization, they may be added as text (e.g. in the label of the element).

There may be conflicts in using this color scheme, e.g. when a deprecated class belongs to an external ontology. They should be resolved by giving one of the colors a higher priority and adding all information in the label and/or another part of the user interface (e.g. a sidebar). Recommendations are given in the general guidelines .

Table 2. Color scheme.
Abstract color name Concrete color recommendation Description Application
Canvas #fff white

Very light color with a good contrast to all other colors.

background of the visualization

Neutral #fff white

Light color with a good contrast to all other colors (usually similar or identical to the canvas color ).

owl:Thing , arrowhead of rdfs:subClassOf , double border of owl:equivalentClass

Foreground #000 black

Very dark color with a good contrast to all other colors, except the external color .

lines, borders, arrowheads, text, numbers, symbols

General #acf light blue

Light color with a good contrast to the foreground color .

owl:Class , owl:ObjectProperty (incl. subclasses), owl:disjointWith

Rdf #c9c light purple

Color similar to the general color with a good contrast to the foreground color .

rdfs:Class , rdfs:Resource , rdf:Property

Deprecated #ccc light gray

Color that is clearly different from the other colors and that is associated with being 'deactivated'.

owl:DeprecatedClass , owl:DeprecatedProperty

External #36c dark blue

Dark version of the general color , with the text in the neutral color instead of the foreground color .

Classes and properties from other ontologies that are linked in the ontology being visualized.

Datatype #fc3 yellow

Light color that is clearly different from the other colors.

rdfs:Datatype , rdfs:Literal

Datatype Property #9c6 light green

Light color that is clearly different from the other colors.

owl:DatatypeProperty

Graphics #69c medium blue

Darkened version of the general color .

Schematic illustrations in owl:disjointWith , owl:unionOf , owl:intersectionOf , owl:ComplementOf

Highlighting #f00 red

Very visible color, clearly indicating that an element is hovered or selected.

circles, rectangles, lines, borders, arrowheads

Indirect Highlighting #f90 orange

Color similar to the highlighting color .

rectangles, circles

Splitting Rules

While some generic elements do not carry important domain information (e.g. owl:Thing , rdfs:Literal ), they may be connected to a lot of other elements in the ontology. This would result in many links in the graph visualization that could negatively affect its layout and readability. In addition, these highly connected elements would tend to stand out among the other elements, giving them visual emphasis that does not adequately reflect their importance in the ontology. Therefore, VOWL defines splitting rules for some generic OWL elements.

Table 3 lists the two different splitting rules, along with the OWL elements they are applied to.

Table 3. Splitting rules.
Name Description Application
Splitting by property

The element is visualized once for every property it is linked to, i.e. if an element is linked to m properties, it is represented m times.

rdfs:Datatype , rdfs:Literal

Splitting by class

The element is visualized once for every class it is linked to (via property relations), i.e. if an element is linked to n classes, it is represented n times – independently of how often the element is linked to each class.

owl:Thing , rdfs:Resource

Note that each link of a splitted element is connected to only one of its representations in the graph visualization, not to all of them. Also note the other VOWL guidelines for the visualization of owl:Thing .

Elements that are defined to be equivalent (using owl:equivalentProperty or owl:equivalentClass ) are, on the contrary, represented by only one visual element in the graph.


General Guidelines

Some general guidelines and recommendations for the usage and implementation of VOWL are listed in the following:

Labels

If elements do not have an rdfs:label , it is recommended to take the last part of the URI as label, i.e. the part that follows the last slash (/) or hash (#) character. Labels may be abbreviated if they do not fit in the available space (e.g. "Winnie-the-Pooh" → "Winnie…"). The full label should be shown on demand in these cases (e.g. in a tooltip or sidebar).

Graph Layout

The visual elements are combined to a graph that should be rendered in an appealing and readable layout. The positions of the circles should be roughly determined by the number of inbound and outbound property relations, i.e. the more property relations a class has, the more centric its circle representation in the layout. It is recommended to use a force-directed graph layout (though other layouts may be equally or even more appropriate in certain cases). The users should be enabled to adapt the graph layout (e.g. by repositioning the nodes that represent the classes and datatypes).

Missing Domain and/or Range Information

If no domain and/or range axiom is defined for a property, owl:Thing should be used as domain and/or range. An exception are datatype properties without a defined range, where rdfs:Literal is used as range instead.

Visualization of owl:Thing

The visual representation of owl:Thing should only be used if either no domain and/or range axiom is defined for a property, or if owl:Thing is explicitly defined as domain and/or range. It is not recommended to visualize subclass relations of owl:Thing , as every user-defined class is implicitly a subclass of owl:Thing and the subclass relations would unnecessarily clutter the visualization.

External Elements

Elements whose base URI differs from that of the visualized ontology may be marked as external (this feature is optional). Developers may define different colors to visually group external elements by their base URI, as long as they use the representation with 'inverted coloring' (i.e. dark color with light font) defined for external elements (i.e. external classes and external properties ).

Interactive Highlighting

The interactive highlighting assists in the visual exploration of the ontology by indicating hovered, selected, and related elements. Three modes of interactive highlighting are distinguished, two of which are direct:

  1. Highlight on hover: changes the fill color of the hovered element (plus the color of the line and arrow if any) to the highlighting color . This highlighting mode is dependent on the interaction context (e.g., it may not be supported by many touch interfaces).
  2. Highlight on selection: changes the border color of the selected element (plus the color of the line and arrow if any) to the highlighting color . Note that it should also be possible to deselect elements that have been selected.
  3. The third highlighting mode is indirect. It expresses some kind of relationship between elements without connecting them by a line. It is used to interactively indicate sub- and superproperties of a hovered property. Like the highlight on hover , it changes the fill color of the element (though not necessarily the color of the line and arrow if any), but this time to the indirect highlighting color .

Conflicts

The deprecated color has priority over the external color , i.e. if a class or property from an external ontology is deprecated, it should be visualized in the deprecated color . In such cases, the type information displayed in brackets will include all information in a comma-separated form (e.g. "deprecated, external"). If a property is symmetric and functional, the type information should be "symmetric, functional" accordingly.


Visual Notation [back to top]

The following tables list the graphical representations for the different OWL elements (and some RDF and RDFS elements reused by OWL). They are provided as interactive Scalable Vector Graphics (SVG) and implement the highlight on hover effects.

Table 4. Graphical representations of classes.
Ontology element Graphical representation Description
owl:Class Class

Circle in general color showing the class label in the selected language.

rdfs:Class Class

Class representation in rdf color .

External class
( different base URI )
Class (external)

Class representation in external color and with indication "external" in brackets (same representation for external owl:Class and rdfs:Class ).

owl:DeprecatedClass Class (deprecated)

Class representation in deprecated color and with indication "deprecated" in brackets (same representation for deprecated owl:Class and rdfs:Class ). This graphical representation is also used for deprecated external classes, with indication "deprecated, external" in brackets.

owl:Thing
( owl:Nothing )
Thing

Smaller circle in neutral color with a dashed border and label "Thing". This graphical representation is multiplied in the visualization according to the splitting rules . The same representation with label "Nothing" may be used to represent owl:Nothing (though it is generally not recommended to include owl:Nothing in the visualization at all).

rdfs:Resource Resource

Smaller circle in rdf color with a dashed border and label "Resource". This graphical representation is multiplied in the visualization according to the splitting rules .

Note that the text string "Class" is used as a placeholder for the actual class label in the graphical representations. In contrast, the text strings in brackets (i.e. "external" and "deprecated") and the labels "Thing" and "Resource" are not placeholders but literally shown in the visualization.


Table 5. Graphical representations of properties.
Ontology element Graphical representation Description
rdfs:domain , rdfs:range Class A Class B

Solid line starting at the domain with an arrowhead in the foreground color that points to the range. This graphical representation does never occur on its own but always in combination with the property for which the domain and range have been defined ( missing domain or range information is replaced ).

owl:ObjectProperty Class A ObjectProperty Class B

Property representation showing the property label in a rectangle having the general color .

owl:DatatypeProperty Class A DatatypeProperty Datatype

Property representation showing the property label in a rectangle having the datatype property color .

rdf:Property Class A Property Class B

Property representation showing the property label in a rectangle having the rdf color .

External property
( different base URI )
Class A Property Class B

Property representation showing the property label in a rectangle having the external color (same representation for external owl:ObjectProperty , owl:DatatypeProperty , and rdf:Property ).

owl:DeprecatedProperty Class A DeprecatedProperty Class B

Property representation showing the property label in a rectangle having the deprecated color (same representation for deprecated owl:ObjectProperty , owl:DatatypeProperty , rdf:Property , and external properties .)

owl:FunctionalProperty Class A Property (functional) Class B

Property representation with indication "functional" in brackets. The color of the rectangle depends on the type of property, i.e. general color = owl:ObjectProperty , datatype property color = owl:DatatypeProperty , and rdf color = rdf:Property .

The global cardinality constraint of functional properties is not made explicit in the visualization to avoid any confusion with cardinality constraints defined with owl:cardinality , owl:minCardinality , and owl:maxCardinality that are displayed in the visualization.

owl:InverseFunctionalProperty Class A ObjectProperty (inverse functional) Class B

Object property representation with indication "inverse functional" in brackets. The global cardinality constraint of inverse functional properties is not made explicit in the visualization for the same reason as for functional properties .

owl:TransitiveProperty Class A ObjectProperty (transitive) Class B

Object property representation with indication "transitive" in brackets.

Properties with identical domain and range Class A ObjectProperty

Object property representation with the line starting and ending at the same class representation ( reflexive property representation ). If there are several of these properties, their representations should be placed around the circle in a way that maintains readability.

owl:SymmetricProperty Class A ObjectProperty (symmetric)

Reflexive property representation with indication "symmetric" in brackets.

Note that the text strings "Property", "ObjectProperty", "DatatypeProperty", and "DeprecatedProperty" are used as placeholders for the actual property labels in the graphical representations. In contrast, the text strings in brackets (i.e. "functional", "inverse functional", "transitive", and "symmetric") are not placeholders but literally shown in the visualization.


Table 6. Graphical representations of further properties.
Ontology element Graphical representation Description
owl:cardinality ,
owl:minCardinality , owl:maxCardinality
Class A Property x..y Class B

Exact, minimal, and maximal cardinality constraints are written as numbers near the end of the property arrow. The representation is similar to the UML notation for cardinalities , i.e. the letters "x" and "y" in the example represent the minimum and maximum cardinality for that property. Exact cardinalities are represented by only one number, while the asterisk (*) denotes an unrestricted cardinality. Examples are "0..1" for a cardinality of 0 to 1, "1..*" for a minimum cardinality of 1, or "3" for a cardinality of exactly 3.

The default cardinality of most properties is any number (i.e. zero or more) and would be represented by a sole asterisk. However, it is recommended to only depict cardinalities that are explicitly specified with owl:cardinality , owl:minCardinality , and owl:maxCardinality . Default property cardinalities (incl. the global cardinality constraints of functional and inverse functional properties) are better not shown in the visualization to avoid confusion and reduce visual clutter.

The color of the rectangle depends on the type of property, i.e. general color = owl:ObjectProperty , datatype property color = owl:DatatypeProperty , and rdf color = rdf:Property .

owl:disjointWith Class A (disjoint) Class B

Dashed line without arrowhead connecting the disjoint classes, accompanied by a Venn diagram illustration of two disjoint sets. The illustration has the graphics color and is shown in a rectangle colored in the general color , along with the indication "disjoint" in brackets.

If several classes are pairwise disjoint, this could be visualized by connecting each two of them. As an alternative to showing this element in the visualization, owl:disjointWith statements may be presented as details on demand in another part of the user interface, which is recommended since it usually results in a less cluttered graph.

rdfs:subClassOf Class A Subclass of Class B

Dotted line starting at the subclass with an arrowhead filled with the neutral color that points to the superclass. The representation is similar to the UML notation for generalizations but with a dashed line instead of a solid one to make it clearly distinguishable from other property relations. In addition, it is recommended to add the label "Subclass of" to the representation to clarify the semantics of the relation. The label has either a transparent background (unless highlighted) or is shown in a rectangle that has the neutral color , which is recommended.

rdfs:subPropertyOf Class A Property Subproperty Class B

If a property is hovered, its sub- and superproperties (if any) may be dynamically highlighted using the indirect highligthing color and mode . The color of the rectangle depends on the type of property, i.e. general color = owl:ObjectProperty , datatype property color = owl:DatatypeProperty , and rdf color = rdf:Property .

owl:inverseOf Class A ObjectProperty InverseProperty Class B

Object property representation with arrowheads at both ends, annotated with the label of the property and its inverse counterpart (interactive highlighting of direction). In order to indicate which label denotes which direction in non-interactive contexts, each label may be slightly displaced toward its respective arrowhead (not shown in the example).

owl:equivalentProperty Class A Property A [Property B] Class B

This graphical representation is used for two or more properties that are defined to be equivalent. One of the property labels is the main label, while the rest is listed in square brackets ( abbreviated if they do not all fit). The main label is taken from a property with the same base URI as the ontology. If there is no such property (i.e. all properties are external ), it is taken from any of the properties.

The color of the rectangle depends on the type of property from which the main label is taken, i.e. general color = owl:ObjectProperty , datatype property color = owl:DatatypeProperty , and rdf color = rdf:Property .

owl:equivalentClass Class A [Class B]

Class representation with a double border. The space between the two borders has the neutral color . This graphical representation is used for two or more classes that are defined to be equivalent. One of the class labels is the main label, while the rest is listed in square brackets ( abbreviated if they do not all fit). The main label is taken from a class with the same base URI as the ontology. If there is no such class (i.e. all classes are external ), it is taken from any of the classes. Note that the graphical representation has always a double border, independently of how many classes it represents.

The color of the circle depends on the type of class from which the main label is taken, i.e. general color = owl:Class , datatype property color = rdfs:Class , external color = external class , and deprecated color = owl:deprecatedClass .

The graphical representations of equivalent classes may also be used to represent owl:sameAs relations that can be defined between classes in OWL Full.


Table 7. Graphical representations of set operators.
Ontology element Graphical representation Description
owl:unionOf Class A Class B

Class representation with a dashed border and a Venn diagram of two united sets colored in the graphics color . The circle represents the anonymous class of the owl:unionOf statement, which is additionally indicated by the union symbol ("∪") used as a label. The anonymous class is connected to the classes it is composed of by a dashed line (without arrowhead).

owl:intersectionOf Class A Class B

Class representation with a dashed border and a Venn diagram of two intersected sets colored in the graphics color . The circle represents the anonymous class of the owl:intersectionOf statement, which is additionally indicated by the intersection symbol ("∩") used as a label. The anonymous class is connected to the classes it is composed of by a dashed line (without arrowhead).

owl:complementOf Class

Class representation with a dashed border containing a smaller circle in the graphics color as an illustration of the complement class. The outer circle represents the anonymous class of the owl:complementOf statement, which is additionally indicated by the negation symbol ("¬") used as a label. The anonymous class is connected to the class it is composed of by a dashed line (without arrowhead).

Note that the set operators owl:unionOf and owl:intersectionOf can also connect more than two classes, which is represented by additional dashed lines from the anonymous class to those classes.


Table 8. Graphical representations of datatypes.
Ontology element Graphical representation Description
rdfs:Datatype Datatype

Rectangle in datatype color with solid border. The datatype label is the last part of the URI reference to the datatype (e.g. "dateTime", "boolean", etc.)

rdfs:Literal Literal

Datatype representation with a dashed border and the label "Literal".

Note that OWL makes use of XML Schema datatypes .


Table 9. Representation of header information and individuals.
Ontology element Graphical representation Description
owl:imports ,
owl:versionInfo ,
owl:priorVersion , owl:BackwardCompatibleWith , owl:incompatibleWith
Name of ontology Ontology URI Description: This is an example of how an infobox with information from the ontology header may look like.

Text in an infobox complementing the visualization.

Individuals

No graphical representation (or alternatively the graphical representation of VOWL 1.0 ).

It is recommended to separate the depiction of the individuals from the rest of the visualization (e.g. by listing the individuals of interactively selected classes in a sidebar).

Alternatively, individuals may be depicted as sections of the circle that represents the class they are instances of (as specified by VOWL 1.0 ).

Data values

No graphical representation

It is recommended to separate the depiction of the data values from the rest of the visualization.

OWL elements such as owl:allValuesFrom , owl:someValuesFrom , owl:hasValue , rdfs:comment , rdfs:seeAlso , rdfs:isDefinedBy , and owl:DataRange ( rdfs:datatype in OWL 2 which has a representation in the current specification) are not part of the VOWL visualization but could be displayed in another way (e.g. as text information in a tooltip or sidebar). This is also the case for the OWL elements owl:Ontology , owl:differentFrom , owl:AllDifferent , owl:distinctMembers , owl:Restriction , owl:onProperty , owl:AnnotationProperty , and owl:OntologyProperty that serve as containers of other elements, link individuals, or define ontology metadata.


Acknowledgments [back to top]

The authors would like to thank David Bold, Thomas Ertl, Vincent Link, and Eduard Marbach for their valuable feedback, suggestions, and support.


References [back to top]