社区无界限:Discourse-as-a-Fabric - 构思与头脑风暴

In ActivityPub Support: Phase 1 RFC I outlined an ideation exercise to evaluate the business case for having ActivityPub support in Discourse, and think beyond a MVP as-if Discourse was built from the ground up with federation in mind:

So hereby I will kick off the ideation with some brainstorming and without taking technical practicalities into account given current codebase. I realize there are many ins and outs and edge cases to all of this. This is a vision of what native federation support might look like. Here goes..

Community has no boundary

(Photo by Pixabay from Pexels)

We all share one planet :wink: intermingling in complex social structures. Why is a Discourse community restricted to a single forum?

I am admin of Humane Tech Community (HTC) and we cover a broad range of tech-related subject areas, having (sub)categories of “Freedom > Privacy”, “Alignment > Ethics”, “Alignment > Standards”. Too broad maybe, and many other Discourse forums exist that specialize on these categories, and in that field do a better job than we do. But for people interested in getting an overview of the entire field of humane technology the broad positioning makes sense.

Federating categories

What if I could federate our “Privacy” subcategory with e.g. the “Blog Posts” subcategory of the PrivacyTools forum? Maybe to only synchronise topics in one direction - as HTC’s privacy subcategory is broader in scope - where topics created at PrivacyTools appear on the HTC forum, and our members can interact with them. Topic posts on HTC forum are then transferred back to the topic at PrivacyTools and vice versa. The topics on both forums are kept in sync. Maybe I even want to one-way synchronize multiple PrivacyTools subcategories to “Privacy” at HTC. And why not sync with different privacy-related communities in a similar way.

Another example. Both the Feneas and SocialHub share a top-level “ActivityPub” category. There’s overlap in these, duplication, members from one community unaware of what is happening in the other community. This is an opportunity where “ActivityPub” is candidate for bidirectional synchronisation, where each forum then contains the same topic lists.

Federating tags and individual topics

Same can apply for tags, where a particular tag is configured to be federated. This might be e.g. set up such that any topic with #specification tag in SocialHub is federated to “Alignment > Standards” subcategory on HTC.

Topics may also be federated on a case-by-case basis, triggered by a toolbar command, where you specify the target forum to federate to, and maybe also select the remote category that the topic should appear under (i.e. the forum Category list is also federated for remote browsing).

Member mentions and profile views

When a topic is federated to another forum, any mentions within need to be adapted to reflect where the member resides. My @aschrijver handle at HTC might appear as @aschrijver@humanetech on the SocialHub forum after synching.

Since I am also a user on SocialHub in my profile settings I might connect the accounts, and after a verification this means that in the synched topics my local account handle can be shown.

When clicking a remote handle or member avatar the profile card of the remote forum is displayed. When clicking again to see the profile summary, it may show only the activity metrics on the local forum that resulted from synched topics interaction. Alternatively, and more interrestingly, it would show summaries from all known forums that are part of the federation config. E.g. I would then be able to find out that the response came from a very active, expert member on the other forum.

Direct messages and notifications

DM’s would be possible across all federated forums, not just locally, by tagging/mentioning the remote member in the DM. Other than that there would be no difference in the way that DM communnication takes place. It works the same as current local-only DM’s.

From all the federation stuff described above arises the need to also federate notifications. If I respond to a remote member’s post, like their post, or mention them in a synched topic thread, a UI notification may appear in the remote forum to notify the member. Email notifications are handle by the remote forum as well. However, if the member has linked accounts on both forums the notifications might be coming from the local forum where the interaction first took place.

Single sign-on

Note that in all the functionality described thus far, there’s no need to have SSO. A remote member does not have automatic privileged access to another federated forum. So what if they are mentioned in a one-way synchronised topic thread? In that case they will receive a UI notification and email coming from their own forum instance, and when clicking that are directed to the other forum (maybe in a new browser tab) where they can just view the topic. If they want to respond they have to first sign up and link accounts, to be able to respond.

Note that SSO is a tricky thing on the Fediverse, that has no good solution yet. But for Discourse-to-Discourse federation the SSO facility may be much easier to implement. If there were SSO integration, then clicking the notification might open the topic in-context within the current forum (as a ‘remote view’), and allow the member to interact with it seamlessly.

Federation management and complexity

