6. HIV/AIDS related stigma labeling and blaming
6.2. Effects of HIV/AIDS related stigma
6.2.3. Reductive effects of HIV/AIDS stigma
Metadados são construídos a partir de objetos de informação que são projetados para serem persistidos, recuperados e intercambiados entre sistemas que lidam com informações. A representação dos metadados nesses sistemas é definida através de modelos de informação divididos em vários níveis. Num sistema de informação típico, podem-se identificar ao menos quatro níveis: físico, lógico, programação/representação e conceitual (HASLHOFER e KLAS, 2010).
37
No nível mais baixo, o nível físico, os metadados consistem de bits e bytes que são representados na memória, escritos nos discos e transmitidos pela rede. Os componentes do sistema que trabalham nesse nível estão preocupados principalmente com a otimização da alocação de memória, com a atribuição de registros a partições do sistema de arquivos e com a construção de índices para uma recuperação eficiente. Desse modo, o modelo de informação nesse nível compreende conceitos como formatos, arquivos, registros e índices.
O nível lógico funciona como uma abstração para o nível físico, de forma que torna- se possível omitir os metadados de mais baixo nível dos desenvolvedores de aplicações. Como exemplo de aplicação presente no nível lógico e lida diretamente com o nível físico estão os Sistemas de Gerenciamento de Banco de Dados (SGBDs). Nesse caso, as instâncias de metadados são descritas como dados contidos em tabelas. Assim, além de prover a transparência necessária para o nível físico, o nível lógico organiza a eficiência dos metadados (e.g., via normalização) e introduz recursos importantes para os desenvolvedores de aplicações, como garantia da consistência de dados, controle de concorrência e transações.
No nível de programação/representação, os elementos que fazem parte do esquema conceitual são manifestados ou apresentados das seguintes formas: a) esquemas de metadados como código numa determinada linguagem, refletindo o domínio da aplicação através de classes ou tipos, enquanto a descrição dos metadados se dá através do preenchimento de objetos em tempo de execução; ou b) elementos do modelo de metadados e seus conteúdos codificados usando uma linguagem de marcação como XML. Em ambos os casos, as descrições dos metadados devem se adaptar a determinados modelos de documentos e esquemas de metadados, de acordo com a linguagem de programação de modelagem (e.g. XML Schema, DTD) escolhida. A seleção dessa linguagem deve levar em consideração a compatibilidade com a tecnologia utilizada para a programação/representação dos elementos (e.g. XML, Java).
Um esquema de metadados no nível conceitual assemelha-se a entidades do mundo real com suas propriedades e relacionamentos. Linguagens comuns para a criação de modelos conceituais são a ER (Entity-Relationship Model) ou a UML (Unified Modeling Language) (OMG, 2007b).
38
2.3.3.1 Perspectiva dos níveis de modelos de metadados
Todos os níveis de representação de metadados citados anteriormente têm em comum o fato de que os elementos descritivos de um determinado esquema, isto é, os elementos e seus relacionamentos, são implementados na forma de um modelo de dados. Tal modelo encapsula os elementos definidos de um esquema, os representa semanticamente de maneira formal, e provê uma sintaxe para serializar as descrições de metadados. A interpretação semântica de um modelo de metadados é dada através do mapeamento dos elementos do modelo às entidades correspondentes em um determinado domínio de aplicação. A sintaxe de um esquema de metadados (elementos e regras que indicam como os valores devem ser atribuídos aos elementos) é definida usando uma determinada notação, que pode ser simbólica (e.g. palavras ou fórmulas), textual (e.g. sentenças descritas em uma linguagem natural, ou seja, falada ou escrita por humanos) ou gráfica (e.g. diagramas).
As linguagens de definição de esquemas estão presentes em cada nível e são usadas para expressar modelos de informação. O núcleo de cada linguagem é seu meta- modelo - também chamado de meta-modelo de metadados. O meta-modelo contempla a sintaxe abstrata da linguagem (e.g. definição de elementos e atributos), juntamente das notações concretas e semânticas (e.g. restrições de tamanho, padrões ou tipos de dados toleráveis). Sendo assim, pode-se considerar que a interpretação de uma linguagem se dá através do mapeamento dos elementos definidos no meta-modelo (sintaxe abstrata) para os elementos primitivos de uma linguagem (sintaxe concreta). As definições semânticas do modelo podem ser representadas em vários degraus de formalidade, desde a descrição em linguagem natural a linguagens formais ou matemáticas. Especialmente do ponto de vista de interoperabilidade, definições rígidas e semânticas possibilitam uma interpretação consistente que podem facilitar a integração com outros sistemas (SEIDEWITZ, 2003).
Modelos de metadados e meta-modelos estão organizados em níveis diferentes, mas encontram-se alinhados aos níveis de informação mencionados anteriormente. No nível mais baixo podem-se encontrar as descrições de metadados, que são instâncias válidas de um modelo de metadados (ex.: Classes Java, modelo UML, relações de bancos de dados) que refletem os elementos os elementos de um determinado esquema de metadados. O modelo de metadados em si é uma instância válida de um meta-modelo de metadados, sendo por sua vez, parte de uma determinada linguagem de definição de esquema. Devido a essa abstração, é possível criar meta-modelos que representam
39
metadados (ex.: instâncias de metadados de um modelo UML também podem ser representadas como instâncias de um meta-modelo UML).
A especificação MOF - Meta Object Facility - (OMG, 2006a) oferece uma definição para esses níveis distintos: M0 é o nível mais baixo, o nível das instâncias de metadados (e.g. definição de valores dos atributos de um modelo), M1 contém a estrutura do modelo para uma aplicação particular, ou seja, os esquemas de metadados (e.g. definição dos campos que compõem o modelo) são modelos M1. Linguagens de modelagem residem no nível M2, sua sintaxe abstrata ou meta-modelo pode ser considerada como um mecanismo de modelagem particular (e.g. a definição de um atributo primitivo da linguagem). No nível mais alto, M3, podem ser encontradas as linguagens de modelagem universais na qual os sistemas de modelagem são especificados (e.g. estruturas básicas, tipos primitivos). A Figura 11 ilustra os quatro níveis de abstração da Meta-Object Facility (MOF).
Figura 11. Ilustração da Meta-Object Facility (OMG, 2006a)
No que diz respeito aos níveis de abstração citados anteriormente, um ponto que pode ser questionado é como a sintaxe abstrata de linguagem de modelagem no nível M3 (meta-meta-modelo) é expressa. No geral, há duas opções de definição de um meta- modelo: usar um mecanismo diferente de modelagem (ex.: gramáticas livres-de-contexto
40
para linguagens de programação, semântica formal ou um conjunto explícito de axiomas1 e regras de deduções para linguagens baseadas em lógica descritiva2) ou usar sua própria linguagem de modelagem de forma recursiva. Nesse último caso, os elementos de um meta-modelo são expressos na mesma linguagem no qual o meta-modelo foi descrito (e.g. utilizar XML Schema para descrever o esquema da própria linguagem XML Schema). Isso é chamado de meta-modelo reflexivo (SEIDEWITZ, 2003), visto que os elementos de uma linguagem de modelagem podem ser descritos usando um conjunto mínimo de elementos da mesma linguagem.