Chowlk Visual Notation

A set of recommendations for ontology diagrams representation.

Last update:

2021-06-01

Chowlk Diagrams.net Library (lightweight version):

Download

Chowlk Diagrams.net Librayr (complete version):

Download

Getting Started

The following video shows you how to start conceptualizing your ontology using diagrams.net and this notation.

1. Introduction

This document describes the Chowlk visual notation to construct ontology conceptualizations. It provides a set of visual blocks to represent each element from the OWL specification. The visual notation allows the representation of high-level as well as fine-grained constructs from the OWL language, giving the user the freedom to choose the level of expresiveness for their conceptualization.

2. Specification

This sections gives detailed information about the diagraming blocks used to represent the OWL elements used in the construction of an ontology. The specification is structured around the three main elements of an ontology: owl:Class, owl:ObjectProperty and owl:DatatypeProperty. Each table in the sub-sections contains not only the diagram block but also the equivalent owl code, and a description of the element.

2.1. Basic Elements
Diagram Block Description OWL Element
class Block to represent named and unnamed classes, as well as individual elements within the ontology conceptualization. The content of the block should be accompanied with the prefix and the name of the concept on order to fully identify it. owl:Class
individual Block to represent named and unnamed classes, as well as individual elements within the ontology conceptualization. The content of the block should be accompanied with the prefix and the name of the concept on order to fully identify it. owl:Individual
object-property Standard way to represent object properties. Variations can apply to the type of line or the connections style depending on the range or domain specification. For more details see section 2.3. owl:ObjectProperty
sub-class Special arrow to indicate sub-class relationship between two classes. owl:subClassOf
type Special arrow to represent several relationships between elements of this specification. It can be used to indicate rdf:type relationships, or to connect a owl:unionOf axiom with all the concepts it is composed of. rdf:type
datatype-properties Standard way to represent datatype properties attached to a specific owl:Class element. Variations can apply to the type of outer line depending on the domain and range specification. For more details see section 2.4. rdf:DatatypeProperty
object-properties Alternative way to represent object properties. rdf:ObjectProperty
datatype-properties Alternative way to represent datatype properties. rdf:DatatypeProperty
namespaces Block to indicate all the namespaces used in the ontology. The first namespace is the URI used for the current ontology. It is obligatory to include all the namespaces being used in order to use the ontology converter service. @prefix base: <http://namespace.com#>
metadata Block to indicate the annotation properties describing the ontology. The annotations in use should include the prefix and the annotation name, as indicated in the figure. If custom annotations are utilized, the namespace block should include the prefixes and namespaces for those annotation properties. owl:AnnotationProperty
2.2. Classes
2.2.1. Class Definition

Definition of a named class.

Diagram Block OWL Element
class owl:Class

Definition of an unnamed class. Usually used to represent axioms.

Diagram Block OWL Element
class owl:Class

Definition of an unnamed class to represent logical combinations between other classes, such as AND or OR operators.

Diagram Block OWL Element
class owl:Class
2.2.2. Sub-Class

Graphical representations to indicate that ns:Class2 concept is sub-class of ns:Class1

Diagram Block OWL Element

Preferred

subclass
ns:Class2 owl:subClassOf ns:Class1

Alternative

subclass
2.2.3. Equivalent Classes

Graphical representations to indicate that ns:Class2 concept is equivalent to ns:Class1

Diagram Block OWL Element

Preferred

equivalent
ns:Class1 owl:equivalentClass ns:Class2

Alternative

equivalent
2.2.4. Disjoint Classes

Graphical representations to indicate that ns:Class2 and ns:Class1 are disjoint concepts

Diagram Block OWL Element

Preferred

disjoint
ns:Class1 owl:disjointWith ns:Class2

Alternative

disjoint
2.2.5. Intersection of Classes
Diagram Block OWL Element

Preferred

intersection
owl:intersectionOf (ns:Class1 ns:Class2)

