Authors: Abhyas Mall, Shoibam Amritraj, Nitish Hans, J Rakesh
Certificate: View Certificate
In addition to traditional web technologies, semantic web technology allows the implementation of the \"web of things\" and \"web of linked data,\" enabling both machines and humans to access the web. The ultimate objective is to allow machines to do increasingly complex tasks and to design systems that can support network interactions. This goal may be realized by merging several linked data technologies, such as RDF, SPARQL, OWL, and SKOS (W3C Org, 2014). In this project, the authors integrated semantic web technologies into the software to illustrate their use. This study describes in detail the design and functionality of the apps, as well as how the semantic web technology principles were implemented. The authors followed the principles and best practices outlined in W3C documents and directed by the first author. The authors exerted a great deal of work to evaluate the acquired data and have begun the project by locating suitable datasets from various data sources (heterogeneous data sources). Following this, more attempts were made to cleanse and verify the data. This generated dataset was subsequently pushed to the selected triple store on application start-up. The ontology design and project architecture are described in full in this study. The project\'s stack and implementation has been discussed in this report.
The application is able to provide information to travelers that are interested in travelling around France. Travelers may search various cities depending on their interests, and the program will show available railway stations, bike stations, and hospitals along with other relevant information. The data on the railway station is rather thorough, and it includes information such as the schedule of a specific station, as well as the position and direction of the station. Through the use of the SNCF API gateway, the data on the timetables are obtained in real time. In addition, the data collected from bike stations display, in real time, the number of bikes that are accessible at each bike station as well as the precise position of each station. The users will now be aware of which bike station they need to go to in order to either pick up a bike or put one off in order to continue their journey. Because it is required to know which vacant slot (rack) there is at the station in order to leave a bike there, the station is called a rack. The hospital data is shown depending on the city that was searched for, along with some helpful information such as the specialty division of a hospital, its location on a map, contact details, and the hospital that corresponds to the head hospital. On the map, you can see all of this information along with the icons that correspond to it. The location of the user will initially be shown on the map, which will do so depending on the location service of the client device. In the event that the client device does not have a location service installed, the information provided by the nearby service providers will be used to make an educated guess as to the user's position. In addition, the travelers will be provided with access to real-time weather information, which will be of use to them when it comes time to organize their journey.
II. LITERATURE OVERVIEW
Information for tourists may often be found on the official websites that are maintained by tourism organizations. Tourists, on the other hand, are often confronted with challenging challenges in terms of locating the information that they need as a result of the sheer amount and variety of material. It is required to build a system that will guarantee that the data is kept in a form that is comprehensible to machines in order to decrease the disintegration of data. This is a need in order to prevent the loss of data. If you do this, you will guarantee the integration of tourist resources, which will lead to the modification of portal content to end users in order to make it easier for you to discover information. Utilizing the technologies of the Semantic Web is required in order to ensure that the data is saved in a format that can be read and understood by machines. Because they are at the center of the Semantic Web, ontologies have the potential to enhance the quality of information searches in a way that is more responsive to the needs of end users.
Following is an analysis of several studies that discuss the role that semantic technologies play in enhancing the quality of e- business in the field of tourism. The primary focus of the author in  is to generate the ontology for the state of Tamil Nadu in India, which will include sufficient knowledge of tourism. This is done so that users can find the desired destination by specifying various search criteria such as housing, costs, activities, shopping, and so on. A user profile is made with the intention of gleaning information about the person, as well as their requirements and pursuits. The JENA interface is used to save the data that is put into the form in the database. This data is then used to build up searches over the DL ontology in order to acquire the results that are wanted. The Travel Guides online platform is detailed in the article , which tries to unify all of the arrangements from numerous travel agents into one centralized location. The PROTON ontology was used in order to meet the requirements of this system. This ontology is not specific to any one area and has over 300 classes and 100 characteristics. It is quite straightforward to extend, as it incorporates concepts that stand in for real-world terminology like locations, organizations, and people, amongst others. Given site demonstrates how the Semantic Web may affect the growth of interoperability in electronic tourism, how to give superior user interaction and systems, and how to make intelligent reasoning available in tourist. Java is the programming language that is used to build the system. A web framework, such as Struts or Hibernate, and the JENA are used for interface with the database. A semantic search for hotels all across the globe is provided by the Reisewissen project, which was established in . This method improves the overall quality of tourism services while also optimizing the search process. The material was organized by the authors into two primary ontologies. The meaning of a diverse selection of hotels is semantically represented by using one as the foundation. This ontology comprises not just ideas for expressing general and contact information, but also information about the costs associated with staying at the hotel. Other ontologies include descriptions of people and the topics that interest them. In addition, the authors constructed three sub ontologies in order to define the qualities of the hotel, the geographic information around the hotel, and the various modes of transportation that may be used to go to the hotel. Java was employed in the development of the site, and JENA is being put to use in the deployment of semantic technology. The majority of travel agents have a significant obstacle when it comes to providing the necessary information. A mobile application known as STAAR was built and described in the publication . The use of ontologies as a means of knowledge representation and the provision of travel-related information are at the heart of this system, which was developed with the intention of establishing connections with linked data repositories. On the basis of an ontology, the system that is described in  automatically generates a package that makes use of the data that has been previously annotated. The terms "annotation" and "metadata" are often contrasted with one another. This offers a service that, depending on the user's preferences, selects the appropriate mode of transportation. The author is of the opinion that the criteria for tourism are not well defined, and that the ontology has the potential to make up for this shortcoming. The answer that the Semantic Web offers in order to ensure interoperability is not yet fully defined, but the semantically based information systems are unquestionably ushering in a new age in the tourist industry. Within this process, ontologies play a very significant role. They may increase the quality of representation and search data, as well as establish the ideas of tourism and their interrelationships. Through the use of and collaboration on a shared lexicon, interoperability will be made possible thanks to the ontology.
III. ONTOLOGY ARCHITECTURE
The knowledge network of the project is explained in the ontology diagram that can be seen below in the Figure 1. The city, the bike stations, the train stations, the hospitals, and the weather were the five primary entities. In addition to this, the project has a schedule object for railway stations that is labelled as a blank-node since it was originally intended to be a blank-node in the RDF graph (Blank nodes does not contain any IRI). Within the context of the diagram, these entities are shown as having an oval form. The city was the primary connection between all of the entities. This demonstrates that the connected data is created with cities as the primary focus most of the time. The edges represent the attributes that are associated with each item. In the RDF network, the rectangular representations are nothing more than literals. Each edge illustrates the connection that exists between entities and characteristics, in addition to the relationships that exist with other entitles. In the RDF graph, they are referred to as predicates.
A. Front-End Technologies
B. Web Server Technologies
C. Triple Store
Graph-DB: Ontotex Graph DB is a triple store graph database that also supports RDF and SPARQL. It is the most efficient graph database available. It comes equipped with an integrated SPARQL endpoint, which makes it possible for users to query RDF data by using SPARQL. GraphDB gives users the ability to store RDF data in a variety of formats, including turtle, N-Triples, and N-Quads, among others (GraphDB organisation, year 2020).
Protege is an ontology editing tool that is free and open source, and it enables users to develop OWL ontologies. Using Protege, the authors were able to construct ontology-based applications that are both straightforward and comprehensive. It offers a more intuitive graphical user interface, which makes the process of creating and editing ontologies much easier. With the help of this programme, the authors were able to construct their very own ontology network using Web Ontology Language (OWL). (The Protégé squad in the year 2020)
Managing the application's source code has been done via the usage of GitHub, which is a mechanism for controlling versions. GitHub maintains a record of all the alterations that have been made to files as well as the history of the various versions of the code files. The developers are able to work together, submit their ideas, and seamlessly incorporate their contributions into a centralised repository of the project (BROWN, 2019).
There are three different repositories that have been developed for this project.
a. Server-Application: Server application is a Java application that is responsible for storing data in triple store and retrieving it as well as handling client requests and replies that have been sent from the user interface (Front-ap). This application has two primary responsibilities to fulfil. The first goal is to extract RDF data from the triple store based on the search criteria and return it to the front app. The second duty is to prepare RDF data and save it in the triple store. In the area of this study devoted to the implementation, the functions were examined in further detail.
???????F. HTTP, WS (Web Socket)
HTTP, WS (WebSocket) Communication between the "front-app" and the "server application" is carried out using the standard protocol known as HTTP. In extended use cases, in addition to HTTP, the WebSocket API is also used. Instead of having a stateless communication channel, this WS protocol enables to open up and provide interactive communication channels in both directions (HTTP are stateless communication). With the help of this particular communication protocol, it is possible to transmit an asynchronous answer from the server to the client at any moment. (MDN contributors, 2020)
V. SEQUENCE DIAGRAMS
???????A. Methodology to Search City
The graphic that follows illustrates the flow of functional calls and the execution of the city search procedure. When a user enters a city's name into the search bar of the front-end application and then hits the search button, this flow of the procedure is initiated. A query parameter containing the city name will be sent to the server application in the case of an asynchronous request (Asynchronous requests are shown in open arrowhead- ). After receiving the request along with the city's name, the web server will continue to query GRAPHDB using the SPARQL API (). After that, the results will be sent back to the server application from the GraphDB. The RDF graph will be processed further by the server application, which will then construct a suitable object list, and the result will be sent to the front app, where it will be shown in the graphical interface.
The search function of an entity representing a railway station may be seen in the sequence diagram that was just shown. This exact same series of functional steps will be used to the search for additional entities, such as hospitals and bike stations.
B. ??????????????Methodology to Inquire Railway Station Timetable
The Timetable API service's sequence diagram is shown in the figure that may be seen below. The "showTimeTable" method will be invoked  when the user clicks on a specific railway station on the table. This method will send an asynchronous get request to the SNCF API gateway, providing that portal with the branch code of the station that was chosen . This single station's schedule will be returned by the SNCF service (not the schedule for all stations) . The user will be presented with the result that was obtained. After then, the findings will be sent to the programme running on the server. This information is going to be saved in the GraphDB as an RDF Blank-node . If everything works out as planned, the server application will provide the front application with a response with the status code 200 .
???????C. Methodology to Query Bike Stations real Time Data
The API service sequence diagram for the Rennes bike station is shown in the graphic that may be seen below. The "getAvailability" method will be activated as soon as the user searches for the city of "Rennes" . Using this method will cause an asynchronous GET request to be sent to the Bike station API gateway . The application programming interface for bike stations will provide data on those stations in real time, including the number of bikes available for hire at each of the several bike stations located across the city of Rennes . The received results are going to be forwarded to the application running on the server . This information is going to be saved to the GraphDB in the form of an RDF Blank-node .
If everything works out as planned, the server application will provide the front application with a response with the status code 200 . Then, the front app will once again send an asynchronous GET request to the server application . The "Rennes" city's real-time data will be retrieved from GraphDB by the "Rennes" server application, which will then provide the results. The request will be handled by the programme running on the server, which will then construct the relevant list of items. Then, the front app will get this list after it has been processed . The result will be shown in table  by the front end app.
???????D. Methodology to query Weather Data
The sequence diagram of the Weather API service is shown in the graphic that may be seen below. The "getWeather" method will be activated  whenever the user searches for a certain city. The city coordinates and the city name will be sent in an async get request to the Weather API gateway by this function . The Weather API will provide the current weather conditions as well as an accurate prediction for that specific city . The user will be presented with the result that was obtained. After then, the findings will be sent to the programme running on the server. This information is going to be saved in the GraphDB as an RDF Blank-node . If everything works out as planned, the server application will provide the front application with a response with the status code 200 .
???????E. Methodology to Create a new city RDF Data
Using the graphical user interface, the user would be able to generate fresh data for the city. The user will be asked to enter various data depending on the text fields that are provided, such as the name of the city, the city's IRI, the city's coordinates, and so on. This information will be sent to the programme running on the server . The RDF graph will then be created by the server application based on the data that was provided, and it will be stored in the GraphDB . If everything works out as planned, the server application will reply with a status code of 200, and the user will be presented with a message congratulating them on their achievement.
Copyright © 2022 Abhyas Mall, Shoibam Amritraj, Nitish Hans, J Rakesh. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.