*********************************************
***  Programa 'FQ': Fuzzy Queries         ***
***                 Consultas Difusas     ***
***  Programa cliente:                    ***
***   - SQL  (Structured Query Language)  ***
***   - FSQL (Fuzzy SQL, SQL Difuso)      ***
***  Fichero Leeme.TXT:                   ***
***   - Breve Manual de Usuario de FQ     ***
*********************************************
***  José Galindo Gómez:  Noviembre 1998  ***
*********************************************

# Requisitos de instalación y funcionamiento mínimo:

	- FQ es un programa para Windows 95/98/NT.
	- FQ requiere tener instalado el SGBD Oracle.
	- FQ requiere tener instalados los Oracle Objects
	  (objetos distribuidos por Oracle).
	- Los requisitos Hardware son mínimos, por lo que están
	  supeditados a los requisitos de Oracle.
	- Para usar FSQL (SQL Difuso) requiere el Servidor FSQL,
	  que es un conjunto de paquetes PL/SQL que permiten
	  efectuar consultas en FSQL (programado por el mismo autor).


# Algunas características de FQ:

	- FQ es un sencillo programa Cliente FSQL (Fuzzy SQL).
	- FQ permite efectuar consultas clásicas o difusas a una
	  Base de Datos Difusa o Crisp (clásica) Oracle.
	  El modelo de Base de Datos Relacional Difusa (BDRD)
	  utilizado es el modelo GEFRED/FIRST (ver referencias).
	- FQ permite utilizar el lenguaje FSQL (Fuzzy SQL)
	  que es una extensión del lenguaje SQL, que permite
	  expresar consultas difusas o flexibles (con atributos difusos,
	  condiciones difusas, umbrales de cumplimiento,
          grados de cumplimiento de cada tupla...).
	  Para más datos sobre FSQL y su sintaxis ver las referencias
	  bibliográficas más abajo.
	- FQ también admite consultas en SQL estándar.
	- FQ incorpora menús para insertar en nuestra consulta elementos
	  como: Operadores lógicos, operadores de conjuntos, comparadores...
	- FQ permite mostrar fácilmente las etiquetas lingüísticas
	  definidas para un atributo (columna) concreto.
	- FQ permite mostrar fácilmente los atributos difusos Tipo 3
	  compatibles entre sí, i.e., que pueden ser comparados.
	- Las consultas en FQ serán expresadas en modo texto
	  y en lenguaje SQL o FSQL (Fuzzy SQL, SQL Difuso).
	- FQ solicita login/password para conectarse al SGBD.
	- FQ dispone de un icono que nos permite saber rápidamente si
	  estamos o no conectados al SGBD. Además, al situar el cursor
	  del ratón sobre él nos dirá el usuario que está conectado y
	  el nombre de la Base de Datos.
	- FQ tiene diversas opciones de configuración, teclas de acceso
	  rápido para las acciones más comunes y multitud de ToolTipText
	  (textos explicativos que aparecen al situar el cursor sobre
	  algún objeto u opción concreta).
	- FQ permite usar el portapapeles (Cortar, Copiar y Pegar).
	- FQ permite limitar el número de tuplas a recuperar
	  a un número máximo.
	- FQ tiene dos formas de recuperar las tuplas:
		+ Visualizando las tuplas conforme las recupera (más lento).
		+ Recuperar todas y visualizarlas al final (más rápido).
	- Mientras FQ recupera las tuplas muestra una barra de progreso,
	  el número de tupla que está recuperando y el total a recuperar.
	- FQ permite cancelar una consulta cuando ya está lanzada, de
	  forma que deje de recuperar las tuplas restantes.
	- FQ permite consultar información general de la conexión,
	  del usuario y del Servidor FSQL: roles, privilegios,
          número de sesión, usuario/uid, versión del RDBMS Oracle,
          fecha de creación del usuario, si están instalados los
          paquetes del servidor FSQL, versión del Servidor FSQL,
          número de errores y tiempo empleado por el Servidor FSQL
          en la ultima traducción (sin contar el tiempo de comunicación),
          normas a emplear en CDEG con los operadores lógicos,
          tratamiento de atributos difusos en posiciones inusuales,
          fecha del último uso de Servidor FSQL y de la función FSQL_FIN...
	- FQ tiene un potente buscador de archivos incorporado (F3).
	- FQ permite salvar consultas en ficheros de texto.
	  La extensión por defecto es '.FQL'.
	- FQ permite especificar un nombre de archivo como primer argumento
	  en la línea de comandos. Ejemplo:  FQ consulta.FQL
	  El fichero especificado como argumento será abierto por FQ y
	  situado en su ventana de edición de consultas.
	  Esto permite asociar algunos tipos de ficheros (como los .FQL) al
	  programa FQ, de forma que FQ se abra automáticamente al abrir
	  estos ficheros (con return, doble click...).
	- FQ permite visualizar y salvar en disco la traducción
	  a SQL de una consulta FSQL (esta traducción es hecha por
	  el Servidor FSQL).
	- FQ permite imprimir una consulta SQL/FSQL con el tipo
	  de letra y tamaños empleados.
	- FQ permite imprimir la tabla resultante de una consulta y
	  guardarla en diversos formatos:
		+ Formato imagen .BMP de Alta Calidad
		+ Formato imagen .BMP de Baja Calidad (Blanco y Negro)
		+ Formato tabular de LaTeX (.tex)
		+ Formato HTML para la Web (.htm, .html)
	- La tabla de resultados puede ser cambiada de tipo de letra,
	  color y color del fondo (sobretodo para mejorar su impresión o su
	  grabación a fichero gráfico).
	- FQ permite ordenar las filas de una consulta por el valor de una
	  columna (previamente seleccionada), sin necesidad de usar la
	  clausula ORDER BY. También pueden ordenarse según el orden en el
	  que fueron recuperadas las filas (primera columna de la tabla).
	  Esta opción puede ser muy útil para ordenar los resultados por
	  su grado de cumplimiento.
	- FQ permite alinear los valores de una columna en la posición
	  que deseemos dentro de su celda: Izquierda/Centro/Derecha,
	  Arriba/Centro/Abajo y opción por defecto.
	- FQ permite ampliar/reducir el tamaño de la altura de una fila y de
	  la anchura de una columna. Y permite Activar/Desactivar la opción
	  WordWrap para la división o no de textos en distintas lineas dentro
	  de una celda de la tabla.
	- FQ permite activar/desactivar el mezclador de filas/columnas con igual
	  valor. Esto hace que las filas/columnas con igual valor estén mezcladas
	  de forma que NO se repite dicho valor.
	  Para que esto funcione hay que Activar individualmente las Filas/Columnas
	  en las que deseamos que la mezcla tenga efecto.
	  Esto puede facilitar la visualización de la tabla. Las opciones son:
		+ Mezclador Desactivado (opción por defecto)
		+ Libre
		+ Restringe las Filas
		+ Restringe las Columnas
		+ Restringe ambas
	- FQ permite reescalar el tamaño de la ventana de edición de consultas
	  y la de la tabla resultante de una consulta, con opciones, esta última,
	  para que la ventana ocupe todo el ancho o el alto de la ventana.
	- En la instalación de FQ se crean dos directorios para ejemplos e
	  imágenes respectivamente. Ambos directorios pueden ser borrados
	  junto con su contenido, sin afectar el funcionamiento de FQ.
	- Desde FQ es fácil ejecutar algunos programas de Windows:
		+ Calculadora
		+ Explorador de ficheros
		+ Bloc de Notas (NotePad)
		+ WordPad
	- Desde la ventana de la opción "Acerca de FQ..." (Ctrl-F12),
	  podemos acceder a información general sobre el sistema que
	  se está usando (procesador, memoria...).
	- FQ tiene una opción escondida para ver las 7 Maravillas del
	  Mundo Antiguo y sus datos más importantes.


