Your SlideShare is downloading. ×
0
Grupo CADOS Diego Pérez Montes David Estévez Queija
<ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontol...
<ul><li>Def-> Una Ontología es la &quot;especificación de una conceptualización&quot;, la descripción de los conceptos y r...
<ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontol...
<ul><li>Hacemos doble click sobre el archivo install_protege_3.4.4.exe. </li></ul><ul><li>Al elegir la carpeta de destino ...
<ul><li>Plugin beangenerator v3.2.1 (NO la v4.0) </li></ul><ul><ul><li>Descargar desde la URL de wikispaces. </li></ul></u...
<ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontol...
 
<ul><li>Definimos todos los conceptos. </li></ul><ul><li>Definimos los predicados. </li></ul><ul><li>Definimos las accione...
<ul><li>Open Other… > SimpleJADEAbstractOntology.pprj  </li></ul>
 
 
<ul><li>Definimos todos los conceptos. </li></ul><ul><li>Definimos los predicados. </li></ul><ul><li>Definimos las accione...
 
 
 
<ul><li>Definimos todos los conceptos. </li></ul><ul><li>Definimos los predicados. </li></ul><ul><li>Definimos las accione...
 
 
<ul><li>Definimos todos los conceptos. </li></ul><ul><li>Definimos los predicados. </li></ul><ul><li>Definimos las accione...
 
 
<ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontol...
// ONTOLOGIA GENERADA DESDE PROTEGE package policiaOntology; import jade.content.onto.*; //IMPORTS //... public class Poli...
//... /** * Constructor */ private PoliciaOntology(){ super(ONTOLOGY_NAME, BasicOntology.getInstance()); try { // CONCEPTO...
// PREDICADOS PredicateSchema ladronDetenidoSchema = new PredicateSchema(LADRONDETENIDO); add(ladronDetenidoSchema, polici...
// AGENTE “CLIENTE”, EN ESTE CASO EL TESTIGO DEL DELITO import policiaOntology.*; //Import de la ontologia en el directori...
//... // Mostrar menu por pantalla //... // Crea la accion DetenerLadron con la descripcion dada DetenerLadron dl = new De...
class ManejadorInitiator extends AchieveREInitiator{ public ManejadorInitiator(Agent a,ACLMessage msg) {  super(a,msg);  }...
protected void handleInform(ACLMessage inform) { try{ // Decodifica el mensaje ACL recibido mediante el lenguaje de conten...
protected void handleRefuse(ACLMessage refuse) { try{ // Decodifica el mensaje ACL recibido mediante el lenguaje de conten...
// AGENTE “SERVIDOR”, EN ESTE CASO LA COMSARIA import policiaOntology.*; //Import ontologia  import jade.content.lang.Code...
MessageTemplate protocolo = MessageTemplate.MatchProtocol(FIPANames.InteractionProtocol.FIPA_REQUEST); MessageTemplate per...
class ManejadorResponder extends AchieveREResponder { public ManejadorResponder(Agent a,MessageTemplate mt) { super(a,mt);...
// Crea un predicado Disponible de la ontologia añadiandole el concepto TiempoLlegada TiempoLlegada tl = new TiempoLlegada...
Disponible disp = (Disponible)ce; System.out.println(&quot;[Comisaria &quot;+getLocalName()+&quot;]: Hemos conseguido dete...
<ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontol...
<ul><li>SL: Strings. Operadores Lógicos y Modales. Requiere de “ACTION”. </li></ul><ul><li>LEAP: Binario. Más ligero. </li...
<ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontol...
<ul><li>Fiesta del IMSERSO. Diagrama: </li></ul>
<ul><li>Agente FiestaAgent: La fiesta del IMSERSO. </li></ul><ul><li>Agente FiesteroAgent: “Portero” del a fiesta. </li></ul>
 
Grupo CADOS
Upcoming SlideShare
Loading in...5
×

Presentación ontologías (parte ii)

874

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
874
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Está en “mis documentosprotegeexamples”
  • Nombre ya en uso: en rojo. Protégé distingue mayúsculas y minúsculas.
  • AddSlot -&gt; elegimos ladron, que ya existe porque ha sido creado en el predicado ladronDetenido.
  • Se creará “C:policiaOntologyPoliciaOntology.java”, que es la ontología que hemos definido.
  • Transcript of "Presentación ontologías (parte ii)"

    1. 1. Grupo CADOS Diego Pérez Montes David Estévez Queija
    2. 2. <ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontología con Protégé. </li></ul><ul><li>Integración de la ontología con JADE. </li></ul><ul><li>Lenguajes de contenido (LEAP, SL) </li></ul><ul><li>Explicación de la práctica </li></ul>
    3. 3. <ul><li>Def-> Una Ontología es la &quot;especificación de una conceptualización&quot;, la descripción de los conceptos y relaciones entre ellos, que pueden formar parte del conocimiento de un agente o una sociedad de agentes. </li></ul>
    4. 4. <ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontología con Protégé. </li></ul><ul><li>Integración de la ontología con JADE. </li></ul><ul><li>Lenguajes de contenido (LEAP, SL) </li></ul><ul><li>Explicación de la práctica </li></ul>
    5. 5. <ul><li>Hacemos doble click sobre el archivo install_protege_3.4.4.exe. </li></ul><ul><li>Al elegir la carpeta de destino seleccionamos Mis DocumentosProtege. </li></ul><ul><li>La máquina virtual de Java ya está instalada en el equipo, así que siguiente… </li></ul>
    6. 6. <ul><li>Plugin beangenerator v3.2.1 (NO la v4.0) </li></ul><ul><ul><li>Descargar desde la URL de wikispaces. </li></ul></ul><ul><li>Copiamos la carpeta que contiene a </li></ul><ul><li>“ Mis DocumentosProtegeplugins” </li></ul><ul><li>También nos bajaremos el fichero de ejemplos beangeneratos_examples.zip y pegamos la carpeta en “Mis DocumentosProtege” </li></ul>
    7. 7. <ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontología con Protégé. </li></ul><ul><li>Integración de la ontología con JADE. </li></ul><ul><li>Lenguajes de contenido (LEAP, SL) </li></ul><ul><li>Explicación de la práctica </li></ul>
    8. 9. <ul><li>Definimos todos los conceptos. </li></ul><ul><li>Definimos los predicados. </li></ul><ul><li>Definimos las acciones en la clase AgentAction. </li></ul><ul><li>Generamos la ontología con BeanGenerator. </li></ul>
    9. 10. <ul><li>Open Other… > SimpleJADEAbstractOntology.pprj </li></ul>
    10. 13. <ul><li>Definimos todos los conceptos. </li></ul><ul><li>Definimos los predicados. </li></ul><ul><li>Definimos las acciones en la clase AgentAction. </li></ul><ul><li>Generamos la ontología con BeanGenerator. </li></ul>
    11. 17. <ul><li>Definimos todos los conceptos. </li></ul><ul><li>Definimos los predicados. </li></ul><ul><li>Definimos las acciones en la clase AgentAction. </li></ul><ul><li>Generamos la ontología con BeanGenerator. </li></ul>
    12. 20. <ul><li>Definimos todos los conceptos. </li></ul><ul><li>Definimos los predicados. </li></ul><ul><li>Definimos las acciones en la clase AgentAction. </li></ul><ul><li>Generamos la ontología con BeanGenerator. </li></ul>
    13. 23. <ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontología con Protégé. </li></ul><ul><li>Integración de la ontología con JADE. </li></ul><ul><li>Lenguajes de contenido (LEAP, SL) </li></ul><ul><li>Explicación de la práctica </li></ul>
    14. 24. // ONTOLOGIA GENERADA DESDE PROTEGE package policiaOntology; import jade.content.onto.*; //IMPORTS //... public class PoliciaOntology extends jade.content.onto.Ontology { //NOMBRE ONTOLOGIA public static final String ONTOLOGY_NAME = &quot;policia&quot;; // The singleton instance of this ontology private static ReflectiveIntrospector introspect = new ReflectiveIntrospector(); private static Ontology theInstance = new PoliciaOntology(); public static Ontology getInstance() { return theInstance; } // VOCABULARIO public static final String DISPONIBLE_TIEMPO=&quot;TIEMPO&quot;; public static final String DISPONIBLE=&quot;Disponible&quot;; public static final String NODISPONIBLE_MOTIVO=&quot;MOTIVO&quot;; public static final String NODISPONIBLE=&quot;NoDisponible&quot;;
    15. 25. //... /** * Constructor */ private PoliciaOntology(){ super(ONTOLOGY_NAME, BasicOntology.getInstance()); try { // CONCEPTOS ConceptSchema ladronSchema = new ConceptSchema(LADRON); add(ladronSchema, policiaOntology.Ladron.class); ConceptSchema motivoSchema = new ConceptSchema(MOTIVO); add(motivoSchema, policiaOntology.Motivo.class); ConceptSchema descripcionSchema = new ConceptSchema(DESCRIPCION); add(descripcionSchema, policiaOntology.Descripcion.class); ConceptSchema tiempoLlegadaSchema = new ConceptSchema(TIEMPOLLEGADA); add(tiempoLlegadaSchema, policiaOntology.TiempoLlegada.class); // ACCIONES (AgentAction) AgentActionSchema detenerLadronSchema = new AgentActionSchema(DETENERLADRON); add(detenerLadronSchema, policiaOntology.DetenerLadron.class);
    16. 26. // PREDICADOS PredicateSchema ladronDetenidoSchema = new PredicateSchema(LADRONDETENIDO); add(ladronDetenidoSchema, policiaOntology.LadronDetenido.class); PredicateSchema noDisponibleSchema = new PredicateSchema(NODISPONIBLE); add(noDisponibleSchema, policiaOntology.NoDisponible.class); PredicateSchema disponibleSchema = new PredicateSchema(DISPONIBLE); add(disponibleSchema, policiaOntology.Disponible.class); // CAMPOS EN CONCEPTOS Y PREDICADOS (“slots”) ladronSchema.add(LADRON_DESCRIPCION, descripcionSchema, ObjectSchema.OPTIONAL); motivoSchema.add(MOTIVO_MOTIVO, (TermSchema)getSchema(BasicOntology.STRING), ObjectSchema.OPTIONAL); //...
    17. 27. // AGENTE “CLIENTE”, EN ESTE CASO EL TESTIGO DEL DELITO import policiaOntology.*; //Import de la ontologia en el directorio “policiaOntology” //Resto de imports import jade.content.lang.sl.*; //Import del lenguaje de contenido: SL public class Testigo extends Agent { //Se usara el lenguaje SL private Codec codec = new SLCodec(); private Ontology ontologia = PoliciaOntology.getInstance(); //... //Emision del mensaje ACLMessage msg = new ACLMessage(ACLMessage.REQUEST); //... // Se establece el protocolo de comunicaciones msg.setProtocol(FIPANames.InteractionProtocol.FIPA_REQUEST); // Se establece el lenguaje de contenido y la ontología del mensaje. msg.setLanguage(codec.getName()); msg.setOntology(ontologia.getName());
    18. 28. //... // Mostrar menu por pantalla //... // Crea la accion DetenerLadron con la descripcion dada DetenerLadron dl = new DetenerLadron(); // Registra el lenguaje de contenido y la ontologia utilizada getContentManager().registerLanguage(codec); getContentManager().registerOntology(ontologia); // Crea la accion a enviar asociándola a la acción DetenerLadron creada // necesitado por SL. Action a = new Action(getAID(), dl); // Rellena el mensaje ACL para que sea consistente con el lenguaje de contenido y la //ontologia getContentManager().fillContent(msg,a); //...
    19. 29. class ManejadorInitiator extends AchieveREInitiator{ public ManejadorInitiator(Agent a,ACLMessage msg) { super(a,msg); } protected void handleAgree(ACLMessage agree) { try{ // Decodifica el mensaje ACL recibido mediante el lenguaje de contenido y la ontologia actuales ContentElement ce = getContentManager().extractContent(agree); if (ce instanceof Disponible) { // Recibido un AGREE con contenido correcto Disponible disp = (Disponible) ce; // Transforma el contenido en el objeto predicado EstoyDisponible de la ontologia //...
    20. 30. protected void handleInform(ACLMessage inform) { try{ // Decodifica el mensaje ACL recibido mediante el lenguaje de contenido y la ontologia actuales ContentElement ce = getContentManager().extractContent(inform); if (ce instanceof LadronDetenido) { // Recibido un INFORM con contenido correcto LadronDetenido ld = (LadronDetenido) ce; // Transforma el contenido en el objeto predicado LadronDetenido de la ontologia //...
    21. 31. protected void handleRefuse(ACLMessage refuse) { try{ // Decodifica el mensaje ACL recibido mediante el lenguaje de contenido y la ontologia actuales ContentElement ce = getContentManager().extractContent(refuse); if (ce instanceof NoDisponible) { // Recibido un REFUSE con contenido correcto NoDisponible nd = (NoDisponible) ce; // Transforma el contenido en el objeto predicado NoDisponible de la ontologia //... protected void handleNotUnderstood(ACLMessage notUnderstood) { System.out.println(&quot;La comisaria &quot; + notUnderstood.getSender().getName() + &quot; no entiende el mensaje.&quot;); } //...
    22. 32. // AGENTE “SERVIDOR”, EN ESTE CASO LA COMSARIA import policiaOntology.*; //Import ontologia import jade.content.lang.Codec; import jade.content.lang.sl.SLCodec; //Import lenguaje SL //Resto imports public class Comisaria extends Agent { private Codec codec = new SLCodec(); private Ontology ontologia = PoliciaOntology.getInstance(); //... protected void setup() { // Crea una plantilla que solo acepte los mensajes ACL recibidos que utilizan el protocolo FIPA_REQUEST // Y ademas que sean del tipo REQUEST // Y ademas que esten codificados mediante el lenguaje de contenido SLCodec // Y que utilicen la ontologia policiaOntology
    23. 33. MessageTemplate protocolo = MessageTemplate.MatchProtocol(FIPANames.InteractionProtocol.FIPA_REQUEST); MessageTemplate performativa = MessageTemplate.MatchPerformative(ACLMessage.REQUEST); MessageTemplate lenguajeContenido = MessageTemplate.MatchLanguage(codec.getName()); MessageTemplate ontoTemplate = MessageTemplate.MatchOntology(ontologia.getName()); MessageTemplate plantilla = MessageTemplate.and(MessageTemplate.and(protocolo, performativa),MessageTemplate.and(lenguajeContenido, ontoTemplate)); // Registra el lenguaje de contenido y la ontologia en el gestor de contenidos getContentManager().registerLanguage(codec); getContentManager().registerOntology(ontologia);
    24. 34. class ManejadorResponder extends AchieveREResponder { public ManejadorResponder(Agent a,MessageTemplate mt) { super(a,mt); } protected ACLMessage prepareResponse(ACLMessage request) { ACLMessage respuesta = request.createReply(); try { // Decodifica el mensaje ACL recibido a un objeto de tipo Action mediante el lenguaje de contenido y la ontologia actuales Action a = (Action) myAgent.getContentManager().extractContent(request); // Recupera el objeto accion de la ontologia DetenerLadron dl = (DetenerLadron) a.getAction();
    25. 35. // Crea un predicado Disponible de la ontologia añadiandole el concepto TiempoLlegada TiempoLlegada tl = new TiempoLlegada(); tl.setTiempo((int)(Math.random()*10)); Disponible disp = new Disponible(); disp.setTIEMPO(tl); getContentManager().fillContent(respuesta,disp); protected ACLMessage prepareResultNotification(ACLMessage request,ACLMessage response) { // Si la policia fue a detener al ladron ACLMessage inform = request.createReply(); try { ContentElement ce = getContentManager().extractContent(response);
    26. 36. Disponible disp = (Disponible)ce; System.out.println(&quot;[Comisaria &quot;+getLocalName()+&quot;]: Hemos conseguido detener al ladron!!&quot;); inform.setPerformative(ACLMessage.INFORM); Action a = (Action) myAgent.getContentManager().extractContent(request); DetenerLadron dl = (DetenerLadron) a.getAction(); // Crea un predicado LadronDetenido de la ontologia y le añade el ladron detenido LadronDetenido ld = new LadronDetenido(); ld.setLadron(dl.getLadron()); getContentManager().fillContent(inform,ld);
    27. 37. <ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontología con Protégé. </li></ul><ul><li>Integración de la ontología con JADE. </li></ul><ul><li>Lenguajes de contenido (LEAP, SL) </li></ul><ul><li>Explicación de la práctica </li></ul>
    28. 38. <ul><li>SL: Strings. Operadores Lógicos y Modales. Requiere de “ACTION”. </li></ul><ul><li>LEAP: Binario. Más ligero. </li></ul>// USO DE SL import jade.content.lang.sl.*; ... public class Testigo extends Agent { private Codec codec = new SLCodec(); private Ontology ontologia = PoliciaOntology.getInstance(); ...
    29. 39. <ul><li>Recordar qué es una ontología. </li></ul><ul><li>Instalación de Protégé. </li></ul><ul><li>Desarrollo de una ontología con Protégé. </li></ul><ul><li>Integración de la ontología con JADE. </li></ul><ul><li>Lenguajes de contenido (LEAP, SL) </li></ul><ul><li>Explicación de la práctica </li></ul>
    30. 40. <ul><li>Fiesta del IMSERSO. Diagrama: </li></ul>
    31. 41. <ul><li>Agente FiestaAgent: La fiesta del IMSERSO. </li></ul><ul><li>Agente FiesteroAgent: “Portero” del a fiesta. </li></ul>
    32. 43. Grupo CADOS
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×