Escolar Documentos
Profissional Documentos
Cultura Documentos
e-mail: naaguirre@fi.uba.ar
2011
75.00 Tesis
Agradecimientos
2
75.00 Tesis
INDICE
TESIS ............................................................................................................................... 1
INTRODUCCIN............................................................................................................... 6
CAPTULO I.................................................................................................................... 10
CAPTULO II .................................................................................................................. 31
Ontologa ................................................................................................................................................................... 31
2.1 Generalidades ................................................................................................................................................ 31
2.2 Folksonomas y ontologas ......................................................................................................................... 33
2.3 Lgica y ontologas ....................................................................................................................................... 35
2.4 Aplicaciones .................................................................................................................................................. 36
2.5 Lenguajes ontolgicos ................................................................................................................................. 39
2.5.1 RDF ..................................................................................................................................................... 39
2.5.1.1 Conceptos Bsicos ........................................................................................................................ 39
2.5.1.2 RDF y la ambigedad semntica XML ....................................................................................... 43
2.5.2 OWL .................................................................................................................................................... 45
2.5.2.1 Conceptos Bsicos ........................................................................................................................ 45
2.5.2.2 Sub-Lenguajes............................................................................................................................... 49
2.5.2.3 Semntica Formal ........................................................................................................................ 51
2.5.3 WSMO ................................................................................................................................................. 51
2.5.3.1 Principios de diseo .................................................................................................................... 52
2.5.3.2 Conceptos bsicos ........................................................................................................................ 52
2.5.4 DAML-S............................................................................................................................................... 53
2.5.5 OWL-S ..................................................................................................................................................... 54
2.5.6 SWSF................................................................................................................................................... 54
2.5.7 WSDL-S............................................................................................................................................... 55
2.5.8 SAWSDL ............................................................................................................................................. 56
2.6 Razonador ...................................................................................................................................................... 57
2.6.1 Clasificacin .......................................................................................................................................... 59
3
75.00 Tesis
2.6.1.1 Razonadores de lgica descriptiva ............................................................................................. 59
2.6.1.2 Razonadores de programacin lgica ....................................................................................... 60
2.7 SWRL .............................................................................................................................................................. 61
2.7.1 Motivaciones ......................................................................................................................................... 61
2.7.2 DL-Safe Rules ......................................................................................................................................... 62
2.8 Ejemplos ......................................................................................................................................................... 62
Agentes ...................................................................................................................................................................... 81
3.1 Generalidades ................................................................................................................................................ 81
3.1.1 Agente y entorno ............................................................................................................................. 81
3.1.2 Agentes y objetos ............................................................................................................................. 85
3.1.3 Agentes y sistemas expertos .......................................................................................................... 86
3.1.4 Agentes y servicios .......................................................................................................................... 86
3.2 Clasificacin................................................................................................................................................... 90
3.2.1 Clasificacin dependiendo de la relacin entre percepciones y acciones ............................... 92
3.2.2 Clasificacin de acuerdo al tipo de aplicacin ............................................................................. 92
3.2.3 Clasificacin de acuerdo a caractersticas especiales ................................................................ 92
3.3 Matchmaking entre agentes heterogneos ............................................................................................. 93
3.4 Informacin semntica que registran ...................................................................................................... 94
3.5 Aplicaciones de ontologas en agentes...................................................................................................... 97
3.6 Definicin de las funcionalidades relacionadas con las capacidades esperadas de los agentes
basados en razonadores. .................................................................................................................................... 99
3.7 Razonadores alternativos que puedan ser incorporados en el agente .............................................. 99
GLOSARIO.................................................................................................................... 124
4
75.00 Tesis
Objetivos ................................................................................................................................................................. 133
5
75.00 Tesis
Introduccin
La Web Semntica permite disear agentes para que traten la informacin contenida en sus
pginas de manera automtica a fin de convertir la informacin en conocimiento. Los datos
de las pginas Web son referenciados por esquemas de metadatos consensuados sobre un
dominio particular. Los esquemas de metadatos proporcionan informacin adicional, la cual
permite hacer deducciones y establecer axiomas y si son compartidos, realizar bsquedas de
informacin contextuales as como desarrollar aplicaciones Web ms potentes. Las
ontologas brindan una representacin consensuada de un dominio especfico y legible por
ordenadores [Tello; 2001]
Segn [Herman; 2010], el objetivo de la Web Semntica es crear un medio universal para el
intercambio de informacin, al mismo tiempo que prev la interconexin de las
administraciones de informacin personal, integracin de aplicaciones enterprise y el
intercambio global de informacin comercial, cientfica y cultural. La instalacin de
informacin que se comprensible por los ordenadores en la Web se est convirtiendo
rpidamente en prioridad clave para organizaciones, individuos y comunidades.
Desde que la Web fue diseada para humanos y basada sobre un concepto simple, la
informacin consiste de pginas de texto y grficos que contienen links [Huhns; 2002]. Cada
link gua a otra pgina con informacin que una persona podra estar interesada en ver. Las
construcciones para la descripcin y codificacin, habitualmente empleadas en las pginas
1
World Wide Web Consortium o Consorcio World Wide Web es una comunidad internacional donde las
organizaciones Miembro, personal a tiempo completo y el pblico en general trabajan conjuntamente para
desarrollar estndares Web. Liderado por el inventor de la Web, Tim Berners-Lee y el Director Ejecutivo (CEO)
Jeffrey Jaffe, la misin del W3C es guiar la Web hacia su mximo potencial.
2
www.worldwidewebsize.com
6
75.00 Tesis
(HTML) describen su apariencia pero no su contenido, mientras que a los agentes de
software slo les interesara su contenido. Pero a pesar de esta falencia, algunos agentes se las
ingenian para utilizar la Web en esas condiciones. Un shopbot 3 visita catlogos online de
vendedores para retornar precios de artculos segn las preferencias registradas por el
usuario. Los shopbots operan por screen-scraping4, descargan pginas de catlogos y buscan
por nombre de artculo y por el conjunto de caracteres ms cercano a un signo dlar, que
presumiblemente sera el precio del artculo. Los shopbots pueden entregar las mismas
formas que posiblemente entregara una persona y analizar las pginas retornadas que un
comerciante esperara que sus clientes vean. La Web Semntica har la Web ms accesible a
los agentes por utilizar construcciones semnticas como las provistas por ontologas,
representadas en lenguajes bien establecidos, y los agentes podrn comprender lo que hay en
una pgina.
[Berners-Lee et al.; 2006] afirman que los shopbots y los auctionbots5, de uso frecuente en la
Web, son trabajos artesanales de tareas especficas, con poca capacidad para interactuar con
diversidad de datos y tipos de informacin. Es con estndares bien establecidos que los
agentes de software pueden florecer y, en los ltimos cinco aos, estos estndares han
avanzado para expresar la informacin compartida.
Las reglas ofrecen una forma de expresar restricciones sobre las relaciones definidas por un
3
Agente que sirve para realizar la compra comparativa de programas informticos que el usuario desea adquirir.
Analiza precios y especificaciones de los productos. Incluye caractersticas como heursticas, patrones de
emparejamiento y tcnicas de aprendizaje inductivo que le permiten desenvolverse en cualquier dominio de compra.
4
Screen scrapping consiste en obtener los datos mostrados por pantalla al capturar el texto va software (visto
tambin como alternativa de conseguir los datos sin acceder a las fuentes como bases de datos). Las pginas
Web en formato HTML son un ejemplo. El software a ser utilizado debe ser escrito para reconocer datos
especficos.
5 Agente de subastas. Su propsito es pujar en la red para conseguir productos en las mejores condiciones
posibles. Implementan diferentes tipos de subastas y pueden gestionar varias simultneamente.
6 Significa organizar una actividad social, laboral o comercial de forma de abaratar costos e incrementar el
rendimiento. En este sentido, el W3C proporciona especificaciones y estndares de los lenguajes ontolgicos
que facilitan la codificacin de conceptos mutuamente inteligibles lo que contribuye al progreso de la
comunicacin dentro de la Web y, por lo tanto, al crecimiento de la utilidad Web.
7
75.00 Tesis
lenguaje ontolgico (como RDF) y pueden ser empleadas para descubrir relaciones nuevas e
implcitas. No es posible definir un lenguaje de reglas para todos los sistemas basados en
reglas pero si un core comprendido por todas. Este core esta basado sobre tipos
restringidos de reglas, llamado reglas Horn, que tienen la forma if-then y establecen
restricciones sobre los tipos diferentes de condiciones y consecuencias. El Rule Interchange
Format (RIF) Working Group est trabajando en una definicin precisa de un lenguaje de
reglas core, su extensibilidad, intercambio de expresiones de reglas entre sistemas y la
definicin de su relacin con OWL7 y su uso con triplas RDF.
A partir de la informacin adicional provista por las ontologas y conjuntos de reglas, los
razonadores pueden llevar a cabo procedimientos automticos para inferir y generar nuevas
relaciones. Existe un amplio rango de razonadores automatizados disponibles y en general, la
inferencia utilizada en este contexto corresponde a lgica de primer orden.
La World Wide Web, inventada en 1989 por Tim Berners-Lee, cambio el modo en que las
personas renen y acceden informacin. Hoy la Web es un enorme repositorio de datos en
continuo crecimiento y existe un cuello de botella cada vez mayor cuando se intenta explotar
la informacin representada, es decir, piezas de informacin especficas. La Web Semntica
fue concebida con el propsito de resolver esta cuestin. Ella apunta a agregar semntica a la
informacin publicada en la Web (establecer el significado de los datos), tal que los
ordenadores puedan procesarla de manera similar a como lo haran los humanos y siendo la
columna vertebral tecnolgica de ello las ontologas.
La Web fue concebida como una fuente de informacin distribuida y luego extendida, con la
aparicin de tecnologas de servicios Web, a una fuente de funcionalidad distribuida. Esto es,
los servicios Web conectan computadoras y dispositivos utilizando Internet para
intercambiar y combinar datos en nuevas formas.
Las aplicaciones que emplean semntica en servicios Web son referidas como servicios Web
semnticos (SWS), los cuales, tambin, son anunciados como uno de los prximos pasos en el
camino hacia la evolucin Web [Snchez-Garca et al.; 2009]. Los SWS describen el contenido
de los servicios mediante anotaciones semnticas con el propsito de que el descubrimiento,
composicin y la invocacin de servicios pueda ser realizado automticamente por agentes
inteligentes al procesar la informacin semntica provista.
En la presente tesis se estudiar cmo los servicios Web pueden interoperar combinando de
manera automtica sus funcionalidades a fin de resolver situaciones que as lo requieren. Se
emplear un agente dotado con capacidades semnticas por medio de diferentes razonadores
y de las ontologas adecuadas al escenario elegido para el descubrimiento y combinacin
automtica de los servicios.
8
Desarrollado en la seccin 2.5.8 SAWSDL
9
Instituto de investigacin sin fines de lucro cuya misin es el descubrimiento y la aplicacin de la ciencia y la
tecnologa al conocimiento, el comercio, la prosperidad y la paz. Las reas principales incluyen comunicaciones y
redes, informtica, sistemas de ingeniera, robtica, seguridad y defensa nacional, entre otras.
10
Su misin es alinear los proyectos de investigacin europea en el rea de los SWS, trabajando en la
estandarizacin de lenguajes y una arquitectura y plataforma comn.
11
Instituto de Tecnologa de Massachussets
12
Consejo Nacional de Investigacin de Canad
9
75.00 Tesis
Captulo I
Servicios Web
1.1 Generalidades
1.1.1 Definiciones
Los servicios Web surgen como la mejor solucin para la ejecucin remota de funcionalidad.,
debido, parcialmente, a propiedades como independencia del sistema operativo y del
lenguaje de programacin, interoperabilidad, ubicuidad y la posibilidad para desarrollar
sistemas dbilmente acoplados. [Garca-Snchez et al.; 2009]
Los servicios Web son diseados para proveer interoperabilidad para diversas aplicaciones.
Los servicios Web son (por su diseo) independientes de las plataformas e interfaces de
lenguaje permitiendo una fcil integracin entre diversos sistemas. Lenguajes Web como
UDDI, WSDL y SOAP definen estndares para descubrimiento, descripcin y protocolos de
mensajes. [Sirin et al.; 2002]
Una perspectiva de negocios, los define como activos IT, como actividades del mundo real o
funciones de negocios reconocibles, posibles de ser accedidos cumpliendo polticas de
servicio (quien o qu es autorizado para acceder un servicio, cuando un servicio est
disponible, el costo de utilizar un servicio, niveles de confiabilidad por tiempo de restitucin,
niveles de seguridad por requerimientos de privacidad e integridad, niveles de performance
por tiempo de respuesta, etc.).
Una perspectiva tcnica, en cambio, los define como activos IT reutilizables, coarse-
grained13, con interfaces o contratos de servicio, que ocultan su implementacin y
desacoplan la relacin usuario-proveedor de servicio, permitiendo que ambos puedan
evolucionar independientemente, mientras los contratos de servicios permanecen sin
cambios (que un usuario pueda utilizar los servicios de otros proveedores o que un
proveedor pueda atender otros usuarios).
Los servicios son un elemento clave en una arquitectura orientada a servicios. Un anlisis
por capas, distingue entre contratos de servicios, servicios tcnicos y lnea de negocios.
13
En este contexto, denota caractersticas generales
10
75.00 Tesis
La capa de lnea de negocios automatiza, de manera parcial o total, los servicios que una
organizacin presta directa (propios) o indirectamente14 (tercerizacin). La lnea de
negocios establece un dominio de servicio (ingeniera, finanzas, ventas, marketing,
manufacturas, transporte, entre otros) a fin de que los servicios de ese dominio puedan
comunicarse mediante un vocabulario comn y sea posible combinarlos. Generalmente,
servicios de diferentes dominios tendrn inconsistencias o vocabularios contradictorios y
por lo tanto, la plataforma de servicios Web necesitar proveer facilidades de transformacin
de datos para pedidos de dominios diferentes.
Cada servicio consta de una interfaz bien definida (es decir de una separacin clara entre
interfaz e implementacin) llamada formalmente, contrato de servicio. El contrato de servicio
es un mecanismo para formalizar un sistema y su alcance, minimizar dependencias,
maximizar adaptabilidad, emplear pruebas de caja negra, seleccionar servicios y cambiar de
proveedores.
Los servicios Web proponen un enfoque diferente para resolver algunos de los problemas IT
(especialmente en torno a la integracin) que se desprenden de las nuevas capacidades
ofrecidas por la tecnologa. Cabe destacar que considerando que los servicios Web son
tecnologas de interfaz basadas en XML, la utilizacin adecuada de servicios Web requiere de
un cambio en la forma de pensar la tecnologa, la cual no consiste en simplemente aprender
una nueva gramtica para la misma manera de construir y desplegar sistemas sino en tener
presente que los servicios Web hoy y siempre requerirn de una combinacin de
tecnologas.
Los servicios Web permiten obtener beneficios de negocios y tcnicos debido a ciertas
caractersticas claves, las cuales deben estar presentes en el diseo, la implementacin y
14
Outsourcing o tercerizacin. Contratar a otra empresa para que realice determinadas tareas que hacen a la
actividad empresarial pero no al ncleo del negocio. Realizado cuando se mejora la eficiencia en los resultados
(reducir costos, mejorar la calidad prestada) y se liberan recursos para reasignarlos a las tareas centrales de la
empresa
11
75.00 Tesis
administracin. Estas caractersticas por grado de importancia se encuentran agrupadas en
caractersticas primarias, desarrolladas en esta seccin y caractersticas secundarias,
desarrolladas a continuacin.
Las caractersticas primarias son claves en la obtencin de beneficios. Ellas incluyen: dbil
acoplamiento, contratos de servicios bien definidos, tiles para el usuario y basados en
estndares. A continuacin se describen brevemente.
Para que un servicio tenga dbil acoplamiento hay que considerarlo a travs de su interfaz, la
tecnologa y los procesos. Idealmente, un usuario de servicio debera solicitar el servicio a
partir del contrato de servicio publicado y del acuerdo de nivel de servicio (SLA) pero nunca
requerir informacin acerca de su implementacin. La dependencia de tecnologa limitara la
diversidad de usuarios que podran acceder al servicio y la posibilidad de ser exteriorizado
para proveer a terceros. Por ltimo, se debera tratar que los servicios no queden ligados a
procesos de negocios para que luego puedan ser reutilizados en diferentes procesos y
aplicaciones.
Cada servicio cuenta con una interfaz, bien definida llamada contrato de servicio, para definir
capacidades y modos de invocacin, mientras oculta detalles de implementacin. As, un
estndar para contratos de servicios es provisto por WSDL. Por otro lado, un servicio puede
incluir metadatos sobre seguridad, polticas y con otros propsitos, utilizando la familia de
especificaciones WS-Policy15. Es importante destacar que un contrato de servicio debe ser
desarrollado con conocimiento del dominio de negocio y no simplemente derivado de la
implementacin del servicio. Como primer corolario, el contrato de servicio debe ser
independiente de la implementacin y manejado como un artefacto separado. Los contratos
de servicios son ms valiosos que las implementaciones debido a que representan
conocimiento vital de negocios, son la base para compartir y reutilizar servicios y el
mecanismo primario para reducir acoplamiento de interfaz. Los cambios en los contratos de
servicios son ms costosos que los cambios en la implementacin dado que se propagan a los
usuarios, mientras que los cambios de implementacin no tienen esos efectos. Como segundo
corolario entonces, es importante tener un mecanismo formal de extensin y versionado de
contratos de servicios para manejar dependencias y costos.
Servicios tiles son aquellos que poseen contratos de servicios definidos con un nivel de
abstraccin apropiado y con sentido para los usuarios. Un nivel apropiado de abstraccin es
aquel que captura la esencia del servicio sin restringir aplicaciones futuras, evita exponer a
los usuarios detalles tcnicos como estructuras internas o convenciones y utiliza vocabulario
del dominio del servicio para definir el servicio y los documentos de entrada y salida. Una
interfaz abstracta promueve la sustitucin, permitiendo cambiar de proveedores sin afectar a
los usuarios. En general, los servicios tiles ejecutan tareas discretas y proveen interfaces
simples a fin de lograr reutilizacin y dbil acoplamiento.
Los servicios basados en estndares tienen varias ventajas: evitan depender de un vendedor
IT, aumentan las oportunidades que tiene un usuario de utilizar proveedores de servicios
alternativos, las oportunidades de los proveedores de soportar un amplio nmero de usuarios
15
Desarrollado por IBM, Microsoft, SAP y BEA. Polticas expresadas siguiendo un enfoque checklist para asociar
solicitudes con proveedores. Las polticas son declaraciones establecidas por el proveedor que solicitan al usuario
informacin adicional aparte de la provista por WSDL (requerimientos de seguridad, transacciones, etc.) a fin de
poder invocar el servicio.
12
75.00 Tesis
y de utilizar implementaciones open-source, a su vez, basadas en estndares, en tanto que,
para las comunidades de desarrolladores crecen las oportunidades en torno a las
implementaciones.
Las caractersticas secundarias de los servicios permiten incrementar los beneficios. Ellas
incluyen:
SLAs,
stateless,
diseo con soporte para mltiples estilos de invocacin,
diseo de contratos de servicios relacionados,
compensacin de transacciones,
implementacin independiente de otros servicios,
descubrimiento y administracin por metadatos.
Los acuerdos de nivel de servicio (SLA), definen mtricas de servicios (tiempo de respuesta,
rendimiento, disponibilidad, tiempo entre fallas, entre otras) y permiten a los usuarios
determinar si un servicio satisface sus requerimientos no funcionales; a los proveedores
determinar la cantidad de instancias de servicios, provisin dinmica de servicios, servicios
centralizados o distribuidos geogrficamente, entre otras. Un SLA debe ser establecido
tempranamente porque afecta el diseo, la implementacin y la administracin. Su funcin
es establecer, monitorear y permitir renegociar objetivos de negocios despus de finalizada la
implementacin.
Los metadatos permiten que los servicios sean publicados de manera especial para ser
descubiertos y consumidos sin intervencin del proveedor. Esto reduce costos en localizar y
utilizar servicios, errores asociados con su utilizacin y permite una mejor administracin.
13
75.00 Tesis
El diseo y la implementacin de operaciones de servicio deben soportar mltiples estilos de
invocacin a fin de ser utilizadas en un amplio rango de situaciones y procesos de negocios.
En la mayora de los casos la lgica de negocios implementada por un proveedor de servicio es
completamente independiente del estilo de invocacin.
Los servicios stateless (servicios sin estado) son implementaciones donde las invocaciones
son independientes una de la otra y no dependen de un mantenimiento especfico del cliente,
ni de estados persistentes entre invocaciones (no mantienen el estado de los procesos que
ejecutan ni los resultados que generan). Por lo tanto, resulta inmediato que las interacciones
stateless escalan eficientemente al permitir que cualquier pedido pueda ser enrutado a
cualquier instancia de servicio en oposicin a los servicios stateful16 que no escalan
eficientemente dado que el servidor necesita recordar cuales servicios estn sirviendo a cual
cliente y no se puede reutilizar un servicio hasta que ste haya terminado o por timeout.
Dado que los servicios no estn aislados, al disear interfaces de servicios para un dominio de
negocios particular, se disea el modelo de datos a nivel servicio (XML Schema) y
simultneamente todas la interfaces. Esto es porque los servicios de ese dominio de negocios
utilizarn elementos del mismo modelo de datos. Adems, asegura que los elementos de datos
sean definidos y aplicados de manera consistente y evita situaciones donde los servicios
utilicen definiciones similares aunque sutilmente diferentes. Es importante que todos los
servicios compartan el mismo modelo de datos a nivel servicio, incluyendo la estructura y
semntica de los documentos de negocios.
Los servicios deberan ser diseados e implementados con todas sus caractersticas. Sin
embargo esto no siempre es posible y, puede ocurrir que el costo de agregar una
caracterstica particular sea prohibitivo, comparada con los objetivos de la organizacin. Si
esto sucede, se deben privilegiar las caractersticas primarias, las cuales otorgaran los
mayores beneficios.
1.2.1 Beneficios
16
Servicios con estado que suelen mantener las decisiones del usuario durante un proceso o una sesin, por
ejemplo un carrito de compras o los diferentes pasos para registrarse en una pgina Web.
14
75.00 Tesis
de su entorno de su ejecucin y crear mensajes que puedan ser enviados a cualquier
servicio.
Divisin de responsabilidad: permite a los analistas de negocios y tcnicos colaborar en el
desarrollo de servicios mediante los contratos de servicio.
El ltimo beneficio es producto del cambio radical que exige la forma de pensar servicios (en
temas de diseo, desarrollo y despliegue) que conduce a una redistribucin de
responsabilidades en los departamentos IT. Surgen el rol de analista de negocios, responsable
por montar nuevas aplicaciones compuestas y flujos de procesos que aseguren el
cumplimiento de requerimientos operacionales y estratgicos de negocios y, el rol de tcnico,
responsable por manejar la complejidad de la tecnologa de fondo en el despliegue de
servicios, asegurar que las descripciones de servicios XML/Web son las que el usuario
necesita y determinar los datos correctos a compartir.
Es posible crear una agregacin de servicios Web de forma tal que el servicio Web publicado
encapsule otros servicios Web. As una interfaz general puede ser descompuesta en un
nmero de servicios especficos (o mltiples servicios especficos ser combinados en una
interfaz general). Esto es frecuente en una composicin esttica de servicios efectuada por
medio de WS-BPEL17.
17
Web Services Business Process Execution Language. Es un lenguaje de composicin orientado a procesos
para servicios Web. Depende de WSDL. Un proceso WS-BPEL puede ser expuesto como un servicio definido por
WSDL e invocado como cualquier otro servicio Web. Adems WS-BPEL espera que todos los servicios incluidos
15
75.00 Tesis
A nivel proyecto, un arquitecto supervisa el desarrollo de servicios reutilizables e identifica
un medio para almacenar, administrar y recuperar descripciones de servicios. Una capa de
servicios separa las operaciones de negocios de variaciones en la implementacin de la
plataforma de software subyacente, de la misma manera que los servidores Web y los
navegadores separan la WWW de variaciones en los sistemas operativos y lenguajes de
programacin. Son los servicios reutilizables, por su capacidad para ser compuestos en
servicios ms grandes rpida y fcilmente, lo que proveen a una organizacin de los
beneficios de la automatizacin de procesos y de la agilidad para responder a condiciones
cambiantes.
Un servicio tiene, en la red, una descripcin de los mensajes que recibe y opcionalmente
retorna. En efecto, un servicio es definido en trminos del patrn de intercambio de
mensajes (MEP) que soporta. Un esquema para los datos contenidos en el mensaje es
utilizado como parte principal del contrato (descripcin) entre el servicio solicitante y el
servicio proveedor. Otros tems de metadatos incluyen la direccin de red del servicio,
operaciones y requerimientos de confiabilidad, seguridad y transaccionalidad.
.NET J2EE
CORBA IMS
Capa traductora
(Mapping Layer)
en una composicin sean definidos empleando contratos de servicio WSDL. Esto permite a un proceso WS-
BPEL invocar otros procesos WS-BPEL recursivamente.
16
75.00 Tesis
del servicio tambin es llamada agente ejecutable. El agente ejecutable es responsable de
implementar el modelo de procesamiento definido por las especificaciones. El agente
ejecutable corre dentro de un entorno de ejecucin, el cual es generalmente un sistema de
software o un lenguaje de programacin.
La descripcin se encuentra separada del agente ejecutable. Una descripcin puede tener
mltiples agentes ejecutables asociados. Similarmente, un agente puede soportar mltiples
descripciones. Entre la descripcin y el entorno de ejecucin se encuentra la capa de mapeo
(algunas veces llamada capa de transformacin), que es implementada por medio proxies o
stubs. La capa de mapeo es responsable de aceptar el mensaje, transformar los datos desde el
XML al formato original y despachar los datos obtenidos al agente ejecutable.
Los servicios Web pueden adoptar dos roles, como servicio solicitante, al iniciar la ejecucin
de un servicio por enviar mensajes al servicio proveedor y como servicio proveedor, al
ejecutar el servicio y opcionalmente retornar resultados. Un agente ejecutable puede ocupar
uno o ambos roles.
[Booth et al., 2004] definen una arquitectura de servicios Web (WSA - Web Service
Architecture) como una arquitectura de interoperabilidad, asegurada por identificar los
elementos de una red de servicios Web global. Estos elementos son combinados en cuatro
modelos diferentes.
El modelo orientado a mensajes, tambin llamado MOM, por sus siglas en ingls (Message
Oriented Model), se centra sobre aspectos de la arquitectura relacionados a los mensajes y su
procesamiento.
El modelo no refiere el significado semntico del contenido de un mensaje o su relacin con
otros mensajes.
MOM se centra en la estructura de los mensajes, las relaciones entre el emisor y el receptor y
cmo son transmitidos.
Los conceptos y relaciones en MOM son ilustrados a continuacin:
18
Legacy usualmente significa aplicaciones remanentes, en versiones muy anteriores y que se han reemplazado por
ms modernas, pero que siguen funcionando todava.
17
75.00 Tesis
18
75.00 Tesis
es desprovisto de la semntica de la aplicacin mientras que una coreografa incluye la
semntica en la descripcin de patrones. A nivel de escala, una coreografa
frecuentemente utiliza MEP en la construccin de bloques.
Header: contienen informacin acerca del mensaje. Su funcin primaria es facilitar el
procesamiento modular del mensaje. Parte del header puede incluir informacin
pertinente a funcionalidades extendidas de los servicios Web como seguridad, contexto de
transaccin, informacin de orquestacin, informacin de ruteo o administracin. Pueden
ser procesados independientemente del cuerpo del mensaje, cada header puede identificar
un rol de servicio que indica el tipo de procesamiento que debera ser ejecutado sobre el
mensaje. Un mensaje puede tener varios headers identificando roles de servicios
diferentes.
Destinatario: el destinatario de un mensaje es el agente que recibe un mensaje.
Emisor: el emisor de un mensaje es el agente que transmite un mensaje. Aunque cada
mensaje tiene un emisor, la identidad podra no estar disponible en el caso de
interacciones annimas.
Confiabilidad: el objetivo es reducir la frecuencia de error y proveer suficiente
informacin acerca del estado de un envo. Esta informacin permite a un agente
participante tomar decisiones de compensacin cuando se producen errores. Cuando ms
de dos agentes estn involucrados, es necesario utilizar una correlacin de alto nivel como
two-phase commit19. El envo puede ser realizado por una combinacin de
acknowledgement y correlacin. Si un mensaje no ha sido recibido apropiadamente, el
emisor puede intentar un reenvo o alguna accin de compensacin a nivel aplicacin.
Secuencia: conjunto ordenado de mensajes intercambiados entre un agente proveedor y
un agente solicitante durante una interaccin. La secuencia puede ser realizada por un
MEP, usualmente identificado por una URI.
Transporte: mecanismo empleado por los agentes para enviar mensajes. Ejemplos de
transporte de mensajes incluyen HTTP sobre TCP, SMTP, middleware20 orientado a mensajes,
etc.
19
Empleado en el procesamiento de transacciones, bases de datos y redes, es un algoritmo distribuido que coordina
todos los procesos que participan en una transaccin atmica distribuida para el commit o rollback de la transaccin
(tipo de protocolo por consenso). El protocolo es resistente, en muchos casos, a fallas temporales del sistema (por
procesos, nodos de red, comunicacin). Sin embargo no es resistente a todas las posibles fallas de configuracin y
en casos especiales puede requerir la intervencin del usuario.
20
Software de conectividad que ofrece un conjunto de servicios que hacen posible el funcionamiento de
aplicaciones distribuidas sobre plataformas heterogneas. Funciona como una capa de abstraccin de software
distribuida que se sita entre las capas de aplicaciones y las capas inferiores (sistema operativo y red). El
middleware abstrae de la complejidad y heterogeneidad de las redes de comunicacin subyacentes, as como de los
sistemas operativos y lenguajes de programacin, proporcionando una API para la fcil programacin y manejo de
aplicaciones distribuidas.
19
75.00 Tesis
Los conceptos relacionados con agente proveedor, agente solicitante, entidad proveedor y
entidad solicitante son definidos en la seccin agentes.
Para el modelo, un servicio es un recurso abstracto que representa la capacidad de ejecutar
tareas y posee funcionalidad coherente desde el punto de vista de una entidad proveedor y
solicitante y que para ser utilizado debe ser implementado por un agente proveedor.
Los servicios Web se distinguen de otros recursos Web en que no necesariamente tienen
una representacin. Los servicios Web son interacciones entre agentes proveedor y
solicitante, centrados en acciones, que con propsitos de caracterizar la semntica son
capturadas en trminos de tareas (la semntica de cualquier sistema est ligado al
comportamiento del sistema). Las tareas combinan el concepto de accin con intencin: los
servicios Web son invocados con un propsito, que puede ser expresado como un objetivo de
estado deseado.
Algunos conceptos y relaciones son explicados a continuacin.
Accin: ejecutada por un agente, por recibir un mensaje o enviar un mensaje o cualquier
otro cambio de estado observable que satisface un objetivo de estado deseado.
Coreografa: define la secuencia y condiciones bajo las cuales mltiples agentes
intercambian mensajes a fin de alcanzar el objetivo de estado de la tarea a ejecutar. Se
apoya en interfaces de servicio, puede pertenecer a una tarea, define la relacin entre los
mensajes intercambiados y las tareas de un servicio. Mientras una orquestacin define la
secuencia y condiciones bajo las cuales un servicio Web invoca a otro para realizar alguna
funcin, una coreografa puede ser descripta utilizando un lenguaje de descripcin de
coreografa sobre cmo componer servicios Web, cmo establecer roles y asociaciones en
los servicios Web y cmo manejar el estado de los servicios compuestos.
Capacidad: pieza de funcionalidad soportada o requerida por un agente. Tiene un
20
75.00 Tesis
identificador URI, una descripcin semntica, puede ser publicada por un agente
proveedor o solicitante y referenciada por una descripcin de servicio.
Objetivo de estado: es el estado deseable de algn servicio o recurso desde el punto de vista
de una persona u organizacin. Asociado con las tareas provistas por un servicio, los
objetivos son caracterizados por predicados que son verdaderos para ese estado.
Descripcin: contiene detalles de la interfaz y del comportamiento esperado del servicio y
puede ser utilizada para facilitar la construccin y despliegue de servicios, por personas
para localizar servicios apropiados y por agentes solicitantes para automticamente
descubrir agentes proveedores.
Interfaz: define los diferentes tipos de mensajes que un servicio enva y recibe, junto con
el patrn de intercambio de mensajes (MEPs) empleado tal como request/response21,
one-way asynchronous22 o publish/subscribe23.
Rol: es un conjunto de tareas de servicio, que puede ser definido en trminos de
propiedades de mensajes y establecido por el propietario del servicio. Un mensaje recibido
por un servicio puede involucrar procesamiento asociado con varios roles. Similarmente,
los mensajes emitidos pueden involucrar ms de un rol de servicio.
Semntica: es el contrato entre una entidad proveedora y una entidad solicitante
concerniente a los efectos y requerimientos pertenecientes al uso de un servicio. Trata
sobre las tareas que constituyen el servicio. Debera ser identificada en una descripcin de
servicio y descripta formalmente por un lenguaje procesable por mquina. Las
descripciones semnticas procesables por mquina proveen un uso sofisticado de los
servicios Web. Aparte del comportamiento esperado de un servicio, otros aspectos de la
semntica de un servicio incluyen restricciones sobre polticas, la relacin entre la entidad
proveedor y la entidad solicitante y cules caractersticas de manejabilidad estn asociadas
con el servicio.
Tarea: es una abstraccin que encapsula los efectos deseados de invocar un servicio. Las
tareas estn asociadas con objetivos de estado. La performance de una tarea es observable
por el intercambio de mensajes entre un agente solicitante y un agente proveedor. El
patrn especfico de mensajes define la coreografa asociada con la tarea. Las tareas
representan una unidad til en el modelado de la semntica de un servicio y de hecho, del
rol de un servicio.
Tambin llamado ROM (Resource Oriented Model). Los recursos son un concepto
fundamental que sustenta gran parte de la Web y gran parte de los servicios Web. Por
ejemplo, un servicio Web es un tipo particular de recurso. El modelo se centra en
caractersticas claves de los recursos tales como propiedad de recursos y polticas
asociadas con recursos. Dado que los servicios Web son recursos, estas propiedades son
heredadas por ellos.
Los conceptos y relaciones en ROM son ilustrados a continuacin:
21
Patrn para el intercambio de dos mensajes entre dos nodos SOAP adyacentes. Un mensaje request es
transferido desde el nodo solicitante al nodo receptor para luego transferir un mensaje response desde el nodo
receptor al nodo solicitante.
22
Patrn para el envo de mensajes que no requiere que el emisor y el receptor estn on-line simultneamente.
Limitado a la transmisin de mensajes desde un nodo emisor a cero o ms nodos SOAP receptores.
23
Patrn por eventos, en el que eventos subscribers indican los eventos de su inters en un broker de eventos para
recibir notificaciones cuando los eventos indicados son generados por los eventos publishers. Permite
interacciones del tipo many-to-many.
21
75.00 Tesis
24
En sistemas informticos, es el estado de un sistema en un punto particular en el tiempo.
22
75.00 Tesis
1.3.4 Modelo de polticas - PM
23
75.00 Tesis
es posible porque las polticas de permisos son proactivamente controladas.
Descripcin: descripcin procesable de un conjunto de polticas.
1.4.1 Generalidades
Una arquitectura orientada a servicios o SOA (Service Oriented Arquitecture) es definida por
[Newcomer y Lomov; 2004] como un estilo de diseo que dirige los aspectos de crear y
utilizar servicios de negocios a lo largo del ciclo de vida del servicio (desde su concepcin
hasta su retiro). Es tambin una manera para definir y disponer una infraestructura IT que
posibilita a diferentes aplicaciones intercambiar datos y participar en procesos de negocios,
sin considerar los sistemas operativos o lenguajes de programacin que sostienen esas
aplicaciones.
En SOA, los servicios de negocios (servicios para operar con clientes, socios o empleados)
son el principio clave para alinear sistemas IT con los objetivos estratgicos de negocios IT.
Las empresas que implementan sus sistemas IT de esta manera reaccionan ms rpido a
nuevos requerimientos dejando atrs competidores con sistemas ligados a los entornos de
ejecucin. Resulta ms sencillo combinar servicios Web, ms fcil cambiar composiciones de
servicios Web y ms barato cambiar servicios Web y datos XML que cambiar entornos de
ejecucin. Las ventajas de SOA con servicios Web incluyen un mejor retorno de la inversin
(ROI) por los gastos IT en proyectos, proyectos ms rpidos y capacidad para responder en
corto tiempo a nuevos requerimientos de negocios y del gobierno.
La orientacin a servicios reduce los costos y los calendarios de proyectos exitosos por
adaptar la tecnologa a las personas, en lugar de enfocarse en la tecnologa en s. La mayor
ventaja de un desarrollo orientado a servicios es que permite concentrarse en la descripcin
de un problema de negocios en oposicin a enfoques anteriores que prestaban atencin a las
tecnologas de un entorno de ejecucin particular.
SOA no depende de avances en software, trados por los servicios Web, sino de un cambio de
24
75.00 Tesis
enfoque. Separar la descripcin de servicio de la tecnologa de implementacin significa que
los negocios pueden centrarse en pensar y planificar inversiones IT en torno a la realizacin
de consideraciones de negocios, en lugar de ocuparse de las capacidades de un producto
individual o de la tecnologa elegida para ejecutar una descripcin. En este caso, la
descripcin convierte la definicin del conjunto de caractersticas y funciones en el
denominador comn que cualquier producto o tecnologa debe soportar. Sin embargo, esto es
posible si se produce un cambio en la manera de pensar los negocios IT. El mundo es diverso
por naturaleza y un SOA con servicios Web no slo abraza esta diversidad sino que provee la
capacidad para crear sistemas IT acordes con las operaciones de negocios. En un mundo
SOA, las empresas tienen que aprender a pensar servicios como diferentes a entornos de
ejecucin y, adems, a tener que ensamblar aplicaciones a partir de componentes de una
variedad de proveedores IT.
El valor real de SOA proviene de las ltimas etapas de implementacin, cuando nuevas
aplicaciones pueden ser desarrolladas enteramente, o casi enteramente, por componer los
servicios existentes. Es, en este momento, cuando se alcanzan los mayores valores por el
esfuerzo realizado (menores costos, resultados ms rpidos, mejora del ROI). Sin embargo,
toma tiempo alcanzar este punto, adems de una inversin significativa en desarrollo
orientado a servicios.
Las principales dificultades para adoptar SOA incluyen la formacin del personal adecuado y
el mantenimiento del nivel de disciplina que se requiere para garantizar que los servicios
que se desarrollen sean reutilizables. Cualquier tecnologa, por prometedora que sea, puede
ser objeto de abuso y un uso inadecuado. Los servicios deben ser desarrollados no slo para
beneficio inmediato sino principalmente para prestaciones a largo plazo. Dicho de otro
modo, la existencia de un servicio individual no es de mucho valor a menos que se ajuste a
una coleccin ms grande de servicios que puedan ser consumidos por mltiples
aplicaciones y de las cuales nuevas aplicaciones se puedan componer.
Algunas aplicaciones pueden necesitar ser modificadas para participar en SOA y esto podra
representar una dificultad. Estas aplicaciones podran carecer de una interfaz para
25
75.00 Tesis
convertirlas en servicios. Existen aplicaciones que slo son accesibles va transferencia de
archivos o entrada/salida de datos por lotes y que, por lo tanto, ciertos programas adicionales
resultaran indispensables a fin de habilitarlas como servicios.
Implementar un directorio bsico es un mecanismo simple como una base de datos que
permite a los participantes insertar descripciones sobre los servicios ofrecidos y consultar
los servicios ofrecidos de otros participantes. Un directorio ms avanzado podra ser ms
activo que otros al proveer no slo bsqueda de servicios sino tambin brokering25 o
facilidades de servicios. Por ejemplo, un participante podra solicitar un servicio de brokering
para reclutar los agentes necesarios a fin de responder una consulta. El servicio de brokering
utilizara la informacin acerca de las caractersticas y capacidades de los proveedores de
servicios registrados para determinar a qu proveedores enviar la consulta. De esta manera,
el directorio podra enviar la consulta a esos proveedores, retornar las respuestas a quien las
solicit y aprender acerca de las propiedades de las respuestas que gestiona.
UDDI es en s mismo un servicio Web basado en XML y SOAP. Provee servicios de white-
pages y yellow-pages pero no facilidades de servicios [Newcomer y Lomov; 2004].
1.4.3 BPM
El objetivo de los sistemas BPM es alinear los sistemas IT con los procesos de negocios y por
lo tanto con los objetivos de negocios.
Todos los sistemas IT implementan procesos de negocios pero BPM separa explcitamente la
lgica de procesos de negocios del cdigo de aplicacin (en contraste con otras formas de
desarrollo de sistema donde la lgica de proceso esta embebida en el cdigo de aplicacin).
25
Desarrollado en la seccin 3.3, Matchmaking entre agentes heterogneos.
26
75.00 Tesis
Separar la lgica de procesos del cdigo de aplicacin ayuda a aumentar la productividad,
reduce los costos operacionales y mejora la agilidad. Correctamente implementado, las
organizaciones pueden responder rpidamente a condiciones cambiantes del mercado y
aprovechar oportunidades para ganar ventaja competitiva.
El flujo de proceso es dividido en tareas individuales llamadas servicios Web. Cada parte de
un flujo es probado basado en los resultados de ejecutar una tarea.
Algunas organizaciones creen haber adoptado SOA simplemente por utilizar tecnologas de
servicios Web como SOAP o WSDL. Sin embargo, SOA no es una aplicacin sino ms bien
una disciplina que abarca casi la totalidad de la actividad IT, incluyendo procesos, mtodos y
herramientas para diseo, desarrollo, administracin y mantenimiento de activos IT.
La necesidad de un gobierno surge de reconocer que los servicios son activos, proveen una
unidad comn para administracin de requerimientos, acuerdos de servicios (SLA),
performance de negocios y tcnica y reutilizacin de recursos y por lo tanto requieren ser
manejados durante su ciclo de vida.
Entre sus responsabilidades se encuentran establecer las polticas y procesos que permitan
identificar, implementar, desplegar y versionar servicios llevando a cabo un proceso
descentralizado (cada departamento o proyecto es responsable por identificar, implementar y
desplegar servicios) o centralizado (donde el cuerpo de gobierno revisa la adicin,
modificacin y eliminacin de servicios antes de autorizar su implementacin y despliegue),
determinar las herramientas a utilizar (en administracin de proyectos, modelado de
26
Entendido aqu como la accin de dirigir, decidir, guiar.
27
75.00 Tesis
negocios, modelado de servicios, modelado de datos, desarrollo, administracin de sistemas,
entre otras) y el intercambio de informacin entre ellas y determinar la formacin
obligatoria y opcional de miembros del equipo de SOA y de equipos de proyectos grandes en
la implementacin de procesos y utilizacin de herramientas SOA. En cualquier caso, es
importante que haya algn nivel de estandarizacin que atraviese los departamentos y
proyectos para promover la reutilizacin de servicios.
1.4.5 Especificaciones
Una arquitectura de servicios Web consiste de especificaciones WSDL, SOAP y UDDI, a fin de
soportar interaccin entre un usuario, un proveedor de servicio y algn mecanismo
potencial para descubrimiento de servicios. Un proveedor publica una descripcin WSDL de
sus servicios en un registro UDDI (o algn otro tipo de registro), otro agente accede a la
descripcin publicada y enva un mensaje SOAP al proveedor solicitando la ejecucin del
servicio.
Segn el W3C, WSDL es un protocolo de comunicacin. Define una gramtica XML para
describir los servicios Web como una coleccin de endpoints capaces de intercambiar
mensajes. Es utilizado frecuentemente en combinacin con SOAP. Un programa cliente
conectndose a un servicio Web puede leer su archivo WSDL a fin de determinar cules
operaciones estn disponibles en el servidor. El cliente luego utiliza SOAP para invocar
alguna de las operaciones listadas.
WSDL 2.0 es la ltima versin de la especificacin y fue aprobada en el ao 2007 por el W3C.
Esta especificacin soporta todos los mtodos HTTP request, ubicndola como el mejor
soporte para servicios Web RESTful27, adems de ser mucho ms simple de implementar. Sin
embargo, todava son pocas la herramientas que la incluyen entre sus funcionalidades
ofrecidas y pocas las aplicaciones que la incluyen en sus implementaciones (la ltima versin
de BPEL28 slo soporta WSDL 1.1).
WSDL define un servicio como una coleccin de endpoints (WSDL 2.0) o ports (WSDL 1.1).
Un endpoint, a su vez, es definido por asociar una direccin de red con una interfaz
reutilizable. Los mensajes describen de manera abstracta los datos intercambiados y los
portypes (se explica ms abajo su significado), de manera abstracta tambin, el conjunto de
operaciones disponibles. El protocolo concreto y el formato de datos de un portype particular
constituyen un binding reutilizable, donde las operaciones y los mensajes son vinculados a un
protocolo de red concreto y a un formato de mensaje. De esta manera WSDL define la
interfaz pblica de un servicio. Los elementos que componen WSDL son presentados e
identificados a continuacin, segn su denominacin en WSDL 1.1/WSDL 2.0:
27
Desarrollado en las siguientes secciones
28
El Business Process Execution Language, nombre corto del Web Services Business Process Execution Language
(WS-BPEL) es un lenguaje ejecutable estndar OASIS (consorcio global que dirige el desarrollo, convergencia y
adopcin de estndares e-business y servicios Web) por especificar las acciones que ocurren dentro de los procesos
de negocios con servicios Web. Los procesos en BPEL exportan e importan informacin por utilizar interfaces de
servicios Web exclusivamente.
28
75.00 Tesis
Types/Types: contiene las definiciones de los tipos de datos utilizados. XML-Schema es
utilizado (inline o por referencia) para este propsito.
Message/No aplica: un mensaje corresponde a una operacin. El mensaje contiene la
informacin necesaria para ejecutar la operacin. Cada mensaje consiste de una o ms
partes lgicas. Cada parte est asociada con un atributo del tipo de mensaje. El atributo
nombre del mensaje provee un nombre nico entre todos los mensajes. El atributo
nombre de la parte provee un nombre nico entre todas las partes que conforman el
mensaje. Las partes son una descripcin lgica del contenido del mensaje. Los mensajes
fueron removidos en WSDL 2.0 donde los tipos XML-Schema para definir los input, output
y faults (entradas, salidas y fallas) son referidos directamente.
Operation/Operation: cada operacin puede ser comparada con la llamada a un mtodo o
funcin en un lenguaje de programacin tradicional. Define las acciones SOAP y la manera
en que el mensaje SOAP es codificado (por ejemplo un valor literal indica que el
mensaje es intercambiado tal cual es, sin informacin de tipo incluida, un valor encoged,
en cambio, indica que se trata de un mensaje con informacin de tipos incluida).
PortType/Interface: el elemento portype fue renombrado en WSDL 2.0 como interface.
Define las operaciones que pueden ser ejecutadas y los mensajes empleados para ejecutar
la operacin.
Binding/Binding: especifica la interfaz, define el estilo de binding SOAP (RPC/Document)
y transporte (protocolo SOAP).
Port/Endpoint: definido por una combinacin binding - direccin de red, a menudo, es
representado mediante un URL HTTP.
Service/Service: coleccin de endpoints relacionados que representa el conjunto de las
funciones de sistema que han sido expuestas basadas en los protocolos Web.
WSDL no introduce un lenguaje para la definicin de tipos sino que debido a la importancia de
incorporar sistemas de tipos poderosos para describir mensajes a largo plazo soporta XSD
como sistema de tipos cannico y permite utilizar otros lenguajes de definicin de tipos va
extensibilidad.
Las ventajas que ofrece la especificacin SOAP incluyen independencia de cualquier lenguaje
de programacin, independencia del protocolo de transporte, independencia de cualquier
infraestructura de objetos distribuidos, utilizacin de estndares como XML para codificacin
de los mensajes y de HTTP y SMTP como protocolos de transporte y permite
interoperabilidad entre mltiples entornos.
29
75.00 Tesis
Aparte de las especificaciones principales de servicios Web (WSDL y SOAP) existen otras
especificaciones que extienden los servicios Web como especificaciones de seguridad,
confiabilidad, transacciones, administracin de metadatos y orquestacin, las cuales proveen
soluciones basadas en SOA a un nivel de calidad de servicio empresarial en proyectos
corporativos grandes y de misin crtica.
En general, los servicios Web son construidos utilizando SOAP y estndares WS-*29 pero los
servicios Web REST30 prescinden de SOAP y utilizan HTTP y XML [Mandel; 2008]. Cada uno
de estos estilos de arquitectura de servicios Web es ampliamente utilizado por la comunidad
de desarrollo.
REST es un estilo de arquitectura que trata a la Web como una aplicacin centrada en
recursos. Los principios de diseo claves de esta arquitectura enuncian que 1) las
aplicaciones RESTFul deben ser stateless, es decir, que cada mensaje HTTP debe contener
toda la informacin necesaria para procesar una peticin. Como resultado, ni el cliente ni el
servidor necesitan recordar ningn estado de las comunicaciones entre mensajes (en la
prctica un nmero de aplicaciones basadas en HTTP utilizan cookies y otros mecanismos a
fin de mantener el estado de la sesin, algunas de las cuales no son permitidas por REST); 2)
un conjunto de operaciones bien definidas mediante el estilo CRUD31 el cual a su vez utiliza
el amplio rango de verbos HTTP (POST, GET, PUT y DELETE); 3) una sintaxis universal para
identificar recursos (URI) y 4) utilizacin de hipermedios, explicado a continuacin.
El Dr. Roy Fielding acu el trmino REST en la disertacin de su Ph.D.32 donde refiri los
hipervnculos como el motor de los estados de la aplicacin. Esto significa que para que una
transicin pueda tener lugar, ya sea por cambiar el estado de un recurso o por transferir a
otro recurso, un recurso debe contener hipervnculos. Mientras los hipervnculos son
pensados para consumo humano, en general, no son utilizados en XML, los cuales, a su vez,
son pensados para ser procesados por computadora. Los servicios Web REST (al igual que
HTML) renen ambas caractersticas por utilizar hipervnculos en XML.
29
Se refiere a las especificaciones que extienden los servicios Web: WS-Addressing, WS-Security, WS-Policy, WS-
Transactions, son algunas de ellas.
30
REpresentational State Transfer refiere a una arquitectura de servicios Web basada en recursos
31
Acrnimo para create, read, update y delete.
32
Philosophy Doctor significa Doctorado en investigacin. Reconocimiento al doctorando sobre su capacidad de
hacer investigacin cientfica a partir de la presentacin de una tesis doctoral que represente una contribucin al
menos modesta al conocimiento humano.
30
75.00 Tesis
Captulo II
Ontologa
2.1 Generalidades
Una ontologa es un vocabulario controlado que describe de manera formal los objetos y las
relaciones entre ellos, y proporciona una gramtica para utilizar los trminos del vocabulario
con el fin de expresar algo con significado, dentro del dominio de inters especfico. El
vocabulario puede ser empleado para hacer bsquedas y aserciones.
Las ontologas pueden incluir glosarios, taxonomas y diccionarios pero normalmente tienen
mayor expresividad y reglas ms estrictas que las anteriores.
Las ontologas son, tambin, una herramienta para compartir informacin y conocimiento,
es decir, para conseguir interoperabilidad. Al definir un vocabulario formal de los conceptos
del dominio y un conjunto de las relaciones entre ellos, permiten que las aplicaciones
comprendan la informacin.
31
75.00 Tesis
Por lo general, las ontologas toman la forma de una jerarqua de trminos que representan
los conceptos bsicos de un determinado dominio. En el entorno de la Web lo usual es
representarlas en formato XML. A diferencia de las ontologas, XML carece de una semntica
que permita razonamiento automtico.
Segn [Tello; 2001] para representar conocimiento de dominio, las ontologas poseen los
siguientes componentes:
Conceptos: ideas bsicas que se intentan formalizar. Pueden ser clases de objetos,
mtodos, planes, estrategias, procesos de razonamiento, etc.
Relaciones: representan la interaccin y enlace entre los conceptos de dominio. Suelen
formar la taxonoma de dominio: subclase de, parte de, parte exhaustiva de,
conectado a, etc.
Funciones: son un tipo concreto de relacin donde se identifica un elemento mediante el
clculo de una funcin que considera varios elementos de la ontologa. Por ejemplo, pueden
aparecer funciones como categorizar clase, asignar fecha, etc.
Instancias: se utilizan para representar objetos que pertenecen a un concepto
determinado.
Axiomas: proposiciones que se declaran sobre las relaciones que deben cumplir los
elementos de la ontologa. Por ejemplo: Si A y B son de clase C, entonces A no es subclase
de B, Para todo A que cumpla condicin C1, A es B, etc.
Los axiomas, junto a la herencia de conceptos, permiten inferir el conocimiento oculto detrs
de una taxonoma de conceptos.
La Web, vista como una gran fuente de conocimiento, requiere de lenguajes apropiados para
representar ontologas. En este sentido, RDFS soporta algunos aspectos sobre conceptos de
dominio y permite crear, mediante relaciones taxonmicas, una jerarqua. Sin embargo, sirve
mejor como base de lenguajes con mayor expresividad y capacidad de razonamiento. Tello
sostiene que, a fin de potenciar la utilizacin de ontologas en la Web, se debera disponer de
aplicaciones de bsqueda de ontologas a fin de que los usuarios puedan utilizarlas en sus
sistemas.
Segn [Dickinson; 2009] RDFS es el lenguaje ontolgico ms dbil. Menciona que con RDFS
es posible construir una jerarqua de conceptos y propiedades simples pero no es posible
construir expresiones interesantes. Afirma que RDFS es suficiente para aplicaciones que
slo necesiten de un vocabulario bsico.
Por otro lado, existen ontologas profundas y poco profundas. Las ontologas profundas
requieren de considerables esfuerzos para construir y desarrollar conceptualizaciones y,
32
75.00 Tesis
algunos ejemplos se pueden encontrar en ciencia e ingeniera. Las ontologas poco
profundas, en cambio, comprenden algunas conceptualizaciones que son trminos fijos y
que permiten organizar grandes cantidades de datos.
33
Desarrollado en la siguiente seccin.
34
El trmino es empleado para enfatizar el carcter social de la red. Prcticamente todas las herramientas que
definen la Web 2.0 (blogs, wikis, Flickr, You Tube, RSS, folksonomas, entre otras) son calificadas como software
social a travs de las cuales se crean comunidades, se exponen conocimientos de forma abierta y se desarrolla
aprendizaje colaborativo. El poder de la colectividad es completo en los blogs, las wikis, el editor de videos You
Tube, la herramienta para colgar fotos Flickr, el sistema de gestin de favoritos del.icio.us., los cuales, permiten al
usuario aadir valor, elegir, decidir, ser parte activa del proceso de construccin de la red que ms que nunca tiene al
usuario en el centro de la escena. A diferencia de la Web 1.0, caracterizada, entre otras cosas, por un usuario receptor
pasivo.
35
Etiquetado realizado en un contexto social
36
Aqu refiere a recursos Web
37
Se refiere a un cambio en los mtodos habitualmente aplicados en los procesos de indizacin. La indizacin
consiste en registrar los datos ordenadamente, a fin de elaborar un ndice con ellos.
33
75.00 Tesis
Las folksonomas tienen a su favor simplicidad en su utilizacin y posibilidades constantes
de expansin y actualizacin. Pero presentan problemas de representacin de informacin
en lenguaje natural y no poseen herramientas de control de vocabulario. Hacer uso de esta
opcin requiere disear sistemas que procuren integrar las folksonomas con los
vocabularios controlados ya existentes de las aplicaciones.
La naturaleza mltiple del tagging y la falta de control de su terminologa hacen que las
folksonomas sean incapaces de representar de forma consistente un dominio o contexto
especfico y de brindar estructuras slidas de navegacin entre conceptos.
Las ontologas se encuentran en las antpodas de las folksonomas. Las ontologas son
diseadas por expertos para hacer explcito y unvoco el significado de los documentos
utilizados en la comunicacin interpersonal, en las interacciones humano-computadora y
computadora- computadora. Expresan conceptualizaciones formales de un rea del
conocimiento a travs de conceptos (clases), casos (individuos) y las relaciones entre ellos.
Las ontologas parten de relaciones jerrquicas como base estructural para disear un
dominio y van ms all permitiendo definir y modelar libremente relaciones entre conceptos
de un mismo dominio, haciendo explcitas todas las interrelaciones posibles y volviendo
transparente su estructura conceptual. Las ontologas son una representacin formal y
explcita de la estructura conceptual del campo sobre el cual se est trabajando, logrando
economizar la codificacin de la informacin al incluir a la herencia38 como mecanismo de
inferencia. Las ontologas funcionan como base de conocimiento de una comunidad (al
contener informacin sobre reas, objetos y contextos), pudiendo ser utilizadas en
aplicaciones de representacin y recuperacin de informacin como estructuras de
navegacin interconceptual para indizar o buscar informacin.
Las aplicaciones basadas en ontologas explotan su rigor y son capaces de ofrecer una
estructura de conocimiento bien definida, respuestas basadas en razonamiento lgico y el
formalismo necesario para el back-end de la aplicacin.
Como alternativa, las folksonomas pueden ser enriquecidas con ontologas aplicndolas en
el backstage39 del tagging social a fin de realizar recomendaciones por tags relacionados
explcita e implcitamente. Otra alternativa es utilizar las ontologas como mecanismo de
38
Los conceptos superiores transmiten sus caractersticas a los conceptos inferiores.
39
Detrs de escena. Se refiere a una implementacin que ofrezca sugerencias de tagging o asista en las bsquedas
al usuario.
34
75.00 Tesis
ampliacin de consultas, por medio de tags relacionados, dentro de las plataformas del tagging
social.
De la misma manera, las ontologas pueden ser enriquecidas con folksonomas, brindando
informacin acerca del vocabulario empleado en el tagging de documentos y, por lo tanto,
capturando el lenguaje de uso actual, ayudando a actualizar los sistemas existentes y a evaluar
la oportunidad, perceptibilidad e idoneidad de un sistema de representacin de conocimiento
diseado por profesionales. Los trminos de la folksonoma pueden, de esta forma, utilizarse
como sugerencias para nuevos trminos (conceptos o individuos) controlados.
Los trminos lgica de predicados, lgica descriptiva o lgica son utilizados frecuentemente
cuando se trata la Web Semntica o alguna de sus partes, como las ontologas. En esta seccin
se expone en qu consisten y la utilidad que brindan en este contexto.
Segn [Abin; 2005] la Lgica resulta de suma relevancia en la Web Semntica por tres
motivos, a saber: 1) permite desarrollar lenguajes formales para representar conocimiento;
2) proporciona semnticas bien definidas42; 3) proporciona reglas de inferencia a partir de
las cuales se pueden extraer consecuencias del conocimiento. Lo que se conoce como
interpretacin semntica automtica de documentos no pasa de ser la aplicacin de reglas
lgicas a datos presentados en algn lenguaje formal (como OWL o DAML+OIL).
40
Asociacin automtica entre los smbolos y los conceptos que realiza el cerebro humano a partir de la
informacin almacenada a lo largo de la vida de una persona.
41
Lenguaje lgico y axiomtico o lenguaje de representacin de conocimiento.
42
Se refiere a un sistema lgico donde cada smbolo y cada expresin tiene un significado nico y preciso
43
Ms conocido en ingls como First Order Logic o FOL.
35
75.00 Tesis
similar a los humanos, y justificarlas. Los usuarios de la Web Semntica no tienen que
preocuparse por conocer la lgica formal de los lenguajes, sino modelar mediante dichos
lenguajes, las reas de conocimiento de inters; luego, los lenguajes realizarn las inferencias
correspondientes a los datos introducidos.
2.4 Aplicaciones
El W3C afirma que las ontologas pueden mejorar las aplicaciones Web existentes y abrir
nuevos usos de la Web y describe seis casos de aplicacin los cuales son desarrollados a
continuacin:
36
75.00 Tesis
El primer caso de aplicacin es un portal Web. Un portal Web es un sitio con informacin
sobre algn tema en especial. Las personas interesadas en un determinado tema pueden
recibir noticias, participar de una comunidad o seguir enlaces a otros recursos de inters.
Para que un portal Web sea til debe tener un punto de partida que describa el contenido
interesante del sitio. Habitualmente, el contenido es subido por miembros de la comunidad
y agrupado mediante tagging 50 o indizado bajo algn subtema de inters. No obstante, la
indizacin puede carecer de la habilidad requerida para la bsqueda. Para permitir una
agrupacin ms inteligente, los sitios Web pueden definir una ontologa acorde con la
comunidad y realizar inferencias para obtener resultados imposibles en los sistemas
convencionales actuales. Esta tcnica requiere un lenguaje de ontologa que posibilite
capturar relaciones con alta calidad (mayor detalle). Un ejemplo de un portal basado en
ontologa es OntoWeb51.
50
Desarrollado en la seccin 2.2 Folksonomas y ontologas.
51
http://www.ontoweb.org/
52
Ttulos
53
Tags sobre los tags
37
75.00 Tesis
El quinto caso de aplicacin describe un escenario con agentes y servicios. La Web
Semntica provee agentes con la capacidad de comprender e integrar diversos recursos de
informacin. Un ejemplo es un planificador de actividades sociales que toma las preferencias
del usuario (tipos de pelculas, tipo de comidas, etc.) para planear una salida. La tarea de
planificar las actividades depende de la variedad del entorno de servicios ofrecidos y de las
necesidades del usuario. Durante el proceso de bsqueda se pueden consultar comentarios y
tarifas de servicios a fin de encontrar aquellos que mejor se ajusten a las preferencias del
usuario. Este tipo de agente requiere ontologas de dominio que representen los trminos
relacionados a restaurantes, hoteles, etc. y ontologas de servicios con trminos relacionados
a servicios reales, permitiendo capturar informacin interesante para el usuario. Tal
informacin puede ser provista por un nmero de fuentes, como portales, sitios de servicios,
sitios de reservas y la Web en general.
En un escenario como el descripto es necesario resolver cuestiones relacionadas con:
Uso e integracin de mltiples ontologas separadas a travs de diferentes dominios y
servicios,
Ubicacin distribuida de ontologas a travs de Internet,
Ontologas potencialmente diferentes para cada dominio o servicio (traslacin de
ontologas/referencias cruzadas),
Representacin simple de ontologas.
54
Computacin ubicua. Ubicua denota lo que esta presente al mismo tiempo y en todas partes. Omnipresente.
55
Computacin personal.
38
75.00 Tesis
En este contexto, un lenguaje de ontologa podra ser de utilidad en la descripcin de las
caractersticas, los medios de acceso, las polticas de uso de los dispositivos y dems
restricciones tcnicas y los requerimientos que afecten incorporar un nuevo dispositivo en
una red ubiquitous computing.
2.5.1 RDF
Segn [Dickinson; 2009] es un lenguaje ontolgico dbil que permite construir jerarquas de
conceptos y propiedades siendo suficiente para aplicaciones que slo necesitan establecer un
vocabulario bsico. [Abin; 2005] prefiere definir que si bien RDF es un modelo de
representacin de metadatos puede utilizarse como lenguaje general para la representacin
del conocimiento.
En RDF, la construccin bsica es la tripla (sujeto, propiedad, objeto). Toda tripla RDF
corresponde a una sentencia RDF: la parte que identifica a qu se refiere la sentencia es el
sujeto; la parte que identifica la caracterstica del sujeto es la propiedad o predicado y la parte
que identifica el valor de la propiedad es el objeto.
Los sujetos, las propiedades y los objetos son recursos. Los recursos con los que trabaja RDF
no son necesariamente recursos presentes en la Web. En general, un recurso RDF es
cualquier cosa con identidad. Para identificarlos se recurre a URIs57.
Los URIs no tiene significado por s mismos: son identificadores y la persona u organizacin
que los crea se responsabiliza de otorgarles significado. Un concepto puede tener asociados
diferentes URIs. Dos empresas pueden asignar un significado distinto a una propiedad y
utilizar para ello dos URIs distintos. Dos o ms recursos pueden utilizar el mismo URI,
reflejando una comprensin compartida de un concepto.
56
Los recursos Web refieren aqu a dispositivos fsicos (impresoras, ordenadores, agendas electrnicas) o estructuras
de datos de software (pginas web, imgenes, videos, directorios) accesibles a travs de una red.
57
Uniform Resource Identifier o identificador uniforme de recurso. La principal diferencia con URL es que el
URI no se limita a identificar entidades con localizaciones en la Web o accesibles mediante aplicaciones
informticas. Cualquier organizacin o persona puede crear sus URIs y utilizarlos para trabajar con sus
dominios de inters. Frente a URL, el URI permite referirse a un mismo recurso ubicado en distinta
localizaciones.
39
75.00 Tesis
Las triplas RDF pueden representarse en forma grfica mediante grafos (los nodos
corresponden a recursos y los arcos a propiedades) o en formato RDF/XML (representacin
XML de RDF). La ventaja de utilizar este ltimo estriba en poder reutilizar todas las
herramientas existentes para XML (analizadores sintcticos, transformaciones XSLT,
representaciones en memoria de objetos XML mediante DOM/SAX, etc.). Es oportuno aclarar
que RDF no est ligado a XML; se puede utilizar otra representacin para RDF, sin que ello
produzca cambios en la sintaxis de triplas y su semntica.
Cada persona u organizacin puede definir su propio vocabulario mediante un esquema RDF
llamado RDFS (RDF Schema). Un esquema permite comprobar si un conjunto de triplas RDF
es vlido para el esquema o no (comprobar si las propiedades aplicadas a los recursos son
correctas y si los valores vinculados a las propiedades tienen sentido). RDFS permite controlar
la validez de los valores y restringir las entidades a las cuales pueden aplicarse ciertas
propiedades.
El modelo de metadatos que RDFS permite expresar coincide con el de los lenguajes de
programacin orientada a objetos pues permite expresar clases e instancias. Cabe sealar
que las propiedades definidas en RDFS son globales; esto es, no estn encapsuladas como
atributos en las definiciones de clases. A diferencia de lo que ocurre en LOO58, RDFS permite
asignar a una clase, sin modificarla, nuevas propiedades.
Las restricciones que RDFS introduce son anlogas a las empleadas en lenguajes OO con
tipos.
58
Lenguajes orientados a objetos.
40
75.00 Tesis
Una propiedad es un recurso que permite caracterizar clases y establece una relacin entre
dos recursos, sujeto y objeto, constituyendo el primero su dominio y el segundo su rango.
RDF puede brindar descripciones adicionales por medio de esquemas pero no prescribe
cmo una aplicacin debera tratar con las descripciones. Los statements en RDFS son
41
75.00 Tesis
siempre descripciones. Pueden ser prescriptivos (introducir restricciones) slo si a la
aplicacin que los interpreta es requerida tratarlos de ese modo. Todo lo que RDFS hace es
proveer informacin adicional.
RDF es utilizado como base para lenguajes ms expresivos como DAM+OIL o DAML y OWL.
Es posible construir la Web Semntica con la interoperabilidad sintctica que provee XML y
la interoperabilidad semntica que presta RDFS?
La respuesta a este interrogante es no, no es posible debido a las carencias que RDFS posee:
No es posible declarar restricciones de rango que sean vlidas slo para algunas clases;
No es posible representar ciertas caractersticas de las propiedades (propiedades
transitivas, simtricas, inversas o funcionales);
No es posible reflejar clases disjuntas;
No permite expresar restricciones de cardinalidad (cantidad de valores que puede tomar
una propiedad);
Existen expresiones cuya semntica no es la estndar (es decir que no pueden expresarse
mediante lgica de primer orden) provocando que dado un sistema de axiomas no se
pueda afirmar o negar nada.
RDFS no es completo para describir los recursos de la Web con el detalle que se requiere. Se lo
43
75.00 Tesis
imponerse como solucin para la integracin de aplicaciones, sistemas y bases de datos;
se ha introducido como parte clave de las plataformas de software ms difundidas (J2EE y
.NET); ha liberado a las empresas de desarrollar en una plataforma determinada al
permitir desarrollar servicios Web, los cuales al emplear XML son independientes de la
plataforma; la mayor parte de los sistemas de gestin de bases de datos relacionales lo ha
incorporado a sus productos y tambin ha tenido gran impacto en el desarrollo de portales
(distintos portales pueden tener un mismo esqueleto XML y distintas presentaciones en
XSLT65 lo que reduce el trabajo de realizar cambios en el front-end).
Las estadsticas muestran que en Europa el 20-30% de los gastos relacionados con el
comercio electrnico deriva de la falta de interoperabilidad semntica [Abin; 2005]. Este
gasto se debe a que, aunque los SI66 empresariales utilicen las mismas tecnologas (por
ejemplo XML para describir los datos), el significado de sus modelos de negocios suele diferir.
Nociones habituales como pedido o cliente pueden significar cosas muy distintas, en cada
empresa. Como consecuencia el intercambio de informacin entre empresas, en el mejor de
los casos, resulta en un proceso semi-manual. La principal dificultad a la que se enfrenta el
modelado empresarial reside en traducir los objetos de negocio de una empresa a los de otras
y viceversa. Sin esa traduccin, la integracin automtica de los SI de las empresas que
forman parte de una misma cadena de aprovisionamiento resulta imposible sin un
entendimiento comn.
El marcado de los documentos XML es efectuado por medio de metadatos. Cuando una
persona lee un DTD, puede extraer la semntica prestando atencin a los nombres de los
elementos o a los comentarios que figuran en l, interpretando semnticamente el DTD. Por
el contrario, para un programa que procesa los documentos XML, las etiquetas, por s solas,
no tienen significado alguno.
Volviendo al planteo que abri esta seccin, cabe responder que XML no es apropiado para
incluir semntica desde que el modelo de datos de un dominio puede ser representado por
diferentes DTDs (o XML Schema) y, al mismo tiempo, un DTD (o XML Schema) puede
representar varios modelos de datos distintos. En cambio, RDFS proporciona una
representacin nica de un modelo de datos, al considerar la semntica de los datos.
Pese a la similitud entre los trminos esquema RDF (RDFS) y esquema XML (XML
Schema), sus significados son muy distintos. Los esquemas XML, al igual que los DTD,
especifican el orden y las combinaciones de etiquetas que son aceptables en un documento
65
Stylesheet Language Transformation, transformacin del lenguaje de hojas de estilo.
66
Sistema de informacin
44
75.00 Tesis
XML. En cambio, los esquemas RDF especifican qu interpretacin hay que dar a las
sentencias de un modelo de datos RDF; es ms, dejan libre la representacin sintctica del
modelo.
Los esquemas XML modelan datos expresados en XML mientras que los esquemas RDF
(RDFS) modelan conocimiento o dicho de otra manera: XML y los esquemas XML son un
lenguaje de modelado de datos y RDF y RDFS son un lenguaje de modelado de metadatos.
2.5.2 OWL
El Ontology Web Language (OWL) es una especificacin de lenguaje desarrollado por el W3C
para describir ontologas, es decir, representar el significado y las relaciones de trminos en
vocabularios de manera que la informacin contenida en los documentos pueda ser
procesada por aplicaciones.
Es una extensin de RDFS y mantiene una buena relacin entre eficacia computacional y
poder expresivo.
A continuacin, las tablas muestran algunos de los trminos del vocabulario OWL empleados
en la descripcin de clases, object-properties, data-properties y properties-restriction
respectivamente. [Hebeler et al.; 2009].
45
75.00 Tesis
Tabla trminos OWL para describir object-properties
Object-Property Descripcin
owl:objectProperty La clase de todas las propiedades que relacionan dos individuos
owl:DataProperty La clase de todas las propiedades que relacionan un individuo con un valor
literal
owl:topObjectProperty Propiedad que conecta todos los posibles pares de individuos
owl:bottomObjectProperty Propiedad que no conecta pares de individuos
owl:topDataProperty Propiedad que conecta todos los posibles individuos con todos los posibles
literales
owl:bottomDataProperty Propiedad que no conecta ningn individuo con un literal
owl:SymmetricProperty La clase de todas las propiedades que son simtricas. Para todas las
propiedades simtricas p, el statement (A p B) implica la existencia del
statement (B p A)
owl:AsymmetricProperty La clase de todas las propiedades que son explcitamente no simtricas. Para
todas las propiedades asimtricas p, el statement (A p B) implica la no
existencia del statement (B p A)
owl:equivalentProperty Propiedad que especifica que dos propiedades son equivalentes
owl:ReflexiveProperty La clase de todas las propiedades que son reflexivas. Para todas las
propiedades reflexivas p y los individuos A, A esta relacionado a s mismo
por p (A p A)
owl:IrreflexiveProperty La clase de todas las propiedades que no son reflexivas. Para todas las
propiedades irreflexivas p y los individuos A, no existe un statement p (A p
A)
owl:TransitiveProperty La clase de todas las propiedades que son transitivas. Para todas las
propiedades transitivas p, (A p B) y (B p C) implica (A p C)
owl:FunctionalProperty La clase de todas las propiedades para las cuales un valor de dominio dado
tiene slo un valor de rango
owl:InverseFunctionalProperty La clase de todas las propiedades para las cuales un valor de rango dado tiene
slo un valor de dominio
owl:inverseOf Propiedad que especifica que dos propiedades son una la inversa de la otra.
Si una propiedad p1 es la inversa de una propiedad p2, la existencia de un
statement (A p1 B) implica la existencia del statement (B p2 A)
owl:propertyChain Propiedad que es utilizada para construir una cadena de propiedades que
representa la superproperty en una relacin subproperty-of
Owl:propertyDisjointWith Relacin que establece que dos propiedades son disjuntas. Si dos
propiedades p1 y p2 son disjuntas, implica que dos statements con el
mismo sujeto y objeto no pueden tener los predicados p1 y p2
owl:AllDisjointProperties Una clase que es utilizada con owl:members para describir colecciones de
propiedades que son disjuntas por pares.
Una property-restriction describe a la clase de individuos que cumplen con las condiciones
especificadas sobre la propiedad. La restriccin es declarada empleando la construccin
46
75.00 Tesis
owlRestriction y la propiedad a la cual refiere la restriccin es identificada utilizando la
propiedad owl:onProperty. Las restricciones son relacionadas a clases utilizando
rdfs:subclassOf o owl:equivalentClass.
owl:sameAs: relacin que especifica que dos individuos son el mismo individuo;
owl:differentFrom: relacin que especifica que dos individuos no son el mismo individuo;
owl:AllDifferent: una clase utilizada con owl:distinctMembers para definir una coleccin
de individuos que son diferentes por pares.
Como puede observarse, OWL tiene mucha ms capacidad expresiva que RDFS. OWL facilita
la importacin y exportacin de clases por medio de propiedades como sameAs,
equivalentClass, equivalentProperty, differentFrom, etc.
La primera versin de la especificacin fue OWL 1 (tambin conocida como OWL), la cual fue
aprobada por el W3C en el ao 2004. La segunda fue OWL 2, aprobada en el ao 2009 con el
agregado de nuevas caractersticas mientras mantiene compatibilidad con la anterior.
OWL tiene ms facilidades para expresar significado y semntica que XML, RDF y RDF-S:
XML: provee una base sintctica para documentos estructurados aunque no impone
restricciones semnticas en el significado de esos documentos
XML Schema: extiende XML con datatypes y provee un lenguaje para restringir la
estructura de documentos XML.
47
75.00 Tesis
RDF: modela recursos y sus relaciones utilizando una representacin y semntica simple
por medio de sintaxis XML
RDF Schema: brinda un vocabulario para describir propiedades y clases de recursos RDF,
con una semntica para la generalizacin de jerarquas de clases y propiedades
OWL: agrega ms vocabulario para describir clases y propiedades. Entre otras: relaciones
entre clases, cardinalidad, igualdad, ms propiedades, caractersticas de propiedades y
enumerados de clases.
Las inferencias son realizadas algortmicamente y no forman parte del documento OWL sino
que dependen de implementaciones especficas. La respuesta correcta a una cuestin es
predeterminada por la semntica formal (Direct Model-Theoretic o RDF-Based).
El tipo de conocimiento capturado por OWL no refleja todos los aspectos de conocimiento
humano sino una parte de l. OWL es considerado como un lenguaje de modelado de
propsito general, poderoso, que como resultado del proceso de modelado logra una
ontologa.
A fin de formular conocimiento explcito, OWL asume que ste consiste de piezas
elementales llamadas statements (o proposiciones). Los statements obtenidos a partir de la
ontologa son llamados axiomas y pueden ser verdaderos o falsos segn la situacin.
Un statement es cierto siempre que los otros statements lo sean. En trminos OWL: un
conjunto de statements A implican un statement a, si en cualquier situacin donde todos los
statements de A son ciertos, tambin lo es a. La semntica formal de OWL especifica las
posibles situaciones en las que un conjunto de statements es verdadero. Existen herramientas
OWL, y razonadores que pueden procesar consecuencias.
Los statements poseen componentes atmicos llamados entidades. Las entidades pueden
representar objetos, categoras o relaciones o en trminos de OWL2 individuos, clases y
propiedades, respectivamente. A su vez, las propiedades se dividen en:
48
75.00 Tesis
annotation-property: comentarios relacionados con partes de la ontologa, como autor y
fecha de creacin de un axioma. Permite anotaciones de anotaciones. Son empleadas, por
herramientas, en interfaces de ayuda para proveer acceso a texto en lenguaje natural.
2.5.2.2 Sub-Lenguajes
OWL es, en general, un lenguaje muy expresivo y puede resultar difcil de implementar y
trabajar con l.
Los sublenguajes fueron diseados como subconjuntos de OWL 2 y lo suficientemente
accesibles para ser utilizados en una variedad de aplicaciones. Al igual que en OWL 2 DL, los
mayores requerimientos de los sublenguajes tienen que ver con consideraciones de
procesamiento.
En la primera versin de OWL se definieron tres sublenguajes:
OWL DL: soporta lgica descriptiva y provee un subconjunto del lenguaje con propiedades
de cmputo propicias para sistemas de razonamiento. Establece restricciones sobre la
combinacin con RDF y requiere separacin estricta de clases, propiedades, individuos y
valores de datos.
OWL Lite: es parte de OWL DL, diseado para una fcil implementacin y proveer a los
usuarios con un subconjunto funcional a fin de iniciarlos en el uso de OWL.
OWL FULL: provee un lenguaje completo y relaja algunas de las restricciones de OWL DL.
A diferencia de OWL DL, permite combinar libremente OWL con RDF Schema y, como
ste, no posee una separacin estricta entre clases, propiedades, individuos y valores de
datos.
49
75.00 Tesis
Por otro lado, existen aplicaciones que prestan especial cuidado a la interoperabilidad del
lenguaje de ontologa con mquinas de reglas. Las ontologas utilizadas en estas aplicaciones
son ligeras y permiten consultar grandes datasets siendo conveniente operarlas directamente
en la forma de triplas RDF. Casos tpicos de tales aplicaciones son aquellas que priorizan
eficiencia por expresividad y aplicaciones RDF que necesitan de la mayor expresividad
provista por OWL.
A fin de satisfacer los requerimientos expuestos, la segunda versin de OWL defini tres
nuevos sublenguajes con propiedades tiles de procesamiento, a saber:
OWL EL: fue diseado pensando en las aplicaciones que emplean ontologas de gran
tamao. Captura el poder expresivo en ontologas de gran escala. No permite negacin y
disyuncin de clases, cuantificacin universal sobre propiedades ni propiedades inversas
El acrnimo EL refleja el origen del sublenguaje en la familia EL de lgica descriptiva. Las
herramientas (en proceso de alcanzar conformidad con OWL 2) que ofrecen soporte para
OWL 2 EL son: FaCT++, Hermit, Pellet, CEL, ELLY, REL, entre otras.
OWL QL: fue diseado pensando en aplicaciones que priorizan la interoperabilidad de
OWL con bases de datos. Utilizado en ontologas simples como Thesuari, permite
integracin con RDBMS y la implementacin de razonadores sobre la misma. Este
sublenguaje es adecuado para aplicaciones con ontologas ligeras pero con un gran
nmero de individuos, las cuales necesitan acceder a los datos directamente va consultas
relacionales. El razonamiento puede ser implementado eficientemente mediante tcnicas
de re-escritura de consultas. El acrnimo QL refleja el hecho de que la respuesta a una
consulta puede ser implementada por re-escribir las consultas en el Standard Relational
Query Language. Las herramientas (en proceso de alcanzar conformidad con OWL 2) que
ofrecen soporte para OWL 2 QL son QuOnto, Quill, FaCT++, Hermit, Pellet, entre otras.
OWL 2 RL: fue diseado pensando en aplicaciones que priorizan la interoperabilidad de
OWL con mquinas de reglas. Define un subconjunto sintctico de reglas para su
implementacin a travs de tecnologas basadas en reglas. Tales implementaciones pueden
operar directamente sobre triplas RDF y pueden ser aplicadas arbitrariamente a grafos
RDF. En este ltimo caso no hay garanta de obtener todas las respuestas correctas desde
que la ontologa puede estar incompleta. El acrnimo RL refleja el hecho de que el
razonamiento puede ser implementado utilizando el Standard Rule Language. Las
herramientas (en proceso de alcanzar conformidad con OWL 2) que ofrecen soporte para
OWL 2 RL son: Oracle Database 11g OWL Reasoner, Jena, FaCT++, Hermit y Pellet.
50
75.00 Tesis
Para requerimientos de un sublenguaje escalable en ontologas grandes y con buenos
tiempos de performance en razonamiento ontolgico, la recomendacin es OWL 2 EL. Para
requerimientos de interoperabilidad con sistemas de BD relacionales y razonamiento
escalable sobre grandes datasets, la recomendacin es OWL 2 QL mientras que para
requerimientos de interoperabilidad con mquinas de reglas y reglas extendidas de BD y
razonamiento escalable sobre grandes BD, la recomendacin es OWL 2 RL.
Las diferencias entre ambas son sutiles siendo las inferencias realizadas utilizando el Direct
Model-Theoretic tambin vlidas en RDF-Based, salvo las obtenidas de anotaciones que
mientras para la primera no tienen significado formal para la segunda son una fuente ms de
inferencia.
2.5.3 WSMO
67
Marco de Modelado de Servicios Web
68
Ontologa de Modelado de Servicios Web
69
Lenguaje de Modelado de Servicios Web
70
Entorno de Ejecucin de Servicios Web
51
75.00 Tesis
una arquitectura SWS prestando una implementacin inicial para descubrimiento, seleccin,
mediacin, invocacin e interoperacin de servicios Web. El objetivo de WSMX es
proporcionar un ambiente de prueba para WSMO y demostrar la viabilidad de utilizarlo
como modelo para alcanzar la interoperabilidad dinmica de SWS.
Como se mencion, WSMO es un marco para la descripcin de servicios Web, que integra
principios bsicos y semnticos de diseo Web y principios de diseo para procesamiento
distribuido. A continuacin se enumeran los principios de diseo de WSMO:
7. Servicios vs. Servicios Web: un servicio Web es una entidad computacional que puede
(por ser invocado) alcanzar un objetivo. Por el contrario, un servicio es el valor actual
provisto por esta invocacin. WSMO no especifica servicios sino servicios Web.
Partiendo de la base conceptual establecida por WSMF, WSMO refina y extiende cuatro
elementos de modelado: ontologas, servicios Web, objetivos y mediadores, adoptando las
definiciones dadas a continuacin.
Las ontologas son un elemento clave al proveer las terminologas especficas de dominio
para describir otros elementos. Cumplen un doble propsito: definir la semntica formal de la
informacin y vincular terminologas humanas y de computadora.
Los servicios Web utilizan protocolos basados en estndares Web para intercambiar y
combinar datos, son independientes de la plataforma y cada servicio Web es visto como una
pieza atmica de funcionalidad que puede ser reutilizada para construir servicios ms
complejos. Adems WSMO incluye tres perspectivas en la descripcin de los servicios Web:
52
75.00 Tesis
propiedades no funcionales, funcionalidad y comportamiento.
Los objetivos (goals) especifican las funcionalidades que un servicio Web debe proveer desde
la perspectiva del usuario. La co-existencia de objetivos y servicios Web como entidades no
superpuestas asegura el desacoplamiento entre un pedido y un servicio Web. Esta forma de
establecer problemas, en la que el usuario formula objetivos sin considerar los servicios Web
de la solucin es conocido como Goal-Driven Approach71, derivado del AI Racional Agent
Approach72.
2.5.4 DAML-S
El Darpa Agent Markup Language for Services73 (DAML-S) es un intento por cerrar la
brecha entre la Web Semntica y los estndares de servicios Web [Paolucci y Sycara, 2003].
Permite una descripcin estndar (WSDL y SOAP) de los servicios Web garantizando que
usuarios y servicios puedan descubrir e invocar otros servicios. Como ontologa, define un
concepto de servicio Web utilizando construcciones DAML+OIL74. Adems, las anotaciones
semnticas y ontolgicas le permiten relacionar descripciones de servicios Web con
descripciones de dominio operacional.
El Service Profile provee una visin de alto nivel de un servicio Web, similar a la
representacin de servicio Web UDDI. Ambos proveen informacin del proveedor de servicio
pero el Service Profile soporta propiedades como representacin de capacidades (tareas
ejecutadas por el servicio) que UDDI no soporta. Por otro lado, UDDI describe los puertos que
el servicio Web utiliza, mientras que DAML-S relega esa informacin a otros mdulos de la
descripcin como el Service Grounding.
El Process Model especifica qu tareas ejecuta un servicio Web, el orden en que las ejecuta y
71
Enfoque Dirigido por Objetivos
72
Enfoque de Inteligencia Artificial de Agente Racional.
73
Lenguaje de Marcado de Agentes DARPA para Servicios
74
Lenguaje de marcado semntico para recursos Web, fue construido sobre los primeros estndares del W3C, RDF y
RDFS, extiende estos lenguajes con primitivas de modelado. http://www.w3.org/TR/daml+oil-reference
53
75.00 Tesis
las consecuencias de las mismas. Un cliente puede utilizar el Process Model para derivar la
coreografa del servicio o el patrn de intercambio de mensajes por seguir las entradas que
espera y cuando y las salidas que produce y cuando. El Process Model tiene un rol similar a
los estndares emergentes como BPEL4WS75 y WSCI76, pero se enfoca ms en los efectos de
ejecutar los componentes de diferentes servicios.
La dependencia de DAML-S sobre DAML+OIL, as como WSDL sobre SOAP, muestra cmo los
servicios Web pueden ser enriquecidos con informacin semntica. DAML-S agrega a las
especificaciones de servicios Web, representacin formal de contenido y razonamiento
acerca de interacciones y capacidades. DAML-S permite que los servicios Web empleen UDDI,
WSDL y SOAP para descubrir e interactuar con otros servicios y que ellos utilicen DAML-S
para integrar estas interacciones en problemas propios a resolver.
2.5.5 OWL-S
Se trata de una ontologa de servicios Web basada en OWL que permite describir las
propiedades y capacidades de los servicios Web. OWL-S fue construido sobre la
recomendacin OWL del W3C. Las publicaciones anteriores de este lenguaje fueron llamadas
DAML-S y construidas sobre DAML+OIL (predecesor de OWL). La ltima versin de OWL-S
es la 1.2. OWL-S puede ser comprendido a partir de DAML-S, desarrollado en la seccin
anterior.
2.5.6 SWSF
En el ao 2005, el W3C public el Semantic Web Services Framework (SWSF), presentado
por Hewlett Packard (HP), el Massachusetts Institute of Technology (MIT), el National
Research Council of Canada, SRI y las universidades de Stanford, Zurich, Toronto y California,
entre otras.
Dicha publicacin empieza por mencionar la necesidad de estndares para servicios Web
(parcialmente logrados con WSDL, BPEL4WS y UDDI) y al mismo tiempo destaca la
necesidad creciente de especificaciones semnticas ms ricas, basadas en un framework que
extienda el rango completo de conceptos relacionados a servicios Web. Un framework
debera permitir una automatizacin ms completa y flexible en la provisin y utilizacin de
servicios, soportar la construccin de herramientas y metodologas ms poderosas y
promover la utilizacin de razonamientos semnticos acerca de servicios. Dado que un
framework de representacin expresivo permite la especificacin de diferentes aspectos de
los servicios, puede proporcionar una base para un amplio rango de actividades a lo largo del
ciclo de vida de los servicios Web: semnticas ms ricas pueden soportar mayor
75
Business Process Execution Language for Web Services, es un lenguaje para la especificacin formal de procesos
de negocios y protocolos de interaccin de negocios. Por esto, extiende el modelo de interaccin de servicios Web y
lo habilita para soportar transacciones de negocios.
76
Web Service Choreography Interface. http://www.w3.org/TR/wsci/
54
75.00 Tesis
automatizacin de seleccin e invocacin de servicios, traslacin automtica de contenido de
mensajes entre servicios, enfoques automatizados o semiautomatizados para la composicin
de servicios, enfoques ms comprensivos para monitoreo de servicios y recuperacin de
fallas y una automatizacin ms completa de verificacin, simulacin, configuracin,
administracin de la cadena de proveedores, contratacin y negociacin de servicios [Battle et
al., 2005].
Las tecnologas presentadas en el trabajo SWSF realizan esta visin de Servicios Web
Semnticos. En l exponen sus dos componentes principales: el Semantic Web Services
Language (SWSL) y el Semantic Web Service Ontology (SWSO).
2.5.7 WSDL-S
En el ao 2005, el W3C public el trabajo Web Service Semantics WSDL-S, entregado por
representantes del IBM Research, IBM Software Group y LSDIS Lab of the University of
Georgia.
[Miller et al.; 2004] sostienen que los servicios Web fueron diseados para proveer
interoperabilidad entre aplicaciones de negocios. Las tecnologas actuales requieren de una
gran cantidad de interaccin humana para integrar dos aplicaciones. Esto es debido a que la
integracin de procesos de negocios necesita de la comprensin de los datos y las funciones
de las entidades involucradas. Las tecnologas semnticas apuntan a sumar mayor significado
al contenido Web, por anotar los datos con ontologas. Las ontologas proporcionan un
mecanismo para compartir conceptualizaciones de dominio. Esto permite a los agentes
conseguir una comprensin de los contenidos de los usuarios de la Web y reducir la
interaccin humana en bsquedas Web significativas. Un enfoque similar puede ser
empleado por agregar significado a las descripciones de los servicios Web, las cuales
77
Ver seccin 2.4.2.3 Semntica Formal
78
First Order Logic Ontology for Web Services
79
Rules Ontology for Web Services
80
Originalmente diseado para soportar interoperabilidad entre lenguajes de modelado de procesos, PSL provee una
base para la interoperabilidad entre los modelos de procesos de los servicios Web emergentes mientras soporta la
realizacin de automatizacin de tareas asociadas con la visin de Servicios Web Semnticos.
55
75.00 Tesis
permiten mayor automatizacin por reducir el involucramiento humano en comprender los
datos y funciones de los servicios.
Debido a la tarda alineacin de OWL-S con WSDL, el diseo de OWL-S puede ser
innecesariamente complejo. WSDL-S busca crear descripciones semnticas de los servicios
Web por agregar semntica por medio de extensiones simples a WSDL. La ontologa de
servicio WSDL-S, es por lo tanto, ms alineada con WSDL 2.0 y ms compacta que OWL-S sin
perder expresividad.
Los elementos y atributos de extensiblidad que [Akkiraju et al.; 2005] proponen son: 1) un
atributo de extensin, modelReference, para especificar la asociacin entre una entidad
WSDL y un concepto en algn modelo semntico; 2) un atributo de extensin,
schemaMapping, para manejar diferencias estructurales entre los elementos Schema de un
servicio Web y sus correspondientes conceptos en el modelo semntico; 3) dos nuevos
elementos, precondition y effect, las cuales son utilizadas principalmente en el
descubrimiento de servicios y 4) un atributo de extensin sobre el elemento interface,
category, el cual provee informacin de categorizacin al publicar un servicio en un
registro como UDDI.
2.5.8 SAWSDL
Semantic Annotations for WSDL (o SAWSDL) fue aprobado en el ao 2007 como una
recomendacin del W3C y realizado por el SAWSDL Working Group basndose en la
presentacin WSDL-S (desarrollada en la seccin anterior).
SAWSDL propone un enfoque similar a WSDL-S. Define algn WSDL y extiende los atributos
XML-Schema a fin de permitir la descripcin semntica de los componentes WSDL. Esto
requiere vincular los elementos WSDL con modelos semnticos como ontologas. SAWSDL
no est sujeto a ningn lenguaje de representacin semntica pero proporciona los
mecanismos para referenciar conceptos del modelo semntico desde documentos WSDL.
A partir de estos principios de diseo, SAWSDL define tres nuevos atributos de extensibilidad
para elementos WSDL 2.0 a fin de habilitar la anotacin semntica de componentes WSDL: 1)
un atributo de extensin, modelReference, para especificar la asociacin entre un
81
Sin conocimiento.
56
75.00 Tesis
componente WSDL y un concepto en algn modelo semntico y 2) dos atributos de
extensin, liftingSchemaMapping y loweringSchemaMapping82, los cuales son agregados
a declaraciones de elementos y a definiciones de tipos de XML-Schema por especificar las
asociaciones entre datos semnticos y XML y utilizados durante la invocacin del servicio.
2.6 Razonador
Las clases pueden ser organizadas en una jerarqua de superclases-subclases, conocido como
taxonoma. Las subclases especializan (son subsumidas por) superclases. Estas relaciones
pueden ser procesadas por un razonador en OWL-DL. Virtualmente toda consulta a una
ontologa OWL DL debe ser realizada utilizando un razonador que deduzca conocimiento
implcito. El OWL API incluye varias interfaces para acceder a razonadores OWL DL. La
interfaz OWL Reasoner del OWL API es implementada por FACT++, Hermit, Pellet y
RacerPro, entre otros.
Un razonador tambin es conocido como clasificador por la tarea de computar una jerarqua
de clases inferidas.
En oposicin a OWA, el Closed World Assumption86 (CWA) afirma que todo statement que no
sea verdadero es asumido como falso. La mayora de los sistemas operan con supuestos de
82
El primero se refiere a levantar datos desde el XML al modelo semntico y el segundo a bajar datos desde el
modelo semntico al XML. Los mapping son tiles cuando la estructura de los datos de instancia (servicio) no se
corresponden con los de la organizacin de datos semnticos. Los mapping son utilizados cuando cdigo de
mediacin es generado para soportar invocacin de servicios.
83
Las siglas corresponden al trmino en ingls Knowledge Base
84
Supuesto de Mundo Abierto.
85
Razonamiento de Mundo Abierto.
86
Supuesto de mundo cerrado.
57
75.00 Tesis
mundo cerrado. Ellos asumen que la informacin es completa y conocida. Sin embargo, en
algunos casos CWA puede limitar la expresividad de un sistema debido a que es ms difcil
diferenciar entre informacin incompleta e informacin que es desconocida.
A fin de lograr una Web Semntica robusta, las ontologas deben procurar balancear entre la
complejidad computacional requerida por los mecanismos de razonamiento y el poder
expresivo de los conceptos definidos. RDF y RDFS proveen un poder expresivo muy limitado,
insuficiente para representar la semntica asociada a un dominio. OWL provee mayor poder
expresivo y promueve motores de inferencia por suministrar un soporte de razonamiento
apropiado. Nuevos dialectos que necesitan ms servicios de razonamiento e inferencia,
plantean nuevos desafos para los razonadores DL quienes deben controlar subsuncin,
consistencia y satisfactibilidad de las ontologas.
La inferencia hace un dato mucho ms valioso debido a que podra tener un efecto en la
creacin de nueva informacin y conducir a efectos positivos o negativos. Cada pieza de
informacin tiene la capacidad de agregar gran cantidad de informacin nueva va inferencia.
Por ello, se deben tomar cuidados extras para validar la informacin. El proceso de inferencia,
como todo sistema es vulnerable al fenmeno garbage in, garbage out pero la inferencia
ampla este asunto [Hebeler et al.; 2009].
58
75.00 Tesis
TBox.
2.6.1 Clasificacin
Los razonadores pueden ser agrupados en dos categoras: razonadores de lgica descriptiva y
razonadores de programacin lgica.
Como se mencion en la seccin 2.3 Lgica y ontologas, las lgicas descriptivas permiten
representar bases de conocimiento que describen un dominio particular. Una lgica
descriptiva se representa a travs de clases (conceptos), individuos, roles (propiedades).
Adems existe un conjunto de extensiones que incluyen el dominio y rango de las
restricciones. [Rodrguez et al.; 2010].
Algunos razonadores DL son Pellet, HermiT, FacT++, Racer Pro. Los tres primeros sern
desarrollados en las siguientes secciones dejando para esta seccin, el razonador RacerPro.
87
Renamed ABox and Concept Expression Reasoner
88
Lenguaje de programacin de tipo funcional especificado en 1958 es el segundo lenguaje de programacin ms
viejo de alto nivel. Utilizado frecuentemente en IA.
89
O tablas semnticas se encuentran dentro de lo que se conoce como algoritmos de razonamiento [Rodrguez et al.;
2010] y se basan en las semnticas de las frmulas. De acuerdo a su tipo, una formula genera una extensin en el
59
75.00 Tesis
satisfactibilidad, clasificacin) y ABoxes (consultas). Soporta la OWL-API, la interfaz DIG,
transformaciones SPARQL y SWRL a nRQL, diferentes formatos y sintaxis, conectividad con
software externo (Protg, etc.), entre otras caractersticas. La ltima versin comercial es
RacerPro 1.9.0 que ser reemplazada por RacerPro 2.0 a liberarse en el 2011.
KAON2 es un razonador con sistema de razonamiento hbrido que soporta SHIQ(D), Datalog y
DL-Safe. Fue desarrollado por la Universidad de Manchester, la Universidad de Karlsruhe y el
FZI90. Dentro de KAON2, las reglas DL-Safe pueden ser agregadas a la salida de un DataLog
disyuntivo y no requieren preprocesamiento adicional, lo que mejora el rendimiento Su
razonamiento es implementado a travs de algoritmos Novel, que reducen una base de
conocimiento SHIQ(D) a un programa de registro de datos disyuntivos. Posee una versin
comercial llamada OntoBroker OWL. KAON2 no maneja nominales ni nmeros grandes en
sentencias de cardinalidad.
Jena es un framework open source para construir aplicaciones de la Web semntica sobre
modelos RDF. Soporta varios formatos como XML/RDF, N3 y N-Triples (formatos para grafos
abreviados). Los grafos son representados internamente como un modelo abstracto, que se puede
consultar mediante el lenguaje de consultas para RDF y SPARQL. Permite el tratamiento del
lenguaje OWL, al utilizar el modelo semntico de RDF y proporciona conexin de forma externa
a travs de la interfaz DIG hacia razonadores DL como Pellet o FaCT++. Jena posee la
capacidad para conectarse con motores de inferencia externos tipo Plug-in a travs de una
interface DIG y tambin ofrece un subsistema de inferencia propio el cual consiste en un motor
hbrido con encadenamiento hacia delante y hacia atrs, utilizando el algoritmo RETE (algoritmo
de reconocimiento de patrones). Ofrece razonadores para RDF, OWL, DAML, razonador
transitivo y motor de reglas multipropsito.
tableaux. La clasificacin de las frmulas son tipo , para las formulas conjuntivas; tipo , para las frmulas
disyuntivas; tipo para las frmulas universales y tipo , para las frmulas existenciales. La base de este mtodo es
el principio de refutacin: dado un conjunto de premisas y una conclusin , mostrar que el conjunto {}
no tiene un modelo que lo satisfaga, demostrando que es una consecuencia de .
90
Universidad en Inglaterra, Universidad en Alemania y una de las ms prestigiosas de ese pas, Organizacin de
investigacin por contratos sin fines de lucro para proveedores de inversin, productos de consumo y servicios de
informacin que soporta el desarrollo de aplicaciones innovadoras, principalmente en ingeniera, sobre la base de
tcnicas recientes y probadas. La organizacin permite a profesores extender sus esfuerzos en la investigacin
acadmica en la direccin de actividades ms orientadas al mercado por prestar una infraestructura tcnica y
organizacional que es congenial a establecer relaciones estrechas con la industria y organizaciones de servicios.
http://www.fzi.de/
60
75.00 Tesis
2.7 SWRL
El Semantic Web Rule Language se basa en OWL DL y OWL Lite y utiliza el subconjunto de
reglas RuleML del Rule Markup Language91 las cuales son modeladas sobre clusulas Horn. El
propsito de SWRL es extender el conjunto de axiomas OWL al incluir clusulas Horn que
puedan ser combinadas con la base de conocimiento de OWL92.
Los tomos pueden ser de la forma C(x), P(x, y), sameAs (x, y), differentFrom (x, y), donde C
es una descripcin OWL, P es una propiedad OWL y x, y pueden representar variables,
individuos OWL o valores de datos OWL. Cabe destacar que OWL DL pierde decidibilidad93
cuando es extendido de esta manera porque las reglas pueden ser utilizadas para simular
asociaciones rol valor.
[Hebeler et al.; 2009] enuncian a las reglas como un medio para representar conocimiento
que con frecuencia no es posible en OWL 1 o que resulta ms fcil de comprender que las
expresiones que OWL 1 puede ofrecer.
2.7.1 Motivaciones
Segn [Hebeler et al.; 2009] las reglas surgieron por la falta de expresividad de OWL 1.
61
75.00 Tesis
conocido como uncle problem. Es imposible, en OWL 1, determinar que un individuo A
tiene una relacin uncle con un individuo B debido a la necesidad de dos piezas de
informacin: que A tenga una relacin father con C y que C tenga una relacin sibling con B.
Las reglas soportan la existencia de ambas piezas de informacin que resultan en la creacin
de la relacin uncle. OWL 2 parcialmente resolvi este problema mediante la
owl:propertyChain. Cabe aclarar que SWRL en anterior a OWL 2.
Las reglas pueden ser utilizadas para limitar el Open World Assumption (OWA) de OWL
(empleando una tcnica conocida como Negation as Failure95 o NAF) o soportar el supuesto
de individuos nicos96.
As, aparte de las ya mencionadas, existen otras carencias en OWL 1 que son superadas por
la utilizacin de reglas.
Las DL-Safe Rules poseen como propiedad decidibilidad y solucionan algunos de los
problemas asociados con la prdida de decidibilidad que ocasiona SWRL.
Las DL-Safe Rules son un subconjunto de SWRL y asocian instancias conocidas de la base de
conocimiento o la ontologa con las variables utilizadas por las reglas. Si no existe una
instancia que se pueda asociar con una consulta, entonces el consecuente de una regla DL-
Safe no se ejecutar sin importar que las reglas sean perfectamente vlidas. La decidibilidad
slo puede ser garantizada por tener toda la informacin necesaria al momento de evaluar la
regla. Restringiendo las reglas slo a individuos conocidos asegura decidibilidad como fue
demostrado en [Motik et al., 2005].
2.8 Ejemplos
Los trabajos de investigacin estudiados han empleado ontologas sencillas a fin de concentrarse
en los aspectos de una solucin al problema de composicin dinmica de servicios: [Paolucci et
al.; 2002] utilizaron una ontologa de vehculos hecha en DAML; [Li et al.; 2006] eligieron
como escenario el de una biblioteca universitaria, utilizando OWL-S para la descripcin y OWL
para el modelado y razonamiento de la composicin de servicios; en [Yong-Feng et al.; 2007]
utilizaron OWL-S para la composicin de servicios y OWL para describir la interaccin de
agentes; [Fahad et al.; 2008] emplearon una ontologa de automviles en OWL a fin de
evaluar los razonadores DL con respecto a su capacidad para clasificar e identificar
inconsistencias en las ontologas. Por otro lado, el W3C utiliza como ejemplo en sus
publicaciones relacionadas a la Web Semntica una ontologa de vinos (wine.owl). Adems
de las ontologas en el rea de la medicina, mencionadas anteriormente en la seccin 2.4,
95
Por ejemplo if Adan isnt known to have a brother, then assert he is brotherless
96
En OWL los individuos son supuestos ser iguales salvo que explcitamente sea establecido lo contrario.
62
75.00 Tesis
existen ontologas disponibles en el sitio Semantic Web97, en el sitio del laboratorio LSDIS
del Departamento de Computacin de la Universidad de Georgia98, en DAML99, en el sitio
del proyecto Co-Ode del Departamento de Computacin de la Universidad de
Manchester100 y por medio del buscador semntico Swoogle101 (con 10.000 ontologas
disponibles), entre otras.
97
http://semanticweb.org/wiki/Ontology
98
http://lsdis.cs.uga.edu/projects/
99
http://www.daml.org/index.html
100
http://www.co-ode.org/
101
http://swoogle.umbc.edu/
63
75.00 Tesis
Todas las clases permiten describir las actividades ms comunes relacionadas a la bolsa de
trabajo de una facultad y proporcionan la informacin necesaria para el propsito de llevar a
cabo una composicin de servicios Web. Esta seccin se enfoca en la ontologa misma.
Se llaman clases primitivas aquellas que poseen un conjunto de condiciones necesarias, esto es,
si un individuo es definido del tipo de una clase primitiva, necesariamente debe cumplir con las
condiciones de la clase pero si un individuo, del que se desconoce su tipo, cumple con las
condiciones de la clase, su tipo permanece desconocido. Por otro lado, se llaman clases
definidas aquellas que poseen un conjunto de condiciones necesarias y suficientes. A diferencia
de las clases primitivas, las clases definidas permiten que cualquier individuo cuyo tipo sea
desconocido y que cumpla con las condiciones de la clase sea clasificado como miembro de la
clase (el tipo del individuo ya no es ms desconocido). Como se mencion secciones atrs, las
64
75.00 Tesis
clases definidas proporcionan informacin suficiente para que un razonador DL pueda realizar
clasificacin automtica.
En la ontologa bolsa de trabajo, las clases definidas incluyen la clase Student, la cual representa
al conjunto de individuos de tipo Estudiante; la clase Graduate, para el conjunto de individuos de
tipo Graduado; la clase UnderGraduate, para el conjunto de individuos de tipo No Graduados, la
clase JobOffer, para el conjunto de individuos de tipo Oferta de Trabajo y la clase PostulationJob
para el conjunto de individuos de tipo Postulacin de trabajo.
Los individuos fueron definidos en una ontologa aparte (como se explicar ms adelante en esta
seccin); salvo aquellos individuos que forman parte de las definiciones de las clases Graduate y
Undergraduate; a saber, los individuos notice_graduate y notice_undergraduate, pertenecientes a
la clase Notice.
TBox = {
Graduate hasNotice value notice_graduate
PostulationJob PostulationJobProfessionalJob
PostulationJobPassantJob
}
La definicin de la clase Graduate afirma que los individuos que tienen una nota de graduado
son graduados. La restriccin value empleada aqu equivale semnticamente a una restriccin
existencial ya que no reduce la propiedad hasNotice a un individuo especfico. Cualquier
individuo que posea la propiedad hasNotice y adems como valor de la misma al individuo
especfico notice_graduate automticamente ser clasificado como miembro de la clase
Graduate. Un individuo miembro de la clase Graduate puede poseer ms valores en su propiedad
hasNotice y seguir siendo miembro de la clase Graduate siempre que mantenga una relacin
hasNotice con un individuo notice_graduate. En general las restricciones value relacionan un
conjunto de individuos con una clase enumerada, la cual incluye al el individuo de la restriccin.
La definicin de la clase UnderGraduate afirma que los individuos con la propiedad hasNotice y
el valor notice_underGraduate son no graduados. La restriccin empleada aqu tambin es una
restriccin value, de manera que los individuos de esta clase pueden tener otros valores en su
propiedad hasNotice, es decir, estar relacionados con otros individuos mientras mantengan la
relacin hasNotice con el individuo especfico notice_undergraduate. La intencin de esta clase
es representar al conjunto de individuos no graduados.
La clase Student es definida por la unin de tres conjuntos de individuos, a saber los individuos
miembros de las clases Graduate, New_Student y UnderGraduate, respectivamente. Un
razonador DL, partiendo de esta definicin, detecta una relacin de subsuncin e inmediatamente
infiere a las clases Graduate, New_Student y UnderGraduate como subclases de la clase Student.
De esta manera, los individuos miembros de cualquiera de las tres clases son tambin
clasificados como miembros de la clase Student.
65
75.00 Tesis
La clase JobOffer es definida de manera similar a la clase Student. Comprende el conjunto de
individuos resultante de la unin de dos conjuntos de individuos, a saber los individuos
miembros de las clases JobOfferPassant y JobOfferProfessional, respectivamente. Un razonador
DL, siguiendo esta definicin, detecta una relacin de subsuncin e inmediatamente infiere que
las clases JobOfferPassant y JobOfferProfessional son subclases de la clase JobOffer. De esta
manera, los individuos miembros de cualquiera de las dos clases son tambin clasificados como
miembros de la clase JobOffer.
Como se mencion, las clases primitivas poseen un conjunto de condiciones necesarias y las
clase definidas un conjunto de condiciones necesarias y suficientes. Estas condiciones, tambin
llamadas condiciones de clase, constituyen una parte de los axiomas utilizados por la ontologa y
son las que posibilitan agregar ms informacin sobre la informacin.
En la ontologa bolsa de trabajo, las clases primitivas incluyen la clase Curriculum, la clase
JobOfferPassant, la clase JobOfferProfesional, la clase New_Student, la clase Record, la clase
JobPostulant, la clase Notice, la clase PostulationJob, la clase PostulationPassantJob y la clase
PostulationProfessionalJob. Un razonador no puede inferir que un individuo desconocido que
cumpla con las condiciones de alguna de estas clases primitivas sea miembro de algunas de ellas
debido a que las condiciones son condiciones necesarias pero no suficientes.
A continuacin, se muestra la jerarqua de clases inferidas utilizando Pellet 2.2.1 como razonador
DL.
66
75.00 Tesis
67
75.00 Tesis
Jerarqua de object-properties en
http://www.semanticweb.org/ontologies/2010/11/StudentsJobBag.owl.
68
75.00 Tesis
PostulationJobOf, infiere el mismo rango para estas ltimas.
Las propiedades hasNotice, hasJobPostulant, hasCurriculum, NoticeOf, JobPostulantOf y
CurriculumOf son definidas como propiedades funcionales. Esto significa que un individuo
inscripto en la bolsa de trabajo de una facultad tendr un registro llamado postulacin de trabajo
(JobPostulant) con sus datos. Este registro es nico para cada individuo. Si otro individuo tuviera
el mismo registro un razonador inferir que, por ser la propiedad hasJobPostulant funcional, se
trata del mismo individuo. Si ambos individuos fueran declarados como distintos
(DifferentIndividuals) esto provocara una inconsistencia con la ontologa. De esta manera se
establece que un individuo puede tener solamente un curriculum, puede registrarse una vez en la
bolsa de trabajo y puede tener solamente una nota (de graduado o no graduado para el escenario
planteado y descripto ms adelante).
Hasta aqu se ha utilizado una parte de las posibilidades expresivas que OWL brinda. La
documentacin OWL102 (W3C) es bastante completa al respecto y muchos de los trabajos
consultados por esta tesis han elegido a OWL como el lenguaje de ontologa Web para
comunicar sus servicios y respaldar sus investigaciones.
Jerarqua de data-properties en
http://www.semanticweb.org/ontologies/2010/11/StudentsJobBag.owl.
El rango de la propiedad contractType fue definido de tipo string, de manera que un individuo
podra tener como valor de la propiedad contractType el string relacin de dependencia.
El rango de las data-properties fue definido de tipo string, salvo para las data-properties year y
numberReg con rango de tipo int.
102
http://www.w3.org/TR/2009/REC-owl2-primer-20091027/
69
75.00 Tesis
OWL ofrece variedad de datatypes como float, long, date, decimal, base64binary, QName,
positiveinteger, XMLLiteral, ENTITY, NMToken, ID, IDREF, IDREFS, etc., pero para los fines
de este trabajo fue suficiente con los tipos mencionados.
El iri http://www.semanticweb.org/ontologies/2010/11/membersStudentsJobBag.owl es el
identificador en el contexto de la Web de la ontologa de individuos desarrollada y la misma se
encuentra almacenada en el archivo membersStudentsJobBag.owl. Anteponiendo el iri, se
obtiene el nombre completo de los individuos que componen la ontologa. . La ontologa ser
referenciada de aqu en adelante como individuos o miembros de la bolsa de trabajo
indistintamente.
Como se mencion anteriormente, los individuos fueron definidos en un archivo aparte. [Hebeler
et al.; 2009] sugieren que este tratamiento paralelo produce un razonamiento ms eficiente el
cual resulta ms apreciable en ontologas grandes. La ontologa de individuos se apoya en la
ontologa bolsa de trabajo para realizar la definicin de los individuos. A continuacin, se
muestra la ontologa de miembros de la bolsa de trabajo.
Individuos en
http://www.semanticweb.org/ontologies/2010/11/membersStudentsJobBag.owl
Los individuos son mostrados a partir de su tipo definido. As, el individuo c fue definido de
tipo Curriculum, el individuo jp de tipo JobPostulant, el individuo nt de tipo New_Student, el
individuo n de tipo Notice, el individuo ppas de tipo PostulationPassantJob y el individuo
70
75.00 Tesis
pprof de tipo PostulationProfessionalJob. Para definir el individuo gd se utiliz la asercin
hasNotice notice_graduate, que afirma que el individuo gd tiene una nota de graduado. Su
tipo permanece desconocido. De la misma manera, el individuo ug fue definido utilizando la
asercin hasNotice notice_undergraduate, que afirma que el individuo ug tiene una nota de
no graduado. Su tipo tambin permanece desconocido. Con estas definiciones y las
presentadas para Graduate y UnderGraduate, un razonador DL puede inferir los tipos para
gd y ug, respectivamente.
Es oportuno aclarar que los individuos de una clase tambin son llamados instancias de la
clase. De aqu en ms se emplear el trmino instancia o individuo indistintamente.
ABox = {
c (Curriculum)
gd (hasNotice notice_graduate)
jp (JobPostulant )
nt (New_Student)
n (Notice)
ppas (PostulationPassantJob)
pprof (PostulantProfessionalJob)
r (Record)
ug (hasNotice notice_undergraduate)
71
75.00 Tesis
Por ltimo se presentan las mtricas de la ontologa recogidas por Protg.
Se puede observar que las mtricas contabilizan los axiomas de las ontologas importadas (la
ontologa bolsa de trabajo). Los indicadores reflejan los siguientes valores: 14 clases, 10
object-properties, 14 data properties, y 10 individuos. Para las clases tenemos 5 axiomas de
subclase, 5 axiomas de clases equivalentes, 5 axiomas de clases disjuntas. Para las object-
properties, 6 axiomas de subproperties, 4 axiomas de propiedades inversas, 7 axiomas de
propiedades funcionales, 1 axioma de dominio. Para las data-properties, 1 axioma de dominio
y 14 axiomas de rango. Y para los individuos, 8 axiomas de asercin de clase y 2 axiomas de
asercin de propiedad.
Las clases equivalentes mencionadas en las mtricas corresponden a las clases definidas
Student, JobOffer, Graduate, UnderGraduate y PostulationJob, descriptas anteriormente. Los
axiomas utilizados en la definicin de cada clase son considerados como una clase annima y
por lo tanto, la mtrica de clases equivalentes corresponde a la equivalencia entre las clases
definidas y las clases annimas utilizadas en sus definiciones.
72
75.00 Tesis
Por ltimo, se mostrarn las reglas DL-Safe Rules las cuales fueron definidas empleando
ontologas separadas.
El iri http://www.semanticweb.org/ontologies/2010/11/rulesMatriculate.owl es el
identificador, en el contexto de la Web, de la ontologa reglas de matriculacin (almacenada en el
archivo rulesMatriculate.owl), desarrollada para describir las operaciones del servicio Web
Matriculate (o tambin llamado wsMatriculate). La ontologa de reglas se apoyo en las
ontologas anteriores, bolsa de trabajo y miembros de la bolsa de trabajo para la elaboracin de la
misma.
73
75.00 Tesis
74
75.00 Tesis
El iri http://www.semanticweb.org/ontologies/2010/11/rulesInscribeJobBag.owl es el
identificador, en el contexto de la Web, de la ontologa reglas de inscripcin de la bolsa de
trabajo (almacenada en el archivo rulesInscribeJobBag.owl), desarrollada para describir las
operaciones del servicio Web InscribeJobBag (o tambin llamado wsInscribeJobBag). La
ontologa de reglas se apoyo en las ontologas anteriores, bolsa de trabajo y miembros de la bolsa
de trabajo para la elaboracin de la misma
75
75.00 Tesis
Las relaciones inferidas para el individuo nt, hasRecord y hasNotice con el individuo n de la
clase Notice son debidas al antecedente de la regla InscribeJobBag.
Las relaciones inferidas para el individuo nt, hasRecord y hasJobPostulant con el individuo jp
son debidas al consecuente de la regla InscribeJobBag.
Las relaciones inferidas mostradas son slo algunas. El razonador tambin infiere otras
relaciones para los individuos jp y n.
76
75.00 Tesis
El iri http://www.semanticweb.org/ontologies/2010/11/rulesPostulateJobG.owl es el
identificador, en el contexto de la Web, de la ontologa reglas para las postulaciones a trabajos
profesionales en la bolsa de trabajo (almacenada en el archivo rulesPostulateJobG.owl),
desarrollada para describir las operaciones del servicio Web PostulateJobG (o tambin llamado
wsPostulateJobG). La ontologa de reglas se apoyo en las ontologas anteriores, bolsa de trabajo
y miembros de la bolsa de trabajo para la elaboracin de la misma
77
75.00 Tesis
Las relaciones inferidas para el individuo nt, hasJobPostulant y hasRecord con el individuo jp
son debidas al antecedente de la regla rulesPostulateJobG.
Las relaciones inferidas mostradas son slo algunas. El razonador tambin infiere relaciones
para el individuo jp y gd. Para el caso de pprof, como RecordOf es propiedad inversa de
hasRecord, el razonador infiere que el individuo pprof tiene una relacin RecordOf con nt.
78
75.00 Tesis
El iri http://www.semanticweb.org/ontologies/2010/11/rulesPostulateJobU.owl es el
identificador, en el contexto de la Web, de la ontologa reglas para las postulaciones a trabajos
profesionales de la bolsa de trabajo (almacenada en el archivo rulesPostulateJobG.owl),
desarrollada para describir las operaciones del servicio Web PostulateJobG (o tambin llamado
wsPostulateJobG). La ontologa de reglas se apoyo en las ontologas anteriores, bolsa de trabajo
y miembros de la bolsa de trabajo para la elaboracin de la misma
79
75.00 Tesis
Las relaciones inferidas para el individuo nt, hasJobPostulant y hasRecord con el individuo jp
son debidas al antecedente de la regla rulesPostulateJobU.
Las relaciones inferidas mostradas son slo algunas. El razonador tambin infiere relaciones
para el individuo jp y ug. Para el caso de ppas, como RecordOf es propiedad inversa de
hasRecord, el razonador infiere que el individuo ppas tiene una relacin RecordOf con nt.
80
75.00 Tesis
Captulo III
Agentes
3.1 Generalidades
Autonomous Agents
Segn [Mancilla Espinosa; 2008], un agente es aquello que percibe su ambiente mediante
sensores y responde o acta en l mediante efectores. Un tipo de agente particular son los
agentes de software, un programa de computacin que se ejecuta en un ambiente y realiza
acciones dentro de ste para alcanzar las metas para las cuales fue diseado y sus
percepciones y acciones estn dadas por instrucciones de programas en algn lenguaje en
particular.
81
75.00 Tesis
Una nocin dbil consiste en definir un agente como una entidad capaz de intercambiar
mensajes utilizando un lenguaje de comunicacin de agentes. Esta definicin es la ms
utilizada dentro de la ingeniera de software con el fin de conseguir la interoperabilidad entre
aplicaciones a nivel semntico utilizando la tecnologa emergente de agentes.
Una nocin ms fuerte surge de una propuesta de programacin orientada a agentes (AOP).
Un agente es visto como una entidad dotada de componentes mentales como creencias,
capacidades, elecciones y acuerdos.
Los agentes inteligentes son considerados una pieza de software que ejecuta una tarea
determinada, utilizando informacin recolectada del ambiente, para actuar de manera
apropiada y completar la tarea de manera exitosa. El software debe ser capaz de auto
ajustarse basndose en los cambios que ocurren en su ambiente, de forma tal, que un cambio
en las circunstancias produzca el resultado esperado.
Desde el punto de vista del agente, significa que la misma accin ejecutada dos veces bajo las
mismas circunstancias podra tener efectos diferentes y, en particular, podra fallar en
conseguir el efecto deseado. Los agentes deben estar preparados para la posibilidad de fallas.
Esta situacin es formalmente resumida diciendo que los entornos son no deterministas.
Normalmente, el agente tendr un repertorio de acciones y efectos asociados que
representarn la capacidad del agente para modificar su entorno. Un conjunto de
precondiciones asociadas a las acciones definen situaciones posibles de aplicacin. El
problema clave que deben enfrentar los agentes es decidir cul de esas acciones ejecutar para
satisfacer, de la mejor manera posible, sus objetivos. La toma de decisiones es un proceso
complejo afectado por propiedades del entorno: accesible o inaccesible, determinista o no
determinista, episdico o no episdico, esttico o dinmico, discreto o continuo.
Los daemons (como los procesos background en UNIX) son otro ejemplo de agentes, ellos
monitorean un entorno de software y ejecutan acciones para modificarlo. Mientras el agente
termostato estaba en un entorno fsico, los daemons estn en un entorno de software. Ellos
obtienen informacin del entorno por ejecutar funciones y acciones de software. El
componente de toma de decisiones es simple como el del termostato. Por lo tanto, los agentes
son simples sistemas de computadora capaces de acciones autnomas de manera de
encontrar sus objetivos de diseo. Un agente tpicamente sensar su entorno (por sensores
fsicos en el caso de agentes ubicados en el mundo fsico o por sensores de software en el
caso de agentes de software) y tendr disponible un repertorio de acciones para modificar su
entorno, las cuales pueden responder en forma no determinista.
Los agentes exhiben proactividad cuando la decisin de tomar la iniciativa contribuya a lograr
sus objetivos. En entornos que cambian y en particular cuando las condiciones de un
procedimiento cambian mientras se est ejecutando, su comportamiento podra quedar
indefinido (con frecuencia se romper). En entornos dinmicos, ejecutar un procedimiento
sin considerar que las condiciones que lo sustentan sean vlidas es una estrategia pobre. En
tales entornos el agente debe ser reactivo. Es decir, debe ser sensible a 1) los eventos que
ocurran en su entorno y que afecten sus objetivos o, 2) a las condiciones que sustentan sus
procedimientos en ejecucin, a fin de alcanzar sus objetivos. La habilidad social permite a los
agentes interactuar con otros agentes como un medio ms hacia la concrecin de sus
objetivos.
En otros casos, un sistema multi-agente (MAS) presenta ventajas sobre agentes individuales
como fiabilidad, robustez, modularidad, escalabilidad, adaptabilidad, concurrencia,
paralelismo y dinamismo. Aparece entonces la necesidad de lenguajes de comunicacin y de
mecanismos que permitan coordinar a un grupo de agentes. En particular, los agentes
pueden cooperar (si tienen los mismos objetivos) o competir (si existe conflicto de
objetivos) distinguiendo de esa manera sistemas que resuelven problemas distribuidos (por
cooperacin entre agentes) de sistemas abiertos (agentes con diferentes objetivos). Los
mecanismos ms habituales en agentes cooperativos son las estructuras organizacionales
(centralizadas y distribuidas), la planificacin multi-agente, contratos y cooperacin de
83
75.00 Tesis
funcionalidad mientras que en agentes competitivos lo habitual son mecanismos de
negociacin (formacin de coaliciones, mecanismos de mercado, teora de negociacin, voto,
subastas, asignacin de tareas, etc.). Lenguajes de comunicacin de agentes son el
Knowledge Query and Manipulation Language103 (KQML) y Foundations for Intelligent
Physical Agents-Agents Communication Language104 (FIPA-ACL).
103
Lenguaje de Consulta y Manipulacin del Conocimiento.
104
Fundamentos para Agentes Fsicos Inteligentes - Lenguaje de Comunicacin de Agentes.
105
Para el anlisis y desarrollo de sistemas intensivos de conocimiento, proporciona herramientas para la
administracin de conocimiento corporativo, el desarrollo de sistemas de conocimiento para los procesos de
negocios seleccionados, entre otras. http://www.commonkads.uva.nl/
106
Herramienta para construir sistemas multi-agentes colaborativos. Define un enfoque de diseo y soporta un
entorno visual para capturar las especificaciones de agentes que son utilizadas para generar el cdigo Java de los
agentes. http://sourceforge.net/projects/zeusagent/
107
Metodologa para anlisis y diseo de agentes. Aplicable a un amplio rango de sistemas multi-agentes, trata los
aspectos a nivel macro (social) y micro (agente) de los sistemas. Se basa en la visin de un sistema multi-agente
como una organizacin computacional, consistente de varios roles interactuando.
108
Metodologa de propsito general para el desarrollo de sistemas multi-agentes que se basa en principios de la
ingeniera de software. Divide el proceso de desarrollo en dos fases: anlisis y diseo. Para cada fase provee el
conjunto de etapas necesarias: objetivos, casos de uso y roles para el anlisis y creacin de clases, interaccin,
despliegue de clases y diseo del sistema, para el diseo.
109
Metodologa para el desarrollo de sistemas multi-agentes que integra resultados del rea de la tecnologa de
agentes con procesos de desarrollo de software como RUP (Rational Unified Process). La metodologa se basa sobre
la definicin de un conjunto de metamodelos que describen los elementos que forman un MAS y permite definir un
lenguaje de especificacin para MAS. http://grasia.fdi.ucm.es/main/node/220
110
Desarrollado en la seccin 1.4.2, Directorio de Servicios.
84
75.00 Tesis
mediano plazo como hoy son los servicios Web, grid computing, etc.
Los programadores acostumbrados a trabajar con objetos, no suelen ver cul es la idea con
agentes. Se hace necesario recordar a los objetos definidos como entidades computacionales
que encapsulan algn estado, que pueden ejecutar acciones o mtodos sobre ese estado y
comunicarse entre ellos mediante el paso de mensajes.
Similitudes y diferencias existen entre objetos y agentes. La primera diferencia trata con el
nivel de autonoma que cada uno posee. Desde que una variable de instancia (o mtodos)
puede ser declarada privada para ser accesible slo desde dentro del objeto, un objeto puede
ser pensado como exhibiendo autonoma (control) sobre su estado pero no sobre su
comportamiento. Si un mtodo m es declarado pblico, el objeto no puede controlar ejecutar
el mtodo o no. Los agentes no son pensados como invocando mtodos sino como solicitando
ejecutar acciones. El foco de control con respecto a la decisin de ejecutar una accin, en el
caso orientado a objetos, se encuentra en el objeto que invoca el mtodo y en el caso de
agentes, en el agente que recibe el pedido. El siguiente slogan, en ingls, destaca esta
diferencia entre objetos y agentes: Objects do it for free; agents do it for money.
Otra diferencia importante tiene que ver con la nocin de comportamiento autnomo y
flexible (reactivo, proactivo, social) de un sistema de agentes. El modelo estndar de objetos
nada menciona acerca de construir sistemas que integren este comportamiento. Se podra
objetar que es posible construir programas orientados a objetos que integren el
comportamiento pero slo se perdera el punto, que es que tal comportamiento no hace a la
programacin orientada a objetos.
La siguiente diferencia es que cada agente tiene su propio hilo de control (en el modelo de
objetos estndar hay un simple hilo de control en el sistema). A pesar de que existen varios
lenguajes que permiten concurrencia en programacin orientada a objetos, no capturan la
idea de agentes como entidades autnomas (con reactividad, proactividad y habilidad social).
Tal vez, lo ms cercano en la comunidad orientada a objetos se encuentre en la idea de
objetos activos. Un objeto activo es el que abarca su propio hilo de control. Los objetos
activos son generalmente autnomos lo que aqu significa que pueden exhibir algn
comportamiento sin que exista otro objeto que los opere por encima. Los objetos pasivos, en
cambio, slo pueden someterse a un cambio de estado cuando explcitamente son operados
por encima. Por lo tanto, los objetos activos son esencialmente agentes los cuales no
necesariamente tienen la habilidad para exhibir comportamiento flexible autnomo.
85
75.00 Tesis
Los agentes encarnan una nocin ms fuerte de autonoma que los objetos y en particular
deciden si ejecutar una accin a partir del pedido de otro agente o no.
Los agentes son capaces de comportamiento flexible (reactivo, proactivo, social) y el
modelo estndar de objetos no dice nada al respecto.
Un sistema multi-agente es inherentemente multi-hilo donde cada agente posee al menos
un hilo de control.
Los sistemas expertos constituyen una etapa de la Inteligencia Artificial. Un sistema experto
es capaz de resolver problemas o dar consejos en algn dominio de conocimiento. Un
ejemplo de un sistema experto es MYCIN, el cual asiste a los mdicos en el tratamiento de
infecciones de la sangre en personas. Un usuario presenta al sistema un nmero de casos, los
cuales el sistema emplea a fin de derivar alguna conclusin. MYCIN acta como consultor: no
opera directamente sobre humanos o sobre algn entorno. Entonces, la diferencia ms
importante entre agentes y sistemas expertos es que los sistemas expertos son
inherentemente incorpreos [Wooldridge, 1998]. Esto significa que los mismos no
interactan directamente con el entorno, ellos no consiguen su informacin va sensores
sino a travs de un usuario actuando como intermediario. De la misma manera, ellos no
actan sobre algn entorno sino ms bien entregan una respuesta o aconsejan a terceros.
Adems, a los sistemas expertos no se les requiere el ser capaces de cooperar con otros
sistemas expertos. A pesar de estas diferencias, algunos sistemas expertos (particularmente
los que ejecutan control de tareas en tiempo real) logran un gran parecido con agentes.
86
75.00 Tesis
Los servicios, en cambio, son procesos transitorios y stateless111, que existen slo durante la
ejecucin del servicio. Son instanciados para ejecutar una tarea especfica siendo posible la
provisin de servicios escalables y concurrentes. A diferencia de la tecnologa de agentes, la
investigacin de servicios se enfoc en la comunidad de usuarios, resultando en una
tecnologa bottom-up pragmtica que permita la construccin de sistemas orientados a
servicios. Los puntos principales fueron el desarrollo de estndares para lograr interfaces
bien definidas y declarativas, workflows y protocolos y no en mecanismos que ayudan al
servicio a ejecutar la tarea. Se desarrollaron herramientas para construir y desarrollar
software distribuido a gran escala. El desarrollo de servicios Grid112 se debi al desarrollo
pragmtico de tecnologas, estndares, polticas, ontologas compartidas y plataformas que
permiten la realizacin de entornos distribuidos.
Servicio
PUBLISH FIND
WSDL ACL UDDI ACL
Proveedor de servicio
Sistema multi-agente
Usuario de servicio
(servicio distribuido
BIND Agente de usuario
cooperativo)
SOAP ACL
[Huhns; 2002] Los servicios Web utilizan tres protocolos diferentes a fin de publicar, buscar
y conectarse. Los agentes, en cambio, utilizan un protocolo para todas sus interacciones, el
Agent-Communication Language (ACL)
Los servicios Web se basan en una trada de funcionalidades, a saber, SOAP provee los
protocolos necesarios para la comunicacin entre sistemas, WSDL describe los servicios en
una forma legible por computadora, especificando nombres de funciones, parmetros
requeridos y resultados, UDDI permite a los clientes (usuarios y negocios) una manera para
encontrar servicios por especificar un registro o un yellow-pages de servicios.
Sin embargo, diferenciar agentes y servicios es problemtico porque alguien podra
argumentar que un agente puede ser implementado empleando tecnologa de servicios Web o
que se puede incorporar mecanismos adaptativos e inteligentes en el diseo de servicios
111
Desarrollado en la seccin 1.1.3 Caractersticas Secundarias.
112
Combinacin de recursos computacionales desde mltiples dominios administrativos a fin de lograr un objetivo
comn. Se distingue de sistemas de procesamiento convencionales y alto rendimiento por ser ofrecer mayor
desacoplamiento, heterogeneidad y dispersin geogrfica. Son construidos con la ayuda de middlewares.
87
75.00 Tesis
Web. Los investigadores han propuesto muchas definiciones para agentes, no obstante,
siempre aparece un ejemplo que a pesar de satisfacer estrictamente la definicin en espritu,
no es un agente.
[Payne; 2008] distingue agentes y servicios Web al discutir las cinco caractersticas de
agentes propuestas por Jennings.
La primera caracterstica es que los agentes son entidades que resuelven problemas con
interfaces y lmites bien definidos. Los servicios Web existen como workflows claramente
articulados y con protocolos formalmente validados. Los tipos y estructuras de datos definidos
crean los mecanismos para dirigir mensajes y desarrollar herramientas a fin de utilizar
servicios Web. En la visin de agentes, una variedad de mtodos de interaccin pueden ser
utilizados. Esas interacciones ocurren a nivel conocimiento de mensajes en lenguajes
declarativos como KQML o FIPA. Existe nfasis en razonar los mensajes recibidos, obtener
conocimiento del entorno y de las motivaciones y capacidades de sus pares para determinar
dinmicamente como resolver un problema durante una ejecucin. Un agente puede
descomponer un problema en partes y elegir delegar tareas o coordinar con otros agentes
como resolver el problema. Esta descomposicin al no ser prescripta sino realizada
dinmicamente permite una mejor adaptacin a entornos y contextos cambiantes.
La segunda caracterstica es que los agentes son capaces de exhibir una comportamiento
flexible para la resolucin de problemas a fin de cumplir sus objetivos de diseo (reactivo y
proactivo). Los agentes son inherentemente comunicativos y socialmente conscientes. Ellos
responden a cambios en su entorno y a mensajes de pares como resultado de tareas internas
planificadas. Estos disparadores pueden motivar la intencin de lograr algn objetivo,
resultando en comportamiento proactivo cuando es necesario. Los servicios Web, en cambio,
son procesos transitorios cuya instanciacin y existencia es disparada por un Web Server
que recibe un mensaje. Una ventaja de esta instanciacin (factory-based113) por cada
invocacin de servicio recibida es que los proveedores pueden ofrecer servicios
concurrentes en respuesta a pedidos simultneos.
Aunque un servicio Web puede iniciar comunicacin con otro servicio Web cuando ejecuta
su tarea, es todava reactivo porque an forma parte de las acciones preescritas que se
disparan luego del mensaje instanciador original. Aunque se construya un servicio para que
sea proactivo, esto al final introducira nociones de agentes en el diseo de servicios Web.
La tercera caracterstica es que los agentes son diseados para cumplir roles especficos, con
objetivos particulares. Un servicio Web existe para ejecutar una tarea, como sera ofrecer
una funcionalidad e-business. Compaas como eBay y Amazon.com ofrecen acceso a sus
tecnologas por servicios Web, ya sea para facilitar el comercio con terceros o para ofrecer
acceso a sus recursos. El comportamiento de agente es motivado por nociones ms
abstractas, mentales como knowledge, intention, belief y obligation. Tpicamente un agente
es diseado para maximizar alguna utilidad a travs de comportamiento racional. Cuando se
ejecuta una tarea, un agente puede intentar determinar la utilidad ganada en ejecutar su
113
Patrn de diseo creacional en la que una clase implementa mtodos para crear instancias de objetos (las
instancias pueden ser de la misma clase o de otras). Esta clase tiene entre sus responsabilidades la creacin de
instancias de objetos pero puede tener tambin otras responsabilidades adicionales.
88
75.00 Tesis
accin sobre la base de una posible recompensa o ventaja percibida (considerando los costos
incurridos). Si un agente no percibe ventaja alguna, podra decidir no ejecutar la tarea,
mientras que, un servicio Web recibiendo el mismo pedido ejecutar la tarea.
La cuarta caracterstica es que los agentes son ubicados en un entorno particular, el cual
observan y sobre el cual tienen control parcial; ellos reciben entradas relacionadas con el
estado de su entorno por medio de sensores y actan sobre l por medio de sus efectores.
Esta caracterstica es atribuida a agentes de hardware pero igualmente aplica a agentes de
software. Sin embargo, los sensores pueden proveer slo conocimiento parcial de su
entorno. Adems en entornos dinmicos con numerosos agentes, el conocimiento puede ser
pasado. Como los agentes tienen control parcial sobre su entorno necesitan evaluar su
contexto. Esto, con frecuencia, necesita de la colaboracin entre pares para lograr los
cambios deseados ms all de su esfera de influencia. Los agentes que son conscientes de su
entorno tambin tienen conocimiento de nuevos agentes, los cuales podran utilizar para
resolver problemas futuros. Sin embargo la habilidad para observar e interrogar pares puede
producir un modelo de entorno ms sofisticado, el cual pone en duda si a los agentes puede
ser confiada lograr una tarea o gozar de reputacin para engaar o incumplir contratos. Los
servicios son igualmente limitados con respecto al alcance de observar hechos y las acciones
que pueden ejecutar para manipular y afectar su entorno. Sin embargo porque los servicios
Web son tpicamente reactivos, el conocimiento que ellos procesan es slo el que el
desarrollador consider necesario cuando los dise. Esto elimina la posibilidad de
aprovechar conocimiento oportunista.
La quinta caracterstica es que los agentes son autnomos, ellos controlan su estado interno y
su comportamiento. Autonoma es una caracterstica esencial de los agentes. Los agentes
son conscientes de s mismos. Por adquirir y retener conocimiento en el tiempo, ellos
pueden aprender estrategias alternativas y soluciones a problemas para producir soluciones
ms optimas. Un agente puede evolucionar en sus comportamientos sin direccin del
usuario o su propietario. Los servicios Web raramente son autnomos, salvo que la nocin
de autonoma sea incluida en el diseo del servicio, lo cual involucrara construir servicios
stateful114 y persistentes. Ya algunos investigadores han empezado a explorar esas nociones
de autonoma y comportamiento autnomo para servicios Web, pero hasta ahora se han
utilizado nociones de agentes para lograr tal autonoma.
Agregar persistencia, autonoma e identidad a los servicios Web debilitara la distincin entre
agentes y servicios.
114
Desarrollado en la seccin 1.1.3 Caractersticas secundarias
89
75.00 Tesis
servicios heterogneos e interoperando a travs de gateways y procesos de traslacin.
El Agents and Web Services Interoperability Working Group116 (AWSI WG) trabaja en la idea
de construir un middleware117 para manejar las principales diferencias entre tecnologa de
agentes y servicios Web, a saber, utilizacin de protocolos de comunicacin (ACL vs. SOAP),
lenguajes de descripcin de servicios (DF-AgentDescription vs. WSDL) y mecanismos de
integracin de servicios (DF vs. UDDI). Si bien esto facilita la integracin, sin cambiar las
especificaciones e implementaciones existentes de ambas tecnologas, hace que los servicios
Web y agentes permanezcan al mismo nivel de abstraccin, Como afirman [Snchez-Garca
et al.; 2009], la funcionalidad provista por agentes y servicios Web es complementaria. La
idea original de las tecnologas de agentes es actuar como entidades autnomas que
incorporan capacidades inteligentes y cognitivas, lo que les permite mostrar un
comportamiento proactivo orientado a objetivos y establecer procesos de interaccin,
cooperativos o competitivos, con otros agentes a fin de conseguir sus objetivos. Por otro lado,
los servicios Web involucran una evolucin en cmputo distribuido y su propsito es
proveer funcionalidad accesible a todo el mundo. Estas diferencias conceptuales entre
tecnologa de agentes y SWS llevan a la necesidad de tener ambas tecnologas trabajando en
entornos integrados y apreciar las ventajas de su combinacin en el desarrollo de sistemas
complejos.
3.2 Clasificacin
115.Patrones creacionales como el Factory method, Abstract factory, Builder, entre otros.
116
Grupo de Trabajo para la Interoperabilidad de Servicios Web y Agentes.
117
Desarrollado en la seccin 1.3.1 Modelo orientado a mensajes MOM
90
75.00 Tesis
Autonoma: un agente opera sin intervencin directa humana, adems tiene control
sobre sus acciones y su estado interno.
Habilidad social: capacidad para interactuar con otros agentes inteligentes o el
usuario.
Reactividad: perciben el entorno y responden en un tiempo razonable a los cambios
que ocurren en l.
Proactividad: los agentes pueden reaccionar por iniciativa propia sin necesidad de
que el usuario tenga que activarlo.
Orientacin hacia el objeto final: divide una tarea compleja en varias actividades ms
pequeas a fin de lograr la meta compleja asociada.
Racionalidad: el agente siempre acta para lograr sus metas y nunca de forma de
evitar la consecucin de las mismas.
Adaptabilidad: el agente debe ser capaz de ajustarse a los hbitos, formas de trabajo y
necesidades del usuario.
Colaboracin: el agente debe ser capaz de determinar informacin importante ya que
el usuario puede proporcionar informacin ambigua.
Un agente racional ideal tiene un elemento al que hay que prestarle atencin y es la Parte de
Conocimiento Integrado. Si las acciones que emprende el agente se basan exclusivamente
en un conocimiento integrado, haciendo caso omiso de sus percepciones, se dice que el
agente es autnomo. El autntico agente inteligente autnomo debe ser capaz de funcionar
satisfactoriamente en una amplia gama de ambientes, considerando que se le da tiempo
suficiente para adaptarse.
Agent
Tipology
Una vez que se han revisado las caractersticas de los agentes, es posible encontrar una
91
75.00 Tesis
tipologa; sin embargo, una reclasificacin ha sido propuesta por [Mansilla Espinosa; 2008]
Agentes de reflejo simple: actan encontrando una regla cuya condicin coincida con
la situacin actual (definida por la percepcin) y efectuando la accin que corresponda
a tal regla.
Agentes bien informados de todo lo que pasa: actualizan constantemente la
informacin que les permite discernir entre estados del mundo y su evolucin,
adems de necesitar conocer como las acciones del propio agente estarn afectando al
mundo, as se mantiene informado acerca de esas partes no visibles de l.
Agentes basados en metas: deben ser flexibles con respecto a dirigirse a diferentes
destinos, ya que al marcar un nuevo destino, se crea en el agente una nueva conducta.
Agentes basados en utilidad: la utilidad es una funcin que correlaciona un estado y
un nmero real mediante el cual se caracteriza el correspondiente grado de
satisfaccin.
Agentes deliberantes o proactivos: son agentes que poseen mucho conocimiento del
entorno en el que se encuentran y son capaces de crear nuevos planes y adelantarse a
lo que va a ocurrir en su entorno. En esta clasificacin se encuentra el modelo BDI118
118
Se trata de un modelo de agentes. Beliefs representa el estado del mundo (computacionalmente puede ser el valor
de una variable o una base de datos relacional), Desires (objetivos) es otro componente esencial del estado del
mundo, representa el estado final deseado (computacionalmente puede ser el valor de una variable o una estructura
de registro), Intentions representan los planes o procedimientos (computacionalmente a un conjunto de hilos
ejecutndose en un proceso a fin de lograr sus objetivos (desires). Beliefs, Desires, Intentions son los componentes
bsicos de un sistema de agentes diseado para un mundo dinmico. Los agentes de un sistema que siga el modelo
92
75.00 Tesis
(Beliefs, Desires, Intentions) y BVG119 (Beliefs, Values, Goals).
Agentes reactivos: son sistemas estmulo-respuesta que actan a partir de la
observacin directa y continua del entorno. Se adaptan perfectamente a los entornos
dinmicos ya que no tienen que actualizar ninguna representacin interna del
entorno como los agentes BDI.
Agentes estacionarios: son un tipo de agente que no posee la capacidad de
desplazarse y salir del entorno.
Agentes mviles: son agentes que tienen la capacidad de desplazarse a travs de una
red; de esta forma cambian el entorno en el que se ejecutan. Esto reduce el consumo
de recursos en la mquina en la que se encontraba inicialmente el agente.
Para que un agente proveedor pueda prestar sus capacidades a otros (servicio de bsqueda,
comercio electrnico) debe primero registrarse con el matchmaker. Para eso, publica sus
capacidades enviando un mensaje en el que describe el tipo de servicio que ofrece. Otro
agente enva al matchmaker un pedido solicitando informacin y servicios.
Un matchmaker devuelve una lista de servicios y a continuacin deja que interacten los
agentes usuario y proveedor. En cambio, un broker interviene de principio a fin en esa
interaccin. Un agente matchmaker reduce cuellos de botella a expensas de producir un
mayor nmero de interacciones entre agentes. Por el contrario, un agente broker reduce el
nmero de interacciones a expensas de producir un cuello de botella entre agentes.
BDI deben tener objetivos explcitos (desires) para alcanzar o manejar eventos, un conjunto de planes (intentions)
para describir como lograr esos objetivos y un conjunto de datos (beliefs) que describan el estado del mundo.
119
Se trata de un modelo de agentes basado en creencias, valores y objetivos (belief, values y goals). En este modelo
los Values (valores) son utilizados como mecanismos de decisin por el agente, los cuales no son rgidos y pueden
cambiar durante la interaccin. Las Beliefs (creencias) representan lo que el agente cree saber, los Goals (objetivos)
lo que el agente quiere y los Values (valores) sus preferencias.
120 Agente intermediario que se ocupa de encontrar el proveedor apropiado.
93
75.00 Tesis
3.4 Informacin semntica que registran
Una forma de lograr una comprensin compartida entre agentes sera intercambiar las
ontologas necesarias para una comunicacin y utilizar nuevas capacidades de
razonamiento. De esta manera se lograra una flexibilidad superior a la provista por
estandarizacin. [Berners-Lee et al.; 2001]
Los agentes muestran un comportamiento dual: por un lado son programas dirigidos por
objetivos que, de manera autnoma y proactiva, resuelven problemas de usuario y por otro,
poseen una dimensin social cuando interactan como parte de un sistema multi-agente.
Las ontologas proporcionan el framework conceptual que les permite construir esos
modelos: ellas describen el tipo de entidades que pueden encontrar, sus propiedades y que
relaciones existen entre ellas.
En su dimensin social, los agentes en un MAS, interactan unos con otros, pueden competir
por recursos o colaborar hacia la consecucin de objetivos. Mientras algunas interacciones
son accidentales (un agente esperando para acceder a un recurso que otro agente mantiene
ocupado), la herramienta principal que tienen para interactuar es la comunicacin.
Mediante ella pueden intercambiar informacin y pedidos de servicio. Cuando se combina
comunicacin con un problema a resolver, la solucin involucra otros agentes. Las ontologas
prestan la representacin bsica que permite a los agentes razonar acerca de sus
interacciones y comunicarse y trabajar por compartir ese conocimiento.
El propsito de las ontologas privadas es dar al agente un contexto del problema a resolver.
Con frecuencia, resulta difcil distinguir entre ontologas como conceptualizacin del dominio
del agente y ontologas como representacin del conocimiento requerido por su proceso de
resolucin de problemas.
Por otro lado, el propsito de las ontologas pblicas es soportar interaccin de agentes,
especialmente comunicacin e intercambio de informacin. Las ontologas pblicas prestan
una descripcin de un dominio MAS, compartido por todos los agentes, y un vocabulario
compartido, de manera que los agentes pueden comprender el contenido de los mensajes que
94
75.00 Tesis
intercambian. Las ontologas pblicas deben respetar la heterogeneidad de agentes en un
MAS y, por lo tanto, ser independientes del proceso de resolucin de problemas de cada
agente.
Una parte crucial del dominio de un agente es el MAS al cual pertenece. Otros agentes en el
MAS afectan lo que el agente hace y cmo lo hace. Consecuentemente, las ontologas deben
soportar descripcin de agentes en trminos de capacidades, informacin bsica de contacto,
protocolo de interaccin, confiabilidad, reputacin, seguridad, entre otras. La dimensin
social de un MAS emerge de la necesidad de los agentes de una infraestructura y de servicios
(como registros de ubicacin y protocolos estndares) para interactuar. Por lo tanto, las
ontologas deben, tambin, soportar descripcin de una infraestructura MAS, tipo de registros
empleados, tipo de protocolos, entre otros.
Dado que los agentes inteligentes han sido desarrollados sobre diferentes mecanismos de
resolucin de problemas provistos por la AI121, encontrar un denominador comn entre
ontologas privadas es, virtualmente, imposible.
As, las normas, en este caso sociales, suministran una fuente de ontologas para la
especificacin del comportamiento social en una comunidad de agentes. Sin embargo, a
pesar de su importancia, an no se ha desarrollado una representacin ontolgica para estas
normas.
Otras fuentes de ontologa son la representacin de leyes en razonamiento legal. Las tareas
principales en una ontologa de este tipo son la recuperacin de informacin mediante
indizacin de leyes y verificacin de regulaciones. Una ontologa legal provee una nocin
diferente de norma, bsicamente, la descripcin de una ley y los actos a los cuales esas leyes
aplican. Una segunda fuente de ontologa viene de la comunidad e-commerce y sus
necesidades para expresar conceptos como contratos que regulen transacciones electrnicas.
121
Artificial Intelligence
95
75.00 Tesis
El proceso de descubrimiento de agentes tiene cuatro caractersticas distintivas:
representacin del agente en el sistema,
proceso que identifica similitudes entre un pedido y una publicacin de agente (servicio
ofrecido) en el MAS,
componentes de infraestructura (como registros y protocolos) y,
resolucin de problemas.
Los agentes pueden estar representados con diferentes niveles de abstraccin. A nivel fsico,
son caracterizados por puertos y protocolos de red (de manera similar a la representacin
provista por las especificaciones WSDL y UDDI para servicios Web). A nivel abstracto, los
agentes interactan por medio de un lenguaje de comunicacin, empleando un conjunto de
ontologas para codificar e interpretar mensajes.
Desde otro punto de vista, los agentes son caracterizados por sus capacidades, sus protocolos
de interaccin, procedimientos de resolucin de problemas, la entidad legal responsable de su
correcto funcionamiento, entre otras. La representacin de las capacidades es crucial para
descubrimiento de agentes (inteligentes y autnomos). En algunos sistemas, los agentes son
conscientes de las necesidades del problema a resolver que emergen durante su
razonamiento pero no conocen otros agentes que puedan satisfacer sus necesidades. La
tarea de un agente es abstraer del problema especfico las capacidades que espera de un
proveedor.
Los esquemas de representacin explcita permiten, dadas las capacidades deseadas del
agente, localizacin simple. Pero requieren que las ontologas asignen un concepto a cada
tarea ejecutada por el agente. Dado que los agentes pueden ejecutar varias tareas, estas
ontologas pueden crecer, volvindose inmanejables, y no escalar al ingresar agentes con
96
75.00 Tesis
nuevas capacidades. Otro inconveniente de este tipo de esquema es que no representan que
informacin el agente proveedor y el agente solicitante necesitan para interactuar. Estas
ontologas son difciles de construir.
Los esquemas de representacin implcita requieren slo de conceptos que describan la tarea
procesada por el agente y que el agente solicitante provea informacin (en trminos de
entradas y salidas) para interactuar con un agente proveedor. No necesita una codificacin
explcita de tareas en la ontologa sino que proporcionan una expresin natural de tareas al
utilizar los dominios de las ontologas disponibles.
Las tecnologas de SWS dependen de entidades de software de nivel superior con capacidades
cognitivas que puedan acceder al contenido semntico de sus descripciones, que puedan
procesarlas y comprenderlas a fin de hacer un uso apropiado de las funcionalidades provistas.
El marco semntico el cual describe las capacidades de los servicios Web semnticos (OWL-S,
WSMO, etc.) hace que los agentes puedan comprender, procesar y utilizar las capacidades
publicadas que representen un paso hacia el logro de sus objetivos. De esta manera,
mediante la combinacin de agentes y servicios Web semnticos se automatiza la tarea de
descubrir, seleccionar, componer, ejecutar y monitorear servicios Web y la adaptacin a
cambios en el entorno pasa a ser dinmica.
97
75.00 Tesis
y transferidos por HTTP mientras que las tecnologas de servicios Web, como WSDL y SOAP
agregan interoperabilidad a la Web. Su trabajo se centr en la invocacin dinmica de
servicios por describir una interaccin de agentes. Plantearon un escenario donde un
usuario solicitaba a su agente la ejecucin de un servicio (Video Broadcast Service). El
agente buscaba el servicio en un registro OWL/UDDI y como no poda ejecutarlo puesto que
el servicio requera un ancho de banda superior a 2 Mbps solicitaba a otro agente su
ejecucin quin, al cumplir con el requerimiento de ancho de banda, entregaba el servicio al
usuario. En general, la capa de interaccin de agentes consiste de un protocolo preacordado
para el intercambio de mensajes, siendo frecuentemente empleados COOL (COOrdination
Language, basado en KIF/LQML) y IOM/T (Interaction-Oriented Model by Textual
representation). COOL es un framework para conversacin de agentes que provee reglas
conversacionales y reglas de recuperacin de errores. IOM/T sigue la notacin de AUML
(Agent-based Unified Modeling Language) para definir la interaccin. Como el anidamiento
de interacciones en IOM/T era complejo de procesar, definieron una mquina de estados
finita junto con una ontologa OWL para la interaccin de agentes en combinacin con FIPA.
[Paolucci et al.; 2003] propusieron una solucin DAML-S y analizaron los problemas
relacionados con los servicios Web autnomos. Sus resultados fueron que los servicios Web
podan ser desplegados a fin de proporcionar informacin e interactuar dinmicamente y
que una transaccin poda ser llevada a cabo automticamente sin intervencin del
programador. Sostuvieron que tratar con ontologas (en su trabajo utilizaron DAML) era
fundamental porque permita en servicios Web inferir sobre los statements de una
descripcin DAML-S.
Construyeron una arquitectura de servicios Web DAML-S con dos partes principales: el
servicio proveedor y el DAML-S Port, que administraba la interaccin con otros servicios.
Realizar una composicin de servicios o, analizar y elegir de las opciones provistas por el
workflow (descripto en el Process Model) aquellas que estuvieran en lnea con sus objetivos,
requera del servicio tomar decisiones no deterministas. Por tal motivo dotaron al servicio
con el planificador RESINA (basado sobre el paradigma de planificacin HTN).
El DAML-S Port consista de tres mdulos: el DAML Parser (permita cargar ontologas DAML
desde la Web); el DAML-S VM (defina conocimiento a partir de reglas que implementaban la
semntica axiomtica DAML) y el Web service Invocation. La DAML-S VM era el corazn de
la arquitectura. Su tarea principal era comprender el Process Model del proveedor y para ello
haba sido dotada de dos componentes: 1) un Process Model Rules semntico, que contena
normas para la ubicacin del prximo proceso a ejecutar, la extraccin de entradas y salidas
de cada proceso y la administracin de decisiones no deterministas, y 2) el Grounding Rules,
que especificaba la correspondencia de los procesos atmicos del Process Model con
operaciones WSDL y la relacin de entradas y salidas de los procesos atmicos con las del
Process Model.
Sus pruebas se basaron en dos aplicaciones. Una aplicacin B2B en la que un agente de
interfaz permita a un operador interactuar con un agente planificador que se ocupaba de
comparar los costos de diferentes proveedores de hardware. El agente planificador
consultaba dos matchmakers, uno de hardware y otro de finanzas (anlisis de solvencia) a fin
de obtener y organizar una cadena de proveedores de acuerdo con los lmites
98
75.00 Tesis
presupuestarios y fechas indicadas. Finalmente, el agente planificador contactaba a los
proveedores para negociar plan de pagos y costos. La otra aplicacin fue del tipo B2C, donde
un agente permita a un usuario planificar un viaje a una conferencia (suponan que los
organizadores haban publicado un servicio con informacin de la conferencia como fechas,
lugares, expositores y otros). El agente verificaba la disponibilidad y utilizaba un
matchmaker para encontrar aerolneas, alquilar coches y hoteles. Finalmente retornaba el
viaje programado. Dejaron como cuestin abierta proceder con un modelo computacional
ms simple dado que los requerimientos computacionales de un planificador fueron
sumamente considerables.
Realizar inferencias como hacen los humanos y justificarlas. Un agente que tenga
programada la regla las compras de ms de 300 tienen un descuento del 10% podr
justificar lgicamente porque permite descuentos a unos clientes y a otros no.
Realizar bsquedas consultando la Web Semntica por medio de lenguajes que reconozcan
RDF como la sintaxis principal. Con esta base, consultando lenguajes basados en RDF tal
como OWL desde una perspectiva RDF pura no requiere procedimientos especiales o
caractersticas de lenguaje siendo, de esta manera, posible aprovechar los servicios ofrecidos
(seccin 2.6) por un razonador en la resolucin de consultas.
Buscar servicios Web y utilizarlos automticamente sin intervencin humana por acceder a
las ontologas que acompaen a los servicios Web y comprender e integrar esas ontologas.
Buscar productos, negociar compras, acuerdos de nivel de servicio, calidad de datos, cantidad
de datos, localizar servicios de inters para los usuarios. Por el uso de ontologas en las
empresas, los agentes podrn combinarlas con sus algoritmos de negociacin y hacer
negocios electrnicos con otras empresas, de manera automtica.
99
75.00 Tesis
lenguajes de ontologas como OWL. Las ontologas mdicas poseen significantes desafos
para la teora y la prctica de lenguajes basados en DL. Los razonadores existentes pueden
eficientemente tratar con ontologas enormes (como NCI) pero existen otras ontologas
importantes que estn fuera del alcance de las herramientas disponibles (ninguno de los
razonadores existentes puede clasificar correctamente GALEN o FMA). El objetivo del
proyecto HermiT es, por lo tanto, desarrollar algoritmos de razonamiento escalables e
implementar un prototipo que pueda eficientemente manejar 1) ontologas enormes y
complejas y 2) volmenes importantes de datos. El desarrollo de un razonador semejante
ser clave para el xito de aplicaciones basadas en ontologas.
Pellet trata de un razonador DL basado sobre algoritmos tableaux. El ncleo del razonador, es
el algoritmo tableaux (desarrollado para lgicas descriptivas potentes) el cual verifica la
consistencia de la KB124, es decir del par ABox y TBox125. Las ontologas OWL son cargadas al
razonador despus de validar las especies OWL (DL, RL, QL) y reparar ontologas. Este paso
asegura que todos los recursos tienen un tipo de tripla apropiado (un requerimiento para
OWL DL pero no para OWL FULL). Durante la fase de carga, los axiomas acerca de las clases
(subclase, clase equivalente o axiomas disjuntos) son ubicados en el componente TBox y las
aserciones acerca de individuos (aserciones de tipo y propiedad) son almacenadas en el
componente ABox. Los axiomas TBox pasan antes por un preprocesamiento estndar de
razonadores DL y luego por el razonador tableaux.
122
GNU Lesser General Public License.
123
Maryland Information and Network Dynamics Lab Semntica Web Agents Project o MINDSWAP, Laboratorio
Maryland de Informacin y Redes Dinmicas del Proyecto de Agentes de Web Semntica. La informacin del
razonador actualmente se encuentra disponible en el sitio Web http://pellet.owldl.com.
124
Knowledge Base.
125
Desarrollado en la seccin 2.6 Razonador
100
75.00 Tesis
Este razonador implementa las mejores tcnicas de optimizacin, lo que hace que su
desempeo sea bueno, en especial cuando debe evaluar ontologas con mayor complejidad y
expresividad; sin embargo no es tan eficiente como RacerPro o FACT++ en clasificaciones
[Rodriguez et al.; 2010].
Implementado en Java, soporta la interfaz Jena, la interfaz OWL API, la interfaz DIG y puede
trabajar con el editor Protg. Es ofrecido bajo un modelo de licencia dual126. Ha superado las
pruebas de conformidad de OWL 2 DL, OWL 2 EL, OWL 2 QL y OWL 2 RL. La ltima versin
es Pellet 2.2.2, liberada en septiembre de este ao.
FaCT++ es un buen razonador para la TBox de una ontologa, sin embargo, carece de soporte
para otros tipos de datos que no sean string o integer (como si ocurre con Pellet) y tampoco
posee soporte para razonamiento con la ABox de una ontologa. En el caso de los tipos de
datos en un entorno Web, es necesario que exista soporte para los tipos de datos de XML
Schema. Entre sus caractersticas se destaca: 1) trabaja de forma eficiente con TBox de
ontologas de tamao grande y mediano y 2) es posible utilizar el lenguaje de consultas para
RDF: SPARQL, el cual permite consultar el modelo inferido de una ontologa OWL-DL.
126
En aplicaciones open source, Pellet puede ser utilizado segn los trminos de la licencia AGPL versin 3 y en
aplicaciones closed source, propietarias u otras aplicaciones comerciales, segn los trminos de licencia
alternativos establecidos por los autores.
101
75.00 Tesis
Captulo IV
En general, no hay una manera fcil y rpida de elegir un proveedor sino que pasa a ser una
decisin especfica de dominio. Lo ms simple es seleccionar el proveedor con el mayor
puntaje entre los servicios reportados por el registro. Un enfoque ms general podra estar
basado sobre razonamiento terico de decisin, en el cual los usuarios elijan el proveedor
que maximiza alguna funcin de utilidad, sin embargo, en la prctica es poco probable que los
servicios hagan uso de un modelo de utilidad explcito.
[Qiu et al., 2008] definieron los servicios Web como aplicaciones modulares autnomas, auto
descriptas que pueden ser publicadas, localizadas e invocadas a travs de la Web. En su
trabajo expusieron que con el desarrollo de Internet, emergi un gran nmero de
organizaciones que implementaron sus negocios y los exteriorizaron como servicios Web.
102
75.00 Tesis
Cuando un slo servicio no puede satisfacer un pedido de usuario, la capacidad para
seleccionar y componer servicios heterogneos a lo largo de diferentes organizaciones,
eficiente y efectivamente, se transforma en un paso importante en el desarrollo de
aplicaciones Web, convirtindose la tecnologa de composicin automtica de servicios en
uno de las principales cuestiones dentro del proceso de desarrollo de una aplicacin Web. La
investigacin para permitir fcil integracin incluye UDDI, WSDL, BPEL4WS, donde la
representacin de composicin de servicios realizada a travs del flujo de proceso y de la
conexin entre servicios es conocida a priori. La composicin de servicios, afirman, es una
tarea compleja debido a 1) el incremento de servicios Web, 2) a cambios on the fly que las
aplicaciones de composicin deben detectar en tiempo de ejecucin a fin de tomar decisiones
correctas sobre informacin actualizada y 3) la falta de un lenguaje nico para definir y
evaluar servicios. Estos autores aseguran que la Web semntica es un paso clave para la
composicin de servicios. En su trabajo, extendieron WSDL con capacidades semnticas,
definieron una ontologa en OWL y elaboraron un plan (a travs de BPEL4WS) para analizar
la estructura de los servicios que mejor combinaba.
[Thakker et al., 2007] utilizaron una metodologa conocida como Case Based Reasoning
(CBR) para modelar descubrimiento y matchmaking dinmico de servicios Web. Su trabajo
consideraba la experiencia de ejecucin de un servicio Web a fin de determinar si era
adaptable al pedido de un usuario. Desarrollaron un framework con descripciones
semnticas (OWL) para la implementacin de los componentes CBR y matchmaking. Un
proceso CBR es un ciclo de cuatro fases: 1) representacin del caso, que consiste del
problema, el contexto y la solucin; 2) almacenamiento e indizacin de casos, donde se utiliza
una biblioteca de casos; 3) recuperacin de casos, que utiliza ndices para expresar el
contenido del caso y 4) matchmaking, que compara los casos recuperados con el pedido a fin
de verificar si una solucin anterior puede ser reutilizada. Argumentaron que como el
comportamiento de un servicio no puede ser conocido con antelacin, slo puede ser
generalizado si los valores de su ejecucin son almacenados y razonados para decidir la
capacidad del servicio.
A veces los casos anteriores no pueden ser reutilizados sin hacer cambios que requieren
conocimiento especfico del dominio para modelar una adaptacin. Tal conocimiento podra
surgir por relacionar los conceptos definidos en una ontologa utilizando una taxonoma de
relaciones y reglas semnticas. El rol del conocimiento en reparar los casos existentes
requiere relajar las descripciones de servicios o sus parmetros funcionales y los valores de
ejecucin de los casos candidatos (parmetros no funcionales) para encontrar descripciones
de servicios suficientemente similares. Sugirieron, y es ms, dejaron como trabajo futuro el
desarrollo de sustitucin basado en conocimiento para adaptar los atributos funcionales y no
funcionales de los casos candidatos como solucin a un pedido, descartando completamente
un planificador de IA, por ser un recurso sumamente costoso.
103
75.00 Tesis
ellos. En trminos de ingeniera de software, la composicin automtica de servicios podra
mejorar la capacidad de una arquitectura de servicios porque posibilitara superar
dificultades como 1) especificar y combinar, manualmente, los servicios bsicos a utilizar y
2) fortalecer el proceso de composicin contra la falta de disponibilidad de un servicio o por
la aparicin de otros nuevos. Por otro lado, mencionaron que la composicin de servicios por
sntesis consiste de un plan para lograr el comportamiento deseado al combinar las
habilidades de mltiples servicios y que la composicin de servicios por orquestacin trata
del control y flujo de datos entre varios componentes de software cuando ese plan se ejecuta.
Sostuvieron que la composicin por sntesis era ms relevante en la composicin
automtica, quedando la orquestacin como un elemento complementario. En su trabajo
estudiaron las capacidades requeridas y las generalmente utilizadas en los trabajos de
composicin automtica de servicios para finalmente concluir que: 1) un encadenamiento de
servicios poda introducir un nivel de incertidumbre, que en algunas situaciones era
inaceptable para el usuario, 2) los pedidos con mltiples efectos necesitaban capacidades
como escalabilidad estable y propiedades transaccionales, 3) los problemas relacionados con
falta de conocimiento requeran de servicios que recopilasen la informacin y 4) mejores
descripciones semnticas requeran del desarrollo de bases semnticas slidas, entre otras.
Como conclusin, mencionaron que los servicios son desplegados por varias personas en el
mundo y es poco probable encontrar un servicio Web que perfectamente proveyese a otro,
que la capacidad de cubrir conceptos utilizados en diferentes ontologas es el tema ms
importante en la Web Semntica y que desde que EMA evaluaba ontologas, la clasificacin de
un servicio Web en un dominio semntico era innecesario.
[Paolucci et al., 2002] destacaron que UDDI y WSDL no prestaban capacidad de bsqueda de
servicios por match semntico al responder a un pedido de usuario y lo propusieron como
mejora. Para representar las capacidades de servicios utilizaron la seccin Profile de DAML-S.
Para realizar inferencias sobre una jerarqua utilizaron las ontologas DAML. Un algoritmo
buscaba salidas de servicios que coincidieran con al menos una salida del pedido de usuario.
Las entradas de servicios eran utilizadas como complemento cuando haba ms de un
servicio que provea las mismas salidas siendo elegido el que tena ms entradas similares
con el pedido. Como resultado daba un conjunto ordenado de servicios de acuerdo al nivel de
104
75.00 Tesis
matching de cada uno. El algoritmo fue dotado de cierta flexibilidad (configurable por el
usuario) para establecer los niveles de match que podan ser exacto (la salida coincida con el
pedido o era una superclase directa del pedido suponiendo que el proveedor se comprometa
a prestar el servicio publicado a un nivel de profundidad de uno en la jerarqua de clases),
plug-in (superclases del pedido que podan incluirlo), subsumidos (salidas parciales, es decir
que el servicio provea una parte del pedido) y fail (no match).
A partir de lo investigado y expuesto nuestra definicin de servicio para el desarrollo del caso
prctico es: un servicio es un activo que establece prestaciones y calidad a travs de
contratos de servicio. Un servicio Web es funcionalidad disponible en la Web segn
estndares estipulados (SOAP, WSDL, UDDI) a fin de garantizar interoperabilidad. Un servicio
Web semntico posee descripciones realizadas por ontologas las cuales agregan un nivel
ms de procesamiento a fin de optimizar el ciclo de descubrimiento, seleccin, invocacin y
composicin de los servicios Web.
Una situacin comn es encontrar servicios que generan los efectos pedidos pero que
alguna precondicin no pueda ser cubierta. Una solucin es utilizar encadenamiento de
servicios. El encadenamiento considera recursivamente los efectos de un servicio como las
precondiciones del siguiente hasta que el efecto deseado es alcanzado. Los enfoques de
encadenamiento de servicios incluyen:
A fin de conseguir los beneficios anunciados por tener agentes y servicios trabajando
cooperativamente, ambas tecnologas se relacionan en un escenario donde el agente provee
la funcionalidad de alto nivel por utilizar, combinar y coreografiar los servicios Web
obteniendo funciones de valor agregado mientras que los servicios Web prestan la
funcionalidad de bajo nivel.
Los agentes con capacidades semnticas y los servicios Web semnticos permiten
automatizar una situacin en la que fuera necesario ejecutar varios servicios a fin de
proporcionar el servicio requerido.
El agente consulta un registro de servicios a fin de localizar servicios con ciertas capacidades.
La compilacin automtica requiere una abstraccin del problema por las capacidades que se
espera que el servicio posea, a fin de resolver el problema. Un lenguaje como SAWSDL
posibilita realizar publicaciones y consultas y permite al agente obtener y procesar
informacin acerca de las capacidades publicadas. La tarea del agente es localizar las
publicaciones que coincidan con un pedido. El proceso de bsqueda no se restringe a
encontrar una coincidencia exacta entre pedido y servicio sino que previamente se
establecen niveles (desarrollado en la seccin 5.2.1) para que servicios similares puedan ser
elegidos. El resultado es una lista de servicios potenciales que cubren un pedido.
El agente accede a las publicaciones dadas por las descripciones WSDL de los servicios a fin
de conocer lo que hace el servicio. Las ontologas utilizadas por el servicio, sus entradas,
salidas y las reglas requeridas para su ejecucin es lo que permite al agente conocer las
acciones y efectos del servicio. La forma en que el agente logra ese conocimiento es
desarrollado en la seccin 5.2.1.
106
75.00 Tesis
Captulo V
Caso prctico
El servicio Web semntico wsMatriculate define una interfaz con la operacin Registration
para realizar la inscripcin en la facultad de un nuevo estudiante recibiendo los datos del
nuevo estudiante y una nota de inscripcin. El servicio retorna una nota con la inscripcin
realizada (de tipo nota de graduado o de tipo nota de no graduado).
Dado un nuevo estudiante graduado que posea un curriculum y desee anotarse a una
bsqueda de trabajo profesional, la combinacin de los servicios wsMatriculate,
wsInscribeJobBag y wsPostulateJobG responderan al pedido.
Como puede observarse, los servicios propuestos ofrecen las posibles salidas requeridas y
cul servicio se ejecutar para resolver el pedido es determinado en tiempo de ejecucin.
Con este escenario se pretende estudiar de que manera los servicios Web semnticos pueden
ser combinados de manera automtica por un agente provisto con las ontologas necesarias.
107
75.00 Tesis
5.2 El prototipo construido
Se utilizaron estndares para la anotacin semntica de los servicios Web como SAWSDL a
fin de convertir los servicios Web en servicios Web semnticos.
A fin de dotar a los servicios con informacin acerca de sus pre y postcondiciones de manera
que fuera compatible con el estndar SAWSDL, se eligi emplear el lenguaje de reglas SWRL.
Se empleo el estndar OWL como lenguaje de ontologa para lograr la mxima expresividad
semntica con las ontologas.
Se eligi realizar las asociaciones de acuerdo al primer tipo. Los tipos restantes fueron
implementados y dejados como trabajo futuro.
Lo anterior contempla slo las salidas de un pedido de servicio y de un servicio ofrecido. Para
evaluar la asociacin de las entradas de un pedido de servicio y de un servicio ofrecido se
consider la propuesta de [Akkiraju y Sapkota; 2007] por aceptar que las entradas pueden
ser satisfechas por sus supertipos directos en la jerarqua de clases.
Una composicin es vlida si el pedido de servicio y las entradas y las reglas de los servicios
elegidos son satisfechos. Los resultados finales son comunicados por el agente.
108
75.00 Tesis
La ontologa de datos fue construida implementando un TBox acclico127 a fin de evitar los
problemas semnticos que surgen con un TBox cclico.
5.2.2 Componentes
A fin de procesar las anotaciones semnticas incluidas en los documentos WSDL de los
servicios, el agente fue implementado incorporando, como razonador OWL-DL, la versin
Pellet 2.2.1.
/repository/ontologies
/repository/servicesDescription
/AgentClient/request
/AgentClient/response
/AgentClient/temp
El directorio ontologies contiene las ontologas owl de todos los servicios. Cada servicio
incluye en su documento WSDL tres ontologas: una ontologa para anotar los tipos de datos
de sus operaciones, otra ontologa para describir las reglas asociadas a sus operaciones y una
tercera ontologa que permite anotar la categora a la que pertenece el servicio, en el
elemento interface, que integra la especificacin WSDL 2.0.
La ontologa de datos fue presentada en la seccin 2.8, desde la perspectiva del lenguaje de
ontologa OWL y, en la seccin 5.1, por mencionar en detalle el escenario modelado. En la
seccin 2.8, tambin se mencion que la ontologa de datos haba sido dividida en dos partes:
una ontologa para contener los axiomas de clases y propiedades y otra ontologa, para
contener a los individuos. Los archivos StudentsJobBag.owl y membersStudentsJobBag.owl,
que corresponden a las ontologas bolsa de trabajo y miembros de la bolsa de trabajo, fueron
explicadas en esa seccin y se encuentran en este directorio.
[Akkiraju y Sapkota; 2007] sugirieron que, a fin de agregar la categora a la cual perteneca
un servicio, antes de publicarlo en un registro de servicios, los servicios Web podan ser
anotados semnticamente por los mecanismos de extensin provistos con SAWSDL. Para
ello, plantearon las siguientes dos formas:
127
Desarrollado en la seccin 2.6, Razonador.
109
75.00 Tesis
Categorizacin por URI: a partir de un modelo semntico de categoras existente anotar
semnticamente los elementos operation o interface del documento WSDL 2.0 que
acompaa a un servicio por agregar la categora del servicio. Esta forma presentaba el
inconveniente de que el modelo de categoras no fuera completo y, que fuera necesario
recurrir, a mltiples piezas de informacin para identificar la categora del servicio.
Categorizacin por identificadores: en esta forma los usuarios podan definir la categora
segn sus requerimientos empleando categoras definidas por otros usuarios. As, la
categora del servicio era obtenida por indicar una taxonoma y un identificador dentro de
esa taxonoma.
Las ontologas de reglas, las cuales fueron empleadas para anotar las operaciones de un
servicio, fueron definidas con el propsito de habilitar al agente con la capacidad de decidir
acerca de las condiciones asociadas a la ejecucin de un servicio. Estas reglas fueron definidas
en OWL como DL-Safe Rules del SWRL y explicadas en la seccin 2.8. Sin embargo, es
necesario destacar, que las reglas hacen posible que el agente pueda determinar si un
servicio se ejecutar correctamente o no, y, qu cambios puede producir su ejecucin, de
manera similar, a las pre y post condiciones utilizadas en OWL-S. Adems, si bien para
ejecutar un servicio, ste debe ser invocado con las entradas requeridas por la firma de sus
operaciones, resulta indispensable considerar las condiciones que aseguren su buen
desempeo. Esta ltima verificacin se logra mediante la utilizacin de reglas las cuales
permiten al agente disponer de la informacin necesaria a tal fin.
El directorio request es donde el agente recibe los pedidos de servicios. Los pedidos de
servicios fueron construidos siguiendo la propuesta de [Akkiraju y Sapkota; 2007] por
utilizar WSDL 2.0.
128
North American Industry Classification System. http://www.census.gov/eos/www/naics/
110
75.00 Tesis
El directorio response es donde el agente ubica el resultado de los pedidos recibidos. El
agente informa si encontr el o los servicios que corresponden al pedido, si el o los servicios
se pueden ejecutar por disponer de las entradas requeridas por los mismos y si se cumplen
las reglas asociadas a cada servicio para una ejecucin exitosa.
El directorio temp fue el contenedor temporal de los archivos empleados a lo largo de las
pruebas realizadas durante el desarrollo del prototipo y finalmente movido al directorio
/AgentClient.
5.2.3 Herramientas
Para construir los servicios Web semnticos se utiliz la herramienta versin Axis2-1.5.2.
Axis2 fue desplegado empleando la herramienta Tomcat - 6.0.29 como servidor Web.
Los servicios fueron construidos empleando la versin WSDL 2.0 y SOAP 1.1 y SOAP 1.2.
129
http://jcp.org/en/home/index
111
75.00 Tesis
Las descripciones WSDL de los servicios Web fueron obtenidas a partir de su cdigo en java
con la herramienta java2wsdl130 de Axis2. Las descripciones WSDL correspondan a la
versin WSDL 1.1 por lo que hubo que utilizar otra herramienta para obtener la versin
WSDL 2.0, Por medio de la herramienta comercial Altova XMLSPy 2011131 se pudo convertir
las descripciones WSDL 1.1 a descripciones WSDL 2.0, adhiriendo a la recomendacin ms
reciente del W3C.
Una vez obtenidas las descripciones WSDL 2.0 de los servicios y con la herramienta
wsdl2java132 de Axis2 se generaron los skeletons de los servicios. Finalmente los servicios
fueron ejecutados por ubicar el archivo de despliegue de cada servicio (estos archivos poseen
extensin .aar) en el directorio /webapps/axis2/WEB-INF de Tomcat.
Las herramientas presentadas hasta ahora resultaron adecuadas a los fines de conseguir los
servicios con los que el agente trabaj para la composicin de servicios. Adems, hay que
mencionar que dichas herramientas poseen una documentacin completa y clara y son,
debido a una aceptacin relativamente amplia, respaldadas por una comunidad de
desarrolladores que contribuyen con sus aportes a superar inconvenientes durante la
implementacin.
Las ontologas fueron generadas a partir de la herramienta versin Protg 4.1.0. Protg 134
fue desarrollado por el Stanford Center for Biomedical Informatics Research de la Stanford
University School of Medicine como un editor de ontologas open source. Soporta dos formas
para modelar ontologas: mediante Protg Frames y Protg OWL. Entre sus caractersticas
se pueden mencionar la exportacin de ontologas en una variedad de formatos (RDF, RDFS,
OWL y XML-Schema entre otros), es construido en Java, extensible y provee un entorno plug
and play que lo convierte en una base flexible para prototipado y desarrollo de aplicaciones
veloz.
130
Script que genera el archivo WSDL apropiado a partir de la clase java especificada.
131
http://www.altova.com/xmlspy/wsdl-editor.html
132
Script que genera cdigo Java de acuerdo al archivo WSDL especificado a fin de manejar las invocaciones de
servicio (stubs del lado del cliente). El script tambin puede generar los skeletons de los servicios de acuerdo al
WSDL especificado.
133
Desarrollado en la seccin 2.5.8, SAWSDL.
134
http://protege.stanford.edu.
112
75.00 Tesis
creadas con Protg Frames.
El editor Protg OWL soporta el Ontology Web Language u OWL permitiendo cargar y
almacenar ontologas OWL y RDF, editar y visualizar clases, propiedades y reglas SWRL,
definir expresiones OWL como caractersticas de las clases, ejecutar razonadores como
clasificadores DL y editar individuos OWL.
Adems, Protg cuenta con el respaldo de una gran comunidad de desarrolladores y usuarios
universitarios (University of Manchester), del gobierno (DARPA) y empresas (eBay) quienes
utilizan Protg para soluciones en reas tan diversas como la biomedicina, recopilacin de
informacin y el modelado de empresas.
Para administrar las ontologas programticamente en las primeras versiones del prototipo
se trabaj con el framework Jena 2.2.3.
Jena135 es un framework java, open-source, que creci como parte del Programa de la Web
Semntica de los laboratorios HP136. Actualmente, el proyecto fue desvinculado debido a la
decisin de la administracin HP Labs de no continuar con el Programa, encontrndose la
propiedad de los derechos del cdigo de Jena en proceso de transferencia desde HP a un
cuerpo comercialmente neutral. Sin embargo, HP asegura la continuidad del proyecto y su
participacin en el papel de colaborador.
El Framework Jena incluye una API RDF, soporta los formatos RDF/XML, N3 y N-Triples, la
OWL API, el motor de consultas SPARQL, manejo de ontologas en memoria y persistencia,
entre otras caractersticas. Pero no provee soporte para DL-Safe Rules. Por este motivo fue
reemplazada por la OWL API versin 3.1.0.
La OWL API versin 3.0.0 en adelante fue desarrollada por la University of Manchester. Es
open-source y la ltima versin se enfoc hacia OWL 2. Es una API Java y una
implementacin de referencia para crear, manipular y serializar ontologas OWL. Entre sus
componentes se encuentran: analizadores de sintaxis y escritura para RDF/XML, OWL/XML,
OWL Functional Syntax, Turtle, KRSS, interfaces para trabajar con razonadores como
FaCT++, HermiT, Pellet y Racer y una API para OWL 2, entre otros.
Con la OWL API, en su versin 3.1.0, fue posible implementar DL-Safe Rules.
113
75.00 Tesis
5.3 Resultados
La pruebas realizadas utilizaron los pedidos de servicios del directorio temp, los cuales
fueron construidos siguiendo la propuesta de [Akkiraju y Sapkota; 2007] y la especificacin
WSDL 2.0.
Como se mencion secciones atrs, las reglas se componen de dos partes principales:
antecedente y consecuente. El antecedente y el consecuente estn formados por tomos.
Los tomos comprenden predicados y los predicados argumentos. Los predicados pueden
ser descripciones de clases, propiedades y los argumentos variables o individuos. La
estructura de una regla queda como se muestra a continuacin:
Rule ([ATOM1 (PREDICATE1(ARG1 ,.., ARGN) , ..., ATOMN (PREDICATEN (ARG1, .., ARGN))]) => ([ATOM1
(PREDICATE1 (ARG1, .., ARGN)])
SWS1 wsMatriculate
Rule [New_Student (nt), Notice (n)] => [NoticeOf (n, nt)]
Input {New_Student (a), Notice (n)}
Output {Notice (n)}
Descripcin: realiza la inscripcin en la facultad de un nuevo estudiante recibiendo los datos del nuevo
estudiante y una nota de inscripcin. El servicio retorna una nota de inscripcin realizada (de tipo nota de
graduado o de tipo nota de no graduado).
SWS2 wsInscribeJobBag
Rule [Curriculum(c), NoticeOf (n, nt)] => [hasJobPostulant (nt, jp)]
Input {Notice (n)}, Curriculum (c)}
Output {JobPostulant (jp)}
Descripcin: realiza la inscripcin en la bolsa de trabajo de un nuevo estudiante recibiendo un curriculum y
la nota de inscripto en la facultad. El servicio retorna el registro de inscripcin en la bolsa de trabajo (de tipo
postulacin de trabajo).
SWS3 wsPostulateJobG
Rule [JobPostulantOf (jp, nt), hasNotice (nt, notice_graduate)] => [hasPostulationProfessionalJob (nt, pprof)]
Input {JobPostulant (jp), JobOfferProfessional (joprof)}
Output {PostulationProfessionalJob (pprof)}
Descripcin: realiza la postulacin de trabajo profesional de un nuevo estudiante graduado recibiendo la oferta
de trabajo profesional elegida y el registro de inscripto en la bolsa de trabajo. El servicio retorna un registro con
la postulacin a la oferta de trabajo profesional realizada (de tipo postulacin de trabajo profesional).
SWS4 wsPostulateJobU
Rule [JobPostulantOf (jp, nt), NoticeOf (notice_undergraduate, nt)] => [hasPostulationPassantJob (nt, ppas)]
Input {JobPostulant (jp), JobOfferPassant (jopas)}
Output {PostulationProfessionalJob (pprof)}
Descripcin: realiza la postulacin de pasanta de un nuevo estudiante no graduado recibiendo la oferta de
114
75.00 Tesis
pasanta elegida y el registro de inscripto a la bolsa de trabajo. El servicio retorna un registro con la postulacin
a la oferta de pasanta realizada (de tipo postulacin de pasanta).
ABoxinferido= { x2 = c (Curriculum),
x3 = x6 = notice_undegraduate = n (Notice),
x4 = jp (JobPostulant), ug (UnderGraduate) = nt (New_Student),
x7 = pprof (PostulationProfessionalJob)
}
116
75.00 Tesis
determin que el pedido poda ser resuelto por un servicio, el servicio wsMatriculate pero
que como el pedido era incompleto, el servicio no poda ser ejecutado. Faltaba la
presentacin de una nota.
117
75.00 Tesis
La decimotercera prueba (reportCompositeServiceRequest60) fue un pedido de servicio
para realizar una postulacin de pasanta presentando la inscripcin a la bolsa de trabajo y la
oferta de pasanta elegida. El agente determin que el pedido poda ser resuelto por un
servicio, el servicio wsPostulateJobU pero que como el pedido no cumpla la regla del
servicio no poda ser ejecutado. Faltaba la existencia de una nota de no graduado inscripto.
ABoxinferido= { x1 = jp (JobOfferPassant),
x3 = notice_underGraduate = n (Notice),
x4 = ppas (PostulationPassantJob),
ug (UnderGraduate) = nt (NewStudent)
}
ABoxinferido= { x1 = c (Curriculum),
118
75.00 Tesis
x3 = gd (Graduate)= nt (New_Student),
x4 = x7 = x8 = x9 = notice_graduate = n (Notice),
x5 = jp (JobPostulant),
x10 = pprof (PostulationProfessionalJob)
}
ABoxinferido= { x1 = c (Curriculum),
x3 = ug (UnderGraduate)= nt (New_Student),
x4 = x7 = x8 = x9 = notice_undergraduate = n (Notice),
x5 = jp (JobPostulant),
x10 = ppas (PostulationPassantJob)
}
Para la composicin de servicios el agente fue provisto con el razonador Pellet 2.2.1
desarrollado en la clase ReasonerEngine.java y utilizado por la clase Compositor.java. La
primera otorga al agente la capacidad de realizar inferencias y de encontrar relaciones de
tipo superclase, subclase, subsumido entre entradas y salidas de los servicios y de los pedidos,
todas marcadas con clases o instancias de la ontologa StudentsJobBag.owl. La segunda
otorga al agente la capacidad de componer los servicios para el pedido recibido, utilizando la
clase ReasonerEngine, el algoritmo de backward-chaining y los algoritmos de verificacin de
reglas (DL-Safe Rules).
119
75.00 Tesis
ejecucin correcta de los servicios. En varias pruebas, por ejemplo, al presentar una nota de
graduado, el razonador infera inmediatamente que la instancia gd perteneca a la clase
Graduate y que era igual a la instancia nt de la clase New_Student por tener una nota de
graduado. Con esto satisfaca parte de la regla asociada al SWS wsPostulateJobG. Los axiomas
considerados fueron:
gd (hasNotice notice_graduate)
en la ontologa members StudentsJobBag.owl
Rule [JobPostulantOf (jp, nt), hasNotice (nt, notice_graduate)] => [hasPostulationProfessionalJob (nt, pprof)]
en la ontologa rulePostulateJobG.owl.
Inferencias similares fueron realizadas por el agente por medio del razonador DL en el resto
de las pruebas, como se puede observar en los reportes finales ubicados en el directorio test .
El marcado ontolgico de los SWS fue una aproximacin al funcionamiento general que
tendra la bolsa de trabajo de una facultad. Tal aproximacin fue determinante en la
elaboracin de las ontologas que permitieron agregar la semntica necesaria a los servicios
a fin de que el agente pudiera realizar la composicin dinmica de servicios como finalmente
fue presentado en esta seccin.
120
75.00 Tesis
Captulo VI
Los servicios Web fueron construidos adoptando estndares a fin de asegurar servicios
independientes de la tecnologa y capaces de interoperar con otros servicios Web.
WSDL y SOAP emplean tecnologas XML para 1) describir los contratos de servicio de los
servicios Web y 2) permitir la combinacin de tecnologas complejas en la construccin de
servicios Web.
Los contratos de servicios son ms valiosos que las implementaciones por representar
conocimiento vital de negocios, son el mecanismo primario para reducir acoplamiento de
interfaz y la base para compartir y reutilizar servicios por lo cual deben ser manejados como
un artefacto separado, utilizando un mecanismo formal de extensin y versionado que
permita controlar dependencias y costos.
Los servicios Web son recursos Web y son capturados en trminos de tareas, las cuales
combinan el concepto de accin con intencin: los servicios Web son invocados con un
propsito, que puede ser expresado como un objetivo de estado deseado.
Una ontologa es una semntica formal la cual por describir el significado del conocimiento
de manera precisa logra una interpretacin nica por parte de mquinas y personas.
Disponer de una semntica formal resulta imprescindible para implementar sistemas de
inferencia o de razonamiento automtico
Las ontologas actan como una herramienta para compartir informacin y conocimiento, y
por lo tanto, para conseguir interoperabilidad semntica. Las ontologas asisten a la Web
Semntica por unificar contenidos semnticos y formalizar conocimiento consensuado y
reutilizable. Brindan ventajas como el desarrollo de aplicaciones con esquemas de datos
compartidos, el impulso de transacciones entre empresas y la bsqueda de informacin por
inferencias.
121
75.00 Tesis
Las mquinas son capaces de inferir, mediante procesos lgico-matemticos, conclusiones a
partir de datos representados en un lenguaje formal (lgico y axiomtico). Representar los
datos en un lenguaje formal posibilita que las mquinas puedan realizar inferencias lgicas.
Al anotar las descripciones de los servicios Web con ontologas, se consigue mayor
automatizacin, reduciendo el involucramiento humano en la comprensin datos y
funciones de servicios.
Entre los lenguajes ontolgicos, OWL presta el mejor soporte de razonamiento al proveer
mayor poder expresivo y promover motores de inferencia.
Respecto del caso prctico, desde el punto de vista ontolgico, 1) las limitaciones impuestas al
incorporar reglas DL-Safe y una ontologa con una base de conocimiento formada por un
TBox acclico y 2) los beneficios otorgados por la eleccin de un razonador DL posibilit al
agente en el primer caso aprovechar la mayor expresividad ofrecida por OWL y en el
segundo, mejorar la bsqueda de servicios al considerar las relaciones semnticas de los
contratos de servicios.
Como trabajo futuro queda investigar la posibilidad de ampliar los tipos de asociacin
empleados en la composicin de servicios con el fin de mejorar provisin de servicios,
investigar heursticas del algoritmo de backward-Chaining, estudiar la capacidad del agente
para componer servicios en un MAS (sistema distribuido), innovar con la mediacin de
ontologas al indicar en nuevas ontologas equivalencias de clases y de individuos entre las
ontologas que acompaan los SWS. Las ontologas obtenidas deberan ser sencillas y de
carcter pblico.
123
75.00 Tesis
Glosario
PLATAFORMA
Una plataforma es una base slida sobre la cual construir algo. Puede estar basada sobre
estndares y especificaciones, siendo su grado de apertura a los mismos y la adherencia a ella
por parte de vendedores IT, de considerable importancia. Como ejemplos de plataformas
basadas en especificaciones y estndares se encuentran la plataforma de aplicacin Web
(navegadores, URLs, HTML, CSS y HTTP/S), J2EE y CORBA. Por otro lado, los estndares de
servicios Web (SOAP, WSDL) son elementos claves de ella (pueden ser extendidos utilizando
otros estndares a fin de ajustar requerimientos especficos de negocios, de la industria o de
la organizacin).
URL
RFC 1738137. Los recursos disponibles en Internet son representados mediante secuencias
de caracteres llamadas Uniform Resource Locators (URL).
Los URL son utilizados para localizar recursos. Proveen un identificador abstracto de la
ubicacin de un recurso. Un URL es escrito como sigue:
<scheme>:<scheme-specific-part>
El URL contiene el nombre del esquema empleado seguido por dos puntos y una secuencia
cuya interpretacin depende del esquema. Los componentes de la jerarqua son separados
mediante /.
137
http://www.faqs.org/rfcs/rfc1738.html
124
75.00 Tesis
En algunos casos, los URL son utilizados para localizar recursos que contienen punteros a
otros recursos. Esos punteros son representados como enlaces relativos donde la expresin
de ubicacin del segundo recurso est en trminos del primero.
Mientras que el esquema elegido determina la sintaxis del resto del URL, los protocolos
basados en el protocolo IP para especificar un host en Internet utilizan una sintaxis comn
para datos especficos del esquema:
//<user>:<password>@<host>:<port>/<url-path>.
Los datos especficos del esquema comienzan con una doble barra // para indicar su
conformidad con la sintaxis comn de esquemas en Internet. Los componentes usuario y
clave son opcionales, host corresponde al nombre de dominio completo de un host en
Internet, port al nmero de puerto para conectarse y url-path a los datos especficos del
esquema.
El URL con esquema HTTP determina recursos de Internet accesibles utilizando HTTP. Un
URL HTTP es
http://<host>:<port>/<path>?<searchpart>
El valor por defecto de port es 80, <path> representa un selector HTTP y <searchpart> una
cadena de consulta. Los dos ltimos son opcionales y dentro de ellos los caracteres /, ;, ?
son reservados. El carcter / puede ser utilizado dentro de HTTP para designar la estructura
jerrquica.
El URL con esquema file es utilizada para indicar archivos accesibles sobre un host
particular. Este esquema, a diferencia de los otros esquemas de URL, no representa un
recurso universalmente accesible en Internet. Un URL file es
file://<host>/<path>
La parte <host> es el nombre de dominio completo del sistema sobre el cual el path es
accesible y <path> es la jerarqua de directorios.
Un caso especial de <host> es la cadena localhost o la cadena vaca, donde ambas son
interpretadas para referir a la mquina donde el URL es interpretado.
125
75.00 Tesis
URI
RFC 3986138. El Uniform Resource Identifier (URI) es una secuencia compacta de caracteres
que identifica un recurso abstracto o fsico. La especificacin define la sintaxis genrica del
URI y un proceso para resolver las referencias URI que podran estar en forma relativa, junto
con pautas y consideraciones de seguridad para la utilizacin de URIs en Internet. La sintaxis
URI define una gramtica que es un superconjunto de todos los URIs vlidos, posibilitando
implementar un analizador sintctico de los componentes comunes de una referencia URI,
sin conocer los requerimientos especficos de esquema. La especificacin no define una
gramtica para URIs; esa tarea es ejecutada por las especificaciones individuales de cada
esquema URI.
Un URI es un identificador consistente de una secuencia de caracteres que sigue las reglas
definidas por la especificacin. Permite la identificacin uniforme de recursos por medio de
un conjunto extensible de esquemas de nombres. Cada esquema debe determinar cmo
acompaar la identificacin, asignarla o habilitarla.
Los URIs tienen alcance global y son interpretados consistentemente sin importar el
contexto, aunque el resultado de esa interpretacin podra estar en relacin al contexto del
usuario final139. Sin embargo, una accin puede ser realizada sobre la base de que la
referencia tomar lugar en relacin al contexto del usuario final, lo cual implica que una
accin que intenta referir a una cosa nica globalmente debe utilizar un URI que diferencie
ese recurso de todas las otras cosas. Los URIs que identifican en relacin al contexto local del
usuario final deberan ser utilizados slo cuando el contexto mismo es un aspecto definido
del recurso140.
Cada URI comienza con un esquema, que posee su especificacin para asignar
138 http://www.faqs.org/rfcs/rfc3986.html
139
http://localhost tiene la misma interpretacin para cada usuario final de esa referencia, aunque la interfaz de
red correspondiente a localhost puede ser diferente para cada usuario final: la interpretacin es
independiente del acceso
140
Como un manual de ayuda on-line que apunta a un archivo en el sistema de archivos del usuario final
(file:///etc/hosts).
126
75.00 Tesis
identificadores dentro de ese esquema. As la sintaxis URI, es un sistema de nombres federado
y extensible, donde cada especificacin de esquema puede restringir la sintaxis y semntica
de los identificadores utilizados en el esquema.
Esta especificacin define los elementos de la sintaxis URI requeridos por todos los esquemas
URIs o comunes a muchos esquemas URIs. Define la sintaxis y semntica necesaria para
implementar un analizador sintctico independiente del esquema, por el cual los manejos
dependientes del esquema de un URI pueden ser pospuestos hasta que la semntica
dependiente del esquema sea requerida.
Los componentes path y esquema son requeridos, aunque el path puede estar vaco. Cuando
la autoridad est presente, el path debe empezar con el carcter / o puede estar vaco.
Cuando la autoridad no est presente, el path no puede empezar con los caracteres //.
La especificacin detalla los caracteres, los componentes de la sintaxis, los usos, la resolucin
por referencia, normalizacin y comparacin, entre otras. Ac hemos mencionado slo
algunas partes con el propsito de aclarar y diferenciar lo que URI representa.
IRI
RFC 3987141. El Internationalized Resource Identifier (IRI) extiende la sintaxis URI con un
repertorio ms amplio de caracteres.
141 http://tools.ietf.org/html/rfc3987
127
75.00 Tesis
Los IRIs han sido diseados para ser compatibles con los URIs. Esta compatibilidad es la
especificacin de mapeos entre una secuencia de caracteres IRI y una secuencia de
caracteres URI.
La RFC describe los mapeos IRIs a URIs, conversin URIs a IRIs, utilizacin de los IRIs, pautas
para el procesamiento IRI y URI, entre otras.
128
75.00 Tesis
Referencias
http://hermit-reasoner.com/
HermiT OWL Reasoner
http://owlapi.sourceforge.net/index.html
The OWl API
http://www.w3.org/2001/sw/Activity.html
Herman I. 2010, ltima revisin. Semantic Web Activity Statement.
Rodrguez C. M., Montao W. C., Martnez J.M. 2010. Razonadores semnticos: en estado del
arte. Revista Ingenium de la Facultad de Ingeniera, Universidad de San Buenaventura,
Bogot, Colombia. Ao 11. N 21. Enero-Junio de 2010.
http://jena.sourceforge.net/ontology/index.html
Dickinson I. 2009. Jena Ontology API.
http://www.w3.org/2001/sw/SW-FAQ
Herman I. 2009, ltima revisin. W3c Semantic Web Frequently Asked Questions.
http://www.w3.org/standards/techs/owl#w3c_all
W3C. 2009. OWL Web Ontology Language Current Status.
http://lsdis.cs.uga.edu/projects/meteor-s/
METEOR-S: Semantic Web Services and Processes.
http://www.w3.org/2002/ws/sawsdl/
Semantic Annotations for WSDL Working Group
Garca-Snchez F., Valencia-Garca R., Martnez-Bjar R., Fernndez-Breis J. 2009. An
ontology, intelligent agent-based Framework for the provision of semantic web service.
Expert Systems with Applications Vol. 36, Issue 2, Part 2, March 2009. Pages 3167-3187.
Navoni N., Gonzlez P. 2009. Indizacin social y control de vocabulario. II Encuentro
Nacional de Catalogadores. La Cooperacin y las Normas para la Organizacin y Tratamiento
de la Informacin en las Bibliotecas Argentinas.
http://www.ibm.com/developerworks/webservices/library/ws-restwsdl/
Hebeler J., Fisher M., Blace R., Perez-Lopez A. 2009. Semantic Web Programming. 651
pginas. Editorial Wiley Publishing, Inc. ISBN 978-0-470-41801-7.
Mandel L. 2008. Describe REST Web Services with WSDL 2.0.
Ketel M. 2008. Mobile Agents Based Infrastructure for Web services Composition. 978-1-
4244-1884-8/08 IEEE.
Qiu Y., Ge J., Yin S. 2008. Web Services Composition Method Based on OWL. IEEE
International Conference on Computer Science and Software Engineering.
Mansilla Espinosa L. 2008. Qu son los Agentes Inteligentes de Software?. CONCYTEG. Ao
3. Nm. 31, 21 de enero de 2008.
Fahad, M., Qadir, M.A. and Shah, S.A.H., 2008. In IFIP International Federation for
Information Processing, Volume 288; Intelligent Information Processing IV; Zhongzhi Shi, E.
Mercier-Laurent, D. Leake; (Boston: Springer), pp. 1727.
Payne T. 2008. Web Services from Agent Perspective. IEEE Intelligent Systems. Vol. 23. Nro.
2.
129
75.00 Tesis
Contreras J., Martnez Comeche J.A. 2007. Tutorial Ontologas. Grupo de Trabajo sobre
Normalizacin para la Recuperacin de Informacin en Internet (Normaweb).
http://www.sedic.es/gt_normalizacion.asp
Thakker D., Osman T., Al-Dabass D. 2007. Semantic-Driven Matchmaking and Composition
of Web services Using Case-Based Reasoning. Fifth European Conference on Web services.
Yong-Feng L., Jason Jen-Yen C. 2007. OWL-Based Description for Agent Interaction. 31st
Annual International Computer Software and Applications Conference (COMPSAC 2007)
IEEE.
Akkiraju R., Sapkota B. 2007. Semantic Annotations for WSDL and XML Schema Usage
Guide. W3C Working Group.
http://www.w3.org/TR/sawsdl-guide/#registries
Berners-Lee T., Shadbolt N., Hall W. 2006. The Semantic Web Revisited. IEEE Intelligent
Systems.
Li Y., Yu X., Geng L. Wang L. 2006. Research on Reasoning of The Dynamic Semantic Web
Services Composition. Proceedings of the 2006 IEEE/WIC/ACM International Conference on
Web Intelligence (WI 2006 Main Conference Proceedings) (WI06)
Kster U., Stern M., Knig-Ries B. 2005. A Classification of Issues and approaches in
Automatic Service Composition. Intl. Workshop WESC05.
Elenius D., Denker G., Martin D., Gilham F., Khouri J., Sadaati S., Senanayake R. 2005. THE
OWL-S Editor A Development Tool for Semantic Web Services. Lecture Notes in Computer
Science, Vol. 3532/2005, 78-92. Springer Link.
Martin D., Paolucci M., McIlraith S., Burstein M., McDermott D., McGuinness D., Parsia B.,
Payne T., Sabou M., Solanki M., Srinivasan N., Sycara K. 2005. Bringing Semantics to Web
Services: The OWL-S Approach. SWSWPC 2004. LNCS 3387, pp. 26-42, 2005. Springer-
Verlag.
Battle S., Berstein A., Boley H., Grosof B., Gruniget M., Hull R., Kifer M., Martin D., Mcllraith S.,
McGuinness D., Su J., Tabet S. 2005. Semantic Web Services Framework (SWSF).
http://www.w3.org/Submission/SWSF/
Akkiraju R., Farrell J., Miller J., Nagarajan M., Schmidt M., Sheth A., Verma K. 2005. Web
Service Semantics WSDL-S.
http://www.w3.org/Submission/WSDL-S/#Terminology
Abin M. 2005. El Futuro de la Web, XML, RDF/RDFS, ontologas y la Web Semntica.
http://www.javahispano.org
Motik B., Sattler U., Studer R. 2005. Query Answering for OWL-DL with Rules. Web
Semantics: Science, Services and Agents on the World Wide Web, Volume 3, Issue 1, Rule
Systems, July 2005, Pages 41-60.
Baader F., Lutz C., Milicic M., Sattler U., Wolter F. 2005. Integrating Description Logics and
Action Formalisms for Reasoning about Web Services. LTCS-Report 05-02, Chair for
Automata Theory, Institute for Theoretical Computer Science, Dresden University of
Technology, Germany, 2005.
Miller J., Verma K., Rajasekaran P. Sheth A., Aggarwal R., Sivashanmugam K. 2004. WSDL-S
Adding Semantic to WSDL - White Paper. LSDIS Lab, University of Georgia.
http://lsdis.cs.uga.edu/projects/meteor-s/wsdl-s/
Manola F, Miller E. 2004. RDF Primer. http://www.w3.org/TR/2004/REC-rdf-primer-
130
75.00 Tesis
20040210/#reification
Booth D., Haas H., McCabe F., Newcomer E., Campion M., Ferris C., Orchard D. 2004. Web
Services Arquitecture.
http://www.w3.org/TR/ws-arch/
Newcomer E.; Lomov G. 2004. Understanding SOA with Web Services. 480 Pags. Editorial
Addison Wesley Professional. ISBN 0-321-18086-0.
Sycara K., Paolucci M. 2004. Ontologies in Agent Arquitectures in Handbook on Ontologies
in Information Systems.
Aversano L., Canfora G., Ciampi A. 2004. An algorithm for Web Service Discovery through
their composition. Proceedings of the IEEE International Conference on Web Services
(ICWS04).
Aversano L., Canfora G., Ciampi A. 2004. An algorithm for Web Service Discovery through
their composition. Proceedings of the IEEE International Conference on Web Services
(ICWS04).
Rao J., Su X. 2004. A Survey of Automated Web Service Composition Methods. In Proceedings
of the First International Workshop on Semantic Web Services and Web Process
Composition, SWSWPC 2004.
Brickley D., Guha R.V. 2004. RDF Vocabulary Description Language 1.0: RDF Schema.
http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
Paolucci M., Sycara K. 2003. Autonomous Semantic Web Services. In IEEE Internet
Computing, vol. 7, #5, Septiembre/Octubre 2003, pp 34-41.
Paolucci M., Kawamura T., Payne T., Sycara K. 2003. Delivering Semantic Web Services. In
Proceedings of the Twelves World Wide Web Conference (WWW2003).
Salazar Serrudo C. 2003. Agentes en Comercio Electrnico. Acta Nova. Vol. 2. Num.3,
Diciembre 2003.
Paolucci M., Kawamura T., Payne T., Sycara K. 2002. Semantic Matching of Web Services
Capabilities. In Proceedings of the 1st International Semantic Web Conference (ISWC2002).
Huhns M. 2002. Agents as Web Services. IEEE Internet Computing Vol. 6. Nro. 4. Pag. 93-95
ISSN: 1089-7801.
Sirin E., Hendler J., Parsia B. 2002. Semi-Automatic Composition of Web Services using
Semantic Descriptions.
Sycara K., Lu J., Klusch M. 1998. Interoperability among Heterogeneous Software Agents on
the Internet. Technical Report CMU-RI-TR-98-22, CMU Pittsburgh, USA.
Wooldridge M. 1998. Intelligent Agents. In Gehard Weiss, editor, Multiagent Systems: A
modern Approach to Distributed Artificial Intelligence, chapter 1, pages 27-77. The MIT
Press, 1999.
131
75.00 Tesis
Anexo I
El cdigo desarrollado para la construccin del prototipo se encuentra disponible en el cd que
acompaa el presente trabajo. Se recomienda ver los reportes en html utilizando algn navegador
(IE, Mozilla).
132
75.00 Tesis
Anexo II
Objetivos
6) Construir un prototipo para llevar a cabo los experimentos y elaborar las conclusiones
finales en relacin a los resultados obtenidos.
11)Brindar una breve resea acerca de los servicios Web y su creciente utilizacin, en
especial en una arquitectura orientada a servicios.
133