Skip to content

Note

このドキュメントは2026-02-27 03:14PLaMo Translation Modelを使用して自動翻訳されました。

FEP-c648: ブロック済みコレクション機能

概要

ユーザーは自身がブロックしたアカウントの一覧を確認し、必要に応じて修正する必要があります。本FEPでは、ユーザーがブロックしたアカウントを保持する「ブロック済みコレクション」という新たなプロパティを定義します。また、ブロックを解除するための「Block」アクティビティの集合体も規定し、さらにこれら2つのコレクション間およびそれらが管理するアカウント間でのナビゲーションを支援するための逆方向プロパティも定義します。

背景

Activity VocabularyではBlockアクティビティタイプが定義されています。ActivityPub仕様では、APIにおいて他のアカウントをブロックするためのBlockアクティビティの使用方法が規定されています(https://www.w3.org/TR/activitypub/#block-activity-outbox)。

しかしながら、ActivityPubにはユーザーがブロックしたアカウント一覧を効率的に取得する方法が定められていません。この情報を取得する唯一の方法は、後続のUndoアクティビティの対象となっていないoutboxコレクション内のBlockアクティビティをスキャンすることです。大規模なoutboxの場合、この方法は非効率的で処理速度が低下する可能性があります。

アクターのfollowersプロパティおよびfollowingプロパティは、そのソーシャルグラフにおけるアカウントオブジェクトの集合です。本文書で定義する新しいblockedプロパティも同様に、ユーザーがブロックした他のアカウントを保持するコレクションとして機能します。

ブロック済みアカウント一覧の主な用途として、ユーザーが自身のブロック状況を確認し、必要に応じて解除できることが挙げられます。ただし、ActivityPub仕様では、ブロックを解除するためにはBlockアクティビティのid情報が必要とされています。

ブロック解除をより容易にするため、アクターのblocksプロパティはBlockアクティビティの集合体であり、各アクティビティには当該活動のidとブロック対象となったアカウントオブジェクトが含まれます。これらのアクティビティを使用することで、ブロックを効果的に解除することが可能です。

2つのプロパティのうち、blocksプロパティは特にクライアントアプリケーションにとって有用です。なぜなら、各Blockアクティビティのobjectプロパティから容易にブロック済みアカウント一覧を導出できるからです。ただし、実装者によってはfollowersおよびfollowingプロパティとの整合性を考慮してblockedプロパティを好む場合もあります。本仕様では両方のプロパティを定義しています。

ユースケース

  • ActivityPubユーザーとして、自身がブロックしたアカウントのリストを確認したい。これにより、誰に対して制限をかけているかを明確に把握できる。
  • ActivityPubユーザーとして、特定のBlockアクティビティを解除し、再びそのアカウントとやり取りできるようにしたい。

適用範囲

blockedプロパティに関するコンテキスト文書は以下の通りです:

{
  "@context": {
    "bl": "https://purl.archive.org/socialweb/blocked#",
    "blocked": {
      "@id": "bl:blocked",
      "@type": "@id"
    },
    "blocks": {
      "@id": "bl:blocks",
      "@type": "@id"
    },
    "blockedOf": {
      "@id": "https://www.w3.org/ns/activitystreams#blockedOf",
      "@type": "@id"
    },
    "blocksOf": {
      "@id": "https://www.w3.org/ns/activitystreams#blocksOf",
      "@type": "@id"
    }
  }
}

実装例

  • onepage.pubサーバーではblockedコレクションが実装されています。

履歴

activitypub-expressでは、アクターのstreamsコレクション内にブロック済みオブジェクトのみを含むblockedプロパティを実装しています。開発者らは、オブジェクトのみを保存する方法では、完全なActivityオブジェクトのidが必要となるためブロック解除が困難であること、またブロック活動に関するメタデータ(日付など)も失われてしまうことを確認しています。

参考文献

著作権

CC0 1.0 Universal(パブリックドメイン献呈)

本Fediverse Enhancement Proposalの著者らは、法律で認められる範囲内において、本作品に関するすべての著作権および関連する権利を放棄しています。