multi-agent system modeling language (mas-ml) viviane torres da silva ricardo choren carlos j. p. de...

43
Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

Upload: internet

Post on 17-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

Multi-Agent System Modeling Language(MAS-ML)

Viviane Torres da SilvaRicardo Choren

Carlos J. P. de Lucena

Palestrante: Andrew Diniz da Costa

Page 2: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

MAS-ML

• Estende o meta-modelo de UML com base no framework conceitual TAO

• Meta-modelo MAS-ML estende o meta-modelo de UML

– Novos estereótipos

– Novas meta-classes

Page 3: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Camada de meta-modelo

Camada de modelo de domínio

Camada de meta-meta-modelo

Camada de instância

MOF meta-meta-modelo

ER meta-meta-modelo

UML meta-modelo

TAOmeta-modelo

MAS-MLmeta-modelo

instanciação

MAS-MLmodelos

unificação

Page 4: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Meta-modelo MAS-ML

DutyRight

Features Classifier

Structural Feature Behavioral Feature

Belief Goal

Axiom

Operation

Property

Class AgentClass ObjectRoleClass

OrganizationClass

AgentPlan

Meta-classes do meta-model UML

Novas meta-classes

Novos estereótipos

Legenda

AgentRoleClass

AgentAction 1..* *

1..**

sender receiver1 *

Element

AgentProtocol

AgentMessage

1..*

*

Constraintpostconditionpostcondition

preconditionprecondition

0..1 0..10..10..1

*

**

*

EnvironmentClass

ActiveEnvironmentClass

PassiveEnvironmentClass

Page 5: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Meta-modelo MAS-ML

Class

AgentClass

ObjectRoleClassOrganizationClass

AgentRoleClass

EnvironmentClassdefine

play

1

1..*0..*

define

1 sub-org

play 1..*1

play in

0..*

1..*

1..*1inhabit

1

0..*

inhabit

inhabit

1

0..*

play1

0..*

0..*1

sub-org

0..* 1

play in play in

0..*

0..*

Meta-classes do meta-modelo UML

Novas meta-classes

Legenda

Page 6: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Meta-modelo MAS-ML

Relationship

Directed Relationship

Classifier

Element

Association

Dependency Ownership Inhabit Control Play Generalization

1..*

Meta-classes do meta-modelo UML

Novas meta-classes

Legenda

Page 7: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

MAS-ML

• MAS-ML modela os aspectos estruturais e dinâmicos descritos no TAO

– Aspectos estruturais: entidades, propriedades e relacionamentos

– Aspectos dinâmicos: interação entre as entidades e execuções internas

• Diagramas estáticos: classes, organizações e papéis

• Diagramas dinâmicos: seqüência e atividades

Page 8: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

Diagramas Estáticos

Page 9: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Classe de UML

• Representa as classes e os relacionamentos entre as classes

Second-hand BooksImported Books

Item

Book

Order User

Nome_da_classe

atributo1atributo2

metodo1metodo2metodo3...

Page 10: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagramas para SMA

• Como representar agentes, organizações, papéis e ambientes?

• Como representar relacionamos específicos de SMA, como inhabit, control e play?

• Novo elemento de diagrama para representar novas entidades e relacionamentos

Page 11: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Elementos dos diagramas I

ObjectRoleClass OrganizationClassAgentRoleClassAgentClassClass

AgentRoleClassAgentRoleClass

EnvironmentClassEnvironmentClass

Relacionamento Inhabit

RelacionamentoControl

Entidades

Page 12: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Elementos dos diagramas II

OrganizationClass AgentRoleClass

OrganizationClass AgentRoleClass

AgentClass

RelacionamentoOwnership

RelacionamentoPlay

Page 13: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Agente

AgentClass

<<goal>> type : name [= default-value] plan-list<<belief>> type : name [= default-value]

{precondition-list} action {postcondition-list}plan {action-list} goal-name

Característicasestruturais

Característicascomportamentais

Page 14: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Organização

