0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

クラウド型データカタログサービス data.world の無償版で学ぶ SPARQL 実践ガイド

Last updated at Posted at 2024-09-24

概要

data.world というクラウド型データカタログサービスがあるのですが、その特徴の1つである SPARQL によりクエリを発行できる機能を検証した内容を記事にします。data.world アカウントの申し込み方法から初めて、提供されているチュートリアルとドキュメントに記載されている SPARQL の紹介をしたうえで、既存のデータセットに手動で追加したデータを組み合わせてクエリを実行する方法を紹介します。

image.png

引用元:The Data Catalog Platform | data.world

既存のデータセットに手動で追加したデータを組み合わせてクエリを実行する方法では、既存のデータセットデータに日本語の名称を追加した結果を取得します。

image.png

SPARQL の基本的な実行方法について下記の記事で紹介しています。

data.world の申し込み方法

Community Platform と Enterprise Data Catalog

data.world には、Community Platform と Enterprise Data Catalogがあります。

data.world offers two primary environments: the Enterprise Data Catalog and the Community platform.

image.png

引用元:Exploring data.world: Community and Enterprise Offerings

今回は、Community Platform の Individual を利用するため、無償で利用できます。

image.png

引用元:Community Pricing | data.world

Enterprise Data Catalog については下記のサイトから申し込めるようですが、利用前のユースケースインタビューがあるようなので日本では手軽に試せない可能性があります。

image.png

引用元:Get Started: Select Your Pricing Plan and We'll be in Touch | data.world

2 つの提供方法の差異が整理されているページを確認できませんでしたが、ドキュメントを確認するとどちらの提供方法で利用できる機能であるかが明示されています。

image.png

引用元:Supported sources (data.world)

Community Platform の Individual 版の申し込み方法

