• Nenhum resultado encontrado

Linguagem de Composi¸c˜ ao de Servi¸cos

3 O M´ etodo de Certifica¸ c˜ ao de

3.1.3 Linguagem de Composi¸c˜ ao de Servi¸cos

Composi¸c˜oes de servi¸cos descrevem o fluxo de trabalho (workflow) de aplica¸c˜oes que combinam chamadas de servi¸cos web. A linguagem empregada nesta tese para expressar composi¸c˜oes de servi¸cos ´e descrita a seguir. A linguagem contempla os construtores co- muns encontrados em linguagens de orquestra¸c˜ao de servi¸cos, tal como BPEL (Business Process Execution Language) [9]. Atrav´es da gram´atica empregada nesta tese, busca-se simplificar a apresenta¸c˜ao e manipula¸c˜ao dos construtores usados na defini¸c˜ao dos work- flows, facilitando assim sua legibilidade e manipula¸c˜ao.

3.1.3.1 Sintaxe

A linguagem de composi¸c˜ao de servi¸cos web semˆanticos pode ser dividida em duas partes: i) uma primeira contendo as se¸c˜oes de declara¸c˜oes e, ii) a segunda contendo a defini¸c˜ao do workflow.

A gram´atica empregada para definir as se¸c˜oes de declara¸c˜oes da linguagem ´e ilus- trada na Figura 2. O s´ımbolo n˜ao-terminal semanticPEWS define a estrutura de uma composi¸c˜ao de servi¸cos. Uma composi¸c˜ao de servi¸cos ´e composta pelos conjuntos de declara¸c˜oes de ontologias (OntologyDecl* ), de conceitos (ConceptDecl* ), de proprieda- des (PropertyDecl* ), de indiv´ıduos (IndividualDecl* ), de vari´aveis (VariableDecl* ) e de servi¸cos (ServiceDecl* ), al´em de uma especifica¸c˜ao (SpecificationDecl ).

O s´ımbolo n˜ao-terminal OntologyDecl permite a declara¸c˜ao de ontologias de dom´ınio cujas terminologias s˜ao necess´arias para a defini¸c˜ao da composi¸c˜ao de servi¸cos. Cada ontologia ´e identificada por um prefixo e por uma URL.

O s´ımbolo n˜ao-terminal ConceptDecl permite declarar os conceitos ontol´ogios (defi- nidos pelas ontologias de dom´ınio) que s˜ao empregados na descri¸c˜ao dos elementos da composi¸c˜ao de servi¸cos. A declara¸c˜ao de cada conceito est´a relacionada ao prefixo de uma ontologia de dom´ınio.

O s´ımbolo n˜ao-terminal PropertyDecl permite declarar as propriedades usadas na defini¸c˜ao dos elementos da composi¸c˜ao. Da mesma forma que os conceitos, as propriedades est˜ao relacionadas a uma ontologia de dom´ınio atrav´es da identifica¸c˜ao de seu prefixo na declara¸c˜ao da propriedade.

O s´ımbolo n˜ao-terminal IndividualDecl permite declarar que indiv´ıduos nomeados definidos nas ontologias de dom´ınio possam ser referenciados na defini¸c˜ao dos elementos da composi¸c˜ao de servi¸cos.

O s´ımbolo n˜ao-terminal VariableDecl permite definir identificadores para representar indiv´ıduos usados na defini¸c˜ao dos elementos da composi¸c˜ao. Cada s´ımbolo n˜ao-terminal ´e associado a um conceito dado por uma ontologia do dom´ınio.

