LemmyNet/lemmy

Post tags

MatteoGgl opened this issue Β· 69 comments

Is there an interest to develop a post tagging feature? I remember seeing an issue about it some time ago, but I can't find it anymore so it's possible I'm making this up.

A post tag would be defined as a "subtitle" of the post inserted by a mod of the community (or an admin) after the post is published, with the purpose of categorizing or adding flair to the community post. It would be displayed in the post listing alongside the title in a smaller font, inside a bordered box, reddit style.

Possible secondary additions could be:

  • Letting the user tag his post freely
  • Letting the user select a tag from a mod-defined list to be applied

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

I'm not sure about tags, mainly because of the annoying and complicated mess of community owners having to maintain systems of them.

Also, the main usefulness of tags, is being able to list / filter on them, which already works with searching.
Lets say a music community requires a [Genre] tag, so if you wanted to list all the rock posts, you could just this: https://dev.lemmy.ml/search/q/[rock]/type/all/sort/topall/page/1.

Could you expand on the mess of maintaining the system? Since I have no experience in managing a community it's possible that I'm missing something very obvious =)

Also it could be an optional mess: it should be an opt-in feature for each community.

And yes, I see your point on search; I still feel a strong point about post filtering since it's a feature I use daily on reddit to exclude some content on a subreddit level.

Its just very tedious for moderators. Also another point, but the tags / flair for most other platforms, are hashtags, which are completely unmoderated and don't require anything more than the user to type it out. Then these flair are cross community also.

I'm not ruling out adding tags in some form but this would be way down on my list.

Other activitypub platforms already support hashtags, so it would make sense to implement an (optional) tagging feature that is compatible with eg Mastodon hashtags. But that is still far in the future.

Have you considered tags as an alternative to sub-communities? It seems to work pretty well for lobste.rs, this is where they discuss their reasoning: https://lobste.rs/about#tagging

When looking at most "reddit clones" I can't help but notice how most comment sections are deserts, and as I look into the history of reddit, the only way they were able to get to a critical mass of users was to populate the site with fake users to present an illusion of a community. Getting to critical mass would less of an issue through a tagging system (as centralizing discussion would eliminate redundancy and encourage people with interests to discuss).

Of course, a tagging system might force you to rethink moderation, but I think the idea of having "benevolent dictators" determine sub-community policies (however transparent they may be) is an idea worth inviting critical thought (the structure is fundamentally neo-reactionary, in which an moderator/vassal presides over some (abstract) territory, having dominion over it).

There's a lot of things I disagree with about the unmoderated tag vs moderated community model, but if I were to boil it down to one thing, its ownership. In the tag model, no one has any control over any of the content in those tags, and if there's any work being done to clean up content in there, all that work is put on the admins. No one except the admins control tags.

Whereas with a community, anyone can start one, invite people to it, and have full moderation abilities to keep things the way they want. It gives a sense of ownership, a vested stake in its success, and gives the community creators / moderators the power to keep the sub how they want it.

Obvi a huge part of reddits popularity (ignoring the first mover thing) is that people can, and still do, make and grow communities. If anything it got to critical mass because of that killer feature.

Moderation need not be a task left only to admins; Slashdot has a meritocratic system of enlisting moderators. Another option could be elected moderators. Users can also be enlisted in a limited sense to perform some roles.

I get that Reddit gained popularity from making use of an entrepreneurial settler-colonist mindset in regard to community development, but it needn't be the only means of cultivating a community.

Tildes.net seems to take the approach of having communities each with their own set of tags. Seems like that's what you're going for, but I feel that having federation is redundant.

Copied from #771
Hierarchicial tags β€” a cool feature to borrow from Tildes!

EDIT

In hindsight, this would be a terrible idea, as it would break compatibility with tags on other fediverse services.


## What are hierarchical tags? Tildes uses hierarchical tags to establish post categorization beyond which group (the Tildes equivalent of a subreddit or a com# What are hierarchical tags? Tildes uses hierarchical tags to establish post categorization beyond which group (the Tildes equivalent of a subreddit or a community) a post is in. The closest Reddit analogue for them would be post flairs. There a few key differences between them and flairs, however: - They can exists on posts across multiple groups. - Multiple tags can be applied to the same post. - Their hierarchical nature allows for increasing levels of specificity the longer each tag gets.

