## The CERN-Solid Proof of Concept (PoC) ## Success & Follow-up === [Maria Dimou (CERN)](https://cern.ch/maria) Presentation for the [2021-10-07 Solid World](https://solidproject.org/events) --- ## 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 in this area. 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. As a result [this excellent quality thesis](https://cds.cern.ch/record/2771156) came out and the CERN community became Solid-aware. --- ## The PoC definition **Enrich the CERN Indico application functionality based on Solid principles** 1. Introduce _Comments_ in Indico events, the content of which reside in the user's Solid pod. 2. Fill-in _Registration_ fields in Indico conferences with personal data taken from the Solid pod. --- ## 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 850K _events_ and 3.5M _attachments_ by 146K _users_. * Also adopted by UN agencies and other organisations. * Resilient and reliable for over 20 years. * Indico has no incentive to keep user data when possible. --- ### 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 for CERN with Solid today * Few applications using Solid pods so far * CERN users require an attractive pod UI * No formal support for the open source solutions (lack of resources at CERN for projects of the future) * Solid being a living standard, the specifications also evolve, especially in the Access Control area, leading to varying server implementations. * CERN has to give priority to apps with operational status. --- ## Strategic decisions for CERN Despite these challenges we believe: * Solid is here to stay and expand. * It is strategically and ideologically important for CERN to be engaged with Solid. --- ## Concrete proposal for the short-term For the above-explained reasons we recommend that we: * install the Community Solid Server (CSS) at CERN. * integrate it with the CERN Single Sign-On (SSO). * develop an attractive UI with open source tools. * make our efforts known to the scientific communities outside CERN. 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. --- ## Follow-up project to get there [Théo Meyer](https://tmey.solidcommunity.net/profile/card#me), [ITU](https://itu.dk) student, interested in this work, is now working on [this follow-up project](https://it-student-projects.web.cern.ch/projects/cern-solid-server-hosting). --- ## Project components 1. Evaluate the CSS code and functionality. 2. Install and configure a CERN CSS instance. 3. Contribute code to CSS, if needed, based on the CERN installation experience. 4. Study CSS performance and scaling issues. 5. Comment on the necessary methods to promote Solid pod adoption by the CERN community. --- ## Thank You Jan Schill for fantastic work with the PoC Théo Meyer for taking up the follow-up project Tim Berners-Lee for guidance Michiel de Jong for Solid expert advice 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 completed PoC Project description](https://it-student-projects.web.cern.ch/projects/cern-solid-code-investigation) * The PoC Project repo: * [Comment](https://github.com/janschill/solid-comment) * [Registration](https://github.com/janschill/solid-autocomplete) * [CERN mirror of the repo](https://gitlab.cern.ch/cern-solid) * [The current Follow-up project](https://it-student-projects.web.cern.ch/projects/cern-solid-server-hosting) * [Policy document for a CERN Solid server](https://codimd.web.cern.ch/1VLKK_rYQYixHmwOuGL2fg#) --- ![](https://codimd.web.cern.ch/uploads/upload_e46046f5aa1b580e7f41ca5d2ccce42b.png)