Ontología para la representación de relaciones de similitud entre Servicios Web Maricela Claudia Bravo Contreras Rafaela Blanca Silva López D e p a r t a m e n t o d e S i s t e m a s U n i v e r s i d a d A u t ó n o m a M e t r o p o l i t a n a U n i d a d A z c a p o t z a l c o m c b c @ c o r r e o. a z c. u a m. m x
Contenido 2 1. Introducción 2. Arquitectura general 3. Mediciones de similitud 4. Ontología de servicios Web 5. Inferencia lógica 6. Comentarios finales
Áreas de investigación 3 Protocolos de comunicación Comercio electrónico FIPA-ACL UDDI WSDL SOAP BPEL WSMO KQML OWL OWL-S Protégé
Qué es un servicio Web? 4 Componente de software distribuido que ofrece alguna funcionalidad específica: Reutilizable Descubrible Independiente del lenguaje y la palataforma en el que fue construido. Input Parameters (name, type) Output Parameters (name, type)
Introducción Internet está poblado con innumerables recursos de software reutilizables (servicios Web 1 ). 5 La búsqueda y utilización de servicios Web públicos son tareas que no ha sido posible automatizar debido a que las descripciones de los servicios Web Carecen de semántica funcional bien definida No contienen ejemplares de invocación La mayoría de ellos no cuenta con documentación. 1 El motor de búsqueda Seekda actualmente cataloga más de 28000 servicios Web públicos.
Motivación: Composición de Servicios Web 6 Client requirements specification service Search, selection and composition of Web services Hotel booking Car rental Checkout and e-payment Qué sucedería si la ejecución de un servicio falla? Enjoy trip Modify requirements Tourist guide Flight reservation
Motivación: Descubrimiento y Selección 7 Hotel booking Client requirements specification service Search, selection and composition of Web services Car rental Tourist guide Checkout and e-payment Es posible encontrar un servicio similar? Enjoy trip Modify requirements Flight reservation
Motivación: Descubrimiento y Selección 8 Hotel booking Client requirements specification service Search, selection and composition of Web services Car rental Tourist guide Flight reservation Checkout and e-payment Es posible encontrar un servicio que presente la misma funcionalidad y la misma estructura? Enjoy trip Modify requirements
Motivación: Optimización 9 Hotel booking Client requirements specification service Search, selection and composition of Web services Car rental Checkout and e-payment Enjoy trip Modify requirements Tourist guide Flight reservation Es posible mejorar la ejecución global de la composición?
Arquitectura General Minería de Servicios Web 10 Recuperación de servicios Web públicos Análisis y extracción de datos de servicios Web Ontological Representation of Mined Web s Cálculo de similitudes entre servicios Web Clasificación y agrupamiento Inferencia lógica y mantenimiento Ontology Management Web Ontology
La necesidad de Mediciones de Similitud 11
Enfoques de medición para Servicios Web 12 1. SINTÁCTICO 2. ESTRUCTURAL 3. SEMÁNTICO 4. PRAGMÁTICO
Medición de la similitud entre servicios 13 Métricas con un enfoque estructural. Extraen la información del servicio a partir de archivos en WSDL, OWL-S o WSMO. Estas métricas consideran los parámetros de entrada, parámetros de salida, tipos de datos, nombre y número de operaciones, etc. Cualquier información derivada de las descripciones de los servicios. Métricas con un enfoque semántico. Emplean técnicas derivadas del procesamiento de lenguaje natural o técnicas derivadas de análisis lingüístico. Utilizan los textos publicados de los servicios en los repositorios y toda la documentación que se haya incluido en la descripción del servicio. Además se apoyan en el empleo de diccionarios en línea como Wordnet, o de ontologías de dominio.
14 Mediciones estructurales 1. Operation Name 2. Input Parameter 3. Output Parameter 4. Structural Similarity Let Oname 1 and Oname 2 be two compound operation names from different Web services. Oname 1 consisting of a set of lexical tokens identified by OnameTokens 1. Oname 2 consisting of a set of lexical tokens identified by OnameTokens 2. The name lexical similarity between them is calculated with the Jaccard Similarity Coefficient: OperationNameSim (Oname 1, Oname 2 ) = OnameTokens 1 OnameTokens 2 / OnameTokens 1 OnameTokens 2
15 Mediciones estructurales 1. Operation Name 2. Input Parameter 3. Output Parameter 4. Structural Similarity Let O 1 = (Oname 1, Ip 1 ), O 2 = (Oname 2, Ip 2 ) be two operations from different Web services, with Oname i representing the operation name and Ip i the set of n input parameters described as follows: Ip 1 = { (namep 1, typep 1 ), (namep 2, typep 2 ),, (namep n, typep n )}, Ip 2 = { (namep 1, typep 1 ), (namep 2, typep 2 ),, (namep n, typep n )}. InputParSim (O 1, O 2 ) = Ip 1 Ip 2 / Ip 1 Ip 2
16 Mediciones estructurales 1. Operation Name 2. Input Parameter 3. Output Parameter Let OPname 1, OPname 2, be two output parameter names from different Web service operations, each consisting of a set of lexical tokens identified by OPnameTokens 1 and OPnameTokens 2, respectively. OPnameSim (OPname 1, OPname 2 ) = OPnameTokens 1 OPnameTokens 2 / OPnameTokens 1 OPnameTokens 2 4. Structural Similarity
17 Mediciones estructurales 1. Operation Name 2. Input Parameter Let OPtype 1, OPtype 2, be two output parameter data types from different Web service operations. The output parameter data type similarity between them is calculated as follows: 3. Output Parameter 4. Structural Similarity
18 Mediciones estructurales 1. Operation Name 2. Input Parameter 3. Output Parameter 4. Structural Similarity Average output similarity. Let O 1 = (Oname 1, Op 1 ), O 2, = (Oname 2, Op 2 ), be two operations from different Web services, with name Oname i and the output parameter object Op i of operation i. Each output parameter object Op i consists of a pair of name and data type, Op 1 = (OPname 1, OPtype 1 ), and Op 2 = (OPname 2, OPtype 2 ). The output parameter similarity is given by the mean of output parameter name similarity and output parameter data type similarity. OutputParSim(O 1, O 2 ) = Prom [ OPnameSim(OPname 1, OPname 2 ), OPtypeSim(OPtype 1, OPtype 2 ) ]
19 Mediciones estructurales 1. Operation Name 2. Input Parameter 3. Output Parameter Let O 1 = (Oname 1, Ip 1, Op 1 ), O 2, = (Oname 2, Ip 2, Op 2 ), be two Web service operations with their respective sets of parameters; the level of structural similarity between them is calculated as follows: StructuralSim (O 1, O 2 ) = Prom [ OperationNameSim (Oname 1, Oname 2 ), InputParSim (O 1, O 2 ), OutputParSim (O 1, O 2 ) ] 4. Structural Similarity
Cálculo de la similitud 20 Web Repository WSDL file WSDL file WSDL file WSDL file Operation name similarity method Output parameter similarity method Structural similarity method Extraction of service data from local repositories Input parameter similarity method
Ontología de Servicios Web 21
Diseño de la Ontología 22 Parameter is-a is-a Input Parameter hasoperation hasinputparameter Operation Output Parameter hasoutputparameter
Relaciones semánticas de la clase operación 23 Operation isinputparamsimilar isoutputparamsimilar isoperationnamesimilar isstructuralsimilar
Inferencia 24
Reglas de Inferencia 25 isinputparamsimilarto(?a,?b) isinputparamsimilarto(?b,?c) isinputparamsimilarto(?a,?c) isoutputparamsimilarto(?a,?b) isoutputparamsimilarto(?b,?c) isoutputparamsimilarto(?a,?c) isoperationnamesimilarto(?a,?b) isoperationnamesimilarto(?b,?c) isoperationamesimilarto(a, c) isstructuralsimilarto(?a,?b) isstructuralsimilarto(?b,?c) isstructuralsimilarto(?a,?c)
Reglas de Consulta 26 Operations(?x) Operations(?y) isinputparamsimilarto(?x,?y) sqwrl:select(?x,?y) Operations(?x) Operations(?y) isoutputparamsimilarto(?x,?y) sqwrl:select(?x,?y) Operations(?x) Operations(?y) isoperationnamesimilarto(?x,?y) sqwrl:select(?x,?y)
Substitución de Servicios Web 27 Operations(?x) Operations(?y) isinputparamsimilarto(?x,?y) isoutputparamsimilarto(?x,?y) isoperationnamesimilarto(?x,?y) sqwrl:select(?x,?y)
Ejemplo: búsqueda de servicios de rutas de vuelos Flights(?x) hasoperation(?x,?y) hasoperationname(?y,?str) swrlb:contains(?str, "Route") sqwrl:select(?x,?y) 28 Volagratis Arc Function Volagratis-getRoutes Arc-GetRoutes El uso de la ontología permite extender el conjunto de resultados al aprovechar las relaciones de similitud entre servicios. Operations(?op1) hasoperationname(?op1,?str) swrlb:contains(?str, "Route") Operations(?op2) isinputparamsimilarto(?op1,?op2) sqwrl:select(?op1,?op2) Arc-GetRoutes Function Arc-GetAvailability
Ejemplo: búsqueda de servicios de rutas de vuelos Flights(?x) hasoperation(?x,?y) hasoperationname(?y,?str) swrlb:contains(?str, "Route") sqwrl:select(?x,?y) 29 Volagratis Arc Function Volagratis-getRoutes Arc-GetRoutes El uso de la ontología permite extender el conjunto de resultados al aprovechar las relaciones de similitud entre servicios. Operations(?op1) hasoperationname(?op1,?str) swrlb:contains(?str, "Route") Operations(?op2) isinputparamsimilarto(?op1,?op2) sqwrl:select(?op1,?op2) Arc-GetRoutes Function Arc-GetAvailability
Comentarios finales 30 Las ontologías representan una de las tecnologías clave que favorecerá la interoperabilidad semántica de todo tipo de aplicaciones. Así como la integración de fuentes de datos e información heterogéneas. Los protocolos y estándares de los servicios Web por su parte permiten resolver el problema de múltiples plataformas de desarrollo. La integración de estas dos tecnologías con los agentes de software dotarán de servicios inteligentes y eficientes a desarrolladores y usuarios finales.
Gracias por su atención!!! 31