# Semantic

`semantic` 加载前缀创建了一种特殊类型的字段，可用于 Qlik Sense 连接和管理关系数据，如树结构、自引用父子结构化数据和/或可描述为图形的数据。

注意，`semantic` 加载的功能与 [Hierarchy](https://help.qlik.com/zh-CN/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Hierarchy.htm) 和 [HierarchyBelongsTo](https://help.qlik.com/zh-CN/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/HierarchyBelongsTo.htm) 前缀类似。所有三个前缀都可以用作有效的前端解决方案中的构建块，用于遍历关系数据。

语法：

Semantic( loadstatement | selectstatement)

语义加载要求输入正好有三到四个字段宽，并严格定义每个有序字段表示的内容，如下表所示：

语义加载字段

| 字段名称 | 字段描述 |
| --- | --- |
| 第 1 字段： | 此标记表示两个对象之间存在关系的第一个对象。 |
| 第 2 字段： | 该标签将用于描述第一和第二对象之间的“正向”关系。如果第一个对象是子对象，而第二个对象是父对象，则可以创建一个关系选项卡，该选项卡状态为“父对象”或“父对象”，就像您遵循从子对象到父对象的关系一样。 |
| 第 3 字段： | 此标记表示两个对象之间存在关系的第二个对象。 |
| 第 4 字段： | 该字段为选填。该标签描述了第一个和第二个对象之间的“反向”或“反向”关系。如果第一个对象是子对象，而第二个对象是父对象，则关系选项卡可以显示“子对象”或“子对象”，就像您从父对象跟踪到子对象一样。如果不添加第四个字段，则第二个字段标记将用于描述两个方向的关系。在这种情况下，箭头符号将自动添加为标记的一部分。 |

以下代码是 `semantic` 前缀的示例。

```
Semantic  
Load 
Object, 
‘Parent’ AS Relationship, 
NeighbouringObject AS Object, 
‘Child’ AS Relationship 
from graphdata.csv; 
```

信息注释允许和典型的做法是将第三个字段标记为与第一个字段相同。这将创建一个自引用查找，以便您可以一步一步地跟踪对象到相关对象。如果第三个字段不具有相同的名称，则最终结果将是从一个对象到其直接关系邻居的简单查找，仅一步之遥，这是几乎没有实际用途的输出。

## 区域设置

除非另有规定，本主题中的示例使用以下日期格式：MM/DD/YYYY。日期格式已经在数据加载脚本中的 `SET DateFormat` 语句中指定。由于区域设置和其他因素，系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者，您可以更改加载脚本中的格式以匹配这些示例。

应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典，则数据加载编辑器将使用瑞典地区设置的日期、时间和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以与您使用的浏览器相同的语言显示。

相关函数

| 函数 | 交互 |
| --- | --- |
| [Hierarchy](https://help.qlik.com/zh-CN/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Hierarchy.htm) | Hierarchy 加载前缀用于划分和组织父子和其他类似图的数据结构中的节点，并将它们转换为表。 |
| [HierarchyBelongsTo](https://help.qlik.com/zh-CN/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/HierarchyBelongsTo.htm) | HierarchyBelongsTo 加载前缀用于定位和组织父子和其他类似图的数据结构的祖先，并将它们转换为表。 |

## 示例 - 使用语义前缀创建连接关系的特殊字段

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Semantic.htm)

#### 加载脚本和结果

概述

打开数据加载编辑器，并将下面的加载脚本添加到新选项卡。

加载脚本包含：

* 表示地理位置关系记录的数据集，该数据集加载到名为 `GeographyTree` 的表中。

  * 每个条目在行首有一个 ID，在行尾有一个 ParentID。

* 将添加一个标记的特殊行为字段的 `semantic` 前缀 `Relation`。

加载脚本

```
GeographyTree: 
LOAD  
    ID, 
    Geography, 
    if(ParentID='',null(),ParentID) AS ParentID     

INLINE [ 
ID,Geography,ParentID 
1,World 
2,Europe,1 
3,Asia,1 
4,North America,1 
5,South America,1 
6,UK,2 
7,Germany,2 
8,Sweden,2 
9,South Korea,3 
10,North Korea,3 
11,China,3 
12,London,6 
13,Birmingham,6 
]; 
 
SemanticTable: 
Semantic Load 
	ID as ID,			 
	'Parent' as Relation, 
	ParentID as ID,     
	'Child' as Relation 
resident GeographyTree;  
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度。

* `Id`
* `Geography`

然后，创建一个以 `Relation` 作为维度的筛选窗格。单击完成编辑。

结果表

| ID | Geography |
| --- | --- |
| 1 | World |
| 2 | Europe |
| 3 | Asia |
| 4 | North America |
| 5 | South America |
| 6 | UK |
| 7 | Germany |
| 8 | Sweden |
| 9 | South Korea |
| 10 | North Korea |
| 11 | 中国 |
| 12 | London |
| 13 | Birmingham |

筛选器窗格

| 关系 |
| --- |
| 子 |
| 父 |

在表中的 `Geography` 维度中单击欧洲，然后在筛选器窗格中的 `Relation` 维度上单击儿童。注意表中的预期结果：

显示欧洲“儿童”的结果表

| ID | Geography |
| --- | --- |
| 6 | UK |
| 7 | Germany |
| 8 | Sweden |

再次单击儿童将显示英国的“儿童”位置，再向下一步。

显示英国“儿童”的结果表

| ID | Geography |
| --- | --- |
| 12 | London |
| 13 | Birmingham |