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.
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.
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”,
“address”: “IDA business park, Galway”,
“description”: “an institute of semantic web”,
“name”: “insight centre for data analytics”
After a Semantically annotation the above JSON request is transformed to RDF as Turtle format:
|@prefix schema: <http://schema.org/> . |
@prefix dc: <http://purl.org/dc/terms/> .
schema:sourceOrganization <http://i3-market.org/resource/organization/c6b2102a-f051-43cd-acd6-dc77784326b5> ;
schema:description “nuig data provider” ;
a <http://i3-market.org/core#Provider> ;
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” .
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 Storage||The 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 Storage||To support spatial and full-text search queries, the semantic data manager should be able to index spatial and fulltext data.|
|Save Semantic Data||As a Subject, I want to save my semantic metadata so I can query and update it later Subject: Data Consumer, Data Provider.|
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
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: Semantic Model Management||Vocabulary 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.
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.
Take a look at the main building blocks and their hierarchy.
The secure Data Access API enables data providers secure registration…
The Decentralised storage shall provide highest available security guarantees…
The SSI & IAM subsystem is in charge of providing both “User-centric Authentication” and…
The Data Monetization subsystem is in charge of providing “Standard Payments”…
i3-MARKET architecture specification is based on the 4+1 architectural view model approach. One of…
Once a marketplace is part of i3-MARKET, it can issue credentials to its consumers, providers, and…