
# 动态群体演化(temporal_graph) - DynamicGraphAnalysis
#### 功能介绍
针对包含某些节点的群体，结合时间轴观察其结构的动态演化过程 。
图1原理展示   
![](https://support.huaweicloud.com/api-ges/zh-cn_image_0000001522837202.png)
#### URL
POST /ges/v1.0/{project_id}/graphs/{graph_name}/dynamicgraphs/action?action_id=execute-analysis
表1路径参数 
| 参数         | 是否必选 | 类型     | 说明                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 项目编号。获取方法，请参见[获取项目ID](https://support.huaweicloud.com/api-ges/ges_03_0111.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母和数字组成，且长度为\[1-64\]个字符。 **默认取值：** 不涉及。 |
| graph_name | 是    | String | **参数解释：** 图名称。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                          |
   
#### 请求参数
表2Body参数说明 
| 参数            | 是否必选 | 类型     | 说明                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| algorithmName | 是    | String | **参数解释：** 算法名称。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 取值为temporal_graph。 |
| dynamicRange  | 是    | Object | **参数解释：** 动态分析时间参数。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                    |
| parameters    | 是    | String | **参数解释：** 算法参数。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                      |
   
表3dynamicRange参数说明 
| 参数         | 是否必选 | 类型           | 说明                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| start      | 是    | Date或Integer | **参数解释：** 动态分析时间边界的开始时间。注意：start \<= end。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| end        | 是    | Date或Integer | **参数解释：** 动态分析时间边界的结束时间。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。         |
| time_props | 是    | Object       | **参数解释：** 动态分析的时间属性定义。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                |
   
表4time_props参数说明 
| 参数    | 是否必选 | 类型     | 说明                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| stime | 是    | String | **参数解释：** 动态图开始时间的属性名称。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| etime | 是    | String | **参数解释：** 动态图结束时间的属性名称。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
表5parameters参数说明 
| 参数              | 是否必选 | 类型      | 说明                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| source          | 是    | String  | **参数解释：** 群体内包含的节点id。 **约束限制：** 最多输入100000个节点。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| temporal_vertex | 否    | Boolean | **参数解释：** 是否对节点执行群体演化。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 默认为false。          |
   
#### 响应参数
表6响应参数说明 
| 参数           | 类型     | 说明                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| errorMessage | String | **参数解释**： 系统提示信息。 - 执行成功时，字段可能为空。  - 执行失败时，用于显示错误信息。   **取值范围**： 不涉及。     |
| errorCode    | String | **参数解释**： 系统提示信息。 - 执行成功时，字段可能为空。  - 执行失败时，用于显示错误码。   **取值范围**： 不涉及。 |
| data         | Json   | **参数解释**： 结果详情数据，具体请参见[data参数说明]。 **取值范围**： 不涉及。                                                                                                                                               |
   
 表7data参数说明 
| 参数       | 类型   | 说明                                                                                                                        |
|:---|:---|:---|
| vertices | List | **参数解释**： 结果包含的点集合。 **取值范围**： 不涉及。  |
| edges    | List | **参数解释**： 结果包含的边集合。 **取值范围**： 不涉及。 |
   
#### 请求样例
观察某些节点群体结构的动态演化过程，算法名称为temporal_graph，动态分析的开始时间为${startTime}，结束时间为${endTime}。
```
POST  http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/dynamicgraphs/action?action_id=execute-analysis
{
  "algorithmName":"temporal_graph",
  "dynamicRange":{
    "start":"${startTime}",
    "end":"${endTime}",
    "time_props":{"stime":"${property(start_time)}","etime":"${property(start_time)}"}
  },
  "parameters":{
        "sources":[],
        "temporal_vertex":false
  }
}
```
#### 响应示例
**状态码： 200**
成功响应示例
```
Http Status Code: 200
{
"data": {
"vertices": [{
"id": "Place00032",
"label": "Place",
"properties": {}
}, {
"id": "Person00041",
"label": "Person",
"properties": {
"gender": ["女"],
"phone": ["P0334529194"],
"name": ["吴桂芳"],
"startTime": [1774368],
"endTime": [16756560],
"age": [48]
}
}],
"edges": [{
"index": "0",
"source": "Person00041",
"label": "hasVisit",
"properties": {
"startTime": [1646092800],
"visitDate": [20220301],
"endTime": [1646126769]
},
"target": "Place00032"
}, {
"index": "3",
"source": "Person00041",
"label": "hasVisit",
"properties": {
"startTime": [1646168289],
"visitDate": [20220301],
"endTime": [1646179199]
},
"target": "Place00032"
}]
}
}
```
**状态码： 400**
失败响应示例
```
Http Status Code: 400
{
    "errorMessage": "Dynamic Analysis is not supported in this instance. Please build dynamic graph instance",
    "errorCode": "GES.9001"
}
```
#### 状态码
| 返回值                       | 说明      |
|:---|:---|
| 400 Bad Request           | 请求错误。   |
| 401 Unauthorized          | 鉴权失败。   |
| 403 Forbidden             | 没有操作权限。 |
| 404 Not Found             | 找不到资源。  |
| 500 Internal Server Error | 服务内部错误。 |
| 503 Service Unavailable   | 服务不可用。  |
   