Alternative

intersection
2.2.6. Union of Classes
Diagram Block OWL Element

Preferred

union
owl:unionOf (ns:Class1 ns:Class2)

Alternative

union
2.2.6. Complement of Classes
Diagram Block OWL Element
complement ns:Class1 owl:complementOf ns:Class2
complement owl:complementOf ns:Class1
2.3. Object Properties
2.3.1. Domain and Range

Object properties without domain and range.

Diagram Block OWL Element

Preferred

ns:objectProperty rdf:type owl:ObjectProperty .

Alternative

Object properties with domain and range.

Diagram Block OWL Element

Preferred

ns:objectProperty rdf:type owl:ObjectProperty ;
rdfs:domain ns:Class1 ;
rdfs:range ns:Class2 .

Alternative

Object properties with domain but without range.

Diagram Block OWL Element

Preferred

ns:objectProperty rdf:type owl:ObjectProperty ;
rdfs:domain ns:Class1 .

Alternative

Object properties without domain but with range.

Diagram Block OWL Element

Preferred

ns:objectProperty rdf:type owl:ObjectProperty ;
rdfs:range ns:Class2 .

Alternative

2.3.2. Universal Restrictions

Universal restriction between 2 concepts. Concept ns:Class1 is sub-class of an anonymous concept which has an object property ns:objectProperty, where all the individuals for this property should be of type ns:Class2.

Diagram Block OWL Element

Preferred

ns:Class1 rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty ns:objectProperty ;
owl:allValuesFrom ns:Class2 ] .

Alternative

Alternative

2.3.3. Existential Restrictions

Universal restriction between 2 concepts. Concept ns:Class1 is sub-class of an anonymous concept which has an object property ns:objectProperty, where all the individuals for this property should be of type ns:Class2.

Diagram Block OWL Element

Preferred

ns:Class1 rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty ns:objectProperty ;
owl:someValuesFrom ns:Class2 ] .

Alternative

Alternative

2.3.4. Cardinality Restrictions

Cardinality restriction of a concept on an object property. The ns:Class1 class is subclass of an anonymus concept which has an object property ns:objectProperty, and should have at least N1 and at most N2 individuals from class ns:Class2. If the N2 element is equal to the letter N, it means owl:maxQualifiedCardinality does not exist.

Diagram Block OWL Element
ns:Class1 rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty ns:objectProperty ;
owl:minQualifiedCardinality "N1"^^xsd:nonNegativeInteger ;
owl:onClass ns:Class2 ] ,
[ rdf:type owl:Restriction ;
owl:onProperty ns:objectProperty ;
owl:maxQualifiedCardinality "N2"^^xsd:nonNegativeInteger ;
owl:onClass ns:Class2 ] .
2.3.5. Functional Properties
Diagram Block OWL Element

Preferred

ns:objectProperty rdf:type owl:ObjectProperty ,
owl:FunctionalProperty .

Alternative

2.3.6. Inverse Functional Properties
Diagram Block OWL Element

Preferred

ns:objectProperty rdf:type owl:ObjectProperty ,
owl:FunctionalProperty .

Alternative

2.3.7. Symmetric Properties
Diagram Block OWL Element

Preferred

ns:objectProperty rdf:type owl:ObjectProperty ,
owl:SymmetricProperty .

Alternative

2.3.8. Transitive Properties
Diagram Block OWL Element

Preferred

ns:objectProperty rdf:type owl:ObjectProperty ,
owl:TransitiveProperty .

Alternative

2.4. Datatype Properties
2.4.1. Domain and Range

Datatype properties without domain and range.

Diagram Block OWL Element
ns:datatypeProperty rdf:type owl:DatatypeProperty .

Datatype properties with domain and range.

Diagram Block OWL Element

Preferred

ns:datatypeProperty rdf:type owl:DatatypeProperty ;
rdfs:domain ns:Class ;
rdfs:range datatype .

