Uma Estrutura Formal Normativa para Sistemas Computacionais∗ Antônio Carlos da Rocha Costa1 Graçaliz Pereira Dimuro1 1 ESIN/UCPel – Escola de Informática Universidade Católica de Pelotas {rocha,liz}@atlas.ucpel.tche.br Resumo. A questão dos valores e das regras em sistemas computacionais tornase uma questão central quando se trata de sistemas com componentes (agentes) cujo foco de interesse sejam as trocas entre os usuários do sistema. Isso porque, em qualquer tipo de trocas entre pessoas, os valores e as regras são elementos constituintes essenciais das mesmas, sejam elas trocas diretas, face-a-face, ou trocas intermediadas por tecnologias de informação e comunicação. Neste artigo, apresenta-se uma proposta de estrutura formal normativa para sistemas computacionais, que tem por base a análise estrutural de valores e regras feita na sociologia de pequenos grupos que foi esboçada por Jean Piaget. Essa estrutura formal normativa possibilita que os agentes do sistema analisem e interpretem, em termos de valores e regras, as trocas que surgem entre seus usuários. Igualmente, ele possibilita a articulação normativa desses agentes com os usuários do sistema, dos agentes entre si, assim entre os próprios usuários, quando intermediados pelo sistema. Abstract. The question on values and rules in computing systems becomes a central question when components (called agents) of such systems deal with exchanges between users. This is so because values and rules are essential constituents of any exchange between people. This paper introduces a normative formal structure for computing systems, on the basis of the structural analysis of values and rules given by Jean Piaget in his sociology of small groups. That normative formal structure allows agents in a computing system to analyse and interpret, in terms of values and rules, the exchanges that arise between the system’s users. Also, it supports agents in their normative articulation both with users and with other agents, as well as among users themselves, when their exchanges are mediated by the system. 1. Introdução Este artigo formula de modo abstrato uma estrutura normativa para sistemas computacionais. A estrutura aplica-se aos sistemas computacionais com múltiplos usuários interagindo entre si e com os componentes do sistema (chamados agentes). ∗ Este trabalho contou com apoio financeiro do CNPq e da FAPERGS. A estrutura formal normativa, introduzida neste trabalho, está baseada na estrutura operatória de valores e regras com que Jean Piaget, em sua sociologia de pequenos grupos, procurou formalizar os processos morais e jurı́dicos que se estabelecem entre indivı́duos em interação. Na estrutura introduzida no artigo, agregamos à estrutura operatória piagetiana um conjunto de elementos essenciais para viabilizar sua utilização no contexto de sistemas computacionais. Esses elementos essenciais adicionados são os modelos operacionais clássicos de trocas, dos tipos produtor-consumidor e cliente-servidor, pelas quais se costumam analisar as interações em sistemas computacionais. A combinação da estrutura operatória piagetiana, com os modelos computacionais de trocas, possibilita a utilização da estrutura formal normativa resultante em qualquer contexto computacional. Este artigo está organizado como segue: a seção 2. traz um resumo da sociologia piagetiana. A seção 3. resume os dois modelos clássicos de processos de trocas em sistemas computacionais, quais sejam, o modelo de trocas produtor-consumidor e o clienteservidor. A seção 4. define os conceitos de troca e de valor, os dois principais tipos de valores, e as operações feitas sobre eles em uma troca. A seção 5. resume as duas regras de equilı́brio normativo que constituem o cerne da teoria piagetiana das trocas, bem como a regra que caracteriza a situação de pleno equilı́brio normativo. A seção 6. apresenta simplificadamente as possibilidades de aplicação computacional da estrutura formal normativa introduzida no artigo. 2. A sociologia de pequenos grupos de Jean Piaget A sociologia de pequenos grupos esboçada por Jean Piaget encontra-se desenvolvida de modo fragmentado em seu livro Études Sociologiques [2], que tem tradução brasileira da 1a edição [1] e norte-americana da 2a edição [3]. O cerne dessa sociologia é uma teoria operatória de valores qualitativos, na qual as regras sociais (normas e leis) servem à finalidade de determinar e manter o equilı́brio moral (e econômico) das trocas que ocorrem no sistema o sistema. 2.1. Valores e Trocas Os dois conceitos operatórios centrais da teoria são o conceito de valor e o conceito de troca. Piaget dá uma dupla definição da noção de valor. Por um lado, valor é ”qualquer coisa que dê lugar a uma troca”. Por outro lado, Piaget define como valores os construtos mentais de caráter qualitativo, que se associam mentalmente, no momento de uma troca, aos elementos que são valores no primeiro sentido, e que servem ao propósito de avaliar esses elementos. Os valores são caracterizados como elementos qualitativos porque deles não se exige mais que uma estrutura extensiva de ordem total, sem caráter métrico, que satisfaça a exigência mı́nima de permitir que seja definida uma relação assimétrica de maior ou menor (ver os conceitos de quantidade, no livro de Piaget sobre a Lógica Operatória [4]. Quanto à noção de troca, para poder simplificar o problema e permitir uma formalização operatória do mesmo, Piaget restringiu-se à questão (na verdade, bastante geral), da troca de serviços entre sujeitos. Assim, Piaget define troca como qualquer seqüência de ações entre dois sujeitos, tal que um dos sujeitos, pela realização de suas ações, preste um serviço para o outro. 2.2. Regras e Normas O terceiro conceito operatório fundamental na teoria piagetiana das trocas é o conceito de regra ou norma. As regras sociais são pensadas como tendo duas formas possı́veis: i) equações que devem se verificar entre os valores envolvidos nas trocas entre agentes, determinando condições de equilı́brio de valores de troca, no sistema; ii) operações de negação (punições) ou reciprocidade (reparações), que podem ser realizadas para que o equilı́brio seja restabelecido, quando ele é quebrado. Quer dizer, a teoria sociológica piagetiana é uma teoria de trocas, onde a função reguladora das regras e das normas é estabelecida a partir de um cálculo de valores qualitativos, em que cada troca deve implicar a validade de certas equações entre os valores envolvidos nessa troca, assim como pode implicar a realização de operações reguladoras, no caso de desequilı́brios. 3. Modelos computacionais básicos de processos de trocas Os dois modelos computacionais básicos para processos de trocas são respectivamente denominados modelo de troca produtor-consumidor e modelo de troca cliente-servidor. Eles são modelos clássicos, tradicionalmente usados em várias áreas da computação, como sistemas operacionais, bancos de dados e redes de computadores, para modelar processos interativos. Esses dois modelos de troca tem papel importante na estrutura formal normativa que estamos definindo. Nesta seção, descrevemos esses modelos em seu conjunto, mas deixamos para a próxima seção a definição precisa do nosso modelo computacional da noção de troca, porque nos apoiaremos para isso na combinação da conceituação piagetiana com os modelos computacionais resumidos aqui. Uma troca que se dá entre dois agentes (ou usuários, ou agente e usuário) em um sistema computacional, seguindo o modelo produtor-consumidor, ocorre conforme mostrado no diagrama de seqüência do tipo Prd-Cns, na figura 1. Nesse modelo, Prd é o agente produtor, Cns é o agente consumidor, prod é a ação de produção realizada por Prd, cons é a ação de consumo realizada por Cns, e o processo de troca é essa seqüência de operações. Trata-se de um modelo muito simples, mas por isso mesmo de ampla utilização. Prd Cl Cns prod Srv req cons serv util Figura 1: Modelos computacionais básicos de processos de troca Uma troca que se dá entre dois agentes (ou usuários, ou agente e usuário) em um sistema computacional, seguindo o modelo cliente-servidor, ocorre conforme mostrado no diagrama de seqüência do tipo Cl-Srv, na figura 1. Nesse modelo, Cl é o agente cliente, Srv é o agente servidor, req é a ação de requisição de serviço que Cl faz a Srv, serv é a execução do serviço por parte de Srv, util é a ação de Cl de utilizar os resultados do serviço prestado por Srv, e o processo de troca é essa seqüência de operações. Também se trata de um modelo simples, mas com utilização mais especı́fica em função de seu detalhamento um pouco maior. 4. Um modelo computacional para valores de troca A partir da descrição verbal dos tipos de trocas analisadas por Piaget [1], sejam descrições abstratas, sejam exemplos concretos, é possı́vel definir um modelo computacional para sua noção de troca, e mesmo estendê-la para dar conta de casos importantes que Piaget não considerou explicitamente. Para tanto, fazemos uma combinação dos conceitos presentes nos modelos básicos de troca computacional, definidos na seção 3., com os conceitos que extraı́mos da análise dos processos de trocas em pequenos grupos, feitas por Piaget em [1]. Assim, definimos troca como qualquer seqüência de operações realizada por dois agentes, que tenha uma das formas básicas mostradas nos diagramas de seqüências da figura 2. Denominamos de troca do tipo produtor-consumidor qualquer troca que siga o padrão PC da figura 2, porque a seguinte interpretação é possı́vel para a sua seqüência de operações: Prd = Agente Produtor Cns = Agente Consumidor r = Valor de investimento para P da ação realizada por P s = Valor de satisfação para C da ação realizada por P Prd Cl Cns r Srv v' s t' t r' v s' Figura 2: Formas básicas de interação t = Valor de reconhecimento por parte de C da satisfação causada pela ação de P v = Valor de acumulação de crédito por P em função do reconhecimento de C Denominamos de troca do tipo cliente-servidor qualquer troca que siga o padrão CS da figura 2, porque a seguinte interpretação é possı́vel para a sua seqüência de operações: Cns = Agente Cliente Srv = Agente Sevidor v’ = Valor de crédito de C frente a S devido a ações anteriores realizadas por C t’ = Valor de reconhecimento de S do crédito pretendido por C r’ = Valor de investimento de S em ação para C s’ = Valor de realização de crédito de C em função do investimento de S Os valores correspondentes a ações efetivas dos agentes (valores r, r0 , s e s0 ), Piaget chamou de valores reais, porque dizem respeito à valoração de ações concretas dos agentes. Os valores correspondentes a créditos ou débitos adquiridos ou reconhecidos (valores v, v 0 , t e t0 ), ele chamou de valores virtuais, porque se referem a representações mentais que os agentes criam das situações de troca que se estabeleceram entre eles. 5. As regras do equilı́brio normativo As regras sociais (normas, leis) da teoria sociológica de Piaget são regras operatórias, que tem por função garantir o equilı́brio dos valores trocados entre os agentes em interação. Piaget considera que toda troca se realiza em duas etapas: a etapa da acumulação de valores virtuais e a etapa da realização de valores virtuais. Cada etapa fica definida por uma regra de equilı́brio especı́fica, que Piaget formula em termos de variação dos valores r, s, t, v, etc. Piaget descreveu a etapa de acumulação de valores virtuais em termos que, relacionados à figura 2, são os de trocas do tipo produtor-consumidor. Ele denominou de regra de tipo I esse tipo de regra. Já a etapa de realização de valores virtuais ele descreveu em termos de trocas do tipo cliente-servidor. Ele denominou de regra de tipo II esse segundo tipo de regra. Essas regras podem ser expressas como: i) Regra de Acumulação de Valores Virtuais: ↓ (r) + ↑ (s) + ↓ (t) + ↑ (v) = 0 ii) Regra de Realização de Valores Virtuais: ↓ (v 0 ) + ↑ (t0 ) + ↓ (r0 ) + ↑ (s0 ) = 0 As setas indicam variações qualitativas positivas (↑) e negativas (↓) dos valores em jogo. A regra de acumulação de valores virtuais resume a idéia de que se o agente Prd realizou uma ação com investimento r de recursos e seu parceiro Cns deu-lhe o crédito devido por isso, então v = r é o crédito que Prd adquiriu frente a Cns, por ter realizado essa ação para ele, e a igualdade representa que o crédito acumulado é equivalente ao investimento que ele realizou. A regra de realização de valores virtuais resume a idéia de que se o agente Cl tem um crédito v 0 por ter realizado uma ação para o agente Srv, que o agente Srv reconhece esse débito e compensa com uma ação r0 , então s0 = v 0 é a satisfação recebida por Cl em função da realização de seu crédito, e a igualdade representa a realização completa desse crédito. Quando cada uma dessas regras é respeitada, diz-se que os valores são conservados, nas etapas respectivas. Um ciclo completo de interação, com o andamento das duas etapas em seqüência, realizado nas seguintes condições: • cada agente só cobra o crédito que ele efetivamente tem, isto é, v 0 = v • cada etapa garante a conservação dos valores envolvidos, isto é, as duas regras são respeitadas tem como conseqüência o conjunto de igualdades s0 = v 0 , v 0 = v, v = r, que implica s0 = r0 , isto é, o agente que realizou a primeira ação tem como resultado final um valor de satisfação equivalente ao seu valor de investimento inicial. Essa conservação geral dos valores, no nı́vel em que engloba as duas etapas seqüencias, caracteriza o equilı́brio normativo do sistema. Essa situação favorável de equilı́brio normativo pode ser representada mais diretamente e significativamente fazendo-se a adição termo a termo das duas regras de conservação de valores (a de acumulação e a de realização), combinado-as em uma única regra. Fazendo isso, cancelando os valores virtuais complementares (↑ (v) com ↓ (v 0 ), e ↓ (t) com ↑ (t0 )) obtemos a regra: ↓ (r) + ↑ (s) + ↓ (t) + ↑ (v) = 0 ↓ (v 0 ) + ↑ (t0 ) + ↓ (r0 ) + ↑ (s0 ) = 0 ↓ (r) + ↑ (s) + ↓ (r0 ) + ↑ (s0 ) = 0 a qual expressa uma lei de equilı́brio que deixa de lado os valores virtuais e só envolve valores reais. Leis de equilı́brio que envolvem valores virtuais são chamadas de leis de equilı́brio moral e leis que envolvem só valores reais são chamadas de leis de equilı́brio econômico. O equilı́brio econômico pressupõe, portanto, o equilı́brio moral. 6. A articulação normativa em sistemas computacionais A estrutura formal normativa definida neste artigo pode ser aplicada a qualquer situação de interação em que seja possı́vel identificar os papéis de cliente e servidor, ou de produtor e consumidor. Como cada um desses papéis podem ser identificados em praticamente todo tipo de sistema computacional onde haja interações (seja do sistema com seus usuários, seja de agentes do sistema entre si, seja dos usuários entre si), essa estrutura normativa tem praticamente aplicabilidade universal ao sistemas de computação. Ela se constitui num fundamento possı́vel para a articulação normativa dos agentes internos e externos dos sistemas computacionais. No caso de agentes autônomos em sistemas multiagentes, ela pode possibilitar toda uma articulação do comportamento desses agentes através de regras normativas de caráter geral (regras sociais válidas para todos os agentes), ou através de regas normativas de caráter particular (acordos locais entre agentes em interação, estabelecidas por negociações entre eles). No caso de ambientes cooperativos com múltiplos usuários, ela possibilita regular o grau de cooperação e de competição estabelecido entre os usuários do sistema, pela definição dos valores que eles respectivamente atribuem às suas operações de troca, assim como das leis de equilı́brio e das operações de regulação que eles estabelecem entre si. Igualmente, essa estrutura formal normativa possibilita a monitoração e a avaliação normativa das ações dos usuários de um modo efetivo. 7. Conclusão Este trabalho definiu de modo sumário uma estrutura formal normativa para modelagem de trocas em ambientes computacionais cooperativos ou baseados em agentes autônomos. Tal estrutura explicita e estende aspectos computacionalmente essenciais do modelo de trocas de valores desenvolvido por Jean Piaget em sua sociologia de pequenos grupos. A articulação dos conceitos piagetianos de valor e regra normativa, com os conceitos arquitetônicos de sistemas cliente-servidor e produtor-consumidor, são a chave para a aplicação prática dessa estrutura em sistemas computacionais. Referências [1] Piaget, J. Estudos Sociológicos. Forense, Rio de Janeiro, 1973. [2] Piaget, J. Études Sociologiques. Droz, Paris, 1965. (2a. ed.: 1977). [3] Piaget, J. Sociological Studies. Routlege, London, 1995. [4] Piaget, J. Lógica Operatória. Ed. Globo, Porto Alegre, 1973.