Resumen Ingeniería y Gestión del Conocimiento Grado en Ingeniería en Tecnologías de la Información @Geateo Febrero 2018 Tema 1 - Introducción a los SBCs Inteligencia artificial • SBCs: Hace referencia más a la estructura de software que al concepto de soporte de conocimiento experto ⁃ SE (Sistemas expertos): Son SBCs ⁃ IC (Ingeniería del Conocimiento): Desarrolla los SBCs Mecanismo modus ponen: De una implicación lógica (estructura o artefacto) y de la afirmación del antecedente (un dato) de esta implicación se puede inferir la veracidad de la proposición consecuente Mecanismo modus tollens: De una implicación lógica y de la negación del consecuente de esta implicación se puede inferir la falsedad de la proposición antecedente, aunque esto no se da en los SBR SBC Estructura básica: • Base de conocimiento: contiene los fragmentos de conocimiento representados a través de los artefactos disponibles en el sistema, como: ⁃ Reglas: Técnica de representación para representar el conocimiento de las relaciones entre hechos del dominio, como Clips o Prolog ⁃ Objetos/Marcos: estructuran los objetos, sus relaciones y las inferencias que dependan de éstas. • Motor de inferencia: Es el método usado para resolver el problema. Infiere nuevos hechos (resultados) con los previamente existentes (datos de entrada) usando los artefactos. Definido por: ⁃ Distintas modalidades de inferencia (encadenamientos) soportadas sobre los artefactos. ⁃ Agenda Mecanismo de control o priorización de la activación de las inferencias para la resolución del conjunto conflicto. • Base de hechos: conjunto de afirmaciones. Pueden ser: ⁃ de partida, introducidas por el usuario ⁃ inferidas por el motor de inferencia sobre la base de conocimiento. • Se intenta que la representación y resolución sea lo más independiente posible al SBC a desarrollar, para así reutilizarse fácilmente Estructura complementaria: • Interfaces de entrada y salida para comunicarse con usuarios, dispositivos u otros SBC ⁃ Interfaz de usuario: Facilita la interacción del humano con el sistema • Mecanismos para la explicación del razonamiento: Realizan una traza de los procesos inferenciales por los que el pasa sistema, del conocimiento y afirmaciones utilizadas y de los nuevos hechos descubiertos • Gestor de base de datos.: Encargado de la gestión y almacenamiento de hechos • Mecanismo de adquisición automática de conocimiento: incorpora a la base de conocimiento nuevos fragmentos, o revalorizar los existentes, resultado del aprendizaje en la interacción del sistema o en fuentes de información masivas del tipo que sea, bases de datos, repositorios, web... Dominio adecuado si: • Se dispone del conocimiento heurístico del experto • El dominio de la aplicación está bien delimitado • No hay una resolución procedimental computacionalmente viable • Flujo de control sencillo • Modelables como un conjunto de múltiples estados Ventajas: • Competencia • Fiabilidad y robustez: Mismo problema, misma conclusión (que un humano) • Comprensibilidad: de las conclusiones y de la representación del conocimiento por parte del experto (no informático). Representación del conocimiento cercano al pensamiento humano. Son autoexplicativos • Tiempo de respuesta adecuado • Flexibilidad/Actualización: Añadir, eliminar y modificar el conocimiento. Como es modular se facilita el mantenimiento. • Tratamiento de la incertidumbre: mediante por ejemplo técnicas probabilísticas • Permanencia: del conocimiento añadiendo valor a la organización • Duplicación: Es fácilmente reproducible • Centralización: se puede centralizar en un servidor de conocimiento que dé servicio a distintos usuarios • Bajo coste de mantenimiento: Funcionando 24/365 Limitaciones: • Falta de sentido común: Solo conoce lo que está en su base de datos • Ausencia de lenguaje natural: Tanto para el reconocimiento de voz y texto como para la redacción • Falta de experiencia sensorial: Interpretación de imágenes, fusión plurisensioral... • Falta de perspectiva global: para poder diferenciar las cuestiones centrales de las secundarias o datos irrelevantes • Ausencia de aprendizaje: Directamente no aprenden de la experiencia y de los problemas resueltos, aunque hay avances • Deficiencias en el manejo del conocimiento no estructurado: Un humano extrae información de elementos desordenados y es menos sensible ante los errores sintácticos • Dominio: No todos son aptos para un sistema automático • Cuello de botella en la adquisición del conocimiento. Mecanismos inferenciales: Encadenamiento hacia adelante (por datos): Cuando la ejecución de una acción supone la inserción de un nuevo hecho en la base de hechos (BH), se insertan en la agenda las reglas que tienen en su antecedente una condición dependiente de ese hecho. • El segundo más prioritario (si el sistema admite los dos) • Recomendado cuando: ⁃ Hay muchas reglas con muchas condiciones en el antecedente >-⁃ No están claros los objetivos ⁃ Ejemplo: Compra online. Aplicación para el cliente. Conoce sus preferencias, pero no los productos ⁃ Entradas: preferencias y características del cliente ⁃ Salida: El producto recomendado ⁃ Problemas que requieran tareas reactivas (monitorización) Encadenamiento hacia atrás (por objetivos): Si se busca el valor de una variable, se insertan en la agenda las reglas que tengan en el consecuente una asignación sobre esa variable. Se evaluarán antes de evaluar las condiciones que causaron el encadenamiento hacia atrás (una pila) • El más prioritario (si el sistema admite los dos) pues ⁃ Solo se pregunta al usuario cuando no queda más remedio y solo por hechos que sean necesarios ⁃ Limita el número de equiparaciones, ya que solo hacen falta las del consecuente que se está buscando haciendo que el árbol de búsqueda sea más pequeño • Recomendado cuando: ⁃ Muchas reglas cuyo consecuente forma parte del antecedente de otras muchas --< ⁃ Objetivos y subobjetivos bien definidos, pero no las estructuras de datos. ⁃ Ejemplo: Compra online. Aplicación para el vendedor. Conoce los productos, pero no las preferencias ⁃ Entradas: preferencias y características del cliente ⁃ Salida: El producto recomendado ⁃ Problemas que se basan en tareas analíticas (clasificación) Encadenamiento mixto ( o Búsqueda bidireccional o Reversibilidad): Se siguen los dos modos de razonamiento a la vez por la misma red de inferencias hasta que se encuentran Emparejamiento de patrones (pattern matching): Se da cuando se hace referencia a un hecho (o varios) sin nombrarlos en tiempo de ejecución • Se incluye en el antecedente no un hecho concreto sino una condición que pueden cumplir varios elementos (paciente ?persona) (edad ?persona ?edad&:(> ?edad 35) (desde_remision ?persona ?años&:(> ?años 2) => (estado ?persona Tipo_1) Métodos de resolución de conflictos: • Factor numérico de prioridad: Definiendo prioridades a cada regla (estática o dinámicamente) al construir el SBR • Detalle: Seleccionar las reglas más específicas (Criterio de especifidad): Las más específicas (las que tengan más antecedentes) se adaptan mejor a la situación planteada • Proximidad: seleccionar las reglas con hechos más actualizados: Añadiendo un número a cada elemento de la BH que indica su antigüedad ⁃ (actualizarlo con el contador de números de ciclo cuando se modifique → seleccionar reglas con hechos con nº mayor) • Refracción: seleccionar regla que no se haya usado antes: Una vez ejecutada una regla se excluye hasta que no cambie un hecho que intervenga como premisa, evitando bucles infinitos • Seleccionar la primera regla que se equipara con los contenidos de la BH: Coste de control pequeño, pero coste de aplicación de reglas elevado, hay que probar muchas reglas hasta dar con la solución buscada. Suele ser útil ordenar la BC ⁃ Ordenación de las reglas en la BC, colocando primero las que antes se deban examinar. Método sencillo, pero dificulta mantenimiento de las BC grandes ⁃ Ordenación de las condiciones dentro de cada regla, colocando primero las condiciones con menos probabilidades de cumplirse. Muy usada en EHA. Al ejecutar un SBR, si no se verifica una condición no se miran más • Seleccionar arbitrariamente una regla. Marcos Marcos (frames): Estructuras de representación del conocimiento diseñados para generar predicciones basadas en recurrencias detectadas. Caracterizados por: • Nombre: El concepto de la entidad a la que representan • Atributos (o campos o propiedades) que describen los conceptos Slot: Se denomina así al par concepto-propiedad (vehículoTerrestre-numeroRuedas) • Un slot puede tener o no un valor asignado (si no lo tiene tendrá mayor generalidad que uno valuado) • Los slot y sus valores se heredan (turismo-numeroRuedas) UML: S L O T Concepto: La entidad Tanque de gasolina Atributo describe al concepto Estado Valor sería uno de los 3 CONCEPT Tanque de gasolina; ATTRIBUTES: Estado: {lleno, casi-vacío, vacío}; END CONCEPT Tanque de gasolina; Slot-valor: El átomo de la representación del conocimiento del dominio Asociaciones entre conceptos: • Descritas por: ⁃ Argumentos: conceptos relacionados ⁃ Cardinalidad: uno a uno, uno a varios, varios a varios, etc. ⁃ Orientación: Dirección de la relación ⁃ Papeles: Etiquetas que describen la función o papel que cada elemento asociado desempeña en la relación ⁃ Pueden requerir atributos propios • Asociaciones básicas: ⁃ Especialización (Herencia): Asocia un concepto clase con su particularización en una subclase o instancia. ⁃ Padre: SUPER-TYPE-OF y puede indicar SEMANTICS: DISJOINT: YES/NO; COMPLETE: YES/NO ⁃ Hija: SUB-TYPE-OF ⁃ Composición: Asocia un concepto con sus componentes. ⁃ Padre: HAS-PARTS: Nombre hijas entre comas ⁃ Hija: ¿nada especial? Facetas Facetas (o meta-slots): Añade características de los atributos y de los slot univaluados o multivaluados. Pueden ser: • Características estáticas: ⁃ Los valores posibles (rojo, verde o amarillo para un color). ⁃ Valores por defecto ⁃ Públicos: se heredan ⁃ Privados: de un meta-slot particular ⁃ Cómo solicitar al usuario el valor de un slot • Cómo se visualiza el valor del slot • Explicar el valor obtenido para el slot • Especificar elementos de la interfaz asociados al slot para su captura o visualización (como ventanas) • Validar el slot con expresiones booleanas o rutinas externas, permitiendo mensajes de error • Especificar prioridades de búsqueda dinámicas o estáticas • Especificar prioridades de herencia ante multiherencia tanto dinámica como estática • Especificar la estrategia de herencia a la hora de buscar el valor que se hereda, primero en profundidad o primero en extensión • Características dinámicas (demonios): especifican cómo actuar ante determinados eventos del sistema. Como los métodos en POO ⁃ OrdenDeFuentes (OF): Cómo o dónde encontrar el valor del slot o propiedad. ⁃ Si tiene el método OF lo ejecuta, si no ejecuta el de sus padres, intentando heredar el valor de un ascendente o descendiente. Como última opción se solicita al usuario ⁃ SiCambia (SC): Cómo se debe reaccionar inmediatamente después del cambio de valor del slot o propiedad (excepto cuando se inicializa) ⁃ En algunos sistemas se diferencia entre AntesDelCambio y DespuésCambio ⁃ SiAccedido: Lanzado simplemente con el acceso al slot Tema 3 - Introducción a Ingeniería del Conocimiento Adquisición del conocimiento: Técnicas de elicitación Técnicas manuales Entrevistas: • Entrevista inicial: • Entrevistas no estructuradas: Para el conocimiento general. Más naturalidad para el experto, pero más ineficiencia y no completitud. • Entrevistas estructuradas: Con agenda detalladas y objetivos específicos. Términos y casos concretos • Cuestionarios: Requieren mucha preparación, pero permite al experto reflexionar las respuestas Extracción mediante curvas cerradas: señalando unos elementos que cumplan una condición. Zonas con peligro de incendio. Análisis de protocolos: Grabar y analizar al experto según resuelve un problema típico. 4 fases: • Obtención: Hacer la grabación • Transcripción y segmentación: Añadiendo observaciones • Codificación: Identificar los conceptos, atributos, relaciones y reglas • Interpretación: Sacar la estrategia usada para adquirir el método de resolución completo Observación del experto: en condiciones reales tomando notas para luego poder preguntar. Requiere conocimiento previo de los términos del dominio. Cuadrícula escalonada: Preguntas predefinidas pera extender las jerarquías y clasificaciones. Comenzar por un término y obtener superclases, subclases y miembros de clases relacionadas. Preguntas como: • Qué es término y un ejemplo • Qué otros ejemplos de término_1 diferentes de término_2" Ordenamiento de fichas: Se le pide que ordene tarjetitas con los términos del conocimiento del dominio cada vez de una manera relevante distintas, obteniendo distintas clasificaciones. Cuadrícula de repertorio: Se seleccionan tres elementos y el experto debe nombrar la diferencia de dos elementos con el tercero. Se obtiene una cuadrícula que clasifica cada término en cada dimensión o categoría. Estas clasificaciones se pueden estudiar estadísticamente para ver si se ha categorizado implícitamente en una determinada forma. Técnicas semiautomáticas Escalado psicológico: para producir representaciones estructuradas del conocimiento. • Hacer una matriz con todos los elementos a analizar en las filas y las columnas • El experto rellena las casillas indicando la distancia entre los elementos según una escala elegida que interpretará como la proximidad en la representación del conocimiento. • Usar un algoritmo software para la representación de los elementos analizados. ⁃ Escalado multidimensional: obteniéndose la proyección de cada elemento en distintas dimensiones. ⁃ Análisis de agrupamientos: para obtener una jerarquía de conceptos según el orden de agrupamiento de la escala elegida. Emparrillado: Para extraer las relaciones entre elementos y las prioridades de las características. Se obtienen correlaciones entre características y así se puede analizar las más importantes. 1. Rellenar una matriz donde en las cabeceras de las columnas van los elementos que hay que clasificar y en la de las filas, las características (bipolares) para valorar esos elementos del 1 al n. 2. Analizar los resultados usando aplicaciones software, obteniéndose: ⁃ Identificación de elementos: Con el sumatorio de las distancias de las características (columna) se hacen agrupaciones jerárquicas obteniéndose un árbol de los elementos de la parrilla. ⁃ El experto corrige los elementos que vea demasiado cercanos/lejanos indicando la característica que los diferencia y así crear una nueva característica para la parrilla. ⁃ Identificación de características: Análogamente se crea un árbol con las características de la parrilla ⁃ El experto analiza el árbol y si no está de acuerdo se deben buscar elementos que contradigan la cercanía. • Problemas: La subjetividad al asignar los valores y la dificultar de identificar las características que intervienen en el proceso. . Técnicas automáticas Algoritmo W de Winston: intenta describir las características de un concepto por inducción. • Se selecciona ejemplos positivos y negativos de elementos que pertenezcan a una clase • El algoritmo toma un modelo con las características comunes de los positivos y no de los negativos Espacio de versiones de Mitchell: Usa también ejemplo positivos y negativos sobre un hecho para discernir hipótesis genéricas y específicas Árboles de decisión: Donde • Entradas: objetos o situaciones positivos y negativos caracterizados por un conjunto de propiedades, • Algoritmo: Evalúa las características y selecciona la que mejor categoriza a los ejemplos • Salida: Árbol que, dado un nuevo ejemplo, lo cataloga como positivo o negativo. Técnicas de aprendizaje de redes neuronales . Adquisición del conocimiento a partir de un grupo de expertos Tormenta de ideas: En la primera fase la cantidad es más importante que la calidad, por lo que hay que animar a todos a proponer y modificar. Un moderador debe recopilar todas las afirmaciones para después analizarlas y detallar lo acordado. Técnica nominal de grupo: Se ordena el debate y se dan ciertos criterios para las soluciones. Las ideas se escriben y luego se defienden y discuten en común. Al final se vota la solución. Método Delphi: Todo el proceso es anónimo, favoreciendo los cambios de opinión y la convergencia de valoraciones. • Los expertos completan cuestionarios • Se devuelven los resultados ordenados en cuartiles sugiriendo a los que están fuera de los cuartiles que modifiquen su respuesta o que la justifiquen. • Se vuelve a hacer los cuestionarios teniendo en cuenta las opiniones anteriores. • Se obtienen los resultados finales . Reutilizar el conocimiento existente Además, existen repositorios de ontologías con gran cantidad de conocimiento preparado para poder reutilizarse. A veces de forma gratuita. Antes de desarrollar un sistema se deberá analizar estos repositorios y ver si se puede especializar ese conocimiento o utilizarlo directamente. Modelo del conocimiento en CML CONOCIMIENTO DEL DOMINIO Describe las estructuras de conocimiento e información estáticas de un dominio. Describe el conocimiento básico y relevante del dominio sobre el que se va a desarrollar el SBC. Este conocimiento sólo será reutilizable en sistemas que traten sobre el mismo dominio del SBC. Contiene los esquemas del dominio (1 ó +) y las bases de conocimiento (1 ó +) DOMAIN-KNOWLEDGE <nombre del SBC> <Descripción de los esquemas del dominio> <Descripción de las bases de conocimiento> END DOMAIN-KNOWLEDGE <nombre del SBC> Esquema del dominio Es una descripción esquemática del conocimiento e información estática específicos del dominio a través de un número de definiciones de tipos DOMAIN-SCHEMA <nombre del esquema> USES: <otros esquemas> <Definiciones de tipos> END DOMAIN-SCHEMA <nombre del esquema> La especificación de los conceptos debería intentar hacerse con independencia de la tarea que deben resolver para que sean reutilizables, pero en la práctica esto resulta muy difícil debido a la gran cantidad de conocimiento que se debería incluir en cada concepto Conceptos, atributos y tipos en CML: CONCEPT Indicador_de_gasolina; DESCRIPTION: "Blaublau" SUB-TYPE-OF: Indicadores (* Indicadores tendrá un SUPER-TYPE-OF Indicador_de_gasolina) ATTRIBUTES: Valor: valor_indicador; Numero: REAL; AXIOMS 0<=Numero<=100 END CONCEPT Indicador_de_gasolina; VALUE-TYPE valor_indicador; VALUE-LIST: {cero, bajo, normal}; TYPE: ORDINAL END VALUE-TYPE valor_indicador; Relaciones entre conceptos: • Especialización (Herencia) SUB-TYPE-OF y SUPER-TYPE-OF ⁃ Padre: tras SUPER-TYPE-OF: Hijo1, Hijo2 indicar SEMANTICS: DISJOINT:YES; COMPLETE YES; • Composición: ⁃ Padre: tras ATTRIBUTES indicar HAS-PARTS: los componentes ⁃ con sus cardinalidades ParteN: CARDINALITY: 0+; ⁃ o sin ellas ParteM, ParteP,…, ⁃ PART-OF y HAS-PARTS: Para modelar asociaciones entre conceptos del tipo "parte de" • Relación binarias: BINARY-RELATION Pertenece_a; INVERSE: posee; ARGUMENT-1: vehículo CARDINALITY: 0-1; (* en el dibujo se colocan al revés) ARGUMENT-2: persona CARDINALITY: ANY; ATTRIBUTES: Fecha_compra: DATE; END BINARY-RELATION Pertenece_a; Tipos de reglas (Relaciones entre expresiones:): elemento característico de CK, las plantillas que se usarán para representar las reglas que formarán la base de conocimiento. Se definen como una relación entre dos afirmaciones lógicas que no implican dependencias estrictas, sino que pueden ser heurísticas u opiniones de expertos. Las afirmaciones lógicas se relacionan con expresiones sobre el valor de un atributo de un concepto • "sugerir una acción cuando la presión en un conducto es excesiva" RULE-TYPE accion_por_sobrepresion; ANTECEDENT: Sensor_de_presion; CARDINALITY: +1; CONSEQUENT: CARDINALITY: ANY; CONNECTION-SYMBOL: Descompresiona_con; END RULE-TYPE accion_por_sobrepresion; Base de conocimiento Se definen instancias de conceptos e instancias de relaciones entre instancias de conceptos (usando INSTANCE y haciendo referencia a los tipos de reglas mediante el CONNECTION-SYMBOL) usando las plantillas de los esquemas del dominio. Son más modificables que los esquemas del dominio KNOWLEDGE-BASE <nombre de la base de conocimiento>; USES: <Esquemas del dominio>; <Elementos del esquema> FROM <Esquema del dominio>; EXPRESSIONS: <Instancias de la base de conocimiento> END KNOWLEDGE-BASE <nombre de la base de conocimiento> Se definió el CONNECTION-SYMBOL: CAUSA; y TIENE_MANIFESTACIÓN KNOWLEDGE-BASE Red_causal_vehículo; USES: Dependencia_de_estados FROM esquema_diagnóstico_vehículo; Manifestación_de_estados FROM esquema_diagnóstico_vehículo; EXPRESSIONS: /* Dependencia de estados */ Tanque_gasolina.Estado=Vacío CAUSA Gasolina_en_motor.Estado=FALSE; Batería.Estado=Bajo CAUSA Energía.Estado=OFF; … /* Manifestación de estados */ Batería.Estado=Bajo TIENE_MANIFESTACIÓN Indicador_batería.Valor=Cero; Tanque_gasolina.Estado=Vacío TIENE_MANIFESTACIÓN Indicador_gasolina.Valor=Cero; … END KNOWLEDGE-BASE Red_causal_vehículo; KNOWLEDGE-BASE BC_central_nuclear; USES: Equemas_central_nuclear; EXPRESSIONS: /* Instancia de concepto */ INSTANCE dh_117; Instance-of: Deposito_de_Helio_HG3; ATTRIBUTES: Situac_llenado:132; Presion: 3; … END INSTANCE dh_117; /* Instancia de relación */ INSTANCE rel_val117;; Instance-of: Válvula_unida_a; ARGUMENT-1: val34; ARGUMENT-1: val35; ARGUMENT-1: val36; ARGUMENT-2: dh117; … END INSTANCE rel_val117; /* Instancia de reglas */ sensor_presP4.presion > 3 Descompresiona_con compuerta_presa.estado=abierto sensor_depHG3.presion > 6 Descompresiona_con válvula_Dep_de_Helio_HG3.estado=abierto Bomba_fuga.estado = activa Descompresiona_con válvula_grifoG84.apertura >= 73; END KNOWLEDGE-BASE BC_central_nuclear; CONOCIMIENTO SOBRE INFERENCIAS Describe cómo las estructuras estáticas del conocimiento del dominio se enlazan para llevar a cabo un proceso de razonamiento. Compuesta por las inferencias, los roles del conocimientos y las funciones de transferencia INFERENCE-KNOWLEDGE <identificador del conocimiento de inferencia> <Descripción de inferencias> <Descripción de las funciones de transferencia> <Descripción de los roles de conocimientos> END INFERENCE-KNOWLEDGE <identificador del conocimiento de inferencia> Inferencias Describen el nivel inferior de la descomposición funcional. Son las unidades básicas del procesamiento de la información en el modelado del conocimiento Son patrones de razonamiento reutilizables (cajas negras) • Se declaran de forma muy genérica para poder reutilizarse en otros SBCs • Los participantes en una inferencia se describen en términos de roles de conocimiento funcionales: • Roles dinámicos ⁃ Roles de entrada ⁃ Roles de salida • Roles estáticos (o de apoyo) ⁃ Elemento del conocimiento del dominio con el que se hará la inferencia • Son especificados cuando estos roles del conocimiento se emparejan con los tipos definidos en el conocimiento del dominio Declaración de inferencias: asociando a roles del conocimiento. INFERENCE descomprime; OPERATION-TYPE: ACTION; ROLES: INPUT: sobrepresión; OUTPUT: descompresor; STATIC: accion_para_descomprimir; SPECIFICATION: "Cada vez que se invoca la inferencia, ante la información de los elementos detectores de sobrepresión, se genera una posible acción que consistirá en la operación de un elemento descompresor."; END INFERENCE descomprime; Roles (papeles) de conocimiento Rol de conocimiento: nombres abstractos de objetos de datos que indican su papel en el proceso de razonamiento • Se asociará cada rol funcional con elementos concretos de la base del conocimiento, vinculando las inferencias con el SBC que las va a manejar. Proyección de la inferencia en un dominio concreto: especificando cada rol del conocimiento. KNOWLEDGE-ROLE sobrepresión: TYPE: DYNAMIC; DOMAIN-MAPPING: sensor_de_presión; END KNOWLEDGE-ROLE sobrepresión; KNOWLEDGE-ROLE descompresor: TYPE: DYNAMIC; DOMAIN-MAPPING: elemento_de_descompresión; END KNOWLEDGE-ROLE descompresor; KNOWLEDGE-ROLE accion_para_descomprimir: TYPE: STATIC; DOMAIN-MAPPING: accion_por_sobrepresion FROM central_nuclear1; END KNOWLEDGE-ROLE accion_para_descomprimir; Funciones de transferencia Función de transferencia: define funciones de comunicación con otros agentes externos (usuarios o sistemas). • Cajas negras que indican cómo se producen las entradas y salidas desde el sistema con otros agentes. • Hay que especificar el rol de entrada y el rol de salida Tipos de funciones de transferencia: • OBTAIN (obtener): El agente de razonamiento requiere una parte de información del agente externo. El sistema tiene la iniciativa. ⁃ El agente requiere una información de un agente externo • RECEIVE (recibir): El agente de razonamiento da una parte de información al agente externo. El agente externo tiene la iniciativa. ⁃ El agente recibe una información de un agente externo a requerimiento de éste • PRESENT (presentar): El agente de razonamiento muestra una parte de información al agente externo. El sistema tiene la iniciativa. ⁃ El agente presenta una información a un agente externo • PROVIDE (proporcionar): El agente de razonamiento proporciona una parte de información al agente externo. El agente externo tiene la iniciativa. ⁃ El agente proporciona una información a un agente externo a requerimiento de éste TRANSFER-FUNCTION monitorización_sensores; TYPE: OBTAIN; ROLES: INPUT: situacion_esperada; OUTPUT: situacion_actual; END TRANSFER-FUNCTION monitorización_sensores; CONOCIMIENTO SOBRE TAREAS Describe las metas y estrategias que hay que seguir para conseguir los objetivos para los que sea diseñado el SBC. Se representa jerárquicamente desde la más genérica hasta llegar a las inferencias y a las funciones de transferencia. Hay dos tipos de conocimiento para este conocimiento: • Tarea: Meta del proceso de razonamiento en términos generales en función de sus entradas y salidas ⁃ Qué se necesita hacer ⁃ Tipos de tareas_ ⁃ Tareas de análisis: ⁃ Entrada: Algunos datos sobre el sistema ⁃ Salida: Alguna caracterización del sistema ⁃ Tareas de síntesis: Su objetivo es construir una descripción del sistema a partir de ciertos requerimientos. • Método de la tarea: Cómo realizar la tarea descomponiéndola en subfunciones más un régimen de control sobre la ejecución de las subfunciones ⁃ Cómo alcanzar el objetivo Plantillas de tareas: forman un componente común de combinaciones reutilizables de elementos del modelo • Especifican las inferencias y el conocimiento de la tarea para resolver un problema determinado • Se pueden reutilizar: ⁃ Especificando los roles correspondientes en el conocimiento sobre inferencias ⁃ Modificándolas para adaptarlas a un problema concreto TASK-KNOWLEDGE <identificador del conocimiento sobre la tarea> <Descripción de tareas> <Descripción de métodos de tareas> END TASK-KNOWLEDGE <identificador del conocimiento sobre la tarea> Tarea Tarea: Define una función de razonamiento complejo en la que el nivel superior se corresponde con la tarea identificada en la tarea del modelo • Los datos manipulados en la tarea se describen para que sean independientes del dominio y reutilizables • No incluyen roles estáticos ya que éstos están ligados a las inferencias y no se indican las proyecciones entre los roles y los términos específicos del dominio • Proyección indirecta: ⁃ Los roles de las tareas enlazan a los roles de inferencia a través de estructuras de control ⁃ Cada rol de inferencia tiene una proyección asociad a las construcciones del domino TASK Valoración_de_gravedad; GOAL: "Valorar el estado del sistema de refrigeración de la central nuclear y catalogarlo según su gravedad"; ROLES: INPUT: Caso: "Valores actuales de los sensores del sistema" Criterios_de_valoración: "Criterios para ponderar la gravedad de los valores de los sensores"; OUTPUT: Decisión_catalogación: "Catalogación del caso de entrada respecto a la gravedad para el sistema"; END TASK Valoración_de_gravedad; /* Dados unos datos de entrada y unos criterios el sistema catalogará el estado de la situación actual (normal, grave, muy grave, crítico) */ Método de la tarea Método de la tarea: Identifica la estrategia de razonamiento usada para resolver un problema. Incluye: • Subtareas en las cuales se descompone la tarea • Estructura de control que integra esa subtareas especificando el proceso de resolución de la tarea. Puede incluir: ⁃ Funciones de programación: estructuras de bucle, condicionales, etc. ⁃ Roles intermedios para almacenamiento de resultados parciales y llamadas a subtareas ⁃ Inferencias y funciones de transferencia TASK-METHOD Valoración_de_gravedad_usando_criterios; REALIZES: Valoración_de_gravedad; DECOMPOSITION: INFERENCES: Abstraer, Especificar, Seleccionar, Evaluar; TRANSFER-FUNCTIONS: ; ROLES: INTERMEDIATE: Característica_de_caso: "Uno de los valores de los sensores del caso actual"; Criterio: "Uno de los criterios especificados en los criterios de entrada"; Valor: "Valoración parcial del estado actual del sistema"; Resultados: "Acumulador de los resultados en el proceso de valoración" CONTROL-STRUCTURE: WHILE NEW-SOLUCION Abstraer(Caso->Característica_de_caso) DO Caso:= Característica_de_caso UNION Caso; END WHILE Especificar(Caso -> Criterios_de_valoración); REPEAT Seleccionar(Criterios_de_valoración -> Criterio); Evaluar(Caso + Criterio -> Valor); Resultados:= Valor UNION Resultados; UNTIL HAS-SOLUCION Equiparar(Resultados -> Decisión_catalogación); END TASK-METHOD Valoración_de_gravedad_usando_criterios; CONOCIMIENTO DEL DOMINIO — Solo el CML — DOMAIN-KNOWLEDGE <nombre del SBC> Esquema del dominio DOMAIN-SCHEMA <nombre del esquema> USES: <otros esquemas> Conceptos, atributos y tipos en CML: CONCEPT Indicador_de_gasolina; DESCRIPTION: "Blaublau" SUB-TYPE-OF: Indicadores (* Indicadores tendrá un SUPER-TYPE-OF Indicador_de_gasolina) ATTRIBUTES: Valor: valor_indicador; Numero: REAL; AXIOMS 0<=Numero<=100 END CONCEPT Indicador_de_gasolina; VALUE-TYPE valor_indicador; VALUE-LIST: {cero, bajo, normal}; TYPE: ORDINAL END VALUE-TYPE valor_indicador; Relaciones entre conceptos: BINARY-RELATION Pertenece_a; INVERSE: posee; ARGUMENT-1: vehículo CARDINALITY: 0-1; (* en el dibujo se colocan al revés) ARGUMENT-2: persona CARDINALITY: ANY; ATTRIBUTES: Fecha_compra: DATE; END BINARY-RELATION Pertenece_a; Tipos de reglas (Relaciones entre expresiones) RULE-TYPE accion_por_sobrepresion; ANTECEDENT: Sensor_de_presion; CARDINALITY: +1; CONSEQUENT: CARDINALITY: ANY; CONNECTION-SYMBOL: Descompresiona_con; END RULE-TYPE accion_por_sobrepresion; END DOMAIN-SCHEMA <nombre del esquema> Base de conocimiento KNOWLEDGE-BASE <nombre de la base de conocimiento>; Red_causal_vehículo USES: <Esquemas del dominio>; <Elementos del esquema> FROM <Esquema del dominio>; Dependencia_de_estados FROM esquema_diagnóstico_vehículo; Manifestación_de_estados FROM esquema_diagnóstico_vehículo; EXPRESSIONS: <Instancias de la base de conocimiento> /* Dependencia de estados */ Tanque_gasolina.Estado=Vacío CAUSA Gasolina_en_motor.Estado=FALSE; Batería.Estado=Bajo CAUSA Energía.Estado=OFF; … /* Manifestación de estados */ Batería.Estado=Bajo TIENE_MANIFESTACIÓN Indicador_batería.Valor=Cero; Tanque_gasolina.Estado=Vacío TIENE_MANIFESTACIÓN Indicador_gasolina.Valor=Cero; … END KNOWLEDGE-BASE <nombre de la base de conocimiento> Red_causal_vehículo END DOMAIN-KNOWLEDGE <nombre del SBC> CONOCIMIENTO SOBRE INFERENCIAS INFERENCE-KNOWLEDGE <identificador del conocimiento de inferencia> Inferencias INFERENCE descomprime; OPERATION-TYPE: ACTION; ROLES: INPUT: sobrepresión; OUTPUT: descompresor; STATIC: accion_para_descomprimir; SPECIFICATION: "Cada vez que se invoca la inferencia, ante la información de los elementos detectores de sobrepresión, se genera una posible acción que consistirá en la operación de un elemento descompresor."; END INFERENCE descomprime; Funciones de transferencia TRANSFER-FUNCTION monitorización_sensores; TYPE: OBTAIN; ROLES: INPUT: situacion_esperada; OUTPUT: situacion_actual; END TRANSFER-FUNCTION monitorización_sensores; Roles (papeles) de conocimiento KNOWLEDGE-ROLE sobrepresión: TYPE: DYNAMIC; DOMAIN-MAPPING: sensor_de_presión; END KNOWLEDGE-ROLE sobrepresión; KNOWLEDGE-ROLE descompresor: TYPE: DYNAMIC; DOMAIN-MAPPING: elemento_de_descompresión; END KNOWLEDGE-ROLE descompresor; KNOWLEDGE-ROLE accion_para_descomprimir: TYPE: STATIC; DOMAIN-MAPPING: accion_por_sobrepresion FROM central_nuclear1; END KNOWLEDGE-ROLE accion_para_descomprimir; END INFERENCE-KNOWLEDGE <identificador del conocimiento de inferencia> CONOCIMIENTO SOBRE TAREAS TASK-KNOWLEDGE <identificador del conocimiento sobre la tarea> Tarea TASK Valoración_de_gravedad; GOAL: "Valorar el estado del sistema de refrigeración de la central nuclear y catalogarlo según su gravedad"; ROLES: INPUT: Caso: "Valores actuales de los sensores del sistema" Criterios_de_valoración: "Criterios para ponderar la gravedad de los valores de los sensores"; OUTPUT: Decisión_catalogación: "Catalogación del caso de entrada respecto a la gravedad para el sistema"; END TASK Valoración_de_gravedad; /* Dados unos datos de entrada y unos criterios el sistema catalogará el estado de la situación actual (normal, grave, muy grave, crítico) */ Métodos de las tareas TASK-METHOD Valoración_de_gravedad_usando_criterios; REALIZES: Valoración_de_gravedad; DECOMPOSITION: INFERENCES: Abstraer, Especificar, Seleccionar, Evaluar; TRANSFER-FUNCTIONS: ; ROLES: INTERMEDIATE: Característica_de_caso: "Uno de los valores de los sensores del caso actual"; Criterio: "Uno de los criterios especificados en los criterios de entrada"; Valor: "Valoración parcial del estado actual del sistema"; Resultados: "Acumulador de los resultados en el proceso de valoración" CONTROL-STRUCTURE: WHILE NEW-SOLUCION Abstraer(Caso->Característica_de_caso) DO Caso:= Característica_de_caso UNION Caso; END WHILE Especificar(Caso -> Criterios_de_valoración); REPEAT Seleccionar(Criterios_de_valoración -> Criterio); Evaluar(Caso + Criterio -> Valor); Resultados:= Valor UNION Resultados; UNTIL HAS-SOLUCION Equiparar(Resultados -> Decisión_catalogación); END TASK-METHOD Valoración_de_gravedad_usando_criterios; END TASK-KNOWLEDGE <identificador del conocimiento sobre la tarea> Modelos CommonKADS NIVEL CONTEXTUAL: Analiza los objetivos, oportunidad, problemas, alternativas y elementos que interviene para así decidir si es adecuado desarrollar un SBC en este dominio. Se obtiene un informe de conclusiones y acciones que deben llevarse a cabo que resume los formularios de este nivel (Formulario OTA-1). ⁃ (OTA-1) Documento de "Recomendaciones y Acciones de mejoras": Sacará medidas y mejoras para la productividad de la empresa. Recomendaciones que refleja: ⁃ Impactos y cambios en la organización, Impactos y cambios en las tareas y agentes, Actitudes y compromisos, Acciones propuestas. • Modelo de Organización: Describe y analiza las principales actividades de una empresa con el objetivo de descubrir problemas y oportunidades para realizar el SBC, su viabilidad, valorando el impacto de las acciones propuestas con el modelo. (Formularios OM-1 a OM-5) ⁃ (OM-1) "Problemas y oportunidades": objetivos, las estrategias, los valores y factores de influencia de la organización (3) ⁃ Problemas y oportunidades, Contexto organizacional, Soluciones ⁃ (OM-2) "Descripción del área de interés de la organización -aspectos variables-". (6) ⁃ Estructura jerárquica, Procesos, Personal, Recursos, Conocimiento, Cultura y potencial ⁃ (OM-3) "Descomposición de los procesos de negocio". (Ampliado en TM-1). Por cada proceso un formulario con los siguientes campos (7). ⁃ Número, Nombre de tarea, Realizada por (agente), Dónde se localiza, Recursos de conocimiento, Si usa el conocimiento de forma intensiva, Importancia ⁃ (OM-4) "Activos de conocimiento": (Ampliado en TM-2) Formulario por cada activo, detallándose (7) ⁃ Nombre del recurso, Pertenece a (agente), Usado en, Forma adecuada, Lugar adecuado, Tiempo adecuado Calidad adecuada ⁃ (OM-5) "Análisis de viabilidad": con la información anterior se hace una valoración en conjunto. Elementos: (4) ⁃ Viabilidad empresarial, Viabilidad técnica, Viabilidad del proyecto, Acciones propuestas ⁃ Estudio de viabilidad tras la creación del Modelo de la Organización. ⁃ Identificando las áreas de oportunidad o problemas y las soluciones potenciales realizándose una perspectiva amplia de la organización. ⁃ Analizando las características económicas, técnicas, y de viabilidad del proyecto para seleccionar el plan más favorable y proporcionar la mejor solución • Modelo de Tareas: Disposición de las tareas principales que debe resolver el sistema entradas, salidas, precondiciones y criterios de actuación, recursos y competencias. (Formularios TM-1 y TM-2) ⁃ (TM-1) "Análisis de tareas": (Ampliación de OM-3). donde tarea es una actividad que se realiza para alcanzar algún propósito, y a una subparte de un proceso de negocio. (10) ⁃ Nombre de la tarea, Organización, Objetivo y valor, Dependencia y flujo, Objetos manipulados, Tiempo y control, Agentes, Conocimiento y capacidad, Recursos, Calidad y eficiencia. ⁃ (TM-2) "Análisis de los cuellos de botella del conocimiento": (Ampliación de OM-4) para mejorar el uso del conocimiento en la organización (3) ⁃ Naturaleza del conocimiento, Forma de conocimiento, Disponibilidad del conocimiento • Modelo de Agentes: Describe las características de los agentes que deben resolver las tareas de tareas: competencias, autoridad para actuar, obligaciones, recursos y restricciones. (Formulario AM-1) ⁃ (AM-1) "Descripción de agentes" (7) ⁃ Nombre del agente, Posición en la organización, Implicado en tareas, Se comunica con, Conocimientos poseídos, Otras competencias, Responsabilidades y restricciones ⁃ Estudio de impacto y mejoras del sistema tras la definición del Modelo de Tareas y del Modelo de Agentes: ⁃ Se recopilan a grandes rasgos las relaciones entre las tareas y los agentes involucrados, y cómo se puede usar el conocimiento utilizado para la ejecución de las tareas de forma óptima, indicando las mejoras que pueden realizarse. ⁃ Se aconsejan las medidas que deben llevarse a cabo en la organización y los cambios en la realización de las tareas, para asegurar la aceptación e integración en la organización. NIVEL CONCEPTUAL: describe la estructura y composición del conocimiento y los elementos de comunicación involucrados en las tareas • Modelo de Conocimiento (Pericia): Describe en detalle, pero independiente de la implementación, los tipos y estructuras de conocimiento usados en una tarea y el papel que estos componentes de conocimiento desempeñan en la resolución de la tarea. Su finalidad es usarlo durante el desarrollo y la ejecución para comunicar a expertos y usuarios los aspectos de resolución de problemas del SBC por lo que debe estar escrito de forma comprensible para cualquiera. (Formulario KM-1) ⁃ (KM-1): "Modelo de Conocimiento": Recopilación con la información útil obtenida durante el modelado ⁃ Modelo del conocimiento (completo con texto y esquemas) ⁃ Fuentes de conocimiento usadas, Glosario, Componentes reutilizados, Escenarios (casos reales), Resultados de validación, Material de adquisición de conocimiento (recopilado). • ⁃ Conocimiento de aplicación: Categorías del modelo del Conocimiento ⁃ Conocimiento del dominio: conocimiento específico del dominio y los tipos de información sobre la que trata el sistema. Describiendo conceptos, atributos, relaciones jerárquicas y tipos de reglas ⁃ Esquema del dominio, Base del conocimiento ⁃ Conocimiento sobre inferencias: Describe los pasos de razonamiento básico del sistema. Los elementos que usarán los motores de inferencia ⁃ Inferencias, Roles de conocimiento, Funciones de transferencia ⁃ Conocimiento sobre tareas: Las metas que persigue el sistema y cómo se pueden descomponer en subtareas y procesos de razonamiento. Son los mecanismos de control interno que indican cómo se usa el conocimiento del dominio y el inferencial para obtener salidas. ⁃ Tarea, Método de la tarea ⁃ Conocimiento de Resolución de Problemas. En (Pericia del ED) ⁃ Conocimiento sobre Métodos de Resolución de Problemas (PSMs). Describen los métodos de solución de problemas. Se incluye el conocimiento de control de ejecución ⁃ Conocimiento estratégico. Sobre la planificación de la tarea, determinando las diferentes condiciones en que se llevarán a cabo los métodos alternativos de ejecución. Permite el diseño de sistemas más flexibles. Sería parte del proceso de diferenciación del conocimiento, la elección de un determinado control en la ejecución de la tarea según cada aplicación. Modelo de Comunicación: Describe de forma conceptual e independiente de cómo se van a implementar las transacciones de comunicación entre los agentes involucrados en la resolución de una tarea (Formularios CM-1 y CM-2) ⁃ Plan de comunicaciones: Detalla el diálogo a alto nivel entre dos agentes para llevar una tarea conjunta. Actividades: (4) ⁃ Recopilar documentos de trabajo y las funciones de transferencia, Identificar y nombrar las transacciones, Construir el diagrama de diálogo, Añadir el control sobre las transacciones. ⁃ (CM-1) "Transacciones": detalle de cada una de las transacciones que se producen entre dos agentes y dos tareas: (6) ⁃ Nombre de la transacción, Objetos de la información, Agentes involucrados, Plan de comunicaciones, Restricciones, Especificación de intercambio de información (ampliable con un CM-2). ⁃ (CM-2) "Especificación del intercambio de información": Amplía el contenido de una transacción entre agentes, sobre todo cuando tiene más de un mensaje. Especifica la estructura, forma, contenido y medio de transmisión de los mensajes que forman la transacción (5) ⁃ Nombre de la transacción, Agentes involucrados, Items de información (todos los elementos con: su rol, estructura sintáctica y canal de comunicación), Especificación de los mensajes (todos con: el tipo de comunicación, contenido, referencia y modelo del dominio), Control sobre mensajes (actividad 4 del plan de comunicaciones) NIVEL ARTEFACTUAL O DE IMPLEMENTACIÓN: Explica la transición del nivel conceptual a la implementación del sistema, describiendo la arquitectura y sistema computacional. • Modelo de Diseño: A partir de los anteriores, este modelo describe las especificaciones técnicas (arquitectura, plataforma de implementación, módulos software, bases del conocimiento necesarias, métodos de resolución, sistemas de comunicación, elementos de representación, mecanismos computacionales). (Formulario DM-1 a DM4) ⁃ (DM-1): "Modelo de la aplicación" (3): Arquitectura del modelo de la aplicación ⁃ Organización de los subsistemas, Modelo de control interno de los módulos, Descomposición de los subsistemas y paradigma elegido ⁃ (DM-2): "Plataformas de implementación": Características de distintas plataformas de implementación y de sus detalles para poder compararlas y tomar una decisión. Respecto a si es adecuado al SBC particular (8) ⁃ Nombre y versión del software, Hardware necesario, Librerías de visualización, Lenguaje de implementación adecuado, Representación del conocimiento, Protocolos de interacción con otros sistemas, Permite control del flujo por paso de mensajes y varios hilos, Soporte para CK ⁃ (DM-3): "Especificación de los componentes de la arquitectura": Definir de forma concreta las interfaces entre los subsistemas y módulos, y las funcionalidades de estos elementos (10) ⁃ Controlador, Tareas, Métodos de las tareas, Inferencias, Métodos de las inferencias, Roles dinámicos, Roles estáticos, Bases del conocimiento, Construcciones del dominio, Vistas ⁃ Especificación de la aplicación sobre la arquitectura: Dos fases: ⁃ Proyectar la Información de los Modelos de Análisis: creando las instancias necesarias ⁃ (DM-4): "Detalles Específicos de Diseño": Indicar las decisiones de diseño para los elementos que aún no estén perfectamente definidos: ⁃ Controlador, Métodos de las tareas, Inferencias, Métodos de las inferencias, Roles dinámicos, Bases de conocimiento, Vistas Tema 4 - Ontologías Ontología (ED): Modelo estructural compartido (entre los expertos y sistemas) y el conjunto de tablas que especifican: ⁃ Significado en el dominio del observador y a nivel de conocimiento ⁃ Estructura formal del modelo ⁃ Significado en el nivel de los símbolos • Objetivo: facilitar la compartición y común comprensión de un dominio, permitiendo la comunicación entre personas, sistemas o ambos. • Representa: vocabulario y semántica común, "desatornillable" (reusable) de un dominio concreto • Papel: es de carácter estructural. Da pistas: vocabulario de entidades y relaciones que facilitan el modelado del conocimiento del dominio más que como piezas de reutilización directa. • • • Es un modelo estructural que proporciona un vocabulario de entidades y relaciones con un significado determinado y reutilizable. Proporciona una semántica común entre expertos (dominio del observador) y sistemas (nivel de conocimiento) pues su fin es el de compartir el conocimiento. Facilita el modelado del conocimiento a través de un conjunto de tablas. Componentes de las ontologías Componentes usados para formalizar e implementar ontologías: • Clases: Representan a los conceptos. Suelen estar organizadas en taxonomías para aprovechar la herencia ⁃ "Empresa" sería una clase, subclases suyas serían "Empresa privada" y "Empresa pública" ⁃ Atributos de clase: no tienen valores, puede tener una restricción en la descripción del atributo de tal forma que solo admita valores o conceptos (si es una relación) pertenecientes a una categoría o clase, pero nunca un valor. ⁃ "Tipo de control" sería un atributo de clase de "Empresa", no se le puede dar valor. En una "Empresa privada" su valor sería "Privado" y en una "Empresa pública" su valor sería "Público" ⁃ Metaclases: Clases cuyas instancias son clases. Permiten hacer una gradación del significado estableciendo diferentes capas de clases en la ontología en que están definidas. ⁃ Si persona es, no sólo subclase de animal, sino también instancia de clase. • Relaciones: Asociación entre los conceptos del dominio.. ⁃ Relaciones binarias: Son comunes en las ontologías. ⁃ Relación: Dominio de la aplicación --> Rango ⁃ LugarDeLlegada: viaje --> lugar; (lugarDeLlegada AA7462-Feb-08-2002 Seattle) ⁃ Es_demandante: Persona --> Pleito; ⁃ Tiene_demandante: Pleito --> Persona ⁃ Ranuras (slots): Relaciones binarias que expresan atributos de conceptos donde el rango es un tipo de datos (número, cadena de caracteres) en vez de un concepto • Axiomas: modelizan afirmaciones que siempre son ciertas. ⁃ Se usan para representar conocimiento que no se puede definir a través de otros componentes. ⁃ Sirven para verificar la consistencia de la ontología misma o de los conocimientos almacenados en una base de conocimientos, ⁃ Una persona no puede demandarse a sí mismo = Una persona no puede ser demandante y demandado en el mismo pleito • Instancias: Representan elementos o individuos en una ontología ⁃ Atributos de instancia: sí tiene asociado uno o más valores o instancias (un literal, un número, una instancia de otra categoría, etc.) ⁃ "INDRA" es una instancia de la clase "Empresa privada" que puede tener un atributo "Sede central" cuyo valor sea "Madrid" Metamodelos: Formalizaciones de ontologías de representación del conocimiento. • Formalizar ontologías: ⁃ UML ⁃ Diagramas entidad relación ⁃ Ontology Description Model (ODM): Especificación del Object Management Group (OMG) que describe metamodelos usando una notación formal para poder representarlos en lenguajes de ontologías. Tipos de ontologías Ontologías de dominio: capturan el conocimiento válido para un tipo particular de domino: medicina, matemática, ingeniería, el propio dominio de modelado del conocimiento… Ontologías de metadatos: proporcionan un vocabulario para describir el contenido de fuentes de información online. Ontologías genéricas (de sentido común): capturan conocimiento en general sobre el mundo y proporcionan nociones básicas y conceptos para cosas como el tiempo, el espacio, estados, eventos… Ontologías representacionales: no se comprometen con ningún dominio particular. Proporcionan entidades para la representación sin entrar en lo que podría representarse. Para una representación orientada a objetos o marcos, la ontología definiría entidades como marcos, atributos, restricciones… Ontología de la tarea proporciona términos específicos para una tarea particular. Esos términos no tienen que ser exclusivos de una tarea, pueden pertenecer a varias. Así, por ejemplo: • En la ontología de la tarea de diagnóstico los términos podrían ser: hipótesis, observaciones, hallazgos, y diagnósticos. • Además, observaciones podría pertenecer a, por ejemplo, monitorización e hipótesis puede aparecer en la ontología de otras tareas. Ontología del método proporciona términos específicos de un particular PSM. Intenta resolver el problema de la interacción según el cual, el conocimiento del dominio no puede ser representado independientemente de la forma en que va a ser usado en el PSM (y viceversa). Es necesario resolver esta interacción, y para ello se utilizan: • Suposiciones (assumptions): hacen explícito el conocimiento implícito en ontologías y métodos para su adaptación en un problema particular. ONTOLOGÍAS SIMPLES: • Catálogo (Listado finito de términos), donde cada término identifica inequívocamente a un producto. • Glosario: lista de términos y su significado, descrito este en lenguaje natural • Tesauro: Proporciona información adicional al glosario: Sinónimos, antónimos, etc. • Jerarquía informal: describe una relación generalización-especialización de tipo básico y no estricto. Un término puede ser una particularización de una clase específica pero no de una más genérica. • Jerarquía formal: describe una relación un-tipo-de estricta. Se definen clases y subclases. • Jerarquía formal con instancias. • Marcos: describen términos a través de atributos o propiedades. ⁃ Atributos especificados en la clase más general y son heredados por sus descendientes. ⁃ Asociación entre conceptos a través de las propiedades: la propiedad “está hecho de” asociará un producto con el material con el que está fabricado. • Propiedades restringidas: Valores posibles de los atributos o propiedades que describen el concepto. Por ejemplo “esta hecho de” será un atributo cuyo tipo de valores se corresponde con los elementos de la clase (o de una subclase de) “materiales”. • Valores restringidos. Valores de los atributos restringidos por expresiones más globales, por ejemplo, expresiones matemáticas sobre los valores de otros atributos. • Características relacionales. Se especifican características de las relaciones, tales como indicación de clases disjuntas, exhaustividad, relación inversa, etc. Objetivos de las ontologías simples: • Disponer de un vocabulario controlado: Uso común de los mismos términos. • Organizar un sitio Web, proporcionando categorías para mejorar la visualización y la búsqueda de contenidos • Como apoyo para determinar la acepción de un término: Jordan, se busca el río o el jugador. Ejemplos de ontologías simples: • UMLS: Ejemplo de ontología en el dominio de la medicina del gobierno de los EEUU • CYC (Cycorp): Diccionario de 6000 conceptos y 60.000 afirmaciones sobre ellos. Lo proponen como "base para el consenso de la realidad" • DMOZ: Era Open Source y pretendía ser el más grande y comprensivo directorio de la Web. Muerto • RosettaNet: Proyecto de más de 400 empresas TICs para crear, implementar y promocionar estándares abiertos para el comercio electrónico. ONTOLOGÍAS ESTRUCTURADAS son útiles para: • Chequeo de consistencia: Si la edad de una persona está en el rango de valores posibles • Apoyo a la interoperabilidad: Definir términos en base a otros ⁃ Profe_UNED=miembro de Profesor cuya propiedad “da clases en” contiene el valor “UNED” • Apoyo a la validación y verificación. ⁃ Si se establece que un profesor no puede trabajar en más de una Universidad, esto se comprobaría buscando “da clases en” con más de un valor. ⁃ Si un elemento de la clase profesor que no tiene un valor en “da clases en” también sería un error, puesto que un profesor se define como alguien que da clases en un Centro. • Definir tests de verificación: no solamente facilitar este tipo de comprobaciones sino realmente contenerlas. Un lenguaje de marcas podría soportar este tipo de información: definiciones de términos para ser un query de este tipo. • Apoyo a la configuración: Se pueden definir interacciones entre propiedades, de tal forma que el valor de una propiedad pueda determinar el valor de otra. Propagación de restricciones. ⁃ Si se compra un equipo de música la selección de un altavoz determina el otro • Apoyo a la búsqueda estructurada, comparativa y particularizada. a partir de la ontología y de su descripción de clases, se podría efectuar una presentación comparativa de modelos etc. Apoyaría también la particularización de una búsqueda. Por ejemplo, si el resultado de una búsqueda es demasiado extenso, puede pedir al usuario que determine la búsqueda a partir de las particularizaciones de concepto, con información por ejemplo del número de respuestas por categoría. Usos de las ontologías Razonamiento terminológico (Construcción de ontologías): 3 tareas: • Ver si la definición de una clase ⁃ es consistente por ella misma o respecto a otras definiciones de clases ⁃ es más general que otra clase • Construir explícitamente la jerarquía de clases respecto a esas definiciones Razonamiento de instancias (Uso ontológico): Partiendo de una ontología ya disponible (clases, relaciones e instancias9 • Dada una instancia: • Encontrar la clase más específica que la describa • Saber si pertenece a una clase determinada • Obtener todas las instancias relacionadas por atributos con ella ⁃ Dada una clase encontrar las instancias (dentro de un conjunto) que pertenecen a ella • Dado un conjunto de instancias: • Saber si son consistentes respecto una ontología • Encontrar la ontología más pequeña respecto a la que son coherentes • Hacer otras cuestiones más complejas sobre instancias pares de instancias relacionadas entre ellas Escenarios de aplicación de ontologías Construcción neutral: • Se implementa la ontología sobre un dominio determinado en un único lenguaje. • Se usará por diferentes aplicaciones como fuente de conocimiento, pero necesitará una traducción al lenguaje que necesite la aplicación. • Ventaja: la reutilización del conocimiento. ⁃ OntoGeneration [Aguado, 1998], que usa la ontología lingüística GUM6 (Generalized Upper Model) ⁃ KACTUS7 proyecto que trataba de facilitar la reutilización para el modelado del conocimiento sobre diferentes sistemas técnicos. Acceso común a la información: • La ontología proporciona un vocabulario común y consensuado para las diferentes personas y aplicaciones, sin necesidad de traducirla entre lenguajes y formatos. • Ventaja: la interoperatividad y un uso más efectivo de las fuentes de conocimiento. ⁃ WMC8 (WorkFlow Mangement Coalition): proyecto que proporciona una ontología, descrita en lenguaje natural, a modo de glosario de términos técnicos para vendedores de sistemas de gestión Indexación: • Se usa la ontología como índice para localizar términos en búsquedas basadas en conceptos. • Ventaja: acceso más rápido, consensuado y controlado a los recursos de información almacenados. ⁃ IBROW3 [Benjamins et al., 1998] proyecto que desarrolla un agente para la configuración de SBCs a partir de una biblioteca de métodos de resolución de problemas en la red. Lenguajes para implementar ontologías Lenguajes de ontologías basados lógica descriptiva: • Loom [MacGregor, 1991] Tiene soporte de inferencia por lo que se usa mucho cuando se requiere integración inteligente o fuentes de información heterogéneas y recogida de información. Se usa mucho para ontologías de nivel superior para las que hace falta mucha expresividad. Lenguajes de ontologías basados en marcos combinados con lógica de primer orden: • Ontolingua [Farquhar y otros, 1997; Gruber, 1992] • OCML [Motta, 1999] • FLogic [Kifer y otros, 1995] • Tanto OCML como FLogic se recomiendan para usar conjuntamente PSMs y ontologías de dominio pues respaldan explícitamente la integración y la reutilización de bibliotecas Lenguajes de ontologías basados en la Web: Sintaxis fundamentada en los lenguajes de marcación como HTML y XML. Mejores para la Web semántica y el intercambio de ontologías entre aplicaciones. • RDF De W3C: Lenguaje basado en la red semántica para describir recursos Web • RDF Schema Extensión de RDF con primitivas basadas en marcos • RDF(S): combinación de RDF y RDF Schema: Sirve para representar conceptos, taxonomías de conceptos y relaciones binarias. ⁃ Para este lenguaje se han creado motores de inferencia y lenguajes de consulta • OWL (Ontology Web Language) - Recomendado por el W3C ⁃ Está construido encima de RDF(S) y amplía su expresividad con más primitivas ⁃ Puede representar expresiones complejas y describir conceptos y relaciones. ⁃ Tres capas (Lite, DL y Full), cada una de las cuales ofrece distintos niveles de expresividad según las necesidades de representación e inferencia de la ontología. ⁃ Se basa en SHOIN(D+), un lenguaje de lógica descriptiva que cuenta con varios motores de inferencia que se pueden utilizar para examinar las restricciones de conceptos, propiedades e instancias y para clasificar, automáticamente, los conceptos de forma jerárquica ⁃ Ejemplo: permite describir un vuelo como una clase de viaje en el que el medio de transporte utilizado es un avión. Si determinamos esta condición como necesaria y suficiente y luego definimos un viaje en el que se utiliza un avión ligero como medio de transporte (y asumimos que avión ligero es una especialización de avión), entonces el razonador concluirá que este viaje es una especialización de vuelo. • WSML (Web Service Modelling Language) Diseñado para la Web Semántica ⁃ Objetivo: Que se pueda usar para la representación de ontologías y también para los Servicios Web Semánticos ⁃ Tres capas, cada una basada en: lógica descriptiva, programación lógica y lógica de primer orden. Ontologías - Metodologías y herramientas METHONTOLOGY: metodología para el desarrollo de ontologías METHONTOLOGY: metodología diseñada por el Grupo de Ingeniería Ontológica de la Universidad Politécnica de Madrid (UPM) que permite construir ontologías en el nivel de conocimientos, y que se elaboró partiendo de las principales actividades identificadas en el proceso de desarrollo de software de IEEE [IEEE, 1996], y de otras metodologías de ingeniería del conocimiento. • METHONTOLOGY para cada una de las actividades que se realizan durante el proceso de desarrollo propone: ⁃ Proceso de desarrollo ⁃ Ciclo de vida de la ontología ⁃ Especificación • ODE y WebODE: Herramientas creadas para dar apoyo tecnológico a METHONTOLOGY • Otras herramientas que también se pueden usar: Protégé-2000, OntoEdit, KAON Proceso de desarrollo de ontologías Actividades del proceso de desarrollo de ontologías: • Actividades de gestión: ⁃ Planificación: Tareas que hay que realizar y en qué orden. Tiempo y recursos necesarios. ⁃ Control: Garantiza que las tareas terminen de la forma deseada. ⁃ Garantía de calidad: Asegura la calidad de todos los productos construidos: ontología, programas y documentación • Actividades del desarrollo: ⁃ Análisis previos: ⁃ Estudio del entorno: Identifica el problema a resolver por la ontología y las aplicaciones con las que tiene que integrarse ⁃ Estudio de viabilidad: Ver si es posible y conveniente ⁃ Desarrollo: ⁃ Especificación: establece la razón por la que se construye la ontología, qué usos se quiere que tenga y quiénes son los usuarios finales ⁃ Conceptualización: Actividad independiente del lenguaje de implementación que estructura el conocimiento del dominio como modelos con significado: ⁃ Partiendo de cero ⁃ Reutilizando modelos ya existentes; realizando actividades como ⁃ Recortar ramas de las taxonomías existentes ⁃ Extender la cobertura de las ontologías añadiéndoles nuevos conceptos a los niveles más altos de sus taxonomías ⁃ Especializar las ramas que requieren mayor granularidad. ⁃ Formalización: transformar el modelo conceptual en un modelo formal o semicomputable ⁃ Implementación: crea modelos computables en un lenguaje de ontologías ⁃ Trabajo posterior: ⁃ Mantenimiento: actualizar y corregir la ontología si fuera necesario. Desde este momento la ontología ya se puede reutilizar por otras ontologías o aplicaciones. ⁃ Evolución: controlar los cambios que se producen en la ontología y sus efectos creando y ocupándose de las diferentes variantes de la ontología • Actividades de apoyo: ⁃ Adquisición de conocimientos: que los distintos expertos tienen sobre un determinados dominio o adquirir conocimientos a través de algún tipo de proceso semiautomático y que llamamos “aprendizaje de ontologías” ⁃ Evaluación: emitir un juicio técnico sobre las ontologías, sobre sus entornos de software asociados y sobre su documentación. Dicho juicio se hace respecto a un marco de referencia, tanto durante cada fase como entre las fases del ciclo de vida de la ontología ⁃ Integración: necesaria cuando se construye una ontología reutilizando otras ontologías disponibles. ⁃ Documentación detalla de forma clara y exhaustiva cada uno de los estadios completados, así como los productos creados. ⁃ Mezcla: consiste en extraer una nueva ontología de otras ontologías del mismo dominio. La ontología así obtenida puede unificar conceptos, terminología, definiciones, restricciones, etc, de las ontologías fuente. La mezcla de dos o más ontologías se puede realizar bien durante el tiempo de ejecución, bien durante el diseño. ⁃ Gestión de la configuración: consiste en registrar todas las versiones de la documentación y del código de la ontología con objeto de controlar los cambios. ⁃ ⁃ Alineamiento se establecen diferentes tipos de correspondencias entre las ontologías implicadas, de tal forma que las ontologías originales no se fusionan Actividad multilingüe: establecer correspondencias entre ontologías y descripciones formales de conocimientos lingüísticos. No siempre se considera una actividad de apoyo, sin embargo, es muy pertinente en el contexto de las ontologías en red que están disponibles en la Web Semántica. Ciclo de vida del desarrollo de ontologías Ciclo de vida de la ontología: se encarga de expresar cuándo se tiene que hacer cada actividad • Establece el conjunto de etapas o fases que atraviesa la ontología durante su vida útil, y describe las actividades que hay que realizar en cada fase y la relación entre las fases (relación de precedencia, regreso o retorno, etc.) • Ciclo de vida sin reutilización: • Ciclo de vida con reutilización: Proceso de desarrollo de ontologías en red: Conceptualización de una ontología - Teoría Tareas de conocimiento estructurado: El proceso no es secuencial, pero hay que seguir cierto orden para asegurar a consistencia y completitud dl conocimiento representado Tarea 1: Construir el glosario de términos. Incluir: • Términos: Conceptos, instancias, atributos, relaciones entre conceptos, constantes… • Descripciones de los términos para el lenguaje natural • Antónimos y sinónimos. • Tipo Tarea 2: Construir taxonomías de conceptos: Establecen una jerarquía entre los conceptos del glosario, • Relaciones taxonómicas recomendadas: ⁃ A es subclase de B si: ⁃ Si y solo si cada instancia de A es también una instancia de B ⁃ Un concepto puede ser subclase de 1 o más clases ⁃ descomposición disjunta de C: Las instancias de C serán directamente de la clase C o de solo una de sus subclases ⁃ descomposición exhaustiva de C: Todas las instancias de C deberán serlo de una o varias de sus subclases. ⁃ partición de C: Conjunto de subclases de C que cubren C y donde las instancias de C deben pertenecer a una de sus subclases. • Errores a evitar: ⁃ Un elemento no puede ser una instancia de dos clases de una descomposición disjunta ⁃ No puede haber bucles en la taxonomía de conceptos ⁃ Dos términos no pueden tener el mismo significado Tarea 3: Construir diagramas de relaciones binarias ad hoc: Establecer relaciones entre conceptos de las taxonomías con los conceptos en cuadrados y la relación escrita sobre la línea, incluyendo los antónimos. • Errores a evitar: ⁃ Los dominios y rangos de cada argumento de cada relación deben delimitar de forma precisa y exacta las clases apropiadas para la relación. ⁃ Los dominios y los rangos no pueden ser imprecisos o excesivamente concretos. Tarea 4: Construir el diccionario de conceptos: Especificando: • Atributos de clase, atributos de instancia, relaciones que tienen por dominio el concepto e instancias (opcionales) de cada concepto de la taxonomía. TAREAS DE 5 A 8 EN PARALELO Tarea 5: Definir las relaciones binarias ad hoc: Tabla con nombre, concepto origen, cardinalidad, concepto destino, cardinalidad y relación inversa. Tarea 6: Definir los atributos de instancia: Para cada atributo de instancia de cada concepto • Especificar ⁃ Básico: nombre, concepto al que pertenece, tipo de valor, intervalo de valores (si numéricos), cardinalidad mínima y máxima ⁃ Atributos de instancia, atributos de clase y constantes que se han utilizado para inferir los valores del atributo ⁃ Atributos que se pueden deducir con valores de este atributo ⁃ Fórmulas o reglas que permitan inferir valores del atributo ⁃ Referencias utilizadas para definir el atributo • * Como se han necesitado atributos numéricos, hay que integrar la ontología Standard Units durante esta actividad, en vez de esperar a llegar a la implementación. Tarea 7: Definir los atributos de clase: Para cada atributo de clase especificar: • Nombre, concepto en que se define, tipo de valor, valor(es) en ese concepto definido, cardinalidad • Atributos de instancia cuyos valores pueden inferirse con el valor de este atributo de clase • … Tarea 8: Definir las constantes: Para cada constante especificar: • nombre, el tipo de valor, el valor, la unidad de medida para las constantes numéricas • atributos que se pueden inferir con la constante. TAREAS 9 Y 10 EN PARALELO Tarea 9: Identificar y definir axiomas formales: • Identificar los axiomas formales que necesita la ontología • Describir mediante: nombre, descripción en lenguaje natural, expresión que describe formalmente el axioma con lógica de primer orden, conceptos asociados, atributos y relaciones asociadas y las variables utilizadas en la expresión formal. Tarea 10: Identificar y definir las reglas: • Identificar las reglas que se necesitan • Describir mediante: nombre, descripción en lenguaje natural, expresión que describe formalmente la regla, los conceptos, atributos y relaciones afectados, y variables usadas en la expresión formal. Tarea 11: Definir instancias: Especificando: • Nombre, concepto al que pertenece, y los atributos y valores (cuando los valores se conocen). Conceptualización de una ontología - Ejemplo Tarea 1: Construir el glosario de términos Tabla 5.1: Fragmento del glosario de términos de la ontología de entidades legales. Tarea 2: Construir taxonomías de conceptos Figura 5.5: Una parte de la taxonomía de conceptos de una ontología de entidades legales. Tarea 3: Construir diagramas de relaciones binarias ad hoc Figura 5.6: Parte del diagrama de relaciones binarias ad hoc de la ontología de entidades legales. Tarea 4: Construir el diccionario de conceptos Tabla 5.2: Parte del diccionario de conceptos de la ontología de entidades legales. TAREAS DE 5 A 8 EN PARALELO Tarea 5: Definir las relaciones binarias ad hoc Tabla 5.3: Parte de la tabla de relaciones binarias ad hoc de la ontología de entidades legales. Tarea 6: Definir los atributos de instancia Tabla 5.4: Parte de la tabla de atributos de instancia de la ontología de entidades legales. Tarea 7: Definir los atributos de clase Tabla 5.5: Parte de la tabla de atributos de clase de la ontología de entidades legales. Tarea 8: Definir las constantes Tabla 5.6: Parte de la tabla de constantes de la ontología de entidades legales. TAREAS 9 Y 10 EN PARALELO Tarea 9: Identificar y definir axiomas formales Tabla 5.7: Parte de la tabla de axiomas de la ontología de entidades legales. Tarea 10: Identificar y definir las reglas Tabla 5.8: Parte de la tabla de reglas de la ontología de entidades legales. Tarea 11: Definir instancias Tabla 5.9: Parte de la tabla de instancias de la ontología de entidades legales. Metodologías y métodos para desarrollar ontologías 1990, [Lenat y Guha, 1990] publicaron una serie de guías generales 1995, [Grüninger y Fox, 1995], propusieron las primeras directrices • Es la más formal de todas 1996, [Bernaras y otros, 1996] presentaron, como parte del proyecto Esprit KACTUS, el método utilizado para construir una ontología en el dominio de las redes eléctricas 1996, [Corcho y otros, 2007; Fernández-López y otros, 1997, 1999] Metodología METHONTOLOGY que siguió ampliándose • Es la que describe de forma más detallada los procesos a realizar • La única que ha adaptado el ciclo de vida al entorno de las ontologías en red 1997, [Benton y Kambhampati, 1997] método para construir ontologías, basado en la ontología SENSUS 2001, [Staab y otros, 2001] Metodología On-To-Knowledge , desarrollada dentro del proyecto del mismo nombre. • Es la que cubre mayor número de actividades aunque con muy pocas descripciones de los procesos llevados a cabo Actividades de desarrollo, y sobre todo las de conceptualización e implementación: son las que aparecen de forma más detallada en todas las metodologías. Se echan en falta propuestas para actividades de gestión (planificación, control y garantía de calidad), así como de actividades previas al desarrollo (estudio del entorno) y posteriores al desarrollo (por ejemplo, la [re]utilización). Herramientas para desarrollar ontologías Dependientes del lenguajes de ontologías: • Ontolingua Server: para ontologías con Ontolingua y con KIF - [Farquhar y otros, 1997] • Ontosaurus Server: con Loom - [Benton y Kambhampati, 1997] • OilEd: primero con OIL, luego con DAML+OIL y ahora con OWL. - [Bechhofer y otros, 2001] Independientes del lenguaje de ontologías y con arquitecturas extensibles • WebODE (Entorno Web para Diseñar Ontologías) [Arpírez y otros, 2003] - desarrollada por el Grupo de Ingeniería Ontológica de la Universidad Politécnica de Madrid (UPM). Sucesor de ODE. ⁃ Usa la metodología METHONTOLOGY para construir ontologías ⁃ Representa el conocimiento basándose en marcos y en lógica de primer orden ⁃ Motor de inferencias: Ciao Prolog [Hermenegildo y otros, 2000] ⁃ Evalúa ontologías mediante un módulo que realiza las evaluaciones según el método OntoClean [Guarino y Welty, 2002; Welty y Guarino, 2001] ⁃ Funciones para evaluar ontologías tales como la que analiza la consistencia de las ontologías o los servicios de evaluación de RDF(S), DAML+OIL, y de OWL. Detectan los errores de las ontologías implementadas en los susodichos lenguajes a la vez que sugieren unos criterios mejores para el diseño de las ontologías. ⁃ Gestión de la seguridad. ⁃ Herramienta extensible para crear ontologías basada en tablas y grafos. Contiene: ⁃ ODEDesigner: interfaz gráfica de usuario para editar gráficamente taxonomías de conceptos y relaciones ⁃ WAB (WebODE Axiom Builder) editor gráfico de axiomas y reglas formales ⁃ ODEMerge: servicio de mezcla que realiza y supervisa la fusión de conceptos, atributos y relaciones binarias ad hoc pertenecientes a dos ontologías construidas para el mismo dominio ⁃ ODEKM: Sistema de gestión de conocimientos basado en ontologías ⁃ ODESeW: Generador automático de portales de la Web Semántica ⁃ ODESWS: Herramienta de edición de servicios de la Web Semántica • • • • • Protégé-2000 [Noy y otros, 2000] - Stanford Medical Informatics (SMI) de la Universidad de Stanford ⁃ Aplicación autónoma, de código abierto y con arquitectura extensible. ⁃ Representa el conocimiento basándose en marcos y en lógica de primer orden ⁃ Puede representar metaclases ⁃ Motor de inferencias interno: PAL ⁃ Evalúa ontologías mediante un módulo que realiza las evaluaciones según el método OntoClean [Guarino y Welty, 2002; Welty y Guarino, 2001] ⁃ Clasificaciones automáticas (extensiones de OWL) al conectarse a un razonador de lógicas descriptivas. ⁃ Incorpora funcionalidades de sincronización para cooperar y colaborar en la construcción de ontologías ⁃ Biblioteca de extensiones (plugins) que permiten por ejemplo: ⁃ Exportar/importar ontologías en diferentes formatos (FLogic, Jess, XML, Prolog) ⁃ diseño de lenguajes, [Knublauch y otros, 2004] ⁃ acceso a OKBC ⁃ creación y ejecución de restricciones (PAL) ⁃ fusión de ontologías [Noy y Musen, 2000] OntoEdit [Benton y Kambhampati, 2002] - desarrollada en la Universidad de Karlsruhe y comercializada por Ontoprise ⁃ Funcionalidad para explorar y editar ontologías ⁃ Usa la metodología On-To-Knowledge para construir ontologías ⁃ Representa el conocimiento basándose en marcos y en lógica de primer orden ⁃ Motor de inferencias: FLogic [Kifer y otros, 1995] ⁃ Extensiones que se encargan de: ⁃ hacer inferencias utilizando Ontobroker ⁃ Exportar/importar ontologías en diferentes formatos (FLogic, XML, RDF(S) y OWL) ⁃ Versiones gratuita, Ontoedit Free y profesional, Ontoedit Professional. KAONI [Maedche y otros, 2003] ⁃ entorno de ingeniería ontológica, de código abierto y extensible ⁃ Basada en redes semánticas y en marcos ⁃ Representa el conocimiento basándose en marcos y en lógica de primer orden ⁃ Puede representar metaclases ⁃ Motor de inferencias: No tiene ⁃ define el modelo de conocimientos que subyace en una extensión de RDF(S) ⁃ OI-modeler: editor de estas herramientas y el encargado de hacer evolucionar las ontologías, encontrar correspondencias entre ellas y generarlas a partir de las bases de datos, etc. SNOBASE o IBM Ontology Management System ⁃ Representa el conocimiento basándose en lógica descriptiva ⁃ Motor de inferencias: OWL-Ql ⁃ Carga ontologías desde ficheros a través de Internet para crear, modificar, consultar y almacenar ontologías localmente ⁃ Permite manipular ontologías escritas en RDF Schema y OWL. ⁃ Respalda una variante de OWL Query Language (OWL-QL) [Fikes y otros, 2003]. Swoop [Kalyanpur y otros, 2006] ⁃ Representa el conocimiento basándose en lógica descriptiva ⁃ Motor de inferencias: razonadores de lógica de primer orden (por defecto, Pellet) ⁃ herramienta basada en una arquitectura de extensiones ⁃ Respalda la anotación en colaboración a través de Annotea [Koi- vunen, 2006] ⁃ Detecta las inconsistencias. ⁃ Actualmente se trabaja para que Swoop dé soporte a la evolución de ontologías. Interoperabilidad: con otras herramientas, con sistemas de información y con bases de datos, así como la traducción a y desde algunos lenguajes de ontologías ⁃ Casi todas las herramientas importan y exportan XML y otros lenguajes de demarcación ⁃ No existe un estudio que compare la calidad de todos estos traductores, tampoco existen resultados empíricos sobre la posibilidad de intercambiar ontologías entre diferentes herramientas ni sobre la cantidad de conocimientos que se pierden en los procesos de traducción Tema 5 - Evaluación de SBCs Verificación de sistemas inteligentes Verificación de sistemas inteligentes: Comprobar que el sistema cumple las especificaciones de diseño y que no tenga errores ni en los mecanismos de inferencias ni en la base de conocimiento, asegurando que hayan sido diseñados e implementados de forma correcta. Cumplimiento de las especificaciones Cumplimiento de las especificaciones: Este análisis lo pueden hacer los desarrolladores, los usuarios, los expertos o los evaluadores.Hay que comprobar si: • Paradigma de representación del conocimiento implementado es el adecuado • Técnica de razonamiento empleada es la adecuada • Diseño e implementación se han hecho modularmente • Conexión con el software externo se realiza de forma adecuada • Interfaz de usuario cumple las especificaciones • Las facilidades de explicación son adecuadas para los potenciales usuarios del sistema • Requisitos de rendimiento en tiempo real se cumplen • Mantenimiento del sistema es posible • Especificaciones de seguridad se cumplen • La base del conocimiento está protegida ante modificaciones no autorizadas Verificación de los mecanismos de inferencia Motor de Inferencias incluido en la herramienta de desarrollo: • Elegir herramientas con Motores de Inferencias certificados • Conocer el funcionamiento exacto de la herramienta para evitar errores • Comprobar que el MI funcione como dicen los manuales ⁃ Hacer más pruebas si el dominio es crítico Motor de Inferencias propio: • Seguir el proceso de verificación de las técnicas clásicas de IS, ya que es un software convencional. Verificación de la base de conocimientos Para asegurar que el sistema ha sido diseñado e implementado de forma correcta, no que las respuestas sean correctas. Anomalías: un uso poco común del esquema de representación del conocimiento. Son indicadores de errores potenciales, aunque hay anomalías que no son errores, y viceversa. • Son la base de la verificación Comprobar la CONSISTENCIA: vigilando las siguientes reglas: • Reglas redundantes: Afectan a la eficiencia y al mantenimiento del sistema ⁃ Sintácticas: Reglas con las mismas premisas e idénticas conclusiones ⁃ Semánticas: Reglas cuyas premisas o conclusiones son idénticas en el significado ⁃ INCERTIDUMBRE: ERROR pues modificarían los pesos • Reglas conflictivas: Reglas con las mismas premisas, pero conclusiones contradictorias • Reglas englobadas en otras: Reglas con las mismas conclusiones, pero una de ellas tiene restricciones adicionales en la premisa. ⁃ ERROR: Puede eliminarse la que tiene más restricciones (la englobada) ⁃ INCERTIDUMBRE: Puede ser un refinamiento y cada una tener un peso diferente. • Reglas circulares: conjunto de reglas que al comenzar por una determinada condición, al final del razonamiento se vuelve a la misma condición. ⁃ ERROR pues si no hay mecanismos que lo eviten provocan bucles infinitos ⁃ INCERTIDUMBRE: los ciclos se pueden romper cuando varían los pesos • Condiciones IF innecesarias: Reglas con las mismas conclusiones, pero la premisa de una de ellas está en contradicción con la premisa de otra y el resto de premisas son equivalentes. ⁃ ERROR: Se puede eliminar la premisa que tiene la contradicción. ⁃ INCERTIDUMBRE: pueden usarse para variar la confianza de la conclusión final Comprobar la COMPLETITUD: vigilando las siguientes situaciones que pueden indicar huecos en la BC: • Valores no referenciados de atributos: Cuando uno de los posibles valores de un atributo no aparece en el IF de ninguna regla. ⁃ Puede provocar que el sistema no alcance la conclusión o llegue a conclusiones erróneas cuando aparece dicho valor. • Valores ilegales de atributos: Cuando una regla hace referencia a valores que no están entre los posibles de un atributo. ⁃ Puede ser un error en la escritura o que el conjunto de valores válidos sea incompleto • Reglas inalcanzables: ⁃ Encadenamiento hacia atrás: la conclusión de una regla no es una meta ni está en el IF de ninguna otra regla ⁃ Encadenamiento hacia adelante: la premisa de una regla no se puede obtener del exterior ni está en el THEN de ninguna otra regla • Reglas “sin salida”: ⁃ Encadenamiento hacia atrás: las inalcanzables en el encadenamiento hacia adelante. ⁃ Encadenamiento hacia adelante: las inalcanzables en el encadenamiento hacia atrás. • INCERTIDUMBRE: Más difíciles de detectar las reglas inalcanzables y las sin salida Validación de sistemas inteligentes Validación de sistemas inteligentes: Se toma el sistema como una caja negra donde hay que comprobar que se está construyendo el producto correcto. Para ello los resultados deben ser correctos y se deben cumplir las necesidades y requisitos del usuario. Personal que debe realizar la validación: • Conocedor del sistema, aunque quien lo ha desarrollado tiende a sobrevalorar los resultados. • Expertos humanos, mejor si no quienes han colaborado en el desarrollo. • Falacia del superhombre: Hay que evitar exigirle más al sistema que lo que se exigiría a un humano Se debe validar: • Resultados finales • Resultados intermedios: su análisis da una descripción del funcionamiento interno y ayuda a corregir los errores • Estructuras de razonamiento: que el sistema alcanza los valores correctos por las razones correctas. Si no puede haber errores al ampliar la base del conocimiento Proceso de validación (casuística): • Obtención de la casuística de validación: ⁃ Casos de prueba en ⁃ cantidad suficiente para que las medidas de rendimiento obtenidas sean estadísticamente significativas ⁃ representativos en función del dominio de entrada ⁃ Muestreos estratificados, seleccionando más casos de los resultados más probables. ⁃ Equilibrados si hay muchos casos de una misma categoría ⁃ Criterio para obtener un resultado fuera del sistema: ⁃ Validación contra el experto ⁃ Validación contra el problema • Extraer los datos característicos de cada caso de prueba • Obtener el resultado del sistema inteligente para eso datos. • Comparar los resultados del sistema con los del criterio de validación elegido obteniendo el rendimiento Validación contra el experto: Se usan los opiniones e interpretaciones de los expertos para compararlos con los resultados del sistema. Es el criterio más usado ya que el propósito de un SBC es obtener el resultado que obtendría un experto… Puede ser una validación contra: • Un único experto: Es lo más común, pero lo menos objetivo. • Un grupo de expertos: Se obtienen varias opiniones y se puede comparar el grado de consistencia entre los expertos, usando procedimientos estadísticos para evaluar sus interpretaciones. • Un consenso de expertos: Uniendo las opiniones de varios expertos en una única opinión, aunque puede dar lugar también a errores. Para lograr el consenso es común usar el método Delphi. Validación contra el problema: cuando es posible obtener una solución real del problema (como con ciertas patologías médicas) el método es completamente objetivo y se puede obtener su efectividad y compararla con la de un grupo de expertos, que probablemente tampoco sea efectivo al 100% Métodos cuantitativos de validación Se usan medidas estadísticas para cuantificar el rendimiento del SBC, desde las más complejas y difíciles de interpretar (contrastes de hipótesis, análisis de la variada, intervalos de confianza…) a otras más comunes como: • Medidas de pares: Evalúan el grado de acuerdo entre los resultados de dos expertos (uno puede ser el sistema inteligente) obteniéndose tablas de contingencia que relacionan de forma cruzada datos categóricos. Con ellas se pueden obtener: ⁃ Índice de acuerdo: Cociente entre número de observaciones de acuerdo entre las totales ⁃ Índice de acuerdo dentro de uno: Ampliando cuando están de acuerdo. ⁃ Índice kappa: Corrige los acuerdos debidos a la casualidad. ⁃ Kappa ponderada: Corrige los acuerdos debidos a la casualidad ponderando los desacuerdos • Medidas de grupo: Se llevan a cabo los tests de pares anteriores obteniéndose una tabla resumen con los resultados obtenidos y sobre ella realizar los siguientes test: ⁃ Medidas de Williams: Comparando el sistema experto con el resto de expertos para obtener si el acuerdo entre el SI y el grupo de expertos es menor/igual/mayor que entre el grupo de expertos ⁃ Análisis de agrupamientos: Se hacen grupos de expertos según la similitud de sis interpretaciones y se ve en qué grupo quedaría el SI • Ratios de acuerdo: Miden el acuerdo del SI con una referencia estándar que puede ser un experto (o consenso de expertos) o la solución real al problema. Obteniéndose los siguientes ratios: ⁃ Índice de acuerdo para una categoría: ⁃ Sensibilidad: Ratio de verdaderos positivos ⁃ Ratio de falsos negativos: 1 - sensibilidad ⁃ Especifidad: Ratio de verdaderos negativos ⁃ Ratio de falsos positivos: 1 - Especifidad ⁃ Curvas ROC: Representación gráfica que relaciona los verdaderos positivos con los falsos positivos ⁃ Valor predictivo positivo: Veces que se ha interpretado correctamente la categoría entre veces que ha aparecido ⁃ Valor predictivo negativo: Veces que se ha interpretado correctamente la ausencia de la categoría categoría entre veces que no aparecía ⁃ Medida de Jaccard: Mide los acuerdos en las situaciones donde es más importante los positivos que los negativos y cuando en número de negativos es mayor que el de positivos: a/ (a+b+c) Síntesis metodológica del proceso de validación Metodología que se basa en la caracterización del proceso de validación, y en la utilización de medidas cuantitativas se compone de tres partes claramente diferenciadas: Planificación del proceso Tras esta fase de planificación del proceso de validación se obtendrán una serie de estrategias que indicarán cómo realizar la validación del SI. Para ello hay que tener en cuenta los siguientes aspectos. Influencia del dominio de aplicación: La mayoría de los SI se usan en entornos críticos donde: • el coste de una decisión errónea es elevado • la validación debe ser más rigurosa • las técnicas que se pueden usar están más limitadas, ya que no siempre se puede manipular el entorno. Criterio de validación: El dominio de aplicación puede limitar la elección del criterio de validación cuando: • Hay pocos expertos disponibles --> No se puede validación contra grupo ni contra un consenso que sería mejor • No se puede conocer el resultado real --> No se puede hacer validación orientada al problema Perfil del usuario final: Si los usuarios finales: • Son expertos --> suelen estar involucrados en los tests de campo • No son expertos --> solo pueden realizar una validación orientada al uso Influencia del sistema: ¿Hacer una validación de subsistemas? • Sí, cuando se puede dividir en módulos independientes. • No, cuando la interacción es elevada y los módulos actúan como salidas y entradas unos de otros Manejo de incertidumbre: Si el sistema maneja medidas de incertidumbre se deben hacer estudios de sensibilidad, realizando pequeños cambios en los datos de entrada y estudiando su efecto en la salida Tipo del problema tratado: Se pueden diferenciar dos tipos principales: • Problemas de análisis: se dan una serie de casos y el resultado es un tipo de categoría (Diagnósticos, predicciones…) ⁃ Más sencillos pues se pueden aplicar sobre casos históricos y encontrar referencias estándares • Problemas de síntesis: El resultado incluye la realización de un plan de acción (elaborar un plan terapéutico) ⁃ Para validarlos habría que actuar sobre el dominio de aplicación para ver su evolución y serán aún más difícil si el dominio es crítico. Relación con el entorno: Los SI suelen estar integrados en un sistema mayor haciendo su validación más compleja pues también habría que validar los otros elementos del entorno (bases de datos, sistemas de entrada y de salida…) Inferencia de la fase de desarrollo: Según evoluciona el desarrollo, evoluciona el tipo de validación: • Pocos casos ya resueltos. Realizados por el InCo • Aumenta el número de casos y su complejidad. Se necesitan expertos externos. • Énfasis en aspectos orientados al uso • Validación en el entorno de trabajo. Fase de aplicación de técnicas En esta fase se llevan a la práctica las estrategias obtenidas en la fase de planificación. Está compuesta por los siguientes pasos: Captura de la casuística: Se debe obtener una muestra de casos resueltos completa y representativa para poder comparar los resultados. Cuando el desarrollo del sistema sea incremental, se irán aumentando el número de casos y su cobertura. Preprocesado de los datos: Para obtener información útil durante el análisis son importantes las siguientes técnicas de preprocesado sobre la base de datos con los resultados capturados en el punto anterior: • corrección de errores • transformación de los datos • Inclusión de información adicional Realización de medidas estadísticas: Se deberán obtener las medidas estadísticas indicadas en las estrategias de validación obtenidas en el proceso de planificación, que podrán ser de tres tipos: medidas de pares, medidas de grupo y ratios de acuerdo. Interpretación de resultados En esta fase se interpretan los resultados (medidas estadísticas) obtenidas en la fase de aplicación para decidir si el SI se comporta como un experto. Está compuesta por dos tareas: Análisis algorítmico: En función del contexto se aplican funciones y algoritmos de tratamiento de datos para obtener información que podrá ser tratada por el modelo heurístico. ⁃ Dadas una medidas estadísticas numéricas dice si son altas, medias o bajas en función del contexto (dominio, unas reglas para esas medidas…) Análisis heurístico: Usa la información obtenida por el análisis algorítmico y realiza una interpretación heurística que captura el comportamiento inteligente del ingeniero del conocimiento a la hora de interpretar los resultados de validación. ⁃ Dados una serie de valores altos, medios o bajos da una interpretación de los resultados Evaluación Incluiría aspectos como • Usabilidad: que sea fácil de usar • Flexibilidad • Consistente • Bien documentado • Utilidad: Añada valor a lo ya existente en el entorno de trabajo sin provocar cambios sustanciales en los procedimientos actuales. Tema 6 - Gestión del Conocimiento (para pdf) - 30/1/18 18:42 / 1 Tema 6 - Gestión del conocimiento Concepto de gestión del conocimiento Gestión del Conocimiento: Dos definiciones • El conjunto de actividades realizadas con el fin de utilizar, compartir y desarrollar los conocimientos de una organización y de los individuos que en ella trabajan encarnándolos a la mejor consecución de sus objetivos. • Es el proceso sintético y organizacional específico para la adquisición, organización y comunicación del conocimiento de los empleados de tal forma que los mismos puedan hacer uso de este para ser más efectivos y productivos en su trabajo. • El proceso y las actividades de una organización para … el conocimiento de la organización y de sus empleados para que sean más efectivos y productivos y así consigan mejor los objetivos empresariales Crear, generar, desarrollar, adquirir, recopilar, almacenar, conservar Organizar, categorizar compartir, distribuir, comunicar, utilizar, usar, aplicar TICs permiten: • Conservar, almacenar • Organizar, categorizar • Compartir • Acelerando su velocidad de transferencia Diferenciación entre dato información y conocimiento Dato: Representación formalizada de entidades o hechos de carácter simbólico y consecuentemente adecuada para su comunicación, interpretación y procesamiento mediante medios humanos y automáticos. • Representan observaciones o hechos fuera de contexto, por lo que no tienen significado inmediato. • Son la materia prima de la información, sin significado inherente. Solo indican qué ha pasado sin aportar elementos para formar un juicio ni una interpretación ni base de acción sustentable • 19.1 - representación de un valor, un concepto o un hecho preparado para su uso por un agente humano o artificial. ⁃ Valor de un sensor de temperatura si está almacenado en algún soporte físico o puede ser percibido por algún agente Información: Significado que una persona le asigna a un dato. • Un dato se transforma en información cuando: ⁃ Es evaluado para alcanzar un objetivo específico ⁃ Se le agrega valor: se contextualiza, se relaciona con un propósito, se categoriza, se procesa, se corrige o comprime • 19.1 - Significado que se le asigna a un dato para identificarlo y describirlo, de forma que lo pueda usar un agente ⁃ "Si el valor del sensor es mayor que 80º, existe peligro". Conocimiento: Se crea y valora a partir de información significativa, agregándole experiencia, comunicación e inferencia. • Ocurre en y entre individuos, resultando complejo administrarlo, transferirlo o compartirlo • El conocimiento es el recurso más importante de una organización. • 19.1 - La capacidad de utilizar los datos e información con el objetivo de resolver alguna tarea ⁃ Un sistema con conocimiento sabrá qué acciones realizar para evitar una situación de peligro cuando el valor del sensor supere los 80º ⁃ Un agente que disponga de conocimiento, para obtener una salida o tomar una decisión, debe saber escoger qué método aplicar para resolver un problema determinado, qué información y datos son relevantes y en qué grado y, además, producir nuevos datos e información porque sean necesarios en el proceso de resolución Tema 6 - Gestión del Conocimiento (para pdf) - 30/1/18 18:42 / 2 Tecnologías enfocadas a la generación, codificación y transferencia de conocimiento Página web (portal de conocimiento): tecnología que ofrece enlace a sitios importantes, brinda información específica, permite intercambiar información y facilita las búsquedas. Permite conectar e integrar las diferentes áreas de la organización desde un solo punto de acceso Intranet: tecnología heterogénea que conecta diferentes plataformas de hardware, ambientes de sistema operativo e interfaces de usuario. Permite crear espacios virtuales y de forma dinámica, rápida e ininterrumpida compartir, intercambiar y difundir información, recursos y conocimiento dentro de una comunidad concreta. Son flexibles y se adaptan a las necesidades de cada comunidad permitiendo distintos dominios de seguridad. Entornos virtuales de aprendizaje: Permiten organizar, compartir y generalizar conocimiento con mucha interacción social. Permiten comunicación 1 a 1, 1 a muchos, muchos a muchos • Actividades sincrónicas: chat • Actividades asincrónicas: email y foros • Funcionalidades de las TIC que deberían dar soporte a la GC Principales funcionalidades que deben tener las TICs que dan soporte a la GC para garantizar que la gestión sea efectiva: Arquitectura de información: Se encarga de la organización de la información (clasificación y etiquetado), el diseño de los sistemas de recuperación de la información (sistemas de navegación, de búsqueda y orientación) y el diseño de la estructura de la información y la interacción (definición de los procesos de interacción con el sistema). Usabilidad: Se encarga de velar por la facilidad de uso del sistema mediante el conocimiento experto, la aplicación de estándares (ISO, buenas prácticas) y la observación y empatía con el usuario. Diseño centrado en el usuario: Supone la inclusión del enfoque del usuario en todas las fases del ciclo de vida del sistema, mediante la investigación continua de sus necesidades y valoraciones. Categorización: Modo de clasificar la información recurriendo a la división del todo en partes más manejables. Esta categorización puede ser: alfabética, cronológica, funcional, etcétera. Búsqueda: Esta funcionalidad puede verse aplicada en diversos formatos (índices, motores de búsqueda, directorios, etc.), pero su objetivo es permitir al usuario encontrar de manera más sencilla el material que necesita. Edición y distribución: Posibilidad de editar contenido, guardarlo y ponerlo a disposición de los demás. Esta funcionalidad lleva añadidas otras características como la utilidad, la actualización y el almacenamiento. Soporte de procesos: Posibilidad de realizar diversos procesos de utilidad para los usuarios y la organización (consulta de información diaria, envió de mensajes, etcétera). Personalización: Posibilidad de que los usuarios organicen la información de acuerdo con sus perfiles personales. Esto repercute directamente en la facilidad de procesar la información. Presentación: Capacidad del sistema de presentar la información de manera eficiente e intuitiva, considerado que la intranet es el único punto de acceso a la información. Facilidad de aprendizaje: Constituye uno de los puntos más fuertes para la implantación de la GC dentro de la organización. El éxito de implantación del sistema tecnológico de GC es proporcional al grado de facilidad de aprendizaje de la tecnología utilizada. Tema 7 - Gestión del conocimiento en la Web Web semántica La idea es pasar de una Web de documentos a una Web de conceptos destacando las relaciones entre los conceptos y olvidando los vínculos e hipervínculos. Busca solucionar el problema de interoperabilidad actual, que es debido a la heterogeneidad de las fuentes de información y a la sobrecarga de información. Web Semántica es una Web extendida, dotada de mayor significado (por tanto, más semántica) • La información en la Web Semántica se apoya en lenguajes universales. • Esta información está mejor definida gracias a que las páginas están estructuradas de acuerdo a determinadas ontologías que le proporciona su semántica. • Esta infraestructura común permite compartir, procesar y transferir información de forma sencilla entre agentes, permitiendo así la reutilización • La web semántica permite al software procesar el contenido, combinarlo, y realizar deducciones lógicas para resolver problemas. Esto permite a las máquinas enriquecer y mejorar la experiencia del usuario, ayudándole a buscar y generar la información que necesita de forma más precisa RDF RDF (Resource Description Framework): Es un modelo de datos para los recursos y las relaciones que se pueden dar entre ellos. Proporciona información descriptiva simple sobre los recursos que se encuentran en la Web, aportándoles una semántica básica. • Expresa enunciados mediante ternas (sujeto, predicado, objeto) que relacionan un sujeto con un objeto a través de un predicado. Cada uno de ellos se representará con un identificador único, que será una URI (URL es el subconjunto más usado de los URIs) ⁃ Las ternas dan lugar a un grafo dirigido donde ⁃ Sujeto: Nodo del grafo dirigido - URI ⁃ Predicado: Enlace etiquetado - URI ⁃ Objeto: Nodo que se relaciona con otro - URI o literal ⁃ Cada identificador de un predicado está asignado a un tipo de relación. Es recomendable usar URIs estándar como por ejemplo las de FOAF (foaf:member, foaf:name…) u otras o incluso definir URIs propias, aunque cuanto más estándar sea la definición, mucho mejor. RDF Schema: Es la extensión semántica de RDF que proporciona los elementos necesarios para definir nuevos vocabularios,. Permite declarar clases, subclases, propiedades (las relaciones binarias)y subpropiedades. • Para definir propiedades hay que especificar la clase a la que pertenece su dominio y su rango. En una equivalencia con un sistema de bases de datos relacionales RDF equivaldría a los • registros de la base de datos. SparQL SPARQL es un lenguaje de consulta diseñado para los almacenes de datos RDF, que permite hacer búsquedas sobre los recursos de la Web Semántica utilizando distintas fuentes datos. Es un protocolo que transfiere las consultas a un servidor mediante HTTP. Permite, en una misma consulta, acceder a servidores diferentes para así poder vincular la información de varias fuentes de datos. • Un ejemplo es el de DBPedia, un proyecto para la extracción de datos de Wikipedia para proponer una versión de Web semántica. • Para hacer esas consultas se usa un lenguaje similar a SQL: En una equivalencia con un sistema de bases de datos relacionales SPARQL equivaldría al • lenguaje SQL OWL OWL (Web Ontology Language) es un mecanismo para desarrollar temas o vocabularios específicos en los cuales se asocian los recursos. • Proporciona un lenguaje para definir ontologías estructuradas que pueden ser utilizadas a través de diferentes sistemas. • Las ontologías incluyen definiciones de conceptos básicos en un campo determinado y la relación entre ellos. • Añade más vocabulario para describir propiedades y clases: En una equivalencia con un sistema de bases de datos relacionales OWL equivaldría al • esquema de la base de datos.