SOLID: SOcial LInked Data

Re-décentraliser le web

Maxence Guesdon — INRIA Saclay-Île-de-France

jeudi 12 mai 2016 — INRIA Rocquencourt - Journées Devexp

Plan

Re-décentraliser le web ?

Bien que doté d'une architecture permettant la décentralisation, le web est trop centralisé: quelques applications captent une grande partie du trafic...

... et donc des données des utilisateurs.

Plusieurs risques (déjà avérés): atteintes à la vie privée, manipulations via une présentation d'informations différentes selon le profil utilisateur, surveillance, contrôle, ...

Chaque application tend à enfermer ses utilisateurs en contrôlant l'accès à ses données.

Même s'il existe des API ou des possibilités d'export, peu de possibilités d'intégration et de migration, ou bien pour passer d'un fournisseur à un autre.

Rappels sur le Linked Data

SOLID se base sur Linked Data Platform (LDP) qui spéficie comment lire et écrire des données (ressources) via HTTP, notamment des données sémantiques (graphes RDF) mais pas seulement...

... via HTTP et ses différentes méthodes GET, POST, PUT, DELETE, ... (à la REST).

2 types de ressources:

Les conteneurs sont des graphes RDF qui indiquent des relations entre le conteneur et ses fils.

Les graphes RDF sont composés de triplets sujet-prédicat-objet. Exemple (syntaxe turtle):

@base <http://example.org/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

<#alice> a foaf:Person .
<#alice> foaf:name "Alice" .
<#alice> foaf:knows <#bob> .

<#bob>
    a foaf:Person ;
    foaf:name "Robert".

Ce qui donne le graphe

graphe

La réutilisation de vocabulaires (ontologies) dans les données manipulées dans les applications permet de partager plus facilement des données.

L'agrégation de données consiste à agréger des triplets = fusionner des graphes.

Le langage Sparql permet de faire des requêtes dans ces graphes (comme SQL pour les bases de données relationnelles).

Qu'est-ce que SOLID ?

SOLID propose une nouvelle architecture pour les applications web, décorrélant les applications de l'endroit où sont stockées les données.

Exemple sur une application de micro-blogging:

Le même type d'application dans l'architecture SOLID:

Avantages:

Authentification utilisant WebId avec clés et le TLS Handshake Protocol.

Solid spécifie des standards à utiliser dans les applications web SOLID:

SOLID définit des vocabulaires pour manipuler et représenter les données communes aux applications, notamment:

Enfin SOLID fournit des bibliothèques javascript pour faciliter le développement d'applications SOLID.

Plusieurs implémentations de serveurs existent.

SOLID est en cours de spécification mais des applications existent déjà, par exemple Dokieli (publication d'articles scientifiques).

Merci

Questions ?

Credits

Slideshow scripts from Dave Raggett