
オープンデータの利点についてはすでに多くの人が聞いていると思います。 あちこちで、オープンデータは予算を節約し、ビジネスなどに役立ちます。 ただし、政府の公開データの質はまだ不十分です。 これにより、この方向の進行が大幅に抑制されます。
明らかに、政府機関が使用可能なデータを公開し始めるまで待つことは意味がありません。 さらに、オープンデータは状態データに限定されません。
したがって、すべての人がオープンデータにアクセスできるようにすることを目的としたMyDataSpaceプロジェクトを紹介します。
MyDataSpaceはデータ公開サービスです。 誰でも無料で(無料または独自のライセンスで)データを公開でき、誰でもWebインターフェイスまたはAPIを介してデータにアクセスできます。
サービスのタスクは、APIを介して世界中のどこからでも信頼性の高いデータストレージと迅速な(リアルタイムに近い)アクセスを提供することです。 MyDataSpaceは、GoogleまたはYandexのジオサービスと比較できます。 GoogleとYandexのみがデータを自分で収集し、ユーザーはサービスでそれを行います。 信頼できるアクセスのみを提供します。
サービスの主な機能は次のとおりです。
- 誰でもデータを投稿できます
- 公開されたデータは誰でも利用できます。
- いいねとコメント
- 検索データリポジトリ:全文検索、ハッシュタグ、カテゴリ、人気度によるソート、ソースによるフィルタリング
- データの視覚化:マップ、チャート、テーブル、Codepen統合
- さまざまな形式(CSV、XLS、XML、ODT、JSONなど)のファイルからデータをインポートします
- データを使ってほとんど何でもできるAPI
- WebSocketを介したデータへのアクセス、リアルタイムのデータ変更通知
- サーバー上のスケジュールされたカスタムJavaScript
- ファイルストレージ(写真用のさまざまなサイズのサムネイルの自動作成)
- アドレス
--.mydataspace.org
Webサイトを作成する--.mydataspace.org
- ツリーデータ構造
- データのバージョン管理
- ソーシャルネットワークを介した承認
いくつかの点について詳しく説明します。
データのインポート
インポート用のWebインターフェースはOpenRefineに基づいています 。 これは、データセットをクリーニングし、複雑なデータ操作を実行するためのツールです。 ExelおよびOpenOfficeフォームに似た独自のGREL言語があります。

OpenRefineを習得するのは困難ですが、オープンソースコードと、JSON、JSONL、XMLなどのさまざまな形式のデータを処理するための無限の可能性があります。 また、fromを使用すると、ODT、XLS、XLSX、さらにはGoogleドキュメントからデータをインポートできます。
欠点の1つは、OpenRefineがすべてのデータを一度にメモリにロードすることです。これにより、インポートされるファイルのサイズが制限されます。 ただし、大きなファイル(> 500 MB)をインポートするためのAPIがあります。
ツリーデータ構造
data.wordやFirebaseなどの類似物とは異なり、データはツリービューに保存されます。 各データ項目には、ファイルシステム内のファイルのような絶対パスでアクセスできます。 たとえば、2018年3月5日14時45分(UTC)のWEX取引所でビットコインの価値を調べる方法は次のとおりです。
https://api.mydataspace.net/v1/entities?root=exchange_rates&path=btc_usd/wex/2018-03-05_14-45
すべての追加サービスはこのツリーの一部です。 これにより、データの読み取り/変更、タスクの追加、ファイルのダウンロード、視覚化の作成を行うための単一のAPIを使用できます。
API
MyDataSpaceは単なるデータウェアハウスではありません。 Webサイトまたはモバイルアプリケーションのバックエンドとして使用できます。 APIは、データを操作するための最大の機会をユーザーに提供するように設計されています。
- 全文検索
- 任意のフィールドでソートおよびフィルター
- 地理座標、時間間隔などによるグループ化
- ファセット(ファセットは、MVideoやDNS Webサイトのフィルターパネルなど、このフィールド値を持つドキュメントの数を示す指定フィールドの値のリストです)。
データは多くのMySQLシャードに保存され、ElasticSearchでインデックス付けされます。 Elasticはインデックスとしてのみ使用されるため、データを失う心配やサービスを停止することなく、新しいバージョンに簡単に移行し、マッピングを変更できます。
APIには2つのオプションがあります。
機能に関しては、WebSocketにはSDKがあり、関心のあるデータの変更に関する通知をリアルタイムで受信できることを除いて、同じです。 これにより、たとえば次のことが可能になります。

データのバージョン管理
状態ソースのすべてのオープンデータはバージョン管理されます。 このような機会のない私たちのサービスも劣っています。

サーバーでカスタムJavaScriptを実行する
ユーザーは、サーバー上でスケジュール(1時間に1回、日、週、月に1回)で実行される小さなJavaScriptプログラムを作成できます。 このようなプログラムは、リモートソースからのデータを更新するのに役立ちます。
サーバー上のプログラムは、ブラウザーのようにサンドボックスで実行されます(たとえば、jQueryを接続できます)。これにより、実行するサーバーに送信する前に、ブラウザーでプログラムを直接デバッグできます。
サーバーはnodejs 8+を使用するため、ユーザーは最新のJavaScript機能(クラス、非同期/待機など )を使用できます。

投稿は既に十分に大きいので、続きが続きます。