54
Web Semantica | 1 PROYECTOS DE SISTEMAS INTELIGENTES 1 PROYECTOS DE SISTEMAS INTELIGENTES WEB SEMANTICA APLICADO A UNA AGENCIA DE TURISMO PARA BUSQUEDAS DE SITIOS, ENTRETENIMIENTO Y DIVERSION EN LAS PLAYAS DEL SUR. INTEGRANTES: ALEJOS CAMPOS, CARLOS SANCHEZ BARZOLA, JOSE ORTIZ ALEGRE, LESLIE PROFESOR: ING. MIGUEL CASMA S. CICLO: XI AULA: 504 - TUA 2011

PDF DE APOYO

Embed Size (px)

DESCRIPTION

EXPOSICION DEL CURSO DE SISTEMAS INTELIGENTE CON EL PROFESOR CASMA

Citation preview

Page 1: PDF DE APOYO

Web Semantica |

1 PROYECTOS DE SISTEMAS INTELIGENTES

1

PROYECTOS DE SISTEMAS

INTELIGENTES

WEB SEMANTICA APLICADO A UNA AGENCIA DE TURISMO

PARA BUSQUEDAS DE SITIOS, ENTRETENIMIENTO Y

DIVERSION EN LAS PLAYAS DEL SUR.

INTEGRANTES:

ALEJOS CAMPOS, CARLOS

SANCHEZ BARZOLA, JOSE

ORTIZ ALEGRE, LESLIE

PROFESOR:

ING. MIGUEL CASMA S.

CICLO: XI

AULA: 504 - TUA

2011

Page 2: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 2

2

I. Resumen Ejecutivo

En la actualidad la Web Semántica está adquiriendo una gran importancia dentro de las TIC,

siendo el sector de turismo uno de sus campos de mayor aplicación, entre otros como el

sector educación, medicina, etc. Donde el elemento principal para la elaboración de un

sistema basado en la Web Semántica es la Ontología.

El proyecto presenta el desarrollo de una Ontología de una agencia de turismo que brinda

servicios en el sur del país, la construcción de la ontología se ha realizado siguiendo la

metodología (Methontology) a través de ella se podrá obtener una mejor perspectivas de

clases y subclases relacionadas de la ontología y sobre todo darle un orden mediante los

pasos que nos brindan.

Esta Ontología ha sido desarrollada el software Protege 3.4.1 ya que esta versión tenemos un

buen dominio del proyecto ya que antes habíamos trabajado con esa versión sin tener ninguna

dificultad.

II. Objetivos y alcance del proyecto

Objetivos del proyecto

Realizar un sistema basado en ontología y organizar el conocimiento de la agencia de

turismo en las playas del sur del país.

Investigar y desarrollar un prototipo utilizando la herramienta de Protege.

Hacer búsquedas eficientes y sobre todo adecuadas a las necesidades del usuario.

Alcance del proyecto

La información que se brindará solamente abarcara las playas del Sur desde el km 41.5 (Playa

los pulpos Panamericana sur) hasta el Km. 51 (Balneario de San Bartolo). En nuestro

Proyecto llegaremos a implementar la búsqueda de empresas asociadas en la aplicación web

tales como la ubicación de la empresa, categoría de la empresa asociada, tipo de música y

comida que ofrece, etc. Para implementación del buscador usaremos la plataforma de

NetBeans y por ente código JAVA con JSP para la ontología se usara software protege 3.4.1.

Page 3: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 3

3

III. Explicar el fundamento teórico de la técnica de IA (¿Qué es?,

propósitos, problema que resuelve, características).

Introducción

La Web Semántica tiene como objetivo fundamental mejorar el Internet ampliando la

interoperabilidad entre los sistemas informáticos usando “agentes inteligentes”.

Evolución y predicción de la Web

Page 4: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 4

4

Evolución de la Web y su problema actual

Sabemos que Internet ha tenido un crecimiento espectacular y continúa imparable.

Internet ha proporcionado nuevas oportunidades económicas, sociales y tecnológicas.

La Web es también el mayor repositorio de información y en él, se puede buscar

información sobre cualquier tema imaginable.

PROBLEMA: El crecimiento Web continua y acelerada, exceso de información,

organización, gestión y recuperación de esa información: Edición/publicación de

contenidos, Accesos y modificación de la información, Integración de recursos

distribuidos en servicios de información o en servicios Web, Valoración / Confianza

de contenidos, soluciones habituales Insuficientes.

Page 5: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 5

5

Inicios de la Web Semántica

La Web Semántica es una propuesta realizada por el propio inventor del HTML y fundador

de la W3C, Tim Berners-Lee.

La Web Semántica surge como una extensión de la Web actual dotada de significado, esto es,

