CS 6999 Semantic Web Techniques |
|
Project 5: RACSA and j-DREW BU |
|
|
|
Update j-DREW BU to properly handle calls
to Boolean internal functions with ground inputs. Use the convention that if
a goal is selected that has a first character in its name ‘$’ then it is not handled through resolution, but rather it is handled
as a “built-in” function.
Whenever you put a new rule into the newRuleDiscTree
check before you put it in, check whether the first goal in the rule is a
built-in or not. If it is a built-in, evaluate it, giving back either true or
false. For this project, assume
that the first goal will always be ground. (see Project 6 for lifting
this restriction). The string representing the rule is available via the
function rule.toString().
Given this string, analyse it and if
the goal is asking something that is true, remove the goal, and parse the
remaining string using DCFileParser.parseDefiniteClause(), to get the rule that you can place into the
discrimination tree. If the goal
is not asking something true, then do not put the rule into the
discrimination tree. For example
suppose someone is adding the rule a :- $lessThan(45,72), b, c. Then your code would identify the first goal,
determine that $lessThan(45,72) is true, and instead add the rule a :- b, c. If the goal were not true, your code would just
ignore the rule and not add it to the new rules. With this ability to
evaluate ground built-ins, replace the Mandarax engine with your j-DREW BU engine
in a possibly simplified version of RACSA (see http://www.dfki.de/racsa/sources
). |
|
|
|
|
Maintained by Bruce Spencer