2. Browsing the provenance graph

Before we start creating data ourselves, we are going to look at an AiiDA database already created by someone else. Let’s import one from the web:

$ verdi import https://www.dropbox.com/s/xz7h6m7dd91v3da/mof_database.aiida?dl=1

Contrary to most databases, AiiDA databases contain not only results of calculations but also their inputs and information on how a particular result was obtained. This information (provenance) is stored in the form of a directed acyclic graph (DAG).

In the following, we are going to introduce you to different ways of browsing this graph and ask you find out some information regarding the database you just imported.

2.1. The EXPLORE interface

The most intuitive way to browse AiiDA graphs is to use the interactive provenance explorer available on Materials Cloud.

For it to work, we first need to start the AiiDA REST API:

$ verdi restapi
 * Serving Flask app "aiida.restapi.run_api" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on (Press CTRL+C to quit)


  • Open a browser inside Quantum Mobile

  • Inside this browser, open the link to the provenance browser{:target=”_blank”}

  • In the form, paste the (local) URL of our REST API and click “GO!”

Note The provenance browser is also available on Materials Cloud but we are using a more recent development version.

Once the provenance explorer has been loaded by your browser, it is communicating directly with the REST API and your data never leaves your computer.

Start by clicking on the Details of a NetworkCalculation node (if you ever get lost, just go to the Details subpage, enter bba8402d-6559-4fd8-ad32-84625a6221f0 and click on the GO button).

2.1.1. Exercise

Use the graph explorer in order to figure out:

  • What code was used and what was the name of the executable?

  • When was the calculation run and who run it?

  • How much memory was requested for the calculation?

  • What inputs did the calculation take?

  • What other types of calculation was the Cif input structure used in?