Discourse에서 Fediverse로 게시물을 연동할 때, Discourse 게시물에 입력된 해시태그는 ActivityPub 해시태그로 변환되어야 합니다. 현재 상태로는 Mastodon과 같은 플랫폼에서 그대로 표시되지만, 해시태그로 인식되지 않습니다.
해시태그는 Fediverse에서 특정 주제에 대한 새로운 콘텐츠를 발견하는 주요 방법입니다. 현재 #Discourse에 관한 Discourse 게시물을 연동하면, 연동된 게시물을 부스트(공유)해 주는 팔로워들에 의존하게 되며, 이는 이미 해당 프로젝트나 Discourse 포럼을 알고 있는 사람들 이상으로는 도달 범위가 제한됩니다. 그러나 해시태그가 올바르게 인식된다면, 같은 주제에 관심이 있고 해당 해시태그를 팔로우하는 사용자들도 연동된 게시물을 볼 수 있게 됩니다.
이 요청은 연동된 주제(Discourse tags)의 Discourse 태그가 아니라, 게시물 본문에 직접 입력된 해시태그에 관한 것입니다. 이를 통해 연동된 게시물의 작성자는 해당 Discourse 인스턴스에 존재할 수도, 없을 수도 있지만 연동된 게시물과 관련된 태그를 직접 입력하여 제어할 수 있습니다.
@awesomerobot 말씀하신 점은 이해하지만… 디스코어 중심이 아니라 사용자 중심의 관점에서 이 문제를 바라봐 주세요.
디스코어 인스턴스의 관리자가 ActivityPub 플러그인을 설치하고 "Mastodon"과의 연동을 활성화하는 기능을 켜는 경우, 그들은 자신의 포럼 주제를 Fediverse 전체에 널리 퍼뜨리는 데 진심으로 관심이 있습니다. ActivityPub 태그는 이러한 연동된 게시물이 실제로 퍼져나갈 확률을 현저히 높여 줍니다.
한편, 디스코어에서 게시물을 작성하는 사람은 자신이 입력하는 태그를 직접 제어할 수 있습니다. 이 기능 요청에 따라, 작성자가 #ActivityPub를 입력하면 이 문자열은 Mastodon 등에서 실제 태그로 변환됩니다. 만약 #announcements 카테고리를 링크하고 싶지만 이것이 ActivityPub 태그로 연동되는 것은 원치 않는다면, 단순히 카테고리 URL을 링크하면 됩니다: Announcements.
외형적으로는 완벽하지 않을 수 있지만, 디스코어와 Fediverse의 독자 모두 이러한 링크에서 가장 큰 효과를 볼 수 있습니다.
자, 해시태그는 기본적으로 또 다른 기본 기능이라고 볼 수 있습니다. 해시태그를 팔로우할 경우, 팔로우할 대상이나 다른 것을 찾는 유일한 방법이 되기 때문이죠.
하지만 내일 바로 이런 시스템이 도입되더라도, 가장 중요한 문제는 여전히 남아 있습니다. 바로 팔로우된 사용자/액터(Actor)입니다.
Discourse의 게시글 #1(원문, OP)이 해시태그를 통해 검색될 수 있다면, 발신자로 누가 표시되고 누가 팔로우 대상이 될까요?
여기서 팔로우할 수 있는 액터는 단 하나뿐인 카테고리/태그 액터입니다. 그리고 이 액터는 아무것도 게시하지 않습니다. 부스팅(Boost), 재루팅(Re-rooting), 공유(Share) 등 어떤 이름을 붙이든 마찬가지입니다. 실제 게시자는 Discourse의 사용자이지만, 이 사용자는 팔로우할 수 없습니다.
해시태그가 #discourse처럼 존재하고, 어떤 마법 같은 과정으로 리치 텍스트처럼 보이는 모든 것을 정리하는 과정에서 살아남는다고 가정해 보겠습니다. 그러면 #discourse를 사용한 메시지/투트(Toot)가 누군가 검색하거나 팔로우할 때 나타납니다.
하지만 그 경우 팔로우할 수 있는 사용자, 즉 태그/카테고리 액터는 사라지고, 팔로우할 수 없는 Discourse 사용자가 표시됩니다.
결국 해시태그를 표시하는 기능은 있어야 하지만, 팔로우할 수 있는 견고한 대상이 표시될 때까지는 의미가 없습니다.
시스템은 Discourse ↔ Discourse 간에는 잘 작동합니다. 하지만 Discourse ↔ Mastodon은 더 미완성이거나 진행 중인 상태입니다. 그리고 Discourse → Fediverse는 제가 완전히 틀리지 않았다면, 아직 이론 단계에 가깝습니다.
여러분에게는 의미가 없을 수 있지만, 우리에게 해시태그는 어떤 경우든 환영하는 기능입니다. 우리는 Discourse 포럼에서 Fediverse의 개방성으로의 아웃리치 메커니즘으로 연방(federation)을 사용합니다. 우리가 원하는 것은 사람들이 이 연방화된 게시물을 읽고, 좋아하고, 부스트하고, 댓글을 달아주는 것뿐입니다… 그리고 포럼으로 이어지는 링크를 클릭해 준다면 더할 나위 없이 좋습니다.
이 모든 것은 여러분이 제시한 문제와 무관하게 가능합니다. 그 문제는 타당하지만 해시태그와는 직교(orthogonal)하는 문제입니다.
저도 마찬가지입니다. 하지만 여러분은 명백한 점을 놓치고 있습니다. @icaria@meta.discpurse.org가 메타(Meta)에서 #activitypub 태그를 사용하여 게시물을 작성한다고 가정해 보겠습니다. 이 #activitypub은 또한 액터(actor)이기도 합니다. 이 시점에서 @activitypub@meta.discourse.org는 투트(toot)를 부스트하면서 게시물 #1을 연동합니다. 이때 원래 작성자는 @icaria@meta.discourse.org입니다.
부스터 @acticitypub@meta.discourse.org는 팔로우할 수 있지만, 아무도 부스트하는 액터를 팔로우하지 않으며, 그 부스트는 팔로워에게만 표시됩니다(이 경우 실제로는 모든 공개성이 사라집니다).
작성자 @icaria@meta.discourse.org는 누구나 팔로우하고 싶어 하지만, 아무도 팔로우할 수 없으며, 시도해도 요청은 승인 대기 단계에 머물러 있습니다. 그 사용자의 게시물은 누군가가 팔로우한다면 로컬 및 연동 피드에서 보일 수 있지만, 팔로워를 가질 수 없습니다.
그리고 마스토돈(Mastodon) 사용자 @jagster@kvarkki.nexus가 나타납니다. 그는 @activitypub@meta.discourse.org를 팔로우하고 있기 때문에 그 부스트를 봅니다. 그렇지 않았다면 그는 그 메시지를 결코 볼 수 없었을 것입니다. 그는 부스트를 합니다. 이 시점에서 @activitypub@meta.discourse.org는 사라지고, 마스토돈(정확히는 그 일부 제한된 부분)은 @jagster@kvarkki.nexus가 @icaria@meta.discourse.org의 메시지를 부스트하는 것을 봅니다— 그리고 그 사용자는… 비공개이며 잠겨 있습니다.
이제 우리는 해시태그로 돌아옵니다. 그 게시물에는 해시태그 #activitypub이 있습니다. [1] 그런 다음 mastodon.example.tld 인스턴스의 누군가가 그 해시태그를 검색하여 @icaria@meta.discourse.org의 투트를 찾습니다.
다음은 무엇입니까? 그 사용자는 마스토돈 액터 @icaria@meta.discourse.org가 비공개 잠금 사용자이기 때문에 아무것도 하기 어렵습니다. 그리고 @activitypub@meta.discourse.org에 대한 흔적은 전혀 없으며, 어떤 힌트가 있더라도 부스트를 한 액터에 관심이 있는 사람은 아무도 없습니다. 그래서 저는 디스커스의 ActivityPub 버전은 이 생태계, 즉 디스커스들 사이를 위해 만들어졌다고 말하고 싶습니다. 그리고 마스토돈/페더버스(Fediverse)는 다르게 작동하기 때문에 충돌이 발생합니다.
네. 해시태그는 중요합니다. 하지만 해시태그가 가리키는 실제 액터가 있을 때까지 해시태그에는 실질적인 용도가 없습니다. 우리가 가장 하고 싶지 않은 것은 팔로우할 수 없는 액터로 사용자를 유도하는 것이기 때문입니다.
모든 리치 텍스트처럼 보이는 것은 비활성화되므로 이것이 어떻게 있을 수 있는지 모르겠습니다. 이것이 바로 마스토돈이 디스커스(Discourse)의 굵은 글씨나 목록을 표시할 수 없는 이유이며, 마스토돈은 그 정도는 할 수 있는데도 말입니다. ↩︎