SlideShare uma empresa Scribd logo
1 de 43
Grupo CADOS Diego Pérez Montes David Estévez Queija
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
[object Object],[object Object],[object Object],[object Object]
[object Object]
 
 
[object Object],[object Object],[object Object],[object Object]
 
 
 
[object Object],[object Object],[object Object],[object Object]
 
 
[object Object],[object Object],[object Object],[object Object]
 
 
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
// 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 = "policia"; // 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="TIEMPO"; public static final String DISPONIBLE="Disponible"; public static final String NODISPONIBLE_MOTIVO="MOTIVO"; public static final String NODISPONIBLE="NoDisponible";
//... /** * 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);
// 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); //...
// 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());
//... // 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); //...
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 //...
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 //...
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("La comisaria " + notUnderstood.getSender().getName()  + " no entiende el mensaje."); } //...
// 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
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);
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();
// 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);
Disponible disp = (Disponible)ce; System.out.println("[Comisaria "+getLocalName()+"]: Hemos conseguido detener al ladron!!"); 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);
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],// USO DE SL import jade.content.lang.sl.*; ... public class Testigo extends Agent { private Codec codec = new SLCodec(); private Ontology ontologia = PoliciaOntology.getInstance(); ...
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object]
[object Object],[object Object]
 
Grupo CADOS

Mais conteúdo relacionado

Mais procurados

EXCEPCIONES JAVA
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVAmellcv
 
Ocp, jse 6 programmer (1 z0 851) - guia practica 7 de 7(fundamentos) v1
Ocp, jse 6 programmer (1 z0 851) - guia practica 7 de 7(fundamentos) v1Ocp, jse 6 programmer (1 z0 851) - guia practica 7 de 7(fundamentos) v1
Ocp, jse 6 programmer (1 z0 851) - guia practica 7 de 7(fundamentos) v1Oscar V
 
Java
JavaJava
JavaUTN
 
Fundamentos de Java II
Fundamentos de Java IIFundamentos de Java II
Fundamentos de Java IImartosfre
 
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018Eudris Cabrera
 
Cuestionario
CuestionarioCuestionario
Cuestionariojpauly4
 
Fundamentos de Java
Fundamentos de JavaFundamentos de Java
Fundamentos de Javamartosfre
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En JavaEmilio Aviles Avila
 
Variables en java 2014
Variables en java 2014Variables en java 2014
Variables en java 2014Lizandro Meza
 
Jyoc java-cap23 j unit
Jyoc java-cap23 j unitJyoc java-cap23 j unit
Jyoc java-cap23 j unitJyoc X
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVAinnovalabcun
 
Unidad 7 conceptos Avanzados en la Programacion orientado a objetos
Unidad 7 conceptos Avanzados en la Programacion orientado a objetosUnidad 7 conceptos Avanzados en la Programacion orientado a objetos
Unidad 7 conceptos Avanzados en la Programacion orientado a objetosAmado Arcaya
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcionalJuan Rodríguez
 

Mais procurados (20)

Lp13
Lp13Lp13
Lp13
 
EXCEPCIONES JAVA
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVA
 
Semana 2 Clases y Objetos en Java
Semana 2   Clases y Objetos en JavaSemana 2   Clases y Objetos en Java
Semana 2 Clases y Objetos en Java
 
Ocp, jse 6 programmer (1 z0 851) - guia practica 7 de 7(fundamentos) v1
Ocp, jse 6 programmer (1 z0 851) - guia practica 7 de 7(fundamentos) v1Ocp, jse 6 programmer (1 z0 851) - guia practica 7 de 7(fundamentos) v1
Ocp, jse 6 programmer (1 z0 851) - guia practica 7 de 7(fundamentos) v1
 
Java
JavaJava
Java
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Fundamentos de Java II
Fundamentos de Java IIFundamentos de Java II
Fundamentos de Java II
 
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Fundamentos de Java
Fundamentos de JavaFundamentos de Java
Fundamentos de Java
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En Java
 
Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
 
Calse 3 JAVA 2012
Calse 3 JAVA 2012Calse 3 JAVA 2012
Calse 3 JAVA 2012
 
Variables en java 2014
Variables en java 2014Variables en java 2014
Variables en java 2014
 
Jyoc java-cap23 j unit
Jyoc java-cap23 j unitJyoc java-cap23 j unit
Jyoc java-cap23 j unit
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
Poo ok
Poo okPoo ok
Poo ok
 
Unidad 7 conceptos Avanzados en la Programacion orientado a objetos
Unidad 7 conceptos Avanzados en la Programacion orientado a objetosUnidad 7 conceptos Avanzados en la Programacion orientado a objetos
Unidad 7 conceptos Avanzados en la Programacion orientado a objetos
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 

Destaque

Funciones y protocolos del modelo osi
Funciones y protocolos del modelo osiFunciones y protocolos del modelo osi
Funciones y protocolos del modelo osiguest4d27d3
 
Equipo grupo-trabajo
Equipo grupo-trabajoEquipo grupo-trabajo
Equipo grupo-trabajomer3
 
