Skip to content

Note

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

FEP-19b3: サービスのプロパティ指定方法

概要

Serviceタイプのアクターは、Fediverseにおいて自動化プロセスを表現するために使用されます。本FEPでは、基盤となる自動化プロセスに関する詳細情報や、当該プロセスを担当する責任主体を伝えるための適切なプロパティ値を提案します。

プロパティ値の定義

プロパティ値はアクターに付加することで、追加情報を提供することができます。プロパティ値を使用する主な利点は以下の2点です:

  • 標準化されたアプローチであること
  • Fediverseユーザーに対して可視化されること

PropertyValueの公式定義はSchema.org Type - PropertyValueで確認できます。 プロパティ値の使用例セクションでは、具体的な事例とプロパティ値の活用方法に関する詳細な解説を掲載しています。

推奨するプロパティ値

ここで提案するプロパティ値は、Fediverseユーザーへの情報提供を目的としています。これらの値はFediverseアプリケーションの動作に影響を与えるものではありません。

Source(ソースコード)

このプロパティ値には、例えば以下のようなソースコードへのリンクを指定します:

{
  "type": "PropertyValue",
  "name": "Source",
  "value": "https://codeberg.org/helge/release_helper"
}

Author(著者情報)

Sourceでリンクされているソースの作成者を明示します。値の形式については議論の余地がありますが、以下のような選択肢が考えられます: * Fediverseハンドル名(例:@helge@mymath.rocks) * 対応するacct-uri形式(例:acct:helge@mymath.rocks) * WebページURL * メールアドレス(user@domain.example形式とmailto:user@domain.example形式のどちらを使用するかは議論が必要)

Support(サポート情報)

サービスの作成者と実際の運用者が同一でない場合、代替フィールドとして__Support__を使用することを推奨します。

Frequency(実行頻度)

cronジョブのように周期的に実行するサービスの場合、その実行間隔を指定できます。具体例:

{
  "type": "PropertyValue",
  "name": "Frequency",
  "value": "毎時42分に1回"
}

ServiceType(サービス種別)

サービスの種類を示すプロパティ値です。例えばComment Tracking Systemなどが該当しますFEP-136c。特に複雑な処理を行うサービスに対して使用し、当該サービスが実行する機能についてのドキュメントへのリンクを併せて記載することが推奨されます。

{
  "type": "PropertyValue",
  "name": "ServiceType",
  "value": "Comment Tracking System, https://bovine.codeberg.page/comments/136c/fep-136c/"
}

Reacts To Mentions(メンションに反応する機能)を指定することは、このサービスがボットであり、言及された際に応答することを明示する上で有用です。また、@releaseのようなボットの場合、継続的インテグレーションジョブの実行時にトリガーされることから、_On Event_といった表現を使用することも考えられます。

プロパティ値の使用例

以下の例は、後述するプロパティ値付きアクターの具体例から引用したものです:

{
  "type": "PropertyValue",
  "name": "Source",
  "value": "https://codeberg.org/helge/release_helper"
}

Mastodonではプロパティ値の値としてHTMLを使用している点が我々の例と異なります:

{
  "type": "PropertyValue",
  "name": "🤖",
  "value": "<a href=\"https://botwiki.org\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">botwiki.org</span><span class=\"invisible\"></span></a>"
}

この例では、プロパティ名として絵文字を使用するという推奨されない手法も示されています。これは特にスクリーンリーダーを使用しているユーザーにとって解析が困難であるという欠点があります。

プロパティ値付きアクターの具体例

プロパティ値が付与されたアクターの具体的な形式は以下の通りです:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "PropertyValue": {
        "@id": "https://schema.org/PropertyValue",
        "@context": {
          "value": "https://schema.org/value",
          "name": "https://schema.org/name"
        }
      }
    }
  ],
  "id": "https://dev.bovine.social/actor/kH3y9kw8cqRUgzso3oM3_w",
  "type": "Service",
  "preferredUsername": "release",
  "name": "release",
  "attachment": [
    {
      "type": "PropertyValue",
      "name": "Author",
      "value": "acct:helge@mymath.rocks"
    },
    {
      "type": "PropertyValue",
      "name": "Source",
      "value": "https://codeberg.org/helge/release_helper"
    }
  ], 
  "...": "..."
}

[!NOTE] @contextの設定によってJSON-LD形式で展開されるURIが変動する場合があります。しかし実務上JSON-LDはほとんど使用されないため、現時点ではこの問題は実質的な影響を持ちません。詳細な問題点については付録を参照してください。

付録:JSON-LDに関する注意点

以下の文書を例に説明します:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "PropertyValue": {
        "@id": "https://schema.org/PropertyValue",
        "@context": {
          "value": "https://schema.org/value",
          "name": "https://schema.org/name"
        }
      }
    }
  ],
  "name": "release",
  "attachment": [
    {
      "type": "PropertyValue",
      "name": "Author",
      "value": "acct:helge@mymath.rocks"
    }
  ]
}

これを"@context": {}で圧縮すると、以下のように展開されます:

{
  "https://www.w3.org/ns/activitystreams#attachment": {
    "@type": "https://schema.org/PropertyValue",
    "https://schema.org/name": "Author",
    "https://schema.org/value": "acct:helge@mymath.rocks"
  },
  "https://www.w3.org/ns/activitystreams#name": "release"
}

@contextの設定に多少のバリエーションがあっても、同様の挙動を示すはずです。最も明白な選択肢である以下の形式:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://schema.org"
  ],
  "name": "release",
  "attachment": [
    {
      "type": "PropertyValue",
      "name": "Author",
      "value": "acct:helge@mymath.rocks"
    }
  ]
}

および"https://www.w3.org/ns/activitystreams""https://schema.org"の順序を入れ替えた場合、名前属性が多重定義されるため誤った結果が生じます。

参考文献

著作権

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

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