sexta-feira, 11 de novembro de 2011

Modelando a função apoio na Rede Humaniza SUS: explorando possibilidades com Drupal

A modelagem de sistemas complexos tem sido um assunto que tenho explorado por aqui nas últimas semanas. Um ponto que tenho buscado deixar evidente é que esses insights todos da complexidade não devem servir apenas para que possamos analisar sistemas, concluindo coisas interessantes, porém ficando muito restritas a domínios acadêmicos de pesquisa. Creio que podemos muito mais a partir disso, sendo que o ponto em que vejo uma avenida de possibilidades é o fato de levarmos em consideração alguns desses princípios na criação de sistemas, na modelagem de modos de promoção de redes, encontro de pessoas e situações do nosso cotidiano que poderiam simplesmente serem pensadas levando em consideração outros tipos de variáveis que ainda não estamos propriamente acostumados a levar.

Bem, saindo para caminhar na manhã de hoje comecei a lembrar da reunião que tive com o pessoal da Rede Humaniza SUS nessa semana. Um dia onde os editores se encontraram aqui em São Paulo para discutirem seus novos modos de se relacionar, dado que tudo indica que para o ano que vem esse grupo vai poder ser parcialmente remunerado pelo trabalho que faz. Ouvindo essas pessoas que atuam já a alguns anos, no caso de alguns, de modo voluntário no cuidado, acolhimento e gestão dessa rede falarem de sua paixão pelo SUS, pelos modos de fazer política, pelo jeito de continuamente se reencantar pelo trabalho que desenvolvem e, sobretudo, pelo jeito que pensam a saúde, fui ficando impactado por essas impressões... De pano de fundo, fui guardando uma vontade de usar esse efeito, o impacto das conversas, para pensar em como a modelagem de complexidade (o encanto do momento) estaria a serviço dessas coisas todas que ouvi...

E caminhando um pouco mais fui lembrando da importância que há na política de humanização para a função apoio (o tal do devir apoiador). Lendo alguns trechos da tese de doutorado do Gustavo Nunes, atual coordenador da PNH junto ao Ministério da Saúde, encontrei logo no começo, em seu resumo, um bom disparador para o pensamento:

"O apoio, tomado como uma função, inscrita em arranjos concretos que põe em relação sujeitos com diferentes desejos e interesses, com a missão de ativar objetos de investimento mais coletivos e de apoiar esses sujeitos na ampliação de sua capacidade de problematização, de invenção de problemas, de interferência com outros sujeitos e de transformação do mundo e de si, implica em uma tarefa
clínica-crítica-política.
"





A definição provocou pensar um pouco mais na relação que isso tem com o sistema Drupal, que usamos para o desenvolvimento da rede, que já está próxima de seus quase 4 anos de existência. Acontece que o Drupal é um sistema criado com uma arquitetura muito interessante enquanto modelo de software, permitindo criarmos processos que seriam muito mais difíceis em outros tipos de programa. Vou tentar resumir aqui essas características que podem servir como disparadores de ideias para futuros desenvolvimentos:
  1. qualquer elemento no Drupal pode ser modelado como um node, ou seja, pode virar uma espécie de nó do sistema, onde podemos conectar funções, ganchos (os famosos hooks do Drupal), eventos e fluxos específicos de execução (organizados em etapas, por exemplo);
  2. quando qualquer node é acessado, o Drupal usa um sistema chamado bootstrap, que pergunta a todos os módulos instalados se eles possuem algum hook relacionado a algum evento relacionado ao tipo do node. Por exemplo, quando um nó é visualizado, o Drupal percorre todos os módulos para verificar se eles possuem algum hook que irá afetar a visualização daquele tipo de node, seja modificanto visualmente, seja incorporando alguma nova funcionalidade;
  3. quando qualquer evento no Drupal acontece, ele permite identificarmos essa evento e relacionarmos alguma ação específica, naquilo que o Drupal chama de sistema de Triggers. Isso, por si só, é algo realmente muito interessante, permitindo que possamos modelar uma série enorme de funcionalidades quando os usuários do ambiente fizerem alguma ação que possa ter desdobramentos disparadores... Tá começando a ficar quente aqui!
