Research Article

Some Criteria of the Knowledge Representation Method for an Intelligent Problem Solver in STEM Education

Algorithm 1

Determine the closure of a set of facts.
Let K = (, , , ) be a knowledge domain as Rela-Ops model, Obj = (Attrs, Facts, EqObj, RulObj) be an object of a concept in , F is a set of facts. This algorithm deduces the closure of set F by Obj, Obj.Closure(F).
Input: Object Obj = (Attrs, Facts, EqObj, RulObj), F is a set of facts.
Output: Obj.Closure(F)
Step 0: Initialize variables
  flag:= true;
  KnownFacts:= F ∪ Obj.Facts;
Step 1. Classify kind of facts in KnownFacts
Step 2. Determine new facts from facts in KnownFacts by using reasoning rules.
Step 3. Search the closure of facts as an object in KnownFacts.
  for fact in KnownFacts do
   if (fact is an object) then
   KnownFacts:= KnownFacts ∪ fact.Attrs;
   end if;
  end do;
Step 4. Search the rule in Obj.EqObj which can be applied based on KnownFacts.
flag:= true;
while (flag! = false) do
  4.1. if (a rule r in Obj.EqObj can be found) then
   r has form:  = h(y1,…,ym) which , h are epressions, xi, yj ⊆ Obj.Attrs (1 ≤ i ≤ n, 1 ≤ j ≤ m)
   Combine facts in Knowfacts for solving equation  = h(y1,…,ym) to determine new attributes.
   Update KnownFacts.
  end if; # 4.1
  4.2. if (cannot be found a rule r ∈ Obj.EqObj) then
   flag:= false;
  end if;
end do;
Step 5. Search the rule in Obj.RulObj which can be applied based on KnownFacts
while (flag! = false) do
  5.1. if (a rule r in Obj.RulObj can be found) then
   r has form: which u(r) ⊆ Obj.Attrs and
   for e in do
    KnownFacts:= KnownFacts ∪ {e};
    if (new facts can be determined from KnownFacts) then
     Determine new facts from facts in KnownFacts by using deduce rules;
    end if;
    if (e is a new object) then
     KnownFacts:= KnownFacts ∪ e.Closure();
     if (new facts can be determined from KnownFacts) then
      Determine new facts from facts in KnownFacts by using deduce rules;
     end if;
    end if;
   end do;
  end if; # 5.1
  5.2. if (cannot be found a rule r ∈ Obj.RulObj) then
  flag:= false;
  end if;
end do; # while
Step 6. Obj.Closure(F):= KnownFacts