De mulholland drive al camino de los sueños
De mulholland drive al camino de los sueñosDe mulholland drive al camino de los sueños
De mulholland drive al camino de los sueñospaulispinel
 
Les Français, la transition énergétique et les économies d’énergie
Les Français, la transition énergétique  et les économies d’énergieLes Français, la transition énergétique  et les économies d’énergie
Les Français, la transition énergétique et les économies d’énergieMonimmeuble.com
 
Presentacióntema8
Presentacióntema8Presentacióntema8
Presentacióntema8xosss
 
Virtual corp
Virtual corpVirtual corp
Virtual corpheleo89
 
Intelligentes Handeln in verschiedenen Marktphasen
Intelligentes Handeln in verschiedenen MarktphasenIntelligentes Handeln in verschiedenen Marktphasen
Intelligentes Handeln in verschiedenen Marktphasensparkassenbroker
 
MURALES (Escuela Pedro de Mendoza)
MURALES (Escuela Pedro de Mendoza) MURALES (Escuela Pedro de Mendoza)
MURALES (Escuela Pedro de Mendoza) laura
 
C:\fakepath\bibliotecologia en colombia
C:\fakepath\bibliotecologia en colombiaC:\fakepath\bibliotecologia en colombia
C:\fakepath\bibliotecologia en colombialeidypaolis
 
Metodologia Aprendizaje
Metodologia AprendizajeMetodologia Aprendizaje
Metodologia Aprendizajeaqui no fue
 
Tableau économique de l'artisanat - Cahier I - Les entreprises artisanales da...
Tableau économique de l'artisanat - Cahier I - Les entreprises artisanales da...Tableau économique de l'artisanat - Cahier I - Les entreprises artisanales da...
Tableau économique de l'artisanat - Cahier I - Les entreprises artisanales da...Institut Supérieur des Métiers
 
Tenerife. balcones.1ª parte
Tenerife. balcones.1ª parteTenerife. balcones.1ª parte
Tenerife. balcones.1ª parteahulaga
 
Recorriendo los años
Recorriendo los añosRecorriendo los años
Recorriendo los añosMariola
 
Laboratorio
LaboratorioLaboratorio
Laboratoriomgomez4
 

Destaque (20)

Funciones y protocolos del modelo osi
Funciones y protocolos del modelo osiFunciones y protocolos del modelo osi
Funciones y protocolos del modelo osi
 
Equipo grupo-trabajo
Equipo grupo-trabajoEquipo grupo-trabajo
Equipo grupo-trabajo
 
Presentación CGJ
Presentación CGJPresentación CGJ
Presentación CGJ
 
De mulholland drive al camino de los sueños
De mulholland drive al camino de los sueñosDe mulholland drive al camino de los sueños
De mulholland drive al camino de los sueños
 
Les Français, la transition énergétique et les économies d’énergie
Les Français, la transition énergétique  et les économies d’énergieLes Français, la transition énergétique  et les économies d’énergie
Les Français, la transition énergétique et les économies d’énergie
 
Presentacióntema8
Presentacióntema8Presentacióntema8
Presentacióntema8
 
Virtual corp
Virtual corpVirtual corp
Virtual corp
 
Intelligentes Handeln in verschiedenen Marktphasen
Intelligentes Handeln in verschiedenen MarktphasenIntelligentes Handeln in verschiedenen Marktphasen
Intelligentes Handeln in verschiedenen Marktphasen
 
Europa cerrada
Europa cerradaEuropa cerrada
Europa cerrada
 
MURALES (Escuela Pedro de Mendoza)
MURALES (Escuela Pedro de Mendoza) MURALES (Escuela Pedro de Mendoza)
MURALES (Escuela Pedro de Mendoza)
 
C:\fakepath\bibliotecologia en colombia
C:\fakepath\bibliotecologia en colombiaC:\fakepath\bibliotecologia en colombia
C:\fakepath\bibliotecologia en colombia
 
Metodologia Aprendizaje
Metodologia AprendizajeMetodologia Aprendizaje
Metodologia Aprendizaje
 
Unité mobile d'hygiène
Unité mobile d'hygièneUnité mobile d'hygiène
Unité mobile d'hygiène
 
Disneylandia
DisneylandiaDisneylandia
Disneylandia
 
Dilemas eticos
Dilemas eticosDilemas eticos
Dilemas eticos
 
Bianka j.
Bianka j.Bianka j.
Bianka j.
 
Tableau économique de l'artisanat - Cahier I - Les entreprises artisanales da...
Tableau économique de l'artisanat - Cahier I - Les entreprises artisanales da...Tableau économique de l'artisanat - Cahier I - Les entreprises artisanales da...
Tableau économique de l'artisanat - Cahier I - Les entreprises artisanales da...
 
Tenerife. balcones.1ª parte
Tenerife. balcones.1ª parteTenerife. balcones.1ª parte
Tenerife. balcones.1ª parte
 
Recorriendo los años
Recorriendo los añosRecorriendo los años
Recorriendo los años
 
Laboratorio
LaboratorioLaboratorio
Laboratorio
 

