• Nenhum resultado encontrado

Certificação de composições de serviços web semânticos

N/A
N/A
Protected

Academic year: 2017

Share "Certificação de composições de serviços web semânticos"

Copied!
151
0
0

Texto

(1)

Centro de Ciˆ

encias Exatas e da Terra

Departamento de Inform´

atica e Matem´

atica Aplicada

Programa de P´

os-gradua¸c˜

ao em Sistemas e Computa¸c˜

ao

Evando Carlos Pessini

Certifica¸c˜

ao de Composi¸c˜

oes de Servi¸cos Web

Semˆ

anticos

(2)

Certifica¸c˜

ao de Composi¸c˜

oes de Servi¸cos Web

Semˆ

anticos

Tese submetida ao Programa de P´os-gradua¸c˜ao em Sistemas e Computa¸c˜ao do Departamento de In-form´atica e Matem´atica Aplicada do Centro de Ciˆencias Exatas e da Terra da Universidade Federal do Rio Grande do Norte como parte dos requisitos para a obten¸c˜ao do t´ıtulo de Doutor em Ciˆencia da Computa¸c˜ao.

Orientador:

Prof. Martin A. Musicante(UFRN-Brasil)

Coorientadora:Prof

a

. Regina Motz

(UdelaR-Uruguai)

Coorientador:Prof. Alberto Pardo(UdelaR-Uruguai)

(3)

Catalogação da Publicação na Fonte. UFRN / SISBI / Biblioteca Setorial Centro de Ciências Exatas e da Terra – CCET.

Pessini, Evando Carlos.

Certificação de composições de servicos web semânticos / Evando Carlos Pessini. - Natal, 2014.

138 f. : il.

Orientador: Prof. Martin Alejandro Musicante. Coorientadora: Profa. Regina Motz

Coorientador: Prof. Alberto Pardo

Tese (Doutorado) – Universidade Federal do Rio Grande do Norte. Centro de Ciências Exatas e da Terra. Programa de Pós-Graduação em Ciência da Computação.

1. Linguagens de programação – Tese. 2. Métodos formais – Tese. 3. Serviços web semânticos – Tese. 4. Composição de serviços web – Tese. 5.Correção parcial

– Tese. 6. Lógica descritiva – Tese. 7. Lógica de Hoare – Tese. I. Musicante, Martin Alejandro. II. Motz, Regina. III. Pardo, Alberto. IV. Título.

(4)

ao meu querido filho, Pietro.

(5)

Primeiramente, agrade¸co `a Deus pelas ben¸c˜aos a mim concedidas durante minha vida, sendo uma delas a conclus˜ao deste doutorado.

Agrade¸co `a minha esposa Marcia por sua confian¸ca e apoio, especialmente nos momentos mais dif´ıceis desta caminhada. Agrade¸co ao meu filho Pietro, pela paciˆencia e compreens˜ao nos in´umeros momentos em que estive ausente, e muitas vezes quando presente, n˜ao podia dedicar meu tempo `a ele.

Agrade¸co ao meu orientador, Prof. Martin A. Musicante, pela oportunidade de ingressar no programa de doutorado e pelo apoio e orienta¸c˜ao durante este per´ıodo. Agrade¸co pelas in´umeras contribui¸c˜oes para o desenvolvimento desta tese, seja na forma de revis˜ao cr´ıtica do texto assim como nas discuss˜oes sobre os aspectos t´ecnicos do seu desenvolvimento.

Agrade¸co aos meus coorientadores, Profa. Regina Motz e Prof. Alberto Pardo, pela afe-tuosa recep¸c˜ao no per´ıodo do est´agio do doutorado-sandu´ıche em Montevid´eu. Agrade¸co pelas orienta¸c˜oes e contribui¸c˜oes que foram fundamentais para o desenvolvimento da pre-sente tese.

Agrade¸co aos membros da banca de defesa, Profa. Mirian Halfeld Ferrari, Profa. Cl´audia Ribeiro e Prof. Umberto Souza da Costa, pela revis˜ao cr´ıtica do texto da tese e pelas contribui¸c˜oes para a melhoria do trabalho.

Agrade¸co aos professores do PPgSC pelos conhecimentos transmitidos durante o per´ıodo do cumprimento dos cr´editos do doutorado.

Agrade¸co `a CAPES pelo apoio financeiro durante o est´agio de doutorado-sandu´ıche rea-lizado na Universidad de la Republica (UdelaR) em Montevid´eo/Uruguai.

(6)

Esta tese apresenta um m´etodo de certifica¸c˜ao de composi¸c˜oes de servi¸cos web semˆanticos, o qual visa assegurar estaticamente sua corre¸c˜ao funcional. O m´etodo de certifica¸c˜ao consiste em duas dimens˜oes de verifica¸c˜ao, denominadas base e funcional. A dimens˜ao

base ´e centrada na verifica¸c˜ao da correta aplica¸c˜ao dos servi¸cos web semˆanticos na com-posi¸c˜ao, i.e., visa certificar que as invoca¸c˜oes de servi¸co especificadas na composi¸c˜ao est˜ao em conformidade com as respectivas defini¸c˜oes dos servi¸cos. A certifica¸c˜ao desta di-mens˜ao explora a compatibilidade semˆantica entre os argumentos dados na invoca¸c˜ao e os parˆametros formais do servi¸co web semˆantico. A dimens˜aofuncional visa certificar que a composi¸c˜ao cumpre uma dada especifica¸c˜ao expressa na forma de pr´e- e p´os-condi¸c˜oes. Esta dimens˜ao ´e formalizada atrav´es de um c´alculo baseado na l´ogica de Hoare. Especi-fica¸c˜oes de corre¸c˜ao parciais envolvendo composi¸c˜oes de servi¸cos web semˆanticos podem ser derivadas a partir do sistema dedutivo proposto. Este trabalho caracteriza-se tamb´em por explorar o emprego de um fragmento da l´ogica descritiva, i.e., ALC, para expres-sar as especifica¸c˜oes de corre¸c˜ao parciais. Como forma de operacionalizar o m´etodo de certifica¸c˜ao, foi desenvolvido um ambiente de suporte para a defini¸c˜ao das composi¸c˜oes de servi¸cos web semˆanticos, assim como os mecanismos necess´arios para realizar a cer-tifica¸c˜ao. O m´etodo de certifica¸c˜ao foi avaliado experimentalmente atrav´es da aplica¸c˜ao em trˆes provas de conceito diferentes. As provas de conceito desenvolvidas possibilitaram avaliar de forma ampla o m´etodo de certifica¸c˜ao proposto.

´

Area de concentra¸c˜ao: Linguagens de Programa¸c˜ao e M´etodos Formais

(7)

This thesis presents a certification method for semantic web services compositions which aims to statically ensure its functional correctness. Certification method encompasses two dimensions of verification, termed base and functional dimensions. Base dimension concerns with the verification of application correctness of the semantic web service in the composition, i.e., to ensure that each service invocation given in the composition comply with its respective service definition. The certification of this dimension exploits the semantic compatibility between the invocation arguments and formal parameters of the semantic web service. Functional dimension aims to ensure that the composition satisfies a given specification expressed in the form of preconditions and postconditions. This dimension is formalized by a Hoare logic based calculus. Partial correctness specifications involving compositions of semantic web services can be derived from the deductive system proposed. Our work is also characterized by exploiting the use of a fragment of description logic, i.e.,ALC, to express the partial correctness specifications. In order to operationalize the proposed certification method, we developed a supporting environment for defining the semantic web services compositions as well as to conduct the certification process. The certification method were experimentally evaluated by applying it in three different proof concepts. These proof concepts enabled to broadly evaluate the method certification.

Area of concentration: Programming Languages and Formal Methods

(8)

Lista de Figuras p. x

Lista de Tabelas p. xii

1 Introdu¸c˜ao p. 1

1.1 Motiva¸c˜ao e Formula¸c˜ao do Problema . . . p. 2

1.2 Objetivos e Principais Resultados . . . p. 4

1.2.1 Hip´oteses . . . p. 4

1.2.2 Objetivos . . . p. 4

1.2.3 Contribui¸c˜oes . . . p. 5

1.3 Organiza¸c˜ao da Tese . . . p. 5

2 Estado da Arte p. 7

2.1 Fundamenta¸c˜ao Te´orica e Trabalhos Relacionados . . . p. 8

2.1.1 Representa¸c˜ao de Conhecimento . . . p. 8

2.1.1.1 L´ogica Descritiva . . . p. 9

2.1.1.2 Atualiza¸c˜ao de Base de Conhecimento . . . p. 17

2.1.2 Verifica¸c˜ao Formal de Programas . . . p. 24

2.1.2.1 L´ogica de Hoare . . . p. 25

2.2 Verifica¸c˜ao de Composi¸c˜oes de Servi¸cos Web . . . p. 26

2.2.1 Abordagens baseadas em Prova de Teorema . . . p. 27

2.2.2 Abordagens baseadas em Model Checking . . . p. 29

(9)

3.1 Preliminares . . . p. 33

3.1.1 Servi¸cos Web Semˆanticos . . . p. 33

3.1.2 Atualiza¸c˜ao do ABox . . . p. 36

3.1.3 Linguagem de Composi¸c˜ao de Servi¸cos . . . p. 37

3.1.3.1 Sintaxe . . . p. 38

3.1.3.2 Semˆantica . . . p. 41

3.2 M´etodo de Certifica¸c˜ao . . . p. 43

3.2.1 Running Example . . . p. 44

3.2.2 Dimens˜ao Base . . . p. 51

3.2.3 Dimens˜ao Funcional . . . p. 54

3.2.3.1 Regra de Invocac˜ao de Servi¸co . . . p. 57

3.2.3.2 Regra do Consequente . . . p. 61

3.2.3.3 Regra de Sequˆencia . . . p. 63

3.2.3.4 Regra do Condicional . . . p. 65

3.2.3.5 Regra de Itera¸c˜ao . . . p. 68

3.2.3.6 Regra do Paralelismo . . . p. 71

3.3 Conclus˜oes . . . p. 74

4 Ambiente de Certifica¸c˜ao p. 75

4.1 Arquitetura do Ambiente de Certifica¸c˜ao . . . p. 76

4.1.1 M´odulo Parser . . . p. 77

4.1.2 M´odulo KnowledgeBase . . . p. 77

4.1.3 M´odulo Certifier . . . p. 78

4.1.3.1 Atividade “Certify Workflow”. . . p. 82

4.2 Certificando Workflows . . . p. 93

