Escolar Documentos
Profissional Documentos
Cultura Documentos
Baseados em Conhecimento
Departamento de Informática
Tao Te King, I
SUMÁRIO
Parte I
Parte II
Resultados de Documentação
Clarisse Sieckenius de Souza
Parte III
Um SIBC LINX
Parte IV
Apreciação Final
Clarisse Sieckenius de Souza
Referências
Equipe LINX
Colaboradores Históricos
Donia R. Scott
Letícia Sicuro Correa
Margarida Basílio
Maria das Graças Volpe Nunes
Colaboradores Correntes
Apoios ao Projeto
CNPq
TeCGraf
PUC-Rio, Informática
PUC-Rio, Letras
CEFET-Pr, PPGTE
CITS
Agradecimentos
O Projeto agradece ao CNPq, pelo apoio financeiro concedido, e ao
TeCGraf, sem cuja cessão de recursos humanos especializados a
implementação do ProTeoS não seria possível. Agradece também ao Pe.
Josafá, do Departamento de Geografia da PUC-Rio, por ter sido o
especialista consultado para a construção da base “Frutas Brasileiras”.
A Coordenação do Projeto agradece de maneira especial ao Prof.
Marcelo Gattass, pela confiança, e a todos os participantes - Laura,
Caetano, Carmelita, Violeta, Denise e Sedrez - que, movidos pelo
entusiasmo, pela competência individual, pela responsabilidade e pela
valiosa amizade e fé no que virá, tornaram tudo o que está aqui relatado
uma realidade.
Índice
PARTE I.............................................................................................................................. 6
Sobre Sistemas de Informação Baseados em Conhecimento, suas Interfaces e sua
Abrangência .................................................................................................................... 7
Sobre Sistemas Automáticos e Sistemas Formais ...................................................... 8
Um Estudo de Caso Simplificado, mas Exemplar .................................................... 11
PARTE II .......................................................................................................................... 18
A Razão de Ser do LINX .............................................................................................. 19
Um Breve Histórico deste Projeto Integrado ............................................................ 20
Resultados de Publicações e Apresentações em Congressos e Conferências........... 22
Resultados de Cursos de Graduação e Pós-Graduação incluindo Matéria sobre o
LINX ......................................................................................................................... 24
Resultados de Participação em Projetos Internacionais............................................ 24
Resultados de Desenvolvimento de Programas ........................................................ 24
Resultados de Documentação ................................................................................... 25
PARTE III......................................................................................................................... 26
Concepção Geral de um SIBC LINX............................................................................ 27
Um SIBC LINX ........................................................................................................ 27
Interação no Ambiente LINX (L.S.García e C.Vendrami Neto) .............................. 28
A Implementação do Provador (por D.A.S. Oliveira) .............................................. 44
Especificações Originais das Gramáticas de Interpretação e Geração (V.Quental e
L.S.García)................................................................................................................ 50
Estruturação e Controle de Discurso......................................................................... 69
Dos Rumos do LINX - Um shell para SIBC's (C.S.de Souza) ................................. 69
Apreciação Final ........................................................................................................... 74
Referências.................................................................................................................... 75
PARTE I
Uma peculiaridade dos SIBC's é o fato de que o novo deve não apenas poder ser
representado na base e manipulado pelo raciocinador, como também, e
imprescindivelmente, apresentado para o usuário e oferecido a suas interações. A situação
não é, a rigor, diferente do que em qualquer outra aplicação útil no sentido aqui
defendido; porém, ela se torna tanto mais complexa na medida em que herda
inevitavelmente a complexidade da computação simbólica e das nuances semânticas
inerentes a aplicações de IA.
Facilidade de uso, em SIBC's, diz respeito aos códigos de interação oferecidos aos
usuários para questionar, sondar, adicionar, excluir e modificar conhecimentos da
aplicação. Sendo questionar e sondar atividades caracteristicamente assentadas sobre
discurso, é comum (e, na realidade, esperado) que um dos códigos da interface de usuário
seja a linguagem natural (LN), o sistema discursivamente mais rico e sofisticado que
Esta foi a motivação central para todo o desenvolvimento do Projeto LINX. Seu início foi
marcado por uma série de pesquisas de natureza teórica, que ora se integram em um
sistema de escolhas de design para que, em etapa futura, se realizem testes com usuários e
aplicações reais das metodologias e técnicas dele resultantes. O principal resultado do
projeto é, portanto, uma visão integrada e objetivada das etapas de construção conceitual
e prática de SIBC's que pretendem exibir tais qualidades de robustez, utilidade e
facilidade de uso. A qualidade estética e ergonômica não foi contemplada como as
demais, por envolver a contribuição de áreas de conhecimento totalmente indisponíveis
dentre os membros da equipe de projeto.
Um exame mais demorado revela que os três exemplos acima têm naturezas bem
distintas. O compilador gera infinitos programas exigindo de seus usuários (os
programadores) um conhecimento satisfatório da sintaxe e semântica da linguagem de
programação. O editor de textos gera infinitos documentos exigindo de seus usuários (os
autores) um conhecimento satisfatório da interface do aplicativo. E finalmente os shells
geram infinitos SIBC's exigindo de seus usuários (divididos entre analistas de
desenvolvimento e engenheiros de conhecimento, senão também os usuários finais de
aplicativos gerados) um conhecimento de linguagens de programação, de
representação de conhecimento e de interfaces. Ou seja, os shells são ao mesmo tempo
análogos aos compiladores e aos editores de texto.
Nos três casos, a capacidade de as aplicações gerarem infinitos produtos está associada à
existência de mecanismos de escrita e interpretação de símbolos de entrada (ou seja,
aqueles produzidos pelo usuário na interface da aplicação) os quais são processados
iteradas vezes até a produção final de símbolos de saída (ou seja: o produto ou resultado
da aplicação). Na Figura 1, um esquema geral de transformação simbólica, evocando a
arquitetura básica de Máquinas de Turing, indica a existência de ao menos um
CONJUNTO de símbolos de entrada (símbolos IN) e saída (símbolos OUT). Porém,
quando têm estrutura interna e interpretações específicas, eles formam mais que um
conjunto: constituem de fato uma LINGUAGEM, definida por sintaxe e semântica
formais.
símbolos IN
dispositivo de leitura
Rr
FUNÇÕES de TRANSFORMAÇÃO
Rg
dispositivo de gravação
símbolos OUT
memória auxiliar
conjunto de estados
regras de reconhecimento/geração
O traço distintivo evidente dos shells, agora no âmbito formal, quando comparados a
editores de texto ou compiladores, é que para atingir a meta de utilidade (i.e. permitir que
SIBC's por eles gerados sejam extensíveis e manuteníveis pelos próprios usuários finais,
através de um processo de aquisição de conhecimentos controlado pela interface), a
gramática geradora de novos símbolos de representação de conhecimento na base tem de
ser acompanhada de uma gramática de geração de símbolos correspondentes na interface,
de acordo com funções específicas de traduação de uma linguagem para outra.
Interface Interface
Léxico- Léxico-
Gramática Gramática
Interpretador Interpretador
O índice subscrito [tSC] nas regras gramaticais acima refere-se a traços de sub-
categorização e é o mecanismo pelo qual se abstraem refinamentos morfossintáticos
(como por exemplo a concordância nominal ou a coordenação entre formantes da
sentença), bem como cálculos de consistência semântica (como por exemplo a
correferência ou a herança de atributos de uma ontologia). Em termos práticos, no
exemplo que seguimos, a sub-categorização em regras léxico-gramaticais como:
s
'?'
sn sv
'pedro'
Paulo é o tio de Pedro ?
cláusula_com_fato(P1,P2,P3) :- s(sent(snom(P2),sverb(_,snom(_,P1),sprep(_,snom(P3))))
gera_consulta :- clausula_com_fato(P1,P2,P3), write(P1,'(',P2,',',P3,').').
tio(paulo,pedro).
Esta última surpreendente resposta certamente deixaria o usuário intrigado, uma vez que
é esperado que o SIBC tenha usado o fato de que Paulo e Marta são marido e mulher para
concluir que ela é tia de Luiz. O diálogo hipotético a seguir mostra aspectos muito sutis e
cruciais da construção de bases de conhecimento com aquisição direta do usuário.
irmão(paulo,josé). irmão(X,Y):-pai(Z,X),pai(Z,Y).
pai(josé,luiz). pai(joão,paulo).
pai(joão,josé).
Considere-se, para efeitos de ilustração, que o usuário deste exemplo percebeu que, ao
ensinar ao SIBC que Marta era mulher de Paulo, ele não estabeleceu automaticamente a
relação simétrica de Paulo com Marta -- a de que ele é marido de Marta. Para completar
esta lacuna, o usuário poderia seguir uma de duas estratégias possíveis, ambas com
importantes (e por vezes indesejáveis) conseqüências para a engenharia do conhecimento.
Estratégia 1:
U: Paulo é marido de Marta.
S: Adquirido o conhecimento de que marido(paulo,marta).
Estratégia 2:
U: X é marido de Y se Y é mulher de X.
S: Adquirido o conhecimento de que marido(X,Y):-mulher(Y,X).
A conseqüência da primeira estratégia numa resposta para Mostre que Paulo é marido de
Marta seria a inexistência de um caminho de prova, uma vez que a pergunta se referiria a
um axioma (fato) contido na base. Já a conseqüência da segunda estratégia seria a
existência de um caminho de prova simples, como mostra a Figura 5.
(a) (b)
Este extenso exemplo, embora sobre uma base diminuta, servirá de referência para a
apresentação dos resultados correntes do Projeto LINX, da apreciação que deles fazemos,
e dos caminhos de pesquisa que pretendemos seguir a partir do ponto em que ora nos
encontramos.
PARTE II
Vale ressaltar algumas distinções nem sempre claras sobre os itens acima. Primeiramente,
estabelece-se uma diferença entre ontologia e base de conhecimento. A percepção de que
ambas as coisas são idênticas é a razão pela qual, no exemplo de aquisição do fato Maria
é mulher de Paulo, aconteceu uma duplicidade totalmente indesejável na representação (e
conseqüentemente na explicação) do raciocínio que o SIBC pode seguir para responder a
Mostre que [Alguém] é mulher de [Alguém]. Havendo uma ontologia que governa a
representação de conhecimentos na base, ela seria obviamente usada para impor a
aquisição da forma canônica deste conhecimento, já existente na base (na forma
mulher(X,Y) :- marido(Y,X).), obtendo através de meta-inferências ou de interação com o
usuário o conhecimento sobre qual o valor correto da variável Y no predicado
marido(Y,X). O efeito da ontologia vem do fato de que nela marido é uma relação básica,
ao passo que mulher é uma relação derivada (e não se pode adquirir conhecimento
derivado sem a aquisição simultânea de sua base). É também pela existência de
ontologias que as explicações de raciocínio podem tornar-se homogêneas e ser, por isto,
automatizadas, sem maior prejuízo de legibilidade e compreensão.
praticamente as mesmas estruturas lexicais e sintáticas), uma análise mais fina mostra que
isto não é verdade. Trivialmente mostra-se que a existência de sentenças como Mostre
que Maria é mulher de Paulo na linguagem de explicação ou de aquisição causaria erros
de comunicação importantes na interface. No caso da linguagem de explicação, o gerador
dos textos (i.e. das respostas explicativas) é sempre o sistema. Dificilmente faria sentido
que o sistema se dirigisse ao usuário com uma sentença como Mostre que Maria é
mulher de Paulo. Tal situação só seria pensável se o sistema fosse capaz de avaliar a
demonstração de conhecimento dada pelo usuário, ou seja: a sua explicação para a
interpelação do sistema (o que constituiria uma aquisição bastante sofisticada de
conhecimento). Já a não inclusão de formulações lingüísticas do tipo Mostre que [...] na
linguagem de aquisição garante a consistência mínima da lógica dos atos de fala
[Searle'75] que se executam pela interface de aquisição: o sistema não pode ser solicitado
a demonstrar um conhecimento de que ainda não dispõe.
A geração de novos conhecimentos e de novo discurso sobre eles exige um alto grau de
automatização na extensão das linguagens (de interface e de base, podendo também
atingir as ontologias). Enquanto os processos não forem automatizados, o engenheiro de
conhecimento será o único agente capaz de aumentar consistentemente a inteligência do
SIBC, para cobrir novos fatos e regras do domínio. O impacto desta dependência de um
recurso humano fala por si no cenário atual da indústria de software. Entretanto, também
falam por si as complexidades teóricas até aqui discutidas.
O Projeto LINX vem, desde 1988, investigando parcelas deste quadro geral, no intuito de
conseguir oferecer como produto usável de software, a médio prazo, SIBC's construídos
pelo shell LINX. Este relatório de projeto contém o estado atual das pesquisas que
prosseguem no caminho desta meta-maior. Um fator estimulante adicional é o de que as
linguagens de interface não podem ser herdadas de aplicações similares desenvolvidas em
qualquer país estrangeiro, de vez que a dependência lingüística e cultural deste tipo de
software, relativamente à comunidade de usuários que visa atender, é patente. Em seu
bojo, este fator acarreta outro, igualmente estimulante, que é a natureza intrinsecamente
interdisciplinar da pesquisa, da qual têm de participar lingüistas locais.
Esta implementação era parcial e não continha um real provador de teoremas como
raciocinador. O comportamento do provador era simulado por meio de templates de
provas e teoremas típicos do que o futuro provador viria a gerar. Já estava em curso o
programa de doutoramento de Denise Aboim Sande e Oliveira, sob orientação da
Coordenadora do Projeto, cuja meta é a de propor uma linguagem multimodal de
interface e um sistema de representação/elaboração de conhecimento que garantam
qualidade da base e produtividade na interação usuário-SIBC [Oliveira'96a]. O trabalho
envolve, de fato, a especificação completa de um provador de teoremas, sua
implementação e integração à interface proposta por García [García'95].
A equipe do Projeto LINX atingiu, no biênio entre agosto de 1995 e julho de 1997, os
seguintes resultados.
5 Monografias Publicadas
Duas integrantes da Equipe do Projeto foram, em razão direta de sua experiência com a
pesquisa realizada sobre Processamento de Linguagem Natural no LINX, convidadas
para integrar o Projeto UNL-Brazil. O Projeto é uma iniciativa da Universidade das
Nações Unidas, em associação com o segmento empresarial japonês, que tem por
objetivo desenvolver uma Universal Networking Language, espécie de Esperanto para a
Internet, a qual servirá de inter-língua para a tradução entre (idealmente) todas as línguas
em uso na World-Wide Web. Laura Sánchez García foi uma das primeiras convidadas a
integrar o Projeto UNL Brasil (coordenado por Eduardo Tadao Takahashi, ex-
RNP/CNPq) e Clarisse Sieckenius de Souza foi recentemente convidada para ser parte do
Conselho de Consultores do Projeto.
Resultados de Documentação
PARTE III
Equipe LINX
Um SIBC LINX
perguntas respostas
Interpretador Gerador
sentenças básicas
Estruturas RST rotuladas
e estruturas conceituais
Raciocinador Automático
Quando a consulta é formulada por type-ahead, ela é analisada pela mesma gramática que
analisa e gera os menus. Se a consulta não tem sucesso na análise, a sequência de
palavras até a última palavra correta, inclusive, é devolvida como feedback. Ao mesmo
tempo, é oferecido ao usuário um contexto de menus correspondente à escolha seguinte à
última palavra analisada com sucesso, obrigando-o a se utilizar do apoio dos menus para
fechar a consulta de maneira válida.
A Gramática Implementada
sentença é sentença da linguagem definida pela gramática e para gerar todas as palavras
possíveis para a próxima posição da sentença em construção.
As regras têm, como um de seus argumentos, o nível da gramática, que pode assumir os
valores: “classes”, “chaves” e “completa”. Estes níveis foram definidos de forma a
viabilizar (do ponto de vista computacional) a entrada por menus.
A seguir são relacionadas algumas consultas (com suas respectivas respostas) geradas
pela gramática no domínio de aplicação da versão atual.
P1:
a) O que é uma [planta]?
b) O que é uma [fruta]?
c) O que é uma [relação com planta]?
R1:
a) Uma [planta] é uma [morfologia] da família das [família], do gênero [gênero], de
classificação científica [classificação científica], originária do [origem].
b) Uma [fruta] é um fruto da [planta], [morfologia] da família das [família], do gênero
[gênero], de classificação científica [classificação científica], originária do [origem]
(...)
(A [fruta] é [consistência], [no. De carpelos], [deiscência], [forma] e [tipo]., quando
solictada informação adicional)
a) Um [relação com planta] é ... (definição do dicionário, para perguntas sobre os
conceitos semânticos constantes do Léxico)
Exemplos:
a) O que é um abacate?
Um abacate é um fruto do abacateiro, árvore da família das lauráceas, do gênero persea,
de classificação científica persea_gaentin, originária da América. (...)
O abacate é carnoso, unicapelar, deiscente, ovoide e drupa. (varredura de argumentos)
a) O que é um fruto?
Um fruto é a parte de uma planta ... (definição do dicionário)
P2:
Quais os tipos de fruto/pseudo_fruto?
R2:
Os tipos de fruto são: baga, drupa e esperídio.
Os tipos de pseudo_fruto são: simples, composto e múltiplo.
P3:
a) O [fruta] é um [relação_com_planta_1] ou [relação_com_planta_2]?
b) O [fruta] é [consistência_1/no_de_carpelos_1/desicência_1/forma_1/tipo_1] (ou
[consistência_2/no_de_carpelos_2/desicência_2/forma_2/tipo_2])?
c) O [fruta] é [indeiscente/simples/composto/múltiplo] tipo [tipo1] (ou tipo [tipo_2])?
(o tipo é associado a cada uma das categorias acima.)
Exemplos:
P4:
O [fruta] tem casca [textura_1/cor_1/de_pelugem_1/resistência_1/resina_1/grossura_1]
(ou [textura_2/cor_2/de_pelugem_2/resistência_2/resina_2/grossura_2])?
Exemplo P4:
O abacate tem casca lisa (ou áspera)?
P5:
a) Qual a [forma/consistência/deiscência/tipo] de uma [fruta]?
R5:
a) A [fruta] é [forma/consistência/deiscência/tipo].
b) A [fruta] é [unicarpelar/bicarpelar/multicarpelar].
Exemplos:
Suponha que a frase corrente seja [quais as características do]. Esta frase, transformada
para sentença de classes lexicais, ficaria [lex_classificador1,lex_subclassificador1].
Como retorno do phrase_lex , teríamos o Conjunto X de P tal que
[lex_classificador1,lex_subclassificador1,P | _]. Assim, integrariam X as classes lexicais
[planta,fruta]. A partir daí seriam expandidas para Y como chaves da gramática em
[abacateiro, jaqueira, ..., abacate, morango, pêssego, ...]. Cada elemento de Y seria
expandido em gramática completa, adicionado ao fim da frase corrente e testado na no
algoritmo da gramática.
phrase([quais,as,caracteristicas,do,jaqueira|_]) [FALSE]
phrase([quais,as,caracteristicas,do,jaqueiras|_]) [FALSE]
phrase([quais,as,caracteristicas,do,morango|_]) [TRUE]
phrase([quais,as,caracteristicas,do,morangos|_]) [FALSE]
Deste modo, as palavras possíveis para esta frase seguindo o contexto lexical acima
(abacateiro,jaqueira,abacate,morango,pêssego) seriam [abacateiro, abacate, morango,
pêssego] excluindo portanto [abacateiros, abacates, jaqueira, jaqueiras, morangos,
pêssegos].
A palavras sem conteúdo semântico pleno, como preposições e artigos, são retornadas
por um algoritmo simples associado ao conversor léxico->gramática completa. O
algoritmo de geração de palavras possíveis se utiliza de uma “gramática de classes
lexicais” que funciona de forma semelhante à gramática propriamente dita, ou seja, como
DCG. A diferença está nos grupos de palavras definidas e na utilização de regras de
léxico. Esta é a única variação (adição) substancial do Léxico implementado em relação
ao modelo de Léxico da especificação original [García].
qual,tipo,[fruta]
qual,característica,[fruta]
Após a geração de frases neste formato, elas são mapeadas para palavras-chave da
gramática de chaves, ficando:
Qual,tipo,abacate
Qual,tipo,morango
Qual,caracteristica,pessego
Estas “frases lexicais” são então transformadas em frases gramaticais correntes através do
algoritmo de palavras possíveis.
Está em estudo (sendo questionada), na etapa atual, a real necessidade do uso dos três
níveis de gramática (classes, chaves e completa), em decorrência da utilização da
“gramática de classes lexicais” recém descrita.
Exemplo:
O abacate é carnoso?
E indeiscente tipo X?
E tipo Y?
E o morango?
Esta última interação inicia novo contexto e é mostrada a nova consulta completa “O
morango é indeiscente tipo y ?”, como caso default. Opcionalmente, pode haver
manipulação direta do discurso anterior (através de checkboxes, presentes na Figura 9
p.21) e assim integrar-se à nova consulta estruturas selecionadas da janela do discurso.
No caso de ambiguidade, isto é, quando a elipse pode ser resolvida tanto pelo tema
quanto pelo foco da sentença completa do contexto de discurso corrente, é colocada a
ambiguidade ao usuário, solicitando-se deste uma definição. Isto não ocorre no domínio
corrente do Projeto LINX, pois os objetos básicos (plantas, frutos e outros) não
interagem, isto é, não podem aparecer simultaneamente nos papéis de tema e foco na
sentença.
Figura 10: Instantâneo da Interface LINX, entre um click sobre âncora no texto
explicativo e a efetivação da consulta interpretada pelo sistema
(v. área de Pergunta Formulada)
O Projeto constrói nesta etapa o segundo SIBC LINX, embora ainda em implementações
parciais. O primeiro foi o proposto em [García'95], trabalho que especificou todos os
mecanismos e sublinguagens da interface LINX, usando como exemplo o domínio de
classificação geral dos animais. A seguir, serão apresentadas as linhas gerais das
ontologias e da Base Lexical para o domínio de Frutas Brasileiras, aplicando as propostas
específicas contidas em [Dias'94].
HIERARQUIAS GERAIS
Hierarquias Gerais são as que não indicam propriedades, mas uso geral. Elas servem de
orientação na representação do conhecimento, mas foram temporariamente
desconsideradas na estruturação semântica porque as palavras Fruto e Fruta representam
de fato duas perspectivas sobre o mesmo domínio. O tratamento de múltiplas perspectivas
e ontologias é objeto de uma tese de doutorado em fase de conclusão [Oliveira'96a] e,
portanto, não está implementado nesta versão do SIBC.
Fruta Fruto
Embora a notação gráfica das ontologias ainda não esteja suficientemente ajustada para
marcar, sem ambigüidades, os casos de categorias lexicalizadas ou não, categorias
mutuamente exclusivas ou não, e conjuntos abertos ou fechados de categorias
equivalentes, ela marca algumas distinções, como por exemplo, as categorias não-
lexicalizadas (através do uso de '<' e '>').
<Categoria Geral do que Carrega a Semente> <Categoria Geral do que se assemelha a Sementes>
deiscentes indeiscentes
“Tipo(type)”
“Relação com planta”
“Planta”
“Consistência”
“Carpelaridade”
“Casca” conexão para frame próprio
PROPRIEDADES DA CASCA:
“Pelugem da casca”
“ Resina da casca”
“Textura da casca”
“Cor” (da casca)
“Resistência da casca”
“Grossura”
“Morfologia”
“Família”
“Gênero”
“Classificação científica” (gênero + espécie + classificador)
“Origem”
BANANA - N
[ __ ] SN
G: Fem; N: Sing
[coisa Tipo 3,2] [-ANIMADO]
COME - V
SNi [agente] [ __ Processo material] SNj [objeto]
3ps - Indpres
DE ([Lug FORA DE ([ Coisa TIPO-ANIMADO]i)]) [Ev IR ([Coisa SÓLIDO]j,
[Dir PARA([LugDENTRO DE ([Coisa BOCA DE TIPO-ANIMADO]i)])])]
“alimentação”
SÓLIDO = FRUTO
% Nota:
% Sintaxe Logica de Primeira Ordem:
% * : Quantificador Universal
% # : Quantificador Existencial
% ->: Implicacao
% & : Conjuncao
% | : Disjuncao
% ~ : Negacao
% PARTE I
% Hierarquia I:
% Dominio: Objetos Frutos
% Perspectiva: Formal
% Sub-Dominio: Frutos
% Nota :
% Axiomas gerados sistematicamente a partir da Hierarquia
% Tipos de Fruto:
% PARTE II
% Instancias da Hierarquia I
% Abacate
carnoso(abacate)
drupa(abacate)
% Abobora
carnoso(abobora)
baga(abobora)
% Acerola
carnoso(acerola)
baga(acerola)
% Banana
carnoso(banana)
baga(banana)
% Castanha de Caju
aquenio(castanha_de_caju)
% Castanha do Para
pixidiaria(castanha_do_para)
% Coco da Bahia
drupa(coco)
% Laranja
carnoso(laranja)
% Pessego
carnoso(pessego)
drupa(pessego)
% Roma
carnoso(roma)
baga(roma)
% Tomate
carnoso(tomate)
baga(tomate)
% Vagem de Feijao
legume(feijao)
Apresentação
Características Gerais
Algoritmo de Prova
A mudança no critério de determinação das fórmulas mínimas foi feita para aumentar a
eficiência, ligada ao pré-processamento das árvores de eliminação. Já que a fórmula
mínima é o ponto de ligação entre as (sub-) árvores de eliminação e de introdução, é
interessante reduzir seu número e simplificar a aplicação da unificação entre duas árvores
de introdução e eliminação. Isto foi feito definindo que só será considerada uma possível
fórmula mínima uma fórmula atômica ou uma fórmula em que a negação, a disjunção ou
o existencial seja o operador principal. Isto reduz notavelmente o tamanho da estrutura
resultante sem prejudicar a completude. A única possível desvantagem, a eventual
geração de provas com aplicações redundantes de regras, é minimizada pelo uso do
algoritmo de simplificação/estruturação da prova e pode, se desejável, ser totalmente
eliminada por pós- processamento da prova.
Nosso provador em Dedução Natural, ProTeoS, foi desenvolvido com um fim específico,
a saber, para utilização como raciocinador no LINX e sistemas semelhantes de interface
para bases de conhecimento. Para tal, a principal característica desejada é a adequação
das provas resultantes à transformação em explicações em linguagem natural. Neste
contexto, a eficiência é uma característica secundária, embora desejável. É este critério da
qualidade das explicações geradas a partir das provas que utilizamos para comparar
ProTeoS com outros raciocinadores existentes, desenvolvidos em geral com outros
critérios em vista.
Outros pontos de pesquisa são a extensão da linguagem lógica (com operadores modais,
por exemplo) e o uso de níveis sublógicos de raciocínio. Estes níveis permitiriam a
implementação de conhecimento não linguístico (tipicamente raciocínios espaciais, por
exemplo) com o uso de "regras" para derivar fatos que utilizem tais conhecimentos. Por
sua vez, tais fatos podem ser justificados ou explicados, a posteriori, com o uso de
axiomas e teoremas que reflitam parte (expressível) deste conhecimento.
A integração do próprio provador com o resto do sistema é também ponto para pesquisa,
como por exemplo o desenvolvimento de metodologias de construção de bases de
axiomas que levem em conta o método de prova, para produzir bases cujas provas
possam transmitir de modo mais fiel o ponto de vista do formulador original do
conhecimento.
Conclusão
Neste momento, o provador se destina a tratar os seguintes conectivos lógicos para que
gerem respostas cooperativas no formato sugerido abaixo:
e:
P: A e B?
R1: Sim V,V
R2: A, mas não B. V,F
R3: Não; nem A, nem B. F,F
R4: A, mas não se sabe B. V,?
R5: Não; não A (mas não se sabe B). F,?
R6: Não (mas não se sabe qual é falso) F,? ou ?,F
ou:
P: A ou B?
R1: Sim, A. V,F
R2: Sim; A, mas não se sabe B. V,?
R3: Sim (mas não se sabe sobre A isolado e B isolado) V,? ou ?,V
R4: Sim; A e B. V,V
R5: Não; nem A, nem B F,F
R6: Não A (mas não se sabe se B) F,?
->:
P: A -> B?
R1: Sim. V,V ou F,F
R2: B, mesmo quando não A. V, V ou F,V (?,V)
independência
R3: Não B. V,F ou F,F (?,F)
independência
R4: Não (há casos não B, mas A) V,V ou V,F (V,?) irrelevância
R5: Não A (mas por vezes B) F, ? irrelevância
R6: Não A, mas B F,V
R7: Não; A, mas não B V,F
R8: Sim, A e B V,V
R9: Nem A, nem B F,F
~:
P: ~A?
R1: A. V
R2: Não A F
Como o sistema pretende ser cooperativo com o usuário, caso a pergunta receba
uma resposta negativa, apresenta-se uma alternativa correta para a informação
desejada. Considera-se informação desejada aquela que corresponde ao foco de dúvida
do usuário, definido conforme mais adiante.
• Perguntas sim/não
• Perguntas alternativas
Exclusivas (ou)
Não-exclusivas (e/ou)
• Perguntas QU-
Foi definida uma relação retórica inspirada na RST, de nível acima do nível de
estruturação sentencial, para dar conta da sequência do diálogo: pares de
enunciados adjacentes do tipo pergunta/resposta. A essa relação nomeou-se RST
Pergunta/Resposta, no caso, do tipo SIM/NÃO.
Pergunta/Resposta Sim/Não
Pergunta/Resposta SIM/NÃO
Núcleo Satélite
Pergunta Resposta
[a fórmula F é verdadeira?] [a fórmula F é verdadeira (v) ou falsa (f).]
Núcleo Satélite
Pergunta Resposta
[a fórmula F é verdadeira?] [a fórmula F é verdadeira (v) .]
Pergunta/Resposta SIM/NÃO
Núcleo Satélite
Pergunta Resposta
[a fórmula F é verdadeira?] [a fórmula F é falsa(f) .]
Pergunta/Resposta SIM/NÃO
Núcleo Satélite
Pergunta Resposta
[a fórmula F é verdadeira?] RST Evidência
Núcleo Satélite
[a fórmula F é falsa(f) .] alt (F )
• Negação com alternativa para uma das partes de uma conjunção ou disjunção
não-exclusiva.
Pergunta/Resposta SIM/NÃO
Núcleo Satélite
Pergunta Resposta
[as fórmula F1 e F2 são verdadeiras?] RST Oposição
Núcleo Núcleo
[ F1 é verdadeira.] RST Evidência
Núcleo Satélite
[F2 é falsa] alt (F2)
Pergunta/Resposta SIM/NÃO
Núcleo Satélite
Pergunta Resposta
[as fórmulas F1 e F2 são verdadeiras?] RST Lista
Núcleo Núcleo
RST Evidência RST Evidência
• Negação sem alt para uma das partes de conjunção ou disjunção não exclusiva,
porque não há alt na BC.
Pergunta/Resposta SIM/NÃO
Núcleo Satélite
Pergunta Resposta
[as fórmulas F1 e F2 são verdadeiras?] RST Oposição
Núcleo Núcleo
[a fórmula F1 é verdadeira.] [a fórmula F2 é falsa.]
Obs. Caso a conjunção ou disjunção ocorra com fórmulas cujo sujeito não é
idêntico, sua realização na resposta será:
Não. P (x), mas y, não
Ex: Os gatos e os besouros são mamíferos?
Não. Os gatos são mamíferos, mas os besouros, não.
Pergunta/Resposta SIM/NÃO
Núcleo Satélite
Pergunta Resposta
[as fórmulas F1 e F2 são verdadeiras?] RST Lista
Núcleo Núcleo
RST Evidência [F2 é falsa]
Núcleo Satélite
[F1 é falsa] alt (F1)
Pergunta/Resposta SIM/NÃO
Núcleo Satélite
Pergunta Resposta
[F1 e F2 => F3 ?] [a conjunção F1 e F2 é falsa(f) .]
Pergunta/Resposta SIM/NÃO
Núcleo Satélite
Pergunta Resposta
[ F1 e/ou F2 são verdadeiras?] RST Lista
Núcleo Núcleo
[a fórmula F1 é verdadeira.] [a fórmula F2 é verdadeira]
Pergunta/Resposta SIM/NÃO
Núcleo Satélite
Pergunta Resposta
[ F1 e/ou F2 são verdadeiras?] RST Lista
Núcleo Núcleo
[a fórmula F1 é falsa.] [a fórmula F2 é falsa.]
Pergunta/Resposta Alternativa
Núcleo Satélite
Pergunta Resposta
[ F1 ou F2 são verdadeiras?] RST Lista
Núcleo Núcleo
[a fórmula F1 é verdadeira.] [a fórmula F2 é falsa.]
Realização: F1 ou F2 ? F1.
Exemplo: Os cães latem ou miam ?
Latem.
Pergunta/Resposta Alternativa
Núcleo Satélite
Pergunta Resposta
[ F1 ou F2 são verdadeiras?] RST Oposição
Núcleo Núcleo
[ F1 é verdadeira.] RST Evidência
Núcleo Satélite
[F2 é falsa] alt (F2)
Pergunta/Resposta Alternativa
Núcleo Satélite
Pergunta Resposta
[as fórmulas F1 ou F2 são verdadeiras?] RST Lista
Núcleo Núcleo
RST Evidência RST Evidência
Pergunta/Resposta Alternativa
Núcleo Satélite
Pergunta Resposta
[ F1 ou F2 são verdadeiras?] [F1 e F2 são verdadeiras.]
Realização: F1 ou F2 ? F1 e F2.
Exemplo: Os cães comem carne ou ração?
Comem carne e ração.
Pergunta/Resposta Alternativa
Núcleo Satélite
Pergunta Resposta
[ F1 ou F2 são verdadeiras?] RST Lista
Núcleo Núcleo
[a fórmula F1 é falsa] [a fórmula F2 é falsa.]
Pergunta/Resposta SIM/NÃO
com existencial e QU-
Núcleo Satélite
Pergunta Resposta
[ F1 ?] RST Particularização
Núcleo Satélite
[F1 é verdadeira] [valor de x]
Pergunta/Resposta SIM/NÃO
com existencial e QU-
Núcleo Satélite
Pergunta Resposta
[ F1 ?] RST Evidência
Núcleo Satélite
[F1 é verdadeira] Generalização
Estrutura Sentencial
• A estrutura argumental
Definiram-se equivalências entre posições dos argumentos na fórmula e papéis
temáticos e funções sintáticas. Assim:
Para gerar respostas cooperativas, isto é, para guiar a busca de informações a partir da
dúvida expressa pelo usuário na pergunta ao SBC, foi necessário definir o foco de dúvida
na pergunta. Assim, por exemplo, para a pergunta “Os figos são frutos?” é fundamental
que o raciocinador restrinja a possibilidade de alternativas corretas à classificação dos
figos e não apresente alternativas para figos, listando todos os frutos contidos na BC, ou
fornecendo um exemplo de frutos.
A definição de foco foi feita, então, como o elemento mais à direita da pergunta, isto é, o
último argumento de uma fórmula lógica, ou a última fórmula de uma expressão. Foi
prevista também a possibilidade desse último elemento não ter alternativa na BC, quando,
então, a busca incorpora o penúltimo argumento/fórmula, recursivamente. Assim:
X são frutos deiscentes? Foco 1: deiscentes Foco 2: frutos
deiscentes.
A noção de foco tem uma contrapartida na noção de tópico, definido como o argumento 1
de uma fórmula. A delimitação de tópico vai permitir também a pronominalização do
Gramática básica
s --> s_sim_nao.
s --> s_qu.
s --> s_que.
s --> s_alt.
s --> s_eliptica.
s --> s_explic.
s --> s_pas.
sn --> sn_suj(_,_).
sn --> sn_ident(_,_).
sn --> pronpes(_,_).
sn --> sn_obj_1(_,_).
sn --> sn_obj_2(_,_).
sn --> sn_obj_posses.
s_int_atrib_sim_nao -->
sn_suj_int_atrib(Genero,Numero),cop(ser,Numero),sn_obj_int_atrib(Genero,Numero).
sn_suj_int_atrib(Genero,Numero) --> sn_suj_1(Genero,Numero).
sn_suj_int_atrib(Genero,Numero) --> sn_suj_2(Genero,Numero).
sn_suj_int_atrib(Genero,Numero) --> sn_suj_3(Genero,Numero).
sn_obj_int_atrib(Genero,Numero) --> sn_obj_1(Genero,Numero).
sn_obj_int_atrib(Genero,Numero) --> sn_obj_2(Genero,Numero).
sn_obj_1(Genero,Numero) --> n(type,Genero,Numero).
sn_obj_2(Genero,Numero) --> adj(Genero,Numero).
s_int_atrib_qu --> pinte,cop(ser,singular),sn_obj_int_atrib(_,singular).
s_int_atrib_que --> prel,n(type,_,singular),cop(ser,singular),sn_obj_int_atrib(_,singular).
%**********************************************************************
****************
s_int_atrib_cliv --> cop(ser,singular),n(token,Genero,singular),
calt,n(token,Genero,singular),prel,cop(ser,singular),
sn_obj_int_atrib(Genero,singular).
s_mat_sim_nao_conj_suj -->
sn_suj(_,_),cadi,sn_suj(_,_),verbo(plural,ativa,vtd),sn_obj_dir.
s_mat_sim_nao_conj_suj --> sn_suj(_,_),cadi,sn_suj(_,_),verbo(plural,ativa,vtd).
s_mat_sim_nao_conj_suj --> sn_suj(_,_),cadi,sn_suj(_,_),verbo(plural,ativa,vi).
s_mat_sim_nao_conj_pred --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
sn_obj_dir,cadi,verbo(Numero,ativa,vtd),sn_obj_dir.
s_mat_sim_nao_conj_pred --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
cadi,verbo(Numero,ativa,vtd).
s_posses_sim_nao_conj_pred -->
sn_suj_posses(Genero,singular),[tem],n(outro,_,_),cadi,
n(outro,_,_).
s_posses_sim_nao_conj_pred -->
sn_suj_posses(Genero,plural),['têm'],n(outro,_,_),cadi,
n(outro,_,_).
s_posses_disj --> sn_suj_posses(Genero,singular),[tem],n(outro,_,_),calt,
n(outro,_,_).
s_posses_disj --> sn_suj_posses(Genero,plural),['têm'],n(outro,_,_),calt,
n(outro,_,_).
s_posses_sim_nao_disj --> sn_suj_1(Genero,_),cadialt,sn_suj_1(Genero,_),['têm'],
n(outro,_,_).
s_posses_sim_nao_disj --> sn_suj_3(Genero,_),cadialt,sn_suj_3(Genero,_),['têm'],
n(outro,_,_).
s_posses_sim_nao_disj --> sn_suj_2(Genero,_),cadialt,sn_suj_2(Genero,_),['têm'],
n(outro,_,_).
s_mat_disj --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
sn_obj_dir,calt,verbo(Numero,ativa,vtd),sn_obj_dir.
s_mat_disj --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
calt,verbo(Numero,ativa,vtd).
s_mat_disj --> sn_suj(_,Numero),verbo(Numero,ativa,vi),
calt,verbo(Numero,ativa,vi).
s_mat_disj --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
sn_obj_dir,calt,sn_obj_dir.
s_mat_sim_nao_conj_mista --> sn_suj(Genero,Numero),verbo(Numero,ativa,vtd),
sn_obj_dir,cadi,cop(ser,Numero),sn_obj_int_atrib(Genero,Numero).
s_mat_sim_nao_conj_mista --> sn_suj(Genero,Numero),verbo(Numero,ativa,vtd),
cadi,cop(ser,Numero),sn_obj_int_atrib(Genero,Numero).
s_mat_sim_nao_conj_mista --> sn_suj(Genero,Numero),verbo(Numero,ativa,vi),
cadi,cop(ser,Numero),sn_obj_int_atrib(Genero,Numero).
s_mat_sim_nao_conj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
sn_obj_dir,cadi,verbo(Numero,ativa,vti),prepl,
n(outro,Genero,plural).
s_mat_sim_nao_conj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
cadi,verbo(Numero,ativa,vti),prepl,
n(outro,Genero,plural).
s_mat_sim_nao_conj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vi),
cadi,verbo(Numero,ativa,vti),prepl,
n(outro,Genero,plural).
s_mat_sim_nao_conj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
sn_obj_dir,cadi,verbo(Numero,ativa,vtd),n(outro,_,_).
s_mat_sim_nao_conj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
cadi,verbo(Numero,ativa,vtd),n(outro,_,_).
s_mat_sim_nao_conj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vi),
cadi,verbo(Numero,ativa,vtd),n(outro,_,_).
s_mat_sim_nao_disj_mista --> sn_suj(Genero,Numero),verbo(Numero,ativa,vtd),
sn_obj_dir,cadialt,cop(ser,Numero),sn_obj_int_atrib(Genero,Numero).
s_mat_sim_nao_disj_mista --> sn_suj(Genero,Numero),verbo(Numero,ativa,vtd),
cadialt,cop(ser,Numero),sn_obj_int_atrib(Genero,Numero).
s_mat_sim_nao_disj_mista --> sn_suj(Genero,Numero),verbo(Numero,ativa,vi),
cadialt,cop(ser,Numero),sn_obj_int_atrib(Genero,Numero).
s_mat_sim_nao_disj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
sn_obj_dir,cadialt,verbo(Numero,ativa,vti),prepl,
n(outro,Genero,plural).
s_mat_sim_nao_disj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
cadialt,verbo(Numero,ativa,vti),prepl,
n(outro,Genero,plural).
s_mat_sim_nao_disj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vi),
cadialt,verbo(Numero,ativa,vti),prepl,
n(outro,Genero,plural).
s_mat_sim_nao_disj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
sn_obj_dir,cadialt,verbo(Numero,ativa,vtd),n(outro,_,_).
s_mat_sim_nao_disj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vtd),
cadialt,verbo(Numero,ativa,vtd),n(outro,_,_).
s_mat_sim_nao_disj_mista --> sn_suj(_,Numero),verbo(Numero,ativa,vi),
cadialt,verbo(Numero,ativa,vtd),n(outro,_,_).
s_int_atrib_disj --> sn_suj_1(Genero,Numero),cop(ser,Numero),
sn_obj_int_atrib(Genero,Numero),
calt,sn_obj_int_atrib(Genero,Numero).
s_int_atrib_sim_nao_conj_mista --> sn_suj_1(Genero,Numero),cop(ser,Numero),
sn_obj_int_atrib(Genero,Numero),
cadi,verbo(Numero,ativa,vti),prepl,
n(outro,Genero2,plural).
s_int_atrib_sim_nao_conj_mista --> sn_suj_1(Genero,Numero),cop(ser,Numero),
sn_obj_int_atrib(Genero,Numero),
cadi,verbo(Numero,ativa,vtd),n(outro,_,_).
s_int_atrib_sim_nao_disj_mista --> sn_suj_1(Genero,Numero),cop(ser,Numero),
sn_obj_int_atrib(Genero,Numero),
cadialt,verbo(Numero,ativa,vti),prepl,
n(outro,Genero2,plural).
s_int_atrib_sim_nao_disj_mista --> sn_suj_1(Genero,Numero),cop(ser,Numero),
sn_obj_int_atrib(Genero,Numero),
cadialt,verbo(Numero,ativa,vtd),n(outro,_,_).
s_int_ident_sim_nao_conj --> sn_suj_int_ident(Genero,singular),cop(ser,singular),
sn_ident(Genero,singular),
cadi,sn_ident(Genero,singular).
s_int_ident_disj --> sn_suj_int_ident(Genero,singular),cop(ser,singular),
sn_ident(Genero,singular),
calt,sn_ident(Genero,singular).
s_int_ident_sim_nao_conj_mista -->
sn_suj_int_ident(Genero,singular),cop(ser,singular),
sn_ident(Genero,singular),cadi,verbo(Numero,ativa,vti),prepl,
n(outro,Genero,plural).
s_int_ident_sim_nao_disj_mista --> sn_suj_int_ident(Genero,singular),cop(ser,singular),
sn_ident(Genero,singular),cadialt,verbo(Numero,ativa,vti),prepl,
n(outro,Genero,plural).
s_int_ident_sim_nao_conj_mista -->
sn_suj_int_ident(Genero,singular),cop(ser,singular),
sn_ident(Genero,singular),cadi,[tem],n(outro,_,_).
s_int_ident_sim_nao_disj_mista --> sn_suj_int_ident(Genero,singular),cop(ser,singular),
sn_ident(Genero,singular),cadialt,[tem],n(outro,_,_).
A magnitude do problema pode ser resumida pelo fato de que não apenas se deve poder
induzir (a) extensões na base de conhecimento, (b) extensões nas ontologias de domínio,
e (c) extensões nas linguagens de interface, como também e principalmente se deve poder
induzir a todas de maneira integrada e consistente. Facilmente se conclui que a existência
de meta-raciocinadores torna-se tão imprescindível quanto, de fato, quimérica, no atual
estado da arte.
Porém, entre o ideal e o conformismo, estende-se o caminho que o LINX tem explorado.
Como se pôde concluir das seções anteriores, uma aplicação LINX segue uma
metodologia de desenvolvimento e pauta-se em um acervo de conhecimentos
sistemáticos sobre Lingüística, Lógica e Interfaces de Usuário. Essencialmente, o loop de
desenvolvimento é o representado na Figura 11.
1 Seleção de Domínio
4 Montagem do Léxico
fim
Já é possível concluir que a extensão das funcionalidades de um SIBC Linx de hoje para
que incluam algum grau de aquisição de conhecimento pode ser atingida
progressivamente, através de passos de complexidade crescente como:
Os mapeamentos mostrados nesta parte do relatório sugerem que (1), (2) e (3) são
possíveis, embora sejam também modestos em relação à usabilidade almejada para
SIBC’s ideais. Na realidade, a maioria dos shells que oferecem extensões automáticas da
base de conhecimentos não ultrapassa estes limites, havendo até os que não os atinjam
totalmente. SIBC’s construídos ad hoc, isto é sem a sistematicidade necessária para que
uma troca de domínio dispense reprogramação extensiva do software, têm um
comportamento bastante heterogêneo, podendo tanto ultrapassar estes limites, como
também sequer aproximar-se deles. A colocação de dispositivos hard wired ao invés de
mapeamentos sistemáticos entre base e interfaces não permite que se formulem
julgamentos a priori sobre a usabiliade destes SIBC’s.
Este desafio reedita, de maneira menos teórica, o ideal de usabilidade por nós proposto,
mas emparelha os objetivos práticos com aqueles já contemplados por software comercial
extensível como o conjunto MS Office’97™. Por esta razão, a tese de doutorado de
D.A.S. Oliveira é, neste momento, uma contribuição central para os rumos de projeto.
Sua investigação é centrada na semântica de operadores da Lógica Clássica e dos
mecanismos de estruturação de provas em Dedução Natural, tais que a linguagem de
representação (baseada em LPO) resultante e seus respectivos mapeamentos sobre as
linguagens de interface circunscrevam um território extensível seguro para um Shell
LINX no futuro.
Uma contribuição tecnológica já realizada é que os resultados do projeto LINX têm sido
transferidos para desenvolvimento tecnológico na área de documentação ativa e suporte
PARTE IV
Apreciação Final
Projeto LINX é um projeto de muito longo prazo [de Souza et al’96]. Suas metas
representam um contínuo de conquistas parciais na direção de se construir um shell
usável, no Brasil. Os aspectos de localização do software estão intrinsecamente
associados ao fato de que a matéria processada pos SIBC’s é conhecimento, portanto é
também língua e cultura. \assim, não se percebe que a localização seja uma restrição,
mas, sim, um valor adicional do produto.
Referências
[CACM] Communications of the ACM (1994) Artificial Intelligence. March 1994. Vol.
37, No. 3. ACM Press
[de Souza et al’96] de Souza,C.S.; García,L.S.; Dias,M.C.P.; e Quental,V.S.T.D.B.
(1996) Linx: O papel da Linguagem Natural na Representação, Exploração e
Aquisição de Conhecimentos Usados em Sistemas de Informação. Anais do II
Encontro para o Processamento Computacional de Português Escrito e Falado. Pp.
30-39. Curitiba , 21-22 de outubro de 1996. CEFET-Pr (PPGTE).
[DENDRAL] Buchanan,B.G. and Feigenbaum,E.A. (1978) Dendral and Meta-Dendral -
Their Application Dimensions. Journal of Artificial Intelligence. No.11, pp.5-24.
[Dias’94] Dias,M.C.P. O Léxico em Sistemas de Análise e Geração Automática de
Textos em Língua Portuguesa. Tese de Doutorado. Departamento de Letras.
PUC-Rio. Rio de Janeiro,RJ. 1994.
[García'95] García,L.S. (1995) Linx: Um Ambiente Integrado de Interface para
Sistemas de Informação Baseados em Conhecimento. Tese de Doutorado.
Departamento de Informática. PUC-Rio. Rio de Janeiro, RJ. 191pp.
[Haeusler'90] Haeusler, Edward H. Prova Automática de Teoremas em Dedução
Natural: Uma Abordagem Abstrata. Tese de Doutorado, Depto. de Inform tica,
PUC-Rio, 1990.
[Jackendoff’90] Jackendoff,R. (1990) Semantic Structures. Cambridge, Mass. MIT
Press.
[LINX'96] Projeto LINX (1996) Relatório Parcial de Pesquisa. Documento do Projeto
CNPq 52523499/95-7. Enviado ao CNPq em agosto de 1996.
[Mann & Thompson’87] Mann,W. And Thompson, S. (1987) Thetorical Structure
Theory: A Theory of Text Organization. In Polanyi,L. (Ed.) The Structure of
Discourse. ABLEX.
[Maybury'93] Maybury,M. (1993) Intelligent User Interfaces. Cambridge,Mass. MIT
Press.
[Microsoft’95] Microsoft Corporation (1995) - The Windows Interface Guidelines for
Software Design. Microsoft Press.
[MYCIN] Shortliffe,E.H. (1976) Computer-Based Medical Consultation. New
York,NY. Elsevier.
[Nunes'91] Nunes, Maria das Graçãas V. A Geração de Respostas Cooperativas em
Sistemas Baseados em Lógica. Tese de Doutorado, Depto. de Informática, PUC-
Rio, 1991.
[Oliveira et al'93] Oliveira, Denise A.S.; Haeusler, Edward H. & Pequeno, Tarcísio H. C.
Prova Automática de Teoremas em Dedução Natural. Anais do X Simpósio
Brasileiro de Inteligência Artificial, pp. 111-125, Outubro de 1993.
[Oliveira et al'96] Oliveira, Denise A. S.; de Souza, Clarisse S. & Haeusler, Edward H.
Structured Argument Generation in a Logic-Based KB System. Proceedings
of the Second Conference on Information-Theoretic Approaches to Logic,
Language and Computation, pgs 173-181, Londres, Julho de 1996.
[Oliveira'92] Oliveira, Denise A. S. Um Provador de Teoremas em Dedução Natural
Capaz de Complementar seu Conhecimento. Dissertação de Mestrado, Depto. de
Inform tica, PUC-Rio, Abril de 1992.
[Oliveira'96a] Oliveira, D.A.S. (1996) Uma Abordagem Semiótica para a Aquisição e
Representação de Conhecimento. Proposta de Tese de Doutorado aprovada e não
publicada. Departamento de Informática, PUC-Rio. Rio de Janeiro,RJ.
[Pereira and Warren’80] Pereira,F.C.N. and Warren,D.H.D. (1980) Definite-clause
grammars for language analysis: A survey of the formalism and comparison
with augmented transition networks. Artificial Intelligenge 13, no., pp. 231-
278
[Prawitz'65] Prawitz, Dag. Natural Deduction - A Proof-Theoretical Study.
Stockholm, 1965.
[Quental’95] Quental,V.S.T.D.B. Uma Gramática para Compreensão e Geração
Automática de Textos em Língua Portuguesa. Tese de Doutorado. Departamento
de Letras, PUC-Rio. Rio de Janeiro, RJ. 1995.
[R1] MacDermott,J. (1982) R1: A Rule-Based Configurer of Computer Systems.
Artificial Intelligence. Vol.19, pp.39-88
[Searle'79] Searle,J. (1979) Expression and Meaning. Cambridge. Cambridge University
Press.
[Smart Elements] Neuron Data - Smart Elements. Product Documentation. Neuron Data.
Palo Alto, California.