FEP-e232: オブジェクトリンク
Warning
このFEPはgemini-2.5-flash
を利用して2025年08月16日 23時14分
に翻訳されました。オリジナルのFEPはここから閲覧できます。
概要
この文書は、メンションに類似した、ActivityPubオブジェクトへのテキストベースのリンクを表現する方法を提案します。そのようなリンクの一例として、content
プロパティの値内のインライン引用が挙げられますが、この提案は特定のユースケースに限定されるものではありません。
要件
この文書におけるキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、「OPTIONAL」は、RFC-2119で記述されている通りに解釈されるものとします。
オブジェクトリンク
ソフトウェアは、@mention
や#hashtag
のようなマイクロシンタックス(microsyntax)を用いて、ユーザーがオブジェクトリンクを定義できるようにすることが期待されます。オブジェクトリンクを定義する正確な方法はユースケースによって異なる可能性があり、この文書の範囲外です。
オブジェクトのname
、summary
、またはcontent
が他のオブジェクトへの修飾されたリンクを持つ場合、そのオブジェクトはActivity Vocabularyによって提案されているように、各オブジェクトリンクがLink
オブジェクトとして表現されるtag
プロパティを持つべき(SHOULD)です。このLink
オブジェクトのプロパティは以下の通りです。
type
(必須): タイプはLink
またはそのサブタイプである必要があります(MUST)。mediaType
(必須): メディアタイプはapplication/ld+json; profile="https://www.w3.org/ns/activitystreams"
である必要があります(MUST)。この仕様はActivityPubオブジェクトのみを扱いますが、実際にはメディアタイプが異なる場合があり、サーバーは要件に準拠しないオブジェクトリンクを受け入れてもよい(MAY)です。例えば、application/activity+json
のメディアタイプは同等として扱われるべき(SHOULD)です。href
(必須):href
プロパティは参照されるオブジェクトのURIを含む必要があります(MUST)。name
(任意):name
はオブジェクトのコンテンツで使用されるマイクロシンタックスと一致すべき(SHOULD)です。rel
(任意): 関連する場合、rel
はリンクが現在のリソースとどのように関連しているかを指定すべき(SHOULD)です。rel
を使用することで、特定の意図されたユースケースを示すことにより、オブジェクトリンクに追加の目的を提供できます。
例
(このセクションは非規範的です。)
バグトラッカー内のイシューへのリンク:
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Note",
"content": "The bug was reported in #1374",
"tag": [
{
"type": "Link",
"mediaType": "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"",
"href": "https://forge.example/tickets/1374",
"name": "#1374"
}
]
}
インライン引用:
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Note",
"content": "This is a quote:<br>RE: https://server.example/objects/123",
"tag": [
{
"type": "Link",
"mediaType": "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"",
"href": "https://server.example/objects/123",
"name": "RE: https://server.example/objects/123"
}
]
}
なお、content
にはRE: <url>
マイクロシンタックスが含まれていますが、消費する実装は適切な関連付けを行うためにそれをパースする必要はありません。
実装
- (streams)
- FoundKey
- Mitra
- Pleroma (MRF経由)
- Threads (発表)
- Friendica
- Bridgy Fed
- Hollo
- Iceshrimp.NET
参照
- Christine Lemmer Webber, Jessica Tallon, ActivityPub, 2018
- S. Bradner, RFCにおける要件レベルを示すためのキーワード, 1997
- James M Snell, Evan Prodromou, Activity Vocabulary, 2017
著作権
CC0 1.0 ユニバーサル (CC0 1.0) パブリックドメイン献呈
法が許す限りにおいて、このFediverse Enhancement Proposalの著者は、この著作物に対するすべての著作権および関連する権利、または隣接する権利を放棄しました。