# Requisitos para efectuar consultas difusas en FSQL:

	- FQ, para consultas difusas en FSQL, requiere
	  tener instalado las tablas de la Base de
	  Metaconocimiento Difuso (FMB): FIRST.
	  Incluso si vamos a consultar con FSQL una base
	  de datos clásica (en ese caso lo mejor es usar SQL).
	- FQ requiere tener instalado el Servidor FSQL, para
	  poder efectuar consultas FSQL.
	  El Servidor FSQL es un conjunto de tablas y procedimientos
	  almacenados (programados en PL/SQL) que nos permite acceder
	  a la Base de Datos con el lenguaje de consulta difuso FSQL.
	- FQ no requiere el Servidor FSQL para efectuar consultas en
	  SQL de Oracle.


# Licencia:

	- FQ es un programa gratuito para investigadores, particulares y
	  empresas, siempre que sea utilizado sin ánimo de lucro.
	  En otro caso, el usuario deberá aportar a una asociación
	  Humanitaria y/o Ecologista el importe que considere justo
	  por la utilización de este producto.
	- Queda totalmente prohibida la venta total o parcial de este
	  producto.


# Referencias Bibliográficas básicas:

  * J.M. Medina, O. Pons, M.A. Vila,
    "GEFRED. A Generalized Model of Fuzzy Relational Data Bases".
    Information Sciences, 76(1-2), 87-109 (1994).

  * J.M. Medina R., ``Bases de Datos relacionales difusas.
    Modelo teórico y aspectos de su implementación''.
    Ph. Doctoral Thesis, University of Granada, May 1994.

  * J. Galindo, J.M. Medina, O. Pons, M.A. Vila, J.C. Cubero,
    "A prototype for a fuzzy relational database".
    Demo session in the 6th International Conference on
    Extending Database Technology, EDBT'98.
    Valencia (Spain), March 1998.

  * J. Galindo, J.M. Medina, O. Pons, J.C. Cubero,
    "A Server for Fuzzy SQL Queries",
    in ``Flexible Query Answering Systems'',
    eds. T. Andreasen, H. Christiansen and H.L. Larsen,
    Lecture Notes in Artificial Intelligence (LNAI) 1495, pp. 164-174.
    Ed. Springer, 1998.
    International Conference on Flexible Query Answering Systems, FQAS'98,
    Roskilde (Denmark), May 1998.

  * J. Galindo, J.M. Medina, M.A. Vila, J.C. Cubero
    "Fuzzy Comparators for Flexible Queries to Databases",
    Sixth Iberoamerican Conference on Artificial Intelligence
    Lisbon, Portugal, October 5-9, 1998.

  * J. Galindo, "TRATAMIENTO de la IMPRECISIÓN en BASES de DATOS
    RELACIONALES: EXTENSIÓN del MODELO y ADAPTACIÓN DE LOS SGBD ACTUALES."
    Ph.D. Tesis, por la Universidad de Granada.
    (actualmente en fase de escritura)


# Agradecimientos: Son muchos los que me han ayudado y no podría
  nombrarlos a todos. Me gustaría agradecer explícitamente la
  colaboración de:

	- Juan Miguel Medina R., por su apoyo, dirección y
	  conocimiento de background.
	- Antonio Caba M., por su interés en resolver mis dudas de VB.
	- M. Carmen Aranda G., por su comprensión y apoyo logístico.
	- Patricia Galindo A., por que, sin ella saberlo, me ha ayudado
	  más que nadie.
