• Nenhum resultado encontrado

2. A questão da ontologia e sua entrada no campo da Web

2.2 Componentes de uma Ontologia Computacional

Eden40(2007) aborda alguns questionamentos da ontologia na área da computação. São

abordados três questões principais que serão apresentadas a seguir.

A primeira questão é dada pela pergunta como os programas, meta-programas e hardware podem ser organizados em uma taxonomia? Os programas são diferenciados, em um nível de abstração, dos meta-programas e do hardware dessa forma é possível uma classificação ontológica nas seguintes categorias:

• meta-programas: documentos dos programas como algoritmos, autômatos abstratos e especificação de projeto;

• programas: divididos em subcategorias programas-scripts e programas-processo;

• programa-scripts: subdividido em código fonte e código de máquina;

A seguir, é mostrado um exemplo de um programa Hello World na sua forma de código fonte e sua outra forma de código de máquina.

40 Artigo “Problems in the ontology of computer programs” do livro “Applied Ontology Vol. 2” – MIT Press – Massachusetts – 2007.

• programas-processo: o que é de fato executado numa máquina

• hardware: a máquina de computação digital.

Na próxima imagem, ilustramos a formação da estrutura dos tópicos apresentados acima na forma de uma raiz hierárquica, do mais próximo do usuário ao mais profundo da máquina:

De forma abstrata, a taxonomia dos programas pode ser apresentada pela seguinte organização:

– Completa, pois todos os programas podem ser categorizados em programas-processos, programas-scripts que são subdividos em programas de código fonte e programas de

Figura 8: Representação do código de máquina JAVA do programa Hello World.

Figura 9: Código fonte feito em Java do programa Hello World.

código de máquina.

– Unificada, pois constitui uma categoria ontológica de nível mais alto entre as categorias de meta-programas e hardware.

– Uniforme, pois contempla todas as interpretações e situações de uma abstração de uma ontologia.

– Definida, pois contempla qualquer diferença ou ambiguação que possa ser expressada por meio da lógica da matemática.

A segunda questão é abordada pelo pergunta acerca da forma como as ontologias são representadas no contexto lógico da sintaxe e semântica computacionais. A ontologia presente nos softwares deve ser considerada a partir da idéia do cálculo de predicados41. Assim, uma

ontologia para um programa de computador se constitui em uma axiomatização de ontologias do conhecimento humano. Portanto, explicitando este pressuposto, no qual temos uma ontologia estendendo-se a uma lógica de cálculo de predicados, o que resulta na situação formal de uma ontologia formal (a qual implícita na modelagem dos softwares) efetivar-se ou realizar-se nos micro-programas scripts que rodam nela enquanto programas-processos.

A terceira questão é representa pela pergunta da equivalência das linguagens formais computacionais e a sua crescente proliferação? Ora, Eden & Turner (2007) colocam a questão nos seguintes termos:

Given that all turing-complete programming languages are computationally equivalent, what explains their proliferation? How do new languages come about? We shall examine the process of language synthesis (§ 4) and the process of concretizing a specific subset of metaprograms as an explanation to the formation and proliferation of programming languages.

Ora, se duas linguagens formais-computacionais diferem em suas sintaxes e semânticas, cumprindo porém objetivos, funções e, ainda, possibilitando ambas a cobertura e designação de idênticos objetos, resta a pergunta acerca da necessidade de termos a crescente proliferação de novas e específicas linguagens. é o caso do pluralismo na programação, na qual temos,

41 No que diz respeito a importância desse conceito, vide:

[1] a questão da lógica de primeira ordem: http://pt.wikipedia.org/wiki/L%C3%B3gica_de_primeira_ordem; [2] cálculo de predicados: http://pt.wikipedia.org/wiki/C%C3%A1lculo_de_predicados;

[3] Kurt Gödel: http://pt.wikipedia.org/wiki/Kurt_G%C3%B6del;

desde as linguagens de máquina, sejam embutidas nos circuitos ou em máquinas virtuais (como no caso do Java Virtual Machine), ou ainda variações que decorrem do não seguimento de um padrão standart (como nas variações do Action Script e outros). Dois fatores aqui estão em operação. O primeiro deles, e não interessante ao nosso objeto de estudo, consiste nas ações coordenadas dos monopólios de Software na tentativa de sequestrar o mercado. A segunda e, dentro de nosso objeto de estudo, consiste no problema colocado por Leibniz relacionado com a natureza própria da questão da linguagem no homem: sua tendência a plurivocidade e equivocação. Esta tendência gera, subliminarmente e tecnicamente, uma ação de fuga do princípio do cálculo (ad abbacos). Restam ainda as questões: (1) como explicar o crescimento de tais linguagens? (2) como essas linguagens se diferem? Sendo que as linguagens computacionais são específicas para resolver de forma concisa e concreta um grupo de meta-programas, podemos observar que, em parte, o crescimento de diversas linguagens (e suas variações) está relacionado a variedade lógica de formalizar-se as soluções possíveis para tais grupos de meta-programas.

Visto o exposto acima, os componentes básicos de uma ontologia computacional estaria expressa na estrutura tripartida de meta-programas, programas e hardware, conforme apresentamos na ramificação superior da figura 10 acima. Ora, isso significa que a expressão ontológica, em termos computacionais efetivos, somente poderá ser dada na conjunção dos três elementos da estrutura ao mesmo tempo e, sobretudo, cooperativamente em funcionamento. Se a estrutura basilar da ontologia do computador reside na ideia de programa em si mesma, somos forçados a observar que, tanto o chamado meta-programa, como código na forma de uma sintaxe e semântica aproximados da linguagem natural o mais possível, bem como o programa (software) como código na forma de linguagem formal de alto nível em formato compilado e, tal como, o hardware como código na forma física de circuitos lógicos, se constituem em elementos organizados de uma tríade facetada de uma mesma natureza e realidade lógica.