Поддержка тегов ActivityPub

При федерации поста из Discourse в Фидиверс хэштеги, введённые в посте Discourse, должны преобразовываться в хэштеги ActivityPub. В настоящее время они отображаются как есть, например, в Mastodon, но не распознаются как хэштеги.

Хэштеги — это основной способ обнаружения нового контента по конкретной теме в Фидиверсе. В настоящее время, если вы федерализуете пост из Discourse, например, о #Discourse, вы полагаетесь на то, что ваши подписчики будут репостить ваш федерализованный пост, что позволит вам охватить лишь ограниченную аудиторию за пределами тех, кто уже знает о вашем проекте или форуме Discourse. Однако, если бы хэштеги распознавались, такие федерализованные посты могли бы быть найдены людьми, интересующимися теми же темами и подписанными на эти хэштеги.

Обратите внимание, что речь идёт о хэштегах, введённых непосредственно в самом посте, а не о тегах Discourse для федерализуемых тем. Это даёт автору федерализованного поста возможность вводить теги, которые могут существовать или не существовать в экземпляре Discourse, но являются актуальными для федерализованного поста.

3 лайка

К сожалению, способ использования хэштегов в Discourse в настоящее время несовместим с более широким использованием хэштегов в социальных сетях… поэтому это кажется сложным.

Например, #plugin преобразуется в #plugin, #activitypub преобразуется в activitypub… это внутренние ссылки форума, и контекст их использования отличается.

Я могу написать что-то вроде этого в сообщении, например,

Следите за #announcements для новых функций!

что не имело бы смысла вне сайта при федерации как #announcements

2 лайка

@awesomerobot Я понимаю вашу точку зрения, но давайте посмотрим на это с точки зрения пользователя, а не с точки зрения Discourse.

Если администраторы экземпляра Discourse решат установить плагин ActivityPub и включить функции для федерации с «Mastodon», их главная цель — распространение тем форума по Фединверсу. Теги ActivityPub, в частности, значительно повышают вероятность того, что эти федерированные посты действительно будут распространяться.

Между тем, авторы постов на Discourse контролируют теги, которые они вводят. В соответствии с этой просьбой, если они напишут #ActivityPub, эта строка будет преобразована в настоящий тег на Mastodon и т. д. Если же они хотят сослаться, например, на свою категорию #announcements, но не хотят, чтобы это распространялось как тег ActivityPub, они могут просто добавить ссылку на URL категории: Announcements.

Это не идеально с эстетической точки зрения, но и читатели Discourse, и читатели Фединверса получат максимум пользы от этих ссылок.

1 лайк

Да, возможно, мы сможем придумать какой-то особый режим или синтаксис в категориях ActivityPub для поддержки этого, если будет достаточный спрос. Возможно, наше автодополнение тегов сможет добавить опцию «федерированный тег» или что-то подобное в дополнение к внутренним ссылкам.

3 лайка

Что ж, хэштеги — это по сути ещё одна базовая функция, поскольку это единственный способ найти кого-то для подписки или что-то в этом роде, если за хэштегом следят.

Но даже если бы у нас завтра появилась такая система, главная проблема всё ещё остаётся: подписка на пользователя/актёра.

Если пост №1 в Discourse (OP) можно найти по хэштегу, кто будет показан как отправитель и кого можно будет подписаться?

У нас есть только один подписываемый актёр — актёр категории/тега, — но он ничего не публикует. Он лишь репостит/перемещает/делится тем, как бы вы ни хотели это назвать. Фактический издатель — пользователь Discourse, но его нельзя подписаться.

Если/когда у нас появятся хэштеги, например #discourse, и благодаря какой-то магии они переживут процесс очистки всего, что выглядит как богатый текст, сообщения/тооты с #discourse будут появляться, если кто-то использует их для поиска подписок.

Но в этом случае подписываемый пользователь, актёр тега/категории, исчезает, и вместо него показывается пользователь Discourse, на которого нельзя подписаться.

Так что в принципе отображение хэштегов должно быть, но пока у нас нет ничего надёжного и подписываемого для показа, в этом нет смысла.