un espacio donde la información tendría un significado bien definido, de manera que pudiera

ser interpretada tanto por agentes humanos como por agentes inteligentes.

¿Qué problema resuelve la web semántica?

La web semántica resuelve dos problemas: sobrecarga de información y diversidad de

fuentes de información. El principal problema del HTML es que no logra conectar todos los

datos de una búsqueda. Así, si queremos buscar „Perú PARTIDO DE FUTBOL MAÑANA‟,

cada palabra genera una búsqueda y tendremos cientos de datos de Perú, de partidos y del

mañana.

Con la incorporación de semántica a la Web los resultados de la búsqueda serían exactos,

eficientes y sobre todo más adecuados a las necesidades del usuario, por supuesto, se

mantienen los principios fundamentales tales como descentralización y compartición de

información.

Definición formal:

La Web Semántica es una extensión de la Web actual en la que la información se presenta

con un significado bien definido, permitiendo a los ordenadores y a las personas trabajar

conjuntamente.

Page 6: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 6

6

Capas de la Web Semántica

Unicode: Nos permite tener información en la Web Semántica expresada en cualquier idioma.

URI:

Las referencias. Cadenas que permiten acceder de forma acertada a cualquier recurso

de la Web.

XML (Extensible Markup Lenguaje):

Ofrece un formato común para el intercambio de documentos.

NS (namespaces): Proporciona un método para cualificar elementos y atributos de nombres usados en

documentos XML asociándolos con espacios de nombre identificados por referencias

URIs.

XML Schema: Es un lenguaje para describir la estructura y restringir el contenido de documentos

XML.

RDF +rdf schema: Basada en la capa anterior, define el lenguaje universal con el que podemos expresar

diferentes ideas en la Web Semántica.

Page 7: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 7

7

RDF: Es un lenguaje que define un modelo de datos para describir recursos mediante

tripletas sujeto-predicado-objeto.

RDF Schema: Es un vocabulario RDF que nos permite describir recursos mediante una orientación a

objetos.

Lenguaje de ontologías: Ofrece un criterio para catalogar y clasificar la información.

Lógica:

Además de ontologías se precisan reglas de inferencia.

Pruebas: Se intercambiarán "pruebas" escritas en el lenguaje unificador de la Web Semántica.

Confianza: Hasta que no se haya comprobado de forma exhaustiva las fuentes de información, los

agentes deberían ser desconfiados acerca de lo que leen en la Web Semántica.

Firma digital: Utilizada por los ordenadores y agentes para verificar que la información ha sido

ofrecida por una fuente de confianza.

Estándares y tecnologías para la Web Semántica

Page 8: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 8

8

Se menciona que para la construcción de la Ontología usaremos las recomendaciones de

los estándares respectivos como por ejemplo:

El uso de la Methontology que es una metodología creada por el Grupo de Ingeniería

Ontológica de la Universidad Politécnica de Madrid (UPM)

Ciclo de vida de METHONTOLOGY

Pasos a seguir son los siguientes:

1. Especificación.- Definir el alcance y granularidad de la ontología.

2. Conceptualización.- Permite organizar y estructurar el conocimiento adquirido mediante

tablas, lenguaje UML, jerarquías etc.

3. Implementación.- Representa la formalización de la Ontología; es decir pasar la

conceptualización de la ontología a un lenguaje como RDF, OWL, etc.

4. Evaluación.- Comprobar el funcionamiento de la ontología.

Page 9: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 9

9

Una de las partes más importantes es el Modelo Conceptual y para ello se debe seguir los

siguientes pasos:

5. Finalmente con la validación y verificación de nuestra Ontología, se espera implementar

un Sistema de Información de la Sección y además estar preparados para el futuro con la

llegada de la Web 3.

Page 10: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 10

10

Además se necesitan algunos conceptos básicos que utilizaremos para dicha

implementación.

ONTOLOGIAS

El concepto de Ontología se basa en la descripción del mundo real, similar a la programación

orientado a objetos (POO), por lo que nos permite representarlo por medio de clases,

subclases, propiedades y además nos permite construir relaciones entre ellos además del uso

de reglas a través del cual puedan interactuar y funcionar.

Una Ontología nos proporciona un vocabulario de clases y relaciones para describir un

dominio respectivo. Actualmente existen diferentes lenguajes para el diseño de Ontologías, el

más reciente estándar dado por la W3C es el denominado como OWL.

Una vez ya definido el alcance y la conceptualización se procede a la implementación con el

software respectivo.

Lenguajes de Ontologías Web (OWL)

El lenguaje OWL está diseñado para ser usado en aplicaciones que necesitan procesar el

contenido de la información en lugar de únicamente representar información para los

humanos. El OWL facilita un mejor mecanismo de interoperabilidad de contenido Web que

