If Alice makes a followers-only post, and Bob replies to it, to whom should Bob's reply be visible?
-
@novelgazer the original post and the replies don't have to be isomorphic. If I post a photo of a bus, do all the comments have to be photos of buses? No, obviously not. A "followers-only" conversation where every post is visible to the author's followers is meaningless; it's much more important and natural to have a conversation amongst a group of people.
@evan on reflection, I take it back. I think Alice's followers is right. Bob should be aware that he's replying to "Alice's followers only."
-
@evan
Either :
1. Respect OP pref only (all replies visible to Alice followers) + inform repliers their post pref might not be respected as they're not OP & their replies will be visible to all Alice followers.
2. Also respect replier pref (so intersection of Alice followers and Bob prefs) and when that prevent users from seeing a response, show it to them (u cannot view answer unless by following x, with a button to do it if wanted)
Ideally we'd have distinct prefs for our op vs replies -
@evan
It should be visible to the original set as Alice shared the post with her followers, not followers of followers (light blue segment of set diagram). Any of Bob’s followers that also follow Alice will see the post and replies anyway. See comments on set diagram and post about the set theory maths/model - https://mastodon.social/@dahukanna/116030140984675453@dahukanna @evan @stefan
I would argue that it should be an option to allow for, or encourage, growing the group with replies.
But for certain, this shrinking of the audience (to the intersection of A and B) should be an *option* for Bob. Bob may not care to restrict their replies to their own followers. Bob may want to talk to everyone seeing the OP. -
Mastodon doesn't do either of these things, by the way. It doesn't let you reply to Alice's followers, and it doesn't use the `replies` collection for showing and hiding replies. It's too bad; these are really valuable features of ActivityPub.
@evan i think you know where i already stand on this, but instead of recursively crawling replies collections it would be better if alice had a collection that alice owned and contained a flat set of whatever alice wanted to be in it.
i think "bob gets to choose" is not inherently problematic insofar as alice never actually established any context. bob's post stands on its own, with any arbitrary audience. if there *was* such a thing as "alice's convo" then it can/should have its own audience.
-
@evan i think you know where i already stand on this, but instead of recursively crawling replies collections it would be better if alice had a collection that alice owned and contained a flat set of whatever alice wanted to be in it.
i think "bob gets to choose" is not inherently problematic insofar as alice never actually established any context. bob's post stands on its own, with any arbitrary audience. if there *was* such a thing as "alice's convo" then it can/should have its own audience.
@evan this does lead to a sort of split horizon where "the conversation" depends on who you ask.
in the absolute sense, the global context, bob's reply can continue to exist outside of alice's context. this is actually quite normal -- what is weird is the assumption that all replies must necessarily be bound together.
if i could set my own metadata, this reply would exist in a separate context than your poll, and you might be cc'd.
-
@evan this does lead to a sort of split horizon where "the conversation" depends on who you ask.
in the absolute sense, the global context, bob's reply can continue to exist outside of alice's context. this is actually quite normal -- what is weird is the assumption that all replies must necessarily be bound together.
if i could set my own metadata, this reply would exist in a separate context than your poll, and you might be cc'd.
@evan re: "but you're replying to something that could be private"-- yes, i could be. i could be replying to anything or nothing at all. replying to a cnn article, replying to an overheard statement, replying to the weather, replying to a concept.
one example i think about in this regard is how the Linked Data Notifications spec is technically a response to the Social Web WG charter, because that's what prompted its existence: https://www.w3.org/TR/ldn/
if alice lets you see it, cool! if not...

-
@evan re: "but you're replying to something that could be private"-- yes, i could be. i could be replying to anything or nothing at all. replying to a cnn article, replying to an overheard statement, replying to the weather, replying to a concept.
one example i think about in this regard is how the Linked Data Notifications spec is technically a response to the Social Web WG charter, because that's what prompted its existence: https://www.w3.org/TR/ldn/
if alice lets you see it, cool! if not...

