This project was developed by Samuel Mens and Ali Arbaaz for the Knowledge Graph Engineering course of the master’s degree in Computer Science at the University of Trento.
Reusability is one of the main principles in the Knowledge Graph Engineering (KGE) process defined by iTelos.
Through the employment of new techniques and equipment, companies are producing an unprecedented volume of data. Thanks to such resources it is possible to resolve complicated issues leveraging knowledge acquisition, by gaining access and reusing this data, appropriately adjusted for secondary needs.
However, the available data is frequently not easily accessible, and even when it is, it cannot be used outside of the purpose for which it was produced.
Indeed, among the resources, we can identify three categories, which are strictly connected to the relevance for the purpose itself: Core, Common, and Contextual resources.
iTelos is a general-purpose methodology that aims at providing a possible solution to the resource re-usability problem by developing independently the data level and the schema level of the resources. To fulfill its objective, iTelos uses ontologies, to set a standard schema for the whole application, and Knowledge Graphs, a graph-structured data model to integrate data.
To support our work in re-usability, we have relied on the FAIR guiding principles. FAIR aim to make data Findable, metadata, and data should be easy to find for both humans and computers; Accessible, once the data is found the user has to know how to access it; Interoperable, the data needs to interoperate with applications or workflows for analysis, storage, and processing; and finally Reusable, optimize the data re-use thought well-described metadata and data to be replicated and/or combined in different settings.
The goal of this work is to provide a service that will make it easier to travel between educational facilities.
The initial, and thus informal, purpose which has been later formalized, is shown below:
“I want to design a Knowledge Graph that maps the public and private transportation networks connecting educational facilities in Trentino, such as universities, faculties, departments, and libraries. The graph will cover the entire Trentino Province, integrating data from various transportation providers (e.g., buses, trains) and educational institutions, enabling users like students and faculty to discover the best commuting routes. The Knowledge Graph will provide value by offering optimized travel routes based on real-time data, schedules, and locations, helping users minimize travel time and plan their commutes more efficiently. Potential applications include interactive web or mobile services that allow users to query for the fastest or most convenient routes, explore different transport options, and receive updates on delays or disruptions.”
This section comprehends the list of resources we have employed in order to build the final knowledge graph. The cleaned datasets can be found in the GitHub repository.
| Provider | Description | Format |
|---|---|---|
| Google Maps Places API | List of educational facilities and public transport stops near Trento (<= 50 km from the main train station) | JSON |
| Trentino Transporti | List of bus stops and lines throughout Trentino | JSON |
| OpenStreetMap (via Overpass API) | Transportation paths in Trento, covering roads, cycling paths, and walking routes within the city and surrounding areas | JSON |
The formalization of the project’s objective and the domain is the first and most crucial step in the data integration process and the inception phase. The clarity of the project objective is a key factor in determining how the data integration process turns out.
In order to formulate a purpose, one must first define the project’s domain of interest, personas, and scenarios involving those personas.
All the personas, scenarios, and competency questions are present within the project report and project repository. In the remaining part of this section, we show an example of persona, scenario, and competency question.
| Persona | Description | Goals | Challenges |
|---|---|---|---|
| University Student | A typical undergraduate or graduate student attending one of the universities in Trentino. | Find the fastest and most convenient routes between home, campus, libraries, and other university buildings. Access real-time transportation updates to adjust travel plans (e.g., delayed buses, alternative routes). | Navigating between multiple educational facilities and finding the most efficient routes with changing schedules. |
| Administrative Staff | University staff responsible for administrative tasks, such as organizing events, meetings, or student activities. | Plan transportation for events or daily commuting between different departments. Ensure students, staff, and guests can easily access different facilities using public transportation. | Planning travel for groups, ensuring smooth transit across different locations, often needing to consider the reliability of transport services. |
| Scenario | Goal | Interaction with the KG |
|---|---|---|
| Sophia is an undergraduate student at the University of Trento. She lives in a dormitory on the outskirts of the city and has a lecture at 9:00 AM at the Faculty of Engineering. It’s currently 8:15 AM, and she needs to find the fastest way to reach the faculty building. Using the Knowledge Graph application, she inputs her current location and destination. | Find the fastest bus or train route that will get her to the Faculty of Engineering by 9:00 AM. | Sophia uses the KG-based app to query real-time transportation schedules, which presents her with a few options: a bus arriving in 5 minutes or a combination of train and bus that may be faster but involves a transfer. The system suggests the bus as the best option based on the shortest estimated travel time. |
| Anna works in the university’s administrative department and is responsible for organizing a university-wide event spread across several faculties and departments. She needs to provide transportation guidance for both staff and attendees, including suggesting the best routes between locations. | Plan the best travel routes for event attendees between different buildings and ensure transportation options are clearly communicated. | Anna uses the KG application to map out the transportation network between event locations and creates a detailed travel plan that she distributes to attendees. The system allows her to input the different event venues and suggests various bus and walking routes, including estimated travel times and alternative transport options. |
| Competency Question |
|---|
| What is the fastest route from a building to a university facility at a given time? |
| How can I find alternative routes if the usual public transport is disrupted? |
| Which transport routes should be recommended for staff with mobility challenges? |
Finally, in this phase, we have collected the first informal resources needed in order to build the final knowledge graph. All the resources can be found within the project repository.

