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.