eduevidence 6.0.0 → 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +395 -0
- package/CONTRIBUTING.md +105 -0
- package/README.md +113 -49
- package/README.zh-CN.md +39 -12
- package/SKILL.md +15 -5
- package/assets/readme/landing-tour.gif +0 -0
- package/assets/readme/studio-tour.gif +0 -0
- package/benchmarks/evidence-library.json +277 -1
- package/bin/eduevidence.js +2 -1
- package/docs/architecture.md +325 -46
- package/docs/demo-workplace-ai.md +1 -1
- package/docs/install-guide.md +1 -1
- package/docs/j-ev-experimental.md +250 -0
- package/docs/orchestration-role-model.md +1 -1
- package/docs/release-closeout/README.md +1 -1
- package/docs/reproducibility.md +138 -0
- package/docs/sciverse-api.md +125 -0
- package/domains/_neutral/copy/few_shots.json +21 -0
- package/domains/_neutral/copy/framing_lexicon.json +19 -0
- package/domains/_neutral/copy/module_labels.json +5 -0
- package/domains/_neutral/copy/module_labels_footer.json +102 -0
- package/domains/_neutral/copy/module_labels_modules.json +204 -0
- package/domains/_neutral/copy/module_labels_nav.json +126 -0
- package/domains/_neutral/copy/module_labels_summary.json +98 -0
- package/domains/_neutral/copy/module_labels_tables.json +164 -0
- package/domains/_neutral/copy/module_labels_v2.json +90 -0
- package/domains/_neutral/copy/risk_constructs.json +20 -0
- package/domains/_neutral/copy/section_titles.json +66 -0
- package/domains/_neutral/copy/terminology.json +11 -0
- package/domains/check_copy_packs.py +103 -0
- package/domains/education/copy/few_shots.json +22 -0
- package/domains/education/copy/framing_enums.json +167 -0
- package/domains/education/copy/framing_lexicon.json +166 -0
- package/domains/education/copy/module_labels.json +169 -0
- package/domains/education/copy/risk_constructs.json +48 -0
- package/domains/education/copy/section_titles.json +186 -0
- package/domains/education/copy/terminology.json +70 -0
- package/domains/education/manifest.json +1 -1
- package/domains/education/outcome_taxonomy.json +2 -2
- package/domains/manifest.json +1 -1
- package/domains/policy/copy/few_shots.json +22 -0
- package/domains/policy/copy/framing_enums.json +94 -0
- package/domains/policy/copy/framing_lexicon.json +174 -0
- package/domains/policy/copy/module_labels.json +168 -0
- package/domains/policy/copy/risk_constructs.json +33 -0
- package/domains/policy/copy/section_titles.json +186 -0
- package/domains/policy/copy/terminology.json +64 -0
- package/eduevidence_cli.py +10 -0
- package/engine/capabilities.py +57 -5
- package/engine/decision_policy.py +167 -0
- package/engine/evidence_graph.py +14 -10
- package/engine/gaps.py +42 -22
- package/engine/ids.py +2 -0
- package/engine/library.py +6 -2
- package/engine/library_builtin.py +7 -4
- package/engine/living.py +34 -4
- package/engine/migration.py +88 -3
- package/engine/orchestration.py +5 -5
- package/engine/paths.py +2 -0
- package/engine/pilot.py +34 -32
- package/engine/taxonomy.py +211 -0
- package/engine/tribunal.py +49 -43
- package/engine/versions.py +1 -1
- package/examples/ai-coding-assistant-evidence/EduEvidence_Report.html +1361 -147
- package/examples/ai-coding-assistant-evidence/artifact_manifest.json +3 -3
- package/examples/ai-coding-assistant-evidence/citation_check.json +1 -1
- package/examples/ai-coding-assistant-evidence/final_verdict.json +107 -0
- package/examples/ai-coding-assistant-evidence/gate_report.json +101 -0
- package/examples/ai-coding-assistant-evidence/report_spec.json +23 -12
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_academic.html +448 -128
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_claude.html +448 -128
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_datalab-dark.html +448 -128
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_datalab.html +448 -128
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_presentation.html +448 -128
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_academic.html +1360 -146
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_claude.html +1360 -146
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_datalab-dark.html +1360 -146
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_datalab.html +1360 -146
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_presentation.html +1360 -146
- package/examples/ai-coding-assistant-evidence/result.json +13 -9
- package/examples/ai-coding-assistant-evidence/result.zh.json +45 -41
- package/examples/ai-coding-assistant-evidence/skeptic.json +72 -0
- package/examples/ai-coding-assistant-evidence/verdict.json +6 -2
- package/examples/spaced-retrieval-practice/EduEvidence_Report.html +2728 -0
- package/examples/spaced-retrieval-practice/applicability.json +14 -0
- package/examples/spaced-retrieval-practice/artifact_manifest.json +15 -0
- package/examples/spaced-retrieval-practice/claims.jsonl +3 -0
- package/examples/spaced-retrieval-practice/evidence.jsonl +6 -0
- package/examples/spaced-retrieval-practice/final_verdict.json +93 -0
- package/examples/spaced-retrieval-practice/frame.json +58 -0
- package/examples/spaced-retrieval-practice/gate_report.json +101 -0
- package/examples/spaced-retrieval-practice/methodology.json +78 -0
- package/examples/spaced-retrieval-practice/report.html +2522 -0
- package/examples/spaced-retrieval-practice/report_spec.json +212 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_academic.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_claude.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_datalab-dark.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_datalab.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_presentation.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_academic.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_claude.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_datalab-dark.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_datalab.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_presentation.html +2728 -0
- package/examples/spaced-retrieval-practice/result.json +942 -0
- package/examples/spaced-retrieval-practice/result.zh.json +942 -0
- package/examples/spaced-retrieval-practice/skeptic.json +70 -0
- package/examples/spaced-retrieval-practice/sources.jsonl +7 -0
- package/examples/spaced-retrieval-practice/verdict.json +93 -0
- package/examples/workplace-ai-assistant/EduEvidence_Report.html +2814 -0
- package/examples/workplace-ai-assistant/artifact_manifest.json +15 -0
- package/examples/workplace-ai-assistant/claims.jsonl +4 -4
- package/examples/workplace-ai-assistant/evidence.jsonl +4 -4
- package/examples/workplace-ai-assistant/evidence_graph.json +15 -15
- package/examples/workplace-ai-assistant/final_verdict.json +78 -0
- package/examples/workplace-ai-assistant/gate_report.json +101 -0
- package/examples/workplace-ai-assistant/report_spec.json +209 -40
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_academic.html +449 -119
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_claude.html +449 -119
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_datalab-dark.html +449 -119
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_datalab.html +449 -119
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_presentation.html +449 -119
- package/examples/workplace-ai-assistant/reports-5themes/report_academic.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_claude.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_datalab-dark.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_datalab.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_presentation.html +2814 -0
- package/examples/workplace-ai-assistant/result.json +82 -20
- package/examples/workplace-ai-assistant/result.zh.json +82 -20
- package/examples/workplace-ai-assistant/skeptic.json +72 -0
- package/examples/workplace-ai-assistant/verdict.json +36 -10
- package/integrations/agent_mcp.py +2 -2
- package/integrations/jev/__init__.py +115 -0
- package/integrations/jev/approval.py +212 -0
- package/integrations/jev/cli.py +84 -0
- package/integrations/jev/config.py +112 -0
- package/integrations/jev/gateway.py +128 -0
- package/integrations/jev/modes.py +38 -0
- package/integrations/jev/tools_classify.py +88 -0
- package/integrations/jev/tools_extract.py +111 -0
- package/integrations/jev/tools_rerank.py +71 -0
- package/integrations/jev/tools_screen.py +87 -0
- package/integrations/jev/tools_verify.py +95 -0
- package/integrations/jev_mcp.py +22 -0
- package/integrations/semantic_decide.py +286 -0
- package/integrations/semdecide_cli.py +55 -0
- package/package.json +19 -2
- package/pyproject.toml +4 -3
- package/references/report-copy-style.md +107 -0
- package/references/retrieval-compliance.md +75 -0
- package/references/retrieval-protocol.md +20 -0
- package/retrieval/audit.py +27 -3
- package/retrieval/fetch.py +96 -0
- package/retrieval/sciverse.py +398 -0
- package/retrieval/search.py +47 -7
- package/schemas/applicability.schema.json +94 -0
- package/schemas/chart-spec.schema.json +10 -3
- package/schemas/evidence.schema.json +316 -43
- package/schemas/fetch-result.schema.json +2 -1
- package/schemas/report-result.schema.json +3 -3
- package/schemas/report-spec.schema.json +98 -100
- package/schemas/skeptic.schema.json +86 -0
- package/schemas/source.schema.json +21 -2
- package/schemas/v2/decision-snapshot.schema.json +20 -9
- package/schemas/v2/finding.schema.json +5 -1
- package/schemas/v2/intake.schema.json +191 -0
- package/schemas/v2/methodology-audit.schema.json +5 -1
- package/schemas/v2/outcome.schema.json +28 -5
- package/schemas/v2/study.schema.json +5 -1
- package/schemas/vNext/autoevolve-session.schema.json +34 -1
- package/schemas/vNext/eval-snapshot.schema.json +77 -1
- package/schemas/vNext/execution-plan.schema.json +50 -1
- package/schemas/vNext/gap-priority.schema.json +54 -1
- package/schemas/vNext/negative-search-record.schema.json +68 -1
- package/schemas/vNext/research-iteration.schema.json +87 -1
- package/schemas/vNext/research-strategy.schema.json +62 -1
- package/schemas/vNext/skill-experiment.schema.json +90 -1
- package/schemas/vNext/task-spec.schema.json +156 -1
- package/schemas/vNext/worker-result.schema.json +60 -1
- package/schemas/verdict.schema.json +164 -28
- package/scripts/build_evidence_library.py +15 -5
- package/scripts/build_report_variants.py +18 -2
- package/scripts/build_result.py +74 -9
- package/scripts/check_package_parity.py +85 -0
- package/scripts/check_protocol_alignment.py +375 -0
- package/scripts/check_versioned_schemas.py +254 -0
- package/scripts/claim_audit.py +13 -8
- package/scripts/compute_confidence.py +10 -0
- package/scripts/dashboard_server.py +13 -2
- package/scripts/did_regression.py +12 -2
- package/scripts/evidence_score.py +5 -2
- package/scripts/intake/__init__.py +31 -0
- package/scripts/intake/__main__.py +18 -0
- package/scripts/intake/background.py +78 -0
- package/scripts/intake/browser.py +79 -0
- package/scripts/intake/cli.py +57 -0
- package/scripts/intake/constants.py +57 -0
- package/scripts/intake/depth.py +53 -0
- package/scripts/intake/enhancements.py +106 -0
- package/scripts/intake/hooks.py +90 -0
- package/scripts/intake/prefs.py +76 -0
- package/scripts/intake/prompts.py +85 -0
- package/scripts/intake/session.py +152 -0
- package/scripts/lint_file_layers.py +126 -0
- package/scripts/orchestrator.py +187 -40
- package/scripts/pre_verdict_gate.py +241 -29
- package/scripts/quickstart.py +18 -2
- package/scripts/run_workspace.py +7 -1
- package/scripts/skill_lint.py +11 -1
- package/scripts/skill_payload.py +6 -3
- package/scripts/test_adversarial_empirical.py +96 -25
- package/scripts/validate_schema.py +31 -1
- package/skill/agents/evaluation-designer.md +20 -4
- package/skill/agents/evidence-analyst.md +19 -3
- package/skill/agents/evidence-judge.md +98 -8
- package/skill/agents/evidence-retriever.md +20 -3
- package/skill/agents/intervention-designer.md +20 -4
- package/skill/agents/method-reviewer.md +18 -2
- package/skill/agents/{education-planner.md → research-planner.md} +19 -3
- package/skill/agents/skeptic.md +18 -2
- package/skill/roles/registry.yaml +11 -11
- package/skill/sub-skills/aihot-trend-analysis/SKILL.md +28 -9
- package/skill/sub-skills/contradiction-analysis/SKILL.md +31 -11
- package/skill/sub-skills/data-analysis/SKILL.md +34 -15
- package/skill/sub-skills/ethics-review/SKILL.md +33 -10
- package/skill/sub-skills/evidence-extraction/SKILL.md +29 -11
- package/skill/sub-skills/evidence-review/SKILL.md +31 -12
- package/skill/sub-skills/gap-analysis/SKILL.md +31 -9
- package/skill/sub-skills/literature-review/SKILL.md +35 -14
- package/skill/sub-skills/methodology-audit/SKILL.md +29 -12
- package/skill/sub-skills/report-generation/SKILL.md +28 -0
- package/skill/sub-skills/research-planning/SKILL.md +41 -14
- package/skill/sub-skills/study-design/SKILL.md +30 -9
- package/skill/task-briefs/adjudicate.md +32 -7
- package/skill/task-briefs/applicability.md +37 -2
- package/skill/task-briefs/audit.md +32 -7
- package/skill/task-briefs/challenge.md +34 -5
- package/skill/task-briefs/evaluate.md +30 -5
- package/skill/task-briefs/extract.md +31 -8
- package/skill/task-briefs/frame.md +39 -10
- package/skill/task-briefs/intervene.md +32 -6
- package/skill/task-briefs/present.md +32 -8
- package/skill/task-briefs/projection.md +36 -2
- package/skill/task-briefs/retrieve.md +36 -6
- package/skill/workflows/decision-and-pilot.md +76 -1
- package/skill/workflows/evaluate-and-update.md +83 -0
- package/skill/workflows/evidence-review.md +104 -0
- package/skill/workflows/experimental-jev.md +170 -0
- package/skill/workflows/intake.md +120 -0
- package/visualization/eduevidence-report/scripts/build_figures.py +25 -3
- package/visualization/eduevidence-report/scripts/build_infographics.py +37 -15
- package/visualization/eduevidence-report/scripts/build_report.py +435 -575
- package/visualization/eduevidence-report/scripts/charts_data.py +2 -0
- package/visualization/eduevidence-report/scripts/lieflat_engine.py +349 -38
- package/visualization/eduevidence-report/scripts/report_copy_pack.py +296 -0
- package/visualization/eduevidence-report/scripts/report_copy_policy_guard.py +47 -0
- package/visualization/eduevidence-report/scripts/zh_labels.py +141 -1
- package/web/architecture.html +14885 -0
- package/web/studio/assets/index-B8tkF44Q.css +1 -0
- package/web/studio/index.html +2 -2
- package/scripts/build_esl_artifacts.py +0 -1921
- package/scripts/build_killer_demo.py +0 -295
- package/scripts/enrich_projects_human_and_lieflat.py +0 -315
- package/scripts/generate_new_projects.py +0 -686
- package/scripts/sync_killer_demo_report.py +0 -270
- package/web/studio/assets/index-CzXocaGv.css +0 -1
- /package/web/studio/assets/{index-pa7jD7n4.js → index-CQ6Keoyc.js} +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domain": "_neutral",
|
|
3
|
+
"purpose": "Neutral UI labels — module_labels_v2.",
|
|
4
|
+
"labels": {
|
|
5
|
+
"v2_project_title": {
|
|
6
|
+
"zh": "项目与研究历史",
|
|
7
|
+
"en": "Project & Research History"
|
|
8
|
+
},
|
|
9
|
+
"v2_project_id": {
|
|
10
|
+
"zh": "项目 ID",
|
|
11
|
+
"en": "Project ID"
|
|
12
|
+
},
|
|
13
|
+
"v2_graph_revision": {
|
|
14
|
+
"zh": "证据图版本",
|
|
15
|
+
"en": "Graph revision"
|
|
16
|
+
},
|
|
17
|
+
"v2_decision_snapshot": {
|
|
18
|
+
"zh": "决策快照",
|
|
19
|
+
"en": "Decision snapshot"
|
|
20
|
+
},
|
|
21
|
+
"v2_timeline": {
|
|
22
|
+
"zh": "项目时间线",
|
|
23
|
+
"en": "Project timeline"
|
|
24
|
+
},
|
|
25
|
+
"v2_gaps_title": {
|
|
26
|
+
"zh": "知识缺口",
|
|
27
|
+
"en": "Knowledge gaps"
|
|
28
|
+
},
|
|
29
|
+
"v2_gap_type": {
|
|
30
|
+
"zh": "缺口类型",
|
|
31
|
+
"en": "Gap type"
|
|
32
|
+
},
|
|
33
|
+
"v2_gap_priority": {
|
|
34
|
+
"zh": "优先级",
|
|
35
|
+
"en": "Priority"
|
|
36
|
+
},
|
|
37
|
+
"v2_gap_reasoning": {
|
|
38
|
+
"zh": "依据",
|
|
39
|
+
"en": "Reasoning"
|
|
40
|
+
},
|
|
41
|
+
"v2_design_title": {
|
|
42
|
+
"zh": "研究设计",
|
|
43
|
+
"en": "Study design"
|
|
44
|
+
},
|
|
45
|
+
"v2_design_type": {
|
|
46
|
+
"zh": "设计类型",
|
|
47
|
+
"en": "Design type"
|
|
48
|
+
},
|
|
49
|
+
"v2_design_question": {
|
|
50
|
+
"zh": "研究问题",
|
|
51
|
+
"en": "Research question"
|
|
52
|
+
},
|
|
53
|
+
"v2_provenance_title": {
|
|
54
|
+
"zh": "数据集与分析溯源",
|
|
55
|
+
"en": "Dataset & analysis provenance"
|
|
56
|
+
},
|
|
57
|
+
"v2_diff_title": {
|
|
58
|
+
"zh": "决策变更",
|
|
59
|
+
"en": "Decision diff"
|
|
60
|
+
},
|
|
61
|
+
"v2_diff_action": {
|
|
62
|
+
"zh": "决策动作",
|
|
63
|
+
"en": "Decision action"
|
|
64
|
+
},
|
|
65
|
+
"v2_diff_confidence": {
|
|
66
|
+
"zh": "置信度",
|
|
67
|
+
"en": "Confidence"
|
|
68
|
+
},
|
|
69
|
+
"v2_diff_claims": {
|
|
70
|
+
"zh": "变更的主张",
|
|
71
|
+
"en": "Changed claims"
|
|
72
|
+
},
|
|
73
|
+
"v2_diff_gaps": {
|
|
74
|
+
"zh": "已解决/新增缺口",
|
|
75
|
+
"en": "Resolved/new gaps"
|
|
76
|
+
},
|
|
77
|
+
"v2_revision": {
|
|
78
|
+
"zh": "版本",
|
|
79
|
+
"en": "Revision"
|
|
80
|
+
},
|
|
81
|
+
"v2_decision": {
|
|
82
|
+
"zh": "决策",
|
|
83
|
+
"en": "Decision"
|
|
84
|
+
},
|
|
85
|
+
"v2_no_v2_data": {
|
|
86
|
+
"zh": "(无 V2 项目数据)",
|
|
87
|
+
"en": "(no V2 project data)"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domain": "_neutral",
|
|
3
|
+
"outcome_groups": {},
|
|
4
|
+
"separation_title": {
|
|
5
|
+
"zh": "结果分离",
|
|
6
|
+
"en": "Outcome separation"
|
|
7
|
+
},
|
|
8
|
+
"separation_note": {
|
|
9
|
+
"zh": "将不同结果类型分开裁决。",
|
|
10
|
+
"en": "Outcomes are adjudicated separately."
|
|
11
|
+
},
|
|
12
|
+
"method_guard": {
|
|
13
|
+
"zh": "构念护栏",
|
|
14
|
+
"en": "Construct guard"
|
|
15
|
+
},
|
|
16
|
+
"guard_principle": {
|
|
17
|
+
"zh": "",
|
|
18
|
+
"en": ""
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domain": "_neutral",
|
|
3
|
+
"section_titles": {
|
|
4
|
+
"zh": {},
|
|
5
|
+
"en": {}
|
|
6
|
+
},
|
|
7
|
+
"section_leads": {
|
|
8
|
+
"zh": {},
|
|
9
|
+
"en": {}
|
|
10
|
+
},
|
|
11
|
+
"default_chapters": [],
|
|
12
|
+
"brief_blocks": {
|
|
13
|
+
"zh": {
|
|
14
|
+
"decision": [
|
|
15
|
+
"先看结论",
|
|
16
|
+
"该不该做、把握多高、证据边界在哪里。"
|
|
17
|
+
],
|
|
18
|
+
"lieflat": [
|
|
19
|
+
"实证图表画廊",
|
|
20
|
+
"按数据形状选型编排;数字均可溯源到 result.json。"
|
|
21
|
+
],
|
|
22
|
+
"outcomes": [
|
|
23
|
+
"结果分离",
|
|
24
|
+
"不同构念的结果分开呈现;正向、负向与零效应分别编码。"
|
|
25
|
+
],
|
|
26
|
+
"tribunal": [
|
|
27
|
+
"证据裁决",
|
|
28
|
+
"支持、不确定、被反驳与缺失证据分开放置。"
|
|
29
|
+
],
|
|
30
|
+
"action": [
|
|
31
|
+
"从证据到行动",
|
|
32
|
+
"适用性、护栏、停止条件与评价连成可执行路径。"
|
|
33
|
+
],
|
|
34
|
+
"sources": [
|
|
35
|
+
"关键来源",
|
|
36
|
+
"摘要页只列最关键来源;完整溯源在完整报告展开。"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"en": {
|
|
40
|
+
"decision": [
|
|
41
|
+
"Start with the decision",
|
|
42
|
+
"Whether to act, how confident, and where the evidence stops."
|
|
43
|
+
],
|
|
44
|
+
"lieflat": [
|
|
45
|
+
"Evidence figure gallery",
|
|
46
|
+
"Charts selected from the catalog; every number traces to result.json."
|
|
47
|
+
],
|
|
48
|
+
"outcomes": [
|
|
49
|
+
"Outcome separation",
|
|
50
|
+
"Distinct constructs shown separately; positive, negative, and null effects encoded apart."
|
|
51
|
+
],
|
|
52
|
+
"tribunal": [
|
|
53
|
+
"Evidence tribunal",
|
|
54
|
+
"Supported, uncertain, contradicted, and missing evidence kept apart."
|
|
55
|
+
],
|
|
56
|
+
"action": [
|
|
57
|
+
"Evidence to action",
|
|
58
|
+
"Applicability, guardrails, stop rules, and evaluation as one path."
|
|
59
|
+
],
|
|
60
|
+
"sources": [
|
|
61
|
+
"Key sources",
|
|
62
|
+
"Summary lists only critical sources; full provenance in the full report."
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Assert domain copy packs stay in-domain.
|
|
3
|
+
|
|
4
|
+
Requirement: the policy dictionary must not contain teaching vocabulary.
|
|
5
|
+
Run: python3 domains/check_copy_packs.py
|
|
6
|
+
Exit 0 = clean; exit 1 = violation (prints every hit).
|
|
7
|
+
"""
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import sys
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
# Reuse the report-layer ban list so load-time and CLI checks cannot drift.
|
|
14
|
+
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "visualization" / "eduevidence-report" / "scripts"))
|
|
15
|
+
from report_copy_pack import load_copy_pack # noqa: E402
|
|
16
|
+
from report_copy_policy_guard import ( # noqa: E402
|
|
17
|
+
TEACHING_WORDS_EN,
|
|
18
|
+
TEACHING_WORDS_ZH,
|
|
19
|
+
assert_policy_copy_clean,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
DOMAINS = Path(__file__).resolve().parent
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _iter_strings(node, path="$"):
|
|
26
|
+
if isinstance(node, dict):
|
|
27
|
+
for key, value in node.items():
|
|
28
|
+
# Storage keys may be snake_case English (learning_metrics); the
|
|
29
|
+
# ban applies to reader-facing values.
|
|
30
|
+
yield from _iter_strings(value, f"{path}.{key}")
|
|
31
|
+
elif isinstance(node, list):
|
|
32
|
+
for index, value in enumerate(node):
|
|
33
|
+
yield from _iter_strings(value, f"{path}[{index}]")
|
|
34
|
+
elif isinstance(node, str):
|
|
35
|
+
yield path, node
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def load_pack(domain: str) -> dict:
|
|
39
|
+
return load_copy_pack(domain, strict=True)["files"]
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def find_teaching_hits(domain: str) -> list[str]:
|
|
43
|
+
pack = load_pack(domain)
|
|
44
|
+
hits: list[str] = []
|
|
45
|
+
for name, data in pack.items():
|
|
46
|
+
for path, text in _iter_strings(data):
|
|
47
|
+
for word in TEACHING_WORDS_ZH:
|
|
48
|
+
if word in text:
|
|
49
|
+
hits.append(f"{domain}/{name} {path}: contains {word!r} in {text!r}")
|
|
50
|
+
lowered = text.lower()
|
|
51
|
+
for phrase in TEACHING_WORDS_EN:
|
|
52
|
+
if phrase.lower() in lowered:
|
|
53
|
+
hits.append(f"{domain}/{name} {path}: contains {phrase!r} in {text!r}")
|
|
54
|
+
return hits
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def main() -> int:
|
|
58
|
+
failures = 0
|
|
59
|
+
# Hard requirement: policy dictionary free of teaching words.
|
|
60
|
+
try:
|
|
61
|
+
assert_policy_copy_clean(load_pack("policy"))
|
|
62
|
+
print("OK policy copy pack: no teaching vocabulary")
|
|
63
|
+
except AssertionError as exc:
|
|
64
|
+
print(f"FAIL {exc}")
|
|
65
|
+
failures += 1
|
|
66
|
+
|
|
67
|
+
# Soft inventory: education pack is expected to carry teaching voice.
|
|
68
|
+
edu_hits = find_teaching_hits("education")
|
|
69
|
+
print(f"INFO education copy pack teaching-term hits: {len(edu_hits)}")
|
|
70
|
+
|
|
71
|
+
# Structural: every registered domain that has a copy/ dir is complete.
|
|
72
|
+
for domain_dir in sorted(DOMAINS.iterdir()):
|
|
73
|
+
if not domain_dir.is_dir() or domain_dir.name.startswith("_"):
|
|
74
|
+
continue
|
|
75
|
+
copy_dir = domain_dir / "copy"
|
|
76
|
+
if not copy_dir.is_dir():
|
|
77
|
+
continue
|
|
78
|
+
try:
|
|
79
|
+
pack = load_pack(domain_dir.name)
|
|
80
|
+
except FileNotFoundError as exc:
|
|
81
|
+
print(f"FAIL {exc}")
|
|
82
|
+
failures += 1
|
|
83
|
+
continue
|
|
84
|
+
for name, data in pack.items():
|
|
85
|
+
if data.get("domain") != domain_dir.name:
|
|
86
|
+
print(f"FAIL {domain_dir.name}/copy/{name}: domain field mismatch")
|
|
87
|
+
failures += 1
|
|
88
|
+
# four-state few-shots
|
|
89
|
+
states = set((pack.get("few_shots.json") or {}).get("states") or {})
|
|
90
|
+
required = {"adopt", "pilot", "reject", "insufficient_evidence"}
|
|
91
|
+
if not required <= states:
|
|
92
|
+
print(f"FAIL {domain_dir.name}/copy/few_shots.json: missing states {sorted(required - states)}")
|
|
93
|
+
failures += 1
|
|
94
|
+
|
|
95
|
+
if failures:
|
|
96
|
+
print(f"FAILED ({failures} problem(s))")
|
|
97
|
+
return 1
|
|
98
|
+
print("ALL COPY PACK CHECKS PASSED")
|
|
99
|
+
return 0
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
if __name__ == "__main__":
|
|
103
|
+
sys.exit(main())
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domain": "education",
|
|
3
|
+
"purpose": "One written example per decision state (adopt / pilot / reject / insufficient_evidence), education voice.",
|
|
4
|
+
"states": {
|
|
5
|
+
"adopt": {
|
|
6
|
+
"zh": "延迟保持与迁移证据一致为正,独立后测无伤害信号 → 在目标课程中采用每周短时闭卷检索练习,并以统一延迟后测验收。",
|
|
7
|
+
"en": "Delayed retention and transfer evidence is consistently positive with no independent post-test harm → adopt weekly short closed-book retrieval practice in the target course, verified by a common delayed post-test."
|
|
8
|
+
},
|
|
9
|
+
"pilot": {
|
|
10
|
+
"zh": "任务表现证据强,但真实学习与保持证据不足或有护栏依赖 → 有界、分阶段、带独立后测的试点,而不是全面铺开。",
|
|
11
|
+
"en": "Task-performance evidence is strong, but independent learning and retention evidence is thin or guardrail-dependent → a bounded, phased pilot with independent post-tests rather than full rollout."
|
|
12
|
+
},
|
|
13
|
+
"reject": {
|
|
14
|
+
"zh": "无护栏使用已显示独立表现受损,且无补偿性学习收益证据 → 不建议采用,并明确替代方案的证据边界。",
|
|
15
|
+
"en": "Unguarded use already shows independent-performance harm with no compensatory learning gain → do not adopt, and state the evidence boundary of alternatives."
|
|
16
|
+
},
|
|
17
|
+
"insufficient_evidence": {
|
|
18
|
+
"zh": "现有研究未测量独立学习/保持/迁移,或人群与目标课程错位 → 证据不足,先补关键测量设计,再谈决策。",
|
|
19
|
+
"en": "Existing studies do not measure independent learning/retention/transfer, or the population mismatches the target course → insufficient evidence; fill the key measurement design before deciding."
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domain": "education",
|
|
3
|
+
"purpose": "education frame enum display labels (framing_lexicon part 2).",
|
|
4
|
+
"frame_enums": {
|
|
5
|
+
"zh": {
|
|
6
|
+
"teaching_decision": "教学决策",
|
|
7
|
+
"evidence_review": "证据评审",
|
|
8
|
+
"pilot_design": "试点设计",
|
|
9
|
+
"evaluation_design": "评价设计",
|
|
10
|
+
"undergraduate_year_1": "大学一年级",
|
|
11
|
+
"undergraduate_year_2": "大学二年级",
|
|
12
|
+
"undergraduate_year_3": "大学三年级",
|
|
13
|
+
"undergraduate_year_4": "大学四年级",
|
|
14
|
+
"postgraduate": "研究生",
|
|
15
|
+
"high_school": "高中",
|
|
16
|
+
"middle_school": "初中",
|
|
17
|
+
"primary_school": "小学",
|
|
18
|
+
"workplace_adult": "在职成人",
|
|
19
|
+
"computer_science": "计算机科学与技术",
|
|
20
|
+
"information_systems": "信息管理",
|
|
21
|
+
"software_engineering": "软件工程",
|
|
22
|
+
"data_science": "数据科学",
|
|
23
|
+
"mathematics": "数学",
|
|
24
|
+
"medicine": "医学",
|
|
25
|
+
"humanities": "人文",
|
|
26
|
+
"social_sciences": "社会科学",
|
|
27
|
+
"business": "商科",
|
|
28
|
+
"C_programming": "C 语言程序设计",
|
|
29
|
+
"introductory_programming": "程序设计入门",
|
|
30
|
+
"data_structures": "数据结构",
|
|
31
|
+
"algorithms": "算法",
|
|
32
|
+
"database_systems": "数据库系统",
|
|
33
|
+
"machine_learning": "机器学习",
|
|
34
|
+
"academic_writing": "学术写作",
|
|
35
|
+
"tesol": "英语教学",
|
|
36
|
+
"compulsory_core_course": "必修核心课程",
|
|
37
|
+
"elective_course": "选修课程",
|
|
38
|
+
"lecture_lab": "讲授 + 实验课",
|
|
39
|
+
"seminar": "研讨课",
|
|
40
|
+
"online_course": "在线课程",
|
|
41
|
+
"blended_learning": "混合式教学",
|
|
42
|
+
"professional_training": "职业培训",
|
|
43
|
+
"enterprise_customer_support": "企业客户支持",
|
|
44
|
+
"software_development": "软件开发",
|
|
45
|
+
"knowledge_work": "知识型工作",
|
|
46
|
+
"primary": "主要结果",
|
|
47
|
+
"secondary": "次要结果",
|
|
48
|
+
"risk": "风险结果",
|
|
49
|
+
"adopt": "采纳",
|
|
50
|
+
"modify": "修改",
|
|
51
|
+
"terminate": "终止",
|
|
52
|
+
"maintain": "维持",
|
|
53
|
+
"evaluate_impact": "评估影响",
|
|
54
|
+
"rct": "随机对照试验",
|
|
55
|
+
"quasi_experimental": "准实验",
|
|
56
|
+
"observational": "观察性研究",
|
|
57
|
+
"meta_analysis": "元分析",
|
|
58
|
+
"systematic_review": "系统综述",
|
|
59
|
+
"qualitative": "质性研究",
|
|
60
|
+
"mixed_methods": "混合方法",
|
|
61
|
+
"survey": "调查研究",
|
|
62
|
+
"case_study": "案例研究",
|
|
63
|
+
"literature_review": "文献综述",
|
|
64
|
+
"online": "线上",
|
|
65
|
+
"offline": "线下",
|
|
66
|
+
"hybrid": "混合",
|
|
67
|
+
"under_design_pending_evidence_review": "设计中(待证据评审)",
|
|
68
|
+
"human_supervised_customer_support_assistant": "人工监督的客服助手",
|
|
69
|
+
"approved_knowledge_base_and_agent_review": "已批准知识库 + 坐席复核",
|
|
70
|
+
"institutional_reform": "机构改革",
|
|
71
|
+
"enterprise_customer_support_staff": "企业客服人员",
|
|
72
|
+
"autonomous_agents_and_high_stakes_specialist_advice": "自主代理与高风险专业建议",
|
|
73
|
+
"lecture_with_lab_exercises": "讲授 + 实验练习",
|
|
74
|
+
"generative_ai_coding_assistant": "生成式 AI 编程助手",
|
|
75
|
+
"first_programming_course_no_prior_text_based_programming": "首次程序设计课程,无文本编程基础",
|
|
76
|
+
"mixed_ability_large_class_60_students": "混合能力大班(60 人)",
|
|
77
|
+
"weekly_lab_sessions": "每周实验课",
|
|
78
|
+
"one_semester": "一学期",
|
|
79
|
+
"16_weeks_one_semester": "16 周(一学期)",
|
|
80
|
+
"60_students": "60 名学生",
|
|
81
|
+
"TA_supported_two_TAs": "助教支持(2 名助教)",
|
|
82
|
+
"daily": "每日",
|
|
83
|
+
"weekly": "每周",
|
|
84
|
+
"monthly": "每月"
|
|
85
|
+
},
|
|
86
|
+
"en": {
|
|
87
|
+
"teaching_decision": "Teaching decision",
|
|
88
|
+
"evidence_review": "Evidence review",
|
|
89
|
+
"pilot_design": "Pilot design",
|
|
90
|
+
"evaluation_design": "Evaluation design",
|
|
91
|
+
"undergraduate_year_1": "First-year undergraduate",
|
|
92
|
+
"undergraduate_year_2": "Second-year undergraduate",
|
|
93
|
+
"undergraduate_year_3": "Third-year undergraduate",
|
|
94
|
+
"undergraduate_year_4": "Fourth-year undergraduate",
|
|
95
|
+
"postgraduate": "Postgraduate",
|
|
96
|
+
"high_school": "High school",
|
|
97
|
+
"middle_school": "Middle school",
|
|
98
|
+
"primary_school": "Primary school",
|
|
99
|
+
"workplace_adult": "Working adults",
|
|
100
|
+
"computer_science": "Computer science",
|
|
101
|
+
"information_systems": "Information systems",
|
|
102
|
+
"software_engineering": "Software engineering",
|
|
103
|
+
"data_science": "Data science",
|
|
104
|
+
"mathematics": "Mathematics",
|
|
105
|
+
"medicine": "Medicine",
|
|
106
|
+
"humanities": "Humanities",
|
|
107
|
+
"social_sciences": "Social sciences",
|
|
108
|
+
"business": "Business",
|
|
109
|
+
"C_programming": "C programming",
|
|
110
|
+
"introductory_programming": "Introductory programming",
|
|
111
|
+
"data_structures": "Data structures",
|
|
112
|
+
"algorithms": "Algorithms",
|
|
113
|
+
"database_systems": "Database systems",
|
|
114
|
+
"machine_learning": "Machine learning",
|
|
115
|
+
"academic_writing": "Academic writing",
|
|
116
|
+
"tesol": "TESOL",
|
|
117
|
+
"compulsory_core_course": "Compulsory core course",
|
|
118
|
+
"elective_course": "Elective course",
|
|
119
|
+
"lecture_lab": "Lecture + lab",
|
|
120
|
+
"seminar": "Seminar",
|
|
121
|
+
"online_course": "Online course",
|
|
122
|
+
"blended_learning": "Blended learning",
|
|
123
|
+
"professional_training": "Professional training",
|
|
124
|
+
"enterprise_customer_support": "Enterprise customer support",
|
|
125
|
+
"software_development": "Software development",
|
|
126
|
+
"knowledge_work": "Knowledge work",
|
|
127
|
+
"primary": "Primary outcomes",
|
|
128
|
+
"secondary": "Secondary outcomes",
|
|
129
|
+
"risk": "Risk outcomes",
|
|
130
|
+
"adopt": "Adopt",
|
|
131
|
+
"modify": "Modify",
|
|
132
|
+
"terminate": "Terminate",
|
|
133
|
+
"maintain": "Maintain",
|
|
134
|
+
"evaluate_impact": "Evaluate impact",
|
|
135
|
+
"rct": "Randomised controlled trial",
|
|
136
|
+
"quasi_experimental": "Quasi-experimental",
|
|
137
|
+
"observational": "Observational",
|
|
138
|
+
"meta_analysis": "Meta-analysis",
|
|
139
|
+
"systematic_review": "Systematic review",
|
|
140
|
+
"qualitative": "Qualitative",
|
|
141
|
+
"mixed_methods": "Mixed methods",
|
|
142
|
+
"survey": "Survey",
|
|
143
|
+
"case_study": "Case study",
|
|
144
|
+
"literature_review": "Literature review",
|
|
145
|
+
"online": "Online",
|
|
146
|
+
"offline": "Offline",
|
|
147
|
+
"hybrid": "Hybrid",
|
|
148
|
+
"under_design_pending_evidence_review": "Under design (pending evidence review)",
|
|
149
|
+
"approved_knowledge_base_and_agent_review": "Approved knowledge base + agent review",
|
|
150
|
+
"institutional_reform": "Institutional reform",
|
|
151
|
+
"enterprise_customer_support_staff": "Customer-support staff",
|
|
152
|
+
"autonomous_agents_and_high_stakes_specialist_advice": "Autonomous agents and high-stakes specialist advice",
|
|
153
|
+
"lecture_with_lab_exercises": "Lecture with lab exercises",
|
|
154
|
+
"generative_ai_coding_assistant": "Generative AI coding assistant",
|
|
155
|
+
"first_programming_course_no_prior_text_based_programming": "First programming course, no prior text-based programming",
|
|
156
|
+
"mixed_ability_large_class_60_students": "Mixed-ability large class (60 students)",
|
|
157
|
+
"weekly_lab_sessions": "Weekly lab sessions",
|
|
158
|
+
"one_semester": "One semester",
|
|
159
|
+
"16_weeks_one_semester": "16 weeks (one semester)",
|
|
160
|
+
"60_students": "60 students",
|
|
161
|
+
"TA_supported_two_TAs": "TA supported (2 TAs)",
|
|
162
|
+
"daily": "Daily",
|
|
163
|
+
"weekly": "Weekly",
|
|
164
|
+
"monthly": "Monthly"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domain": "education",
|
|
3
|
+
"purpose": "education frame field/subfield labels (framing_lexicon part 1).",
|
|
4
|
+
"frame_fields": {
|
|
5
|
+
"zh": {
|
|
6
|
+
"question": "研究问题",
|
|
7
|
+
"decision_target": "决策目标",
|
|
8
|
+
"learner": "目标学习者",
|
|
9
|
+
"course": "课程情境",
|
|
10
|
+
"intervention": "AI 干预",
|
|
11
|
+
"comparison": "比较条件",
|
|
12
|
+
"outcomes": "结果构念",
|
|
13
|
+
"context": "研究情境",
|
|
14
|
+
"scope": "研究范围",
|
|
15
|
+
"success": "决策成功条件",
|
|
16
|
+
"success_condition": "决策成功条件",
|
|
17
|
+
"population": "目标人群",
|
|
18
|
+
"decision_object": "决策对象",
|
|
19
|
+
"stakeholders": "利益相关者"
|
|
20
|
+
},
|
|
21
|
+
"en": {
|
|
22
|
+
"question": "Research question",
|
|
23
|
+
"decision_target": "Decision target",
|
|
24
|
+
"learner": "Target learners",
|
|
25
|
+
"course": "Course context",
|
|
26
|
+
"intervention": "AI intervention",
|
|
27
|
+
"comparison": "Comparison",
|
|
28
|
+
"outcomes": "Outcome constructs",
|
|
29
|
+
"context": "Research context",
|
|
30
|
+
"scope": "Research scope",
|
|
31
|
+
"success": "Decision success condition",
|
|
32
|
+
"success_condition": "Decision success condition",
|
|
33
|
+
"population": "Target population",
|
|
34
|
+
"decision_object": "Decision object",
|
|
35
|
+
"stakeholders": "Stakeholders"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"frame_subfields": {
|
|
39
|
+
"zh": {
|
|
40
|
+
"learner": {
|
|
41
|
+
"education_level": "教育阶段",
|
|
42
|
+
"major": "专业",
|
|
43
|
+
"prior_knowledge": "先验知识",
|
|
44
|
+
"special_characteristics": "学习者特征"
|
|
45
|
+
},
|
|
46
|
+
"course": {
|
|
47
|
+
"subject": "课程",
|
|
48
|
+
"course_type": "课程类型",
|
|
49
|
+
"duration": "课程周期"
|
|
50
|
+
},
|
|
51
|
+
"intervention": {
|
|
52
|
+
"teaching_method": "干预方式",
|
|
53
|
+
"ai_tool": "AI 工具",
|
|
54
|
+
"allowed_usage": "允许使用",
|
|
55
|
+
"frequency": "使用频率",
|
|
56
|
+
"duration": "干预周期",
|
|
57
|
+
"policy_name": "政策名称",
|
|
58
|
+
"policy_type": "政策类型",
|
|
59
|
+
"jurisdiction": "适用辖区",
|
|
60
|
+
"mechanism": "作用机制"
|
|
61
|
+
},
|
|
62
|
+
"scope": {
|
|
63
|
+
"time_range": "时间范围",
|
|
64
|
+
"geography": "地域",
|
|
65
|
+
"study_types": "研究设计"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"en": {
|
|
69
|
+
"learner": {
|
|
70
|
+
"education_level": "Education level",
|
|
71
|
+
"major": "Major",
|
|
72
|
+
"prior_knowledge": "Prior knowledge",
|
|
73
|
+
"special_characteristics": "Learner characteristics"
|
|
74
|
+
},
|
|
75
|
+
"course": {
|
|
76
|
+
"subject": "Subject",
|
|
77
|
+
"course_type": "Course type",
|
|
78
|
+
"duration": "Duration"
|
|
79
|
+
},
|
|
80
|
+
"intervention": {
|
|
81
|
+
"teaching_method": "Method",
|
|
82
|
+
"ai_tool": "AI tool",
|
|
83
|
+
"allowed_usage": "Allowed usage",
|
|
84
|
+
"frequency": "Frequency",
|
|
85
|
+
"duration": "Duration",
|
|
86
|
+
"policy_name": "Policy",
|
|
87
|
+
"policy_type": "Policy type",
|
|
88
|
+
"jurisdiction": "Jurisdiction",
|
|
89
|
+
"mechanism": "Mechanism"
|
|
90
|
+
},
|
|
91
|
+
"scope": {
|
|
92
|
+
"time_range": "Time range",
|
|
93
|
+
"geography": "Geography",
|
|
94
|
+
"study_types": "Study designs"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"evidence_detail_labels": {
|
|
99
|
+
"zh": {
|
|
100
|
+
"study_id": "研究 ID",
|
|
101
|
+
"sample_id": "样本 ID",
|
|
102
|
+
"title": "研究标题",
|
|
103
|
+
"year": "年份",
|
|
104
|
+
"study_type": "研究设计",
|
|
105
|
+
"education_level": "教育阶段",
|
|
106
|
+
"population": "研究人群",
|
|
107
|
+
"sample_size": "样本量",
|
|
108
|
+
"intervention": "干预",
|
|
109
|
+
"comparison": "对照 / 比较条件",
|
|
110
|
+
"outcome_measure": "结果测量",
|
|
111
|
+
"claim": "完整主张",
|
|
112
|
+
"effect": "效应 / 结果",
|
|
113
|
+
"effect_direction": "效应方向",
|
|
114
|
+
"relation_to_claim": "与主张关系",
|
|
115
|
+
"duration": "干预时长",
|
|
116
|
+
"method": "方法",
|
|
117
|
+
"strengths": "优势",
|
|
118
|
+
"limitations": "局限",
|
|
119
|
+
"confounders": "混杂因素",
|
|
120
|
+
"quality_dimensions": "质量维度",
|
|
121
|
+
"quality_score": "质量分",
|
|
122
|
+
"evidence_level": "证据等级",
|
|
123
|
+
"directness": "直接性",
|
|
124
|
+
"applicability": "适用性",
|
|
125
|
+
"confidence": "置信度",
|
|
126
|
+
"status": "证据状态",
|
|
127
|
+
"source_location": "来源位置",
|
|
128
|
+
"source_title": "来源标题",
|
|
129
|
+
"source_url": "可验证链接",
|
|
130
|
+
"claim_id": "Claim ID"
|
|
131
|
+
},
|
|
132
|
+
"en": {
|
|
133
|
+
"study_id": "Study ID",
|
|
134
|
+
"sample_id": "Sample ID",
|
|
135
|
+
"title": "Study title",
|
|
136
|
+
"year": "Year",
|
|
137
|
+
"study_type": "Study design",
|
|
138
|
+
"education_level": "Education level",
|
|
139
|
+
"population": "Population",
|
|
140
|
+
"sample_size": "Sample size",
|
|
141
|
+
"intervention": "Intervention",
|
|
142
|
+
"comparison": "Comparison",
|
|
143
|
+
"outcome_measure": "Outcome measure",
|
|
144
|
+
"claim": "Full claim",
|
|
145
|
+
"effect": "Effect / result",
|
|
146
|
+
"effect_direction": "Effect direction",
|
|
147
|
+
"relation_to_claim": "Relation to claim",
|
|
148
|
+
"duration": "Duration",
|
|
149
|
+
"method": "Method",
|
|
150
|
+
"strengths": "Strengths",
|
|
151
|
+
"limitations": "Limitations",
|
|
152
|
+
"confounders": "Confounders",
|
|
153
|
+
"quality_dimensions": "Quality dimensions",
|
|
154
|
+
"quality_score": "Quality score",
|
|
155
|
+
"evidence_level": "Evidence level",
|
|
156
|
+
"directness": "Directness",
|
|
157
|
+
"applicability": "Applicability",
|
|
158
|
+
"confidence": "Confidence",
|
|
159
|
+
"status": "Evidence status",
|
|
160
|
+
"source_location": "Source location",
|
|
161
|
+
"source_title": "Source title",
|
|
162
|
+
"source_url": "Verifiable URL",
|
|
163
|
+
"claim_id": "Claim ID"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|