Why should they be implemented?

  • They would make searching for posts easier.
  • They would make finding similar posts easier.
  • They would help differentiate Lemmy from Reddit

What might be some problems with them?

  • User apathy: many users just don't use them, or don't use them to their fullest potential.
  • Potentially redundant tags could exist.

Other resources

  • Tildes Gitlab page
  • Tildes Documentation of hierarchical tags
    munity) a post is in. The closest Reddit analogue for them would be post flairs. There a few key differences between them and flairs, however:
  • They can exists on posts across multiple groups.
  • Multiple tags can be applied to the same post.
  • Their hierarchical nature allows for increasing levels of specificity the longer each tag gets.

Why should they be implemented?

  • They would make searching for posts easier.
  • They would make finding similar posts easier.
  • They would help differentiate Lemmy from Reddit

What might be some problems with them?

  • User apathy: many users just don't use them, or don't use them to their fullest potential.
  • Potentially redundant tags could exist.

Other resources

I think the idea of using nsfw, cw, and spoiler tags for labelling objectionable content should be considered. This idea originated from Tildes, where hierarchical tags are used to add specifics. I no longer think hierarchical tags are a good idea, however, as they could potentially break compatibility with services that use tags differently.

We already have nsfw for posts and communities, and spoiler tags for comments.

What I meant was that if, in the future, you were to allow users to freely add tags to their posts, it might be a good idea to implement a designated nsfw tag to mark posts as nsfw, instead of the way nsfw posts are handled currently.

This idea hinges on post tags being implemented in the first place.

On another topic, it would be awesome having Mastodon-style featured tags, but for communities.
image

