Browse Source

Add draft of "I need Solid to change"

mrkvon 6 months ago
parent
commit
f24dabaee2
2 changed files with 110 additions and 0 deletions
  1. 3
    0
      posts.yaml
  2. 107
    0
      posts/solid-i-want.md

+ 3
- 0
posts.yaml View File

@@ -1,4 +1,7 @@
1 1
 ---
2
+- date: '2022-04-16'
3
+  title: I need Solid to change
4
+  url: solid-i-want
2 5
 - date: '2021-01-10'
3 6
   title: Leaving Trustroots Volunteering
4 7
   url: leaving-trustroots

+ 107
- 0
posts/solid-i-want.md View File

@@ -0,0 +1,107 @@
1
+As an application developer,
2
+
3
+# I need [Solid](https://solidproject.org) to change
4
+
5
+## TL;DR
6
+
7
+With Solid, I want to make great apps that connect us to share ideas, collaborate, and be together in real world.
8
+
9
+For this, as a developer, I need a few changes into how Solid works:
10
+
11
+1. Make data queryable with LDF (This would allow us to drop type indexes, and stop all worries about discoverability of data on a pod)
12
+2. Don't enforce shape trees (Data want to live independently of documents. Rigid document structures are not a way to interoperability. Shared data shapes are.)
13
+3. Allow each piece of data to have its own permissions. (Otherwise managing permissions just gets too complex.)
14
+4. Serve different linked data formats. Especially JSON-LD; not just Turtle. (I don't care for RDFXML. ;) ) Just like that, we could be compatible with ActivityPub, which uses JSON-LD.
15
+
16
+I also propose that we should have a place to share and discuss our application's data shapes. The provisional name is Linked Data Shape Manager, along the lines of Node Package Manager. :)
17
+
18
+I also propose that Solid developers should meet regularly.
19
+
20
+We need a more granular way to give permissions to apps. Permissions based on shapes.
21
+
22
+---
23
+
24
+Now, let's look at it in more detail...
25
+
26
+
27
+## First, the promise
28
+
29
+I love the promise Solid offers. The ultimate social network that developers don't have to reinvent - it already exists. Developer just makes apps that improve what people can do in it.
30
+
31
+I learned this the hard way: When a social network wants to connect people, [it needs people](https://en.wikipedia.org/wiki/Network_effect), otherwise it's doomed. In Solid, we don't compete. When one app attracts new people, all apps are better off, because they all gain potential new users.
32
+
33
+
34
+## My hopes
35
+
36
+Internet which connects people and encourages us to collaborate and spend more time in reality instead of trapping us online.
37
+
38
+
39
+## Getting technical
40
+
41
+In Solid, it's important for me that:
42
+
43
+- I can store data. (We store them as Linked Data, in triples. That's nice i guess. But it has its limits. I can say i like something, but it's not straightforward to express _how much_ i like it.)
44
+- I can have an identity. I can own my data, and I can decide who can see or edit them, and who can't. I can authenticate and see data that other people shared with me.
45
+
46
+Now, let's look at these two points more closely:
47
+
48
+
49
+### Identity and authentication
50
+
51
+I'm happy with how this works. It's based on [OpenID Connect](https://openid.net/connect/). And it functions as expected.
52
+
53
+
54
+### Data
55
+
56
+Data are the basic building stones of information. It's not documents. Data don't care what format they're stored in.
57
+
58
+And so...
59
+
60
+#### Think in Data, not Documents
61
+
62
+There is no such thing as document structure. In "Shape Trees" we don't specify document structure, but data structure that our app expects.
63
+
64
+No need for type indexes. It's no coincidence that they're so counter-intuitive and unpleasant to use.
65
+Generally, app developers are confused where to find and store the data their app needs. Not any more.
66
+
67
+Decouple data from documents, and you solve the never-ending interoperability issues.
68
+
69
+We can query them with a linked data fragments endpoint, sort of like https://data.verborgh.org/ruben
70
+
71
+## Think in data, not mime types
72
+
73
+I like Turtle, but it's not necessary. RDF is just two nodes with arrow between them. And ... That's ... It.
74
+
75
+## Granular permissions
76
+
77
+Each triple has its own permissions tied to it. This allows people to make fine-grained settings for the data they own. For each datum they can specify permissions for each individual or group they want to share with.
78
+
79
+Apps ask for, and may receive, very specific permissions: This datum you can read, this shape you can create, this shape you can edit.
80
+
81
+Let's say my application works with people and their interests. So it works with data of form (Person) --foaf:topic\_interest--> (Thing)
82
+When somebody decides to share one interest with everybody, and the other only with their family, i simply don't see the private parts. The family will see a slightly different document, and that's it!
83
+
84
+When i want to publish, or make private a specific triple, i have to move it to a different document, with different permissions. That Just Sucks. It breaks the uris.
85
+
86
+Dump [WAC](Link!). It is concerned with documents and their permissions, not data. Not fitting this view. Why do we even need to express access control as linked data? Only the owner should ever be able to change it.
87
+
88
+The asking for application permissions only once at the beginning is too simplifying, and too generic.
89
+
90
+I think - but this is a shot in the dark, that typical change of permissions can look as follows - the app suggests change in permissions, person is redirected to their app and changes the permissions, if they want to. Sort of like when we sign in.
91
+
92
+
93
+<!--
94
+## What i need as an application developer
95
+
96
+I need to connect data.
97
+
98
+
99
+## Solid Data Pod
100
+
101
+The Solid Data Pod i hope for will be a little bit like wikidata. I'll be able to access various documents either by querying them directly, or through LDF API. + Authentication. Everybody can query wikidata. Everybody will be able to query this kind of pod, but each will see a little different picture
102
+
103
+-->
104
+
105
+---
106
+
107
+Work in progress. To be continued...