Semantic Engine


We developed and implemented dedicated software components for Semantic Engine System as SEED, that is in charge to manage the semantic metadata, descriptions, queries, discoveries, retrieve, create and map descriptions and manipulate registries, federated queries and components interactions and interfaces. To make easier the interface and use of functionalities we present the external operations via APIs that are more agnostic and easy to use also for non-semantic experts.

Figure 1 – High Level Backplane Blocks Diagram

Building Blocks

Figure 2 – High level Operations of the Semantic engine system

For the Semantic subsystems in charge of dealing with “Semantic Data Management” we can highlight parts like:

  • Semantic Data Storage: This component on receiving semantically annotated data push data into triple-store, for example, virtuoso. A Triple-store is database and responsible to store semantic data and process the SPARQL queries.
  • Semantic Mapping: This component does semantic mappings and transform data (JSON to RDF) received from API endpoints.
  • Vocabulary Management: This environment keeps and manages all of the vocabularies, defined as i3-Market Semantic model, used in different operations of the semantic engine.
  • Offering Registration: This component is basically REST APIs exposed as endpoints. Semantic engine exposes different endpoints for offering registration. Examples are:
    • register data provider,
    • register data offering of a data provider,
    • update data offerings,
    • deleting a data offering
    • query existing offerings, etc.
  • Offering Discovery: This component is basically REST APIs exposed as endpoints. Semantic engine exposes different endpoints for offering discoveries and retrieve. Examples are:
    • Retrieve list of Data Offerings,
    • discover data offerings by Providers,
    • discover data offerings by parameters,
    • search for particular metadata, etc.

The following picture shows a detailed landscape of the current set of microservices (cubes), API’s (little yellow rectangles), components (blue rectangles), and storages (white rectangles) on i3-MARKET.

Figure 3 – i3-MARKET services layout

How the above components interact with each other can be explained with the use of a scenario, for instance, registration of data provider. To complete this task, a data provider fills a template provided by offering registration component. The template as a JSON request is Semantically mapped by the Semantic Mapping component and is forwarded towards the Semantic Data Storage component where this annotated data is pushed into the triple-store. A JSON request is shown in the following example:

“description”: “nuig data provider”,
“name”: “iot-unit”,
“organization”: [
“address”: “IDA business park, Galway”,
“contactPoint”: “NUIG”,
“description”: “an institute of semantic web”,
“name”: “insight centre for data analytics”
“providerId”: “123a123”

After a Semantically annotation the above JSON request is transformed to RDF as Turtle format:

@prefix schema: <> .
@prefix dc: <> .

schema:sourceOrganization <> ;
schema:description “nuig data provider” ;
a <> ;
schema:name “iot-unit” .

schema:contactPoint “NUIG” ;
a schema:Organization ;
schema:address “IDA business park, Galway” ;
schema:name “insight centre for data analytics” ;
dc:description “an institute of semantic web” .

Technical Requirements

For the Semantic Storage the following high-level capabilities have been defined.

Semantic Meta Data Management

The Semantic engine (SEED) relies on a local and distributed triple-store. All the information for instance, data provider, data offerings, consumer, and querying offering are stored as semantic data.

Triple StorageThe Triple Storage is responsible to store semantic data and process the SPARQL queries. The triple storage should provide either the SPARQL endpoint or client connector so that other components can access to the data.
Spatial and Text Data StorageTo support spatial and full-text search queries, the semantic data manager should be able to index spatial and fulltext data.
Save Semantic DataAs a Subject, I want to save my semantic metadata so I can query and update it later Subject: Data Consumer, Data Provider.

Offering registration

The Semantic engine will expose APIs to register, query and update offering. A data provider can register offering, for instance, datasets and the price for data, etc.

Offering Registration
Offering Registration is a component that allows the user to manage their data offering. More specifically, it provides the following functionalities:
– Register the data offering
– Retrieve all the offerings
– Update/Delete offerings Subscribe to an offering

Offering Discovery

The Semantic engine will expose APIs to query the existing offerings in i3-Market backplane. A data consumer can query datasets, prices for any dataset, offering, etc.

Offering Discovery
Offering Discovery is a component that allows the Data Consumers to search the offering data available on the marketplace. The Data Consumer has to specify the characteristics of the data they are looking for. The Offering Discovery module will then process the data request and returns a list of available offering data that meet their requirements. More specifically, the Offering Discovery should provide the following functionalities:
– Register the consumer data request
– Retrieve all the data request of a consumer
– Process a data request
– Update/Delete a data request
– Subscribe to a data request.

Vocabulary Management

Vocabulary Management: Semantic Model ManagementVocabulary Management is a component that is used to manage the i3- market semantic data model. More specifically, the Vocabulary Management should provide the following functionalities:
– View, search the concepts of i3-Market
– Allow user to propose a new concept
– Allow the administrator to add a new concept
– Allow the administrator to update/delete an existing concept.

Go to the beginning of the page

Other resources of interest


We are a community of experienced developers who understand that it is all about changing the perception of data economy via marketplaces support.

i3-MARKET Architecture

Take a look at the main building blocks and their hierarchy.

Data Access API

The secure Data Access API enables data providers secure registration…

Data Storage

The Decentralised storage shall provide highest available security guarantees…

Identity and Access Management

The SSI & IAM subsystem is in charge of providing both “User-centric Authentication” and…

Smart Contracts, Wallets & Accounting

i3-M Wallet is a set of technologies that facilitate the management of their identity to…

Crypto Token and Monetization System

The Data Monetization subsystem is in charge of providing “Standard Payments”…

Specification Deployment

i3-MARKET architecture specification is based on the 4+1 architectural view model approach. One of…

Developers Quickstart SDK

Once a marketplace is part of i3-MARKET, it can issue credentials to its consumers, providers, and…