Replies: 3 comments 2 replies
-
I think these need to be scoped by how they are used and what they apply to. The simple solution to be scoping them to a single collection which is documented by the application(s) using them. Not all applications want to share the same social graph. The people I follow on Smoke Signal will probably be different than I follow on bsky.app and the same for frontpage.fyi. |
Beta Was this translation helpful? Give feedback.
-
Open question: Are there other types of social graph edge types besides "following" and "blocking" that should be specified? |
Beta Was this translation helpful? Give feedback.
-
Hello! I led a discussion on this Lexicon with my community like previously done with #9. Here's our comments on the current proposals, as well as some additions:
Happy to work on more concrete proposal for any of these if there's interest! |
Beta Was this translation helpful? Give feedback.
-
Abstract
This RfC proposes a standardized approach to managing social graph relationships on the AT Protocol through a community-governed namespace,
community.lexicon.graph
.Intent and Rationale
This proposal aims to provide AT Protocol services with a unified method for storing and accessing edges on a wide AT Protocol-based social graph as well as their relationship types. The status quo as of this proposal is that the largest ATP service, Bluesky Social, primarily uses the record types
app.bsky.graph.follow
andapp.bsky.graph.block
to establish a social graph on the AT Protocol. No other service currently implements a social graph, and most plans to implement one usually include borrowing Bluesky's social graph and underlying record types. In the spirit of lexicon.community, this social graph should be implemented within a community-governed namespace such ascommunity.lexicon.graph
.Examples
Following Lexicon
Block Lexicon
Example Block Record
Implementation Details
The primary issue in changing the underlying record types for a social graph is the large amount of existing records using the prior record types within the Bluesky-controlled namespace. Will these records be left alone and treated as if they werecommunity.lexicon.graph.*
records by clients? Should servers automatically convert these records to the lexicon.community-controlled namespace? Iscom.atproto.graph
a more preferable namespace, considering the protocol-wide scope of the social graph? This issue could hinder further development of thecommunity.lexicon
namespace, and likely requires cooperation from the Bluesky Social developer team.The proposal has been amended to more closely match the behavior of an "ATmosphere-wide" social graph Lexicon that service-specific social graphs can "override" with their own Lexicon. If User A blocks User B with a community.lexicon.graph.block record, this should have the same behavior as User A blocking User B on every AT Protocol service that is compliant with lexicon.community. The behavior for a community.lexicon.graph.follow record can be inferred. A repo's service-specific follow record for a user should be invalid if a "lexicon.community" block record exists on that repo for that same user. A repo's "lexicon.community" follow record for a user should be invalid if a service-specific block record exists on that repo for that same user.
Beta Was this translation helpful? Give feedback.
All reactions