# OpenCogPrime:PredictiveAttraction

## Predictive Implication and Attraction

This page briefly reviews the notions of predictive implication and predictive attraction, which are critical to many aspects of OCP dynamics including goal-oriented behavior.

Define

```Attraction A B <s>
```

as P(B|A) - P(B|~A) = s, or in node and link terms

```s = (Inheritance A B).s - (Inheritance ~A B).s
```

For instance

```Attraction pig fat.s = (Inheritance pig fat).s - (Inheritance ~pig fat).s
```

Relatedly, in the temporal domain, we have the link type PredictiveImplication, where

```PredictiveImplication A B <s>
```

roughly means that s is the probability that

```Implication A B <s>
```

holds and also A occurs before B. More sophisticated versions of PredictiveImplication come along with more specific information regarding the time lag between A and B: for instance a time interval T in which the lag must lie, or a probability distribution governing the lag between the two events.

We may then introduce

```PredictiveAttraction A B <s>
```

to mean

```s = (PredictiveImplication A B).s - (PredictiveImplication ~A B).s
```

For instance

```(PredictiveAttraction kiss_Ben be_happy.s = (PredictiveImplication kiss_Ben be_happy).s - (PredictiveImplication ~kiss_Ben be_happy).s
```

This is what really matters in terms of determining whether kissing Ben is worth doing in pursuit of the goal of being happy, not just how likely it is to be happy if you kiss Ben, but how differentially likely it is to be happy if you kiss Ben.

Along with predictive implication and attraction, sequential logical operations are important, represented by operators such as SequentialAND, SimultaneousAND and SimultaneousOR. For instance:

```PredictiveAttraction
SequentialAND
Teacher says 'fetch'
I get the ball
I bring the ball to the teacher
I get a reward
```

combines SequentialAND and PredictiveAttraction. In this manner, an arbitrarily complex system of serial and parallel temporal events can be constructed.