10 research outputs found

    A Fuzzy Logic Programming Environment for Managing Similarity and Truth Degrees

    Full text link
    FASILL (acronym of "Fuzzy Aggregators and Similarity Into a Logic Language") is a fuzzy logic programming language with implicit/explicit truth degree annotations, a great variety of connectives and unification by similarity. FASILL integrates and extends features coming from MALP (Multi-Adjoint Logic Programming, a fuzzy logic language with explicitly annotated rules) and Bousi~Prolog (which uses a weak unification algorithm and is well suited for flexible query answering). Hence, it properly manages similarity and truth degrees in a single framework combining the expressive benefits of both languages. This paper presents the main features and implementations details of FASILL. Along the paper we describe its syntax and operational semantics and we give clues of the implementation of the lattice module and the similarity module, two of the main building blocks of the new programming environment which enriches the FLOPER system developed in our research group.Comment: In Proceedings PROLE 2014, arXiv:1501.0169

    String-based Multi-adjoint Lattices for Tracing Fuzzy Logic Computations

    Get PDF
    Classically, most programming languages use in a predefined way thenotion of “string” as an standard data structure for a comfortable management of arbitrary sequences of characters. However, in this paper we assign a different role to this concept: here we are concerned with fuzzy logic programming, a somehow recent paradigm trying to introduce fuzzy logic into logic programming. In this setting, the mathematical concept of multi-adjoint lattice has been successfully exploited into the so-called Multi-adjoint Logic Programming approach, MALP in brief, for modeling flexible notions of truth-degrees beyond the simpler case of true and false. Our main goal points out not only our formal proof verifying that stringbased lattices accomplish with the so-called multi-adjoint property (as well as its Cartesian product with similar structures), but also its correspondence with interesting debugging tasks into the FLOPER system (from “Fuzzy LOgic Programming Environment for Research”) developed in our research group

    Analyzing Fuzzy Logic Computations with Fuzzy XPath

    Get PDF
    Implemented with a fuzzy logic language by using the FLOPER tool developed in our research group, we have recently designed a fuzzy dialect of the popular XPath language for the flexible manipulation of XML documents. In this paper we focus on the ability of Fuzzy XPath for exploring derivation trees generated by FLOPER once they are exported in XML format, which somehow serves as a debugging/analizing tool for discovering the set of fuzzy computed answers for a given goal, performing depth/breadth-first traversals of its associated derivation tree, finding non fully evaluated branches, etc., thus reinforcing the bi-lateral synergies between Fuzzy XPath and FLOPER

    Automatic Proving of Fuzzy Formulae with Fuzzy Logic Programming and SMT

    Get PDF
    In this paper we deal with propositional fuzzy formulae containing severalpropositional symbols linked with connectives defined in a lattice of truth degrees more complex than Bool. We firstly recall an SMT (Satisfiability Modulo Theories) based method for automatically proving theorems in relevant infinitely valued (including Łukasiewicz and G¨odel) logics. Next, instead of focusing on satisfiability (i.e., proving the existence of at least one model) or unsatisfiability, our interest moves to the problem of finding the whole set of models (with a finite domain) for a given fuzzy formula. We propose an alternative method based on fuzzy logic programming where the formula is conceived as a goal whose derivation tree contains on its leaves all the models of the original formula, by exhaustively interpreting each propositional symbol in all the possible forms according the whole setof values collected on the underlying lattice of truth-degrees

    A Survey of Fuzzy Systems Software: Taxonomy, Current Research Trends, and Prospects

    Get PDF
    Fuzzy systems have been used widely thanks to their ability to successfully solve a wide range of problems in different application fields. However, their replication and application require a high level of knowledge and experience. Furthermore, few researchers publish the software and/or source code associated with their proposals, which is a major obstacle to scientific progress in other disciplines and in industry. In recent years, most fuzzy system software has been developed in order to facilitate the use of fuzzy systems. Some software is commercially distributed, but most software is available as free and open-source software, reducing such obstacles and providing many advantages: quicker detection of errors, innovative applications, faster adoption of fuzzy systems, etc. In this paper, we present an overview of freely available and open-source fuzzy systems software in order to provide a well-established framework that helps researchers to find existing proposals easily and to develop well-founded future work. To accomplish this, we propose a two-level taxonomy, and we describe the main contributions related to each field. Moreover, we provide a snapshot of the status of the publications in this field according to the ISI Web of Knowledge. Finally, some considerations regarding recent trends and potential research directions are presentedThis work was supported in part by the Spanish Ministry of Economy and Competitiveness under Grants TIN2014-56633-C3-3-R and TIN2014-57251-P, the Andalusian Government under Grants P10-TIC-6858 and P11-TIC-7765, and the GENIL program of the CEI BioTIC GRANADA under Grant PYR-2014-2S

    Programación lógica difusa para la gestión flexible de documentos XML. (Fuzzy Logic Programming for the Flexible Management of XML Documents)

    Get PDF
    Esta tesis presenta una extensión del popular lenguaje XPath, que ofrece respuestas una lista de respuestas ordenadas a una consulta flexible aprovechando las variantes difusas de los operadores and, or y avg para las condiciones XPath, así como dos restricciones estructurales, llamadas down y deep, para el que se asocia un cierto grado de relevancia. En la práctica, este grado es muy bajo para algunas respuestas obtenidas con la consulta original, y por lo tanto, no deberian ser calculadas, con el fin de aliviar la complejidad computacional del proceso de recuperación de información. Con el fin de mejorar la escalabilidad de nuestro intérprete para hacer frente a archivos XML grandes, hacemos uso de la capacidad de la programación lógica difusa para descartar de forma anticipada los cálculos que conducen a soluciones poco significativas (es decir, con un pobre grado de relevancia según las preferencias expresadas por los usuarios cuando usan el nuevo comando FILTER). Nuestra propuesta se ha implementado en un lenguaje lógico difuso, aprovechando los altos recursos expresivos de este paradigma declarativo para la gestion de ¿umbrales dinámicos¿ de una manera natural y eficiente. Además de utilizar nuestro entorno FLOPER para desarrollar el intérprete, también proponemos su implementación con el lenguaje estándar XQuery. Básicamente, definimos una biblioteca XQuery capaz de gestionar de forma difusa expresiones XPath, de tal manera que nuestro FuzzyXPath puede ser codificado como expresiones XQuery. Las ventajas de nuestro enfoque es que cualquier interprete XQuery puede manipular una versión borrosa de XPath mediante el uso de la biblioteca que hemos implementado. Por otro lado, se presenta un método para depurar consultas XPath, describiendo cómo las expresiones XPath puede manipularse para obtener un conjunto de consultas alternativas que coincidan con un documento XML determinado. Para cada nueva consulta, damos un ¿chance degree¿ que representa una estimación de su desviación con respecto a la expresión inicial. Nuestro trabajo se centra en proporcionar a los programadores un repertorio de alternativas (que contienen nuevos comandos como las etiquetas ¿JUMP/DELETE/SWAP¿) que se pueden utilizar para obtener mas respuestas. Nuestro depurador es capaz, de la misma manera que el intérprete, de gestionar grandes documentos XML haciendo uso del comando FILTER que ignora de forma anticipada cálculos que conducen a soluciones no significativas (es decir, con un ¿chance degree¿ muy rebajado, según las preferencias del usuario). El punto clave, nuevamente, es la capacidad natural para realizar ¿umbralizacion dinámica¿ que ofrece el lenguaje lógico difuso usado para implementar la herramienta, conectando asi de alguna manera con el llamado "top-k answering problem" muy conocido en la lógica difusa y el soft-computing (o computación flexible). En cuanto a nuevas aplicaciones no estándares, en el último bloque de esta tesis reforzamos las sinergias bilaterales entre FuzzyXPath y FLOPER. En particular, nos ocupamos de fórmulas proposicionales difusas que contienen varios símbolos proposicionales vinculados con conectivos definidos en un retículo de grados de verdad más complejos que Bool. En primer lugar, recordamos un método basado en SMT (Satisfiability Modulo Theories) difuso para demostrar automáticamente teoremas en relevantes lógicas con infinitos valores (incluyendo a las de ¿ukasiewicz y Gödel ). A continuación, en lugar de centrarnos en cuestiones de satisfactibilidad (es decir, demostrar la existencia de al menos un modelo) como normalmente se hace en un entorno SAT/SMT, nuestro interés se traslada al problema de encontrar un conjunto de modelos (sobre un dominio finito) para una fórmula difusa dada. Reutilizaremos un método anterior basado en la programación lógica difusa donde la fórmula se concibe como un objetivo de un árbol de derivación, proporcionado por nuestra herramienta FLOPER, que contiene en sus ramas todos los modelos de la fórmula original, junto con otras interpretaciones (obtenidas tras interpretar de forma exhaustiva cada símbolo proposicional de todas las formas posibles con respecto a un conjunto de valores recogidos en un retículo subyacente de grados-deverdad). A continuación utilizamos la capacidad de la herramienta FuzzyXPath para explorar estos árboles de derivación una vez exportados a formato XML, con el fin de detectar automáticamente si la fórmula es una tautología, satisfactible o una contradicción. Conclusions and Future Work In this thesis we have described the foundations and implementation of a flexible extension based on fuzzy logic programming of the well-known XPath language. The new FuzzyXPath dialect takes profit of the underlying source MALP language for easily modeling a wide range of flexible operators representing different versions of conjunctions, disjunctions and other highly expressive hybrid operators for retrieving data from XML documents, as well as for constraining queries with structural and thresholding conditions. We have shown with examples how FuzzyXPath is able to express queries in which user preferences are encoded as combination of the defined flexible operators, as well as how the language ranks answers according to them. We have described the implementation which has been coded as a set of MALP rules developed under the FLOPER system. We have shown how the operators defined in FuzzyXPath have a correspondence in MALP, and how MALP is used to compute ranked answers. The main element of the implementation is the adoption of truth value trees for representing truth values in each node of an XML tree, which are used to compute the retrieval status value of each answer. Moreover, FuzzyXPath has been integrated in the MALP framework by providing semantics to fuzzy logic programs that work with trees with truth values. This has required to study the semantics of trees with truth values and operations on them in the context of multi-adjoint logic programming. Additionally, we have studied an XQuery based implementation of our proposed FuzzyXPath . An XQuery library has been implemented enabling the execution of FuzzyXPath expressions in an XQuery interpreter. The implementation in XQuery of FuzzyXPath required to introduce fuzzy connectives in the Boolean language XQuery, as well as represent and work with trees with truth values in XQuery. We have also studied an approach for XPath debugging. The result of the debugging process of a XPath expression is a set of alternative queries, each one associated to a chance degree. We have proposed JUMP, DELETE and SWAP operators that cover the main cases of programming errors when describing a path about a XML document. Our implemented and tested approach has a fuzzy taste in the sense that XPath expressions are debugged by relaxing the shape of path queries with chance degrees. Our debugging technique gives to programmers a chance degree for each proposed alternative by annotating wrong-points on XPath expressions. With regard to performance of the proposed FuzzyXPath language, a fuzzy command for filtering the set of ranked answers in a dynamic way has been studied, in order to reduce the runtime and complexity of computations when dealing with large files. Our idea was to create filters for prematurely disregarding those superfluous computations dealing with non-significant solutions. We have shown benchmarks of performance of our system, improved by dynamic filtering. Additionally, we have shown the mutual benefits between two different fuzzy tools developed in our research group, that is, the FLOPER programming environment and the FuzzyXPath interpreter. Initially FLOPER was conceived as a tool for implementing flexible software applications -as it is the case of FuzzyXPathcoded with the fuzzy logic language MALP and offering options for compiling fuzzy rules to standard Prolog clauses, running goals and drawing execution trees. Such trees, once modeled in XML format inside the proper FLOPER tool, can be then analyzed by the FuzzyXPath interpreter in order to discover details (such as fuzzy computed answers, possible infinite branches and so on) of the computational behavior of MALP programs after being executed into FLOPER. Moreover, we have applied this last capability of FuzzyXPath focusing exclusively on derivation trees associated to fuzzy formulae. As a result, we have presented an automatic technique useful for determining important features of such formulae (tautology, contradiction, etc...) by making use of XPath queries with a fuzzy taste. As future work we plan the following research lines. Firstly, we are interested to extend our FuzzyXPath with the handling of text content in the same line as Fulltext XPath [CDH+11]. In our current proposal, a string used in a query has exactly mach to the content of a node to be included in the answer. Full text XPath makes possible to use ¿fuzzy¿ versions of string matching to which an score is associated. String comparison techniques have been largely studied in many other contexts, and they can be adapted to our work. Also, we would like to extend our FuzzyXPath with other fuzzy logic mechanism (vagueness, similarity, among others). Path and content matching in our proposed FuzzyXPath are merely syntactic, however using vague concepts and enabling similarity can lead to better results. In this line, we also find that MALP and FLOPER can be used in ontologies and the Semantic Web, following [Str05b, LS08, For11], making possible a semantic based matching of paths and content. Additionally, we are interested in top-k answering. Top-k answering has been already studied for fuzzy logic programming [SM12], and can be adapted to FLOPER. Top-k answering determines the top k answers to a query without computing the -usually wider, possibly infinite- whole set of solutions, which is strongly related with the FILTER command. Finally, we are interested to incorporate more mechanisms of searching, ranking, debugging and filtering to the standard XQuery language. Extensions of the proposed XQuery library can be implemented in the future to include other fuzzy mechanisms (vagueness, similarity, etc), as well as XQuery debugging (JUMP, DELETE and SWAP), and filtering (including Top-k answering
    corecore