ナレッジ グラフのコンテンツをクエリー
ナレッジ グラフを検索して、ナレッジ グラフに含まれるエンティティーとリレーションシップのサブセットを見つけて、さまざまなエンティティーが接続している状況を示すことができます。 来歴レコードを使用でき、来歴レコードを必要に応じて、検索結果に含めることができます。 以下の例をご参照ください:
感染症の拡大を表すナレッジ グラフから、所定の施設とのリレーションシップを通して関連付けられた人間と動物を扱います。
製造サプライ チェーンを表すナレッジ グラフから、サプライヤー、配達方法、倉庫などの特定の部分に関連付けられたコンテンツを扱います。
組織を表すナレッジ グラフから、所定のタイプのデバイスを扱い、そのプロパティ (担当従業員の名前など) を表示します。
亀と亀の生息地を表すナレッジ グラフから、特定の環境上の影響評価の情報を使用して、リスクのレベルが確立された生息地を特定します。
ナレッジ グラフを検索することにより、エンティティーとリレーションシップのサブセット、またはそのプロパティのサブセットを特定できます。 openCypher クエリー言語を使用して、openCypher クエリーを作成することで、関連するエンティティーとそのプロパティを検出し、ナレッジ グラフ、マップ、またはリンク チャートで、この制限された情報を操作します。
調査のコンテンツをクエリー
調査内のナレッジ グラフのエンティティーとリレーションシップをクエリーできます。 必要に応じて、クエリー結果に来歴レコードを含めることができます。
調査を開いて、そのコンテンツを参照します。
調査ビューの上部にある検索テキスト ボックス内をクリックするか、または Ctrl + F キーを押して、クエリー をクリックします (必要な場合)。
拡大クエリー ウィンドウが表示されます。 これは、openCypher クエリーを書式設定できる複数行のクエリー テキスト ボックスです。
検索テキスト ボックスにクエリーを入力します。 ポインターを新しい行に移動させて入力を続行するには、Enter キーを押します。
例として、MATCH (e) RETURN e というクエリーは、許可されている最大数までナレッジ グラフのすべてのエンティティーを返します。 このクエリーは任意のナレッジ グラフで使用できます。

クエリーに適合する来歴レコードを結果に含めるには、必要に応じて 来歴を含む をオンにします。
適用 をクリックします。
クエリーの結果が調査ビューに表示されます。 クエリーで返されたエンティティー、リレーションシップ、来歴レコードは該当するアイコンで識別されます。 拡大クエリー ウィンドウの下部に表示される履歴にクエリーが追加されます。
拡大クエリー ウィンドウのサイズを変更するには、ウィンドウとコンテンツ リストの間の区切り線をドラッグします。
また、区切り線上のボタンを使用して、すべてのスペースを拡大クエリー ウィンドウまたはコンテンツ リストのどちらかに使用することもできます。

openCypher クエリーの作成
SQL がリレーショナル データベースにクエリーするように、openCypher は、グラフ データベースにクエリーします。 このクエリーの基本的な構造は、エンティティーを検索、照合して、それらのエンティティーを返すことです。ここでは、検索するエンティティーが括弧内で識別されます。 例として、クエリー MATCH (e) RETURN e は、任意のタイプのエンティティーを返します。 返されるエンティティーの数は、ナレッジ グラフの構成によってのみ制限されます。 返されるグラフ アイテムの数を制限するには、LIMIT 式を使用します。 例として、クエリー MATCH (e) RETURN e LIMIT 5 は、任意のタイプのエンティティーを 5 つ返します。
クエリーでは、矢印を作成するシンボルを使用して、関連するエンティティーを識別できます。 例として、クエリー MATCH (e1)-->(e2) RETURN e1,e2 は、エンティティーのペア e1 と e2 を返します。ここでは、これら 2 つのエンティティーの間に、任意のタイプのリレーションシップが存在し、エンティティー e1 からエンティティー e2 までのいずれかのパスが、エンティティーを接続します。 クエリーが反対方向を指す矢印を使用して作成された場合、パスは、起点エンティティー e2 から終点エンティティー e1 までと見なされます (MATCH (e1)<--(e2) RETURN e1,e2)。 エンティティーが相互に関連する方法は、パターンと呼ばれます。

