In this paper we present the main features and implementation details of a programming language that we call Bousi~Prolog. It can be seen as an extension of Prolog able to deal with similarity-based fuzzy unification ("Bousi" is the Spanish acronym for "fuzzy unification by similarity"). The main goal is the implementation of a declarative programming language well suited for flexible query answering. The operational semantics of Bousi~Prolog is an adaptation of the SLD resolution principle where classical unification has been replaced by an algorithm based on similarity relations defined on a syntactic domain. A similarity relation is an extension of the standard notion of equivalence relation and it can be useful in any context where the concept of equality must be weakened. Hence, the syntax of Bousi~Prolog is an extension of the Prolog's language: in general, a Bousi~Prolog program is a set of Prolog clauses plus a set of similarity equations. © 2009 Elsevier B.V. All rights reserved.
Julián-Iranzo, P., Rubio-Manzano, C., & Gallardo-Casero, J. (2009). Bousi~Prolog: a Prolog Extension Language for Flexible Query Answering. Electronic Notes in Theoretical Computer Science, 248, 131–147. https://doi.org/10.1016/j.entcs.2009.07.064