Dado breve contexto sobre o Drupal, fiquei pensando na relação disso com a função apoio, sobretudo no aspecto de colocar em relação sujeitos com diferentes desejos e interesses...

Foi então que me ocorreu a ideia de modelar o apoio como um node do Drupal, onde poderíamos associar funções, eventos e utilizar o gerenciador de Triggers para, conforme os tipos de eventos associados a função apoio, conectar pessoas, criar links, fazer pontes, estabelecer novas relações e fomentar a ativação desses objetos de investimento mais coletivos, como bem diz a descrição acima da funçaõ.

Brincando com isso, comecei a esboçar um infográfico para dar um pouco mais de corpo na ideia:



A ideia da brincadeira seria:

  1. modelar um node em drupal para a função, permitindo que pessoas pudessem se inscrever oferecendo apoio em determinados tipos (categorias fixas e emergentes), por região, pelo karma que possuem na rede, pela disponibilidade de tempo online;
  2. permitir que pessoas que queiram solicitar apoio, pudessem também se inscrever nesse node, usando também critérios similares de seleção;
  3. assim que um node apoio fosse criado, algoritmos analisariam os filtros selecionados e disparariam um evento, se assim houver, de criação de um novo node chamado conversa, agrupando essas pessoas que queiram oferecer e solicitar apoio. Esse node de conversa poderia servir como uma região em tempo síncrono e não-síncrono, onde essas pessoas formariam uma espécie de grupo temporário de apoio naquela situação, naquele contexto, naquele tempo em que isso fizer sentido.
Enfim, um ideia que escala de modo não linear, conectando desejos, evidenciando potências e modos de relação que podem fazer muito sentido quando apoiadas por um jeito de se fazer política que se baseia na riqueza dos encontros como meio de reencantamento das relações.

Agora, é avançar na modelagem, experimentação em DEV e analisar possíveis efeitos. vqv! :-)

quinta-feira, 10 de novembro de 2011

Algumas razões pelas quais a modelagem de sistemas complexos ainda vai nos levar a um outro nível de compreensão do mundo

Buscando na web por esses dias achei um texto fantástico, bem escrito e de fácil compreensão sobre as mútiplas portas no conhecimento e na visão de mundo que a modelagem de sistemas complexos abre para os imaginários humanos.

De tão bom, resolvi reproduzir aqui um bom trecho desse documento, que veio do documento que institui o programa de pós-graduação em modelagem de sistemas complexos da Usp Leste.

" Embora não exista uma definição ampla consensual, Sistemas Complexos são identificáveis por exibir comportamentos que têm sido sistematicamente enumerados pela literatura nos últimos vinte anos1, detalhados na lista não-exaustiva apresentada a seguir: emergência, transições de fase, universalidade, adaptabilidade, auto-referência, auto-organização, imprevisibilidade, padrões de interação com regularidades não-triviais, causas múltiplas com efeitos não-lineares e invariância em escala.

1. Emergência: Um fenômeno é emergente quando surge como resultado da interação dos elementos constituintes do sistema e não pode ser descrito somente em função das características isoladas de tais constituintes. O estado de agregação de moléculas de água, por exemplo, é uma propriedade emergente: uma molécula de água não pode ser definida como sólida, líquida ou gasosa, pois são propriedades que podem caracterizar somente agregados de moléculas de água, dada a interação. O sistema de preços de uma economia constitui outro fenômeno emergente, pois é resultado da interação entre agentes de mercado. Da mesma maneira, uma comunidade com suas instituições, língua e cultura é um fenômeno emergente, sendo resultado da interação de indivíduos e grupos de indivíduos.

2. Transições de fase: Mudanças nas estatísticas de um sistema, dadas mudanças em parâmetros de controle, são denominadas transições de fase, que podem ser contínuas ou descontínuas. Assim, por exemplo, as propriedades coletivas (estatísticas) da água mudam abruptamente de acordo com temperatura e pressão. Outro exemplo é a mudança observável em estatísticas de violência de acordo com parâmetros controláveis por meio de políticas públicas.

