144
Planejamento para servi¸ cos Web semˆ anticos Juliana Jabra Chahoud DISSERTAC ¸ ˜ AO APRESENTADA AO INSTITUTO DE MATEM ´ ATICA E ESTAT ´ ISTICA DA UNIVERSIDADE DE S ˜ AO PAULO PARA OBTENC ¸ ˜ AO DO T ´ ITULO DE MESTRE EM CI ˆ ENCIAS ´ Area de Concentra¸ ao: Ciˆ encia da Computa¸ ao Orientadora: Profa. Dra. Leliane Nunes de Barros ao Paulo, agosto de 2006.

Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Embed Size (px)

DESCRIPTION

Planejamento para serviços Web semânticos Juliana Jabra Chahoud DISSERTAÇÃO APRESENTADA AO INSTITUTO DE MATEMATICA E ESTATISTICA DA UNIVERSIDADE DE SAO PAULO PARA OBTENÇÃO DO TÍTULO DE MESTRE EM CÊNCIAS Área de Concentração: Ciência da Computação Orientadora: Profa. Dra. Leliane Nunes de Barros São Paulo, agosto de 2006.

Citation preview

Page 1: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Planejamento

para

servicos Web semanticos

Juliana Jabra Chahoud

DISSERTACAO APRESENTADA

AO

INSTITUTO DE MATEMATICA E ESTATISTICA

DA

UNIVERSIDADE DE SAO PAULO

PARA

OBTENCAO DO TITULO DE MESTRE

EM

CIENCIAS

Area de Concentracao: Ciencia da ComputacaoOrientadora: Profa. Dra. Leliane Nunes de Barros

Sao Paulo, agosto de 2006.

Page 2: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Page 3: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

iii

Planejamento

para

servicos Web semanticos

Este exemplar corresponde a redacao final dadissertacao devidamente corrigida e defendida

por Juliana Jabra Chahoude aprovada pela Comissao Julgadora.

Sao Paulo, 21 de agosto de 2006.

Banca Examinadora:

Prof. Dr. Flavio Soares Correa da Silva - IME/USP

Prof. Dr. Jose de Jesus Perez Alcazar - USP Leste

Prof. Dra. Leliane Nunes de Barros - IME/USP

Page 4: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Page 5: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Dedicatoria

A minha mae, Nelly Thome Chahoud, por seu exemplo de vida, pelo carinho e apoio total emtodos os momentos da minha vida.

v

Page 6: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Page 7: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Resumo

Com o crescimento e a proliferacao dos servicos Web, torna-se cada vez mais difıcil encontrar um servicoque execute uma tarefa especıfica. Isso e ainda mais difıcil quando nao existe um servico unico, mas simcombinacoes de servicos que podem executar a tarefa desejada. O objetivo deste trabalho e automatizar estacombinacao, conhecida como composicao de servicos Web.

Para atingir este objetivo, sera utilizado o sistema de planejamento hierarquico JSHOP2, em conjuntocom descricoes semanticas de servicos na linguagem OWL-S. Como planejadores nao podem lidar com aexpressividade da Web Semantica, serao apresentadas algumas formas de integrar o planejador JSHOP2 commotores de inferencia.

Palavras-chave: Inteligencia Artificial, Planejamento em IA, Composicao de servicos Web, Web Semantica.

ix

Page 8: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Page 9: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Abstract

As Web services proliferate, it becomes more difficult to find the specific service that can perform thetask at hand. It becomes even more difficult when there is no single service capable of performing that task,but there are combinations of existing services that could. The subject of this dissertation is automating thiscombination, called Web services composition.

To achieve this objective, it will be used the hierarchical planning system JSHOP2 with OWL-S WebService descriptions. As planners cannot handle the expressivity of Semantic Web, we demonstrate how anOWL reasoner can be integrated with an AI planner.

Keywords: Artificial Intelligence, AI Planning, Web services composition, Semantic Web.

xi

Page 10: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

xii

Page 11: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Indice

1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Composicao de servicos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Principais objetivos deste trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Organizacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Servicos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1 Surgimento dos servicos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Sistemas Distribuıdos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3 O que sao servicos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4 Semantica dos servicos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.5 Visao geral de construcao e uso de um servico Web . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.6 Tecnologias utilizadas nos servicos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.6.1 Camada de Processo de Descoberta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.6.2 Camada de Descricao: WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.6.3 Camada de Mensagens: SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.7 Principais utilizacoes dos servicos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3 Servicos Web e a Web Semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1 Ampliando a Semantica dos servicos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2 O que e Web Semantica? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

xiii

Page 12: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

xiv Indice

3.3 RDF e RDF-Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.4 Ontologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5 OWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.6 Inferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.7 Ferramentas para ontologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.7.1 JENA2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.7.2 Protege-3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.8 OWL-S: Servicos Web Semanticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.8.1 Service.owl - organizacao das ontologias . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.8.2 Profile.owl - o que o servico faz? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.8.3 Process.owl - como o servico funciona? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.8.4 Grounding.owl - como o servico pode ser acessado? . . . . . . . . . . . . . . . . . . . . . 44

3.9 Ferramentas para OWL-S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4 Planejamento com ontologias para Servicos Web . . . . . . . . . . . . . . . . . . . . . . . 49

4.1 Planejamento Classico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.2 Planejamento hierarquico e o planejador JSHOP2 . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.2.1 Planejador JSHOP2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.2.2 Um exemplo de domınio para planejamento hierarquico: planejamento de viagens . . . 58

4.3 Planejamento com ontologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.4 Planejamento para servicos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4.4.1 Planejamento hierarquico e OWL-S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5 Trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.1 O sistema Optop (Opt-based total-order planner) . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.2 Uso de PDDL com marcacao semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.3 Planejamento e Execucao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.4 Planejamento com inferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.5 Uso de ontologias para planejamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.6 Robotica Cognitiva (Golog) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.7 Planejamento e algoritmos de combinacao de tipos de dados . . . . . . . . . . . . . . . . . . . . 83

Page 13: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Indice xv

5.8 Planejamento baseado em regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.9 Outros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 Ferramenta WEBRPlan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.1 Suposicoes feitas pela ferramenta WEBRPlan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 WEBRPlan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.2.1 Selecao de servicos Web para composicao e selecao das ontologias relacionadas aosservicos selecionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.2.2 Conversao das descricoes dos servicos em WSDL para OWL-S . . . . . . . . . . . . . . . 89

6.2.3 Conversao das descricoes dos servicos em OWL-S para tarefas JSHOP2 . . . . . . . . . 89

6.2.4 Composicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

7 Estudo de caso do WEBRPlan:composicao de servicos de viagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

7.1 Criacao dos servicos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

7.2 Transformacao WSDL para OWL-S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7.3 Criacao de tarefas JSHOP2 - construcao do domınio e modelagem do problema . . . . . . . . . 102

7.4 Planejamento e Execucao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

7.5 Analise do estudo de caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

8 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

8.1 Contribuicoes deste projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

A Especificacao do domınio Europa na linguagem JSHOP2 . . . . . . . . . . . . . . . . . . 117

Page 14: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Page 15: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Lista de Figuras

2.1 Arquitetura de sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Interacao entre um cliente e um fornecedor de um servico Web . . . . . . . . . . . . . . . . . . 10

2.3 Camadas de um servico Web [Booth et al., 2003] . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4 Documento WSDL do servico Web Ingresso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5 Visualizacao grafica do WSDL do servico Ingresso no Eclipse . . . . . . . . . . . . . . . . . . . 18

2.6 Exemplo de envelope de requisicao SOAP do servico Ingresso . . . . . . . . . . . . . . . . . . . 19

2.7 Exemplo de envelope de resposta SOAP do servico Ingresso . . . . . . . . . . . . . . . . . . . . 19

3.1 Grafo representando expressao RDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2 Exemplo da expressao em RDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 OwlViz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4 Exemplo OWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.5 Modelo criado pelo JENA2 [HPLab, 2006] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.6 SPARQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.7 Relacionamento entre as classes [?] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.8 Exemplo do servico Ingresso instanciado pela ontologia Service.owl . . . . . . . . . . . . . . . 40

3.9 Exemplo do servico Ingresso instanciado pela ontologia Profile.owl . . . . . . . . . . . . . . . . 41

3.10 Exemplo do servico Ingresso instanciado pela ontologia Process.owl . . . . . . . . . . . . . . . . 44

3.11 Exemplo do servico Ingresso instanciado pela ontologia Grounding.owl . . . . . . . . . . . . . 46

3.12 OntoViz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

xvii

Page 16: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

xviii Lista de Figuras

4.1 Dois metodos alternativos para a tarefa nao-primitiva Ir(SP,RJ) . . . . . . . . . . . . . . . . . 55

4.2 Um algoritmo simples de Planejamento Hierarquico . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.3 Hierarquia entre as tarefas do domınio Europa . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.4 Exemplo de problema JSHOP2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.5 Exemplo de solucao gerada pelo JSHOP2 para o problema de viajar para Europa . . . . . . . . 62

4.6 Integracao entre o JSHOP2 e o motor de inferencia do JENA2 . . . . . . . . . . . . . . . . . . 64

4.7 Algoritmo de traducao OWL-S para JSHOP2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.1 Como as marcacoes conectam WSDL com PDDL [Peer, 2004] . . . . . . . . . . . . . . . . . . . 75

5.2 Arquitetura do sistema [Parsia et al., 2004b] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.1 Adicionando ontologias na base de conhecimento . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.2 Carregando arquivos WSDL no editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

6.3 Transformacao com sucesso de WSDL para OWL-S . . . . . . . . . . . . . . . . . . . . . . . . . 91

6.4 Transformacao de OWL-S para JSHOP2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

6.5 Informacoes iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

6.6 Criacao de uma rede de tarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.7 Modelagem do problema e construcao do domınio . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.8 Planejamento e execucao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

6.9 Consultas JENA2 - ARQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.10 Plano gerado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

7.1 Diagrama WSDL do servico de transporte gerado pelo Eclipse . . . . . . . . . . . . . . . . . . . 100

7.2 Rede de tarefas escolhida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

7.3 Todas as consultas efetuadas no exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

7.4 Request e response monitorados pelo AXIS Soap monitor . . . . . . . . . . . . . . . . . . . . . 107

7.5 Todos os servicos estao indisponıveis para o planejamento . . . . . . . . . . . . . . . . . . . . . 108

7.6 Acomodacao de id=2 e o hotel Sansonnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

7.7 Ontologia Euro.owl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

A.1 Exemplo de domınio JSHOP2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

Page 17: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Capıtulo 1

Introducao

1.1 Composicao de servicos Web

Servicos Web sao aplicacoes modulares, que se autodescrevem, podem ser publicadas, localizadase invocadas sobre uma rede, geralmente a Web [Arroyo, 2004]. Mais especificamente, um servicoWeb e um componente de software que disponibiliza uma interface, descrevendo uma colecao deoperacoes que sao acessıveis pela rede atraves de mensagens em formato XML padronizadas, o quefaz com que servicos Web sejam independentes de linguagens e de plataformas e permitam a facilintegracao de sistemas heterogeneos.

No entanto, com o crescimento e a proliferacao dos servicos Web, torna-se cada vez mais difıcilencontrar um servico que possa executar uma tarefa desejada. Isto e ainda mais difıcil quando naoexiste um servico unico, mas sim combinacoes de servicos que sejam capazes de executar tal tarefa.Esta combinacao de servicos para atingir uma necessidade e denominada composicao de servicosWeb e pode ser feita por um programador. O objetivo deste trabalho e estudar e implementarformas de automatizar o processo de composicao de servicos Web.

Para exemplificar o processo de composicao de servicos Web, suponha que um usuario queiraobter na Web o preco de um determinado livro em reais. Assuma que nao exista nenhum servicoque seja capaz de devolver o preco do livro em reais, mas que exista um servico que possa devolvero preco em uma outra moeda (por exemplo, em dolar) e outro servico que faca conversao destamoeda intermediaria para o valor em reais. Invocando estes servicos na sequencia correta, o usuariopode obter o resultado desejado independente da ausencia de um servico que execute esta tarefa

1

Page 18: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

2 Introducao

diretamente. Dessa maneira, um consumidor pode misturar e combinar servicos dependendo dadisponibilidade, qualidade, preco e outros fatores.

Diversos benefıcios podem ser obtidos atraves da composicao automatica de servicos Web, entreeles: a integracao de aplicacoes entre empresas (B2B), integracao entre aplicacoes de diversas empre-sas e consumidores (B2C), criacao de aplicacoes em Grid e eliminacao de tarefas manuais rotineiras.

A composicao de servicos Web completamente automatizada pode ser caracterizada como umprocesso que envolve tres passos:

1. descoberta automatica - localizar servicos candidatos para a Composicao;

2. composicao automatica - determinar quais servicos devem ser executados e em que sequencia,para atingir o objetivo;

3. execucao automatica - invocacao dos servicos Web.

Para que seja possıvel realizar este processo, e necessario inicialmente que sejam disponibilizadasdescricoes dos servicos suficientemente ricas e interpretaveis por maquinas. A linguagem WSDL[Chinnici et al., 2004], que e um padrao para descricao de servicos Web, determina que operacoespodem ser invocadas. Porem, so com esta descricao um agente nao e capaz de interpretar o significadoreal destas operacoes. Este tipo de problema e objeto de estudo da area de pesquisa chamada deWeb Semantica [Berners-Lee et al., 2001].

A Web Semantica surge como uma evolucao da Web atual, com a principal preocupacao emrepresentar informacoes na Web de maneira que as maquinas possam interpreta-las. Para a imple-mentacao da Web Semantica sao necessarias novas tecnologias, como uma linguagem que permitaadicionar semantica aos documentos da Web e uma maneira de descrever e disponibilizar definicoesde termos e relacoes entre eles (ontologias), alem de mecanismos de inferencia apropriados.

Baseada na linguagem para descricao de ontologias OWL [McGuinness and van Harmelen, 2004],foi proposta a linguagem OWL-S [OWLS, 2004] para descricao de servicos Web, que e um con-junto de ontologias que tem como principais objetivos facilitar a descoberta, composicao e invocacaoautomatica de servicos Web. Com os servicos Web descritos em OWL-S e possıvel a um agentedeterminar quais sao as funcionalidades do servico e como este poderia ser invocado.

Page 19: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

1.2 Principais objetivos deste trabalho 3

O objetivo deste trabalho e mostrar como realizar a composicao de servicos Web: um problema deplanejamento que envolve informacao incompleta do mundo (ou informacao distribuıda na Internetque e possıvel coletar quando ela for necessaria e acessıvel) e informacoes descritas a partir dediferentes conceitualizacoes (caracterıstica inerente ao conteudo da Web). Isso sera feito atravesda construcao da ferramenta WEBRPlan: um ambiente integrado que da suporte a todas as etapasdo processo de composicao de Servicos Web originalmente descritos em WSDL e traduzidos paraOWL-S, utilizando um sistema de planejamento automatico para a geracao das composicoes. Aviabilidade desta ferramenta sera testada com um estudo de caso sobre planejamento de viagens aEuropa.

1.2 Principais objetivos deste trabalho

O principal objetivo deste trabalho e demonstrar que a composicao de servicos Web semanticospode ser automatizada atraves de tecnicas de planejamento em IA e da Web Semantica. Para atingireste objetivo, algumas metas mais especıficas foram identificadas:

• fazer um levantamento dos principais trabalhos de pesquisa desta area;

• avaliar as questoes que tornam o planejamento para composicao de servicos Web diferentedo planejamento classico, entre elas: planejamento com informacao incompleta do mundo,planejamento com execucao, recuperacao e coleta de informacao e planejamento com inferencianuma base de conhecimento;

• determinar que tipo de planejamento em IA e mais apropriado para composicao de servicosWeb e como adapta-lo para composicao de servicos Web;

• identificar uma maneira de expressar pre-condicoes e efeitos nas descricoes das operacoes dosservicos Web em OWL-S;

• implementar uma ferramenta de software para dar suporte durante todas as etapas envolvidasna composicao automatica de servicos Web, chamada WEBRPPLAN e

• implementar um conjunto de servicos Web que serao usados num estudo de caso para testar aviabilidade do software implementado, WEBRPlan, resolvendo um problema de planejamentode viagens.

Page 20: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4 Introducao

1.3 Organizacao

O restante desta dissertacao esta organizado da seguinte maneira:

O Capıtulo 2 define o que sao servicos Web e introduz as principais tecnologias para sua construcao,como SOAP e WSDL. Neste capıtulo discute-se tambem porque esta nova tecnologia tem sidoconsiderada como a tecnologia do futuro e quais as suas principais utilizacoes.

O Capıtulo 3 trata da questao de como atribuir semantica aos servicos Web. Para isso e introdu-zido o conceito de Web Semantica, ontologias e as principais tecnologias necessarias para suaimplementacao, como as linguagens OWL e OWL-S.

O Capıtulo 4 define o que e planejamento classico e hierarquico em IA. E descrito como funcionao sistema de planejamento JSHOP2 e como adapta-lo para lidar com ontologias e inferencias,necessarias na Web. Este capıtulo mostra como seria resolver problemas no domınio de plane-jamento de viagens usando o JSHOP2, com: (1) os servicos descritos diretamente como tarefasde planejamento (isto e, planejamento sem acessar a Web ou um mecanismo de inferencia); (2)a utilizacao de um mecanismo de inferencia; (3) a utilizacao de um mecanismo de inferencia ecom coletas de informacoes na Web.

O Capıtulo 5 apresenta os principais trabalhos relacionados com esta pesquisa. Os sistemas pro-postos e questoes levantadas por outros pesquisadores sao discutidos neste capıtulo.

O Capıtulo 6 descreve a ferramenta WEBRPlan, implementada para automatizar o processo decomposicao de servicos Web.

O Capıtulo 7 apresenta um estudo de caso, utilizando a ferramenta WEBRPlan.

O Capıtulo 8 descreve as conclusoes e contribuicoes deste trabalho de mestrado.

Page 21: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Capıtulo 2

Servicos Web

2.1 Surgimento dos servicos Web

Desde o inıcio da WWW, as tecnologias existentes permitem o acesso ao conteudo de sites atravesde linguagens como o HTML (Hipertext Markup Language). Nos ultimos anos, novas tecnologiassurgiram, permitindo uma maior integracao entre os diversos aplicativos e os servicos disponıveis naInternet. Este novo modelo de crescimento passou a tratar tarefas complexas, como o gerenciamentode transacoes, atraves da disponibilizacao de servicos distribuıdos que utilizem interfaces de acessosimples e bem definidas. Estes servicos ou aplicativos distribuıdos sao conhecidos como servicos Web(Web services).

Os servicos Web sao usados para disponibilizar servicos interativos na Web, podendo ser acessa-dos por outras aplicacoes. Antes do surgimento dos servicos Web, porem, ja existiam muitas outrastecnologias para construcao de sistemas distribuıdos. Este capıtulo explicara por que estas tecno-logias nao obtiveram tanto sucesso para disponibilizar servicos na Internet, como servicos Web saoconstruıdos e por que esta nova tecnologia tem sido considerada como a tecnologia do futuro.

2.2 Sistemas Distribuıdos

Um sistema distribuıdo consiste de diversos agentes de software, que precisam colaborar paraexecutar alguma tarefa. Alem disso, os agentes em um sistema distribuıdo nao operam em ummesmo ambiente de processamento e, desta forma, precisam comunicar-se atraves de protocolos dehardware e software [Booth et al., 2003].

5

Page 22: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

6 Servicos Web

Um tipo de sistema distribuıdo basico possui inicialmente duas camadas, um cliente e um servidor,sendo que as aplicacoes centralizadas no servidor sao inicializadas pelo cliente atraves de uma rede.Este modelo conhecido como cliente-servidor ganhou uma terceira camada, denominada camada denegocios, criada com o objetivo de proporcionar maior escalabilidade e tolerancia as falhas nos siste-mas. Como base de comunicacao entre estas partes distribuıdas da aplicacao foram criadas as RPCs(Remote Procedure Call), responsaveis por solicitar a execucao de processos remotos hospedados nosservidores. [Gunzer, 2002]

Porem, para manter os desenvolvedores livres de tarefas de baixo nıvel como, por exemplo, con-versao entre tipos de dados, surgiu a necessidade de criar uma nova camada, responsavel por mascararas diferencas entre os varios tipos de clientes e servidores. Esta nova camada foi denominada mid-dleware.

Essencialmente, middleware e uma camada de aplicacoes distribuıdas que abstrai a complexidadee a heterogeneidade dos ambientes distribuıdos como tecnologias de rede, arquiteturas de maquinas,sistemas operacionais e linguagens de programacao [Coulson and Parlavantzas, 2004]. A Figura 2.1mostra onde o middleware se encaixa na arquitetura de sistemas. A primeira parte na arquiteturade sistemas e rede, na qual trafegam os bits e pacotes. Na segunda parte temos a comunicacao dosistema operacional, realizada pelos protocolos como, por exemplo, TCP, IP e UDP. O middlewareaparece entre o sistema operacional e as aplicacoes distribuıdas, contendo chamadas remotas, trocade mensagens e invocacao de objetos, por exemplo.

Figura 2.1: Arquitetura de sistemas

Os primeiros middlewares eram baseados no modelo de programacao estruturada e foram supe-

Page 23: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

2.2 Sistemas Distribuıdos 7

rados com a introducao da programacao orientada a objetos.

Alguns exemplos de middlewares orientados a objetos mais conhecidos no mercado sao:

• CORBA - Common Object Request Broker Architecture do Object Management Group (OMG)(http://www.omg.org/technology/documents/corba spec catalog.htm).

• RMI - Java Remote Method Invocation da Sun Microsystems (http://java.sun.com/products/jdk/rmi/).

• DCOM - Distributed Component Object Model da Microsoft (http://www.microsoft.com/com/tech/DCOM.asp).

Estas tecnologias mostraram-se adequadas em um ambiente de rede local ou intranet, mas pos-suem alguns fatores que limitaram sua utilizacao na Internet.

Escrever uma aplicacao em CORBA, por exemplo, e uma atividade complexa, que requer umprocesso demorado e custoso de aprendizado. Os objetos em CORBA sao definidos em um alto nıvelde abstracao fornecido pela Interface Definition Language (IDL). Depois de definir o arquivo IDL, ocompilador toma o cuidado de mapea-lo para uma linguagem de programacao especıfica. No entanto,para que este mapeamento seja possıvel em diferentes linguagens de programacao, e necessario quea aplicacao seja limitada ao uso de recursos comuns em todas as linguagens.

O RMI possui a limitacao de atender somente a aplicacoes que estejam na linguagem JAVA nosdois lados da conexao e o DCOM, por ser da Microsoft, nao e uma tecnologia aberta.

A partir deste cenario, surgiu a necessidade de uma nova tecnologia para que desenvolvedores desoftware nao precisassem se preocupar em resolver todos os problemas de integracao entre plataformase linguagens heterogeneas.

Surgiu entao um novo modelo, os servicos Web, que sao middlewares orientados a mensagens,com o proposito de fornecer interoperabilidade entre diferentes aplicacoes de software, rodando emdiferentes plataformas e/ou frameworks. Um dos motivos que tornaram os servicos Web atrativose o fato de este modelo ser baseado em tecnologias padronizadas e abertas, em particular, XML eHTTP. Os servicos Web sao muito apropriados para sistemas distribuıdos que rodam em plataformasheterogeneas e precisam estar expostos em uma rede. Assim, este modelo encaixou-se perfeitamente

Page 24: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

8 Servicos Web

na necessidade de integrar sistemas expostos na Internet e com o apoio das grandes empresas desoftware que estao investindo em seu desenvolvimento, o sucesso dos servicos Web esta se tornandocada vez maior.

2.3 O que sao servicos Web

Um servico Web e um sistema de software projetado para permitir interacoes entres maquinasatraves de uma rede e possui uma interface descrita em um formato processavel por maquina (especi-ficamente WSDL). Outros sistemas interagem com o servico Web, atraves da maneira prescrita pelainterface, utilizando mensagens SOAP, tipicamente transportadas por HTTP com XML em conjuntocom outros padroes Web relacionados [Booth et al., 2003].

O proposito de um servico Web e fornecer alguma funcionalidade de comportamento de seuproprietario que pode ser, por exemplo, uma pessoa ou organizacao (veja Figura 2.2). Esta funci-onalidade de comportamento dos servicos Web pode ser de dois tipos basicos: para recuperacao deinformacao na Web ou para execucao efetiva de transacoes na Web, como por exemplo: compras,vendas, reservas de hoteis, reservas de passagens aereas, transacoes bancarias, agendamentos de con-sultas medicas, reunioes, etc. Podemos dizer que tais transacoes modificam o estado do mundo,enquanto que a recuperacao de informacao serve para completar a descricao do estado do mundo,sem altera-lo.

Na Figura 2.2 A entidade fornecedora e a pessoa ou a organizacao que fornece um agenteapropriado, com a implementacao de um servico em particular. Ja a entidade consumidora e umapessoa ou uma organizacao que deseja fazer uso de um servico Web da entidade fornecedora. Elausara um agente consumidor para trocar mensagens com o agente fornecedor.

Para que a troca de mensagens seja feita com sucesso, as duas entidades precisam primeiramente,concordar com a semantica e com o mecanismo de troca de mensagens. Este mecanismo de trocade mensagens e documentado atraves do WSD (Web Service Description). O WSD e uma especi-ficacao da interface do servico Web, processavel por maquina e escrita em WSDL. Esta especificacaodefine o formato das mensagens, tipos de dados, protocolos e formato de transporte que devem serutilizados entre os agentes. O WSD tambem especifica uma ou mais localizacoes na rede em que oagente fornecedor pode ser invocado e pode fornecer alguma informacao sobre o padrao de troca demensagens esperado.

Page 25: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

2.4 Semantica dos servicos Web 9

2.4 Semantica dos servicos Web

Quando uma entidade consumidora utiliza um servico Web, ela espera um determinado tipode comportamento, particularmente em relacao ao tipo de respostas que sao enviadas para cadamensagem. Esta expectativa sobre o comportamento do servico Web e definida como semantica,que pode ser considerada como um contrato entre a entidade consumidora e a fornecedora definindoo proposito e as consequencias da interacao. Embora este contrato represente o acordo geral entreas entidades e como seus respectivos agentes farao interacao, uma negociacao pode ser explıcita ouimplıcita, oral ou escrita, processavel por maquina ou interpretada por humanos e pode ser aindaum acordo legal ou informal.

Enquanto a descricao do servico representa um contrato dos mecanismos de interacao com umservico Web em particular, a semantica representa um contrato entre o significado e o propositodesta interacao. A linha de divisao entre estes dois contratos nao e necessariamente rıgida. Quantomais a descricao de um servico Web for semanticamente rica, mais facil sera realizar tarefas comoautomatizacao e busca deste servico [Booth et al., 2003].

Uma das maneiras de explicitar semantica de servicos Web e atraves da Web Semantica, que seravista com mais detalhes no Capıtulo 3.

2.5 Visao geral de construcao e uso de um servico Web

Em geral, os seguintes passos sao necessarios para um consumidor utilizar um servico Web (ilus-trado na Figura 2.2) [Booth et al., 2003] :

1. Qualquer uma das entidades, a consumidora ou a fornecedora do servico Web, pode iniciar ainteracao. No caso tıpico, o agente consumidor e o que inicia a interacao, com a finalidade deutilizar um servico para alguma necessidade. Para iniciar a interacao: ou o agente consumidorja conhece um servico Web especıfico que atende as suas necessidades, ou tera que realizarum processo de descoberta para selecionar um servico Web candidato a atingir seus objetivos.Este processo de descoberta pode ser feito manual ou automaticamente, ambos atraves de umservico de descoberta tratado em mais detalhes na Secao 2.6.1. O agente fornecedor tambempode iniciar a interacao e, neste caso, ele precisa obter de alguma maneira o endereco do agenteconsumidor. Este caso pode ser importante em alguns cenarios especıficos, porem, nao sera

Page 26: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

10 Servicos Web

Figura 2.2: Interacao entre um cliente e um fornecedor de um servico Web

tratado neste trabalho.

2. As entidades consumidora e fornecedora concordam com a descricao do servico e da semanticaque governara a interacao entre os agentes. Isso nao significa necessariamente que as entidadesprecisam negociar para chegar a um acordo. Concordar neste sentido significa fazer a suposicaode que as duas partes possuem a mesma interpretacao da descricao do servico e a mesmaexpectativa em relacao ao comportamento do servico. O modo mais comum com que estepasso e executado e a publicacao da descricao do servico (WSD) e da semantica por parte daentidade fornecedora de maneira que a entidade consumidora simplesmente aceita a utilizacaodo servico.

3. A informacao de descricao do servico e de sua semantica, de como interagir e trocar mensagens,e implementada nos agentes consumidor e fornecedor.

4. Os agentes trocam mensagens com o objetivo de realizar alguma tarefa.

Page 27: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

2.6 Tecnologias utilizadas nos servicos Web 11

2.6 Tecnologias utilizadas nos servicos Web

A arquitetura de um servico Web envolve muitas camadas e tecnologias inter-relacionadas. Umadas maneiras de visualizar estas camadas e atraves de uma associacao entre os passos necessarios (de1 a 4) para utilizar um servico Web, vistos na Secao 2.5, e a tecnologia correspondente a cada passo.A Figura 2.3 ilustra esta maneira de visualizar as camadas [Booth et al., 2003].

Figura 2.3: Camadas de um servico Web [Booth et al., 2003]

Os servicos Web sao construıdos a partir de inumeros padroes do mercado, tais quais: XML,SOAP e WSDL. A base de todas estas tecnologias e o XML (Extensible Markup Language) [Brayet al., 2004], que se tornou um padrao para comunicacoes atraves da Internet.

Page 28: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

12 Servicos Web

O primeiro passo (Figura 2.2) corresponde a camada do processo de descoberta. Nao importase um servico Web foi bem projetado e esta pronto para ser utilizado se os consumidores nao podemlocaliza-lo. Uma das tecnologias mais comuns utilizadas no processo de descoberta e o UDDI (Uni-versal Description Discovery and Integration) [UDDI, 2001], que padroniza a maneira como servicosWeb sao publicados e encontrados.

O segundo passo (Figura 2.2), no qual o agente consumidor concorda com a descricao do servicoWeb, corresponde a adocao da linguagem WSDL (Web Service Description Language) [Chinnici et al.,2004], responsavel por expor a descricao do servico Web de maneira que as entidades consumidorassaibam como interagir com o mesmo. Nessa camada, temos ainda a descricao da semantica do servicoWeb que, como visto anteriormente, pode ser tratada de maneira implıcita ou explıcita (Capıtulo 3).

O terceiro passo (Figura 2.2), que corresponde a implementacao nos agentes de como sera feitaa interacao, nao e amarrada a nenhuma tecnologia, ja que o proposito do servico Web e interopera-bilidade.

O quarto passo, no qual os agentes trocam informacoes, corresponde a camada de mensagenscomposta pelo SOAP (Simple Object Access Protocol) [Mitra, 2003]. O SOAP define a estruturageral de requisicoes e respostas do servico Web.

Existe ainda uma outra camada que e o meio de comunicacao entre os agentes. Esta camada,tambem conhecida como camada de transporte, e tipicamente realizada pelo HTTP (Hypertext Trans-port Protocol). Sem um mecanismo pelo qual os clientes remotos possam enviar e receber mensagensde uma aplicacao logica da Web, os servicos Web nao poderiam existir.

Cada uma destas tecnologias sera apresentada com mais detalhes nas proximas secoes.

2.6.1 Camada de Processo de Descoberta

Se uma entidade consumidora deseja iniciar uma interacao com uma entidade fornecedora, masnao sabe qual agente fornecedor utilizar, sera necessario que a entidade consumidora descubra antesum candidato apropriado. Descoberta e o ato de localizar uma descricao processavel por maquinade um servico Web que pode ser anteriormente desconhecido e que possui certos criterios de funcio-nalidade [Haas and Brown, 2003]. Em suma, o objetivo da descoberta e encontrar um servico Webapropriado.

Page 29: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

2.6 Tecnologias utilizadas nos servicos Web 13

A entidade consumidora pode fazer uma requisicao a um servico de descoberta, fornecendocaracterısticas que procura em um servico Web como, por exemplo, a descricao das habilidades dese-jadas em um servico Web, nome da entidade fornecedora, caracterısticas de performance e confiabi-lidade. Um servico de descoberta e um servico que facilita o processo de realizar uma descoberta.Este servico obtem de alguma maneira automatizada a descricao de servico Web (WSD) e de suasfuncionalidades (FD - functional description).

A descricao de funcionalidade (FD), como o nome diz, contem a descricao de que tipo de servicoa entidade fornecedora oferece. A FD pode ser descrita por algumas palavras, meta-dados ou umaURI1, ou pode ser ainda mais complexa como um TModel (em UDDI), uma colecao de expressoesRDF ou OWL-S (Web Semantica).

Com estas caracterısticas, o servico de descoberta devolve uma ou mais referencias que atendemaos criterios especificados na busca do agente consumidor. Se forem devolvidas descricoes multiplas,cabera ao agente que fez a requisicao escolher a mais apropriada, utilizando criterios adicionais.

O processo de descoberta descrito nao especifica de que maneira a entidade consumidora utilizao servico de descoberta. Existem basicamente duas maneiras de realizar este processo. A primeira emanualmente, na qual um consumidor humano usa o servico de descoberta, tipicamente no momentoem que esta desenvolvendo um projeto, para localizar e selecionar uma descricao de servico que coin-cide com os criterios funcionais desejados. A outra maneira e realizar o processo automaticamente,no qual o agente consumidor realiza a tarefa, no momento de projeto ou em tempo de execucao.Nesse caso, a necessidade de uma semantica processavel por maquina e ainda maior.

A maneira com que o servico de descoberta obtem dados de um servico Web varia conformea implementacao do mesmo. Atualmente, existem tres modelos de implementacao de servicos dedescoberta:

1. Registro. Um registro e um armazenamento centralizado de informacoes sobre servicos Web.Nesta abordagem as entidades fornecedoras devem ter a iniciativa de publicar seus dados noregistro. UDDI e um exemplo de registro, embora tambem possa ser utilizado como ındice(detalhado a seguir). Grandes empresas na area de tecnologia da informacao publicaram seusregistros UDDI, entre elas:

1Uniform Resource Identifier : strings que identificam recursos na Web, como documentos, imagens, entre outros.

(http://www.w3.org/Addressing/)

Page 30: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

14 Servicos Web

• IBM UDDI Registry - https://www-3.ibm.com/services/uddi/v2beta/protect/registry.html

• Microsoft UDDI Registry - https://uddi.microsoft.com

• NTT UDDI Registry - http://www.ntt.com/uddi/

• SAP UDDI Registry - http://udditest.sap.com/

2. Indice. Diferentemente da abordagem de registro que centraliza as informacoes, os ındicessao como guias para encontrar informacoes espalhadas na Web. Nesse caso, a publicacao doservico e feita de maneira passiva, pois a entidade fornecedora expoe na Web uma descricao desua funcionalidade e os proprietarios dos ındices coletam estas informacoes sem conhecimentodos fornecedores. A ferramenta de busca Google (http://www.google.com) e frequentementecitada como um exemplo de abordagem de ındice.

3. Ponto-a-Ponto (P2P). Nesta abordagem, o servico Web e um no em uma rede de pontos,que podem ou nao tambem ser servicos Web. No momento da descoberta, o agente consumidorrealiza uma busca nos pontos vizinhos por um servico Web adequado. A busca e propagadaatraves da rede ate que um servico Web atenda a requisicao ou ate que um limite de saltos emnos seja atingido. Neste tipo de abordagem, os nos possuem sua propria indexacao de servicosWeb e realizam roteamento apropriado das informacoes.

2.6.2 Camada de Descricao: WSDL

A WSDL fornece um modelo no formato XML para descricao de servicos Web. Esta linguagemdescreve os servicos Web em duas partes fundamentais. A primeira, sua parte abstrata, consisteprincipalmente da interface que descreve todas as funcoes disponıveis do servico e os tipos de dadospara troca de mensagens. A segunda parte da WSDL descreve a parte concreta do servico Web, queespecifica qual protocolo de transporte sera utilizado e o endereco para localizacao do servico [Chinniciet al., 2004].

Essencialmente, a WSDL representa um contrato entre as entidades fornecedora e consumidorado servico. Utilizando WSDL, um cliente pode localizar um servico Web e chamar qualquer umadas suas funcoes publicadas. Existem muitas ferramentas que podem automatizar este processo,tornando possıvel que aplicacoes possam facilmente integrar novos servicos.

Page 31: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

2.6 Tecnologias utilizadas nos servicos Web 15

Para exemplificar os principais elementos da WSDL, a Figura 2.4 mostra um documento WSDLque descreve um servico de compra de ingressos para passeios turısticos. O usuario informa qual oponto turıstico que deseja visitar, o dia e o numero do seu cartao de credito e obtem um ingressopara o passeio. Os numeros a esquerda do documento sao somente para identificacao das linhas.

02 <wsdl:definitions name="Ingresso" targetNamespace="http://IngressoPack"

03 xmlns:apachesoap="http://xml.apache.org/xml-soap"

04 xmlns:impl="http://IngressoPack"

05 xmlns:intf="http://IngressoPack"

06 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"

07 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

08 xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"

09 xmlns:xsd="http://www.w3.org/2001/XMLSchema">

10

11 <wsdl:message name="comprarIngressoRequest">

12 <wsdl:part name="ptoTuristico" type="xsd:string"/>

13 <wsdl:part name="cartao" type="xsd:string"/>

14 <wsdl:part name="dia" type="xsd:int"/>

15 </wsdl:message>

16

17 <wsdl:message name="comprarIngressoResponse">

18 <wsdl:part name="comprarIngressoReturn" type="xsd:int"/>

19 </wsdl:message>

20

21 <wsdl:portType name="Ingresso">

22 <wsdl:operation name="comprarIngresso" parameterOrder="ptoTuristico cartao dia">

23 <wsdl:input message="impl:comprarIngressoRequest" name="comprarIngressoRequest"/>

24 <wsdl:output message="impl:comprarIngressoResponse" name="comprarIngressoResponse"/>

25 </wsdl:operation>

26 </wsdl:portType>

27

28 <wsdl:binding name="IngressoSoapBinding" type="impl:Ingresso">

29 <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

30 <wsdl:operation name="comprarIngresso">

31 <wsdlsoap:operation soapAction=""/>

32 <wsdl:input name="comprarIngressoRequest">

33 <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

34 namespace="http://IngressoPack" use="encoded"/>

35 </wsdl:input>

36

37 <wsdl:output name="comprarIngressoResponse">

38 <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

Page 32: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

16 Servicos Web

39 namespace="http://IngressoPack" use="encoded"/>

40 </wsdl:output>

41 </wsdl:operation>

42 </wsdl:binding>

43

44 <wsdl:service name="IngressoService">

45 <wsdl:port binding="impl:IngressoSoapBinding" name="Ingresso">

46 <wsdlsoap:address location="http://localhost:8080/IngressoMod/services/Ingresso"/>

47 </wsdl:port>

48 </wsdl:service>

49

50 </wsdl:definitions>

Figura 2.4: Documento WSDL do servico Web Ingresso

Serao descritos a seguir os principais elementos da WSDL [Cerami, 2002]. Para localiza-los nodocumento da Figura 2.4, ao lado de cada elemento constara a notacao (L.n), onde n e o numeroda linha em que o elemento aparece.

1. definitions (L.02): e o elemento raiz de todo documento WSDL. Nele estao o nome do servicoWeb (L.02), a declaracao de namespaces2 usados no escopo do documento (L.03 a L.09) e todosos outros elementos descritos a seguir.

2. types: este elemento descreve todos os tipos de dados utilizados entre o cliente e o servico.Se o servico utilizar apenas tipos de dados simples do W3C XML Schema como, por exemplo,strings e integers, o elemento type nao e necessario, o que e o caso do servico descrito naFigura 2.4. Este elemento basicamente responde a pergunta: Que tipos de dados seraotransmitidos?

3. message (L.11 a L.19): este elemento descreve uma mensagem que pode ser de requisicao ou deresposta. Ele define o nome da mensagem atraves do atributo name e pode conter zero ou mais

2Namespace XML e uma colecao de nomes, identificados por uma referencia URI, que sao usados em documentos

XML como tipos de elementos e nomes de atributo (http://www.w3.org/TR/REC-xml-names/)

Page 33: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

2.6 Tecnologias utilizadas nos servicos Web 17

elementos part, que definem os parametros de entrada e saıda da mensagem. Este elementobasicamente responde a pergunta: Que mensagens serao transmitidas?. No exemplo aresposta seria: comprarIngressoRequest e comprarIngressoResponse.

4. portType (L.21 a L.26): este elemento combina multiplas mensagens para formar uma operacaocompleta. No caso tıpico, ele combina duas mensagens: a de requisicao e a de resposta emuma operacao simples, comumente utilizada pelos servicos SOAP. Este elemento basicamenteresponde a pergunta: Que operacoes serao suportadas?. No exemplo a resposta seria:comprarIngresso.

5. binding (L.28 a L.42): este elemento descreve concretamente como o servico sera implemen-tado, incluindo extensoes e informacoes SOAP predefinidas. Ele basicamente responde a per-gunta: Como as mensagens serao transmitidas?. No exemplo a resposta seria: atravesdo SOAP.

6. service (L.44 a L.48): este elemento define o endereco para invocacao do servico especificado. Emuito comum encontrar neste elemento a URL para invocacao do servico SOAP. Esse elementobasicamente responde a pergunta: Onde o servico esta localizado?. No exemplo a respostaseria: http://localhost:8080/IngressoMod/services/Ingresso.

A Figura 2.5, gerada atraves de um plugin para descricao de servicos Web da ferramenta Eclipse,mostra como os elementos descritos podem ser visualizados graficamente.

2.6.3 Camada de Mensagens: SOAP

A especificacao do W3C3 [Mitra, 2003] define o SOAP como um protocolo para troca de in-formacoes em um ambiente distribuıdo baseado em XML. Esse protocolo consiste de tres partes: (i)um envelope que define um framework para descricao do que ha em uma mensagem e como processa-la; (ii) um conjunto de regras para expressar instancias de tipos de dados definidos nas aplicacoes e(iii) uma convencao para representacao de chamadas e respostas a procedimentos remotos (RPCs).

O SOAP sobre HTTP fornece um meio de comunicacao entre aplicacoes que rodam em sistemasoperacionais diferentes, com diferentes tecnologias e linguagens de programacao, por isso seu sucessona utilizacao de acesso a servicos Web.

3World Wide Web Consortium (http://www.w3.org)

Page 34: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

18 Servicos Web

Figura 2.5: Visualizacao grafica do WSDL do servico Ingresso no Eclipse

Sao mostrados nas Figuras 2.6 e 2.7 dois exemplos de mensagens SOAP baseados no documentoWSDL da Figura 2.4. Com estes dois exemplos, apresentaremos os principais elementos de umamensagem SOAP. Como mostrado atraves das linhas das Figuras 2.6 e 2.7, uma mensagem SOAPe um documento XML que contem os seguintes elementos:

01 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

02 xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"

03 xmlns:xsd="http://www.w3.org/1999/XMLSchema">

04

05 <SOAP-ENV:Body>

06 <ns1:comprarIngressoRequest xmlns:ns1="urn:exemplos-Ingresso"

07 SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

08 <ptoTuristico xsi:type="xsd:string">TourEiffel</ptoTuristico>

09 <cartao xsi:type="xsd:string">000000000001</cartao>

10 <dia xsi:type="xsd:int">1</dia>

11 </ns1:comprarIngresso>

12 </SOAP-ENV:Body>

Page 35: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

2.6 Tecnologias utilizadas nos servicos Web 19

13

14 </SOAP-ENV:Envelope>

Figura 2.6: Exemplo de envelope de requisicao SOAP do servico Ingresso

15 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

16 xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"

17 xmlns:xsd="http://www.w3.org/1999/XMLSchema">

18

19 <SOAP-ENV:Body>

20 <ns1:comprarIngressoResponse xmlns:ns1="urn:exemplos-Ingresso"

21 SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

22 <return xsi:type="xsd:int">1</return>

23 </ns1:comprarIngressoResponse>

24 </SOAP-ENV:Body>

25

26 </SOAP-ENV:Envelope>

Figura 2.7: Exemplo de envelope de resposta SOAP do servico Ingresso

1. Envelope (L.01) e (L.15): e o elemento raiz de toda mensagem SOAP, o qual define o docu-mento XML como uma mensagem SOAP. Neste elemento deve ser definido tambem o namespacedo envelope SOAP.

2. Header: elemento opcional contendo informacoes especıficas da aplicacao (nao foi utilizado noexemplo).

3. Body (L.05 a L.11) e (L.19 a L.24): elemento obrigatorio que contem informacoes de chamadase respostas da funcao utilizada, as quais foram definidas no documento WSDL. Nas mensagensdas Figuras 2.6 e 2.7 e possıvel notar que na requisicao foram enviados o nome do pontoturıstico (TourEiffel), o numero do cartao (000000000001), o dia (1) e na resposta e obtido ovalor 1, que significa que a compra foi efetuada com sucesso.

Page 36: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

20 Servicos Web

4. Fault: elemento opcional, fornece informacoes sobre erros que podem ocorrer durante o pro-cessamento da mensagem. O elemento Fault no servico de ingresso poderia tratar o caso emque um usuario envia um nome de ponto turıstico invalido.

2.7 Principais utilizacoes dos servicos Web

Os servicos Web podem ser utilizados de inumeras formas, entre elas:

1. Integracao entre empresas (B2B) - Os servicos Web podem permitir que organizacoesrealizem facilmente integracao entre sistemas. Uma agencia de viagens poderia, por exemplo,criar pacotes turısticos completos para seus clientes, utilizando servicos Web de companhiasaereas e de hoteis.

2. Integracao entre empresas e consumidores (B2C) - As empresas podem fornecer inumerasfuncionalidades aos consumidores, indo alem da simples apresentacao de paginas Web estaticasem um navegador. Uma aplicacao cliente inteligente poderia acessar diversos servicos Web,realizando uma pesquisa de precos, para obter produtos mais baratos.

3. Integracao de aplicacoes corporativas - Nao e difıcil encontrarmos a necessidade de troca deinformacoes entre as diversas areas de uma mesma empresa. Um departamento, em vez de criarsolucoes personalizadas para cada necessidade de acesso a seus dados, poderia disponibilizarum servico Web para conectar aplicacoes de forma flexıvel.

4. Dispositivos Moveis - Os dispositivos moveis, como celulares, pagers e PDAs poderiam tervariadas aplicacoes disponıveis atraves de servicos Web. Um servico de localizacao de ruaspoderia ser acessado para consultas rapidas atraves destes dispositivos.

5. Distribuıdo / Peer-to-Peer - E possıvel que dois ou mais pontos ou clientes se conectemdiretamente, atraves da exposicao e consumo de informacoes, eliminando em grande parte anecessidade de um servidor central. Dois usuarios poderiam conectar-se e iniciar um jogo.

Page 37: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Capıtulo 3

Servicos Web e a Web Semantica

3.1 Ampliando a Semantica dos servicos Web

Mostramos no capıtulo anterior, que as tecnologias e os padroes utilizados para a construcao deservicos Web permitem que dois agentes computacionais troquem informacoes com relativa facilidadee automacao. Estes padroes resolvem muitos problemas tecnicos, porem, nao possuem informacoessobre qual o significado do servico Web e de que se tratam suas funcionalidades. Tomando novamenteo exemplo da Figura 2.4, verificamos que um agente capaz de processar WSDL poderia interpretarque o servico descrito disponibilizou as mensagens comprarIngressoRequest e comprarIngressoResponse,bem como a operacao comprarIngresso. No entanto, o agente nao seria capaz de interpretar o signi-ficado real destas operacoes. Por exemplo, o agente nao e capaz de entender que o servico descrito,apos receber a identificacao de um ponto turıstico e um numero de cartao de credito, vai realizarum debito neste cartao e enviar um ingresso para este ponto turıstico ao usuario. O agente so seriacapaz de interpretar e processar este tipo de informacao corretamente se seu modelo interno estivesse,de alguma forma, mapeado com a Semantica que existe por tras da descricao WSDL. Este tipo demapeamento poderia ser obtido se, tanto o modelo interno do agente quanto a descricao do servicoWeb, estivessem compartilhando uma definicao de conceitos.

Se tal Semantica fosse descrita explicitamente, de modo que maquinas pudessem interpreta-la, osagentes poderiam encontrar, em tempo de execucao, informacoes sobre o proposito e uso dos servicos.Agentes deste tipo seriam capazes de se comportar de forma mais flexıvel. Este tipo de problema eobjeto de estudo da area de pesquisa da Web Semantica [Peer, 2002].

21

Page 38: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

22 Servicos Web e a Web Semantica

Nas proximas secoes, sera definido o que e Web Semantica, o que sao ontologias e como estaspodem ser utilizadas para a criacao dos servicos Web Semanticos (Semantic Web Services).

3.2 O que e Web Semantica?

A Web Semantica, na visao de Tim Berners-Lee e James Hendler [Berners-Lee et al., 2001], euma extensao da Web atual. Neste novo modelo, a informacao e dada com sentido definido e formal,aumentando a capacidade dos computadores de trabalhar em cooperacao com as pessoas.

A maioria do conteudo da Web hoje e projetado para que um humano, e nao para que umagente computacional, o interprete. Os computadores podem processar paginas Web apenas parasua apresentacao em navegadores ou para executar algumas tarefas simples como, por exemplo,identificacao de cabecalhos e cores. Em geral, os computadores nao possuem nenhuma maneiraconfiavel de processar e relacionar conteudos.

A Web Semantica surge como uma evolucao da Web como conhecemos atualmente, sendo suaprincipal preocupacao representar informacoes de maneira que as maquinas possam interpreta-las.No entanto, para que este proposito seja atingido, as tecnologias ja existentes como HTTP e XML,nao sao suficientes, surgindo a necessidade de tecnologias com mais recursos.

Para implementar a Web Semantica, surgiram duas novas necessidades: (i) uma maneira de dis-ponibilizar definicoes de termos e relacoes entre eles (ontologias) e (ii) uma linguagem que permitisseadicionar Semantica aos documentos da Web (instancias das ontologias). Para satisfazer estas ne-cessidades, o W3C recomendou inicialmente o RDF (Resource Description Framework), que e umalinguagem para representar informacoes (instancias das ontologias) e trocar conhecimento na Web.Mais tarde o W3C recomendou a linguagem OWL (Web Ontology Language), usada para publicar ecompartilhar ontologias, permitindo buscas avancadas na Web e gerenciamento de conhecimento.

Nas proximas secoes, veremos em detalhes cada uma destas tecnologias que tornam possıvel aimplementacao da Web Semantica.

3.3 RDF e RDF-Schema

Resource Description Framework (RDF) [Manola and Miller, 2004] e uma linguagem para des-cricao de recursos. Podemos considerar como recurso, qualquer coisa que possa ser identificada, porexemplo, este documento, uma pagina Web ou uma pessoa. Para entender como o RDF descreve

Page 39: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.3 RDF e RDF-Schema 23

um recurso, tomemos como exemplo a descricao de uma pagina Web em linguagem natural. Supo-nhamos que a pagina http://exemplo.br/index.html tenha sido criada dia 11 de novembro de 2004.Uma maneira de descrever esta pagina seria:

http://exemplo.br/index.html tem como data de criac~ao 11 de novembro de 2004

Nesta expressao identificamos que existe um recurso descrito (a pagina http://exemplo.br/index.html),uma propriedade deste recurso (data de criac~ao) e um valor atribuıdo a esta propriedade (11 de

novembro de 2004). E justamente na ideia de descricao de recursos atraves de propriedades e seusvalores que o RDF se baseia. Cada expressao em RDF e chamada de tripla, composta por Sujeito-Predicado-Objeto, que identifica cada parte da expressao.

No exemplo anterior, o sujeito e a URI http://exemplo.br/index.html, o predicado e data de criac~ao

e o objeto e 11 de novembro de 2004. Para identificar cada uma destas partes, o RDF utiliza referenciasURI, ou URIref, que e a composicao de uma URI com um fragmento de identificacao opcional nofinal. Identificaremos o predicado data de criac~ao com a URI http://exemplo.br/termos/data-criacao.

Objetos podem ser tanto referencias URI como tambem literais (o valor 11 de novembro de 2004 eum literal).

Suponha agora que tivessemos tambem a informacao de que esta pagina foi criada por Juliana

Chahoud, que e um recurso identificado pela URI http://exemplo.br/usuarios/juliana. Este objeto etambem um recurso e desta maneira pode ter suas proprias propriedades.

As triplas RDF sao representadas por grafos, onde nos representam sujeitos e objetos, enquantoarcos representam predicados. Na Figura 3.1, um no identificado por uma URIref e representadopor uma elipse e um literal e representado por um retangulo.

Finalmente, para que as expressoes RDF sejam processadas por maquinas, sao utilizadas marcacoesXML, chamadas RDF/XML. A Figura 3.2 mostra a representacao RDF/XML do grafo da Figura3.1.

A linha 01 indica que o conteudo do documento e XML, versao 1.0. A linha 02 e a aberturado elemento rdf:RDF que indica que ate seu fechamento na linha 10, todo o conteudo sera descritoem RDF. Ainda nesta linha, o atributo xmlns e usado para declaracao de um namespace XML. Napratica, isso significa que toda tag neste contexto que iniciar com o prefixo rdf, e parte do vocabulario

Page 40: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

24 Servicos Web e a Web Semantica

Figura 3.1: Grafo representando expressao RDF

especificado no documento identificado pela URIref http://www.w3.org/1999/02/22-rdf-syntax-ns.

A linha 03 contem a declaracao de um novo namespace. Da mesma maneira que o anterior,significa que toda tag iniciada pelo prefixo extermos e um termo do vocabulario definido emhttp://exemplo.br/termos/. A linha 05 inicia a descricao (rdf:Description) sobre (rdf:about) o recursohttp://exemplo.br/index.html. A linha 06 contem a primeira propriedade do recurso, a data-criacao,definida em extermos, possui o valor 11 de novembro de 2004. A linha 07 contem a segunda proprie-dade do recurso descrito, criador, definida em extermos, e que possui como valor um outro recurso(rdf:resource) identificado pela URIref http://exemplo.br/usuarios/juliana. A linha 08 possui o fecha-mento do elemento de descricao do recurso http://exemplo.br/index.html. Por fim, a linha 10 possui ofechamento do RDF, finalizando o documento.

A sintaxe RDF possui ainda alguns outros conceitos, entre eles: utilizacao de nos em branco,container, colecoes e objetos tipados. Porem, os conceitos apresentados ate aqui serao suficientespara a compreensao do restante do texto.

01. <?xml version="1.0"?>02. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"03. xmlns:extermos="http://exemplo.br/termos/">04.05. <rdf:Description rdf:about="http://examplo.br/index.html">06. <extermos:data-criacao>11 de novembro de 2004</extermos:data-criacao>07. <extermos:criador rdf:resource="http://exemplo.br/usuarios/juliana"/>08. </rdf:Description>09.10. </rdf:RDF>

Figura 3.2: Exemplo da expressao em RDF

Page 41: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.4 Ontologias 25

Ate aqui identificamos que o RDF fornece uma maneira eficaz de descrever recursos. Porema comunidade de usuarios do RDF identificou a necessidade de definir seus proprios vocabularios,mais especificamente, de criar classes de recursos utilizando propriedades especıficas. Por exemplo,a criacao da classe PESSOA com subclasses FISICA e JURIDICA e propriedades como ENDERECO, similaras linguagens orientadas a objeto. Embora o RDF originalmente nao forneca definicao de classes,esta estrutura pode ser descrita utilizando extensoes fornecidas no RDF Schema (RDF VocabularyDescription Language) [Brickley and Guha, 2004].

Em suma, o RDF Schema fornece uma maneira de descrever recursos como instancias de clas-ses, bem como permite que classes sejam organizadas de forma hierarquica atraves das estruturasrdfs:Class e rdfs:subClassOf.

3.4 Ontologias

Suponha que diversas paginas na Web que utilizem marcacoes Semanticas contenham informacoessobre turismo, incluindo pontos turısticos. Se uma das paginas utilizar, por exemplo, o termo pontosturısticos e uma outra pagina utilizar, com o mesmo proposito, o termo atracoes, ficaria impossıvelpara um agente computacional compartilhar estas informacoes. Este e um dos conceitos-chave daWeb Semantica: que existam definicoes de termos e de relacoes entre estes, de modo que aplicacoesdiferentes possam compartilhar informacao e conhecimento. Esta ideia nos remete diretamente aoconceito de ontologias.

Ontologia e uma especificacao formal (baseada em logica) de termos de um domınio e da relacaoque existe entre eles. No desenvolvimento de uma ontologia, entre outras coisas, sao definidas classes,suas propriedades e hierarquia entre elas (subclasses e superclasses). A partir da insercao de valoresnestas propriedades, sao criadas as instancias de classes.

Uma ontologia, juntamente com suas instancias, constituem uma base de conhecimento. Segundo[McGuinness and Noy, 2001], as principais razoes para o desenvolvimento de uma ontologia sao:

1. compartilhar uma interpretacao da estrutura de informacao entre pessoas ou agentes compu-tacionais;

2. habilitar a reutilizacao de uma especificacao (modelo) de um domınio do conhecimento;

3. fazer inferencias logicas a respeito de um domınio;

Page 42: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

26 Servicos Web e a Web Semantica

4. separar o conhecimento sobre um domınio de um ou mais sistemas que raciocinam sobre ele e

5. analisar o conhecimento de um domınio.

3.5 OWL

Para que uma ontologia seja construıda e necessario adotar uma linguagem. As primeiras lingua-gens para este fim foram baseadas em Logica de Primeira Ordem como, por exemplo, a Ontolıngua(baseada em KIF) e Loom. Porem como aplicacoes na Web requerem que estas linguagens sejam ba-seadas em padroes da propria Web, logo surgiram as linguagens baseadas em XML, como o SHOE,XOL, OML, OIL e o RDFS. A partir do RDFS, a DARPA (Defense Advanced Research ProjectsAgency) construiu o DAML, que estende o RDF com construcoes mais expressivas. Mais tarde, oW3C recomendou a linguagem OWL, baseada nas melhores funcionalidades das linguagens DAMLe OIL.

A linguagem OWL - Web Ontology Language [McGuinness and van Harmelen, 2004] acrescentavocabulario e definicoes mais formais para a descricao de ontologias, como relacoes entre classes,cardinalidade, igualdade e tipos de propriedades complexos. OWL e composta por tres sublinguagensou fragmentos: a Lite, a DL e a Full. As caracterısticas principais delas sao:

• OWL Lite: e a versao mais simples de OWL, utilizada por usuarios que queiram migrarrapidamente de outras linguagens ou estruturas como tesauros. Esta versao possui algumasrestricoes como, por exemplo, permitir somente cardinalidade de valores 0 ou 1.

• OWL DL: esta versao e chamada de DL por sua correspondencia com a logica descritiva (DL -Description Logics). De fato, esta versao foi desenvolvida para que implementacoes deste campode pesquisa fossem aproveitadas. OWL DL, alem de possuir todas as funcionalidades da versaoLite, possibilita maior expressividade, garantindo completude computacional e decidabilidade.Para isso, o DL possui todas as construcoes do OWL com algumas restricoes, por exemplo,separacao de tipos que faz com que uma classe nao possa ser ao mesmo tempo uma propriedadeou um indivıduo (instancia).

• OWL Full: e a versao completa do OWL, que engloba as duas versoes anteriores e possui,alem de maxima expressividade, a liberdade sintatica do RDF, o que pode ter a desvantagem

Page 43: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.5 OWL 27

de tornar intratavel o desenvolvimento de determinadas aplicacoes. Diferente da versao DL,em OWL Full e possıvel fazer com que uma classe seja tratada como um indivıduo.

OWL e baseada em tres conceitos fundamentais [McGuinness et al., 2004b]: classes, indivıduos epropriedades.

Para ilustrar os proximos exemplos, considere a hierarquia entre classes da Figura 3.3.

Figura 3.3: OwlViz

Classe e uma colecao de propriedades que descrevem um grupo de indivıduos. Todo indivıduoem OWL e membro da classe owl:Thing, o que implica que toda classe definida pelo usuario e umasubclasse de owl:Thing.

A seguinte sintaxe e utilizada para declaracao de uma classe denominada Turista em OWL:

<owl:Class rdf:ID="Turista"/>

A sintaxe rdf:ID e usada para atribuir o nome a classe. Com esta atribuicao a classe po-dera ser referenciada utilizando a construcao #Turista como, por exemplo, a construcao do recursordf:resource="#Turista". Supondo que esta classe faca parte da ontologiahttp://exemplo.br/ontologia/turismo, ela podera ser referenciada por outras ontologias atraves da sin-taxe http://exemplo.br/ontologia/turismo#Turista. Uma outra forma ainda pode ser utilizada paraestender a definicao desta classe, a partir do atributo rdf:about="#Turista".

Page 44: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

28 Servicos Web e a Web Semantica

Para criar uma hierarquia entre as classes, e utilizado o elemento rdfs:subClassOf. Desta forma,quando inserimos dentro da classe Turista a expressao

<rdfs:subClassOf rdf:resource="#Pessoa"/>,

estamos declarando que Turista e subclasse de Pessoa. Desta declaracao podemos interpretar queturista e uma classe especıfica dentro de uma mais generica que sao todas as pessoas.

Indivıduos sao as instancias das classes. No exemplo anterior, podemos declarar Juliana comoindivıduo da classe Turista da seguinte maneira:

<Turista rdf:ID="Juliana"/>

Assim, podemos descrever o membro Juliana da classe Turista atraves das propriedades destaclasse. Neste ponto, podemos notar melhor uma das diferencas entre OWL DL e Full, sendo que osegundo permite que classes sejam tambem utilizadas como instancias.

As propriedades sao usadas para criar relacoes entre instancias de duas classes atraves da cons-trucao owl:ObjectProperty, ou entre instancias e tipos de dados atraves de owl:DatatypeProperty. Porisso, elas nos permitem conhecer tanto caracterısticas gerais de membros de uma classe, bem comocaracterısticas especıficas de cada indivıduo. As propriedades definem relacoes binarias. Tomemos oseguinte exemplo:

<owl:ObjectProperty rdf:ID="desembarcaEm">

<rdfs:domain rdf:resource="#Pessoa"/>

<rdfs:range rdf:resource="#Aeroporto"/>

</owl:ObjectProperty>

A construcao rdfs:domain e a parte esquerda da relacao binaria e limita a quais classes a pro-priedade pode ser aplicada. Ja a construcao rdfs:range e a parte direita da relacao, que limita osindivıduos que a propriedade pode ter como valor. Desta forma, a propriedade desembarcaEm cria umarelacao entre as instancias da classe Pessoa com as instancias da classe Aeroporto. Podemos associara propriedade com indivıduos, da seguinte maneira:

<Turista rdf:ID"Juliana">

<desembarcaEm rdf:resource="#Cumbica">

</Turista>

Page 45: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.5 OWL 29

E assim, alem de declararmos Juliana como uma instancia de Turista, declaramos tambem que elapossui a propriedade desembarcaEm informando o lugar em que Juliana desembarca. Existe ainda umaoutra maneira de definir uma propriedade: como especializacao de uma outra propriedade atravesda construcao rdfs:subPropertyOf.

Um outro mecanismo que auxilia no raciocınio sobre a linguagem OWL e especificar caracterısticasdas propriedades. Para isso, inserimos dentro de uma declaracao de propriedade a sintaxe <rdf:type

rdf:resource="&owl;CaracteristicaDaPropriedade"/> onde em CaracteristicaDaPropriedade podemos ter:

1. TransitiveProperty: se uma propriedade P e especificada como transitiva entao para quaisquerinstancias x, y, e z: P(x,y) e P(y,z) implica P(x,z)

2. SymmetricProperty: se uma propriedade P e especificada como simetrica entao para qualquerx e y: se P(x,y) entao P(y,x)

3. FunctionalProperty: se uma propriedade P e especificada como functional entao para todo x,y, e z: P(x,y) e P(x,z) implica y = z

4. inverseOf: se uma propriedade P1 e especificada como owl:inverseOf P2, entao para todo x ey: se P1(x,y) entao P2(y,x)

5. InverseFunctionalProperty: se uma propriedade P e especificada como InverseFunctional entaopara todo x, y and z: P(y,x) e P(z,x) implica y = z

Alem do mecanismo de especificar caracterısticas de propriedades, podemos criar restricoes detipo atraves do elemento owl:Restriction. Suponha, por exemplo, que exista uma classe Aeroporto quepossua a propriedade emitePassagem com a seguinte restricao:

<owl:Restriction>

<owl:onProperty>

<owl:ObjectProperty rdf:ID="emitePassagem"/>

</owl:onProperty>

<owl:allValuesFrom>

<owl:Class rdf:ID="PassagemAerea"/>

</owl:allValuesFrom>

</owl:Restriction>

Page 46: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

30 Servicos Web e a Web Semantica

Neste exemplo, a restricao allValuesFrom indica que para todo Aeroporto que emitir passagens(emitePassagem), estas serao obrigatoriamente PassagemAerea. Supondo que esta propriedade, ao invesde possuir a restricao anterior, tivesse a restricao <owl:someValuesFrom rdf:resource="#PassagemAerea"/>,

a interpretacao seria que todo aeroporto emite pelo menos uma Passagem que e PassagemAerea. A pri-meira restricao nao requer que um aeroporto emita passagens, mas se for o caso, todas serao obri-gatoriamente passagens aereas. A segunda requer que aeroportos emitam pelo menos uma passagemaerea, mas podem emitir outras que nao sejam.

Restricoes de cardinalidade sao indicadas pelo elemento owl:cardinality e permitem especificaro numero exato de elementos em uma relacao. Suponha que exista uma propriedade chamadatemPassagem que relacione a classe Turista a Passagem. Suponha agora, que a restricao a seguir sejacriada na classe Turista:

<owl:Restriction>

<owl:onProperty>

<owl:ObjectProperty rdf:ID="temPassagem"/>

</owl:onProperty>

<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</owl:minCardinality>

</owl:Restriction>

Esta restricao impoe que todo Turista tenha exatamente uma Passagem.

No OWL Lite as expressoes de cardinalidade sao limitadas aos valores 0 e 1. Ja no OWL DLpode-se utilizar as construcoes owl:maxCardinality e owl:minCardinality com valores inteiros positivosque, combinados, podem limitar a cardinalidade de uma propriedade a um intervalo numerico.

Algumas outras construcoes foram criadas com o intuito de promover mapeamento entre ontolo-gias. Entre estas construcoes, podemos declarar equivalencia entre classes atraves deowl:equivalentClass e equivalencia entre propriedades com a sintaxe owl:equivalentProperty. A sintaxeowl:sameAs e utilizada para indicar que dois indivıduos sao identicos. Ja o mecanismo differentFrom

possui efeito exatamente contrario de sameAs. Existe ainda a combinacao das sintaxes owl:AllDifferent

e owl:distinctMembers que definem um grupo de indivıduos como distintos.

A partir do OWL DL e possıvel tambem a criacao de classes mais complexas. As construcoesintersectionOf, unionOf, complementOf permitem criar classes que sao interseccoes, unioes e comple-mentos de outras classes. E possıvel tambem com o OWL DL criar classes a partir da enumeracao

Page 47: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.5 OWL 31

de seus membros atraves do elemento owl:oneOf. Por fim, e possıvel declarar classes disjuntas com oelemento owl:disjointWith.

Para tornar mais clara a sintaxe do OWL, a Figura 3.4 mostra uma ontologia simples quecomplementa os exemplos utilizados anteriormente.

1 <?xml version="1.0"?>

2 <rdf:RDF

3 xmlns="http://exemplo.br/ontologia/turismo#"

4 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

5 xmlns:xsd="http://www.w3.org/2001/XMLSchema#"

6 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"

7 xmlns:owl="http://www.w3.org/2002/07/owl#"

8 xml:base="http://exemplo.br/ontologia/turismo">

9

10 <owl:Ontology rdf:about=""/>

11 <owl:Class rdf:ID="Pessoa"/>

12 <owl:Class rdf:ID="Passagem"/>

13

14 <owl:Class rdf:ID="Aeroporto">

15 <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>

16 <rdfs:subClassOf>

17 <owl:Restriction>

18 <owl:onProperty>

19 <owl:ObjectProperty rdf:ID="emitePassagem"/>

20 </owl:onProperty>

21 <owl:allValuesFrom>

22 <owl:Class rdf:ID="PassagemAerea"/>

23 </owl:allValuesFrom>

24 </owl:Restriction>

25 </rdfs:subClassOf>

26 </owl:Class>

27

28 <owl:Class rdf:about="#PassagemAerea">

29 <rdfs:subClassOf rdf:resource="#Passagem"/>

30 </owl:Class>

31

32 <owl:Class rdf:ID="Turista">

33 <rdfs:subClassOf rdf:resource="#Pessoa"/>

34 <rdfs:subClassOf>

35 <owl:Restriction>

36 <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</owl:cardinality>

37 <owl:onProperty>

Page 48: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

32 Servicos Web e a Web Semantica

38 <owl:ObjectProperty rdf:ID="desembarcaEm"/>

39 </owl:onProperty>

40 </owl:Restriction>

41 </rdfs:subClassOf>

42 <rdfs:subClassOf>

43 <owl:Restriction>

44 <owl:onProperty>

45 <owl:ObjectProperty rdf:ID="temPassagem"/>

46 </owl:onProperty>

47 <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</owl:minCardinality>

48 </owl:Restriction>

49 </rdfs:subClassOf>

50 </owl:Class>

51

52 <owl:ObjectProperty rdf:about="#emitePassagem">

53 <rdfs:domain rdf:resource="#Aeroporto"/>

54 <rdfs:range rdf:resource="#Passagem"/>

55 </owl:ObjectProperty>

56

57 <owl:ObjectProperty rdf:about="#desembarcaEm">

58 <rdfs:range rdf:resource="#Aeroporto"/>

59 <rdfs:domain rdf:resource="#Pessoa"/>

60 </owl:ObjectProperty>

61

62 <owl:ObjectProperty rdf:about="#temPassagem">

63 <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>

64 <owl:inverseOf>

65 <owl:InverseFunctionalProperty rdf:ID="pertenceA"/>

66 </owl:inverseOf>

67 <rdfs:domain rdf:resource="#Turista"/>

68 <rdfs:range rdf:resource="#Passagem"/>

69 </owl:ObjectProperty>

70

71 <owl:InverseFunctionalProperty rdf:about="#pertenceA">

72 <rdfs:domain rdf:resource="#Passagem"/>

73 <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>

74 <owl:inverseOf rdf:resource="#temPassagem"/>

75 <rdfs:range rdf:resource="#Turista"/>

76 </owl:InverseFunctionalProperty>

77

78 <Passagem rdf:ID="passagem_01">

79 <pertenceA>

80 <Turista rdf:ID="Juliana">

81 <desembarcaEm>

82 <Aeroporto rdf:ID="Cumbica">

Page 49: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.5 OWL 33

83 <emitePassagem rdf:resource="#passagem_01"/>

84 </Aeroporto>

85 </desembarcaEm>

86 </Turista>

87 </pertenceA>

88 </Passagem>

89

90 </rdf:RDF>

Figura 3.4: Exemplo OWL

1. Declaracao de namespaces (L.03 a L.08) - Como ja explicado anteriormente, os primeiros ele-mentos declarados conterao os namespaces utilizados ao longo do documento.

2. Cabecalho (L.10) - Apos a declaracao do namespace, o OWL apresenta um cabecalho repre-sentado pelo elemento owl:Ontology. Neste cabecalho sao inseridos comentarios (rdfs:comment),controle de versao da ontologia e inclusao de outras ontologias com o elemento (owl:imports).

3. Criacao da classe Pessoa (L.11) - A primeira classe criada no documento e a Pessoa.

4. Criacao da classe Passagem (L.12).

5. Criacao da classe Aeroporto (L.14 a L.26) - A classe Aeroporto e criada com a seguinte restricao:se a Aeroporto emitir Passagens (emitePassagem) passagens, todas serao PassagemAerea. Este e umexemplo de utilizacao da restricao allValuesFrom.

6. Criacao da classe PassagemAerea (L.28 a L.30) - A classe PassagemAerea e criada como subclassede Passagem.

7. Criacao da classe Turista (L.32 a L.50) - Na criacao da classe Turista, existe uma declaracao deque Turista e subclasse de Pessoa (L.33) e a insercao de duas restricoes: a primeira define quetodo Turista deve desembarcar em exatamente um aeroporto (L.35 a L.40) e a segunda defineque todo Turista tem pelo menos uma passagem (L.43 a L.48). Estes sao exemplos de utilizacaode restricoes com cardinalidade.

Page 50: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

34 Servicos Web e a Web Semantica

8. Criacao das propriedades emitePassagem e desembarcaEm (L.52 a L.60) - Aqui temos doisexemplos de criacao de propriedades simples com domınio e range.

9. Criacao da propriedade temPassagem (L.62 a L.69) - Aqui temos um exemplo da utilizacao dacaracterıstica inverseOf. A propriedade pertenceA e declarada como a inversa da propriedadetemPassagem.

10. Criacao da propriedade pertenceA (L.71 a L.76).

11. Criacao dos indivıduos passagem 01, Juliana e Cumbica (L.78 a L.88) O indivıduo passagem 01

e criado pertencendo a Juliana, que possui a propriedade desembarcaEm Cumbica. Ja o indivıduoCumbica possui a propriedade emitePassagem com o valor passagem 01.

3.6 Inferencia

Uma das principais vantagens na utilizacao de ontologias e a possibilidade de fazer inferencias arespeito do domınio que a ontologia especifica.

O termo inferencia sera utilizado nesta dissertacao como o processo de derivar informacoes adici-onais a partir de informacoes basicas sobre um domınio. Softwares especıficos para realizar este tipode tarefa sao denominados motores de inferencia. Os motores de inferencia sao capazes de derivarnovas assercoes RDF ou OWL a partir de algum documento basico, opcionalmente em conjunto comalguma outra ontologia, axiomas e regras associados a ele.

Podemos citar como exemplo de motores de inferencia o Pellet, Racer e FaCT. Nesta dissertacaosera utilizado um motor de inferencia do JENA2 para OWL, que e um pouco mais simples do queestes e sera descrito na Secao 3.7.1. Nessa mesma secao serao dados exemplos de que tipo deinferencias podem ser feitas utilizando a Figura 3.4.

3.7 Ferramentas para ontologias

Muitas ferramentas e projetos surgiram com o objetivo de dar maior apoio a construcao e manu-tencao de ontologias. Serao destacadas a seguir as ferramentas JENA2 [HPLab, 2006] e Protege3.2[Stanford, 2006], pois estas serao utilizadas na implementacao do WEBRPlan.

Page 51: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.7 Ferramentas para ontologias 35

3.7.1 JENA2

O JENA2 e um framework em JAVA para construcao de aplicacoes de Web Semantica, fornecendoum ambiente de programacao para as linguagens RDF, RDFS e OWL. Suas principais funcionalidadessao:

1. APIs para RDF e para ontologias, incluindo leitura e escrita nos documentos;

2. Armazenamento das informacoes em memoria ou persistencia em banco de dados;

3. Linguagens para consulta em ontologias (ARQ, que implementa SPARQL);

4. Motores de inferencia.

Neste trabalho serao utilizados a API de ontologia, o motor de inferencia do JENA2 e a linguagemde consultas ARQ. A API para RDF e o modulo central do JENA2 - todos os outros modulos ousao baseados nele ou trabalham diretamente com ele. Este modulo e o responsavel por criar umarepresentacao interna de um documento RDF atraves de um grafo e fornecer metodos de acesso emanipulacao deste documento. Cada tripla RDF (sujeito, predicado, objeto) e representada no grafocomo um arco definido por sua origem (sujeito), seu destino (objeto) e um nome associado ao arco(propriedade).

O modulo de suporte a ontologias do JENA2 permite o uso das linguagens RDFS, DAML+OIL eas variacoes de OWL. Embora estas sejam as unicas linguagens suportadas inicialmente, o JENA2 eflexıvel a ponto de permitir uma extensao, desde que um projetista implemente as classes necessarias.Para lidar com a expressividade das ontologias, o JENA2 fornece alguns motores de inferencia pre-construıdos e a possibilidade de utilizacao de motores externos.

A Figura 3.5 ilustra o modelo utilizado pelo JENA2. As expressoes RDF sao armazenadas nografo base, representado pela interface interna Graph. O motor de inferencia pode usar o conteudo dosgrafos base, associados as regras da ontologia para inferir um conjunto de expressoes mais completo.Isso tambem e apresentado pela interface Graph, entao o modelo trabalha apenas com esta interface.Isso permite a construcao de modelos com ou sem inferencia, ou com uma variedade de motores deinferencia diferentes, sem alterar o modelo da ontologia, o que significa que o grafo base pode estararmazenado em memoria, em banco de dados ou alguma outra estrutura, sem afetar o modelo daontologia.

Page 52: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

36 Servicos Web e a Web Semantica

Figura 3.5: Modelo criado pelo JENA2 [HPLab, 2006]

Entre os motores de inferencia fornecidos pelo JENA2, existe um especıfico para OWL, que eutilizado neste trabalho de mestrado. Para exemplificar que tipo de informacao este motor podeinferir, considere novamente o exemplo da Figura 3.4. Neste exemplo, existe a instancia Juliana daclasse turista, com as seguintes propriedades:

<Turista rdf:ID="Juliana">

<desembarcaEm>

<Aeroporto rdf:ID="Cumbica">

<emitePassagem rdf:resource="#passagem_01"/>

</Aeroporto>

</desembarcaEm>

</Turista>

Quando solicitado, o motor exibe as seguintes informacoes sobre este recurso:

- (tur#Juliana rdf:type tur#Turista)

- (tur#Juliana tur#desembarcaEm tur#Cumbica)

- (tur#Juliana rdf:type tur#Pessoa)

- (tur#Juliana rdf:type owl:Thing)

- (tur#Juliana rdf:type rdfs:Resource)

- (tur#Juliana tur#temPassagem tur#passagem_01)

- (tur#Juliana owl:sameAs tur#Juliana)

Page 53: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.7 Ferramentas para ontologias 37

Note que o motor infere que Juliana tambem e instancia de tur#Pessoa e owl:Thing, emboranenhuma destas duas informacoes tenha sido dada. O motor infere tambem que Juliana tem apassagem passagem 01. Isso porque na instancia foi declarado que passagem 01 pertence a Julianae existe um axioma na ontologia que diz que pertenceA e inversa a temPassagem. Considere agora oque o JENA2 infere sobre tur#passagem 01 :

- (tur#passagem_01 rdf:type tur#Passagem)

- (tur#passagem_01 tur#pertenceA tur#Juliana)

- (tur#passagem_01 rdf:type owl:Thing)

- (tur#passagem_01 rdf:type tur#PassagemAerea)

- (tur#passagem_01 rdf:type rdfs:Resource)

- (tur#passagem_01 owl:sameAs tur#passagem_01)

Aqui verifica-se que embora tur#passagem 01 tenha sido declarada como instancia detur#Passagem, o motor infere que tur#passagem 01 pertence a subclasse tur#PassagemAerea. Issoporque existe a informacao que tur#passagem 01 foi emitida por tur#Cumbica, que e um Aeroporto.Segunda o axioma da ontologia sobre emissoes de passagens (L.21), aeroportos so podem emitirpassagens aereas, entao tur#passagem 01 so poderia ser uma passagem aerea.

Para efetuar consultas nas ontologias, o JENA2 fornece o motor de consultas ARQ que implementaa linguagem SPARQL. SPARQL [Prud’hommeaux and Seaborne, 2006] e uma linguagem de consultasRDF com sintaxe semelhante ao SQL. Tomando o exemplo da ontologia da Figura 3.4, pode-serecuperar o Aeroporto em que a turista Juliana vai desembarcar, atraves de uma consulta ARQ daseguinte maneira:

SELECT ?x

WHERE { tur:Juliana tur:desembarcaEm ?x.}

3.7.2 Protege-3.2

O Protege 3.2 e uma ferramenta grafica desenvolvida na Universidade de Stanford, para a edicaode ontologias, que permite a modelagem conceitual em varias linguagens da Web Semantica. Elefornece tambem uma serie de plugins e funcionalidades. As Figuras 3.12 (localizada no final docapıtulo) e 3.6 mostram respectivamente a visualizacao da ontologia da Figura 3.4 atraves do pluginOntoViz do Protege e uma consulta feita com SPARQL, tambem utilizando o ambiente grafico doProtege.

Page 54: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

38 Servicos Web e a Web Semantica

Figura 3.6: SPARQL

3.8 OWL-S: Servicos Web Semanticos

Da mesma maneira que a Web Semantica e uma extensao da Web atual, os servicos Websemanticos sao uma extensao dos servicos Web. Muitas propostas foram apresentadas para fazeruso da Web Semantica nos servicos Web. Neste trabalho sera apresentado um conjunto de quatroontologias, criadas atraves de um esforco de pesquisadores e organizacoes, para descrever servicos Webatraves da linguagem OWL. Este conjunto e referenciado como a linguagem OWL-S e se encontrana versao 1.1 [OWLS, 2004].

Uma das principais motivacoes para a criacao desta linguagem foi tornar possıvel que usuariose agentes de software pudessem automaticamente: descobrir, invocar, realizar composicao e moni-toracao de servicos Web [Martin et al., 2004]. No entanto, para que seja possıvel construir taisagentes, e necessario responder as seguintes questoes:

• o que o servico faz (descoberta)?

• como o servico funciona (composicao)?

• como o servico pode ser acessado (invocacao)?

Para responder a estas tres questoes respectivamente, a linguagem OWL-S fornece as ontologiasProfile.owl, Process.owl e Grounding.owl e para organizar a relacao entre estas ontologias e fornecida

Page 55: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.8 OWL-S: Servicos Web Semanticos 39

uma quarta ontologia de mais alto nıvel chamada Service.owl. A seguir, serao apresentadas asprincipais classes e funcionalidades destas ontologias.

3.8.1 Service.owl - organizacao das ontologias

A ontologia Service.owl apresenta a classe SERVICE, da qual cada servico Web distinto e declaradocomo uma instancia. A classe SERVICE fornece uma maneira simples de organizar as partes da des-cricao do servico Web. Ela se relaciona com tres classes fundamentais: ServiceProfile, ServiceModel

e ServiceGrounding. A Figura 3.7 mostra o relacionamento entre as classes SERVICE e as demais classesapresentadas.

Figura 3.7: Relacionamento entre as classes [?]

Cada instancia da classe SERVICE e: apresentada (propriedade presents) por zero ou mais instanciasde ServiceProfile; descrita por (propriedade describedBy) zero ou uma instancia da classe ServiceModel;e quando existir uma instancia da classe ServiceModel, esta deve fornecer (propriedade supports) umaou mais instancias da classe ServiceGrounding. O exemplo de servico Web da Figura 2.4 pode ser ins-tanciado em um arquivo chamado IngressoService.owl como na Figura 3.8, supondo que namespacese entidades ja foram declarados e que as ontologias necessarias foram importadas. Nesta figura, aslinhas 02, 03 e 04 relacionam o servico IngressoService com instancias de ServiceProfile, ServiceModel

Page 56: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

40 Servicos Web e a Web Semantica

e ServiceGrounding.

01 <service:Service rdf:ID="IngressoService">02 <service:presents rdf:resource="&Ingresso_profile;#IngressoProfile"/>03 <service:describedBy rdf:resource="&Ingresso_process;#IngressoProcess"/>04 <service:supports rdf:resource="&Ingresso_grounding;#IngressoGrounding"/>05 </service:Service>

Figura 3.8: Exemplo do servico Ingresso instanciado pela ontologia Service.owl

3.8.2 Profile.owl - o que o servico faz?

A ontologia Profile.owl apresenta a classe PROFILE que informa o que o servico e capaz de realizar.Ela se relaciona com a classe SERVICE atraves da propriedade presents e sua inversa presentsBy. Suasinformacoes sao utilizadas em processos de descoberta. Para isso, esta classe possui tres tipos basicosde informacoes:

• quem e o fornecedor do servico: descreve atraves das propriedades serviceName,textDescription, e ContactInformation qual o contato do responsavel pelo servico. As linhas 02 a10 da Figura 3.9 exemplificam esta informacao para o servico Ingresso.

• quais as funcionalidades do servico: descreve dois aspectos das funcionalidades do servico.O primeiro aspecto e a transformacao da informacao (representada por entradas e saıdas)e o segundo, as mudancas de estado produzidas pela execucao do servico (representada porpre-condicoes e efeitos). Estes quatro elementos formam uma IOPE (input, output, precondi-tion, effect). As IOPEs serao instanciadas em Process. Em Profile existe apenas um subcon-junto delas, que apontam para uma funcionalidade mais geral do servico, para ser utilizadaem processos de descoberta. Em Profile as IOPEs sao referenciadas atraves das proprieda-des hasParameter, hasInput, hasOutput, hasPrecondition e hasEffect. Estas informacoes para oservico Ingresso estao exemplificadas nas linhas 12 a 15 da Figura 3.9.

• quais as caracterısticas do servico: descreve parametros adicionais que o servico precisa es-pecificar atraves de uma instancia da classe ServiceParameter. Alem disso, esta informacao indicase e possıvel classificar o servico em alguma categoria ou taxonomia atraves de ServiceCategory

e inclui garantias da qualidade do servico.

Page 57: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.8 OWL-S: Servicos Web Semanticos 41

Na Figura 3.9, supondo mais uma vez que namespaces, entidades e as ontologias necessarias foramdeclaradas, e criada uma instancia da classe Profile em um arquivo chamado IngressoProfile.owl.

01 <profile:Profile rdf:ID="IngressoProfile">02 <service:presentedBy rdf:resource="&Ingresso_service;#IngressoService"/>03 <profile:serviceName>Ingresso</profile:serviceName>04 <profile:textDescription>Compra de ingressos para passeios turisticos</profile:textDescription>0506 <profile:contactInformation>07 <actor:Actor rdf:ID="Ingresso_contacts">08 <actor:email>[email protected]</actor:email>09 </actor:Actor>10 </profile:contactInformation>1112 <profile:hasInput rdf:resource="&Ingresso_process;#Ingresso_comprarIngresso_cartao_IN">"/>13 <profile:hasInput rdf:resource="&Ingresso_process;#Ingresso_comprarIngresso_dia_IN">"/>14 <profile:hasInput rdf:resource="&Ingresso_process;#Ingresso_comprarIngresso_ptoTuristico_IN">"/>15 <profile:hasOutput rdf:resource="&Ingresso_process;

#"Ingresso_comprarIngresso_comprarIngressoReturn_OUT"/>1617 </profile:Profile>

Figura 3.9: Exemplo do servico Ingresso instanciado pela ontologia Profile.owl

3.8.3 Process.owl - como o servico funciona?

Para fornecer uma perspectiva detalhada de como o servico funciona, ele pode ser visto comoum processo. Especificamente o OWL-S define como subclasse de ServiceModel a classe Process, quepossibilita uma maneira de atuacao de varios campos de Inteligencia Artificial como, por exemplo,a area de Planejamento, que sera visto no Capıtulo 4. Um processo pode ser resumido como umatransformacao de dados e estados. Em OWL-S existem tres tipos de processos: atomico, simples ecomposto. As caracterısticas destes tres tipos de processos sao:

• Classe AtomicProcess: representa processos atomicos, que sao aqueles que podem ser invo-cados diretamente. Sao processos executados em um passo simples, recebem uma mensagemde entrada, realizam a execucao e retornam uma mensagem de saıda.

• Classe CompositeProcess: um processo composto pode ser decomposto em outros pro-cessos. Esta decomposicao pode ser especificada atraves de construcoes de controle (classeControlConstruct). As construcoes de controle podem ser:

Page 58: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

42 Servicos Web e a Web Semantica

– sequence: uma lista de processos para serem executados em ordem;

– split: conjunto de processos para serem executados concorrentemente;

– split+join: processos que tem sincronizacao parcial;

– unordered: todos os componentes precisam ser executados, porem sem ordem especıfica;

– choice: permite a escolha da execucao de um processo em uma lista de processos;

– if-then-else: testa uma condicao e executa um processo dependendo do resultado;

– iterate: sua propriedade nextProcessComponent tem o mesmo valor do processo corrente e

– repeat-until: testa uma condicao e executa um processo ate que a mesma seja falsa.

E importante notar que um processo composto e especificado por um especialista do servicoWeb em questao. De fato, todas as ontologias do OWL-S devem ser criadas pelo especialista doservico Web que esta sendo disponibilizado.

• Classe SimpleProcess: um processo simples nao pode ser invocado diretamente, mas tambeme executado em um unico passo. Sao usados como elementos abstratos que podem ser visoesde processos atomicos ou representacoes simplificadas de processos compostos.

A classe Process e formada por uma colecao de processos atomicos, simples e compostos, epode ter as propriedades hasInput, hasLocal, hasOutput, hasPrecondition e hasResult, que relacionam ainstancia da classe Process com instancias das classes Input, Parameter, Parameter, Condition e Result

respectivamente. Seguem algumas caracterısticas destas classes:

• Classes Input e UnConditionalOutput: a classe Input especifica que informacoes o processorequer para ser executado. Dependendo do fluxo de dados, os inputs podem ser fornecidospor outros processos ou por clientes atraves de mensagens. Da mesma maneira, outputs saoresultados da execucao do processo que, dependendo do fluxo de dados, podem ser enviadospara outros processos ou servicos.

• Classe Condition (pre-condicoes e efeitos): a execucao de um processo pode tambem re-sultar em mudancas no estado do mundo. A propriedade hasPrecondition descreve as condicoesno estado do mundo que precisam estar satisfeitas para que o processo seja executado correta-mente. Ja os efeitos descrevem a transformacao do estado do mundo apos tal execucao.

Page 59: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.8 OWL-S: Servicos Web Semanticos 43

• Classes ConditionalEffect e ConditionalOutput: estas duas classes sao utilizadas noscasos em que exista a necessidade de associar condicoes com saıdas e efeitos.

Na versao 1.1 a linguagem OWL nao padroniza como descrever condicoes. Para isso outraslinguagens como, por exemplo, a SWRL, podem ser utilizadas. A linguagem SWRL (SemanticWeb Rule Language) [McGuinness et al., 2004a] e uma linguagem de regras criada da combinacaode OWL com a linguagem Rule Markup Language, fornecendo desse modo uma linguagem pararegras compatıvel com OWL. O SWRL foi submetido ao W3C como um ponto inicial para criacaode linguagens para regras na Web Semantica. As expressoes em SWRL podem ser utilizadas paradescricao de condicoes, condicoes de controle de processo (como if-then-else) e expressoes de efeitos.

Por fim, na definicao de um processo, existem situacoes em que diferentes propriedades, ouelementos referenciados por propriedades, precisam ser iguais. Um exemplo tıpico e um processo decompra, no qual o item a ser comprado precisa ser referenciado por alguma identificacao fornecidacomo parametro de entrada. Mais tarde, saıdas do processo precisarao referenciar esta identificacao.Para estes casos, o OWL-S fornece a classe ValueOf, com propriedades como atProcess e theParameter

que denotam os valores do parametro e o processo nos quais este valor e utilizado.

A Figura 3.10 mostra um exemplo de como a compra de um ingresso pode ser mapeada como umprocesso atomico. Como este exemplo e muito simples, nao temos mudanca de estado e, portanto,nao serao utilizadas aqui as propriedades hasPrecondition e hasResult, que tornariam necessaria autilizacao de alguma linguagem de regras como SWRL [McGuinness et al., 2004a].

01 <!--Inputs-->

02 <process:Input rdf:ID="Ingresso_comprarIngresso_cartao_IN">

03 <process:parameterType rdf:datatype="&xsd;#anyURI">&xsd;#string</process:parameterType>

04 </process:Input>

05

06 <process:Input rdf:ID="Ingresso_comprarIngresso_dia_IN">

07 <process:parameterType rdf:datatype="&xsd;#anyURI">&xsd;#int</process:parameterType>

08 </process:Input>

09

10 <process:Input rdf:ID="Ingresso_comprarIngresso_ptoTuristico_IN">

11 <process:parameterType rdf:datatype="&xsd;#anyURI">&xsd;#string</process:parameterType>

12 </process:Input>

13

14 <!--Outputs-->

15 <process:Output rdf:ID="Ingresso_comprarIngresso_comprarIngressoReturn_OUT">

Page 60: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

44 Servicos Web e a Web Semantica

16 <process:parameterType rdf:datatype="&xsd;#anyURI">&xsd;#int</process:parameterType>

17 </process:Output>

18

19 <!--Process-->

20 <process:AtomicProcess rdf:ID="Ingresso_comprarIngresso">

21 <process:hasInput rdf:resource="#Ingresso_comprarIngresso_cartao_IN"/>

22 <process:hasInput rdf:resource="#Ingresso_comprarIngresso_dia_IN"/>

23 <process:hasInput rdf:resource="#Ingresso_comprarIngresso_ptoTuristico_IN"/>

24 <process:hasOutput rdf:resource="#Ingresso_comprarIngresso_comprarIngressoReturn_OUT"/>

25 </process:AtomicProcess>

Figura 3.10: Exemplo do servico Ingresso instanciado pela ontologia Process.owl

As linhas 02 a 12 da Figura 3.10 contem as instancias de Input, que sao as informacoes necessariaspara execucao do processo de compra de um ingresso para um passeio turıstico. As linhas 15 a 17contem uma instancia de Output, que e o resultado da execucao do processo. As linhas 20 a 24 contema declaracao de compra de ingresso como um processo atomico e relaciona sua entrada e saıda comas instancias declaradas nas linhas anteriores.

Uma vez que servicos sao modelados como processos, a composicao de servicos Web pode serobtida atraves da criacao de processos compostos. Este e de fato o maior benefıcio da ontologiaProcess.owl e e o recurso que sera utilizado nas proximas secoes desta dissertacao, para criar acomposicao de servicos.

3.8.4 Grounding.owl - como o servico pode ser acessado?

A ontologia Grounding.owl especifica como um agente pode acessar o servico, detalhando in-formacoes como protocolo utilizado, formato das mensagens, serializacao, transporte e enderecamento.Esta ontologia pode ser pensada como um mapeamento da abstracao para uma especificacao concreta,porque a sua funcao principal e mostrar como as entradas e as saıdas (genericas) de um processoatomico sao transformadas em mensagens concretas em um formato transmissıvel. A concepcao degrounding em OWL-S e consistente com o conceito de binding do WSDL.

Referenciado como OWL-S/WSDL grounding o mapeamento destas duas linguagens e baseadanas seguintes correspondencias:

Page 61: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.8 OWL-S: Servicos Web Semanticos 45

• processos atomicos em OWL-S correspondem a operacoes WSDL;

• conjunto de entradas e saıdas de processos atomicos em OWL-S correspondem a mensagens emWSDL;

• os tipos (classes OWL) das entradas e saıdas de processos atomicos em OWL-S correspondema uma extensao WSDL para tipos abstratos.

No WSDL sao criadas marcacoes atraves da insercao do atributo owl-s-parameter de modo queexista uma correspondencia no WSDL com as instancias OWL-S. Ja no OWL-S temos a classewsdlGrounding, subclasse de ServiceGrounding, que tem o proposito de referenciar construcoes relevantesdo WSDL. Cada instancia de wsdlGrounding contem instancias de WsdlAtomicProcessGrounding que possuipropriedades como wsdlversion, wsdlDocument, wsdlOperation, wsdlInputMessages e wsdlOutputMessages en-tre outras. A Figura 3.11 mostra um trecho de como ficaria uma instancia de grounding para o servicoIngresso.

01 <grounding:WsdlGrounding rdf:ID="WsdlGrounding">

02 <grounding:hasAtomicProcessGrounding rdf:resource="#Ingresso_comprarIngresso_Grounding"/>

03 </grounding:WsdlGrounding>

04

05 <grounding:WsdlAtomicProcessGrounding rdf:ID="Ingresso_comprarIngresso_Grounding">

06 <grounding:owlsProcess rdf:resource="&Ingresso_process;#Ingresso_comprarIngresso"/>

07

08 <grounding:wsdlOperation>

09 <grounding:WsdlOperationRef>

10 <grounding:portType rdf:datatype="&xsd;#anyURI">

11 http://.../Ingresso.wsdl#Ingresso

12 </grounding:portType>

13 <grounding:operation rdf:datatype="&xsd;#anyURI">

14 comprarIngresso

15 </grounding:operation>

16 </grounding:WsdlOperationRef>

17 </grounding:wsdlOperation>

18

19 <grounding:wsdlInputMessage rdf:datatype="&xsd;#anyURI">

20 http://.../Ingresso.wsdl#comprarIngressoRequest

21 </grounding:wsdlInputMessage>

22

23 <!-- Aqui seriam declaradas as entradas atraves do elemento grounding:wsdlInput>

24 ...

Page 62: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

46 Servicos Web e a Web Semantica

25 <!-->

26

27 <grounding:wsdlOutputMessage rdf:datatype="&xsd;#anyURI">

28 http://.../Ingresso.wsdl#comprarIngressoResponse

29 </grounding:wsdlOutputMessage>

30

31 <!-- Aqui seriam declaradas as saıdas atraves do elemento grounding:wsdlOutput>

32 ...

33 <!-->

34

35 <grounding:wsdlDocument rdf:datatype="&xsd;#anyURI">

36 http://.../Ingresso.wsdl#

37 </grounding:wsdlDocument>

38

39 </grounding:WsdlAtomicProcessGrounding>

Figura 3.11: Exemplo do servico Ingresso instanciado pela ontologia Grounding.owl

Na Figura 3.11, as linhas 05 a 08 iniciam o mapeamento entre o processo IngressocomprarIngresso

declarado na ontologia process e a operacao comprarIngresso do arquivo WSDL. A linha 19 inicia omapeamento da mensagem de requisicao comprarIngressoRequest e de todos os seus parametros deentrada, com os parametros do processo atomico IngressocomprarIngresso. O mesmo acontece coma mensagem de resposta a partir da linha 27. As linhas 35 a 37 definem a localizacao do arquivoWSDL.

3.9 Ferramentas para OWL-S

Na implementacao do WEBRPlan, no Capıtulo 6 utilizaremos duas ferramentas disponıveis paraOWL-S:

1. WSDL2OWL-S 1.1 [SoftLab, 2006]: ferramenta desenvolvida na Universidade Carnegie Mellon,fornece uma traducao semi-automatica de WSDL para OWL-S. Os resultados desta conversaoconsistem numa especificacao completa de Grounding e especificacoes parciais de Process eProfile. Nao e possıvel criar uma conversao completa devido a diferenca entre propositos dasduas linguagens. Especificamente o WSDL nao fornece nenhuma informacao de composicao de

Page 63: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

3.9 Ferramentas para OWL-S 47

processos, portanto, no resultado desta conversao nao havera este tipo de informacao. Apesardestas diferencas, a conversao fornece a estrutura basica do OWL-S, reduzindo em grande parteo trabalho manual.

2. OWL-S API [Martin et al., 2004]: uma API em JAVA, desenvolvida pelo grupo de pesqui-sas de Web Semantica da Universidade de Maryland, fornece uma maneira de ler e executarservicos descritos em OWL-S. A API fornece um motor de execucao que pode invocar processosatomicos e processos compostos, que usem as construcoes de controle Sequence, Unordered eSplit. Processos que possuem construcoes condicionais como If-Then-else e RepeatUntil naosao suportados. Porem a implementacao da API pode ser estendida para manipular tais cons-trucoes e outras que sejam customizadas. Permite tambem uma traducao semi-automatica deprocessos na linguagem do planejador SHOP2 [Nau et al., 2003].

Page 64: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Figura 3.12: OntoViz

Page 65: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Capıtulo 4

Planejamento com ontologias para

Servicos Web

Conforme foi discutido anteriormente, uma das motivacoes para a criacao de servicos WebSemanticos e possibilitar a composicao automatica de servicos Web criados a partir de diferentesconceitualizacoes de um determinado domınio de aplicacao. Neste capıtulo sera mostrado como pes-quisas recentes propoem a ideia de se utilizar tecnicas de planejamento em IA para compor servicosWeb.

Planejar e um processo de escolha de acoes para atingir um objetivo, atraves da previsao dosefeitos da execucao destas acoes. A area de planejamento em IA estuda a construcao de um agentede software ou robotico capaz de realizar este mesmo processo de raciocınio. Varias tecnicas fo-ram desenvolvidas para resolver problemas de planejamento, entre elas, o planejamento hierarquico,tambem chamado de planejamento HTN (Hierarquical Task Network) [Erol et al., 1994].

Este capıtulo dara uma breve introducao a area de planejamento em Inteligencia Artificial, ex-plicando planejamento classico e como planejamento hierarquico pode ser usado juntamente comontologias. Finalmente, sera visto como planejamento pode ser aplicado na composicao automaticade servicos Web Semanticos.

49

Page 66: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

50 Planejamento com ontologias para Servicos Web

4.1 Planejamento Classico

Um problema de planejamento classico pode ser descrito genericamente como uma 5-tupla <

S, s0, G,A, f >, em que:

1. S e um espaco de estados finito e nao-vazio;

2. s0 ∈ S e um estado inicial ;

3. G ⊆ S e um conjunto de estados meta (ou objetivo);

4. A(s) e um conjunto finito de acoes aplicaveis para cada estado s ∈ S;

5. f : S × A− > S e uma funcao de transicao de estados que mapeia a transicao de um estado s

para outro estado s� apos a execucao de uma acao a em s.

Os itens 1, 4 e 5 definem um domınio de planejamento. O espaco de estados pode ser modeladocomo um grafo dirigido onde cada vertice corresponde a um estado do mundo e cada arco correspondea uma acao cuja execucao transforma um estado do mundo em outro estado do mundo. Nestecontexto, a tarefa de planejamento consiste em encontrar um caminho pelo grafo, i.e., uma sequenciade acoes, que chamamos de plano, que leve do estado inicial S0 ∈ S ate um estado meta SG ⊆ S.Esta caracterizacao de planejamento classico [Weld, 1994] baseia-se nas seguintes suposicoes:

1. onisciencia: em qualquer estado temos conhecimento total sobre o mundo;

2. determinismo de acoes: uma acao executada a partir de um estado S0 realiza uma transicaopara um unico estado;

3. causa de mudanca unica: todas as mudancas que ocorrem no mundo sao devido a execucaode acoes do agente para o qual o plano foi criado;

4. tempo atomico: as acoes nao tem duracao, cada transicao de estado e instantanea e

5. conceitualizacao dos termos: nomes de acoes e fluentes como na logica de predicados deprimeira ordem.

Page 67: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.1 Planejamento Classico 51

Para construir um planejador que seja capaz de resolver um problema de planejamento, e ne-cessaria uma linguagem para representar acoes e estados do mundo. A linguagem mais conhecidacom esta finalidade e a STRIPS [Fikes and Nilsson, 1971], usada pela maioria dos algoritmos de plane-jamento classico. Outra linguagem, baseada em STRIPS e largamente utilizada, e a PDDL (PlanningDomain Definition Language) [McDermott, 1998], que e mais geral que a linguagem STRIPS e quetem sido adotada como padrao pela comunidade de planejamento.

Planejamento baseado em STRIPS descreve um estado ou situacao do mundo s ∈ S como umconjunto de literais da logica de primeira ordem, tambem chamado de fluentes. Suponha, por exem-plo, um problema de deslocar um turista de Sao Paulo para Barcelona descrito em termos de fluentesda logica da seguinte maneira:

s0: em(turista,SaoPaulo)

tempassagem(turista,SaoPaulo,Barcelona)

G: em(turista,Barcelona)

Em PDDL o estado inicial s0 e meta G ⊆ S sao representados da seguinte maneira:

(:init (and (em turista SaoPaulo)(tempassagem turista SaoPaulo Barcelona))

(:goal (em turista Barcelona) )

Acoes em PDDL sao operadores constituıdos de: (i) uma lista de argumentos do operador(:parameters), (ii) pre-condicoes que especificam uma conjuncao de condicoes (and) que devem ser sa-tisfeitas para a acao ser aplicavel em um estado (:precondition) e (iii) uma conjuncao de mudancas noestado do mundo (condicoes que passam a ser verdadeiras) resultante da execucao da acao (:effect).Os efeitos de uma acao podem ser condicoes negadas (not) significando os fluentes que deixam de serverdadeiros no estado apos a execucao da acao.

Suponha agora que a acao viajar tenha como pre-condicao que existam passagens do local deorigem do turista para o destino. Esta acao tera como efeito o deslocamento do turista do local deorigem para o destino. Na linguagem STRIPS, esta acao e descrita da seguinte maneira:

Nome da ac~ao: viajar(turista,origem,destino)

Pre-condic~ao: em (turista,origem)

and tempassagem(turista,origem,destino)

Efeitos:

Page 68: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

52 Planejamento com ontologias para Servicos Web

adic~ao: em(turista,destino)

eliminac~ao: em(turista,origem)

tempassagem(turista,origem,destino)

A semantica dos operadores STRIPS (definicao da funcao de transicao de estados) e: dado umestado s, o estado s� resultante da execucao da acao a e: s� = s - eliminacao(a) + adicao(a). EmPDDL a descricao desta acao ficaria da seguinte forma:

( :action viajar

:parameters (?turista ?origem ?destino)

:precondition (and

(em ?turista ?origem)

(tempassagem ?turista ?origem ?destino)

)

:effect ( and

( em ?turista ?destino)

( not ( em ?turista ?origem) )

( not ( tempassagem ?turista ?origem ?destino) )

)

)

Em PDDL, termos iniciados por ?sao representacoes de variaveis. Esta acao poderia ser aplicadaem qualquer estado do mundo que tivesse os predicados (em ?turista ?origem) e (tempassagem ?turista

?origem ?destino) como verdadeiros.

Suponha agora que sejam dados os estados inicial (em(turista,Barcelona)) e meta(and em(turista,Madri) visitada(TorreEiffel)) e que existisse uma outra acao no domınio, definida daseguinte maneira:

Nome da ac~ao: visitar(turista,TorreEiffel)

Pre-condic~ao: em (turista,Franca)

Efeitos de adic~ao: visitada(TorreEiffel)

Efeitos de eliminac~ao: -

No plano:

viajar(turista,Barcelona,Madri)

viajar(turista,Madri,Franca)

visitar(turista,TorreEiffel)

Page 69: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.2 Planejamento hierarquico e o planejador JSHOP2 53

a acao viajar(turista,Madri,Franca), na tentativa de satisfazer as pre-condicoes da acaovisitar(turista,TorreEiffel), desfaz o efeito da acao viajar(turista,Madri) necessaria para atingir umdos fluentes do estado meta. Este fato e definido como conflito entre acoes. O planejador deveencontrar um plano que seja livre de conflitos. Um plano solucao para este problema, considerandoque o turista tem passagens para todos os locais, seria:

viajar(turista,Barcelona,Franca)

visitar(turista,TorreEiffel)

viajar(turista,Franca,Madri)

4.2 Planejamento hierarquico e o planejador JSHOP2

A metodologia de planejamento hierarquico (Hierarquical Task Network) [Erol et al., 1994],tambem chamada de HTN, consiste na criacao de planos por decomposicao de tarefas. A principaldiferenca entre um planejador baseado em STRIPS e um planejador hierarquico esta na maneira emque o domınio e descrito ou modelado: no planejamento baseado em STRIPS, o domınio contemapenas as acoes que o agente pode executar (chamadas de acoes primitivas) enquanto que no plane-jamento hierarquico, alem das acoes executaveis, o domınio contem descricoes de acoes complexasque nao podem ser executadas diretamente pelo agente, mas que especificam metodos que as de-compoem em acoes executaveis.

Assim, as metas de planejamento hierarquico podem ser bem diferentes daquelas especificadas emplanejamento classico. No planejamento baseado em STRIPS, dependendo da estrategia de buscaempregada, resolver um problema significa responder a uma das seguintes perguntas:

1. Existe um plano que atinja (satisfaca) as condicoes da meta, executando-o a partir do estadoinicial?

2. Existe um plano que satisfaca cada uma das condicoes da meta e pre-condicoes das acoes e queseja livre de conflitos?

A primeira pergunta e, em geral, feita por planejadores que fazem busca num espaco de estadosenquanto que a segunda e feita por planejadores que fazem busca num espaco de planos.

Por outro lado, resolver um problema em planejamento hierarquico significa responder a seguintepergunta:

Page 70: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

54 Planejamento com ontologias para Servicos Web

1. Existe uma maneira de detalhar uma acao complexa ou tarefa complexa, em acoes que podemser executadas diretamente pelo agente?

Note que no planejamento hierarquico, o conhecimento sobre como sequenciar acoes esta naespecificacao de metodos de decomposicao de tarefas, deixando assim de lado o raciocınio sobrecomo efeitos de acoes podem atingir os fluentes do estado meta, ou seja, a construcao de planossomente a partir de acoes primitivas.

Existem tres tipos de tarefas no planejamento hierarquico:

• tarefa primitiva: corresponde a uma acao primitiva do tipo STRIPS e, portanto, pode serexecutada diretamente pelo agente. Exemplo: embarcar num avi~ao;

• tarefa meta: corresponde a uma tarefa que satisfaz uma meta dos planejadores baseados emSTRIPS como, por exemplo, em(pessoa,local) que e transformada em uma tarefa meta do tipoachieve[f], onde f e um fluente;

• tarefa composta ou nao-primitiva: e uma tarefa de mais alto nıvel que pode envolvervarias outras tarefas: tarefas primitivas, tarefas meta ou mesmo outras tarefas compostas(representado por uma rede de tarefas, definida a seguir).

Uma tarefa composta e uma tarefa meta podem ser decompostas atraves de metodos. Noplanejamento HTN, o uso de tarefas compostas e metodos de decomposicao e uma forma de remediara intratabilidade computacional de alguns domınios de aplicacao. Este conhecimento (chamado deconhecimento de controle dependente de domınio) e fornecido pelo especialista na forma de metodosque especificam como uma acao composta de alto nıvel pode ser decomposta em uma sequencia deacoes de baixo nıvel, ou seja, acoes que podem ser executadas pelo agente, sem o risco de existirconflitos entre elas.

Uma rede de tarefas d [Erol et al., 1994] e um par (T,φ) onde T e uma lista de tarefas quedevem ser executadas e φ e uma conjuncao de restricoes do tipo (t� ≺ t), (v = v�), (v = c), (t, l),(l, t) e (t, l, t�) que devem ser satisfeitas com a execucao da rede de tarefas. Onde t� e t sao tarefas, v

e v� sao variaveis, c e uma constante e l e um fluente. Intuitivamente, (t� ≺ t) significa que a tarefat� precede a tarefa t; e (t, l), (l, t) e (t, l, t�) significam, respectivamente, que o fluente l e verdadeiroapos t, antes de t, e entre t e t�.

Page 71: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.2 Planejamento hierarquico e o planejador JSHOP2 55

Figura 4.1: Dois metodos alternativos para a tarefa nao-primitiva Ir(SP,RJ)

Um metodo e um par (h, d) onde h e um nome de uma tarefa composta e d e uma rede detarefas. Os metodos especificam como decompor tarefas compostas em outras tarefas, primitivas ounao-primitivas. Pode haver mais do que um metodo associado a uma mesma tarefa composta. AFigura 4.1 ilustra dois metodos para a tarefa composta Ir(SP,RJ), que representa a tarefa ir de SaoPaulo para Rio de Janeiro. A rede de tarefas d1 representa uma forma de ir de Sao Paulo para o Riode Janeiro por meio de aviao (Ir(SP,RJ),d1), enquanto a rede de tarefas d2 por trem (Ir(SP,RJ),d2).

Note que a definicao de planejamento HTN inclui restricoes de ordem entre acoes e restricoessobre o estado do mundo. Assim, uma meta de planejamento pode incluir uma rede de tarefas a serdecomposta com restricoes a serem satisfeitas com a execucao do plano detalhado pelo planejador.

Um problema de planejamento HTN e representado como uma tupla P = �d, I,D�, onde:

• d e uma rede de tarefas;

• I um estado inicial e

• D um conjunto de operadores e metodos associados ao domınio de planejamento.

Uma solucao para um problema de planejamento HTN �d, I,D� e uma rede de tarefas pri-mitivas, isto e, uma rede de tarefas composta apenas de tarefas primitivas, que pode ser executadaa partir da situacao I e que satisfaca as restricoes de d.

Page 72: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

56 Planejamento com ontologias para Servicos Web

O planejador HTN trabalha substituindo cada tarefa nao-primitiva h por uma rede de tarefas d

descrita pelo metodo (h, d). Chamamos esta substituicao de decomposicao hierarquica. A Figura4.2 apresenta a essencia do algoritmo de planejamento hierarquico. Um planejador hierarquico recebeuma rede de tarefas nao-primitivas, escolhe uma decomposicao hierarquica para uma tarefa da redee usa crıtica para eliminar as decomposicoes inviaveis e verificar a satisfacao das restricoes. Esteprocesso e repetido ate obter-se uma rede de tarefas primitivas cujos conflitos devem ser resolvidosatraves da adicao de restricoes de ordem e dos valores das variaveis.Entrada: um problema de planejamento P

Repita ate que P contenha apenas tarefas primitivas e retorne PEscolher uma tarefa n~ao-primitiva t em PEscolher um metodo para t (ponto de backtracking)Substituir t pela decomposic~ao (rede de tarefas) do metodoEncontrar interac~oes entre as tarefas em P bem como a n~ao satisfac~ao

das restric~oes e sugerir formas de resolve-las (crıticas)Aplicar uma das formas de resoluc~ao de conflitos (ponto de backtracking}Se os conflitos n~ao puderem ser resolvidos, falha

Fim

Figura 4.2: Um algoritmo simples de Planejamento Hierarquico

Uma forma bem simples de se resolver um problema de planejamento hierarquico e produzir todasas combinacoes de decomposicoes hierarquicas possıveis ate encontrar alguma que gere uma rede detarefas primitivas que seja livre de conflitos (metodo de busca exaustiva). Entretanto, levando-se emconta o tamanho do espaco de busca, seria mais apropriado aproveitar-se da estrutura do problema epodar grandes ramos do espaco de busca eliminando metodos, restricoes de variaveis e de ordem quelevarao a becos sem saıda. Tal tecnica e chamada de crıtica [Erol et al., 1994] e pode aproveitarcaracterısticas particulares de um domınio ou caracterısticas gerais sobre interacao de acoes.

4.2.1 Planejador JSHOP2

O JSHOP2 [Nau et al., 2003] e um sistema de planejamento HTN, baseado em decomposicaoordenada de tarefas, i.e., planeja as tarefas na mesma ordem em que elas serao executadas. OJSHOP2 e uma implementacao em Java do SHOP2 (Simple Hierarchical Ordered Planner) e possuias seguintes caracterısticas:

• conhecimento do estado corrente do mundo em cada etapa do processo de planejamento;

• possui um grande poder de expressividade, por exemplo, nas pre-condicoes pode-se misturar

Page 73: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.2 Planejamento hierarquico e o planejador JSHOP2 57

computacoes numericas e chamadas a programas externos;

• incorpora muitas funcionalidades do PDDL como, por exemplo, o uso de efeitos condicionaisem metodos e operadores e

• permite a combinacao de tarefas parcialmente ordenadas atraves do uso de :unordered.

O JSHOP2 recebe como entrada um domınio e um problema de planejamento. A declaracao dedomınios de planejamento possui a forma (defdomain domain-name (d1 d2...dn)), em que domain-name eum sımbolo que representa o nome do domınio e cada item di pode ser um operador um metodo ouum axioma (restricoes de redes de tarefas).

Os problemas de planejamento possuem a forma (defproblem problem-name domain-name ([a1 a2...an])

T), em que problem-name e domain-name sao sımbolos, cada ai e um atomo logico e T e uma lista de tare-fas. Esta forma define um problema de planejamento no domınio domain-name que pode ser resolvidoatraves das tarefas em T , com o estado inicial definido pelos atomos de a1 a an.

Um operador JSHOP2 representa uma tarefa primitiva de HTN atraves de uma expressao naforma (:operator h P D A [c]), onde:

• h (cabecalho) e o nome de uma tarefa primitiva;

• P representa as pre-condicoes do operador;

• D representa a lista de efeitos negados, ou seja, o que se tornara falso depois da execucao dooperador;

• A representa a lista de efeitos positivos, ou seja, o que se tornara verdadeiro depois da execucaodo operador e

• [c] e o custo da operacao, que quando omitido recebe o valor 1.

Um metodo SHOP2 e uma expressao na forma (:method h [name1] L1 T1 [name2] L2 T2 ... [namen]

Ln Tn), onde:

• h e uma tarefa composta;

Page 74: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

58 Planejamento com ontologias para Servicos Web

• Li e uma expressao de pre-condicao (que correspondem as restricoes de pre-condicoes da redede tarefas do HTN);

• Ti e uma lista de tarefas e

• namei e um nome opcional para o par (Li Ti) que o sucede.

Um metodo pode ser interpretado como: se L1 e satisfeita entao T1 deve ser usada, senao seL2 e satisfeita entao T2 pode ser usada e assim por diante. Esta lista e simplesmente uma listade subtarefas que indica como esta tarefa composta pode ser decomposta. Na lista, podem existirtarefas primitivas, tarefas compostas, bem como a especificacao de ordenacao das tarefas.

O JSHOP2 define um plano como uma lista totalmente ordenada de operadores instanciados deum dado domınio. Se p = (h1 h2...hn) e um plano e S e um estado, entao p(S) e o estado produzidoiniciado por S seguido das execucoes de o1, o2, ... e on na ordem dada. O custo do plano p e ototal dos custos de cada oi.

4.2.2 Um exemplo de domınio para planejamento hierarquico: planejamento de via-gens

Para exemplificar os conceitos definidos na Secao 4.2.1, sera apresentado, um exemplo de domıniopara planejamento de viagens utilizando o JSHOP2.

O problema consiste em planejar uma viagem para um turista que deseja visitar diversas cidadesda Europa. O turista possui um cartao de credito e, antes de viajar, encontra-se em uma cidadequalquer, por exemplo, Sao Paulo. Suponha que o turista deseje conhecer primeiro Paris e, emseguida, Roma. Para iniciar a viagem, sera preciso verificar se existem acomodacoes e meios detransporte de Sao Paulo a Paris em um mesmo dia. Sabendo que existe um meio de transporte entreas duas cidades, sera preciso definir qual a melhor maneira de transportar o turista, considerandoainda quanto dinheiro este turista pode gastar (saldo disponıvel no cartao de credito) e qual adistancia entre as duas cidades. Suponha que a melhor maneira avaliada seja viajar de aviao, entaosera preciso encontrar passagens aereas de Sao Paulo para Paris, considerando o saldo do cartao decredito. Assim que for comprada a passagem, sera debitado um valor no cartao.

Com a passagem comprada, e preciso buscar acomodacoes entre hoteis, albergues e pousadasem Paris, verificando disponibilidade de vagas. Encontrada uma acomodacao que o turista possa

Page 75: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.2 Planejamento hierarquico e o planejador JSHOP2 59

Figura 4.3: Hierarquia entre as tarefas do domınio Europa

pagar e que tenha vaga na data de chegada, e efetuada uma reserva e novamente debitado o valor nocartao. Com passagem e reserva garantidas, o turista gostaria de conhecer alguns pontos turısticos.Considerando que existem alguns pontos turısticos como praias, parques e jardins que sao maisaconselhaveis de serem visitados no verao e outros pontos que sao mais aconselhaveis no inverno,seria interessante verificar a previsao da temperatura no perıodo em que o turista estiver em Paris.Conforme a previsao, poderia ser incluıdo no planejamento a compra de ingressos para passeios deverao ou de inverno, sempre levando em consideracao a disponibilidade de saldo no cartao do turista.

Depois de passear por Paris, sera preciso definir um meio de transporte ate Roma, a proximacidade a ser visitada. Desta vez mais opcoes de transporte poderao surgir como trens, onibus oucarro. Em Roma sera necessario, mais uma vez, reservar acomodacoes e comprar ingressos parapasseios. Os procedimentos de escolha de transporte, reserva de acomodacao e compra de ingressospara passeios sera feita para cada uma das cidades que o turista desejar conhecer. Devido ao volumede todas estas informacoes, o turista pode precisar de uma agenda para organizar seus compromissos.Assim, cada vez que uma viagem for marcada, uma reserva efetuada ou um passeio selecionado, seraoincluıdas na agenda do turista a data e as informacoes sobre o evento.

Page 76: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

60 Planejamento com ontologias para Servicos Web

Levando em conta que o turista pode escolher um numero grande de cidades para visitar e queexistem inumeras informacoes sobre meios de transporte (aviao, trem,carro), previsao de temperatura,disponibilidade de vagas em hoteis, albergues e pousadas, o planejamento de uma viagem pode setornar um processo bem complexo.

O cenario que foi descrito sera modelado como um problema de planejamento na linguagemdo JSHOP2, para que este encontre um plano solucao. O Apendice A apresenta a especificacaocompleta deste domınio e sua hierarquia entre as tarefas e demonstrada na Figura 4.3. Na Figura4.4 e especificado um problema para o domınio Europa. No estado inicial sao dadas informacoessobre cidades(L.5 a L.7), hospedagem (L.11 a L.24), transporte (L.28 a L.39), passeios (L.43 a L.50)e informacoes sobre o turista (L.54 a L.56). Na linha (L.58) e dada a rede de tarefas para serexecutada, que consiste na viagem do turista juliana, partindo de Sao Paulo e passando por Paris eRoma.

1 (defproblem problem europa(

2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

3 ;; CIDADES

4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

5 (cidade paris)

6 (cidade roma)

7 (cidade saopaulo)

8 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

9 ;; Informac~oes sobre HOSPEDAGEM

10 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

11 (tem-hospedagem paris 1)

12 (na-cidade sansonnet paris)

13 (acomodacao sansonnet)

14 (tem-vaga sansonnet 1)

15 (diaria sansonnet 100)

16 (na-cidade maison paris)

17 (acomodacao maison)

18 (tem-vaga maison 1)

19 (diaria maison 20)

20 (tem-hospedagem roma 2)

21 (na-cidade positano roma)

22 (acomodacao positano)

23 (tem-vaga positano 2)

24 (diaria positano 10)

25 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

26 ;; Informac~oes sobre TRANSPORTE

27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Page 77: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.2 Planejamento hierarquico e o planejador JSHOP2 61

28 (aeroporto saopaulo)

29 (aeroporto paris)

30 (aeroporto roma)

31 (tem-passagem saopaulo paris 1)

32 (distancia saopaulo paris 1001)

33 (tem-passagem-aerea saopaulo paris 1 1001)

34 (tem-passagem-trem saopaulo paris 1 5)

35 (tem-passagem paris roma 2)

36 (distancia paris roma 300)

37 (tem-passagem-aerea paris roma 2 100000)

38 (tem-passagem-trem paris roma 2 5)

39 (custo-aluguel-carro 2)

40 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

41 ;; Informac~oes sobre PASSEIOS

42 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

43 (previsao-temp paris 1 30)

44 (passeio-inverno paris TourEiffel 1)

45 (passeio-verao paris TourEiffel 1)

46 (custo TourEiffel 1)

47 (previsao-temp roma 2 1)

48 (passeio-inverno roma pantheon 2)

49 (passeio-verao roma pantheon 2)

50 (custo pantheon 2)

51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

52 ;; Informac~oes sobre o turista

53 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

54 (tem-cartao juliana c1)

55 (saldo c1 1000)

56 (cartao c1))

57 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

58 ;; REDE DE TAREFAS

59 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

60 ((viajar juliana c1 saopaulo (paris roma))))

Figura 4.4: Exemplo de problema JSHOP2

Na Figura 4.5 e apresentado o plano solucao com 12 passos, fornecido pelo JSHOP2.

A plan with cost 12.0 was found:

(!compra-passagem-trem juliana saopaulo paris 1.0 c1)

Page 78: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

62 Planejamento com ontologias para Servicos Web

(!marca-agenda paris juliana 1.0)

(!reserva-hospedagem sansonnet c1 1.0)

(!marca-agenda sansonnet juliana 1.0)

(!comprar-ingresso toureiffel c1 1.0)

(!marca-agenda toureiffel juliana 1.0)

(!compra-passagem-trem juliana paris roma 2.0 c1)

(!marca-agenda roma juliana 2.0)

(!reserva-hospedagem positano c1 2.0)

(!marca-agenda positano juliana 2.0)

(!comprar-ingresso pantheon c1 2.0)

(!marca-agenda pantheon juliana 2.0)

Time Used = 0.031

Figura 4.5: Exemplo de solucao gerada pelo JSHOP2 para o problema de viajar para Europa

4.3 Planejamento com ontologias

Como vimos no exemplo de viagem para a Europa, um planejador encontra um plano solucaofazendo o casamento (unificacao) dos termos descritos no problema e nos operadores (ou metodos).Suponha que para resolver este problema, o planejador precisasse resgatar o saldo do cartao de creditodo turista de um banco de dados de uma empresa. Se neste banco de dados fosse utilizado o termocredito, em vez de saldo, o planejador nao conseguiria fazer a equivalencia entre as informacoes eassim nao encontraria um plano solucao.

O JSHOP2 permite inferir algumas informacoes sobre o estado atraves da inclusao de axiomasna modelagem do domınio. O problema da equivalencia entre os termos saldo e credito poderiaser resolvido com a introducao do axioma: (:- (saldo ?x) (credito ?x)) que corresponde a uma im-plicacao da logica, isto e, se saldo(x), entao credito(x). Embora o JSHOP2 permita a insercao dealgumas regras como axiomas, possui capacidade limitada de inferencia. Esta e a limitacao que oplanejamento para composicao de servicos Web deve enfrentar: servicos Web sao desenvolvidos pordiferentes projetistas, usando termos diferentes com o mesmo significado. Alem disso, o problema dereescrever domınios para cada aplicacao de planejamento e crıtico e tem sido discutido em diversostrabalhos de pesquisa. A Web Semantica sugere o uso de ontologias para aliviar estes problemas.Assim, um projetista, em vez de especificar um novo modelo de domınio, identifica as ontologias

Page 79: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.3 Planejamento com ontologias 63

relevantes ao domınio e passa-as a um tradutor, que transforma estas ontologias em uma linguagemde planejamento [McCluskey and Cresswell, 2005]. Desta forma, a medida que o uso de ontologiasprolifera na Web, sera possıvel a um agente obter automaticamente o conhecimento adequado pararesolver seus problemas de planejamento. O uso de ontologias em planejamento foi tema de umworkshop durante o ICAPS2005 [ICAPS2005, 2005].

Voltando ao exemplo dos termos saldo e credito, suponha que uma ontologia Euro.owl defina equi-valencia entre as classes saldo e credito atraves da expressao owl:equivalentClass. Se um planejadorpassar esta ontologia por um tradutor, podera inferir a equivalencia entre saldo e credito, mas aindaassim a inferencia seria limitada a capacidade do planejador em traduzir regras da ontologia para osaxiomas. Esta limitacao impossibilita que os planejadores possam lidar com toda a expressividade deontologias da Web Semantica. Com isso, surge a necessidade de integrar o planejador com um motorde inferencia e uma base de conhecimento capazes de avaliar pre-condicoes e realizar alteracoes noestado do mundo de uma forma mais eficiente. Apesar de este continuar ainda sendo o gargalo doproblema, pois motores de inferencia herdam a complexidade dos provadores automaticos da logica,esta e a unica solucao existente para o planejamento com inferencia.

Com a necessidade de integrar o planejador a um motor de inferencia surgem duas questoes: (i)como representar informacoes do estado do mundo neste novo modelo e (ii) como implementar estaintegracao (planejador e motor de inferencia).

A primeira questao pode ser resolvida com a representacao das informacoes do estado atraves deinstancias das ontologias. Estas instancias passariam a ser armazenadas em uma base de conheci-mento. Por exemplo, no estado incial dado pela Figura 4.4 as informacoes na linguagem JSHOP2,sobre o hotel Sansonnet em Paris sao:

(tem-hospedagem paris 1)

(na-cidade sansonnet paris)

(acomodacao sansonnet)

(tem-vaga sansonnet 1)

(diaria sansonnet 100)

Estas informacoes poderiam ser representadas como uma instancia de uma ontologia Euro.owlda seguinte forma:

<euro:hotel rdf:ID="Sansonnet">

Page 80: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

64 Planejamento com ontologias para Servicos Web

<euro:id rdf:datatype="http://www.w3.org/2001/XMLSchema#int">2</euro:id>

<euro:noLocal rdf:resource="#paris"/>

<euro:dia rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</euro:dia>

<euro:vagas rdf:datatype="http://www.w3.org/2001/XMLSchema#int">30</euro:vagas>

<euro:diaria rdf:datatype="http://www.w3.org/2001/XMLSchema#float">10.0</euro:diaria>

</euro:hotel>

Tendo construıdo uma base de conhecimento representando o estado do mundo como instanciasde ontologias OWL, a segunda questao, como integrar planejador e motor de inferencia , podeser respondida pela capacidade do JSHOP2 de fazer chamadas a programas externos. Assim, osmecanismos de avaliacao de pre-condicoes, efeitos e atribuicao de valores as variaveis do JSHOP2podem ser substituıdos por chamadas a um motor de inferencia. Como todas as informacoes estaonuma base de conhecimento, o motor de inferencia devera fazer consultas para recuperar informacoes.A Figura 4.6 ilustra a integracao entre o JSHOP2 e um motor de inferencia. Para entender comoesta integracao pode ser implementada, suponha que o motor de inferencia seja o do JENA2. Assim,uma maneira de recuperar o custo da diaria do Hotel Sansonnet seria (em SPARQL):

PREFIX euro:<http://exemplo.br/ontologia/euro#>

SELECT ?x

WHERE {?acomodacao euro:diaria ?x

?acomodacao euro:hotel euro:Sansonnet.};

Figura 4.6: Integracao entre o JSHOP2 e o motor de inferencia do JENA2

Nesta nova arquitetura 4.6, as tarefas JSHOP2 precisam ser adaptadas para realizar chamadasao motor de inferencia. Por exemplo, a tarefa primitiva !reserva-hospedagem, modelada inicialmentecomo:

(:operator (!reserva-hospedagem ?acomodacao ?cartao ?dia)

Page 81: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.3 Planejamento com ontologias 65

(;verifica se a pessoa tem dinheiro para reservar

(diaria ?acomodacao ?custo)

(saldo ?cartao ?dinheiro)

(call > ?dinheiro ?custo)) ; PRE

((saldo ?cartao ?dinheiro)); DEL

((saldo ?cartao (call - ?dinheiro ?custo))); ADD

)

e modificada substituindo-se as pre-condicoes por chamadas a um programa que montara asconsultas em SPARQL e os efeitos por atualizacoes na base de conhecimento.

(:operator (!reserva-hospedagem ?acomodacao ?cartao ?dia)

((call > ; testa se saldo e maior que cart~ao

(call RetVal "saldo" ?cartao) ; retorna saldo do cartao

(call RetVal "custo" ?acomodacao) ; retorna custo de passagem de trem

)) ; PRE

(); DEL

((call Update ?cartao (call - ?dinheiro ?custo))); atualiza a informac~ao de saldo

)

Nas pre-condicoes do modelo adaptado, chamamos o programa RetVal que sera responsavel pormontar uma consulta com os parametros passados na sua chamada, executar esta consulta e devolvero resultado para a JSHOP2. No exemplo, as chamadas nas pre-condicoes do operador resultariamnas seguintes consultas SPARQL:

SELECT ?x

WHERE { euro:"?cartao" euro:saldo ?x.}

SELECT ?x

WHERE {?acomodacao euro:diaria ?x

?acomodacao euro:hotel euro:"?acomodacao".}

Depois de devolvidos os valores da consulta o JSHOP2 verifica se o saldo e maior que o custoda diaria. O efeito desta tarefa consiste em debitar no cartao o valor referente a reserva. Isso seria

Page 82: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

66 Planejamento com ontologias para Servicos Web

equivalente a solicitar uma atualizacao na base de conhecimento da seguinte maneira, atraves doJENA2 :

Util.updateParameter(?cartao,:saldo,?saldo)

Como nao existe inferencia em consultas diretas a base de conhecimento, apos a construcao dodomınio, o motor de inferencia devera inferir todas as triplas possıveis e criar novas instancias comos dados inferidos.

Por exemplo, dada que a classe passagemAerea e subclasse de passagem, seria possıvel fazerconsultas em instancias de passagemAerea simplesmente usando o termo passagem.

4.4 Planejamento para servicos Web

Em [McDermott, 2002], o autor cita que interacao com um servico Web e essencialmente umproblema de planejamento, pelo fato de o servico expor uma interface contendo definicao de acoes,que de fato e uma representacao de como o servico Web se comporta. Por exemplo, a acao login deum servico Web poderia ser modelada da seguinte maneira em PDDL:

(:action login

:parameters (a - Agent pw - String)

:precondition (password pw a)

:effect (logged-in a)

)

McDermott propoe um planejador de estimativa regressiva, uma das tecnicas de maior sucessona area de planejamento, e extensoes do PDDL para a composicao de servicos Web.

O planejamento para servicos Web difere do planejamento classico em diversos aspectos. Asprincipais diferencas consistem na violacao das suposicoes mostradas na Secao 4.1:

1. informacao incompleta do mundo: a Web e um ambiente com informacao incompleta;

2. acoes nao determinısticas: na Web nao se pode ter certeza sobre os efeitos da execucao deuma acao;

Page 83: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.4 Planejamento para servicos Web 67

3. acoes exogenas: podem ocorrer mudancas no estado do mundo que independem das acoesdefinidas no domınio de planejamento;

4. tempo: podem ocorrer transicoes de estado que nao sejam instantaneas e

5. conceitualizacao dos termos: nomes de acoes e fluentes podem ser subclasses ou equivalenciade outros nomes de conceitos (como na logica de descricoes).

Outro aspecto que torna este planejamento diferente e que em planejamento para servicos Webnotamos dois tipos diferentes de acoes: (i) acoes que alteram o estado do mundo, por exemplo, com-prar uma passagem e (ii) acoes que apenas devolvem informacoes, por exemplo, verificar a previsaode temperatura. Para lidar com a informacao incompleta, durante o planejamento, uma alternativae utilizar estas acoes de coleta de informacoes. De acordo com a informacao recuperada, diferentesacoes podem ser executadas. Isso sugere as seguintes estrategias de planejamento:

1. Planejamento condicional (off-line): em que o plano solucao incluira testes para o agente exe-cutor decidir qual acao executar (planos ramificados);

2. Planejamento (hierarquico ou nao) on-line, tambem chamado de planejamento e execucao.

A proposta de McDermott foi a de fazer planejamento condicional para compor servicos Web,introduzindo o operador verify no plano gerado [McDermott, 2002], como sera visto no Capıtulo5. Contudo, nos ultimos anos surgiram pesquisas na area de planejamento para composicao deservicos Web, utilizando planejamento hierarquico com OWL-S. Na Secao 4.4.1 sera visto como estemetodo de planejamento pode ser utilizado para resolucao do problema de composicao de servicosWeb semanticos descritos em OWL-S.

Assim, para usar tecnicas de planejamento para a composicao de servicos Web e preciso:

1. traduzir as descricoes de servicos Web em tarefas de planejamento hierarquico e

2. usar ontologias sobre o domınio de aplicacao e planejar usando um motor de inferencia, umavez que a informacao sobre o estado do mundo na Web pode ser baseada em diferentes concei-tualizacoes (como foi visto na Secao 4.3).

Page 84: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

68 Planejamento com ontologias para Servicos Web

4.4.1 Planejamento hierarquico e OWL-S

Uma das principais motivacoes para o uso de planejamento hierarquico em servicos Web vem dalinguagem OWL-S, mais especificamente da classe ServiceProfile, que descreve IOPEs1 e processoscompostos, modelo que pode ser facilmente encaixado nos conceitos de um problema de planejamentohierarquico.

Em [Parsia et al., 2004b], os autores acreditam que a tecnica de planejamento hierarquico e amais adequada para resolver o problema de composicao de servicos Web, pelo fato de que em HTNo conceito de decomposicao hierarquica e muito similar ao conceito de decomposicao de processoscompostos em OWL-S.

A definicao do problema de composicao de servicos Web, descritos na linguagem OWL-S, comoum problema de planejamento hierarquico, consiste na tupla < d, I,D >, em que:

• d (rede de tarefas): processo composto traduzido para uma rede de tarefas JSHOP2 ;

• I (estado inicial): instancias OWL;

• D (tarefas e metodos): traducao de processos atomicos e compostos OWL-S como tarefassimples e compostas JSHOP2, incluindo nas pre-condicoes chamadas a um programa de consultaa uma base de dados e nos efeitos atualizacoes na base de conhecimento. Construcoes de controlepara decomposicao OWL-S sao transformados em metodos de decomposicao JSHOP2 ;

O plano solucao e uma rede de processos atomicos OWL-S que podem ser executados a partir deI.

Conversao OWL-S para JSHOP2

Em [Parsia et al., 2004b] e especificado um algoritmo para efetuar a traducao de processos deOWL-S para SHOP2, como mostra a Figura 4.7. Este algoritmo consiste basicamente de trespassos. No primeiro todos os processos atomicos sao traduzidos em tarefas primitivas (operadores)do JSHOP2. No segundo, os processos simples sao traduzidos para tarefas compostas. No terceiropasso, cada processo composto recebe um tratamento especıfico de acordo com a construcao de

1Input Output Precondition Effect

Page 85: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.4 Planejamento para servicos Web 69

controle utilizada em sua definicao, gerando assim um novo metodo de decomposicao de tarefas.Este algoritmo, no entanto, nao especifica uma traducao de pre-condicoes e efeitos, pelo fato de naoexistir um padrao para estes elementos em OWL-S. Por isso, estes sao codificados diretamente noformato JSHOP2.Saıda: Domınio D na linguagem SHOP2Procedimento:

(1) D = vazio(2) Para cada definic~ao de processo atomico Q em K

Se o processo atomico tem apenas saıdas (outputs)O = TRADUZ-PROCESSO-ATOMICO-SAIDA(Q)

Se o processo atomico possui apenas efeitosO = TRADUZ-PROCESSO-ATOMICO-EFEITO(Q)

Adiciona O em D(3) Para cada definic~ao de processo simples Q em K

M = TRADUZ-PROCESSO-SIMPLES(Q)Adiciona M em D

(4) Para cada definic~ao de processo composto Q em KSe o processo tem a construc~ao de controle Sequence

M = TRADUZ-PROCESSO-Sequence(Q)Se o processo tem a construc~ao de controle If-Then-Else

M = TRADUZ-PROCESSO-If-Then-Else(Q)Se o processo tem a construc~ao de controle Choice

M = TRADUZ-PROCESSO-Choice(Q)Se o processo tem a construc~ao de controle Repeat-While

M = TRADUZ-PROCESSO-Repeat-While(Q)Se o processo tem a construc~ao de controle Repeat-Until

M = TRADUZ-PROCESSO-Repeat-Until(Q)Se o processo tem a construc~ao de controle Unordered

M = TRADUZ-PROCESSO-Unordered(Q)Adiciona M em D

(5) Devolve D\normalsize

Figura 4.7: Algoritmo de traducao OWL-S para JSHOP2

Por exemplo, suponha que um servico Web seja capaz de executar a tarefa de planejar-viagem eque essa tarefa esteja especificada da seguinte forma em OWL-S :

<process:CompositeProcess rdf:about="#planejarViagem">

<process:hasInput rdf:resource="#de"/>

<process:hasInput rdf:resource="#para"/>

<process:composedOf>

<process:Sequence>

Page 86: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

70 Planejamento com ontologias para Servicos Web

<process:components rdf:parseType="Collection">

<process:CompositeProcess rdf:about="#transportar"/>

<process:AtomicProcess rdf:about="#reservaHospedagem"/>

</process:components>

</process:Sequence>

</process:composedOf>

...

<process:sameValues rdf:parseType="Collection">

<process:ValueOf>

<process:theParameter rdf:resource="#para"/>

<process:atProcess rdf:resource="#planejarViagem"/>

</process:ValueOf>

<process:ValueOf>

<process:theParameter rdf:resource="#para"/>

<process:atProcess rdf:resource="#reservaHospedagem"/>

</process:ValueOf>

</process:sameValues>

Usando o algoritmo de traducao, essa tarefa seria traduzida para a linguagem JSHOP2 da seguinteforma:

(:method (planejarViagem ?de ?para)

()

((transportar)

(!reservaHospedagem ?para)))

Embora o algoritmo nao especifique como traduzir pre-condicoes de tarefas, e possıvel utilizarqualquer linguagem baseada em logica para isso. Na especificacao do OWL-S, existem exemplosde pre-condicoes nas linguagens KIF [Genesereth and Fikes, 1992] e SWRL [McGuinness et al.,2004a]. Uma vez que a proposta deste trabalho e integrar o JSHOP2 com o JENA2, para facilitarimplementacao, sera utilizada a sintaxe de consultas ARQ SPARQL do JENA2 com os operadoreslogicos suportados pelo JSHOP2 (! =, <, <=,=, >=, >).

Por exemplo, a pre-condicao do servico web planejar-viagem em OWL-S e especificada usando o

Page 87: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

4.4 Planejamento para servicos Web 71

SPARQL como:

<Description rdf:about="#planejarViagem">

<hasPrecondition>

<expr:JENA-Expression>

<expr:expressionBody>

<expr:val expr:id="val1">

SELECT ?x

WHERE {?passa rdf:type euro:passagem.

?passa euro:de euro:"+param1+".

?passa euro:para euro:"+param2+".

?passa euro:dia ?d.

?acomodacao euro:noLocal euro:"+param2+".

?acomodacao euro:dia ?d.

?acomodacao euro:id ?x )}";

<expr:val>

<expr:test expr:id="test1"> val1 != nil </expr:test>

</expr:expressionBody>

</expr:JENA-Expression>

</hasPrecondition>

</Description>

Esta pre-condicao consiste em recuperar informacoes de passagens e acomodacoes para a mesmacidade e no mesmo dia. Assim, se existir a acomodacao, a tarefa podera ser normalmente decomposta.Se a consulta a base de conhecimento nao devolver nenhuma passagem ou acomodacao, entao seranecessario executar uma acao para recuperar esta informacao na Web. Uma maneira de facilitar arecuperacao desta informacao seria incluir na pre-condicao, um processo para recuperar a informacaoprocurada. Por exemplo, poderia ser especificado que o processo < process : AtomicProcessrdf :about = ”obtemPassagens”/ > pode ser utilizado para recuperar informacoes de passagens.

Uma das grandes dificuldades que esta tecnologia deve ainda enfrentar e que sao raros os servicosWeb descritos em OWL-S. No Capıtulo 7 sera mostrado um estudo de caso de composicao de servicosWeb em que, a partir de um conjunto de servicos Web descritos em WSDL, estes sao traduzidos paraOWL-S que, por sua vez, sao traduzidos para operadores do JSHOP2. Para isso foi construıdo umambiente chamado WEBRPlan que gerencia todo este processo e que e uma das contribuicoes destemestrado.

Page 88: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Page 89: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Capıtulo 5

Trabalhos relacionados

Nos ultimos anos muitos avancos foram feitos nas pesquisas de integracao de tecnologias comoas da Web Semantica, servicos Web e tecnicas de planejamento em IA. Em especial os workshopsPlanning for Web Services, realizado durante o ICAPS 2003, Planning and Scheduling for Web andGrid Services, realizado durante o ICAPS 2004 e The Role of Ontologies in Planning and Scheduling,realizado durante o ICAPS 2005, alem das Conferencias Internacionais de Web Semantica (ISWC)dos ultimos anos, apresentaram diversos trabalhos que estao servindo como base para pesquisas atuaisna area. Dentre estes trabalhos, alguns serao destacados nas secoes a seguir.

5.1 O sistema Optop (Opt-based total-order planner)

Uma das primeiras tentativas de aplicar planejamento em IA para interacao com servicos Webfoi descrita em [McDermott, 2002] atraves do sistema Optop.

O sistema Optop e um planejador que faz busca heurıstica regressiva (Estimated-Regression Plan-ning), baseado no planejador Unpop [McDermott, 1996] [McDermott, 1999]. A busca inicia a partirdo estado meta e e guiada pela heurıstica que calcula a distancia estimada do estado corrente ao es-tado inicial. Este calculo e feito para o problema relaxado (ignorando os efeitos negativos das acoes).Este tipo de planejamento trabalha com literais instanciados (linguagem proposicional), que sao usa-dos para representar estados do mundo. Um estado do mundo e dado por uma relacao (verdadeiraou falsa) de todos os literais instanciados.

Para trabalhar com servicos Web, o Optop estende a linguagem PDDL. O domınio de planeja-

73

Page 90: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

74 Trabalhos relacionados

mento e especificado atraves de dois tipos diferentes de acoes: aquelas que apenas devolvem valorese outras que efetivamente produzem alteracoes no estado do mundo (efeitos).

O PDDL especifica alteracoes no estado do mundo atraves da notacao :effect, mas nao possuinenhuma maneira de especificar acoes que simplesmente geram novas informacoes. Por exemplo,suponha que durante a interacao com um servico Web, apos o envio de uma primeira mensagem,o servico devolva um numero de identificacao que precisa ser utilizado posteriormente em outrasmensagens. Este numero nao e efetivamente um efeito, mas sim uma nova informacao sobre o estadodo mundo que precisa ser compartilhada entre os passos do plano.

O principal problema com a suposicao de informacao completa do mundo, ao se lidar com servicosWeb, e que apenas com literais instanciados nao se pode expressar que novas informacoes estao sendoadquiridas. Para contornar isso, o Optop introduz um novo tipo de notacao, o campo :value, queespecifica qual valor e devolvido durante a execucao de uma acao.

Alem disso, sao criados mais dois novos sımbolos:(i) step-value, que indica o valor devolvido emum determinado passo do plano e (ii) this-step, que e a identificacao de cada passo do plano.

Em alguns casos, para que o plano continue sendo executado espera-se que determinados valoressejam devolvidos em um passo do plano. Por exemplo, se um agente submete um numero de cartaode credito para autorizacao, o valor esperado normalmente como resposta e um OK. Nesse caso, osımbolo verify e colocado na frente do valor devolvido por um passo do plano, para testar se esteesta retornando o valor considerado normal. Se o verify nao retornar verdadeiro, o plano falha.

O Optop modifica o planejador Unpop com estas e outras extensoes do PDDL, para lidar comsimples problemas de servicos Web. O Optop constroi planos para interagir com o servico, executa oplano e armazena os resultados. Com isso, caso o plano falhe, o cliente ganha mais informacoes, quepodem ser usadas em um novo ciclo de planejamento e posterior execucao.

O autor conclui seu artigo dando uma ideia que composicoes de servicos Web poderiam seratingidas, colocando no mesmo domınio de planejamento as acoes dos diversos servicos utilizados.Isso, claro, levando em conta que as diferencas de conceitos entre os agentes sejam mapeadas, atravesde especificacoes como, por exemplo, as ontologias.

Page 91: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

5.2 Uso de PDDL com marcacao semantica 75

5.2 Uso de PDDL com marcacao semantica

Uma outra abordagem interessante que tambem faz uso do PDDL para a resolucao do problemafoi proposta em [Peer, 2004]. Ela e baseada em tres fatores:

• nenhum planejador especıfico deve ser amarrado ao problema, dando assim liberdade para aescolha do melhor planejador para cada domınio;

• a linguagem utilizada para expressar os problemas e domınios de planejamento deve ser PDDL,pelo fato de esta ja ser largamente utilizada na area de planejamento;

• a marcacao semantica utilizada pelo planejador deve ser feita de uma forma alternativa aoOWL-S, uma vez que, entre outros motivos, esta linguagem nao possui uma padronizacaoquanto a declaracao de regras. Assim, e proposta uma marcacao mais simples, com sintaxesemelhante ao PDDL.

A Figura 5.1 mostra como e feito o mapeamento entre os conceitos de WSDL e o PDDL, utilizandoas marcacoes como ponte entre as duas linguagens. As linhas cheias representam associacoes deconceito e as tracejadas representam a associacao semantica, realizada pelas marcacoes.

Figura 5.1: Como as marcacoes conectam WSDL com PDDL [Peer, 2004]

Page 92: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

76 Trabalhos relacionados

O valor verdade das sentencas e determinado usando a suposicao de informacao completa domundo, ou seja, formulas que nao estao na base de conhecimento do agente sao consideradas falsas.

O proximo passo do sistema seria transformar as marcacoes do servico e as informacoes arma-zenadas na base de conhecimento do agente, em documentos PDDL. Com isso, qualquer planejadorcapaz de processar PDDL poderia gerar um plano para ser transformado em um fluxo de operacoesdo servico a serem invocadas.

Todo o fluxo de operacoes e controlado por um sistema denominado WSPlan [Peer, 2004]. Parainiciar uma composicao, a interface com o usuario invoca o componente PlanningManager que coordenaas tarefas de planejamento e execucao. O PlanningManager entao seleciona de arquivos predefinidoso documento WSDL e o documento de marcacoes e envia-os ao PDDLGenerator, que transformaraas marcacoes em PDDL. O PlanningManager seleciona um planejador baseado nos requerimentos dodomınio, que devolvera um plano ou uma mensagem de erro. O resultado, seja ele um plano ou umamensagem de erro, e avaliado pelo PlanParser. Dependendo da escolha do usuario, o plano pode serapenas mostrado na interface ou executado instantaneamente pelo componente ServiceExec. Casoseja necessario, um novo ciclo de planejamento e iniciado pelo PlanningManager. O componente centralFactBase armazena os dados do usuario, bem como dados transacionais recebidos durante o processo,os quais serao utilizados para preencher as mensagens SOAP/XML e para avaliar pre-condicoes,efeitos condicionais e condicoes de sucesso.

Apesar de utilizar uma linguagem de marcacao simples e semelhante ao PDDL, este sistemapossui a desvantagem de nao explorar as funcionalidades da Web Semantica, sendo incapaz de tratarontologias.

5.3 Planejamento e Execucao

Um dos artigos apresentados durante o ICAPS 2003 foi o [Parsia et al., 2004b], que e um dostrabalhos mais proximos a proposta apresentada nesta dissertacao. Nela propoem-se a utilizacao dalinguagem OWL-S e o sistema de planejamento hierarquico SHOP2 [Nau et al., 2003], para resolvero problema de composicao de servicos Web.

O principal fator que levou os autores a decidir pelo SHOP2 foi o fato de este planejar as tarefasna mesma ordem em que serao executadas, o que torna possıvel saber o estado corrente do mundo emcada passo do planejamento e facilitar o planejamento on-line. Assim, o mecanismo de avaliacao de

Page 93: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

5.3 Planejamento e Execucao 77

pre-condicoes do SHOP2 pode incorporar inferencia, bem como a habilidade de chamar programasexternos para recuperacao de informacao, fato esse ideal para interacao com servicos Web.

Apos a escolha da tecnica de planejamento HTN, e especificado um algoritmo para efetuar atraducao de servicos Web descritos em OWL-S para a linguagem do SHOP2. O algoritmo consistebasicamente de tres passos:(i) no primeiro todos os processos atomicos sao traduzidos em operadoresSHOP2 por uma funcao de traducao especıfica; (ii) no segundo, os processos simples sao traduzidospara metodos e, por fim, (iii) no terceiro passo, cada processo composto recebe um tratamentoespecıfico de acordo com a construcao de controle utilizada em sua definicao, gerando assim umnovo metodo de decomposicao de tarefas. O algoritmo, no entanto, nao especifica uma traducao depre-condicoes e efeitos, pelo fato de nao existir um padrao para estes elementos em OWL-S. Por isso,estes sao codificados diretamente no formato SHOP2.

Figura 5.2: Arquitetura do sistema [Parsia et al., 2004b]

Na Figura 5.2 temos uma visao geral da arquitetura do sistema. Atraves da interface, o usuarioentra com parametros e escolhe as tarefas que deseja executar, de uma lista predefinida. Os arquivosOWL-S dos servicos selecionados passam pelo tradutor (OWL-S to SHOP2 translator) que transformaos processos em um domınio no formato SHOP2. O SHOP2 comeca a decompor as tarefas de alto

Page 94: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

78 Trabalhos relacionados

nıvel em subtarefas chamando, atraves do componente Execution Monitoring System, servicos viaSOAP para obter informacoes necessarias a composicao do plano. Acoes que modificam o estadodo mundo nao sao permitidas nesta etapa. Baseado nas informacoes, se possıvel, o planejador criaum plano que e uma sequencia de tarefas primitivas, que serao convertidas em OWL e invocadasconforme a especificacao OWL-S/WSDL grounding.

Os autores de [Parsia et al., 2004b] fazem parte do grupo de pesquisa sobre a Web Semantica daUniversidade de Maryland. Este grupo desenvolveu um projeto interessante, a paginahttp://www.mindswap.org, completamente construıda com tecnologias da Web Semantica.

5.4 Planejamento com inferencia

No ano seguinte durante a Conferencia Internacional de Web Semantica, os mesmos autoresde [Parsia et al., 2004b] apresentaram uma extensao do trabalho, desta vez tendo como foco aintegracao de um motor de inferencia ao planejador [Parsia and Sirin, 2004].

Neste trabalho sao destacados os esforcos para integrar as visoes da Web Semantica e dos servicosWeb como, integracao essa definida como um mundo onde ontologias da Web Semantica suportemtarefas relacionadas a automacao de servicos Web, como descoberta e composicao.

Sao discutidos dois problemas principais desta abordagem: (i) o OWL-S nao especifica comocodificar pre-condicoes e efeitos, que sao inseridos manualmente nos operadores traduzidos, resultandoem perda da expressividade e (ii) que em planejamento assume-se informacao completa do mundo,diferente do que ocorre na Web. Como solucao para problemas como os deste tipo, e proposto ummotor de inferencia integrado ao planejador, especificamente o Pellet [Mindswap, 2003].

Para isso primeiramente devem ser feitas algumas modificacoes na definicao de operadores, talque pre-condicoes e efeitos sejam descritos em OWL. Para este fim, surgem as seguintes restricoes:

• Na definicao de operadores devem ser utilizados apenas atomos SWRL [McGuinness et al.,2004a] que sao na essencia OWL facts (ABOX);

• Pre-condicoes devem conter apenas atomos SWRL positivos, para evitar problemas como otratamento de negacao como falha;

• E possıvel usar variaveis existencialmente quantificadas nas pre-condicoes, porem nao nos efei-

Page 95: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

5.4 Planejamento com inferencia 79

tos, pelo fato de que todas as literais que adicionamos no estado devem estar instanciadase

• Restringir que predicados derivados, que sao predicados que podem ser deduzidos de relacoesprimarias, aparecam apenas em pre-condicoes.

Uma vez que definimos que pre-condicoes contem apenas OWL facts (ABox) possivelmente comvariaveis, uma expressao de pre-condicoes se torna equivalente a uma query ABox. A satisfabilidadede pre-condicoes depende se e necessario ou nao resolver as variaveis existentes. Ex.: Na expressao(?p hasChild ?c), nao e necessario conhecer ?c para que ?p possa ser identificado como um indivıduoque tem filhos.

Os autores discutem tambem alguns problemas que podem surgir durante aplicacao de efeitos:

• positivos: significa adicionar novas assercoes na base de conhecimento, que podem causar in-consistencia nesta base. Uma solucao proposta e que o planejador deve rejeitar a aplicacao deum operador que cause inconsistencia na base, uma vez que nao se pode garantir que descricoesde servicos Web vindas de varias origens estejam corretas.

• negativos: nao causam inconsistencia, mas requerem que se tenha cuidado ao remover assercoesque podem ser derivadas de outras assercoes, porque assim estas continuariam existindo na base.Nao e possıvel adotar como solucao a restricao de derivacao de predicados em efeitos, porque issotornaria praticamente impossıvel modelar qualquer acao em OWL. Algumas solucoes propostassao: (i) garantir de alguma maneira que a expressao que pode ser derivada nao sera inferida aposa aplicacao deste efeito, (ii) fazer com que o motor de inferencia apague todas as expressoesrelacionadas (iii) ou incluir nos efeitos todos os predicados dependentes da expressao a serapagada.

No final sao destacadas algumas tecnicas de otimizacao para avaliacao de pre-condicoes, ja quea performance do sistema e consideravelmente afetada pelo fato de o motor de inferencia precisaravaliar centenas de pre-condicoes. A proposta e aplicar os algoritmos existentes para resposta dequeries em ABox. Em cima desta questao sao propostas tres tecnicas de otimizacao:

• Tecnica 1: recuperar a lista de indivıduos correspondentes a cada conceito;

Page 96: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

80 Trabalhos relacionados

• Tecnica 2: cada indivıduo na query e testado individualmente para tentar encontrar umasequencia logica no proximo indivıduo (encontrar dependencia entre variaveis);

• Tecnica 3: usar um algoritmo de recuperacao de instancias otimizadas projetado para mudancasdinamicas de ABox. O objetivo e eliminar todos os indivıduos irrelevantes com uma checagemde consistencia.

Foram realizados experimentos para avaliar estas tecnicas, utilizando o problema dos satelites econcluıram que a terceira tecnica e melhor que a segunda que, por sua vez, e melhor que a primeira.Concluıram tambem que o planejador sem a utilizacao do motor de inferencia e mais rapido, emborao Pellet nao tenha sido rigorosamente otimizado.

Os autores finalizam o artigo, destacando que buscas em bases de conhecimento da Web Semanticausando algoritmos da logica de descricoes se tornarao importantes e populares e, por isso, devera serdada mais atencao as tecnicas de otimizacao para estas buscas.

5.5 Uso de ontologias para planejamento

O artigo [McCluskey and Cresswell, 2005] foi apresentado durante a ICAPS 2005 e tem comoobjetivo utilizar ontologias a fim de compartilhar estruturas e comportamentos de objetos, paraaliviar os problemas da engenharia de conhecimento para planejamento em IA.

Os autores destacam que o problema de reinventar domınios para cada aplicacao de planejamentoe crıtico. E proposto como solucao para este problema que o usuario, em vez de desenvolver ummodelo de domınio, identifique as ontologias relevantes ao domınio e passe-as a um tradutor, quetransforma estas ontologias em uma linguagem de planejamento. Assim a medida que o uso deontologias prolifera na Web, sera possıvel a um agente obter automaticamente conhecimento adequadopara resolver seus problemas de planejamento.

A implementacao desta solucao consiste inicialmente em inserir as ontologias descritas na lingua-gem OWL-DL, no Protege-2000. No desenvolvimento da ontologia sera necessario observar algunspontos: as classes e os objetos, alem de compartilhar o conjunto de propriedades e relacoes, deveraocompartilhar um conjunto de estados e o mesmo comportamento na mudanca de estados. Esta de-finicao e fundamental para que a traducao possa ser feita de OWL para OCL [McCluskey and Liu,2000], a qual e a linguagem utilizada. O OCL e a linguagem base do ambiente de planejamento

Page 97: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

5.5 Uso de ontologias para planejamento 81

GIPO [McCluskey and Simpson, 2003].

Alguns problemas encontrados durante a traducao de OWL para OCL derivam do fato de mudaro significado global de uma ontologia para uma visao local e subjetiva de um domınio: nao existemgarantias que uma ontologia importada sera completa ou adequada a uma tarefa de planejamento. Asolucao inicial e produzir a transformacao de OWL para OCL e depois permitir que o usuario validee refine o modelo atraves do ambiente GIPO.

O processo de traducao consiste em tres passos:

1. construir um conjunto disjunto de tipos de objetos OCL de modo que se um objeto pertencea um determinado tipo, entao o conjunto de propriedades que ele possui sao as mesmas dequalquer outro objeto do mesmo tipo. Construir o conjunto de predicados, descrevendo erelacionando os tipos;

2. Induzir as descricoes de estado que objetos de cada tipo podem habitar e

3. Construir o conjunto de operadores e refinar o modelo, usando GIPO. A ferramenta OWL2OCLso obtem sucesso na traducao se a ontologia tiver informacoes sobre indivıduos do domınio(ABox) e preferencialmente se tiver a propagacao dos possıveis estados dos indivıduos.

No trabalho assume-se: (i) que todos os relacionamentos implıcitos de subclasses podem serencontrados por um motor de inferencia, utilizando para este proposito o RACER via Protege2000;(ii)a hierarquia entre propriedades nao foi considerada e (iii) a definicao de operadores de planejamentoem termos de transicoes entre classes definidas foi criada manualmente, uma vez que nao e possıveldefinir mudanca ou acao em OWL.

Um outro artigo [Gruninger and Kopena, 2005], tambem apresentado durante o workshop doICAPS 2005 expos a necessidade de que padroes para troca de informacao precisam suprir nao soa sintaxe, mas tambem a semantica de conceitos. Este trabalho propoe a utilizacao da linguagemPSL (Process Specification Language) [Gruninger and Menzel, 2003] para resolver principalmente oproblema de integracao entre sistemas de planejamento com outras aplicacoes.

PSL consiste em uma ontologia composta de termos primitivos, definicoes e axiomas para os con-ceitos do PSL. Ela possui tres componentes principais que sao o PSL-Core, Teorias PSL e Extensoes.

Page 98: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

82 Trabalhos relacionados

O PSL-Core e um conjunto de axiomas escritos em KIF (the Knowledge Interchange Format) [Ge-nesereth and Fikes, 1992], utilizado para descrever conceitos fundamentais para elaboracao de pro-cessos. Mais especificamente, o PSL-Core introduz quatro classes disjuntas: atividades, ocorrenciasde atividades, timepoints e objetos. Como suplemento dos conceitos do PSL-Core, a ontologia incluium conjunto de extensoes que introduzem novas terminologias ao PSL. Uma extensao PSL fornecelogica para expressar informacoes envolvendo conceitos que nao estao explicitamente especificadosno PSL-Core.

A preservacao da semantica na troca de informacoes entre duas aplicacoes de software requermapeamento entre conceitos logicamente equivalentes na ontologia de cada aplicacao. O desafio deintegrar semantica e equivalente ao problema de gerar estes mapeamentos, determinando que elesestao corretos e fornecendo um veıculo para execucao destes mapeamentos, para traduzir termos deuma ontologia para outra.

O conjunto de traducoes de conceitos em uma ontologia de uma aplicacao define um perfil deintegracao semantica desta aplicacao. Traducoes de conceitos podem ser geradas de modo semi-automatico, usando a ontologia PSL. Com aplicacoes PSL, traducao de definicoes tem uma formasintatica especial, elas sao bicondicionais na qual o antecedente e uma classe na ontologia da aplicacaoe o consequente e uma formula logica.

Os autores acreditam que, embora uma ontologia como OWL-S ofereca uma linguagem seman-ticamente mais expressiva e formal em comparacao a outras linguagens para servicos WEB, comoBPEL4WS e WSDL, a teoria do OWL-S nao e clara e existem ambiguidades presentes na linguagempela sua dependencia com definicoes da linguagem natural. Com o PSL, por outro lado, tem-seuma linguagem rigorosamente definida que e forte suficiente para definir uma grande variedade deservicos e que e capaz de caracterizar explicitamente o alcance das capacidades de planejamento comambientes de software reais.

5.6 Robotica Cognitiva (Golog)

No artigo [McIlraith and Son, 2002] a linguagem Golog [Levesque et al., 1997] e adaptada eestendida para a composicao automatica de servicos Web. Golog e uma linguagem de programacaologica de alto nıvel, baseada no calculo de situacoes.

Algumas das extensoes propostas consistem na habilidade de permitir aos usuarios a criacao de

Page 99: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

5.7 Planejamento e algoritmos de combinacao de tipos de dados 83

restricoes customizadas, a adicao da construcao order, possibilitando a insercao de acoes para atingirpre-condicoes de acoes a serem executadas posteriormente pelo programa e o desenvolvimento deprocedimentos genericos.

A ideia geral deste metodo e que agentes de software poderiam raciocinar sobre servicos Webpara executar automaticamente descoberta, execucao e composicao de servicos Web. A requisicaodo usuario e suas restricoes podem ser representadas pela linguagem de primeira ordem do calculode situacoes. Os autores imaginam cada servico Web como uma acao que pode ser de dois tipos:

• PrimitiveAction: acoes que alteram o estado do mundo ou acoes de recuperacao de informacaoque mudam o conhecimento do agente sobre o estado do mundo;

• ComplexAction: composicoes de acoes primitivas.

A base de conhecimento do agente fornece uma codificacao logica de pre-condicoes e efeitos deacoes dos servicos Web, na linguagem do calculo de situacoes. Um servico composto e um conjunto deservicos atomicos conectados por construcoes de linguagem de programacao procedural (if-then-else,entre outras).

E proposta tambem uma maneira de customizar programas Golog, incorporando as restricoes dasrequisicoes. Por exemplo, o consumidor do servico pode usar uma escolha nao-determinıstica pararepresentar que acao e selecionada numa dada situacao ou usar um construtor para forcar a ordemde execucao entre duas acoes. A geracao do plano precisa obedecer a restricao predefinida.

5.7 Planejamento e algoritmos de combinacao de tipos de dados

O artigo [Carman et al., 2003] possui dois objetivos principais: demonstrar como o problema decomposicao de servicos pode ser visto como um problema de planejamento e introduzir um algoritmoque testa combinacoes de tipos de dados que, utilizado junto com outro algoritmo de busca e execucao,permitira a composicao de servicos Web.

A representacao de estados de um sistema que interage com um servico Web pode ser descrita emtermos de mensagens que este servico enviou e recebeu. A informacao contida em cada mensagempode ser interpretada como uma descricao do mundo corrente. Ex.: uma mensagem de um servico,que especifica que a temperatura em Sao Paulo e 15oC, pode ser entendido como descricao de um

Page 100: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

84 Trabalhos relacionados

mundo no qual a temperatura de Sao Paulo e realmente 15oC. Um estado e entao descrito por umconjunto de documentos, em que o documento mais recente pode ser assumido como o que carregaa mais segura informacao sobre o estado corrente do mundo. Esta descricao e considerada parcial,pois sabemos apenas o que esta descrito no conjunto de documentos em posse do planejador.

Alem do problema de se ter somente uma observacao parcial do estado, pode ocorrer o problemade existir ambiguidade na descricao do estado. O planejador pode em alguns casos confundir-se como significado de um documento em particular. Ex.: ao obter a temperatura da cidade de Melbourne,nao sabemos ao certo se a informacao retrata a temperatura de uma cidade na Australia ou nosEUA. A solucao parcial para este problema, adotada no artigo, e assumir que existem padroes quedefinem o domınio em particular.

As operacoes dos servicos podem ser vistas como as acoes disponıveis ao sistema de planejamento,porem diferente de planejadores normais, onde a semantica do operador e totalmente especificada,aqui faltam quatro tipos de informacoes:

1. pre-condicoes em parametros de entrada: nao sabemos que valores nos parametros causaraosucesso ou falha na execucao da operacao. Ex.: pode ocorrer uma falha na operacao purcha-seOrder (productId) de um servico de vendas, se o productId faz referencia a um produto quenao existe no estoque.

2. prioridade de invocacao de operacao: em alguns casos a invocacao com sucesso de uma operacaoe dependente da execucao de outra. Ex.: a operacao Login possui prioridade de execucao secomparada com outras.

3. conhecimento de valores instanciados em documentos de saıda: como na saıda e conhecidoapenas o tipo de dado e nao um valor, nao e possıvel prever o valor que sera devolvido.

4. pre-condicoes e efeitos do mundo real: algumas pre-condicoes e efeitos de invocacao de umaoperacao nao podem ser deduzidos automaticamente em parametros de entrada e saıda, assim enecessario ter um conhecimento previo sobre semantica das operacoes Ex.: a operacao purcha-seItem pode requerer um numero de cartao como entrada e, apos a execucao, e esperado queseja feito algum debito neste cartao. Esta semantica nao e deduzida somente com a operacao.Em geral existem tres abordagens para o planejador ganhar este conhecimento:

Page 101: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

5.8 Planejamento baseado em regras 85

• requerer padronizacao: acordo entre o fornecedor e o consumidor do servico;

• marcacao de semantica do lado do servidor: com as tecnologias da Web Semantica, o for-necedor do servico Web faz marcacao formal das operacoes disponıveis atraves de descricaoexplıcita de pre-condicoes e efeitos;

• interpretacao de semantica do lado do cliente: colocar o conhecimento extra por tras dosistema de planejamento.

Os estados inicial e meta, assim como os outros estados, sao vistos como um conjunto de do-cumentos. O estado inicial e disponibilizado ao planejador como informacao local enquanto que oestado meta e visto como um conjunto de documentos que o sistema precisa criar.

Apos a adaptacao do domınio como um problema de planejamento, os autores demonstram umalgoritmo que aposta no mapeamento entre conceitos por palavra-chave, para encontrar servicos Webdisponıveis para atingir um determinado objetivo. O Type Matching Algorithm utiliza regras paraefetuar mapeamento entre conceitos.

5.8 Planejamento baseado em regras

SWORD [Ponnekanti and Fox, 2002] e uma ferramenta para criacao de composicoes de servicosWeb usando geracao de plano baseada em regras. Para especificar servicos Web, o SWORD naodispoe dos padroes mais utilizados como o WSDL ou o OWL-S. Em vez disso, ele utiliza o modeloEntidade-Relacionamento (ER). Um servico e modelado por suas pre-condicoes e pos-condicoes. Elessao especificados em um modelo que consiste de entidades e de relacionamentos entre entidades.Um servico Web e representado na forma de uma clausula Horn, que denota que pos-condicoes saoatingidas se as pre-condicoes sao verdadeiras. Para criar um servico composto o usuario apenasprecisa especificar os estados inicial e final do servico composto, entao a geracao do plano pode seratingida atraves de um sistema especialista baseado em regras. Alem dos metodos de composicao,um ponto interessante neste trabalho e que os autores realizam uma discussao que o cadeamentobaseado em regras pode algumas vezes gerar resultados incertos se uma pre-condicao nao determinarpos-condicoes unicas. Os autores discutem que resultados incertos podem ser evitados apenas quandopre-condicoes sao dependentes, em relacao a sua funcionalidade, de pos-condicoes dentro do servico.

Outra tecnica de composicao baseada em regras e apresentada em [Medjahed et al., 2003]. Ometodo usa regras para determinar quando dois servicos podem ser compostos. A abordagem da

Page 102: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

86 Trabalhos relacionados

composicao consiste de quatro etapas:

• fase de especificacao: habilita a descricao de alto nıvel das composicoes desejadas, usando umalinguagem chamada Composite Service Specification Language (CSSL);

• fase de combinacao: usa regras de composicao para gerar planos compostos que atendam arequisicao do usuario;

• fase de selecao: se mais de um plano e gerado, o usuario seleciona um plano baseado emparametros de qualidade como custo;

• fase de geracao: uma descricao detalhada do servico composto e automaticamente gerada eapresentada ao usuario.

Nesta abordagem o mais importante sao as regras de composicao porque sao elas que definirao comoo plano sera gerado. Estas regras consideram a semantica e a sintaxe das propriedades dos servicosWeb como, por exemplo, podem testar se o tipo de dado de saıda de um servico e compatıvel como tipo de dado de entrada de outro servico. Alem disso, testam compatibilidade entre domınios,categorias e propositos entre dois servicos, entre outros.

5.9 Outros

Alem destes exemplos podemos citar tambem as ferramentas BPEL4WS e o Web Services Toolkit(WSTK), que sao sistemas de para criacao de fluxo de transicoes (workflow), desenvolvidos noslaboratorios de pesquisa da IBM. Embora este ultimo utilize um planejador para a composicao deservicos, a construcao de operadores a partir da descricao do servico nao e completamente automaticapela falta de um mecanismo de obter conhecimento do domınio no WSDL.

Um outra abordagem e proposta em [Peer, 2003], na qual e apresentada uma forma de anotarsemanticamente o proprio documento WSDL e posteriormente transforma-lo em PDDL.

Page 103: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Capıtulo 6

Ferramenta WEBRPlan

Nos capıtulos anteriores foi discutido: (i) como clientes interagem com servicos Web; (ii) comoutilizar as tecnologias da Web Semantica para descrever servicos Web Semanticos e (iii) como utilizaro sistema de planejamento JSHOP2 integrado a um motor de inferencia para realizar a composicaodestes servicos. Neste capıtulo, sera apresentada uma ferramenta, chamada de WEBRPlan, capazde gerenciar todo o processo de composicao de servicos Web e o fluxo de dados entre estas novastecnologias.

6.1 Suposicoes feitas pela ferramenta WEBRPlan

Como foi dito anteriormente o processo de composicao de servicos Web pode ser dividido em tresgrandes etapas: descoberta, composicao e execucao automatica de servicos Web. O problema dadescoberta automatica de servicos nao sera tratado, sendo o principal objetivo deste trabalho trataras duas etapas de composicao e execucao de servicos Web previamente selecionados.

A principal caracterıstica da ferramenta WEBRPlan e permitir que o usuario crie suas propriasredes de tarefas (processos dos servicos Web) e obtenha planos gerados automaticamente. Para isso,neste trabalho, sao feitas as seguintes suposicoes:

• so sera possıvel realizar a composicao de servicos Web se eles forem descritos semanticamente,isto e, segundo a recomendacao da Web Semantica. Uma vez que a Web Semantica ainda naoe realidade, pois existem apenas alguns exemplos de servicos Web Semanticos na Web atual, aferramenta WEBRPlan transforma descricoes de servicos em WSDL para OWL-S. Para isso, foi

87

Page 104: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

88 Ferramenta WEBRPlan

implementado na ferramenta WEBRPlan um editor que permite a traducao semi-automaticade arquivos WSDL para OWL-S, em que os processos compostos e suas pre-condicoes e efeitossao inseridas manualmente;

• existem ontologias relacionadas aos Servicos Web selecionados. Assim, a descricao OWL-S dosservicos Web ainda deve ser modificada com a adicao de marcacoes semanticas de acordo comestas ontologias;

• a composicao de servicos Web e um problema de planejamento hierarquico. Desta forma, aferramenta WEBRPlan utiliza o sistema de planejamento de hierarquico JSHOP2. Para des-crever servicos Web Semanticos em termos de operadores e metodos de planejamento JSHOP2,foi tambem implementado um editor que permite a traducao de processos OWL-S em tarefasna linguagem JSHOP2;

• as informacoes obtidas durante a composicao de servicos Web nao sao alteradas durante ointervalo de tempo entre a recuperacao de informacao e a execucao do servico. Esta suposicaopode ser contornada da seguinte forma: se esta condicao for violada, a ferramenta receberauma mensagem de erro da execucao do plano gerado (invocacoes de servicos Web que devolvemfalha) e a ferramenta WEBRPlan pode ser usada para fazer uma nova chamada ao JSHOP2para replanejamento.

6.2 WEBRPlan

A ferramenta WEBRPlan foi implementada em JAVA e possui quatro funcoes principais:

• Selecao de servicos Web para composicao e selecao das ontologias relacionadas aosservicos selecionados;

• Conversao das descricoes dos servicos em WSDL para OWL-S;

• Conversao das descricoes dos servicos em OWL-S para tarefas JSHOP-2;

• Composicao de servicos Web.

Page 105: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

6.2 WEBRPlan 89

6.2.1 Selecao de servicos Web para composicao e selecao das ontologias relacionadasaos servicos selecionados

A descricao dos servicos Web pode utilizar termos definidos em outras ontologias. Estas ontologiasdevem ser inseridas na base de conhecimento. Alem disso, o usuario tambem tem a liberdade deadicionar na base de conhecimento quantas ontologias e instancias de ontologias julgar uteis parao WEBRPlan realizar as composicoes. A Figura 6.1 mostra a interface do sistema que permiteadicionar as ontologias.

Figura 6.1: Adicionando ontologias na base de conhecimento

6.2.2 Conversao das descricoes dos servicos em WSDL para OWL-S

Uma vez que os servicos Web selecionados sao descritos em WSDL, e preciso transforma-los nalinguagem OWL-S (no futuro, acredita-se que os servicos Web ja estarao descritos nesta linguagem).Assim, o usuario devera carregar cada um dos arquivos WSDL no editor, com o botao CarregarArquivo WSDL, como mostra a Figura 6.2.

Uma vez que o usuario carrega um arquivo, e possıvel executar a operacao ”Salvar / GerarOWL-S”. Esta operacao e executada pelo WEBRPlan da seguinte maneira: e feita uma chamadaa ferramenta WSDL2OWLS [SoftLab, 2006], passando como parametro o nome do arquivo WSDL,que gera quatro arquivos com as instancias das ontologias service, profile, process e grounding doOWL-S. Se os arquivos forem gerados com sucesso, a ferramenta devolve uma mensagem, exibindoa localizacao temporaria dos arquivos, como mostra a Figura 6.3.

6.2.3 Conversao das descricoes dos servicos em OWL-S para tarefas JSHOP2

O resultado da traducao automatica com o WSDL2OWLS e uma instanciacao completa da onto-logia grounding e parcial das ontologias profile e process que serao armazenadas na base de conheci-mento. Mas antes de armazenar a instancia da ontologia process, as pre-condicoes dos processos naoestao ainda especificadas. Desta forma, para completar a descricao dos servicos Web em OWL-S e

Page 106: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

90 Ferramenta WEBRPlan

Figura 6.2: Carregando arquivos WSDL no editor

preciso inserir processos compostos, pre-condicoes e efeitos manualmente. Para isso, o WEBRPlanfornece um segundo editor, que permite carregar arquivos OWL-S e modifica-los manualmente, antesde transforma-los na linguagem do planejador JSHOP2.

Assim, sao duas as modificacoes que podem ser feitas na representacao dos processos do servicoWeb (instancia da ontologia process):

1. Insercao manual de processos compostos, pre-condicoes e efeitos, como foi descrito na Secao4.4.1. Este trabalho propoe uma forma original de descrever estas informacoes, isto e, usandoa linguagem SPARQL para recuperar informacoes e usando operadores relacionais do JSHOP2(! =, <, <=,=, >=, >) para testar expressoes complexas que envolvam as informacoes recupe-radas.

2. Caso exista e tenha sido selecionado um conjunto de ontologias relacionadas aos servicos Web se-lecionados, o usuario podera ainda inserir no documento OWL-S algumas marcacoes semanticas

Page 107: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

6.2 WEBRPlan 91

Figura 6.3: Transformacao com sucesso de WSDL para OWL-S

segundo estas mesmas ontologias.

Finalmente para transformar o documento OWL-S na linguagem do JSHOP2, o usuario deve car-regar arquivos do tipo process, que contem especificacoes dos processos e executar a operacao ”Salvar/ Gerar acoes”. Neste momento, o WEBRPlan executa um parser, chamado de SHOPTranslator(versao 1.1), desenvolvido pela Universidade de Maryland [Mindswap, 2006] , que faz uma trans-formacao parcial dos processos OWL-S no formato da linguagem JSHOP2. O SHOPTranslator naofaz traducao de pre-condicoes e efeitos, por isso e tambem necessario efetuar alteracoes manuais nosarquivos, inserindo nas tarefas referencias as consultas SPARQL. As tarefas JSHOP2 geradas seraoarmazenadas numa lista que sera mais tarde disponibilizada para o usuario criar sua rede de tarefas.A Figura 6.4 mostra a tela deste editor.

Page 108: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

92 Ferramenta WEBRPlan

Figura 6.4: Transformacao de OWL-S para JSHOP2

6.2.4 Composicao

Com os arquivos WSDL, OWL-S e tarefas JSHOP2 gerados ja seria possıvel ao WEBRPlandisponibilizar tarefas para composicao. Caso o usuario, para descrever seus servicos, pre-condicoese efeitos, tenha utilizado termos de uma ontologia, esta devera ser carregada no sistema juntamentecom as demais ontologias. O usuario tem a liberdade de acrescentar outras ontologias e instanciasque julgar uteis para o WEBRPlan.

O WEBRPlan armazenara todas estas informacoes em uma pasta dentro do sistema. Estesarquivos funcionarao como uma base de conhecimento do sistema e serao usados nas proximas etapasdo processo. Dependendo da quantidade de informacoes, o ideal e que este tipo de informacao sejaarmazenada em um banco de dados, porem somente para a execucao do exemplo desta dissertacaoisso nao sera necessario.

A Figura 6.5 mostra todas as informacoes discutidas, que serao necessarias para compor a base

Page 109: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

6.2 WEBRPlan 93

de conhecimento do WEBRPlan.

Figura 6.5: Informacoes iniciais

Modelagem do problema e construcao do domınio

Com as informacoes armazenadas, o sistema monta uma lista de tarefas primitivas e compostasque o usuario podera usar para criar sua propria rede de tarefas. Esta lista e disponibilizada do ladoesquerdo da tela de composicao, como mostra a Figura 6.6. A rede de tarefas pode ser montada,selecionando tarefas que estejam na lista e inserindo os parametros que a tarefa requer. Os parametrospoderao ser instancias das ontologias que o sistema possui armazenadas. A rede de tarefas criadasera passada como o problema para o JSHOP2.

O domınio de planejamento sera criado pelo conjunto de todas as acoes transformadas de OWL-Spara JSHOP2 na etapa anterior. O estado inicial do mundo e dado pelas instancias das ontologias

Page 110: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

94 Ferramenta WEBRPlan

Figura 6.6: Criacao de uma rede de tarefas

que existem na base de conhecimento do agente. Toda interacao com o estado e feita pelo motorde inferencia em cima destas instancias, portanto nao existe criacao de predicados na linguagem doJSHOP2. Na Figura 6.7 temos a rede de tarefas e a base de conhecimento da ferramenta passandopor uma interface que transforma estas informacoes numa linguagem utilizada pelo JSHOP2.

Planejamento e Execucao

Para gerar o plano, o usuario escolhe a opcao ”Gerar Plano”e com o domınio e o problema geradosna linguagem JSHOP2 o WEBRPlan inicia a etapa de coleta de informacao e decomposicao do planoconforme a Figura 6.8.

O WEBRPlan passa um arquivo do tipo ”problema”com a rede de tarefas escolhida pelo usuariopara o JSHOP2, que inicia o processo de decomposicao das tarefas. Neste momento o WEBRPlaninvoca o JENA2 para gerar um novo modelo baseado no estado do inicial do mundo. Adotaremosa abordagem de gerar todas as triplas que poderao ser ou nao relevantes para as futuras consultas.

Page 111: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

6.2 WEBRPlan 95

Figura 6.7: Modelagem do problema e construcao do domınio

Assim as consultas serao diretas sobre os dados inferidos. Segue um exemplo de criacao do OWLReasoner e modelo de inferencia atraves do JENA2:

...

Reasoner reasoner = ReasonerRegistry.getOWLReasoner();

reasoner = reasoner.bindSchema(schema);

InfModel infmodel = ModelFactory.createInfModel(reasoner, data);

...

Em todos os momentos que for necessario efetuar interacao com o estado do mundo, o JSHOP2chama uma interface de integracao com o JENA2, que chamaremos de Avaliador. O Avaliador ecomposto por um mecanismo de avaliacao de pre-condicoes, de recuperacao de valores e de atribuicaode efeitos. Quando o JSHOP2 precisa avaliar uma pre-condicao, ele invoca o Avaliador passando comoparametro uma referencia para a localizacao da pre-condicao na base de conhecimento. Vimos nocapıtulo 4 que uma pre-condicao consiste em uma consulta no estado do mundo, criada na linguagemSPARQL. O Avaliador utiliza as classes do JENA2 para efetuar as consultas em cima dos dadosinferidos. O WEBRPlan permite que o usuario visualize todas as consultas feitas nas ontologiascomo mostra a Figura 6.9. Segue um exemplo da criacao, execucao e recuperacao do retorno de uma

Page 112: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

96 Ferramenta WEBRPlan

Figura 6.8: Planejamento e execucao

consulta feita pelo Avaliador atraves do JENA2:

...

Query query = QueryFactory.create(queryString) ;

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

ResultSet results = qexec.execSelect() ;

...

Se o Avaliador nao conseguir recuperar instancias necessarias para resolver as pre-condicoes, eleinvocara servicos Web atraves das acoes de recuperacao de informacao e fara novas tentativas deresolver as pre-condicoes. A invocacao e feita passando como parametros o nome de um servico, onome da operacao e os parametros necessarios para a execucao da operacao, como no exemplo:

...

DynamicInvoker.retValue(new String[] {"http://.../servico?wsdl","nomeOperacao",param1,param2});

...

Para aplicar efeitos, o Avaliador transformara as novas informacoes em OWL e as adicionara

Page 113: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

6.2 WEBRPlan 97

Figura 6.9: Consultas JENA2 - ARQ

nas ontologias que representam o estado do mundo, novamente com as classes do JENA, atraves deoperacoes como updateParameter(Recurso, propriedade,objeto), createIndividual e remove.

Uma vez que o plano e gerado, o usuario pode visualiza-lo como mostra a Figura 6.10. Comoo JSHOP2 nao pode lidar com caracteres especiais (como #) muito utilizados em arquivos XML, oplano gerado tera identificacoes numericas, que serao referencias a instancias. Com isso e possıvelchamar a opcao de execucao, que consiste na invocacao do cliente de servicos Web, passando uma auma as operacoes que devem ser executadas. Se o plano falhar, o usuario tem a opcao de gerar umnovo plano a partir de novas informacoes que serao adicionadas ao estado do mundo ou, se possıvel,desfazer o plano a partir de operacoes que sejam previamente indicadas como transacoes especıficaspara cancelar a execucao de uma operacao.

Page 114: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Figura 6.10: Plano gerado

Page 115: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Capıtulo 7

Estudo de caso do WEBRPlan :

composicao de servicos de viagem

Neste capıtulo sera descrito um estudo de composicao com a ferramenta WEBRPlan. Este es-tudo de caso consiste em mostrar todo o processo de composicao de servicos Web para o cenarioEuropa, visto no capıtulo 4 e especificado no Apendice A. Para planejar esta viagem, um usuariodo sistema WEBRPlan podera fazer composicoes dos servicos de compra de passagens, reserva dehospedagem, compra de ingressos para passeios turısticos e agendamento de compromissos. Por naoser possıvel efetuar este tipo de transacao em servicos Web reais, os servicos Web utilizados para esteexperimento foram construıdos exclusivamente para este problema. Estes servicos, no entanto, estaoimplementados em um servidor Web que podera ser acessado externamente, sendo que a comunicacaoentre o WEBRPlan e estes servicos segue os protocolos de comunicacao Web.

Neste trabalho, supomos que os servicos Web nao estao previamente descritos em OWL-S e,portanto, os arquivos WSDL sao transformados em OWL-S dentro da ferramenta WEBRPlan.

7.1 Criacao dos servicos Web

Para execucao do exemplo, foram criados cinco servicos Web, com as seguintes finalidades:

1. Agenda: possui a operacao marca-agenda, que adiciona compromissos na agenda do turista;

99

Page 116: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

100 Estudo de caso do WEBRPlan: composicao de servicos de viagem

2. Hospedagem: fornece informacoes a respeito de acomodacoes e disponibilidade de vagas, faz edesfaz reservas. Possui a operacao reserva-hospedagem;

3. Transp: fornece informacoes a respeito de disponibilidade de passagens, permite compra depassagens aereas, de trem e aluguel de carro. Para isso fornece as operacoes compra-passagem-aerea, compra-passagem-trem e aluga-carro;

4. Euroinfo: fornece informacoes a respeito da Europa, como previsao de tempo e distancia entrecidades;

5. Ingresso: permite a compra de ingressos para passeios turısticos, atraves da operacao comprar-ingresso.

Os servicos foram criados atraves da ferramenta Eclipse [Inc., 2006]. Na Figura 7.1 e mostradoum exemplo do diagrama WSDL do servico de transporte, gerado atraves do plugin para servicosWeb do Eclipse.

Figura 7.1: Diagrama WSDL do servico de transporte gerado pelo Eclipse

Page 117: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

7.2 Transformacao WSDL para OWL-S 101

Os servicos Web implementados foram disponibilizados em um servidor Tomcat [Apache, 2001],um servidor de aplicacoes Java para Web que e software livre e foi desenvolvido pelo projeto ApacheJakarta. O Tomcat e um Container Web, parte da plataforma corporativa Java Enterprise Edition(J2EE ou Java EE) que abrange as tecnologias Servlet e JSP. O Tomcat tem a capacidade de atuartambem como servidor Web/HTTP ou pode funcionar integrado a um servidor Web dedicado comoo Apache httpd ou o Microsoft IIS.

O Axis [Apache, 2001], tambem do projeto Jakarta, e essencialmente uma implementacao doprotocolo SOAP que possibilita a construcao de clientes, servidores e gateways que processam SOAP.Alem disso, o Axis inclui suporte para WSDL, como geracao de classes Java a partir de arquivosWSDL e possibilta monitoracao de pacotes TCP/IP. Utilizaremos no exemplo a monitoracao deSOAP do AXIS, para verificar a troca de mensagens do WEBRPlan com os servicos Web.

7.2 Transformacao WSDL para OWL-S

Atraves do editor, os arquivos WSDL dos servicos sao passados pela ferramenta WSDL2OWLS.Para cada servico sao geradas as quatro ontologias que compoem o OWL-S. No arquivo de processosgerado, foram adicionados os processos compostos manualmente que, neste exemplo, correspondemaos quatro processos compostos: viajar, planejar-viagem, transportar e marcar-passeios.

Para adicionar os processos compostos, foram utilizados conceitos definidos na ontologia dodomınio Euro.owl (Figura 7.7). Neste estudo de caso, todos os servicos compartilham conceitos daontologia Euro.owl, mas em muitos casos reais, servicos Web poderao utilizar ontologias diferentespara definicao de conceitos. Nesses casos, seria necessario criar um mapeamento entre as ontologias.

Alem dos processos compostos, foram criadas pre-condicoes e efeitos nos processos atomicos, damaneira descrita na Secao 4.4.1. No processo aluga-carro, por exemplo, foi adicionada uma pre-condicao que verifica se o turista possui dinheiro para alugar o carro:

<expr:val expr:id="val1">

SELECT ?x WHERE { euro:c1 euro:saldo ?x.}

</expr:val>

<expr:val expr:id="val2">

SELECT ?x WHERE { ?carro euro:custoAluguel ?x.}

</expr:val>

Page 118: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

102 Estudo de caso do WEBRPlan: composicao de servicos de viagem

<expr:test expr:id="test1">val1 > val2</expr:test>

7.3 Criacao de tarefas JSHOP2 - construcao do domınio e modelagem do pro-

blema

Os processos entao sao transformados em tarefas JSHOP2. Conforme o algoritmo visto na Figura4.7, todos os processos atomicos sao mapeados em tarefas primitivas do JSHOP2. A tarefa aluga-carro, por exemplo, que tem como pre-condicao que o turista tenha saldo no cartao para alugar umcarro, ficaria da seguinte maneira, supondo que tenha sido definido o prefixo transp: equivalente a<http://exemplo.br/ontologia/transp#>:

(:operator (!aluga-carro ?pessoa ?dia ?cartao)

((call AvaliaPrec maior

(call transp:val1) ;saldo do cartao

(call transp:val2) ;aluguel de carro

))

()()

)

O termo euro:val1 equivalente a <http://exemplo.br/ontologia/transp#val1> foi definido como SELECT

?x WHERE euro:c1 euro:saldo ?x., que corresponde a uma consulta na ontologia Euro.owl procurandoo saldo do cartao ”c1”. O termo euro:val2 equivalente a <http://exemplo.br/ontologia/transp#val2>

foi definido como SELECT ?x WHERE ?carro euro:custoAluguel ?x., que corresponde a uma consulta naontologia Euro.owl procurando o custo do aluguel de um carro. A expressao call AvaliaPrec maiorcorresponde a chamada externa do JSHOP2 ao Avaliador, solicitando que este verifique se val1 ¿val2. O Avaliador fara as consultas correspondentes para recuperar estes valores antes de efetuar oteste.

Vejamos agora como e traduzida a tarefa composta planejar-viajem. Para tornar o exemplo maislegıvel, a chamada externa passando a identificacao da pre-condicao, sera substituıda pela consultacorrespondente:

PREFIX euro:<http://exemplo.br/ontologia/euro#>

PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>

Page 119: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

7.3 Criacao de tarefas JSHOP2 - construcao do domınio e modelagem do problema 103

(:method (planejar-viagem ?pessoa ?cartao ?de ?para)

(

SELECT ?x

WHERE {?passagem rdf:type euro:passagem.

?passagem euro:de euro:<?de>.

?passagem euro:para euro:<?para>.

?passagem euro:dia ?d.

?acomodacao euro:noLocal euro:<?para>.

?acomodacao euro:dia ?d.

?acomodacao euro:id ?x }"

)

((transportar ?pessoa ?cartao ?de ?para ?dia)

(!marca-agenda ?para ?pessoa ?dia)

(!reserva-hospedagem ?x ?cartao ?dia)

(!marca-agenda ?x ?pessoa ?dia)

(marcar-passeios ?pessoa ?cartao ?para ?dia))

)

A consulta consiste em localizar os dias (?d) que tenham passagens do local, passado comoparametro ?de, para o local passado como parametro em ?para. Para esse mesmo dia sao procu-radas acomodacoes na mesma cidade. Uma das acomodacoes retornadas em ?x sera passada comoparametro para as tarefas a serem decompostas: !reserva-hospedagem e !marcar-agenda. A datarecuperada tambem sera passada como parametro nas demais tarefas.

As demais tarefas foram traduzidas de maneira equivalente. O conjunto sera passado comoo domınio do problema para o JSHOP2. O sistema disponibiliza uma lista de todas as tarefas dodomınio que podem ser utilizadas para construcao da rede de tarefas. No cenario, e escolhida a tarefacomposta viajar para ser a rede de tarefas passada como problema, com os parametros ”pessoa =Juliana”, ”cartao = c1”, ”de = saopaulo”, ”para = (paris roma)”, como mostra a Figura 7.2.

Esta rede de tarefas e transformada em um problema JSHOP2:

(defproblem problem europa

()

((viajar juliana c1 saopaulo (paris roma)))

)

Page 120: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

104 Estudo de caso do WEBRPlan: composicao de servicos de viagem

Figura 7.2: Rede de tarefas escolhida

Note que nao e adicionada nenhuma informacao em termos de fluentes na definicao do problema.O estado inicial e representado somente pelas instancias da ontologia Euro.owl. Nestas instanciasforam inseridas informacoes de passagens, acomodacoes e passeios turısticos de acordo com o estadoinicial descrito na Secao 4.2.2. Informacoes referentes a distancia entre cidades e temperaturas naoforam inseridas propositalmente, para que o sistema invoque servicos Web a fim de coletar este tipode informacao.

7.4 Planejamento e Execucao

Com o problema, domınio e estado inicial preparados, e executada a operacao para gerar o plano.Durante o planejamento o WEBRPlan permite que sejam visualizadas todas as consultas feitas nasontologias para avaliacao de pre-condicoes. Entre estas consultas temos, por exemplo:

(i) Busca por vagas em hoteis de Paris para o dia primeiro

PREFIX euro:<http://exemplo.br/ontologia/euro#>

PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?x

WHERE { ?acomodacao rdf:type euro:hotel.

?acomodacao euro:id ?x.

?acomodacao euro:noLocal euro:paris.

Page 121: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

7.4 Planejamento e Execucao 105

?acomodacao euro:dia ?dia.

?acomodacao euro:vagas

?numVagas.

FILTER (?dia =1).

FILTER (?numVagas > 0).}

(ii) Busca de passagens aereas entre Sao Paulo e Paris para o dia primeiro.

PREFIX euro:<http://exemplo.br/ontologia/euro#>

PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?x

WHERE { ?passTrem rdf:type euro:passagemAerea.

?passTrem euro:custo ?x.

?passTrem euro:de euro:saopaulo.

?passTrem euro:para euro:paris.

?passTrem euro:dia ?dia.

FILTER (?dia = 1)}

(iii) Busca por pontos turısticos de verao na cidade de Paris.

PREFIX euro:<http://exemplo.br/ontologia/euro#>

PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?x

WHERE {?pto rdf:type euro:ptoVerao.

?pto euro:ficaEm euro:paris. ?pto euro:id ?x}

Todas as consultas efetuadas sao exibidas em uma janela do sistema, como mostra a Figura 7.3.

Para monitorar a troca de mensagens SOAP entre o WEBRPlan e as operacoes de servicos Web,para coleta das informacoes de distancia e temperatura, foi iniciado o SOAP Monitor, que e umaferramenta que vem com o AXIS, com a finalidade de monitorar todo o trafego de protocolo SOAPno servidor Web. Mensagens que nao sao criptografadas sao exibidas normalmente pelo monitor.Pelo SOAP Monitor observamos que o WEBRPlan fez quatro chamadas ao servico Euroinfo, comomostra a Figura 7.4.

Nas quatro requisicoes que fez aos servicos Web o WEBRPlan recuperou as seguintes informacoes,lembrando que estes valores foram colocados apenas com o objetivo de execucao do exemplo e naoretratam a realidade: (i) a distancia entre Sao Paulo e Paris e 10.000 km, (ii) a previsao da tempe-ratura em Paris para o dia primeiro e de 20 graus, (iii) a distancia entre Paris e Roma e 1.530 km e(iv) a previsao da temperatura em Roma para o segundo dia de viagem e de 5 graus.

Page 122: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

106 Estudo de caso do WEBRPlan: composicao de servicos de viagem

Figura 7.3: Todas as consultas efetuadas no exemplo

Se os servicos estiverem indisponıveis durante o planejamento, surgirao mensagens de erro comona Figura 7.5 e o plano nao sera gerado.

O seguinte plano solucao foi gerado pelo JSHOP2:

(!compra-passagem-aerea juliana saopaulo paris 1.0 c1)

(!marca-agenda paris juliana 1.0)

(!reserva-hospedagem 2.0 c1 1.0)

Page 123: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

7.4 Planejamento e Execucao 107

Figura 7.4: Request e response monitorados pelo AXIS Soap monitor

(!marca-agenda 2.0 juliana 1.0)

(!comprar-ingresso 4.0 c1 1.0)

(!marca-agenda 4.0 juliana 1.0)

(!compra-passagem-trem juliana paris roma 2.0 c1)

(!marca-agenda roma juliana 2.0)

(!reserva-hospedagem 1.0 c1 2.0)

(!marca-agenda 1.0 juliana 2.0)

(!comprar-ingresso 3.0 c1 2.0)

(!marca-agenda 3.0 juliana 2.0)

Page 124: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

108 Estudo de caso do WEBRPlan: composicao de servicos de viagem

Figura 7.5: Todos os servicos estao indisponıveis para o planejamento

Como o JSHOP2 nao consegue tratar caracteres especiais, muitos dos valores do plano correspon-dem a identificacoes de instancias. Por exemplo, a tarefa (!reserva-hospedagem 2.0 c1 1.0) consisteem reservar hospedagem na acomodacao de ID=2, que no caso e o hotel Sansonnet, como mostra aFigura 7.6 gerada atraves do Protege.

Substituindo os ids correspondentes as instancias, para tornar o plano legıvel, este ficaria daseguinte maneira:

Page 125: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

7.4 Planejamento e Execucao 109

Figura 7.6: Acomodacao de id=2 e o hotel Sansonnet

(!compra-passagem-aerea juliana saopaulo paris 1.0 c1)

(!marca-agenda paris juliana 1.0)

(!reserva-hospedagem sansonnet c1 1.0)

(!marca-agenda sansonnet juliana 1.0)

(!comprar-ingresso TourEiffel c1 1.0)

(!marca-agenda TourEiffel juliana 1.0)

(!compra-passagem-trem juliana paris roma 2.0 c1)

(!marca-agenda roma juliana 2.0)

(!reserva-hospedagem positano c1 2.0)

(!marca-agenda positano juliana 2.0)

(!comprar-ingresso pantheon c1 2.0)

(!marca-agenda pantheon juliana 2.0)

Note que o WEBRPlan conseguiu recuperar instancias da classe passagemAerea, utilizando apenaso termo passagem e instancias da classe hotel, utilizando o termo acomodacao. Isso se deve ao fatode que as consultas sao todas executadas em cima do modelo inferido pelo JENA2 e nao no modelooriginal.

Page 126: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

110 Estudo de caso do WEBRPlan: composicao de servicos de viagem

Analise de desempenho

Tecnica 2 cidades 5 cidades 10 cidadesJSHOP2 0.030 0.050 0.060JSHOP2 +JENA

2.900 4.140 6.120

JSHOP2 +JENA2 +WEB

4.328 6.016 9.032

Tabela 7.1: Analise de desempenho

Este plano e passado para o cliente de servico Web que se encarregara de traduzir o plano dalinguagem JSHOP2 para invocacoes aos servicos Web. Com a execucao do plano, o turista poderia,por exemplo, receber suas passagens aereas, reservas de hospedagem e ingressos pelo correio. Oturista tambem teria uma agenda com todos os compromissos marcados. Esta agenda funciona comoum novo plano que tem como executor o proprio turista. Ele sera responsavel, por exemplo, por sedeslocar entre aeroportos e acomodacoes, baseado nas informacoes de sua agenda.

7.5 Analise do estudo de caso

O estudo de caso realizado foi proposto para verificar a viabilidade do modelo proposto paracomposicao de servicos Web, em especial para verificar a viabilidade do uso do planejador JSHOP2integrado ao JENA2 com coleta de informacoes na Web.

Os resultados confirmaram a viabilidade das tecnologias empregadas, bem como mostraram umdesempenho em termos de tempo satisfatorio, conforme mostra a Tabela 7.1. Foram feitas com-paracoes de desempenho com tres abordagens diferentes para resolver os problemas propostos noestudo de caso (Tabela 7.1): (i) utilizando o JSHOP2 com todas as informacoes do estado do mundofornecidas na entrada do planejador; (ii) utilizando o JSHOP2 integrado ao JENA2 e recuperandoinformacoes sobre o estado do mundo da base de conhecimento e (iii) utilizando o JSHOP2 inte-grado ao JENA2 recuperando informacoes sobre o estado do mundo da base de conhecimento e aindacoletando informacoes atraves de invocacoes aos servicos Web.

A Tabela 7.1 mostra o tempo em segundos, que cada uma das tecnicas utilizou para resolver oproblema com diferentes quantidades de cidades que o turista deseja visitar:

Page 127: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

7.5 Analise do estudo de caso 111

Como podemos observar, o desempenho mostrado pelo planejador JSHOP2 sem estar integradoao JENA2 ou a Web e alto (tempos baixos) o que reflete o fato de o JSHOP2 ser considerado oestado da arte de planejadores hierarquicos em IA. Estes tempos aumentaram para os testes com oJSHOP2 integrado ao JENA2, porem ainda assim sao tempos esperados usando-se o JENA2 umavez que ele nao e considerado um motor de inferencia eficiente. O uso de outros motores de inferenciapara OWL, por exemplo, o Pellet [Mindswap, 2003] ou o RACER, podera trazer melhores resultados.Finalmente, os tempos gastos pelo planejador JSHOP2 integrado ao JENA2 e a Web herdaram aineficiencia do JENA2, mas nao aumentaram muito levando-se em conta as invocacoes feitas aosservicos Web durante o planejamento para coleta de informacoes.

Page 128: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Figura 7.7: Ontologia Euro.owl

Page 129: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Capıtulo 8

Conclusoes

Neste trabalho, foi mostrado como realizar a composicao de servicos Web: um problema deplanejamento que envolve informacao incompleta do mundo (ou informacao distribuıda na Internetque e possıvel coletar quando ela for necessaria e acessıvel) e informacoes descritas a partir dediferentes conceitualizacoes (caracterıstica inerente ao conteudo da Web).

Diversos benefıcios podem ser obtidos atraves da composicao automatica de servicos Web, entreeles: a integracao de aplicacoes entre empresas (B2B), integracao entre aplicacoes de diversas empre-sas e consumidores (B2C), criacao de aplicacoes em Grid e eliminacao de tarefas manuais rotineiras.

O objetivo da composicao e encontrar uma sequencia de invocacoes as operacoes de servicos Web,a fim de realizar uma determinada tarefa. Este trabalho mostrou como esse problema de composicaode servicos Web pode ser resolvido atraves da construcao da ferramenta WEBRPlan: um ambienteintegrado que da suporte a todas as etapas do processo de composicao de Servicos Web originalmentedescritos em WSDL.

O principal objetivo deste trabalho foi mostrar de maneira didatica, atraves da ferramenta WE-BRPlan e um estudo de caso, como esse processo completo pode ser implementado. Assim, foinecessario:

1. aprender como desenvolver servicos Web em Java e especificar interfaces WSDL. Para isso,foram utilizadas as tecnologias: XML, Eclipse, Tomcat, Axis e os protocolos HTTP e SOAP.Alem disso, foi necessario aprender como construir um cliente para consumir um servico Web.Apesar de a ferramenta WEBRPlan receber como entrada a descricao de servicos em WSDL,

113

Page 130: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

114 Conclusoes

foi necessario construir os servicos Web e clientes para eles, a fim de realizar o estudo de caso;

2. aprender como transformar WSDL em OWL-S para lidar com as informacoes descritas a partirde diferentes conceitualizacoes. Esta atividade envolveu as seguintes tecnologias: RDF e RDFS,ontologias, motores de inferencia, JENA2, SPARQL, Protege 3.2, OWL, OWL-S, OWL-S APIe WSDL2OWLS. Espera-se que, no futuro, existam servicos Web ja descritos em OWL-S;

3. aprender como selecionar um sistema de planejamento para a composicao de servicos Web.Este estudo resultou nas seguintes conclusoes e decisoes na implementacao do WBRPlan:

(a) o planejamento para composicao de servicos Web e diferente do planejamento classicouma vez que para composicao de servicos Web muitas das suposicoes feitas pelo planeja-mento classico sao violadas, entre elas: informacao incompleta sobre o estado do mundo,ocorrencia de eventos exogenos, planejamento on-line e uso de ontologias para unificacaode conceitos. Por exemplo, para composicao e necessario recuperar informacoes do estadodo mundo durante o planejamento e toda interacao com o mundo e feita por uma interfacecom um motor de inferencia, para que seja possıvel a unificacao dos conceitos segundo aWeb Semantica. Uma discussao detalhada sobre isso foi feita no Capıtulo 4;

(b) o planejamento hierarquico e adequado a composicao de servicos Web especialmente por-que a modelagem hierarquica e a chave dessas duas tecnologias. A correspondencia entre asduas e tal que e possıvel mapear conceitos do OWL-S para os de planejamento hierarquico.A utilizacao desta tecnica de planejamento tem sido bem explorada por outros pesquisa-dores [Parsia et al., 2004b]. A motivacao desta escolha foi discutida em detalhes na Secao4.4.1;

(c) o planejador JSHOP2 possui as tres caracterısticas desejadas para planejar na Web: eum planejador hierarquico que raciocina sobre um estado completo do mundo em cadaetapa do planejamento, fazendo chamadas a programas externos durante o planejamentoquando for necessario.

(d) o estado do mundo e representado por duas fontes de informacao: (i) uma base de conhe-cimento OWL local e (ii) informacoes da Web. Por isso, e necessario integrar o planejadorao motor de inferencia do JENA2 e cada avaliacao de pre-condicoes e uma consulta doJSHOP2 ao estado do mundo, feita atraves do SPARQL ou de chamadas a operacoes de

Page 131: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

8.1 Contribuicoes deste projeto 115

coleta de informacoes na Web. A aplicacao de efeitos consiste na insercao ou remocao deuma nova instancia OWL na base de conhecimento.

O estudo de caso foi muito importante para demonstrar as funcionalidades implementadas naferramenta WEBRPlan. Com este estudo foi possıvel observar as invocacoes externas feitas peloplanejador JSHOP2, bem como as inferencias realizadas pelo JENA durante o planejamento e verificara corretude das inferencias e dos planos (composicoes) gerados.

8.1 Contribuicoes deste projeto

As principais contribuicoes deste trabalho foram:

1. explicar e implementar um processo completo de composicao de servicos Web segundo a pro-posta de Web Semantica. Apesar de existirem varios trabalhos que abordam esta questao,nenhum deles explica ou implementa todo o processo;

2. desenvolver uma interface entre o planejador e o motor de inferencia, evitando-se alterar aimplementacao do planejador, como tem sido a proposta da maioria dos trabalhos de pesquisanesta area;

3. adotar uma nova maneira de representar pre-condicoes e efeitos em OWL-S, atraves da lingua-gem SPARQL e operadores relacionais do JSHOP2;

4. implementar a ferramenta de software WEBRPlan, com a qual foi possıvel demonstrar o pro-cesso de composicao automatica de servicos Web com planejamento em IA, atraves de umestudo de caso: composicao de servicos de viagem. Alem disso, esta ferramenta pode ser usadapara fazer composicao de servicos Web quaisquer e, por isso, a WEBRPlan pode ser consi-derada como um importante produto deste trabalho de mestrado por sua utilidade pratica.Assim, pretende-se disponibilizar esta implementacao na Internet atraves de repositorios decodigo aberto.

Page 132: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Page 133: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Apendice A

Especificacao do domınio Europa na

linguagem JSHOP2

A Figura A.1 apresenta a especificacao completa do cenario descrito no Capıtulo 4. O domınio estasubdividido em cinco partes: (i) tarefas de alto nıvel do planejamento da viagem (L.04 a L.26), (ii)tarefas para marcacoes de compromisso na agenda do turista (L.29 a L.32), (iii) tarefas de transporte(L.36 a L.91), (iv) tarefas de hospedagem (L.96 a L.103) e (v) tarefas de passeios turısticos (L.107 aL.131).

Entre as tarefas de alto nıvel, a tarefa composta (viajar ?pessoa ?cartao ?de (?goal . ?goals))

(L.05 a L.11) tem como parametros de entrada o turista, cartao de credito, local de origem e umarelacao das cidades que o turista deseja conhecer definida por (?goal . ?goals), onde ?goal e ocabecalho de uma lista e ?goals o restante da lista. Ela e entao decomposta em (planejar-viagem

?pessoa ?cartao ?de ?para) (L.13 a L.25) que verifica se existe um meio de transporte entre duas cida-des (L.16) e se ha acomodacoes na cidade de destino no mesmo dia da disponibilidade de transportes(L.17 a L.19). Se essa pre-condicao for satisfeita, a tarefa e decomposta em transportar (L.21), mar-car o compromisso na agenda do turista (L.22), reserva-hospedagem (L.23), marcar novo compromissoreferente a hospedagem, na agenda do turista (L.24) marcar-passeios (L.25).

A primeira tarefa da decomposicao, que e o transporte do turista de um ponto a outro e es-pecificada na tarefa (transportar ?pessoa ?cartao ?de ?para ?dia) (L.69 a L.91) que, dependendo dadistancia entre as localidades, do dinheiro que o turista possui e da disponibilidade de passagens,

117

Page 134: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

118 Especificacao do domınio Europa na linguagem JSHOP2

pode ser decomposta nas tarefas primitivas (!compra-passagem-aerea ?pessoa ?de ?para ?dia ?cartao)

(L.36 a L.45), (!compra-passagem-trem ?pessoa ?de ?para ?dia ?cartao) (L.47 a L.56) ou (!aluga-carro

?pessoa ?dia ?cartao) (L.58 a L.67). Cada uma destas tarefas primitivas verifica se o turista possuidinheiro para executa-las e, se for o caso, debita o valor no cartao do turista.

Apos o transporte e a marcacao deste compromisso na agenda do turista, a proxima tarefae (!reserva-hospedagem ?acomodacao ?cartao ?dia) (L.95 a L.103). Nesta, apos efetuada a reserva, odinheiro e debitado no cartao do turista e agendado um novo compromisso.

Por fim, a tarefa (marcar-passeios ?pessoa ?cartao ?cidade ?dia)(L.119 a L.131), verifica primeira-mente se a temperatura estimada para o local vai ser baixa ou alta e conforme for decomposta em(!comprar-ingresso ?ptoTuristico ?cartao ?dia) (L.107 a 117) passeios de verao ou de inverno.

1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

2 ;; DOMINIO EUROPA - MODELADO PARA JSHOP2

3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

4 (defdomain europa(

5 (:method (viajar ?pessoa ?cartao ?de (?goal . ?goals))

6 ()

7 ((planejar-viagem ?pessoa ?cartao ?de ?goal)

8 (viajar ?pessoa ?cartao ?goal ?goals)))

9

10 (:method (viajar ?pessoa ?cartao ?de nil)

11 ()())

12

13 (:method (planejar-viagem ?pessoa ?cartao ?de ?para)

14 ;deve haver, na mesma data, um meio de transporte e

15 ;acomodac~ao disponıvel para o local de destino

16 ((tem-passagem ?de ?para ?dia)

17 (acomodacao ?acomodacao)

18 (na-cidade ?acomodacao ?cidade)

19 (tem-vaga ?acomodacao ?dia))

20 ;decomposic~ao do metodo

21 ((transportar ?pessoa ?cartao ?de ?para ?dia)

22 (!marca-agenda ?para ?pessoa ?dia)

23 (!reserva-hospedagem ?acomodacao ?cartao ?dia)

24 (!marca-agenda ?acomodacao ?pessoa ?dia)

25 (marcar-passeios ?pessoa ?cartao ?para ?dia)))

26 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

27 ;; AGENDA

28 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Page 135: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

119

29 (:operator (!marca-agenda ?compromisso ?pessoa ?dia)

30 ()

31 ()

32 ((ocupado ?pessoa ?dia)))

33 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

34 ;; TRANSPORTE

35 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

36 (:operator (!compra-passagem-aerea ?pessoa ?de ?para ?dia ?cartao)

37 (;PREC - verifica se a pessoa tem dinheiro para comprar passagem

38 (tem-passagem-aerea ?de ?para ?dia ?custo)

39 (saldo ?cartao ?dinheiro)

40 (call > ?dinheiro ?custo))

41 ;DEL - apaga a informac~ao do saldo atual

42 ((saldo ?cartao ?dinheiro)); DEL

43 ;ADD - debita do saldo o custo da passagem

44 ((saldo ?cartao (call - ?dinheiro ?custo))

45 (pessoa-em ?pessoa ?para ?dia)) ; ADD)

46

47 (:operator (!compra-passagem-trem ?pessoa ?de ?para ?dia ?cartao)

48 (;PREC - verifica se a pessoa tem dinheiro para comprar passagem

49 (tem-passagem-trem ?de ?para ?dia ?custo)

50 (saldo ?cartao ?dinheiro)

51 (call > ?dinheiro ?custo))

52 ;DEL - apaga a informac~ao do saldo atual

53 ((saldo ?cartao ?dinheiro)); DEL

54 ;ADD - debita do saldo o custo da passagem

55 ((saldo ?cartao (call - ?dinheiro ?custo))

56 (pessoa-em ?pessoa ?para ?dia)) ; ADD)

57

58 (:operator (!aluga-carro ?pessoa ?dia ?cartao)

59 ;PREC - verifica se a pessoa tem dinheiro para alugar um carro

60 ((custo-aluguel-carro ?custo)

61 (saldo ?cartao ?dinheiro)

62 (call > ?dinheiro ?custo)); PRE

63 ;DEL - apaga a informac~ao do saldo atual

64 ((saldo ?cartao ?dinheiro)); DEL

65 ;ADD - debita do saldo o custo do aluguel do carro

66 ((saldo ?cartao (call - ?dinheiro ?custo))

67 (pessoa-em ?pessoa ?para ?dia)) ; ADD)

68

69 (:method (transportar ?pessoa ?cartao ?de ?para ?dia)

70 ;---- avalia possibilidade de viajar de aviao ----

71 ;considerando custo, distancia e disponibilidade de aeroporto

72 ((aeroporto ?de)

73 (aeroporto ?para)

Page 136: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

120 Especificacao do domınio Europa na linguagem JSHOP2

74 (distancia ?de ?para ?dist)

75 (call > ?dist 500)

76 (tem-passagem-aerea ?de ?para ?dia ?custo)

77 (saldo ?cartao ?dinheiro)

78 (call > ?dinheiro ?custo))

79 ;decomposic~ao

80 ((!compra-passagem-aerea ?pessoa ?de ?para ?dia ?cartao))

81 ;---- avalia possibilidade de viajar de trem ----

82 ((distancia ?de ?para ?dist)

83 (call > ?dist 200)

84 (tem-passagem-trem ?de ?para ?dia ?custo)

85 (saldo ?cartao ?dinheiro)

86 (call > ?dinheiro ?custo))

87 ;decomposic~ao

88 ((!compra-passagem-trem ?pessoa ?de ?para ?dia ?cartao))

89 ;---- aluga um carro ----

90 ()

91 ((!aluga-carro ?pessoa ?dia ?cartao)))

92 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

93 ;; HOSPEDAGEM

94 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

95 (:operator (!reserva-hospedagem ?acomodacao ?cartao ?dia)

96 (;PREC - verifica se a pessoa tem dinheiro para reservar

97 (diaria ?acomodacao ?custo)

98 (saldo ?cartao ?dinheiro)

99 (call > ?dinheiro ?custo))

100 ;DEL - apaga a informac~ao do saldo atual

101 ((saldo ?cartao ?dinheiro))

102 ;ADD - debita do saldo o custo da reserva

103 ((saldo ?cartao (call - ?dinheiro ?custo))))

104 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

105 ;; PASSEIOS

106 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

107 (:operator (!comprar-ingresso ?ptoTuristico ?cartao ?dia)

108 (;verifica se a pessoa tem dinheiro para comprar o ingresso

109 (custo ?ptoTuristico ?custo)

110 (saldo ?cartao ?dinheiro)

111 (call > ?dinheiro ?custo)); PRE

112 ;DEL - apaga a informac~ao do saldo atual

113 ((saldo ?cartao ?dinheiro)

114 (pessoa-em ?pessoa ?cidade ?dia)) ;DEL

115 ;ADD - debita do saldo o custo do ingresso

116 ((saldo ?cartao (call - ?dinheiro ?custo))

117 (pessoa-em ?pessoa ?cidade (call + ?dia 1))); ADD)

118

Page 137: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

121

119 (:method (marcar-passeios ?pessoa ?cartao ?cidade ?dia)

120 ;---- se a temperatura for menor que 10 graus marcar passeios de inverno ----

121 ((previsao-temp ?cidade ?dia ?temp)

122 (call < ?temp 10)

123 (passeio-inverno ?cidade ?ptoTuristico ?custo))

124 ;decomposic~ao

125 ((!comprar-ingresso ?ptoTuristico ?cartao ?dia)

126 (!marca-agenda ?ptoTuristico ?pessoa ?dia))

127 ;---- se a temperatura for maior que 10 graus marcar passeios de verao ----

128 ((passeio-verao ?cidade ?ptoTuristico ?custo))

129 ;decomposic~ao

130 ((!comprar-ingresso ?ptoTuristico ?cartao ?dia)

131 (!marca-agenda ?ptoTuristico ?pessoa ?dia)))

132 ));FECHA DOMINIO EUROPA

Figura A.1: Exemplo de domınio JSHOP2

Page 138: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

122 Especificacao do domınio Europa na linguagem JSHOP2

Page 139: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Referencias Bibliograficas

[Apache, 2001] Apache (2001). Apache Axis. http://xml.apache.org/axis/.

[Arroyo, 2004] Arroyo (2004). Ibm web services tutorial. Technical report. URL: http://www-106.ibm.com/developerworks/webservices/.

[Beckett, 2004] Beckett, D. (2004). Rdf xml syntax specification (revised). Technical report, W3C.URL: http://www.w3.org/TR/rdf-syntax-grammar/.

[Berners-Lee et al., 2001] Berners-Lee, T., Hendler, J., and Lassila, O. (2001). The semantic Web.Scientific American, 284(5):34–43.

[Booth et al., 2003] Booth, D., Haas, H., McCabe, F., Newcomer, E., Champion, M., Ferris,C., and Orchard, D. (2003). Web services architecture. Technical report, W3C. URL:http://www.w3c.org/TR/ws-arch.

[Bray et al., 2004] Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E., Yergeau, F., andCowan, J. (2004). Extensible markup language (xml) 1.1. Technical report, W3C. URL:http://www.w3.org/TR/2004/REC-xml11-20040204/.

[Brickley and Guha, 2004] Brickley, D. and Guha, R. (2004). Rdf vocabulary description language1.0: Rdf schema. Technical report, W3C. URL: http://www.w3.org/TR/rdf-schema/.

[Carman and Serafini, 2003] Carman, M. and Serafini, L. (2003). Planning for web services the hardway. In SAINT Workshops, pages 73–77.

123

Page 140: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

124 Referencias Bibliograficas

[Carman et al., 2003] Carman, M., Serafini, L., and Traverso, P. (2003). Web Service Compositionas Planning. In Proceedings of Planning for Web Services Workshop in ICAPS 2003, Trento, Italy.

[Cerami, 2002] Cerami, E. (2002). Web Services Essentials. O’Reilly Associates, 1 edition.

[Chinnici et al., 2004] Chinnici, R., Gudgin, M., Moreau, J.-J., Schlimmer, J., and Weerawarana, S.(2004). Web services description language (wsdl) version 2.0 part 1: Core language. Technicalreport, W3C. URL: http://www.w3.org/TR/wsdl20/.

[Coulson and Parlavantzas, 2004] Coulson, G. and Parlavantzas, N. (2004). Middleware. Technicalreport, IEEE-Distributed Systems Online. http://dsonline.computer.org/middleware/index.htm.

[Erol et al., 1994] Erol, K., Hendler, J., and Nau, D. S. (1994). HTN planning: Complexity andexpressivity. In Proceedings of the Twelfth National Conference on Artificial Intelligence (AAAI-94), volume 2, pages 1123–1128, Seattle, Washington, USA. AAAI Press/MIT Press.

[Fikes and Nilsson, 1971] Fikes, R. and Nilsson, N. (1971). Strips: A new approach to the applicationof theorem proving to problem solving. 2(4):189–208.

[Genesereth and Fikes, 1992] Genesereth, M. R. and Fikes, R. E. (1992). Knowledge interchangeformat, version 3.0 reference manual. Technical report, Stanford, CA, USA.

[Gruninger and Kopena, 2005] Gruninger, M. and Kopena, J. B. (2005). Planning and the pro-cess specification language. In Workshop on the Role of Ontologies in Planning and Scheduling,Monterey, California.

[Gruninger and Menzel, 2003] Gruninger, M. and Menzel, C. (2003). The process specification lan-guage (psl) theory and applications. AAAI AI Magazine, 24(3):63–74.

[Gunzer, 2002] Gunzer, H. (2002). Introduction to web services. Technical report, Borland. URL:http://archive.devx.com/javasr/whitepapers/borland/12728JB6webservwp.pdf.

[Haas and Brown, 2003] Haas, H. and Brown, A. (2003). Web services glossary. Technical report,W3C. URL: http://www.w3.org/TR/ws-gloss/.

[Hayes, 2002] Hayes, P. (2002). RDF model theory. Technical report, W3C. W3C Working Draft.

Page 141: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Referencias Bibliograficas 125

[Heflin, 2003] Heflin, J. (2003). Web ontology language (owl) use cases and requirements. Technicalreport, W3C. URL: http://www.w3.org/TR/webont-req.

[Heflin and Hendler, 2000] Heflin, J. and Hendler, J. A. (2000). Dynamic ontologies on the web. InAAAI/IAAI, pages 443–449.

[Heflin et al., 2004] Heflin, J., Volz, R., and Dale, J. (2004). Requirements for a web ontologylanguage. Technical report, W3C.

[HPLab, 2006] HPLab (2006). Jena – a semantic web framework for java - web site.http://jena.sourceforge.net/.

[ICAPS2005, 2005] ICAPS2005 (2005). International conference on automated planning and sche-duling. http://icaps05.uni-ulm.de/.

[Inc., 2006] Inc., E. F. (2006). Eclipse - Web Site . http://www.eclipse.org/.

[Klyne and Carroll, 2004] Klyne, G. and Carroll, J. (2004). Resource description framework (rdf):Concepts and abstract data model. Technical report, W3C.

[Koivunen and Miller, 2001] Koivunen, M.-R. and Miller, E. (2001). W3C Semantic Web Activity.In Proceedings of the Semantic Web Kick-off Seminar, Finland.

[Lassila and Swick, 1999] Lassila, O. and Swick, R. R. (1999). Resource description framework (rdf)model and syntax specification. Technical report, W3C. URL: http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/.

[Levesque et al., 1997] Levesque, H. J., Reiter, R., Lesperance, Y., and Scherl, F. L. R. B. (1997).Golog: A logic programming language for dynamic domains.

[Manola and Miller, 2004] Manola, F. and Miller, E. (2004). Rdf primer. Technical report, W3C.URL: http://www.w3.org/TR/rdf-primer/.

[Martin et al., 2004] Martin, D., Burstein, M., Hobbs, J., Lassila, O., McDermott, D., McIlraith,S., Narayanan, S., Paolucci, M., Parsia, B., Payne, T., Sirin, E., Srinivasan, N., and Sycara, K.(2004). Owl-s: Semantic markup for web services. Technical report, DAML Services Coalition.URL: http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/.

Page 142: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

126 Referencias Bibliograficas

[McCluskey and Simpson, 2003] McCluskey, T. L.; Liu, D. and Simpson, R. M. (2003). Gipo ii: Htnplanning in a tool-supported knowledge engineering environment. In The Thirteenth InternationalConference on Automated Planning and Scheduling.

[McCluskey and Cresswell, 2005] McCluskey, L. and Cresswell, S. (2005). Importing ontological in-formation into planning domain models. In Workshop on the Role of Ontologies in Planning andScheduling, Monterey, California.

[McCluskey and Liu, 2000] McCluskey, T. L. and Liu, D. (2000). The ocl language manual, ver-sion 1.2. Technical report, Department of Computing and Mathematical Sciences, University ofHuddersfield.

[McDermott, 1996] McDermott, D. (1996). A heuristic estimator for meansends analysis in planning.In Proc. International Conference on AI Planning Systems,, pages 142–149.

[McDermott, 1998] McDermott, D. (1998). The planning domain definition language manual. Tech-nical report, Yale Computer Science.

[McDermott, 1999] McDermott, D. (1999). Using regression-match graphs to control search in plan-ning. Artificial Intelligence, 109(1-2):111–159.

[McDermott, 2002] McDermott, D. (2002). Estimated-Regression Planning for Interactions with WebServices. In Proceedings of the Sixth International Conference on Artificial Intelligence PlanningSystems, Toulose, France.

[McGuinness et al., 2004a] McGuinness, D. L., Newton, G., and Pollock, J. (2004a). Semantic webrule language (swrl). Technical report. URL: http://www.w3.org/Submission/2004/03/.

[McGuinness and Noy, 2001] McGuinness, D. L. and Noy, N. F. (2001). Ontology development 101:A guide to creating your first ontology. Technical report, Stanford University.

[McGuinness et al., 2004b] McGuinness, D. L., Smith, M. K., and Welty, C. (2004b). Owl webontology language guide. Technical report, W3C. URL: http://www.w3.org/TR/owl-guide/.

[McGuinness and van Harmelen, 2004] McGuinness, D. L. and van Harmelen, F. (2004). Owl webontology language overview. Technical report, W3C. URL: http://www.w3.org/TR/owl-features/.

Page 143: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

Referencias Bibliograficas 127

[McIlraith and Son, 2002] McIlraith, S. and Son, T. (2002). Adapting golog for composition of se-mantic web services.

[Medjahed et al., 2003] Medjahed, B., Bouguettaya, A., and Elmagarmid, A. (2003). Composingweb services on the semantic web. The VLDB Journal, 12.

[Mindswap, 2003] Mindswap (2003). Pellet - owl dl reasoner. Technical report. URL:http://www.mindswap.org/2003/pellet.

[Mindswap, 2006] Mindswap (2006). Owl-s api web site. http://www.mindswap.org/2004/owl-s/api/.

[Mitra, 2003] Mitra, N. (2003). Soap version 1.2 part 0: Primer. Technical report, W3C. URL:http://www.w3.org/TR/soap12-part0.

[Nau et al., 2003] Nau, D. S., Au, T. C., Ilghami, O., Kuter, U., Murdock, W., Wu, D., and Yaman,F. (2003). SHOP2: An HTN planning system. Journal of Artificial Intelligence Research, 20:379–404.

[OWLS, 2004] OWLS (2004). Apache Axis. http://www.daml.org/services/owl-s/.

[Parsia et al., 2004a] Parsia, B., Kuter, U., Sirin, E., Nau, D., and Hendler, J. (2004a). Informationgathering during planning for web service composition. In Workshop on Planning and Schedulingfor Web and Grid Services at ICAPS04, Whistler, Canada.

[Parsia and Sirin, 2004] Parsia, B. and Sirin, E. (2004). Planning for semantic web services. InSemantic Web Services Workshop at 3rd International Semantic Web Conference (ISWC2004).

[Parsia et al., 2004b] Parsia, B., Sirin, E., Wu, D., Hendler, J., and Nau, D. (2004b). HTN planningfor web service composition using SHOP2. Journal of Web Semantics, 1(4):377–396.

[Parsia et al., 2003] Parsia, B., Wu, D., Sirin, E., Hendler, J., and Nau, D. (2003). Automatic webservices composition using SHOP2. In Proceedings of Planning for Web Services Workshop inICAPS 2003, Trento, Italy.

[Peer, 2002] Peer, J. (2002). Bringing together semantic web and web services. In Proceedings of theFirst International Semantic Web Conference on The Semantic Web, pages 279–291. Springer-Verlag.

Page 144: Dissertação de Mestrado - Planejamento para Serviços Web Semânticos

128 Referencias Bibliograficas

[Peer, 2003] Peer, J. (2003). Towards automatic web service composition using ai planning techni-ques. http://sws.mcm.unisg.ch/docs/wsplanning.pdf.

[Peer, 2004] Peer, J. (2004). A pddl based tool for automatic web service composition.

[Ponnekanti and Fox, 2002] Ponnekanti, S. R. and Fox, A. (2002). Sword: A developer toolkit forweb service composition. In Proceedings of the 11th World Wide Web Conference, Honolulu, HI,USA.

[Prud’hommeaux and Seaborne, 2006] Prud’hommeaux, E. and Seaborne, A. (2006). Sparql querylanguage for rdf. Technical report, W3C. http://www.w3.org/TR/rdf-sparql-query/.

[Raggett et al., 1999] Raggett, D., Hors, A. L., and Jacobs, I. (1999). Html 4.01 specification. Te-chnical report, W3C. URL: http://www.w3.org/TR/html4/.

[SoftLab, 2006] SoftLab (2006). Wsdl2owl-s tool web site. http://www.daml.ri.cmu.edu/wsdl2owls/.

[Srivastava and Koehler, 2003a] Srivastava, B. and Koehler, J. (2003a). Web Service Composition -Current Solutions and Open Problems. In Proceedings of Planning for Web Services Workshop inICAPS 2003, Trento, Italy.

[Srivastava and Koehler, 2003b] Srivastava, B. and Koehler, J. (2003b). Web service composition -current solutions and open problems. In Proceedings of Planning for Web Services Workshop inICAPS 2003, Trento, Italy.

[Stanford, 2006] Stanford (2006). Protege ontoloy editor web site. Technical report. URL:http://protege.stanford.edu/.

[UDDI, 2001] UDDI (2001). Universal Description, Discovery, and Integration of Business for theWeb. URL: http://www.uddi.org.

[Weld, 1994] Weld, D. S. (1994). An introduction to least commitement planning. 15(4):27–61.