Skip to content

Note

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

FEP-268d: オブジェクトに対する検索同意のシグナル機能

概要

本FEPは、[Activity Streams 2.0]仕様において、特定のアクターが指定したオブジェクトを検索対象とする旨を通知するための拡張プロパティについて規定する。

沿革

本節は規範的ではない記述である。

Fedibirdは2022年8月にsearchableByプロパティを導入した(GitHubコミット)。

kmyblueは2023年4月にsearchableByプロパティを実装した(GitHubコミット)。

Mastodonは2023年2月にindexableプロパティの実装を開始し[FEP-5feb]、同年9月にはバージョン4.2.0-rc1としてリリースした(GitHubリリース)。

背景

本節は規範的ではない記述である。

[FEP-5feb]ではindexableプロパティが導入され、Activity Streamsのアクターが、自身に帰属するオブジェクトを公開検索可能とするか否かの意向を表明できるようになった。

indexableプロパティはアクターレベルのプロパティであり、ブール値を取る。これによりアクターは、全てのオブジェクトを検索対象とするか、全く検索不可とするかを選択できる。ただし、特定のオブジェクト群のみを検索可/不可にしたり、限定された対象者にのみ検索可能にしたりする場合もある。本FEPで規定するオブジェクトレベルのsearchableByプロパティは、このindexableプロパティを補完し、より精緻な対象者指定機能を提供するものである。

要件

本文書中で使用される「MUST」「MUST NOT」「REQUIRED」「SHALL」「SHALL NOT」「SHOULD」「SHOULD NOT」「RECOMMENDED」「NOT RECOMMENDED」「MAY」「OPTIONAL」の各用語は、[RFC 2119]で定義された解釈に従うものとする。

定義語彙

searchableBy

URI
http://fedibird.com/ns#searchableBy
ラベル
検索可能対象
コメント
当該オブジェクトを検索可能なエンティティを特定する。
ドメイン
Object
レンジ
Object | Link
必須条件
不要
定義元リソース
FEP-268d
公開検索可能な投稿の非規範的例:
{
  "@context": [
    "https://w3id.org/fep/268d",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://example.com/notes/1",
  "attributedTo": "https://example.com/users/1",
  "to": "https://www.w3.org/ns/activitystreams#Public",
  "cc": "https://example.com/users/1/followers",
  "type": "Note",
  "content": "Hello, world!",
  "searchableBy": "https://www.w3.org/ns/activitystreams#Public"
}
言及されたユーザーと投稿者のフォロワーのみが検索可能な投稿:
{
  "@context": [
    "https://w3id.org/fep/268d",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://example.com/notes/42",
  "attributedTo": "https://example.com/users/1",
  "to": "https://alice.example/actor",
  "cc": ["https://example.com/users/1/followers", "https://www.w3.org/ns/activitystreams#Public"],
  "type": "Note",
  "content": "@Alice Happy birthday!",
  "tag": {
    "type": "Mention",
    "href": "https://alice.example/actor",
    "name": "@Alice"
  },
  "searchableBy": ["https://alice.example/actor", "https://example.com/users/1/followers"]
}
(ここで`https://example.com/users/1/followers`は`https://example.com/users/1`のフォロワー一覧コレクションを指す。) 投稿者本人のみが検索可能な投稿:
{
  "@context": [
    "https://w3id.org/fep/268d",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://example.com/notes/123",
  "attributedTo": "https://example.com/users/1",
  "to": "https://example.com/users/1/followers",
  "cc": "https://www.w3.org/ns/activitystreams#Public",
  "type": "Note",
  "summary": "自己メモ",
  "searchableBy": "https://example.com/users/1"
}
デフォルトで`as:Public`検索可と設定されたアクター:
{
  "@context": [
    "https://w3id.org/fep/268d",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://example.com/users/1",
  "type": "Person",
  "searchableBy": "https://www.w3.org/ns/activitystreams#Public"
}
## オブジェクトの検索可能性について 本節では、特定のアクターに対するオブジェクトの検索可能性をどのように決定すべきかを規定する。 対象オブジェクトに少なくとも一つの`searchableBy`プロパティ値があり、かつ検索を行うアクターがその値に含まれていない場合、そのオブジェクトはそのアクターによる検索対象とならない。 - `indexable`プロパティと同様に、`searchableBy`プロパティも精緻な対象者指定を可能にする。 - 空配列値(`"searchableBy": []`)を含むJSONエントリは無視する必要がある。この処理を怠ると、RDFベースの署名検証を行う実装においてセキュリティ上の問題が生じる可能性がある。空配列値はRDFデータセットに影響を与えず(したがって生成される署名値にも影響を及ぼさないため)、攻撃者が署名済みオブジェクトから`"searchableBy": []`エントリを削除または挿入しても、署名検証が失敗することはない。この場合、空配列値が「未定義」とは異なる扱いを受けると、オブジェクトの検索可能性を不正に操作することが可能となる。 ## 実装状況 *本節は規範的ではない記述である。* - [Fedibird](https://github.com/fedibird/mastodon/tree/fedibird) - [kmyblue](https://github.com/kmycode/mastodon) ## 参考文献 - [Activity Streams 2.0] James M Snell, Evan Prodromou, 〈[Activity Streams 2.0](https://www.w3.org/TR/activitystreams-core/)〉, 2017 - [FEP-5feb] Claire, 〈[FEP-5feb: アクター向け検索インデックス同意機能](https://w3id.org/fep/5feb)〉, 2023 - [RFC-2119] S. Bradner, 〈[RFCにおける要件レベルを示すキーワードの使用規定](https://doi.org/10.17487/RFC2119)〉, 1997 - [RFC-9309] M. Koster, 〈[Robots Exclusion Protocol](https://doi.org/10.17487/RFC9309)〉, 2022 - [ROBOTSTXT] Martijn Koster, 〈[ロボット排除プロトコル標準仕様](https://www.robotstxt.org/orig.html)〉, 1994 - [ROBOTSTXT-META] Martijn Koster, 〈[Robots タグについて](https://www.robotstxt.org/meta.html)〉, 2007 - [GOOGLE-ROBOTS] Google, 〈[ロボットメタタグ仕様](https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag#xrobotstag)〉 ## 著作権 CC0 1.0 Universal(CC0 1.0)パブリックドメイン献呈 本Fediverse Enhancement Proposalの著者らは、法律で許容される範囲内において、当該著作物に関する全ての著作権および関連権利を放棄している。