Note
このドキュメントは2026-02-27 03:15にPLaMo Translation Modelを使用して自動翻訳されました。
FEP-dd4b: 引用投稿機能の仕様
概要
本FEPでは、Activity Streams 2.0およびアクティビティ語彙集において定義されている、引用投稿を実現するための仕組みについて説明します。具体的には、追加コメントを伴う[発表](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-announce)活動の形式について規定します。
背景
他のアクターが作成したコンテンツやアクティビティを再配布することは、ソーシャルウェブにおける主要な活動の一つです。[発表]活動タイプはActivity Streams 2.0(AS2)においてこの種の活動を表現するために定義されています。Announce型はActivityPubで情報共有機能を提供する際に使用され、7.11 発表活動(共有)に記載があります。
AS2における[アクティビティ]オブジェクトタイプは、[オブジェクト]タイプのすべてのプロパティを継承しています。つまり、あらゆる種類のアクティビティには、ソーシャルウェブ上で第一級コンテンツとして表現するための豊富なプロパティセットが用意されています。Announce型も例外ではありません。
しかしながら、ActivityPub仕様書では、共有コンテンツに対する追加コメントやメタデータ、関連ファイルを提供するためにこれらのプロパティをどのように使用すべきかについては明記されていません。いわゆる「引用ツイート」(https://en.wikipedia.org/wiki/Tweet_(social_media)#Quote_tweets)、「コメント付きリポスト」、あるいは[引用投稿](https://help.instagram.com/279780184399513)と呼ばれるこの種の拡張共有は、共有オブジェクトに追加的な文脈を提供します。
本FEPでは、contentプロパティを用いたこのような追加コメントの提供方法、および当該用途において有用となり得るその他のプロパティについて説明します。この仕様はActivity Streams 2.0全般に適用可能であり、特にActivityPubに関連する場合にはその旨を明記します。
仕様
Announce活動におけるobjectプロパティは、必ず共有コンテンツへの参照でなければなりません。AS2のObject型またはLink型のいずれかとして表現でき、JSONオブジェクト形式でもURL形式でも可能です。Announce活動のcontentプロパティは、共有コンテンツに対する追加コメントを提供するために使用できます。Announce活動のattachmentプロパティは、共有コンテンツや前述のコメントに関連する追加メディアコンテンツを提供するために使用できます。Announce活動のtagプロパティは、[メンション](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-mention)オブジェクトや[ハッシュタグ](https://swicg.github.io/miscellany/)オブジェクトなど、共有コンテンツまたはコメントに関する追加メタデータを提供するために使用できます。Announce活動のinReplyToプロパティは、当該発表を別のオブジェクトに対する返信として関連付けるために使用できます。返信先オブジェクトは共有コンテンツそのものでも構いませんが、これは一般的ではなく、通常は独立した会話の一部となる場合があります。inReplyToプロパティを持つAnnounce活動は、原則として、返信対象となっているオブジェクトのrepliesコレクションに含まれるべきです。Announce活動は、追加プロパティの有無にかかわらず、7.11 発表活動(共有)で定義されている通り、必ず共有コンテンツのsharesコレクションにカウントされるべきです。
具体例
基本的な引用投稿例
これは、あるアクターが他のアクターによるメモを共有し、追加コメントを添えたシンプルな引用投稿の例です。
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://example.com/activities/aaabbbccc",
"type": "Announce",
"actor": "https://example.com/users/evan",
"to": "https://example.com/users/evan/followers",
"object": {
"id": "https://example.com/notes/1234",
"type": "Note",
"attributedTo": "https://example.com/users/franklin"
},
"content": "この指摘は重要であり、共有する価値があると考えます。"
}
添付付き引用投稿例
これは、画像を添付した引用投稿の例です。アクターは他のアクターによるメモを共有し、コメントと画像を併せて提供しています。
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://example.com/activities/dddeeefff",
"type": "Announce",
"actor": "https://example.com/users/evan",
"to": "https://example.com/users/evan/followers",
"object": {
"id": "https://example.com/notes/1234",
"type": "Note",
"attributedTo": "https://example.com/users/franklin"
},
"content": "著者はクレタ島の岩石層について詳細に記述しています。以下は私の最近の訪問時に訪れた際の一例です。",
"attachment": {
"type": "Link",
"mediaType": "image/jpeg",
"url": "https://example.com/images/1234.jpg"
}
}
ハッシュタグ付き引用投稿例
これは、ハッシュタグを付加した引用投稿の例です。アクターは他のアクターによるメモを共有し、コメントとハッシュタグを添えています。
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://example.com/activities/ghhiijjkk",
"type": "Announce",
"actor": "https://example.com/users/evan",
"to": "https://example.com/users/evan/followers",
"object": {
"id": "https://example.com/notes/1234",
"type": "Note",
"attributedTo": "https://example.com/users/franklin"
},
"content": "<a href='https://example.com/users/jeff'>@jeff</a> このクレタ島の岩石層に関する記事をご覧になると興味深いかもしれません。",
"tag": {
"type": "Mention",
"href": "https://example.com/users/jeff",
"name": "jeff"
},
"inReplyTo": "https://example.com/activities/rrrsssttt"
}
マイクロブログインターフェースにおける引用投稿表示例
引用投稿を一般的な形式で表現する場合、Announce活動のobject部分を埋め込みカードなどの形で表示し、Announceオブジェクトのcontent部分を導入文として記載する方法が一般的です。

