@julian @erincandescent @evan @silverpill Let me put it this way: the latter half of FEP-7888 can be summarized as "reifying context as an object, and specifically a Collection". If you *just* want the grouping, then it could be an arbitrary opaque IRI. But what you gain by reifying the context as an object is specifically the ability to give it metadata properties. Particularly things like `attributedTo` or `audience`. Maybe even `followers` or `outbox`. An opaque IRI cannot do this.
@julian @erincandescent @evan @silverpill Let me put it this way: the latter half of FEP-7888 can be summarized as "reifying context as an object, and specifically a Collection". If you *just* want the grouping, then it could be an arbitrary opaque IRI. But what you gain by reifying the context as an object is specifically the ability to give it metadata properties. Particularly things like `attributedTo` or `audience`. Maybe even `followers` or `outbox`. An opaque IRI cannot do this.
@trwnh @julian @evan @silverpill I never did the URI should be opaque; what I implied was that perhaps it should be an implementation detail URI as opposed to a directly visible one.
Some of this is that I wonder how decoupled such a thread truly is semantically from it's root post
@erincandescent @julian @trwnh @silverpill a thread is a tree with a root. Every non-root node in the tree has an `inReplyTo` that points to one of the other nodes.
It's represented by a `Collection` in the `context` property of each object. (I don't like this, but it's common so we should just use it).
It's in reverse-chronological order.
If you started at the root node and walked the tree using the `replies` collection, you should visit exactly the same nodes as in the `context` collection.
@trwnh @evan @julian @silverpill bear in mind though that my thinking here is very heavily influenced by working with ActivityStreams 1, where Collections were not Objects. I still think that distinction was correct; but there's a lot of stuff that was changed in AS2 unnecessarily that I resent and perhaps I'm still grumpy about it
@trwnh @julian @erincandescent @silverpill you can also get the whole thing! That's the big benefit of having a `Collection` -- you can retrieve it.
@erincandescent @julian @evan @silverpill I've never really understood why anyone would semantically collapse them. You lose so much expressivity by doing that. In my mind, they're *very* distinct from each other. A thread can have its own title which is separate from the title of the "root post". In fact, I don't think "root post" is even the best way to think about it. You can group posts that aren't replies to each other. Your first post may be a response to something outside of the thread.
@erincandescent @julian @evan @silverpill I've never really understood why anyone would semantically collapse them. You lose so much expressivity by doing that. In my mind, they're *very* distinct from each other. A thread can have its own title which is separate from the title of the "root post". In fact, I don't think "root post" is even the best way to think about it. You can group posts that aren't replies to each other. Your first post may be a response to something outside of the thread.
@evan @erincandescent @julian @silverpill I don't think a thread *has* to be a tree -- it's a set. The "reply tree" is a separate structure. Threads can be forked out of other threads.
(I also dislike "reverse chron" and heavily favor "forward chron", but custom sorting of collections is not well-specced rn so that's a future step.)
@evan @erincandescent @julian @silverpill I don't think a thread *has* to be a tree -- it's a set. The "reply tree" is a separate structure. Threads can be forked out of other threads.
(I also dislike "reverse chron" and heavily favor "forward chron", but custom sorting of collections is not well-specced rn so that's a future step.)
@julian I reported this to you because one user asked me by "why I can't discover this NodeBB thread from my instance?". I think this is going to happen quite often across the Fediverse.
Maybe in the future we will figure out how to deal with these collections, but right now this leads to a bad user experience
@julian @Erin Iām not a dev, so I donāt have the technical details down pat.
But Friendica and everything that came after it, including Hubzilla, handle conversations as something enclosed with exactly one (1) post and otherwise only comments, as opposed to Mastodonās loose chain of posts. Replies are always comments instead of posts, and theyāre always sent to the thread starter who is the owner of the whole thread, and who then distributes them to all participants.
Right after Friendica, permissions were introduced. These arenāt stored with each comment separately and with the post only for the post itself. Rather, theyāre unified for the whole thread. The thread starter defines who is allowed to see what and who is allowed to do what. As opposed to Mastodon, commenters cannot change the permissions of their comments away from those of the start post.
Last year, (streams) switched to conversations as containers. To the outward, it works the same, but internally, itās different. Again, Iām not a dev. @Mike Macgirvin has made all this. But to my understanding, this is when a thread really became an object of its own.
CC: @infinite love ⓳ @Evan Prodromou @silverpill
#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Friendica #Hubzilla #Streams #(streams) #Conversations
@silverpill @evan@cosocial.ca @erincandescent @julian @evan@community.nodebb.org I'd prefer impls update to support showing threads/collections, rather than NodeBB being held back. UX will get better as other impls update.
At the very least, browser.pub can do it! :P
@silverpill @evan@cosocial.ca @erincandescent @julian @evan@community.nodebb.org I'd prefer impls update to support showing threads/collections, rather than NodeBB being held back. UX will get better as other impls update.
At the very least, browser.pub can do it! :P
@trwnh @evan @erincandescent @julian +1 for forward chron, that way you can start displaying posts without fetching the whole thread
@silverpill @trwnh @erincandescent @julian Use the `last` property to start with the oldest page.
@silverpill @trwnh @erincandescent @julian Also, I think you're imagining some kind of pre-order traversal sorting. If you want that, it's a lot easier to just walk the `replies` tree.
@trwnh @silverpill @evan @julian @evan so, truthfully, I'm ambivalent to whether a thread object exists. But if it does, I feel like it should probably be reified distinctly from the thread collection primarily because I don't think treating collections as objects is a good idea. Maybe I'm wrong, but that's my strongly held opinion!
And yeah, then we can give threads a following collection and let people follow them as they wish.
@evan @silverpill @erincandescent @julian just seems backwards to me, for no real reason. if you wanted reverse chron viewing of a forward chron collection, then it makes sense to fetch `last` and page backwards.
at the very least, `startIndex` as a property of OrderedCollectionPage makes **way** more sense with a forward chron presentation.