Skip to content

A Python library for PRUF, a meaning representation and manipulation language for approximate reasoning purposes, proposed by Zadeh.

License

Notifications You must be signed in to change notification settings

ashkihotah/pyPRUF

Repository files navigation

pyPRUF: Possibilistic Relational Universal Fuzzy

Read the Docs (version) GitHub Release GitHub License

pyPRUF is a simple Python library implementation of the PRUF (Possibilistic Relational Universal Fuzzy) framework proposed by Lotfi A. Zadeh.

PRUF was an informal and incomplete mathematical framework, proposed by Lotfi A. Zadeh in his paper, which extended classical relational algebra theory of databases to a fuzzy-like relational algebra theory by integrating it with the multi-valued fuzzy logic and fuzzy set theory to handle uncertainty and imprecision in reasoning processes.

This library provides tools and utilities for creating, manipulating, and reasoning with fuzzy sets in the context of possibilistic logic. In addition to possibility qualifications, this tool can be used, also, to perform truth and probability qualifications (as defined in the paper).

At the moment, this library provides facilities that manage only discrete fuzzy sets however, it is designed in such a way that it can easily be expanded in the future to also handle continuous fuzzy sets.

*At present, pyPRUF is still in its intial stages of development. This library could be improved in many ways and, time to time, it will be done!*😊

It is recommended to have or obtain a solid foundation of knowledge in fuzzy logic and fuzzy set theory before reading the docs.

Key Features

  1. Fuzzy Logic
    1. t-norms, t-conorms and negations
    2. Linguistic Modifiers
  2. Fuzzy Relational Algebra
    1. Discrete Fuzzy Sets as Fuzzy Relations
    2. Union, Intersection and Difference
    3. Cartesian Product and Natural Join
    4. Selection and Particularization
    5. Renaming and Projection
    6. Extension Principle
    7. Reorder and extra methods
  3. Translation Rules
    1. Collapsing DiscreteFuzzySets
    2. Type I (Modification): Apply Linguistic Modifiers
    3. Type II (Composition): Cylindrical Extension
    4. Type III (Quantification): Normal / Mean Cardinality and Proportion
    5. Type IV (Qualification): Consistency and Compatibility
  4. Some Continuous Fuzzy Set facilities:
    1. Standard Membership Functions
    2. Temporary Implementation of some methods

WARNING: A python version higher than 3.11 is required.

Installation

Installing pyPRUF is straightforward. You can install it via pip:

pip install pyPRUF

License

pyPRUF is open-source and distributed under the GNU Lesser General Public License (LGPL) - see the LICENSE file for details.

Contributing

We welcome contributions from the community! If you'd like to contribute to pyPRUF, contact us.

Releases

No releases published

Packages

No packages published

Languages