The CERN-Solid Proof of Concept (PoC) === [Maria Dimou (CERN)](https://cern.ch/maria) Presentation for the [10th August 2021 Women of Solid meetup](https://www.womenofsolid.org/meetup.html) --- ## How did this PoC start From creative thinking and lobbying in [the CERN-Solid gitter channel](https://gitter.im/cern-solid/community#). 1. [Jan Schill](https://janschill.net/profile/card#me) looking for a MSc thesis subject for himself. 2. [Maria Dimou](https://dimou.solidcommunity.net/profile/card#me) wrote [this project description](https://it-student-projects.web.cern.ch/projects/cern-solid-code-investigation). 3. CERN and Solid experts supported us and answered our questions between September 2020 and June 2021. 4. [This excellent quality thesis](https://cds.cern.ch/record/2771156) came out at the end. --- ## Overview * **Solid terms' reminder** 1. What Is Solid? 3. What Is a Solid Pod 4. What Is a Solid server * **The CERN-Solid Proof of Concept (PoC)** 1. _Comments_ in Indico events 2. Indico Conference _Registration_ from pod data. --- ### Solid * **So**cial **Li**nked **D**ata, is a project, a standard, an ecosystem, a movement and a community initiated by Sir Tim Berners-Lee. * Allows people to control _where_ their own data are stored and _who_ has access to them. * It combines existing W3C standards and is built on top of the existing Web. --- ### The Solid pod A decentralised data store for one’s personal data. A pod (*) is like a secure personal Web server for all kinds of data. * Data is stored as _Linked Data_, i.e. the resource gets its own HTTP URI on the Web. * The pod is described by a unique WebID. WebID examples: * https://timbl.inrupt.net/profile/card#me * https://dimou.solidcommunity.net/profile/card#me * https://janschill.net/profile/card#me (*) Pod: a protective container (from the Webster dictionary). --- ### The Solid server A Web server that stores users’ pods, with support for access control. Reminder of some Solid server implementations in the appendix. --- ### Ideally Solid is about escaping from this situation ![](https://codimd.web.cern.ch/uploads/upload_50196f49ba7d0c4698c6fa16fde91d4d.png) _Taken from: [https://www.w3.org/DesignIssues/CloudStorage.html](https://www.w3.org/DesignIssues/CloudStorage.html)_ --- ## The CERN-Solid code investigation project 1. **Review Solid specifications** 2. **Evaluate Solid implementations** 3. **Enrich Indico with Solid principles** * _Comments_ in Indico events via Solid pod authentication. * _Registration_ in Indico conferences with personal data taken from the Solid pod. 4. **Make Recommendations on Solid adoption in CERN applications** 5. **Document challenges, advantages, gaps** --- ## What is Indico * A CERN-developed open-source tool for event organisation, archival and collaboration. * [Indico](https://getindico.io/) is used every day at CERN to manage more than 600,000 events of different complexities and 200 meeting and conference rooms. * Also adopted by UN agencies and other organisations. * Resilient and reliable for over 20 years. * Indico has no incentive for user data in modules of: * Meeting comments * Conference registration --- ### Points 1 & 2 * Done in the September-December 2020 period. * Presented to the CERN community in January 2021. * Slides [attached to this event](https://indico.cern.ch/event/979381/) * Detailed report [attached to this event](https://indico.cern.ch/event/979244/) --- ### Details on the Proof of Concept (PoC) --- ### Comments to Indico events via Solid pod authentication ![](https://codimd.web.cern.ch/uploads/upload_0889dec0ae0b793c1f97deb912de31d4.png =600x) --- ### What you see in your pod ![](https://codimd.web.cern.ch/uploads/upload_43756b69fc349d881b768cb9c8192dff.png) --- ### Details on the code for _Comments_ * Client-side developed JavaScript application * Self-contained, can be re-used in other applications * Stores one comment in one file on data pod * Communicates with data pod directly * Needs authenticated Indico session * Indico holds the reference to the location of comment --- ### Indico conference registration via Solid pod data - prompt ![](https://codimd.web.cern.ch/uploads/upload_bcfae0e3771587f3ca0179a6b17b084b.png =600x) --- ### Indico conference registration via Solid pod data - list of registrations ![](https://codimd.web.cern.ch/uploads/upload_30b59e52289c6b683e885da70fb812f9.png =850x) --- ### Indico conference registration via Solid pod data - Linked Data | LD: Subject | LD: Predicate | LD: Object | Indico form | | ----------- | ------------- | ----------------------- | ----------------- | | #me | ns:fn | "Jan Schill" | name="first_name" | | #me | ns:fn | "Jan Schill" | name="last_name" | | #me | ns:hasEmail | <mailto:schill@hey.com> | name="email" | | #me | ns:gender | "Male" | Label="Gender" | *ns = http://www.w3.org/2006/vcard/ns#* --- ### Details on the code for _Conference Registrations_ * **Design of implemented module**: retrieve personal information **for** an Indico conference registration **from** data pod * Original idea to store personal information **of** conference registration **in** data pod abandoned due to: * Sensitivity of payment details requiring reliable data retrieval * Archival of events need the data at Indico * Management of events/conference need performant data retrieval --- ## Challenges with Solid status today * Few applications using Solid pods so far * Very old-fashion pod UI * No formal support for the open source solutions. * A great enthusiasm in gitter though! * Solid being a living standard, the specifications also evolve, especially in the Access Control area, leading to varying server implementations. ==> Impact on test-suite results. --- ## Strategic decisions for CERN Despite the challenges the Solid project has: * Government agencies that embrace it officially (UK NHS, Flanders' administration) * Often start-ups show Solid pod interfaces at the monthly Solid World webinar. * Almost 2K members in [the Solid gitter chat](https://gitter.im/solid/chat) * It is strategically and ideologically important for CERN to be engaged with Solid. --- ## Conclusions For the above-explained reasons we recommend that: * we install the Community Solid Server (CSS) at CERN - CSS completion announced on 2021-08-05. * integrate it with the CERN Single Sign-On (SSO). * develop an attractive UI with open source tools. **OR** * investigate the usage of [CERNBox](https://up2university.eu/guide-cernbox/) as a Solid server through [solid-nextcloud plugin](https://github.com/pdsinterop/solid-nextcloud). See [the Policy document](https://codimd.web.cern.ch/1VLKK_rYQYixHmwOuGL2fg#) for details. --- ## Useful use case for CERN **Providing Solid pods to all CERN users would answer the cross-app "CERN user profile" aspiration** Some CERN apps offer user profiles, e.g. Indico: ![](https://codimd.web.cern.ch/uploads/upload_9acef86975387a820f071bbf61dbec0b.png =300x) These are _not_ owned by the user, nor can they contain any data of the user's choice. To go further, now lobbying for resources to work on the [follow-on project](https://it-student-projects.web.cern.ch/projects/cern-solid-and-slides-app). --- ## Appendix: Solid Servers today A Solid server is a Web server that stores users’ pods, with support for access control. 1. **Node Solid Server (NSS):** _Open Source_ server by the MIT Solid team since 2016. 2. **Enterprise Solid Server (ESS):** inrupt’s commercial _Closed Source_ alternative, based on [Trellis](https://www.trellisldp.org/). Launched in November 2020. [Article](https://sdtimes.com/data/inrupt-launches-enterprise-solid-server-to-restore-trust-in-data/). 3. **Community Solid Server (CSS):** _Open Source_ project by Ghent University, paid for by inrupt, to write a Solid Server from scratch in [TypeScript](https://www.typescriptlang.org/). 4. More servers like PHP or Ruby are in the making. --- ## Thank You Jan Schill for fantastic work Tim Berners-Lee for guidance Michiel de Jong for Solid expertise Ruben Verborgh for reading the Policy note CERN management and colleagues for following this work with interest --- ## References * [CERN-Solid entry point](http://solid.cern.ch) * [CERN-Solid chat](https://gitter.im/cern-solid/community) * [The PoC Project description](https://it-student-projects.web.cern.ch/projects/cern-solid-code-investigation) * [The PoC Project repo](https://gitlab.cern.ch/cern-solid) * [Follow-on project](https://it-student-projects.web.cern.ch/projects/cern-solid-and-slides-app) * [Policy document for a CERN Solid server](https://codimd.web.cern.ch/1VLKK_rYQYixHmwOuGL2fg#) --- ## References historical Past efforts to keep CERN involved in the future of the Web: * [The CERN Web Office in the 1990ies (most data missing today)](https://weboffice.web.cern.ch/WebOffice/) * [CERN Web operations' paper and slides when the servers were numbered](https://cern.ch/dimou/SApaper.html) * [CERN-W3C collaboration 2014 proposal](https://cern.ch/dimou/personal/CERN-W3C_Collaboration.pdf) * [CERN-W3Ccollaboration 2017 proposal](https://cern.ch/dimou/personal/CERN-W3C_Collaboration_2017_proposal.pdf) --- ## Thank you for listening
{"type":"slide","slideOptions":{"theme":"cern"}}