• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
SMA: Ontologias ii
 

SMA: Ontologias ii

on

  • 657 views

Presentación de la segunda parte de ontologías para la asignatura SMA

Presentación de la segunda parte de ontologías para la asignatura SMA

Statistics

Views

Total Views
657
Views on SlideShare
650
Embed Views
7

Actions

Likes
1
Downloads
11
Comments
0

1 Embed 7

https://redesocial.uvigo.es 7

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    SMA: Ontologias ii SMA: Ontologias ii Presentation Transcript

    • Ontologías II Grupo CADOS José Camiña   Natanael Núñez
    • Índice
        • Introducción
        • Lenguajes de contenido
        • Desarrollo de una ontología con Protégé
        • Realización ejemplo
        • Ejercicio
    • Introducción
      • De capítulos anteriores...
      • Ontología:  exhaustivo y riguroso  esquema conceptual  dentro de uno o varios dominios dados, con la finalidad de facilitar la comunicación y el intercambio de información entre diferentes sistemas y entidades.
      • Para que los agentes se comuniquen entre ellos, deben compartir el mismo idioma, vocabulario y protocolos.
    • Introducción
      • Elementos de una ontología:
        • Predicados : expresiones sobre el estado de mundo. Se utilizan típicamente en mensajes INFORM y QUERY-IF, no en REQUEST.
        • Acciones de los agentes : expresiones que indican acciones que pueden realizar los agentes. Típicamente se utilizan en mensajes de tipo REQUEST.
        • Conceptos : expresiones que representan objetos, representan una estructura con varios atributos. No aparecen aislados en los mensajes sino incluidos en otros elementos.
        • Otros elementos : primitivas (elementos atómicos como números o cadenas de caracteres), agregaciones (conjuntos, listas de otros términos), expresiones (identifican las entidades para las que se cumple un predicado), variables.
    • Lenguajes de contenido
      • Son el modo que tenemos de encapsular la semántica dentro los mensajes ACL y su posterior decodificación en la recepción.
      • Dos tipos:
        • El lenguaje SL .
      • Inteligible por los humanos, codifica las expresiones como string.Probablemente (Junto con KIF) sea el lenguaje de contenido más difundido en la comunidad de científicos que trabajan con agentes inteligentes.En general es recomendable usar este lenguaje para aplicaciones basadas en agentes que son abiertas.Incluye operadores lógicos (AND, OR, NOT) y operadores modales (BELIEF, INTENTION, UNCERTAINTY). Además la propiedad de ser fácilmente entendible por los humanos puede resultar útil a la hora de depurar las aplicaciones .
    • Lenguajes de contenido
        • El lenguaje LEAP no es legible por los humanos y es byte-encoded.
      •      Hay ciertos casos en los que el lenguaje LEAP es preferible respecto a SL: La clase LEAPCodec es más ligera que la clase SLCodec. Cuando hay fuertes limitaciones de memoria es preferible usar LEAP. Soporta secuencias de bytes, algo que no es posible en SL
    • Selección de un lenguaje de contenido
      • Testigo.java ... import jade.content.lang.sl.*;
      •   ... 
      • public class Testigo extends Agent { 
      •   private Codec codec = new SLCodec(); 
      •   private Ontology ontologia = PoliciaOntology.getInstance(); ...   
    • Registro de una ontología y un lenguaje de contenido
      • Para que un agente pueda usar una ontología y un lenguaje de contenido, estos han de ser registrados en el content manager del agente. Esta operación se suele incluir en el método setup() de la clase Agent.
      • Código en el que se hace el registro en el caso del agente Testigo:
      • Testigo.java
      • public class Testigo extends Agent { 
      •       private Codec codec = new SLCodec(); 
      •       private Ontology ontologia = PoliciaOntology.getInstance(); 
      •       protected void setup(){
      •       ...
      •       // Registra el lenguaje de contenido y la ontologia utilizada
      •      getContentManager().registerLanguage(codec);
      •      getContentManager().registerOntology(ontologia); 
      • ... } 
    • Desarrollo de una ontología
      • Para desarrollar y utilizar una ontología se deben realizar cinco pasos:
        • Definir una ontología incluyendo los schemas para los tipos de predicados, acciones de agentes y conceptos del dominio de la aplicación.
        • Desarrollar las clases JAVA apropiadas para cada uno de los elementos de la ontología.
        • Seleccionar un lenguaje de contenido adecuado entre los que proporciona JADE.
        • Registrar la ontología y el lenguaje de contenido en el agente.
        • Crear y manejar expresiones de contenido como objetos Java y dejar que JADE haga la traducción en/desde String.
      • Para desarrollar nuestra ontología podemos hacerlo codificando a mano las clases o bien haciendo uso de la herramienta Protégé
      •  
    • Desarrollo de una ontología con Protégé
        • Al trabajar con ontologías grandes, la creación de las clases en Java puede ser muy laborioso. 
        • Protégé es un editor de ontologías opensource. Al igual que Eclipse, Protégé puede trabajar con multitud de plugins. Gracias al plugin BeanGenerator, es posible definir ontologías usando Protégé y generar el código fuente de forma automática.
        • Esto nos permite trabajar con una interfaz gráfica a la hora de definir nuestra ontologías en vez de tener que escribir el código de las clases manualmente.
    • Desarrollo de una ontología con Protégé Pasos previos: Instalar el plugin BeanGenerator , nos permitirá generar las clases de la ontología para trabajar con Jade. ->  http://protege.cim3.net/cgi-bin/wiki.pl?OntologyBeanGenerator   Descargar la version 3.2.1. Descomprimir  beangenerator_bin_Protege_3.2.1.zip en el directorio plugins donde hemos instalado Protégé. También nos bajaremos el fichero de ejemplos  beangenerator_examples.zip  y lo descomprimiremos en el directorio donde hayamos instalado Protégé.
    • Ejemplo
    • Ejemplo
      • La ontología PoliciaOntology consta de tres conceptos:
        • Ladron , que contiene un atributo de tipo Descripcion que guarda la descripción del Ladrón.
        • Motivo , que contiene un atributo de tipo String donde se especifica el motivo (usado en los predicados).
        • Descripcion , que contiene los atributos Altura, ColorPelo y Peso que componen la descripción del Ladrón.
        • TiempoLlegada , que contiene un atributo de tipo Integer que representa el tiempo en minutos.
    • Ejemplo
      • De tres predicados:
        • LadronDetenido , que indica que el Ladrón ha sido detenido.
        • NoDisponible , indica el hecho de no estar disponible y contiene el concepto Motivo donde se indica el motivo por el cual no se puede apagar el fuego.
        • Disponible , que indica el hecho de haber recibido la petición de captura y el tiempo que se tardará en llegar al lugar del suceso.
      • Finalmente, nuestra ontologia contiene una acción:
        • DetenerLadrón , que solicita al agente que vaya a detener al Ladrón.
    • Ejercicio
    • Ejercicio
      • Conceptos
        • Persona: hace referencia a la persona que desea matricularse en la universidad.
        • Motivo: especifica el motivo por el cual no se ha admitido una persona.
      • Predicados
        • Admitida: sirve para hacer referencia a la situación en que una persona se encuentra admitida o no.
        • NoSuperaNota: sirve para hacer referencia a la situación de que una persona no puede matricularse por no superar la nota de corte.
        • ErrorAdmision: sirve para hacer referencia a la situación en que una persona no ha sido admitida por un motivo concreto.
    • Ejercicio
      • Acciones
        • Admitir: representa a la acción de registrar a una persona en la universidad.
        • Excluir: representa a la acción de eliminar a una persona de la universidad.
      • La ontología Universidad será utilizada por dos agentes, que son instancias de las clases siguientes:
        • SecretarioAgent: representa a la persona encargada de matricular o borrar personas de la universidad.
        • UniversidadAgent: representa a la universidad, encargado de contabilizar las personas que se van anotando o desvinculando de la misma, y de impedir el registro de más personas una vez se haya alcanzado el limite de plazas.