SlideShare uma empresa Scribd logo
Planejamento para
Serviços Web Semânticos
             Juliana Jabra Chahoud
              jchahoud@gmail.com
                  Junho / 2006
    Orientadora: Profa Leliane Nunes de Barros
Conteúdo da apresentação

 n    Introdução
 n    Serviços Web
 n    Web Semântica
 n    OWL-S: ontologias para descrição de serviços Web
 n    Planejamento com ontologias
 n    A ferramenta WEBRPlan
 n    Um estudo de caso: planejamento de viagens
 n    Conclusões e contribuições
 n    WEBRPlan: Demonstração
Motivação

 n    Serviços Web são componentes de software que podem ser
       acessados por outros softwares através da Web;
 n    Com o crescimento e proliferação dos serviços Web, torna-se
       cada vez mais difícil encontrar um serviço que possa executar
       uma tarefa desejada.
 n    Isto é ainda mais difícil quando não existe um serviço único, mas
       sim combinações de serviços que sejam capazes de executar tal
       tarefa
 n    Essa combinação de serviços para atingir uma necessidade é
       denominada composição de serviços e pode ser feita por um
       programador ou automaticamente.
 n    O objetivo desse trabalho é automatizar o processo de
       composição de serviços.


             Introdução
Exemplo de composição de serviços Web

        1                        2



                                           Preço de livros
                                              em reais



Preço de livros em          Conversão de
     dólares                  moedas




               Introdução
Composição de serviços completamente
automatizada

 n    A composição de serviços Web completamente
       automatizada pode ser caracterizada como um
       processo que envolve os três passos:
       1)  Descoberta automática - localizar serviços candidatos
           para a composição
       2)  Composição automática - determinar quais serviços
           devem ser executados e em que seqüência para atingir
           o objetivo
       3)  Execução automática - invocação dos serviços Web




           Introdução
O que é necessário para a automação

  n    Descrever serviços Web de modo que eles possam ser
        interpretáveis por máquinas
        è  Essa   é a proposta da Web Semântica
  n    Determinar quais serviços executar e em que ordem:
        è  Problema  tratado por técnicas de Planejamento em
           Inteligência Artificial




             Introdução
Principais objetivos desse trabalho

  n    definir como a composição de serviços Web pode ser descrita
        como um problema de planejamento;
  n    determinar quais técnicas de planejamento em IA podem ser
        usadas para a composição de serviços Web, o que envolve
        identificar quais são as restrições do ambiente de planejamento;
  n    identificar uma maneira de descrever serviços Web como
        domínios de planejamento (i.e., em termos de ações, tarefas, pré-
        condições e efeitos) com base nos princípios da Web Semântica;
  n    implementar uma ferramenta de software para dar suporte
        durante todas as etapas envolvidas na composição automática de
        serviços Web – WEBRPlan (Planejamento para WEB do Brasil)
  n    implementar um conjunto de serviços Web que serão usados num
        estudo de caso


              Introdução
Estudo de Caso:
planejamento de uma viagem para Europa

n    Um turista deseja visitar diversas cidades da Europa. Essa tarefa envolve: reservar
      hospedagens, comprar passagens aéreas ou de trem, alugar carro, comprar
      ingressos para pontos turísticos e criar uma agenda com seus compromissos de
      viagem.
n    Restrições do problema:
       l    o cartão de crédito do turista possui um limite de saldo;
       l    acomodações possuem uma dada disponibilidade de vagas;
       l    de acordo com a distância entre as cidades existem diferentes tipos de transporte
             disponíveis;
       l    de acordo com o seu saldo, o turista pode pagar diferentes tipos de transporte e
             acomodação;
       l    de acordo com a previsão de tempo diferentes pontos turísticos podem ser visitados.
n    Serviços Web criados:
       l    Hospedagem, Transportes, Ingressos, EuroInfo (informações sobre tempo e
             distância) e Agenda.



                   Introdução
Conhecimento prévio sobre o domínio de viagens

  n    Meios de transporte: trem, carro ou avião
  n    Meios de transporte possuem as propriedades: custo e disponibilidade. O custo
        de trem e de avião corresponde ao preço das passagens e o custo de carro ao seu
        aluguel.
  n    Tipos de passagens: passagem aérea ou passagem de trem. Passagens possuem
        as seguintes propriedades: passageiro, origem, destino, data e custo.
  n    Localizações: cidades, aeroportos, países, acomodações e pontos turísticos. Uma
        localização pode estar localizada em outras localizações.
  n    Acomodações: hotéis, pousadas e albergues. Acomodações possuem as seguintes
        propriedades: número de vagas, custo (diária) e localização.
  n    Pontos turísticos podem ser classificados em pontos turísticos de inverno ou de
        verão.
  n    Pessoas: turistas e passageiros. Pessoas possuem cartão de crédito que por sua
        vez possui um saldo. Turistas, possuem agendas com datas e descrições de seus
        compromissos.
  n    Um turista possui os seguintes compromissos: embarcar, desembarcar, retirar
        carro, devolver carro, visitar pontos turísticos, check-in e check-out em uma
        acomodação.
  n    Pessoas e meios de transporte mudam de localização.


               Introdução
Serviços Web
O que são serviços Web?

 n     São componentes de software que:
       l    disponibilizam uma interface (WSDL) que descreve
             uma coleção de operações acessíveis pela rede
             através de mensagens (SOAP), em formato XML
       l    são independentes de linguagens e de plataformas
             (padrões propostos pela W3C: WSDL, SOAP, XML,
             HTTP)




             Serviços Web
Como usar um serviço Web?

 1    Publica a URL e descrição do
      serviço Web
  2   Descobre o serviço Web                      UDDI
  3   Lê a descrição WSDL
  5   Cria um proxy para o serviço Web
                                             2                 1
  6   Invoca o
      serviço Web
      através do        Cliente
      Proxy                              3         .wsdl
                                     5   6
                           Proxy                 Serviço Web

         Serviços Web
WSDL: exemplo do serviço para compra de ingressos




Onde o serviço está    Como as mensagens      Operações que serão    Mensagens que serão
    localizado          serão transmitidas:       permitidas:           transmitidas:
                      especificação do SOAP    comprarIngresso      comprarIngressoRequest
                                                                    comprarIngressoResponse



               Serviços Web
Principais utilizações dos serviços Web

  n    Integração entre empresas (B2B)
  n    Integração entre empresas e consumidores (B2C)
  n    Integração de aplicações corporativas
  n    Dispositivos móveis
  n    Distribuído / Peer-to-Peer




            Serviços Web
Web Semântica
Serviços Web Semânticos

 n    A linguagem WSDL descreve a interface de serviços
       Web de modo que serviços possam ser acessados
       independentemente de linguagem e plataforma.
 n    Porém, para fazer a composição automática, bem como
       a descoberta, é necessária uma descrição de serviços
       Web segundo a proposta da Web Semântica:
       l    conteúdo Web descrito em uma linguagem formal,
             interpretável por máquina, que permita fazer inferências
             lógicas




             Web Semântica
O que é Web Semântica?

 n     A Web Semântica surge como uma evolução da Web
        atual, com a principal preocupação em representar
        informações na Web de maneira que as máquinas
        possam interpretá-las
 n     Tecnologias necessárias para sua implementação:
       l     uma maneira de disponibilizar definições de
              termos e relações entre eles (ontologias)
       l     uma linguagem que permita adicionar semântica
              aos documentos da Web (instâncias das
              ontologias)
       ontologias + instâncias = base de conhecimento
             Web Semântica
O que é ontologia?

  n    Uma especificação formal (baseada em lógica) de conceitos de
        um domínio e da relação que existe entre eles.
  n    Ontologias servem para:
         l    compartilhar uma interpretação da estrutura de
               informação entre pessoas ou agentes computacionais
         l    permitir a reutilização de uma especificação (modelo)
               de um domínio do conhecimento
         l    fazer inferências lógicas a respeito de um domínio

  n    OWL é a linguagem adotada como padrão pelo W3C para
        descrição de ontologias



               Web Semântica
OWL: características básicas

  n    Classe é uma coleção de propriedades que descrevem
        um grupo de indivíduos (owl:Class)
  n    Propriedades são usadas para criar relações
        (owl:ObjectProperty e owl:DatatypeProperty)
  n    OWL fornece características de propriedades,
        restrições de tipo (owl:Restriction) e de cardinalidade
        (owl:Cardinality)
  n    Permite construções de classes complexas
        (intersectionOf, unionOf e complementOf)



           Web Semântica
Ferramentas para ontologias

  n    Ferramentas para edição de ontologias (Protégé, Oiled,
        OWL-editor, etc)
  n    Ferramentas para construção de aplicações: para
        consultas em ontologias e mecanismos de inferências
        (Jena, Racer, Pellet, etc)




           Web Semântica
JENA

 n    Framework em JAVA para construção de aplicações
       para Web Semântica, fornecendo um ambiente de
       programação para as linguagens RDF, RDFS e OWL.
       Suas principais funcionalidades são:
       l    APIs para RDF e para ontologias, incluindo leitura e
             escrita nos documentos
       l    Armazenamento das informações em memória ou
             persistência em banco de dados
       l    Linguagens para consulta em ontologias (ARQ, que
             implementa SPARQL)
       l    Motores de inferência (RDFS, OWL, regras)


             Web Semântica
Ontologias usadas nesse trabalho

  n    Esse trabalho, além de usar ontologias que descrevem
        serviços Web (mostradas a seguir), são usadas
        também ontologias específicas do domínio de
        aplicação.
  n    Por exemplo, para o Estudo de Caso sobre viagens
        para Europa, foi construída a ontologia Euro.owl
        (Protégé).




           Web Semântica
OWL-S:
ontologias para descrição
     de serviços Web
OWL-S: OWL-based Web Service ontology

n     Conjunto de ontologias para descrever serviços Web
       através da linguagem OWL que facilitam a construção
       de processos automáticos para Web
n     OWL-S é estruturada em quatro ontologias:
      l    Service.owl,
      l    Profile.owl,
      l    Process.owl e
      l    Grounding.owl

      ontologias OWL-S + serviços Web = base de conhecimento

                OWL-S
Relação entre as ontologias do OWL-S
[OWL-S, 2004]




        OWL-S
ServiceModel (Process.owl):
principal ontologia para composição

  n    A ontologia ServiceModel descreve:
        l    operações de serviços como processos atômicos e
              compostos
        l    a decomposição de processos compostos através de
              construções de controle (sequence, split, split+join,
              unordered, choice, if-then-else, iterate e repeat-until)
        l    Propriedades de processos necessárias para
              automatizar a composição (IOPES) : hasInput,
              hasOutput, hasPrecondition e hasResult.
              Limitação: não existe um padrão para descrever essas
              propriedades.

                 OWL-S
Exemplo de processo composto:
devolve preço em reais de livros
  <process:CompositeProcess rdf:ID="BookPriceProcess">
        <process:hasInput rdf:resource="#BookName" />
        <process:hasInput rdf:resource="#Currency" />
        <process:hasOutput rdf:resource="#BookPrice" />
        <process:composedOf>
          <process:Sequence>
          <process:components rdf:parseType="Collection">


          <process:AtomicProcess rdf:about="BNPrice.owl#BNPriceProcess" />
          <process:AtomicProcess rdf:about="CurrencyConverter.owl#CurrencyConverterProcess" />


         </process:components>
          </process:Sequence>
        </process:composedOf>
  ...
  </process:CompositeProcess>



                  OWL-S
Ferramentas para a linguagem OWL-S

 n    WSDL2OWLS: dado um serviço Web descrito na
       linguagem WSDL, essa ferramenta fornece uma
       tradução semi-automática de WSDL para OWL-S:
       l    especificação completa de Grounding e
       l    especificações parciais das ontologias e Process e
             Profile (adição manual de IOPES)
 n    OWL-S API: dado um serviço Web descrito em OWL-S,
       essa ferramenta fornece uma maneira de ler e executar
       esses serviços



                OWL-S
Planejamento com
    ontologias
Planejamento

  n    Planejar é um processo de escolha de ações para atingir
        um objetivo, através da previsão dos efeitos da execução
        dessas ações e da descrição do estado atual do mundo.
  n    Planejamento clássico: ações instantâneas, informação
        completa do mundo, ações determinísticas, não existência
        de ações exógenas.
  n    Existem duas abordagens de planejamento clássico:
         l    planejamento para metas de alcançabilidade
         l    planejamento para decompor tarefas



   Planejamento com ontologias
Planejamento para metas de alcance

