This is a distillation of a language thing, I’ve been talking about in the matrix room: https://matrix.to/#/#groundwork-matters:matrix.org Second a goal is to achieve what is pointed out in Wiki: Vision for a Fedi Specification:
The goal
- Develop a language that can let us clearly communicate our vision for the Fediverse
- This language should state verifiable goals → Testability
The main idea
My main claim is that by specifying our Vision for the Fediverse as statements starting with “You can …”, we can ensure that our statements are meaningful and the chance of people understand them differently is lowered. In order to explain what a “you can”-statement is, I will do an example:
You can change service without losing your data.
Here the word you is the person using your eventual new social network / evolved Fediverse. This is work towards turning our evolved Fediverse into a Peopleverse, as we emphasize what the person using it can do.
Second, with you can, we describe an action that the person can take. For me, this is an obvious advantage. I encourage everybody to use BDD anyway. So it’s cool. However, I also believe that it is good for a less technical audience, as it tells them what they can do.
Relationship to BDD
From a BDD perspective, one could rewrite the above “You can”-Statement as:
When you change service
Then you don't lose your data
This is not a complete feature yet, as the setup is missing. However, I hope it is clear how often rewriting will be possible.
Note: It is not necessary for a “You can”-Statement to be valid, that one can rewrite it as a Gherkin feature.
Evolution of the idea
The idea of formulating the thing as “You can”-Statements did not arise in a vacuum, but comes from trying to specify a language so one can make better statements about a Fediverse visioin.
I will now take you through my journey (as I remember it), to the “you-can”-statement. This will be by looking at statements, I consider bad.
The network is decentralized.
Thinking about this statement was the first time, I realized, a lot of people talk about this, but I don’t care. It’s something that doesn’t matter in my world. From the perspective of the people, it also doesn’t matter. It doesn’t look at what happens to a person. It treats people as a big entity to describe. Instead, I prefer the statement
You can self-host.
This is something that a person can do. It is also very simple to disprove. Can somebody set up an instance for your network while waiting for the train? In an afternoon? With 2 weeks of work?
Here, I was thinking about the you statement. Then, I encountered the you statement:
You have data ownership.
It’s a “You”-Statement, unfortunately I also dislike it. It sounds like something lawyers will have to litigate in order to assign meaning. So it’s nothing for me. Also it is not really behavior. The alternative was
You can change service without losing your data.
from above.
Another example: E2EE
Adding E2EE to the Fediverse is interesting from a technical standpoint. It would force one to clean up what an actor is comparred to what the user’s device is. This is due to the encryption keys being generated on the device and never leaving it. Anything else is not end to end encryption, just encryption.
However, if you formulate this as a “You can”-Statement, you realize that what you can achieve with E2EE is probably weaker than is worth the investment:
You can communicate without admins knowing your message content.
Why is this weak? You admins will still know you send a message. If you want E2EE with some anonymity properties, you should probably look outside the Fediverse.
A proposed list of “you can …” statements
Structure of the network
- You can self-host.
- You can change service without losing your data.
Structure of the process
- You can participate in the protocol process without gate keepers.