Skip to content

Introduction

Valerio Santarelli edited this page Aug 11, 2023 · 16 revisions

Introduction

This is the user manual for Eddy, the graphical editor for Graphol ontologies. Throughout this tutorial we’ll introduce the Graphol ontology language, and take you through Eddy's features. We assume the reader has some prior knowledge of OWL 2. Otherwise, we recommend reading the OWL 2 Documentation.

Graphol

In Eddy ontologies are specified in the Graphol ontology language, so, before getting into Eddy's features, let's take a look at Graphol.

Graphol in a nutshell

Graphol is a visual ontology language for OWL 2. Graphol's distinguishing feature is that it allows you to draw ontologies in a completely diagrammatic way. In other words, Graphol diagrams do not need to be annotated with formulas, even to capture complex axioms, everything can be represented graphically. Plus, Graphol can fully capture OWL 2, meaning that anything that you can say in OWL 2, you can also say in Graphol, and vice-versa.

The basic elements of Graphol are borrowed from the Entity-Relationship (ER) model. This makes Graphol (and Eddy) particularly suited for engineers, analysts, or designers in general who are used to describing requirements and designing systems through modelling languages like ER or UML class diagrams.

Graphol syntax and meaning

We'll use the following example to illustrate Graphol, which models the world of comicbook characters and their abilities.

Schermata 2023-08-11 alle 11 12 20

The ontology in the diagram is saying that, among characters, there are Humans, Extraterrestrials, and Metahumans, and these are all three mutually disjoint, so for example a human cannot be an extraterrestrial and vice-versa. Every character has a name, that is a string. Some characters are Villains, whereas others are Superheroes. A Superhero cannot be a Villain and has an enemy. A character can have an Ability. Every ability has a name, which is a string, and some abilities are Superpowers.

You can see that Graphol's representation of the elements that compose the alphabet of the ontology is very similar to ER. So rectangles are used for classes (called entities in ER), diamonds are used for object properties, and circles are used for data properties. Data types such as strings or integers are represented with rounded rectangles.

In OWL complex expressions can be built from named entities (classes, object properties and data properties) and operators. For example, the union of superheroes and villains, denoted in OWL as ObjectUnionOf(:Superhero :Villain), is a complex class expression constructed with the ObjectUnionOf operator applied to :Superhero and :Villain.

The basic idea in Graphol is to represent the ontology as a set of axioms, just like in OWL 2, where edges are used to link expressions together in order to build these axioms. So, essentially, a Graphol ontology is a graph, whose nodes are named entities or operators, and the edges are solid or dashed arrows. The latter denote input to operators, whereas the former denote inclusions.

For example, the OWL 2 axiom SubClassOf(:Superpower :Ability) is captured by the arrow between the rectangles that represent these two classes. For simplicity, inclusion edges between the same expressions and with inverse directions are denoted with a single solid edge with an arrow on both ends, which corresponds to an equivalence axiom expressions.

We've established that Graphol expressions are either nodes that represent named entities or a combination of these nodes with nodes that represent operators. Let's take a more in-depth look at the operator nodes.

These nodes are of two kinds. The first are labeled white and black boxes, used for constructing object and data property restrictions on the domain and range (white for domain, black for range). The label represents the type of restriction: existential quantification, universal quantification, or cardinality restrictions. In general, in Graphol you can add as many white and black boxes as needed to a property. The other operators are hexagons, which can be black, representing a disjoint union, or white. In particular, white hexagons can be labeled and, or, not, inv, chain, and key, and each label represents a specific type of relation. Expressions are built by connecting these nodes with dashed directed edges ending with a small diamond (called input edges).

Finally, Graphol uses a special representation to draw functional object and data properties: to represent a functional object or data property Graphol uses a double blank border on the node, whereas to represent an inverse functional object property, it uses a double solid border on the node, and to represent an object property that is both functional and inverse functional it uses a combination of a double blank and solid border.

For a more detailed introduction to the Graphol ontology language, we refer to the following documentation:

  1. Graphol Introduction
  2. Graphol Syntax Reference

Clone this wiki locally