This whole use case is described as-if Discourse was built from the ground up with federation support built-in. If all this is implemented it touches nearly all features of the product. Unlike the use case that started this thread - for FB-like personalized feeds - the federation here is carefully managed by forum staff, not on the whim of individual members.

Much of federation config is admin-only stuff. It should be done strategically and with a good plan, so as to keep the community organization and content intuitive and logical. The federation set up is built gradually over time as part of community-building workflow, not something that is casually added.

Interoperability

Of course this vision of ActivityPub support need not be restricted to Discourse. Any compatible software project could become part of the distributed community fabric. For instance forem’s open-source community building software and loomio collaborative decision-making platform, both of whom I just pointed in the direction of this post. But Discourse has the opportunity to take the lead in all this.

Fediverse integration

All of the federation support so far was limited to the forum/community business domain, but with ActivityPub integration interoperability can now expand to embrace the broader Fediverse, enabling numerous exciting business cases. Just to list some that randomly pop up with me now:

  • Announce forum posts fediverse-wide with toots on the Mastodon / Pleroma microblogging platforms.
  • Embedded images are auto-uploaded to PixelFed and served from there (nice for e.g. Blender communities).
  • Date/time toolbar allows setting up a full Mobilizon Event facing the fediverse, with full RSVP features.
    • Integration is 2-way enabled, where Mobilizon Discussions on the event are actually Discourse topics.
  • Create PeerTube topics with special video features, where the posts are the comment thread at PeerTube.
    • Same holds for Owncast if they add AP support (see this issue).
  • Your published topic automatically becomes a Writefreely blog post plus comment thread.
  • Embed parts of your forum into Nextcloud as an app via its ActivityPub support.
  • Integrate podcast features via Funkwhale (see recent video about podcasting support).
  • Obtain profile info from Flockingbird, professional social network under development (LinkedIn-like rolodex).

And look at the ever growing number of apps on the ActivityPub Watchlist and let your fantasy guide you :smiley:

Consequences

Forget for a moment all the technical hurdles and obstacles and consider what having this means for Discourse as a product. Or rather as Discourse no longer being ‘just-a-product’: Discourse has become a distributed community fabric.

Forum staff are no longer just that. They’ll adopt a much broader perspective to community-building. Both the community and community content exists all across the Discourse fabric. Staff will be actively looking at other Discourse instances, approaching their staff to forge partnerships and create interesting federation designs to slice and dice their community organization and content to be most interesting for the community member base.

The community members themself are also much better served. More interesting content will flow to their forum ‘portal’ and the forum will be more active than if it were just a local thing. Community members will be able to discover and interact with members of other forum instances all across the fabric. In fact the community boundary has been removed: Community has no boundary.

17 个赞

公平地说,我只是粗略地浏览了一下,不过:你打算用这个面料创意解决什么问题?

2 个赞

首先,我在头脑风暴的输入中描绘了大量不受限制的可能性。但就我个人而言,我希望在两个方面看到改进:一是作为普通社区成员,二是作为社区协调员(目前我在 5 个论坛担任工作人员,偶尔会进行跨论坛发帖):

  • 作为社区成员,我现在在 15 到 20 个 Discourse 论坛上拥有账号,需要不断切换这些账号(其中一些甚至已被遗忘)并管理密码,还要以类似轮播的方式逐个网站查看热门内容。由于我的兴趣所在,这些论坛的内容领域往往存在大量重叠。现在,即使你邀请我加入你在我最喜爱主题上的优秀论坛,我仍然会非常犹豫,不愿再创建一个新的账号。

  • 作为社区协调员,我也面临类似且相关的问题。我的社区可能规模较小,而你可能会选择加入另一个在相似或部分重叠主题上拥有内容的社区。或者情况恰恰相反。甚至你可能根本不知道那个优秀社区的存在(也许我作为社区协调员知道它的存在,但我是否会专门发布一个置顶主题来告知我的成员呢?)。

一旦联邦支持到位,社区协调员之间就可以通过建立合作伙伴关系实现双赢,为各自连续的受众群体精心规划论坛组织结构,并从彼此的优势中获益。具体来说,这将包括:

  • 能够选择最合适的来源进行联邦连接,从而提供更高质量的内容。
  • 拥有更大的成员基础——即整个联邦的聚合体——从而有更多人与之进行有趣的讨论。
  • 提高所有参与联邦的论坛实例的活跃程度,有助于留住经常访问的用户。

这三个方面——质量、数量和活跃度——是任何成功社区的关键 :slight_smile:

8 个赞

我同意,这确实是个麻烦。我通过添加 Discourse 社区的 RSS 订阅源,并启用内置的每周摘要邮件来解决这个问题。

5 个赞

我最近刚读完尼尔·弗格森的《广场与高塔》,该书探讨了社交网络(个体之间隐秘且非正式的社交联系)在世界历史中的影响。这本书远非完美,但它始终强化了你的观点:“社区没有边界”。分布式网络比等级制度更具韧性、创新性和平等性。Discourse 将自己描述为“从零开始的重新构想,旨在重新定义现代互联网讨论论坛在当今世界应有的模样——在一个智能手机、平板电脑、Facebook 和 Twitter 无处不在的时代。”除非 Discourse 的雄心壮志仅仅是成为一时最顶尖的论坛软件,否则集成 ActivityPub 无疑是严肃挑战 Facebook、Google、Twitter 等巨头,并颠覆人们对在线社区所能达到高度的预期的明确路径。

8 个赞

@aschrijver 没问题,我个人非常赞同这些想法和思路。

这看起来相当“容易”实现。关于账户部分,你可以使用一个主 Discourse 实例作为 SSO 提供商。其他 Discourse 论坛只需加入该系统即可构建统一的用户基础:你的用户名在整个使用该系统的 Discourse 实例中都是为你预留的。理想情况下,论坛管理员/所有者应在创建论坛时加入。当然,之后加入也是可能的,只是届时需要解决所有重复用户名的问题:管理员必须让那些用户名在系统中已被占用的用户更改用户名。

关于合作部分,利用 Matterbridge 和/或 Discourse API 的插件应该能够实现所有功能。这里只需要进行一些插件的开发和完善工作。

或者,针对新论坛,可以采用“多站点”方案:在一个主 Discourse(可以是上述 SSO 提供商的同一个实例)上创建分类,一个分类即代表一个“论坛”。通过调整一些设置,你可以将用户“锁定”在特定分类内,移除对主“分类”的提及,并将其重新定义为不同的“论坛”。通过启用子分类,每个论坛仍保留两级分类结构。虽然还有一些调整工作需要做,但这能直接实现统一的用户基础以及站内私信互通(因为你们都在同一个 Discourse 上!)。

你可以结合这两种方案:将部分论坛托管在主 Discourse 上,同时让外部论坛链接到它。我认为将你的愿景变为现实相当容易。如果有兴趣,我可能愿意参与这项工作(不过我需要一些帮助)。我已经注册了域名 webforum.link,可用于此项目。

附注(在看到之前的帖子后):ActivityPub 是“开放”的。而上述想法则更为“封闭”,仅限于 Discourse 论坛。此外,加入的难度也会更大。

3 个赞

@aschrijver,继我们在 ActivityPub Support: Phase 1 RFC - #50 by Mevo 上的帖子交流之后,我也想在这里继续探讨这个问题(这是一个更合适的主题):

最近我发现了一件非常有趣的事情:一些人创建了一个名为 Openbazaar 的免费去中心化市场。其基本理念是打造一个完全开放的平台,任何人都可以上架任何商品进行销售,且不存在任何限制或审查的可能性。它基于加密货币进行支付,并提供对卖家的评价功能,同时设有调解员系统,用于仲裁可能出现问题或纠纷的交易。交易本身完全不收取任何费用,整个平台 100% 免费(仅在调解员需要介入的情况下,才会收取少量调解费用)。

从纸面上看,我认为这个构想非常棒。然而,它却从未真正普及开来。另一方面,像 eBay 或 Amazon 这样对每笔交易收取相当高费用的平台,却运营得非常好。

关键在于,拥有一个能够控制某项事务、有动力使其成功(因为他们能从中获得经济利益),并愿意为此目标投入资源的人或组织,通常比那些免费、开放且崇高的理念更容易取得成功。这或许令人遗憾,但在现实中,这似乎就是普遍发生的情况。

Mastodon 是否取代了 Facebook 和 Twitter?未来会吗?用户似乎并没有对 Facebook 上铺天盖地的广告感到厌倦。

无论如何,在我看来,你在关于联邦化(federation)的观点中似乎没有考虑到这一方面。因此,我想提出这一点供你参考(或至少让你了解)。这并不意味着支持联邦化功能或建立合作伙伴关系不是一个好主意。但追求“完全联邦化”也可能削弱运营软件的吸引力,因为它最终仅仅变成一个“节点”,而不再是你能够掌控的东西。至少在某种程度上,这两者截然不同。

