grammar-inference-engine/experiments/results/summary.json
tobjend bbdfe93679 experiments: test all context strategies on RAGSAK — behavioral grouping wins
Key findings:
- File path grouping (structural) = baseline (0.6% coverage) — no improvement
- First-k-symbols grouping (behavioral) = 20× improvement (12% coverage at k=3)
- Two-dimensional (path + symbols) = worse than behavioral alone
- Winner: Option B k=3 — 47 SOREs, 12% coverage

Smart filters make experiments fast (<1s vs minutes):
- max_unique_ratio=0.85
- max_alphabet=20
- max_soa_edges=100

Preserved in experiments/results/ for future reference.
2026-07-11 23:40:21 +02:00

187 lines
No EOL
4.3 KiB
JSON

[
{
"strategy": "Baseline: Package grouping",
"total_contexts": 137,
"meaningful_contexts": 116,
"total_methods": 1594,
"methods_in_good_groups": 9,
"sore_successes": 2,
"sore_failures": 10,
"skip_reasons": {
"too_large": 5,
"too_diverse": 89,
"large_alphabet": 10
},
"coverage": 0.6,
"elapsed_seconds": 0.07
},
{
"strategy": "Option A: File path k=1",
"total_contexts": 47,
"meaningful_contexts": 43,
"total_methods": 1594,
"methods_in_good_groups": 17,
"sore_successes": 2,
"sore_failures": 1,
"skip_reasons": {
"too_large": 9,
"too_diverse": 28,
"large_alphabet": 3
},
"coverage": 1.1,
"elapsed_seconds": 0.01
},
{
"strategy": "Option A: File path k=2",
"total_contexts": 59,
"meaningful_contexts": 54,
"total_methods": 1594,
"methods_in_good_groups": 17,
"sore_successes": 2,
"sore_failures": 1,
"skip_reasons": {
"too_large": 8,
"too_diverse": 39,
"large_alphabet": 4
},
"coverage": 1.1,
"elapsed_seconds": 0.01
},
{
"strategy": "Option A: File path k=3",
"total_contexts": 59,
"meaningful_contexts": 54,
"total_methods": 1594,
"methods_in_good_groups": 17,
"sore_successes": 2,
"sore_failures": 1,
"skip_reasons": {
"too_large": 8,
"too_diverse": 39,
"large_alphabet": 4
},
"coverage": 1.1,
"elapsed_seconds": 0.01
},
{
"strategy": "Option B: First 1 symbols",
"total_contexts": 550,
"meaningful_contexts": 134,
"total_methods": 1594,
"methods_in_good_groups": 74,
"sore_successes": 20,
"sore_failures": 19,
"skip_reasons": {
"too_large": 2,
"large_alphabet": 13,
"too_diverse": 80
},
"coverage": 4.6,
"elapsed_seconds": 0.08
},
{
"strategy": "Option B: First 2 symbols",
"total_contexts": 961,
"meaningful_contexts": 141,
"total_methods": 1594,
"methods_in_good_groups": 157,
"sore_successes": 39,
"sore_failures": 23,
"skip_reasons": {
"large_alphabet": 7,
"too_diverse": 72
},
"coverage": 9.8,
"elapsed_seconds": 0.06
},
{
"strategy": "Option B: First 3 symbols",
"total_contexts": 1112,
"meaningful_contexts": 117,
"total_methods": 1594,
"methods_in_good_groups": 191,
"sore_successes": 47,
"sore_failures": 14,
"skip_reasons": {
"large_alphabet": 6,
"too_diverse": 50
},
"coverage": 12.0,
"elapsed_seconds": 0.04
},
{
"strategy": "Option C: Path k=1 + Symbol k=1",
"total_contexts": 813,
"meaningful_contexts": 151,
"total_methods": 1594,
"methods_in_good_groups": 101,
"sore_successes": 24,
"sore_failures": 19,
"skip_reasons": {
"too_diverse": 99,
"large_alphabet": 9
},
"coverage": 6.3,
"elapsed_seconds": 0.06
},
{
"strategy": "Option C: Path k=1 + Symbol k=2",
"total_contexts": 1073,
"meaningful_contexts": 119,
"total_methods": 1594,
"methods_in_good_groups": 138,
"sore_successes": 33,
"sore_failures": 21,
"skip_reasons": {
"too_diverse": 61,
"large_alphabet": 4
},
"coverage": 8.7,
"elapsed_seconds": 0.14
},
{
"strategy": "Option C: Path k=2 + Symbol k=1",
"total_contexts": 832,
"meaningful_contexts": 146,
"total_methods": 1594,
"methods_in_good_groups": 101,
"sore_successes": 24,
"sore_failures": 19,
"skip_reasons": {
"too_diverse": 94,
"large_alphabet": 9
},
"coverage": 6.3,
"elapsed_seconds": 0.08
},
{
"strategy": "Option C: Path k=2 + Symbol k=2",
"total_contexts": 1080,
"meaningful_contexts": 117,
"total_methods": 1594,
"methods_in_good_groups": 138,
"sore_successes": 33,
"sore_failures": 21,
"skip_reasons": {
"too_diverse": 59,
"large_alphabet": 4
},
"coverage": 8.7,
"elapsed_seconds": 0.06
},
{
"strategy": "Option H: Return type heuristic",
"total_contexts": 60,
"meaningful_contexts": 5,
"total_methods": 1594,
"methods_in_good_groups": 0,
"sore_successes": 0,
"sore_failures": 0,
"skip_reasons": {
"too_large": 1,
"too_diverse": 4
},
"coverage": 0.0,
"elapsed_seconds": 0.0
}
]