PLN rules to deal with Allen Interval Algebra composition

As outlined by @bgoertzel [here](https://groups.google.com/forum/#!topic/opencog/A6ruhhF4Ek0), I created PLN rules to deal with Allen Interval Algebra composition as explained [here](http://www.ics.uci.edu/~alspaugh/cls/shr/allen.html). Based on a look-up table listing all the composition outputs, a rule is generated which takes the required links as input and outputs the specified relations. In total, there are 169 such rules. I guess this is the result envisioned by Ben. I'm looking forward to feedback and advice. Keyvan's fuzzy Allen Interval Algebra implementation contains a composition folder as well, but -- without a README -- I wasn't yet able to understand its purpose or how to use the framework that Keyvan has created.
@cosmoharrigan, how would you design such a BindLink?
Since the final inference will be
```
(EvaluationLink (stv 1.000000 0.989841)
  (PredicateNode "breathe@7f5b37e8-e4b3-4335-a06b-68af470cf354") ; [350]
  (ListLink (stv 1.000000 0.000000)
    (ConceptNode "Socrates@46ec3d0f-4535-4d01-87b7-84ef65c25a23") ; [217]
    (ConceptNode "air@9bfe790d-5446-4219-be74-845c0d145fe1") ; [355]
  ) ; [922]
) ; [388]
```
We want to capture exactly this output, nothing else.
I came up with this, but this won't work since the inference doesn't involve the general concepts but the specific instances with their handle ids.
```
(BindLink
    (ImplicationLink
        (EvaluationLink
            (PredicateNode "breathe")
            (ListLink
                (ConceptNode "Socrates")
                (ConceptNode "air")))
        (ExecutionLink
            (GroundedSchemaNode "scm: display 'Inference found!'")))
```
How are we able to anticipate them? Do we need variables for this?