The Smart Data Management Platform to feed https://budget.g0v.it application
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
apis
doc
sdaas
.gitignore
LICENSE
README.md
_config.yml
docker-compose.yml

README.md

copernicani

g0v data-budget

A Smart Data Management Platform to feed the http://budget.g0v.it/ web applications.

The plaform is built around a knowledge graph that contains information about the Italian Government budget and other similar reports, namely:

  • "disegno di legge di bilancio" (budget proposal)
  • "legge di bilancio" (budget)
  • "consuntivo di bilancio" (consolidated balance)

The platform extracts and links main financial facts from the official open data provided by the "Ministero dell'Economia e Finance" for 2014-2019 years .

The knowledge graph is compliant with RDF and Semantic Web Specification.

Applications can access the knowledge graph through a SPARQL interface.

An example of RESTfull APIs is also provided as part of the platform. The provided API queries the knowledge graph and expose the data as as required by http://budget.g0v.it/ application (source available at https://github.com/g0v-it/web-budget).

Reference implementations:

Development

The project contains the two "core" logical components:

  • sdaas (smart data as a service): the data management platform core providing a RDF store, a SPARQL endpoint, a data ingestion engine, a set of gateways to transform raw data in linked data and a build script that populates the RDF store. See files and docs in sdaas directory
  • a set of apis that query the SPARQL endpoint and produce json data with a schema suitable to be used with the BubbleGraph Component. See files and docs in apis directory

Beside these, two additional optional components may be needed to complete a real production system:

  • LODMAP server: a linked data web browser to deferencing URIS and navigate the Knowledge Graph;
  • a router that provides a single access point to all services with firewall, caching and ssl features.

This picture shows the components interactions:

architecture

To deploy the platform deploy a stack of some services is required:

stack

The platform is shipped with a Docker setup that makes it easy to get a containerized development environment up and running. If you do not already have Docker on your computer, it's the right time to install it.

To start core services using docker Compose type:

docker-compose build
docker-compose up -d

This starts locally the following services:

Name Description Port
sdaas a server that manages the datastore and the ingestion engine 29321
api a server that manages the web-budget api 29322

Try http://localhost:29321/sdaas to access blazegraph workbench Try http://localhost:29322/ to test api endpoint

The first time you start the containers, Docker downloads and builds images for you. It will take some time, but don't worry this is done only once. Starting servers will then be lightning fast.

To shudown the platform type:

docker-compose down

Support

For answers you may not find in here or in the Wiki, avoid posting issues. Feel free to ask for support on the Slack general room. Make sure to mention @enrico so he is notified

Credits

Thanks to all project contributors, to the Copernicani community and to the g0v asia community for ideas and support.

The URI dereferencing platform is derived from the LODView project

License

The MIT License (MIT). Please see License File for more information.