Note
このドキュメントは2026-02-27 03:46にPLaMo Translation Modelを使用して自動翻訳されました。
FEP-d767: ValueflowsによるActivityPubの拡張
概要
Valueflows語彙を用いてActivityPub/ActivityStreamを拡張する標準手法を提案する。これにより、fediverseにおける多様な経済ネットワーク活動を可能にする。
経緯
Valueflowsは2015年、「オープンアプリエコシステム」という概念を中心に集まった開発者グループによって開始された。分散型アーキテクチャを採用し、モジュール化されたアプリケーションやコンポーネントが標準的な方法で相互通信するための語彙体系を確立することを目的としている。さらに、この取り組みを通じて、個人や組織がより容易に協力し合い、経済資源の創出・流通・交換を調整できるようになることを目指している。
2017年には最初のバージョンを公開し、実装事例から得られた知見を基に改良を重ねてきた。
ValueflowsはMayel de Borniol氏とIvan Minutillo氏を通じてfediverseコミュニティと接点を持ち、Bonfireソフトウェアへの統合作業が2017年に開始された。
今年はValueflowsの安定版v1.0リリースを目指している。コア部分は完成しているものの、周辺機能については未実装または十分なテストが行われていない状態である。
要件
本仕様書における「MUST」「MUST NOT」「REQUIRED」「SHALL」「SHALL NOT」「SHOULD」「SHOULD NOT」「RECOMMENDED」「MAY」「OPTIONAL」といった用語は、[RFC-2119]の定義に従って解釈されるものとする。
経済活動をサポートするfediverseソフトウェアは、このValueflows拡張機能を実装することができる。
語彙統合ガイドライン
※本仕様は現時点で確定版ではなく、SocialHubコミュニティからのフィードバックを募集する予定である。
ValueflowsオブジェクトをActivityPubメッセージに統合する際には、以下の基本パターンに従う必要がある:
- Valueflowsの構成要素(クラスまたは関連する複数クラスからなる複雑なバンドル)は、APメッセージ内では「Object」として扱われる
- 「Create」「Update」「Delete」アクティビティを使用する
- その他検討可能な操作:「Add」「Remove」「Accept」「Reject」
- Valueflows語彙のうち、安定した部分のみを対象にする
基本的な考え方として、AP/ASは主にメッセージング用途で使用される。Valueflowsには活動と見なせる概念も存在するが、現行のリストにきれいに収まらないため、別途対応を検討する。
注記:ValueflowsモデルにおけるAgent要素と、APのactor要素間の重複については、現時点で対処しない。これは、actorモデルへのマッピングが複雑であること、およびAPグループ・組織・コミュニティなどに関する進行中の提案があるためである。明確な解決策が提示されるまでは、重複が生じた場合、権限を有する任意のPerson/Group/Organization actorをValueflows Agentとして使用できるものとする。さらに、ValueflowsにはAPのactorではないAgentも含まれるが、これらは標準的なCreate/Update/Delete操作で対応可能である。
具体例(*現在概要レベルの記述であり、議論用のサンプルとして提供):
{
"@context": {
"https://www.w3.org/ns/activitystreams",
"vf": "https://w3id.org/valueflows/",
},
"summary": "サリーがプロジェクト計画を作成した。",
"type": "Create",
"actor": {
"type": "Person",
"name": "サリー"
},
"object": {
"type": "vf:Plan",
"name": "AP-VF拡張の定義",
"content": "AP/ASへのVF拡張仕様策定に向けた共同作業。FEP(Fediverse Enhancement Proposal)として提案する。" # vfではskos:noteが異なる意味を持つ可能性あり
}
}
{
"@context": {
"https://www.w3.org/ns/activitystreams",
"vf": "https://w3id.org/valueflows/",
},
"summary": "サリーがプロセスを作成した。",
"type": "Create",
"actor": {
"type": "Person",
"name": "サリー"
},
"object": {
"type": "vf:Process",
"vf:name": "AP-VF拡張例のドラフト作成",
"content": "AP/ASへのVF拡張に関する議論を促進するため、具体例について共同作業を行う。",
"vf:inScopeOf": {
"type": "Organization",
"vf:name": "HUMANs" # 対象組織を指定することも可能か?
},
"vf:plannedWithin": {
"type": "Plan",
"vf:name": "AP-VF拡張の定義" # IDとして扱うべきか?
},
"vf:outputs": {
"object": {
"type": "vf:Commitment",
"vf:action": "produce",
"vf:conformsTo": {
"type": "ResourceSpecification",
"vf:name": "語彙仕様書"
},
"vf:due": "2023-05-08T10:30:00-5:00",
"vf:provider": {
"type": "Organization", # vfでの扱いは?
"vf:name": "HUMANs"
},
"vf:receiver": {
"type": "Organization",
"vf:name": "SocialHub"
}
}
}
}
}
{
"@context": {
"https://www.w3.org/ns/activitystreams",
"vf": "https://w3id.org/valueflows/",
"om2": "http://www.ontology-of-units-of-measure.org/resource/om-2/"
},
"summary": "リンがコミットメントを作成した。",
"type": "Create",
"actor": {
"type": "Person",
"name": "リン"
},
"object": {
"type": "vf:Commitment",
"vf:inputOf": {
"type": "vf:Process",
"vf:name": "AP-VF拡張例のドラフト作成"
}
"vf:action": "work",
"vf:conformsTo": {
"type": "ResourceSpecification",
"vf:name": "語彙作業仕様書"
},
"vf:effortQuantity": {
"type": "om:Measure",
"om2:hasNumericalValue": 10,
"om2:hasUnit": "hr"
}
"vf:due": "2023-05-01T10:30:00-5:00",
"vf:provider": {
"type": "Person", # vfでの扱いは?
"vf:name": "リン"
},
"vf:receiver": {
"type": "Organization",
"vf:name": "HUMANs"
},
"content": "具体例の初稿が完成。フィードバックを募集する。" # skos:noteとして扱うべきか?
}
}
実装事例
参考文献
- [ActivityPub] Christine Lemmer Webber, Jessica Tallon, ActivityPub, 2018年
- [ActivityStream] James M Snell, Evan Prodromou, ActivityStream, 2017年
- [Valueflows] Lynn Foster, elf Pavlik, Bob Haugen, Valueflows, 2023年
著作権
CC0 1.0 Universal(CC0 1.0)パブリックドメイン献呈
法律で認められる範囲において、本Fediverse Enhancement Proposalの著者らは、当該作品に関するすべての著作権および関連権利を放棄する。