クエリー結果の探索
openCypher クエリーはさまざまな結果を返すことができます。 クエリーがエンティティーまたはリレーションシップのリストを返す場合、それらは結果リストに行あたり 1 つのエンティティーまたはリレーションシップで表示されます。 クエリーで返された値が、クエリーの return ステートメントに示される順序で列に表示されます。
openCypher クエリーが、どのエンティティーが別のエンティティーと特定のリレーションシップを持つかを示す結果を返すことがあります。 この場合、結果テーブルには 3 つ組ごとに 1 つの行が表示されます。3 つ組は起点エンティティー、リレーションシップ、終点エンティティーで構成されます。 例として、「MATCH (p:Person)-[r]->(e) RETURN p,r,e」というクエリーは、結果テーブル内の各行が人、その人と別のエンティティー間のリレーションシップ、そのリレーションシップの終点エンティティーを表す結果リストを返します。 この場合、結果テーブルには、p というタイトルの人の列、r というタイトルのリレーションシップの列、e というタイトルの終点エンティティーのタイトルがあります。

代わりに、クエリーがエンティティーまたはリレーションシップの特定のプロパティを返す場合、結果リストでは各列にこれらの値が表示されます。 たとえば、「MATCH (p:Person)-[:HasVehicle]->(v) RETURN p,v,v.year」というクエリーは、p 列に Person エンティティーの表示名、v 列に Vehicle エンティティーの表示名、v.year 列に Vehicle エンティティーの year プロパティの値をそれぞれ返します。 クエリーが返した特定のプロパティの値がエンティティーにない場合、(NULL) と表示され、表示する値がないことが示されます。
次の例は、人が車両との HasVehicle リレーションシップに属している Person エンティティーを返すクエリーを示しています。 このクエリーは、HasVehicle リレーションシップの acquisitionDate プロパティと Vehicle エンティティーの make プロパティも返します。

エンティティー
、リレーションシップ
、または来歴レコードを含む列に、レコードの表示名とそのアイコンが表示されます。
3 つ目の一般的なクエリー タイプは、あるエンティティーと別のエンティティー間のパスを返します。 パスには指定された起点エンティティーと終点エンティティー間のすべてのエンティティーとリレーションシップが含まれます。 たとえば、「MATCH path=(p:Person)-[r]->(e) RETURN path」というクエリーは、Person エンティティーに 1 つのリレーションシップで接続されているエンティティーへのすべてのパスを返します。

パスには任意数のエンティティーとリレーションシップが含まれます。 たとえば、「MATCH path=(c:Company)-[r*2]-(v:Vehicle) RETURN path」というクエリーは、2 リレーションシップ離れた Company エンティティーと Vehicle エンティティー間のすべてのパスを返します。 各パスには、Company 起点エンティティー、各中間エンティティーおよびリレーションシップ、Vechicle 終点エンティティーが含まれます。 デフォルトでは、パス内の起点エンティティーと終点エンティティー、およびパス内の合計レコード数のみが表示されます。 完全なパスの結果を表示するには、拡張
をクリックします。

パスはクエリー結果の 1 つの要素として返すことができます。 たとえば、起点の Company の path と name、終点の Vehicle の year を同じクエリーで返すことができます。 MATCH path=(c:Company)-[r*2]-(v:Vehicle) RETURN path, c.name, v.year

すべてのクエリー結果はデフォルトでテーブル ビューに表示されます。 このビューでは、クエリー結果を選択し、クエリーから返されたエンティティまたはリレーションシップのプロパティを表示できます。
結果テーブルのエンティティー
またはリレーションシップ
をクリックし、そのプロパティを表示します。必要に応じて 追加
を使用して、このレコードを別のコンテンツ アイテムに追加します。最初の列のチェックボックスをオンにして、その行のすべてのエンティティーとリレーションシップを選択に追加します。
この行のエンティティーとリレーションシップがハイライト表示されます。 他の結果行に表示されるエンティティーとリレーションシップのインスタンスもハイライト表示されます。 選択されたレコードの総数がテーブルの一番下に表示されます。

