An Automatic Approach to Generate Rules from Norms to Govern the Behavior of Agents Autor: Viviane Torres Silva Departamento de Sistemas Informáticos y.

Slides:



Advertisements
Apresentações semelhantes
33 truques e segredos para você se tornar um Expert em AutoCAD!
Advertisements

Assis Francisco Haubert Ferreira
TXL Problema de Transformação Cminus. Tópicos Problema TXL o Estrutura de um programa o Definição da gramática o Regras de transformação Possível solução.
Linguagens de Programação para SMA Viviane Torres da Silva
Viviane Torres da Silva
Modelos e Sistemas de Reputação
Normas em SMA Baldoino Fonseca
Paulo Marques Hernâni Pedroso
SQL Structured Query Language (continuação)
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capitulo 7 – Métodos avançados Capitulo 7 Métodos avançados.
Blocos Dinâmicos Paramétricos no AutoCAD® 2012
Objectivos Objectivos
Tipos de igualdade X = Y é verdadeiro se X é igual a Y. X is E é verdadeiro se X é a avaliação da expressão E. E1 =:= E2 é verdadeiro se a avaliação da.
Gerenciamento Baseado em Políticas
Metodologias Equipe do Curso de ES para SMA
Linguagens de Modelagem (cont.) (IV)
Viviane Torres da Silva
Frameworks Conceituais
Linguagens de Modelagem para SMA
Raciocínio Viviane Torres da Silva
Estudo sobre normas e emoções (proposta de trabalho)
Viviane Torres da Silva
Indefinite Pronouns.
DIRETORIA ACADÊMICA NÚCLEO DE CIÊNCIAS HUMANAS E ENGENHARIAS DISCIPLINA: INGLÊS FUNDAMENTAL - NOITE PROFESSOR: JOSÉ GERMANO DOS SANTOS PERÍODO LETIVO
Börje Karlsson.
Sistemas Distribuídos CORBA
Jess – the Rule Engine for the Java™ Platform
SECEX SECRETARIA DE COMÉRCIO EXTERIOR MINISTÉRIO DO DESENVOLVIMENTO, INDUSTRIA E COMÉRCIO EXTERIOR BRAZILIAN EXPORTS STATISTICAL DEPURATION SYSTEM Presentation.
Query Tuning Lílian Simão Oliveira.
MODAL verbs.
Reemissões Pricing Brasil 01 Julho 2010.
Searle, John. Consciência e Linguagem. S. Paulo: Martins Fontes 2010
Python: Exceções, Iteradores e Geradores
Regras de Produção: o Motor de Inferência JESS
INF 1771 – Inteligência Artificial
Adriano Melo sistemas inteligentes
Uma Abordagem Baseada em Modelos para Detecção de Situações em Sistemas Sensíveis ao Contexto Izon Thomaz Mielke Orientadora: Patrícia Dockhorn Costa.
Sistemas Baseados em Conhecimento
Metodologias (Parte II) Viviane Torres da Silva
Agent Reputation Trust (ART) Testbed Andrew Diniz da Costa
7 © 2005 by Pearson Education SIP  Session Initiation Protocol  Desenvolvido pelo IETF Visão de longo prazo do SIP  Todas chamadas telefônicas.
WEKA Jacques Robin João Batista Marcelino Pereira junho/2001.
Tempos Verbais I PRESENTE SIMPLES PRESENTE CONTÍNUO
XML – Extensible Markup Language [Introdução] Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003 Material elaborado por Lisandra Cazassa.
Aprendizagem por Reforço Alexandre Luiz G. Damasceno.
Programação Concorrente em Erlang Grupo: Alexandre Siebra Byron Bezerra Igor Sampaio Mozart Araújo Filho Sérgio Queiroz.
ORTS A Free Software RTS Game Engine. Conversa de Hoje O que é ORTS? Que competição é essa? –Game 1 –Game 2 –Game 3 Como rodar? Como estudar?
Semântica de Linguagens de Programação
PAST PERFECT Profª Elaine R Cassoli.
Rick Astley Cry for help She’s taken my time. Ela tem tomado o meu tempo Convince me she’s fine. Me convencendo de que está bem But when she leaves.
Explaining answers from the Semantic Web: the Inference Web Approach Deborah L. McGuinness, Paulo Pinheiro da Silva ∗ Knowledge Systems Laboratory, Stanford.
Sistemas de Governança (Enforcement Systems) Viviane Torres da Silva
Agente de reputação para ART Testbed Andrew Diniz da Costa
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Concorrência em LF1 Paradigmas de Linguagens de Programação 20 de junho de 2006 Aline Timóteo Carlos Rodrigues Flávia Falcão Tiago Rolim.
Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha.
Semântica de Ações Conceitos Básicos de Semântica de Ações, Especificações em Semântica de Ações, Primeiros Exemplos de Ações, WebAni.
Mestrando Gabriel Detoni Orientador Prof. Dante Barone Controle para Futebol de Robôs Utilizando Processamento Paralelo Plano de Estudos e Pesquisa (PEP)
Modelos e Sistemas de Reputação Viviane Torres da Silva
Trasição automática Perhaps love is like a resting place Talvez o amor seja como um lugar de descanso A shelter from the storm Um abrigo da tempestade.
Introdução à Robocup RoboCupCIn. Introdução By the year 2050, develop a team of fully autonomous humanoid robots that can win against the human world.
José Antônio da Cunha 2/6/2016 José Antônio - CEFET-RN 1 Disciplina: Banco de Dados.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
Subway Network - São Paulo City
Me and my family Hi there!
Three analogies to explain reactive power Why an analogy? Reactive power is an essential aspect of the electricity system, but one that is difficult to.
I am from BRAZIL!.
Student #1: Go to the board and write a word.
Transcrição da apresentação:

An Automatic Approach to Generate Rules from Norms to Govern the Behavior of Agents Autor: Viviane Torres Silva Departamento de Sistemas Informáticos y Comptuación – UCM, Spain, Madrid

 Normas Permissões Proibições Obrigações  Proposta Uma linguagem de especificação de normas (estendida) Usar regras de produção para implementar as normas (JESS) Usar uma aplicação de tradução automática de linguagens (TXL)

 [GARCIA-CAMINO] Propõe uma linguagem de especificação de normas Suporta ações de diálogo (dialogical actions) Conjunto de punições e recompensas limitado Não há dependência entre normas Não definiu um método de tradução da especificação para regras de produção

 Proposta Estender a linguagem BNF de [GARCIA- CAMINO] Permitir normas para ações não dialogais (non- dialogical actions) Permitir dependência entre normas Permitir normas com condições e situações temporais Definir quem faz as punições e as recompensas

 Jogo de futebol O jogo em si é uma organização Papéis:  Árbitro  (inicia, termina, checa equipamento, puni)  Treinador  (substituir os jogadores)  Jogador Normal (kicker)  (kick the ball, handle the ball)  Goleiro  (kick the ball, handle the ball)

 Norm 1: The referee must check the players’ equipment before starting the game. Punishment: The referee is fired and substituted by the second referee by the referees’ syndicate. Reward: The referee’s reputation is increased.  Norm 2: A coach cannot substitute more than three players in the same game. Punishment: The referee sends off the coach.  Norm 3: The referee must send off a coach if (s)he has substituted more than three players in the same game. Norm 3 is activated when norm 2 is violated. Punishment: The referee’s reputation is decreased.

 Norm 4: Players cannot leave the playing field during the game. Punishments: The first time, the player receives a yellow card from the referee. The second time, the player is sent off the game by the referee.  Norm 5: The referee must show a yellow card to a player after (s)he has left the field for the first time. Norm 5 is activated when norm 4 is violated for the first time. Punishment: The referee’s reputation is decreased.  Norm 6: The referee must send off a player after (s)he has left the field for the second time. Norm 6 is activated when norm 4 is violated for the second time. Punishment: The referee is fired and substituted by the second referee by the referees’ syndicate. Punishment: The referee’s reputation is decreased.

 Norm 7: Kickers cannot handle the ball. Punishment: The referee declares a penalty.  Norm 8: The referee must declare a penalty if a kicker handles the ball. Norm 8 is activated when norm 7 is violated. Punishment: The referee is fired and substituted by the second referee by the referees’ syndicate.  Norm 9: The goalkeeper is allowed to handle the ball.  Norm 10: The referee is only allowed to stop the game 1h and 30 min after the game has started. Punishment: The referee’ reputation is decreased.

 Ações Dialogais: ocorre quando um agente se comunica com outro através de uma mensagem explícita  Ex. Iniciar / Parar a partida Não Dialogais: Ocorre quando um agente executa não relacionada a interação via mensagens.  Modificar ambiente  Ex. Chutar ou pegar a bola

 A linguagem de Garcia-Camino não suporta ações não-dialogais É preciso especificar uma nova regra da linguagem:  ::= |  ::= | ‘EXECUTE’ | ’:’ ‘EXECUTE’ | ‘EXECUTE’ |’ALL EXECUTE’

 ::= | ’.’ ’(‘ ’) ’ ’(‘ ’)’ | : ‘(’ ’)’’(‘<contract’ )’  Exemplo goalKeeperHandBall PERMISSION {(goalKeeper EXECUTE play:handleBall () (;;) ) }

 Para permitir abstrair comportamento de métodos/planos durante a verificação de uma norma, assim como inferir sobre o comportamento dos agentes para gerir as normas, sugere-se o uso de contratos (contracts) e a linguagem OCL (Object Constraint Language) Specifying Norm 2: substitutePlyer FORBIDDEN {( coach EXECUTE managingTeam:SubstitutePlayer (outPlayer,inPlayer,team) ( ::team.coach = coach; ::team.substitutions = AND ::team.playersInField->excludes(outPlayer) AND ::team.playersInField->includes(inPlayer); ) IF ::team.substitutions >= 3 ) (PUNISHMENT: referee PUNISHES UTTER(game;si;CAUTION(S:;SR:referee;R:_;RR:coach [RT:_;CO: sendOff ;LA:_;EN:_;ON: soccerGame ;PR:_;ID:_;RW:_;IR:_;RB:_])) ) }

 ::= BEFORE | AFTER | BETWEEN '(' ',' ')‘  Specifying Norm 5: yellowCard OBLIGED {( UTTER(game;si; CAUTION (S:;SR:referee;R:_;RR:kicker [RT:_;CO:yellowCard;LA:_;EN:_;ON:soccerGame;P R:_;ID:_;RW:_;IR:_;RB:_])) AFTER ( kicker EXECUTE moving:LeaveField() eld) ) IF ::kicker.yellowCard = false ) (PUNISHMENT: refereeSyndicate PUNISHES ::referee.reputation = }

 ::= | 'NOT'  Specifying Norm 8: penalty OBLIGED {(UTTER(game; si; PENALTY(S:z;SR:referee;R:kickerTeam;RR:_ [RT:_;CO:penalty;LA:_;EN:_;ON:soccerGame;PR:_;ID:_;RW:_ ;IR:_;RB:_])) IF kicker EXECUTE play:handleBall ()(;;)) (PUNISHMENT: refereeSyndicate PUNISHES refereeSyndicate EXECUTE managingReferees:FireReferee(game,referee)(;;) ) (PUNISHMENT: refereeSyndicate PUNISHES refereeSyndicate EXECUTE managingReferees:ContractReferee(game)(;;)) }

 A violação, contemplação, ativação ou desativação de uma norma pode ativar outra norma Proibir atividades para sanar uma norma violada ou punir o infrator Permitir atividades para premiar o agente que cumpriu com uma norma

 Relação de punição/recomensa: Specifying Norm 2: substitutePlyer FORBIDDEN {( coach EXECUTE managingTeam:SubstitutePlayer (outPlayer,inPlayer,team) ( ::team.coach = coach; ::team.substitutions = AND ::team.playersInField->excludes(outPlayer) AND ::team.playersInField->includes(inPlayer); ) IF ::team.substitutions >= 3 ) (PUNISHMENT: referee PUNISHES UTTER(game;si;CAUTION(S:;SR:referee;R:_;RR:coach [RT:_;CO: sendOff ;LA:_;EN:_;ON: soccerGame ;PR:_;ID:_;RW:_;IR:_;RB:_])) ) }

 Relação de ativação, desativação, violação ou contemplação  Specifying Norm 6:

norm6 OBLIGED { ( UTTER(game;si;CAUTION(S:;SR:referee;R:_;RR:kicker [RT:_;CO:sendOff;LA:_;EN:_;ON:soccerGame;PR:_;ID:_;RW:_;IR:_;RB:_])) BETWEEN ( ::kicker.yellowCard = true, 2 MINUTES OF kicker EXECUTE play:handleBall ()(;;) ) IF VIOLATED norm4 FORBIDDEN { ( kicker EXECUTE moving:LeaveField () ( ::agent.position<>inField; ) BETWEEN ( UTTER(game; si; INFORM(S:;SR:referee;R:_;RR:_ [RT:_;CO:gameStart;LA:_;EN:_;ON:_;PR:_;ID:_;RW:_;IR:_;RB:_])), UTTER(game; si; INFORM(S:;SR:referee;R:_;RR:_ [RT:_;CO:gameStop;LA:_;EN:_;ON:_;PR:_;ID:_;RW:_;IR:_;RB:_])) ) ) (PUNISHMENT: IF ::kicker.yellowCard = false referee PUNISHES UTTER(game;si;CAUTION(S:;SR:referee;R:_;RR:kicker [RT:_;CO:yellowCard;LA:_;EN:_;ON:soccerGame;PR:_;ID:_;RW:_;IR:_;RB:_])) ) (PUNISHMENT: IF ::kicker.yellowCard = true referee PUNISHES UTTER(game;si;CAUTION(S:;SR:referee;R:_;RR:kicker [RT:_;CO:sendOff;LA:_;EN:_;ON:soccerGame;PR:_;ID:_;RW:_;IR:_;RB:_])) ) } AND ::kicker.yellowCard = true ) (PUNISHMENT: refereeSyndicate PUNISHES refereeSyndicate EXECUTE managingReferees:FireReferee(game,referee)(;;) ) (PUNISHMENT: refereeSyndicate PUNISHES refereeSyndicate EXECUTE managingReferees:ContractReferee(game)(;;) ) }

 Adições: Omissão do agente ou papel que envia/recebe a mensagem Uso da linguagem ACL para especificar as mensagens

 Como? Transformar as normas especificadas na linguagem proposta em regras de produção legíveis por um motor de inferência  JESS:  Fatos são atributos observáveis e ações executadas pelos agentes,além da informação das normas ativadas, desativadas, violadas ou contempladas

 É possível especificar uma norma com 4 regras Rule i: Ativa uma norma Rule ii: Desativa uma norma Rule iii: recompensa um agente que tenha contemplado uma norma  Obrigações -> quando executa a ação  Proibições -> quando não executa a ação até a desativação da norma  Permissões -> não é usualmente recompensado Rule iv: Puni um agente que tenha violado a norma

 Propõe o uso de TXL ( para a tradução das regras da linguagem normativa para regras do JESShttp:// Norm-independent rules Norm-dependent rules

 Simples obrigação, proibição ou permissão (sem condição ou condição temporal) Nunca são desativadas (- rule(ii) )  Obrigação e permissão Somente rule(i) e rule(iii) são necessárias Não é possível puní-las (pois não há um deadline)  Proibição Somente rule(i) e rule(iv) são necessárias Não é possível recomensá-las (pois não há um deadline)

Implementing Norm 7: ;(rule i) (defrule handleBall_rule_i ?agents (foreach ?agent (list ?agents) (assert (FORBIDDEN-non-dialogical-action-plan (entity (fact-slot-value ?agent agents)) (role kicker) (plan play) (action handleBall)(attribs "_ ") (contract-pre "_ ") (contract-post "_ ") (contract-inv "_ ") (punishment "string de punição") (condition "_ ") (status ACTIVATED))) )

;(rule iv) (defrule handleBall_rule_iv ?currentTime <- (currentTime) ?forbidden <- (FORBIDDEN-non-dialogical-action-plan (plan play) (action handleBall)(attribs "_ ") (contract-pre "_ ") (contract-post "_ ") (contract-inv "_ ") (punishment "string de punição") (condition "_ ") (status ACTIVATED)) ?factViolatingNorm <- (non-dialogical-action-plan (plan play) (action handleBall)(attribs "_ ") (contract-pre "_ ") (contract-post "_ ") (contract-inv "_ ")) => (if (= (fact-slot-value ?factViolatingNorm role) (fact-slot-value ?forbidden role)) then (assert (NormStatus_per_Agent (agent (fact-slot-value ?factViolatingNorm entity)) (norm (fact-id ?forbidden))(status VIOLATED) (reason (fact-id ?factViolatingNorm)))) (assert (PUNISHMENT (norm (fact-id ?forbidden)) (authority referee) (punishedAgent (fact-slot-value ?factViolatingNorm entity)) (punishment "string de punição"))) ) )

 Obrigações onde X deve executar antes de W ocorrer  Deve-se definir as 4 rules Rule(i): Ativa a obrigação de executar X Rule(ii): Desativa a obligação de executar X quando W ocorrer Rule(iii): Detecta o cumprimento da obrigação e gera a recompensa Rule(iv): Detecta a violação e gera a violação caso X não seja executada até W ocorrer

Norm 1 ;(rule i) (defrule checkEquipment_rule_i => (assert (OBLIGED-non-dialogical-action-plan (entity referee) (plan managingGame) (action checkEquipment) (attribs "_ players ") (contract-pre "_ ") (contract-post "_ ") (contract-inv "_ ") (punishment "_ refereeSyndicate PUNISHES refereeSyndicate EXECUTE managingReferees : FireReferee (game, referee) (;;) ") (punishment "_ refereeSyndicate PUNISHES refereeSyndicate EXECUTE managingReferees : ContractReferee (game) (;;) ") (reward "_ refereeSyndicate REWARDS : referee.reputation = : PRE + 1 “) (condition "_ BEFORE (UTTER (game; si; INFORM (S :; SR : referee; R : _; RR : _ [RT : _; CO : gameStart; LA : _; EN: _; ON : _; PR : _; ID : _; RW : _; IR: _; RB : _]))) ") (status ACTIVATED))) )

;(rule ii) (defrule checkEquipment_rule_ii ?currentTime <- (currentTime) ?obliged <- (OBLIGED-non-dialogical-action-plan (plan managingGame) (action checkEquipment)(attribs "_ players ") (contract-pre "_ ") (contract-post "_ ") (contract-inv "_ ") (punishment "_ refereeSyndicate PUNISHES refereeSyndicate EXECUTE managingReferees : FireReferee (game, referee) (;;) ") (punishment "_ refereeSyndicate PUNISHES refereeSyndicate EXECUTE managingReferees : ContractReferee (game) (;;) ") (reward "_ refereeSyndicate REWARDS : referee.reputation = : PRE + 1 ") (condition "_ BEFORE (UTTER (game; si; INFORM (S :; SR : referee; R : _; RR: _ [RT : _; CO : gameStart; LA : _; EN: _; ON : _; PR : _; ID : _; RW : _; IR :_; RB : _]))) ") (status ACTIVATED)) ?factDeactivatingNorm <- (dialogical-action (scene game) (state si) (performative INFORM)(sRole referee) (receiver _) (rRole _)(reply-to _) (content gameStart) (language _) (encode _) (ontology _) (protocol _)(conversation-id _) (reply-with _) (in-reply-to _) (reply-by _)) => (modify ?obliged (status DEACTIVATED)) )

;(rule iii) (defrule checkEquipment_rule_iii ?currentTime <- (currentTime) ?obliged <- (OBLIGED-non-dialogical-action-plan (plan managingGame) (action checkEquipment)(attribs "_ players ") (contract-pre "_ ") (contract-post "_ ") (contract-inv "_ ") (punishment "_ refereeSyndicate PUNISHES...") (reward "_ refereeSyndicate REWARDS...) (status ACTIVATED)) ?factFulfillingNorm <- (non-dialogical-action-plan (plan managingGame) (action checkEquipment) (attribs "_ players ") (contract-pre "_ ") (contract-post "_ ") (contract-inv "_ ")) => (if (= (fact-slot-value ?factFulfillingNorm entity) (fact-slot-value ?obliged entity)) then (assert (NormStatus_per_Agent (norm (fact-id ?obliged)) (agent (fact-slot-value ?factFulfillingNorm entity)) (status FULFILLED) (reason (fact-id ?factFulfillingNorm)))) (assert (REWARD (norm (fact-id ?forbidden)) (promoter refereeSyndicate) (rewardedAgent (fact-slot-value ?factFulfillingNorm entity)) (reward "_ : referee.reputation = : PRE + 1 "))) ))

;(rule iv) (defrule checkEquipment_rule_iv ?currentTime <- (currentTime) ?obliged <- (OBLIGED-non-dialogical-action-plan (plan managingGame) (action checkEquipment)(attribs "_ players... (status DEACTIVATED)) => (foreach ?agent (list ?agents) (bind ?result (assert (NormStatus_per_Agent (agent (fact-slot-value ?agent agents)) (norm ?obliged)(status FULFILLMENT)))) (try (= false ?result) ; the agent has fulfilled the norm catch (modify ?result (status VIOLATED)) (assert (PUNISHMENT (norm (fact-id ?forbidden)) (authority refereeSyndicate) (punishedAgent (fact-slot-value ?factViolatingNorm entity)) (punishment "_ refereeSyndicate EXECUTE managingReferees : FireReferee (game, referee) (;;) "))) (assert (PUNISHMENT (norm (fact-id ?forbidden)) (authority refereeSyndicate) (punishedAgent (fact-slot-value ?factViolatingNorm entity)) (punishment "_ refereeSyndicate EXECUTE managingReferees : ContractReferee (game) (;;) "))) )) )

 Normas regulando ações que ocorrem depois de um fato (permissão) Rule(i) Ativa X (permissão) quando Y ocorrer Rule(ii) Inicia como inativa Rule(iii) Não definida Rule(iv) Detecta quando a ação foi executada enquanto X estava inativa Exemplo Norma 10

 Rule(i) Se ?agente é o juiz e ?tempo é o tempo atual Então  Se agora = ?tempo então ative a Norma 10  Rule(ii) Se ?agente é o juiz e ?tempo é o tempo inicial de jogo Então  desative a norma

 Rule (iv) Se  ?tempo é o tempo atual  ?proibição é a permissão de finalizar a partida desativada  ?fatoViolador = mensagem de parar o jogo  Então Se ?fatoViolador.papel == ?probição então  Agente que mandou parar o jogo violou a norma  Punição: Sindicato dos juízes deve punir o ?fatorViolador.entidade

 Normas que regulam ações entre ocorrência de dois fatos  Obrigação Rule(i) ativa a obrigação X quando Y ocorrer Rule(ii) desativa a obligação X quando estiver ativada e W ocorrer Rule(iii) verifica o cumprimento de X e gera a recompensa quando X estiver ativada Rule(iv) verifica a violação e gera a punição quando Y e W ocorrerem e X não foi efetuada

 Permissão Rule(i) Ativa X quando Y ocorrer Rule(ii) Desativa X quando X estiver ativa e W ocorrer Rule(iii) Gera a recompensa quando W ocorrer Rule(iv) Verifica a execução de X e W já ocorreu Rule(v) Verifica a execução de X e Y não ocorreu

 Proibição Rule(i) Ativa X quando Y ocorrer Rule(ii) Desativa X quando X estiver ativa e W ocorrer Rule(iii) Verifica se X não ocorreu e gera a recompensa quando W ocorrer Rule(iv) Verifica a execução de X e W ocorreu Rule(v) Verifica a execução de X e Y não ocorreu

 Norma 4 (proibição)  Rule (i) Se  ?fatoAtivandoNorma é juiz manda mensagem de iniciar a partida Então  Ative norma 4

 Rule(ii) Se  ?tempoAtual é o tempoAtual  ?proibição é a norma 4 ativada  ?fatoDesativador é juiz enviar uma mensagem de parar a partida Então  Desativar Norma 4

 Rule(iii) Se  ?tempoAtual é o tempo atual  ?proibição é norma 4 desativada Então  Para todos os agentes ‘a’, ‘a’ contemplou a norma 4 (foreach ?agent (list ?agents) (bind ?result (assert (NormStatus_per_Agent (agent (fact-slot-value ?agent agents)) (norm ?forbidden)(status FULFILLED)))) (try (= false ?result) catch )))

 Rule(iv) Se  ?tempoAtual é o tempo atual  ?proibição é a norma 4 ativada  ?fatoViolador é o plano de deixar o campo Então  Se ?fatoViolador.entidade é igual a ?proibição.entidade  ?fatoViolador.entidade violou a ?proibição (norma 4)  O juiz deve punir o violador enviando para ele a mensagem de cartão amarelo  O juiz deve punir o violador enviando uma mensagem de expulsão (???)

 Bloqueio entre duas normas (uma norma se ativa devido a ativação / desativação / cumprimento / violação de outra norma)  Abordagens: Incluir a ativação da norma B nos eventos da norma A Criar regras separadas para a Norma A que é ativada por eventos da norma B

 Norma 2 Rule(iv)  Se  ?tempoAtual é o tempo atual  ?fato são as substituições  ?ação é a ação de substituir um jogador do treinador  ?proibição é a norma 2  Então  Se o time proibido for o time que realizou ?ação  Quem realizou ?ação violou ?proibição (norma 2)  Juiz deve enviar para fora quem violou ?proibição  Ativa a norma 4 (obriga ao juiz a expulsar o treinador que infligiu a norma 2)

 Pode-se usar Jess como um sistema de governança numa perspectiva de sistema  Agentes devem conhecer as regras das normas assim como o estado de violação delas para poder inferir suas ações Dada a centralização desta informação na base de dados do Jess, como determinar a privacidade desta informação?

 Jess foi escolhido devido a facilidades na perspectiva de Eng. de Software Facilmente integrável a implementações de SMA. A maioria delas é feita em JAVA JESS é parte do FIPA-OS (uma implementação Open Source do FIPA standards JESS é integrável com JADE

 Não é possível definir algumas rules para algumas normas  Algumas normas não podem ser definidas (suas rules) Uma obrigação sem condições não permite checagem de sua violação Uma obrigação condicionada por um “depois” (after)

 Dificuldade de representar situações não realizadas Norma: Execute A se B não foi executado  Como saber se B foi executado se não há informação nenhuma na base de dados sobre eventos não ocorridos?  Atribuir uma norma a grupo de agentes  Relacionar uma situação normalizada com momentos de execução de uma ação O agente envia ao Jess o momento da execução da ação

 O nome de uma regra é único Cada norma possui ~4 regras O sistema de tradução não garante esta característica  Muitos não-terminais podem estar vazios, exigindo a definição de duas regras Uso de um valor default para não terminais nulos (‘_’)  Regras geradas automaticamente são maiores que as geradas manualmente

 Violações consecutivas de uma norma poderiam permitir punições diferentes Não é tratado pelo tradutor automático  Não é possível criar normas ativadas antes/depois da realização de mais de uma ação (Ex. Norma X é ativada depois de A e B ocorrerem)