caelan/pddlstream

What is :rule ?

ShrutheeshIR opened this issue · 1 comments

In the stream file for the discrete TAMP problem example, the first few lines read.

  (:rule
    :inputs (?q ?p)
    :domain (Kin ?q ?p)
    :certified (and (Conf ?q) (Pose ?p))
  )

If I comment this out, no plan is found. I'm wondering what is the use of this :rule and what it does

A :rule is a test stream (a stream without :outputs) that always succeeds (returns True). As such, it can be thought of an inference rule. This example models the rule that all pairs of values ?q, ?p that satisfy (Kin ?q ?p) are respectively configurations and poses.