PredictiveImplicationLink

From OpenCog
Jump to: navigation, search

A type of Link used to define a predictive implication, for example

PredictiveImplicationLink
  PredicateNode "JumpOffCliff"
  PredicateNode "Dead"

Formats

PredictiveImplicationLink
  <time-interval>
  <implicant-predicate>
  <implicand-predicate>

where <time-interval> is a TimeIntervalLink or a TimeNode.

Just like with ImplicationLink sugar syntax can be used to put the variable declaration at the top of the PredictiveImplicationLink

PredictiveImplicationLink
  <variable-declaration>
  <time-interval>
  <implicant-predicate-body>
  <implicand-predicate-body>

Additionally, a version could have no time interval (as the one in example) and would be equivalent to using time interval [1, +inf(.

Semantics

Without sugar syntax

PredictiveImplicationLink
  T
  P
  Q

where T is

TimeIntervalLink
  TimeNode t1
  TimeNode t2

or

TimeNode t

is equivalent

ImplicationLink
  VariableList  
    TypedVariableLink
      VariableNode "$t"
      TypeNode "TimeNode"   
  AtTimeLink
    VariableNode "$t"
    P
  AtTimeLink
      PlusLink
        VariableNode "$t"
        T
      Q

With sugar syntax

PredictiveImplicationLink
  V
  T
  P-body
  Q-body

where T is

TimeIntervalLink
  TimeNode t1
  TimeNode t2

or

TimeNode t

is equivalent

ImplicationLink
  VariableList
    V  
    TypedVariableLink
      VariableNode "$t"
      TypeNode "TimeNode"
  AtTimeLink
    VariableNode "$t"
    P-body
  AtTimeLink
      PlusLink
        VariableNode "$t"
        T
      Q-body