4.3 Considera¸c˜oes . . . p. 96

(10)

5.1 Cen´ario 1 - Aprova¸c˜ao de Empr´estimo . . . p. 99

5.2 Cen´ario 2 - Processamento de Ordem de Compra . . . p. 108

5.3 Cen´ario 3 - Reembolso de Despesas de Viagem . . . p. 120

5.4 Considera¸c˜oes . . . p. 128

6 Conclus˜oes p. 130

6.1 Contribui¸c˜oes . . . p. 131

6.2 Trabalhos Futuros . . . p. 132

Referˆencias p. 133

(11)

1 Atualiza¸c˜ao de conceitos no fragmento ALCO [1]. . . p. 20

2 Gram´atica das se¸c˜oes de declara¸c˜ao da linguagem de composi¸c˜ao. . . . p. 39

3 Construtores de Workflow e de Asser¸c˜oes . . . p. 41

4 Semˆantica Natural da Linguagem de Workflow. . . p. 42

5 Se¸c˜ao de defini¸c˜ao do workflow para o exemplo de com´ercio eletrˆonico. . p. 46

6 Componente terminol´ogico (TBox) da base de conhecimento K@. . . p. 47

7 Relacionamentos hier´arquicos inferidos a partir da terminologia da base

de conhecimento K@. . . p. 48

8 Servi¸cos web semˆanticos do exemplo de com´ercio eletrˆonico. . . p. 50

9 Workflow com as se¸c˜oes de declara¸c˜ao para verifica¸c˜ao da dimens˜ao base. p. 53

10 C´alculo de Hoare para a linguagem de workflow. . . p. 56

11 Exemplo de uma especifica¸c˜ao v´alida com invoca¸c˜ao de servi¸co com

efei-tos condicionais. . . p. 58

12 Exemplo de especifica¸c˜ao inv´alida com invoca¸c˜ao de servi¸co. . . p. 59

13 Exemplo de instancia¸c˜ao da regra de invoca¸c˜ao para um servi¸co com

m´ultiplos efeitos condicionais. . . p. 60

14 Exemplo de deriva¸c˜ao da prova para invoca¸c˜ao de servi¸co. . . p. 60

15 Exemplo de deriva¸c˜ao da prova para um workflow sequencial. . . p. 60

16 Especifica¸c˜ao de corre¸c˜ao parcial com sequˆencia de servi¸cos. . . p. 63

17 Especifica¸c˜ao de corre¸c˜ao parcial com construtor condicional. . . p. 65

18 Exemplo de deriva¸c˜ao da prova para o construtor condicional. . . p. 67

(12)

21 Especifica¸c˜ao contendo um workflow paralelo. . . p. 71

22 Exemplo de deriva¸c˜ao de uma especifica¸c˜ao de corre¸c˜ao parcial com

work-flows compostos em paralelo. . . p. 73

23 Arquitetura do Ambiente de Certifica¸c˜ao. . . p. 76

24 Diagrama de Atividades do Processo de Certifica¸c˜ao. . . p. 79

25 Constru¸c˜ao de um novo workflow. . . p. 94

26 Editor como plugin do Eclipse. . . p. 95

27 Certifica¸c˜ao da composi¸c˜ao. . . p. 96

28 Resultado da certifica¸c˜ao de um workflow v´alido. . . p. 97

29 Resultado da certifica¸c˜ao de um workflow n˜ao v´alido. . . p. 98

30 Workflow para aprova¸c˜ao de solicita¸c˜ao de empr´estimo. . . p. 102

31 Deriva¸c˜ao de especifica¸c˜ao do estudo de caso de aprova¸c˜ao de empr´estimo.p. 104

32 Deriva¸c˜ao de especifica¸c˜ao do estudo de caso de aprova¸c˜ao de empr´estimo

(continua¸c˜ao). . . p. 105

33 Workflow de processamento de ordem de compra [2]. . . p. 109

34 Workflow para processamento de ordem de compra. . . p. 113

35 Deriva¸c˜ao de especifica¸c˜ao do cen´ario de processamento de ordem de

compra (sub-workflows W1 e W2). . . p. 114

36 Continua¸c˜ao da deriva¸c˜ao - sub-workflows W3 eW4. . . p. 115

37 Componente terminol´ogico (TBox) da base de conhecimento Ktravel. . . p. 121

38 Servi¸cos web semˆanticos do exemplo de reembolso de viagem. . . p. 122

39 Workflow para reembolso de despesas de viagem. . . p. 123

40 Deriva¸c˜ao de especifica¸c˜ao do cen´ario de reembolso de despesas de viagem.p. 124

41 Deriva¸c˜ao de especifica¸c˜ao do cen´ario de reembolso de despesas de viagem

(cont.). . . p. 125

(13)
(14)

1

Introdu¸

ao

A Computa¸c˜ao Orientada a Servi¸cos ´e um paradigma de computac˜ao que emprega a noc˜ao de servi¸co como elemento central para o desenvolvimento de aplicac˜oes [3]. Nesta vis˜ao, os servi¸cos s˜ao componentes de software autˆonomos, auto-descritos e independentes de plataforma que disponibilizam funcionalidades atrav´es de uma interface padronizada e automaticamente process´avel [4]. Entretanto, em muitos cen´arios de neg´ocios, a funcio-nalidade fornecida individualmente pelos servi¸cos n˜ao ´e suficiente para atender as tarefas mais complexas, sendo necess´ario a combina¸c˜ao de diversos servi¸cos para prover a funcio-nalidade requisitada. Esta combina¸c˜ao de servi¸cos fez surgir uma perspectiva interessante para o desenvolvimento de aplica¸c˜oes, onde novos servi¸cos (denominados servi¸cos com-postos) s˜ao criados a partir dos servi¸cos pr´e-existentes. Esta perspectiva, denominada de

composi¸c˜ao de servi¸cos, tem um papel fundamental no paradigma da computa¸c˜ao orien-tada a servi¸cos, pois permite que novas funcionalidades sejam disponibilizadas a partir da composi¸c˜ao de servi¸cos existentes, promovendo assim a id´eia do reuso de software [5] e evitando que aplica¸c˜oes sejam constru´ıdas a partir do zero.

Os servi¸cos web s˜ao uma das implementa¸c˜oes usadas para a concretiza¸c˜ao da vis˜ao conceitual dada pela computa¸c˜ao orientada a servi¸cos. A tecnologia de servi¸cos web define linguagens e protocolos para a descri¸c˜ao (WSDL [6]), publica¸c˜ao (UDDI [7]) e invoca¸c˜ao (SOAP [8]) de servi¸cos web. Servi¸cos web tem sido usados como building blocks para a defini¸c˜ao de processos de neg´ocios expressando intera¸c˜oes complexas entre servi¸cos. O as-pecto dinˆamico requerido para expressar intera¸c˜oes complexas ´e capturado por linguagens de composi¸c˜ao que, em geral, estendem a linguagem de descri¸c˜ao de interface WSDL, tais como, BPEL [9], PEWS [10] e WS-CDL [11].

(15)

proto-colos de comunica¸c˜ao suportados pelo servi¸co. Este conjunto de elementos fornece uma descri¸c˜ao sint´atica da funcionalidade provida pelo servi¸co. Esta descri¸c˜ao sint´atica (pa-dronizada) dos servi¸cos web permite automatizar algumas tarefas envolvendo o uso de servi¸cos web, como por exemplo, a gera¸c˜ao de artefatos (stubs) para facilitar a invoca¸c˜ao de servi¸cos web.

Entretanto, considerando as tarefas relacionadas ao ciclo de vida de uso dos servi¸cos web, i.e., publica¸c˜ao, localiza¸c˜ao, sele¸c˜ao e execu¸c˜ao, as descri¸c˜oes (sint´aticas) forneci-das pela linguagem WSDL n˜ao s˜ao suficientes para permitir um n´ıvel satisfat´orio de automa¸c˜ao destas tarefas. Esta automa¸c˜ao ´e fundamental em cen´arios dinˆamicos, onde servi¸cos podem tornar-se indispon´ıveis (ou n˜ao satisfazer requisitos de QoS) e devem ser substitu´ıdos por outro funcionalmente similar. Neste caso, a substitui¸c˜ao do servi¸co deve ser feita manualmente pelo projetista, uma vez que n˜ao h´a elementos na descri¸c˜ao dos servi¸cos que permitam determinar sua funcionalidade com precis˜ao. Esta ausˆencia de semˆantica formal dificulta o processamento autom´atico destes servi¸cos, necess´arios nas tarefas do ciclo de vida de uso dos servi¸cos. Por exemplo, servi¸cos com diferentes com-portamentos possuindo a mesma interface (descri¸c˜ao WSDL) n˜ao podem ser precisa e automaticamente diferenciados, dificultando assim a automa¸c˜ao de tais tarefas.

As tecnologias de servi¸cos web semˆanticos surgiram da necessidade de melhorar a au-toma¸c˜ao e a precis˜ao das tarefas envolvidas no ciclo de vida (de uso) dos servi¸cos web. Sua concep¸c˜ao ´e fundamentada nas tecnologias de servi¸cos web e da web semˆantica [12]. Dentre as principais especifica¸c˜oes propostas para expressar servi¸cos web semˆanticos, destaca-se as ontologias de servi¸cos OWL-S [13], WSMO [14] e WSDL-S [15]. A semˆantica formal provida pelas linguagens empregadas para descrever os servi¸cos web semˆanticos pode ser explorada para automatizar tarefas como a descoberta, sele¸c˜ao e composi¸c˜ao de servi¸cos web.

1.1

Motiva¸c˜

ao e Formula¸c˜

ao do Problema

(16)

Por outro lado, a defini¸c˜ao de processos de neg´ocios baseados em descri¸c˜oes abstratas de tarefas (i.e., tarefas anotadas com informa¸c˜oes semˆanticas) provˆe uma perspectiva interessante para definir novas aplica¸c˜oes que possibilitam um n´ıvel maior de dinamismo em sua execu¸c˜ao. O dinamismo mencionado aqui refere-se, por exemplo, `a possibilidade de substitui¸c˜ao de servi¸cos web que apresentem alguma falha por outros servi¸cos com funcionalidade similar, sem a necessidade de interven¸c˜ao (manual) do projetista e/ou interrup¸c˜ao da execu¸c˜ao do processo de neg´ocio.

Independentemente do n´ıvel de automa¸c˜ao assegurado pelos processos de neg´ocios abstratos, ´e importante garantir que o processo possua determinadas propriedades dese-jadas. Estas propriedades referem-se, por exemplo, `a propriedades gen´ericas do modelo do processo como deadlock-free, reachability, etc. Al´em destas, propriedades expressando aspectos n˜ao-funcionais do modelo do processo tamb´em s˜ao requeridas em muitos con-textos de aplica¸c˜ao. Por outro lado, as propriedades expressando o aspecto funcional do processo de neg´ocio constituem um requisito fundamental em todos os contextos de aplica¸c˜ao, pois garantem que o processo de neg´ocio ´e correto em sua funcionalidade, i.e., que o processo produz os resultados esperados a partir das informa¸c˜oes fornecidas como entrada.

