Skip to the content.

Chowlk Visual Notation

Authors:
María Poveda-Villalón (Ontology Engineering Group, Universidad Politécnica de Madrid)
Serge Chávez-Feria (Ontology Engineering Group, Universidad Politécnica de Madrid)

License:
Apache 2.0 License

Cite as:
Chowlk Visual Notation, Version 0.0.1.

Abstract

This document describes the Chowlk visual notation, a set of recomendations for ontology diagrams representation.

Getting Started

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

Table of Content

  1. Introduction
  2. Specification
    1. Basic Elements
    2. Classes
      1. Class Definition
      2. Sub-Class
      3. Equivalent Classes
      4. Disjoint Classes
      5. Intersection of Classes
      6. Union of Classes
      7. Complement of Classes
    3. Object Properties
      1. Domain and Range
      2. Universal Restrictions
      3. Existential Restrictions
      4. Cardinality Restrictions
      5. Functional Properties
      6. Inverse Functional Properties
      7. Symmetric Properties
      8. Transitive Properties
    4. Datatype Properties
      1. Domain and Range
      2. Universal Restrictions
      3. Existential Restrictions
      4. Cardinality Restrictions
      5. Functional Properties
    5. Relations between Properties
      1. Sub-Property
      2. Equivalent Property
      3. Inverse Property
    6. Individuals
      1. Class Membership
      2. Property Values
  3. Example
  4. Code Generation Service
  5. Adoption
  6. References
  7. Acknowledgment

1. Introduction

This document describes Chowlk, a visual notation specification to construct ontological diagrams. It provides a set of visual blocks to represent each element from the OWL ontology implementation language. The specification 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. In order to use the visual blocks from this specification you could also your favourite diagraming tool but we recomend using diagrams.net as the following resources are available for working with diagrams.net.

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 in 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 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
Class block 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 block 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 relationship block Special arrow to indicate sub-class relationship between two classes. owl:subClassOf
Type relationship block 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 property block 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. owl:DatatypeProperty
Object property block Alternative way to represent object properties. Mainly used to represent relations between the properties like rdfs:subpropertyOf. owl:ObjectProperty
Datatype property block Alternative way to represent datatype properties. Mainly used to represent relations between the properties like rdfs:subpropertyOf. owl:DatatypeProperty
Namespaces block 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 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

Diagram BLOCK Description OWL Element
Named Class Definition for a named class. owl:Class
Unnamed Class Definition of an unnamed class. Usually used to represent axioms.
Unnamed Class Definition of an unnamed class to represent logical combinations between other classes, such as AND or OR operators

2.2.2 Sub-Class

Diagram BLOCK Description OWL Element
Subclass Option 1 to express that ns:Class2 is sub-class of ns:Class1. ns:Class2 owl:subClassOf ns:Class1
Subclass Option 2 to express that ns:Class2 is sub-class of ns:Class1.

2.2.3 Equivalent Classes

Diagram BLOCK Description OWL Element
Equivalence Option 1 for equivalent classes. ns:Class1 owl:equivalentClass ns:Class2
Equivalence Option 2 for equivalent classes.

2.2.4 Disjoint Classes

Diagram BLOCK Description OWL Element
Disjointness Option 1 for disjointness between classes. ns:Class1 owl:disjointWith ns:Class2
Disjointness Option 2 for disjointness between classes.

2.2.5 Intersection of Classes

Diagram BLOCK Description OWL Element
Intersection Option 1 for intersection between classes. owl:intersectionOf (ns:Class1 ns:Class2)
Intersection Option 2 for intersection between classes.

2.2.6 Union of Classes

Diagram BLOCK Description OWL Element
Union Option 1 for union of two concepts. owl:unionOf (ns:Class1 ns:Class2)
Union Option 2 for union of two concepts.

2.2.7 Complement of Classes

Diagram BLOCK Description OWL Element
Complement of Option 1 for complement of two concepts. owl:complementOf ns:Class1

2.3 Object Properties

2.3.1 Domain and Range

Diagram BLOCK Description OWL Element
Domain and Range Option 1 for object property ns:objectProperty without domain and range. ns:objectProperty rdf:type owl:ObjectProperty .
Domain and Range Option 2 with object property ns:objectProperty without domain and range.
Domain and Range Option 1 for object property ns:objectProperty with domain and range. ns:objectProperty rdf:type owl:ObjectProperty ;
rdfs:domain ns:Class1 ;
rdfs:range ns:Class2 .
Domain and Range Option 2 for object property ns:objectProperty with domain and range.
Domain and Range Option 1 for object property ns:objectProperty with domain but without range. ns:objectProperty rdf:type owl:ObjectProperty ;
rdfs:domain ns:Class1 .
Domain and Range Option 2 for object property ns:objectProperty with domain but without range.
Domain and Range Object property ns:objectProperty with range but without domain. ns:objectProperty rdf:type owl:ObjectProperty ;
rdfs:range ns:Class2 .
Domain and Range Option 2 object property ns:objectProperty with range but without domain.