クエリーでは、考慮すべき特定のリレーションシップを角括弧内で識別できます。 例として、クエリー MATCH (e1)-[]->(e2) RETURN e1,e2 は、エンティティーのペア e1 と e2 を返します。ここでは、任意のタイプの単一のリレーションシップが 2 つのエンティティーを接続します。 このクエリーは、上に示す同じクエリーを別の方法で表しており、推奨されるクエリー構文を示しています。 このクエリーは、起点エンティティー e1、リレーションシップ r、終点エンティティー e2 を返すことで、リレーションシップを示すタプル全体を返すように修正できます (MATCH (e1)-[r]->(e2) RETURN e1,r,e2)。 類似のクエリー MATCH (e1)-[ ]->( )-[ ]->(e2) RETURN e1,e2 または MATCH (e1)-[*2]->(e2) RETURN e1,e2 は、同じ方向の 2 つのリレーションシップによって接続されているエンティティーのペアを返します。 クエリーでは、MATCH (e1)-[ ]->(e2)<-[ ]-(e3) RETURN e1,e2,e3 のように、リレーションシップの方向が異なるパターンも特定できます。

上記のクエリー例は、任意のナレッジ グラフで使用できます。
データ モデルに定義されたエンティティー タイプ、リレーションシップ タイプ、およびプロパティの参照によって、クエリーを特定のナレッジ グラフに合わせて調整します。 特定のエンティティー タイプの名前をクエリーに含めて、考慮されるグラフ アイテムを制限します。 例として、クエリー MATCH (e1:Person)-[r]->(e2) RETURN e1,r,e2 は、すべての Person エンティティー e1 を返します。ここでは、任意のリレーションシップ r が Person を別の任意のタイプのエンティティー e2 に接続します。 前の例と比較すると、Pet、Vehicle、または Document エンティティーがリレーションシップの起点になるリレーションシップは結果に含まれません。

リレーションシップ タイプとエンティティー タイプをクエリーの他のファセットに追加して、特定のリレーションシップ タイプと特定の関連エンティティーを考慮するように、クエリーを制限できます。 例として、MATCH (p:Person)-[v:HasVehicle]->(e) RETURN p,v,e は、すべての Person エンティティー p を返します。ここでは、HasVehicle リレーションシップ v が Person を別の任意のタイプのエンティティー e に接続します。 変数 p と v は、それぞれ Person エンティティーと HasVehicle リレーションシップに割り当てられているため、クエリーでそれらに関する情報を返すことができます。 前の例と比較すると、Pet または Document エンティティーがリレーションシップの終点になるリレーションシップは結果に含まれません。 ナレッジ グラフのデータ モデルに応じて、終点エンティティー e は、一般的な Vehicle エンティティーであるか、Automobile、Motorcycle、Boat、Airplane、Commercial Vehicle といった一連の特定のエンティティー タイプの 1 つである可能性があります。

エンティティーとリレーションシップの特定のプロパティをクエリー結果に含めることができます。 例として、MATCH (p:Person)-[:HasVehicle]->(e) RETURN p,e.make,e.model,e.year は、前に定義したのと同じクエリーを実行します。 ただし、結果には、終点エンティティー自体が表示されるのではなく、そのエンティティーの複数のプロパティ (その車両の make、model、year) にそれぞれ格納される値が表示されます。 この例では、クエリーで考慮される特定のリレーションシップに対して、変数が割り当てられませんでした。これは、リレーションシップのデータがクエリー結果に含まれることも、クエリーの他の部分で評価されることもないためです。

同様に、対象のエンティティーとリレーションシップを定義するプロパティを指定して、評価されるエンティティーとリレーションシップを制限できます。 考慮すべきプロパティを定義するには、WHERE 句をクエリーに追加します。 上記の例と同様に、WHERE 句でエンティティーおよびリレーション シップに関する特定の情報を参照するには、変数を割り当てる必要があります。 例として、クエリー MATCH (p:Person)-[hv:HasVehicle]->(v:Vehicle) WHERE p.lastName = 'Doe' and hv.endDate IS NULL and v.year < 1980 RETURN p,p.firstName,v,v.make,v.year では、特定の lastName プロパティ値を持つ Person エンティティーのみが評価されます。HasVehicle リレーションシップは、それらのエンティティーの endDate プロパティに NULL 値が含まれている場合のみ考慮されます。関連する Vehicle エンティティーは、year プロパティが 1980 より前の値である場合のみ考慮されます。