Dessa forma, garantir a corre¸c˜ao funcional ´e o primeiro passo para melhorar o n´ıvel de confiabilidade dos processos de neg´ocios. O problema da verifica¸c˜ao da propriedade funcional da composi¸c˜ao pode ser definido como: ”dada uma composi¸c˜ao de servi¸cos web semˆanticos, definidos com base em uma descri¸c˜ao funcional na forma de pr´e-condi¸c˜oes e efeitos condicionais, e dada uma especifica¸c˜ao expressa na forma de pr´e- e p´os-condi¸c˜oes, verificar estaticamente se a combina¸c˜ao dos servi¸cos expressos pela composi¸c˜ao produz

os resultados descritos pela referida especifica¸c˜ao”.

(17)

1.2

Objetivos e Principais Resultados

O objetivo principal desta tese ´e prover um m´etodo para certifica¸c˜ao de composi¸c˜oes de servi¸cos web semˆanticos. A certifica¸c˜ao diz respeito `a verifica¸c˜ao formal de que a composi¸c˜ao de servi¸cos web semˆanticos cumpre uma especifica¸c˜ao dada na forma de pr´e-e p´os-condi¸c˜opr´e-es.

1.2.1

Hip´

oteses

Para a defini¸c˜ao do m´etodo de certifica¸c˜ao de composi¸c˜oes de sevi¸cos web semˆanticos, adotamos as seguintes hip´oteses:

1. A corre¸c˜ao parcial da composi¸c˜ao pode ser determinada a partir das propriedades (pr´e- e p´os-condi¸c˜oes) dos seus elementos base (i.e., as invoca¸c˜oes de servi¸cos web semˆanticos) e considerando a estrutura do workflow.

2. Para certificar as composi¸c˜oes de servi¸cos web semˆanticos, ´e suficiente considerar a descri¸c˜ao funcional dos servi¸cos, ignorando sua l´ogica interna.

3. A verificac˜ao da corre¸c˜ao de workflows abstratos (onde as tarefas s˜ao descritas por servi¸cos web semˆanticos) pode ser tratada a partir de uma abordagem axiom´atica.

4. Fragmentos da l´ogica descritiva podem ser empregados como linguagem de asser¸c˜oes para expressar as especifica¸c˜oes de corre¸c˜ao parciais.

5. ´E vi´avel representar os estados do mundo atrav´es de bases de conhecimento cujo formalismo subjacente emprega um mecanismo de racioc´ınio baseado na suposi¸c˜ao de mundo aberto.

1.2.2

Objetivos

(18)

O trabalho objetiva tamb´em o desenvolvimento de um ambiente de suporte para a operacionaliza¸c˜ao do m´etodo de certifica¸c˜ao proposto, permitindo que o projetista defina o modelo do workflow (al´em das declara¸c˜oes do vocabul´ario empregado na defini¸c˜ao do modelo) e ent˜ao certifique que modelo do workflow implementado cumpre uma dada especifica¸c˜ao.

1.2.3

Contribui¸c˜

oes

Como principais contribui¸c˜oes da tese, podemos destacar:

• Corre¸c˜ao parcial de composi¸c˜oes de servi¸cos web semˆanticos. A defini¸c˜ao de um m´etodo de certifica¸c˜ao de composi¸c˜oes cujos elementos base s˜ao descritos em um n´ıvel semˆantico. A defini¸c˜ao de composi¸c˜oes em um n´ıvel mais abstrato permite maior flexibilidade, i.e., as invoca¸c˜oes de servi¸cos podem ser realizadas com base em informa¸c˜oes semanticamente compat´ıveis, n˜ao necessariamente de tipos idˆenticos.

• Abordagem axiom´atica para verifica¸c˜ao de composi¸c˜ao expressadas em um n´ıvel semˆantico. A defini¸c˜ao de um c´alculo de programa baseado na l´ogica de Hoare para derivar especifica¸c˜oes de corre¸c˜ao parciais envolvendo workflows de-finidos em um n´ıvel semˆantico.

• L´ogica Descritiva como linguagem de asser¸c˜oes. O emprego do fragmento

ALC da l´ogica descritiva como linguagem de asser¸c˜oes para expressar as especi-fica¸c˜oes de corre¸c˜ao parciais.

• Ambiente operacional. O desenvolvimento de um ambiente de suporte, na forma de um plugin do Eclipse, para a operacionaliza¸c˜ao do m´etodo de certifica¸c˜ao. O ambiente provˆe as funcionalidades requeridas para a defini¸c˜ao do modelo do workflow e sua respectiva certifica¸c˜ao.

• Valida¸c˜ao do m´etodo de certifica¸c˜ao na forma de provas de conceito. O m´etodo de certifica¸c˜ao foi validado com base em provas de conceito englobando trˆes cen´arios distintos, os quais s˜ao caracterizados por empregar diferentes construtores de fluxo de controle para expressar as composi¸c˜oes de servi¸cos web semˆanticos.

1.3

Organiza¸c˜

ao da Tese

(19)

• O cap´ıtulo 2 aborda as bases te´oricas que fundamentam o desenvolvimento do tema de pesquisa abordado na tese, em especial, i) os aspectos relativos `a representa¸c˜ao de conhecimento e ii) os aspectos relativos `a verifica¸c˜ao formal de programas. Na sequˆencia, o cap´ıtulo apresenta um relato do estado da arte no tema da verifica¸c˜ao de composi¸c˜oes de servi¸cos web.

• O cap´ıtulo 3 ´e destinado `a formaliza¸c˜ao do m´etodo de certifica¸c˜ao de composi¸c˜oes de servi¸cos web semˆanticos definido nesta tese. S˜ao apresentadas inicialmente algumas defini¸c˜oes servindo de base para a concep¸c˜ao do m´etodo de certifica¸c˜ao. Em seguida, ´e apresentada a formaliza¸c˜ao do m´etodo de certifica¸c˜ao, a partir da defini¸c˜ao de duas dimens˜oes: dimens˜ao base e dimens˜ao funcional. Os elementos de cada dimens˜ao s˜ao formalizados e exemplificados atrav´es de sua aplica¸c˜ao em um running example

no contexto de com´ercio eletrˆonico.

• O cap´ıtulo 4 descreve o ambiente proposto para operacionalizar o m´etodo de certi-fica¸c˜ao de composi¸c˜oes de servi¸cos web semˆanticos. O cap´ıtulo descreve a arquite-tura do ambiente, detalhando cada um dos m´odulos e ilustrando como o mesmo ´e usado para desenvolver e certificar as composi¸c˜oes.

• O cap´ıtulo 5 descreve a avalia¸c˜ao do m´etodo de certifica¸c˜ao na forma de provas de conceito. S˜ao descritos trˆes cen´arios com diferentes requisitos visando explorar de forma ampla os elementos de cada dimens˜ao do m´etodo de certifica¸c˜ao.

(20)

2

Estado da Arte

A corre¸c˜ao ´e um aspecto fundamental dos sistemas computacionais [16, 17, 18, 19, 20]. Particularmente, em sistemas de software, a corre¸c˜ao refere-se `a verifica¸c˜ao de que o al-goritmo ´e correto com rela¸c˜ao a uma especifica¸c˜ao. Esta no¸c˜ao de corre¸c˜ao ´e denominada de corre¸c˜ao funcional [21, 22], pois diz respeito ao comportamento do algoritmo consi-derando suas entradas e sa´ıdas. Em outras palavras, refere-se `a verifica¸c˜ao de que para cada entrada fornecida ao algoritmo, uma sa´ıda correta ´e produzida.

Historicamente, a verifica¸c˜ao da corre¸c˜ao de algoritmos tem sido abordada com base em duas estrat´egias distintas. A primeira delas ´e denominada an´alise experimental [23] (ou teste dinˆamico). Esta estrat´egia visa testar o algoritmo com diferentes conjuntos de dados de entrada e verificar se a sa´ıda produzida pelo algoritmo ´e correta (em rela¸c˜ao a sa´ıda esperada para aquele conjunto de dados de entrada). A vantagem desta estrat´egia ´e sua simplicidade, a qual requer a elabora¸c˜ao de casos de testes visando cobrir as situa¸c˜oes desejadas. A desvantagem ´e que a detec¸c˜ao de erros do algoritmo depende da qualidade dos casos de testes executados. Em geral, os casos de testes n˜ao conseguem cobrir todas as poss´ıveis instˆancias de dados de entrada. Outro aspecto importante da an´alise experi-mental, ´e que os casos de testes permitem encontrar erros no algoritmo, por´em, n˜ao s˜ao suficientes para garantir a ausˆencia de erros no algoritmo.

Por outro lado, a an´alise formal tem como objetivo provar que o algoritmo funciona para qualquer instˆancia de dados de entrada. A an´aliseformal [24] ´e baseada no emprego de formalismos l´ogicos para provar que o algoritmo cumpre uma dada especifica¸c˜ao. A vantagem desta estrat´egia ´e a possibilidade de aplicar um m´etodo de prova para garantir a corre¸c˜ao do algoritmo, independente do conjunto de instˆancias de dados de entrada. Sua desvantagem diz respeito `a dificuldade de encontrar uma prova no caso de algoritmos complexos.

(21)

e verifica¸c˜ao formal de programas. A se¸c˜ao 2.2 apresenta uma descri¸c˜ao das principais abordagens relacionadas `a verifica¸c˜ao de programas, com especial ˆenfase na verifica¸c˜ao de composi¸c˜oes de servi¸cos. A se¸c˜ao 2.3 conclui o cap´ıtulo com a discuss˜ao dos conceitos e abordagens apresentadas.

2.1

Fundamenta¸c˜

ao Te´

orica e Trabalhos

Relaciona-dos

