Primeira Leitura - Nomeação com Nomes Apropriados
"Hermógenes: Crátilo sustenta que cada coisa tem por natureza um nome apropriado e que não se trata da denominação que alguns homens convencionaram dar-lhes, com designá-las por determinadas vozes de sua língua, mas que, por natureza têm sentido certo, sempre o mesmo, tanto entre os helenos como entre os bárbaros em geral. [E que] assim, de fato, se chamava Crátilo. [E que Sócrates] é Sócrates mesmo. [Perguntei então se] o nome que aplicamos a cada um é o seu verdadeiro nome(...)[ao que Crátilo me respondeu]: Não; pelo menos o teu, replicou, não é Hermógenes, ainda que todo o mundo te chame desse modo.(...)
Sócrates: Hermógenes, filho de Hipônico, diz antigo provérbio que as coisas belas são difíceis de aprender; o conhecimento dos nomes não é negócio de importância somenos. (...)Mas, de muito bom grado me disponho a investigar o assunto juntamente contigo e Crátilo. Quanto a dizer que Hermógenes não é, realmente, o teu nome, tenho para mim que é brincadeira da parte dele.(...)[Pois] desejarias ser rico, porém nunca chegas a adquirir fortuna, por não seres, de fato, filho de Hermes."
[Platão. Crátilo 383-384. Trad. Carlos Alberto Nunes, EdUFPA 2001]
* * *
"(...)adverti como aprendera a falar*. Não eram pessoas mais velhas que me ensinavam as palavra, com métodos, como pouco depois o fizeram para as letras. Graças à inteligência que Vós, senhor, me destes, eu mesmo aprendi, quando procurava exprimir os sentimentos do meu coração por gemidos, gritos e movimentos diversos dos membros, para que obedecessem à minha vontade. Não podia, porém, exteriorizar tudo o que desejava, nem ser compreendido daqueles a quem me dirigia. Retinha tudo na memória quando pronunciavam o nome de alguma coisa, e quando, segundo essa palavra, moviam o corpo para ela. Via e notava que davam ao objeto, quando o queriam designar, um nome que eles pronunciavam. Esse querer era-me revelado pelos movimentos do corpo, que são como que a linguagem natural a todos os povos e consiste na expressão da fisionomia,, no movimento dos olhos, nos gestos, notom da voz, que indica a afeição da alma quando pede ou possui e quando rejeita ou evita. Por este processo retinha pouco a pouco as palavras convenientemente dispostas em várias frases e frequentemente ouvidas como sinais de objetos. Domando a boca segundo aqueles sinais, exprimia por eles a minha vontade."
[*A língua corrente falada onde nasceu e cresceu Santo Agostinho (354 a 430 AD), em Tagaste, Numídia, na África, era o cartaginês ou púnico, que ele aprenderia simultaneamente com o latim.]
[Santo Agostinho. Confissões I/8, Trad. J.Oliveira Santos e A.Ambrósio de Pina, NovaCultural 2000]
* * *
"(...) Wittgenstein considerava a visão agostiniana não como uma teoria completa da linguagem, mas antes como um paradigma prototeórico ou 'visão', que merece atenção crítica pelo fato de estar tacitamente subjacente a teorias filosóficas sofisticadas. As idéias que o primeiro parágrafo das Investigações Filosóficas extrai dessa passagem [já citada das Confissões de Santo Agostinho] são as seguintes:
a) cada palavra possui 'um significado';
b) todas as palavras são nomes, isto é, são sucedâneos de objetos;
c) o significado de uma palavra é o objeto do qual é um sucedâneo;
d) a conexão entre as palavras (nomes) e seus significados (referentes) se estabelece por uma definição ostensiva, que determina uma associação mental entre palavra e objeto;
e) as sentenças são combinações de nomes;
Duas conseqüências são em seguida explicitadas:
f) a única função da linguagem é representar a realidade: as palavras referem; as sentenças descrevem (Investigações Filosóficas - parágrafos 21-7);
g) a criança só é capaz de estabelecer a associação entre uma palavra e um objeto por meio do pensamento, o que significa que deve possuir de antemão uma linguagem privada, para que possa aprender a pública (Investigações Filosóficas - parágrafo 32).
A visão agostiniana compreende, portanto, quatro posições: uma concepção referencial do significado das palavras, uma concepção descritivista das sentenças, a idéia de que a definição ostensiva fornece os fundamentos da linguagem e a idéia de que uma linguagem do pensamento subjaz às nossas linguagens públicas."
[Hans-Johann Glock. Dicionário Wittgenstein 370. Trad. Helena Martins, Zahar 1998]
* * *
"(...)já que as palavras são apenas o nome de coisas, seria mais conveniente para todos os homens mostrarem as tais coisas quando precisassem argumentar(...)Para conversas curtas, um homem pode carregar implementos nos bolsos e sob os braços, em quantidade suficiente(...); a sala onde negociantes se reúnem (...) já estará cheia de todas as coisas, bem à mão, necessárias para que se possa levar adiante este tipo de conversa. (...)E assim, embaixadores estariam qualificados para tratar com príncipes o ministros de Estados estrangeiros cujas línguas não conhecessem."
[Jonathan Swift. As Viagens de Gulliver. Trad. Therezinha Monteiro Deutsch, NovaCultural 2003]
* * *
"Pense agora no seguinte emprego da linguagem: mando alguém fazer compras.
Dou-lhe um pedaço de papel, no qual estão os signos: 'cinco maçãs vermelhas'.
Ele leva o papel ao negociante; este abre o caixote sobre o qual encontra-se o signo 'maçãs';
depois procura numa tabela a palavra 'vermelho' e encontra frente a esta um modelo da cor;
a seguir, enuncia a série dos numerais - suponho que a saiba de cor - até a palavra 'cinco' e a cada numeral tira do caixote uma maçã da cor do modelo.
(...)Mas qual é a significação da palavra 'cinco'? - De tal significação nada foi falado aqui; apenas de como a palavra 'cinco' é usada.
(...)Quando os filósofos usam uma palavra - "saber", "ser", "objeto", "eu", "proposição", "nome" - e procuram apreender a essência da coisa, deve-se sempre perguntar: essa palavra é usada de fato desse modo na língua em que ela existe?"
[Ludwig Wittgenstein. Investigações Filosóficas 1,116, AbrilCultural 1979]
* * *
"(...)Se as palavras estão dizendo 'incurável', a situação não se alterará dizendo-se 'curável'. Mas se você usar sua capacidade sensorial para olhar, aprender, escutar e tocar, você talvez se defronte com dados novos que lhe possibilitarão ver o que é possível ser feito para ajudar. (...)A maioria dos substantivos são símbolos. 'Cadeira' é um símbolo, na medida em que identifica uma entre várias centenas de diferentes peças de mobília sobre as quais as pessoas podem sentar-se; também é uma abstração, uma vez que não há nada concreto no conceito 'cadeira'.
(...)O objetivo de terem sido formuladas palavras tais como 'orientação' e 'inconsciente' era o de empregá-las par resumir ou abreviar uma descrição detalhada de um conceito. Como correr do tempo, porém, face à crescente familiaridade, as palavras tendem a se tornar uma coisa, alguma coisa que existe. A palavra 'inconsciente' há muito tempo deixou de descrever um complexo e se transformou numa coisa. Quando você pensa ou diz alguma coisa, quem o faz? Você ou seu inconsciente? Não existe uma resposta simples. É necessário um exaustivo trabalho de esclarecimento dos diferentes níveis das abstrações 'você' e 'inconsciente'"
[Moshe Feldenkrais. Caso Nora 114,115. Trad. Maria Sílvia Mourão Netto, Summus 1979]
* * *
"A questão de dar nome às coisas é importantíssima. Atribuir um nome ao trabalho intelectual humano e a todo o nosso registro intelectual talvez seja a coisa mais importante.
Todos nós temos palavras para diferentes objetos, como 'tomate'. Usamos uma palavra simples, 'tomate', em vez de descrever cada pequeno aspecto do maldito tomate. Como leva muito tempo descrever com precisão o tomate, usamos uma abstração para poder pensar e falar sobre ele.
E é isso que fazemos quando usamos UniformResourceLocators[, nomes de endereços da Internet]. Os URLs costumam ser usados como uma abreviatura para nos referir a algum conteúdo intelectual humano. Nós construímos toda a nossa civilização com tijolos e conteúdo intelectual humano.
Hoje, temos um sistema com URLs em que a estrutura sobre a qual estamos construindo a nossa civilização é o pior tipo de massinha de modelar que você possa imaginar. Isso é um grande problema.(...)Acho que tem uma confusão fundamental aí, uma sobrecarga da ideia atual de URL.(...)De um lado, você tem serviços dinâmicos e organizações que executam esses serviços - quer dizer, existe uma hierarquia, um sistema de controle, seja uma organização, um governo ou algum grupo de controle. E, de outro lado, você tem artefatos intelectuais humanos que podem ser completamente independentes de qualquer sistema de controle humano.
Eles estão por aí, no âmbito do platônico*. Eles deveriam ser nomeados de uma maneira que fosse intrínseca ao seu conteúdo intelectual e não de uma maneira dependente de uma organização."
(*O "âmbito do platônico", neste contexto, refere-se ao universo de conhecimentos possíveis. A expressão teve origem na teoria das formas de Platão, mas o uso mais prazeroso dela é o famoso conto "A biblioteca de Babel", do autor argentino Jorge Luis Borges (1899-1986), [ed. bras.: Ficções, São Paulo, Companhia das Letras, 2007], disponível em: archive.today/Fm4fM [em inglês] ou archive.today/suDqO [em espanhol])
[Julian Assange. Quando o Google encontrou o Wikileaks 69. Trad. Cristina Yamagami, Boitempo 2015; capítulo disponível em bit.ly/2CV3vW7. Notas em bit.ly/32pq3Xw].
* * *
NOMES E HASHs
[Atividade-requisito importante: verificar a integridade de um arquivo baixado da internet.]
Um hash é uma sequência limitada de caracteres (n bytes que representam um número) calculada a partir de um objeto digital (outra sequência de bytes, sob forma de arquivo, por exemplo), hash que pode servir para identificar ou nomear univocamente aquele objeto digital em um conjunto de objetos digitais.
A decisão sobre que nome (hash) seria "apropriado" para certo objeto vem do cálculo do hash para a sequência de bits que compõe o objeto.
Como os resultados da aplicação daquela função de hash específica para certo objeto específico são normalmente singulares, a cada objeto corresponderia um nome própio, não compartilhado por nenhum outro, e sempre recuperável através da aplicação da funçao sobre o conteúdo do objeto.
Em outras palavras, o nome (hash) vem da coisa; e coisas diferentes têm hashs (nomes) diferentes. Existe a possibilidade de colisões - nomes iguais para objetos diferentes -, mas uma função adequada com nomes de tamanho adequado minimizam essa possibilidade. [Ver mais sobre hashs aqui.]
Embora não seja assim que se calcula o hash de uma sequência binária, podemos imaginar a criação de um nome específico para um texto a partir das letras iniciais das, digamos, primeiras 50 palavras do texto.
Em um conjunto de, digamos, mil textos diferentes, teríamos mil nomes provavelmente singulares de 50 caracteres, um nome diferente para cada texto.
O hash de um objeto pode ser (muito) maior ou (muito) menor do que o objeto que representa. No caso de arquivos de dados, imagens, etc., os hashs são geralmente muito menores, assim como um título (nome) é normalmente muito menor do que o texto que intitula; mas no caso de arquivos muito pequenos (pequenas sequências de bytes), seus hashs podem ser maiores. De um modo geral, os hashs uniformizam a nomeação de objetos de tamanhos diferentes, pois nada devem dizer sobre as características dos objetos nomeados: o hash é calculado a partir do objeto, mas a operação inversa não é possível, não se deve poder, a partir de um "bom" hash, derivar qualquer propriedade do objeto que o originou.
Os dígitos verificadores dos CPFs ou CNPJs são obtidos através de cálculos sobre os outros dígitos, permitindo assim, por exemplo, detectar inconsistências de digitação, como sabemos. Como se trata neste caso de apenas dois dígitos verificadores para um número de nove dígitos, existem apenas 100 "nomes" diferentes (os dois dígitos verificadores, que vão de 00 a 99) para um número bem maior de "objetos" (CPFs e CNPJs diferentes, que vão de 000.000.000 a 999.999.999); cem "nomes" para um bilhão de "objetos" diferentes possíveis.
As funções de hash que produzem resultados úteis e confiáveis são elaboradas de forma que uma pequena alteração na sequência de bits do objeto digital que o hash representa faça com que o novo resultado do cálculo do hash:
a)seja muito diferente do obtido antes da alteração;
b)não apresente qualquer indicação sobre que mudança teria sido feita na sequência original para produzir aquele novo resultado, impedindo, desse modo, o cálculo reverso dos objetos a partir dos seus hashs;
c)permita identificar de forma singular aquele novo objeto em relação a quaisquer outros sob exame, ainda que sejam muito numerosos.
O hash serve então como nome de um objeto que pode ser calculado a partir dele, mas que não indica, na ausência do objeto, qualquer de suas características.
Normalmente, para se saber se um hash é o de certo objeto, ou se tem acesso ao objeto e se calcula o hash, ou se tem uma lista que relaciona o hash do objeto a qualquer outra característica que permita recuperá-lo. Nesse último caso, pode-se proceder então ao cálculo do hash do objeto recuperado para verificar se o resultado calculado coincide com o relacionado na lista.
A isso se chama verificação de integridade do objeto a partir dos hashs calculado e declarado.
EXERCÍCIOS PREPARATÓRIOS:
1)Na linha de comando, calcular o hash ssh256 (secure hash com 256 caracteres) de um arquivo, modificar uma cópia do arquivo mantendo iguais o tamanho e outras meta informações (data, autoria, permissões, etc.), e comparar o hash ssh256 do novo arquivo com o anterior.
2)Após baixar o instalador do VirtualBox apropriado para seu computador, comparar o hash calculado por você sobre o arquivo baixado com o hash indicado para aquele arquivo na lista de hashs disponível no site de onde baixou o instalador do VirtualBox.
[Se você ainda não tem um terminal linux funcional para os exercícios, use programas Windows ou Mac para calcular os hashs]
PRIMEIRO EXERCÍCIO DESAFIO:
Dado o acesso a um milhão de arquivos de fotogramas, cada arquivo com um nome diferente representado sua posição temporal no conjunto (por exemplo, parte000000.bmp, parte000001.bmp, etc.), mas todos com a mesma data e tamanho, havendo muitas duplicatas indesejadas, selecionar os 180 mil arquivos de fotogramas singulares que compõem um filme de 60 minutos (3.600 segundos, 30 fotogramas por segundo).
VARIANTE: encontrar, em um diretório com um número muito grande de arquivos semelhantes, uma duplicata de certo arquivo conhecido ao que se tem acesso, ou verificar sua inexistência naquele diretório.
EXEMPLO PREPARATÓRIO PARA O PRIMEIRO EXERCÍCIO DESAFIO:
Dado o acesso a 3998 arquivos bitmap de "fotogramas", cada arquivo com um nome diferente representado sua posição temporal no conjunto (por exemplo, p0001.bmp, parte0002.bmp,..., p3998.bmp), mas todos com a mesma data e tamanho, havendo muitas duplicatas indesejadas, selecionar os 474 quadros .bmp diferentes extraídos de video .mp4 de cerca de 15 segundos (~ 30 quadros por segundo).
(A extração foi feita com o pacote ffmpeg, em uma máquina debian 8, mas isso é, por enquanto, irrelevante para o vamos fazer)
Os 3998 arquivos .bmp estão zipados em um arquivo que pode ser baixado na linha de comando (linux) assim:
wget --no-check-certificate web.cip.com.br/pater/SI2024/z3998bmps.zip
ou
wget http://anali.se/leituras2024/SI2024/z3998bmps.zip
A sugestão é obter o hash de cada arquivo, via linha de comando, produzindo uma lista que pode ser ordenada para a exclusão de todo nome-hash repetido, isto é, de todo arquivo com o mesmo conteúdo.
A título de exercício, e para simplificar o procedimento, você pode aplicar a mesma função de hash usada para verificar a integridade do arquivo instalador do Virtualbox, baixado de virtualbox.org.