This post started life in an elevator, as a conversation with someone who has been working with Intelligent Advisor for about a year now, and who struggled a bit with Entities and Relationships, but who generally speaking was quite comfortable with building rules and calculations. The business had presented a new requirement, and upon seeking advice from a colleague, it became clear that Temporal Reasoning was needed.
The individual was, to put it simply, quite stressed. Temporal reasoning had been presented as some sort of magical, dangerous thing. “You probably won’t need this for much, so let’s just leave it for now” was how it had been mentioned originally. And this mystery had grown over time. It’s complicated!!! It’s weird!!!
So I wanted to spend 10 minutes or so chatting about it. And this is the conversation I had, reproduced in WordPress Post format. I hope it helps others who are perhaps wondering about temporal reasoning or are struggling with the concept.
In Intelligent Advisor, everything is temporal, if you want it to be. Consider the following simple rule:
the benefit amount = the number of children * the rate
So, if you have two children and the rate is 300, then the benefit amount is 600. Check it in the Debugger!
Great. But you have two children today, maybe tomorrow you will have three. And didn’t the rate change a few times over the years?. Both of these changes illustrate the fact that your rule, as it currently stands, works fine for static values – but these values change over time. So what does it take to change your rule into a magic, wonderful temporal rule?
Nothing.
Your rule remains as it is. The input data and the output data change. So let’s do it. Change the input information for the number of children (feel free to change the dates or number of children).

In the above example, I’ve added three children (who are now most definitely adults!) according to their dates of birth. The number of children starts at 0, and continues from there. So now our benefit amount looks like this, assuming that the rate does not change :

The benefit amount has become (tada!) a temporal attribute. Not really. It’s the attribute value that is now temporal. Your attribute could always handle it, you just didn’t use it before. Now let’s go and change the rate as well. Edit the rate input value in the Debugger:

Obviously feel free to change the dates and the rate values. Now your rule is 100% temporal – two sets of input values, and a set of output values. No rule modification required. And that’s the beauty of Intelligent Advisor reasoning – whether you need temporal reasoning or not, it’s right there ready to go.
Thanks for reading and see you soon! If you want to formalize your Temporal Reasoning learning experience, check out our new Oracle Intelligent Advisor Temporal Reasoning training class. In the meantime, here are hopefully some more relevant articles on the same subject.