A fundamenta¸c˜ao te´orica desta tese consiste nos trabalhos desenvolvidos nas ´areas de i) representa¸c˜ao de conhecimento, ii) l´ogica de programa e iii) verifica¸c˜ao formal de programas. Nesta se¸c˜ao s˜ao descritos algoritmos, modelos, t´ecnicas e abordagens servindo como embasamento para o desenvolvimento do m´etodo de certifica¸c˜ao proposto nesta tese.

2.1.1

Representa¸c˜

ao de Conhecimento

A representa¸c˜ao de conhecimento ´e uma sub-´area de pesquisa da Inteligˆencia Artifi-cial [25, 26]. Sua aplica¸c˜ao tem sido voltada para o projeto de sistemas computacionais que representam as informa¸c˜oes de um determinado dom´ınio em um formato que permita seu processamento autom´atico por um agente inteligente. Sistemas desta natureza, denomina-dos sistemas baseados em conhecimento, assumem que o conhecimento est´a representado simbolicamente expressando os elementos do dom´ınio e seus relacionamentos [27]. Esta representa¸c˜ao recebe o nome de base de conhecimento. O principal prop´osito da repre-senta¸c˜ao de conhecimento ´e organizar o conhecimento objetivando facilitar as inferˆencias a partir da manipula¸c˜ao simb´olica destes elementos e de suas rela¸c˜oes.

Diferentes t´ecnicas e formalismos tem sido empregados para a representa¸c˜ao de co-nhecimento, dependendo do contexto do problema considerado. As principais t´ecnicas de representa¸c˜ao de conhecimento incluem i) redes semˆanticas, ii) regras de produ¸c˜ao e iii) formalismos l´ogicos.

(22)

co-muns em sistemas baseados em regras de neg´ocios [29] e em formalismos de programa¸c˜ao l´ogica [30]. Outra forma ´e o emprego de linguagens de representa¸c˜ao de conhecimento baseadas em l´ogica. Estas linguagens tˆem a caracter´ıstica de permitir a interpreta¸c˜ao semˆantica precisa do conhecimento representado. A semˆantica formal provida pela l´ogica subjacente permite que mecanismos de dedu¸c˜ao automatizados sejam aplicados a bases de conhecimento expressas a partir destas linguagens.

A pr´oxima se¸c˜ao descreve o principal formalismo l´ogico empregado pelas linguagens de representa¸c˜ao de conhecimento no contexto da Web Semˆantica [31]: a L´ogica Descritiva.

2.1.1.1 L´ogica Descritiva

L´ogica Descritiva [32] ´e uma fam´ılia de formalismos l´ogicos para a representa¸c˜ao de co-nhecimento, a qual se caracteriza por ter uma semˆantica formal associada. ´E caracterizada tamb´em por permitir a defini¸c˜ao de fragmentos com diferentes n´ıveis de expressividade objetivando preservar a decidibilidade dos mecanismos de racioc´ınio.

As f´ormulas na L´ogica Descritiva s˜ao definidas indutivamente com base em um con-junto de construtores e em dois concon-juntos discon-juntos de s´ımbolos elementares: NC repre-sentando um conjunto de nomes de conceitos (tamb´em denominadoconceitos primitivos) eNP representando um conjunto de nomes de propriedades. O conjunto de construtores dispon´ıveis para a defini¸c˜ao de conceitos ´e dependente do fragmento da L´ogica Descritiva considerado. O fragmento AL (denominado Attributive Language) representa o frag-mento m´ınimo da L´ogica Descritiva cuja expressividade pode ser explorada em aplica¸c˜oes pr´aticas [32]. As f´ormulas que podem ser expressas por esse fragmento s˜ao definidas a seguir:

C, D = ⊤ | ⊥ |A| ¬A| C⊓D| ∃r.⊤ | ∀r.C

onde A∈NC e r∈NP.

O s´ımboloArepresenta um conceito primitivo (A∈NC), a partir do qual s˜ao expressos os conceitos complexos (C e D) atrav´es da aplica¸c˜ao dos construtores dispon´ıveis no fragmentoAL. Os s´ımbolos⊤e⊥expressam, respectivamente, conceitos representando o conjunto completo de indiv´ıduos do dom´ınio de discurso e o conjunto vazio. O construtor

¬A expressa o conjunto de indiv´ıduos do dom´ınio de discurso que n˜ao fazem parte da interpreta¸c˜ao do conceito primitivoA, ou seja, o complemento da interpreta¸c˜ao do conceito

(23)

cuja interpreta¸c˜ao ´e formada pelos indiv´ıduos comuns aparecendo nas interpreta¸c˜oes dos conceitosC eD. O contrutor∃r.⊤expressa um (sub-) conjunto de indiv´ıduos do dom´ınio de discurso que est˜ao relacionados atrav´es da propriedade r ∈ NP com, no m´ınimo, um indiv´ıduo qualquer do dom´ınio de discurso. O construtor ∀r.C expressa um (sub-) conjunto de indiv´ıduos do dom´ınio de discurso onde cada indiv´ıduo deste (sub-) conjunto est´a relacionado, atrav´es da propriedade r∈NP, somente com indiv´ıduos pertencentes `a interpreta¸c˜ao do conceitoC.

Considerando os conjuntos de s´ımbolos elementares NC e NP dados a seguir:

NC = {Hotel, Hostel}

NP = {hasReservation}

pode-se expressar conceitos arbitr´arios como¬Hotel, denotando o conjunto de indiv´ıduos do dom´ınio de discurso exceto aqueles pertencentes ao conceito Hotel. Outro exemplo ´e o conceito arbitr´arioHotel⊓Hostel, o qual denota o conjunto de indiv´ıduos do dom´ınio de discurso que pertencem `a ambos os conceitos Hotel e Hostel. O conceito arbitr´ario

∃hasReservation.⊤denota o conjunto de indiv´ıduos do dom´ınio de discurso que est˜ao re-lacionados, atrav´es da propriedadehasReservation, a outro indiv´ıduo do dom´ınio. Outro exemplo de conceito arbitr´ario ´e∀hasReservation.Hotel⊓Hostel, o qual denota o con-junto de indiv´ıduos do dom´ınio de discurso que est˜ao relacionados, atrav´es da propriedade

hasReservation, somente com indiv´ıduos que perten¸cam aos conceitos Hotel e Hostel.

A semˆantica formal da L´ogica Descritiva ´e baseada na teoria de modelos. Uma inter-preta¸c˜ao ´e dada pela tupla I = (∆I,.I

), onde ∆I representa um conjunto (n˜ao-vazio) de

indiv´ıduos e .I

representa uma fun¸c˜ao de interpreta¸c˜ao que associa:

• a cada elemento A∈NC um conjunto AI ⊆∆I, e

• a cada elemento r∈NP um conjunto de pares ordenadosrI ∈∆I×∆I.

(24)

comple-xas (arbitr´arias):

⊤I = ∆I

⊥I =

(¬A)I = ∆I \AI

(C⊓D)I = CI∩DI

(∃r.⊤)I = {a∈∆I | ∃b.(a, b)∈rI}

(∀r.C)I = {a∈∆I | ∀b. (a, b)∈rI ⇒b ∈CI

}

onde ⊤I corresponde ao conjunto de indiv´ıduos ∆I, e I corresponde ao conjunto vazio ∅. A interpreta¸c˜ao do conceito (¬A)I define que sua extens˜ao ´e dada pelo conjunto de

indiv´ıduos do dom´ınio que n˜ao fazem parte da extens˜ao do conceito A, i.e., ∆I \AI. A

interpreta¸c˜ao do conceito C ⊓D define que sua extens˜ao ´e dada pelo conjunto formado pela interse¸c˜ao dos conjuntos de indiv´ıduos representando as extens˜oes dos conceitos C e

D, i.e.,CIDI. A interpreta¸c˜ao do conceito (r.)I define que sua extens˜ao ´e dada pelo

conjunto de indiv´ıduos do dom´ınio que est˜ao relacionados a, no m´ınimo, um indiv´ıduo atrav´es da propriedade r, i.e., {a ∈ ∆I | ∃b.(a, b) rI}. A interpreta¸c˜ao do conceito

(∀r.C)I define que sua extens˜ao ´e dada pelo conjunto de indiv´ıduos do dom´ınio que est˜ao

