SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Planejamento para Serviços Web Semânticos

Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebArthur Emanuel
 
WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFFabian Gehrke
 
Web Services com Apache Axis
Web Services com Apache AxisWeb Services com Apache Axis
Web Services com Apache AxisIgo Coelho
 
Projeto VI: Tecnologias Básicas da Web 2 0
Projeto VI: Tecnologias Básicas da Web 2 0Projeto VI: Tecnologias Básicas da Web 2 0
Projeto VI: Tecnologias Básicas da Web 2 0igorpsoares
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFlávio Lisboa
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application ServerFabricio Carvalho
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APINuno Pereira
 
Webservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPWebservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPFlávio Lisboa
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no androidAlexandre Antunes
 

Ähnlich wie Planejamento para Serviços Web Semânticos (20)

WebServices
WebServicesWebServices
WebServices
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
 
A Estrutura de um Web Service
A Estrutura de um Web ServiceA Estrutura de um Web Service
A Estrutura de um Web Service
 
Web Services
Web ServicesWeb Services
Web Services
 
WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCF
 
Web Services com Apache Axis
Web Services com Apache AxisWeb Services com Apache Axis
Web Services com Apache Axis
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
SmartTransport_ApresentacaoFinaL
SmartTransport_ApresentacaoFinaLSmartTransport_ApresentacaoFinaL
SmartTransport_ApresentacaoFinaL
 
Web services
Web servicesWeb services
Web services
 
Web service
Web serviceWeb service
Web service
 
Projeto VI: Tecnologias Básicas da Web 2 0
Projeto VI: Tecnologias Básicas da Web 2 0Projeto VI: Tecnologias Básicas da Web 2 0
Projeto VI: Tecnologias Básicas da Web 2 0
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Webservices
WebservicesWebservices
Webservices
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHP
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, API
 
Webservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPWebservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHP
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 

Mehr von Juliana Chahoud

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

Mehr von Juliana Chahoud (12)

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

