File size: 1,671 Bytes
9d29c62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# domain/ontology.py

GLOBAL_ONTOLOGY = {
    "algebra": {
        "solve_linear_system": {
            "concepts": ["诪注专讻转", "诪注专讻转 诪砖讜讜讗讜转", "讞讬转讜讱 讬砖专讬诐", "讛砖讜讜讗转 讘讬讟讜讬讬诐", "谞注诇诪讬诐", "谞爪讬讘", "谞讞诇抓", "诪砖讜讜讗讜转", "诪砖转谞讛", "注专讱"],
            "tag": "讛砖讜讜讗讛"
        },
        "isolate_variable": {
            "concepts": ["讘讬讚讜讚 诪砖转谞讛", "讛注讘专转 讗讙驻讬诐", "谞讞诇拽 讘诪拽讚诐", "谞讞住专", "谞讻谞住 讗讬讘专讬诐 讚讜诪讬诐", "谞驻砖讟", "讗讬讘专讬诐"],
            "tag": "讘讬讚讜讚 诪砖转谞讛"
        },
        "substitute": {
            "concepts": ["讛爪讘讛", "谞爪讬讘 讗转 讛注专讱", "诪砖讜讜讗讛 诪拽讜专讬转", "注专讱 讛-y", "注专讱 讛-x", "诪砖转谞讛 砖谞讬"],
            "tag": "讛爪讘讛"
        },
        "general_algebra": {
            "concepts": ["诪砖讜讜讗讛", "谞注诇诐", "驻转专讜谉", "讛住讘专", "讞讬砖讜讘", "砖诇讘"],
            "tag": "讗诇讙讘专讛 讘住讬住讬转"
        }
    },
    "geometry": {
        # Geometry terms will go here later
    }
}

def get_allowed_concepts(category: str, rule_id: str) -> list[str]:
    """Fetch allowed concepts from ontology"""
    domain = GLOBAL_ONTOLOGY.get(category.lower(), {})
    rule_data = domain.get(rule_id, domain.get("general_algebra", {"concepts": []}))
    return rule_data.get("concepts", [])

def get_pedagogical_tag(category: str, rule_id: str) -> str:
    """Fetch pedagogical tag from ontology"""
    domain = GLOBAL_ONTOLOGY.get(category.lower(), {})
    rule_data = domain.get(rule_id, domain.get("general_algebra", {"tag": "讻诇诇讬"}))
    return rule_data.get("tag", "讻诇诇讬")