relacionados, atrav´es da propriedader, somente a indiv´ıduos pertencentes `a extens˜ao do conceito C, i.e. {a∈∆I | ∀b.(a, b)rI b CI}.

De modo geral, uma base de conhecimento em L´ogica Descritiva ´e composta por dois componentes: terminol´ogico e assertivo. O componente terminol´ogico, denominado

TBox, expressa o conhecimento conceitual sobre o dom´ınio (denominado de conhecimento

intencional), enquanto que o componente assertivo, denominado ABox, expressa os fatos descrevendo o estado do mundo (denominado de conhecimento dos objetos).

O componente TBox tem um papel importante na representa¸c˜ao do conhecimento pois permite expressar o relacionamento entre conceitos. ´E poss´ıvel expressar dois tipos de relacionamentos: defini¸c˜ao de conceitoeinclus˜ao de conceito. As defini¸c˜oes de conceito (Ndef) permitem incorporar abrevia¸c˜oes para conceitos complexos. S˜ao denotadas por

A≡C, onde A´e um nome de conceito (denominado conceito definido) eC ´e um conceito complexo (arbitr´ario), representado por uma f´ormula. Por exemplo, o axioma

CartaoDebitado ≡ CartaoCredito⊓ ∃temDebito.⊤

(25)

expressam o relacionamento hier´arquico entre os conceitosC eD. Por exemplo, o axioma

CartaoCredito ⊑ F ormaP agamento expressa que todos os indiv´ıduos pertencentes ao conceito CartaoCreditotamb´em pertencem ao conceito F ormaP agamento.

Asser¸c˜oes sobre os indiv´ıduos do dom´ınio (axiomas de ABox) s˜ao constru´ıdas a partir dos conceitos formulados no componente TBox.

Defini¸c˜ao 2.1.1 (Literal) [32] Um literal tem a forma A(a), r(a, b) ou ¬r(a, b), onde A ∈ NC, r ∈ NP e a, b ∈ NI. Os conjuntos NC, NP e NI representam o conjunto de

conceitos primitivos, o conjunto de propriedades e o conjunto de nomes de indiv´ıduos, respectivamente.

Literais permitem expressar asser¸c˜oes (primitivas) de conceitos e de propriedades sobre os indiv´ıduos do dom´ınio. Considerando os conjuntos de s´ımbolos elementares NC =

{Hotel}, NP ={hasReservation} e NI ={req, ritz}, pode-se formular, por exemplo, o literalHotel(ritz) expressando que o indiv´ıduo ritz ´e parte da interpreta¸c˜ao do conceito

Hotel. Por outro lado, o literalhasReservation(req, ritz) expressa o relacionamento entre os indiv´ıduos req e ritz atrav´es da propriedadehasReservation.

Defini¸c˜ao 2.1.2 (Asser¸c˜ao Complexa) [32] Uma asser¸c˜ao complexa ´e dada por C(a), onde a ∈ NI e C ´e uma express˜ao de conceito (conceito complexo) formulada a

partir dos construtores dispon´ıveis no fragmento da L´ogica Descritiva considerado.

Assim como literais, asser¸c˜oes complexas permitem expressar asser¸c˜oes de conceitos sobre os indiv´ıduos do dom´ınio, por´em, envolvendo conceitos complexos ao inv´es de pri-mitivos (como no caso dos literais). Atrav´es de asser¸c˜oes complexas, pode-se formular fatos como (∃hasReservation.Hotel)(req), o qual expressa que o indiv´ıduoreq´e parte da extens˜ao do conceito ∃hasReservation.Hotel, cuja extens˜ao compreende o conjunto de indiv´ıduos que est˜ao relacionados a outro indiv´ıduo da classeHotelatrav´es da propriedade

hasReservation.

A partir da extens˜ao da fun¸c˜ao de interpreta¸c˜ao .I

(26)

axiomas de TBox e de ABox em rela¸c˜ao a uma dada interpreta¸c˜ao I, como:

(C ≡D)I = (CI =DI) (C ⊑D)I = (CI DI)

(C(a))I = {a}I ∈CI

(r(a, b))I = (aI, bI)∈rI

(¬r(a, b))I = (aI, bI)6∈rI

Se um axiomaφ(de TBox ou ABox) se verifica, considerando uma dada interpreta¸c˜ao

I, ent˜ao I ´e um modelo do axioma φ. Em outras palavras, a interpreta¸c˜ao I satisfaz o axioma φ, expressa pela rela¸c˜ao de satisfa¸c˜ao I |= φ. Esta no¸c˜ao de satisfa¸c˜ao pode ser estendida para bases de conhecimento. Uma interpreta¸c˜ao I ´e um modelo de uma base de conhecimentoK(denotada porI |=K), se a interpreta¸c˜aoI satisfaz todos os axiomas da base K, ou seja, ∀φ | φ ∈ K ⇒ I |= φ. Al´em disso, uma base de conhecimento K ´e

consistente se existir (no m´ınimo) uma interpreta¸c˜ao I que satisfaz todos os axiomas da base K.

A rela¸c˜ao de satisfa¸c˜ao definida acima determina quando um axiomaφse verifica, dada uma interpreta¸c˜ao espec´ıficaI. Entretanto, o objetivo da semˆantica formal ´e fornecer uma rela¸c˜ao de consequˆencia, a qual determina se uma f´ormula φ ´e uma consequˆencia l´ogica de uma base de conhecimentoK. A rela¸c˜ao de consequˆencia l´ogica ´e denotada porK |=φ

e definida como: uma f´ormula φ ´e uma consequˆencia l´ogica de uma base de conhecimento

K se, todo modelo de K´e tamb´em um modelo de φ, ou seja, se cada modelo I da base K

(I |=K) ´e tamb´em um modelo da f´ormula φ (I |=φ).

(27)

Considere, por exemplo, uma base de conhecimento K contendo os seguintes fatos:

CartaoCredito(cc)

Autorizacao(auth)

Al´em disso, considere uma consulta para determinar se o cart˜ao de cr´edito “cc” n˜ao possui algum d´ebito associado, i.e., verificar se K |= ¬∃temDebito.⊤(cc). Esta consulta ter´a respostas diferentes dependendo o tipo de semˆantica empregada pelo mecanismo de racioc´ınio. Se for considerada uma semˆantica de mundo fechado, a resposta para a consulta resultar´a emverdadeiro, uma vez que o cart˜ao de cr´edito “cc” n˜ao possui nenhum d´ebito expl´ıcito. Por outro lado, se for empregada uma semˆantica de mundo aberto, o resultado da consequˆencia semˆantica n˜ao severifica, i.e., os fatos contidos na base K n˜ao s˜ao suficientes para que o mecanismo de racioc´ınio possa inferir que o cart˜ao “cc” n˜ao possui d´ebitos.

Servi¸cos de Racioc´ınio. Al´em de representar conhecimento sobre um dom´ınio, os sis-temas que empregam L´ogica Descritiva como formalismo subjacente exploram os servi¸cos de racioc´ınio para inferir conhecimento impl´ıcito contido nos fatos explicitamente dados na base de conhecimento. Em um sistema de representa¸c˜ao de conhecimento baseado em L´ogica Descritiva, ´e poss´ıvel realizar alguns tipos espec´ıficos de racioc´ınio.

Considerando um TBoxT, podem-se verificar as seguintes propriedades de conceitos:

Satisfatibilidade. Um conceito C ´e satisfat´ıvel se existe um modelo I de T tal que

CI 6=.

Subsun¸c˜ao. Um conceito C ´esubsumido por um conceito D seCI DI para todo

modelo I de T. Neste caso, denota-se por C ⊑T D ou T |= C ⊑ D. Com base

na subsun¸c˜ao de conceitos, ´e poss´ıvel classificar de forma hier´arquica os conceitos dados na terminologia.

Equivalˆencia. Dois conceitos C e D s˜ao equivalentes com rela¸c˜ao a T se CI =DI

para todo modelo I deT. Neste caso, denota-se por C≡T D ouT |=C ≡D.

Disjun¸c˜ao. Dois conceitos C e D s˜ao disjuntos com rela¸c˜ao a T se CI DI =

para todo modelo I deT.

(28)

Consistˆencia. Um ABox A ´econsistente com rela¸c˜ao a um TBoxT se existir uma interpreta¸c˜ao I que ´e um modelo de ambos A e T.

Verifica¸c˜ao de instˆancia. Uma asser¸c˜ao α ´e consequˆencia l´ogica de um ABox A, denotada porA |=α, se todo modelo que satisfazA, tamb´em satisfazα. O problema da verifica¸c˜ao de instˆancia pode ser reduzido a verifica¸c˜ao da consistˆencia de ABox, i.e., A |=α se e somente se,A ∪ {¬α}´e inconsistente.

Problema de Recupera¸c˜ao. Dado um ABox A e um conceito C, encontrar todos os indiv´ıduos a satisfazendo A |=C(a).

Os servi¸cos de racioc´ınio s˜ao implementados por um componente espec´ıfico dos sis-temas de representa¸c˜ao de conhecimento baseados em L´ogica Descritiva, denominado

raciocinador semˆantico. Sua responsabilidade ´e realizar as inferˆencias a partir dos fatos dados explicitamente na base de conhecimento. No contexto da l´ogica descritiva, existe atualmente uma diversidade de raciocinadores1que implementam os servi¸cos de inferˆencia

descritos acima. O principal aspecto que os diferencia diz respeito ao fragmento da l´ogica descritiva suportado pelo raciocinador.

Neste trabalho, escolhemos o raciocinador Pellet [33] como mecanismo de inferˆencia. Sua escolha deve-se ao fato de que o mesmo provˆe amplo suporte aos servi¸cos de inferˆencia relativos ao fragmento ALC da l´ogica descritiva, o qual ´e usado neste trabalho como linguagem de asser¸c˜oes para expressar as especifica¸c˜oes de corre¸c˜ao parciais.

Fragmentos da L´ogica Descritiva. Os construtores de conceitos apresentados acima definem o fragmentoALda L´ogica Descritiva, o qual possui caracter´ısticas que permitem sua aplicabilidade em problemas reais preservando a decidibilidade de racioc´ınio [34].

Al´em do fragmento m´ınimo AL, outros fragmentos podem ser definidos atrav´es da agrega¸c˜ao de novos construtores, indicado por:

AL[C][U][E][N][O]

onde C, U, E, N e O representam, respectivamente, o complemento de conceitos (ar-bitr´arios), a uni˜ao de conceitos, qualifica¸c˜ao existencial completa, restri¸c˜oes num´ericas

1

(29)

em propriedades e nominais. A sintaxe e a semˆantica destes construtores ´e definida como:

Construtor Sintaxe Semantica

U C⊔D CIDI

E ∃r.C {a∈∆I | ∃b.(a, b)∈rI ∧b∈CI} N ≤nr {a∈∆I | {b |(a, b)∈rI} ≤n}

≥nr {a∈∆I|{b|(a, b)∈rI} ≥n}

C ¬C ∆I\CI

O {a} {aI}

Do ponto de vista semˆantico, algumas destas extens˜oes s˜ao equivalentes. Por exem-plo, as extens˜oes E e U podem ser obtidas a partir dos construtores do fragmento AL

juntamente com o construtorC (o complemento de conceito arbitr´ario). As equivalˆencias s˜ao dadas por: (C⊔D) ≡ (¬C ⊓ ¬D) e (∃r.C) ≡ (¬∀r.¬C). Dessa forma, o acrˆonimo

ALC ´e frequentente usado para representar o fragmento composto pelos construtores

AL[C][U][E].

Em algumas situa¸c˜oes, ´e conveniente usar nomes de indiv´ıduos na formula¸c˜ao de conceitos do dom´ınio, denominados de nominais. Fragmentos da l´ogica descritiva que consideram o uso de nominais na formula¸c˜ao dos conceitos s˜ao representados pela letra

O. Por exemplo, para formular o conceito representando os pa´ıses membros permanentes do conselho de seguran¸ca da ONU 2, ´e conveniente usar os nomes de indiv´ıduos

Rus-sia, Estados Unidos, Fran¸ca, Reino Unido e China para formular tal conceito, conforme descri¸c˜ao a seguir:

M embrosP ermanentesConselhoSegurancaON U ≡ {Russia, Estados U nidos,

F ranca, Reino U nido, China}

A sintaxe e a semˆantica do construtor nominal est´a ilustrada na listagem acima (identificada pelo construtorO).

Nosso trabalho se concentra no fragmento ALC da l´ogica descritiva. Por isso, outros fragmentos n˜ao ser˜ao considerados neste documento.

(30)

2.1.1.2 Atualiza¸c˜ao de Base de Conhecimento

Nos ´ultimos anos, a l´ogica descritiva tem sido empregada como formalismo base para a defini¸c˜ao de linguagens de ontologias (p.ex., OWL [35]), assim como para descrever os efeitos das a¸c˜oes em formalismos de a¸c˜ao [36, 37, 38, 39]. Em particular, quando empregada no contexto de formalismos de a¸c˜ao, o conjunto de fatos do ABox tem sido usado para descrever o estado do mundo sobre o qual o racioc´ınio ´e realizado para decidir sobre a aplicabilidade das a¸c˜oes. Os efeitos das a¸c˜oes representam os novos fatos que devem ser verdadeiros ap´os a execu¸c˜ao da a¸c˜ao. Dessa forma, a aplica¸c˜ao de uma a¸c˜ao (considerando um estado inicial) gera uma mudan¸ca de estado, a qual requer a atualiza¸c˜ao dos fatos do ABox a fim de expressar que os novos fatos (dados pelos efeitos das a¸c˜oes) sejam contemplados pelo novo estado.

Historicamente, a atualiza¸c˜ao dos fatos contidos no ABox tem sido realizada de forma

ad-hoc [40], ou seja, os novos fatos s˜ao diretamente inclu´ıdos ou removidos do ABox. Este procedimento, `a primeira vista, parece natural e suficiente para resolver o problema da atualiza¸c˜ao de estado. Entretanto, o componente ABox tem uma carater´ıstica distinta: os fatos contidos no ABox fornecem umadescri¸c˜ao do mundo enquanto que os (poss´ıveis) modelos do ABox representam os estados (reais) do mundo. Esta particularidade dos ABoxes na representa¸c˜ao do conhecimento ´e devido `a semˆantica de mundo aberto [41] adotada pelo formalismo subjacente empregado para expressar as bases de conhecimento. Sob esta perspectiva de mundo aberto, a ausˆencia de um fato no ABox n˜ao permite inferir sua falsidade, mas ´e tratado como um fato desconhecido. Esta perspectiva ´e contr´aria `aquela demundo fechado [41], onde a ausˆencia de um fato implica em sua falsidade, como ´e comum em sistemas baseados em bancos de dados e orientados a objetos [42].