(I'm probably getting ahead of myself.)

I think I just need to leave this by saying that there are so many different ways that post tags can be used to benefit Lemmy, that their development should be a higher priority.

Is there anything new here? Since I did not know this discussion, I just raised the issue on lemmy.ml.

Nothing new, but anyone is free to make a PR adding this, we're busy with other things.

Tags are great for finding relevant content. See how it's done in one of the reddit clone
https://pikabu.ru/tag

I would prefer the option to toggle it off, just like downvotes.

I would like to see hashtags on lemmy for greater compatibility with the wider fediverse. Being able to tag a post would aid discoverability for people who are not aware of lemmy or don't follow the community the post is made in.

I started a lemmy thread about this before I found this issue.

I'm not a fan of unmoderated hashtags, as a method of content discovery. See my comment here.

They might make sense for a micro-blogging system that never thought beforehand about how to group topics and help you find content, but they don't make sense for a link-aggregator that already groups topics into communities. Lemmy's search bar probably already works as well as hashtags do for finding content.

Instance-wide content discovery is separate from this issue, which is more about tagging posts and grouping them within a community.

I'm not a fan of unmoderated hashtags, as a method of content discovery. #317 (comment)

We can just allow tagging posts that already exist in a community.

One of the things that could be useful is that it could make content discovery easier for people with special interests, lets say i am a developer of a small open source project that does not have a community (e.g. nnn) I could just subscribe to a tag and add it to the main feed (I don't have to keep searching lemmy which is way too clumsy ), also we could take a move from tildes.net playbook and have RSS feeds for tags , so a dev could subscribe to the RSS and see a post even if it appears on the "linux" or "opensource" communities.

We can just allow tagging posts that already exist in a community.

That sounds like such an obvious vector of abuse. Unless you only allow the mods of a community to do this, or a whitelist of tags, similar to Reddit's flairs.

@dessalines

but they don't make sense for a link-aggregator that already groups topics into communities

I disagree for a couple reasons:

  1. They would enable better discoverability on non-lemmy software where hashtags are the main topical grouping mechanism right now.
  2. While lemmy uses communities for topical grouping, some posts might fit into multiple categories, even unrelated categories. Crossposting sort of solves this, but crossposting can be considered spammy if it’s done too much. And crossposting creates another post which fractures the conversation. This may be desirable sometimes, but a poster may also prefer to keep all the conversation in one spot.
  3. It would allow finer grained filtering of posts, even within a community. Users may be interested in a topic, but not every facet of that topic.

For example, I could create a post in a general programming community but tag it with the specific programming language my post is about. This would allow any other subscribers to the community to filter out that language if they weren't interested. And when this post is federated, users on other software could discover the post by it's tag. To me, discovery across the fediverse is the biggest benefit of adding tags. So if you just allowed posts to be tagged and federated but didn't show them in lemmy's UI, it'd be happy even though I think they offer benefit within lemmy too.

As for moderation, I don't really understand why its necessary. Do you just mean, moderating that a post belongs within a topic? To me, hashtags are a looser form of organization and don't required that level of moderation. Fediverse hashtags are already unmoderated and users expect that some posts may not necessarily be relevant. Different users may use a tag in a different context. But if you're talking about moderation of content quality and acceptability, it would still be there. Lemmy posts would still always exist within a community and that community mod would be able to moderate the post.

EDIT: I just reread the top comment on this issue and want to clarify that I'm only talking about freeform tags by the user. That's how tags work on other fediverse software so I don't think an admin tagging system would be necessary.

They might make sense for a micro-blogging system that never thought beforehand about how to group topics and help you find content, but they don't make sense for a link-aggregator that already groups topics into communities. Lemmy's search bar probably already works as well as hashtags do for finding content.

Oh you know Diaspora, Friendica or Hubzilla? These are all macro-blogging platforms where hashtags are part of the basic concept. Used correctly, hashtags can be very helpful in finding interesting content.

As for moderation, I don't really understand why its necessary.

I think you might not want your post to find itself tagged as #dumb or #racist or even innocuous tags that might get used for the purpose of brigading. Or even spammy tags, every popular post finding itself with 500+ tags would be quite problematic.

We've all experienced the "+1" replies, or people replying just with mentions of their friends. Having that tacked-on to the original post seems inappropriate.

@remram44 I think we're talking about different types of systems. What i'm suggesting is hashtags that work the same way as the rest of the fediverse. A user could tag their own post when they create it; no other user would be able to tag your post.

You would be able to write a post like this:
URL: https://example.com
Title: Whatever
Body: Hey check out this interesting #Elixir post that discusses possible #BEAM optimizations
Community: !programming@lemmy.ml

and it would have the hashtags Elixir and BEAM. Users on pleroma/mastodon/misskey/etc would be able to find the post on their instance under either of those hashtags.

The comment that I replied to is this:

We can just allow tagging posts that already exist in a community.

In this you quoted my comment and responded to it.

As for moderation, I don't really understand why its necessary.

I think you might not want your post to find itself tagged as #dumb or #racist or even innocuous tags that might get used for the purpose of brigading. Or even spammy tags, every popular post finding itself with 500+ tags would be quite problematic.

We've all experienced the "+1" replies, or people replying just with mentions of their friends. Having that tacked-on to the original post seems inappropriate.

Yes, I did

That sounds like such an obvious vector of abuse. Unless you only allow the mods of a community to do this, or a whitelist of tags, similar to Reddit's flairs.

Letting people post stuff online is a obvious vector of abuse (and still we do it), you could let moderators edit the tags , or add moderations tools for communities (whitelist, limit on the number of tags, etc).

Similar to #1456 (comment), I think it would be good if someone could write a "Lemmy Enhancement Proposal" to get a full picture how this could work.

I can give it a shot. Hopefully I haven't misunderstood what you mean (#317 (comment)).

Is your proposal related to a problem:
One issue that can come up with how Lemmy communities are currently structured, is that posts within a community are not further categorised. This means that you can have a merging of various posts, all on-topic within the community, but can have vastly different topics, which can be confusing for users to find at a later date, or if the community itself is particularly busy.

Solution that you'd like:
This solution might take the form of either allowing users to set a post tag either on their own, or from a list of pre-defined tags that can be set by the community moderators. Ideally, this would allow users to search within a community to find the relevant posts later on, or filter the community for all posts sharing the same tag.

An example of where this might be a useful system, is for communities dedicated to a television show. The community could have a tag for discussing new Episodes, fan art, merchandise, or social media posts made by the producers/actors, instead of either merging them all together, or risking splintering the community into multiple sub-communities.

Alternatives that you've considered:
One considered alternative is the use of something like the hashtag system that other software, such as Mastodon, uses. Another possible suggested implementation is implementing the tagging in a manner similar to that of Reddit's post flairs, or Github's labels.

Additional context:
[More needed]


How does this look?

To add to @techno156:

Protocol:
According to https://www.w3.org/TR/activitystreams-vocabulary/#dfn-tags a general tag object exists in the ActivityPub protocol. As dessalines said having unmoderated tags is not an option here as it would increase moderation work too much.
A compromise would be a curated list of allowed tags users can choose from in a separate tag field on their posts. This can be achieved by utilizing the id field on the tag object and would even allow for communities to use shared tags if they want to (opt-in feature). From what I can tell special Tags (such as nsfw, cw or spoiler) could be implemented using the "type" field and also setting the (already present) "sensitive" flag. On non-Lemmy instances this ensures that Spoilers, Content Warning or NSFW are always honored (a vast improvement to the current situation) while on Lemmy the Special Tag type can be used to apply the instance/community/user rules in effect for this specific tag.

example json:

{
  "content": ". . .",
  "sensitive": true,
  "tag": [
    {
      "id": "http://example.org/t/instance_tag",
      "name": "Instance Tag 1"
    },
    {
      "type": "Spoiler",
      "id": "http://example.org/t/spoiler",
      "name": "Spoiler"
    },
    {
      "type": "CW",
      "id": "http://example.org/c/example/t/custom_cw",
      "name": "Community Content Warning"
    },
    {
      "id": "http://example_remote.org/t/remote_tag",
      "name": "Remote Instance Tag 1"
    }
  ]
}

Questions: How are these tags currently displayed on other platforms?

Backend:
A new table "tags" would be required, for the Special tags additional fields ("hide", "blur/collapse") would also be required.

Edit: Only the fields "id", "name" and "type". The settings for the Special Types can be added to the instance, community and user settings. Priority should be user > community > instance. Instances with nsfw disables/blocked could/should auto reject posts with an nsfw type tag End Edit.

Additionally there should be Instance wide (for example the Special tags) as well as community tags. This can be easily achieved by setting the ID of the tags as follows: domain.tld/t/tag for instance wide tags and domain.tld/c/community/t/tag for community tags. By having the route to the tag as the id tags can be used as links without additional work later.

Frontend:
Tags can be listed next to the Post title in the feed and at the end of the post in the post view.
Adding tags to a post can be implemented via a separate tag box where they can be typed in with search support. Admins and Moderators need an additional Field in their Site/Community Settings for Adding and Removing tags. This could also implement a way to "import" a tag from another lemmy instance by pasting that tag's route.
To distinguish between Instance and Community tags the a 'c/' can be prefixed to indicate a community tag. The opposite would also be an option.

example 1: "News" <- Instance Tag, "c/News" <- Community Tag
example 2: "i/News" <- Instance Tag, "i/News@remote_instance.tld" <- Remote Instance Tag, "News" <- Community Tag
example 2 (Alternative Option): "instance.tld/News" <- Instance Tag, "remote_instance.tld/News" <- Remote Instance Tag, "News" <- Community Tag

Edit: expanded example 2 by remote instance, added example 2 (Alternative Option)

(potential) Problems:

  • Tags would not be "truly" federated, the "news" tag from instance A would not contain posts tagged as "news" from Instance B unless Instance A and B share the tag. I think this is less of a problem and more of a feature though as it allows duplicate tags to be used without muddying them with external content.
  • Tag feeds should always link to the local version, ie the remote Tag "News" imported from Instance B should still link to instance_a.tld/t/news@instamce_b if clicked instead of instance_b.tld/t/news Edit: added @instamce_b to local tag url

@dessalines , @Nutomic unless there are major flaws with my proposal I could start working on it pretty much immediately. Feedback here would be appreciated.

To whoever starts working on tags, can we please add a feature that allows for advanced tag filters? I want for those things to be possible:

1.) Don't show posts with choosen tags
2.) Show posts where all of choosen tags exist
3.) Show posts with at least one of choosen tags
4.) Show posts with at least one of choosen tags but exclude ones that have choosen unwanted tags

