fediverse/fep
37
268
Fork
You've already forked fep
100

WIP: FEP-5a4f: Federated Democracy #268

Draft
Laxystem wants to merge 20 commits from Laxystem/fep:main into main
pull from: Laxystem/fep:main
merge into: fediverse:main
fediverse:main
fediverse:pages
First-time contributor
Copy link

This FEP draft draft (yes, double draft) proposes the definement of a Federated Democracy specification, for usage by FOSS guilds and other online democratic organizations.

Feedback is welcome! We don't feel it is ready for merging into the main FEP repository yet --- still need some feedback for that.

The proposal.

This FEP draft draft (yes, double draft) proposes the definement of a Federated Democracy specification, for usage by FOSS guilds and other online democratic organizations. Feedback is welcome! We don't feel it is ready for merging into the main FEP repository yet --- still need some feedback for that. [The proposal](https://Codeberg.org/Laxystem/FEP/src/branch/main/fep/5a4f/fep-5a4f.md).
@ -0,0 +43,4 @@
* `fd:Subject`, extends `as:Object`.
* MUST have an `@id`.
* SHOULD have a `fd:voters`.
* SHOULD have at least one `as:summary`.

What Subject represents? An organization?

What Subject represents? An organization?
Author
First-time contributor
Copy link

Anything. Our own project, Gimli, uses it for Discord-like permissions, per-Guild/Railway (=Channel)/Profile.

Anything. Our own project, Gimli, uses it for Discord-like permissions, per-Guild/Railway (=Channel)/Profile.

Sorry, I'm not familiar with Discord. Could you explain it in other terms?

in ActivityStreams vocabulary subject is defined as "one of the connected individuals [in Relationship]".

Sorry, I'm not familiar with Discord. Could you explain it in other terms? in ActivityStreams vocabulary [subject](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-subject) is defined as "one of the connected individuals [in Relationship]".
Author
First-time contributor
Copy link

Basically, it's the subject of the vote. It could be used to invoke a permission (e.g. SEND_MESSAGE) on a specific profile, where voters are either other profiles (so the process repeats) or accounts.

I.e. political parliaments' vote subjects are to introduce new laws.

Basically, it's the subject of the vote. It could be used to invoke a permission (e.g. `SEND_MESSAGE`) on a specific profile, where voters are either other profiles (so the process repeats) or accounts. I.e. political parliaments' vote subjects are to introduce new laws.
silverpill marked this conversation as resolved
@ -0,0 +65,4 @@
* MAY have a `fd:wasVetoed`. Implementations MUST NOT assume veto implies a `fd:result` of `false`.
* MAY have a `fd:for`. MAY contain less `fd:Voter`s than `fd:forCount`.
* MAY have a `fd:neutral`. MAY contain less `fd:Voter`s than `fd:neutralCount`.
* MAY have an `fd:against`. MAY contain less `fd:Voter`s than `fd:againstCount`.

Are new types really necessary?

For example fd:Voter may be replaced with as:Person, and fd:Vote may be replaced with as:Question

Are new types really necessary? For example `fd:Voter` may be replaced with `as:Person`, and `fd:Vote` may be replaced with `as:Question`
Author
First-time contributor
Copy link

I think so. fd:Voter may not be a person, but instead a group, that have a vote within themselves about what to vote. It is implementation-specific.

We've chosen to create new types to prevent conflicts with already-existing uses for the standard ActivityPub types, with a rationale of preventing a server from accidentally parsing an arbitrary, unrelated activity as a vote response.

For example, Mastodon uses as:Question for polls, and allows any as:Actor to cast their voice, without respecting the properties describing how fd:Vote function (of which we're considering to add more, stuff like minimumVoterTurnout). We don't want these two similar yet different concepts to clash.

I think so. `fd:Voter` may not be a person, but instead a group, that have a vote within themselves about what to vote. It is implementation-specific. We've chosen to create new types to prevent conflicts with already-existing uses for the standard ActivityPub types, with a rationale of preventing a server from accidentally parsing an arbitrary, unrelated activity as a vote response. For example, Mastodon uses `as:Question` for polls, and allows any `as:Actor` to cast their voice, without respecting the properties describing how `fd:Vote` function (of which we're considering to add more, stuff like `minimumVoterTurnout`). We don't want these two similar yet different concepts to clash.

Can actors from other platforms participate? I.e. can voter property point to as:Person on Mastodon server? I think it would be nice to allow this.

Can actors from other platforms participate? I.e. can `voter` property point to `as:Person` on Mastodon server? I think it would be nice to allow this.
Author
First-time contributor
Copy link

Can actors from other platforms participate? I.e. can voter property point to as:Person on Mastodon server? I think it would be nice to allow this.

The idea is that actors need to explictly opt-in into being voters, to show that server supports this FEP.

{
 "@type": ["as:Person", "fd:Voter"]
}

As mentioned here:

  • fd:Voter, extends as:Object.
    • MAY have a @type of as:Actor.
> Can actors from other platforms participate? I.e. can `voter` property point to `as:Person` on Mastodon server? I think it would be nice to allow this. The idea is that actors need to explictly opt-in into being voters, to show that server supports this FEP. ```json { "@type": ["as:Person", "fd:Voter"] } ``` As mentioned here: > * `fd:Voter`, extends `as:Object`. > * MAY have a `@type` of `as:Actor`.
Author
First-time contributor
Copy link

