Storage of Placement Data 3 types of fields multi-valued fields: temporary placement for CS, statistics, math numeric data: ACT, SAT, semesters taken enumerated types: standardized scores, grades 'unknown' always a possible value Processing Data Values numeric data: simple comparison (=, !=, <=, <, >=, >) enumerated types: translate to underlying code, then compare multi-valued fields: check if specific value present Rules analysis of standard scores follows simple table remaining analysis based on qualification rules Rule Structure hierarchical (directed graph, no cycles) standard scores depend upon SAT, ACT, SAT II tentative math placement depends upon standard scores, math taken math placement selects highest tentative math placement tentative CS or stat placement depends upon standard scores, cs, stat, math placements cs, stat placements select highest tentative cs, stat placements Inference Engine Basic algorithm: goals in array for each goal in array for each rule in rule base if rule might meet goal if rule already tried, skip rule else for each condition if condition known, check if true else find rule to meet goal and check recursively when all conditions checked or some fail mark rule has been tried (e.g., prop[rule] = "checked") if result holds record result in prop array break from goal search Example: Apply approach to sample student for CS placement