3. Universalidade: Detalhes do comportamento dos constituintes de um Sistema  Complexo freqüentemente não são importantes para o comportamento agregado (médio). A densidade de gases diferentes, por exemplo, como oxigênio, metano, argônio, neônio e monóxido de carbono, variam; exceto por fatores de escala, de forma idêntica com a temperatura. O mesmo ocorre com a distribuição de alturas, pesos e pressão arterial em uma população, ou a distribuição de votos entre candidatos em eleições. Observa-se, também, que a distribuição de tamanhos de firmas ou flutuações no mercado financeiro possuem um padrão comum, que pode ser, então, considerado universal.

4. Adaptatividade: A capacidade de modificar o próprio comportamento de acordo com mudanças no ambiente é uma característica comum em sistemas biológicos e socioeconômicos. Assim, firmas respondem às mudanças no mercado, indivíduos aprendem com a experiência, ou células sintetizam proteínas de acordo com a concentração citoplasmática de reguladores.

5. Auto-referência:
Sistemas Complexos, em particular sistemas socioeconômicos, respondem aos resultados de suas próprias ações. Por exemplo, previsões econômicas podem produzir comportamentos que, conseqüentemente, resultam justamente na concretização das previsões. Por exemplo, se os agentes esperam que o nível geral de preços aumente, podem desejar proteger-se antecipando os efeitos da ocorrência da inflação, corrigindo os preços para cima.

6. Auto-organização: Interações locais produzem ordem em escala global. Exemplos típicos são o comportamento de pedestres e a cadeia produtiva em uma economia de mercado.

7. Imprevisibilidade:
Mesmo quando regido por equações inteiramente determinísticas, o comportamento de um sistema complexo pode ser imprevisível. Alguns exemplos clássicos são o clima, a dinâmica de populações e as séries temporais biológicas. O mesmo tipo de fenômeno pode ser observado em sistemas socioeconômicos, na forma, por exemplo, de choques de oferta no mercado mundial, como ocorreu no caso do petróleo nos anos de 1973 e 1979.

8. Redes complexas:
Sistemas Complexos apresentam padrões de interação que não são inteiramente regulares (como casas de um tabuleiro de xadrez), nem inteiramente irregulares (como traços aleatórios). Em geral, redes de relações se auto-organizam localmente, de maneira aparentemente aleatória; no entanto, apresentam uma ordenação global. Redes complexas apresentam alguns poucos nós com muitas conexões e diversos outros nós com poucas conexões, apresentam distâncias médias entre nós reduzidas, que redundam em uma capacidade de influência maior do que aparentam. Exemplos de redes complexas são relações sociais, interesses acadêmicos, cadeias alimentares, rotas aéreas, cidades conectadas por estradas, links em páginas da internet, relações comerciais e proteoma celular.

9. Causas múltiplas e efeitos não-lineares: Em fenômenos socioeconômicos e biológicos, as causas dos fenômenos são, em geral, múltiplas e interativas entre si. Uma pequena variação em uma ou mais das causas pode redundar em uma grande mudança nos efeitos observados. Técnicas estatísticas que suponham comportamentos lineares dos sistemas não são capazes de lidar corretamente com algumas ou ambas características.

10.Invariância em escala: Padrões complexos podem ser obtidos pela aplicação repetida de regras simples em escalas diferentes (temporais ou espaciais). Os exemplos de invariância em escala são alvéolos pulmonares, distribuição de rendas altas, tamanho de cidades e população de cidades."






Olhar para os sistemas, pensar em possibilidades de análise e mesmo de produção de novos modos de relação e conversação que levem esses 10 elementos em consideração me parece uma forma bastante interessante de experimentar o novo em si. :-)

Novos protocolos: imaginários em modos de presença, interoperabilidade e disponibilidade em tempo real

A ideia de brincar com a modelagem de protocolos é algo que faz parte do imaginário já a algum tempo, sobretudo desde os tempos de laboratório na época do mestrado, ainda na Unicamp. O tempo se passou e outras coisas foram tomando a atenção, foco e o brilho que movimenta e convoca para a ação. Mas, a ideia continuou ali, me encontrando em vários momentos em que pesava a limitação de interatividade que eu acabava por perceber nos sistemas, redes e ambientes nos quais estive envolvido de algum modo nos últimos anos.