Um problema de planejamento pode ser descrito pelos elementos
  <S, s0,G, A, f >, em que:
    l    S é um conjunto finito de estados;
    l    s0 ∈ S é um estado inicial;
    l    G ⊆ S é um conjunto de estados meta;
    l    A(s) é um conjunto finito de ações aplicáveis, para cada estado s ∈ S;
    l    f : S × A −> S é uma função de transição de estados que mapeia um estado
          s para outro estado s’, após a execução de uma ação a em s.
Plano Solução: uma seqüência de ações que quando executada em s0 leva a
   (alcança) um estado meta g ∈ G.
Estratégia de solução: raciocinar sobre estados e a função de transição de estados
  para alcançar os estados meta.

          Planejamento com ontologias
Planejamento para decompor tarefas
      (planejamento hierárquico)
Um problema de planejamento hierárquico pode ser descrito pelos elementos <S, s0,A, f, T,M, d0>, em que:
n    S é um conjunto finito de estados;
n    s0 ∈ S é um estado inicial;
n    G ⊆ S é um conjunto de estados meta;
n    A(s) é um conjunto finito de ações aplicáveis (tarefas primitivas), para cada estado s ∈ S;
n    f : S × A −> S é uma função de transição de estados que mapeia a transição de um estado s para outro
      estado s’ após a execução de uma ação a em s;
n    T é um conjunto finito de (nomes) tarefas compostas;
n    M é um conjunto de métodos para decompor tarefas compostas. Um método é um par (t,d), onde t ∈ T e
      d é uma rede de tarefas. M(s) é um conjunto finito de métodos aplicáveis, para cada estado s ∈ S;
n    Uma rede de tarefas é formada por um conjunto de tarefas compostas ou primitivas e uma ordem parcial
      (ou total) entre elas;
n    d0 é a rede de tarefas inicial;
Plano Solução: Uma rede de tarefas primitivas que pode ser executada em s0
Estratégia de solução: raciocinar sobre os métodos (alternativos) de decomposição das tarefas compostas
   contidas na rede de tarefas inicial (d0)



            Planejamento com ontologias
Planejamento para metas de alcance: exemplo

s0: {em(SaoPaulo),                                                         G: visitada(TorreEiffel)
     tempassagem(SaoPaulo,Paris)}




                                                                         Ação: visitar(TorreEiffel)
                                                                         Prec: {em ( Paris)}
                 Ação: viajar(SaoPaulo,Paris)
                 Prec: {em (SaoPaulo) ,                                  Efeitos de adição: {visitada
                                                                         (TorreEiffel)}
                        tempassagem(SaoPaulo,Paris)}
                 Efeitos de Adição: {em(Paris)}
                 Efeitos de Eliminação: {em(SaoPaulo),
                              tempassagem(SaoPaulo,Paris)}

      Plano solução: viajar( SãoPaulo, Paris) è visitar( TorreEiffel)

        Planejamento com ontologias
Planejamento para decompor tarefas: exemplo

Tarefa: viajar(Barcelona,Paris)               Tarefa: comprar_pass_aérea(Barcelona,Paris)
                                              Prec: {saldo_cartao(C) ,
s0: {em(Barcelona), saldo_cartao(C),
                                                     custo_pass_aerea(Barcelona, Paris,P1), (C>= P1)}
custo_pass_aerea(Barcelona, Paris, P1)
                                              Efeitos de adição:
custo_pass_trem(Barcelona, Paris, P2)}
                                                     {passagem_comprada(Barcelona, Paris),
Método(viajar,d1)                                                saldo_cartao(C – P1)}
Prec: {distancia(Barcelona,Paris) > 500 km}   Efeitos de eliminação: {saldo_cartao(C)}
Rede de Tarefas d1:
                                              Tarefa: viajar_de_aviao(Barcelona,Paris)
{comprar_pass_aérea(Barcelona,Paris)
                                              Prec: {passagem_comprada(Barcelona, Paris),
viajar_de_aviao(Barcelona,Paris)}
                                                     em(Barcelona)}
Método(viajar,d2)                             Efeitos de adição: {em(Paris)}
Prec: { }                                     Efeitos de eliminação: {em(Barcelona)}
Rede de Tarefas d2:
{comprar_pass_trem(Barcelona,Paris),
viajar_de_trem(Barcelona,Paris)}

   Plano solução: comprar_pass_aérea(Barcelona,Paris) è viajar_de_aviao(Barcelona,Paris)

            Planejamento com ontologias
