# SOLID (W3C) ## Pour le projet européen 4CH #### Cartographie des acteurs et des compétences (4CH) ![](https://hot-objects.liiib.re/pad-lescommuns-org/uploads/upload_87e5d9eae0cfcc64513f55626d1c8535.png) --- ### Cartographie des acteurs et des compétences # Dans cette présentation, nous ferons **un focus technique pour expliquer le standard SOLID**. :::success Nous conseillons au lecteur d'avoir lu préalablement les présentations suivantes : * [Carto 4CH (non technique)](https://pad.lescommuns.org/p/SlideCarto4CH) * [Carto 4CH (technique)](https://pad.lescommuns.org/p/SlideInteroperabiliteSemapps) ::: --- ### Rappel : Proposition (... toujours dans le cadre du projet de cartographie des compétences...) | Architecture | distribuée | | -------- | -------- | | Nous proposons [une architecture distribuée](https://www.figma.com/file/aPrHSKEigcKfcrVX1nXycy/4CH---Carto-distribu%C3%A9e-simplifi%C3%A9e) basée sur le standard du W3C : SOLID|![](https://hot-objects.liiib.re/pad-lescommuns-org/uploads/upload_d8fc6ac94744cb281a6f851ac699e585.png) --- ### SOLID Définition sur [Wikipedia](https://fr.wikipedia.org/wiki/Solid_(projet_de_web_d%C3%A9centralis%C3%A9)) **Solid** (Social Linked Data, en anglais) est un projet développant, de manière collaborative, **des solutions pour un web décentralisé**. Ces spécifications sont à l'état de "proposition" par le Community Working Group du **W3C**, avec à sa tête, **Tim Berners Lee** (principal inventeur du Web). --- ### SOLID, vu sous plusieurs angles * Un **projet** / une vision / un **standard** : https://solidproject.org/ * Un ensemble de **normes** et de **formats/vocabulaires** * Un **protocol** technique : https://solidproject.org/TR/protocol * Des **serveurs** implémentant ce standard * Des **tests** pour valider ces implémentations * Un ensemble d'**applications** * Une **communauté** ouverte, et de la documentation (forums, tutoriels) --- ### Inrupt, la startup de Tim Berners-Lee En 2018, Tim Berners-Lee créer une start-up pour concurencer les GAFAM. La mission de la société est de "fournir de l'énergie commerciale et un écosystème pour aider à protéger l'intégrité et la qualité du nouveau web bati sur Solid". En décembre 2021, Inrupt lève 30 millions de dollars de levée de fonds [en Serie A](https://www.lecoindesentrepreneurs.fr/levees-de-fonds-pre-seed-seed-serie-a-b-c/#lev%C3%A9e-de-fond-s%C3%A9rie-a) de la part de la part d'investisseurs --- ### Un ensemble de [spécifications](https://solidproject.org/TR/protocol) pour (1) ... * **structurer** les données (données liées) * **stocker** les données * **accéder** et **mettre à jour** les données CRUD (Create, Read, Update, Delete / HTTP GET, PUT, POST, PATCH, DELETE) --- ### Un ensemble de [spécifications](https://solidproject.org/TR/protocol) pour (2) ... * S'**authentifier** et gérer les **permissions** * Notion de **POD** (Personal Online Data store) * Mode **décentralisé/distribué** * Autres : **Activity Pub**... (abonnement, alertes...) --- ### La gestion des données personnelles L'idée est que chaque personne ou organisation conserve ses données dans des **PODs** (**P**ersonal **O**nline **D**ata store / Magasins de données personnelles), et décide avec qui il souhaite les partager. Ce principe créer un réseau de confiance. Pour mettre cela en musique, SOLID s'appuie sur la notion de **POD**s, basés sur le protocol **LDP** --- ![](https://hot-objects.liiib.re/pad-lescommuns-org/uploads/upload_17869e2782dd5f11b4b924e8ecf5b5fc.png) --- ### Le protocol LDP (**L**ink **D**ata **P**latform) Peut s'apparenter (gros résumé) à du FTP pour stocker des données sémantiques. * notion de **containers** (sorte de répertoire) * contenant des **données sémantiques** (ou pas) * accessible en **REST** (HTTP / GET, POST, PUT, PATCH, DELETE) --- ![](https://hot-objects.liiib.re/pad-lescommuns-org/uploads/upload_26fd2eb84025c4e6a978a31fccb57d24.png) --- ### Fonctionnement des PODs [Extrait de... ](http://solid.georgetown.domains/technical-component/) Ce sont des réperoires personnels qui stockent les données d'un utilisateur, tout en gérant l'accès, les permissions et l'authentification. L'utilisateur peut donner des droits sur certaines données à une personne de confiance. [Projet de POD Browser de inrupt](https://inrupt.com/products/podbrowser) --- ![](https://hot-objects.liiib.re/pad-lescommuns-org/uploads/upload_a1cf745609c889afa8e75d7c45fafe52.png) --- ### Tests d'intégrité des données Il existe deux niveaux de tests d'intégrité des données : * shape / footprint * types de conteneur : Basic, Direct et indirect --- ### Les implémentations de serveurs SOLID * ESS (Inrupt) : [Entreprise Solid Server](https://inrupt.com/products/enterprise-solid-server/) * CSS : [Community Solid Server](https://github.com/CommunitySolidServer/CommunitySolidServer/) * NSS : [Node Solid Server](https://github.com/nodeSolidServer/node-solid-server) * [Solid for Nextcloud](https://github.com/pdsinterop/solid-nextcloud) * [PHP Solid Server](https://github.com/pdsinterop/php-solid-server) * En France (s'approchant de SOLID) : [SemApps](semapps.org), [Startin'blox](https://startinblox.com/fr/) --- ### Les applications SOLID Il existe depuis un peu plus de 5 ans de nombreuses applications développées par la communauté SOLID, dans de nombreux domaines (social, jeux, santé, finance, gestion de projet, édition, géolocalisation) Voir : https://solidproject.org/apps --- ### Projets SOLID * [GraphMetrix](https://graphmetrix.com/) and [TrinPod](https://trinpod.us/) * [DataVillage](http://www.datavillage.me/) (european project) * [MELLON](https://knows.idlab.ugent.be/projects/mellon/) --- ### [SemApps](https://semapps.org/), plus qu'un serveur SOLID... L'[assemblée Virtuelle](https://virtual-assembly.org/) propose une implémentation de la philosophie SOLID dans son projet SemApps. :::success Une présentation de SemApps est disponible : [SemApps : La boite à outils sémantique](https://pad.lescommuns.org/SlideSemapps) ::: --- ### Merci de votre attention, des questions ? [Plus d'infos sur SemApps](https://semapps.org/) Yannick Duthé yannick.duthe@univ-tours.fr --- ### Annexes #### Autres présentations SOLID * Site SOLID : https://solidproject.org/ * Site de Inrupt : https://inrupt.com/ * Forum : https://forum.solidproject.org/ * Vidéos : https://vimeo.com/solidworld * Solid PODs : http://solid.georgetown.domains/ * [Solid utilisé avec le format FHIR pour obtenir du FAIR](https://www.w3.org/2019/Talks/1209-swat4ls-egp/) * [Introduction à SOLID de Ruben Verborgh (W3C)](https://rubenverborgh.github.io/Solid-Lecture-2018/) * [Présentation de SOLID par l'équipe de Startin'blox](https://docs.startinblox.com/import_documentation/first_step/Solid-introduction.html) * Blog : https://www.konsolidate.eu/stories
{"type":"slide","slideOptions":{"transition":"slide"},"title":"SOLID-fr","tags":"4CH, Carto4CH, SOLID, SemApps, MSH, Interropérabilité, Technique"}