Alternative

Datatype properties with domain and without range.

Diagram Block OWL Element
ns:datatypeProperty rdf:type owl:DatatypeProperty ;
rdfs:domain ns:Class .

Datatype properties without domain but with range.

Diagram Block OWL Element
ns:datatypeProperty rdf:type owl:DatatypeProperty ;
rdfs:range datatype .
2.4.2. Universal Restrictions

Universal restriction between a concept and a datatype. The ns:Class concept is subclass of an anonymus concept which has a datatype property ns:datatypeProperty, and all the values must be of type datatype.

Diagram Block OWL Element

Preferred

ns:Class rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty ns:datatypeProperty ;
owl:allValuesFrom datatype ] .

Alternative

2.4.3. Existential Restrictions

Existential restriction between a concept and a datatype. The ns:Class concept is subclass of an anonymus concept which has a datatype property ns:datatypeProperty, and some values must be of type datatype.

Diagram Block OWL Element

Preferred

ns:Class rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty ns:datatypeProperty ;
owl:someValuesFrom datatype ] .

Alternative

2.4.4. Cardinality Restrictions

Cardinality restriction of a concept on a datatype property. The ns:Class concept is subclass of an anonymus concept which has an datatype property ns:datatypeProperty, and shall have at least N1 and at most N2 values. If the N2 element is equal to the letter N, it means owl:maxCardinality does not exist.

Diagram Block OWL Element
ns:Class rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty ns:datatypeProperty ;
owl:minCardinality "N1"^^xsd:nonNegativeInteger ] ,
[ rdf:type owl:Restriction ;
owl:onProperty ns:datatypeProperty ;
owl:maxCardinality "N2"^^xsd:nonNegativeInteger ] .
2.4.5. Functional Properties
Diagram Block OWL Element

Preferred

ns:datatypeProperty rdf:type owl:DatatypeProperty ,
owl:FunctionalProperty .

Alternative

2.5. Relations between Object Properties

Currently, the converter only supports the "Preferred" version of the relations.

2.5.1. Sub-Property
Diagram Block OWL Element

Preferred

ns:objectProperty1 rdfs:subPropertyOf ns:objectProperty2

Alternative

2.5.2. Equivalent Property
Diagram Block OWL Element

Preferred

ns:objectProperty1 owl:equivalentProperty ns:objectProperty2

Alternative

2.5.3. Inverse Property
Diagram Block OWL Element

Preferred

ns:objectProperty1 owl:inverseOf ns:objectProperty2

Alternative

2.6. Relations between Datatype Properties

Currently, the converter only supports the "Preferred" version of the relations.

2.6.1. Sub-Property
Diagram Block OWL Element
ns:datatypeProperty2 rdfs:subPropertyOf ns:datatypeProperty1
2.6.2. Equivalent Property
Diagram Block OWL Element
ns:datatypeProperty2 owl:equivalentProperty ns:datatypeProperty1
2.7. Individuals
2.7.1. Class Membership
Diagram Block OWL Element

Preferred

ns:Individual rdf:type ns:Class .

Alternative

Alternative

Alternative

2.7.2. Property Values

Association between individuals in RDF graphs.

Diagram Block OWL Element
ns:Individual1 ns:objectProperty ns:Individual2 .

Association between individuals and datatype values in RDF graphs.

Diagram Block OWL Element
ns:Individual ns:datatypeProperty "value"^^datatype .
2.7.3. Individual Identity
2.7.3.1. Same As
Diagram Block OWL Element
ns:Individual1 owl:sameAs ns:Individual2 .
2.7.3.2. Different From
Diagram Block OWL Element
ns:Individual1 owl:differentFrom ns:Individual2 .
2.7.3.3. All Different
Diagram Block OWL Element
[rdf:type owl:AllDifferent ;
owl:distinctMembers (:Individual1
:Individual2
:Individual3)]