ActivityPub as a decentralized OAE infrastructure?
Several of us have been looking more closely at ActivityPub (https://www.w3.org/TR/activitypub/#obj-id) as a mechanism for messaging between decentralized agents (people and organizations), as well as between apps. It currently is focused on social networks, but we think it shows a lot of promise in other directions too. We are focused on the economic aspects of an open app ecosystem in our discussions, and more integration of that with social aspects too.
And focused on moving towards an agent-centric architecture, some definitions of that here https://cryptpad.fr/pad/#/1/view/HCGmHSwjgSNEOONNPRLplA/CyJfwJFLO3RXcFysO0sGKmh4sGpiC4XRMVc5CE7Ozdw/.
Here is an initial set of investigation and thoughts about how this could actually work. https://cryptpad.fr/pad/#/2/pad/view/oqXdr2rfGXO04U1UWo2CIiZoL1Z9lkNkhzF5jw6pZDk/.
Feedback welcome!
Danyl Strype Fri 14 Dec 2018 12:31PM
Thanks for the update. Where is the best place to track dev specifically related to AP implementation? Is there one component where that work will be done, or do you have an issue tracking progress on it?
every little feature of communecter is being cut up into mini standalone modules that are also functionnal all together
Cool. I'm no expert, but it seems logical to me that this modular approach both helps to keep your code simple and tidy, and makes it easier for folks outside your team to understand and maybe re-use it.
Lynn Foster Tue 18 Sep 2018 5:43PM
An update of the planned ActivityPub distributed agent-centric implementation of OAE. @tiborkatelbach and all interested....
We now have 5 of us with separate pubs (me @bobhaugen @mayel @ivan116 and Benet from Mutual Aid Network), and can chat with each other using them. The code etc. is here, thanks to @mayel : https://gitlab.com/OpenCoop/CommonsPub. It is a forked version of pleroma, written in elixir.
From here, we want to dogfood in this agent-centric distributed environment and move within the social environment into economic interaction. We're figuring out what kind of UI makes sense, what the architecture might look like with open apps, and what pieces to do when (based on the user groups we are working with). Lots of experimenting and learning on the job to be done......
Tibor Katelbach Wed 19 Sep 2018 5:21AM
that's the greatest news !! sorry for being quite disconnected from OAE, I had to fully concentrate on CO, Let's have call about all this and our new stuff. We are just coming out of a tunnel with great new feature for building and gathering communities, and project evaluation and benchmarking tools. About Activity Pub we'll just be starting implementation in october should go fairly fast since we have activityStream allready implemented. itmight be a good use case we could do together , I'll explain it all in the call . TAlk soon I hope
Lynn Foster Wed 19 Sep 2018 12:07PM
Yes let's do a call! It would be good if we can coordinate how we are extending ActivityStreams (right now I think we are doing it in different ways, from looking at your code a while back). And we'd of course be interested in your new stuff.
Danyl Strype Wed 26 Sep 2018 5:31PM
Hi @lynnfoster it's great to see you folks working on an AP app! I can't seem to access those CryptPad links. So I'm just wondering if you could describe a couple of user stories for the UX you have in mind, and how AP factors into them. How will federation allow your users to fulfill one or two economic goals that they couldn't accomplish using a silo like Loomio, Discourse, or CommunityForge?
Lynn Foster Wed 26 Sep 2018 7:16PM
Hmmm, sorry about the links. Probably getting old now anyhow.
First in terms of federation, we are re-thinking federation of groups or installations to be more like AP as an enabler of agent-centric architecture where a person or organization would have their own AP instance and connect out to others from there. So control of one's own data is part of it, and creation of networks that are not because you are in an affinity social group, but because you have chosen each of those connections, wherever they are. Affinity groups can be part of that too.
To be clear, we also know that the agent-centric vision will be slow in coming and will need lots of compromises now and for some time to come.
In terms of the UX, we picture a personal dashboard kind of thing from which people can operate in any direction with whatever groups or people they are involved. And a bunch of configurable options for what to include in one's dashboard. We are trying to think outward from the existing social network experience that AP offers to what could be added for economic interaction, keeping the ability to chat and post, but also having the ability to keep things segmented enough that a person doesn't get overwhelmed with the noise when wanting to work on one thing. We're doing some initial experiments with conversational UIs. Here's some stuff Bob has started writing up on to explain it. https://cryptpad.fr/pad/#/2/pad/view/64P7o1b-7n8WCppvlhlHoC6xqs6TYqgfuQsE7rrMxn8/ (hope the cryptpad works now)
In terms of user stories, thinking CommunityForge for example, from one's own AP, one could publish offers or requests, and specify where those should be published. Like, besides followers, one might have a collection of offer/request venues. They could then travel the standard outbox-to-inbox pattern to arrive at the venues of choice or people of choice. If someone wants to respond, that can also happen in an AP direct message kind of thing.
Connected user story: Once parties have agreed on an exchange (barter, timebank credits, cash, whatever), the transfers can be recorded in both the parties' software, from their personal dashboards, as well as the organization as needed (like a timebank). All of this data can maintain its relationships for retrieval - offer... commitment... actual economic events.
Or, say you are working with some other people on a project. The project could have its own AP, or could be an actor in some larger organization it is part of. But from one's personal dashboard, one could see all the projects one is working on at the moment, wherever they might be. I'm sure many are like us and have all kinds of unrelated projects going on at once that live in different apps. If one person initiates a process (or issue or ticket or whatever), then others involved in the project could see it because AP again could know who all is involved in any project and let just those people know. People could log work or what is consumed and produced (if say you're keeping inventory) on that process from their personal dashboard. And communicate about it using the AP social media UX but constrained by the group working together. Groups could allow followers too if they want, so anyone can watch what is going on.
Hope this starts to give an idea. Ask more as needed. And/or, wanna help? :)
Danyl Strype Tue 11 Dec 2018 7:28PM
@lynnfoster
But from one's personal dashboard, one could see all the projects one is working on at the moment, wherever they might be.
This sounds really useful! Do you imagine this dashboard living on a website I sign into, or an app I install, or both? Just to be clear, it could only display info from projects that are hosted using software that speaks ActivityPub, yes?
Lynn Foster Tue 11 Dec 2018 8:22PM
Do you imagine this dashboard living on a website I sign into, or an app I install, or both?
Right now a few of us are experimenting with our personal ActivityPub instances, installed and administered helpfully by @mayel . We access these through a browser just like a collective ActivityPub installation. We have some UI experiments going (@ivan116 is working on them) that imply a "personal dashboard", but we don't have it working technically as an actual personal dashboard yet.
Just to be clear, it could only display info from projects that are hosted using software that speaks ActivityPub, yes?
Yes for this project. Eventually, we would like to be able to integrate the various current and future methods for distributed communication so that one's choice of personal app could access any or all of the different methods. Like we have a holochain project going, and a bit of an ssb one. There are a bunch of architectural questions to be defined and solved, as you can imagine.
And all would have to speak common vocabularies for this to work - ValueFlows for economic activity, and maybe ActivityStreams for social activity.
Danyl Strype Thu 13 Dec 2018 5:08AM
Just to avoid confusion, can I suggest that you avoid talking about "ActivityPub instances", and instead refer to an instance by the specific software package it uses (eg "CommonsPub instances"), and talk about AP-compatible instances when it's important to make protocol use clear? It already seems to confuse a lot of people that ActivityPub is a set of protocols (a "standard"), not a piece of software, and that it's implemented by many packages of software, and many instances of each of those packages ;-)
Irina Bolychevsky Fri 4 Jan 2019 10:39PM
ActivityPub is super interesting. We (redecentralize.org) added support for it for our new discussion forum - which is in progress here: https://adhoc.group/*redecentralize, but not sure how many people use the standard!
Lynn Foster Fri 4 Jan 2019 11:14PM
Really interesting @shevski ! I tried to join the forum with my fediverse identity, but it couldn't find me. (It is a personal one - @[email protected]. And it is based on pleroma, and quite likely isn't completely AP standard. Yet!)
I'd be curious to see your source code for the redecentralize forum, maybe it would help us in our quest for a backend that follows completely the AP standards.
Thanks!
Tibor Katelbach · Fri 14 Dec 2018 7:28AM
https://github.com/pixelhumain/communecter/ ( https://github.com/pixelhumain/communecter/?utm_source=discussion_mailer&utm_medium=email&utm_campaign=comment_replied_to )
yep that module is dead
this is the core module
https://github.com/pixelhumain/co2
but the best place to see activity is here
https://github.com/pixelhumain
( https://github.com/pixelhumain )
every little feature of communecter is being cut up into mini standalone modules
that are also functionnal all together