1. data.world のサインアップページ( https://data.world/sign-up )にて必要事項を記入、あるいは、Join with Googleを選択

私はJoin with Googleを選択しました。

image.png

引用元:Signup | data.world

2. ユーザー名を入力

image.png

3. data.world にログインできることを確認

image.png

data.world の SPAQL チュートリアル

コンテンツ概要

data.world の製品ドキュメントではなく、 Gitbook 形式で下記のサイトにてコンテンツが提供されています。

image.png

引用元:Welcome! · GitBook (data.world)

コンテンツの構成としては、下記の 3 ページがテーマごとにあり、 7 テーマあります。

  1. 特定テーマの説明がされているページがあり
  2. 自分で課題を解く Exercise のページ
  3. Exercise の解決策が提示されているページ

image.png

引用元:Welcome! · GitBook (data.world)

data.world にログインしている場合には、コンテンツのページで SPAQL を実行できます。

image.png

引用元:Your First SPARQL Query · GitBook (data.world)

data.world のページ上で実行したい場合には、SPARQL_Tutorial データセットのページ ( https://data.world/tutorial/sparqltutorial )にアクセス後、右側にあるLaunch workspaceを選択して表示されたページにクエリを発行できます。

image.png

image.png

コンテンツのテーマ

2024年9月24日時点で下記のテーマがあります。

# タイトル コンテンツ概要
1 Your First SPARQL Query SPARQLの基本構文を学び、初めてのクエリを実行する方法を説明します。PREFIXSELECTWHERE句の使い方を紹介します。
2 Matching Exact Values In Queries クエリで特定の値を正確にマッチングする方法を学びます。特定の値に一致するデータをフィルタリングする方法を説明します。
3 Sorting and Summary Statistics クエリ結果をソートする方法と、集計統計(MINMAXなど)を取得する方法を学びます。ORDER BYLIMIT句の使い方も含まれます。
4 Grouping Your Data データをグループ化し、各グループの集計を行う方法を学びます。GROUP BY句と集計関数の活用方法を紹介します。
5 Filtering Your Data データを様々な条件でフィルタリングする方法を学びます。特に、フィルタリング条件の指定方法や日付によるフィルタリングについて説明します。
6 Introduction to Data Munging データの前処理(データマンジング)の基本を学びます。BINDを使った新しい変数の作成や、FILTERを使ったデータ操作方法を紹介します。
7 Linking Datasets Together 複数のデータセットをリンクさせてクエリを実行する方法を学びます。SPARQLを使ったデータ統合と連携の基本的なテクニックを説明します。

data.world における SPARQL に関するドキュメント

コンテンツ概要

data.world のドキュメントにて、 SPARQL の利用方法が紹介されています。

image.png

引用元:SPARQLing data.world

サンプルデータとして下記が提供されているようです。

image.png

引用元:SPARQLing data.world

上記ページにて、Nameの項目を選択することで、そのプロジェクト、あるいは、データセットに移動できます。

image.png

ドキュメントに記載されている以下のようなコードを実行することで、data.worldでのSPARQLに対する理解を深めることができます。下記では CSV ファイル(Tabular files)からデータ取得する方法が紹介されています。実行できるサンプルコードの場合にはRun the queryという文言があり、そこをクリックするとクエリを実行できるプロジェクト、あるいは、データセットに移動します。

image.png

引用元:Tabular files (data.world)

移動先のページにて、クエリを実行できます。

image.png

既存のデータセットに手動で追加したデータを組み合わせてクエリを実行する方法

実施内容概要

SPARQL_Tutorialに含まれる GOT.csv といるファイルのデータの日本語の名称のカラムを追加した結果を取得する手順を紹介します。

image.png

ベースとなる GOT.csv には、下記のようなデータを保持しています。

image.png

日本語の名称を保持させた CSV ファイルをアップロードし、そのデータと上記データを組み合わせます。

image.png

最終的には下記のようなクエリを発行して、その結果を取得します。英語をベースにした製品であることから日本語が適切に表示されていませんが、データをダウンロードすると想定通りの結果であることを確認できました。

image.png

image.png

実施手順

1. 右上の+ Newを選択

image.png

2. Create new projectを選択

image.png

3. 適切な Project name を入力後、Create projectを選択

image.png

4. プロジェクトのページにて、+ Add -> Datasetを選択

image.png

5. SPARQL_Tutorialと検索してSPARQL_TutorialConnectを選択して、Connectedに変更されたことを確認後にDoneを選択

image.png

6. 下記のデータをもつGOT_JAPANESE_NAME.csvというファイルをローカル環境で作成して、プロジェクトの画面にドロップ

ID,FName__JA_JP,LName__JA_JP
1,ティリオン,ラニスター
2,ジェイミー,ラニスター
3,サーセイ,ラニスター
4,ロブ,スターク
5,ジョン,スターク
6,サンサ,スターク
7,アリア,スターク
8,ブラン,スターク
9,リコン,スターク
10,レイガー,ターガリエン
11,ヴィセーリス,ターガリエン
12,デナーリス,ターガリエン

image.png

7. GOT_JAPANESE_NAME.csvというファイルが追加されたことを確認

image.png

8. + Add -> SPARQL Queryを選択

image.png

9. 既存のデータセットのデータであるGOT.csvのデータを表示

PREFIX GOT_JAJP: <https://{user_name}.linked.data.world/d/{project_name}/>

SELECT ?ID ?fname_ja_jp ?lname_ja_jp
WHERE {
    ?person GOT_JAJP:col-got_japanese_name-id ?ID ;
            GOT_JAJP:col-got_japanese_name-fname_ja_jp ?fname_ja_jp ;
            GOT_JAJP:col-got_japanese_name-lname_ja_jp ?lname_ja_jp ;
}

image.png

10. 追加したデータであるGOT_JAPANESE_NAME.csvファイルのデータを表示

下記のクエリにて、{user_name}{project_name}の箇所を修正してクエリを実行します。

PREFIX GOT_JAJP: <https://{user_name}.linked.data.world/d/{project_name}/>

SELECT ?ID ?fname_ja_jp ?lname_ja_jp
WHERE {
    ?person GOT_JAJP:col-got_japanese_name-id ?ID ;
            GOT_JAJP:col-got_japanese_name-fname_ja_jp ?fname_ja_jp ;
            GOT_JAJP:col-got_japanese_name-lname_ja_jp ?lname_ja_jp ;
}

私のプロジェクトでは下記のようなクエリを実行します。

PREFIX GOT_JAJP: <https://manabian.linked.data.world/d/querywithotherpj/>

SELECT ?ID ?fname_ja_jp ?lname_ja_jp
WHERE {
    ?person GOT_JAJP:col-got_japanese_name-id ?ID ;
            GOT_JAJP:col-got_japanese_name-fname_ja_jp ?fname_ja_jp ;
            GOT_JAJP:col-got_japanese_name-lname_ja_jp ?lname_ja_jp ;
}

image.png

11. GOT_JAPANESE_NAME.csvというファイルのデータを表示

下記のクエリにて、{user_name}{project_name}の箇所を修正してクエリを実行します。

PREFIX GOT: <https://tutorial.linked.data.world/d/sparqltutorial/>
PREFIX GOT_JAJP: <https://{user_name}.linked.data.world/d/{project_name}/>

SELECT ?ID ?fname ?fname_ja_jp ?lname ?lname_ja_jp  
WHERE {
    ?person GOT:col-got-id ?ID ;
            GOT:col-got-fname ?fname ;
            GOT:col-got-lname ?lname .
    ?person2 GOT_JAJP:col-got_japanese_name-id ?ID ;
            GOT_JAJP:col-got_japanese_name-fname_ja_jp ?fname_ja_jp ;
            GOT_JAJP:col-got_japanese_name-lname_ja_jp ?lname_ja_jp ;
}

私のプロジェクトでは下記のようなクエリを実行します。

PREFIX GOT: <https://tutorial.linked.data.world/d/sparqltutorial/>
PREFIX GOT_JAJP: <https://manabian.linked.data.world/d/querywithotherpj/>

SELECT ?ID ?fname ?fname_ja_jp ?lname ?lname_ja_jp  
WHERE {
    ?person GOT:col-got-id ?ID ;
            GOT:col-got-fname ?fname ;
            GOT:col-got-lname ?lname .
    ?person2 GOT_JAJP:col-got_japanese_name-id ?ID ;
            GOT_JAJP:col-got_japanese_name-fname_ja_jp ?fname_ja_jp ;
            GOT_JAJP:col-got_japanese_name-lname_ja_jp ?lname_ja_jp ;
}

image.png

Next Challenge

Challenge 概要

次にチャレンジしたいこと

  1. Enhancements to data機能の理解
  2. 有料サブスクリプションで実施できる内容の調査
  3. AI Context Engine に関する調査

1. Enhancements to data機能の理解

Enhancements to data機能として紹介されている下記機能の有用性について調査します。

2. 有料サブスクリプションで実施できる内容の調査

Community Platform にて契約できる下記の有料サブスクリプションについて調査します。

  1. Enterprise Team
  2. Team Professional

Enterprise Team は、サイトに下記のプランとして記載されています。

image.png

右上のSetting -> Bilingの画面から契約を変更できそうでした。

image.png

Team Professionalはサイトにて紹介されていませんが、右上のSetting -> Oraganizations -> Create organiation を選択すると、組織の作成時にサブスクリプションを選べました。

image.png

3. AI Context Engine に関する調査

質問内容に対してセマンティックモデルに基づき回答を実施できる AI Context Engine という機能の技術的な背景を調査します。どのような機能であるかのイメージがつかない方は、操作できるデモ画面になっておりますので動作確認をしてみてください。この機能にて、オントロジーなどを利用している点がユニークです。

image.png

引用元:Key terms and roles (data.world)

Thought process を確認すると下記の処理を実施しており、オントロジーなどを利用してデータ取得するクエリを生成しているようです。

# ステージ 処理内容(推測)
1 🔍 Starting... 処理の開始と初期化
2 🗂️ plan-classes-to-use-state 使用するクラスやモジュールの計画
3 🤔 Evaluating the ontology オントロジーを評価し、処理の計画を立てる
4 🗂️ build-date-string-state 日付に関するデータを整形し、クエリに使える形式に変換
5 🗂️ question-to-query-state 自然言語の質問をシステムクエリに変換
6 🤔 Generating and reviewing queries クエリを生成し、適切なものかどうか確認
7 🤔 Query looks like it ran correctly クエリが正しく実行され、必要に応じて微修正が行われる
8 🗂️ query-to-answer-state クエリ結果を元に回答を生成
9 🗂️ Packaging up results 結果をフォーマットし、ユーザーに返す準備
10 🤔 Processing results... 最終的な結果の処理とパッケージング

image.png

引用元:Key terms and roles (data.world)

利用されている3つのファイルがドキュメントにて紹介されています。

image.png

引用元:Key terms and roles (data.world)

残念ながら Community Platform での利用はできない旨の記載があるため、現時点では機能を推測するしかない状況です。

Contact the data.world support team or your Customer Success Director to get the AI Context Engine API access enabled in the data.world organization for which you want to set up AI Context Engine.

image.png

引用元:Prep tasks for AI Context Engine (data.world)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?