Existing implementations of Conversation Containers (#Streams and #Hubzilla) add a context property to top-level posts of conversations.
-
jenniferplusplus@hachyderm.ioreplied to trwnh@mastodon.social last edited by
@trwnh @silverpill @julian
No, that is not the confusion.silverpill said:
> Yes, conversation container is separate from collection of posts.Cool
> Container contains activities (in the original implementation, it is a collection of Add activities).
I can live with this
> Top-level post is not part of that collection, and therefore shouldn't have it as context.
Why? This makes no sense. Why is the first post in a thread not part of the context?
-
trwnh@mastodon.socialreplied to trwnh@mastodon.social last edited by
@jenniferplusplus @silverpill @julian i'm not really happy with this 100% but there's no getting around the difference in implementations because it really stems from a more fundamental issue -- that of the "fediverse" not actually being a single replicated network, but really an ersatz way to publish resources to the Web that describe more or less the same end result but in multiple possible (and logically equivalent) forms
-
julian@community.nodebb.orgreplied to trwnh@mastodon.social last edited by
@trwnh@mastodon.social @jenniferplusplus@hachyderm.io @silverpill@mitra.social I think that makes sense considering that outboxes already do contain activities, so it's not a stretch from prior art.
I'd also like to know the thinking behind excluding root-level post from the context collection. I think it belongs within, but other software may consider root level objects to be like "topics", and so would be on a separate level from replies. The easiest example I can think of right now is Lemmy, which is how it handles posts.
-
silverpill@mitra.socialreplied to jenniferplusplus@hachyderm.io last edited by
@jenniferplusplus @trwnh @julian
I'm talking about two different collections:
- Collection of activities (conversation container, conversation context, thread context). I said that top-level post shouldn't be a part of this collection because it is not an activity.
- Collection of posts (conversation, thread). Top-level post certainly should be a part of this collection, but implementations of Conversation Containers currently don't publish this collection. I want to publish both collections. -
@julian @jenniferplusplus @silverpill personally i'd mostly be interested in a collection of "posts" (including the first one) so i would probably back that interpretation as well, and i'd say that if the "first post" was *not* part of the collection, then there's probably something else going on -- maybe captured by a property like `comments`?
something like lemmy with its Page/Note split is more of an antipattern imo. then again, replies and comments are both subject to this bc topical drift.
-
trwnh@mastodon.socialreplied to silverpill@mitra.social last edited by
@silverpill @jenniferplusplus @julian have you considered that maybe "posts" can have their own `context`, and "activities" can also have their own `context`?
-
silverpill@mitra.socialreplied to silverpill@mitra.social last edited by
@trwnh @jenniferplusplus @julian Both collections are "contexts" in a sense that they represent groups of related entities. I refer to collection of posts as "thread" because this is what it is.
-
trwnh@mastodon.socialreplied to silverpill@mitra.social last edited by
@silverpill @jenniferplusplus @julian
```yaml
id: x
context: thread-activities
actor: a
type: Create
object:
id: y
context: thread-posts
content: "foo"
```thread-posts can contain your contentful objects, and thread-activities can contain everything even tangentially related to that conversation
-
silverpill@mitra.socialreplied to trwnh@mastodon.social last edited by
@trwnh @jenniferplusplus @julian Yes, that's exactly what I am proposing, two collections. I just find it confusing when both of them are "contexts"
-
trwnh@mastodon.socialreplied to silverpill@mitra.social last edited by
@silverpill @jenniferplusplus @julian conceptually they still are both "contexts" in that they group things that belong together, but there's probably a missing piece somewhere to signal a more specific purpose, like some way to describe the implied relationship between some subject and all collection items (linked by some predicate)
this is a more general problem bc you don't know that a given collection is e.g. a followers collection or a replies collection.
-
silverpill@mitra.socialreplied to trwnh@mastodon.social last edited by
@trwnh @jenniferplusplus @julian
There should be a way to go directly from
y
tothread-activities
:id: x context: thread-activities actor: a type: Create object: id: y thread: thread-posts threadContext: thread-activities content: "foo"
-
trwnh@mastodon.socialreplied to trwnh@mastodon.social last edited by trwnh@mastodon.social
@silverpill @jenniferplusplus @julian in other words something like
```yaml
id: some-collection
summary: "alice's followers"
type: Collection
items: [bob, charlie, david]
itemsObjectOf:
type: Relationship
subject: alice
relationship: IsFollowedBy
itemsSubjectOf:
type: Relationship
relationship: IsFollowing
object: alice
``` -
Is it clearer now?
To re-iterate: root post is not excluded, I was talking about two different "contexts". With examples:
- NodeBB https://community.nodebb.org/post/102409 -
context
property is a pointer to a collection of posts
- Hubzilla https://hub.somaton.com/conversation/0145da10-b608-4b19-b1d5-89a461e473d0 -context
property is a pointer to a collection of activities (conversation container)If you're planning to implement Conversation Containers, you need a different property name for one of those collections
-
trwnh@mastodon.socialreplied to silverpill@mitra.social last edited by
@silverpill @jenniferplusplus @julian i don't understand why anyone would need to go directly from a single post to a collection of activities having to do with the thread. isn't it enough to pass through the thread itself first? e.g. take the Note.context.outbox for an "activity log", or if you're going to define a new property, then define it on the thread instead of on the post -- Note.context.history for example following https://w3id.org/fep/bad1
-
silverpill@mitra.socialreplied to trwnh@mastodon.social last edited by
@trwnh I want a direct link because I'm interested in all activities, not just posts. Going from Note to .context to .history requires additional HTTP requests.
contextHistory
is a good name though -
trwnh@mastodon.socialreplied to silverpill@mitra.social last edited by
@silverpill @jenniferplusplus @julian it's at worst 1 extra request, but there are other reasons why that doesn't seem like a good idea. first of all, it's conceptually not a property of the post; it's a property of the *Create activity* et al. it's like asking for a property that goes directly on posts whose value is the outbox of its author, instead of simply following attributedTo.outbox as a property path...
-
julian@community.nodebb.orgreplied to silverpill@mitra.social last edited by
@silverpill@mitra.social @trwnh@mastodon.social Yes, although I have not heard a convincing argument as to why both conversation containers and conversational contexts* cannot be referenced via
as:context
cc @jenniferplusplus@hachyderm.io
* "conversational contexts" is a working name... basically, the object collection.
-
@julian @silverpill @jenniferplusplus i'm still of the opinion that going directly from "post" to "conversation activities" without first passing through "conversation" doesn't make sense
-
>why both conversation containers and conversational contexts* cannot be referenced via as:context
How would you do that? Two
as:context
properties on a single object?Both collections should be discoverable via conversation root
-
trwnh@mastodon.socialreplied to silverpill@mitra.social last edited by
@silverpill @jenniferplusplus @julian
context on the object vs context on the activity?
the objects added into the conversation are the .items, and the activities related to the conversation can be put in the .outbox or .history or some other property of the conversation (not a property of the individual items)