As coisas giram e cá estou eu novamente, voltando para a pesquisa a partir de outro giro da espiral, com outros modos de ver e entender as coisas, com melhores níveis de leitura de mundo e um pouco mais de clareza de para onde ir.



A modelagem de sistemas complexos tem me seduzido com bastante intensidade e tenho falado sobre isso aqui em vários posts, sobretudo em 2011. Modelagem não tem apenas o aspecto de análise daquilo que existe, mas também (e isso pode ter MUITO potencial ainda a ser explorado em termos de possibilidades do imaginário) de possibilitar que criemos novos sistemas, que criemos modos de interoperar e se relacionar que possam ser pautados por outros valores além daqueles que já conhecemos e talvez não gostemos.


Bem, saindo da boa conversa e fundamental teoria, tenho me proposto em conversas com alguns parceiros do além rede, a começar um exercício de modelagem, proposição e experimentação com um conjunto de tecnologias que teria por objetivo propor formas mais distribuídas, descentralizadas e autônomas de comunicação e interação em rede.


Com uma boa provocação do José Murilo, atualmente na Coordenação de Cultura Digital do MinC, mas mano véio de várias paradas de estradas desde os velhos tempos de metáforas, comecei a exercitar os imaginários na ideia de produzir uma interface que pudesse:

   1. permitir que qualquer autor pudesse publicar uma obra (seja ela em que formato for), conectado um nível de direito autoral;
   2. permitir que qualquer autor tivesse uma única chave primária de identificação nesse ambiente;
   3. permitir que o modo de armazenar esses dados não fosse centralizado, estando distribuído em vários níveis e categorias de servidores com alguma forma de certificação para fazerem parte dessa rede;
   4. permitir que qualquer aplicação pudesse se conectar nessa rede, bastante apenas que criasse alguma interface com uma API de acesso, permitindo que dados pudessem ser remixados de qualquer modo possível;
   5. permitir que diferentes serviços pudessem ser gerados a partir desses dados armazenados, estando apenas limitados pelo nível de exposição que o próprio autor decidisse em relação ao seu perfil;
   6. permitir que redes, redes e mais redes pudessem ser montadas a partir de diferentes modos de combinação dessas informações;
   7. permitir que o protocolo não apenas servisse para circulação descentralizada de informação, mas fosse base também para identificação, presença e interatividade em tempo real.

 Bons desafios, vários caminhos possíveis, ora mais centralizados, ora menos. Acontece que há várias tecnologias livres, de padrões abertos e normalizadas por institutos internacionais (assim como TCP/IP, HTTP, FTP, etc...) que poderiam ser modeladas em camadas para uma arquitetura de aplicação em rede que desse conta desses 7 pontos acima listados.


Pensei um bocado sobre isso e acho, e continuo achando, que um trabalho desse não pode ser feito por apenas uma pessoa e que valeria a pena que fosse feito em encontro de muitas visões, saberes, experiências. Criar algo desse modo envolve muito mais que tecnologia, envolve um nível de relação entre pessoas que extrapola as limitações do que minhas linhas de código podem prever.


De qualquer modo, enquanto isso ainda não acontece, comecei a brincar com modelos possíveis, provocativos de outras conversas que possam se interessar por expandir, criticar, derivar essa ideia inicial.


Segue aqui abaixo o primeiro modelo de arquitetura que comecei a desenhar:

A ideia é relativamente simples (e espero que consigamos mantê-la simples), sendo a arquitetura baseada num modelo em 3 camadas, onde teríamos:

   1. Camada de interface: é aquilo que apareceria para as pessoas e programas que iriam se conectar nessa rede distribuída. Seriam sistemas, sites, redes sociais, ambientes de governo que quisessem se conectar a plataforma distribuída, seja para alimentá-la, consultá-la ou gerar algum remix de informação que lhe interessasse;
   2. Cama de modelagem e serviços: aqui tem muito para ser pensado e experimentado. A ideia é criar um conjunto de APIs para disponibilizar modos de acesso a camada de dados que fossem mais simples. Além disso, podemos implementar usando padrões em XMLSchema estruturas de organização da informação que viabilizasse uma infinidade de workflows de troca de dados, permitindo não apenas estruturar a informação, mas como estruturar fluxos de troca, como por exemplo,
   3. Camada de persistência de dados: é aqui que ficam armazenados os dados de identificação, perfis, publicações e fluxos semânticos de trocas possíveis entre pessoas se relacionando a partir de toda essa plataforma.

