Buenos días a todos!

En la última entrada que escribí , Brujuleando por la red (V), os comenté que había dado con una tesis bastante buena ( pdf final clickando aquí ) en la cual se creó un sistema capaz de proporcionar un diagnóstico médico diferencial de cualquier caso clínico que se le introdujese. Dichos diagnósticos los proporcionaba mediante tecnologías semánticas.

En esta tesis, su autor ( Alejandro González ) probó distintos métodos para hacer funcionar su sistema y demostrar sus hipótesis, la primera prueba de todas fue ODDINseguidamente creó ADONIS y finalmente SEDELO.

Por un lado utilizó un enfoque con lógica descriptiva (description logics) y por otro con reglas de inferencia basadas en Jena Rules, explicando los resultados obtenidos en cada uno de los siguientes papers:

  • Using agents to parallelize a medical reasoning system based on ontologies and description logics as an application case
    A pesar de que en el sistema ODDIN se basó en reglas con Jena Rules, intentó probar suerte con lógica descriptiva, pero los resultados no fueron muy positivos. El objetivo del sistema que se quería generar era el de un sistema capaz de proveer un listado de posibles diagnósticos en base a una serie de datos de entrada introducidos ( buscando el diagnóstico más apropiado en base a signos, síntomas, test de diagnóstico, etc..).
    El proceso de inferencia que permitía obtener un listado de posibles diagnósticos está basado en realizar una inferencia sobre la ontología  que contiene el listado de enfermedades. El número de enfermedades que se encuentra en la base del conocimiento es el factor principal que determina la eficiencia (en términos de tiempo) del sistema. Si la base del conocimiento contiene un número muy elevado de enfermedades, el número de descriptores lógicos que se deben cargar, también se incrementa.
    El problema principal de este hecho es que, a mayores descriptores lógicos, se incrementa el tiempo de inferencia, con lo cual el sistema pierde eficiencia.
    En este paper se muestran los resultados en tiempo del sistema cuando contiene tan solo 9 enfermedades y seguidamente cuando contiene 11 enfermedades, las diferencias en cuestión de tiempo de ejecución son bastante significativas. Muestro las 2 tablas a continuación:

    El pase de diapositivas requiere JavaScript.

    Como solución a este problema, propone un sistema multi agente que desarrolla mediante el framework JADE. Dicho sistema se divide en 3 tipos de agente:
    – El agente de interfaz que proporciona una interfaz de usuario donde el usuario puede colocar las búsquedas y recibe los resultados cuando la computación es correcta.
    – El agente “single master” que coordina el sistema proporcionando una cola de trabajo y distribuyendo las tareas en agentes esclavo.
    – Los agentes esclavo que son los nodos de computación, haciendo funcionar el motor de razonamiento.

    multi-agente
    Realizan distintas pruebas de los sistemas haciéndolos funcionar en ordenadores realizando ejecuciones con una sola máquina y ejecución multi-hilo o con un conjunto de máquinas y una instalación de un hilo único, aportando los resultados.
    Como conclusiones finales, comparando el sistema en paralelo al sistema original, se demuestra que se reducen los tiempos de inferencia con las ontologías divididas.
    Sin embargo, las ontologías reales son mucho más grandes, poseen más de 11 enfermedades, y en este caso la escalabilidad sería problemática, los dos enfoques clásicos de paralelización que intentaron fueron con: multi-máquinas y multi-hilos.
    Los multi-hilo producían buenos resultados, pero el problema principal es que el número de hilos excesivo podía ralentizar el proceso.
    Usando múltiples máquinas se consiguieron mejores resultados que con el sistema multi-hilo pero el coste en hardware fue superior.
    La conclusión final a la que se llega es que utilizar descriptores lógicos no es eficiente y se recomienda probar utilizando sistemas basados en reglas, que mejorarían la velocidad de inferencia frente a los sistemas con descriptores lógicos.

  • An approach for solving multi-level diagnosis in high sensitivity medical diagnosis systems through the application of semantic technologies
    En este paper efectivamente se demuestra que aplicando un sistema de reglas concretamente JENA RULES el sistema de diagnóstico funciona mejor y además es capaz de ser multi-nivel (relacionando una enfermedad con otra sin problema).
    Utilizando una ontología siguiento la estructura de SNOMED-CT, se proponen principalmente dos enfoques:
    1. Definir las relaciones de las diferentes entidades que utilizan el modelo DCM para crear una base de conocimiento con información clínica sobre las enfermedades y relaciones con otros elementos. Esta información se utilizará para generar las reglas definidas en el paper que luego se cargarán en el proceso de inferencia.
    2. Almacenando la información de consulta para un paciente. La ejecución de reglas del motor de reglas se realizará usando la ontología. El motor de reglas es ejecutado usando la ontología como parámetro y las reglas.
    Para esto, el sistema de diagnóstico utiliza Jena API (Jena Rules) como motor principal de inferencia. La razón principal por la que utilizan este motor y no otro como por ejemplo SWRL es porque Jena permite simular el concepto de negación
    En dicho paper se muestran 8 ejemplos de reglas, en los que principalmente se fuerza a convertir de Open world Assumption (OWA) a ser Close World Assumption (CWA) (en el primer caso OWA, desconoce lo que comentaba anteriormente sobre el concepto de negación mientras que CWA sí lo reconoce).
    Por ejemplo, en la siguiente frase: “Jose es de Granada” en OWA no sabría que Jose no puede ser que no sea de Granada mientras que en CWA sí lo sabría. Si nosotros ahora dijéramos Jose es de León, el sistema CWA nos diría que eso no es posible… si es de Granada no puede ser también de León…. sin embargo en OWA nos diría que “no lo sabe”.
    A lo largo del paper pone distintos ejemplos de reglas para el dominio particular en el que se encuentra, sobre el diagnóstico de enfermedades y concluye en que la utilización de un sistema de reglas como motor de inferencia, aumenta la eficiencia del sistema proporcionando mejores resultados en menor tiempo.

Así que seguimos avanzando poquito a poco leyendo cada vez más y más literatura e intentando aprender de los que ya han realizado sistemas similares al que yo quiero crear, aunque sea dentro de otros dominios diferentes.

Imagen | PHDComics.com