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.
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 .
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.
Table 1 lists all graphical primitives used in VOWL.
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
;
|
|
Text |
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 |
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 .
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 . |
|
Deprecated | #ccc | light gray |
Color that is clearly different from the other colors and that is associated with being 'deactivated'. |
|
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. |
|
Datatype Property | #9c6 | light green |
Light color that is clearly different from the other colors. |
|
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 |
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.
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. |
|
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. |
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.
Some general guidelines and recommendations for the usage and implementation of VOWL are listed in the following:
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).
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).
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.
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.
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 ).
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:
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.
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.
Ontology element | Graphical representation | Description |
---|---|---|
owl:Class |
Circle in general color showing the class label in the selected language. |
|
rdfs:Class |
Class representation in rdf color . |
|
External class
( different base URI ) |
Class representation in external color and with indication "external" in brackets (same representation for external owl:Class and rdfs:Class ). |
|
owl:DeprecatedClass |
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 ) |
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 |
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.
Ontology element | Graphical representation | Description |
---|---|---|
rdfs:domain , rdfs:range |
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 |
Property representation showing the property label in a rectangle having the general color . |
|
owl:DatatypeProperty |
Property representation showing the property label in a rectangle having the datatype property color . |
|
rdf:Property |
Property representation showing the property label in a rectangle having the rdf color . |
|
External property
( different base URI ) |
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 |
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 |
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 |
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 |
Object property representation with indication "transitive" in brackets. |
|
Properties with identical domain and range |
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 |
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.
Ontology element | Graphical representation | Description |
---|---|---|
owl:cardinality
,
owl:minCardinality , owl:maxCardinality |
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 |
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 |
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 |
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 |
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 |
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 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.
Ontology element | Graphical representation | Description |
---|---|---|
owl:unionOf |
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 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 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.
Ontology element | Graphical representation | Description |
---|---|---|
rdfs: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 |
Datatype representation with a dashed border and the label "Literal". |
Note that OWL makes use of XML Schema datatypes .
Ontology element | Graphical representation | Description |
---|---|---|
owl:imports
,
owl:versionInfo , owl:priorVersion , owl:BackwardCompatibleWith , owl:incompatibleWith |
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.
The authors would like to thank David Bold, Thomas Ertl, Vincent Link, and Eduard Marbach for their valuable feedback, suggestions, and support.
Lohmann, S., Negru, S., Haag F., Ertl, T.: Visualizing Ontologies with VOWL . Semantic Web 7(4): 399-419 (2016)
Lohmann, S., Negru, S., Haag F. and Ertl, T.: VOWL 2: User-Oriented Visualization of Ontologies. Proceedings of the 19th International Conference on Knowledge Engineering and Knowledge Management (EKAW '14). Springer, 2014; pp. 266–281