O documento discute planejamento para serviços web semânticos, incluindo uma introdução aos serviços web, web semântica e OWL-S, e descreve o uso de ontologias e planejamento para composição automática de serviços web, implementado na ferramenta WEBRPlan, ilustrado em um estudo de caso de planejamento de viagens.
Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)
Planejamento para Serviços Web Semânticos
1. Planejamento para
Serviços Web Semânticos
Juliana Jabra Chahoud
jchahoud@gmail.com
Junho / 2006
Orientadora: Profa Leliane Nunes de Barros
2. Conteúdo da apresentação
n Introdução
n Serviços Web
n Web Semântica
n OWL-S: ontologias para descrição de serviços Web
n Planejamento com ontologias
n A ferramenta WEBRPlan
n Um estudo de caso: planejamento de viagens
n Conclusões e contribuições
n WEBRPlan: Demonstração
3. Motivação
n Serviços Web são componentes de software que podem ser
acessados por outros softwares através da Web;
n Com o crescimento e proliferação dos serviços Web, torna-se
cada vez mais difícil encontrar um serviço que possa executar
uma tarefa desejada.
n Isto é ainda mais difícil quando não existe um serviço único, mas
sim combinações de serviços que sejam capazes de executar tal
tarefa
n Essa combinação de serviços para atingir uma necessidade é
denominada composição de serviços e pode ser feita por um
programador ou automaticamente.
n O objetivo desse trabalho é automatizar o processo de
composição de serviços.
Introdução
4. Exemplo de composição de serviços Web
1 2
Preço de livros
em reais
Preço de livros em Conversão de
dólares moedas
Introdução
5. Composição de serviços completamente
automatizada
n A composição de serviços Web completamente
automatizada pode ser caracterizada como um
processo que envolve os três passos:
1) Descoberta automática - localizar serviços candidatos
para a composição
2) Composição automática - determinar quais serviços
devem ser executados e em que seqüência para atingir
o objetivo
3) Execução automática - invocação dos serviços Web
Introdução
6. O que é necessário para a automação
n Descrever serviços Web de modo que eles possam ser
interpretáveis por máquinas
è Essa é a proposta da Web Semântica
n Determinar quais serviços executar e em que ordem:
è Problema tratado por técnicas de Planejamento em
Inteligência Artificial
Introdução
7. Principais objetivos desse trabalho
n definir como a composição de serviços Web pode ser descrita
como um problema de planejamento;
n determinar quais técnicas de planejamento em IA podem ser
usadas para a composição de serviços Web, o que envolve
identificar quais são as restrições do ambiente de planejamento;
n identificar uma maneira de descrever serviços Web como
domínios de planejamento (i.e., em termos de ações, tarefas, pré-
condições e efeitos) com base nos princípios da Web Semântica;
n implementar uma ferramenta de software para dar suporte
durante todas as etapas envolvidas na composição automática de
serviços Web – WEBRPlan (Planejamento para WEB do Brasil)
n implementar um conjunto de serviços Web que serão usados num
estudo de caso
Introdução
8. Estudo de Caso:
planejamento de uma viagem para Europa
n Um turista deseja visitar diversas cidades da Europa. Essa tarefa envolve: reservar
hospedagens, comprar passagens aéreas ou de trem, alugar carro, comprar
ingressos para pontos turísticos e criar uma agenda com seus compromissos de
viagem.
n Restrições do problema:
l o cartão de crédito do turista possui um limite de saldo;
l acomodações possuem uma dada disponibilidade de vagas;
l de acordo com a distância entre as cidades existem diferentes tipos de transporte
disponíveis;
l de acordo com o seu saldo, o turista pode pagar diferentes tipos de transporte e
acomodação;
l de acordo com a previsão de tempo diferentes pontos turísticos podem ser visitados.
n Serviços Web criados:
l Hospedagem, Transportes, Ingressos, EuroInfo (informações sobre tempo e
distância) e Agenda.
Introdução
9. Conhecimento prévio sobre o domínio de viagens
n Meios de transporte: trem, carro ou avião
n Meios de transporte possuem as propriedades: custo e disponibilidade. O custo
de trem e de avião corresponde ao preço das passagens e o custo de carro ao seu
aluguel.
n Tipos de passagens: passagem aérea ou passagem de trem. Passagens possuem
as seguintes propriedades: passageiro, origem, destino, data e custo.
n Localizações: cidades, aeroportos, países, acomodações e pontos turísticos. Uma
localização pode estar localizada em outras localizações.
n Acomodações: hotéis, pousadas e albergues. Acomodações possuem as seguintes
propriedades: número de vagas, custo (diária) e localização.
n Pontos turísticos podem ser classificados em pontos turísticos de inverno ou de
verão.
n Pessoas: turistas e passageiros. Pessoas possuem cartão de crédito que por sua
vez possui um saldo. Turistas, possuem agendas com datas e descrições de seus
compromissos.
n Um turista possui os seguintes compromissos: embarcar, desembarcar, retirar
carro, devolver carro, visitar pontos turísticos, check-in e check-out em uma
acomodação.
n Pessoas e meios de transporte mudam de localização.
Introdução
11. O que são serviços Web?
n São componentes de software que:
l disponibilizam uma interface (WSDL) que descreve
uma coleção de operações acessíveis pela rede
através de mensagens (SOAP), em formato XML
l são independentes de linguagens e de plataformas
(padrões propostos pela W3C: WSDL, SOAP, XML,
HTTP)
Serviços Web
12. Como usar um serviço Web?
1 Publica a URL e descrição do
serviço Web
2 Descobre o serviço Web UDDI
3 Lê a descrição WSDL
5 Cria um proxy para o serviço Web
2 1
6 Invoca o
serviço Web
através do Cliente
Proxy 3 .wsdl
5 6
Proxy Serviço Web
Serviços Web
13. WSDL: exemplo do serviço para compra de ingressos
Onde o serviço está Como as mensagens Operações que serão Mensagens que serão
localizado serão transmitidas: permitidas: transmitidas:
especificação do SOAP comprarIngresso comprarIngressoRequest
comprarIngressoResponse
Serviços Web
14. Principais utilizações dos serviços Web
n Integração entre empresas (B2B)
n Integração entre empresas e consumidores (B2C)
n Integração de aplicações corporativas
n Dispositivos móveis
n Distribuído / Peer-to-Peer
Serviços Web
16. Serviços Web Semânticos
n A linguagem WSDL descreve a interface de serviços
Web de modo que serviços possam ser acessados
independentemente de linguagem e plataforma.
n Porém, para fazer a composição automática, bem como
a descoberta, é necessária uma descrição de serviços
Web segundo a proposta da Web Semântica:
l conteúdo Web descrito em uma linguagem formal,
interpretável por máquina, que permita fazer inferências
lógicas
Web Semântica
17. O que é Web Semântica?
n A Web Semântica surge como uma evolução da Web
atual, com a principal preocupação em representar
informações na Web de maneira que as máquinas
possam interpretá-las
n Tecnologias necessárias para sua implementação:
l uma maneira de disponibilizar definições de
termos e relações entre eles (ontologias)
l uma linguagem que permita adicionar semântica
aos documentos da Web (instâncias das
ontologias)
ontologias + instâncias = base de conhecimento
Web Semântica
18. O que é ontologia?
n Uma especificação formal (baseada em lógica) de conceitos de
um domínio e da relação que existe entre eles.
n Ontologias servem para:
l compartilhar uma interpretação da estrutura de
informação entre pessoas ou agentes computacionais
l permitir a reutilização de uma especificação (modelo)
de um domínio do conhecimento
l fazer inferências lógicas a respeito de um domínio
n OWL é a linguagem adotada como padrão pelo W3C para
descrição de ontologias
Web Semântica
19. OWL: características básicas
n Classe é uma coleção de propriedades que descrevem
um grupo de indivíduos (owl:Class)
n Propriedades são usadas para criar relações
(owl:ObjectProperty e owl:DatatypeProperty)
n OWL fornece características de propriedades,
restrições de tipo (owl:Restriction) e de cardinalidade
(owl:Cardinality)
n Permite construções de classes complexas
(intersectionOf, unionOf e complementOf)
Web Semântica
20. Ferramentas para ontologias
n Ferramentas para edição de ontologias (Protégé, Oiled,
OWL-editor, etc)
n Ferramentas para construção de aplicações: para
consultas em ontologias e mecanismos de inferências
(Jena, Racer, Pellet, etc)
Web Semântica
21. JENA
n Framework em JAVA para construção de aplicações
para Web Semântica, fornecendo um ambiente de
programação para as linguagens RDF, RDFS e OWL.
Suas principais funcionalidades são:
l APIs para RDF e para ontologias, incluindo leitura e
escrita nos documentos
l Armazenamento das informações em memória ou
persistência em banco de dados
l Linguagens para consulta em ontologias (ARQ, que
implementa SPARQL)
l Motores de inferência (RDFS, OWL, regras)
Web Semântica
22. Ontologias usadas nesse trabalho
n Esse trabalho, além de usar ontologias que descrevem
serviços Web (mostradas a seguir), são usadas
também ontologias específicas do domínio de
aplicação.
n Por exemplo, para o Estudo de Caso sobre viagens
para Europa, foi construída a ontologia Euro.owl
(Protégé).
Web Semântica
24. OWL-S: OWL-based Web Service ontology
n Conjunto de ontologias para descrever serviços Web
através da linguagem OWL que facilitam a construção
de processos automáticos para Web
n OWL-S é estruturada em quatro ontologias:
l Service.owl,
l Profile.owl,
l Process.owl e
l Grounding.owl
ontologias OWL-S + serviços Web = base de conhecimento
OWL-S
26. ServiceModel (Process.owl):
principal ontologia para composição
n A ontologia ServiceModel descreve:
l operações de serviços como processos atômicos e
compostos
l a decomposição de processos compostos através de
construções de controle (sequence, split, split+join,
unordered, choice, if-then-else, iterate e repeat-until)
l Propriedades de processos necessárias para
automatizar a composição (IOPES) : hasInput,
hasOutput, hasPrecondition e hasResult.
Limitação: não existe um padrão para descrever essas
propriedades.
OWL-S
27. Exemplo de processo composto:
devolve preço em reais de livros
<process:CompositeProcess rdf:ID="BookPriceProcess">
<process:hasInput rdf:resource="#BookName" />
<process:hasInput rdf:resource="#Currency" />
<process:hasOutput rdf:resource="#BookPrice" />
<process:composedOf>
<process:Sequence>
<process:components rdf:parseType="Collection">
<process:AtomicProcess rdf:about="BNPrice.owl#BNPriceProcess" />
<process:AtomicProcess rdf:about="CurrencyConverter.owl#CurrencyConverterProcess" />
</process:components>
</process:Sequence>
</process:composedOf>
...
</process:CompositeProcess>
OWL-S
28. Ferramentas para a linguagem OWL-S
n WSDL2OWLS: dado um serviço Web descrito na
linguagem WSDL, essa ferramenta fornece uma
tradução semi-automática de WSDL para OWL-S:
l especificação completa de Grounding e
l especificações parciais das ontologias e Process e
Profile (adição manual de IOPES)
n OWL-S API: dado um serviço Web descrito em OWL-S,
essa ferramenta fornece uma maneira de ler e executar
esses serviços
OWL-S
30. Planejamento
n Planejar é um processo de escolha de ações para atingir
um objetivo, através da previsão dos efeitos da execução
dessas ações e da descrição do estado atual do mundo.
n Planejamento clássico: ações instantâneas, informação
completa do mundo, ações determinísticas, não existência
de ações exógenas.
n Existem duas abordagens de planejamento clássico:
l planejamento para metas de alcançabilidade
l planejamento para decompor tarefas
Planejamento com ontologias
31. Planejamento para metas de alcance
Um problema de planejamento pode ser descrito pelos elementos
<S, s0,G, A, f >, em que:
l S é um conjunto finito de estados;
l s0 ∈ S é um estado inicial;
l G ⊆ S é um conjunto de estados meta;
l A(s) é um conjunto finito de ações aplicáveis, para cada estado s ∈ S;
l f : S × A −> S é uma função de transição de estados que mapeia um estado
s para outro estado s’, após a execução de uma ação a em s.
Plano Solução: uma seqüência de ações que quando executada em s0 leva a
(alcança) um estado meta g ∈ G.
Estratégia de solução: raciocinar sobre estados e a função de transição de estados
para alcançar os estados meta.
Planejamento com ontologias
32. Planejamento para decompor tarefas
(planejamento hierárquico)
Um problema de planejamento hierárquico pode ser descrito pelos elementos <S, s0,A, f, T,M, d0>, em que:
n S é um conjunto finito de estados;
n s0 ∈ S é um estado inicial;
n G ⊆ S é um conjunto de estados meta;
n A(s) é um conjunto finito de ações aplicáveis (tarefas primitivas), para cada estado s ∈ S;
n f : S × A −> S é uma função de transição de estados que mapeia a transição de um estado s para outro
estado s’ após a execução de uma ação a em s;
n T é um conjunto finito de (nomes) tarefas compostas;
n M é um conjunto de métodos para decompor tarefas compostas. Um método é um par (t,d), onde t ∈ T e
d é uma rede de tarefas. M(s) é um conjunto finito de métodos aplicáveis, para cada estado s ∈ S;
n Uma rede de tarefas é formada por um conjunto de tarefas compostas ou primitivas e uma ordem parcial
(ou total) entre elas;
n d0 é a rede de tarefas inicial;
Plano Solução: Uma rede de tarefas primitivas que pode ser executada em s0
Estratégia de solução: raciocinar sobre os métodos (alternativos) de decomposição das tarefas compostas
contidas na rede de tarefas inicial (d0)
Planejamento com ontologias
33. Planejamento para metas de alcance: exemplo
s0: {em(SaoPaulo), G: visitada(TorreEiffel)
tempassagem(SaoPaulo,Paris)}
Ação: visitar(TorreEiffel)
Prec: {em ( Paris)}
Ação: viajar(SaoPaulo,Paris)
Prec: {em (SaoPaulo) , Efeitos de adição: {visitada
(TorreEiffel)}
tempassagem(SaoPaulo,Paris)}
Efeitos de Adição: {em(Paris)}
Efeitos de Eliminação: {em(SaoPaulo),
tempassagem(SaoPaulo,Paris)}
Plano solução: viajar( SãoPaulo, Paris) è visitar( TorreEiffel)
Planejamento com ontologias
34. Planejamento para decompor tarefas: exemplo
Tarefa: viajar(Barcelona,Paris) Tarefa: comprar_pass_aérea(Barcelona,Paris)
Prec: {saldo_cartao(C) ,
s0: {em(Barcelona), saldo_cartao(C),
custo_pass_aerea(Barcelona, Paris,P1), (C>= P1)}
custo_pass_aerea(Barcelona, Paris, P1)
Efeitos de adição:
custo_pass_trem(Barcelona, Paris, P2)}
{passagem_comprada(Barcelona, Paris),
Método(viajar,d1) saldo_cartao(C – P1)}
Prec: {distancia(Barcelona,Paris) > 500 km} Efeitos de eliminação: {saldo_cartao(C)}
Rede de Tarefas d1:
Tarefa: viajar_de_aviao(Barcelona,Paris)
{comprar_pass_aérea(Barcelona,Paris)
Prec: {passagem_comprada(Barcelona, Paris),
viajar_de_aviao(Barcelona,Paris)}
em(Barcelona)}
Método(viajar,d2) Efeitos de adição: {em(Paris)}
Prec: { } Efeitos de eliminação: {em(Barcelona)}
Rede de Tarefas d2:
{comprar_pass_trem(Barcelona,Paris),
viajar_de_trem(Barcelona,Paris)}
Plano solução: comprar_pass_aérea(Barcelona,Paris) è viajar_de_aviao(Barcelona,Paris)
Planejamento com ontologias
35. Planejamento para serviços Web: as suposições
feitas em planejamento clássico
Na Web, não é possível fazer a maioria das suposições feitas no planejamento
clássico:
l informação incompleta do mundo: a Web possui uma coleção massiva de
informações e que nem sempre podem ser acessadas
l ainda que todo o conteúdo da Web pudesse ser acessado, qualquer aplicação
deve coletar informação na Web somente quando necessária
l não se pode ter certeza sobre os efeitos da execução de uma ação (ações
não-determinísticas)
l podem ocorrer mudanças no estado do mundo que independem das ações
definidas no domínio de planejamento (ações exógenas)
l podem ocorrer transições de estado que não sejam instantâneas (ações com
duração de tempo)
l serviços Web podem descrever nomes de processos e dados (nomes de ações
e literais) que podem ser subclasses ou equivalência de outros nomes de
conceitos
Planejamento com ontologias
36. Como fazer planejamento de serviços Web?
Nesse trabalho foram adotadas as seguintes soluções:
1. Serviços Web devem ser descritos como instâncias das ontologias do OWL-S
2. Uso de técnicas de planejamento hierárquico para decompor processos
compostos de serviços Web
3. Tarefas primitivas e compostas são processos
OWL-S (serviços Web são naturalmente descritos em uma estrutura hierárquica)
4. O estado do mundo é representado como instâncias de ontologias: de serviços e
do domínio de aplicação (base de conhecimento) + as informações da Web
5. Pré-condições (de ações primitivas ou de métodos de decomposição) especificam
consultas à base de conhecimento ou consultas à Web
6. Para verificar se uma pré-condição é verdadeira, é usado um motor de inferência
junto com ontologias
Planejamento com ontologias
37. Planejamento para decompor tarefas:
exemplo utilizando consultas na base de conhecimento
Tarefa: viajar(Barcelona,Paris)
Tarefa:comprar_pass_aérea(euro:Barcelona,euro:Paris)
Prec: {SELECT ?C WHERE
Método(viajar,d1) { euro:cartao euro:saldo ?C} ,
Prec: { SELECT ?P1 WHERE
(SELECT ?x WHERE {?pass rdf:type euro:passagemAerea.
{ ?dist rdf:type euro:dist. ?pass euro:de euro:Barcelona.
?dist euro:de euro:Paris. ?pass euro:para euro:Paris.
?dist euro:para euro:Barcelona. ?pass euro:custo ?P1}
?dist euro:valor ?x}) (C >= P1)}
x > 500 km} Efeitos de adição:
Rede de Tarefas d1: {(euro:pass_comprada, euro:Barcelona, euro:Paris),
{comprar_pass_aérea (euro:cartao, euro:saldo, C – P1)}
(euro:Barcelona,euro:Paris) Efeitos de eliminação: {(euro:cartao, euro:saldo, C)}
viajar_de_aviao
(euro:Barcelona,euro:Paris)}
Tarefa: viajar_de_aviao(Barcelona,Paris)
...
Planejamento com ontologias
39. Dificuldades para a implementação da ferramenta
WEBRPlan
1. A maioria dos sistemas de planejamento não fazem:
l chamadas externas para a verificação de pré-
condições (na Web);
l raciocínio sobre ontologias
2. Não existem Serviços Web descritos diretamente em
OWL-S
3. Não é possível descrever processos compostos, pré-
condições e efeitos em WSDL. Assim, tradutores
automáticos de WSDL para OWL-S são limitados.
A ferramenta WEBRPlan
40. Sistema de planejamento JSHOP2
JSHOP2 é um sistema de planejamento hierárquico que
possui características desejadas para o planejamento
de serviços Web:
l redes de tarefas totalmente ordenadas, o que permite
conhecer o estado corrente do mundo em cada etapa
do processo de planejamento, facilitando a verificação
de pré-condições;
l possui um grande poder de expressividade, por
exemplo, nas pré-condições pode-se misturar
computações numéricas e chamadas a programas
externos (consultas a base de conhecimento ou Web).
A ferramenta WEBRPlan
41. WEBRPlan
Ferramenta implementada em JAVA que possui quatro
funções principais:
1. Seleção de serviços Web para composição e seleção
das ontologias relacionadas ao domínio de aplicação
2. Conversão das descrições dos serviços em WSDL para
OWL-S + inserção de processos compostos e IOPES
3. Conversão das descrições dos serviços em OWL-S para
tarefas e métodos de planejamento hierárquico +
inserção das chamadas a um avaliador de pré-condições
4. Composição de serviços Web, dada uma rede de tarefas
especificada pelo usuário, utilizando o planejador
JSHOP2 e o JENA (JENA2)
A ferramenta WEBRPlan
43. Execução do plano
n apesar de fazer coleta de informações e consulta a uma
base de conhecimento on-line, o JSHOP2 gera um
plano para ser executado off-line.
n somente nesse instante os efeitos da execução dos
processos são adicionados a base de conhecimento
A ferramenta WEBRPlan
45. Metodologia de desenvolvimento do estudo de caso
Resolver o problema de planejamento de viagens de três
maneiras diferentes:
1. Descrever o problema diretamente como tarefas e
métodos do planejador JSHOP2
2. Uso do planejador JSHOP2 fazendo consultas a base de
conhecimento formada pela ontologia de viagens
(Euro.owl) e suas instâncias. Aqui, precondições e e
efeitos são termos da ontologia. Uso do JENA.
3. Planejamento de viagens diretamenta na Web.
Construção e tradução dos serviços de viagem para
tarefas e métodos do JSHOP2. Uso do JENA e de cliente.
Estudo de caso
46. Dados do estudo de caso
n Foram implementados 5 serviços Web contendo:
l 11 operações transacionais (não instanciadas),
l 12 operações de coleta de informação (na base de conhecimento ou na Web),
l Um conjunto de 4 ontologias para cada serviço criado e
l Conceitos definidos na ontologia Euro.owl (editada no Protégé).
Estudo de caso
48. Conclusões
n Neste trabalho foi mostrado como a composição de serviços Web
pode ser descrita como um problema de planejamento;
n Foi identificado que planejamento hierárquico com pré-condições
como chamadas de programas externos é uma técnica que pode
ser usada a composição de serviços Web;
n Foi definida uma maneira de descrever serviços Web como
domínios de planejamento (i.e., em termos de ações, tarefas, pré-
condições e efeitos) com base nos princípios da Web Semântica;
n Foi implementado um conjunto de serviços Web para um estudo
de caso sobre planejamento de viagens
n Foi implementada a ferramenta WEBRPlan para dar suporte
durante todas as etapas envolvidas na composição automática de
serviços Web.
Conclusões e contribuições
49. Conclusões
n Foram estudadas e/ou empregadas as seguintes
tecnologias:
l Ontologias e Web Semântica
l JENA, SPARQL, Protégé, OWL, RDF, RDFS
l XML, Java, Eclipse
l Serviços Web, WSDL, Tomcat, Axis e os protocolos
HTTP e SOAP
l OWL-S, OWL-S API, WSDL2OWL-S
l Planejamento em IA e o planejador JSHOP2
Conclusões e contribuições
50. Contribuições
n propor e implementar uma combinação original de tecnologias para
realizar a composição de Serviços Web:
JSHOP-2 + JENA + OWL-S
n explicar e implementar um processo completo de composição de serviços
Web segundo a proposta da Web Semântica
n desenvolver uma interface entre o planejador e o motor de inferência,
evitando-se alterar a implementação do planejador
n adotar uma nova maneira de representar pré-condições e efeitos em OWL-
S
n disponibilizar a ferramenta de software WEBRplan, para ser usda em
outros domínios de aplicação, diferentes do estudo de caso: WEBRplan
ferramenta pode ser vista como um produto gerado pelo trabalho de
mestrado
n construção incremental do estudo de caso como uma forma didática para
a compreensão do uso de 3 tecnologias emergentes: (1) planejamento, (2)
planejamento com ontologias e (3) planejamento com ontologias para
serviço Web.
Conclusões e contribuições