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