セキュリティに関する考慮事項
すべてのAnnounce活動において、発表対象コンテンツのうちどの程度を受信者に公開すべきかを考慮することが重要です。URLを参照として使用したり、本FEPで示すように限定的なメタデータのみを含めることで、共有コンテンツの発行元サーバーが当該コンテンツへのアクセス制御を行えるようになります。詳細についてはActivityPub入門[アクティビティ]セクションをご覧ください。
プライバシーに関する考慮事項
公開同意について
引用対象コンテンツを作成した作成者は、sharesコレクションへの追加を通じて、自身の引用に対する同意を表明できます。作成者が引用に同意している場合、その引用投稿をsharesコレクションに追加することができます。同意しない場合は、当該引用投稿を省略するか、削除することが可能です。
サーバーは原則として、作成者がsharesコレクションにコンテンツを追加・削除できる機能を提供するべきです。また、オプトイン方式を採用し、元の著者が明示的に追加しない限りAnnounce活動をsharesコレクションに反映させない選択肢もあります。逆に、自動的にsharesコレクションに追加するが、元の著者が自由に削除できるようにすることも可能です。
引用投稿を利用する消費者は、いつでもsharesコレクションを参照することで、発行者が公開に同意しているかどうかを確認できます。同意は任意の時点で付与または撤回可能です。
消費者は、元の作成者が当該引用投稿に対して同意していることを明示的に示す必要があります。また、元の作成者の同意を得ていない引用投稿については、表示を省略するか隠蔽することが推奨されます。
参考文献
- James Snell、Evan Prodromou他 Activity Streams 2.0。W3C勧告。2018年5月8日。
- James Snell、Evan Prodromou他 アクティビティ語彙集。W3C勧告。2018年5月8日。
- Christine Lemmer-Webber、Jessica Tallon他 ActivityPub。W3C勧告。2018年1月23日。
- Evan Prodromou ActivityPub 雑則用語集。W3Cソーシャルウェブコミュニティグループ草案報告書。2024年10月3日。
- W3Cメンバーおよび貢献者 ActivityPub入門。W3C Wiki。2023年以降。
著作権
CC0 1.0 Universal(CC0 1.0)パブリックドメイン献呈
本Fediverse拡張提案の著者らは、法律で認められる範囲内において、当該著作物に関するすべての著作権および関連または隣接する権利を放棄しています。