1 个赞

平台的使用增长并非线性。以 Signal 为例:斯诺登曾说“使用 Silent 或 Signal”,该应用随之发展,但长期仍属于小众。而当 Gafam 发布不当信息,且埃隆·马斯克表示“使用 Signal”时,数十万用户随即涌入,因为他们同时依据相同标准进行了评估,而该应用恰好满足了他们的需求。

近期,一些用户可能已悄然离开 Twitter 和 Facebook,鲜有媒体报道,原因是他们信息流中主要的互动来源账号已被删除。

社交媒体系统越趋向混乱,用户同步进行大规模“卸载应用 A、安装应用 B"的可能性就越高。

1 个赞

我不确定 Signal 的例子是否真的具有可比性。在这里,有一个明确的新增功能,以及人们使用它的理由:“使用加密通信,确保你的言论保持私密,无人能窃听”。这相当于从非加密转向加密。

但当从一个“封闭”且“孤立”的平台转向一个“开放”平台时,如果我们考虑“完全联邦化”,它是否真的为用户带来了什么?是否真的为他们增加了功能?有些人可能会说是的,因为他们看到自己参与多个社区,而联邦化可以聚合这些体验(我理解登录多个不同社区是多么繁琐)。但与此同时,如果所有用户都迁移到一个“封闭”的社区并使其占据主导地位,对他们来说结果也几乎相同。我不确定他们是否会察觉差异,或者是否真的想要“开放性”。

人们关心的是内容、互动等,但技术如何运作以及由谁控制,对他们来说真的重要吗?转向“联邦化”在某种程度上是社区从“竞争”转向“共享”的过程。它们彼此可能是朋友,也乐意将用户从一个社区引导到另一个,但在封闭状态下,它们仍然相互竞争。

你的第二点很有趣:某些“联邦化”能否防止封禁、账号删除和审查?这可能才是对用户而言真正新增的“功能”。目前在使用 ActivityPub 时,我猜你可能会被单个站点封禁,但只要你注册的站点没有封禁你,你就可以继续向联邦中的其他站点发帖……@aschrijver,你知道这具体是如何运作的吗?(我对 ActivityPub 还不够了解)。你是注册在某个联邦层级,还是注册在联邦中的某个具体站点?能否在联邦层面被封禁?还是说这根本不可能?(按理说应该是不可能的吧?)

@jibe-b 这个问题并不是关于从应用1迁移到应用2,而是将各个封闭的应用与联邦化的(开放的)系统进行对比。同样,也可以存在具有强烈言论自由政策且不封禁用户的封闭独立应用(事后诸葛亮很容易,但“反应提供商”本应预见这一点)。你可以通过彻底去中心化并移除任何人的封禁能力,来保证一个无封禁的环境。不过,我认为防止审查并不是 @aschrijver 的初衷。

1 个赞

(为简洁起见,我引用了片段)。这里的餐厅类比其实不太成立。这就像你同时坐在两张桌子旁,并且身处一个更大的“聚合”餐厅,有更多人与你一同庆祝。你所说的可能是对的,但这完全取决于具体的实现方式。

虽然 ActivityPub RFC 主题@hellekin用例 将完全控制权交给了个人,但在上述我的描述中,社区结构完全掌握在社区工作人员手中。他们与其他社区建立合作伙伴关系,并且可能只能在双方同意的基础上分享社区的某些部分。

我认为这样做更符合 Discourse(公司)以及那些投入巨大精力打造自身身份和会员基础的社区管理者的利益。也就是说,这更像是一个 商业案例。因此,工作人员仍将拥有完全控制权,并负责确保社区组织的构成全面且直观。他们是“社区结构的编辑者”。

如果你允许 Discourse 用户完全自由地用来自各处的论坛内容填充他们空白的“门户”,那么你将得到一种完全不同的社区动态。该用例在特定情况下具有价值,但它与“工作人员保持控制”的用例完全不同。当然,介于两者之间的各种灰色地带也是可能的。

是的,我知道它们,我也热爱 OpenBazaar 作为去中心化市场 的理念,但阻止我去尝试它的是加密货币。这是一个信任问题。对许多人来说,这可能也是阻碍他们的原因。但除此之外,是既得 Big Tech 巨大的网络效应使得新进入者很难立足,他们推出新服务,在拥有数百万日活跃用户的网站上进行广告推广,并能够在事情最终兴起之前承受巨额亏损运营。

