查询知识图谱的内容

您可以查询知识图谱以找到其包含的实体和关系的子集,并确定不同实体的相互连接方式。 请参阅以下示例:

  • 从代表传染病传播的知识图谱中,使用通过与给定设施点的任何关系关联的人类及动物。
  • 从代表制造供应链的知识图谱中,使用与特定部分相关联的任何内容,包括供应商、交付方式、仓库等。
  • 从代表组织的知识图谱中,使用给定类型的设备,并列出其属性,包括负责员工的姓名。

您可以通过查询知识图谱来识别实体和关系的子集或其属性。 使用 openCypher 查询语言编写 openCypher 查询以发现相关实体及其属性,并在知识图谱、地图或链接图表使用这组受限制的信息。

编写 openCypher 查询

openCypher 查询之于图形数据库就像 SQL 查询之于关系数据库。 对于一个基本示例,请考虑描述公司产品和创建这些产品的设施点的图表。 汽车公司的设施点是实体,由变量 f 标识;其生产的车辆模型是实体 m;并且,在设施点和它生产的模型之间有一个 HasModel 关系 hm。

  • 要查找模型类型的前十个实体,您可以使用诸如 MATCH (m:Model) RETURN m LIMIT 10 之类的查询。
  • 要发现哪些模型与哪些设施点相关联,您可以通过 HasModel 关系将实体与诸如 MATCH (f:Facility)-[ :HasModel]->(m) RETURN f,m 之类的查询相匹配。
  • 您的查询还可以返回实体或关系的特定属性,及其显示名称(或代替其显示名称)。 例如,要返回汽车模型以及模型的类别属性,您可以使用诸如 MATCH (f:Facility)-[ :HasModel]->(m) RETURN f,m,m.category 之类的查询。

您可以使用 Amazon 提供的文档了解有关 openCypher 查询语言的详细信息。ArcGIS Knowledge 不支持 openCypher 查询语言的所有方面。 例如,查询不能用于更新知识图谱,只能用于返回值。

您可以通过查看从知识图谱中检索数据构建直方图的查询来了解 openCypher。 在搜索和过滤窗格的直方图选项卡 直方图 上,单击设置按钮 设置,然后单击将查询发送到“查询”选项卡。 用于检索当前直方图集数据的查询出现在查询文本框中。

查询调查的内容

您可以通过在调查视图中查询其内容来探索调查中的一组较小的实体和关系。

  1. 打开调查并浏览其内容。
  2. 在调查视图的顶部,单击搜索文本框或按下 Ctrl+F

    搜索控件随即显示。

    单击搜索文本框以打开搜索控件。

  3. 单击搜索控件底部的查询模式 查询模式

    搜索文本框中的提示将变为在知识图谱上运行图形查询,出现展开查询窗口按钮 展开查询窗口,并且搜索控件底部出现搜索模式 Search Mode

    单击搜索控件底部的查询模式以查询知识图谱。

  4. 在搜索文本框中输入 openCypher 查询。

    例如,诸如 MATCH (p:Person)-->(v:Vehicle) RETURN p, v 之类的查询将返回与 Vehicle 实体有任何关系的所有 Person 实体,并返回 Person 实体和 Vehicle 结果中的实体。

  5. Enter 键。

    查询结果显示在调查视图中。

    查询结果显示在调查视图中。

  6. 单击查询文本框以修改查询并键入您的更改。

    例如,将查询更改为 MATCH (p:Person)-[hv:HasVehicle]->(v:Vehicle) RETURN p, hv, v 以将所有具有 HasVehicle 关系的 Person 实体返回到一个 Vehicle 实体,并返回结果中的 Person 实体、HasVehicle 关系和 Vehicle 实体。

    单击查询文本框以修改查询。

  7. Enter 键运行修改后的查询。

    已更新查询的结果显示在调查视图中。 查询返回的实体和关系由适当的图标标识。

    查询返回的实体和关系由适当的图标标识。

  8. 如果您需要更多空间来编写更长的 openCypher 查询,请单击展开查询窗口按钮 展开查询窗口

    当前查询将在更大的多行查询文本框中打开,而不是直接在控件顶部的单行文本框中打开。

    展开查询窗口以使用多行查询文本框。

  9. 为清楚起见,使用尽可能多的行键入对查询的更改。

    例如,将查询更改为 MATCH (p:Person)-[hv:HasVehicle]->(v:Vehicle) WHERE hv.acquisitionDate = NULL RETURN p, hv, v, v.make, v.model, v.year 将所有具有 HasVehicle 关系的 Person 实体返回到一个 Vehicle 实体,其中 HasVehicle 关系的 acquisitionDate 属性具有 NULL 值。 返回与之前相同的实体和关系,但在结果中还包括来自 Vehicle 实体的品牌、型号和年份属性的值。

    已更新查询的结果显示在调查视图中。 查询返回的实体和关系由适当的图标标识。

    使用多行查询文本框时,查询可以跨越多行。

  10. 单击运行查询按钮 运行查询

    当您使用展开的查询窗口时,按下 Enter 键会将指针移到多行文本框中的新行,而不是运行查询。

    查询结果显示在调查视图中。

    查询返回的实体、关系和属性值将出现在调查中。

  11. 单击查询文本框中的重置搜索按钮 重置搜索 以清除查询并移除查询结果。

    先前在调查视图中列出的图形项目将再次出现。

  12. 当查询文本框为空时,单击查询文本框以打开查询控件并列出三个最近的查询。 单击列表中的查询以再次运行它。

    单击空查询文本框以列出三个最近的查询。

    选定的查询将会运行,并且查询结果将出现在调查中。

  13. 单击查询文本框中的重置搜索按钮 重置搜索 以从查询文本框中清除查询并将其结果从调查中移除。 单击空查询文本框以打开查询控件,然后单击列表中特定查询的从历史记录中移除按钮 从历史记录中移除 将其从历史记录中移除。

    指定的查询将从列表中移除。 您的查询历史记录会更新以显示三个最近的查询。

  14. 如果不再需要多行查询文本框,请单击查询文本框右侧的折叠查询窗口按钮 折叠查询窗口

    当您修改查询时,它将直接在一行上的查询文本框中进行更新。 按下 Enter 键 运行已更新的查询。

