Lenguaje de marcado difuso


Fuzzy Markup Language ( FML ) es un lenguaje de marcado de propósito específico basado en XML , que se utiliza para describir la estructura y el comportamiento de un sistema difuso independientemente de la arquitectura de hardware dedicada a alojarlo y ejecutarlo.

FML fue diseñado y desarrollado por Giovanni Acampora durante su Ph.D. en Ciencias de la Computación, en la Universidad de Salerno, Italia, en 2004. La idea original que inspiró a Giovanni Acampora para crear FML fue la necesidad de crear un marco cooperativo de base difusa destinado a controlar automáticamente un entorno de vida caracterizado por una plétora de dispositivos heterogéneos cuyos las interacciones se dedicaron a maximizar el confort humano bajo restricciones de ahorro de energía. Este marco representó uno de los primeros ejemplos concretos de Inteligencia Ambiental. Más allá de esta aplicación pionera, la principal ventaja de utilizar XML para describir un sistema difuso es la interoperabilidad entre hardware y software. De hecho, todo lo que se necesita para leer un archivo FML es el esquema apropiado para ese archivo y un analizador FML. Este enfoque de marcado hace que sea mucho más fácil intercambiar sistemas difusos entre software: por ejemplo, una aplicación de aprendizaje automático podría extraer reglas difusas que luego podrían leerse directamente en un motor de inferencia difusa o cargarse en un controlador difuso. Además, con tecnologías como XSLT , es posible compilar el FML en el lenguaje de programación de su elección, listo para integrarlo en cualquier aplicación que desee. Como declaró Mike Watts en su popular blog Computational Intelligence: [1]

"Aunque la motivación de Acampora para desarrollar FML parece ser desarrollar controladores difusos integrados para aplicaciones de inteligencia ambiental, FML podría ser una gran ayuda para los desarrolladores de algoritmos de extracción de reglas difusas: por mi propia experiencia durante mi doctorado, sé que tener que diseñar un archivo formatear e implementar los analizadores apropiados para la extracción de reglas y los motores de inferencia difusos puede ser una verdadera molestia, ya que lleva tanto tiempo como implementar el propio algoritmo de extracción de reglas. Preferiría haber usado algo como FML para mi trabajo".

Se puede encontrar una descripción completa de FML y aplicaciones relacionadas en el libro titulado On the power of Fuzzy Markup Language [2] editado por Giovanni Acampora, Chang-Shing Lee, Vincenzo Loia y Mei-Hui Wang, y publicado por Springer en la serie Estudios sobre Fuzziness y Soft Computing .

FML permite codificar sistemas difusos a través de una colección de etiquetas semánticas correlacionadas capaces de modelar los diferentes componentes de un controlador difuso clásico, como base de conocimiento, base de reglas, variables difusas y reglas difusas. Por lo tanto, las etiquetas FML utilizadas para construir un controlador difuso representan el conjunto de lexemas utilizados para crear expresiones difusas. Para diseñar un lenguaje basado en XML bien formado, se define una gramática libre de contexto FML por medio de un esquema XML que define el nombre, el tipo y los atributos que caracterizan cada elemento XML. Sin embargo, dado que un programa FML representa solo una vista estática de un controlador de lógica difusa, se proporciona el llamado Traductor de lenguaje de hoja de estilo extensible (XSLT) para cambiar esta vista estática a una versión computable. Por supuesto,Los módulos XSLT pueden convertir el controlador difuso basado en FML en un lenguaje informático de uso general utilizando un archivo XSL que contiene la descripción de la traducción. En este nivel, el control es ejecutable para el hardware. En resumen, FML se compone esencialmente de tres capas:

La sintaxis FML se compone de etiquetas y atributos XML que describen los diferentes componentes de un controlador de lógica difusa que se enumeran a continuación: