Updated on 2024-05-20 GMT+08:00

Subgraph Matching

Function

This API is used to run the Subgraph Matching algorithm based on input parameters.

The subgraph matching algorithm is used to find all subgraphs of a given small graph that is isomorphic to a given large graph. This is a basic graph query operation and is intended to explore important substructures of a graph.

URI

POST /ges/v1.0/{project_id}/hyg/{graph_name}/algorithm
Table 1 URI parameters

Name

Mandatory

Type

Description

project_id

Yes

String

Project ID. For how to obtain the project ID, see Obtaining a Project ID.

graph_name

Yes

String

Graph name

Request Parameters

Table 2 Request body parameters

Name

Mandatory

Type

Description

algorithmName

Yes

String

Algorithm name

parameters

Yes

parameters Object

Algorithm parameters

Table 3 parameters

Name

Mandatory

Type

Description

edges

Yes

String

Set of edges of the subgraphs to be matched. The value is in standard CSV format. The start and end vertices of an edge are separated by a comma (,). Edges are separated by a newline character (\n), for example, 1,2\n2,3.

vertices

Yes

String

Label of each vertex on the subgraph to be matched.

The value is in standard CSV format. Vertices and their labels are separated by commas (,), and labels are separated by newline characters (\n). For example, 1,BP\n2,FBP\n3,CP.

n

No

Integer

Maximum number of subgraphs to be searched. The value range is [1, 100000]. The default value is 100.

batch_number

No

Integer

Number of subgraphs that are batch processed in each round. The value range is [1, 1000000]. The default value is 10000.

directed

No

Boolean

Whether to consider the edge direction. The value can be true or false. The default value is true.

statistics

No

Boolean

Whether the number of all subgraphs that meet the criteria is output. The value can be true or false. The default value is false.

Response Parameters

Name

Type

Description

errorMessage

String

System prompt. If execution succeeds, this parameter may be left blank. If the execution fails, this parameter is used to display the error message.

errorCode

String

System prompt. If execution succeeds, this parameter may be left blank. If the execution fails, this parameter is used to display the error code.

jobId

String

ID of the algorithm execution job. This parameter is left blank when the request fails.

NOTE:

You can use the returned job ID to view the task execution status and obtain the algorithm return result. For details, see Querying Job Status on the Service Plane (1.0.0).

jobType

Integer

Job type. This parameter is left blank when the request fails.

Example Request

POST http://{SERVER_URL}/ges/v1.0/{project_id}/hyg/{graph_name}/ algorithm
{
    "algorithmName": "subgraph_matching",
    "parameters": {
        "edges": "1,2\n2,3\n3,4\n5,6\n5,4",
        "vertices": "1,movie\n2,user\n3,user\n4,user\n5,user\n6,user",
        "statistics": "true",
        "directed": "true",
        "n": 55,
        "batch_number": "500"
    }
}

SERVER_URL: Address for accessing a graph. For details about its value, see Using Service Plane APIs.

Example Response

Status code: 200

Example response for a successful request

Http Status Code: 200
{  
"jobId": "4448c9fb-0b16-4a78-8d89-2a137c53454a001679122",
"jobType": 1
}

Status code: 400

Example response for a failed request

Http Status Code: 400
{
"errorMessage":"graph [demo] is not found",
"errorCode":"GES.8402"
}

Query result

  • Example Request
    GET http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/jobs/{jobId}/status?limit=limit
  • Query result response
    Table 4 response_data parameter description

    Name

    Type

    Description

    community

    List

    Community corresponding to each vertex. The format is as follows:

    [{vertexId1:communityId},{vertexId2:communityId}],

    where

    vertexId: string type. The list is sorted by vertex ID.

    communityId: string type

    Note: The communityId itself has no meaning and uses the internal ID of HyG.

Status Codes

Return Value

Description

400 Bad Request

Request error.

401 Unauthorized

Authorization failed.

403 Forbidden

No operation permissions.

404 Not Found

No resources found.

500 Internal Server Error

Internal server error.

503 Service Unavailable

Service unavailable.