Planejamento para serviços Web: as suposições
  feitas em planejamento clássico
Na Web, não é possível fazer a maioria das suposições feitas no planejamento
  clássico:
   l    informação incompleta do mundo: a Web possui uma coleção massiva de
         informações e que nem sempre podem ser acessadas
   l    ainda que todo o conteúdo da Web pudesse ser acessado, qualquer aplicação
         deve coletar informação na Web somente quando necessária
   l    não se pode ter certeza sobre os efeitos da execução de uma ação (ações
         não-determinísticas)
   l    podem ocorrer mudanças no estado do mundo que independem das ações
         definidas no domínio de planejamento (ações exógenas)
   l    podem ocorrer transições de estado que não sejam instantâneas (ações com
         duração de tempo)
   l    serviços Web podem descrever nomes de processos e dados (nomes de ações
         e literais) que podem ser subclasses ou equivalência de outros nomes de
         conceitos


          Planejamento com ontologias
Como fazer planejamento de serviços Web?

Nesse trabalho foram adotadas as seguintes soluções:
1.     Serviços Web devem ser descritos como instâncias das ontologias do OWL-S
2.     Uso de técnicas de planejamento hierárquico para decompor processos
       compostos de serviços Web
3.     Tarefas primitivas e compostas são processos
       OWL-S (serviços Web são naturalmente descritos em uma estrutura hierárquica)
4.     O estado do mundo é representado como instâncias de ontologias: de serviços e
       do domínio de aplicação (base de conhecimento) + as informações da Web

5.     Pré-condições (de ações primitivas ou de métodos de decomposição) especificam
       consultas à base de conhecimento ou consultas à Web
6.     Para verificar se uma pré-condição é verdadeira, é usado um motor de inferência
       junto com ontologias




          Planejamento com ontologias
Planejamento para decompor tarefas:
     exemplo utilizando consultas na base de conhecimento

Tarefa: viajar(Barcelona,Paris)
                                             Tarefa:comprar_pass_aérea(euro:Barcelona,euro:Paris)
                                             Prec: {SELECT ?C WHERE
Método(viajar,d1)                                   { euro:cartao euro:saldo ?C} ,
Prec: {                                             SELECT ?P1 WHERE
 (SELECT ?x WHERE                                   {?pass rdf:type euro:passagemAerea.
{ ?dist rdf:type euro:dist.                         ?pass euro:de euro:Barcelona.
  ?dist euro:de euro:Paris.                         ?pass euro:para euro:Paris.
  ?dist euro:para euro:Barcelona.                   ?pass euro:custo ?P1}
  ?dist euro:valor ?x})                              (C >= P1)}
  x > 500 km}                                Efeitos de adição:
Rede de Tarefas d1:                          {(euro:pass_comprada, euro:Barcelona, euro:Paris),
{comprar_pass_aérea                          (euro:cartao, euro:saldo, C – P1)}
             (euro:Barcelona,euro:Paris)     Efeitos de eliminação: {(euro:cartao, euro:saldo, C)}
viajar_de_aviao
             (euro:Barcelona,euro:Paris)}
                                            Tarefa: viajar_de_aviao(Barcelona,Paris)
                                                    ...
            Planejamento com ontologias
A ferramenta
 WEBRPlan
Dificuldades para a implementação da ferramenta
WEBRPlan

  1.    A maioria dos sistemas de planejamento não fazem:
        l    chamadas externas para a verificação de pré-
              condições (na Web);
        l    raciocínio sobre ontologias
  2.    Não existem Serviços Web descritos diretamente em
        OWL-S
  3.    Não é possível descrever processos compostos, pré-
        condições e efeitos em WSDL. Assim, tradutores
        automáticos de WSDL para OWL-S são limitados.



        A ferramenta WEBRPlan
Sistema de planejamento JSHOP2

 JSHOP2 é um sistema de planejamento hierárquico que
   possui características desejadas para o planejamento
   de serviços Web:
    l    redes de tarefas totalmente ordenadas, o que permite
          conhecer o estado corrente do mundo em cada etapa
          do processo de planejamento, facilitando a verificação
          de pré-condições;
    l    possui um grande poder de expressividade, por
          exemplo, nas pré-condições pode-se misturar
          computações numéricas e chamadas a programas
          externos (consultas a base de conhecimento ou Web).


    A ferramenta WEBRPlan