los mecanismos admitidos por los lenguajes XML, RDF y RDF schemas proporcionando un

vocabulario adicional para describir propiedades y clases, relaciones entre clases con una

semántica formal, Actualmente el OWL forma parte de un conjunto creciente de

recomendaciones del W3C relacionadas con la Web Semántica.

IV. Ventajas y desventaja de la técnica de IA

Ventajas:

El código es mucho más sencillo de desarrollar y mantener.

Los buscadores encuentran información relevante más fácilmente.

Es mucho más sencillo hacer modificaciones al diseño o compartir información.

Exactitud en la búsqueda de información.

Interoperabilidad a nivel de infraestructura, sintaxis y semántica.

Desventajas:

Esfuerzo de desarrollo

Baja adopción

Resistencia al cambio

“Academicismo”

Page 11: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 11

11

V. Aplicaciones y usos prácticos de las técnicas de IA

Aplicaciones y usos prácticos tenemos en el sector de educación, medicina, a portales

turísticos, la mejora de algunos procesos judiciales, la reparación de automóviles, la

recomendación de contenidos móviles, etc.

La información disponible en Internet, será capaz de atender de forma exacta las demandas

de información por parte de los usuarios en relación, por ejemplo, a reserva de hoteles,

vuelos, médicos, libros, etc.

Por ejemplo el usuario intenta encontrar todos los vuelos a Praga para mañana por la mañana,

obtendría unos resultados exactos sobre su búsqueda. Sin embargo la realidad es otra.

La figura 1 muestra los resultados inexactos que se obtendrían con el uso de cualquier

buscador actual, el cual ofrecería información variada sobre Praga pero que no tiene nada que

ver con lo que realmente el usuario buscaba.

Page 12: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 12

12

El paso siguiente por parte del usuario es realizar una búsqueda manual entre esas opciones

que aparecen, con la consiguiente dificultad y pérdida de tiempo. Con la incorporación de

semántica a la Web los resultados de la búsqueda serían exactos.

La figura 2 muestra los resultados obtenidos a través de un buscador semántico. Estos

resultados ofrecen al usuario la información exacta que estaba buscando. La ubicación

geográfica desde la que el usuario envía su pregunta es detectada de forma automática sin

necesidad de especificar el punto de partida, elementos de la oración como "mañana"

adquirirían significado, convirtiéndose en un día concreto calculado en función de un "hoy".

Algo semejante ocurriría con el segundo "mañana", que sería interpretado como un momento

determinado del día. Todo ello a través de una Web en la que los datos pasan a ser

información llena de significado. El resultado final sería la obtención de forma rápida y

sencilla de todos los vuelos a Praga para mañana por la mañana.

Page 13: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 13

13

VI. Construcción de una aplicación utilizando la técnica de IA a una

realidad concreta (solución del problema)

DESCRIPCION GENERAL DE LA AGENCIA DE ENTRETENIMIENTO Y

DIVERSION EN EL SUR

SERVICIOS (Venta x paquetes)

Paquete Dual

Paquete Familiar

Paquete Solitario

Paquete Corporativo

Paquete Económico

Paquete Grupal

Paquete Turista

CLIENTES

Tipos de cliente:

Jurídico: Son aquellos clientes que están constituido por una empresa.

Natural: Son aquellas clientes que está constituido por una persona que ejerce

derechos y cumple obligaciones.

EMPRESAS ASOCIADAS

Son aquellas empresas que requieren a la agencia para ofrecer sus servicios a través de los

paquetes de entretenimiento y diversión q ofrece la agencia a sus clientes.

Discotecas (VoceSur, CabashSur, El Dragón, Mister Fish, etc.)

Locales (Aqua Blue, Waka Waka)

Clubes (Náutico, Cafae, etc.)

Bares (Brahama2, Free Bar, etc.)

Hoteles (Surf Camp, Los Delfines, etc.)

Hostales (Bravo Surf, Surf Inn, casa barco, etc.)

Restaurantes (Santa Rosa, Sarita, Angelo‟s, etc.)

PAGO

Por el servicio, puede ser:

Tarjeta de crédito o

Cuenta bancaria

Page 14: PDF DE APOYO

Web Semantica |

14 PROYECTOS DE SISTEMAS INTELIGENTES

14

Diagrama de Clases

Juridica

Natural

Discotecas

Clubes

Hoteles

Tipo de Pago

Clientes

Pago

Realiza

VentaxPaquete

Depende

Empresas Asociadas

Requiere

Inversa_Requiere(ofrecen servicio para)

Hostales

Bares_Previos

Locales

Restaurantes

Servicios

Solicita

Page 15: PDF DE APOYO

Web Semantica |

15 PROYECTOS DE SISTEMAS INTELIGENTES

