This is a final report of the work which was done as part of Diavgeia GSOC17 Project (https://github.com/eellak/gsoc17-diavgeia).
Diavgeia is the greek transparency portal, which all government institutions are obliged to use, in order to upload their decisions online. In this GSoC project, i promoted even more its transparency and enhanced the functionality of the Diavgeia, by:
- Creating a RDF Schema for the decisions of government institutions.
- Using Blockchain technology (Bitcoin) to ensure immutability of decisions over time.
- Providing a sample of RDF decisions expressed in Notation3(N3) complying to our rdf schema.
- Creating a UI that government institutions can use to compose their N3 decisions using a html form.
- Creating a tool for visualizing N3 decisions in a web browser.
- Storing decisions to Apache Jena rdf store (TDB) and using Fuseki Server to provide a UI to citizens to pose SPARQL queries.
- Reducing government documents size by a factor of 100.
To read more about the project, please pay a visit to the project website (https://eellak.github.io/gsoc17-diavgeia/) as well as to the extensive documentation provided in the repository (https://github.com/eellak/gsoc17-diavgeia/blob/master/README.md)
All of my work can be found at this repository (https://github.com/eellak/gsoc17-diavgeia), which was created from scratch and does not rely on any previous code. My commits can be found here (https://github.com/eellak/gsoc17-diavgeia/commits/master?author=themisb)
Deliverables are independent functionality submodules and can be found here:
- RDF Schema (https://github.com/eellak/gsoc17-diavgeia/blob/master/rdf/decisions.owl)
- Bitcoin decision commiter (https://github.com/eellak/gsoc17-diavgeia/tree/master/bitcoin)
- RDF samples (https://github.com/eellak/gsoc17-diavgeia/tree/master/rdf/samples)
- N3 decision composer (https://github.com/eellak/gsoc17-diavgeia/tree/master/n3-composer)
- Visualizer (https://github.com/eellak/gsoc17-diavgeia/tree/master/visualizer)
- Integration with Apache Jena and Fuseki Server (https://github.com/eellak/gsoc17-diavgeia/tree/master/sparql_endpoint)
- The calculation of the reduced size of decisions can be found here (https://github.com/eellak/gsoc17-diavgeia/tree/master/rdf#conclusions)
I kept weekly project progress report logs, which can be found here (https://github.com/eellak/gsoc17-diavgeia/blob/master/project_progress/progress.md)
As stated in the repository and project's website, the following can be done:
- Bitcoin-Website Validator: Create a tool which ensures that all proof of burn blockchain transactions of Diavgeia are consistent with the merkle trees uploaded on Diavgeia's website.
- Bitcoin-SPARQL Validator: Find an efficient way to prove that all decisions that have been commited to blockchain are also available from the SPARQL endpoint.
- Improve Visualizer: Visualizer does not visualize rdf properties for each different decision type.
- Study scalability of SPARQL endpoint: As it was stated, Diavgeia hosts millions of decisions. A benchmark of the scalability of the Apache Jena and Fuseki is crucial.
As stated in the repository, the following can be applied to production:
- Bitcoin Application.
- RDF Schema (with the exception of the two decision types that have not been included (Law and PaymentFinalisation))
- N3-Composer.
- Visualizer (but it needs further improvement to visualize the specific decision properties, as stated in Future Work).
- SPARQL Endpoint.