WEBRPlan

Ferramenta implementada em JAVA que possui quatro
    funções principais:
  1.     Seleção de serviços Web para composição e seleção
         das ontologias relacionadas ao domínio de aplicação
  2.     Conversão das descrições dos serviços em WSDL para
         OWL-S + inserção de processos compostos e IOPES
  3.     Conversão das descrições dos serviços em OWL-S para
         tarefas e métodos de planejamento hierárquico +
         inserção das chamadas a um avaliador de pré-condições
  4.     Composição de serviços Web, dada uma rede de tarefas
         especificada pelo usuário, utilizando o planejador
         JSHOP2 e o JENA (JENA2)
        A ferramenta WEBRPlan
Integração do JSHOP2 com o JENA e a Web




    A ferramenta WEBRPlan
Execução do plano

 n    apesar de fazer coleta de informações e consulta a uma
       base de conhecimento on-line, o JSHOP2 gera um
       plano para ser executado off-line.
 n    somente nesse instante os efeitos da execução dos
       processos são adicionados a base de conhecimento




        A ferramenta WEBRPlan
Um estudo de caso:
planejamento de viagens
Metodologia de desenvolvimento do estudo de caso

Resolver o problema de planejamento de viagens de três
   maneiras diferentes:
   1.    Descrever o problema diretamente como tarefas e
         métodos do planejador JSHOP2
   2.    Uso do planejador JSHOP2 fazendo consultas a base de
         conhecimento formada pela ontologia de viagens
         (Euro.owl) e suas instâncias. Aqui, precondições e e
         efeitos são termos da ontologia. Uso do JENA.
   3.    Planejamento de viagens diretamenta na Web.
         Construção e tradução dos serviços de viagem para
         tarefas e métodos do JSHOP2. Uso do JENA e de cliente.

           Estudo de caso
Dados do estudo de caso
n    Foram implementados 5 serviços Web contendo:
       l    11 operações transacionais (não instanciadas),
       l    12 operações de coleta de informação (na base de conhecimento ou na Web),
       l    Um conjunto de 4 ontologias para cada serviço criado e
       l    Conceitos definidos na ontologia Euro.owl (editada no Protégé).




               Estudo de caso
Conclusões e
contribuições
Conclusões

 n    Neste trabalho foi mostrado como a composição de serviços Web
       pode ser descrita como um problema de planejamento;
 n    Foi identificado que planejamento hierárquico com pré-condições
       como chamadas de programas externos é uma técnica que pode
       ser usada a composição de serviços Web;
 n    Foi definida uma maneira de descrever serviços Web como
       domínios de planejamento (i.e., em termos de ações, tarefas, pré-
       condições e efeitos) com base nos princípios da Web Semântica;
 n    Foi implementado um conjunto de serviços Web para um estudo
       de caso sobre planejamento de viagens
 n    Foi implementada a ferramenta WEBRPlan para dar suporte
       durante todas as etapas envolvidas na composição automática de
       serviços Web.


       Conclusões e contribuições
Conclusões

 n    Foram estudadas e/ou empregadas as seguintes
       tecnologias:
        l    Ontologias e Web Semântica
        l    JENA, SPARQL, Protégé, OWL, RDF, RDFS
        l    XML, Java, Eclipse
        l    Serviços Web, WSDL, Tomcat, Axis e os protocolos
              HTTP e SOAP
        l    OWL-S, OWL-S API, WSDL2OWL-S
        l    Planejamento em IA e o planejador JSHOP2

       Conclusões e contribuições
Contribuições

  n    propor e implementar uma combinação original de tecnologias para
        realizar a composição de Serviços Web:

                          JSHOP-2 + JENA + OWL-S
  n    explicar e implementar um processo completo de composição de serviços
        Web segundo a proposta da Web Semântica
  n    desenvolver uma interface entre o planejador e o motor de inferência,
        evitando-se alterar a implementação do planejador
  n    adotar uma nova maneira de representar pré-condições e efeitos em OWL-
        S
  n    disponibilizar a ferramenta de software WEBRplan, para ser usda em
        outros domínios de aplicação, diferentes do estudo de caso: WEBRplan
        ferramenta pode ser vista como um produto gerado pelo trabalho de
        mestrado
  n    construção incremental do estudo de caso como uma forma didática para
        a compreensão do uso de 3 tecnologias emergentes: (1) planejamento, (2)
        planejamento com ontologias e (3) planejamento com ontologias para
        serviço Web.

        Conclusões e contribuições
