Bousi∼Prolog: Design and implementation of a proximity-based fuzzy logic programming language - Julián-Iranzo, Pascual; Sáenz-Pérez, Fernando (Expert systems with applications, 2023)
The fuzzy logic programming language Bousi∼Prolog extends Prolog with a weak unification algorithm based on proximity relations and truth degree annotations. The weak unification algorithm makes the search for answers more flexible, while rule annotations make possible knowledge-based applications where the rules may be uncertain. In this paper, after recalling the main concepts supporting this language, we detail its design and implementation. We describe the implementation of its operational semantics, which is based on compiling programs and queries into Prolog, and those important features that makes it more applicable: fuzzy sets, integration with WordNet and efficiency techniques. The result is a high-level open-source implementation of the Bousi∼Prolog system, written on top of SWI-Prolog, and publicly available. We also summarise some experiments measuring its performance compared to other systems. •The fuzzy logic programming language Bousi∼Prolog is described.•Proximity relations, weak unification and graded rules allow for flexible queries.•The implementation of the operational semantics is described.•Novel efficiency techniques are applied at compile-time.•A performance comparison with other systems shows its relevance.