Portanto, quando ABoxes s˜ao empregados como mecanismo para representa¸c˜ao dos estados, n˜ao podemos presumir a descri¸c˜ao completa dos fatos do mundo, ou seja, temos apenas um conhecimento parcial destes. Esta caracter´ıstica do ABox tem um impacto significativo na forma como as atualiza¸c˜oes s˜ao realizadas nele. Para ilustrar esta situa¸c˜ao, considere o ABoxALC A e a atualiza¸c˜ao U dados a seguir.

A = {∃temBenef icio.Bolsa(e), Bolsa(b)} U = {¬Bolsa(b)}

(31)

∃temBenef icio.Bolsa(e)), e que o indiv´ıduo “b” ´e parte da extens˜ao do conceito Bolsa

(axioma Bolsa(b)). Note que n˜ao est´a expl´ıcito (nem pode ser inferido) no ABox A que o benef´ıcio atualmente mantido pelo indiv´ıduo “e” ´e a bolsa “b”.

A atualiza¸c˜ao U expressa um ou mais fatos representando novos conhecimentos sobre o estado do mundo. Uma atualiza¸c˜aoU ={α(t)}´e dada por um conjunto finito de literais onde cada literalα(t) tem a forma A(a),¬A(a),r(a, b) ou ¬r(a, b), com A representando um nome de conceito, r representando um nome de propriedade, a e b representando nomes de indiv´ıduos. Intuitivamente, um literal α(t) contido na atualiza¸c˜ao determina que o respectivo literal ´e v´alido ap´os a mudan¸ca do estado do mundo. No exemplo acima, a atualiza¸c˜aoU representa o fato que o indiv´ıduo “b” n˜ao pertence `a extens˜ao do conceito

Bolsa.

Devido `a semˆantica de mundo aberto adotada pela l´ogica descritiva, os fatos contidos no ABoxApermitem duas classes de modelos, conforme representado abaixo pelas inter-preta¸c˜oes I1 e I2, conforme ilustrado na tabela 1. Ambas as interpreta¸c˜oes assumem o

mesmo dom´ınio de indiv´ıduos, i.e., ∆I1 = ∆I2 ={e, b, b

1}. A interpreta¸c˜ao I1 representa

a classe de modelos onde o individuo “b” ´e o ´unico benef´ıcio mantido pelo indiv´ıduo “e”, i.e., temBenef icioI1 ={he, bi}. Por outro lado, a interpreta¸c˜ao I

2 representa a classe de

modelos onde o indiv´ıduo “b” n˜ao aparece como um benef´ıcio do indiv´ıduo “e”, ou seja, o indiv´ıduo “e” possui outro benef´ıcio (temBenef icioI2 ={he, b

1i}).

I1 I2

∆I1 ={e, b, b

1} ∆I2 ={e, b, b1}

temBenef icioI1 ={he, bi} temBenef icioI2 ={he, b

1i}

BolsaI1 ={b} BolsaI2 ={b, b

1}

Tabela 1: Interpreta¸c˜oes poss´ıveis para os fatos contidos no ABox A.

A atualiza¸c˜aoad-hocdo ABox ´e realizada atrav´es da inclus˜ao/exclus˜ao dos fatos dados no conjunto atual de fatos deste ABox. No exemplo descrito acima, o ABoxA′ resultante

da atualiza¸c˜ao ad-hoc, com os fatos dados na atualiza¸c˜ao U, contˆem os seguintes fatos:

A′ = {∃temBenef icio.Bolsa(e),¬Bolsa(b)}

O novo ABox A′ representa uma descri¸c˜ao do mundo contemplando o novo

conheci-mento dado pela atualiza¸c˜aoU, i.e.,¬Bolsa(b). Neste caso, o indiv´ıduo “b” que pertencia `a extens˜ao do conceito Bolsa no ABox original A, deixou de pertencer ap´os atualiza¸c˜ao do ABoxA com os fatos dados em U.

(32)

A′, a classe de modelos representada anteriormente pela interpreta¸c˜aoI

1 (i.e., a classe de

modelos onde o ´unico benef´ıcio do indiv´ıduo “e” era a bolsa “b”) n˜ao constitue uma classe de modelos do ABox atualizado A′. Em outras palavras, a atualiza¸c˜ao da descri¸c˜ao do

mundo (i.e., o novo ABoxA′) n˜ao permite expressar todos os estados que eram poss´ıveis

com a descri¸c˜ao do mundo anterior (i.e., o ABox original A). Portanto, a atualiza¸c˜ao

ad-hoc do ABox n˜ao preserva todos os estados reais (i.e., os modelos poss´ıveis) dados pela descri¸c˜ao do ABox original.

A preserva¸c˜ao dos (poss´ıveis) estados reais ´e importante no contexto dos formalismos de a¸c˜ao baseados na l´ogica descritiva (com semˆantica de mundo aberto) que empregam uma abordagem baseada emprogress˜ao [37, 38, 39] para raciocinar sobre a aplicabilidade das a¸c˜oes.

Esta quest˜ao da atualiza¸c˜ao do ABox ´e formalmente abordada em [40], onde os au-tores prop˜oem uma estrat´egia de atualiza¸c˜ao denominada de atualiza¸c˜ao semˆantica. A abordagem foi assim denominada pois emprega um esquema de atualiza¸c˜ao baseada na teoria de modelos, inspirada na semˆantica dos modelos poss´ıveis PMA (Possible Models Approach [43]). A semˆantica formal de atualiza¸c˜ao proposta em [40] estabelece para cada interpreta¸c˜ao I, uma interpreta¸c˜ao atualizada IU obtida atrav´es da altera¸c˜ao (m´ınima)

da interpreta¸c˜ao I de forma que a asser¸c˜ao dada pela atualiza¸c˜ao U seja satisfeita. A minimiza¸c˜ao das altera¸c˜oes nas interpreta¸c˜oes diz respeito `a interpreta¸c˜ao dos conceitos primitivos A e propriedades primitivasr, sendo definida por:

AIU = (AI ∪ {aI |A(a)∈ U})\ {aI | ¬A(a)∈ U} (2.1)

rIU = (rI ∪ {(aI, bI)|r(a, b)∈ U})\ {(aI, bI)| ¬r(a, b)∈ U} (2.2)

A equa¸c˜ao 2.1 expressa que a interpreta¸c˜aoAI de um conceito primitivoA´e atualizada

considerando os indiv´ıduos aparecendo nas asser¸c˜oes de conceitos dados na atualiza¸c˜aoU, gerando assim uma nova interpreta¸c˜ao AIU

. A equa¸c˜ao 2.2 expressa que a interpreta¸c˜ao

rI de uma propriedade primitiva r ´e atualizada a partir das asser¸c˜oes de propriedade

aparecendo nos fatos da atualiza¸c˜ao U. Como resultado, uma nova interpreta¸c˜ao rIU

´e produzida satisfazendo as asser¸c˜oes de propriedades emU.

(33)

AU = (A⊔ G ¬A(a)∈U

{a})⊓ ¬( G A(a)∈U

{a}) (2.4)

{a}U = {a} (2.5)

(¬C)U = ¬(C)U (2.6)

(C ⊓ D)U = CU ⊓ DU (2.7)

(C ⊔ D)U = CU ⊔ DU (2.8)

(∃r.C)U = ∃r.CU (2.9)

(∀r.C)U = ∀r.CU (2.10)

Figura 1: Atualiza¸c˜ao de conceitos no fragmento ALCO [1].

ABox A e uma atualiza¸c˜aoU, busca-se obter um ABox A′ tal que

M(A′) = M(A)U onde M(A)U ={IU | I ∈ A}

O ABox atualizado A′ ´e computado da seguinte forma:

A′ = ^(A ∪ U)∨^(AU ∪ U) (2.3)

onde AU = {αU(a) |α(a) ∈ A}, com α representando um conceito e o identificador “a

representando um indiv´ıduo do dom´ınio. Intuitivamente, AU representa o conjunto de

axiomas do ABox original A cujos conceitos associados (a cada defini¸c˜ao de axioma do ABox) s˜ao atualizados conforme equa¸c˜oes dadas na Figura 1. A f´ormula usada para com-putar o ABoxA′ ´e composta por uma disjun¸c˜ao, onde a primeira parte da disjun¸c˜ao (i.e.,

V

(A ∪ U)) contempla o caso em que a atualiza¸c˜ao U n˜ao afeta os fatos do ABox original

A(portanto, ´e suficiente apenas agregar os novos fatos ao ABox original), enquanto que a segunda parte da disjun¸c˜ao (i.e.,V

(AU∪ U)), contempla o caso em que os fatos dados na

