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

Remove recommendation to map emoji reactions to like/dislike #1486

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

staab
Copy link
Member

@staab staab commented Sep 10, 2024

See the discussion here

Emojis are a high-fidelity medium of expression subject to a significant amount of interpretation, while +/- reactions are a low-fidelity medium of expression subject to much less interpretation. The two are semantically incompatible ways of reacting to content, and should not be conflated.

Previously, the NIP included a recommendation to interpret emojis as likes/dislikes, but this put a burden on receiving clients to map every possible emoji to a binary sentiment. This is not only a huge mapping, it's also impossible because the same emoji reaction can be used in different contexts to mean different things.

Additionally, some clients created emoji reactions on their users' behalf to indicate certain application states, such as a failed zap or a content warning. These concepts should instead be represented as first-class things within the protocol.

This PR also adds a recommendation to add a c tag so that reaction content can be indexed. This will allow clients that only support like/dislike or a subset of emojis to fetch only relevant events.

Copy link
Collaborator

@vitorpamplona vitorpamplona left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The content warning emoji is not an application state and will stay.

25.md Outdated Show resolved Hide resolved
25.md Show resolved Hide resolved
25.md Outdated Show resolved Hide resolved
@mikedilger
Copy link
Contributor

I have used negative-sentiment emojis in jest multiple times. I would hate for them to be interpreted as downvotes.

+1

@@ -33,7 +28,8 @@ The last `p` tag MUST be the `pubkey` of the event being reacted to.

The `a` tag MUST contain the coordinates (`kind:pubkey:d-tag`) of the replaceable being reacted to.

The reaction event MAY include a `k` tag with the stringified kind number of the reacted event as its value.
The reaction event SHOULD include a `k` tag with the stringified kind number of the reacted event as
its value, and a `c` tag with the reaction's `content` so that reactions can be indexed and filtered.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think having c as a sentiment category with values [+, -, 0] for positive, negative and neutral is more useful than simply copying the content.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where does this mapping come from? If from the client, it doesn't solve anything about assuming user intention. If from the user, then it adds UX friction. If your users want to explain their emojis, that's fine, I just don't think that would be widely adopted.

@staab staab mentioned this pull request Sep 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants