Success Story: PDS Pod Migrator – Migrating your Solid data

by PDS migrator team

The Challenge

In a decentralized world, users regain control of their data. Having control means the freedom of choice of where that data is stored, but what if that decision turns out to be less desirable at a later time? Having the means to move your data from one place to another is needed to achieve actual control of your data.

The Solution

In our research, we found that there is no agreement (yet) on how to do this. Most providers allow you to download your data, but that is a far cry from actually moving it to somewhere else and have everything continue to work as before. We have created a set of specifications on how data migration between Solid pods should work, as well as multiple proof-of-concept implementations. This allows Solid users to freely choose and move their data around, while everything keeps working seamlessly.

DAPSI support

The DAPSI programme has allowed us to free up time to focus on the development of the specifications. The business coaching provided helped us to rethink our role in the Solid ecosystem.

DAPSI journey – Achievements from first phase of the DAPSI programme

In the PDS Migrator project, we’ve created a Solid Migrator application that allows you to move content from one Solid Data Pod to another. In so doing it leaves behind forwarding instructions for data that links to the old location. It does so by using a newly developed RDF ontology, called link-metadata. We’ve implemented support for these forwarding instructions in our PHP Solid Server, which means that if your original Data Pod is on the PHP Solid Server, then a Solid application that requests the original URL, from which you’ve moved your data, will automatically be redirected to the new location, on the HTTP fetch level. This means that the Solid application needs no changes to support this, it will just work. We’re now working on the Solid Server implementation for Nextcloud, so that it will also support this out of the box.

Finally, we’ve made a demo Solid application, which allows you to edit any linked data file. It will also allow you to move entities from one file to another, leaving behind a forward to the new location. We’ve presented our work to the Solid community and gotten good feedback, including from sir Tim Berners-Lee. We’ll continue our work with them to hopefully make this ontology a part of the Solid specification.

DAPSI journey – Achievements from second phase of the DAPSI programme

In the DAPSI programme, we set out to create a way for Solid users to freely move their data from one storage provider to another. To do this, we did research on current solutions. We created an RDF ontology for data migration to describe the movement and redirection of data from one storage provider to another. This RDF is accompanied by a draft specification that exactly describes how storage providers should implement the ontology and what is needed to allow this data migration to happen.

The last achievement is proof that the solution we’ve thought up actually works, in a proof-of-concept implementation of the pod migrator, along with changes to the PHP Solid server and Solid-Nextcloud app to fully support the proposed RDF ontology and specifications.

Lessons learnt

What we’ve learned is that, as a running business, it is very hard to free up time for innovation projects like the one we did under DAPSI. Being a running business made it harder to participate in the plentiful workshops and sessions in the DAPSI programme – all the offered support was actually a bit overwhelming. Some sessions were very useful to us, while others were clearly aimed more at startups and less experienced businesses.

If we had to do it all over again, we would slot in more time specifically for the programme itself. Having to mix participation in the DAPSI programme with a running business is very hard to do.

 What’s next

Our next challenge will be to get our specification proposal to be accepted into the Solid specifications, as well as provide help and guidance to implement it in the different Solid storage solutions. This will be a huge improvement in interoperability for the whole Solid ecosystem.

More information

We can be found online on https://pdsinterop.org and https://github.com/pdsinterop