@julian hey, how does NodeBB federate things like categories with posts?
-
@julian hmm, so individual Notes aren't going to indicate their Group / Category?
I'm just trying to see if there's something I can borrow when it comes to categories for Flag activities
-
@[email protected] Ah, yes, Notes also do contain that information.
The earlier post I made contains
context
(the topicOrderedCollection
), andaudience
(the containing category). Here's a subset of that object json:{ "id":"https://community.nodebb.org/post/99688", "type":"Note", "to":[...], "cc":[...], "inReplyTo":"https://hachyderm.io/users/thisismissem/statuses/112440197848097443", "published":"2024-05-14T15:44:53.375Z", "url":"https://community.nodebb.org/post/99688", "attributedTo":"https://community.nodebb.org/uid/2", "context":"https://community.nodebb.org/topic/2d35681b-8aee-42f2-9edc-cfc145cf294e", "audience":"https://community.nodebb.org/category/-1", "sensitive":false, "summary":null, "name":null, "content":"...", }
audience
is mentioned in FEP-1b12 (@[email protected]), andcontext
is mentioned in FEP-7888 (@[email protected]) -
Current implementations of ActivityPub are passive. You follow people, content comes in, and you build a context around it based on what you already know.
The long view here is that an active means of content discovery should be possible, and the first step to doing that is maintaining a both a
context
andaudience
at the object level, but also to have higher-level collections be backreferenceable to those same objects.audience
being aGroup
and not anOrderedCollection
potentially makes this problematic, but... one problem at a time. Maybe this is where thestreams
property could work, who knows. -
@julian @thisismissem not sure what the "streams" property has to do with this, it seems completely unrelated. but i have thought before that Group is not very useful as an actual group of people because there's no good way to figure out membership.
one way to address this would be to dual-type [Group, Collection]
another way would be to use vcard:hasMember
a third way would be to define an extension property/collection indicating "members" that you can Join/Leave or be Add/Remove to by mods.
-
@trwnh @julian hmmm, okay — I think for my purposes, the Flag activity's categories is likely going to be something different.
e.g., so we can federate both the Illegal / Spam / whatever + rule violations as to what the local rule was
Because currently all Flag activities don't carry information that can help with triaging them.
-
@[email protected] @[email protected] yeah you're going to see a lot of variation between implementations as to what metadata is available or sent.
Our flags locally record the reporters, target user, post, and reason (which is freeform text). I don't think any of that federates out at the moment. Like a lot of things we're awaiting some form of standardization.
-
@[email protected] said in @julian hey, how does NodeBB federate things like categories with posts?:
a third way would be to define an extension property/collection indicating "members" that you can Join/Leave or be Add/Remove to by mods.
Pardon my ignorance, but isn't this exactly what
streams
is for?streams
A list of supplementary Collections which may be of interest.Granted it's only mentioned in the context of an Actor object.
-
@julian no, “streams” carry no additional semantic meaning. it’s just a grab-bag of collections related to the actor, for example, say i categorized my posts into “tech”, “personal”, etc etc, i could link each collection from the streams property.
-
@[email protected] right, and I'm asserting that that flexibility is what could allow implementors to assign semantic meaning to a collection contained in
streams
(but how that looks is beyond scope of this post)... because what we have now is a property that is essentially useless because other implementors don't know how others use it, so nobody uses it. At most, an implementor could use it to transmit metadata to other instances of the same implementation. -
@julian you can't really get any meaning about a flat array of collection ids. the meaning is entirely in the predicate (property name)