{
"$type": "com.atproto.lexicon.schema",
"defs": {
"communityResult": {
"description": "Community detection result",
"properties": {
"communityId": {
"description": "Community identifier",
"type": "integer"
},
"members": {
"description": "Member URIs",
"items": {
"type": "string"
},
"type": "array"
},
"representativeMembers": {
"description": "Representative members with labels",
"items": {
"ref": "#representativeMember",
"type": "ref"
},
"type": "array"
},
"size": {
"description": "Number of members",
"type": "integer"
}
},
"required": [
"communityId",
"members",
"size"
],
"type": "object"
},
"main": {
"description": "Detect communities in the knowledge graph using graph clustering algorithms",
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"algorithm": {
"description": "Algorithm used",
"knownValues": [
"louvain",
"label-propagation"
],
"type": "string"
},
"communities": {
"description": "Detected communities",
"items": {
"ref": "#communityResult",
"type": "ref"
},
"type": "array"
},
"generatedAt": {
"description": "Timestamp when generated",
"format": "datetime",
"type": "string"
},
"total": {
"description": "Total communities found",
"type": "integer"
}
},
"required": [
"communities",
"algorithm",
"total",
"generatedAt"
],
"type": "object"
}
},
"parameters": {
"properties": {
"algorithm": {
"default": "louvain",
"description": "Community detection algorithm",
"knownValues": [
"louvain",
"label-propagation"
],
"type": "string"
},
"limit": {
"default": 20,
"description": "Maximum communities to return",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"minSize": {
"default": 2,
"description": "Minimum community size",
"minimum": 1,
"type": "integer"
}
},
"type": "params"
},
"type": "query"
},
"representativeMember": {
"description": "Representative community member",
"properties": {
"label": {
"description": "Member label",
"type": "string"
},
"uri": {
"description": "Member AT-URI",
"type": "string"
}
},
"required": [
"uri",
"label"
],
"type": "object"
}
},
"id": "pub.chive.graph.getCommunities",
"lexicon": 1,
"revision": 1
}