FEP-e232: オブジェクトリンク

authors silverpill @silverpill@mitra.social
status FINAL
dateReceived 2022-08-01
dateFinalized 2023-12-03
trackingIssue https://codeberg.org/fediverse/fep/issues/14
discussionsTo https://socialhub.activitypub.rocks/t/fep-e232-object-links/2722
original https://codeberg.org/fediverse/fep/src/branch/main/fep/e232/fep-e232.md

概要

この文書は、ActivityPubオブジェクトへのテキストベースのリンクを表現する方法を提案します。これはメンションに類似しています。例えば、contentプロパティの値内のインライン引用などがありますが、この提案は特定のユースケースに限定されるものではありません。

要件

この文書における「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、「OPTIONAL」というキーワードは、RFC-2119に記載された通りに解釈されます。

オブジェクトリンク

ソフトウェアは、@mention#hashtagのマイクロシンタックスに類似した方法で、ユーザーがオブジェクトリンクを定義できるようにすることが期待されます。オブジェクトリンクの定義方法はユースケースによって異なる可能性があり、この文書の範囲外です。

オブジェクトのnamesummary、またはcontentに他のオブジェクトへのリンクが含まれている場合、そのオブジェクトはtagプロパティを持つべきであり、各オブジェクトリンクはActivity Vocabularyに基づいてLinkオブジェクトとして表現されます。このLinkオブジェクトのプロパティは以下の通りです:

  • type (必須): タイプはLinkまたはそのサブタイプでなければならない。
  • mediaType (必須): メディアタイプはapplication/ld+json; profile="https://www.w3.org/ns/activitystreams"でなければならない。この仕様はActivityPubオブジェクトのみを扱いますが、実際にはメディアタイプが異なる場合があり、サーバーはこの要件に準拠しないオブジェクトリンクを受け入れる可能性があります。例えば、application/activity+jsonのメディアタイプは同等と見なされるべきです。
  • href (必須): hrefプロパティには参照されるオブジェクトのURIが含まれていなければならない。
  • name (任意): nameはオブジェクトのコンテンツで使用されるマイクロシンタックスと一致するべきである。
  • rel (任意): 関連する場合、relはリンクが現在のリソースにどのように関連しているかを指定すべきである。relを使用することで、特定の用途を示すことにより、オブジェクトリンクに追加の目的を提供することができる。

(このセクションは非規範的です。)

バグトラッカーの問題へのリンク:

{
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Note",
    "content": "バグは #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": "これは引用です:<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>のマイクロシンタックスが含まれていますが、消費する実装は適切な関連付けを行うためにそれを解析する必要はありません。

実装

参考文献

著作権

CC0 1.0 ユニバーサル (CC0 1.0) パブリック ドメイン

法律で認められる範囲において、この Fediverse 拡張提案の著者は、この作品に対するすべての著作権および関連する権利または隣接する権利を放棄しています。