是的,我同意这一点。这就是为什么我没有聚焦于“完全自由”,而是如上所述聚焦于“工作人员控制”的用例。在此模式下,ActivityPub 支持为 Discourse 作为社区管理者的产品增加了一个独特的卖点(USP),即付费客户。嗯……如果他们选择云托管订阅的话。

在这方面,Discourse(公司)可以通过提供增值服务来使订阅更具吸引力,例如提供发现和配对服务,让不同社区的社区管理者积极寻找合作伙伴关系和协作,以丰富他们(并隐含地丰富彼此)的社区。该服务可供任何人访问,或仅限付费计划客户访问。

它们应该想这么做吗?为什么这应该是目标?作为协议的 ActivityPub 允许 许多不同领域许多不同应用 在任何层级上互操作。每个项目/应用/产品都将追求自己的目标,对于商业软件而言,则是其自身的独特卖点(USP)。

第一部分很重要。明智地选择你的联邦化方式。如果这样做会让你失去作为产品的所有身份,那么完全联邦化 绝不应 成为目标。

首先,“联邦化”与“联邦宇宙”(the fediverse)是有区别的。如果你使用 ActivityPub 构建联邦化,你可以按任何你想要的方式构建它。如果你构建的目标是集成到联邦宇宙中,那么存在一些既定事实标准来规范运作方式。在用户层面进行全联邦范围的封禁是不可能的,而对特定实例的封禁是基于每个其他实例管理员的决定,并配置在黑名单和白名单中。这些列表通常会被共享(类似于广告拦截器列表),并可能导致某些实例在整个联邦宇宙中被完全封禁(“它们被推到了联邦宇宙的边缘”)。

一个解释该概念的优秀视频是:

就像论坛一样,联邦宇宙中的每个联邦实例都是经过管理的。我认为这是一件好事。仍然拥有完全的自由,因为你可以启动自己的论坛/服务器实例而不进行管理,让一切随意发生。其他人也有基于此原因封禁你的自由。

4 个赞

委托社区管理

因为这是一个大胆的头脑风暴,而且我刚刚看到了这个主题 招募志愿者社区管理员 :mega: …… 我就在想:

—> 如果社区管理是联邦化的会怎样?

假设你是一位刚上任的社区管理员,管理着一个新安装的 Discourse 论坛,对管理界面和社区建设实践完全陌生。如果你能在一段时间内邀请一位经验丰富的社区管理员来为你提供建议并指导你,会怎么样?

我知道你们可能会说:“为什么不直接在那个论坛上创建一个管理员账户……根本不需要联邦化!”你说得对。但让我们换个角度,让这件事更有趣一些:如果我想以志愿者或专业人士(即付费)的身份提供我的 Discourse 和社区管理技能呢?

我希望能够在我的“客户组合”中尽可能高效地管理多个社区。这将实现三赢:

  • 新的社区管理员可以获得入职服务,更快地上手。
  • 社区管理员可以更广泛地发挥其技能,不仅仅局限于自己的社区。
  • 以上两点意味着 Discourse 为其产品增加了另一个独特的卖点(USP)。

那么这会是什么样子的呢?我不确定……有很多可能性。以下是一些建议,在每种方案中,被委托的管理员都通过联邦机制从他们自己的论坛门户进行操作,可能同时管理多个社区:

  • 被委托的管理员可以设置论坛设置、安装插件/组件/CSS,但需经真实管理员批准后才能生效。
  • 被委托的管理员可以访问仅限员工的分类和群组,并参与讨论以提供建议。
  • 被委托的管理员处理论坛中提交的举报,只有包含举报的主题会被联邦化并同步到他们的门户。
  • 被委托的管理员了解社区生态,可以帮助安排与其他社区的合作,并促进内容共享。

请结合上文考虑以下观点:

这也可能是一项增值服务,可以与上述内容结合。所有相关方都有兴趣确保被委托的管理员在某种程度上经过筛选,成为优秀的社区管理员。Discourse(公司)可能只允许处于(付费?)订阅状态的用户成为被委托的管理员。Discourse 或其合作伙伴可以提供社区管理课程,通过该课程后将获得由 @codinghorror 认证的批准证书。

