badge icon

This article was automatically translated from the original Turkish version.

Article

OnTop is an open-source and freely usable software tool developed in the field of Ontology-Based Data Access (OBDA). It was created in 2010 by the research group “Knowledge Representation Meets Databases” at the Free University of Bozen-Bolzano. OnTop is recognized as one of the first systems to support all major W3C standards applicable to OBDA systems.


This tool is compatible with core Semantic Web components such as the R2RML mapping language, SPARQL queries, RDFS ontologies, and OWL 2 QL, making it widely applicable in both research and industrial projects. Additionally, OnTop can be integrated with numerous relational database systems, both free and commercial.


The operation of OnTop is based on the principle of mapping classes and properties defined in ontologies to tables in relational databases. Through these mappings, the data stored in the database is represented as a virtual RDF graph. Users can execute SPARQL queries on this RDF graph; however, the system automatically translates these SPARQL expressions into SQL queries in the background to perform operations on the underlying database.


This process eliminates the need for users to interact directly with SQL. Thus, while users query data through SPARQL at the ontology level, the system converts these queries into the database’s native language to provide ontology-based data access. This simplifies both data abstraction and semantic interpretation for the user.


Today, OnTop is a powerful OBDA solution actively used in various data integration projects, biomedical applications, smart city systems, and research-oriented information systems.


OnTop architecture (


As shown in the image, the OnTop architecture consists of four distinct layers, each designed to perform a specific function.

OnTop Architecture Layers

Input Layer

This layer contains the fundamental inputs that form the building blocks of the system. Ontology files provided by the user, the relational database, and mapping files that establish the connection between the two are all located in this layer. For example, tables in an SQL database are mapped to classes and relationships to acquire ontological meaning. This enables the system to access information at a conceptual level.

Core Layer (OnTop Core)

The core functionality of the system is realized in this layer. SPARQL queries written by users are translated into SQL expressions and executed on the corresponding relational database. Various optimization techniques are applied during this process to ensure faster and more efficient query execution. OnTop Core serves as the logical engine of the OBDA process.

API Layer

This layer is the interface through which the OnTop system interacts with the external world. Developers can access OnTop’s core functionalities and integrate them into their own applications via Java-based APIs. This flexibility allows OnTop to be easily integrated into diverse systems.

Application Layer

At the topmost layer of the architecture, user interfaces enable end users to perform data querying operations. This layer allows users to access the database and execute queries using SPARQL, eliminating the need to write complex SQL statements. As a result, users can access data at a conceptual level without requiring technical database expertise.


A SPARQL endpoint has been created using OnTop’s command-line interface. In this application, ontology files, the relational database, and mapping files have been integrated to set up the system. Consequently, data stored in the relational database becomes accessible through SPARQL queries in an ontology-based structure. This approach provides a more flexible and intelligent querying capability by enabling conceptual and centralized access to data.

Author Information

Avatar
AuthorAhmet Burak TanerDecember 8, 2025 at 1:59 PM

Tags

Discussions

No Discussion Added Yet

Start discussion for "OnTop Data" article

View Discussions

Contents

  • OnTop Architecture Layers

    • Input Layer

    • Core Layer (OnTop Core)

    • API Layer

    • Application Layer

Ask to Küre