Skip to content

Note

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

FEP-c5a1: To-doリスト機能

概要

本ドキュメントでは、ActivityPubプロトコルおよびValueflowsボキャブラリーに基づくシンプルなTo-doリストまたはタスク管理機能の実装方法について説明します。To-doリストは簡易的な作業コミットメントであり、自分自身や他者に対して作成することが可能です。オプションとして、タスクが完了した場合にはその記録を残すこともできます。

履歴

本提案は、より複雑なプロジェクト計画や生産調整をサポートするFEP-3264 Federated Work Coordinationへの並行提出案件です。両提案とも、silverpill氏が開始したValueflows拡張機能をActivityPub/ActivityStreamsに適用するというユースケースベースの取り組みを継承しています(FEP-0837 Federated Marketplace参照)。

要件

本ドキュメント中で使用される「MUST」「MUST NOT」「REQUIRED」「SHALL」「SHALL NOT」「SHOULD」「SHOULD NOT」「RECOMMENDED」「MAY」「OPTIONAL」といった用語は、RFC-2119で定義された解釈に従うものとします。

To-doリストの作成方法

To-doリストはValueflowsにおけるCommitmentオブジェクトとして実装されます。 計画機能を持たない消費側システムでは、同様のプラン関連オブジェクトをNoteオブジェクトと同様に表示することが許容されます(任意)。

いずれの場合においても、これらのオブジェクトは「Note」オブジェクトと「replyTo」属性を用いて議論することも可能です。 Valueflowsにおいてコミットメントとは、エージェントが他のエージェントに対して約束した経済的フローのことと定義されています。

  • id(必須):当該コミットメントの一意なグローバル識別子
  • type(必須):オブジェクトタイプは必ずCommitmentでなければなりません
  • attributedTo(必須):コミットメントを公開したアクター
  • published(推奨):コミットメントが公開された日時
  • resourceConformsTo(任意):関与するスキルや作業の種類。任意のURIを指定可能
  • effortQuantity(任意):推定または期待される作業量とその単位。これは以下2つのプロパティを持つオブジェクトです:
  • hasUnit(必須):計量単位オントロジー分類に基づく単位名称
  • hasNumericalValue(必須):リソースの数量
  • provider(推奨):当該リソースを提供する責任を負うアクター。指定がない場合、デフォルトでto属性のアクターが担当とみなされます
  • receiver(推奨):当該リソースを受け取る予定のアクター。指定がない場合、デフォルトでattributedTo属性のアクターが受け取り手とみなされます
  • content(推奨):実施すべき作業内容の説明。コンテンツタイプはtext/html形式を使用することが望ましいです
  • to(必須):コミットメントの対象となるオーディエンス

具体例:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "om2": "http://www.ontology-of-units-of-measure.org/resource/om-2/",
      "vf": "https://w3id.org/valueflows/ont/vf#",
      "Commitment": "vf:Commitment",
      "receiver": "vf:receiver",
      "provider": "vf:provider",
      "resourceConformsTo": "vf:resourceConformsTo",
      "effortQuantity": "vf:effortQuantity",
      "hasUnit": "om2:hasUnit",
      "hasNumericalValue": "om2:hasNumericalValue",
      "finished": "vf:finished"
    }
  ],
  "type": "Create",
  "id": "https://project.example/activities/ad2f7ee1-6567-413e-a10b-72650cbdc932/create",
  "actor": "https://project.example/actors/bob",
  "object": {
    "type": "Commitment",
    "id": "https://project.example/todos/ddde9d6f-6f3b-4770-a966-4dkjh8w32e59",
    "attributedTo": "https://project.example/actors/bob",
    "published": "2024-10-21T14:16:41.843794Z",
    "resourceConformsTo": "https://www.wikidata.org/wiki/Q3485549",
    "effortQuantity": {
      "hasUnit": "hour",
      "hasNumericalValue": "1.5"
    },
    "provider": "https://project.example/actors/bob",
    "receiver": "https://project.example/actors/alice",
    "finished": true
  },
  "to": "https://project.example/actors/alice"
}

コミットメントは「finished」状態に設定することも可能です。この場合、EconomicEventを記録することなく完了扱いとなります。これは、作業が行われない場合や、作業は行われたものの記録されない場合、あるいは以前に一部作業を記録済みでTo-doリストが未完了のままになっている場合などに適用されます。したがって、「finished」ステータスは必ずしもタスクが実際に実行されたことを意味するわけではなく、単にそのタスクがもはや待機状態ではないことを示します。

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "om2": "http://www.ontology-of-units-of-measure.org/resource/om-2/",
      "vf": "https://w3id.org/valueflows/ont/vf#",
      "Commitment": "vf:Commitment",
      "finished": "vf:finished"
    }
  ],
  "type": "Update",
  "id": "https://project.example/activities/ad2f7ee1-6567-413e-a10b-72650cbdc932/update",
  "actor": "https://project.example/actors/alice",
  "object": {
    "type": "Commitment",
    "id": "https://project.example/todos/ddde9d6f-6f3b-4770-a966-4dkjh8w32e59",
    "attributedTo": "https://project.example/actors/alice",
    "published": "2024-10-24T16:16:41.843794Z",
    "finished": true
  },
  "to": "https://project.example/actors/alice"
}

参考文献

著作権

CC0 1.0 Universal(パブリックドメイン献呈) 本Fediverse Enhancement Proposalの著者らは、法律で認められる範囲内において、当該作品に関するすべての著作権および関連権利を放棄しています。