2.3.2 Universal Restrictions

Diagram BLOCK Description OWL Element
Universal restriction block Option 1 for a universal restriction between 2 concepts. ns:Class1 is subclass of an anonymus concept which has an object property ns:objectProperty, and all the individuals for this property shall come from ns:Class2 ns:Class1 rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty ns:objectProperty ;
owl:allValuesFrom ns:Class2 ] .
Universal restriction block Option 2 for a universal restriction with an object property.
Universal restriction block Option 3 for a universal restriction with an object property.

2.3.3 Existential Restrictions

Diagram BLOCK Description OWL Element
Existential restriction block Option 1 for an existential restriction between 2 concepts. ns:Class1 is subclass of an anonymus concept which has an object property ns:objectProperty, and some the individuals for this property shall come from ns:Class2 ns:Class1 rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty ns:objectProperty ;
owl:someValuesFrom ns:Class2 ] .
Existential restriction block Option 2 of an existential restriction between 2 concepts.
Existential restriction block Option 3 of an existential restriction between 2 concepts.

2.3.4 Cardinality Restrictions

Diagram BLOCK Description OWL Element
Cardinality restriction block Cardinality restriction of a concept on an object property. ns:Class1 is subclass of an anonymus concept which has an object property ns:objectProperty, and shall 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. 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 Description OWL Element
Functional OP block Option 1 for functional property. ns:objectProperty rdf:type owl:ObjectProperty ,
owl:FunctionalProperty .
Functional OP block Option 2 for a functional property.

2.3.6 Inverse Functional Properties

Diagram BLOCK Description OWL Element
Inverse Functional OP block Option 1 for an inverse functional property. ns:objectProperty rdf:type owl:ObjectProperty ,
owl:InverseFunctionalProperty .
Inverse Functional OP block Option 2 for an inverse functional property.

2.3.7 Symmetric Properties

Diagram BLOCK Description OWL Element
Symmetric OP block Option 1 for a symmetric property. ns:objectProperty rdf:type owl:ObjectProperty ,
owl:SymmetricProperty .
Symmetric OP block Option 2 for a symmetric property.

2.3.8 Transitive Properties

Diagram BLOCK Description OWL Element
Transitive OP block Option 1 for a transitive property. ns:objectProperty rdf:type owl:ObjectProperty ,
owl:TransitiveProperty .
Transitive OP block Option 2 for a transitive property.

2.4 Datatype Properties

2.4.1 Domain and Range

Diagram BLOCK Description OWL Element
Domain and Range DP Datatype property ns:datatypeProperty without domain and range. ns:datatypeProperty rdf:type owl:DatatypeProperty .
Domain and Range DP Datatype property ns:datatypeProperty with domain and range. ns:datatypeProperty rdf:type owl:DatatypeProperty ;
rdfs:domain ns:Class ;
rdfs:range datatype .
Domain and Range DP Datatype property ns:datatypeProperty with domain and without range. ns:datatypeProperty rdf:type owl:DatatypeProperty ;
rdfs:domain ns:Class .
Domain and Range DP Datatype property ns:datatypeProperty without domain and with range. ns:datatypeProperty rdf:type owl:DatatypeProperty ;
rdfs:range datatype .
Domain and Range DP Datatype property ns:datatypeProperty with domain and with range. ns:datatypeProperty rdf:type owl:DatatypeProperty ;
rdfs:domain ns:Class .
rdfs:range datatype .

2.4.2 Universal Restrictions

Diagram BLOCK Description OWL Element
Universal restriction block Option 1 for an universal restriction between a concept and a datatype. ns:Class is subclass of an anonymus concept which has a datatype property ns:datatypeProperty, and all the values must be of type datatype. ns:Class rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty ns:datatypeProperty ;
owl:allValuesFrom datatype ] .
Universal restriction block Option 2 for an universal restriction between a concept and a datatype.

2.4.3 Existential Restrictions

Diagram BLOCK Description OWL Element
Existential restriction block Option 1 for an existential restriction between a concept and a datatype. ns:Class is subclass of an anonymus concept which has a datatype property ns:datatypeProperty, and some values must be of type datatype. ns:Class rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty ns:datatypeProperty ;
owl:someValuesFrom datatype ] .
Existential restriction block Option 2 for an existential restriction between a concept and a datatype.

2.4.4 Cardinality Restrictions