atualiza¸c˜ao coincidem com fatos contidos no ABox original (portanto, s˜ao afetados pela atualiza¸c˜ao e precisam ser atualizados).

Como descrito pela equa¸c˜ao 2.3 acima, o procedimento de atualiza¸c˜ao requer a atua-liza¸c˜ao de cada conceito contido nos axiomas do ABox que s˜ao afetados pela atuaatua-liza¸c˜ao, i.e., ´e necess´ario computar o conceito atualizado αU para cada axioma do ABox afetado

pela atualiza¸c˜ao. A atualiza¸c˜ao dos conceitos expressos pelo fragmentoALCO ´e descrita pelas equa¸c˜oes ilustradas na Figura 1.

(34)

fragmentoALCO da l´ogica descritiva.

O caso base da indu¸c˜ao (equa¸c˜ao 2.4) diz respeito `a atualiza¸c˜ao dos conceitos primi-tivos usados para declarar os axiomas do ABox. Esta equa¸c˜ao define que um indiv´ıduo “a”, aparecendo em um fato negado da atualiza¸c˜ao U (i.e., ¬A(a) ∈ U), deve ser agre-gado na forma de um nominal como parte da defini¸c˜ao do conceitoA (primeira parte da conjun¸c˜ao -A⊔F

¬A(a)∈U{a}. Intuitivamente, o novo conceitoA⊔

F

¬A(a)∈U{a}estabelece

que a classe de modelos do ABox original A que assumia o indiv´ıduo “a” como sendo o

´

unicoindiv´ıduo aparecendo na interpreta¸c˜ao de um determinado conceito, continue sendo uma classe de modelos do novo ABoxA′ (atualizado). A segunda parte da conjun¸c˜ao (i.e., ¬(F

A(a)∈U{a})) estabelece que um indiv´ıduo “a” aparecendo em uma asser¸c˜ao (positiva)

deU (i.e.,A(a)) ´e explicitamente exclu´ıdo da interpreta¸c˜ao do conceitoA no novo ABox

A′ (atualizado).

A equa¸c˜ao 2.5 estabelece que um nominal aparecendo na defini¸c˜ao de conceitos n˜ao ´e atualizado. A equa¸c˜ao 2.6 estabelece que a atualiza¸c˜ao do complemento de conceito (arbitr´ario) ´e dada pelo complemento do conceito (arbitr´ario) atualizado. A equa¸c˜ao 2.7 estabelece que a atualiza¸c˜ao de um conceito formado pela interse¸c˜ao de outros conceitos ´e dada pela interse¸c˜ao da atualiza¸c˜ao destes conceitos. A equa¸c˜ao 2.8 estabelece que a atu-aliza¸c˜ao de um conceito formado pela uni˜ao de conceitos ´e dada pela uni˜ao da atuatu-aliza¸c˜ao destes conceitos. A equa¸c˜ao 2.10 estabelece que a atualiza¸c˜ao de um conceito formado por um construtor existencial ´e dada pela atualiza¸c˜ao do conceito C usado como “role filler”. A equa¸c˜ao 2.9 estabelece uma atualiza¸c˜ao semelhante ao construtor existencial, por´em envolvendo o construtor universal.

Retomando o exemplo descrito anteriormente, o ABox atualizado A′ resultante da

atualiza¸c˜ao semˆantica descrita acima ´e dado por:

A′ = {∃temBenef icio.(Bolsa⊔ {b})(e),¬Bolsa(b)}

Observe que o ABox atualizado A′ requer o uso de nominais para expressar a

atu-aliza¸c˜ao semˆantica do ABox ALC A. Como observado em [44], atualiza¸c˜oes semˆanticas n˜ao s˜ao express´ıveis em todos os fragmentos da L´ogica Descritiva. No exemplo acima, a atualiza¸c˜ao semˆantica do ABox ALC A, n˜ao pode ser representada por um ABox A′

tamb´em expresso no fragmentoALC, ou seja, o ABox atualizado A′ requer um fragmento

(35)

Restri¸c˜oes impostas `as atualiza¸c˜oes e ao TBox. O procedimento de atualiza¸c˜ao semˆantica descrito nos par´agrafos anteriores imp˜oe restri¸c˜oes no que diz respeito `as as-ser¸c˜oes contidas na atualiza¸c˜ao e aos axiomas definindo a terminologia do dom´ınio, a fim de garantir a coerˆencia semˆantica e a computabilidade das atualiza¸c˜oes [45].

A primeira restri¸c˜ao refere-se `a expressividade do componente TBox empregado para descrever a terminologia do dom´ınio. No caso assume-se que o TBox ´e ac´ıclico, ou seja, um nome de conceito definido n˜ao aparece (direta ou indiretamente) na express˜ao de conceito que o define. TBoxes ac´ıclicos, ao contr´ario dos c´ıclicos, tem a propriedade que a interpreta¸c˜ao dos conceitos definidos ´e determinada unicamente pela interpreta¸c˜ao dos conceitos primitivos usados em sua defini¸c˜ao, assim como da forma como os conceitos primitivos s˜ao combinados [32]. Al´em disso, a condi¸c˜ao de minimiza¸c˜ao das mudan¸cas nas interpreta¸c˜oes considera somente a minimiza¸c˜ao da interpreta¸c˜ao de conceitos e pro-priedades primitivas, ignorando a minimiza¸c˜ao da interpreta¸c˜ao dos conceitos definidos, o que pode gerar resultados pouco intuitivos.

Para exemplificar esta situa¸c˜ao, considere a base de conhecimento K =hT,Ai (con-tendo uma terminologia c´ıclica) e a atualiza¸c˜aoU, descritas a seguir:

A = {Humano(h)}

T = {Humano≡ ∃progenitor.Humano} U = {M ulher(m)}

A partir da base de conhecimento K = hT,Ai e da atualiza¸c˜ao U, n˜ao ´e poss´ıvel concluir queHumano(h) ´e uma consequˆencia da baseKatualizada comU. Para entender esse resultado inesperado, considere uma interpreta¸c˜aoI, conforme a seguir.

∆I = {m} ∪ {h0, h1, h2, . . .}

HumanoI = {h0, h1, h2, . . .}

M ulherI = ∅

progenitorI = {hhi, hi+1i|i∈N}

hI = h0

mI = m

A interpreta¸c˜ao atualizada I′ ´e obtida pela atualiza¸c˜ao da interpreta¸c˜ao do conceito

(36)

em interpreta¸c˜oes (i.e., considerar somente a atualiza¸c˜ao da interpreta¸c˜ao de conceitos e propriedades primitivas), a interpreta¸c˜ao do conceito definido Humano torna-se vazia (i.e.,HumanoI′

=∅). Isto deve-se ao fato que o conceito Humano´e um conceito definido (n˜ao ´e primitivo) e, portanto, n˜ao ´e considerado na atualiza¸c˜ao das interpreta¸c˜oes. Dessa forma, obtemos o resultado inesperado queI′ 6|=Humano(h), uma vez que a extens˜ao do

conceito (definido) Humano ´e vazia na interpreta¸c˜ao atualizadaI′.

Outra restri¸c˜ao imposta pelo procedimento de atualiza¸c˜ao semˆantica diz respeito `a complexidade dos conceitos usados para descrever os fatos contidos na atualiza¸c˜ao. O uso de conceitos arbitr´arios (complexos) nas atualiza¸c˜oes pode gerar problemas semˆanticos produzindo resultados pouco intuitivos. Este problema est´a relacionado ao uso dos cons-trutores ⊔, ∃ e ∀ na formula¸c˜ao dos conceitos aparecendo nos fatos contidos nas atua-liza¸c˜oes. Estes construtores introduzem n˜ao-determinismo no processamento das atua-liza¸c˜oes, podendo gerar resultados inesperados.

No caso de atualiza¸c˜oes envolvendo restri¸c˜ao existencial, por ex. ∃r.B(a), qualquer indiv´ıduo do dom´ıniob ∈∆I pode sern˜ao-deterministicamente escolhido para satisfazer haI, bi ∈ rI e b BI ap´os o processamento da atualiza¸c˜ao. O indiv´ıduo escolhido pode

previamente satisfazer a primeira condi¸c˜ao (i.e.,haI, bi ∈rI), ou a segunda condi¸c˜ao (i.e.,

b∈BI) ou nenhuma delas.

Considere o exemplo a seguir, descrito pelo ABox A e pela atualiza¸c˜ao U.

A = {Bolsa(b)}

U = {∃temBenef icio.¬Bolsa(e)}

Devido ao n˜ao-determinismo introduzido pela restri¸c˜ao existencial, o axioma “Bolsa(b)” n˜ao ´e consequˆencia l´ogica do ABoxA′ gerado como resultado do processamento da

atua-liza¸c˜aoU, i.e., A′ 6|=Bolsa(b). Este resultado inesperado se deve ao fato que o indiv´ıduo

escolhido n˜ao-deterministicamente para satisfazer a atualiza¸c˜ao U ´e o indiv´ıduo “b”, o qual ent˜ao passaria a pertencer `a extens˜ao do conceito ¬Bolsa(b) (visando satisfazer a atualiza¸c˜aoU).

(37)

so-mente a partir de conceitos primitivos (i.e., as asser¸c˜oes representam literais). A mesma restri¸c˜ao ´e imposta para os efeitos descritos na defini¸c˜ao dos servi¸cos web semˆanticos, conforme discutido na se¸c˜ao 3.1.1.

2.1.2

Verifica¸c˜

ao Formal de Programas

A verifica¸c˜ao formal de programas tem como objetivo fornecer uma prova formal de que um programa satisfaz uma especifica¸c˜ao desejada [46]. A deriva¸c˜ao da prova requer que o programa seja modelado atrav´es de uma estrutura matem´atica, a qual forma a base para a aplica¸c˜ao de um processo de racioc´ınio que permita derivar propriedades sobre a mesma.

Em geral, as t´ecnicas de verifica¸c˜ao formais s˜ao compostas por trˆes partes distin-tas [47]: i)uma linguagem de descri¸c˜ao que permita modelar o programa,ii) uma lingua-gem de especifica¸c˜ao que permita expressar as propriedades desejadas, eiii) um m´etodo de verifica¸c˜ao para determinar se o programa satisfaz a propriedade.