openCypher クエリー言語の詳細については、「openCypher Implementers Group が提供するドキュメント」をご参照ください。 ArcGIS Knowledge は、openCypher クエリー言語のすべての部分をサポートしているわけではありません。 たとえば、クエリーを使用してナレッジ グラフを更新することはできず、値を返すだけです。
ArcGIS Pro の openCypher については、「ヒストグラムを構築するためのデータをナレッジ グラフから取得するクエリー」をご参照ください。 検索とフィルター ウィンドウの ヒストグラム タブ
で、設定 ボタン
をクリックして、クエリー タブにクエリーを送信 をクリックします。 現在のヒストグラム セットのデータを取得するためのクエリーが、クエリー テキスト ボックスに表示されます。
クエリー結果の変更と更新
特定のグラフ アイテム タイプと特定のプロパティ値を評価して、調査で焦点を絞ったエンティティーとリレーションシップのセットを取得できます。
拡大クエリー ウィンドウ内をクリックするか、Ctrl + F を押します。
既存の openCypher クエリーのテキストを更新します。
例として、クエリーを MATCH (p:Person)[-hv:HasVehicle]->(v:Vehicle) WHERE v.year < 2005 RETURN p, p.firstName, p.phoneNumber, hv, v, v.make, v.model, v.year に変更して、Vehicle の year プロパティが 2005 よりも前の値である Vehicle エンティティーへの HasVehicle リレーションシップを持つすべての Person エンティティーを返します。 結果には、Person エンティティーの firstName プロパティと phoneNumber プロパティ、HasVehicle リレーションシップ、および Vehicle エンティティーの make、model、year プロパティからの値が含まれます。
Enter を押して、複数行のテキスト ボックスでポインターまたはクエリーのテキストの一部を新しい行に移動させます。 わかりやすくするために行を必要なだけ使用します。

適用 をクリックして新しい結果を取得します。
クエリーの結果が調査に表示されます。 クエリーで返されたエンティティーとリレーションシップは該当するアイコンで識別されます。 拡大クエリー ウィンドウの下部に表示される履歴にクエリーが追加されます。

解除 をクリックして、現在のクエリーのテキストを拡大クエリー ウィンドウから削除します。
最近実行した 3 つのクエリーが拡大クエリー ウィンドウの下部にリストされます。 最近使用したクエリーの結果は削除されません。
クエリー履歴からクエリーを再実行するか、削除します。
リストにあるクエリーをクリックして、そのクエリーを再実行します。

選択したクエリーがクエリー テキスト ボックスに表示されて、自動的に実行され、結果が調査に表示されます。
リスト内の特定のクエリーに対して 履歴から削除 ボタン
をクリックして、そのクエリーを履歴から削除します。
指定したクエリーがリストから削除されます。 クエリー履歴が更新され、最近使用した 3 つのクエリーが表示されます。
クエリーの保存
クエリーを記述、変更、実行すると、クエリーの履歴が維持されます。 ただし、クエリーの履歴全体はプロジェクトで保存されません。 調査の一部として維持しておきたいクエリーを個別に保存することができます。
クエリー ドロップダウン矢印をクリックして、<新しいクエリー> をクリックします。
クエリー テキスト ボックスをクリックし、新しいクエリーを入力するか、既存のクエリーを変更します。
適用 をクリックします。
クエリーの結果が調査に表示されます。

拡大クエリー ウィンドウの上部にある 保存
をクリックします。クエリーに名前を付けて保存 ダイアログ ボックスが表示されます。
調査 プロジェクト コンテナー、自分の調査、コレクション フォルダー、クエリー フォルダーの順に参照します。 名前 テキスト ボックスにクエリーの名前を入力して、保存 をクリックします。

クエリーが調査のクエリー フォルダーに保存されます。 保存済みクエリーが、クエリー ドロップダウン リストで自動的に選択されます。

クエリー テキスト ボックスをクリックし、既存のクエリーを変更します。
拡大クエリー ウィンドウの上部にある 保存
をクリックして、変更が反映されるように保存済みクエリーを更新します。クエリー テキスト ボックスをクリックし、既存のクエリーを変更します。
拡大クエリー ウィンドウの上部にある 保存
をクリックして、新しいクエリーとして変更を保存します。調査 プロジェクト コンテナー、自分の調査、コレクション フォルダー、クエリー フォルダーの順に参照します。 名前 テキスト ボックスにクエリーの名前を入力して、保存 をクリックします。
リボンの プロジェクト タブをクリックし、保存
をクリックして、調査とクエリーをプロジェクトに保存します。保存済みクエリーを実行します。
調査の コンテンツ ウィンドウで保存済みクエリーをクリックします。
クエリー ドロップダウン リストをクリックして、保存済みクエリーをクリックします。
保存済みクエリーがクエリー テキスト ボックスに表示されて、自動的に実行されます。 クエリー結果が調査に表示されます。