O s´ımbolo n˜ao-terminal ServiceDecl permite declarar os servi¸cos web semˆanticos uti- lizados na defini¸c˜ao do workflow. Cada servi¸co identificado nesta se¸c˜ao est´a associado `a defini¸c˜ao de seus elementos conforme dado pela defini¸c˜ao 3.1.1.

O s´ımbolo n˜ao-terminal SpecificationDecl define uma especifica¸c˜ao de corre¸c˜ao parcial, composta pelos s´ımbolos n˜ao-terminais Pre, W e Post.

O s´ımbolo n˜ao-terminal Pre denota a pr´e-condi¸c˜ao da especifica¸c˜ao, sendo composta por uma lista de axiomas de ABox (s´ımbolo n˜ao-terminal AxiomList). Por outro lado, o s´ımbolo n˜ao-terminal Post denota uma lista de axiomas de ABox expressando a p´os- condi¸c˜ao da especifica¸c˜ao.

O s´ımbolo n˜ao-terminal AxiomList denota uma lista de axiomas de ABox, onde cada s´ımbolo n˜ao-terminal Axiom denota um axioma de ABox. O s´ımbolo n˜ao-terminal Axiom denota uma asser¸c˜ao de conceito ou de propriedade, representada na gram´atica pelo s´ımbolo θ. No contexto desta tese, os axiomas de ABox s˜ao definidos de acordo com o fragmento ALC da l´ogica descritiva, conforme descrito na sec˜ao 2.1.1.1.

O s´ımbolo n˜ao-terminal W denota o workflow, sendo definida conforme a gram´atica dada na Figura 3.

SemanticPEWS ::= OntologyDeclConceptDeclPropertyDeclIndividualDeclVariableDeclServiceDecl

SpecificationDecl (3.1)

OntologyDecl ::= ontology Ident=Url (3.2)

ConceptDecl ::= concept Ident=Ident:Ident (3.3)

PropertyDecl ::= property Ident=Ident:Ident (3.4)

IndividualDecl ::= individual Ident=Ident:Ident (3.5)

VariableDecl ::= variable Ident ofType Ident (3.6)

ServiceDecl ::= service Ident=Url (3.7)

SpecificationDecl ::= Pre W Post (3.8)

Pre ::= @pre[AxiomList] (3.9)

Post ::= @post[AxiomList] (3.10)

AxiomList ::= Axiom{, Axiom} (3.11)

Axiom ::= θ (3.12)

Url ::= Ident (3.13)

Ident ::= Letter | Digit | SpecialChar (3.14) Figura 2: Gram´atica das se¸c˜oes de declara¸c˜ao da linguagem de composi¸c˜ao. A linguagem de workflow ´e apresentada na Figura 3. Como pode ser observado a partir da gram´atica, um workflow ´e denotado por W .

O s´ımbolo terminal S representa uma invoca¸c˜ao de servi¸co semˆantico associado a duas tuplas de parˆametros, uma de entrada representada por I e outra de sa´ıda representada por O. A invoca¸c˜ao de servi¸co constitue o elemento b´asico na defini¸c˜ao de workflows. Sua semˆantica intuitiva visa abstrair a funcionalidade espec´ıfica requerida naquele ponto

do workflow onde a invocac˜ao aparece. Em outras palavras, a defini¸c˜ao do workflow baseia-se em um conjunto de funcionalidades abstra´ıdas pelas invoca¸c˜oes dos servi¸cos semˆanticos. Cada invoca¸c˜ao de servi¸co semˆantico corresponde a uma opera¸c˜ao em um servi¸co concreto (ou seja, para cada servi¸co semˆantico, considera-se apenas sua descri¸c˜ao funcional - hI, O, P re, Ei, n˜ao seu modelo de processo - descri¸c˜ao comportamental). Cada opera¸c˜ao do servi¸co semˆantico est´a equipada com uma pr´e-condi¸c˜ao e uma p´os-condi¸c˜ao expressando assim sua semˆantica funcional. As condi¸c˜oes dizem respeito `as suposi¸c˜oes requeridas (pr´e-condi¸c˜oes) sobre o estado do mundo para que a execu¸c˜ao do servi¸co ocorra assim como os efeitos desejados (p´os-condi¸c˜oes) no estado do mundo ap´os sua execu¸c˜ao.

O construtor sequencial, representado pelo s´ımbolo “;”, expressa a composi¸c˜ao sequen- cial. Na express˜ao W1; W2, o workflow W2 inicia sua execu¸c˜ao somente ap´os o t´ermino da

execu¸c˜ao do workflow W1.

O construtor paralelo, representado pelo s´ımbolo “k”, expressa a composi¸c˜ao paralela de workflows. Os workflows W1 e W2iniciam suas execu¸c˜oes de forma independente. Ap´os

o t´ermino da execu¸c˜ao de todos os workflows paralelos, o fluxo de execu¸c˜ao continua com a execu¸c˜ao do pr´oximo workflow.

O construtor condicional, representado por “if A then W1 else W2”, expressa a

composi¸c˜ao condicional de workflows. A semˆantica intuitiva ´e semelhante `a de outras linguagens, onde a execu¸c˜ao do workflow W1 depende da avalia¸c˜ao positiva da condi¸c˜ao

A, enquanto que a execu¸c˜ao do workflow W2 depende da falsidade da condi¸c˜ao A.

A linguagem de asser¸c˜oes usada para expressar as condi¸c˜oes dos construtores (como por exemplo, a asser¸c˜ao A no construtor condicional) usa uma forma simplificada das f´ormulas da l´ogica descritiva. Na linha 3.21 na Figura 3, o s´ımbolo θ representa asser¸c˜oes de conceitos e de propriedades, denotados por C(a) e r(a, b), onde C representa um conceito arbitr´ario expresso no fragmento ALC, r representa uma propriedade primitiva, “a” e “b” representam indiv´ıduos do dom´ınio.

Outro construtor condicional permitido na linguagem de workflow ´e a escolha guar-

dada, representada por “[A1]W1 + [A2]W2”. Neste caso, a execu¸c˜ao dos workflows W1 e

W2 dependem da avalia¸c˜ao positiva de suas respectivas condi¸c˜oes associadas A1 e A2. No

caso de ambas as condi¸c˜oes serem verdadeiras, ´e realizada uma escolha n˜ao-determin´ıstica para decidir qual workflow ser´a executado. No caso de ambas as condi¸c˜oes serem falsas, nenhum dos workflows ´e executado e o estado resultante permanece inalterado.

execu¸c˜ao iterativa do workflow W at´e que a condi¸c˜ao A seja avaliada como falso. W ::= S(I, O) (3.15) | W1 ; W2 (3.16) | W1 k W2 (3.17) | if A1 then W1 else W2 (3.18) | while A1 do W1 (3.19) | [A1]W1+ [A2]W2 (3.20) A ::= ⊤ | ⊥ | θ (3.21)

Figura 3: Construtores de Workflow e de Asser¸c˜oes

3.1.3.2 Semˆantica

A semˆantica formal da linguagem de workflow ´e definida atrav´es da semˆantica ope-

racional estruturada (big-step) [99]. A semˆantica operacional da linguagem ´e descrita a

seguir.

Um estado ´e dado pelo conjunto de asser¸c˜oes (de conceitos e de propriedades) contidas no componente ABox de uma base de conhecimento expressa no fragmento ALC da l´ogica descritiva.

A validade de uma asser¸c˜ao θ, relativa a uma base de conhecimento hT , Ai, pode ser expressa como uma rela¸c˜ao hT , Ai |= θ, onde T e A representam o componente terminol´ogico e o componente assertivo de uma base de conhecimento, respectivamente. A rela¸c˜ao de satisfa¸c˜ao acima pode ser descrita como “θ ´e v´alida na base de conhecimento hT , Ai” ou, de outra forma, “a base de conhecimento hT , Ai satisfaz a asser¸c˜ao θ”.

A interpreta¸c˜ao de asser¸c˜oes ´e dada pela func˜ao de avalia¸c˜ao [[A]] : (T × A) → {T rue, F alse} e definida como a seguir:

[[⊤]](t, a) = T rue [[⊥]](t, a) = F alse

[[θ]](t, a) = ht, ai |= θ

A semˆantica dos construtores da linguagem de workflow descreve uma transi¸c˜ao de uma configura¸c˜ao dada pelo par hW, ht, aii para um novo estado ht, a′i. A transi¸c˜ao para

(servico) ht, a′i = update(ht, ai, ELi)

(S(I, O), ht, ai) ht, a′i

[[P re]](t, a) = True∧ [[ECi]](t, a) = True (seq) (W1, ht, ai) ht, a′i (W2, ht, a′i) ht, a′′i (W1; W2, ht, ai) ht, a′′i (par) (W1, ht, ai) ht, a′i (W2, ht, a′i) ht, a′′i (W 1 k W2, ht, ai) ht, a′∧ a′′i (if ) (W1, ht, ai) ht, a′i

(if A then W1elseW2, ht, ai) ht, a′i

[[A]](t, a) = True

(if1) (W2, ht, ai) ht, a′i

(if A then W1elseW2, ht, ai) ht, a′i

[[¬A]](t, a) = True

(escolha) (W1, ht, ai) ht, a′i

([A1]W1+ [A2]W2, ht, ai) ht, a′i [[A

1]](t, a) = True (escolha1) (W2, ht, ai) ht, a′i ([A1]W1+ [A2]W2, ht, ai) ht, a′i [[A2]](t, a) = True (escolha2) ([A1]W1+ [A2]W2, ht, ai) ht, ai [[¬(A1∨ A2)]](t, a) = True

(while) (W1, ht, ai) ht, a′i (while A1doW1, ht, a′i) ht, a′′i (while A1doW1, ht, ai) ht, a′′i

[[A1]](t, a) = True

(while1)

(while A1doW1, ht, ai) ht, ai

[[¬A1]](t, a) = True

Figura 4: Semˆantica Natural da Linguagem de Workflow. ilustrado na Figura 4.

A semˆantica de uma invoca¸c˜ao de servi¸co ´e ilustrada pela regra (servi¸co) na Figura 4. A regra expressa que uma nova base de conhecimento ht, a′i ´e obtida como resultado da

invocac˜ao de um servi¸co web semˆantico. A nova base de conhecimento ht, a′i ´e obtida

como resultado da aplica¸c˜ao da opera¸c˜ao de atualiza¸c˜ao update na base de dados inicial juntamente com o efeito ELi do servi¸co invocado. A asser¸c˜ao ELi denota o literal Li

associado ao i-´esimo efeito condicional Ci/Li do servi¸co invocado S. Entretanto, para que

ocorra a transi¸c˜ao para a nova base de conhecimento ht, a′i, ´e necess´ario que as condi¸c˜oes

especificadas na regra sejam satisfeitas. As condi¸c˜oes requerem que a pr´e-condi¸c˜ao P re do servi¸co invocado S seja satisfeita no estado inicial (i.e., ht, ai), assim como o requisito de que uma das condi¸c˜oes dadas nos efeitos condicionais Ci do servi¸co S (i.e., ECi) seja

tamb´em satisfeita pela base de conhecimento inicial. A necessidade do uso da opera¸c˜ao

update para a atualiza¸c˜ao da base de conhecimento ´e discutida na se¸c˜ao 2.1.1.2. Na

se¸c˜ao 3.1.2 ´e apresentada a defini¸c˜ao formal da opera¸c˜ao update (listing 3.1).

A semˆantica operacional do construtor de composi¸c˜ao sequencial descreve que a execu¸c˜ao sequencial de dois workflows W1 e W2 produz um ABox a′′ como resultado,

sendo que a configura¸c˜ao usada para a transi¸c˜ao do workflow W2 contempla o ABox

intermedi´ario a′ produzido como resultado da transi¸c˜ao da configura¸c˜ao de W 1.

A semˆantica do construtor de composi¸c˜ao paralela descreve que o ABox resultante da execu¸c˜ao dos workflows paralelos W1 e W2 ´e dada pela conjun¸c˜ao dos ABoxes produzidos

por cada transi¸c˜ao separadamente, i.e., a′∧ a′′. Esta regra assume que os workflows W 1 e

W2 s˜ao independentes, caso contr´ario, a conjun¸c˜ao dos ABoxes resultantes poderia gerar

um base de conhecimento inconsistente.

A semˆantica do construtor condicional if (dada pelas regras if e if1) expressa que um

novo ABox a′ ´e obtido como resultado da execu¸c˜ao do workflow W

1 ou W2, dependendo

do resultado da avaliac˜ao da condi¸c˜ao A.

A semˆantica do construtor de escolha guardada ´e expressa pelas regras escolha, escolha1

e escolha2 na Figura 4. Como pode ser observado nas regras escolha e escolha1, o constru-

tor escolha guardada ´e n˜ao-determin´ıstico uma vez que ambas as condi¸c˜oes A1e A2podem

ser avaliadas como verdadeiras. Neste caso, a sele¸c˜ao n˜ao-determin´ıstica do workflow a ser executado ser´a decidida pelo mecanismo de execu¸c˜ao de workflow. Independente do workflow escolhido para execu¸c˜ao, um novo ABox a′ ser´a produzido como resultado. A

regra escolha2 expressa a situa¸c˜ao em que ambas as condi¸c˜oes A1 e A2 s˜ao avaliadas como

falsas, garantindo assim que o ABox resultante ´e idˆentico `aquele da configura¸c˜ao inicial, ou seja, n˜ao h´a atualiza¸c˜ao de estado.

