Adição de termos semânticos a consultas OLAP

Propaganda
Simpósio Brasileiro de Bancos de Dados - SBBD 2012
Short Papers
Adição de termos semânticos
a consultas OLAP
Robson do N. Fidalgo, Samuel de França Arcoverde
Universidade Federal de Pernambuco
[email protected], [email protected]
Abstract. OLAP tools have been widely used for decision support analysis. In turn, ontologies has proven to be an
effective and well accepted technology for recovering of semantic information. Thus, the integration of these technologies
(OLAP and ontology) allows new types of queries that, individually, these technologies are not capable of performing. In
this context, considering that related works still have not provided a solution to integrate OLAP Servers, the
MultiDimensional eXpressions (MDX) language and ontologies, this paper proposes: i) a software architecture for OLAP
and ontology integration; ii) a mapping between the metadata of a cube and the metadata of an ontology; iii) an extension
of the MDX language to allow the use of semantic terms and iv) an algorithm to rewrite a MDX query with semantic terms
in a query fully compliant with the standard syntax of this language. As proof of concept, we have developed a prototype
and presented an application that implements our proposal and shows its feasibility.
Resumo. Ferramentas OLAP são amplamente usadas para analises de suporte à decisão. Por sua vez, ontologias tem
mostrado ser uma tecnologia bem aceita e efetiva para recuperação de informação semântica. Portanto, a integração
destas tecnologias (OLAP e Ontologias) permite novos tipos de consultas que, individualmente, estas tecnologias não são
capazes de executar. Neste contexto, considerando que os trabalhos relacionados ainda não forneceram uma solução
para integrar servidores OLAP, a linguagem MultiDimensional eXpressions (MDX) e ontologias, este artigo propõe: i)
uma arquitetura de software para integrar OLAP e ontologia; ii) um mapeamento entre os metadados de um cubo e os
metadados de uma ontologia; iii) uma extensão da linguagem MDX para permitir o uso de termos semânticos e iv) um
algoritmo para reescrever uma consulta MDX com termos semânticos em uma consulta MDX totalmente em
conformidade com a sintaxe padrão desta linguagem. Como prova de conceito, foi desenvolvido um protótipo e
apresentado uma aplicação que implementa as propostas deste trabalho, o que visa mostrar a sua viabilidade.
Keywords: OLAP and Ontologies
1. INTRODUÇÃO
Sistemas para suporte à decisão permitem analisar estrategicamente os dados de uma organização. Neste
contexto, as tecnologias para processamento analítico de dados (On-Line Analytical Processing - OLAP)
[Thomsen 2002] se destacam e podem ser resumidas como ferramentas para analisar, sobre diferentes
cruzamentos de dados e níveis de detalhes, grandes Bancos de Dados (BD) conhecidos como Data
Warehouses (DW) [Kimball et al. 2008]. Apesar da boa aceitação destas ferramentas, elas ainda não dão
suporte para utilizar a semântica de um negócio (i.e., suas terminologias e regras) de forma a enriquecer o
processo de tomada de decisão. Isso ocorre pelo fato de que as ferramentas OLAP priorizam facilitar e
agilizar o processamento de consultas analíticas, ignorando os conhecimentos específicos de cada
organização. Por exemplo, as consultas “qual o total vendido de produtos baratos nos últimos semestres e
meses por fornecedor e loja?”, “qual o total de internações graves por hospital, tipo de doença e faixa
salarial do paciente nos últimos 4 anos?” e “qual o total de homicídios que ocorreram nos dias quentes por
tipo de arma, região geográfica e perfil do criminoso?” não podem ser diretamente executadas por uma
ferramenta OLAP, pois estas consultas exigem o processamento semântico dos termos “barato”, “grave” e
“quente”, os quais dependem do contexto do negócio analisado e, ao longo do tempo, podem ter suas
semânticas alteradas. Neste contexto, visando adicionar descrição semântica e lógica ao negócio de uma
105
Simpósio Brasileiro de Bancos de Dados - SBBD 2012
Short Papers
organização, as tecnologias para processamento semântico (e.g., ontologias [Lacy 2005]) vêm sendo
amplamente utilizadas para identificar as entidades e os relacionamentos de um domínio, definindo um
vocabulário conceitual para dar suporte à realização de inferências sobre esse domínio. Ressalta-se que o
conhecimento representado através de ontologias pode ser explorado por máquinas de inferência,
permitindo a geração de conhecimento adicional e não trivial, o qual pode ser útil para o enriquecimento
semântico de consultas que visam o processamento analítico de dados.
Com o objetivo de dar uma contribuição para resolver o problema de integrar consultas OLAP e
consultas semânticas em uma única ferramenta para suporte à decisão, este trabalho propõe i) uma
arquitetura de software para a integração entre OLAP e ontologia; ii) um mapeamento entre os metadados
de um cubo e os metadados de uma ontologia; iii) uma extensão da linguagem MultiDimensional
eXpressions (MDX) [Fouché and Langit 2011] para permitir o uso de termos semânticos em consultas
OLAP; e iv) um algoritmo para reescrever a consulta MDX com termos semânticos em uma nova consulta
totalmente em conformidade com a sintaxe padrão de MDX. Para avaliação do presente trabalho,
desenvolveu-se, como prova de conceito, um protótipo que implementa e mostra que as propostas
apresentadas neste artigo são relevantes e factíveis. O restante deste artigo é organizado da seguinte forma.
Na seção 2, apresenta-se os conceitos básicos relacionados a OLAP e ontologias. Na seção 3, propõe-se
uma arquitetura de software, um mapeamento entre cubos e ontologias, um algoritmo e uma extensão da
linguagem MDX para realizar processamento analítico e semântico. Na seção 4, o protótipo desenvolvido é
apresentado e avaliado. Na seção 5, os principais trabalhos relacionados são discutidos. Por fim, na seção 6,
as considerações finais e trabalhos futuros são apresentados.
2. CONCEITOS BÁSICOS SOBRE OLAP E ONTOLOGIAS
OLAP [Thomsen 2002] [Fouché and Langit 2011] é uma ferramenta de consulta que permite realizar
cruzamentos e análises em diferentes níveis de agregação dos dados de um DW [Kimball et al. 2008].
Este tipo de ferramenta realiza consultas sobre uma base de dados (materializada ou virtual) chamada
de cubo de dados [Thomsen 2002] [Fouché and Langit 2011], o qual corresponde a
sumarizações/agregações sobre um subconjunto dos dados do DW. Alguns conceitos básicos sobre
cubo de dados são [Thomsen 2002] [OMG 2003]: i) Dimensão (eixos de análises); ii) Níveis
(projeções de uma dimensão); iii) Hierarquia (visão ordenada do níveis); iv) Membro (item de dado de
um nível) e v) Medida (atributo mensurável a ser analisado). A partir de um cubo de dados, várias
operações OLAP podem ser executadas. Dentre estas, as principais são [Thomsen 2002] [Fouché and
Langit 2011]: i) Roll-up (agregação dos dados para um nível acima); ii) Drill-down (agregação dos
dados para um nível abaixo); iii) Slice (projeção sobre um ou mais níveis da dimensão de um cubo de
dados); iv) Dice (seleção sobre um ou mais membros do cubo de dados); e v) Pivoting/Rotate (rotação
dos eixos do cubo de dados). Estas operações estão disponíveis na linguagem MDX [Fouché and
Langit 2011], a qual é um padrão de facto para realizar consultas sobre servidores OLAP. Em linhas
gerais, uma consulta MDX pode ser composta pelas cláusulas: WITH (adiciona uma lista de membros
calculados e/ou conjuntos pré-definidos), SELECT (contém os dados que serão projetados), FROM
(indica o cubo a ser consultado), WHERE (impõe uma seleção ao escopo da consulta). Ressalta-se que
apenas as cláusulas SELECT e FROM são obrigatórias.
Ontologias [Lacy 2005] [Segaran 2009] são especificações explícitas e formais de termos ou
conceitos compartilhados. Isto é, estas capturam e explicitam a semântica de um negócio (suas
terminologias e regras) de forma a evitar ambiguidades e torná-la computável. A estrutura de uma
ontologia é geralmente formada por um conjunto de classes (conceitos de um domínio), relações
(associações entre as classes) e propriedades (atributos de uma classe). Uma ontologia também pode
possuir axiomas, os quais são sentenças que descrevem as regras formais de um domínio. Dentre as
linguagens para especificar ontologias, a Ontology Web Language (OWL) [Lacy 2005] é um padrão
definido pelo World Wide Web Consortium (W3C). Esta linguagem possui três sub-linguagens,
dispostas em uma sequência crescente de níveis expressividade, a saber: OWL-Lite (suporta apenas a
106
Simpósio Brasileiro de Bancos de Dados - SBBD 2012
Short Papers
criação de taxonomias e restrições simples), OWL-DL (utiliza o vocabulário completo de OWL e
garante completude e decidibilidade) e OWL-Full (permite representar ontologias com maior
flexibilidade, mas sem as garantias de computabilidade de OWL-DL). Como suporte adicional ao uso
de ontologias, é possível utilizar mecanismos de dedução chamados de raciocinadores, os quais agem
como motores de inferência sobre a descrição das ontologias, realizando checagem de consistência e
classificação automática das classes.
3. INTEGRANDO OLAP E ONTOLOGIAS
De forma a integrar OLAP e ontologias para realizar processamento analítico e semântico, na Figura 1
apresenta-se a arquitetura de software proposta neste trabalho. Nesta figura tem-se três camadas: Dados,
Processamento e Apresentação, as quais, juntamente com seus componentes, são discutidas a seguir.
Fig. 1. Arquitetura para integrar OLAP e Ontologias
A Camada de Dados é composta por um cubo OLAP e por uma Base de Conhecimento formada por
um conjunto de ontologias. O cubo OLAP deve estar em conformidade com os padrões Common
Warehouse Metamodel (CWM) [OMG 2003] e XML for Analysis (XMLA) [MSDN 2012]. Por sua vez, a
base de conhecimento é formada por três tipos de ontologias: Dimensão, Semântica do Negócio e
Integração, as quais são resumidas assim:
• Ontologia de Dimensão - representa os dados (i.e., membros) e metadados (i.e., hierarquia e nível) da
dimensão de um cubo OLAP como classes e relacionamentos ontológicos (ver Mapeamento OLAPOntologia na Figura 1). A construção desta ontologia é automática e segue os três passos a seguir: i)
nomear a Ontologia de Dimensão com o mesmo nome da dimensão que ela representa; ii) criar, para
cada membro de um nível da dimensão, uma classe ontológica cujo nome deve ser o mesmo nome
único (propriedade UNIQUE NAME de MDX) do membro e, para cada classe criada, deve-se definir a
propriedade NÍVEL, a qual registra o nome do nível a que pertence o membro representado pela
classe; e iii) definir os relacionamentos entre as classes de modo que estes representem os mesmos
relacionamentos hierárquicos existentes entre os membros de uma dimensão. Ressalta-se que todas as
relações de hierarquia devem possuir as propriedades de inversão e transitividade e que o nome dessas
relações deve ser o mesmo nome das hierarquias que elas representam, pois isto permite representar o
107
Simpósio Brasileiro de Bancos de Dados - SBBD 2012
Short Papers
conjunto de hierarquias de uma dimensão apenas definindo novos relacionamentos entre as classes.
Além disso, é importante destacar que, devido ao fato de todos os membros e hierarquias de uma
dimensão estarem presentes em sua respectiva Ontologia de Dimensão, este tipo de representação é
completa e única para cada dimensão;
• Ontologia de Semântica do Negócio - descreve as regras e termos semânticos (i.e., conceitos que
representam um conhecimento empírico de um negócio) de uma organização. Esta ontologia é
construída em três passos: i) importação de uma ou mais Ontologias de Dimensão, ii) criação de
uma classe ontológica para cada termo semântico e iii) definição manual das regras e/ou axiomas
que modelam a semântica do negócio da organização. Ressalta-se que uma Ontologia de Semântica
do Negócio pode importar várias Ontologias de Dimensão, as quais podem ser importadas por várias
Ontologias de Semântica do Negócio (ver Base de Conhecimento na Figura 1). Note que separar as
Ontologias de Semântica do Negócio das Ontologias de Dimensão dá flexibilidade para alterar a
semântica do negócio sem afetar as Ontologias de Dimensão (representação ontológica dos dados do
cubo OLAP), o que facilita e torna menos custosas as alterações dos termos e regras do negócio;
• Ontologia de Integração - importa as Ontologias de Semântica do Negócio que estão relacionadas a
um cubo OLAP, abstraindo a complexidade de manipular várias ontologias diferentes. A partir da
Ontologia de Integração qualquer uma das classes das Ontologias de Semântica do Negócio e das
Ontologias de Dimensões podem ser acessadas, pois a Ontologia de Integração importa as Ontologias
de Semântica do Negócio e estas importam as Ontologias de Dimensão. Portanto, por transitividade,
uma Ontologia de Integração contém todas as classes das suas Ontologias de Semântica do Negócio e
de Dimensões. Ressalta-se que uma Ontologia de Integração deve ter o mesmo nome do cubo OLAP,
pode importar várias Ontologias de Semântica do Negócio e estas podem ser importadas por outras
Ontologias de Integração (ver Base de Conhecimento na Figura 1). Além disso, um cubo está
associado a uma única Ontologia de Integração e esta só pode estar associada a um cubo (ver
Mapeamento OLAP-Ontologia na Figura 1).
A Camada de Processamento é composta pelo componente Tradutor OLAP-Ontologia, pela API
OLAP e pela API Semântica. O Tradutor OLAP-Ontologia é basicamente a fusão de um analisador de
tokens (i.e., termos semânticos) e um gerador de código (i.e., reescrita de uma MDX com termos
semânticos em uma MDX padrão). No Quadro 1, apresenta-se o pseudocódigo com os principais passos
para implementar o componente Tradutor OLAP-Ontologia.
Quadro 1. Pseudocódigo do Componente Tradutor OLAP-Ontologia
Entrada: mdx //consulta OLAP com termo semântico
Saída: resultado //resultado da consulta OLAP com termos semânticos reescritos em membros OLAP
Método:
01: INÍCIO
02: LER (mdx); //Leitura da MDX com termos semânticos
03: vetorTermosSemanticos[] = obterTermosSemanticos(mdx); // Obtenção dos termos semânticos da MDX
04: SE (vetorTermosSemanticos <> vazio) ENTÃO { //Teste para verificar se a MDX tem temos semânticos
05:
PARA (i = 1; i <= VetorTermosSemanticos[].tamanho(); i++){ //Construção do vetor de classes ontológicas
06:
vetorClassesOntologicas[] = obterClassesOntologicas(vetorTemosSemanticos[i]);
07:
vetorMembrosOLAP[] = vazio; // Limpeza do vetor de membros OLAP
08:
PARA (j = 1; j <= vetorClassesOntologicas[].tamanho(); j++){ //Construção do vetor de membros OLAP
09:
vetorMembrosOLAP [] = obterNomeUnicoMembroOLAP(vetorClassesOntologicas[j]);
10:
}
11:
mdx = reescreverTermoSemantico(mdx, vetorMembrosOLAP[]); // Reescrita da MDX
12:
vetorClassesOntologicas[] = vazio; //Limpeza do vetor de classes Ontológicas
13:
}
14: }
15: resultado = executarMdx(mdx); // Execução da MDX
16: enviarResultado(resultado); // Envio do resultado para a interface gráfica do usuário
17: FIM
No quadro 1 tem-se os seguintes passos mais importantes:
i)
A leitura da MDX com termos semânticos (ver linha 02);
108
Simpósio Brasileiro de Bancos de Dados - SBBD 2012
Short Papers
ii) A construção do vetor de termos semânticos (ver linha 03). Este vetor é construído a partir de
uma análise léxica para obter os tokens (termos semânticos) da consulta MDX. Ressalta-se que um
termo semântico é gramaticamente definido pela seguinte expressão regular #\([a-zA-Z0-9_\-]+\). A
partir desta expressão regular pode-se criar termos semânticos como:
#(PeríodoQuente),
#(Período_Quente), #(PeríodoQuente2012) e #(Período-Quente), os quais são usados para estender a
sintaxe da linguagem MDX, pois podem ser usados em substituição da função MEMBERS desta
linguagem. Ou seja, assim como a função MEMBERS, um termo semântico retorna um conjunto de
membros de um cubo;
iii) O teste que verifica se o vetor de termos semânticos não está vazio (ver linha 04). Isto é, se não
houver termo semântico na consulta MDX, não há necessidade de reescrevê-la;
iv) A iteração para construir o vetor com as classes ontológicas (ver linha 06). Para cada iteração,
usando uma API Semântica (e.g., Jena), deve-se consultar a Ontologia de Integração e obter todas as
classes que são filhas da classe que possui o mesmo nome do termo semântico da iteração atual;
v) A sub-iteração para construir o vetor com os membros OLAP correspondentes aos termos
semânticos (ver linha 08). Para cada iteração, deve-se obter o nome de cada classe ontológica
correspondente ao termo semântico e atribuí-lo ao nome de cada membro do vetor de membros OLAP.
Note que, como os nomes das classes das Ontologias de Dimensão são idênticos aos nomes únicos dos
seus respectivos membros OLAP, os elementos do vetor com membros OLAP já estão totalmente
aderentes à sintaxe de MDX;
vi) A reescrita de cada termo semântico da consulta MDX (ver linha 11). Neste passo, cada termo
semântico é substituído pela função MEMBERS de MDX (e.g., [Data].[Dia].#(PeriodoQuente) [Data].[Dia].MEMBERS). Além disso, como os membros OLAP não precisam estar no mesmo nível
hierárquico, para cada nível diferente, deve-se escrever uma função EXISTS de MDX. Esta função tem
dois argumentos obrigatórios (conjunto1 e conjunto2) e retorna todos os membros do conjunto1 que
pertencem ao conjunto2. Para a reescrita da consulta MDX, o primeiro argumento deve ser a expressão
com a função MEMBERS, enquanto o segundo argumento, o conjunto de membros correspondentes
ao termo semântico (e.g., EXISTS( [Data].[Dia].MEMBERS, {[Data].[Dia].[29/4/2012],
[Data].[Dia].[30/4/2012]}) ). Ressalta-se que os membros do conjunto2 devem ser do mesmo nível;
vii) A execução da consulta MDX reescrita (ver linha 15). Este passo é realizado fazendo-se uso de
uma API OLAP (e.g., XMLA);
viii) O envio do resultado para a interface gráfica do cliente (ver linha 16).
Por fim, a Camada de Apresentação é formada pelo componente Interface Gráfica do Usuário. Este
componente pode ser qualquer cliente OLAP (local ou remoto) que esteja em conformidade com o
padrão XMLA (e.g., JPivot).
4. PROTÓTIPO DESENVOLVIDO
Como prova de conceito das propostas apresentadas neste trabalho, um protótipo do tradutor OLAPOntologia foi desenvolvido na linguagem de programação Java. Os demais componentes da arquitetura de
software apresentada na Figura 1 reusam as seguintes tecnologias: Mondrian (servidor de cubos OLAP),
OWL (Base de Conhecimento), XMLA (API OLAP), Jena e Pellet (API Semântica) e JPivot (Interface
Gráfica do Usuário). Uma aplicação usando o protótipo desenvolvido é apresentada a seguir.
4.1
AVALIAÇÃO DO PROTÓTIPO
Para avaliar o protótipo foi desenvolvida uma aplicação a partir de um cubo de dados Vendas e as
seguintes ontologias: Vendas (Ontologia de Integração), Períodos (Ontologia de Semântica do Negócio)
e Data (Ontologia de Dimensão), todas escritas em OWL-DL. O cubo Vendas é formado pelas
109
Simpósio Brasileiro de Bancos de Dados - SBBD 2012
Short Papers
dimensões Data, Cliente e Produto e pela medida Quantidade de Vendas. A dimensão Data possui a
hierarquia Ano-Mês-Dia (Ano > Mês > Dia). A dimensão Cliente possui a hierarquia
País-Região-Cidade (País > Região > Cidade). Por fim, a dimensão Produto possui a hierarquia
Categoria-Subcategoria-Tipo (Categoria > Subcategoria > Tipo). Por sua vez, as ontologias são
definidas assim: a ontologia Data representa todos os membros da dimensão Data, bem como as suas
relações de acordo com a hierarquia Ano-Mês-Dia. A ontologia Períodos importa a ontologia Data e
reutiliza as classes dessa ontologia para especificar os seguintes termos semânticos: PeríodoQuente,
PeríodoFrio e PeríodoMorno. Finalmente, após a importação da ontologia Períodos, a ontologia Vendas
está pronta para ser utilizada pela aplicação. Por limitação de espaço, a Figura 2 ilustra o trecho dessas
ontologias que define o termo semântico PeríodoMorno, o qual corresponde aos dias 29/4/2012,
30/4/2012 e a todos os dias do mês de maio.
Fig. 2. Ontologia de Integração Vendas
Os Quadros 2 e 4 apresentam duas consultas que foram usadas para avaliar o protótipo desenvolvido.
Ressalta-se que um termo semântico pode ser usado em substituição da função MEMBERS de MDX, o
que permite a construção de várias outras consultas.
Quadro 2. Consulta semântica #1
SELECT
DRILLDOWNMEMBER( [Data].[Ano-Mês-Dia].[2012].CHILDREN,
[Data].[Ano-Mês-Dia].[Mês].#(PeríodoMorno) ) ON 0,
[Measures].[Quantidade de Vendas] ON 1
FROM [Vendas]
Ao utilizar a função DRILLDOWNMEMBER, a consulta do Quadro 2 tem como objetivo exibir qual a
quantidade de vendas para todos os meses do ano de 2012, detalhando pelo nível Dia apenas os meses
que pertencerem à definição do termo semântico PeríodoMorno. Após o Tradutor OLAP-Ontologia
realizar a reescrita da consulta do Quadro 2, tem-se a consulta apresentada no Quadro 3, a qual está
totalmente em conformidade com a sintaxe padrão de MDX e já pode ser executada por qualquer
servidor OLAP em conformidade com o padrão XMLA.
Quadro 3. Reescrita da consulta semântica #1
SELECT
DRILLDOWNMEMBER( [Data].[Ano-Mês-Dia].[2012].CHILDREN,
{ EXISTS([Data].[Ano-Mês-Dia].[Mês].MEMBERS,{[Data].[Dia].[29/4/2012],[Data].[Dia].[30/4/2012]},
EXISTS([Data].[Ano-Mês-Dia].[Mês].MEMBERS,{[Data].[Mês].[MAIO,2012]} } ) ON 0,
[Measures].[Quantidade de Vendas] ON 1
FROM [Vendas]
110
Simpósio Brasileiro de Bancos de Dados - SBBD 2012
Short Papers
Quadro 4. Consulta semântica #2
SELECT
NON EMPTY CROSSJOIN( [Cliente].[Cidade].MEMBERS, [Data].[Mês].#(PeríodoMorno) ) ON 0,
[Measures].[Quantidade de Vendas] ON 1
FROM [Vendas]
O objetivo da consulta semântica #2 (ver Quadro 4) é processar a quantidade de vendas por cidade e mês
que ocorreram em períodos mornos. Após a reescrita da consulta do Quadro 4, tem-se a consulta
apresentada no Quadro 5, a qual também está totalmente em conformidade com a sintaxe padrão de MDX.
Quadro 5. Reescrita da consulta semântica #2
SELECT
NON EMPTY CROSSJOIN( [Cliente].[Cidade].MEMBERS,
{ EXISTS([Data].[Ano-Mês-Dia].[Mês].MEMBERS,{[Data].[Dia].[29/4/2012],[Data].[Dia].[30/4/2012]}),
EXISTS([Data].[Ano-Mês-Dia].[Mês].MEMBERS,{[Data].[Mês].[MAIO,2012]}) } ) ON 0,
[Measures].[Quantidade de Vendas] ON 1
FROM [Vendas]
5. TRABALHOS RELACIONADOS
[Necib and Freytag 2003] realizam consultas a um BD relacional adicionando termos semânticos às
consultas SQL. Os autores baseiam-se na ideia de que um termo semântico, correspondente a uma classe
ontológica, pode ser adicionado como um predicado da cláusula WHERE. O passo final do processo
consiste em reescrever a consulta SQL substituindo os termos semânticos pelos predicados que
representam o significado dos termos. As consultas SQL semânticas definidas aqui possuem maior poder
de expressividade e por isso produzem resultados mais significativos. Entretanto, o trabalho de [Necib
and Freytag 2003] só funciona para BD relacionais. Isto é, ele não apresenta uma solução para integrar
OLAP e Ontologias, tampouco para fazer processamento analítico e semântico a partir de MDX.
[Sell et al. 2008] propõe um framework que realiza a tradução de consultas semânticas em consultas
analíticas que simulam o comportamento de um cubo OLAP. O framework desenvolvido utiliza uma
ontologia formada pelos dados das tabelas de dimensão de um DW e pelas regras de negócio inerentes
aos dados. Uma consulta semântica é construída a partir da adição de filtros semânticos na cláusula
WHERE de SQL. Apesar de ser apresentado como uma solução OLAP, ao invés de consultar um cubo
de dados com a linguagem MDX, o framework realiza consultas SQL diretamente no DW utilizando
operadores de agregação. Ou seja, este trabalho também não provê uma solução para integrar um
servidor OLAP e uma base de conhecimento ontológica a fim de permitir a realização de consultas
analíticas e semânticas a partir da linguagem MDX.
[Saleh 2011] sugere uma abordagem para realizar consultas semânticas em um BD relacional. Ele
propõe que o esquema relacional e os dados do BD sejam mapeados em uma ontologia e caso seja
necessário, um especialista pode adicionar novas classes ou relações à ontologia inicial. A consulta
semântica definida pelo usuário é na verdade uma consulta escrita em SPARQL que será traduzida
para SQL baseando-se nas informações da ontologia. Embora o autor utilize consultas SPARQL e SQL,
seu trabalho não integra efetivamente as duas tecnologias, pois elas não podem ser utilizadas
simultaneamente em uma mesma consulta. Além disso, a abordagem proposta por [Saleh 2011]
também não é voltada para integrar servidores OLAP com ontologias, tampouco estende a sintaxe da
linguagem MDX para permitir a realização de consultas analíticas e semânticas.
[Prat et al. 2012] descrevem um conjunto de passos e regras de transformação que visam construir
uma ontologia a partir dos conceitos de um metamodelo de um cubo. Assim como todos os trabalhos
anteriormente discutidos, este não faz uso de um servidor OLAP tampouco da linguagem MDX. Ou
seja, dentre os trabalhos investigados, nenhum ataca o problema de como realizar consultas
semânticas usando um servidor OLAP e a linguagem MDX.
111
Simpósio Brasileiro de Bancos de Dados - SBBD 2012
Short Papers
6. CONSIDERAÇÕES FINAIS
A integração entre OLAP e ontologias permite estender o poder das consultas OLAP a partir do
processamento de termos semânticos e da realização de inferências e raciocínios sobre o domínio de um
negócio, enriquecendo o processo de tomada de decisão. A partir de um estudo sobre os principais
trabalhos relacionados, pode-se constatar que nenhum deles propõe uma solução que permite integrar
OLAP e ontologias para realizar consultas semânticas a partir da linguagem MDX. Dado que este ponto
em aberto é relevante, pois estas tecnologias (i.e., OLAP, ontologia e a linguagem MDX) são
amplamente usadas pela indústria e academia, este trabalho, de forma a dar uma contribuição na direção
de resolver este ponto em aberto, propôs: i) uma arquitetura de software para a integração OLAP e
ontologia; ii) um mapeamento entre os metadados de um cubo e os metadados de uma ontologia; iii)
uma extensão da linguagem MDX para permitir o uso de termos semânticos; e iv) um algoritmo para
reescrever a consulta MDX com termos semântico em uma consulta totalmente em conformidade com a
sintaxe padrão de MDX. Como pontos fortes deste trabalho têm-se: i) a independência de um servidor
OLAP específico, pois como a arquitetura de software é baseada no padrão XMLA, pode-se usar qualquer
servidor OLAP aderente a este padrão; ii) a especificação do mapeamento e dos passos necessários para
traduzir um termo semântico em membros do cubo e iii) uma expressão regular que permite facilmente
estender a sintaxe da linguagem MDX de forma a fazer uso de termos semânticos. Em resumo, este
artigo contribui para avançar o estado da arte na área de processamento semântico e analítico, pois
propõe o primeiro trabalho que consegue realizar a integração entre servidor OLAP, linguagem MDX e
Ontologias em um único ambiente para suporte à decisão, o que abre uma nova perspectiva de pesquisa
científica e industrial.
Apesar das contribuições obtidas, muitos trabalhos futuros ainda têm que ser realizados, como por
exemplo, uma avaliação experimental usando um cubo com um enorme volume de dados (10GB/20GB),
a fim de analisar a escalabilidade das propostas apresentadas neste artigo (para este trabalho pode-se usar
ferramentas que geram DW artificiais - e.g., Star Schema Benchmark - SSB). Além deste, outros
trabalhos futuros são: melhorar a atual ontologia para que esta permita a realização de inferências que
gerem conhecimento adicional e definir operações de drill-down/roll-up semânticos que exporem as
hierarquias das ontologias.
Agradecimento: Os autores agradecem ao CNPQ pelo apoio financeiro dado a realização deste
trabalho, o qual está no contexto do projeto 475777/2010-7.
REFERÊNCIAS
F OUCHÉ G, L ANGIT L. Foundations of SQL Server 2008 R2 Business Intelligence. Apress; 2011
KIMBALL R, R OSS M, THORNTHWAITE W, M UNDY J, BECKER B. The Data Warehouse Lifecycle Toolkit. 2nd ed. John Wiley
& Sons; 2008.
L ACY L. W. OWL: Representing Information Using the Web Ontology Language. Trafford Publishing; 2005
MSDN. XML for Analysis Reference (XMLA). Available at: http://msdn.microsoft.com/en-us/library/ms186604.aspx. Accessed
July 2012.
NECIB, C. B., F REYTAG, J. C. Ontology-based Query Processing in Database Management Systems, 2003.
OMG. Common Warehouse Metamodel (CWM) Specification. 2003.
P RAT , N., AKOKA, J., COMYN-WATTIAU, I. Transforming Multidimensional Models into OWL-DL Ontologies, 2012.
S ALEH, M. E. Semantic-Based Query in Relational Database Using Ontology, Canadian Journal on Data Information and
Knowledge Engineering, vol. 2, nº 1, 2011.
S EGARAN T, EVANS C, TAYLOR J. Programming the Semantic Web. O’Reilly Media; 2009.
S ELL , D., S ILVA, D. C., BEEPLER, F. D., NAPOLI, M., G HISI, F. B., P ACHECO, R. C. S., AND T ODESCO, J. L. SBI: A
Semantic Framework to Support Business Intelligence. OBI, pp. 1-11, 2008.
T HOMSEN E. OLAP Solutions: Building Multidimensional Information Systems. 2nd ed. John Wiley & Sons; 2002.
112
Download