Journal: The Knowledge Engineering Review
During the last years, a number of formal specification languages for knowledge-based systems (kbs) have been developed. Characteristic of such systems are a complex knowledge base and an inference engine which uses this knowledge to solve a given problem. Languages for kbs have to cover both these aspects. They have to provide a means to specify a complex and large amount of knowledge and they have to provide means to specify the dynamic reasoning behavior of a kbs. Nethertheless, kbs are just a specific type of software systems. Therefore it seems quite natural to compare formal languages for specifying kbs with formal languages which were developed by the software engineering community for specifying software systems. That is the subject of this paper.