15

DIAGRAMA DE LA ONTOLOGIA TAXONOMIA

Page 16: PDF DE APOYO

Web Semantica |

16 PROYECTOS DE SISTEMAS INTELIGENTES

16

CLASES Y SUBCLASES

Page 17: PDF DE APOYO

Web Semantica |

17 PROYECTOS DE SISTEMAS INTELIGENTES

17

PROPIEDADES QUE PRESENTA LA ONTOLOGIA

Propiedades:

Cada propiedad que se define tiene un dominio y un rango. En nuestro caso tenemos las

siguientes propiedades:

PROPIEDAD DOMINIO RANGO

Depende Pago VentaxPaquete

Inverse_of_Requiere Empresas_Asociadas VentaxPaquete

Realiza Juridico

Natural Pago

Requiere VentaxPaquete Empresas_Asociadas

Solicita Juridico

Natural Servicio

Page 18: PDF DE APOYO

Web Semantica |

18 PROYECTOS DE SISTEMAS INTELIGENTES

18

RESTRICCIONES

De acuerdo a nuestra ontología definimos algunas reglas en base a nuestra lógica.

CLIENTE - JURIDICO

CLIENTE – NATURAL

Page 19: PDF DE APOYO

Web Semantica |

19 PROYECTOS DE SISTEMAS INTELIGENTES

19

EMPRESAS ASOCIADAS

Todas las Empresas Asociadas (Bares_Previos, Clubes, Discotecas, etc.)

PAGO – TIPO DE PAGO

SERVICIO – VentaxPaquete

Page 20: PDF DE APOYO

Web Semantica |

20 PROYECTOS DE SISTEMAS INTELIGENTES

20

INSTANCIAS

Ingresamos atributos como individuos para una clase determinada.

CLIENTES – JURIDICO

Page 21: PDF DE APOYO

Web Semantica |

21 PROYECTOS DE SISTEMAS INTELIGENTES

21

CLIENTE – NATURAL

Page 22: PDF DE APOYO

Web Semantica |

22 PROYECTOS DE SISTEMAS INTELIGENTES

22

EMPRESAS ASOCIADAS

Page 23: PDF DE APOYO

Web Semantica |

23 PROYECTOS DE SISTEMAS INTELIGENTES

23

PAGO – TIPO DE PAGO

Page 24: PDF DE APOYO

Web Semantica |

24 PROYECTOS DE SISTEMAS INTELIGENTES

24

SERVICIO – VentaxPaquete

Page 25: PDF DE APOYO

Web Semantica |

25 PROYECTOS DE SISTEMAS INTELIGENTES

25

VALIDACION DEL MODELO

Validando nuestro proyecto en: http://www.mindswap.org/2003/pellet/demo.shtml

Y como resultado tenemos:

Page 26: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 26

26

CONSULTAS SPARQL

Empresas Asociadas

Restaurantes:

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Restaurantes table:Tipo_Comida_EA ?Tipo_Comida_EA.

?Restaurantes table:Dias_de_Atencion?Dias_de_Atencion.

?Restaurantes table:Horario_Atencion_EA ?Horario_Atencion_EA.

?Restaurantes table:Telefono_Empresa ?Telefono_Empresa.

} ORDER BY ?Tipo_Comida_EA

Locales:

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Locales table:Precio ?Precio.

?Locales table:Adicional_EA ?Adicional_EA.

?Locales table:Descripcion_EA ?Descripcion_EA.

?Locales table:Estado_EA ?Estado_EA.

}

ORDER BY ?Precio

Page 27: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 27

27

Discotecas

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Discotecas table:Tipo_musica_ofrece_EA ?Tipo_musica_ofrece_EA.

?Discotecas table:Horario_Atencion_EA ?Horario_Atencion_EA.

?Discotecas table:Tipo_Bebidas ?Tipo_Bebidas.

?Discotecas table:Telefono_Empresa ?Telefono_Empresa.

?Discotecas table:Email_Empresa_link ?Email_Empresa_link.

?Discotecas table:Estado_EA ?Estado_EA.

} order by ?Tipo_musica_ofrece_EA

Clubes

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Clubes table:Ubicacion_EA ?Ubicacion_EA.

?Clubes table:Precio ?Precio.

?Clubes table:Horario_Atencion_EA ?Horario_Atencion_EA.

?Clubes table:Dias_de_Atencion ?Dias_de_Atencion.

?Clubes table:Adicional_EA ?Adicional_EA.

?Clubes table:Telefono_Empresa ?Telefono_Empresa.

?Clubes table:Email_Empresa_link ?Email_Empresa_link.

} order by ?Ubicacion_EA

Page 28: PDF DE APOYO

Web Semantica |

28 PROYECTOS DE SISTEMAS INTELIGENTES

28

Clientes

Jurídico

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Juridico table:Email_Clie ?Email_Clie.

?Juridico table:Telefono_Empresa ?Telefono_Empresa.

?Juridico table:Nro_Ruc ?Nro_Ruc.

?Juridico table:Realiza ?Realiza.

}

Natural

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Natural table:DNI_Pasaporte_clie ?DNI_Pasaporte_clie.

?Natural table:Telefono_Clie ?Telefono_Clie.

?Natural table:Solicita ?Solicita.

?Natural table:Email_Clie ?Email_Clie.

?Natural table:Realiza ?Realiza.

}

Page 29: PDF DE APOYO

Web Semantica |

29 PROYECTOS DE SISTEMAS INTELIGENTES

29

PAGO

Tipo de Pago

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Tipo_Pago table:Nro_tarjetaCredito_O_Cuenta ?Nro_tarjetaCredito_O_Cuenta.

?Pago table:Depende ?Depende.

}

Tipo de Pago depende de la VentaxPaquete

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Tipo_Pago table:Depende ?Depende.

}

Page 30: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 30

30

SERVICIO

VentaxPaquete

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?VentaxPaquete table:Precio ?Precio.

?VentaxPaquete table:Requiere ?Requiere.

}

Page 31: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 31

31

OTRO TIPO DE CONSULTAS

Clientes que pagado tarjeta de crédito y con qué tipo de tarjeta ha pagado

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT ?Cliente ?Tarjeta_Credito ?Nro_tarjetaCredito_O_Cuenta

?Tipo_Tarjeta

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Cliente table:Realiza ?Realiza.

?Tarjeta_Credito table:Nro_tarjetaCredito_O_Cuenta?Nro_tarjetaCredito_O_Cuenta.

?Tarjeta_Credito table:Tipo_Tarjeta?Tipo_Tarjeta.

}

Venta por Paquete (Orden)

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT ?VentaxPaquete ?Precio

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?VentaxPaquete table:Precio?Precio.

?VentaxPaquete table:Requiere?Requiere.

}ORDER BY ASC(?Precio) LIMIT 10 OFFSET 20

Page 32: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 32

32

Consultas con Filtros

En este caso buscamos como filtro a “carlosac88”

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Natural table:Email_Clie ?Email_Clie.

FILTER regex(?Email_Clie, "^carlosac88")

}

Ahora buscamos como filtro el CLUB “El Bosque”

prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>

SELECT *

FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>

WHERE {

?Clubes table:Ubicacion_EA ?Ubicacion_EA.

Filter(?Clubes = :El_Bosque)

}

Page 33: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 33

33

CONEXIÓN CON JENA

package ServicioAgencia;

import com.hp.hpl.jena.ontology.OntClass;

import com.hp.hpl.jena.ontology.OntModel;

import com.hp.hpl.jena.ontology.OntProperty;

import com.hp.hpl.jena.ontology.OntModelSpec;

import com.hp.hpl.jena.rdf.model.ModelFactory;

import com.hp.hpl.jena.util.FileManager;

import com.hp.hpl.jena.util.iterator.ExtendedIterator;

public class Clase {

public static void main(String[] args) {

// TODO code application logic here

OntModel model = null;

// crear un modelo utilizando como razonador OWL_MEM_RULE_INF

model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_RULE_INF );

// abrir el archivo con la ontología

java.io.InputStream in = FileManager.get().open( "pc3.owl" );

if (in == null) {

throw new IllegalArgumentException("Archivo no encontrado");

}

// leer el archivo RDF/XML

Page 34: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 34

34

model.read(in, "");

//

// El siguiente código muestra un listado con las clases e instancias existentes en el modelo

//

System.out.println( "Clases/Instancias");

System.out.println( "=================");

ExtendedIterator iteratorClasses = model.listClasses();

while ( iteratorClasses.hasNext() ){

OntClass ontClass = (OntClass) iteratorClasses.next();

System.out.println( ontClass );

ExtendedIterator iteratorInstances = ontClass.listInstances();

while ( iteratorInstances.hasNext() ){

System.out.println( "\t"+iteratorInstances.next() );

}

System.out.println("");

}

}

}

Page 35: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 35

35

CONSULTAS:

ConsultaClienteJuridico:

package ServicioAgencia;

import com.hp.hpl.jena.ontology.OntModel;

import com.hp.hpl.jena.ontology.OntModelSpec;

import com.hp.hpl.jena.query.QueryExecution;

import com.hp.hpl.jena.query.QueryExecutionFactory;

import com.hp.hpl.jena.query.QueryFactory;

import com.hp.hpl.jena.query.ResultSet;

import com.hp.hpl.jena.query.ResultSetFormatter;

import com.hp.hpl.jena.rdf.model.ModelFactory;

import com.hp.hpl.jena.util.FileManager;

public class ConsultaClienteJuridico {

public static void main(String[] args) {

// TODO code application logic here

Page 36: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 36

36

OntModel model = null;

//String ns = "http://www.example.com/PruebasOntology.owl";

// crear un modelo utilizando como razonador OWL_MEM_RULE_INF

model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_RULE_INF );

// abrir el archivo con la ontología

java.io.InputStream in = FileManager.get().open( "pc3.owl" );

if (in == null) {

throw new IllegalArgumentException("Archivo no encontrado");

}

// leer el archivo RDF/XML

model.read(in, "");

//

// El siguiente código ejecuta una consulta sparql que

// devuelve todas las canciones cuyo autor es Elvis Presley

//

String queryString =

"prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>"+

"SELECT *"+

"FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>"+

Page 37: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 37

37

"WHERE" +

" {"+

"?Juridico table:Solicita ?Solicita. "+

"?Juridico table:Realiza ?Realiza. "+

"?Juridico table:Nro_Ruc ?Nro_Ruc. "+

"?Juridico table:Email_Clie ?Email_Clie. "+

"?Juridico table:Telefono_Empresa?Telefono_Empresa."+

"}";

com.hp.hpl.jena.query.Query query = QueryFactory.create(queryString);

// Ejecutar la consulta y obtener los resultados

QueryExecution qe = QueryExecutionFactory.create(query, model);

try {

ResultSet results = qe.execSelect();

ResultSetFormatter.out(System.out, results, query) ;

} finally { qe.close() ; }

}

}

Page 38: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 38

38

ConsultaClienteNatural:

package ServicioAgencia;

import com.hp.hpl.jena.ontology.OntModel;

import com.hp.hpl.jena.ontology.OntModelSpec;

import com.hp.hpl.jena.query.QueryExecution;

import com.hp.hpl.jena.query.QueryExecutionFactory;

import com.hp.hpl.jena.query.QueryFactory;

import com.hp.hpl.jena.query.ResultSet;

import com.hp.hpl.jena.query.ResultSetFormatter;

import com.hp.hpl.jena.rdf.model.ModelFactory;

import com.hp.hpl.jena.util.FileManager;

public class ConsultaClienteNatural {

public static void main(String[] args) {

// TODO code application logic here

OntModel model = null;

String ns = "http://www.example.com/PruebasOntology.owl";

// crear un modelo utilizando como razonador OWL_MEM_RULE_INF

model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_RULE_INF );

// abrir el archivo con la ontología

java.io.InputStream in = FileManager.get().open( "pc3.owl" );

if (in == null) {

throw new IllegalArgumentException("Archivo no encontrado");

}

Page 39: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 39

39

// leer el archivo RDF/XML

model.read(in, "");

//

// El siguiente código ejecuta una consulta sparql que

//

String queryString =

"prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>"+

"SELECT *"+

"FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>"+

"WHERE" +

" {"+

"?Natural table:Realiza ?Realiza. "+

"?Natural table:Solicita ?Solicita. "+

"?Natural table:Email_Clie ?Email_Clie. "+

"?Natural table:Telefono_Clie ?Telefono_Clie. "+

"?Natural table:DNI_Pasaporte_clie ?DNI_Pasaporte_clie. "+

"} order by?Realiza";

com.hp.hpl.jena.query.Query query = QueryFactory.create(queryString);

// Ejecutar la consulta y obtener los resultados

QueryExecution qe = QueryExecutionFactory.create(query, model);

try {

ResultSet results = qe.execSelect();

ResultSetFormatter.out(System.out, results, query) ;

} finally { qe.close() ; }

}

Page 40: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 40

40

}

ConsultaEA:

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package ServicioAgencia;

import com.hp.hpl.jena.ontology.OntModel;

import com.hp.hpl.jena.ontology.OntModelSpec;

import com.hp.hpl.jena.query.QueryExecution;

import com.hp.hpl.jena.query.QueryExecutionFactory;

import com.hp.hpl.jena.query.QueryFactory;

import com.hp.hpl.jena.query.ResultSet;

import com.hp.hpl.jena.query.ResultSetFormatter;

import com.hp.hpl.jena.rdf.model.ModelFactory;

import com.hp.hpl.jena.util.FileManager;

Page 41: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 41

41

public class ConsultaEA {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

OntModel model = null;

String ns = "http://www.example.com/PruebasOntology.owl";

// crear un modelo utilizando como razonador OWL_MEM_RULE_INF

model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_RULE_INF );

// abrir el archivo con la ontología

java.io.InputStream in = FileManager.get().open( "pc3.owl" );

if (in == null) {

throw new IllegalArgumentException("Archivo no encontrado");

}

// leer el archivo RDF/XML

model.read(in, "");

//

// El siguiente código ejecuta una consulta sparql que

// devuelve todas las canciones cuyo autor es Elvis Presley

//

String queryString =

"prefix table: <http://www.owl-ontologies.com/Ontology1301858667.owl#>"+

"SELECT *"+

Page 42: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 42

42

"FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>"+

"WHERE" +

" {"+

// "?Restaurantes table:Tipo_Comida_EA ?Tipo_Comida_EA. "+

//"?Hotel table:Categoria_EA ?Categoria_EA . "+

"?Discotecas table:Tipo_musica_ofrece_EA ?Tipo_musica_ofrece_EA. "+

/*"?Clubes table:Precio ?Precio. "+

"?Clubes table:Ubicacion_EA ?Ubicacion_EA. "+ */

"}";

com.hp.hpl.jena.query.Query query = QueryFactory.create(queryString);

// Ejecutar la consulta y obtener los resultados

QueryExecution qe = QueryExecutionFactory.create(query, model);

try {

ResultSet results = qe.execSelect();

ResultSetFormatter.out(System.out, results, query) ;

} finally { qe.close() ; }

}

}

Page 43: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 43

43

IMPLEMENTACION VIA WEB AEDS

Diseño:

CODIGO :

BusquedaCliente.Java

package ServicioAgencia;

import ServicioAgencia.Formato.*;

import com.hp.hpl.jena.ontology.*;

import com.hp.hpl.jena.query.*;

import com.hp.hpl.jena.rdf.model.*;

import com.hp.hpl.jena.util.*;

public class BusquedaCliente {

String t;

Page 44: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 44

44

private Formateo f=null;

public String cj(String var, String tipo){

System.out.print("\n\n\n holaaa: "+tipo+"\n\n\n");

ResultSet results;

OntModel model = null;

model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_RULE_INF );

java.io.InputStream in = FileManager.get().open( "http://localhost:8084/aeds_web/pc3.owl" );

if (in == null) {

throw new IllegalArgumentException("Archivo no encontrado");

}

model.read(in, "");

String queryString ="prefix table: <http://www.owl-

ontologies.com/Ontology1301858667.owl#>"+

"SELECT * "+

"FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>"+

"WHERE" +

" {"+

"?Juridico table:Email_Clie ?Email_Clie. "+

"FILTER regex(?Email_Clie, \'^"+var+"\')"+

"}";

com.hp.hpl.jena.query.Query query = QueryFactory.create(queryString);

// Ejecutar la consulta y obtener los resultados

Page 45: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 45

45

QueryExecution qe = QueryExecutionFactory.create(query, model);

try {

results = qe.execSelect();

t=ResultSetFormatter.asXMLString( results,"http://www.w3.org/TR/rdf-sparql-

XMLres/result-to-html.xsl");

} finally { qe.close() ; }

f=new Formateo();

String s =f.tabuladorXML(f.eliminaOrigen(t));

return s;

}

public String cn(String var, String tipo){

ResultSet results;

OntModel model = null;

model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_RULE_INF );

java.io.InputStream in = FileManager.get().open( "http://localhost:8084/aeds_web/pc3.owl" );

if (in == null) {

throw new IllegalArgumentException("Archivo no encontrado");

}

model.read(in, "");

String queryString="prefix table: <http://www.owl-

ontologies.com/Ontology1301858667.owl#>"+

"SELECT * "+

"FROM <http://www.owl-ontologies.com/Ontology1301858667.owl>"+

"WHERE" +

Page 46: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 46

46

" {"+

"?Natural table:Solicita ?Solicita. "+

"FILTER regex(?Solicita, \'^"+var+"\')"+

"}";

com.hp.hpl.jena.query.Query query = QueryFactory.create(queryString);

// Ejecutar la consulta y obtener los resultados

QueryExecution qe = QueryExecutionFactory.create(query, model);

try {

results = qe.execSelect();

t=ResultSetFormatter.asXMLString( results,"http://www.w3.org/TR/rdf-sparql-

XMLres/result-to-html.xsl");

} finally { qe.close() ; }

f=new Formateo();

String s =f.tabuladorXML(f.eliminaOrigen(t));

return s;

}

}

Page 47: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 47

47

CLIENTES.JSP

CLIENTE.JSP

Page 48: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 48

48

VII. Explicación general del sistema inteligente (software)

PRUEBA DE LA APLICACIÓN WEB AEDS

(Buscador del archivo Owl)

Buscador de Cliente por correo electrónico no es necesario escribir el correo completo con solo

poner una letra busca a todos los correos que empieza con esa letra que ha ingresado al

buscador.

Page 49: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 49

49

Page 50: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 50

50

Implementando 4 opciones de Búsqueda:

Por Ubicación de la Empresa Asociada (Destino a donde se quiera ir)

Por Tipo de Música (El tipo de Música que se quiera escuchar en las discotecas)

Por Tipo de Comida (El tipo de Comida que se desea)

Por Categoría (Para búsqueda de qué tipo de establecimiento se desea ir)

Page 51: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 51

51

Búsqueda de Las Empresas Asociadas en “San Bartolo”

Búsqueda del tipo de Música en determinadas Discotecas del Sur, por ejemplo “Regge”

Page 52: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 52

52

Búsqueda de los tipos de comida que sirven en los Restaurantes, por ejemplo: “Buffet”

Búsqueda de los establecimientos según su categoría, por ejemplo: “Hotel”

Page 53: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 53

53

VIII. Conclusiones y Recomendaciones.

El proyecto elaborado promueve el turismo en las playas del sur del país a través de una agencia

de entretenimiento y diversión, muy aparte de brindar sus paquetes turístico, quiere dar la opción

al cliente o futuro cliente de realizar búsquedas de las empresas asociadas a la agencia y así las

personas interesada podrán averiguar su ubicación, categoría, precio que ofrece cada empresa

asociada a la agencia.

Todo esto se obtendrá a partir de la implementación de un buscador semántico al portal de la

agencia que a través de esta implementación gestionará mejor la información solicitada por las

personas interesadas, mediante la construcción de un ontología guiándose de la Methontology

mediante una herramienta llamada Protege en la cual se definirá las clases, subclase, instancias y

sobre todo las reglas que dependerá del negocio, esta herramienta nos ayudará mucho en la

elaboración del OWL que contiene XML y RDF, se podrá tener una información organizada y

búsquedas eficaces.

Para la elaboración ontología en la herramienta protege a la hora de validación nos salió errores

que al final lo resolvimos:

1. No acepta “ñ” en los campos: por ejemplo discoteca “La cabaña”.

2. No respetamos el orden de la Methontology en algunos aspectos: Se puso primero las

instancias, luego las reglas y era al revés.

3. No utilizamos los validadores por cada cambio que se hacía, grave error, basta que borres

una instancia, una clase, una regla después todo el programa sale “Error”.

4. Owl generado antes de modificarlo se debe guardar otro para que a la hora de modificar

el Owl original no se dañe.

Page 54: PDF DE APOYO

Web Semantica |

PROYECTOS DE SISTEMAS INTELIGENTES 54

54

IX. Lecciones aprendidas

El proyecto fue elaborado por tres personas de lo cual repartimos e intercambiamos roles para

ellos y llegamos a una conclusión para este proyecto. Se necesitó un integrante que gestione, otro

integrante que programe y un integrante investigador.

Mediante este proyecto aprendimos usar la herramienta protege versión 3.4.1 que nos facilitó

hacer el código Owl; a través de la librería Jena nos facilitó exportar datos y hacer las consulta

Sparql de modo consola en la plataforma NetBeans y a través de los blogs nos facilitó el código

java de conexión y de las consultas en modo consola.

Se llegó a implementar el buscador semántico pero a un nivel básico uno de los factores fueron:

El tiempo que perdimos en la validación ya que no lo hicimos por modificación (ya sea instancia

borradas, clases y subclases, reglas no asociadas, etc.) del Owl si no al final teniendo como

consecuencia errores en el Owl.

Para llevar al portal nos costó mucho esfuerzo ya que algunas cosas no eran obvias como dicen

en algunas webs además no se encuentra mucha información acerca de implementación

buscadores semántico en NetBeans con código java y jsp, en este caso para implementarlo en la

web de lo que se ha visto en internet más lo enfocan con php y otras herramientas.

X. Referencias bibliográficas

http://www.figmm.uni.edu.pe/Publicaciones/articulopostfinal.pdf

http://www.cesarcabrera.info/proyectoGrado/

http://www.lluiscodina.com/webSemanticaOntologias2007.pdf

http://arantxa.ii.uam.es/~castells/publications/castells-uclm03.pdf

http://csrinaldi.blogspot.com/

http://www.sedic.es/gt_normalizacion_tutorial_ontologias.pdf

http://www.aab.es/pdfs/jba15/10-Ontologia_e_inteligencia_artificial.pdf

VIDEOS:

http://wn.com/Ontologia_en_Prot%C3%A9g%C3%A9_y_RAP

http://www.youtube.com/watch?v=mtiUxYV4ZQQ&NR=1

http://www.youtube.com/watch?v=lYaas93Va8g

http://wn.com/Ontologia_en_Prot%C3%A9g%C3%A9_y_RAP

http://www.youtube.com/watch?v=EmK_iuqVyT0&feature=related