@evan anyone recognizing "alice's conversation" asks alice what is in that conversation, canonically according to alice.
bob's signal for participating in alice's conversation is referencing alice's conversation as context for bob's post... and addressing the audience of alice's context, and perhaps even choosing not to address his own followers if it's not relevant to them. this works much like a mailing list.
in https://w3id.org/fep/7888 i use `context` and `context.audience` as examples.
-
@evan anyone recognizing "alice's conversation" asks alice what is in that conversation, canonically according to alice.
bob's signal for participating in alice's conversation is referencing alice's conversation as context for bob's post... and addressing the audience of alice's context, and perhaps even choosing not to address his own followers if it's not relevant to them. this works much like a mailing list.
in https://w3id.org/fep/7888 i use `context` and `context.audience` as examples.
@evan this is of course heavily inspired by, if not taken almost directly from, section 5.1.1 "context and audience" in AS2-Vocab: https://www.w3.org/TR/activitystreams-vocabulary/#audience-and-context
-
@evan i think you know where i already stand on this, but instead of recursively crawling replies collections it would be better if alice had a collection that alice owned and contained a flat set of whatever alice wanted to be in it.
i think "bob gets to choose" is not inherently problematic insofar as alice never actually established any context. bob's post stands on its own, with any arbitrary audience. if there *was* such a thing as "alice's convo" then it can/should have its own audience.
@trwnh Yes, I agree that a thread collection and a replies collection are useful.
-
@evan anyone recognizing "alice's conversation" asks alice what is in that conversation, canonically according to alice.
bob's signal for participating in alice's conversation is referencing alice's conversation as context for bob's post... and addressing the audience of alice's context, and perhaps even choosing not to address his own followers if it's not relevant to them. this works much like a mailing list.
in https://w3id.org/fep/7888 i use `context` and `context.audience` as examples.
@trwnh I don't think the thread is addressable, and I don't think `context` is a good property to use here, but otherwise I agree. Alice should maintain a collection of content objects in the thread.
-
@trwnh I don't think the thread is addressable, and I don't think `context` is a good property to use here, but otherwise I agree. Alice should maintain a collection of content objects in the thread.
@evan "the thread should have its own audience" is the main bit i am advocating for here i guess, as opposed to "every individual post has its own audience". with the latter you always get issues like this. with the former you bind context and audience together.
-
@evan "the thread should have its own audience" is the main bit i am advocating for here i guess, as opposed to "every individual post has its own audience". with the latter you always get issues like this. with the former you bind context and audience together.
@trwnh every object in ActivityPub has an audience defined by its addressing properties.
-
@trwnh every object in ActivityPub has an audience defined by its addressing properties.
@evan true, but this is where the problem arises...
-
@evan true, but this is where the problem arises...
@trwnh I don't see why. Just like the `replies`, `shares`, and `likes` collections, the `thread` collection should have the same addressees as the root object.
-
@trwnh I don't see why. Just like the `replies`, `shares`, and `likes` collections, the `thread` collection should have the same addressees as the root object.
@evan this only works if you (and everyone else!) think "the root object" is special (and in effect treat it as the context). but others can and will disagree and diverge. if i reply to a cnn article and maintain my own comments section, cnn has no say in that. socially, in the case of private things, it's like "if you know you know" -- refer to a thing by id but only some people have further information about what it meant (at some point in time, etc)
-
@evan this does lead to a sort of split horizon where "the conversation" depends on who you ask.
in the absolute sense, the global context, bob's reply can continue to exist outside of alice's context. this is actually quite normal -- what is weird is the assumption that all replies must necessarily be bound together.
if i could set my own metadata, this reply would exist in a separate context than your poll, and you might be cc'd.
-
@evan this only works if you (and everyone else!) think "the root object" is special (and in effect treat it as the context). but others can and will disagree and diverge. if i reply to a cnn article and maintain my own comments section, cnn has no say in that. socially, in the case of private things, it's like "if you know you know" -- refer to a thing by id but only some people have further information about what it meant (at some point in time, etc)
@trwnh like how you hijacked my thread?
-
@trwnh like how you hijacked my thread?
@evan well, that's the problem, again -- you see it as "your" thread, and i can't reply without copy-pasting a link to your post and appending "re:"? then appending "cc: evan"? so i can reply but i can't reply using inReplyTo? and you control all 400 posts downstream of your poll, *including the ones that don't mention you*? it's hard to make sense of that...
-
@django @evan we have a few different norms:
1) all posts are implicitly standalone in their own context
2) all posts are implicitly anchored in the context of "the root post"
3) posts are explicitly in certain contexts and not in othersin worldview 3, bob "detaches" his post by setting a different as:context. the problem is that in worldview 2, bob can never use as:inReplyTo without pissing someone off.
"which audience should bob inherit, if any" has a different answer for each worldview...
-
@evan well, that's the problem, again -- you see it as "your" thread, and i can't reply without copy-pasting a link to your post and appending "re:"? then appending "cc: evan"? so i can reply but i can't reply using inReplyTo? and you control all 400 posts downstream of your poll, *including the ones that don't mention you*? it's hard to make sense of that...
@trwnh I mean, at some point, it'd be nice if you start a separate thread.
I talk about branching and grafting in FEP 76ea; I think it's a pretty natural process.