Sorry if I wrote it in a way that's hard to understand.

For better understanding there's an ui for image organising program that I use which has advanced filtering options:

image
image
image
image

Saving presets and giving them a name would be very helpful too but I would be VERY happy if filtering alone was implemented.

@M4rtineski I'd put the filtering in a sort of stage 2 of tags, getting them out first is more important rn than feature completeness. Your idea seems compatible enough with my proposed approach though (could be implemented on either front or backend even) as long as those filters don't have to be saved for the entire account (per-browser saving in local storage should be doable)

@Neshura87 I wanted to pitch the idea in advance so we don't end up in a situation where that's impossible without rewriting the entrie code. Now at least you can work with a thought about that and make code ready for expansion with filtering options (or at least I think that would be the case).

Edit: as long as it's implemented at some point. I'm very happy. I don't need those features now because I have to populate my sublemmies with bigger amount of artworks anyway.

I'd put the filtering in a sort of stage 2 of tags, getting them out first is more important rn than feature completeness. Your idea seems compatible enough with my proposed approach though (could be implemented on either front or backend even) as long as those filters don't have to be saved for the entire account (per-browser saving in local storage should be doable)

It seems better as a front-end issue. Not only would it be easier on server load (and development) that way, but I can't think of many reasons why the backend would need that kind of search/filtering, except maybe for app compatibility (and that can just be up to apps themselves).