Note: that was changed to use the actor property instead for technical reasons we don't remember.

Note: that was changed to use the `actor` property instead for technical reasons we don't remember.
silverpill marked this conversation as resolved
Rename ns.json to context.jsonld to comply with FEP-888d
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
cb516e4a3b
Update FEP-5a4f to comply with FEP-888d
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
23a19eb0bb
Started refactor.
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
75309d9834
Refactored FEP-5a4f; Added .idea to .gitignore
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
e951915d21
Author
First-time contributor
Copy link

The changes in commit above are (should've put this in commit message nvm):

  • Added .idea, a folder created by JetBrains IDEs and Android Studio, to .gitignore.
  • Renamed fd:Subject to fd:Topic.
  • Removed fd:voters from fd:Vote to reduce data duplication (feedback needed).
  • Added fd:Algorithm, a decentralized way to evaluate votes.
  • Added algorithm discovery via nodeinfo; Should algorithm custom parameters be listed in discovery?
  • Renamed fd:for and fd:forCount to fd:inFavour and fd:inFavourCount.
  • All kinds of other, small changes.
The changes in commit above are (should've put this in commit message nvm): * Added `.idea`, a folder created by JetBrains IDEs and Android Studio, to `.gitignore`. * Renamed `fd:Subject` to `fd:Topic`. * Removed `fd:voters` from `fd:Vote` to reduce data duplication (feedback needed). * Added `fd:Algorithm`, a decentralized way to evaluate votes. * Added algorithm discovery via nodeinfo; Should algorithm custom parameters be listed in discovery? * Renamed `fd:for` and `fd:forCount` to `fd:inFavour` and `fd:inFavourCount`. * All kinds of other, small changes.
Changed 'for' to 'inFavour' - was missed last commit
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
fdc0aeda79
Laxystem changed title from (削除) WIP: FEP-5a4f: Federated Democracy (削除ここまで) to FEP-5a4f: Federated Democracy 2024年02月21日 12:55:06 +01:00
Laxystem changed title from (削除) FEP-5a4f: Federated Democracy (削除ここまで) to WIP: FEP-5a4f: Federated Democracy 2024年02月21日 12:55:22 +01:00
Updated FEP-5a4f
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
e979b84ccb
* Added editable vote responses
* Specified vote responses must be PUT requests.
* Specified algorithms MUST return the same results for the same data
* Specified voter collections may be partial for anonymity purposes
Forgot commas in FEP-5a4f
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
0eb627c7b0
Replaced sharedInbox with @id
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
d578e466b3
Also added an example to `fd:Vote`.
Improved example
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
0a10080533
Replaced w3id.org with www.w3id.org
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
246c87d7f4
Laxystem changed title from (削除) WIP: FEP-5a4f: Federated Democracy (削除ここまで) to FEP-5a4f: Federated Democracy 2024年03月06日 07:55:39 +01:00
Merge branch 'main' into main
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
514de2aa4e
Author
First-time contributor
Copy link

(削除) Will do further changes with other PRs; It is a draft afterall. (削除ここまで)
Need to add something about vote delegations... forgor

~~Will do further changes with other PRs; It is a draft afterall.~~ Need to add something about vote delegations... forgor
Laxystem changed title from (削除) FEP-5a4f: Federated Democracy (削除ここまで) to WIP: FEP-5a4f: Federated Democracy 2024年03月06日 07:59:27 +01:00
Introduced Decentralized Algorithms
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
4aee329716
Fixed a couple typos
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
7de9945a24
A few more small fixes
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
21070691a5
Merge branch 'main' into main
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
82c5ec6972
Author
First-time contributor
Copy link

I think vote delegation belongs to a future FEP, it's just too complex of a topic for now.

I think vote delegation belongs to a future FEP, it's just too complex of a topic for now.
Laxystem changed title from (削除) WIP: FEP-5a4f: Federated Democracy (削除ここまで) to FEP-5a4f: Federated Democracy 2024年04月07日 12:37:26 +02:00
Author
First-time contributor
Copy link

Wait no we didn't write anything about distributing events, I'm an idiot.

Wait no we didn't write anything about distributing events, I'm an idiot.
Laxystem changed title from (削除) FEP-5a4f: Federated Democracy (削除ここまで) to WIP: FEP-5a4f: Federated Democracy 2024年04月07日 12:45:54 +02:00
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
This pull request has changes conflicting with the target branch.
  • .gitignore
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u main:Laxystem-main
git switch Laxystem-main

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff Laxystem-main
git switch Laxystem-main
git rebase main
git switch main
git merge --ff-only Laxystem-main
git switch Laxystem-main
git rebase main
git switch main
git merge --no-ff Laxystem-main
git switch main
git merge --squash Laxystem-main
git switch main
git merge --ff-only Laxystem-main
git switch main
git merge Laxystem-main
git push origin main
Sign in to join this conversation.
No reviewers
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
fediverse/fep!268
Reference in a new issue
fediverse/fep
No description provided.
Delete branch "Laxystem/fep:main"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?