ソーシャルファイルシステム
概要
- ファイルは個人コンピューティングの基本概念
- ソーシャルアプリでは従来ファイルの概念は希薄
- ATプロトコルにより、ソーシャルデータもファイルのように扱う発想
- レコードという単位で投稿やプロフィールを管理
- 分散型ソーシャルファイルシステムの可能性
ファイルの素晴らしさ
- ファイルはアプリの外に存在し、ユーザー自身が所有・管理
- アプリはファイルを読み書きするが、所有権は持たない
- ファイル形式はアプリ間の共通言語として機能
- 例:SVGはオープン仕様、複数アプリで互換性
- .docのような独自形式もリバースエンジニアリングで拡張可能
- ツールと作品の分離という直感的なモデル
- 原稿はタイプライターに、写真はカメラに縛られない
- アプリ非依存のストレージ(ファイルシステム)による自由
- ファイルは複数アプリで活用・変換・再利用可能
- アプリが消えてもファイルは残る、新しいアプリでも利用可能
ソーシャルアプリとファイルの関係
- InstagramやReddit等のソーシャルアプリは従来「ファイル」概念が希薄
- 投稿やフォロー、投票などはファイルとして扱われていない
- もし「everything folder」として全てのソーシャル活動をファイル化できたら?
- 投稿、フォロー、いいね等が個人フォルダにファイルとして保存
- フォルダがデータの唯一のソースとなり、アプリはそれを反映
- フォルダの変更はアプリにも即時反映
- 分散型ソーシャルファイルシステムの構想
- 各ユーザーのフォルダがネットワーク全体で共有
- アプリはキャッシュやビューとして機能
- ATプロトコルはこの仕組みを実現
- Bluesky, Leaflet, Tangled, Semble, Wisp等が実例
レコード:ソーシャルファイルシステムの単位
- ソーシャル投稿をJSON形式のレコードとして保存
- 例:{ text: 'no', createdAt: '2008-09-15T17:25:00.000Z' }
- 著者情報やカウント系データはレコードから分離
- 著者のプロフィールは別レコード(例:profiles/self)
- 返信数やいいね数は他ユーザーのアクションから派生
- レコード名はタイムスタンプ+ランダムID等で一意化
- posts/34qye3wows2c5 など
- 並び替えでタイムライン表示も容易
レキシコン:データ形式の厳密な定義
- レコードの形式や制約を明確に定義する必要性
- TypeScript型だけでは制約表現が不十分
- 例:「textは最大300グラフェム」「createdAtは日時形式」
- 独自スキーマ言語(レキシコン)で柔軟に記述
- 例:
{ "defs": { "main": { "type": "record", "key": "tid", "record": { "type": "object", "required": ["text", "createdAt"], "properties": { "text": { "type": "string", "maxGraphemes": 300 }, "createdAt": { "type": "string", "format": "datetime" } } } } } }
- 例:
- レキシコンにより、アプリ間で一貫したデータ管理が可能
まとめ:分散型ソーシャルファイルシステムの未来
- 個人のデータ主権を取り戻す新しいソーシャルの形
- アプリはファイルのビューや編集ツールとして機能
- データの移植性・相互運用性が飛躍的に向上
- ATプロトコルの普及により、ソーシャル活動も「ファイル」として扱う時代へ
- 既存のソーシャルアプリの枠を超えた新しい可能性