OrganizationClass

<<goal>> type : name [= default-value] plan-list<<belief>> type : name [= default-value]<<axiom>> type : name [= default-value]

{precondition-list} action {postcondition-list}plan {action-list} goal-name

Característicasestruturais

Característicascomportamentais

Page 15: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Papel de Agente

AgentRoleClass

<<goal>> type : name [= default-value]<<belief>> type : name [= default-value]

<<duty>> action <<right>> actionprotocol-name { messsage: {label: value, content: value,

sender : value, receiver: value}...}

Característicasestruturais

Característicascomportamentais

Page 16: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Papel de Objeto

ObjectRoleClass

[visibility] type : name [= default-value]

[visibility] name (parameter-list) : returned-value

Características estruturais

Característicascomportamentais

Page 17: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Ambiente

EnvironmentClass Característicasestruturais

Característicascomportamentais

Entidades que habitam o ambiente

EnvironmentClassor

Page 18: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Classes

• Objetivos: representar os relacionamentos entre classes e outras entidades do SMA e representar os relacionamentos entre agentes, ambientes e organizações.

• Classes usadas neste diagrama:

– agent class, organization class, environment class e outras definidas por UML.

• Relacionamentos usados neste diagrama:

– Aqueles já definidos por UML;

– inhabit – usado entre classes e ambientes;

– association – usado entre agente e classes, entre organizações e classes, e entre ambientes;

– specialization – usado entre agentes, entre organizações e entre ambientes.

Page 19: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Classes

Second-hand BooksImported Books

Item

Book

Virtual Marketplace

inhabit

specialization

associationAgentA

AgentB

Organization A

Organization B

Object / Environment

Agent

Organization

Legend:

Page 20: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Organizações

• Objetivo: modelar as organizações e os relacionamentos entre as organizações e outras entidades do SMA.

• Cada diagrama de organização modela uma organização

• Classes usadas neste diagrama:– organization class, agent class, agent role class, object role class, class

e environment class.

• Relacionamentos usados neste diagrama: – ownership – usado entre organizações e papéis que a organização

define;– play – usado entre agentes e papéis de agentes, entre sub-organizações

e papéis de agentes, e entre classes e papéis de objeto;– inhabit – usado entre ambiente e organizações e entre ambiente e

agentes.

Page 21: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Organizações

Object role

Agent roleObject / Environment

Agent

Organization

Legend:

General Store

Virtual Marketplace

Market of Special Goods Market of Used Goods

Imported Bookstore Second-hand BookstoreBook

Desire Offer

BuyerSeller

User AgentStore Agent

<<main-organization>>

inhabitplay

ownership

Page 22: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Papéis

• Objetivo: modelar os papéis e os relacionamentos entre os papéis

• Classes usadas neste diagrama:

– agent role class, object role class e class

• Relacionamentos usados neste diagrama:

– control – usado entre papéis de agente;

– dependency – usado entre papéis de objeto, entre papel de agente e papel de objeto e entre papéis de agente;

– association – usado entre papéis de objeto, entre papel de agente e papel de objeto, entre papéis de agente e entre qualquer papel e uma classe;

– aggregation – usado entre papéis de objeto e entre papéis de agente;

– specialization – usado entre papéis de objeto e entre papéis de agente.

Page 23: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Papéis

Market of Special Goods

Offer Desire

Buyer

Buyer of Imported Books Seller of Imported Books

Seller

Desire of Imported Books

Offer ofImported Books

Buyer of Second-hand BooksSeller of Second-hand Books

Desire of Second-hand

Books

Offer ofSecond-hand

BooksMarket of Used Goods

Object role Agent role

Legend:

control

association

Seller

Seller of Imported Books

specialization

Page 24: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

Diagramas Dinâmicos

Page 25: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Seqüência de UML

• Representa a interação entre os objetos e as execuções dos métodos

joseFloricultor

centralCentralFloricultura

joao:Dentista

floricultorPetropolisFloricultor

