A SoLiD App to Participate in a Scalable Semantic Supply Chain Network on the Blockchain (Supplementary Material)
Accompanying a submission to Posters & Demos at ISWC 2020.
tl;dr
Here, you find our submission to ISWC 2020 Posters and Demos including a showcase video.
Abstract
We showcase our approach to verify off-chained information using Linked Data, Smart Contracts, and RDF graph hashes stored on a Distributed Ledger. In this demo, we present our implementation and an use-case from the supply chain domain.
The paper
Please find the submission here. A previous version of the demo has been presented at Semantics 2019, see here. A preprint of our research paper on our approach can be found here.
Use-Case
We extend the motivating example from our paper.
We present a walk-through of this three step example of a simple supply chain:
Item Creation:
A fisherman creates an item, i.e. some fish.
Item Handover:
The fish is handed over between supply chain partners, e.g. from the fisherman to a trucker to a local supermarket to the consumer.
Item Verification:
At the store, the consumer verifies information about the fish as a decision-making support for the purchase. Verification could also be performed during each handover.
For the understanding of the remainder, a brief insight into the architecture of the demo.
Architecture of the Demo
In our application showcase, we use the architecture depicted in Figure 1.
Each of the three businesses, i.e. the fisher, the trucker and the supermarket, has the same setup in terms of software:
A Linked Data server, e.g. a LDP implementation to maintain RDF about the profile of the business and its inbox and the LD-chain SoLiD App, which is a HTML5 page with some JavaScript code for RDF processing and Ethereum interaction. The modelling of the RDF and the SoLiD App are the core contributions of the paper.
The businesses can also provide a node to the Ethereum blockchain. Although to maintain a node is not required, the node would help sustain the chain, hence we depict it in Figure 1.
Figure 1: The architecture we use for our demo.
While a good is transferred through the supply chain network, data is moved through the architecture.
Both, the transfer of the good and the data follows the following protocol:
Protocol
The steps written in boldface in Figure 2 correspond to the steps in the example in the paper.
Figure 2: An UML sequence diagram about the protocol of the handover of goods and its documentation in Linked Data and on the distributed ledger from our research paper.
In this demo, we are particularly concerned with the data around the providing of goods, as described using the following ontology:
Ontology
The data modelling around the users' profiles is depicted in Figure 3.
Figure 3: The data modelling in this demo around the users' profile.
As an example, consider the fisher Ole, who has a URI, where he maintains a profile.
Such profile data can be found in our github repo.
He catches a fish and initialises its product history using data as it can also be found in our GitHub repository. He registers the data with the blockchain (we subsequently omit the interaction with the chain in the discussion of the data).
To the inbox registered with the profile of the trucker (see here for some example data), he sends an offer, where he describes the good and links to the product history (see here for data).
The trucker can then accept the offer (see here for data).
Role of the SoLiD App
The SoLiD App reads the description of a profile, follows the link to its inbox, reads its content, stores data about products, sends data to other people's inboxes, registers accepted offers, and verifies the thus transferred data using the blockchain.
The app follows many practices around SoLiD, like Linked Data Notifications, the description of the profile using the FOAF vocabulary.
As we are currently building on our own implementation of a Linked Data Platform container, we have not implemented authentication yet in our prototype.