Skip to content

Instantly share code, notes, and snippets.

View jeswr's full-sized avatar
🚀
building the things

Jesse Wright jeswr

🚀
building the things
View GitHub Profile
@jeswr
jeswr / gist:f987daa6734162d3f3b595b5d8c4e3cc
Last active March 21, 2026 17:12
Upstreaming `create` to ODRL

Is create a Good Upstream Candidate?

Yes, strongly. create fills a genuine gap in the ODRL vocabulary. ODRL has read, modify, and delete — three of the four CRUD operations — but no create. This is because ODRL was designed for digital rights over existing content (music, video, documents). The concept of "create a new resource inside a container" is a web/REST pattern that ODRL's original domain didn't need.

As ODRL is increasingly applied to web resource management (LWS, Solid, data spaces), the absence of create becomes a real interoperability problem — every profile in this space has to independently invent the same term. Making it a Common Vocabulary term benefits the whole ecosystem.

The definition would be straightforward:

  • Included in: odrl:use (like read, modify, delete)
  • Semantics: Create a new resource, typically within a collection or container
  • Distinct from: modify (which operates on an existing resource)
@jeswr
jeswr / gist:cc6cb057d09e8860aa84dd4b52ddd8e6
Created March 9, 2026 11:21
SHACL Versioning Pattern for the Solid Ecosystem
# SHACL Versioning Pattern for the Solid Ecosystem
## Context & Problem Statement
The Solid SHACL Shapes Catalogue (`solid/shapes`) already establishes that published shapes are **immutable contracts** — once merged, their validation rules must not be modified. Evolution happens through new shapes, not mutation of existing ones.
This is a strong foundation, but it doesn't yet address several questions that become critical as the catalogue grows:
- How do consumers know which shape is the "current" version of a concept?
- How do apps discover that a shape they depend on has a successor?
@jeswr
jeswr / education-workshop.md
Created August 21, 2025 12:35
Solid introduction workshop

This file contains notes for a beginner Introduction to Solid Workshop. This should be accompanied with a Slide Deck for the presentation.

About Solid

About the Solid Project

  • Decentralized web
  • Project started by Sir Tim Berners-Lee; inventor of the World Wide Web
@jeswr
jeswr / solid-education.md
Last active August 21, 2025 12:36
links to education materials for Solid
/* Style for design issues documents */
body {
font-family: opensans, sans-serif; /* serif */
background-color: white; /* was for decades #f8fff8 */
line-height: 1.2em;
color: black;
margin: 2em 8% 2em 10%; /* T R B L */
}
With data_0.n3s
```
@prefix : <https://example.org/ns#> .
@prefix log: <http://www.w3.org/2000/10/swap/log#> .
:ABC a :DepartmentPreference .
:ABC a :ResearcherPreference .
(_:WHAT) log:onNegativeSurface {
_:WHAT a :DepartmentPreference .
<http://eulersharp.sourceforge.net/2009/12dtb/test#ind0> a <http://eulersharp.sourceforge.net/2009/12dtb/test#N0> . <http://eulersharp.sourceforge.net/2009/12dtb/test#N0> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://eulersharp.sourceforge.net/2009/12dtb/test#N1> . <http://eulersharp.sourceforge.net/2009/12dtb/test#N0> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://eulersharp.sourceforge.net/2009/12dtb/test#I1> . <http://eulersharp.sourceforge.net/2009/12dtb/test#N0> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://eulersharp.sourceforge.net/2009/12dtb/test#J1> . <http://eulersharp.sourceforge.net/2009/12dtb/test#N1> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://eulersharp.sourceforge.net/2009/12dtb/test#N2> . <http://eulersharp.sourceforge.net/2009/12dtb/test#N1> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://eulersharp.sourceforge.net/2009/12dtb/test#I2> . <http://eulersharp.sourceforge.net/2009/12dtb/test#N1> <http://www.w3.org/2000/01/rdf-schema#subCl
@prefix dct: <http://purl.org/dc/terms/> .
@prefix dex: <https://w3id.org/dpv/examples#> .
@prefix dpv: <https://w3id.org/dpv#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix svpr: <https://specialprivacy.ercim.eu/vocabs/processing#> .
@prefix sw: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix dpv: <https://w3id.org/dpv#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix svpu: <https://specialprivacy.ercim.eu/vocabs/purposes#> .
@prefix sw: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix log: <http://www.w3.org/2000/10/swap/log#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
{
?uuu ?aaa ?yyy .
}
=>
{