Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comprehensive Tagging System #3951

Closed
4 tasks done
8ullyMaguire opened this issue Sep 7, 2023 · 2 comments
Closed
4 tasks done

Comprehensive Tagging System #3951

8ullyMaguire opened this issue Sep 7, 2023 · 2 comments
Labels
enhancement New feature or request

Comments

@8ullyMaguire
Copy link

8ullyMaguire commented Sep 7, 2023

Requirements

  • Is this a feature request? For questions or discussions use https://lemmy.ml/c/lemmy_support
  • Did you check to see if this issue already exists?
  • Is this only a feature request? Do not put multiple feature requests in one issue.
  • Is this a backend issue? Use the lemmy-ui repo for UI / frontend issues.

Is your feature request related to a problem? Please describe.
I always get frustrated when I can't easily find a specific post or image that I've seen before on social media platforms. The current tagging system on Twitter is limited and doesn't provide the level of organization and searchability that image boards like Safebooru offer.

Describe the solution you'd like
I propose implementing a comprehensive tagging and advanced search system similar to Safebooru, where users can add and edit tags for posts, and search by including or excluding combinations of tags. For example, users could search for posts containing tag1 AND tag2 while excluding posts with tag3. This would make it easier to find and rediscover content on the platform.

To encourage user curation of tags, consider implementing a points/reward system and leaderboards showcasing top contributors. This would incentivize users to help tag content.

To prevent abuse, consider implementing a trust level system like Discourse, where users must perform a certain number of actions before gaining the privilege to tag posts. Additionally, maintain a history of tag changes to allow for reverting bad changes. The tagging system should be separate from the post content, so users would only be editing tags, not the actual posts.

If AI tagging is accurate enough, it could be used to automatically tag posts, reducing the need for user curation.

Describe alternatives you've considered
An alternative solution is the proposed hashtag system used on Twitter. However, this may not be as effective as a comprehensive tagging system in helping users find specific content.

Additional context

Benefits of a comprehensive tagging system over hashtags:

  • Filter sensitive content - Users can avoid content about phobias, traumatic events, etc. that they don't want to see
  • More flexible searching - Combine, include, or exclude any tags
  • Enhanced organization - Logical categorization for easier discovery
  • Improved discovery - Browse and search tags to find relevant content
  • Separate from content - Tags are non-disruptive metadata, hashtags are just spam
  • Post-publish tagging - Improve organization after posting
  • Granular feed customization - Highly customizable feeds by including/excluding tags

A comprehensive tagging system would not only improve content discovery but also enhance the overall user experience on Bluesky. By allowing users to easily find and organize content, the platform becomes more engaging and useful for its user base.

Furthermore, having properly tagged and classified content would significantly improve users' ability to create highly customized and granular feeds, since they could filter feeds not just by users or keywords but also by specific tags and combinations of tags. This would enable much more powerful and precise content curation.

More ideas:

@8ullyMaguire 8ullyMaguire added the enhancement New feature or request label Sep 7, 2023
@8ullyMaguire 8ullyMaguire mentioned this issue Sep 7, 2023
4 tasks
@8ullyMaguire 8ullyMaguire changed the title Request for Feedback: Flexible Tag System for Lemmy Request for Comments: Flexible Tag System Sep 7, 2023
@8ullyMaguire 8ullyMaguire closed this as not planned Won't fix, can't repro, duplicate, stale Oct 17, 2023
@8ullyMaguire
Copy link
Author

Overview

This RFC proposes adding a flexible tag system to Lemmy that allows communities to configure tagging permissions based on their needs.

  • There could be a list of tags for either a community, instance or both. This provides flexibility for an instance to choose to have a single list of tags, a list for each community, or both.

Distinction with Reddit flairs

  • Reddit flairs are labels primarily used to categorize communities and users. The proposed tags would be used to categorize mainly individual posts.

  • Reddit flairs are typically selected by moderators or community creators. This tagging system could allow tags to be added by any user (permissions configurable).

  • Reddit limits flairs to avoid clutter. This system would allow many tags per post to thoroughly categorize content.

  • Reddit flairs tend to be more subjective - like genres or loose categories. The proposed tags should be objective and accurate - tagging all aspects of the content.

  • The purpose of the tags in this system is precision categorization to improve search and discovery. Reddit flairs are more for general community identity.

  • Posts should be tagged with every accurate, on-topic tag in this system. Not just a single "best" tag like a Reddit flair. The goal is comprehensive categorical metadata.

So in summary, the tags in this proposed system allow granular post-level categorization by the community to optimize search and discovery. Reddit flairs are broad, subjective, community-level labels managed only by moderators.

Backend

Two new tables for "tags" would be required. One for instance-wide tags and one for community tags.

The instance tags table would consist of the columns id, deleted, and community_id (nullable).

The community tags table would consist of the columns id, deleted, and community_id (not nullable).

A separate table would 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.

GET /tags/list would join the tags tables with the names table and return name, description and language grouped by tag ID.

POST /tags would insert into both tables - creating a new tag ID and then inserting name, description, language rows for that ID.

User Tagging

  • By default, all users should be able to add existing tags to their posts. This allows for easier organization without placing extra burden on moderators.

  • Allow communities to choose between unrestricted, privileged, or moderator-only tagging permissions. This provides flexibility for different community needs and improves organization and discovery.

  • Make tags editable by post authors for a set time period after posting. This allows fixes without granting full edit access.

  • Allow privileged users or moderators to add new tags, not just use existing ones. This improves organization without overburdening moderators in large communities.

Consider either or both of this alternatives:

  • Provide instance settings to limit number of tags per post. Addresses tag spam concerns.

  • User interface should handle large numbers of tags gracefully through truncation, collapsing, or user settings.

Tag Moderation

  • Allow privileged users or moderators to edit and delete tags on any post in their community.

  • Allow privileged users or moderators to delete tags. Should require approval to avoid losing great amount of effort.

Related ideas

  • Anyone even unprivileged users could have the ability to tag any user, post, community or instance. It would be a different set of tags visible only to themselves. The content shown when visiting those tags would be the same as the ones for everyone else.

  • User specific community tags. Each user has a completely different set of tags, visible only to themselves, that they can create and apply to communities. When a user visits those tags they see the posts from all the communities with that tag. The content shown when visiting those tags would be different as the ones for everyone else.

  • Consider replacing communities with tags - lobste.rs style. Would eliminate cross-posting and reduce duplication. Could increase participation and improve cross-instance content preservation.

  • Allow following specific tags to get notifications on new tagged content.

  • Community/instance setting to make some tags mandatory. For example, a post would have to be either SFW or NSFW.

  • Allow blocking tags you don't want to see on the user settings.

  • Provide tag synonym support to consolidate similar tags.

  • Have an autocomplete suggest existing tags as you type

  • Show percentage of tags from liked posts in user stats. Allow user to configure visibility.

  • Use tag percentages for user affinity page to discover similar users.

Related

@8ullyMaguire 8ullyMaguire changed the title Request for Comments: Flexible Tag System Comprehensive Tagging System Apr 5, 2024
@8ullyMaguire 8ullyMaguire reopened this Apr 5, 2024
@Nutomic
Copy link
Member

Nutomic commented Sep 20, 2024

Too complicated, we already have issues for user and post tags.

@Nutomic Nutomic closed this as completed Sep 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants