Upload
salon504tua
View
548
Download
0
Embed Size (px)
DESCRIPTION
EXPOSICION DEL CURSO DE SISTEMAS INTELIGENTE CON EL PROFESOR CASMA
Citation preview
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
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.
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
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.
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.
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.
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
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.
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.
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”
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.
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.
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
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
Web Semantica |
15 PROYECTOS DE SISTEMAS INTELIGENTES
15
DIAGRAMA DE LA ONTOLOGIA TAXONOMIA
Web Semantica |
16 PROYECTOS DE SISTEMAS INTELIGENTES
16
CLASES Y SUBCLASES
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
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
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
Web Semantica |
20 PROYECTOS DE SISTEMAS INTELIGENTES
20
INSTANCIAS
Ingresamos atributos como individuos para una clase determinada.
CLIENTES – JURIDICO
Web Semantica |
21 PROYECTOS DE SISTEMAS INTELIGENTES
21
CLIENTE – NATURAL
Web Semantica |
22 PROYECTOS DE SISTEMAS INTELIGENTES
22
EMPRESAS ASOCIADAS
Web Semantica |
23 PROYECTOS DE SISTEMAS INTELIGENTES
23
PAGO – TIPO DE PAGO
Web Semantica |
24 PROYECTOS DE SISTEMAS INTELIGENTES
24
SERVICIO – VentaxPaquete
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:
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
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
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.
}
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.
}
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.
}
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
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)
}
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
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("");
}
}
}
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
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>"+
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() ; }
}
}
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");
}
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() ; }
}
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;
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 *"+
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() ; }
}
}
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;
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
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" +
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;
}
}
Web Semantica |
PROYECTOS DE SISTEMAS INTELIGENTES 47
47
CLIENTES.JSP
CLIENTE.JSP
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.
Web Semantica |
PROYECTOS DE SISTEMAS INTELIGENTES 49
49
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)
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”
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”
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.
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