The third iTelos phase is Formal Modeling. In this phase, we are asked to build the ETG model and to syntactically align the datasets for knowledge and data level using the ER model, the selected datasets, and reference ontologies.
The goal of ontology selection is to identify relevant ontologies for reference, which represent use-case scenarios that may be reused to model the ER. To be more explicit, the initial stage in the ETG generation activity is to reuse ontology from well-known knowledge resources that are semantically equivalent to concepts that are present in the ER model defined in the previous phase. The most important element is to determine which concepts such as objects, functions, and actions from existing ontologies may be connected and aligned to the ER model. We have opted for TODO

In the final phase of our knowledge graph construction, the Entity Definition phase, we resolve data value heterogeneity and formally integrate the data layer with the knowledge structure. This ensures entities are correctly matched, uniquely identified, and mapped within the graph.
Our entity matching process handles differing representations of the same entity across datasets, such as transportation stops with varying names or identifiers. We use metadata, provenance, and key attribute sets to decide when entities should be merged or treated separately.
For entity identification, we assign unique identifiers to each entity. Some, like stops and connections, have predefined IDs (stopId, routeId), while others require identifying attribute sets. For instance, connections between stops are assigned a generated connectionId to ensure uniqueness.
Finally, entity mapping integrates the data with our teleontology, transforming it into an RDF-based knowledge graph using tools like Karma. This step assigns URIs to each entity, aligning the data with standard ontologies for consistency and interoperability.
The objective of this project is to integrate data and knowledge related to Trentino educational facilities into a knowledge graph so that users can use it to get the answers to their queries. In compliance with the final objective, we used SPARQL via GraphDB to see whether our model can be applied to real-world scenarios.
Here we provide a few examples regarding the SPARQL queries used to answer some of the competency questions:
PREFIX etype: <http://knowdive.disi.unitn.it/etype#>
SELECT ?name ?lat ?long ?distance ?accessibility WHERE {
BIND(45 AS ?targetLat)
BIND(11 AS ?targetLon)
?stop a etype:TranspStop ;
etype:name_GID-2 ?name ;
etype:has_location_GID-85982 ?location ;
etype:accessibility_GID-25718 ?accessibility .
?location etype:latitude_KGE24-5-1 ?lat ;
etype:longitude_KGE24-5-2 ?long .
# Distance squared for better performance
BIND((?lat - ?targetLat) * (?lat - ?targetLat) +
(?long - ?targetLon) * (?long - ?targetLon)
AS ?distance)
FILTER(?accessibility > 0)
}
ORDER BY ?distance
List the location of all educational facilities containing “scula” in their name.
PREFIX etype: <http://knowdive.disi.unitn.it/etype#>
SELECT ?facilityName ?address ?lat ?long
WHERE {
BIND("scuola" as ?search)
?facility a etype:EducationFacility_GID-110429 ;
etype:name_GID-2 ?facilityName ;
etype:has_building_GID-15330 ?building .
?building etype:address_GID-45005 ?address ;
etype:has_location_GID-85982 ?location .
?location etype:latitude_KGE24-5-1 ?lat ;
etype:longitude_KGE24-5-2 ?long .
FILTER regex(?facilityName, ?search, "i")
}
From Trento Autostazione to Povo Polo Scientifico Ovest, leaving at 9AM.
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX etype: <http://knowdive.disi.unitn.it/etype#>
SELECT ?routeName ?routeType ?duration ?startTravel
WHERE {
BIND("09:00:00"^^xsd:dateTime as ?leaveAfter)
?trip a etype:Trip ;
etype:starts_from ?tripStart ;
etype:ends_at ?tripEnd ;
etype:start_GID-73577 ?tripStartTime ;
etype:follow ?route .
?route a etype:Route_GID-22169 ;
etype:type ?routeType ;
etype:name_GID-2 ?routeName .
?fromStop a etype:TranspStop ;
etype:name_GID-2 "Povo Polo Scientifico Ovest" .
?toStop a etype:TranspStop ;
etype:name_GID-2 "Trento. Autostazione" .
?travelStart a etype:StopsAndConnections ;
etype:has_stop_GID-5348 ?fromStop .
?tripStart etype:next_stop* ?beforeTravel .
?beforeTravel etype:next_stop* ?travelStart .
?travelStart etype:next_stop* ?duringTravel .
?duringTravel etype:next_stop* ?travelEnd .
?travelEnd etype:stop ?toStop .
# Do not consider parts of the route traveling through trip end
FILTER(?beforeTravel != ?tripEnd)
FILTER(?duringTravel != ?tripEnd || ?travelEnd = ?tripEnd)
# Only consider routes where fromStop departure is after ?leaveAfter
?beforeTravel etype:to_next_stop ?tripStartOffset
BIND(?tripStartTime + SUM(?tripStartOffset) as ?startTravel)
FILTER(?startTravel >= ?leaveAfter)
?duringTravel etype:to_next_stop ?travelTime
BIND(SUM(?travelTime) as ?duration)
}
ORDER BY ?duration
LIMIT 1
In this section, we present the list of resources that can be consulted in order to know more about the project.
Here you can find the contact information in order to get in touch with us:
| Name | Surname | |
|---|---|---|
| Samuel | Mens | samuelonyx.mens@studenti.unitn.it |
| Ali | Arbaaz | ali.arbaaz@studenti.unitn.it |
All the materials, concerning the Personas, Competency Questions, Ontologies, Teleology, Teleontology, KG, and SPARQL queries are listed below:
Link: Google Drive Folder
Link: Google Docs
Link: Google Slides