Maybe if a community has a massive list of tags, enough that not all of them are returned to the client, but that seems an unrealistic scenario.

Same, frontend is my preferred solution there as it reduces the complexitiy of the filtering mechanism but if need be the option exists to do some filtering in the backend as well (I have no idea for what except filtering out nsfw from federating but the possibility exists)

This would be a major change which would have huge effects on lemmy, lemmy-ui and other projects. What do you think of writing a type of rfc to flesh this out in more detail and incorporate more user feedback, before writing the actual code? So far we dont have any rfc process but I think it would make sense to add a repo for that to manage major changes like this.

I'm fine with fleshing this out more, I've since had some additional thoughts about possible changes as well so having a document to write all of it out beforehand is a good idea anyway. I'll link to the rfc here once I've created it (might take a while, going to be busy the rest of the week)

@Neshura87 This probably can be a separate issue but if we are about to implement advanced filtering for tags then maybe we could implement date filtering along tag filtering? Saying that here because I thought that ideas/features overlap a lot and it would be better to have it made together. :x

@M4rtineski At the same time, it might be premature to talk about filtering, sorting and all of that when the tag system hasn't even been done yet.

Although those are probably multiple separate features, yes. Maybe something to go under post filtering if/when that is requested?

@techno156 Yeah, that sounded like expect it very soon, my bad. I meant like adding it to the project plans because there was a talk about laying everything out before proceeding.

@techno156 @M4rtineski I'll probably only include Filtering as a "future ideas", I can include the idea of it being a general filter in the mention though. If there's an issue for it I'll link it (assuming you provide the issue, I'll likely not search for it)

There doesn't seem to be a specific issue made for either of those yet, with the closest that I could find being #1106.

@Neshura87 How do I dm you? I have something really important to discuss regarding the tags.

@M4rtineski best would be Discord if you have it. Alternatively we can work something out via lemmy private messages (Account: @Neshura@bookwormstory.social)

@Neshura87 are you still working on this?

Yes, just a bit busy woth irl stiff rn, plan to getting the doc done in the next week or two

Thanks for the clarification

If hashtags are independently federated objects by ActivityPub, perhaps they could used as the means to create tags? A community moderator could perhaps restrict hashtags to specific ones within the community. This would then allow the tags to be viewable, and useable for other federated services.

Finished the first version of the RFC, feedback is welcome (especially when it comes to the backend, not quite familiar with it so I have no idea if the changes I detailed are enough)

https://github.com/Neshura87/Lemmy-RFC/blob/main/rfc.md

If hashtags are independently federated objects by ActivityPub, perhaps they could used as the means to create tags?

I like the hashtag idea. YouTube added HashTag support to videos, which a 'single video' is pretty much like a post with comments.... and it seems useful. People can put hashtags in the comments that link to the posts (videos).

It would be great if Lemmy could have at least three special tags: NSFW, SPOILER, and SENSITIVE (suggested name).

One of the most annoying and impractical things is that sensitive image content, like horror, violence, and accidents, gets lumped in with adult content under the NSFW tag.

My proposal is that the NSFW tag should only apply to adult content, while the SENSITIVE tag (or another name yet to be chosen) should apply to these other types of sensitive content. SENSITIVE posts and comments wouldn't be hidden by default, or it could be a configurable option to show or hide them.

ludrol commented

It would be great if Lemmy could have at least three special tags: NSFW, SPOILER, and SENSITIVE (suggested name).