好吧……无论你是否喜欢这个想法,对我来说这都是一次不错的头脑风暴,哈哈 :grinning_face_with_smiling_eyes:
也许你能让它变得更好?


编辑

Discourse 本身也会使用这项服务。在我们开始付费订阅时,Discourse 团队的一名成员曾作为我们论坛员工的一部分,提供类似的帮助。有了这项功能,他们可以从自己的远程“驾驶舱”完成这项工作,或者……将其委托出去。

另一件涉及社区部分共享的事情:有几次当我在 Meta 上发帖寻求特定帮助时,该主题会被设为私密(有时是因为包含敏感信息),并由 Discourse 团队作为“支持工单”处理。通过联邦化,我或许可以将 Meta 的支持部分集成到我自己的论坛中。

4 个赞

(此处的格式由我调整)。我非常喜欢 @JE-FF 的这个定义,它完美契合了“社区无边界”和“论坛即织网”这些创新理念所应采取的方法。不过,正如我也曾向 @Mevo 提到的,我怀疑 Discourse 是否真的想要挑战科技巨头的社交媒体。如果他们愿意,当然可以,但似乎并无必要。Discourse 本身已经相当成功,且其定位如今已有所不同,即作为多租户 SaaS 服务,一个“独立社区论坛的云端”。不过,通过将社区概念延伸至租户边界之外,他们或许能更好地在与论坛及社交媒体领域竞争对手的较量中占据有利位置。

2 个赞

非常感谢,@aschrijver。你的表述非常清晰,老实说,我几乎完全同意你所说的所有内容。我之前撰写消息时,心中有一个想法,认为你提出的方案只是一个“垫脚石”,而“完全(且完全开放)的联邦”才是最终目标。现在,我甚至不确定这个想法从何而来,你甚至可能从未说过类似的话。这可能是我个人的误解(甚至是凭空想象),或者是我把其他人说过的话搞混了。

ActivityPub 所能允许的一切,同时你仍然可以自主选择行事方式——是的,这一切听起来都太棒了。 我想你说得对,人们可能会在 ActivityPub 和联邦宇宙之间产生混淆(你已经在另一个主题中解释过这一点)。

就我个人而言,我非常喜欢你提出的所有想法。在联邦式的“社区管理”方面,能够以这种方式访问版主也会非常有用。例如,当你的社区热度上升,或遇到需要更多版主处理的特殊活动时,你可以临时启用这些版主(所有这些可能在你心中已包含在“社区管理”的概念中。你确实提到了“标记”功能,但你同样可以访问更多“管理员”类型的人员,而不仅仅是“版主”或“社区管理者”,如果你将这些任务视为不同的职能的话)。

正如之前所说,所有这些都可以“通过插件和/或独立站点”在侧面实现(可以有一个“自由职业者”独立站点,列出并提供服务,让人员直接入驻社区工作。虽然不如拥有一个专属平台那样理想——该平台可通过 ActivityPub 实现远程管理和聚合——但这已经是一个很好的开端)。

这一切都取决于 Discourse 团队是否愿意采纳其中一些想法,并直接在 Discourse 中实现它们。

4 个赞

我对此持不同意见。我一直利用多站点设置来促进对 Discourse 实例的群组所有权,使一个紧密的群体能够成为其自身的“工作人员”,同时与更大的社区保持直接联系。在我看来,通过运用辅助性原则(即决策应尽可能贴近实践层面来制定),调整社区边界能够赋予社区力量。

首先,你似乎将他所说的话解读为“如果没有某种‘工作人员管控’,用户就会行为不端”,但在我看来,他并非此意。其次,他只提到了“完全不同的社区动态”,并未对此做出好坏的评判。你实际上通过称其为好事而表示赞同(它仍然是“不同”的)。

但这并不是讨论的焦点。讨论并非关于这种“管控”,也不是针对用户有任何问题。

是的,这主要在于展示选项范围的广泛性,以及针对特定场景进行灵活调整的自由度。如果我只关注 ActivityPub 这一核心,它能让联邦功能的实施者完全掌控“球权”。已实现的用例都是同样有效的(前提是它们是在产品开发过程中经过深思熟虑而设计的)。

