While rules-based systems are often used as knowledge-based expert systems, it should be clear from this application that a rules-based system could also be used for simple programming tasks . When we program, we encode our knowledge about the problem at hand into the syntax and semantics of the programming language. Rules-based systems can also be used to solve interesting problems, such as the fault-tolerance application discussed above for sensor management. One of the key differences between the two approaches is that when programming in a traditional language, we encode our knowledge serially into the application using the constructs at hand. Rules-based systems require instead a mapping of the knowledge about the application into rules that define the consequents and antecedents . In some ways, this can be easier and more readily understandable.