One of the most annoying and impractical things is that sensitive image content, like horror, violence, and accidents, gets lumped in with adult content under the NSFW tag.

My proposal is that the NSFW tag should only apply to adult content, while the SENSITIVE tag (or another name yet to be chosen) should apply to these other types of sensitive content. SENSITIVE posts and comments wouldn't be hidden by default, or it could be a configurable option to show or hide them.

What would be the qualitative difference between SPOILER and SENSITIVE. Both produce the same behavior. One tags goes with discussion of sensitive and taboo topics and other goes to stories in fandoms. I don't see a community where both tags would be used at the same time.

We could change a name to encompass both meanings but I am out of ideas.

I don't like how NSFW is implemented as a separate concept

This split is sort of needed so compatibility with other fediverse platforms isn't broken.

Adding SPOILER and SENSITIVE

My RFC only plans for NSFW + Content Warning and Generic, basically what you ask for. (Again NSFW needs to be separate due to mainly fediverse compat reasons)

@8ullyMaguire actually all the protocol mentions are already part of the activityPub protocol as far as I am aware, unless the fep is different from the w3's activitystreams documentation.

I personally would very much love to see that happen, for the same reason already mentioned : discovery. What would be perfect would be if those tags can be followed through RSS, on even from the "subscribed" tab.

I don't often use the "local" and "all" tabs (which, I assume, are supposed to be the main way of discovering new communities) because it contains just lot of things I'm not interested in, so if I could use tags to let in a selected set of out of subscriptions posts to get into my feed, that would be awesome.

A tagging feature is something that would be very nice to have and I'm in full support of it. Anyways here are the parts that I'd like to see implemented:

  • Communities can have inbuilt tags that apply to every post
  • Users can add tags of their own to a post
  • There should be reasonable limits to how many tags can be placed and federate (I suggest 5 of each type)
  • Communities should optionally have a filter list of what tags are permitted to be assigned and anything outside of that is discarded from the post
  • Instances can maintain a list of "popular tags in the last day" etc. (a /trending page)
  • The endpoint for aggregating local, subscribed and Fediverse posts by tag is a big feature and should be prioritized. e.g. server.com/t/gaming
  • An endpoint for filtering posts by tag is desirable: server.com/c/community/t/discussion for example. This could be implemented similarly but separately as a flair, possibly.
  • Tags should be a separate field entirely to the post body if possible, otherwise they should exclusively be written at the end of the body, to avoid parts of the body text incorrectly picked up as a tag
  • An instance's slur filter should apply to the tags
  • Users should have the option to not display tags
  • Backwards compatibility doesn't have to be perfect but should be kept in mind (e.g. can the tagged and untagged versions of lemmy still federate, etc.)
  • How tags on Lemmy will federate and display on other ActivityPub servers is a consideration.

It would be great if Lemmy could have at least three special tags: NSFW, SPOILER, and SENSITIVE (suggested name).

One of the most annoying and impractical things is that sensitive image content, like horror, violence, and accidents, gets lumped in with adult content under the NSFW tag.

I strongly agree.

The distinction between gore and pornography has been an issue on Reddit for a very long time. Even though subreddit moderators have had the freedom to create any custom tag they wanted, most of them are too lazy to actually set up the system.

For that reason, I think the NSFL tag should exist on every instance by default, with the option for administrators or moderators to disable or delete it on their own instance or community.

Rather than SENSITIVE, what about using NSFL as the tag name? NSFL stands for Not Safe For Life, and it's a term already in use in many online communities.

Following @Neshura87 's RFC, that would be a default tag defined like this:

{
      "type": "cw",
      "id": "https://example.org/t/nsfl",
      "name": "NSFL"
}

Therefore, there should be a configurable instance/community limit for tags allowed in posts

I personally believe this is more of a frontend issue. You can simply display a few tags by default and provide a drop-down menu to view the rest of the tags.

One of the two is definitely a good idea, I'll put it in the outlook section of the RFC for now, the idea can be revisisted once some usage examples of tags exist to gauge what an appropriate default limit would be.

@ShinyLuxray I at least somewhat agree with most of your ideas but I think most of it can be implemented after the basic tagging system is implemented

Regarding >Backwards compatibility doesn't have to be perfect but should be kept in mind (e.g. can the tagged and untagged versions of lemmy still federate, etc.)

That should not be an issue at all, the tag objects in the post json should simply be ignored by older lemmy versions.