Planejamento para Serviços Web Semânticos

  • 1. Planejamento para Serviços Web Semânticos Juliana Jabra Chahoud jchahoud@gmail.com Junho / 2006 Orientadora: Profa Leliane Nunes de Barros
  • 2. Conteúdo da apresentação n  Introdução n  Serviços Web n  Web Semântica n  OWL-S: ontologias para descrição de serviços Web n  Planejamento com ontologias n  A ferramenta WEBRPlan n  Um estudo de caso: planejamento de viagens n  Conclusões e contribuições n  WEBRPlan: Demonstração
  • 3. Motivação n  Serviços Web são componentes de software que podem ser acessados por outros softwares através da Web; n  Com o crescimento e proliferação dos serviços Web, torna-se cada vez mais difícil encontrar um serviço que possa executar uma tarefa desejada. n  Isto é ainda mais difícil quando não existe um serviço único, mas sim combinações de serviços que sejam capazes de executar tal tarefa n  Essa combinação de serviços para atingir uma necessidade é denominada composição de serviços e pode ser feita por um programador ou automaticamente. n  O objetivo desse trabalho é automatizar o processo de composição de serviços. Introdução
  • 4. Exemplo de composição de serviços Web 1 2 Preço de livros em reais Preço de livros em Conversão de dólares moedas Introdução
  • 5. Composição de serviços completamente automatizada n  A composição de serviços Web completamente automatizada pode ser caracterizada como um processo que envolve os três passos: 1)  Descoberta automática - localizar serviços candidatos para a composição 2)  Composição automática - determinar quais serviços devem ser executados e em que seqüência para atingir o objetivo 3)  Execução automática - invocação dos serviços Web Introdução
  • 6. O que é necessário para a automação n  Descrever serviços Web de modo que eles possam ser interpretáveis por máquinas è  Essa é a proposta da Web Semântica n  Determinar quais serviços executar e em que ordem: è  Problema tratado por técnicas de Planejamento em Inteligência Artificial Introdução
  • 7. Principais objetivos desse trabalho n  definir como a composição de serviços Web pode ser descrita como um problema de planejamento; n  determinar quais técnicas de planejamento em IA podem ser usadas para a composição de serviços Web, o que envolve identificar quais são as restrições do ambiente de planejamento; n  identificar uma maneira de descrever serviços Web como domínios de planejamento (i.e., em termos de ações, tarefas, pré- condições e efeitos) com base nos princípios da Web Semântica; n  implementar uma ferramenta de software para dar suporte durante todas as etapas envolvidas na composição automática de serviços Web – WEBRPlan (Planejamento para WEB do Brasil) n  implementar um conjunto de serviços Web que serão usados num estudo de caso Introdução
  • 8. Estudo de Caso: planejamento de uma viagem para Europa n  Um turista deseja visitar diversas cidades da Europa. Essa tarefa envolve: reservar hospedagens, comprar passagens aéreas ou de trem, alugar carro, comprar ingressos para pontos turísticos e criar uma agenda com seus compromissos de viagem. n  Restrições do problema: l  o cartão de crédito do turista possui um limite de saldo; l  acomodações possuem uma dada disponibilidade de vagas; l  de acordo com a distância entre as cidades existem diferentes tipos de transporte disponíveis; l  de acordo com o seu saldo, o turista pode pagar diferentes tipos de transporte e acomodação; l  de acordo com a previsão de tempo diferentes pontos turísticos podem ser visitados. n  Serviços Web criados: l  Hospedagem, Transportes, Ingressos, EuroInfo (informações sobre tempo e distância) e Agenda. Introdução
  • 9. Conhecimento prévio sobre o domínio de viagens n  Meios de transporte: trem, carro ou avião n  Meios de transporte possuem as propriedades: custo e disponibilidade. O custo de trem e de avião corresponde ao preço das passagens e o custo de carro ao seu aluguel. n  Tipos de passagens: passagem aérea ou passagem de trem. Passagens possuem as seguintes propriedades: passageiro, origem, destino, data e custo. n  Localizações: cidades, aeroportos, países, acomodações e pontos turísticos. Uma localização pode estar localizada em outras localizações. n  Acomodações: hotéis, pousadas e albergues. Acomodações possuem as seguintes propriedades: número de vagas, custo (diária) e localização. n  Pontos turísticos podem ser classificados em pontos turísticos de inverno ou de verão. n  Pessoas: turistas e passageiros. Pessoas possuem cartão de crédito que por sua vez possui um saldo. Turistas, possuem agendas com datas e descrições de seus compromissos. n  Um turista possui os seguintes compromissos: embarcar, desembarcar, retirar carro, devolver carro, visitar pontos turísticos, check-in e check-out em uma acomodação. n  Pessoas e meios de transporte mudam de localização. Introdução
  • 11. O que são serviços Web? n  São componentes de software que: l  disponibilizam uma interface (WSDL) que descreve uma coleção de operações acessíveis pela rede através de mensagens (SOAP), em formato XML l  são independentes de linguagens e de plataformas (padrões propostos pela W3C: WSDL, SOAP, XML, HTTP) Serviços Web
  • 12. Como usar um serviço Web? 1 Publica a URL e descrição do serviço Web 2 Descobre o serviço Web UDDI 3 Lê a descrição WSDL 5 Cria um proxy para o serviço Web 2 1 6 Invoca o serviço Web através do Cliente Proxy 3 .wsdl 5 6 Proxy Serviço Web Serviços Web
  • 13. WSDL: exemplo do serviço para compra de ingressos Onde o serviço está Como as mensagens Operações que serão Mensagens que serão localizado serão transmitidas: permitidas: transmitidas: especificação do SOAP comprarIngresso comprarIngressoRequest comprarIngressoResponse Serviços Web
  • 14. Principais utilizações dos serviços Web n  Integração entre empresas (B2B) n  Integração entre empresas e consumidores (B2C) n  Integração de aplicações corporativas n  Dispositivos móveis n  Distribuído / Peer-to-Peer Serviços Web
  • 16. Serviços Web Semânticos n  A linguagem WSDL descreve a interface de serviços Web de modo que serviços possam ser acessados independentemente de linguagem e plataforma. n  Porém, para fazer a composição automática, bem como a descoberta, é necessária uma descrição de serviços Web segundo a proposta da Web Semântica: l  conteúdo Web descrito em uma linguagem formal, interpretável por máquina, que permita fazer inferências lógicas Web Semântica
  • 17. O que é Web Semântica? n  A Web Semântica surge como uma evolução da Web atual, com a principal preocupação em representar informações na Web de maneira que as máquinas possam interpretá-las n  Tecnologias necessárias para sua implementação: l  uma maneira de disponibilizar definições de termos e relações entre eles (ontologias) l  uma linguagem que permita adicionar semântica aos documentos da Web (instâncias das ontologias) ontologias + instâncias = base de conhecimento Web Semântica
  • 18. O que é ontologia? n  Uma especificação formal (baseada em lógica) de conceitos de um domínio e da relação que existe entre eles. n  Ontologias servem para: l  compartilhar uma interpretação da estrutura de informação entre pessoas ou agentes computacionais l  permitir a reutilização de uma especificação (modelo) de um domínio do conhecimento l  fazer inferências lógicas a respeito de um domínio n  OWL é a linguagem adotada como padrão pelo W3C para descrição de ontologias Web Semântica
  • 19. OWL: características básicas n  Classe é uma coleção de propriedades que descrevem um grupo de indivíduos (owl:Class) n  Propriedades são usadas para criar relações (owl:ObjectProperty e owl:DatatypeProperty) n  OWL fornece características de propriedades, restrições de tipo (owl:Restriction) e de cardinalidade (owl:Cardinality) n  Permite construções de classes complexas (intersectionOf, unionOf e complementOf) Web Semântica
  • 20. Ferramentas para ontologias n  Ferramentas para edição de ontologias (Protégé, Oiled, OWL-editor, etc) n  Ferramentas para construção de aplicações: para consultas em ontologias e mecanismos de inferências (Jena, Racer, Pellet, etc) Web Semântica
  • 21. JENA n  Framework em JAVA para construção de aplicações para Web Semântica, fornecendo um ambiente de programação para as linguagens RDF, RDFS e OWL. Suas principais funcionalidades são: l  APIs para RDF e para ontologias, incluindo leitura e escrita nos documentos l  Armazenamento das informações em memória ou persistência em banco de dados l  Linguagens para consulta em ontologias (ARQ, que implementa SPARQL) l  Motores de inferência (RDFS, OWL, regras) Web Semântica
  • 22. Ontologias usadas nesse trabalho n  Esse trabalho, além de usar ontologias que descrevem serviços Web (mostradas a seguir), são usadas também ontologias específicas do domínio de aplicação. n  Por exemplo, para o Estudo de Caso sobre viagens para Europa, foi construída a ontologia Euro.owl (Protégé). Web Semântica
  • 24. OWL-S: OWL-based Web Service ontology n  Conjunto de ontologias para descrever serviços Web através da linguagem OWL que facilitam a construção de processos automáticos para Web n  OWL-S é estruturada em quatro ontologias: l  Service.owl, l  Profile.owl, l  Process.owl e l  Grounding.owl ontologias OWL-S + serviços Web = base de conhecimento OWL-S
  • 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