I’ve noticed in the explosion that we are getting duplicate communities in multiple instances. This is ultimately gonna hinder community growth as eventually communities like ‘cats’ will exist in hundreds of places all with their own micro groups, and some users will end up subscribing to duplicates in their list.
A: could we figure out a system to let our communities know about the duplicates as a sticky so that users can better find each other?
B: I think this is the best solution, could a ‘super community’ method be developed under which communities can join or be parented to under that umbrella and allow us to subscribe to the super community under which the smaller ones nest as subs? This would allow the communities to stay somewhat fractured across multiple instances which can in turn protect a community from going dark if a server dies, while still keeping the broader audience together withing a syndicated feed?
I propose two ways to create super communities:
Proposal 1) Tag and tag health)
A) Community tags: Here each community is associated with a set of tags (for example, the community ‘Earth’ can have tags #geology #geography #climate_change). When users post original content to these communities, they will be automatically suggested to add these default tags, but they can remove some tags or add other tags.
B) Tag health: A user Alice who consumes the content can view these posts, upvote some posts, downvote some posts, and can also report an inappropriate tag. Based on these reports, a numeric value can be ascribed to the health of each tag in that community. If the tag #climate_change is reported in a post, then that tag health would reduce.
For example, the community ‘Earth’ can have tags #geology (90% health), #geography (80% health), #climate_change (40% health).
C) Super-Community: A user Bob can create super communities based on community tags and tag health.
He can create a super-community ‘#geology’ which would lookup ‘Earth’ and pull the appropriately tagged posts from there. These tags are considered healthy, but Bob can set his own health threshold (say he sets it at 70% health).
He can also create a super-community ‘#climate_change’. This will not lookup posts from ‘Earth’, not even the appropriately tagged posts, because a lot of these posts were reported to be bad.
D) Tag Algebra: A user Charlie can create a super-community with multiple tags. For example, he can create (#novels OR #light_novels) EXCEPT (#tragedy AND #drama).
E) User Interface: When user David tries to create a super-community, he would simply enter the relevant tag(s). An advanced customization option would be hidden by default, but the user can expand it if he wishes. Upon expanding, he can see the default health threshold, and can modify it if he wishes. He can also see a list of all communities with that tag, along with their tag health, and a toggle button which automatically turns on or off based on the health threshold. The user can also manually override the automation, and specifically set one community to be on or off.
F) Conclusion: Unlike a central repository of super-communities, this approach can dynamically add new good communities. This approach can also remove old communities which have been abandoned by their moderators, when their tag health has deteriorated.
Proposal 2) Machine Learning Classification)
This is an extension of the first proposal of tag and tag health. Here we consider the following problem:
A) Problem) Suppose a community considers itself to be a neutral #news community. However, they have an unknown bias (capitalist, socialist, communist, etc). This bias is not reflected in the community tag or the post tag. However, users of one bias group would be dissatisfied to see posts of a different bias group.
Users outside the community cannot set unofficial tags or unofficial descriptions for the community since that can be abused. Then how would users create super-communities in a satisfactory manner?
B) Solution) Tag subgroup) Communities that share the same tag (say #news) would dedicate some of their server computing power for appropriately grouping themselves.
Suppose there are communities News1, News2, News3. Each community (say News1) would observe whether its own users upvote/downvote content from other communities (News2 and News3). Based on this, it would establish a positive link strength or a negative link strength with other communities.
In addition, moderators can also add a section called suggested similar communities, and dissimilar communities.
Based on these link strengths, all communities with the same tag (or tag algebra) can be grouped into multiple groups. When a super-community is created with this tag (or tag algebra), then the communities are grouped together if they have positive link strength with each other. However, if some child community has high negative link strength with other communities, then they would be classified into two or more groups, such that each group has positively linked child communities.
C) User interface) When user Emily tries to create super-community #news, it will get automatically created if the child communities do not have too much negative link strength with each other. However, if some news communities have a different theme from other news communities (negative link strength), then they would be auto-grouped into two or more groups.
Emily would see an advanced setting which is auto-expanded, and it will show two or more different groups. Each group would have a snippet that shows a couple of highly upvoted posts. Based on these snippets, Emily can choose any one group, or she can also choose any/all combination of these groups.
D) Conclusion) We can avoid the problem of duplicate communities with conflicting themes on multiple server instances.
I think tags are a good idea, it doesn’t have to be too complicated (like proposal 1A only) but there should be a limit of around 5 tags a post and 5 tags a community.
I think that it fair.
That’s programmer logic. What we need is that mods of example.com/c/community and instance.xyz/c/realcommunity can agree on connecting, and from then on, everything from either would show up on the other as well.
No need to make things too complex.
Even after they connect, a user needs to subscribe to topics of their interest. It would be burdensome for a user to subscribe to the same topic multiple times on multiple servers, because everything is fragmented.