The App is running in PRODUCTION on my Solid Pod for now: https://timea.solidcommunity.net/HelloWorld
The App is running in DEVELOPMENT on GitHub pages - which is updated with every push to the master branch.
The user manual is under docs.
The App is part of the Linked Data-driven frontends blog post series from SolidOS team.
Note: This project is built on prototype libraries. And it serves multiple goals.
This demo serves multiple goals.
1) A collection of beginner-friendly Solid code examples. The Solid Community survey identified this as one of the biggest needs in the Solid Community. 2) A reply to a conversation over at the Solid forum. 3) Create a Solid Web App with low code by defining the Web App UI in RDF (no need to know any frontend framework). 4) Showcase how the 'Single point of truth' can be achieved and used with Solid.
This Web App makes use of HTML, Simple CSS, RDF, and basic JavaScript. The heavy lifting (rendering the UI from RDF) is taken care of libraries one can simply reuse such as Comunica, Mashlib, and solid-ui-components, see attributions for links.
Initially, the application was intended to be a one-page web application. It all starts at index.html
. However, because I make use of different libs, I added additional pages but kept them in separate folders in the structure in order to follow how to use the libs best.
Details:
The Solid Hello Worlds data model is a Knowledge Graph which consists of:
The Solid Hello Worlds Thesaurus is based on SKOS and contains skos:concepts that describe:
The Solid Hello Worlds Thesaurus structure drives the facets/the accordion menu on the search (main page). When I say the structure drives the menu it technically means a SPARQL query executed on the Solid Hello Worlds Thesaurus appsDisplay.ttl
automatically fills the search options for each accordion.
The Solid Hello Worlds Thesaurus looks like this:
Solid Hello Worlds Thesaurus
The ontology extends the SKOS scheme with predicates that help further describe or connect/descriove the skos:concepts. The ontology looks like:
Solid Hello Worlds Ontology
npm run start
or npx vite
.NOTE Unfortunately solid-ui only works with absolute URLs reason why the development KG and forms are the ones deployed on my Pod.
Read about my experiements with deployments of the app.
Example: my running demo is simply on my Pod, in a HelloWorld folder over at https://timea.solidcommunity.net/HelloWorld/components/. I made sure the HelloWorld folder has public access.
NOTE make sure to use minified versions of the libs (solid-ui, mashlib especially) otherwise the app loads quite slowly.
NOTE the adminPage is not working on a Pod deployment due to mashlib.
NOTE Unfortunately solid-ui only works with absolute URLs reason why the development Knowledge Graph (KG) and forms are the ones deployed on my Pod.
NOTE make sure to use minified versions of the libs (solid-ui, mashlib especially) otherwise the app loads quite slowly.
NOTE the adminPage is not working on a Pod deployment due to mashlib.
NOTE Unfortunately solid-ui only works with absolute URLs reason why in the config.js we need full URLs.
Example: my running demo is deployed, in this case, on two of my Pods. The main code is over in the HelloWorld folder on https://timea.solidcommunity.net/SolidHelloWorldDistributed/. The data and forms are on another Pod over at https://solidweb.me/timeacss/public/SolidHelloWorlds/. I made sure the SolidHelloWorlds folder has public access because this is where the single point of truth (the Knowledge Graph (KG)) is.