Diagram BLOCK Description OWL Element
Cardinality restriction block Cardinality restriction of a concept on a datatype property. ns:Class 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. 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 Description OWL Element
Functional DP block Option 1 for a functional property. ns:datatypeProperty rdf:type owl:DatatypeProperty ,
owl:FunctionalProperty .
Functional DP block Option 2 for a functional property.

2.5 Relations between Properties

The following section applies to both type of properties: owl:ObjectProperty and owl:DatatypeProperty. For demonstration purposes we will only use object properties in the examples. It is also indicated if the OWL construct applies to object properties, datatype properties, or both.

2.5.1 Sub-Property

Diagram BLOCK Description OWL Element
Subproperty Option 1 for a sub-property relationship between two object properties. This construct applies to owl:ObjectProperty and owl:DatatypeProperty. ns:objectProperty1 rdfs:subPropertyOf ns:objectProperty2
Subproperty Option 2 for a sub-property relationship between two object properties. This construct applies to owl:ObjectProperty and owl:DatatypeProperty.

2.5.2 Equivalent Property

Diagram BLOCK Description OWL Element
Equivalent Property Option 1 for an equivalence relationship between two object properties. This construct applies to owl:ObjectProperty and owl:DatatypeProperty. ns:objectProperty1 owl:equivalentProperty ns:objectProperty2
Equivalent Property Option 2 for an equivalence relationship between two object properties. This construct applies to owl:ObjectProperty and owl:DatatypeProperty.

2.5.3 Inverse Property

Diagram BLOCK Description OWL Element
Inverse Option 1 for an inverse relationship between two object properties. ns:objectProperty1 owl:inverseOf ns:objectProperty2
Inverse Option 2 for an inverse relationship between two object properties.

2.6 Individuals

2.6.1 Class Membership

Diagram BLOCK Description OWL Element
Individual Option 1 for Individual type definition. ns:Individual rdf:type ns:Class .
Individual Option 2 for Individual type definition.
Individual Option 3 for Individual type definition.

2.6.2 Property Values

Diagram BLOCK Description OWL Element
Individual Association between individuals in RDF graphs. ns:Individual1 ns:objectProperty ns:Individual2 .
Individual Association between individuals and datatype values in RDF graphs. ns:Individual ns:datatypeProperty "value"^^datatype .

3. Example

The following examples were constructed using the diagrams.net graphic environment, and the guidelines detailed in this specification. Aditionally, the OWL code for each case was generated using the Code Generation Service.

3.1 SAREF for Building Ontology

The following figure depicts the SAREF4Building Ontology.

SAREF4Building Example

3.2 BIMERR Building Ontology

The following figure depicts the BIMERR Building Ontology.

BIMERR Building Example

4. CHOWLK Code Generation Service

The above specification comes together with the Code Generation Service that automatically transform your conceptualization into OWL code, that later can be read by any other ontology editor like Protegé. So the use of our specification is two fold, on the one hand it provides you with the resources to construct fine grained conceptualizations of your ontologies and also a way to automatically generate the OWL code of your model.

IMPORTANT NOTE
In order to being able to use the service the following aspects of the model must be ensured:

5 Adoption

Our visual notation is being used to develop ontologies in the following projects and is part of the suite of tools of the Linked Open Terms methodology.

5.1 BIMERR

BIMERR is a EU funded project which aims to provide a suite of interoperable tools to support AEC stakeholders throughout the energy efficiency renovation process of existing buildings.

5.2 SAREF

The Smart Applications REFerence (SAREF) ontology is a shared model of consensus that facilitates the matching of existing assets in the smart applications domain. The following modules / extensions of the SAREF ontology were constructed using our notation: SAREF Core, SAREF4Building, SAREF4Envi, SAREF4City, SAREF4Agri, SAREF4Wear, SAREF4Water

5.3 DELTA

DELTA is an EU funded project under Horizon 2020. It proposes a demand-response management platform that introduces scalability and adaptiveness into the Aggregator’s DR toolkits.

5.4 VICINITY

VICINITY is an EU funded project under Horizon 2020. It proposes a platform and ecosystem that provides “interoperability as a service” for infrastructures in the Internet of Things.

5.5 EASYTV

EasyTV is a H2020 European project which main goal is to provide equal access to television and audio-visual services to that all users, especially persons with disabilities and users with special needs.

6. References

The Chowlk specification is an evolution of the diagraming guidelines provided at “Garijo, Daniel, and María Poveda-Villalón. “Best Practices for Implementing FAIR Vocabularies and Ontologies on the Web.” arXiv preprint arXiv:2003.13084 (2020)” which are based on the UML_Ont profile define in the NeOn project.

7. Acknowledgment