1.1: atendeCidade("Petropolis"):boolean

1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean

1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean

1.2:[se nao na cid...] getFloricultorNaCidade("Petropolis"):Floricultor

Page 26: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Seqüência de MAS-ML

• Objetivo: representar as interações entre as instâncias do SMA e representar as ações internas destas instâncias.

• Representar interações: troca de mensagens entre entidades

– Modelar troca de mensagem:

• Redefinir mensagens

• Criar novos estereótipos associados à mensagens

– Modelar protocolos

• Representar ações internas (intra-ações):

– Modelar planos e ações

Page 27: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Elementos dos diagramas

• Novos pathnames e novos ícones

org/role/org/env : OrganizationClass/AgentRoleClass/OrganizationClass/EnvironmentClass

obj/role/org/env : Class/ObjectRoleClass/OrganizationClass/EnvironmentClass

agent/role/org/env : AgentClass/AgentRoleClass/OrganizationClass/EnvironmentClass

env : EnvironmentClass env : EnvironmentClass

Active entity Passive entity

Objeto

Agente

Organização

Ambiente

: RoleClassPapel

Page 28: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Redefinindo mensagens

• UML: mensagens são chamada de métodos

• SMA: mensagens não são diretamente mapeadas para uma execução interna do agente

message_label (content_description)sender receiver

method_name ()sender receiver

Page 29: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Estereótipos de mensagens

• Como representar a criação de entidades de SMA?

• UML: uso do estereotipo <<create>>– Estender para representar a criação de entidades de SMA

• Como representar a destruição de entidades de SMA?

• UML: uso do estereotipo <<destroy>>– Estender para representar a destruição de entidades de SMA

Page 30: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Criando e destruindo entidades

Anne/FruitBuyer : UserAgent/Buyer

<<create>>

......

Criando uma organização

Anne/FruitBuyer : UserAgent/Buyer

<<destroy>>... ...

FruitStore : Store

...

Destruindo uma organização - II

Anne/FruitBuyer : UserAgent/Buyer

<<destroy>>... ...

...

Destruindo uma organização - I

FruitStore/FruitWholesale: Store/Wholesale

FruitStore/FruitWholesale: Store/Wholesale

Page 31: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Estereótipos de mensagens

• Como representar a relação entre papéis e entidades que desempenham papéis?

• <<role_commitment>> Entidade se comprometendo com um novo papel

• <<role_cancel>> Entidade cancelando papel

• <<role_activate>> Entidade ativando papel

• <<role_deactivate>> Entidade desativando papel

• <<role_change>> Entidade mudando de papel

Page 32: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Criando papel

Bob/FruitBuyer : UserAgent/Buyer

Bob/ClothesBuyer : UserAgent/Buyer<<role_commitment>>

......

Bob/FruitBuyer : UserAgent/Buyer

Apple/DesirerFruit : Item/Desirer<<role_commitment>>

......

Criando um papel de agente

Criando um papel de objeto

Page 33: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Cancelando papel

Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer

<<role_cancel>>

...

Cancelando papel de agente

Bob/ClothesBuyer : UserAgent/Buyer

<<role_cancel>>

Bob/FruitBuyer : UserAgent/Buyer Apple/DesirerFruit : Item/Desirer

Cancelando papel de objeto

<<role_cancel>>

...

Cancelando papel de agente

Page 34: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Desativando e ativando papel

Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer

<<role_activate>>

...

Ativar papel

...

Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer

<<role_deactivate>>

Desativar papel

...

Bob/ClothesBuyer : UserAgent/Buyer

<<role_deactivate>>

Page 35: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Mudandode papel Bob/FruitBuyer : UserAgent/Buyer

Bob/ClothesBuyer : UserAgent/Buyer<<role_change>>

...

Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer

<<role_change>>

Bob/FruitBuyer : UserAgent/Buyer

Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer

<<role_change>>

Bob/ClothesBuyer : UserAgent/Buyer<<role_change>>

...

...

...