Semelhante a Presentación ontologías (parte ii)

SMA: Ontologias ii
SMA: Ontologias iiSMA: Ontologias ii
SMA: Ontologias iinatanaeln
 
Presentacion sma ontologias_ii
Presentacion sma ontologias_iiPresentacion sma ontologias_ii
Presentacion sma ontologias_iijocamina
 
Presentacion sma ontologias_ii
Presentacion sma ontologias_iiPresentacion sma ontologias_ii
Presentacion sma ontologias_iijocamina
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1Rokr02
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxssuser2e6b96
 
TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23equipotresamp
 
Ejercicio compiladores
Ejercicio compiladoresEjercicio compiladores
Ejercicio compiladoresSheyli Patiño
 
Suarez l 2001 el paquete java io
Suarez l 2001 el paquete java ioSuarez l 2001 el paquete java io
Suarez l 2001 el paquete java ioLuis Lopez Ac
 
Taller programacion orientada a objetos
Taller programacion orientada a objetosTaller programacion orientada a objetos
Taller programacion orientada a objetosisrael11_90
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSIan Monge Pérez
 
Jyoc java-cap15 persistencia. ficheros xml, j son y pdf
Jyoc java-cap15 persistencia. ficheros xml, j son y pdfJyoc java-cap15 persistencia. ficheros xml, j son y pdf
Jyoc java-cap15 persistencia. ficheros xml, j son y pdfJyoc X
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2juliocombativo
 
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
Proyecto de compiladores Sentencia While con Java CUP y JFLEXProyecto de compiladores Sentencia While con Java CUP y JFLEX
Proyecto de compiladores Sentencia While con Java CUP y JFLEXIvan Luis Jimenez
 
Entidades en drupal 8
Entidades en drupal 8Entidades en drupal 8
Entidades en drupal 8Atenea tech
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosJonathan Macías
 

Semelhante a Presentación ontologías (parte ii) (20)

SMA: Ontologias ii
SMA: Ontologias iiSMA: Ontologias ii
SMA: Ontologias ii
 
Presentacion sma ontologias_ii
Presentacion sma ontologias_iiPresentacion sma ontologias_ii
Presentacion sma ontologias_ii
 
Presentacion sma ontologias_ii
Presentacion sma ontologias_iiPresentacion sma ontologias_ii
Presentacion sma ontologias_ii
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docx
 
TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23
 
1 -programacion_oo
1  -programacion_oo1  -programacion_oo
1 -programacion_oo
 
Datos
DatosDatos
Datos
 
Ejercicio compiladores
Ejercicio compiladoresEjercicio compiladores
Ejercicio compiladores
 
Suarez l 2001 el paquete java io
Suarez l 2001 el paquete java ioSuarez l 2001 el paquete java io
Suarez l 2001 el paquete java io
 
Taller programacion orientada a objetos
Taller programacion orientada a objetosTaller programacion orientada a objetos
Taller programacion orientada a objetos
 
Lab6-POO
Lab6-POOLab6-POO
Lab6-POO
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Data storage
Data storageData storage
Data storage
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
 
Jyoc java-cap15 persistencia. ficheros xml, j son y pdf
Jyoc java-cap15 persistencia. ficheros xml, j son y pdfJyoc java-cap15 persistencia. ficheros xml, j son y pdf
Jyoc java-cap15 persistencia. ficheros xml, j son y pdf
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
Proyecto de compiladores Sentencia While con Java CUP y JFLEXProyecto de compiladores Sentencia While con Java CUP y JFLEX
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
 
Entidades en drupal 8
Entidades en drupal 8Entidades en drupal 8
Entidades en drupal 8
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
 

Presentación ontologías (parte ii)

  • 1. Grupo CADOS Diego Pérez Montes David Estévez Queija
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.  
  • 9.
  • 10.
  • 11.  
  • 12.  
  • 13.
  • 14.  
  • 15.  
  • 16.  
  • 17.
  • 18.  
  • 19.  
  • 20.
  • 21.  
  • 22.  
  • 23.
  • 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 = "policia"; // 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="TIEMPO"; public static final String DISPONIBLE="Disponible"; public static final String NODISPONIBLE_MOTIVO="MOTIVO"; public static final String NODISPONIBLE="NoDisponible";
  • 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);
  • 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); //...
  • 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());
  • 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); //...
  • 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 //...
  • 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 //...
  • 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("La comisaria " + notUnderstood.getSender().getName() + " no entiende el mensaje."); } //...
  • 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
  • 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);
  • 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();
  • 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);
  • 36. Disponible disp = (Disponible)ce; System.out.println("[Comisaria "+getLocalName()+"]: Hemos conseguido detener al ladron!!"); 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);
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.  

Notas do Editor

  1. Está en “mis documentosprotegeexamples”
  2. Nombre ya en uso: en rojo. Protégé distingue mayúsculas y minúsculas.
  3. AddSlot -> elegimos ladron, que ya existe porque ha sido creado en el predicado ladronDetenido.
  4. Se creará “C:policiaOntologyPoliciaOntology.java”, que es la ontología que hemos definido.