Solidは、WWWの考案者であるTim Berners-Lee氏の手による、新たな分散IDプラットフォームである。ユーザが自分自身のデータを所有し、よりよく管理するためのメカニズムを提供する。
少数の大企業が大量のユーザデータを保有していることや、いくつかの重要データ漏洩事件や消費者データ誤用について、Berners-Lee氏は次のように書いている。
私たちが実現した変革は、よりよい、よりつながりを持った世界を生み出しました。しかしながら、すべての利益を達成する過程において、Webは不平等と分裂のエンジンへと発展し、私利的な理由でそれを利用する強い力によって揺れています。私たちは今、重要な転換点に達しています。そして、よりよい方向に力強く変化することは可能であり、必要である – 私はそう信じています。
Berners-Lee氏と仲間たちは、個人の力をWeb上で取り戻すべく、オープンソースのSolidプロジェクトに取り組んでいる。今日では大部分のユーザが、対価と引き換えに個人情報をテクノロジ企業に提供しているが、これは常に個人にとって最善の利益であるとは限らない。Solidは、ユーザに自身の情報の完全なコントロール権を提供し、データを共有する方法をよりよく理解できるようにすることで、バランスを取り戻そうとしているのだ。
Solidは新たなインターネットやWebではなく、既存のWebで構築されている。Berners-Lee氏によれば、Solidプラットフォームは、
すべてのユーザに対して、データがどこに置かれるか、特定の要素にアクセス可能なのはどのような人々やグループか、どのアプリを使用するか、についての選択手段を提供します。あなたとあなたの家族や同僚が、誰とでもデータをリンクし共有することを可能にします。異なるアプリを使って、同じデータを同時に見ることができます。
このアプローチが革新的で信頼性が高く、有益なアプリケーションとサービスを発想し、構築し、発見する新たな手段を個人や開発者、ビジネスに与えることによって、創造性や問題解決、商業活動のための幅広い機会を生み出す、とBerners-Lee氏は信じている。
SolidはPOD(Personal Online Data Store)の概念から始まる。Solid POD内には、写真やコメント、連絡先、カレンダ、フィットネス、健康データなどの情報を格納する。PODは自宅や勤務先、あるいは選択したPODプロバイダに配置してもよい。データはいつでも、サービスを中断することなく、簡単に移動できなくてはならない。
次にユーザは、自身のSolid PODの読み書きを、さまざまな人やアプリに対して許可する。データはそれ自身のパーミッションでユーザのPODから読み取られるため、ユーザにとっては、新たなアプリケーションやサービスごとに新しいデータを手入力する必要がない、という直接的なメリットがある。ユーザには自身のデータソースがあり、すべてのデータがユーザの手元にあるため、変更を同期する必要はない。
Solidのアプローチでは、ユーザのプライバシ保護と開発者の効率性の両立を目指している。アプリは既存のデータを活用することが可能になるため、Solidは、データを収集する必要なくアプリを開発するという選択を、開発者に対して促すことになる。
SolidではPODについて、個人的なUSBスティックないしWebサイトを持つようなものだが、ユーザ情報をパーソナルAPIを通じてすべてのアプリがデータを相互運用する、と説明している。誰かがコメントやビデオを投稿すれば、友人たちが好みのアプリケーションを使ってそれを見ることができるのだ。目標は、データ生成と消費を強く分離することで、データが任意の形式で作られるようにすることだ。
複数のPODを生成して、別々のIDを持つことも可能だ。ユーザ自身のWebサーバにNode.js PODをインストールするか、あるいはプロバイダからSolid Podを入手する。この記事を書くため筆者は、自分自身で設定を行なってみた。
SolidはさまざまなWeb標準を用いて実装されている。例えば、アプリ内にユーザデータのクローンを生成する代わりに、Linked DataがRDFおよびFOAFと共に使用されている。Solid内のリンクデータを用いた処理を簡単にするため、Solidでは、オープンソースのJavaScriptツールであるRdflib.jsの使用を推奨している。Rdflib.jsではデータの保存の他、データの解析とシリアライズ、アプリあるいはサーバからの変更追跡が可能だ。
Solidはいくつかの仕様も提供している。WebID仕様はURIでユーザを示し、機械可読データを返すことを可能にするための、最小主義的なアプローチを提供する。認証も同じようにWebID-TLSとWebID-OIDCを使って提供されているが、2要素認証など他のシステムのサポートも計画されている。
プロジェクトでは、generator-solid-angularなど、Angularを使ったオーサリングSolidアプリケーションを例として提供している。アプリケーション開発者に対しては、ガイドとして“Make a Solid app on your lunch break”が推奨されている。その他にもsolid-auth-client、solid-ui、react-components for Solidといったオープンソースのユーティリティが開発中である。
Solidは現在、これまでの分散型プラットフォームが苦労してきたような、普及のためのトラクションを得るという困難な戦いに直面している。Solidのアプローチは、パワフルなアプリケーションを開発する上で十分なものだろうか?例えば、分散型の公開データを使用して、迅速かつ有意義な結果を出すことのできる検索エンジンは実現可能だろうか?SolidとInruptは、これらの疑問や課題に応えるのに十分な位置にあると思われる。Solidの採用を進めるため、Berners-Lee氏は、新会社Inruptを共同で創立し、次のように述べている。
MITからサバティカルを取得し、W3C(World Wide Web Consortium)との日々の関わりを減らして、Webの次なるステージを極めて直接的な方法で導くべく、Inruptという会社を設立しました。InruptはSolidの普及を実現するためのインフラストラクチャになります。そのミッションは、Solid上に構築された新たなWebの整合性と品質を保護するための、商業的エネルギとエコシステムを提供することです。
Solidの仕様はCC0 1.0 Universalライセンス下で、オープンソースとして公開されている。ソフトウェアについては、MITライセンス下で利用可能である。
この記事を評価
- 編集者評
- 編集長アクション