Note
このドキュメントは2026-02-27 02:13にPLaMo 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"
}
参考文献
- [ActivityPub] Christine Lemmer Webber, Jessica Tallon, ActivityPub, 2018
- [Valueflows] Lynn Foster, elf Pavlik, Bob Haugen Valueflows, 2024
- [RFC-2119] S. Bradner, Key words for use in RFCs to Indicate Requirement Levels, 1997
- [Activity Vocabulary] James M Snell, Evan Prodromou, Activity Vocabulary, 2017
- [計量単位オントロジー] Hajo Rijgersberg, Don Willems, Xin-Ying Ren, Mari Wigham, Jan Top, Ontology of units of Measure, 2017
著作権
CC0 1.0 Universal(パブリックドメイン献呈) 本Fediverse Enhancement Proposalの著者らは、法律で認められる範囲内において、当該作品に関するすべての著作権および関連権利を放棄しています。