As heterogeneidades que devem ser eliminadas para prover interoperabilidade de metadados já foram identificadas em pesquisas recentes. A Figura 12 mostra uma classificação das heterogeneidades predominantes mencionadas na literatura, considerando uma perspectiva baseada num modelo central (HASLHOFER e KLAS, 2010).
Figura 12. Heterogeneidades de nos níveis de modelo e instância (HASLHOFER e KLAS, 2010)
Destaca-se que há uma relação de instanciação entre instâncias de metadados, esquemas de metadados e linguagens de definição de esquemas, ou seja, metadados são instâncias de modelos de metadados e modelos de metadados são instâncias dos meta- modelos de metadados. Generalizando esses relacionamentos, a Figura 12 distingue as heterogeneidades entre o nível de modelo e o nível de instância, como uma primeira
47
divisão de classificação. Na segunda divisão, que contempla as heterogeneidades em nível de instância, apresentam-se duas classes: estrutural, causada pela distinção de propriedades que forma a estrutura dos modelos; e semântica, que ocorre por causa dos conflitos na interpretação do significado dos elementos do modelo ou de valores dos conteúdos nos diversos contextos de interpretação.
3.2.1 Heterogeneidades estruturais
Heterogeneidades estruturais no nível de modelo ocorrem graças às incompatibilidades presentes na forma de representar a estrutura dos modelos. Um modelo principal consiste de seus elementos atômicos (ex.: entidades, atributos, relações) e uma combinação ou conjunto desses elementos formam uma determinada estrutura para representar um domínio de interesse particular.
Assim sendo, podem-se agrupar as heterogeneidades estruturais de acordo com as ocorrências em dois níveis distintos: nos conflitos de definição de elementos, que a ocorrem a partir das definições dos elementos do modelo (e.g. nome, identificação, restrições), e nos conflitos de representação de domínio, que ocorrem porque elementos específicos de um determinado domínio podem ser representados de várias maneiras diferentes. A seguir serão analisados os dois grupos de heterogeneidades estruturais.
3.2.1.1 Incompatibilidade no nível de abstração
A incompatibilidade no nível de abstração diz respeito ao grupo de conflitos no nível de representação do domínio da aplicação. Aparece quando a mesma entidade de mundo real é organizada em diferentes hierarquias ou é agregada de forma diferente em elementos do modelo. Um exemplo para esse tipo de conflito no nível M2 é a capacidade de definir atributos e relações em várias linguagens: enquanto o modelo ER (que utiliza os termos atribute e relation) e OWL (que utiliza os termos datatypeProperty e objectProperty), definem elementos primitivos para ambas as características (atributo e relacionamento), XML Schema (que usa o elemento atribute) e Java (que usa o elemento field) agrupam essas características num único primitivo. Incompatibilidades no nível de abstração em M1, o nível dos modelos de metadados, ocorrem, por exemplo, quando um modelo de metadados atribui o criador de um recurso digital a uma simples entidade “Criador”, como é o caso do padrão de metadados Dublin Core, enquanto outros modelos como o TV- Anytime e também o MPEG-7 fazem distinção entre “Pessoas” e “Organizações”, ambos sendo uma especialização do conceito "Criador".
48
3.2.1.2 Correspondências multilaterais
As correspondências multilaterais tratam-se de outro conflito de representação do domínio da aplicação. Resulta diretamente das incompatibilidades em nível de abstração mencionadas anteriormente. Em cada nível, um elemento em um modelo pode corresponder a múltiplos elementos em outro modelo, e vice-versa. Por exemplo, pode haver correspondência entre o campo “Autor” do Dublin Core e os campos “Nome” e “Sobrenome” do TV-Anytime. Isto ocorre porque na descrição de metadados do padrão TV- Anytime, esses elementos (nome e sobrenome) podem ser sendo usados no contexto de “créditos de autoria da mídia”, assumindo então a representação do "Autor”.
3.2.1.3 Discrepância no nível de metadados
As discrepâncias no nível de metadados são conflitos de representação de domínio que ocorrem porque determinado elemento do modelo não tem qualquer correspondência direta com os elementos do outro modelo. Isso, entretanto, não significa necessariamente que o outro modelo não poderá capturar a mesma informação sobre um determinado domínio. Conceitos do mundo real representados como elementos em um modelo (e.g. “autor” como atributo) podem ser modelados de maneira diferente em outro modelo (e.g. “autor” como entidade) ou até serem capturados como conteúdo de um elemento do modelo em nível de instância (e.g. parte do campo descrição contém o nome do autor).
3.2.1.4 Cobertura do domínio
O problema de cobertura do domínio ocorre quando não há correspondências entre os elementos existentes no modelo. Isso acontece quando um conceito do mundo real refletido em um modelo foi deixado de fora no outro modelo, embora ambos os modelos tenham sido projetados para o mesmo domínio semântico. Por exemplo, num modelo o campo “informações” de uma imagem descreve quem está na foto, enquanto em outro modelo o mesmo campo “informações” descreve o tamanho e a resolução da imagem.
O fato da nomenclatura do atributo ser similar, mas a informação contida ser semanticamente distinta é o que diferencia a o problema da cobertura do domínio da discrepância no nível de metadados, visto que nela os elementos possuem estruturas diferentes (atributo ou entidade), mas mantêm o mesmo valor semântico.
49
3.2.1.5 Conflitos de nomes
Os conflitos de nomes são conflitos que ocorrem quando elementos do modelo descrevem a mesma entidade, mas possuem nomes diferentes. No nível de das linguagens de definição de esquema (M2), meta-modelos distintos podem atribuir nomes diferentes aos conceitos primitivos que são utilizados na linguagem. No UML, por exemplo, define-se o conceito primitivo Classe, enquanto no modelo ER (Entidade-relacionamento) usa-se
Entidades para representar o mesmo tipo de conceito do mundo real. Da mesma forma, no
nível M1, modelos distintos de metadados podem-se atribuir nomes diferentes a elementos que representam os mesmo conceitos. Por exemplo, num dado modelo, a descrição de um elemento pode ser representada pelo rótulo de "informações", em um segundo modelo por "sinopse" e em um terceiro por "descrição”.
3.2.1.6 Conflitos de Identificação
Os conflitos de identificação tratam-se de um caso especial de conflitos de nomes que envolvem a identificação única das entidades do modelo. No nível M2, dependendo da linguagem usada para definir o modelo, as entidades são identificadas apenas pelo seu nome (e.g. “entidade” no modelo ER e “tabela” no modelo SQL-DDL) ou por algum identificador único (ex.: “id” no XMLSchema ou OWL). Conflitos de identificação também podem aparecer no nível M1, onde podem existir, por exemplo, modelos cujos elementos possuem identificação única através de namespaces e outros no qual os elementos, mais especificamente suas tabelas e colunas, são identificadas apenas por nomes simples, aumentando o risco de ocorrência de ambiguidade.
3.2.1.7 Conflitos de restrições
Conflitos de restrições são os conflitos que ocorrem porque modelos distintos proveem diferentes possibilidades de definição de restrições. Um exemplo para uma restrição no nível M2 é a habilidade de um esquema importar características de outros esquemas (e.g. herança de tipos). Isso é possível em linguagens como XML Schema ou OWL, mas não em ER. Chaves primárias incompatíveis, referências conflitantes (e.g. atributos similares fazendo referência para elementos diferentes) ou restrições de domínio (e.g. unicidade, obrigatoriedade) podem causar o mesmo tipo de conflito no nível de esquemas de metadados M1.
50 3.2.2 Heterogeneidades semânticas
Heterogeneidades semânticas no nível de modelo são conflitos que ocorrem por causa das diferenças na semântica dos modelos. Lembrando que a semântica de um modelo é definida pela semântica de domínio e o mapeamento das entidades do domínio para elementos do modelo. O domínio semântico provê o significado para cada elemento do modelo e pode conter expressões de linguagem, no caso das linguagens de definição de esquema, ou entidades do mundo real no caso de modelos de metadados.
3.2.2.1 Conflitos de domínio
Os conflitos de domínio ocorrem quando os domínios se sobrepõem, são sobrepostos, ou são agregados a outros, ou quando são incompatíveis. Um exemplo desse tipo de conflito no nível M2 é o nível de abrangência da expressividade das linguagens; com linguagens que possuem conjunto variado de recursos, torna-se possível modelar coisas que não são expressas com outras linguagens menos poderosas. Com OWL, por exemplo, é possível expressar que duas classes são equivalentes ou que uma classe á a união de duas outras classes. Em outras linguagens como XML Schema ou Java não há construções nas linguagens para indicar tais relacionamentos. Obviamente, conflitos de domínio podem ocorrer entre os modelos de metadados no nível M1. Por exemplo, se um modelo reflete o domínio de pagamento eletrônico e outro de conteúdos multimídia, é improvável que haja qualquer correspondência significativa entre esses modelos.
3.2.2.2 Desencontros terminológicos
Os desencontros terminológicos tratam-se de outro tipo de heterogeneidade que ocorre em dois níveis: conflitos de sinônimos, quando o mesmo conceito é mapeado em elementos com nomes diferentes e conflitos de homônimos, quando conceitos diferentes são mapeados em elementos com o mesmo nome.
Um exemplo de conflito de sinônimo seria o uso de termos distintos para expressar o mesmo conceito semântico, como o uso dos termos distintos “Autor” e “Criador” para expressar o mesmo significado.
Já um exemplo de conflito de homônimo no nível de linguagem seria o conceito de polimorfismo ou sobrecarga presente em linguagens orientadas a objeto como Java. Essas linguagens suportam funções polimórficas nas quais os seus parâmetros podem conter vários tipos. Os tipos podem ser organizados numa hierarquia de subtipos e as assinaturas
51
de métodos podem ser sobrecarregadas, ou seja, o mesmo método quando utilizado pode gerar comportamentos semanticamente diferentes. Em Java, por exemplo, num cenário contendo uma classe abstrata denominada “Operação”, com um método com a seguinte assinatura: “calcular(int valor1, int valor2)”, e contendo também as classes “Soma” e “Subtração” como especialização para “Operação”, ao executar o método “calcular” cuja assinatura está presente na classe abstrata, podemos ter uma operação de soma ou subtração de acordo com a subclasse que foi instanciada.
3.2.2.3 Conflitos de unidades
Heterogeneidade semântica que ocorre no nível de instância de metadados (M0), quando diferentes sistemas de medida são usados para mensurar informações associadas ao conteúdo. Por exemplo, as dimensões de uma determinada imagem podem ser representadas em pixels por um modelo e em centímetros por outro. Mesmo se as imagens possuíssem semanticamente a mesma dimensão, os valores representados seriam diferentes.
3.2.2.4 Conflitos de representação
São conflitos que resultam do uso de diferentes formatos para representação dos valores das informações associadas aos conteúdos. Por exemplo, dois valores de data, que semanticamente são iguais, podem ser representados de formas diferentes em cada sistema (e.g. data=01.01.2012 ou data=2012/01/01).