Cancelando papel e criando novo papel

Cancelando papel e ativando outro papel

Desativando papel e criando outro papel

Desativando papel e reativando outro papel

Page 36: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Modelando protocolos

• Um protocolo define um conjunto de mensagens que entidades podem enviar e receber enquanto desempenhando papéis

Request (ItemDescription)

Proposal (ItemDescription)

AnswerProposal (RejectItemDescription)

AnswerProposal (AcceptItemDescription)

Inform (Payment)

Inform (Bill)

: Buyer : Seller

else

mensagem

papel

Page 37: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Modelando planos e ações

• Execução interna dos agentes, organizações e ambientes ativos são definidas pela execução dos planos e ações.

: GeneralStore

: UserAgent/Seller

if (message_label = request)

create_seller

else

inform_buyer_of_seller

: UserAgent/Buyer

inform (seller_id)

<<create>>

Creating_seller

Executionof a Plan

Executionof an Action

Executionof an Action

Page 38: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Atividades de UML

• Objetivo: modelar o fluxo das atividades de um sistema

• O foco está na seqüência de atividades e não na interação entre os objetos

• Atividades: execução não atômica composta de ações

• Ação: execução atômica

Page 39: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Diagrama de Atividades de MAS-ML

• Objetivo: representar a modelagem de planos e ações de um agente

• O foco está na modelagem de um agente e não na interação entre os agentes

• Atividades -> Planos de agentes

• Ações -> Ações de agentes

Page 40: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Extensão Diagrama de Atividades

<<role_change>>A3

A4

<<

envi

ronm

ent>

>E

1<

<en

viro

nmen

t>>

E2

<<

orga

niza

tion

>>

O2

<<

orga

niza

tion

>>

O1

R3

R1

P2

Plan

Action

Roles

Page 41: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Exemplo

Selling

[proposalaccepted]

Informing Price Informing proposal

[proposalrejected]

Payment

<<goal>>

<<goal>>to have an item sold

<<role>>Seller

Receiving FinalPosition

Page 42: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Ambiente

• Identificado ambiente

• Modelando a mudança de ambiente

<<role_commitment>>Action N

<<role_deactive>>Action M

......

Role Z Role W

<<organization>> A <<organization>> B

<<environment>> Env1 <<environment>> Env2

Page 43: Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa

© LES/PUC-Rio

Referências

• Silva, V. T.; Lucena, C. J. P. From a Conceptual Framework for Agents and Objects to a Multi-Agent System Modeling Language. Sycara, K., Wooldridge, M.(Edts.), Journal of Autonomous Agents and Multi-Agent Systems, Kluwer Academic Publishers. 2003.

• Silva, V. T.; Lucena, C. J. P. From a Conceptual Framework for Agents and Objects to a Multi-Agent System Modeling Language. Sycara, K., Wooldridge, M.(Edts.), Doctoral Thesis, 31st March, 2004.

• Silva, V. T.; Cortés, M.; Lucena, C. J. P. An Object-Oriented Framework for Implementing Agent Societies. Technical Report (MCC32/04), Computer Science Department, PUC-Rio. Rio de Janeiro, Brazil. 2004.

• SILVA, V.; GARCIA, A.; BRANDAO, A.; CHAVEZ, C.; LUCENA, C.; ALENCAR, P. Taming Agents and Objects in Software Engineering. In: GARCIA, A.; LUCENA, C.; ZAMBONELI, F.; OMICINI, A; CASTRO, J., (Eds.) Software Engineering for Large-Scale Multi-Agent Systems. LNCS 2603, Berlin: Springer, 2003.

• Costa, Andrew D.; Silva, Viviane T., Lucena, Carlos J. P.; Web site Agent Society Framework, 2007.

• Costa, Andrew D.; Silva, Viviane T., Lucena, Carlos J. P.;Remodelando e Estendendo o Agent Society Framework, n° MCC17/06, Departamento de Infomática da Pontifícia Universidade Católica do Rio de Janeiro, 2006.