Система хорошо работает в связке Discourse ↔ Discourse. Но связка Discourse ↔ Mastodon всё ещё незавершена или находится в разработке. А связка Discourse → Федиверс пока остаётся на уровне теории, если я не ошибаюсь.

1 лайк

Возможно, для вас в этом нет смысла, но для нас хештеги — это желанная функция в любом случае. Мы используем федерацию как механизм для выхода за пределы нашего форума Discourse в открытое пространство Fediverse. Всё, что мы хотим, — это чтобы люди читали эти федеративные посты, ставили им лайки, репостили их, комментировали… и если они перейдут по ссылке на форум — ещё лучше.

Всё это можно реализовать независимо от проблемы, которую вы поднимаете: она обоснована, но не связана напрямую с хештегами.

Я тоже так считаю. Но вы упускаете очевидную вещь. Допустим, @icaria@meta.discpurse.org публикует пост в Meta с тегом #activitypub, и этот аккаунт тоже является актором. В этот момент @activitypub@meta.discourse.org федеративно распространяет пост №1, делая репост твита, а автором оригинала числится @icaria@meta.discourse.org.

  • Актор-репостер @activitypub@meta.discourse.org можно подписаться, но никто никогда не подписывается на акторов, которые делают репосты, а их репосты видны только их подписчикам (и именно здесь мы теряем всю публичность).
  • Автор @icaria@meta.discourse.org — это тот, на кого все хотели бы подписаться, но не могут. Если попытаться, запрос останется в статусе ожидает одобрения. Посты этого пользователя будут видны локально и в федеративной ленте, если кто-то на него подпишется, но у него не может быть подписчиков.

Затем появляется пользователь Mastodon @jagster@kvarkki.nexus и видит этот репост, потому что он подписан на @activitypub@meta.discourse.org. В противном случае он никогда бы не увидел это сообщение. Он делает репост. В этот момент @activitypub@meta.discourse.org исчезает, и Mastodon (точнее, его ограниченная часть) видит, как @jagster@kvarkki.nexus репостит сообщение от @icaria@meta.discourse.org — а этот пользователь… закрыт и приватен.

И теперь мы снова возвращаемся к хештегам. В том посте есть хештег #activitypub [1]. Затем кто-то с инстанса mastodon.example.tld ищет этот хештег и находит твит от @icaria@meta.discourse.org.

Что дальше? У этого пользователя возникают трудности с любыми действиями, потому что для актора Mastodon @icaria@meta.discourse.org является закрытым и приватным пользователем. И нет абсолютно никаких следов @activitypub@meta.discourse.org. Даже если бы был какой-то намёк, никто никогда не заинтересовался бы актором, который сделал репост. Поэтому я бы сказал, что версия ActivityPub в Discourse предназначена для этой экосистемы, то есть для взаимодействия между инстансами Discourse, а поскольку Mastodon/Fediverse работает иначе, возникает конфликт.

Да, хештеги важны. Но у них нет реального применения, пока у нас нет настоящего актора, к которому ведут эти хештеги. Потому что последнее, чего мы хотим, — это направлять пользователей к актору, на которого невозможно подписаться.


  1. Я не понимаю, как он вообще мог там появиться, ведь всё, что выглядит как форматированный текст, обесценивается, и поэтому Mastodon не может отображать жирный шрифт или списки из Discourse, хотя сам Mastodon способен на это ↩︎

Мы не упускаем, мы понимаем проблему, просто для нас это не такая большая проблема, как отсутствие хештегов.

Это запрос на добавление функции, касающийся хештегов ActivityPub. Можем ли мы использовать эту тему для обсуждения хештегов ActivityPub, а остальное перенести в отдельную тему, пожалуйста?

Мы обсуждаем это. Суть в том, что пока нет абсолютно никакого смысла настраивать связи тегов/хэштегов, так как это не помогает вообще, если не решён вопрос с отслеживанием акторов.

Это вопрос приоритетов.

Не обращайте внимания на язык. Вы наверняка понимаете, о чём речь.

Это ваша проблема №1, которую нельзя решить с помощью хэштегов. Хэштеги появляются после того, как есть актор, способный публиковать, быть найденным и отслеживаемым.