We present CLOUDS, which stands for C++ Library Organizing Uncertainty in Database Systems, a tool that allows the creation of fuzzy reasoning systems over classic, nonfuzzy, relational databases. CLOUDS can be used in three flavors: CLOUDS API, a C++ API; CLOUDS-L, a compiled language; and CLOUDSQL, a fuzzy extension to SQL queries (ANSI, 1992). It was developed using the objectoriented paradigm and has an extensible architecture based on a main control system that manages different models, and runs queries and commands defined in them. As a test, it was incorporated into a geographic information system and used to analyze epidemiological data.
Key Terms in this Chapter
Solution Variable: In CLOUDS, a solution variable is a linguistic variable that appears in the consequent part of an IF-THEN rule.
CLOUDS-L: The command language of CLOUDS that can be directly translated to API commands.
GIS: Geographic Information Systems. Systems that usually allow the user to manipulate data that is georeferenced and present it using maps.
CLOUDSQL: The SQL-like interface of CLOUDS.
Linguistic Term: A subjective value that can be attributed to a linguistic variable, such as “young” and “mature” for “age.”
API: Application Programming Interface. A source-code interface that a software library provides for programmers to call within their programs and access its services.
Linguistic Variable: A variable, or label, that represents some characteristic of an element, such as “age” for persons or “temperature” for water. It is a variable that takes words, known as linguistic terms, as values. See a formal definition in the first pages of this chapter.
Design Pattern: A design pattern (Gamma, 1995) is a design structure that solves a recurrent problem in some area, such as programming.
CLOUDS: C++ Library Organizing Uncertainty in Database Systems. A library and user interface that act as a fuzzy front-end to a relational database management system.