Think decentralised: a future for Web data exchange with Solid

Miel Vander Sande, Ghent Universityimec

UGent Wikidata and Wikibase Workshop 2019, July 3, 2019

Think decentralised!

a future for Web data exchange with Solid

Miel Vander Sande

Ghent Universityimec

[assorted-color plastic toy lot]
Photo by Rick Mason on Unsplash

Maybe I should have kept the bricks where they were?

After the LOD: how to organize our network of institutions?

Photo by Ryan Quintal on Unsplash

GLAMs start decentralised.
Why do we centralise via aggregation?

Visibility and discovery, quality, and infrastructure.

GLAM networks start decentralised.
Why do we centralise via aggregation?

Centralisation and decentralisation both have their merits.
In the end, what matters is scale and sustenance for your network.

Decentralised Web networks make individual nodes
the source of truth.

Aggregators become part of a larger network.

Aggregators serve as a crucial
but transparent layer in the network.

Decentralised Web networks are between nodes.
Aggregators become facilitator.

Think decentralised:
a future for Web data exchange with Solid

Solid is about choice.

The Solid ecosystem enables institutions to pick the apps they need, while
storing their data wherever they want.

Institutions control their data, and share it
with the apps and people they choose.

Photo by Nathan Dumlao on Unsplash

People choose where they store
every single piece of data they produce.

They can grant apps and people access
to very specific parts of their data.

Separating app and storage competition
drives innovation and increases mobility.

Solid is not a company or organisation.
Solid is not (just) software.

[the Solid logo]

The Solid server acts as a data pod
that stores and guards your data.

A typical data pod can contain
any data you create or need online.

Solid clients are browser or native apps
that read from or write to your data pod.

Any app you can envision,
you can build with Solid.

Netwerk Digitaal Erfgoed facilitates portals (apps)
to reach the right collections (data pods).

Archiving DBpedia as a solid app.
Two institutions share the DBPedia TPF API.

The Solid server and several apps exist
and are usable for developers.

Think decentralised:
a future for Web data exchange with Solid

Linked Data in RDF is the cornerstone
of interoperability in Solid.

With JSON-LD, every piece of data
can link to any other piece of data.

{
		  "@context":  "https://www.w3.org/ns/activitystreams",
		  "id":        "#miel-likes-wikidata",
		  "type":      "Like",
		  "actor":     "https://example.org/people/miel#me",
		  "object":    "https://www.wikidata.org#this",
		  "published": "2019-07-03T14:30:00Z"
		}

Data shapes and their semantics
enable layered compatibility.

{
		  "@context":  "https://www.w3.org/ns/activitystreams",
		  "id":        "#miel-likes-wikidata",
		  "type":      "Like",
		  "actor":     "https://example.org/people/miel#me",
		  "object":    "https://www.wikidata.org#this",
		  "published": "2019-07-03T14:30:00Z"
		}

Different source data
can be concatenated.

{
		  "@context":  "https://www.w3.org/ns/activitystreams",
		  "@graph": [{
			"type":      "Like",
			"actor":     "https://example.org/people/miel#me",
			"object":    "https://www.wikidata.org#this",
			"published": "2019-07-03T14:30:00Z"
		  },{
			"type":      "Like",
			"actor":     "https://example.org/people/marie#me",
			"object":    "https://www.wikidata.org#this",
			"published": "2019-07-03T14:35:00Z"
		  }]
		}

How can we help developers
to attract users?

LDflex is a domain-specific language
for traversing Linked Data graphs.

const person = node('https://me.example.org/#me')
person.label
			person.friends.firstName
const label = await person.label
for await (const name of person.friends.firstName)
			  console.log(name)

LDflex uses SPARQL under the hood
and invokes the Comunica query engine.

const person = node('https://me.example.org/#me')
			const query = await person.friends.firstName.sparql
SELECT ?firstName WHERE {
			  <https://me.example.org/#me> foaf:knows ?v0.
			  ?v0 foaf:givenName ?firstName.
			}

Comunica is a modular JavaScript framework for querying Linked Data. on the Web.

Check out http://comunica.linkeddatafragments.org and http://query.linkeddatafragments.org

When clients do not bind to HTTP requests,
APIs can evolve independently of app logic.

[Screenshot comunica]

Moose: Move-to-Solid Easily with RML.io

Check out http://rml.io

Think decentralised:
a future for Web data exchange with Solid

Decentralization needs service hubs
for realistic adoption and performance.

One Wikidata can facilitate smaller Wikidatas.
Solid makes an excellent glue.

Solid is about choice in alternatives.

Rethink how you organise your network.
Rethink app and service hub development.

Build with our facilitating technologies (they're free!).

Join the Solid community at https://solid.mit.edu.

Photo by Kelly Sikkema on Unsplash

Think decentralised!

a future for Web data exchange with Solid

Miel Vander Sande

Ghent Universityimec