Skip to content

Commit 6e74562

Browse files
committed
feat(claims): add community detection and k-core evaluation claims
Add COMMUNITY_DETECTION_CLAIMS (louvain-positive-modularity, louvain-fewer-iterations-than-leiden) and KCORE_CLAIMS (kcore-identifies-hierarchical-structure, kcore-core-periphery-separation) to THESIS_CLAIMS for experiment-driven validation.
1 parent a913764 commit 6e74562

File tree

1 file changed

+62
-2
lines changed

1 file changed

+62
-2
lines changed

src/domain/claims.ts

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,64 @@ const RANKING_CLAIMS: EvaluationClaim[] = [
5454
},
5555
];
5656

57+
/**
58+
* Community Detection Claims for Louvain evaluation.
59+
* Tests structural decomposition quality on benchmark graphs.
60+
*/
61+
const COMMUNITY_DETECTION_CLAIMS: EvaluationClaim[] = [
62+
{
63+
claimId: "louvain-positive-modularity",
64+
description: "Louvain detects communities with positive modularity on benchmark graphs",
65+
sut: "louvain-v1.0.0",
66+
baseline: "random-partition-v1.0.0",
67+
metric: "modularity",
68+
direction: "greater",
69+
scope: "global",
70+
tags: ["community-detection", "core"],
71+
},
72+
{
73+
claimId: "louvain-fewer-iterations-than-leiden",
74+
description: "Louvain converges in fewer iterations than Leiden on small graphs",
75+
sut: "louvain-v1.0.0",
76+
baseline: "leiden-v1.0.0",
77+
metric: "iterations",
78+
direction: "less",
79+
scope: "caseClass",
80+
scopeConstraints: { caseClass: "small-world" },
81+
tags: ["community-detection", "efficiency"],
82+
},
83+
];
84+
85+
/**
86+
* K-Core Decomposition Claims.
87+
* Tests hierarchical structure identification on benchmark graphs.
88+
*/
89+
const KCORE_CLAIMS: EvaluationClaim[] = [
90+
{
91+
claimId: "kcore-identifies-hierarchical-structure",
92+
description: "K-core decomposition produces nested core hierarchy on benchmark graphs",
93+
sut: "k-core-v1.0.0",
94+
baseline: "random-partition-v1.0.0",
95+
metric: "coreCount",
96+
direction: "greater",
97+
threshold: 2,
98+
scope: "global",
99+
tags: ["decomposition", "core"],
100+
},
101+
{
102+
claimId: "kcore-core-periphery-separation",
103+
description: "K-core degeneracy separates core literature from peripheral on collaboration networks",
104+
sut: "k-core-v1.0.0",
105+
baseline: "random-partition-v1.0.0",
106+
metric: "degeneracy",
107+
direction: "greater",
108+
threshold: 1,
109+
scope: "caseClass",
110+
scopeConstraints: { caseClass: "collaboration" },
111+
tags: ["decomposition"],
112+
},
113+
];
114+
57115
/**
58116
* Thesis claims for GraphBox evaluation.
59117
*
@@ -215,6 +273,8 @@ export const THESIS_CLAIMS: EvaluationClaim[] = [
215273
tags: ["ranking"],
216274
},
217275
...RANKING_CLAIMS,
276+
...COMMUNITY_DETECTION_CLAIMS,
277+
...KCORE_CLAIMS,
218278
];
219279

220280
/**
@@ -254,5 +314,5 @@ export const getClaimsByBaseline = (baselineId: string): EvaluationClaim[] => TH
254314
*/
255315
export const getClaim = (claimId: string): EvaluationClaim | undefined => THESIS_CLAIMS.find((c) => c.claimId === claimId);
256316

257-
// Re-export RANKING_CLAIMS for backwards compatibility
258-
export { RANKING_CLAIMS };
317+
// Re-export claim arrays
318+
export { COMMUNITY_DETECTION_CLAIMS, KCORE_CLAIMS,RANKING_CLAIMS };

0 commit comments

Comments
 (0)