Meld is a logic-based declarative programming language that operates on facts using a collection of production rules. A Meld program is a collection of rules for deriving, or proving, new facts by combining existing ones. Using a process called forward chaining, Meld starts with a set of base facts, checks them against the rules, and sees if any new facts can be generated. These are then added to the collection of facts and the process continues iteratively until all provable facts under the given system of rules and base facts are generated. This forward chaining and generation of facts constitutes the execution of a Meld program.
The meld logic itself makes no presumptions on the meaning of facts, leaving this to programmer. However, in practice, it is useful to maintain certain conventions. Furthermore, to make the language useful in a robotics context, the generation of some facts can have side effects, permitting robots to move, perform actions, or otherwise affect the physical world.
Base facts reflect physical state, and facts with side effects correspond to the sensing and actuation primitives available on the system. Changes to base facts, due to actuation, for example, will trigger the generation of new facts as well as the deletion of old facts that can no longer be proved.
No comments:
Post a Comment