uma abordagem formal à representação e recuperação de objetos

Propaganda
UMA ABORDAGEM FORMAL À REPRESENTAÇÃO
RECUPERAÇÃO DE OBJETOS TEMPORAIS INCOMPLETOS
E
Ed Porto Bezerra, Ulrich Schiel*, José Hamurabi Nóbrega de Medeiros*
Departamento de Informática
* Departamento de Sistemas e Computação
Universidade Federal da Paraíba
Universidade Federal da Paraíba
Cidade Universitária
Av. Aprígio Veloso, 882, Bodocongó
58.059-900 João Pessoa - Brazil
58.109-970 Campina Grande - Brazil
e-mail: {porto, ulrich, [email protected]}
Resumo. Para que se modele mais fielmente o mundo
real é importante podermos representar conceitos como tempo
e incerteza dos dados. Este artigo mostra nossa tentativa de
criação de uma teoria para o tratamento de objetos temporais
incompletos. Inicialmente implementamos um sistema para
manipulação de objetos temporais incompletos, chamado
MITO, como forma de adquirir experiência. Apresentamos aqui
um pouco do MITO e uma lógica modal temporal usada para
formalizar a parte de recuperação de objetos temporais.
Palavras-chaves:
informação
imprecisa,
temporais incompletos, lógica modal temporal.
objetos
1 INTRODUÇÃO
É cada vez mais evidente a utilização crescente dos computadores para facilitar
o dia-a-dia das pessoas. Nesse processo, é fundamental que os softwares modelem mais
fielmente o mundo real, representando conceitos importantes como o tempo e a
incerteza intrínseca em certos dados. É com tal intenção que o tratamento do tempo, da
incerteza e da informação temporal incompleta continuam sendo áreas de intensa
pesquisa, principalmente em bancos de dados e em inteligência artificial [LS90, Mo90,
Be91, GNP92, TCG+93, Ch94, Ko94, Vi94, AHV95, BCS+96, Dy96, GT96, DSF97,
NFM97]. Uma evidência forte da importância do assunto é a linguagem TSQL2 [Sn95],
uma extensão temporal da linguagem SQL, que trata inclusive da incerteza temporal.
Em várias aplicações a informação disponível é incompleta ou imprecisa,
inclusive a informação temporal. O tratamento do suporte de consultas e atualizações
incompletas é fundamental, particularmente para sistemas de bancos de dados.
A incompletitude nos valores dos dados pode surgir de várias formas. O dado
pode ser incerto por natureza; por exemplo, apenas uma porcentagem de todos os
fumantes pode desenvolver câncer. O valor real do dado pode ser desconhecido; por
exemplo, o salário de um empregado novo pode ser ainda indefinido. Pode também ser
parcialmente conhecido, como é o caso da informação imprecisa e da informação
negativa que abordaremos mais adiante. O dado pode não ter sido ainda obtido; por
exemplo, o professor da disciplina banco de dados pode não ter sido escolhido. Todavia,
se são dois os professores candidatos, há uma probabilidade de 0.5 de que a disciplina
ocorra. Como dissemos, os sistemas de informação deveriam ser capazes de manipular
dados incompletos. Infelizmente esta facilidade não está disponível no modelo de dados
relacional, o mais popular de todos, e nem na sua linguagem de consultas SQL, embora
sugestões comecem a aparecer [DS97].
Para dar suporte ao tratamento da informação temporal incompleta projetamos
desenvolver uma teoria, usando uma linguagem com rigor matemático, onde
pudéssemos provar certas propriedades necessárias à validação de um sistema. Como
primeiro passo deste projeto, implementamos um sistema para manipulação de objetos
temporais incompletos, chamado MITO [BSF97], na tentativa de aquisição de
experiência no trato deste tipo de informação. Percebemos que o uso de uma lógica
modal temporal seria adequada à formalização do MITO.
Este artigo pretende mostrar um pouco do MITO [BSF97] e a formalização de
sua parte de consultas através de uma lógica modal temporal. A opção por uma lógica
não-clássica deveu-se a sua adequação com a natureza dos operadores empregados no
MITO, como os operadores modais de possibilidade M (maybe) e de crenças K(known);
e os operadores temporais after, before, during, sometime e never.
Não discorremos neste artigo, por falta de espaço, sobre os fundamentos de
lógica modal, temporal e de crenças, mas sugerimos algumas referências bibliográficas
[En72, Re89, Chang e Lee, Em90, vB91, Pa94, Le94].
Há principalmente duas interpretações possíveis para um banco de dados. A
suposição do mundo fechado, conhecida na literatura pela sigla CWA oriunda de
“closed world assumption”, significa que toda informação relevante está armazenada no
banco de dados, ou seja, se um fato não pode ser derivado do banco de dados ele é
assumido ser falso. Pela suposição do mundo aberto, conhecida na literatura pela sigla
OWA oriunda de “open world assumption, um fato é falso somente se sua negação pode
ser derivada do banco de dados. Logo, fatos que não estão armazenados no banco de
dados e nem são deriváveis dos dados existentes são considerados falsos na CWA, e
desconhecidos ou possíveis na OWA [KW85].
A CWA não é adequada para sistemas de informação que tratam informação
incompleta. Na OWA, coisas que não são verdade devem ser explicitamente declaradas
ou armazenadas como sendo falsas. Este tipo de informação é chamado de informação
negativa.
Na OWA uma classe específica pode ser “fechada” para declarar que todos os
fatos não armazenados explicitamente na classe são falsos. Se nós temos, por exemplo,
uma classe de empregados, o objeto especial not(empregados(*)) significa que não há
mais empregados do que aqueles armazenados.
Segundo Levesque [Le94], para que um sistema trate efetivamente com
informação incompleta, ele deve ser capaz de determinar os limites exatos do que é
conhecido. Isto sugere o emprego de uma lógica de crenças. Como nossa abordagem é a
OWA, assumimos que todos os fatos ou asserções representados no banco de dados
devam ser conhecidos e por isso empregamos o operador modal K.
Nós distinguimos três tipos de informação incompleta: desconhecida, imprecisa
e negativa. Uma distinção similar se aplica a informação temporal.
O artigo está organizado da seguinte forma: as seções 2, 3 e 4 mostram algumas
características do MITO que são, respectivamente, um exemplo de objetos temporais
incompletos e como representá-los e consultá-los. A seção 5 relata uma lógica modal
temporal, descrevendo seu alfabeto, termos, fórmulas, definições, axiomática e algumas
demonstrações. As conclusões estão na seção 6.
2 UM EXEMPLO DE OBJETOS TEMPORAIS INCOMPLETOS
Um objeto é algo que faz sentido no contexto de uma aplicação e é distinguível
de outros objetos [RBP+91]. Um objeto é representado aqui por uma identificação e um
conjunto de atributos.
Objetos incompletos são aqueles que possuem algum atributo com valores
incompletos [Zi90]. Objetos temporal têm um tempo associado descrevendo a duração
da existência do objeto. Finalmente, objetos temporais incompletos são objetos
incompletos cujo atributo temporal é também incompleto.
O seguinte exemplo ilustra várias imprecisões. Este exemplo mostra um
conjunto de objetos do tipo emprego relacionando empregados a companhias e os seus
respectivos salários.
emprego(1) : empregado = Antônio or. emprego(3) : empregado =
João
João
companhia = ufpb
companhia = ufrn or ufpb
salário = >1500
salário = 1600
tempo = [1994, now]
tempo = [1979, 1982]
emprego(4) : empregado = *
emprego(2) : empregado = not(João)
companhia =ufpe
companhia = ufpb
salário = 1500
salário = interval(2000,3000)
tempo = [1970, 1990]
tempo = [before(1983), now]
Os três tipos de informação incompleta são os seguintes:
DESCONHECIDA: um valor desconhecido (também chamado valor nulo
[Co79]) é representado por um asterisco e significa que o atributo correspondente se
mantém para o objeto, mas nós não conhecemos nada sobre o seu valor. Por exemplo,
emprego(4) declara que o empregado é uma pessoa desconhecida.
IMPRECISA: neste caso nós temos alguma informação sobre o atributo, mas
não um valor preciso. Por exemplo, emprego(3) declara que o salário de João na UFPb é
maior do que 1.500. O valor pode ser dado como uma lista disjuntiva de valores
possíveis, ou um domínio numérico de intervalos fechados, chamado função intervalo.
Por exemplo, emprego(1) tem duas imprecisões disjuntivas, e emprego(2) representa
um salário de João entre 2.000 e 3.000. A função intervalo não é usada pelo atributo
tempo porque, neste caso, está subentendida.
NEGATIVA: A negação é necessária na abordagem OWA, a fim de declarar
qual informação é falsa. Por exemplo, emprego(2) declara que o empregado não é João.
Ainda não estudamos nada a respeito da composição deste três tipos de
informação incompleta. Embora pareça interessante, tivemos outras prioridades no
MITO.
3 REPRESENTANDO OBJETOS TEMPORAIS INCOMPLETOS
As características do atributo especial tempo são abordadas nesta seção. Este
atributo pode ser dado por um só operador temporal ou por um par destes, especificando
o início e o fim do intervalo de tempo ou duração da existência do objeto. Um operador
temporal único é convertido em um par. Por exemplo, before(1993) significa
(*,before(1993)), ou seja, é assumido que a duração do objeto acaba antes de 1993 e seu
início é algum instante antes deste ponto final. Os operadores temporais incompletos,
usados como limites de um intervalo de tempo, e seus significados são dados na Tabela
1. Nós distinguimos entre intervalos de tempo I e instantes de tempo t, que são
intervalos na menor granularidade do sistema.
Operador
constant
before(t)
after(t)
during(t)
*
Significado
o instante é dado por uma constante
o instante ocorre alguma vez antes de t
o instante ocorre alguma vez depois de t
o instante ocorre alguma vez durante I
o instante é desconhecido
Tabela 1 – operadores temporais incompletos
O uso de operadores temporais incompletos nos limites do atributo tempo de um
objeto leva a vários valores verdade sobre a linha imaginária do tempo, conhecida na
literatura como time axis. A fim de determinar estes valores, definimos quatro
predicados que se aplicam a intervalos [X,], onde X é o ponto inicial do intervalo e Y é
o ponto final. Os intervalos podem ser:
[X,Y] - intervalo fechado
(X,Y) - intervalo aberto
(X,Y] - intervalo semi-aberto à esquerda
[X,Y) - intervalo semi-aberto à direita
Os predicados usados pelo sistema são apresentados na Tabela 2.
Predicado Significado
A(I)
o fato sempre é verdade durante I
S(I)
o fato algumas vezes é verdade durante I (1 ou mais vezes)
P(I)
o fato pode ser verdade durante I (0 ou mais vezes)
N(I)
o fato nunca é verdade durante I
Tabela 2 – predicados sobre a time axis
O MITO utiliza um mecanismo para a atribuição de valores verdade sobre a time
axis, originalmente proposto por Oresotu [Or88] e reformulado em [Be97a, Be97b,
Be97c, BSF97], no processamento de consultas. Os valores verdade estão na Tabela 3.
end(I)
begin(I)
Y
before(Y) after(Y)
during(Y)
*
X
[X,Y]
[X,X]
[X,Y+1]
[X,X]
before(X)
S(∞,X)
[X,Y]
[Y,Y]
S[X,X]
S(-∞,X)
[X-1,Y+1]
[X,Y)
S[Y,Y]
[X-1,Y)
S[Y,Y]
S(X,Y)
S[X,X]
S(X,+∞)
S[X,X]
S[Y,Y]
S[X,X]
S(X,+∞)
S[X,X]
after(X)
during(X)
S(-∞,X)
(X,Y]
*
[Y,Y]
(X,Y+1]
(X,Y)
S[Y,Y]
S[Y,Y]
S(∞,+∞)
Tabela 3 - valores da (time axis) para intervalos de tempo incompletos
S(-∞,Y)
S(Y,+∞)
Para um melhor entendimento da Tabela 3, suponhamos um atributo de tempo
‘tempo = before(1990), during(1992)’. A validade do objeto tem começado alguma vez
antes de 1990 e acabou em 1992.
Graficamente isto pode ser mostrado como
...__________|1990|_______| 1992 |_________...
-∞
P
A
A
S
S
+∞
e a lista resultante de valores verdade é
(P[01/01/0001,30/12/1989],A[31/12/1989,31/12/1991],S[01/01/1992,31/12/1992])
O predicado A(I) é representado sem a letra A na Tabela 3, embora sua
semântica seja a mesma já definida. O predicado P(I) não é representado na Tabela 3
por representar um fato que pode não ser verdade, apesar de ser considerado na lista
resultante que é uma estrutura de dados tratada no MITO.
A parte da time axis que não aparece na lista é considerada desconhecida.
4 CONSULTANDO OBJETOS TEMPORAIS INCOMPLETOS
Com uma consulta o usuário de um sistema pode obter informação sobre uma
aplicação representada em um banco de dados. Uma consulta é chamada de casamento
exato com relação a um banco de dados [KB96], se os dados requeridos existem neste
banco de dados de forma similar. Dizemos que uma consulta é de casamento parcial
com relação a um banco de dados, se ela não é de casamento exato, mas seu domínio é
um subconjunto do domínio neste banco de dados. A forma geral de uma consulta é:
nome-objeto”(“valor,{[,valor]}”)”[“;”valor-temporal]”.”
Onde:
a) nome-objeto é o nome do objeto correspondente;
b) valor pode ser um dos seguintes:
. uma constante;
. um valor desconhecido, impreciso ou negativo;
. o símbolo ‘x’ significando que o valor deste atributo deve ser recuperado;
. o símbolo ‘_’ significando que o valor deste atributo não está envolvido na
consulta;
c) valor-temporal corresponde a parte temporal da consulta. Ele pode ser um dos
operadores temporais incompletos introduzidos na seção 3.
As consultas podem ser classificadas como consultas booleanas, aquelas que
retornam um valor verdade, ou consultas de recuperação que são aquelas que retornam
dados armazenados no banco de dados.
4.1
Consultas booleanas
Uma consulta booleana é caracterizada pelo fato de não conter nenhum ‘x’. Os
argumentos da consulta são pesquisados no banco de dados e este processo retorna um
dos seguintes valores verdade: yes, no, possible ou unknown. O valor desconhecido é
retornado quando nenhum dos objetos satisfaz a consulta. O seguinte exemplo ilustra a
avaliação de uma consulta booleana.
Consideremos a consulta emprego(joão,ufpb,>1500);during(1970,1995) sobre o
banco de dados descrito na seção 2. Dois dos objetos, emprego(1) e emprego(3),
satisfazem a consulta e os valores verdade de cada um dos atributos envolvidos são
apresentados na Tabela 4:
objeto
companhia
salário
tempo
emprego(1)
empregad
o
Possible
Possible
Yes
Yes
emprego(3)
Yes
Yes
Yes
Yes
valores intra- valores
objeto
inter-objeto
Possible
Yes
Yes
Tabela 4 – avaliação de consulta booleana
O valor verdade de cada objeto, chamado valor verdade intra-objeto, é obtido de
acordo com regras que combinam estes valores. Nos chamamos a resposta final de uma
consulta de valor verdade inter-objeto. Esta é obtida pela combinação entre os valores
verdade intra-objetos também obedecendo regras. Sugerimos a leitura de [BSF97] para
o entendimento das regras.
4.2
Consultas de recuperação
Uma consulta de recuperação retorna alguns dados armazenados no banco de
dados. Por exemplo, se queremos saber quem trabalhou na UFPb, nós consultamos
emprego(x,ufpb,_). O objeto emprego(1) retorna possible(João ou Antônio), enquanto
que emprego(3) e emprego(4) retornam yes(João) e yes(*), respectivamente. Pela
integração destas três respostas, obtemos possible(João) e yes(João, *).
4.3
Ambiente de implementação
A ferramenta para desenvolvimento que escolhemos foi LPA-Prolog para
windows [LPA96]. Esta escolha foi porque uma linguagem de programação em lógica
seria mais adequada para dedução de dados, fundamental em nosso trabalho, e o módulo
LPA-Prolog++ trata objetos.
5 UMA LÓGICA PARA OBJETOS TEMPORAIS INCOMPLETOS
Introduzimos nesta seção uma lógica modal temporal para representação e
recuperação de objetos temporais incompletos utilizados no MITO.
5.1
5.1.1
ALFABETO
Símbolos lógicos
pontuação: ( , ), [ , ] , < , >
conectivos: ¬, ∨
quantificador: ∀
operadores modais: M, K
operadores temporais: sometime, never, before, after, during
variáveis:
não-temporais: x, y, z
instante: t1, t2, t3, t4
intervalo: H, I, J
5.1.2
Símbolos não-lógicos
constantes: none, *, -∞, +∞
símbolos funcionais: begin, end, ?
símbolos predicativos: todas as letras maiúsculas do alfabeto, < e =
5.2
TERMOS
Denominamos por termo, qualquer dos tipos de termos definidos a seguir, ou
seja, termos não-temporais, termos instante temporal ou termo intervalo temporal.
5.2.1 Termos não-temporais
a) constantes
b) toda variável não-temporal
c) para termos Tx e Ty são termos não-temporais: Tx ∨ Ty e ¬Tx
5.2.2
Termos instante temporal
a) constantes
b) toda variável instante temporal é um termo instante temporal
c) para TI um termo intervalo temporal, during(TI) é um termo instante temporal
d) para TI um termo intervalo temporal, begin(TI) e end(TI) são termos instante
temporal
e) se Tt1 é um termo instante temporal então before(Tt1) e after(Tt1) são termos
instante temporal
5.2.3
Termos intervalo temporal
a) toda variável intervalo temporal é um termo intervalo temporal
b) para termos instante temporal Tt1 e Tt2, [Tt1, Tt2] é um termo intervalo
temporal
c) se TI é um termo intervalo temporal então sometime(TI) e never(TI)são
termos intervalo temporal
d) se Tt1 é um termo instante temporal então [-∞, Tt1] e [Tt1, +∞] são termos
intervalo temporal.
5.3
FÓRMULAS
Uma fórmula bem-formada (fbf) é definida recursivamente por:
a) dados termos Tx, Ty não-temporais então Tx = Ty e R(Tx, Ty) são fbfs;
b) dadas variáveis x e y então x < y é uma fbf;
c)se Tx é um termo não-temporal e TI um termo intervalo temporal então <Tx,
TI> é uma fbf;
d) se F e G são fbfs, então ¬F, F ∨ G, MF e KF são fbfs;
e) se F é uma fbf e v uma variável qualquer, então também é uma fórmula ∀v
(F);
f) se Tt1 e Tt2 são termos instante temporal, então Tt1 = Tt2 é uma fbf;
g) se t1 e t2 são variáveis instante temporal, então t1 < t2 é uma fbf;
h) se TI e TJ são termos intervalo temporal então TI = TJ é uma fbf.
5.4
DEFINIÇÕES
As seguintes definições servem para introduzir novos símbolos na linguagem e
com isso simplificar significativamente a escrita dos axiomas.
Se F e G são fbfs, define-se:
1.
2.
3.
4.
∃x (F) ⇔def ¬∀x (¬F)
F ∧ G ⇔def ¬ (¬F ∨ ¬G)
F → G ⇔def ¬F ∨ G
F ↔ G ⇔def (F → G) ∧ (G → F)
5. t1 ∈ [t2, t3] ⇔def (t2 < t1 ∨ t1 = t2) ∧ (t1 < t3 ∨ t1 = t3)
Se Tt1, Tt2, begin(TI) e end(TI) são termos instante temporal e TI é um termo
intervalo temporal então define-se:
6. I ⊆ J ⇔def (begin(J) < begin(I) ∨ begin(J) = begin(I)) ∧ (end(I) < end(J) ∨
end(J) = end(I))
7. TI = [Tt2, Tt3] ⇔def Tt2 = begin(TI) ∧ Tt3 = end(TI)
8. Se z é uma variável livre em F, então ∪z (F) = {z/F}
O conjunto resultante representa a união de todas as respostas que satisfazem a
uma certa consulta.
5.5
AXIOMÁTICA
Nesta seção descrevemos e comentamos cada um dos axiomas de nossa lógica.
1) ∀x (F ∨ G) → MF
Na disjunção de fórmulas F e G, tanto F quanto G são possíveis.
2) ∀x KF → F
Quando uma fórmula F é conhecida, então ela é verdadeira.
3) ∀x∀y R(x, y) → R(y, x)
Se x e y se relacionam, também é válido que y e x se relacionam, ou seja, vale a
simetria.
4) ∀x∀y∀z(R(x, y ∨ z) → MR(x, y))
Se x relaciona-se com y ou com z, então tanto a relação de x com y quanto a relação de
x com z são possíveis.
5) ∀x∀y (R(x, ¬y) → ¬R(x, y))
Um relacionamento com um valor negado implica que o relacionamento com este valor
não é possível.
6) ∀x KR(x, *) → ∃y R(x, y) ∧ ¬KR(x, y)
Um relacionamento com o valor desconhecido * deixa claro que este se relaciona com
algum valor desconhecido do banco de dados.
7) ∀x KR(x, none) → ¬∃y R(x, y)
Quando é conhecido que x não se relaciona com nada ou ninguém, então não existe
nenhum y que se relaciona com x.
8) ∀t1∀t2 ([t1, t2] → (t1 < t2) ∨ (t1 = t2))
O instante inicial de um intervalo qualquer deve ser menor ou igual ao instante final.
9) ∀I <Tx, I> ↔ ∀t1 (t1 ∈ I → <Tx, [t1, t1]>)
O termo Tx é verdadeiro em todos os instantes t1 pertencentes ao intervalo I que
representa o intervalo no qual Tx é válido.
Os axiomas de 10 a 13 representam as noções temporais empregadas no MITO.
10) ∀I <Tx, never (I)> ↔ ∀t1 (t1 ∈ I → ¬<Tx, [t1, t1]>)
O operador temporal never(I) denota que em todos os instantes t1 pertencentes ao
intervalo I, Tx não é válido.
11) ∀t1<Tx, [-∞, t1]> ↔ ∀t2(t2 < t1 → <Tx, <[t2, t2]>)
Um termo Tx é válido em todos os instantes menores do que um instante t1 qualquer.
12) <Tx, [t1,+∞] ↔ ∀t2(t1 < t2 → <Tx, [t2, t2]>)
Um termo Tx é válido em todos os instantes maiores do que um instante t1 qualquer.
13) ∀t1∀t2 <Tx, sometime(I)> ↔ ∃t3(t3 ∈ I ∧ <Tx, [t3, t3]>)
O operador temporal sometime([t1, t2]) representa a existência de pelo menos um
instante entre t1 e t2 onde o termo Tx é válido.
Os axiomas 14 e 15 caracterizam a constante temporal *.
14) ∀t2 K<Tx, [*, t2]> → ∃t1 ([Tx, [t1, t2]> ∧ ¬K<Tx, [t1, t2]>)
15) ∀t1 K<Tx, [t1, *]> → ∃t2 ([Tx, [t1, t2]> ∧ ¬K<Tx, [t1, t2]>)
A representação axiomática apresentada em [Sc86] serviu de base à elaboração de
alguns dos axiomas a seguir, os quais representam consultas.
Os axiomas 16 a 18 formalizam as respostas a consultas a dados, representadas pela
aplicação do símbolo funcional “?” a uma variável livre y.
16) ∀x R(x, ?) → (y = ∪z)(KR(x, z))
y conterá todos os valores que certamente se relacionam com x.
17) ∀x R(x, ?) → M(y = ∪z) ((KR(*, z) ∨ ∃w (KR(x, z ∨ w)))
Este axioma indica todos os valores que possivelmente se relacionam com x.
18) ∀x R(x, ?) → ¬(y = ∪z) (KR(x, ¬z))
Aqui teremos todos os valores que não se relacionam com x.
Os axiomas de 19 a 28 representam consultas temporais.
19) <Tx, ?> → (TJ = ∪TI) (K<Tx, TI>)
A parte temporal pode ser consultada.
20) ∀I <?, I> → (Tx = ∪Ty) ∃J(K<Ty, J>) ∧ I ⊆ J)
A parte não temporal é recuperada observando-se a condição entre os intervalos
consultado e armazenado.
21) ∀I <?, I> → ¬(Tx = ∪Ty) ∃J(K<Ty, never(J)> ∧ I ⊆ J)
O operador temporal never produz resposta negativa desde que observada a condição
entre os intervalos I e J.
22) ∀I <?, I> → M(Tx = ∪Ty) ∃H(K<Ty, H>) ∧ ¬∃J((K<Ty, J> ∧ I ⊆ J) ∨ (K<Ty,
never(J)> ∧ I ⊆ J))
Tx conterá todos os termos possivelmente conhecidos e que não satisfazem aquilo
representado pelos axiomas 20 e 21.
23) ∀I <?, sometime(I)> → (Tx = ∪Ty) ∃t1(K,<Ty, [t1,t1]> ∧ t1 ∈ I) ∨ ∃J(<Ty,
sometime(J)> ∧ J ⊆ I)
O operador temporal sometime é representado na recuperação de termos envolvendo
tanto instantes como intervalos.
24) ∀I <?, sometime(I)> → ¬(Tx = ∪Ty) ∃J(K<Ty, never(J)> ∧ I ⊆ J)
O operador temporal never nega respostas quando a condição entre os intervalos
envolvidos é satisfeita.
25) ∀I <?, sometime(I)> → M(Tx = ∪Ty) ∃H(K<Ty, H>) ∧ ¬∃t1(K,<Ty, [t1,t1]> ∧ t1 ∈
I) ∨ ¬∃J(<Ty, sometime(J)> ∧ J ⊆ I)
Tx conterá todos os termos possíveis que não satisfazem aquilo representado pelos
axiomas 23 e 24.
26) ∀I <?, never(I)> → (Tx = ∪Ty) ∃J(K<Ty, never(J)> ∧ I ⊆ J)
Quando os intervalos envolvidos são negados e observam a condição entre eles, Tx
conterá todos os termos válidos.
27) ∀I <?, never(I)> → ¬(Tx = ∪Ty) ∃t1(K,<Ty, [t1,t1]> ∧ t1 ∈ I)
O operador temporal never consultado produz respostas negativas quando um instante
qualquer do banco de dados pertence ao intervalo consultado.
28) ∀I <?, never(I)> → M(Tx = ∪Ty) ∃H(K<Ty, H>) ∧ ¬∃J(K<Ty, never(J)> ∧ I ⊆ J) ∨
¬∃t1(K,<Ty, [t1,t1]> ∧ t1 ∈ I)
Tx conterá todos os termos possíveis que não satisfazem aquilo representado pelos
axiomas 26 e 27.
Os axiomas 29 a 34 caracterizam os operadores temporais during, before e after usados
nos instantes terminais de um intervalo.
29) begin(TJ) = during(TI) → ∃t1 (t1 ∈ TI ∧ TJ = [t1, end(TJ)])
30) end(TJ) = during(TI) → ∃t1 (t1 ∈ TI ∧ TJ = [begin(TJ),t1])
31) ∀t1 begin(TI) = before(t1) → ∃t2 (t2 < t1 ∧ TI = [t2, end(TI)])
32) ∀t1 end(TI) = before(t1) → ∃t2 (t2 < t1 ∧ TI = [begin(TI), t2])
33) ∀t1 begin(TI) = after(t1) → ∃t2 (t1 < t2 ∧ TI = [t2, end(TI)])
34) ∀t1 end(TI) = after(t1) → ∃t2 (t1 < t2 ∧ TI = [begin(TI), t2])
5.6
DEMONSTRAÇÕES
A seguir veremos como demonstrar alguns valores para a time axis representada
pela Tabela 1.
O número no símbolo de implicação (⇒), denota o axioma utilizado para a
derivação. Os passos da demonstração estão convencionados por um número entre
parênteses ao lado de cada linha.
Proposição 1: se <Tx, [t1, before(t2)]> então <Tx, [t1, t1]>
<Tx, [t1, before(t2)]> ⇒(32) ∃t3(t3 < t2 ∧ <Tx, [t1, t3]>)
⇒(8) t1 < t3 ∨ t1 = t3
(caso t1 < t3) ⇒(9) <Tx, [t1, t3]> ∧ ∀t4 (t4 ∈ [t1, t3] → <Tx, [t4, t4]>)
em particular para t4 = t1
⇒ <Tx, [t1, t1]> c.q.d.
(caso t1 = t3) ⇒(=) <Tx, [t1, t1]> c.q.d.
Proposição 2: se <Tx, [t1, during(I)]> então <Tx, [t1, t1]> ∧ <Tx, sometime(I)>
<Tx, [t1, during(I)]> ⇒(30) ∃t4(<Tx, [t1, t4]> ∧ t4 ∈ I)
(1)
⇒(def 7) I = [t1, t2]> ⇔ t1 = begin(I) ∧ t2 = end(I)
(2)
(2)
⇒(=) I = [begin(I), end(I)]
(3)
(1), (3) ⇒(=) t4 ∈ [begin(I), end(I)]
(4)
(4)
⇒(def 5) (begin(I) < t4 ∨ t4 = begin(I)) ∧ (t4 < end(I) ∨ t4 = end(I)) (5)
(1), (5) ⇒(12) ∃t4((begin(I) < t4 ∨ begin(I) = t4) ∧ ∀t3(t3 ∈ [t1, t4] → <Tx, [t3,
t3]>)) c.q.d.
(6)
(4), (1) ⇒(16) <Tx, sometime[t1, t2]> c.q.d.
(7)
Proposição 3: se <Tx, [during(I), t2]> então <Tx, sometime(I)> ∧ <Tx, [t2, t2]>
A demonstração da proposição 3 é análoga a da proposição 2.
A seguir apresentamos um lema que válida todos os subintervalos de um dado
intervalo a ser usado na proposição 4 :
Lema: se <Tx, I> então ∀J(J ⊆ I → <Tx, J>)
⇒(def 6) (begin(J) < begin(I) ∨ begin(J) = begin(I)) ∧ (end(I) < end(J) ∨ end(J) =
end(I)) (1)
(1) ⇒(9) ∀J(J ⊆ I → <Tx, J>
Proposição 4: se <Tx, [during(I), during(J)]> ∧ end(I) ≤ begin(J) então <Tx,
sometime(I)> <Tx, [end(I), begin(J)]> ∧ <Tx, sometime(J)>
<Tx, [during(I), during(J)]>
(hipótese)
(hipótese) ⇒(proposição 2) <Tx, [during(I), during(J)]> ∧ <Tx,, sometime(J)> c.q.d.
(1)
(hipótese) ⇒(proposição 4) <Tx, [during(I), during(J)]> ∧ <Tx,, sometime(I)> c.q.d.
(2)
(hipótese) ⇒(29) ∃t1(t1 ∈ I ∧ [t1, during(J)]
(3)
(3) ⇒(30) ∃t2(t2 ∈ J ∧ [t1, t2]
(4)
(4) ⇒(def 5) (t1 < t2 ∨ t1 = t2) ∧ (t1 < end(I) ∧ begin(J) < t2)
(5)
(5) ⇒(lema) <Tx, end(I), begin(J)]> c.q.d.
6 CONCLUSÃO
Nós estamos convencidos da grande importância do processamento de
informação incompleta em sistemas de informação. Pelo crescimento da necessidade de
bancos de dados temporais, a pesquisa tem se estendido para tratar também a
informação temporal incompleta.
Implementamos em LPA-Prolog um sistema para manipulação de objetos
temporais incompletos, chamado MITO, como passo inicial de um projeto maior que
almeja criar uma teoria que valide a representação e a manipulação de objetos temporais
incompletos. O MITO processa dois tipos básicos de consultas: boolenas e de
recuperação. Consultas booleanas geram respostas baseadas nos valores verdade {yes,
no, possible, unknown}, enquanto que as consultas de recuperação retornam valores
requeridos pelo usuário.
MITO possui um mecanismo para atribuição da valores sobre a time axis quando
processa uma consulta. Este mecanismo combina os valores de tempo inicial e final dos
intervalos temporais incompletos.
Resolvemos pela formalização para estudo de uma representação mais confiável,
sabendo que o objetivo principal da formalização é a comunicação precisa, com rigor
matemático, do assunto em questão. Como conseqüência podemos obter a prova de
certas propriedades, como computabilidade e expressividade de uma linguagem de
consulta por exemplos, necessárias na validação de uma teoria. Uma lógica modal
temporal foi naturalmente mais adequada para formalização, pelo fato de utilizarmos os
operadores modais de possibilidade (M) e de crenças (K), além de nossos operadores
temporais.
A continuação do desenvolvimento desta teoria, no que diz respeito a parte de
atualização de objetos temporais incompletos e a prova de propriedades, são metas para
um passo seguinte.
7 REFERÊNCIAS BIBLIOGRÁFICAS
[AHV95] S.Abiteboul, R.Hull, and V.Vianu, “Incomplete Information”, in
Foundations of Databases, Addison-Wesley, Inc. Chap. 19, pp.487-507
1995.
[Be91]
van Beek, P., “Temporal Query Processing with Indefinite Information”,
Artificial Intelligence in Medicine, 3, No. 6, December 1991, pp. 325-339.
[Be97a]
Bezerra, E.P., “Um protótipo para manipulação de objetos incompletos com
informação temporal imprecisa”, Relatório da disciplina Projeto e Pesquisa
da pós-graduação da COPELE, janeiro de 1997.
[Be97a]
Bezerra, E.P., “Um sistema de manipulação de objetos incompletos com
informação temporal imprecisa”, Relatório da disciplina Projeto e Pesquisa
da pós-graduação da COPELE, julho de 1997.
[Be97c]
Bezerra, E.P., “A formalização do MITO”, Relatório da disciplina Projeto e
Pesquisa da pós-graduação da COPELE, dezembro de 1997.
[BSF97]
Bezerra, E.P., Schiel, U. e Ferneda, E., “MITO - Manipulation of
Incomplete Temporal Objects”, Anais do XII Simpósio Brasileiro de Banco
de Dados, 1997.
[BCS+96] M.Böhlen, J.Chomicki, R.T.Snodgrass and D.Toman, “Querying TSQL2
Databases with Temporal Logic”. In P.Apers, M.Bouzeghoub and
G.Gardarin, editors, Advances in Database Technology: EDBT’96, volume
1057 of Lecture Notes in Computer Science, pages 325-341. SpringerVerlag, 1996.
[Co79]
E.F.Codd, “Extending the Database Relational Model to Capture More
Meaning”, ACM Trans. on Database Systems, vol.4, no.4, Dec.1979.
[Ch94]
J.Chomicki, , “Temporal Quey Languages: A Survey”. In D.M.Gabay and
H.J.Ohlbach, editors, Temporal Logic: ICTL’94, volume 827 of Lecture
Notes in Computer Science, pages 506-534. Springer-Verlag, 1994.
[DS97]
D.Dey and S.Sarkar, “Extended SQL Support for Uncertain Data”. In
D.W.Embley and R.C.Goldstein, editors, Conceptual Modeling: ER’97,
volume 1331 of Lecture Notes in Computer Science, pages 102-112.
Springer-Verlag, 1997.
[Dy96]
C.E.Dyreson “A Bibliography on Uncertainty Management in Information
Systems”,
http://cosmos.kaist.ac.kr/pub/bibliografies/database/incomplete/html.
[Em90]
E.A.Emerson. “Temporal and Modal Logic”. In J. van Leeuwen, editor,
Handbook of Theoretical Computer Science, volume B, chapter 16,
Elsevier/MIT Press, 1990.
[En72]
H.B.Enderton, A Mathematical Introduction to Logic, Academic Press,
1972.
[GNP92]
S.K.Gadia, S.S.Nair, and Y.-C.Peon, “Incomplete Information in Relational
Temporal Databases”, in Proc. 18th. Conf. on Very Large Databases,
Vancouver, 1992.
[GHR94] D.M.Gabbay, I.Hodkinson,
Mathematical Foundations
University Press, 1994.
and
and
M.Reynolds, Temporal
Computational Aspects,
Logic:
Oxford
[GT96]
A.Griffiths and B.Theodoulidis, “SQL+i: Adding Temporal Indeterminacy
to
the
Database
Language
SQL”,
http://www.co.umist.ac.uk/pub/bibliographies/database/incomplete/html
[KB96]
S.Khoshafian, and A.B.Baker, Multimedia and Imaging Databases,
Morgan Kaufmann Publishers, Inc., San Francisco, California, 1996.
[Ko94]
M.Koubarakis, “Database Models for Infinitive and Indefinitive Temporal
Information”, Information Systems, 19(2), pp 141-173, 1994.
[KW85]
A.M.Keller, and M.W.Wilkins, “On the Use of an Extended Relational
Model to Handle Changing Incomplete Information”, IEEE Transactions on
Software Engineering, Vol. SE-11, No, 7, July, 1985.
[Le94]
Levesque, H.J., “The Logic of Incomplete Knowledge Bases”, em Readings
of Artificial Inteligence & Database, K. Mylopoulus e M. Brodie Ed.,1994.
[LPA96]
LPA-WIN-PROLOG 3.0, Programming Guide by Bria D. Steel, 1996.
[LS90]
K.C.Liu and R.Sunderraman, “Indefinite and Maybe Information in
Relational Databases”, ACM Transactions on Database Systems, 15, No. 1,
March 1990, pp. 1-39.
[NFM97] M.Nakata, G.Fresconi and T.Mura, “Handling Imperfection in Databases: A
Modal Logic Approach”. In A.Hameurlain and M.Tjoa, editors, Database
and Expert Systems Applications: DEXA’97, volume 1308 of Lecture Notes
in Computer Science, pages 613-622. Springer-Verlag, 1997.
[Or88]
B.A.Oresotu, “Um Sistema de Representação e Recuperação de Dados
Incompletos e Informação Temporal”, M.Sc. Thesis, COPIN/UFPB,
Campina Grande, March 1988.
[Pa94]
C.H.Papadimitriou, Computational Complexity, Addison-Wesley, 1994.
[RBP+91] J.Rambaugh, M.Blaha, W.Premerlani, F.Eddy, and W.Lorensen, ObjectOriented Modeling and Design, Englewood Cliffs, Prentice-Hall, 1991.
[Re89]
H.Reichgelt, “A Comparison of First Order and Modal Logics of Time. In
P.Jackson, H.Reichgelt and F.van Harmelen, editors, Logic-Based
Knowledge Representation, chapter 7, MIT Press, 1989.
[Sc86]
U. Schiel, “Representação e Recuperação de Informação Temporal e
Incompleta”, Anais do 3O. Simpósio Brasileiro de Inteligência Artificial,
Rio de Janeiro, pp. 271-281, Nov. 1986.
[Sn95]
R.T. Snodgrass (Ed.), The TSQL2 Temporal Query Language, Kluwer
Academic Publishers, 1995.
[TCG+93] A.U.Tansel, J.Clifford, S.Gadia, S.Jajodia, A.Segev and R.Snodgrass,
Temporal Databases, The Benjamin/Cummings Publishing Company, Inc.,
1993.
[Vi94]
L.Vila, “A Survey on Temporal Reasoning in Artificial Intelligence”,
AICOM, volume 7, nr. 1, March 1994.
[Zi90]
R.Zicari, “Incomplete Information in Object-Oriented Databases”, SIGMOD
RECORD, Vol. 19, No. 3, Sept. 1990.
Download