Foundations of logic programming
Foundations of logic programming
A first course in fuzzy logic
Likelog: a logic programming language for flexible data retrieval
Proceedings of the 1999 ACM symposium on Applied computing
Journal of the ACM (JACM)
Approximate reasoning by similarity-based SLD resolution
Theoretical Computer Science
Proceedings of the Third International Conference on Algebraic and Logic Programming
Similarity relations and fuzzy orderings
Information Sciences: an International Journal
Programming with fuzzy logic and mathematical functions
WILF'05 Proceedings of the 6th international conference on Fuzzy Logic and Applications
Qualified Logic Programming with Bivalued Predicates
Electronic Notes in Theoretical Computer Science (ENTCS)
Qualified Computations in Functional Logic Programming
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
A declarative semantics for clp with qualification and proximity*
Theory and Practice of Logic Programming
Hi-index | 0.00 |
The integration of declarative paradigms such as functional-logic and fuzzy-logic programming seems to be an interesting challenge in the design of highly expressive declarative languages where mathematical functions cohabit with fuzzy logic features. Starting with two representative languages from both settings, namely Curry and Likelog, we have recently proposed an hybrid dialect where a set of (Curry) rewrite rules together with a set of (Likelog) similarity equations can be safely executed by means of a fuzzy variant of needed narrowing. This paper is devoted to show some important properties enjoyed by the new narrowing strategy. Firstly, we prove the termination of the process which determines the set of tuples that enable new narrowing steps for a given term. Termination in the fuzzy context is not trivial since, apart that it is required to compute the transitive closure of the initial set of similarity equations, it is also mandatory to ensure the finiteness of the set of recursive calls performed by the narrowing strategy, as well as that each call never falls into an infinite loop. From here, we prove two important (somehow complementary) properties, that we call crispness and fuzziness, respectively. The first one implies that the new strategy is (at least) conservative with respect to the original one of needed narrowing, in the sense that each tuple obtained in the crisp case, is also replicated (with the maximum truth degree) in the fuzzy case. On the other hand, fuzziness means the maximality of the new strategy when exploiting (as much as possible) the similarity relations collected in a given program.