必要に応じ:
Ctrl を押しながらエンティティー
またはリレーションシップ
をクリックすると、そのレコードのみが選択セットから追加されます。テーブルの最初の列の見出しにあるチェックボックスをクリックして、クエリーで返されたすべてのレコードを選択します。
最初の列のチェックボックスをオンにして、その行のすべてのエンティティーとリレーションシップを選択から削除します。
必要に応じ:
Ctrl を押しながらエンティティー
またはリレーションシップ
をクリックすると、そのレコードのみが選択セットから削除されます。最初の列の見出しにあるチェックボックスをオフにして、クエリーで返されたすべてのレコードを選択削除します。
クエリー コンテキスト ツールバーの 追加
を使用して、選択したレコードをリンク チャート、マップ、またはデータ カードに追加します。選択マネージャー を使用して、クエリー ビュー内のクエリー全体で選択したレコードを管理します。
マップまたはリンク チャートでの結果のプレビュー
クエリー結果のマップ プレビューとクエリー結果のリンク チャート プレビューを使用して、クエリー結果をさまざまな方法で視覚化してプレビューすることもできます。 テーブル ビューで行われた選択は、マップ プレビューとリンク チャート プレビューに反映されます。 対話形式の選択ツールを使用して、マップまたはリンク チャートのプレビューから選択を変更できます。
結果メニューの マップ ビュー
をクリックし、クエリーで返された空間エンティティーのプレビューを表示します。
必要に応じて、対話形式の選択を使用してマップ内の選択を変更します
結果メニューの リンク チャート ビュー
をクリックし、リンク チャートで視覚化されたクエリー結果のプレビューを表示します。
必要に応じて、対話形式の選択を使用してマップ内の選択を変更します
結果メニューの テーブル ビュー
をクリックして、結果テーブルに戻ります。選択マネージャー を使用して、クエリー ビュー内のクエリー全体で選択したレコードを管理します。
チャートでのクエリー結果のプレビュー
チャート ビューを使用して、クエリー結果をさまざまな方法で視覚化することもできます。 クエリー結果からの特性やリレーションシップを視覚化する複数のタイプのチャートを構成できます。 クエリー結果をチャートに集約する方法を選択することもできます。 チャートで結果を選択し、マップやリンク チャートに追加できます。 チャートの構成は保存済みクエリーには含まれていません。
Knowledge Studio では次のチャート タイプがサポートされています:
| チャート | 説明 |
|---|---|
| バー チャートでは、X 軸上でカテゴリー別にデータを分類します。 バー チャートを使用すると、カテゴリーに分類されたデータを集約して比較できます。 | |
| 箱ひげ図では、1 つまたは多数の数値属性の分布を表示します。 箱ひげ図を使用し、四分位を使用して数値の分布と中心傾向を視覚化および比較します。 | |
| ヒート チャートは、色付きのマトリックスを使用してデータを視覚化します。 ヒート チャートを使用して、カテゴリー変数間の相関、密度、またはパターンを視覚化します。 | |
| ヒストグラムでは、数値属性の分布を視覚化します。 ヒストグラムを使用して、数値をビンにグループ化し、これらのグループの頻度を計測して、数値変数に含まれる値の分布を視覚化します。 |
クエリー結果を集約するチャートを構成します。
結果メニューの チャート ビュー
をクリックします。チャート設定 で、チャートの集約 方法を選択します。
チャート タイプ ドロップダウンをクリックし、作成するチャートのタイプを選択します。
チャートのパラメーターを構成します。
適用 をクリックします。
チャートがチャート ビューに表示されます。
必要に応じて、チャートで結果を選択します。
コンテキスト ツールバーで、追加
をクリックし、適切なオプションをクリックして、チャートでの選択をマップまたはリンク チャートに追加します。[新しく追加] の下にある [マップ]
をクリックして、プロジェクトにマップを作成します。新しく追加 の下にある テンプレートからのマップ
をクリックし、テンプレートとして使用するマップを選択します。 追加 をクリックします。新しく追加 の下にある リンク チャート
をクリックして、プロジェクトにリンク チャートを作成します。新しく追加 の下にある テンプレートからのリンク チャート
をクリックし、テンプレートとして使用するリンク チャートを選択します。 追加 をクリックします。既存に追加 で、既存のマップまたはリンク チャートの名前をクリックします。
選択がマップまたはリンク チャートに追加されます。
チャート集約の操作
チャート集約の設定では、チャートにクエリー結果を整理してプレビューする方法を構成できます。 さらに、チャート上で行った選択をテーブル ビューにどのように反映するかを指定します。 チャート集約方法について以下で説明します:
テーブル行 - クエリー結果テーブルの行と列を使用します。 エンティティーまたはリレーションシップが列で返された場合、そのプロパティもチャート作成に使用できます。 チャートで行った選択は、チャート選択で使用されているテーブル ビューの行全体に適用されます。 選択した行でエンティティーとリレーションシップが返された場合、これらはテーブル ビュー内の表示されているすべての場所で選択されます。
エンティティーおよびリレーションシップ - クエリー結果から一意のエンティティーおよびリレーションシップのみを使用し、タイプごとにグループ化します。 それらのプロパティは、チャート作成に使用可能なフィールドになります。 チャートで行った選択はテーブル ビューの個々のエンティティーまたはリレーションシップにのみ適用され、これらが返された行や列は無視されます。
チャートの集約方法に応じて、新しいクエリーを使用することなく、さまざまな方法でクエリー結果を視覚化できます。 たとえば、以下の openCypher クエリーは、複数のリレーションシップ タイプを使用して特定の Supplier を両方の Plant または他の Supplier に 1 ~ 4 ホップ先で接続するサプライ チェーン パスを見つけます。 その後、各パスに沿ったすべての Part エンティティーのコストを集約し、パスと総コストの両方を返します。
MATCH path=(supplier:Supplier)-[:supplies|:raw_supplies|:produces|:purchased_by*..4]-(facility)
WHERE (facility:Plant OR facility:Supplier) and supplier.globalid IN $supplier
WITH nodes(path) AS allNodes, path, supplier, facility
UNWIND allNodes AS node
WITH node, path, supplier, facility
WHERE node:Part
WITH ROUND(SUM(node.COST) * 100) / 100.0 AS totalCost, path, supplier, facility
RETURN supplier, facility, totalCost, path
このクエリーを使用してバー チャートでサプライヤーの役割を視覚化することで、チャート集約方法に基づいてさまざまな情報を表示し、さまざまな質問に答えることができます。 さらに、チャート上で行う選択は集計方法によって変わります。 以下のスクリーンショットは、チャート ビューで返された結果を比較したものです:
テーブル行集約方法では、各役割のサプライヤーを起点とするさまざまなパスやネットワークの数が返されます。 あるサプライヤーが多くの異なるパスの起点である場合、それぞれのパスがそのサプライヤーの役割としてカウントされます。 バーを選択すると、起点サプライヤーがその層にあるテーブル行内のすべてのエンティティーとリレーションシップ (そのパス内のその他すべての部品、プラント、サプライヤーを含む) が選択されます。

これとは対照的に、エンティティーおよびリレーションシップ集約方法では、クエリー結果で返されるテーブル行とは関係なく、任意のパスのどこかに返された各タイプの個別のサプライヤーの総数が返されます。 バーを選択すると、その役割の個々のサプライヤーだけが選択されます。

さまざまな集約手法を用いることで、チャート ビューにおけるエンティティーとリレーションシップの表示方法を指定して、さまざまな質問に答えることができます。