Por fim, as regras while e while1 expressam a semˆantica operacional do construtor

iterativo da linguagem de workflow. A regra while1 expressa a situa¸c˜ao em que a condi¸c˜ao

´e avaliada para falso e o ABox dado na configura¸c˜ao inicial ´e mantido inalterado. Por outro lado, a regra while expressa a semˆantica no caso em que a condi¸c˜ao ´e verdadeira e a itera¸c˜ao ´e executada.

3.2

M´etodo de Certifica¸c˜ao

O objeto de estudo desta tese est´a relacionado com a verifica¸c˜ao formal de composi¸c˜oes de servi¸cos web semˆanticos. A verifica¸c˜ao formal diz respeito `a busca de uma prova de que uma 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˜oes. O m´etodo de certifica¸c˜ao descrito nesta se¸c˜ao objetiva prover os meios necess´arios para derivar a prova de que a composi¸c˜ao de servi¸cos web semˆanticos cumpre uma dada especifica¸c˜ao.

As composi¸c˜oes de servi¸cos web semˆanticos s˜ao formalizadas atrav´es da gram´atica descrita na se¸c˜ao 3.1.3. Os servi¸cos web semˆanticos invocados nas composi¸c˜oes (workflows) s˜ao definidos de acordo com a estrutura descrita na defini¸c˜ao 3.1.2.

O m´etodo de certifica¸c˜ao foi estruturado em duas dimens˜oes, denominadas de base e

funcional.

A dimens˜ao base tem como objetivo verificar que as invoca¸c˜oes dos servi¸cos web semˆanticos contidas no workflow (os elementos base) est˜ao em conformidade com a de-

fini¸c˜ao dos servi¸cos web semˆanticos. A similaridade semˆantica entre os conceitos on-

tol´ogicos usados para descrever os parˆametros formais dos servi¸cos ´e usada para certificar que a invocac˜ao dos servi¸cos est´a em conformidade com suas defini¸c˜oes.

A dimens˜ao funcional tem como objetivo verificar que o workflow cumpre uma dada especifica¸c˜ao. Esta dimens˜ao emprega uma abordagem axiom´atica baseada na l´ogica de Hoare [54] para certificar que o workflow verifica a sua especifica¸c˜ao.

As se¸c˜oes a seguir apresentam a formaliza¸c˜ao do m´etodo de certifica¸c˜ao. A descri¸c˜ao formal do m´etodo de certifica¸c˜ao proposto ´e acompanhada por sua aplica¸c˜ao em um exem- plo objetivando exemplificar e destacar os aspectos pr´aticos do m´etodo de certifica¸c˜ao.

3.2.1

Running Example

Esta se¸c˜ao descreve o running example usado para exemplificar a aplica¸c˜ao do m´etodo de certifica¸c˜ao proposto neste trabalho. O running example foi adaptado e estendido do exemplo Congo Service apresentado em [100], o qual est´a inserido no contexto de com´ercio eletrˆonico. Seu prop´osito ´e permitir (iterativamente) a escolha de diversos pro- dutos atrav´es do fornecimento de suas especifica¸c˜oes, a realiza¸c˜ao do pagamento com cart˜ao de cr´edito e o agendamento da entrega dos produtos. A funcionalidade do work- flow est´a definida atrav´es da orquestra¸c˜ao de diversos servi¸cos web semˆanticos, conforme ilustrado na Figura 5.

A l´ogica do workflow, ilustrado na Figura 5, ´e descrita pela composi¸c˜ao paralela de dois (sub-) workflows W1 (linhas 1 a 8) e W2(linhas 10 a 29), os quais s˜ao compostos

sequencialmente com o (sub-) workflow W3 (linha 31). Em uma perspectiva macro, o

workflow pode ser expresso pela composi¸c˜ao dos respectivos (sub-) workflows da seguinte forma:

O workflow W1 expressa a funcionalidade de autentica¸c˜ao do usu´ario requerida pela

aplica¸c˜ao de com´ercio eletrˆonico. A funcionalidade ´e implementada atrav´es da verifica¸c˜ao se o usu´ario est´a ou n˜ao cadastrado na aplica¸c˜ao de com´ercio eletrˆonico. Caso n˜ao esteja cadastrado, o workflow W1 proceder´a com o cadastramento do usu´ario. Ap´os o cadas-

tramento, o usu´ario ser´a autenticado atrav´es da cria¸c˜ao de uma sess˜ao, permitindo ent˜ao que as informa¸c˜oes do perfil do usu´ario sejam obtidas.

O workflow W2 permite ao usu´ario selecionar (iterativamente) os produtos desejados.

Para isto, o workflow solicita ao usu´ario, atrav´es da invoca¸c˜ao do servi¸co getProductS-

pecification, a especifica¸c˜ao do produto desejado. A partir da especifica¸c˜ao informada

pelo usu´ario, o workflow procede com a verifica¸c˜ao da disponibilidade do produto em estoque atrav´es da invoca¸c˜ao do servi¸co search. Caso haja disponibilidade do produto em estoque, este ser´a adicionado ao carrinho de compras do usu´ario e a especifica¸c˜ao de um novo produto ser´a solicitada ao usu´ario. A cada inclus˜ao de um produto no carri- nho, obtˆem-se como resultado o valor total dos produtos contidos no carrinho. Ap´os o t´ermino da escolha dos produtos, o workflow proceder´a com a efetiva¸c˜ao do pagamento dos produtos. O pagamento ´e realizado em duas etapas. Primeiramente, ser´a autorizado o d´ebito no cart˜ao de cr´edito do usu´ario do montante total dos produtos, atrav´es de um servi¸co de autoriza¸c˜ao de pagamento. Ap´os a autoriza¸c˜ao do d´ebito no cart˜ao de cr´edito, o pagamento ´e informado atrav´es da invoca¸c˜ao do servi¸co pay.

Ambos os workflows W1 e W2 podem ser executados em paralelo uma vez que n˜ao

h´a dependˆencia de dados entre eles. Ap´os o t´ermino da execu¸c˜ao paralela dos workflows W1 e W2, ´e executado o workflow W3, o qual ´e respons´avel pelo agendamento da entrega

dos produtos. O agendamento da entrega depende das informa¸c˜oes produzidas pelos workflows W1 e W2, i.e., das informa¸c˜oes do perfil do usu´ario (produzidas pelo workflow

W1) e da fatura dos produtos (produzida pelo workflow W2).

O dom´ınio da aplica¸c˜ao de com´ercio eletrˆonico (Congo) considerado aqui ´e repre- sentado por uma base de conhecimento denominada KB@ = hT@, A@i. O componente

terminol´ogico T@ da base KB@ descreve os conceitos usados para expressar o vocabul´ario

do dom´ınio assim como o relacionamento entre eles. O componente assercional A@ con-

templa os fatos descrevendo o estado do mundo. A defini¸c˜ao dos conceitos est´a ilustrada na Figura 6.

A terminologia usada no exemplo ´e definida a partir dos conjuntos de s´ımbolos NC,

1 ( 2 i f not R e g i s t e r e d ( c r e d ) then 3 c r e a t e A c c t (< c r e d >, <s >) 4 5 s i g n I n (< c r e d >, <s >) ; 6 l o a d P r o f i l e (< c r e d >, <p r o f >) 7 ) 8 | | 9 ( 10 g e t P r o d u c t S p e c i f i c a t i o n (<>,<prodSpec >) 11 ; 12 w h i l e P r o d u c t S p e c i f i c a t i o n ( prodSpec ) do 13 ( 14 s e a r c h (<prodSpec >, <product >) ; 15 16 i f ( I n S t o c k ( p r o d u c t ) ) 17 p u t I n C a r t (< product >, <totalAmount >) ; 18 19 g e t P r o d u c t S p e c i f i c a t i o n (<>,<prodSpec >) 20 ) 21 ;

22 w h i l e not ( ChargedCard o r NotAuthorized ) ( c c ) do

23 (

24 a u t h o r i z e (<cc , totalAmount >, <auth >)

25 ) ;

26

27 pay (<auth >, <inv >)

28 )

29 ;

30 s c h e d u l e D e l i v e r y (< p r o f , inv >, <d e l i v >)

Figura 5: Se¸c˜ao de defini¸c˜ao do workflow para o exemplo de com´ercio eletrˆonico. definidos, respectivamente.

NC = {CreditCard, Authorization, Invoice, Credential, OpenSession, P roduct,

ClosedSession, Address, InStock, OutOf Stock, P roductSpecif ication NP = {hasCharge, hasP ayment, hasDeliveryInP rogress,

hasLogin, hasP roductAvailable}

Ndef = {ChargedCard, P aidInvoice, P aymentM ethod, ScheduledDelivery, Session,

Registered, Logged}

A terminologia ´e composta por um conjunto de axiomas de equivalˆencia, conforme ilustrado na Figura 6. O conceito ChargedCard expressa um conceito representando os cart˜oes de cr´edito que possuem algum d´ebito. Formalmente, o conceito ChargedCard define o conjunto de indiv´ıduos do dom´ınio que s˜ao parte da extens˜ao do conceito Cre-

ditCard e que est˜ao relacionados, atrav´es da propriedade hasCharge, a outro indiv´ıduo

pertencente `a extens˜ao do conceito Authorization. O conceito PaidInvoice denota um conceito representando as faturas quitadas. Formalmente, o conceito define o conjunto de indiv´ıduos do dom´ınio que pertencem `a extens˜ao do conceito Invoice e que est˜ao relacio- nados, atrav´es da propriedade hasPayment, a outro indiv´ıduo pertencente `a extens˜ao do

