Пример #1
0
 /**
  * {<S <=> M>, <M <=> P>} |- <S <=> P>
  *
  * @param term1 Subject of the new task
  * @param term2 Predicate of the new task
  * @param belief The first premise
  * @param sentence The second premise
  * @param figure Locations of the shared term in premises
  */
 static void resemblance(Term term1, Term term2, Judgment belief, Sentence sentence, int figure) {
   if (RDFStatement.invalidStatement(term1, term2)) {
     return;
   }
   RDFStatement st1 = (RDFStatement) belief.getContent();
   RDFStatement st2 = (RDFStatement) sentence.getContent();
   TruthValue truth = null;
   BudgetValue budget;
   Task task = Memory.currentTask;
   if (sentence instanceof Question) {
     budget = BudgetFunctions.backward(belief.getTruth());
   } else {
     if (sentence instanceof Goal) {
       truth = TruthFunctions.desireStrong(sentence.getTruth(), belief.getTruth());
     } else {
       truth = TruthFunctions.resemblance(belief.getTruth(), sentence.getTruth());
     }
     budget = BudgetFunctions.forward(truth);
   }
   TemporalValue order1 = st1.getOrder();
   TemporalValue order2 = st2.getOrder();
   TemporalValue order = TemporalRules.syllogistic(order1, order2, figure);
   Term statement = RDFStatement.make(st1, term1, term2, order);
   Memory.doublePremiseTask(budget, statement, truth);
 }