Prolog
Shaalan, K., M. Rafea, and A. Rafea,
"KROL: a knowledge representation object language on top of Prolog",
Expert Systems with Applications, vol. 15, no. 1, pp. 33-46, jul, 1998.
Abstract{This paper presents a knowledge representation object language (KROL) on top of Prolog. KROL is aimed at providing the ability to develop second-generation expert systems. The main aspects of KROL include multi-paradigm knowledge representation (first-order predicate logic, objects, rules), inference mechanisms at different levels of granularity, explanation facility, object-oriented database management module, and user-friendly interface. KROL has sufficient expressive power to be used in applying demanding knowledge-based modeling methodologies, such as KADS and Generic Task, which are the major landmarks of the second-generation expert systems technology. Four successful agricultural expert systems have been developed in the last 6 years using KROL. To demonstrate the language capabilities, we present an example of disorder diagnosis.}
Shaalan, K.,
"Extending Prolog for Better Natural Language Analysis",
1st Conference on Language Engineering, Cairo, Egypt, Ain Shams University, pp. 225–236, March, 1998.
AbstractProlog supports natural language parsing with a clean semantics and additional constructs such as definite clause grammars (DCGs). While it provides excellent computational support, we claim it does not provide good notation that increases the readability and maintainability of natural language analysis programming. In this paper we explore an alternative solution: a general notational extension to Prolog programs that provides for concise expression of definitions. This notational extension results in a powerful and convenient logic programming language that fits into natural language analysis programming. Programs translate to Prolog in a way similar to DCGs. That is to say, they have a specific syntax and can be loaded and expanded to Prolog code. This expansion is transparent to the user. To demonstrate the language capabilities, we present an example for an Arabic morphological analyzer.