我注意到 @hellekin 的情况确实处于自由度较低的一端,值得进一步探讨。@hellekin 比我同时管理着更多的论坛,而且方式颇具创意,这一点在 SocialHub 论坛上可见一斑,各个 ActivityPub 软件团队可以掌控论坛中属于自己的板块。这些团队通常还拥有另一个独立的论坛(例如 Mastodon 的情况)。我们应当鼓励他们进行“双重工作”,以便让 AP 社区了解他们自行开发的软件中所嵌入的自定义联邦扩展。此外,SocialHub 还拥有一些可被视为卫星论坛的附属论坛。

3 个赞

我刚刚决定再注册一个 Discourse 论坛,只为帮助他们,并(复制/粘贴)一些来自其他论坛的有用话题链接。这又增加了一个需要管理的 Discourse 用户账户。

该论坛是 Fedeproxy,这是一个新的 ActivityPub 项目,旨在同步代码托管平台(如 Github、Gitlab、Gitea 等仓库)。它可能会成为 Forgefed 协议的一种实现,在此提及它有两个原因:

  1. 这又是一个完全不同的业务领域可以极大受益于 ActivityPub 联邦制的例子。
  2. 如果 Discourse 支持联邦制,该论坛的 #development 分类就可以与 SocialHub 的 #software 子分类进行双向同步,而无需在两个论坛上工作并重复讨论。

更新

在 Fedeproxy 论坛上,一位用户(顺便提一下,他并不想在这里注册,只是为了发一条帖子)指向了一个有趣的链接数据本体,用于社区,即 SIOC 核心本体规范,其中 SIOC 项目 代表“语义互联在线社区”。该本体在链接数据中定义了以下语义:


在此提及,因为它突出了业务领域/词汇表的思维方式,并可以激发头脑风暴 :slight_smile:

(附注:不要被 SIOC 规范中的“语义网”一词误导。这与那无关——过于复杂——而是寻求封闭的链接数据词汇表来定义特定领域。)

更新 2

我今天发现了一个很棒的项目,其领域与 Discourse 类似,并在那里发起了“社区无边界”的讨论:

PubPubKnowledge Futures Group 的一部分,他们也在开发开放分布式知识图谱项目 Underlay(这接近于我关于从 Discourse 论坛聚合知识的想法 https://codeberg.org/innercircles/seedvault/issues/1)。

更新 3

我意识到关于社区的讨论比 Discourse 本身要广泛得多,因为社区概念在我们社会中是如此普遍。对于 Fediverse,我发起了一场关于标准化社区领域并据此建模 ActivityPub 扩展的讨论:

7 个赞

ActivityPub 是个好主意,但即使是刚推出、将其作为核心功能实现的软件,也不得不修复规范中的不少漏洞——因此对我们来说,先观望一下是更明智的选择。

此外,如果某个特定群体对此充满热情,那么将其作为一个插件来实现也完全可行。

13 个赞

如果能看到这样的集成以拉取请求(PR)的形式合并到 chat-integration 应用中,那就太棒了。这样,在添加凭据后,我们只需通过标签、分类或提及即可轻松进行跨平台发布。干杯!

7 个赞

感谢 @codinghorror。是的,ActivityPub 规范中确实存在一些空白。但这些空白在很大程度上是有意为之的:一方面,规范制定者不希望创建一个包罗万象、庞大且复杂的技术标准;另一方面,在撰写规范时,他们也无法预知规范将如何演进。因此,他们选择等待参考实现的出现(这也带来了一些弊端,例如 Mastodon 使用了自定义的客户端 API,而非规范中的“客户端到服务器”部分,但 Mastodon 也定义了一些实用的 命名空间扩展 供使用)。

目前,这些空白大多已被其他开放标准填补(尽管仍有一些待完善之处)。例如,服务器到服务器的联邦通信使用 HTTP 签名(较少使用的情况则使用 JSON-LD 签名),联邦用户提及则使用 Webfinger。客户端到服务器通信采用 OAuth2 客户端凭证模式,而服务器能力通信则存在事实上的 NodeInfo / NodeInfo2 规范。

我同意,本线程中讨论的许多内容(可能占大多数)可以通过插件和 Discourse 强大的 API 来实现。正如 @sunjam 所说,如果有人愿意在此领域进行探索,那确实会非常:slight_smile:


基于这次头脑风暴,我在 SocialHub 论坛上发起了一些更广泛的讨论,特此推荐:

更新 2021/03/07:在 SocialHub 关于创建社区词汇表 AP 扩展的主题中,我进一步阐述了 Discourse 如何融入社区模型。请查看我的帖子:

7 个赞