ChargedCard ≡ CreditCard ⊓ ∃hasCharge.Authorization P aidInvoice ≡ Invoice ⊓ ∃hasP ayment.P aymentM ethod P aymentM ethod ≡ CreditCard ⊔ Authorization

ScheduledDelivery ≡ Delivery ⊓ ∃hasDeliveryInP rogress.Address Session ≡ OpenSession ⊔ ClosedSession

Registered ≡ Credential ⊓ ∃hasLogin.Session Logged ≡ Credential ⊓ ∃hasLogin.OpenSession

Figura 6: Componente terminol´ogico (TBox) da base de conhecimento K@.

conceito PaymentMethod. O conceito PaymentMethod denota o conjunto de indiv´ıduos do dom´ınio que pertencem `a extens˜ao do conceito CreditCard ou do conceito Authorization. O conceito ScheduledDelivery denota o conjunto de indiv´ıduos do dom´ınio que perten- cem `a extens˜ao do conceito Delivery e que est˜ao relacionados, atrav´es da propriedade

hasDeliveryInProgress, a outro indiv´ıduo pertencente `a extens˜ao do conceito Address. O

conceito Session denota o conjunto de indiv´ıduos do dom´ınio que pertencem `a extens˜ao do conceito OpenSession ou do conceito ClosedSession. Por fim, os conceitos Registered e

Logged possuem defini¸c˜oes semelhantes, diferenciando-se apenas no conceito usado para

expressar a restri¸c˜ao existencial. Ambos os conceitos denotam um conjunto de indiv´ıduos do dom´ınio que pertencem `a extens˜ao do conceito Credential e que est˜ao relacionados, atrav´es da propriedade hasLogin, a outro indiv´ıduo pertencente `a extens˜ao do conceito

Session (no caso do conceito Registered ) ou do conceito OpenSession (no caso do conceito Logged ).

Observe que o TBox considerado neste exemplo ´e ac´ıclico e n˜ao cont´em axiomas de

inclus˜ao de conceito arbitr´ario C ⊑ D. Estas restri¸c˜oes nos axiomas da terminologia s˜ao

necess´arias para evitar problemas semˆanticos na atualiza¸c˜ao da base de conhecimento, o que poderia produzir resultados inesperados e pouco intuitivos. Os problemas decorrentes de atualiza¸c˜oes envolvendo terminologias c´ıclicas s˜ao discutidos na se¸c˜ao 2.1.1.2.

Documentos relacionados