Пример #1
0
Context *ContextSprout(Context *parent, Obj *sproutcon, PNode *sproutpn,
                       Context *next)
{
  Context	*cx;
  cx = CREATE(Context);

  cx->parent = parent;
  cx->sense = parent->sense;
  cx->story_time = parent->story_time;
  TsRangeSetContext(&cx->story_time, cx);
  cx->story_tensestep = parent->story_tensestep;

  cx->last_question = parent->last_question;
  cx->dc = parent->dc;
  cx->next = next;

  TsSetNa(&cx->TsNA);
  cx->TsNA.cx = cx;

  cx->answer = NULL;
  cx->commentary = NULL;
  cx->makes_sense_reasons = parent->makes_sense_reasons;
  cx->not_make_sense_reasons = parent->not_make_sense_reasons;
  cx->reinterp = NULL;
  cx->anaphors = NULL;
  cx->questions = NULL;

  cx->mode = MODE_STOPPED;
  cx->rsn.sense = parent->rsn.sense;
  cx->rsn.relevance = parent->rsn.relevance;
  cx->rsn.novelty = parent->rsn.novelty;

  parent->numchildren++;
  cx->id = parent->id*10L + parent->numchildren;
  cx->numchildren = 0;
  cx->sproutcon = sproutcon;
  cx->sproutpn = sproutpn;

  cx->actors = NULL;

#ifdef notdef
  ContextRepairChildAssertions(parent, cx);
#endif

  cx->actors = ActorCopyAll(parent->actors, parent, cx);

  Dbg(DBGPLAN, DBGDETAIL, "sprouted Context %ld", cx->id);
  if (DbgOn(DBGPLAN, DBGHYPER)) {
    ContextPrint(Log, cx);
  }

  return(cx);
}
Пример #2
0
Context *ContextCreate(Ts *ts, TenseStep tensestep, Discourse *dc,
                       Context *next)
{
  Context	*cx;
  cx = CREATE(Context);

  cx->parent = ContextRoot;
  cx->sense = SENSE_TOTAL;
  TsRangeSetNa(&cx->story_time);
  cx->story_time.startts = *ts;
  cx->story_time.stopts = *ts;
  TsRangeSetContext(&cx->story_time, cx);
  cx->story_time.cx = cx;
  cx->story_tensestep = tensestep;
  cx->actors = NULL;
  cx->last_question = NULL;
  cx->dc = dc;
  cx->next = next;

  TsSetNa(&cx->TsNA);
  cx->TsNA.cx = cx;

  cx->answer = NULL;
  cx->commentary = NULL;
  cx->makes_sense_reasons = NULL;
  cx->not_make_sense_reasons = NULL;
  cx->reinterp = NULL;
  cx->anaphors = NULL;
  cx->questions = NULL;

  cx->mode = MODE_STOPPED;
  ContextRSNReset(cx);

  cx->id = ContextNextTopId;
  cx->numchildren = 0;
  ContextNextTopId++;
  cx->sproutcon = NULL;
  cx->sproutpn = NULL;

  Dbg(DBGPLAN, DBGDETAIL, "created Context %ld", cx->id);

  return(cx);
}
Пример #3
0
void TsInit()
{
  TsSetNa(&TsNA);
}