Over the past years, we have witnessed massive production of small electronic consumer devices, such as cell phones, set-top boxes, home network devices, and MP3 players, just to name a few. Device sizes get smaller, and behaviors get more and more complex. In order to survive in the current competitive market, vendors now must scramble to offer more variety of innovative products faster than ever before because most of modern consumer electronic devices have comparatively low run rates and/or short market windows.
One solution of reducing the development cost and time is providing a more expressive and intuitive specification language for describing the behaviors of products. One promising specification language is an agent architecture comprising of logical theories because logic is close to our natural languages and it has the ability to represent varieties of domains and problems that we are interested in; and many agent models, such as belief-desire-intention (BDI) model of rational agency, subsumption architecture, and BOID architecture, are suitable for specifying complex autonomous behaviors.
Classical logics and traditional specification languages for specifying electronic chips, such as C, Verilog, VHDL (VLSI Hardware Description Language), MTL (Metric-Temporal Logic), are rigid in the sense that whenever minor modifications have to be made to a system specification, the whole system specification has to be tested and recompiled to resolve any inconsistency and conflicts introduced by the modifications. This is problematic when multiple parties are involved in specifying the same system because of conflicting specifications introduced by different parties. It is also difficult to perform incremental development or partial update. Nonmonotonic logics have a unique feature that can resolve conflicts in logical theories. This feature is essential for collaborative and incremental system development. Many interpreted languages, such as Visual Basic, MATLAB, Perl, and Python, can provide a runtime environment that does not require a lengthy compilation step.
However, interpreted languages are computationally inefficient. Most logical languages (including nonmonotonic logic) are computationally too complex to be suitable for specifying real-time systems and building real-time systems using the specifications. Despite of further efforts (e.g., use of logic in robot control, layered approaches, argumentation systems, possibilistic logics for expressing varying degrees of belief) to overcome limitations of logic, application of logic is still limited, in particular for building real-time systems, because of their computational inefficiency and limitations to satisfy the following essential features for specifying smart real-time control system: (a) expressing behaviors, (b) expressing varying degrees of confidence and task specificity, and (c) robustness for mission critical applications as they require sophisticated theorem provers running on a high powered CPU.