A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Formalizando o XMLaw Rodrigo Paes

Apresentações semelhantes


Apresentação em tema: "Formalizando o XMLaw Rodrigo Paes"— Transcrição da apresentação:

1 Formalizando o XMLaw Rodrigo Paes

2 © LES/PUC-Rio Motivação Revisores –The concepts of scenes and XMLaw require more rigorous treatment such as its underlying programming models, execution models and semantics Formalização iria ter como consequências –Reflexão sobre a semântica dos elementos do XMLaw –Deixar mais claro qual o poder de expressão da linguagem –Realizar verificações nas leis Estruturais Dinâmicas –Permitir comparações mais precisas com os trabalhos relacionados

3 © LES/PUC-Rio Ferramenta escolhida Prolog –acrónimo do francês Programmation en Logique –baseado num subconjunto do cálculo de predicados de primeira ordem, o que é definido por cláusulas de Horn Exemplos –João é pai de Antônio. father(João", Antônio"). –X é avô de Z, SE X é pai de Y e Y é pai de Z grandFather(GrandFather, Person) :- father(Father, Person), father(GrandFather, Father).

4 © LES/PUC-Rio Exemplos de perguntas Fatos –father(João", Antônio"). –father(Renato", João"). Regra –grandFather(GrandFather, Person) :- father(Father, Person), father(GrandFather, Father). Perguntas –João é pai de Vitor? father(João, Vitor). –De quem Renato é pai? father(Renato, X). –Renato é avô de Antônio? grandfather(Renato, Antonio ). Uma teoria é uma coleção de fatos e regras.

5 © LES/PUC-Rio Objetivo Especificar uma teoria para o modelo conceitual do XMLaw usando prolog O que já foi feito? –Especificação parcial da lógica do protocolo

6 © LES/PUC-Rio Exemplo Protocolo + Norma No prolog: transition(t1, s1, m1, s2). transition(t2, s2, m2, s3). transition(t3, s2, m3, s4). transition(t4, s4, m4, s5). transition(t5, s1, m5, s5). transition(t6, s3, m6, s4). norm(n1,initiator,ativa,ref(t6)). norm(n1,initiator,ativa,ref(t3)). norm(n1,initiator,desativa,ref(t4)). s1 s2 s3 s4 s5 m1 m2 m3 m4 m5 m6 t1 t2 t3 t4 t6 t5 n1

7 © LES/PUC-Rio Exemplo (1) % % move/2 % move(EstadoOrigem,EstadoDestino,[]) :- EstadoOrigem=EstadoDestino. move(EstadoOrigem,EstadoDestino,[Tid|Resto]) :- transition(Tid,EstadoOrigem,_,AlgumEstado), move(AlgumEstado,EstadoDestino,Resto). Exemplo de pergunta: Quais os caminhos entre s1 e s4 ? –move(s1,s4,Caminho).

8 © LES/PUC-Rio Exemplo (2) % % messages_not_declared/2 % % Verifica se existem mensagens que estão sendo utilizadas pelas transições mas que não foram declaradas. % messages_not_declared(MessageId,TransitionId) :-transition(TransitionId,_,MessageId,_), \+( message_ref(MessageId) ). Exemplo de pergunta –Existe alguma mensagem utilizada por qualquer transicao que não foi declarada? messages_not_declared(MessageId, TransitionId), transition(TransitionId,_,_,_).

9 © LES/PUC-Rio Exemplo (3) % % Verifica quais as sequencias de eventos necessários para ativar uma determinada transição. % % Lógica: Existe uma Evento que ativa a transição determinada? Se existe, qual o estado que a transiçao se origina? Existe uma outra transicao que leve a este estado? Se existe, quais os eventos que levam a esta transicao (Note aqui a recursão) ? % eventos(Tid,[Eid]) :- transition(Tid,s1,Eid,_). eventos(Tid,[Eid|Resto]) :-transition(Tid,Estado,Eid,_), transition(Outra,_,_,Estado), eventos(Outra,Resto). Exemplo de pergunta –Quais as sequências de eventos que ativam t4 eventos(t4,Eventos).

10 © LES/PUC-Rio Exemplo (4) % % Como uma norma poderia ser ativada? % como_ativar_norma(Nid,Resultado) :- norm(Nid,_,ativa,ref(Tid)), eventos(Tid,Resultado). Exemplo de pergunta –Como a norma n1 poderia ser ativada? como_ativar_norma(n1,Resultado).

11 © LES/PUC-Rio O que falta? Modelar a dinâmica 1.Modelo de eventos do XMLaw 2.Cenas 3.Clocks 4.Actions 5.Constraints 6.…

12 Obrigado Rodrigo Paes


Carregar ppt "Formalizando o XMLaw Rodrigo Paes"

Apresentações semelhantes


Anúncios Google