Abstract

During the last years, we have developed the FLOPER platform for providing a practical support to the so-called Multi-Adjoint Logic Programming approach (MALP in brief), which represents an extremely flexible framework into the Fuzzy Logic Programming arena. Nowadays, FLOPER is useful for compiling (to standard Prolog code), executing and debugging (by drawing execution trees) MALP programs, and it is ready for being extended in the near future with powerful transformation and optimization techniques designed in our research group during the recent past. Our last update consists in the integration of a graphical interface for a comfortable interaction with the system which allows, among other capabilities, the use of projects for packing scripts and auxiliary definitions of fuzzy sets/connectives, together with fuzzy programs and their associated lattices modeling truth-degrees beyond the simpler crisp case ﹛true;false﹜.

Highlights

  • Logic programming [1] has been widely used for problem solving and knowledge representation in the past

  • In order to explain the tool, we have structured this paper as follows: in Section 2 we present the essence of MALP, including syntax, procedural semantics, and some interesting computational cost measures defined for this programming style; the core of this paper is represented by Section 3, which is dedicated to explain the main capabilities of the system such as running/debugging MALP programs, managing lattices and dealing with additional fuzzy concepts; before finalizing in Section 5, we detail in Section 4 how the use of sophisticated multi-adjoint lattices are very useful for coding flexible real-world applications and obtaining low-cost traces at execution time

  • The experience acquired in our research group regarding the design of techniques and methods based on fuzzy logic in close relationship with the so-called multi-adjoint logic programming approach, has motivated our interest for putting in practice all our developments around the design of the environment, which offers comfortable resources for programmers trained in declarative languages

Read more

Summary

Introduction

Logic programming [1] has been widely used for problem solving and knowledge representation in the past. Admissible steps (a generalization of the classical modus ponens inference rule) are systematically applied by a backward reasoning procedure in a similar way to classical resolution steps in pure logic programming, returning a computed substitution together with an expression where all atoms have been exploited This last expression is interpreted under a given lattice during what we call the interpretive phase, returning a pair truth_degree; substitution which is the fuzzy counterpart of the classical notion of computed answer traditionally used in LP. In order to explain the tool, we have structured this paper as follows: in Section 2 we present the essence of MALP , including syntax, procedural semantics, and some interesting computational cost measures defined for this programming style; the core of this paper is represented by Section 3, which is dedicated to explain the main capabilities of the system such as running/debugging MALP programs, managing lattices and dealing with additional fuzzy concepts; before finalizing in Section 5, we detail in Section 4 how the use of sophisticated multi-adjoint lattices are very useful for coding flexible real-world applications and obtaining low-cost traces at execution time

Multi-Adjoint Logic Programming
MALP Syntax
MALP Procedural Semantics
Interpretive Steps and Cost Measures
The “Fuzzy LOgic Programming Environment for Research”
Running Programs
Execution Trees
Managing Lattices
Linguistic Modifiers and Linguistic Variables
Extending Lattices and Declarative Traces
Findings
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call