Transcript Document
Ontologías y Agentes Máster “Ingeniería del Software, Métodos Formales y Sistemas de Información” Universidad Politécnica de Valencia Curso 2011-2012 Eduardo Mena http://webdiis.unizar.es/~mena/ Dpto. de Informática e Ingeniería de Sistemas Universidad de Zaragoza Valencia, Mayo 2012 Grupo de Sistemas de Información Distribuidos (SID) • Desarrollo de proyectos I+D en el área de gestión de datos – Bases de datos distribuidas y heterogéneas – Sistemas de información globales, Web Semántica – Servicios de datos en entornos móviles • Contacto: Eduardo Mena ([email protected]) – http://sid.cps.unizar.es/ – En cooperación con el Grupo de Bases de Datos Interoperantes (BDI), Universidad del País Vasco, http://siul02.si.ehu.es/ Eduardo Mena "Ontologías y Agentes" Áreas de Aplicación (1/2) • Bases de datos distribuidas y federadas • Sistemas de información globales, Web semántica Eduardo Mena "Ontologías y Agentes" Áreas de Aplicación (2/2) • Servicios de datos en entornos móviles • Sistemas de agentes inteligentes (móviles) Eduardo Mena "Ontologías y Agentes" Índice (1/2) • Ontologías – Representación del conocimiento • Descripciones semánticas • Lenguajes de representación del conocimiento – Sistemas Terminológicos • Lógica de descripciones • Ejemplos de sistemas – Aplicación de las ontologías • Bases de datos federadas • Sistemas de información globales • Web Semántica Eduardo Mena "Ontologías y Agentes" Índice (2/2) • Sistemas de agentes inteligentes – Agentes inteligentes • Características • Agentes móviles – Aplicación de los agentes a sistemas de información • A nivel de diseño • A nivel de comunicaciones remotas • Ejemplos de sistemas basados en agentes Eduardo Mena "Ontologías y Agentes" Ontologías Eduardo Mena "Ontologías y Agentes" ¿De qué hablaremos? • Ontologías: desde la IA y BD • Definiciones y estado del arte • Reglas prácticas para la creación de ontologías • Ejemplos de aplicación de las ontologías – Distintos campos de aplicación – Distintos sistemas • Uso de ontologías: Problemas principales Eduardo Mena "Ontologías y Agentes" Datos, Metadatos, Conocimiento • Datos – (BD) Hechos, estado de las cosas • Metadatos – Datos sobre los datos • Información – Datos + semántica • Conocimiento – (Epistemología, Chisholm 1977) • C sabe k k es cierto C acepta k k es evidente para C – (IA) Permite comportamiento inteligente Eduardo Mena "Ontologías y Agentes" Metadatos • Información semántica sobre los datos • Objetivo – Describir contenidos – Separar datos de significado – Permitir comportamiento “inteligente” • Problema – Su generación es difícil de automatizar Eduardo Mena "Ontologías y Agentes" Información • Es la representación del conocimiento, comunica la estructura del conocimiento a través de datos, la información es la forma tangible y comunicable del conocimiento • Las escuelas y universidades tienen como actividad central propiciar el conocimiento a partir de la información Eduardo Mena "Ontologías y Agentes" Conocimiento • Es todo lo que se ha aprendido y organizado de acuerdo a aquellos conceptos, imágenes o relaciones que ha podido dominar; el conocimiento es una abstracción mental • Supone cierto razonamiento y enjuiciamiento que organiza la información mediante su comparación y clasificación Eduardo Mena "Ontologías y Agentes" ¿Qué es una ontología? “Especificación de una conceptualización” (T. Gruber) También es: Conocimiento Descripciones semánticas Metainformación ¿ Base de conocimientos ? ¿ Taxonomía ? ¿ Jerarquía de clases ? Eduardo Mena Sistema de gestión del conocimiento "Ontologías y Agentes" Representación ¿ Expresividad ? ¿ Lenguaje interrogación ? ¿ Capacidades Deductivas ? Ventajas Depende del contexto, en sistemas de información: Mejor consultar una ontología que los depósitos de datos Visión homogénea de toda la información (heterogénea) disponible Alto nivel semántico Conocimiento compartido Metainformación sobre los datos Ej. Ontología biblioteca Eduardo Mena "Ontologías y Agentes" Ejemplo: Stanford-I Biblio-Thing Conference Document Agent Person Author Organization Technical-Report Book Publisher Miscellaneous-Publication University Proceedings Edited-Book Thesis Technical-Manual Periodical-Publication Cartographic-Map Doctoral-Thesis Newspaper Journal Computer-Program Master-Thesis Artwork Multimedia-Document Magazine http://www-ksl.stanford.edu/knowledge-sharing/ontologies/html/bibliographic-data/ Eduardo Mena "Ontologías y Agentes" Ejemplo 2: subconjunto de WordNet 1.5 Print-Media Press Newspaper Journalism Publication Periodical Magazine Book Pictorial Trade-Book Brochure Journals Series TextBook SongBook Reference-Book PrayerBook CookBook Encyclopedia Instruction-Book WordBook HandBook Manual Instructions Directory Bible Annual GuideBook Reference-Manual http://www.cogsci.princeton.edu/~wn/w3wn.html Eduardo Mena "Ontologías y Agentes" Problemas con las Ontologías Fuerte carga filosófica No olvidar contexto aplicación Difícil definición/explotación Elegir bien el sistema de representación del conocimiento Ingeniería del conocimiento, no automatizable Experiencia Complejidad del sistema ¿Realmente necesitamos una ontología? Tamaño (Ej: Cyc) Conocimiento distribuido: ontologías especializadas en dominios Eduardo Mena "Ontologías y Agentes" Ontologías Distribuidas vs. Ontología Global ontología ontología ontología ontología Eduardo Mena "Ontologías y Agentes" Ontología Global Construcción de ontologías Lenguaje (signos + semántica) Términos (conceptos, atributos), relaciones, reglas, instancias Representan un punto de vista/dominio No hay lugar para la redundancia Eduardo Mena "Ontologías y Agentes" Sistemas de Representación del conocimiento Permiten: Crear ontologías/bases de conocimiento Y algunos: Manipular/interrogar ontologías Incluso otros: Introducir/recuperar instancias (datos) Lenguajes Ontolingua, KIF, KQML, DL, DAML, OWL ¿Cuál necesitamos? ¿qué esperamos de él? Expresividad Razonadores Protégé : editor de ontologías (RDF, DAML, OWL) Eduardo Mena "Ontologías y Agentes" Lenguajes de Representación del Conocimiento • RDF (Resource Description Framework): – XML, herencia de clases (RDF-class, RDF-property) – Expresividad similar a OO • OIL (Ontology Inference Layer) – No XML, API basado en Lisp • DAML (DARPA Agent Markup Language) – RDF+OIL, XML, lógica SHOIQ (roles inversos, roles transitivos, cjtos.) – Pensado para Lógica Descriptiva (enlace con razonador) – DAML-S • OWL (Ontology Web Language) – – – – Pensado para la Web Semántica, estándar de W3C (Febrero 2004) Nivel Lite (similar RDF), DL (SHOIN), OWL full (autoextensible) OWL-S OWL2 (2009): OWL2 EL (ptime), OWL2 QL (BDs), OWL2 RL (reglas) Eduardo Mena "Ontologías y Agentes" Sistemas Basados en Lógica Descriptiva (Sistemas Terminológicos) Distintas expresividades Operadores muy expresivos: ALL, jerarquías de roles, roles inversos, roles transitivos, disjoint Mundo abierto vs. mundo cerrado Tbox (conceptos y roles) Términos primitivos (cond. necesarias) Términos definidos (cond. necesarias y suficientes) Subsumisión. Mecanismo de clasificación detección de inconsistencias simplificación de expresiones Abox (instancias) Rbox (reglas, C ⇒ D) Las preguntas son expresiones (clasificables) Eduardo Mena "Ontologías y Agentes" Expresividad AL ⊤, ⊥, ⊓, ∀ (A, ∃R.⊤) PTime ALC (=ALUE) ⊤, ⊥, ⊓, ∀, , ∃, ⊔ ExpTime SHIQ (S=) ALC+ roles transitivos, jerarquías de roles (H), roles inversos (I) , restricciones numéricas cualificadas (Q) ExpTime SHIF(D) S, jerarquías de roles (H), roles inversos (I) ExpTime , roles funcionales (F) OWL Lite SHOIN(D) SHIQ + restricciones numéricas no cualificadas (N) + dominios concretos (D) NExpTime OWL DL SHOIQ(D) SHIQ + nominales , objetos (O) + dominios concretos (D) NExpTime DAML+OI L SROIQ SHOIN + tipos de roles N2ExpTime OWL 2 EL++ Eduardo Mena ⊤, ⊥, ⊓, ∃, jerarquías de roles, nominales, Ptime dominios (ont. biomed.) "Ontologías y Agentes" OIL OWL 2 EL Razonadores DL Clásicos CLASSIC, BACK, FaCT, Loom Primeros orientados a la Web Semántica CORBA-FaCT, RACER (servicio web), enlace con DAML y OWL Actuales Pellet SROIQ(D), SWRL, SPARQL, razonamiento incr., justificaciones, Java, open source & comercial (Clark&Parsia) Hermit SROIQ(D), SWRL, Java, academic (Univ. Oxford) FaCT++ SROIQ(D), C++, academic (Univ. Manchester) SR EL+, Java, gubernamental (CSIRO’s Health Informatics, Australia) [Fuente: K. Dentler et al, “Comparison of Reasoners for large Ontologies in the OWL 2 EL Profile”, Semantic Web 1(5), 2011] Eduardo Mena "Ontologías y Agentes" Ejemplo 1: Familia.pl (BACK) :- backinit, backtell(personas:<anything), backtell(conoce_a:<domain(personas) and range(personas)), backtell(padre:<conoce_a), backtell(conocidos:=trans(conoce_a)), backtell(padre_conocidos:=conocidos.padre), backtell(conocidos_lejanos:=conocidos and trans(padre)), backtell(hijos:=inv(padre)). extension :backtell(edu::personas and conoce_a:(josito and jonni) and padre:papaedu), backtell(josito::personas and conoce_a:edu and padre:papajosito), backtell(jonni::personas and padre:papajonni), backtell(papajonni::personas and conoce_a:edu). Eduardo Mena "Ontologías y Agentes" Ejemplo 2: Proyectos.pl (1/2) :- backinit, backstate(verbosity=silent), backtell(personas:<anything), backtell(nombre:<domain(personas) and range(string)), backtell(ocupacion:<domain(personas) and range(string)), backtell(jefes:=personas and ocupacion:'jefe'), backtell(proyectos:<anything), backtell(titulo:<domain(proyectos) and range(string)), backtell(miembros:<domain(proyectos) and range(personas)), backtell(superpro:=proyectos and atleast(3,miembros)), backtell(jefe:=miembros and range(jefes)). Eduardo Mena "Ontologías y Agentes" Ejemplo 2: Proyectos.pl (2/2) extension :backtell(jonni::personas and nombre:jonni and ocupacion:currito), backtell(josito::personas and nombre:josito and ocupacion:currito), backtell(nestor::personas and nombre:nestor and ocupacion:especialista), backtell(edu::personas and nombre:edu and ocupacion:jefe), backtell(josemi::personas and nombre:josemi and ocupacion:encargado). backtell(aims::proyectos and titulo:aims and miembros:allknown(personas and nombre:(edu or josito or josemi))). Eduardo Mena "Ontologías y Agentes" Algunos campos de aplicación de las ontologías • Bases de datos federadas • Sistemas de información globales • Agentes inteligentes Eduardo Mena "Ontologías y Agentes" Problema Semántica, formatos, etc. Telnet IP WWW FTP Archie Eduardo Mena C C++ Java Formularios Interfaces ad hoc "Ontologías y Agentes" Oracle Sybase Informix Objetivo Formatos Semántica Eduardo Mena "Ontologías y Agentes" Bases de Datos Federadas (BDF) ? • Esquema global (ontología) Datos • Bases de datos autónomas, diseño bottom-up • Enlace BDs – Ontología (GAV vs. LAV) Eduardo Mena "Ontologías y Agentes" BDF: Arquitectura de 5 niveles Vista 1 . . . . . Vista m Esquema integrado (ont. integrada) Integración Esq. Export. canónico 1 (ont1) Esq. Export. canónico n (ont2) Traducción Esq. Exportado 1 Esq. Exportado n Esquema BD 1 Esquema BD n . . . . . Eduardo Mena "Ontologías y Agentes" Sistemas de Información Globales Muchos depósitos de datos (miles, millones) Gran heterogeneidad a todos los niveles Altamente dinámico y cambiante Un ejemplo: La Web Adaptación de las técnicas conocidas a dicho contexto Aún es objeto de investigación Eduardo Mena "Ontologías y Agentes" Aproximaciones de los 90’s: clasificación Sistemas de Acceso a Información Basados en palabras clave Altavista, Yahoo!, Google Eduardo Mena Basados en Agentes TSIMMIS, DISCO Basados en Ontologías Una Ontología Global Varias Ontologías Carnot, Information Manifold SIMS, InfoSleuth, OBSERVER "Ontologías y Agentes" Aprox. relevantes de los 90’s SIMS (Univ. de California del Sur, 1992) TSIMMIS (Univ. de Stanford & IBM, 1993) Information Manifold (AT&T Bell Lab., 1994) OBSERVER (Univ. Pais Vasco & UGA, 1995) InfoSleuth (MCC, 1996) Eduardo Mena "Ontologías y Agentes" Aproximaciones: Comparativa TSIMMIS InfoSleuth IM SIMS OBSERVER Depósitos heterogéneos Generación de wrappers Capacidad de respuesta Descr. semántica de datos Interop. entre ontologías Vocabulario compartido Respuestas imprecisas Eduardo Mena "Ontologías y Agentes" Ejemplo: El sistema OBSERVER • Sistema de Información Global – gran numero de fuentes de datos (con cualquier organización de datos) – múltiples ontologías (indepen. del sistema DL) – depósitos de datos y ontologías reales • Interoperación entre ontologías (división del espacio de información) – relaciones semánticas interontología – traducción de preguntas con o sin cambio de semántica – estimación del cambio de semántica Eduardo Mena "Ontologías y Agentes" Arquitectura de OBSERVER Relaciones Interontología Ontology Based System Enhanced with Relationships for Vocabulary hEterogeneity Resolution Eduardo Mena Query Processor IRM Ontology Server Ontology Server Ontology Server Enlaces Enlaces "Ontologías y Agentes" Enlaces Enlaces Procesamiento de Preguntas (Query Processor) Seleccionar Ontología Usuario Comienzo Construcción de la pregunta Editar pregunta Acceso a los datos Expansión incremental a otra ontología Elegir plan con menor pérdida Acceder datos subyacentes Generar Planes Correlacionar y mostrar respuesta No Final Si Más datos? Eduardo Mena "Ontologías y Agentes" Integrar nueva ont. y ont. usuario Seleccionar ontología destino Multiples ontologías: Transformaciones de la pregunta Query Processor Pregunta del usuario expresada en términos de la Ontología Usuario Rel. del IRM F. Trans. Inv. del IRM Pregunta expresada en términos de la Ontología Destino Traducción a Enlaces F. Trans. Inv. de enlaces Pregunta expresada en Enlaces Ontology Server Eduardo Mena Respuesta expresada según la semántica de la Ontología Usuario Correlación F. Trans. del IRM Respuesta expresada según la semántica de la Ontología Destino Correlación F. Trans. de enlaces Respuesta expresada según la semántica de los depósitos Acceso a los datos "Ontologías y Agentes" subyacentes Pérdida semántica en respuestas Respuesta relevante Respuesta obtenida Respuesta relevante y obtenida Eduardo Mena "Ontologías y Agentes" Pérdida en Recall Pérdida en Precision Pérdida semántica OBSERVER: aportaciones • Uso de ontologías pre-existentes Descripción de los depósitos de datos • Manejo de relaciones interontología Manejo de distintos vocabularios • Procesamiento incremental Acceso a gran número de depósitos • Respuestas con pérdida de información Estimación de la pérdida Eduardo Mena "Ontologías y Agentes" Problemas de los sistemas de los 90’s • Integración estática de fuentes de datos – La traducción e integración se hace “a mano” por humanos y cuesta bastante tiempo – Generación no automática de la información de enlace • Hay que definir a mano el camino hacia los datos – Generación no automática de las relaciones interontología • Hay que definir a mano las propiedades semánticas entre ontologías – Sensible a nuevas ontologías/depósitos de datos • No relaciones entre los datos (constantes) – Ej. (tema=“Marte”) (tema=“sistema solar”) • Métodos de interrogación no adecuados para usuarios finales – Selección de la(s) ontología(s) para preguntar – Pregunta en DL ¿palabras clave, lenguaje natural? • Imposibles de aplicar a contextos altamente dinámicos (como la Web) Eduardo Mena "Ontologías y Agentes" Web Semántica • Problemas con la Web actual – HTML – Orientado a humanos – Búsquedas sintácticas (palabras clave) • Objetivos – Separar contenido de visualización – Orientado a humanos y a programas (servicios) – Búsquedas semánticas (expresar qué se está buscando) Eduardo Mena "Ontologías y Agentes" Web Semántica • Definición – – – – – – Proyecto W3C desde aprox. 1999 Nueva filosofía Red de ordenadores Espacio compartido Documentos autodescritos Procesable por máquinas (ni lenguaje natural, ni GUIs) Enlaces indirectos (independencia de la localización) • Claves – XML – Ontologías – Servicios Web Eduardo Mena "Ontologías y Agentes" Objetivos de la Web Semántica • Permitir un procesamiento de preguntas guiado por la semántica – Obtener sólo lo que el usuario busca • Descubrir automáticamente información semántica en las ontologías disponibles en el sistema de información • Descubrir automáticamente fuentes de datos relevantes Eduardo Mena "Ontologías y Agentes" Web Semántica Eduardo Mena "Ontologías y Agentes" Ejemplo de líneas de trabajo: Acceso a datos guiado por la semántica • Cjto. de palabras clave pregunta formal (semántica bien definida) – ¿Significados de cada palabra? pool de ontologías – ¿Desambiguación de una palabra? contexto (el resto de palabras) – ¿Traducción a un lenguaje de representación del conocimiento? combinaciones según operadores del lenguaje • Pregunta formal datos – Descubrimiento de ontologías relevantes – Descubrimiento de fuentes de datos – Aplicación técnicas de sistemas de información federados • Procesamiento incremental • Aproximación peer to peer? Eduardo Mena "Ontologías y Agentes" Futuro Inmediato • Sólo se ha comenzado a caminar – Aún tenemos mucho que aprender • Muchos problemas por resolver – Equipos multidisciplinares • Contexto complejo tecnológicamente – Dificultad para quien empieza • La clave para conseguir algunos objetivos: balance entre velocidad y calidad Eduardo Mena "Ontologías y Agentes" Sistemas de Agentes Inteligentes Eduardo Mena "Ontologías y Agentes" Agentes inteligentes • Son programas: – – – – Autónomos Actúan en representación de alguien Tienen una agenda de objetivos “Inteligentes”, aprenden • Pueden también ser: – Cooperativos – Móviles • Nuevo paradigma de diseño de software Eduardo Mena "Ontologías y Agentes" Agentes móviles • Programa que se ejecuta en un cierto contexto de ejecución o place, y viaja de place a place – Capaces de transportarse a sí mismos entre ordenadores – Necesita cierta infraestructura (plataforma de agentes) – Agentes móviles código móvil • Alternativa a RPC Eduardo Mena "Ontologías y Agentes" Movilidad: cómo funciona • Los agentes móviles se crean en places – Viajan entre places • moveTo(newHost) – – – – Se interrumpe la ejecución del thread Se serializa el código y el estado del agente El agente se reconstruye en el place destino Se continúa la ejecución a partir de donde se interrumpió Eduardo Mena "Ontologías y Agentes" Movilidad fuerte vs. Movilidad débil • Movilidad fuerte – moveTo(newHost) – En el destino se continúa con la siguiente instrucción – La JVM no permite continuar a mitad de un método • Alternativa: cambiar la JVM incompatibilidad con otras JVM • Movilidad débil – moveTo(newHost, callback) – En el destino se continúa con el método callback • Se recomienda que el moveTo sea la última instr. del método – Permitido por la JVM Eduardo Mena "Ontologías y Agentes" Control de los saltos • Problemas con el moveTo (red, permisos, etc.) – excepción place origen (política de reintento) • Notificación de movimiento (Ej: Voyager) – preDeparture() • En el origen, antes de iniciar el viaje – preArrival() • En el destino, antes de la reconstrucción – postArrival() • En el destino, agente reconstruido correctamente, justo antes del callback – postDeparture() • En el origen, en paralelo con el callback del destino Eduardo Mena "Ontologías y Agentes" Utilizando agentes móviles Eficiencia? RPC Robustez frente a desconexiones Mejor diseño: delegación de tareas Facilidad de programación Plataformas de agentes • Interoperabilidad • Fiabilidad • Escalabilidad Eduardo Mena 0,1 M 0,2 M 0,45 M 1M 2M "Ontologías y Agentes" 4M 8M 16 M 33 M Plataformas de agentes móviles • Aglets – Buen API para agentes móviles – JDK 1.1 código abierto Java 2 • Voyager – CORBA + movilidad + activación + agentes – Problemas con los clones • Grasshopper – Problemas de escalabilidad en el modelo de comunicación • Tryllian – Miles de agentes (en la misma máquina) – Más lento • SPRINGS – Alta escalabilidad (miles de agentes en distintas máquinas) Eduardo Mena "Ontologías y Agentes" Referencias • S. Franklin et al, “Is it an Agent or just a Program?: a Taxonomy for Autonomous Agents”, 3rd Workshop on Agent Theories, Architectures and Languages, 1996 • C. Harrison et al, “Mobile Agents: Are They a good idea?”, research report IBM (desclasificado como confidencial en 1995) • J. Altman et al, “Using Mobile Agents in Real World: A Survey and Evaluation of Agent Platforms”. Eduardo Mena "Ontologías y Agentes" Ejemplos de sistemas basados en agentes • Servicio de obtención de Software (SRS) • Procesamiento de preguntas dependientes de la localización • Generación adaptativa de interfaces gráficos • Recopilación de citas bibliográficas Eduardo Mena "Ontologías y Agentes" Servicio de Obtención de Software • Alternativa a sistemas tipo Tucows • Uso de una ontología de software – Construida automáticamente • Vista común al usuario del software disponible • Sensible a las necesidades de distintos usuarios • Tecnología de agentes: creación, explotación (gestión del conocimiento) Eduardo Mena "Ontologías y Agentes" Servicio de Obtención de Software Eduardo Mena "Ontologías y Agentes" Procesamiento de preguntas dependientes de la localización • El usuario se mueve • Los objetos relevantes se mueven • Ej: “Muestrame los taxis más cercanos” (formulada mientras andamos por la ciudad) • La pregunta depende de la posición de algunos objetos móviles • La respuesta se debe actualizar periodicamente Eduardo Mena "Ontologías y Agentes" Despliegue de la red de agentes BS3 BS4 BS6 (3) (3) (3) (3) BS1 BS5 BS2 (3) (2) BS0 (1) Monitor Eduardo Mena "Ontologías y Agentes" (2) Eduardo Mena "Ontologías y Agentes" Generación adaptativa de interfaces gráficos • GUI’s distintos para dispositivos distintos • Descripciones XML del GUI • Prototipo: agente móvil que genera GUI’s Java Swing, HTML, y WML Eduardo Mena "Ontologías y Agentes" GUIs en Java Swing, HTML y WML Eduardo Mena "Ontologías y Agentes" Recopilación de citas bibliográficas San Sebastián SIUL02.SI.EHU.ES SIPL17.SI.EHU.ES ShowBibTeX BD publications ShowPub Apache Tomcat Almagro ORDENADOR DEL USUARIO Navegador web BibTeX PostScript Bib2DB Voyager:9900 SISF00.SI.EHU.ES Zaragoza VIERNES.CPS.UNIZAR.ES BibTeX BibTeX Voyager:9900 Voyager:9900 Eduardo Mena "Ontologías y Agentes" Carta a los reyes • Necesitamos herramientas para – Especificación formal de sistemas móviles – Especificación de comportamiento complejo y sensible a distintos entornos (imprevisibles) • Mejores plataformas de agentes – – – – Más robustas Para dispositivos móviles Para redes inalámbricas (Bluetooth, WiFi) Interoperables Eduardo Mena "Ontologías y Agentes" ¿Futuro? • Mucho trabajo por hacer – Mejorar aproximaciones tipo SIMS, OBSERVER – Papel de las ontologías – DAML OWL ??? – Considerando: – La Web – Nuevos dominios (computación móvil) – Nueva tecnología software (agentes, OWL, etc.) – Nuevo gran objetivo: Web semántica Eduardo Mena "Ontologías y Agentes" Fin de la presentación Gracias por su atención http://www.cps.unizar.es/~mena/ Eduardo Mena "Ontologías y Agentes"