How tags on Lemmy will federate and display on other ActivityPub servers is a consideration.

I don't know enough about how other platforms handle this stuff so I really don't know, at least on my end it's something I can only really say once I can do some testing on it. I definitely agree that the tags should be visible on other platforms though


@ItsIgnacioPortal definitely a good idea, I'll need to add a section with proposed default tags to the RFC, I'll include this when I get around to writing that section.

If this allows for tags and flairs on Lemmy and kbin, I am all for it. This will allow users to add tags to posts to help users sort posts in a community.

For example a gaming community like !tes@lemmy.world can use tags to determine what game they are talking about (#skyrim, #oblivion, #morrowind)

Would be useful for the community moderators to set specific tags (flairs) that can be used and for users to use any tags they wish to help users filter posts in a community.

A separate table could link the tag IDs to their name, description, and language. This table would have the columns tag_id, name, description, language.

By separating the names and descriptions into a separate table, a single tag ID can be linked to multiple names/descriptions in different languages.

@Neshura87 Congratulations for writing the first ever Lemmy RFC! To handle it properly I created an rfc repo based on the Rust rfc process. Please submit your rfc there. As this is brand new, let me know if there is anything you would change about the rfc process to make it work better for Lemmy.

For now some quick comments: Try to keep the scope as limited as possible. Supporting both instance and community tags can almost double complexity. I suggest adding only community tags for now as those will bring the most benefit, and after that is implemented consider additions. Replacing nsfw and spoiler flags is also something I would leave for later. Regarding federation, should Lemmy tags be compatible with tag implementations on other Fediverse platforms such as Mastodon, and how would that work from a user/mod perspective?

db0 commented

For me a very important aspect of the tags is to make them compatible with microblogging instances and have the post tags appear on the posts by the group. The problem currently with lemmy is a chicken-and-egg one. We don't have enough niche communities because there's no enough traffic, and we don't have enough traffic because we don't have enough niche communities.

Allowing posts in communitiesd to be tagged (including providing a default tag) which would then appear under the same tag in, say, mastodon, will help drive more interaction from the microblogging space, which could massively increase the engagement and be a killer feature that is straight up not possible in closed gardens like lemmy and ex-twitter.

Once tags are implemented in Lemmy it would be pretty easy to federate them in a way that is compatible with Mastodon hashtags. However Im not sure thats a good idea as the use cases are rather different. In any case the main challenge that needs to be solved first is the tag implementation for Lemmy, so far its not clear how that should work (see discussion in the RFC).

Another option would be to create hashtags based on the community name. #3906 (comment)

db0 commented

I'd avoid hashtags based on community name as that doesn't always match the one people would look for. Instead allowing the creator of the community to specify one or more of hashtags to tag all new posts with would be preferable.

However Im not sure thats a good idea as the use cases are rather different.

I don't quite agree. One use case in both is discoverability. Lemmy also wants to use them for filtering. It should not be particularly difficult to allow the instance mod to add metadata to each tag to specify which tags is meant for internal lemmy filtering, which for discoverability and which for both.

We don't have enough niche communities because there's no enough traffic, and we don't have enough traffic because we don't have enough niche communities.

Tags aren't going to solve that issue IMO, and shouldn't be meant to fix discoverability problems (especially since they're completely unmoderated and can be spammed by anyone). Some things that should help grow niche / smaller communities:

  • The new scaled sort.
  • Showing random / highlighted communities in a sidebar (IE fixing up trending communities in the current lemmy-ui sidebar).
  • Community searching, either via the communities page
  • Integrating the Lemmy community search tool in some way.
db0 commented

and shouldn't be meant to fix discoverability problems

That precicely what hashtags are meant to achieve in mastodon. They're explicitly a discovery mechanism. As such, tagging posts for microblogging will allow the microblogging crowd to discover the new posts and contribute to them, therefore increasing engagement which is critical in niche communities.

Some things that should help grow niche / smaller communities:

These things will improve discoverability from within lemmy only. Lemmy has less that 40K MAU and is on the decline. Mastodon has orders of magnitude more. My suggestion would allow the users of Mastodon to easier discover content on lemmy and improve its engagement, which would make niche communities more active, further attracting more people and creating a virtuous cycle.

Point is: Adding tags won't hurt. There's no reason not to do that as well as those ideas.