WEBRPlan:
demonstração

Mais conteúdo relacionado

PDF
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
PDF
Apple Watch - Digital Day da CI&T
PPT
Web Services - Grupo F
PPT
Web Services
PDF
Maratona JBoss 2010 - JBossWS
PDF
Mini Curso Web Services com PHP
DOCX
Web services
PDF
Introdução a Web Services
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Apple Watch - Digital Day da CI&T
Web Services - Grupo F
Web Services
Maratona JBoss 2010 - JBossWS
Mini Curso Web Services com PHP
Web services
Introdução a Web Services

Semelhante a Planejamento para Serviços Web Semânticos (20)

PDF
WebServices
PPTX
Sistemas Distribuídos - Aula 07 - Servicos Web
PPT
WebServices-XML
PDF
A Estrutura de um Web Service
PPTX
Web Services
PPTX
WCF Brasil - Introdução ao WCF
PDF
Web Services com Apache Axis
PDF
Soa Woa Rest
PDF
SmartTransport_ApresentacaoFinaL
PDF
Web services
PDF
compreensão geral para estruturar uma api
PDF
Web service
PDF
Projeto VI: Tecnologias Básicas da Web 2 0
PPT
Web Service - XML
PPTX
Introdução ao desenvolvimento da web.pptx
PDF
Webservices
PDF
FISL12. Web Services e Computação em Nuvem com PHP
PPS
Web Sphere Application Server
PPTX
Web services, aplicações, acesso a aplicações, XML, API
PDF
Webservices e Computação em Nuvem com PHP
WebServices
Sistemas Distribuídos - Aula 07 - Servicos Web
WebServices-XML
A Estrutura de um Web Service
Web Services
WCF Brasil - Introdução ao WCF
Web Services com Apache Axis
Soa Woa Rest
SmartTransport_ApresentacaoFinaL
Web services
compreensão geral para estruturar uma api
Web service
Projeto VI: Tecnologias Básicas da Web 2 0
Web Service - XML
Introdução ao desenvolvimento da web.pptx
Webservices
FISL12. Web Services e Computação em Nuvem com PHP
Web Sphere Application Server
Web services, aplicações, acesso a aplicações, XML, API
Webservices e Computação em Nuvem com PHP
Anúncio

Mais de Juliana Chahoud (12)

PDF
Usando React Native & Multi Módulos para Escalar App Creditas
PDF
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
PDF
Desenvolvimento de Apps Mobile - Tendências para 2018
PDF
Programação Reativa e Funcional e extensões para PHP
PDF
A SOLUÇÃO DO TWITTER PARA DESENVOLVIMENTO DE MELHORES APPS
PDF
Desenvolvimento para experiências em real time com foco na segunda tela
PDF
Usando o Twitter na Internet das Coisas - #WebBR2016
PDF
Microservices: Utilizando o Twitter como Plataforma
PDF
Integrações de APIs do Google no iOS (DevFest NE e SP)
PDF
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
PDF
MapKit na prática: Desenvolvendo um aplicativo iOS que exibe Pontos de Intere...
PDF
Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)
Usando React Native & Multi Módulos para Escalar App Creditas
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
Desenvolvimento de Apps Mobile - Tendências para 2018
Programação Reativa e Funcional e extensões para PHP
A SOLUÇÃO DO TWITTER PARA DESENVOLVIMENTO DE MELHORES APPS
Desenvolvimento para experiências em real time com foco na segunda tela
Usando o Twitter na Internet das Coisas - #WebBR2016
Microservices: Utilizando o Twitter como Plataforma
Integrações de APIs do Google no iOS (DevFest NE e SP)
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
MapKit na prática: Desenvolvendo um aplicativo iOS que exibe Pontos de Intere...
Swift, a nova linguagem de programação da Apple (CocoaHeads Sao Paulo)
Anúncio

Planejamento para Serviços Web Semânticos

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