A ideia é utilizarmos o protocolo XMPP como apenas o modelo de comunicação, deixando para as modelagens de modos de relação para o espaço semântico ali representado na camada 2. Enfim, um começo de modelo vai aparecendo por aqui, espero que sirva mais do que plataforma técnica, mas como elemento disparador de conversas, críticas, expansões que sirvam para brincarmos com as possibilidades de modelagem que nossos imaginários conseguirem nos levar.

quinta-feira, 3 de novembro de 2011

Apresentando no XII ENANCIB - Webmetria e análise de redes da Rede Humaniza SUS

Estive na semana participando do ENANCIB - Encontro nacional de pesquisa em Ciência da Informação.

Tinha bastante curiosidade de conhecer o encontro, ver as pessoas e as conversas que por ali poderiam rolar, dado que esse ano tenho participado de vários eventos relacionados a minha área de pesquisa no doutorado. Esse prometia ser bastante interessante, devido a relevância dele para essa comunidade no Brasil.

De fato, foi assim. 4 dias de encontro. 11 GTs acontecendo ao mesmo tempo. Umas 300 ou 400 pessoas do Brasil todo, envolvendo pesquisadores mais estabelecidos e muita gente começando, assim como eu.

Os GTs eram organizados de modo temático, facilitando com que as pessoas pudessem se programar para participar das discussões que mais lhe interessavam no âmbito de cada tema.

Eu e Dani Matielo montamos um artigo com algumas análises relacionadas a Rede Humaniza SUS, uma rede que temos ajudado a desenvolver, cuidar e experimentar uma série de premissas tanto técnicas quanto de relacionamento humano em sua gestão. Projeto importante, singular, orientador de muitas das coisas que eu penso hoje sobre redes. Falar dele no espaço do Enancib foi uma boa estrétia nessa comunidade.

Eu apresentei o trabalho abaixo no GT 11 - Informação e saúde. Boas discussões rolaram por lá, desde análises dos sistemas de informação que o SUS utiliza para "rastrear" dados e tomar decisões, até novas possibilidades de conversação mais abertas e descentralizadas como a própria proposta da RHS traz.

Depois disso, fiquei mais tempo no GT - 7, mais voltado para métricas e análise da informação. Gostei bastante dos papos também. Acho que tem muito ainda a ser feito em termos de desenvolvimento desse tipo de pesquisa no Brasil. Tive algumas boas ideias do que pretendo levar como trabalhos para os próximos anos, sobretudo relacionado a modelagem de sistemas complexos e análise dinâmica de redes, buscando mostrar como a compreensão dos aspectos evolutivos de uma rede mudam muito a visão que temos apenas de sua estrutura. Enfim, novos passos adiante...



Experimentando a ferramenta Gephi - Visualizador e manipulador de grafos

Dando uma olhada no site do Instituto de Santa Fé num curso de verão sobre introdução a complexidade que ele fazem todo ano (planejando fazer em 2013), encontrei uma referência que me despertou interesse a testar essa a ferramenta Gephi para exploração e análise de grafos.

Baixei a ferramenta e em poucos minutos tava gerando análises, gráficos e exportando imagens de grafos em vários layouts possíveis. Gostei muito da simplicidade e agilidade do que é possível gerar com ela. Sem dúvida, é mais limitada e simples do que softwares como o Pajek, que já venho utilizando a bem mais tempo e explorando outras possibilidades.

No entanto, o Gephi permite um nível interação com o grafo que eu nunca tinha visto em outro tipo de software. É muito fácil você reduzir o grafo por grau de conectividade, por grau de centralidade, por faixa de tempo, entre outros indicadores que ele te permite explorar. Promissor.

Deixo aqui abaixo um tutorial inicial de como utilizá-lo, simples e direto no ponto.



Satchita ou das experiências de música em rede