在“搜索和过滤”窗格中查询知识图谱

搜索和过滤窗格可与调查视图配合使用以查询其内容,与地图配合使用以查询知识图谱谱图层的内容,或与链接图表配合使用以查询其描述的实体和关系。

  1. 使用下列方法之一打开搜索和过滤窗格:
    • 在功能区的调查选项卡的搜索组中,单击搜索和过滤 搜索和过滤
    • 单击地图的内容窗格中的知识图谱图层。 单击知识图谱图层上下文选项卡。 在搜索组中,单击搜索和过滤按钮 搜索和过滤
    • 在功能区的链接图表选项卡的搜索组中,单击搜索和过滤 搜索和过滤

    随即显示搜索和过滤窗格。

  2. 单击下拉列表,然后单击要查询其知识图谱的调查、地图图层或链接图表。
  3. 单击查询选项卡 查询

    当您将打开的调查、地图图层或链接图表与搜索和过滤窗格配对时,所有查询都会根据与配对视图关联的整个知识图谱进行评估。 将显示一条消息,提醒您查询不限于配对视图中可用的内容。

    窗格将查询与名为 MyKnowledgeGraph 的调查关联的知识图谱。

  4. 查询文本框中输入一个 openCypher 查询。
  5. 单击应用

    查询结果随即显示在结果列表中。

提示:

知识图谱可以表示许多实体和关系。 搜索和过滤窗格底部的忙碌指示符显示正在生成结果列表。 ArcGIS Pro 完成后,忙碌指示符停止,并将显示刷新结果按钮 刷新结果。 如果返回查询结果的时间过长,您可以通过单击忙碌指示符来停止构建结果列表。

默认情况下,搜索和过滤窗格可能太窄而无法浏览查询结果。 您可以取消停靠窗格以加宽它,而不会影响主 ArcGIS Pro 应用程序窗口中其他视图和窗格的排列。

探索查询结果

一个 openCypher 查询可以返回多种结果。 当查询返回实体或关系列表时,它们将显示在结果列表中,每行一个实体或关系。 查询返回的值将出现在如查询本身所示标记的列中。

openCypher 查询可能会返回显示哪些实体与另一个实体具有给定关系的结果。 在这种情况下,结果列表将为每个三元组显示一行,其中三元组由原始实体、关系和目标实体组成。 例如,诸如 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 实体的年份属性值。 如果实体没有查询所返回的特定属性的值,您将看到值 null 作为没有值可显示的事实的表示。

下面的示例说明了一个查询,该查询返回一个 Person 实体和一个 Vehicle 实体,其中该人参与了与车辆的 HasVehicle 关系。 该查询还返回 HasVehicle 关系的 acquisitionDate 属性,以及 Vehicle 实体的品牌、型号和年份属性。 如果属性没有值,则文本 null 会出现在列中。

在“搜索和过滤”窗格中查询知识图谱的内容。

包含实体 实体 或关系 关系 的列将显示图形项目的显示名称及其图标。 在上面的屏幕截图中,所返回的 Person 和 Vehicle 属性将分别出现在 p 和 v 列中。 HasVehicle 关系的 acquisitionDate 属性将显示在 hv.acquisitionDate 列中。 Vehicle 实体的品牌、型号和年份属性的值将分别出现在 v.make、v.model 和 v.year 列中。

如果您从调查中查询知识图谱,请使用详细信息面板查看所选实体或关系的属性。 在详细信息面板中,您可以浏览查询结果中未包含的其他关系和相关实体。

在调查视图中浏览实体和关系及其相关实体的属性。

如果您从搜索和过滤窗格查询知识图谱,请使用直方图选项卡 直方图 汇总和过滤结果。 选项卡顶部的标题将更改为直方图 - 查询以指示显示的图表代表查询上的查询返回的内容,而不是配对视图中的内容。 此外,由于查询是针对视图的知识图谱评估的,因此会显示一条消息,指示直方图可能包含配对视图中不可用的内容。

在“搜索和过滤”窗格的“直方图”选项卡上汇总查询结果。

从调查或搜索和过滤窗格中,您可以选择感兴趣的实体或关系,然后右键单击选定的图形项目。 使用可用选项将选定的图形项目添加到新的或现有的地图或链接图表中以进行进一步分析。 或者,在现有调查、地图或链接图表中选择对应项目。

将选定的图形项目添加到新的或现有的地图或链接图表。

相关主题