这里还有一些额外的考虑因素。
属性映射
Discourse
- title =
name - cooked =
content
Mastodon
帖子映射到 Note
- text =
content
帖子映射到 Article:
- text =
name+summary+link
另外:
-
Mastodon 还使用
summary来表示内容警告(例如 NSFW)。Mastodon 团队目前正在审查此事,并且是 W3C ActivityPub 信任与安全工作组的讨论主题。 -
Fediverse 技术人员(包括 Mastodon)正在讨论采用
Preview的概念,该概念将是一个附加到Article的对象(例如另一个Note),用于提供更结构化的summary版本,但对此存在一些争论。
其他平台
许多平台遵循 ActivityStreams 规范。
帖子映射到 Note 或 Article:
- text =
content
大多数平台没有“主题”的概念,但如果有的话:
- title =
name
还有一个额外的考虑因素是,在“Threadiverse”(即 Discourse、NodeBB、Lemmy、Flarum 等)中,我们基本上确定了一个主题 = Collection 的概念,这也意味着主题标题可以是 Collection 的 name。
这对我们意味着什么
@pmusaraj 我个人认为,上述背景信息对于您提出的考虑因素的要点如下:
1. 有针对性地使用 summary。
我认为我们应该将 Discourse 主题的 excerpts 映射到 Article 的 summary,仅用于主题的第一篇帖子。仅 Article,而不是 Note,并且仅用于主题的第一篇帖子。
2. 从 Collection 名称派生主题标题。
在导航上述对象映射时的一个难点是,您需要一种一致的方式来保留主题标题,尤其是在跨 Discourse 实例进行联合时。我认为更好的导航方式是按如下方式派生主题标题:
topic_title = collection.name || first_post.object.name
3. 鼓励仅将第一篇帖子设为 Article。
“仅第一篇帖子”发布类型的目的是为了支持主要面向 Mastodon 等流式平台的“公告”风格的发布用例。如果我们实现了 1,这意味着第一篇帖子将在 Mastodon 中显示如下:
#{topic title}\n\n#{topic excerpt}\n\n#{topic url}
我还没有触及 summary 的原因是 Mastodon 也(除了在 Article 中的使用之外)一直将 summary 用于内容警告和剧透,然而这是:
- 对于
Article来说不太相关,因为summary有效地仅用作summary。它被更像内容警告(剧透)用于Note;并且 - 是 Mastodon 特有的处理方式;并且
- 不是
summary属性的规范用途(即在 W3C 规范中);并且 - 这在 Mastodon 中可能会改变。
请注意,我说“鼓励”,因为我认为将“仅第一篇帖子”始终设为 Article 会排除使用 [note][/note] 标记来识别要发布的帖子中哪些内容。您目前可以使用此标记来创建自己的自定义摘要。我不确定这是否会成为一种使用模式,但我目前不想完全排除它。
4. 删除“在我们的论坛上讨论”链接和设置。
虽然这在早期可能是有意义的,但我认为它:
- 特定于“仅第一篇帖子”公告风格的用例。
- 如果我们采用
3,则对该用例是多余的。 - 与我们始终发送并被平台用于链接到原始内容的“对象 URL”重复。