検索とフィルター ウィンドウでナレッジ グラフをクエリー
検索とフィルター ウィンドウを使用すると、調査ビューではビューのコンテンツのクエリー、マップではナレッジ グラフ レイヤーのコンテンツのクエリー、リンク チャートではチャートに記述されるエンティティーとリレーションシップのクエリーを行うことができます。
次のいずれかの方法で、検索とフィルター ウィンドウを開きます:
調査から
リボンの 調査 タブの 検索 グループで、検索とフィルター
をクリックします。マップから
マップの コンテンツ ウィンドウでナレッジ グラフ レイヤーをクリックします。 ナレッジ グラフ レイヤー コンテキスト タブをクリックします。 検索 グループで 検索とフィルター ボタン
をクリックします。リンク チャートから
リボンの リンク チャート タブの 検索 グループで、検索とフィルター
をクリックします。検索とフィルター ウィンドウが表示されます。
ソース ドロップダウン リストをクリックし、クエリー対象のナレッジ グラフを含む調査、マップ レイヤー、またはリンク チャートをクリックします。
クエリー タブ
をクリックします。検索とフィルター ウィンドウで開いている調査、マップ レイヤー、またはリンク チャートをペアリングすると、ペアリングされたビューに関連付けられたナレッジ グラフ全体に対してすべてのクエリーが評価されます。 クエリーはペアリングされたビューで利用可能なコンテンツに限定されていないことを示すメッセージが表示されます。

クエリー テキスト ボックスに新しいクエリーを定義します。
openCypher クエリーを作成します。

クエリー ドロップダウン矢印をクリックして、保存済みクエリーをクリックします。

クエリーに適合する来歴レコードを結果に含めるには、必要に応じて 来歴を含む をオンにします。
適用 をクリックします。
クエリー結果が、結果 リストに表示されます。
ヒント:
ナレッジ グラフは多数のエンティティーとリレーションシップを表現できます。 検索とフィルター ウィンドウの下部にあるビジー インジケーターに、結果リストが生成中であることが表示されます。 ArcGIS Pro が終了すると、ビジー インジケーターが停止し、結果の更新 ボタン
が表示されます。 クエリーの結果を返すのに時間がかかりすぎる場合は、ビジー インジケーターをクリックして結果リストの構築を停止できます。
デフォルトでは、検索とフィルター ウィンドウがクエリーの結果を探索するには狭すぎる場合があります。 メインの ArcGIS Pro アプリケーション ウィンドウで他のビューおよびウィンドウの配置に影響することなく、ウィンドウのドッキングを解除して拡張することができます。
クエリー結果の探索
openCypher クエリーはさまざまな結果を返すことができます。 クエリーがエンティティーまたはリレーションシップのリストを返す場合、それらは結果リストに行あたり 1 つのエンティティーまたはリレーションシップで表示されます。 クエリーで返された値が、クエリーで示され、ラベル付けされた列に表示されます。
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 プロパティも返します。

エンティティー
またはリレーションシップ
を含む列に、グラフ アイテムの表示名とそのアイコンが表示されます。 上記のスクリーンショットでは、返された Person エンティティーが p 列に表示されています。 HasVehicle リレーションシップの acquisitionDate プロパティは hv.acquisitionDate 列に表示されています。 Vehicle エンティティーの make プロパティの値は v.make 列に表示されています。
調査からナレッジ グラフをクエリーする場合、詳細パネルを使用して、選択したエンティティーまたはリレーションシップのプロパティを表示します。 詳細パネルからは、クエリー結果に含まれていない他のリレーションシップや関連エンティティーを探索できます。

検索とフィルター ウィンドウからナレッジ グラフをクエリーする場合、ヒストグラム タブ
を使用して、結果を集約してフィルターします。 タブの上部にあるタイトルが ヒストグラム - クエリー に変更され、チャートはペアリングされたビューのコンテンツではなく、クエリー のクエリーにより返されたコンテンツを表示していることが示されます。 また、クエリーはビューのナレッジ グラフに対して評価されているため、ヒストグラムにはペアリングされたビューから利用できないコンテンツが含まれている可能性があることを示すメッセージが表示されます。

調査または 検索とフィルター ウィンドウから、対象のエンティティーまたはリレーションシップを選択し、選択したグラフ アイテムを右クリックします。 利用可能なオプションを使用して、今後の解析のために、選択したグラフ アイテムを新規または既存のマップまたはリンク チャートに追加します。 あるいは、既存の調査、マップ、またはリンク チャートで対応するアイテムを選択します。
