FuzzySQL
FuzzySQL is a powerful extension to the Structured Query Language (the defacto standard for accessing and maintaining data within a relational database system – as well as many row and column-oriented non-relational systems such as spreadsheets and many flat files). Conventional SQL joins tables and screens (or selects) rows based on comparisons using Boolean Logic and ordinary arithmetic. As an example,
Select projects
From project_database
Where budget > 1000
And duration < 30
And times_revised > 20
And StartDate >= “10/10/04”;
The relationships in the query leave little room for flexibility. If any one of the Where conditions is false, then that instance in the database is not selected. Such queries are, therefore, very brittle. FuzzySQL allows us to define semantic concepts on data elements. Thus we can define, for Budget, as an example, what values are Low, Medium, and High, The range of these values can overlap in a natural way, so that a value can be Low to some degree and also Medium to some degree. Using these fuzzy semantics we can now re-write the query as,
Select projects
From project_database
Where budget is High
And duration is Short
And times_revised is
rather Large
And StartDate is
above around( “10/10/04”);
FuzzySQL is built into the Scianta Data Explorer and is also available as an integrated and coherent collection of Java J2EE classes consisting of the abstract classes for general data adapters, the fuzzy set definition, management, and evaluation services, a fuzzy semantic net manager, the fuzzy full and partial equi-join engine, and the outcome record set ranking and filtering server.

For a more comprehensive overview of the features and capabilities of FuzzySQL as well as a discussion of Uniform Data Adapters see,
|