Saturday, January 15, 2005

Sobre informação.

"Information wants to be free". Esta é, provavelmente, a única citação do Stallman com a qual eu concordo. Ele está falando sobre os controles sociais e monetários que impedem a livre troca e disseminação da informação. Eu, por outro lado, não vejo problema algum na existência desse tipo de controle. Pode-se argumentar, inclusive, que as regras e controles são o que definem uma sociedade. Pode-se argumentar, mas não o farei agora; prefiro neste momento me concentrar no assunto informação. Ela está sim presa, mas os grilhões não são os identificados pelo RMS e seus colegas cabeludos. A informação está presa, dentre outros lugares, no meio de documentos do Word!
Explico melhor. Eu considero que a informação se distribui num contínuo: perto de uma extremidade estão os documentos do Word, próximos da outra estão Bancos de Dados Relacionais. Aqui cabe uma breve explicação da mecânica destes. Imagine uma corretora de seguros, vamos chamá-la de 'Deixa que eu seguro inc.'. Eles precisam manter um registro dos seus Corretores credenciados; cria-se, para isso, uma tabela com colunas para o nome do corretor, data de contratação, salário, etc. Analogamente se cria uma tabela para informações pertinentes aos Clientes (as colunas poderiam ser nome, endereço, etc...). Agora as coisas ficam mais interessantes: para se armazenar informações referentes aos Contratos pode-se criar uma terceira tabela. Esta terá colunas para informações como duração do contrato, valor mensal e data de assinatura; mas também terá colunas que referenciam as tabelas Cliente e Corretor. A este conjunto de definições de tabelas denominamos esquema do Banco de Dados. Depois que o banco estiver cheio de informações podemos formular perguntas para o sistema como "Quais são os dez corretores que fecharam mais contratos no ano passado" ou "Onde moram os clientes que fecharam os 10 contratos mais valiosos" que são respondidas instantâneamente baseado nos dados disponíveis. Não é legal?
Continuando com este monótono exemplo imaginemos que a 'Deixa que eu seguro inc.' armazena todas as propostas de novos negócios na forma de documentos do Word. Se o corretor for habilidoso ele poderá criar propostas coloridas, com um layout criativo, a marca d`água da 'Deixa que eu seguro inc' no fundo (não quero nem imaginar como seria...) e um título bonito em 3d na cor laranja ocupando a primeira página. O corretor (ou seu estágiário) deve estar super contente com o resultado de seus esforços. Mas essa felicidade acaba no momento em que ele precisar, por exemplo, da média dos preços das propostas feitas na empresa. Mesmo essa informação trivial depende de trabalho braçal massante para ser extraída. Resultados mais sofisticados, então, são inviáveis sem um desperdício extraordinário de recursos.
Expero que tenha ficado clara a vantagem de se lidar com informação organizada dentro de um banco de dados em oposição a tê-la presa nas entranhas de documentos monolíticos. E isso se dá porque o BD preserva a semântica intendida pelo produtor da informação - o meio de especificação dessa semântica é o esquema.
Infelizmente é completamente inviável se esperar que usuários criem esquemas formais de bancos relacionais para cada tipo de trabalho intelectual que façam. Modelagem de BDs não é uma técnica trivial e profissionais frequentemente cometem erros no processo. Eu vejo o papel dos profissionais de TI como sendo buscar soluções intermediárias para este problema.

2 comments:

Francisco Kurpiel said...

O formalismo e a estruturação das informações que é desejável nos computadores dificilmente combinam com a forma verbal, não estruturada comum de comunicação e no armazenamento de informações por seres humanos. Os computadores usam estruturas simples, formais e bem-definidas e completas para armazenar as informações. Isso por ser a forma mais fácil de nós, humanos entendermos o seu funcionamento, de forma que possamos prever o seu comportamento e, assim, delegarmos trabalho para ele. Quando os computadores entenderem a linguagem falada, por exemplo, talvez nós não entendamos os computadores tanto como hoje nós entendemos agora. Em todo o caso, para que o computador possa entender as informações que nós produzimos, de forma a poder realizar certas tarefas repetitivas como calcular somas de contratos, precisamos ou que os computadores entendam os documentos do word ou que os nossos vendedores substituam os docs por XML, ERPs ou CSVs. As duas coisas estão acontecendo. Algumas ferramentas permitem disfarçar de formulários os arquivos XML. Outras fazem, por exemplo, análise de conteúdo WEB textual retirando informações objetivas, como comparação entre a imagem de dois produtos perante os seus consumidores. Todas as ferramentas (pelo menos as que eu conheço) ainda são pouco poderosas. Uma evolução mais significativa poderia fazer coisas admiráveis, como ouvir uma pergunta em idioma natural humano, fazer uma busca na web e em todos os arquivos da empresa para responder a pergunta também em idioma natural, ou então analisar uma proposta comercial e apontar que algum valor não está compatível com uma planilha de cálculo da engenharia.

Rafaeldff said...

Eu vejo dois caminhos possíveis. Um é buscar maneiras painless (nao-doloridas?) para que o usuario produza informacao estruturada. Ai entram os varios esquemas XML e, talvez de forma mais interessante, o RDF e a Semantic Web. Muito estudo de IHC também é necessário.

Outro caminho eh a extração de semântica a partir da entrada natural de dados. Para isso precisamos de técnicas de IA, machine-learning e coisas afins.

Eu me interesso mais pela primeira maneira. Um amálgama dos dois caminhos talvez seja o mais bem-sucedido, de qualquer forma.