A principal diferen¸ca entre as abordagens de verifica¸c˜ao formal diz respeito `a escolha do formalismo matem´atico empregado no processo de racioc´ınio. Estas abordagens podem ser classificadas como [48]: i) baseadas em modelos e ii) baseadas em provas.

(38)

As t´ecnicas baseadas em provas se caracterizam por transformar o problema da veri-fica¸c˜ao em um problema de prova de teorema. Nesta abordagem, a descri¸c˜ao do programa ´e dada por um conjunto de f´ormulas Γ expressas em um formalismo l´ogico, enquanto que a especifica¸c˜ao ´e dada por outra f´ormula ϕ expressa tamb´em neste formalismo. A prova do teorema (i.e., a verifica¸c˜ao) ´e realizada com base no c´alculo de prova subjacente ao formalismo l´ogico empregado. Formalmente, o m´etodo de verifica¸c˜ao consiste na tenta-tiva de encontrar uma prova que Γ ⊢ ϕ. Um aspecto importante desta abordagem ´e a necessidade da orienta¸c˜ao e do conhecimento especializado do usu´ario para desenvolver a prova de problemas de maior complexidade.

Uma das ´areas em que a t´ecnica baseada em prova tem encontrado grande aplicabi-lidade ´e na l´ogica de programas. A l´ogica de programas tem suas origens nos trabalhos desenvolvidos em [53, 54]. O objetivo principal desta abordagem ´e simplificar a verifica¸c˜ao por meio da abstra¸c˜ao dos detalhes da execu¸c˜ao do programa do processo de verifica¸c˜ao em si. As id´eias propostas naqueles trabalhos formam a base para a defini¸c˜ao do estilo de especifica¸c˜ao conhecido como semˆantica axiom´atica.

As provas desenvolvidas em l´ogica de programas combinam dois n´ıveis l´ogicos dis-tintos. O primeiro n´ıvel est´a diretamente relacionado com os construtores da linguagem de programa¸c˜ao (atribui¸c˜ao, composi¸c˜ao sequencial, condicional, etc), a partir dos quais s˜ao definidas as regras de dedu¸c˜ao. O segundo n´ıvel diz respeito `a l´ogica subjacente `a linguagem de especifica¸c˜ao empregada para descrever as propriedades sobre o programa.

Na pr´oxima se¸c˜ao ´e apresentado o principal formalismo empregado para raciocinar sobre a corre¸c˜ao de programas imperativos.

2.1.2.1 L´ogica de Hoare

A L´ogica de Hoare [54] ´e um formalismo para raciocinar sobre a corre¸c˜ao de programas imperativos, tendo como base a l´ogica de primeira ordem. A l´ogica de Hoare trata com a no¸c˜ao de corre¸c˜ao, relativa a uma especifica¸c˜ao que consiste de pr´e- e p´os-condi¸c˜ao. A corre¸c˜ao de um programa em rela¸c˜ao a uma especifica¸c˜ao ´e obtida atrav´es da constru¸c˜ao de uma deriva¸c˜ao no sistema de inferˆencia da L´ogica de Hoare, a qual usa pr´e-condi¸c˜oes, p´os-condi¸c˜oes e invariantes.

(39)

ver-dadeiras quando a execu¸c˜ao do programa ´e iniciada. Por outro lado, as p´os-condi¸c˜oes s˜ao asser¸c˜oes que devem ser verdadeiras quando a execu¸c˜ao do programa terminar. Deste modo, uma especifica¸c˜ao pode ser definida como um par de asser¸c˜oes (P,Q), onde P ´e a pr´e-condi¸c˜ao e Q ´e a p´os-condi¸c˜ao. Uma especifica¸c˜ao de corre¸c˜ao relativa a um programa C ´e convencionalmente expressa no formato de uma tripla{P}C{Q}.

Uma tripla {P}C{Q} ´e chamada de especificac˜ao de corre¸c˜ao parcial. Esta especi-fica¸c˜ao ´e considerada parcial porque n˜ao diz nada a respeito do t´ermino do programa C, ou seja, para que {P}C{Q} seja verdadeiro n˜ao ´e requerido o t´ermino da execu¸c˜ao do programa C quando iniciado em um estado satisfazendo P. ´E somente requerido que, caso o programa C termine, a p´os-condi¸c˜ao Q se verifica no estado final.

Uma especifica¸c˜ao de corre¸c˜ao mais rigorosa ´e acorre¸c˜ao total. A nota¸c˜ao usada para expressar uma especifica¸c˜ao de corre¸c˜ao total ´e [P] C [Q]. Uma especificac˜ao de corre¸c˜ao total [P] C [Q] ´e verdadeira se e somente se as duas condi¸c˜oes a seguir se aplicam:

• se o programa C ´e executado em um estado satisfazendo a pr´e-condi¸c˜ao P, ent˜ao o programa C termina.

• Ap´os o t´ermino da execu¸c˜ao do programa C, a p´os-condi¸c˜ao Q se verifica no estado final.

O relacionamento entre corre¸c˜ao parcial e total pode ser informalmente expresso como:

Corre¸c˜ao T otal = Corre¸c˜ao P arcial + T ermina¸c˜ao

onde a validade de uma especifica¸c˜ao de corre¸c˜ao total pode ser estabelecida atrav´es das provas da corre¸c˜ao parcial e do t´ermino da execu¸c˜ao, separadamente.

No contexto da certifica¸c˜ao de composi¸c˜oes de servi¸cos web semˆanticos, consideramos somente especifica¸c˜oes de corre¸c˜ao parcial.

As pr´oximas se¸c˜oes descrevem os principais trabalhos relacionados `a verifica¸c˜ao for-mal de programas, mais especificamente, enfatizando a verifica¸c˜ao de propriedades de composi¸c˜oes de servi¸cos web.

2.2

Verifica¸c˜

ao de Composi¸c˜

oes de Servi¸cos Web

(40)

estado, tais como redes de Petri [55]. Outra abordagem formal empregada ´e a prova de teoremas. Ambas as abordagens visam verificar propriedades de uma especifica¸c˜ao.

Esta se¸c˜ao apresenta uma revis˜ao dos principais trabalhos descritos na literatura abor-dando a verifica¸c˜ao formal de composi¸c˜oes de servi¸cos web. Os trabalhos revisados se enquadram na classifica¸c˜ao descrita na se¸c˜ao 2.1.2, i.e., baseados emprova de teoremas e baseados emmodel checking.

2.2.1

Abordagens baseadas em Prova de Teorema

Abordagens baseadas em prova de teoremas tem sido empregadas para a verifica¸c˜ao formal de propriedades de composi¸c˜oes de servi¸cos web. Os trabalhos revisados empregam os mais diversos formalismos l´ogicos para expressar o modelo do sistema assim como as propriedades a serem verificadas s˜ao diversas.

Os autores em [56] prop˜oem um sistema axiom´atico baseado na L´ogica de Hoare para a verifica¸c˜ao de processos BPEL. O foco da verifica¸c˜ao se centra nos mecanismos de compensa¸c˜ao e falhas providos por BPEL. O m´etodo de verifica¸c˜ao proposto apresenta limita¸c˜oes, como considerar que os fluxos paralelos do processo n˜ao compartilham vari´aveis (ou seja, s˜ao independentes). Al´em disso, a aplica¸c˜ao do m´etodo de verificac˜ao n˜ao pode ser totalmente automatizada, pois algumas regras de inferˆencia do sistema axiom´atico proposto n˜ao tem a propriedade desub-f´ormula3.

Em [57], os autores prop˜oem uma abordagem de verifica¸c˜ao de workflow baseada na semˆantica de Hoare (dada por pr´e- e p´os-condi¸c˜oes). As tarefas orquestradas no workflow s˜ao expressas tamb´em por uma especifica¸c˜ao dada por uma pr´e-condi¸c˜ao e um conjunto de a¸c˜oes (onde cada a¸c˜ao representa um efeito poss´ıvel da tarefa), denominada frame semantics. A a¸c˜ao a ser aplicada, em resposta `a execu¸c˜ao da tarefa, ´e escolhida de forma n˜ao-determin´ıstica. O modelo do workflow ´e representado atrav´es de um grafo dirigido, onde os v´ertices representam as tarefas orquestradas e as arestas descrevem o fluxo de execu¸c˜ao das tarefas. A verifica¸c˜ao da corre¸c˜ao do workflow (i.e., se o workflow cumpre uma dada especifica¸c˜ao) ´e realizada atrav´es da anota¸c˜ao das arestas do grafo com f´ormulas representando as condi¸c˜oes que s˜ao requeridas serem verdadeiras naquele ponto do workflow. O workflow ´e validado se a anota¸c˜ao de todas as arestas ´e poss´ıvel e se a f´ormula associada a cada aresta representando as sa´ıdas do workflow (calculada com

3

Imagem

Tabela 1: Interpreta¸c˜oes poss´ıveis para os fatos contidos no ABox A.
Figura 1: Atualiza¸c˜ao de conceitos no fragmento ALCO [1]. ABox A e uma atualiza¸c˜ao U , busca-se obter um ABox A ′ tal que
Figura 3: Construtores de Workflow e de Asser¸c˜oes
Figura 4: Semˆantica Natural da Linguagem de Workflow. ilustrado na Figura 4.
+7

Referências

Documentos relacionados

Water and wastewater treatment produces a signi ficant amount of methane and nitrous oxide, so reducing these emissions is one of the principal challenges for sanitation companies

Seja P a função que ao número de anos decorridos desde 2014, n, faz correspon- der o preço a pagar pelo bilhete de época do F.. Em que ano um bilhete de época no Estádio de

O Documento Orientador da CGEB de 2014 ressalta a importância do Professor Coordenador e sua atuação como forma- dor dos professores e que, para isso, o tempo e

Quando conheci o museu, em 2003, momento em foi reaberto, ele já se encontrava em condições precárias quanto à conservação de documentos, administração e organização do acervo,

F REQUÊNCIAS PRÓPRIAS E MODOS DE VIBRAÇÃO ( MÉTODO ANALÍTICO ) ... O RIENTAÇÃO PELAS EQUAÇÕES DE PROPAGAÇÃO DE VIBRAÇÕES ... P REVISÃO DOS VALORES MÁXIMOS DE PPV ...

Os principais objectivos definidos foram a observação e realização dos procedimentos nas diferentes vertentes de atividade do cirurgião, aplicação correta da terminologia cirúrgica,

psicológicos, sociais e ambientais. Assim podemos observar que é de extrema importância a QV e a PS andarem juntas, pois não adianta ter uma meta de promoção de saúde se

II - os docentes efetivos, com regime de trabalho de 20 (vinte) horas semanais, terão sua carga horária alocada, preferencialmente, para ministrar aulas, sendo o mínimo de 8 (oito)