90
INPE-6833-TDI/646 INSIRIUS – INTERFACE INTELIGENTE EM LINGUAGEM NATURAL PARA O SISTEMA SIRIUS Flávia Beatriz Vasconcellos Rodrigues Dissertação de Mestrado em Computação Aplicada, orientada pelo Dr. Carlos Alberto de Oliveira e Dr. Sólon Venâncio de Carvalho, aprovada em fevereiro de 1998 INPE São José dos Campos 1998

INSIRIUS – INTERFACE INTELIGENTE EM LINGUAGEM …mtc-m16.sid.inpe.br/col/sid.inpe.br/iris@1913/2005/07.22.11.54/doc/... · 2.1 - LINGUAGEM DE CONSULTA ... LISTA DE FIGURAS 2.1 -

Embed Size (px)

Citation preview

INPE-6833-TDI/646

INSIRIUS – INTERFACE INTELIGENTE EM LINGUAGEM NATURAL PARA O SISTEMA SIRIUS

Flávia Beatriz Vasconcellos Rodrigues

Dissertação de Mestrado em Computação Aplicada, orientada pelo Dr. Carlos Alberto de Oliveira e Dr. Sólon Venâncio de Carvalho, aprovada em fevereiro de 1998

INPE São José dos Campos

1998

681.3.019 RODRIGUES, F. B. V.

Insirius-interface inteligente em linguagem natural para o sistema sirius / F. B. V. Rodrigues. - São José dos Campos: INPE, 1998.

108p. – (INPE-6833-TDI/646). 1.Inteligência artificial. 2.Linguagem natural.

3.Interfaces. 4. Interação homem-máquina. 5.Representação do conhecimento. 6.Lingüística computacional. I. Título.

“ Se as coisas inanimadas como a flauta ou a cítara não derem

sons distintos, como se distinguirá o que se toca na flauta ou na cítara? E

se a trombeta der um som confuso, quem se preparará para a batalha?

Assim também vós, se falando uma língua não fizerdes um discurso bem

inteligível, como se entenderá o que dizeis? Falareis ao vento! Há, com

efeito, tantos gêneros de línguas neste mundo e todas têm a sua expressão.

Se eu, pois, não entender o que significam as palavras, serei bárbaro para

aquele a quem falo; e o que fala será bárbaro para mim.”

Coríntios 14, vs. 7 – 11.

AGRADECIMENTOS

Ao Dr. Carlos Alberto de Oliveira pela paciência e apoio dados durante a

realização do trabalho, bem como pela excelente orientação.

Ao Dr. Solon Venâncio de Carvalho por concordar em assumir a

orientação do trabalho permitindo o seu desenvolvimento.

Ao Dr. Orion de Oliveira Silva pelo incentivo prestado para a realização

do Mestrado.

Ao Mestre José Demísio Simões da Silva pelas sugestões, auxílio e

opiniões sobre o desenvolvimento do protótipo.

À colega Lucinda Maria da Silva com quem iniciei a modelagem da

Interface proposta neste trabalho durante o curso de Processamento da Linguagem

Natural na Interação Homem Máquina, ministrado pelo professor Carlos Alberto de

Oliveira.

Ao Adhemar pelas opiniões e críticas levantadas sobre a leitura do texto.

À minha família pelo apoio e incentivo que sempre deram para a

realização de meus estudos.

Ao INPE pela aceitação no curso de Mestrado em Computação Aplicada,

e por tornar possível o desenvolvimento deste trabalho.

RESUMO

Este trabalho descreve o desenvolvimento de uma interface inteligente em linguagem

natural para o sistema de pesquisa e recuperação bibliográfica da biblioteca do INPE, o

SIRIUS. A interface proposta traduz uma consulta formulada em linguagem natural para

um comando aceito pelo sistema SIRIUS, sempre que esta puder ser compreendida e

interpretada. O idioma utilizado pela interface é o português do Brasil na forma escrita.

A solicitação do usuário é analisada sintática e semanticamente pela interface. Há uma

base de conhecimento que pode ser expandida a partir de interações com o usuário.

Sempre que a interface não conseguir compreender uma solicitação, será estabelecido

um diálogo com o usuário para tentar capturar sua intenção. O trabalho aborda conceitos

de Inteligência Artificial (IA) e Lingüística Computacional. Utiliza frames e regras de

produção para representar o conhecimento inerente ao protótipo do sistema.

INSIRIUS – INTELLIGENT INTERFACE IN NATURAL LANGUAGE TO THE

SIRIUS SYSTEM

ABSTRACT

This dissertation describes the development of a natural language intelligent interface

for the bibliographical research and retrieval system for the library of INPE, the

SIRIUS. The interface translates a query formulated in natural language into a

command accepted by the SIRIUS system. This occurs when the interface understands

the query. The idiom used by the interface is the Portuguese from Brazil in its written

form. The interface parses the user’s sentence syntatic and semanticly. There is a

knowledge base which can be increased with the interactions with the user. A dialog

with the user will be established whenever the interface does not understand the

sentence. The purpose of this dialog is to capture the intention of the user. The thesis

uses some Artificial Intelligence and Computational Linguistics concepts. It also uses

frames and production rules to represent the knowledge within the prototype system.

XIII

SUMÁRIO

LISTA DE FIGURAS................................................................................................XV

CAPÍTULO 1 - INTRODUÇÃO............................................................................... 17

1.1 - CONSIDERAÇÕES SOBRE AS DIFICULDADES MAIS COMUNS NO TRATAMENTO DA LN18

1.2 - MOTIVAÇÃO, JUSTIFICATIVA E OBJETIVOS ..............................................................20

CAPÍTULO 2 - SISTEMA SIRIUS - UMA VISÃO GERAL................................. 24

2.1 - LINGUAGEM DE CONSULTA .....................................................................................24

2.1.1 - Pesquisa bibliográfica ........................................................................................24

2.1.2 - Informação de circulação ...................................................................................27

2.1.3 - Comandos auxiliares ..........................................................................................27

2.2 - ESQUEMA SIMPLIFICADO DO SÍRIUS ........................................................................28

CAPÍTULO 3 - O QUE SERÁ MODELADO ......................................................... 30

3.1 - A LÍNGUA................................................................................................................30

3.2 - O PROCESSO DE COMUNICAÇÃO ..............................................................................31

3.3 - O CONHECIMENTO ..................................................................................................34

3.3.1 - Considerações sobre a representação do conhecimento.....................................34

3.3.2 - Algumas maneiras de representar o conhecimento............................................36

3.4 - A INTERFACE ..........................................................................................................38

3.4.1 - Introdução ..........................................................................................................38

3.4.2 - Regras gerais de utilização.................................................................................38

3.5 - O USUÁRIO..............................................................................................................42

3.5.1 - Perfil do usuário .................................................................................................43

3.5.2 - Intertextualidade, intencionalidade, situcionalidade e informatividade.............44

3.5.3 - Metas do usuário ................................................................................................45

3.5.4 - Pré-condições e condições de aplicabilidade .....................................................49

3.5.5 - Regras e seus efeitos ..........................................................................................49

CAPÍTULO 4 - MODELAGEM DA INTERFACE INSIRIUS ............................. 52

XIV

4.1 - REPRESENTAÇÃO DA ESTRUTURA FUNCIONAL DA INSIRIUS.....................................52

4.2 - DESCRIÇÃO DOS COMPONENTES FUNCIONAIS DA INSIRIUS ......................................55

4.2.1 - Componente 1: receber solicitação do usuário...................................................55

4.2.2 - Componente 2: verificar solicitação...................................................................55

4.2.3 - Componente 3: apresentar help para solicitação vazia ......................................56

4.2.4 - Componente 4: analisar solicitação não-vazia ...................................................57

4.2.5 - Componente 5: separar palavra a palavra ..........................................................57

4.2.6 - Componente 6: executar analisador sintático e semântico.................................58

4.2.7 - Componente 7: preencher frame de pesquisa.....................................................68

4.2.8 - Componente 8: interagir com usuário para preencher frame .............................69

4.2.9 - Componente 9: converter solicitação para maiúscula........................................74

4.2.10 - Componente 10: montar comando sirius..........................................................74

4.2.11 - Componente 11: finalizar .................................................................................76

CAPÍTULO 5 - CONCLUSÕES ............................................................................... 78

5.1 - CONSIDERAÇÕES INICIAIS .......................................................................................78

5.2 - O PROTÓTIPO INSIRIUS ............................................................................................78

5.2.1 - Arquitetura da insirius........................................................................................81

5.2.2 – Configuração física............................................................................................82

5.2.3 - Desempenho.......................................................................................................83

5.3 – PERSPECTIVAS .......................................................................................................83

5.4 – CONSIDERAÇÕES FINAIS .........................................................................................84

REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................... 87

APÊNDICE A - BIBLIOGRAFIA COMPLEMENTAR........................................ 89

XV

LISTA DE FIGURAS

2.1 - Esquema de expressões de busca utilizando os operadores E e OU.....................25

2.2 - Esquema simplificado do sistema SIRIUS............................................................28

3.1 - Esquema do fluxo de dados entre o usuário, a interface e o sistema SIRIUS.......32

3.2 - Mapeamento entre fatos e representações.............................................................35

3.3 - Verbos da INSIRIUS e suas relações com as primitivas SIRIUS.........................39

3.4 - Palavras-chave.......................................................................................................40

3.5 - Tela com informações básicas da interface...........................................................46

3.6 - Interação interface x usuário: omissão de primitiva. ............................................47

3.7 - Interação interface x usuário: solicitação não compreendida ...............................47

3.8 - Interação interface x usuário: primitiva não pertencente ao domínio. ..................48

3.9 - Consulta à interface: utilização de indicador inferencial. .....................................49

3.10 - Interação interface x usuário: objeto de busca diferente da sintaxe do sistema..49

4.1 - Árvore de decisão INSIRIUS................................................................................53

4.2 - Linguagem natural: análise da língua. ..................................................................54

4.3 - Predicado recebe_solicitação. ...............................................................................55

4.4 - Predicado verifica_solicitação. .............................................................................55

4.5 - Estrutura do frame de resposta..............................................................................56

4.6 - Regras de produção para o frame de resposta. ......................................................57

4.7 - Predicado separa_componentes. ...........................................................................57

4.8 - Predicado separa_palavras. ...................................................................................58

4.9 - Estrutura do analisador sintático e semântico .......................................................59

4.10 - Gramática do sistema. .........................................................................................61

4.11 - “Parse tree”..........................................................................................................62

4.12 - ATN.....................................................................................................................63

4.13 - Representação do conhecimento: vocabulário do sistema ..................................64

4.14 - Regra simplificada de formação do vocabulário.................................................64

4.15 - Predicado classifica_componentes......................................................................65

4.16 - Regras de inferência simplificadas do predicado classifica_componentes.........66

XVI

4.17 - Predicado interpreta_solicitacao. ........................................................................67

4.18 - Regras de inferência: ação desejada....................................................................67

4.19 - Regras de inferência: pesquisa ou solicitação de ajuda. .....................................68

4.20 - Frame de pesquisa. ..............................................................................................69

4.21 - Regras de inferência: preenchimento do frame de pesquisa. ..............................69

4.22 - Frame (situação 1)...............................................................................................70

4.23 - Frame (situação 2)...............................................................................................71

4.24 - Frame (situação 3)...............................................................................................71

4.25 - Frame (situação 4)...............................................................................................72

4.26 - Exemplo de regra de produção: diálogo entre o usuário e a interface. ...............73

4.27 - Predicado converte_solicitacao: representação da conversão dos caracteres da

solicitação em letras maiúsculas.........................................................................74

4.28 - Predicado sinon: representação da busca de sinônimos nos dicionários da

INSIRIUS. ..........................................................................................................74

4.29 - Representação de formatos SIRIUS....................................................................75

4.30 - Predicado formato_pesquisa: representação da formatação do objeto de pesquisa

de acordo com a sintaxe do SIRIUS...................................................................75

4.31 - Predicado associacao: associa verbos em consultas na INSIRIUS com comandos

SIRIUS. ..............................................................................................................76

4.32 - Regra para a montagem do comando SIRIUS. ...................................................76

5.1 - Tela de interação com o usuário para solicitação de ajuda ou solicitação vazia. .. 81

17

CAPÍTULO 1

INTRODUÇÃO

Entre os problemas inerentes à ciência da computação, destaca-se a interação homem-

máquina (IHM). Tal problema caracteriza-se pela dificuldade de diálogo com o usuário,

necessária principalmente quando este não domina plenamente a tarefa que está

executando. Deste modo, a execução da tarefa torna-se mais lenta por exigir mais tempo

e atenção do usuário.

A preocupação no desenvolvimento de interfaces mais amigáveis e inteligentes é

crescente. Os mecanismos de interação utilizados têm variado desde menus até sistemas

que utilizam recursos de Linguagem Natural (LN), incluindo a comunicação escrita e/ou

falada.

Dentre os vários tipos de interação, a interação por menus direciona a realização da

tarefa executada pelo usuário, não permitindo um “diálogo flexível” com a máquina.

Outra ferramenta utilizada na IHM são os ícones, que consistem em figuras que

induzem a alguma ação, com a finalidade de conduzir o usuário na realização de uma

tarefa. Os ícones também apresentam pouca flexibilidade, por não permitirem o

estabelecimento de um diálogo livre com o usuário. Já uma interface em LN permite

uma interação flexível, uma vez que possibilita a comunicação direta entre o homem e a

máquina, através da “linguagem humana”, seja ela escrita e/ou falada. O tratamento da

LN não é tarefa fácil, devido à diversidade de construções permitidas na língua, às

ambigüidades existentes e ao seu alto grau de complexidade. É importante lembrar

também que a comunicação humana não se limita ao sentido das palavras, está dotada

de intencionalidade e é enriquecida de expressões não verbais, como a expressão

corporal, a entonação e o volume da voz.

“Pode-se então, pensar no uso da LN no desenvolvimento de interfaces que facilitem a

IHM. Um ambiente em LN numa abordagem cognitiva, ou seja, baseado em

conhecimento, permite que o usuário participe do processo de execução da tarefa-meta,

explicitando interativamente sua “intenção” . Oliveira (1990).

18

A LN serve como veículo primário de transmissão de informações, permitindo ao

homem expressar diversas idéias e pensamentos, opiniões sobre o mundo e sobre os

fatos. Se é através da LN que o homem estabelece comunicação com os outros seres,

porque não tornar possível o estabelecimento de diálogo entre o homem e a máquina

também através da LN? A LN, por tratar-se da língua utilizada pelo homem em seu

cotidiano, pode facilitar a IHM, deixando-o mais seguro e a vontade para realizar as

tarefas em computador, uma vez que ele não precisa dominar linguagens de comandos,

menus ou ícones para obter uma interação eficiente. É importante ressaltar que a opção

pelo uso da LN não implica a não utilização de menus, ícones etc. na IHM. O uso de

menus, por exemplo, pode ser de muita utilidade por estes conduzirem o usuário em

algum ponto da realização da tarefa, como uma confirmação para validar uma

solicitação por ele efetuada.

As palavras dado e informação são usadas, neste contexto, como sinônimos, e tem o

seguinte significado: representam fatos ou entidades conhecidas. A palavra

conhecimento representa o conjunto de informações que o usuário e a interface

possuem.

1.1 - CONSIDERAÇÕES SOBRE AS DIFICULDADES MAIS COMUNS NO

TRATAMENTO DA LN

Apesar de os recursos da LN facilitarem a IHM, muitos optam por não utilizá-los

devido a muitos dos problemas inerentes à LN não terem sido totalmente resolvidos,

dificultando, deste modo, o desenvolvimento dos sistemas. Tais problemas incluem a

quantidade de conhecimento a ser armazenada, que é fundamental para a realização da

IHM. Uma vez que o usuário emprega sua linguagem habitual para realizar uma tarefa

em computador dentro de um domínio específico, é necessário que a máquina

compreenda sua solicitação e possua conhecimento suficiente para efetuá-la.

A Lingüística Computacional é o estudo pelo qual se visa obter a compreensão e

geração da LN por computador. O conhecimento referente ao domínio do problema

deve ser representado de modo que a IHM seja possível. Novos conhecimentos poderão

19

ser adquiridos a partir do diálogo entre o homem e a máquina, os quais serão

armazenados, caracterizando um “aprendizado” da máquina obtido a partir de suas

interações com o homem. Deste modo o conhecimento da máquina será expandido,

tornando-a cada vez mais “apta” para realizar as tarefas pertencentes aquele domínio

específico. Devido ao conhecimento mais amplo, o número de interações homem-

máquina será reduzido, diminuindo também o tempo total despendido para realizar a

tarefa.

Um dos problemas mais difíceis de tratar computacionalmente será o da ambigüidade

das linguagens naturais, ou seja, a existência de várias formas possíveis de entender

uma mesma frase. Normalmente, procura-se resolver o problema da ambigüidade

analisando-se o contexto da própria frase (análise semântico-pragmática). Se não for

possível captar a intenção do usuário, através da compreensão da sentença por ele

fornecida, a interface estabelecerá diálogo a fim de tentar descobrir sua intenção:

ocorrendo ambigüidade, a consulta ao usuário fica inevitável.

Existem ainda dois fenômenos lingüísticos que ocorrem na construção de frases: a

Elipse e a Anáfora. Elipse é a omissão de palavras numa frase, as quais ficam

subentendidas. Por exemplo: “Quanta beleza na Terra. (Quanta beleza há na Terra).”

Anáfora é a referência, usando pronomes, a uma entidade já definida anteriormente. Por

exemplo: “Raul é médico. Ele costuma atender vários pacientes por dia.” Ambos os

fenômenos são muito comuns na comunicação através da LN e para tratá-los deverão

ser mantidas estruturas frasais que constituam uma espécie de foco do texto ou diálogo,

que escapam à Semântica, mas são estudados pela Pragmática.

Para possibilitar uma IHM eficiente, o usuário deverá ser modelado, de modo que sua

intenção possa ser descoberta com maior eficiência pela interface e que esta forneça

resultados satisfatórios. Tal modelagem pode ser realizada utilizando-se os recursos da

própria LN ou outros recursos tais como lógica fuzzy ou neurocomputação.

A comunicação através da LN, por sua vez, necessita de um maior número de recursos

de hardware uma vez que a linguagem habitual do homem é livre, ou seja, permite a

20

utilização de vários tipos de construção gramatical para expressar uma mesma idéia,

respeitando-se, evidentemente, a sintaxe e semântica da língua. O aumento do

armazenamento de informações não representa um empecilho para a utilização da LN,

uma vez que as máquinas atuais apresentam grande capacidade de armazenamento e

estão em plena evolução.

Outra dificuldade encontrada na utilização da LN é que a representação do

conhecimento pertencente a um certo domínio pode apresentar alto grau de

complexidade, exigindo que o projetista torne-se um profundo conhecedor do domínio,

ou mantenha interações constantes com especialistas no domínio. Por um lado, diminui

a dificuldade do usuário em realizar uma tarefa pertencente a um domínio específico,

uma vez que este não precisa decorar sintaxes nem comandos para isto; por outro lado,

aumenta o envolvimento do projetista na realização do trabalho devido à representação

do conhecimento em um sistema em LN ser minuciosa e detalhada.

É importante ressaltar que embora o objetivo dos sistemas em LN na IHM seja o

estabelecimento de um diálogo o mais próximo possível do homem, neste caso

realizado através de sua língua habitual, seja ela escrita (transmitida à máquina via

teclado) e/ou falada (via microfone), a utilização de outros recursos, tais como, mouses,

ícones, menus etc. não deve ser descartada, pois pode facilitar a interação,

direcionando-a de forma mais adequada.

Uma decisão que deve ser tomada ao desenvolver sistemas em LN refere-se ao modo

de representação do conhecimento e à escolha da ferramenta a serem utilizados, tratados

respectivamente nos Capítulo 3 e 4.

1.2 - MOTIVAÇÃO, JUSTIFICATIVA E OBJETIVOS

Estudos sobre o processamento da LN, muitos deles relacionados à IHM, têm sido

desenvolvidos em diversos países do mundo, mostrando o interesse no crescimento da

área e caracterizando sua importância para a Ciência da Computação.

21

Na Universidade de StaffordShire, Inglaterra, o Dr. B. Sharp do grupo de pesquisa de

Inteligência Artificial, interessado no processamento e compreensão da Linguagem

Natural, está desenvolvendo o protótipo INFORMEX que produz a extração automática

de um conjunto de textos científicos usando conhecimentos lingüísticos, cognitivos e

regras heurísticas. A pesquisa em andamento investiga várias estratégias para

representar o conhecimento do domínio no INFORMEX.

O Departamento de Inteligência Artificial da Universidade de Edinburgh, Inglaterra,

tem uma longa experiência na área de Processamento da Linguagem Natural e

Lingüística Computacional, mantendo ligações com outros departamentos e centros da

Universidade de Edinburgh que também trabalham na área de linguagem. Tais

departamentos incluem o Centro de Ciência Cognitiva (CCS), o Centro de Pesquisa

sobre a Comunicação Humana (HCRC), o Departamento de Lingüística e o Centro

Tecnológico de Pesquisa da Linguagem. Possui, ainda, ligação com a Rede Européia de

Linguagem e Fala (ELSNET). Suas principais áreas de interesse são:

a construção de interfaces de usuários integrados empregando a linguagem

natural para a entrada e/ou saída extraindo informações de bases de conhecimento;

o desenvolvimento de representações de significado lingüisticamente gerais, mas

computacionalmente tratáveis;

o estudo matemático das propriedades de notações lingüísticas e sistemas de

regras, como por exemplo complexidade.

O trabalho desenvolvido pelo “Massachusetts Institute of Technology” (MIT),

intitulado: “Advances in Human-Computer Interaction: The Intelligent Room”, também

demonstra o interesse deste instituto no aprimoramento da IHM. Além disso, o

Laboratório de Inteligência Artificial do MIT possui um sistema de perguntas e

respostas em linguagem natural, através do qual os usuário da Internet podem obter

informações sobre as pesquisas e as pessoas ligadas ao Laboratório. O sistema START,

que está sendo desenvolvido por Boris Katz, está disponível na “World Wide Web”

(WWW) desde dezembro de 1993. Ele consiste em um sistema de processamento da

linguagem natural que analisa textos e gera uma base de conhecimentos que incorpora

22

informações encontradas no texto (ampliação do conhecimento). Um usuário pode

recuperar uma informação armazenada na base de conhecimento através de uma

pergunta em inglês, para a qual o sistema produzirá uma resposta também em inglês.

Embora os objetivos da pesquisa em LN sejam muito variados, a motivação principal

tem sido o desenvolvimento de sistemas específicos, principalmente para recuperação

de informações, tradução por computador e interfaces homem-máquina. As interfaces

em LN para a IHM têm tido um sucesso maior em relação as outras áreas de aplicação

(tradução por computador e recuperação de informações), devido a sua natureza

interativa, que permite ao sistema estabelecer diálogo com o usuário, caso não consiga

compreender sua solicitação. Grishman (1986).

O uso da LN na IHM apresenta vantagens sobre a utilização de ícones, menus etc. por

possibilitar o estabelecimento de diálogos entre o homem e a máquina quando

necessário. Ademais, por tratar-se da língua utilizada pelo homem em seu cotidiano,

possibilita facilidades quanto ao uso de sistemas computacionais. Assim, um dos

principais aspectos que motivaram esta pesquisa foi estudar o Processamento da

Linguagem Natural na Interação Homem Máquina, observando as facilidades de uso

que uma interface inteligente em LN proporciona aos seus usuários.

Escolheu-se o sistema SIRIUS, sistema de pesquisa e recuperação bibliográfica da

biblioteca do INPE, como base para o desenvolvimento desta interface inteligente,

devido a sua sintaxe difícil e pouco amigável, que pode ser observada através da leitura

do Capítulo 2.

É com base no discutido anteriormente que decidiu-se desenvolver uma interface

inteligente para facilitar a utilização do sistema SIRIUS, tratado no Capítulo 2.

A idéia de desenvolver uma interface para o sistema SIRIUS surgiu de estudos sobre o

processamento da LN na IHC realizados pelas alunas do curso de mestrado em

Computação Aplicada do INPE, Flávia Beatriz e Lucinda Maria com a orientação do

professor Dr. Carlos Alberto de Oliveira. O trabalho teve início em meados do ano de

1996 e limitou-se à modelagem de uma interface de nome INSIRIUS para facilitar a

23

utilização do sistema SIRIUS da biblioteca. A interface modelada previa diálogos com o

usuário, o mais próximo possível de sua realidade, a fim de tornar mais amigável a

interação com a máquina. Optou-se pela utilização do idioma português do Brasil,

apenas na forma escrita, permitindo-se o uso de palavras de idioma estrangeiro apenas

quando estas fossem pertencentes a nome de obras, autores, assuntos etc., e palavras

conhecidas dos utilizadores de computador, tais como HELP. A língua, o processo de

comunicação, o conhecimento, a interface e o usuário estão modelados no Capítulo 3. O

Capítulo 4 descreve a modelagem da interface INSIRIUS. As conclusões e

considerações sobre o protótipo são discutidas no Capítulo 5.

O objetivo desse trabalho de mestrado, que é parte de um programa de pesquisa do

professor Dr. Carlos Alberto de Oliveira, é o estudo do Processamento da Linguagem

Natural na Interação Homem Máquina, através do aperfeiçoamento e da implementação

da interface modelada. Optou-se pela construção de um sistema (protótipo) que seja

capaz de permitir uma interação simples e amigável entre o usuário da biblioteca do

INPE e o sistema SIRIUS, objetivando mostrar as vantagens e desvantagens em se

desenvolver sistemas em LN e o porquê da opção pela LN.

Pelo domínio da aplicação ser restrito, optou-se pelo uso de uma sublinguagem

composta de um vocabulário (gramática do sistema) e um conjunto de regras, a fim de

reduzir a ambigüidade existente na língua como um todo e facilitar a interpretação das

sentenças.

24

CAPÍTULO 2

SISTEMA SIRIUS - UMA VISÃO GERAL

O Sistema de Pesquisa e Recuperação Bibliográfica, denominado SIRIUS, é um

mecanismo de pesquisa e recuperação de informação relativa ao acervo bibliográfico da

Biblioteca do INPE. Este sistema é aberto a qualquer usuário e sua utilização dá-se por

meio de um terminal de vídeo.

2.1 - LINGUAGEM DE CONSULTA

A linguagem é composta por um conjunto de COMANDOS, utilizados na interface

entre o usuário e o sistema. São permitidas duas categorias de consultas:

- Pesquisa Bibliográfica

- Informação de Circulação

2.1.1 - PESQUISA BIBLIOGRÁFICA

Realizada através da composição de argumentos-de-busca.

2.1.1.1 – ARGUMENTOS DE BUSCA

São as palavras utilizadas para localizar referências bibliográficas.

Os tipos de argumentos e a sintaxe permitida são os seguintes:

“Palavra-do-Título(*)” : recuperar referências bibliográficas que possuem no

título determinada palavra. 1 a 100 caracteres.

<Nome-de-Autor(*)> : recuperar referências bibliográficas que pertencem ao

autor. 1 a 100 caracteres.

[Assunto(*)] : recuperar referências bibliográficas sobre determinado assunto. 1

a 100 caracteres.

$Palavra-de-Série(*)$ : recuperar referências bibliográficas pertencentes a uma

série de publicações. 1 a 100 caracteres.

25

A combinação de argumentos-de-busca permite a criação de EXPRESSÕES-DE-

BUSCA, utilizadas como especificação para as pesquisas.

A utilização do * (opcional) no final do argumento-de-busca permite criar um prefixo,

que representa simultaneamente todos os argumentos-de-busca existentes, cujos

caracteres iniciais são iguais aos daquele prefixo.

2.1.1.2 – EXPRESSÕES DE BUSCA

Combinação de um ou mais argumentos-de-busca, através dos operadores: E, OU,

MASNAO.

Prioridade dos Operadores: MASNAO, E, OU.

A utilização de parênteses ( ) força a mudança nesta hierarquia.

Exemplo:

arg1 OU arg2 E arg3

( arg1 OU arg2 ) E arg3

1

2

1

2

Fig. 2.1 - Esquema de expressões de busca utilizando os operadores E e OU

2.1.1.3 – NOMES DE EXPRESSÃO

Nome qualquer utilizado para associar a uma expressão-de-busca, que será usado

posteriormente. Admite de 1 a 12 caracteres. Não permite os nomes E, OU e MASNAO.

26

2.1.1.4 - COMANDOS

A) DEFINA

Comando pelo qual se efetua uma pesquisa bibliográfica. Define um nome-de-expressão

associando-o a uma expressão-de-busca.

Sintaxe:

DEFINA nome-de-expressão = expressão-de-busca

B) MOSTRE

Lista todas as referências bibliográficas cujos argumentos-de-busca possuem a mesma

raiz.

Sintaxe:

MOSTRE argumento-de-busca

C) VERIFIQUE

Exibe no terminal as referências bibliográficas, uma a uma, que correspondam a uma

expressão-de-busca definida anteriormente pelo comando DEFINA.

Sintaxe:

VERIFIQUE nome-de-expressão

D) IMPRIMA

Tem o mesmo efeito do comando VERIFIQUE, listando os resultados através da

impressora.

Sintaxe:

IMPRIMA nome-de-expressão (A/C/T)

onde o parâmetro opcional indica o modo de ordenação do relatório:

A - autor C - cronológica T - título

27

E) NOMES

Exibe a relação de todos os nomes-de-expressão definidos desde a inicialização da

sessão de consultas.

Sintaxe:

NOMES

2.1.2 - INFORMAÇÃO DE CIRCULAÇÃO

Informa a situação de um usuário e/ou material quanto a empréstimos e reservas.

2.1.2.1 - COMANDOS

A) MATERIAL

Situação atual do material.

Sintaxe:

MATERIAL (L/F/R)+número-de-tombo

Em que: L - livro F - folheto R - revista

B) USUARIO

Situação atual do usuário.

Sintaxe:

USUARIO número-de-registro-no-INPE

2.1.3 - COMANDOS AUXILIARES

A) SOS - help

Sintaxe:

SOS(COMANDO-SIRIUS/ARGUMENTO/EXPRESSÃO/

PREFIXO/MASNAO/E/OU)

28

B) FIM

Encerra uma sessão de consultas.

Sintaxe:

FIM

2.2 - ESQUEMA SIMPLIFICADO DO SÍRIUS

O esquema simplificado do sistema de pesquisa e recuperação bibliográfica SIRIUS é

representado a seguir (Figura 2.2):

SISTEMA DE PESQUISA E RECUPERAÇÃOBIBLIOGRÁFICA - SIRIUS

PESQUISABIBLIOGRÁFICA

INFORMAÇÃO DECIRCULAÇÃO

ARGUMENTOS OPERADORES COMANDOS

"palavra-do-título" E MOSTRE<nome-do-autor> OU DEFINA[assunto] MASNAO VERIFIQUE$palavra-de-série$ IMPRIMA NOMES

COMANDOS Nro. Material ou Usuário

MATERIAL cód. nro. material L-livro nro-tombo F-folheto nro-tombo R-revista nro-de-código

USUÁRIO nro-do-registro-INPE

Comandos AuxiliaresSOSFIMÁrea de

Abrangênciada

Interface

Fig. 2.2 - Esquema simplificado do sistema SIRIUS

29

A área de abrangência da interface, delimitada na Figura 2.2 acima, indica a parte do

sistema SIRIUS estudado para o desenvolvimento da interface INSIRIUS. A interface

estará restrita apenas ao domínio de pesquisas bibliográficas, por ele ser suficiente para

validar os estudos realizados sobre o processamento da LN na IHM e pela Interface

tratar-se apenas de um protótipo para validar tais estudos. A parte do sistema SIRIUS

referente a Informações de Circulação poderá vir a ser tratada em um trabalho futuro.

30

CAPÍTULO 3

O QUE SERÁ MODELADO

São modelados alguns aspectos principais presentes no processo de interação entre o

usuário e a interface, entre eles:

a língua empregada na comunicação e sua forma de utilização;

o processo de comunicação entre o usuário e a interface;

o conhecimento inerente à interface;

a interface e suas regras gerais de utilização;

o usuário da interface.

3.1 - A LÍNGUA

Língua é um sistema de signos e pode servir como metalinguagem/linguagem objeto

para a maioria das outras linguagens. “Linguagem é uma forma de ação, ação sobre o

mundo dotada de intencionalidade, veiculadora de ideologia, caracterizando-se,

portanto, pela argumentatividade.” Koch (1984)

Embora a linguagem falada seja a forma mais natural de interação entre o homem e a

máquina, devido a sua complexidade, a interface proposta neste trabalho utiliza a

linguagem escrita. O uso desta linguagem obedece a um esquema constituído de uma

gramática fixa que pode ser complementada através de interações entre a interface e o

usuário, sempre que for possível identificar a intencionalidade deste. O conhecimento

da interface está armazenado em dicionários, sendo eles abertos (dinâmicos) e

fechados. Os dicionários fechados são fixos. Todos os verbos inicialmente conhecidos

pela interface (verbos primitivos), estão armazenados no dicionário fechado de verbos,

antes mesmo que qualquer interação com o usuário tenha sido realizada. Os dicionários

abertos poderão ser ampliados a partir das interações com o usuário. Cada vez que este

informar à interface que um determinado verbo por ele escrito é sinônimo de um verbo

conhecido da interface (pertencente ao dicionário fechado de verbos), tal verbo será

31

acrescentado ao dicionário aberto de verbos, aumentando a quantidade de conhecimento

da interface. Esta gramática está descrita no item Modelagem dos Níveis de Análise da

Língua (Capítulo 4).

Os níveis de descrição sintático e semântico são compostos por um subconjunto

bastante restrito de signos e regras pertencentes à língua portuguesa do Brasil. As

únicas palavras permitidas de outra língua são as que representam algum tipo de

argumento-de-busca, que são os parâmetros necessários para a montagem de um

comando de pesquisa no Sistema SIRIUS, ou a palavra HELP utilizada neste contexto

como sinônimo de AJUDA. Maiores detalhes sobre estes níveis estão tratados na

Modelagem dos Níveis de Análise da Língua (Capítulo 4).

3.2 - O PROCESSO DE COMUNICAÇÃO

Segundo Jakobson (1969), podem ser isolados seis fatores intervenientes no ato da

comunicação, a saber : “ Um remetente (emissor ou destinador de signos) envia uma

mensagem a um destinatário (ouvinte, receptor de signos), através de um canal. Esta

mensagem, construída com um código parcialmente comum ao remetente e ao

destinatário, refere-se a um contexto”.

Neste trabalho, o usuário e a interface podem ser considerados remetente ou

destinatário, dependendo do papel que estejam desempenhando na comunicação, em um

determinado instante. As mensagens são veiculadas através de um canal constituído

pelo hardware do computador onde a interface estiver instalada. O código é composto

do esquema gramatical citado anteriormente e o contexto refere-se às possibilidades de

busca de informação bibliográfica no Sistema SIRIUS.

Uma vez que o processo de comunicação utiliza como canal o hardware de um

computador, deve-se ressaltar que a interface não trata problemas associados ao mal

funcionamento deste. Uma premissa importante é que o hardware deve estar em

condições apropriadas para a execução do sistema, atendendo aos seguintes requisitos

básicos:

32

Existência de um microcomputador PC com tecnologia atualizada de

microprocessador;

Monitor de vídeo preferencialmente colorido;

Teclado padrão 101 teclas (português);

O processo de comunicação entre o usuário da biblioteca, a interface INSIRIUS e o

sistema SIRIUS é ilustrado a seguir (Figura 3.1). Devido à proposta deste trabalho ser a

aplicação da LN na IHM, a implementação do protótipo está abordando apenas a

comunicação entre o usuário e a interface, não tratando, portanto, a comunicação efetiva

com o sistema SIRIUS.

Remetente/Destinatário

SistemaSIRIUS

Destinatário/Remetente

USUÁRIOINTERFACEC1 -> M1

C2 -> M2

C3 -> M3

C4 -> M4

C5 -> M5

LEGENDA

Fluxos de Dados sobre a Responsabilidade da InterfaceFluxos de Dados sobre a Responsabilidade de outra Interface( fora do escopo deste trabalho )

C

M

Canal de Comunicação

Mensagem

Fig. 3.1 - Esquema do fluxo de dados entre o usuário, a interface e o sistema SIRIUS.

Em que: Os canais de comunicação são representados por C1, C2, C3, C4 e C5 e as

mensagens por M1, M2, M3, M4 e M5, cujas descrições são dadas a seguir:

C1 : canal utilizando o teclado como meio de entrada de dados. Linguagem

escrita utilizando português restrito e ampliável (esquema gramatical).

M1: mensagem contendo a solicitação do usuário à interface, ou resposta a uma

pergunta recebida da interface.

33

C2: canal utilizando o monitor de vídeo como meio de saída de dados.

Linguagem escrita utilizando português restrito e ampliado pelas interações com

o usuário.

M2: mensagem correspondente à resposta da interface ao usuário. Informa que

houve uma solicitação satisfatória ou elabora perguntas, segundo heurísticas,

que estão modeladas no Capítulo 4, para tentar descobrir a intencionalidade do

usuário (meio utilizado para ampliar o léxico da interface). Esta mensagem deve

ser construída, de forma tal que o diálogo com o usuário não seja interrompido

até que uma meta seja alcançada.

C3: canal a definir – seria o meio de comunicação com o sistema SIRIUS;

M3: mensagem a definir – seria o envio do comando gerado pela interface após

a interpretação da solicitação do usuário para o SIRIUS.

C4: canal a definir - meio através do qual o SIRIUS sinalizaria à interface se um

resultado positivo foi ou não alcançado.

M4: mensagem a definir - indicaria o estado do SIRIUS em função do comando

recebido da interface.

C5: canal a definir - utilizaria o monitor de vídeo na comunicação com o

usuário;

M5: mensagem a definir - conteria o resultado da pesquisa efetuada pelo sistema

SIRIUS.

As funções dialógicas enfatizadas na comunicação entre o usuário e a interface são:

Função Referencial: indicativa da intertextualidade. Tanto a interface quanto o

usuário deverão estabelecer o diálogo utilizando o mesmo conjunto de signos e

regras do esquema gramatical.

Função Emotiva: indicativa da tentativa da interface em descobrir a

intencionalidade do usuário, através de diálogos.

Função Conativa: indicativa da propriedade da interface em influenciar o usuário

a utilizar corretamente os recursos disponíveis.

34

Função Fática: indicativa da propriedade da interface em criar solidariedade com

o usuário, evitando que o diálogo seja interrompido bruscamente sem que o

usuário saiba o que está acontecendo (situacionalidade).

Função Metalingüística: quando a interface utilizar seu próprio conjunto de

regras para explicar seu funcionamento ao usuário.

3.3 - O CONHECIMENTO

3.3.1-CONSIDERAÇÕES SOBRE A REPRESENTAÇÃO DO CONHECIMENTO

A fim de proporcionar uma eficiente interação com o usuário, a interface INSIRIUS

requer uma certa quantidade de conhecimento e alguns mecanismos para manipular este

conhecimento. Diversas formas de se representar o conhecimento (fatos) têm sido

exploradas em sistemas de Inteligência Artificial (IA). Para tanto, deve-se considerar a

existência de fatos e a representação desses fatos.

Segundo Rich (1993): “Fatos são verdades em algum mundo relevante, são coisas que

queremos representar. Representações de Fatos em algum formalismo escolhido são as

coisas que realmente conseguiremos manipular”. Propõe ainda a estruturação dessas

entidades (Fatos e Representação dos Fatos) em dois níveis:

Nível do Conhecimento - onde os fatos são descritos;

Nível do Símbolo - onde as representações dos objetos no nível do

conhecimento são definidas em termos de símbolos que podem ser manipulados

por programas.

A estruturação das entidades (Fatos e Representação dos fatos) é ilustrada a seguir

(Figura 3.2). As ligações representam o tipo de mapeamento existente entre as

entidades.

35

Fatos

Representações do Português

Representações Internas

Representaçãodo Português

Programas de Raciocínio

Geração do Português

Fig. 3.2 - Mapeamento entre fatos e representações. FONTE: RICH(1993, p. 126)

O mapeamento da representação para frente vai dos fatos para as representações e o da

representação para trás vai das representações para os fatos.

Nesta interface, o interesse está na representação dos fatos da língua portuguesa

pertencentes ao domínio estabelecido, a fim de obter informações do sistema e para o

sistema. Para isso, estão sendo utilizados mecanismos de mapeamento de sentenças em

LN pertencentes ao domínio restrito para a representação permitida pelo sistema e vice-

versa (Figura 3.2).

O sistema deve interpretar a sentença através da identificação do fato por ela

representado, convertendo-a para a representação lógica por ele utilizada. Sua tarefa é a

de interpretar as informações do usuário, manipulando as representações internas dos

fatos que lhe são dados, gerando sentenças que correspondam à resposta ao problema

descrito pela sentença inicial (conjunto inicial de fatos).

Segundo Rich (1993), as propriedades da representação do conhecimento são as

seguintes:

Adequação Representacional - capacidade de representar todos os tipos de

conhecimento necessários naquele domínio.

Adequação Inferencial - capacidade de manipular as estruturas

representacionais de modo a derivar novas estruturas que correspondam a novos

36

conhecimentos inferidos a partir de conhecimentos antigos. Tais conhecimentos

são inferidos pelo sistema dedutivo do Prolog, linguagem utilizada na fase de

implementação do protótipo.

Eficácia Inferencial - capacidade de incorporar à estrutura de conhecimento

informações adicionais que podem ser usadas para focalizar a atenção dos

mecanismos de inferência nas direções mais promissoras.

Eficácia Aquisitiva - Capacidade de adquirir novas informações facilmente.

3.3.2 - ALGUMAS MANEIRAS DE REPRESENTAR O CONHECIMENTO

A representação do conhecimento pode ser realizada utilizando-se vários recursos,

devendo o modelador escolher aquele que melhor se adapte a seus propósitos. Entre as

representações de conhecimento mais comuns em IA, estão:

Lógica de Predicados;

Regras de Produção;

Sistemas Não-Monotônicos;

Sistemas de Raciocínio Estatístico;

Redes Semânticas;

Frames;

Dependência Conceitual;

Roteiros (Script);

As representações através da lógica de predicados, sistemas não-monotônicos e

sistemas de raciocínio estatístico apresentam regras com inferência de procedimentos

estritamente sintáticos. Embora os sistemas de regras de produção também sejam

basicamente sintáticos, é possível criar sistemas de regras de produção que possuam

semântica nas regras.

As redes semânticas destinam-se a captar os relacionamentos semânticos entre

entidades e normalmente são empregadas com um conjunto de regras de inferência

projetado com a finalidade de controlar adequadamente os tipos específicos de ramos

que conectam os nós da rede.

37

Segundo Rich (1993) os sistemas de frames são geralmente mais altamente estruturados

do que as redes semânticas e contém um conjunto ainda maior de regras de inferência

especializadas. Um frame é uma coleção de atributos, em geral chamados de escaninhos

(slots), e valores a eles associados (e possivelmente restrições a esses valores) que

descrevem alguma entidade do mundo. Um sistema de frames consiste em um conjunto

de frames interligados. Às vezes um frame descreve uma entidade em termos absolutos;

às vezes representa a entidade de um determinado ponto de vista - como aconteceu na

proposta do sistema de visão de Minsky (1975), na qual o termo frame foi introduzido.

Rich (1993). O esquema do sistema de frames pode ajudar a explicar muitos fenômenos

da inteligência humana. Ele é apropriado na interpretação de uma seqüência específica

observada e é útil para prever a ocorrência de certos acontecimentos que não tenham

sido mencionados anteriormente. Em particular, os sistemas de frames são úteis para

domínios em que a forma e o conteúdo do dado desempenham um papel importante na

solução do problema, tais como: interpretação visual de cenas ou entendimento da fala.

Passos (1988).

A Dependência Conceitual (DC) apresenta uma representação semântica ainda mais

forte, pois não fornece apenas a estrutura abstrata de uma representação, mas também

uma indicação específica do que os componentes da representação devem conter. O

objetivo é representar o conhecimento de modo que as inferências sejam facilitadas,

independentemente da linguagem utilizada para expressar as sentenças. Deste modo, a

representação em DC não se dá a partir de primitivas que correspondam às palavras da

sentença, e sim a partir de primitivas conceituais, as quais podem ser combinadas para

gerar os significados das palavras da sentença escrita em qualquer linguagem (teoria

desenvolvida em Schank (1975)).

Os Roteiros ou Scripts consistem em frames, cujos escaninhos podem apresentar

informações sobre os tipos de valores que ele pode conter e um valor default para o caso

de não haver informações disponíveis para aquela ação. Embora sistemas de frames e

roteiros apresentem estruturas bastante similares, em alguns casos a utilização de frames

é mais conveniente, devido aos roteiros possuírem estruturas menos genéricas, sendo

38

portanto inadequados para a representação de todos os tipos de conhecimento. Em geral,

roteiros são eficientes para representar tipos específicos de conhecimento para os quais

foram projetados.

Embora a representação do conhecimento por frames não seja semanticamente a mais

forte, ela está sendo utilizada na representação do conhecimento inerente à interface,

uma vez que se trata de um modo de representação consistente e apresenta uma fácil

transição para o Prolog, linguagem utilizada na fase de implementação do sistema.

Também estão sendo utilizadas regras de produção para representar as sentenças, de

modo que estas possam ser analisadas sintaticamente.

3.4 - A INTERFACE

3.4.1 - INTRODUÇÃO

Uma interface constitui-se em um software que visa a estabelecer uma interação entre o

usuário de computador e a máquina. A INSIRIUS constitui-se em uma interface em LN,

baseada em um domínio restrito de signos e regras da língua portuguesa do Brasil

(esquema gramatical), entre os usuários da Biblioteca do INPE e o sistema SIRIUS.

Para utilizá-la, o usuário deve digitar sua solicitação no teclado do computador.

As consultas devem seguir algumas regras simples (tratadas a seguir), a fim de facilitar

o entendimento entre a interface e o usuário. Para que seja alcançado um resultado

eficiente é importante que se procure seguir tais regras, evitando, desta forma, que a

interface tenha que estabelecer muitas inferências para descobrir a intencionalidade do

usuário.

As condições de exceções e erros estão definidas no item 3.5 deste Capítulo.

3.4.2 - REGRAS GERAIS DE UTILIZAÇÃO

As consultas devem ser iniciadas por verbos, no infinitivo ou terceira pessoa do singular

do imperativo afirmativo. Logo após o verbo, devem ser colocadas palavras-chaves para

indicar a modalidade da pesquisa e a pesquisa em si. A pesquisa poderá constituir-se

39

em: assunto, nome do autor, título do livro ou palavra-de-série (todas palavras-chaves).

Acentos não serão considerados.

A modelagem da interface INSIRIUS apresentada neste trabalho não trata o uso de

expressões-de-busca, previsto no sistema SIRIUS. A utilização de tais expressões

poderá vir a ser estudada em um trabalho futuro.

Exemplo Geral da Sintaxe:

verbo palavra-chave objeto-de-pesquisa

Em que: verbo: indica a ação a ser realizada

palavra-chave: indica o tipo de pesquisa

objeto-de-pesquisa: conteúdo da pesquisa

O vocabulário inicial do sistema é dado a seguir (Figura 3.3):

Primitivas

SIRIUS

Primitivas

INSIRIUS

Verbos ( dicionário fechado )

INSIRIUS

MOSTRE MOSTRAR MOSTRAR, RELACIONAR,

EXIBIR

VERIFIQUE VERIFICAR VERIFICAR, VER

ENCONTRAR, PESQUISAR,

AVERIGUAR

IMPRIMA IMPRIMIR IMPRIMIR, ESCREVER

Fig. 3.3 - Verbos da INSIRIUS e suas relações com as primitivas SIRIUS

As primitivas INSIRIUS e os verbos acima estão armazenados no sistema em um

dicionário fechado, havendo também outro dicionário incluindo as flexões verbais nos

tempos: infinitivo e imperativo afirmativo. “Mostrar e “mostre” são usados como

sinônimos e dependem do grau de cordialidade/formalidade que o usuário quer imprimir

a sua solicitação.

40

A interface possui também um dicionário aberto (dinâmico) que será ampliado a partir

das interações com o usuário. O novo verbo será incluído sempre que for indicado que

este constitui-se um sinônimo de qualquer uma das primitivas INSIRIUS descritas

acima.

É importante ressaltar que a adição de um verbo ao dicionário dinâmico é decorrente da

associação deste verbo a um outro pertencente ao dicionário estático. Tal associação

poderá não satisfazer as necessidades de pesquisa de outros usuários, o que pode ser

resolvido através do estabelecimento de um novo diálogo com o usuário, a fim de que

este possa informar o sentido da ação que deseja realizar com o verbo utilizado em sua

solicitação.

PALAVRAS-CHAVE: Palavras que identificam, na solicitação do usuário, o tipo de

pesquisa a realizar (Figura 3.4). Estas palavras têm por objetivo agilizar o processo de

inferência. Todas as outras palavras que sucederem a palavra-chave indicarão o objeto-

de-pesquisa.

Palavras-Chave Sinônimos

ASSUNTO ASSUNTO, TEMA

AUTOR AUTOR, ESCRITOR

SERIE SERIE

TITULO TITULO

Fig. 3.4 - Palavras-chave

As palavras-chaves e os sinônimos acima estão armazenados no sistema em um

dicionário fechado.

A interface prevê a criação de um dicionário aberto (dinâmico), construído através das

interações com o usuário. Um novo sinônimo será incluído sempre que for indicado que

este constitui um equivalente a uma palavra-chave.

41

OBJETOS-DE-PESQUISA: Correspondem ao que no SIRIUS denominamos

argumento-de-busca. Os objetos-de-pesquisa representam o tipo de consulta que o

usuário deseja fazer.

A - Pesquisas por Assunto

Recuperar todas as referências bibliográficas sobre determinado assunto.

Ex.: pesquisar assunto linguagem natural

verificar o assunto geoprocessamento

O tratamento das preposições, usadas como indicadores do tipo de pesquisa que o

usuário deseja realizar, poderá vir a ser realizado em um trabalho futuro. Apenas um

exemplo deste tipo de tratamento foi realizado, através do uso da preposição “sobre”.

Ex.: pesquisar sobre ecologia

Onde através da preposição “sobre”, pode-se inferir o tipo de pesquisa a ser realizada:

pesquisa por assunto.

B - Pesquisas por Autor

Recuperar referências bibliográficas que pertençam ao autor.

As pesquisas por nome de autor devem conter apenas o último sobrenome, como

mostram os exemplos do item 1 abaixo. Caso o usuário deseje referenciar o autor pelo

nome completo, a consulta deverá conter o último sobrenome e as iniciais dos nomes,

de acordo com os exemplos do item 2.

1. Ex.: verificar autor martin

mostrar o autor yourdon

2. Ex.: verificar autor pessoa

mostrar autor neruda

C - Pesquisas por Título de Livro

42

Recuperar referências bibliográficas, cujo título corresponda ao objeto-de-pesquisa

especificado pelo usuário.

Ex.: pesquisar titulo linguistica computacional

encontrar o titulo o segredo do abismo

D - Pesquisas por Palavra-de-Série

Recuperar referências bibliográficas que pertençam a uma série de publicações.

Ex.: mostrar serie acm

pesquisar a serie cognitive science

Solicitada a pesquisa, o sistema procurará identificar o que o usuário deseja como

resposta, através da análise da sentença.

Existe uma base de dados consistente, a qual será consultada mediante cada solicitação.

Caso o sistema não consiga interpretar os requisitos do usuário, estabelecerá um diálogo

a fim de tentar descobrir sua intencionalidade. Maiores detalhes são fornecidos no item

3.5 deste Capítulo.

3.5 - O USUÁRIO

Devido ao fato de a interface relacionar-se ao Sistema SIRIUS, situado na Biblioteca do

INPE, admite-se como pressuposto que os usuários da interface serão todos os usuários

da biblioteca, a saber:

Alunos dos cursos oferecidos pelo INPE - não necessitam conhecer

profundamente os recursos da interface;

funcionários técnico-administrativos, inclusive as bibliotecárias e funcionários

da biblioteca - necessitam conhecer com mais profundidade os recursos de

utilização da INSIRIUS;

pesquisadores e docentes - idem a alunos;

43

demais pessoas, não necessariamente do INPE, que tenham acesso ao acervo da

biblioteca - idem a alunos.

Desta forma, o usuário modelado neste trabalho é o usuário do sistema SIRIUS,

considerando-se o conhecimento que ele necessita ter para utilizar o sistema

eficientemente.

3.5.1 - PERFIL DO USUÁRIO

A) Quanto ao Nível de Alfabetização

O usuário precisa ser alfabetizado (ler e escrever) e conhecedor superficial da língua

portuguesa. Precisa saber expressar-se com frases construídas segundo a organização

formal de coesão (quanto à construção) e coerência na solicitação, devido às restrições

do motor de inferências presentes na interface. Frases como:

De MOSTRAR João ao assunto

nem sempre poderão ser reconhecidas.

B) Quanto ao Nível de Conhecimento na Operação de Sistemas Computacionais

Habilidades de utilização dos recursos de entrada de dados via teclado são necessárias.

O usuário não precisa ser profundo conhecedor de computadores, uma vez que, sabendo

utilizar os recursos disponíveis no teclado do computador este será guiado pela interface

a informar os dados necessários à execução de uma tarefa (caso seja conveniente).

C) Quanto às Capacidades Físicas do Usuário

Por tratar-se de uma interface baseada na língua escrita, e por não dispor de nenhum

recurso sonoro, nem do Sistema Braille, infelizmente usuários portadores de

deficiências visuais graves (que impeçam a visualização das mensagens) não poderão

utilizar diretamente o sistema.

D) Quanto aos Conhecimentos Inerentes à Interface

44

O usuário, para maior agilidade do sistema, deve saber como a linguagem pode ser

usada. Sem este conhecimento, serão necessárias muito mais interações com a interface

para que a intencionalidade da solicitação possa ser descoberta. Caso isso não seja

possível, devido ao excessivo nível de empilhamento do sistema, o usuário será

orientado a procurar a bibliotecária e o diálogo será finalizado para aquela solicitação.

3.5.2 - INTERTEXTUALIDADE, INTENCIONALIDADE, SITUCIONALIDADE

E INFORMATIVIDADE

Esses fatores estão modelados nos seguintes itens:

Definir as Metas do Usuário, descrito no item 3.5.3;

definir Pré-condições e Condições de Aplicabilidade - para determinar como as

ações do sistema serão executadas para propiciar o tratamento de situações de

erro, descrito no item 3.5.4;

definir Regras e Efeitos destas, em caso de sucesso, item 3.5.5. Carberry (1988).

Devido à existência de uma certa regularidade nos objetivos das pessoas e no modo

como a linguagem pode ser usada, para alcançá-los pode-se utilizar um conjunto de

postulados conversacionais, que são regras sobre a conversação que podem ser

compartilhadas sobre todos os interlocutores. Grice (1975). Habitualmente, estas são

seguidas, mas quando não são, sua própria violação comunica algo.

Condições de Sinceridade: o usuário tem realmente que querer que a interface

execute uma tarefa, e esta deve ser capaz de executá-la;

Condições de Razoabilidade: o usuário possui um motivo para fazer a

solicitação;

Condições de Adequabilidade: a solicitação do usuário deve suprir a quantidade

correta de informação, deve refletir precisamente as crenças de quem fala.

Partindo do princípio de que o usuário sabe o que quer fazer (sinceridade), que tem um

motivo para fazê-lo (razoabilidade) e que conhece os requisitos básicos da língua para

45

fazer uma solicitação (adequabilidade), pode-se inferir as metas do usuário em relação à

solicitação que este pode formular para a interface.

Um exemplo prático de quando uma das condições de adequabilidade forem violadas, é

o seguinte: O professor X pediu ao professor Y que escrevesse sobre o aluno Z, obtendo

como resposta “assíduo, obediente, amigo dos colegas, paga suas mensalidades sempre

em dia”. Se o professor Y descumpriu uma das condições é porque ele queria informar

algo de outra forma (“o aluno Z é uma pessoa ótima, mas, como aluno...”). O usuário

também deve ser visto assim: Se a Interface não conseguir entender sua solicitação, o

problema não é do usuário, e sim da Interface. O usuário está dizendo sempre

“exatamente” o que quer.

3.5.3 - METAS DO USUÁRIO

A - Usuário deseja saber do que se trata a Interface

Uma vez acionada, a Interface entrará em estado de espera exibindo uma mensagem

para a entrada de uma solicitação. Caso o usuário pressione a tecla ENTER (solicitação

vazia), ou digite alguma palavra relacionada com socorro (HELP, SOCORRO, AJUDA,

? ...), a Interface deverá responder exibindo uma tela com informações básicas sobre

seus objetivos e um help resumido de seus comandos. Informará também ao usuário que

este poderá iniciar uma sessão de consultas digitando uma solicitação após o

aparecimento da mensagem, de forma semelhante à ilustrada a seguir (Figura 3.5).

> socorro

I> Seja bem vindo ao INSIRIUS

Este sistema tem por objetivo ...

Comandos

Mensagem ...

Por favor, responda:

1 - Desejo realizar uma nova consulta 2 - Não desejo tentar novamente.

======>

46

Fig. 3.5 - Tela com informações básicas da interface.

B - Usuário deseja pesquisar referências bibliográficas

B.1 - Usuário faz corretamente a solicitação (sintaxe correta)

O sistema transformará a solicitação em um conjunto de comandos que serão enviados

ao SIRIUS.

Usuário: > mostrar autor alencar

Comando SIRIUS: MOSTRE <ALENCAR>

B.2 - Usuário omite o verbo correspondente à ação desejada

A interface estabelecerá diálogo com o usuário, solicitando um verbo para a solicitação,

de modo semelhante ao exemplificado a seguir (Figura 3.6).

I> N ão consegui com preender com pletam ente sua solicitação. N ão foi possível recuperar todas as inform ações necessárias a pesquisa. P or favor, que ação deseja realizar sobre a pesquisa?

1 . M O STR AR 2 . V ER IFIC AR 3 . IM P R IM IR 4 . N ão sei 5 . C ancelar a consulta

D igite o núm ero da opção: _

47

Fig. 3.6 - Interação interface x usuário: omissão de primitiva.

Se o usuário disser que não sabe qual verbo escolher, a interface mostrará outra tela ao

usuário, desta vez com uma breve descrição sobre cada verbo. Se ainda assim ele não

souber, a interface exibirá uma mensagem semelhante a mostrada a seguir (Figura 3.7).

I> Desculpe, mas não estou conseguindo compreender sua solicitação .

Por favor, tente reformulá-la!

Por exemplo, para verificar as obras escritas por Machado de Assis, digite:

VERIFICAR AUTOR MACHADO DE ASSIS

Para pesquisar sobre determinado assunto, por exemplo, ecologia, digite:

PESQUISAR ASSUNTO ECOLOGIA

Caso você não queira tentar novamente, procure a bibliotecária

de referencia.

>

Fig. 3.7 - Interação interface x usuário: solicitação não compreendida.

B.3 - Usuário omite o espaço entre as palavras da solicitação

A interface estabelecerá diálogo com o usuário a fim de conseguir interpretar a

solicitação. Caso isso não seja possível, o sistema exibirá uma mensagem semelhante a

ilustrada na Figura 3.7.

B.4 - Usuário utiliza um verbo que não pertence ao léxico do sistema

A interface solicitará o significado do verbo e o anexará ao léxico do sistema, de modo

semelhante ao exemplificado a seguir (Figura 3.8).

> conseguir o autor rocha

48

I> Não consegui compreender completamente sua solicitação. Não foi possível recuperar todas as informações necessárias a pesquisa. Por favor, qual o significado de CONSEGUIR?

1. M OSTRAR 2. VERIFIC AR 3. IM PRIM IR 4. Não sei 5. Cancelar a consulta

D igite o número da opção: _

Fig. 3.8 - Interação interface x usuário: primitiva não pertencente ao domínio.

Se o usuário disser que não sabe o significado do verbo, a interface mostrará outra tela

ao usuário, desta vez com uma breve descrição sobre cada verbo. Se ainda assim ele não

souber, a interface exibirá uma mensagem semelhante a descrita na Figura 3.7.

B.5 - Usuário não define palavras-chave

A interface tentará encontrar na frase do usuário uma palavra-chave que possa indicar

qual é a categoria do objeto-de-pesquisa, através da consulta ao dicionário de

indicadores inferenciais. Se nada for encontrado, será estabelecido diálogo com o

usuário, sendo exibida uma tela semelhante a ilustrada pela Figura 3.10. Caso contrário,

a interface associará o indicador inferencial encontrado e a palavra-chave equivalente

no dicionário, confirmando com o usuário de modo semelhante ao exemplo abaixo

(Figura 3.9):

> mostrar os livros de rocha

I> Você deseja recuperar referências bibliográficas por AUTOR (S/N)? _

49

Fig. 3.9 – Consulta à interface: utilização de indicador inferencial.

Se a resposta do usuário for N, a interface estabelecerá um diálogo com o usuário,

semelhante ao descrito a seguir (Figura 3.10):

I> Não consegui compreender completamente sua solicitação. Não foi possível recuperar todas as informações necessárias a pesquisa. Que tipo de pesquisa você deseja realizar?

1. AUTOR 2. ASSUNTO 3. SERIE 4. TITULO 5. Não Sei 6. Cancelar a consulta

Digite o número da opção: _

Fig. 3.10 - Interação interface x usuário: objeto de busca diferente da sintaxe do

sistema.

Se o usuário disser que não sabe, a interface exibirá um tela de mensagem semelhante a

ilustrada pela Figura 3.7.

3.5.4 - PRÉ-CONDIÇÕES E CONDIÇÕES DE APLICABILIDADE

As pré-condições e condições de aplicabilidade devem ser definidas para determinar

como as ações do sistema serão executadas para tratar as situações de erro,

anteriormente citadas.

3.5.5 - REGRAS E SEUS EFEITOS

Uma vez descoberta a intencionalidade do usuário, sua solicitação deverá ser convertida

para um comando, formatado segundo a sintaxe SIRIUS, que possa ser interpretado e

executado (pelo SIRIUS).

50

A modelagem da representação do conhecimento por regras e seus efeitos será

apresentada no Capítulo 4.

51

52

CAPÍTULO 4

MODELAGEM DA INTERFACE INSIRIUS

A interface INSIRIUS está dividida em 11 componentes, cada um responsável por uma

função específica. Estes componentes, chamados de componentes funcionais, estão

representados através de uma árvore de decisão (Figura 4.1) e são descritos no item 4.2

deste capítulo.

4.1 - REPRESENTAÇÃO DA ESTRUTURA FUNCIONAL DA INSIRIUS

A representação da estrutura funcional de um sistema pode ser feita utilizando-se

diferentes técnicas, as quais são capazes de expressar as relações existentes entre os

seus diversos componentes. Entre elas, pode-se citar:

DFD (Diagrama de Fluxo de Dados);

Modelagem Orientada a Objetos;

Diagramas de Transição de Estado;

Árvores de Decisão.

A ferramenta utilizada para a representação da estrutura funcional da Interface é a

árvore de decisão, por atender aos seguintes requisitos:

é adequada para representar os componentes do sistema e a hierarquia existente

entre eles;

tem uma estrutura de representação muito próxima à estrutura de codificação de

programas em Prolog, facilitando, desta forma, a transição da modelagem da

interface para a implementação do protótipo.

A representação funcional da interface INSIRIUS é ilustrada a seguir (Figura 4.1).

53

INSIRIUS

1.Receber

Solicitaçãodo Usuário

2.Verificar

Solicitação

11.Finalizar

3.ApresentarHELP parasolicitação

vazia

4.Analisar

Solicitaçãonão-vazia

5.Separar

Palavra aPalavra

6.Executar

AnalisadorSintático

eSemântico

9.ConverterSolicitação

paraMaiúscula

7.PreencherFrame dePesquisa

8.Interagir com

UsuárioPreencher

Frame

Erro -Procure a

Bibliotecária

10. Montar

ComandoSIRIUS

10. MontarComandoSIRIUS

E

Fig. 4.1 - Árvore de decisão INSIRIUS.

54

A interface INSIRIUS é ativada pela entrada, via teclado, de uma solicitação de

pesquisa bibliográfica. Uma vez ativada, sua meta será tentar descobrir a intenção do

usuário, transformando a sentença inicial em uma seqüência de comandos a ser

interpretada pelo SIRIUS (o processo de pesquisa realizado pelo SIRIUS e sua interação

com o usuário não pertencem ao escopo deste trabalho).

É importante lembrar que num sistema em LN o objetivo é a compreensão da língua,

através da análise da sentença pela sua sintaxe e semântica, assim como pelas

características pragmáticas do evento frasal.

Para um sistema em LN ser bem sucedido, ele deve ser capaz de analisar diversas

sentenças pertencentes ao domínio da aplicação em questão. O objetivo da análise da

sentença é descobrir seu significado. Na prática, isso consiste em traduzir a LN de

entrada para uma linguagem com uma semântica simples, como por exemplo a lógica

formal, ou para uma linguagem que possa ser interpretada por um sistema

computacional existente.

Na maioria dos sistemas, o primeiro estágio para esta tradução é a análise sintática, que

consiste na determinação da estrutura da sentença; passando-se depois para a análise

semântica, que visa à obtenção do resultado (Figura 4.2).

Linguagem N atural

análise da sentença

análise sem ântica

análise sintática

discurso e diálogo estruturado

geração da línguaanálise da língua

Fig. 4.2 - Linguagem natural: análise da língua. FONTE: GRISHMAN (1986, p. 8-9)

55

O processo de busca da solução para a solicitação feita obedece a hierarquia

representada pela árvore (Figura 4.1) que será percorrida em profundidade da esquerda

para a direita. Os nós da árvore, que representam os componentes funcionais da

interface, estão detalhados juntamente com as representações dos níveis morfológico,

sintático e semântico-pragmático.

4.2 - DESCRIÇÃO DOS COMPONENTES FUNCIONAIS DA INSIRIUS

4.2.1 - COMPONENTE 1: RECEBER SOLICITAÇÃO DO USUÁRIO

Recebe a solicitação digitada pelo usuário, a qual representa a sua intenção perante a

interface.

Pode ser facilmente representado por um predicado (Figura 4.3).

recebe_solicitacao(&solicitacao) :- ler_string(&solicitacao,&tamanho_maximo)

Fig. 4.3 – Predicado recebe_solicitação.

Em que: solicitacao representa o conteúdo da entrada do usuário.

tamanho_maximo representa o número máximo de caracteres permitidos na

solicitação (devido às limitações do SIRIUS - 100 caracteres).

4.2.2 - COMPONENTE 2: VERIFICAR SOLICITAÇÃO

Consiste em verificar se a solicitação recebida é vazia ou não. Este processo pode ser

representado por uma regra de produção (Figura 4.4).

Se : número de caracteres da solicitação é zero

Então: solicitação é vazia, e

apresente_help_interface

Senão: solicitação é não vazia, e

analise(solicitação)

Fig. 4.4 – Predicado verifica_solicitação.

56

4.2.3 - COMPONENTE 3: APRESENTAR HELP PARA SOLICITAÇÃO VAZIA

Consiste na apresentação de tela(s) de auxílio ao usuário, fornecendo informações

básicas sobre objetos e comandos da interface.

Para a representação desse conhecimento, estão sendo utilizados frames de resposta

(Figura 4.5) e regras de produção (Figura 4.6).

Representação:

help-geral

mensagem-boas-vindas

...

objetivo

...

mensagem-finalizacao

...

help-comandos

mensagem-inicial

...

exemplo

...

mensagem-final

...

Fig. 4.5 - Estrutura do frame de resposta

57

Predicado:

help-geral(&mensagem-boas-vindas, &objetivo, &mensagem-finalizacao)

help-comandos(&mensagem-inicial, &exemplo, &mensagem-final)

Predicado da construção do HELP:

apresente-help-interface: escreva (tela, conteudo-help-geral);

enquanto houver help-comando

escreva (tela, conteudo-help-comando).

Fig. 4.6 – Regras de produção para o frame de resposta.

Em que: & indica variáveis a serem instanciadas.

4.2.4 - COMPONENTE 4: ANALISAR SOLICITAÇÃO NÃO-VAZIA

Responsável pelo controle de chamadas aos componentes que irão possibilitar a análise

sintática e semântica da solicitação:

Separar palavra a palavra

Executar analisador sintático e semântico

4.2.5 - COMPONENTE 5: SEPARAR PALAVRA A PALAVRA

Fragmenta a solicitação (já convertida) em seus componentes (palavras). Representado

pelo predicado separa_componentes (Figura 4.7).

separa_componentes(&conv_solicitacao,&lista_de_componentes) :-

elimina_espacos(&conv_solicitacao,&nova_solicitacao),

decompoe_solicitacao(&nova_solicitacao,&lista_de_componentes)

Fig. 4.7 – Predicado separa_componentes.

58

O predicado elimina_espacos irá eliminar os possíveis espaços em branco existentes no

início e no fim da solicitação.

O predicado decompoe_solicitacao irá provocar a chamada a separa_palavras (Figura

4.8).

separa_palavras(&nova_solicitacao,&lista_de_componentes,&posicao):-

encontra_palavra(&palavra,&nova_solicitacao,&posicao,

&posicao_proxima_palavra),

insere_fim_lista_palavra(&palavra,&lista_de_componentes)

Se posicao_proxima_palavra ≤ tamanho(solicitacao) chame

separa_palavras(&nova_solicitacao,&lista_de_componentes,&p_posicao)

Fig. 4.8 – Predicado separa_palavras.

O predicado encontra_palavra pesquisará, a partir da posição do primeiro caracter da

solicitação, até encontrar um espaço em branco, compondo assim, a palavra

(componente). Deste modo, as demais palavras serão localizadas.

Separados os componentes, o conteúdo da lista_de_componentes será:

[ [“COMPONENTE1”],[“COMPONENTE2”],...,[“COMPONENTEn”] ]

4.2.6 - COMPONENTE 6: EXECUTAR ANALISADOR SINTÁTICO E

SEMÂNTICO

Este componente é responsável pelas análises sintática e semântica da solicitação.

Não é necessária a realização de uma análise morfológica profunda, visto que o

domínio da aplicação é restrito. Um dicionário fechado (estático) é suficiente para

armazenar as palavras (lexias) e os gramemas.

59

Um dicionário dinâmico (conjunto de sinônimos para componentes do dicionário

fechado) atuará como colaborador no processo de inferências do sistema, estando em

constante atualização.

A análise dos níveis sintático e semântico está utilizando regras baseadas nos

Postulados Conversacionais citados no Capítulo 3, no Modelo do Usuário e na Sintaxe

Básica da INSIRIUS. De acordo com os princípios e crenças neles descritos, foi

concluído que:

o domínio do problema comporta um vocabulário limitado;

embora a INSIRIUS utilize uma sintaxe simples para a formulação da solicitação

do usuário, não é possível prever todas as possibilidades de construções

sintáticas.

A estrutura do analisador sintático e semântico é ilustrada pela a seguir (Figura 4.9):

AnalisadorSintático

AnalisadorSemântico

lista_de_componentes

dicionário estático edinâmico estrutura_sintática

lista_de_componentes_classificados

ação,chave,objeto_de_pesquisa,ação_conhecida

Fig. 4.9 - Estrutura do analisador sintático e semântico

60

A - Análise Sintática

A análise sintática é essencial para o tratamento semântico por definir quais regras serão

aplicadas e em que ordem.

As categorias sintáticas correspondem aos não terminais das linguagens formais. Nas

gramáticas de linguagens naturais, as categorias sintáticas são definidas procurando

trechos de orações com significados coesos, de acordo com a intuição dos gramáticos.

Tais trechos são chamados sintagmas. Savadovsky (1988)

O sintagma nominal refere-se ao trecho da oração que define uma entidade ou grupo de

entidades do mundo falante. O sintagma verbal consiste da parte da oração que afirma

algo sobre o sintagma nominal. Pode conter um ou mais verbos, sendo eles classificados

como verbo auxiliar e verbo principal. Os verbos podem ser intransitivos, transitivos

diretos ou transitivos indiretos, sendo que os transitivos exigem a presença de um objeto

(sintagma substantivo - no caso dos transitivos indiretos precedido de preposição) para

complementá-los. A interface INSIRIUS trabalhará apenas com o verbo principal,

sendo ele transitivo, devido ao tipo de aplicação. Neste caso é suficiente o tratamento

apenas do sintagma verbal.

É importante realizar as análises sintática e semântica da sentença para que a frase não

apenas se enquadre nas regras de construção sintática, mas também possua coerência e

coesão.

Uma gramática consiste de um conjunto de regras e de elementos que manipulam estas

regras. A ferramenta utilizada na modelagem do nível sintático é a gramática livre de

contexto, muito usada em LN. Embora ela não seja capaz de capturar toda a gramática

em LN, permite a captura de estruturas gramaticais que estejam fora do alcance das

gramáticas regulares, sendo adequada e suficiente devido ao domínio da aplicação ser

restrito.

A aplicação da gramática livre de contexto está utilizando a notação chamada “Backus-

Naur Form” (BNF), na qual os símbolos não terminais são colocados entre “ < > ” e o

61

símbolo “ :: = ” é usado no lugar de →. O símbolo “ / ” é usado para separar duas

produções de um único não-terminal (Figura 4.10).

Diferentes analisadores livres de contexto têm sido desenvolvidos, sendo o mais comum

deles, o algoritmo backtracking top-down1. A estrutura dessa gramática pode ser

representada de forma mais clara através de uma Parse Tree, capaz de representar as

sentenças que empregam a sintaxe correta do sistema (Figura 4.11). Esta técnica

mostrou-se adequada para a representação das principais formas sintáticas que poderão

ocorrer na solicitação do usuário, expressando o sequenciamento entre as diversas

classes de palavras. Entretanto, ela foi adaptada aos propósitos deste trabalho. O objeto-

de-pesquisa será representado como um único elemento (independente de ser ou não

composto por mais de uma palavra).

<S> :: = <SV>

<SV> :: = <VERB> <COMPLE>

<COMPLE> :: = <COMPLE1> / <COMPLE2>

<COMPLE1> :: = <CHAVE> <OBJ-PESQ>

<COMPLE2> :: = <IND-INF> <OBJ-PESQ>

<VERB> :: = Λ / mostrar / verificar / imprimir /...

<CHAVE> :: = <ARTIGO>* <PAL-CHAVE>

<PAL-CHAVE> :: = Λ / autor / titulo / assunto / serie / ...

<IND_INF> :: = <ARTIGO>* <IND> <PREP>*

<ARTIGO> :: = Λ / o / a / um / uma / ...

<IND> :: = Λ / livro / obra / ...

<PREP> :: = Λ / de / do / sobre / ...

<OBJ-PESQ> :: = [ valor-do-objeto-de-pesquisa (string)]

Fig. 4.10 – Gramática do sistema.

1 O algoritmo “backtracking top-down” realiza derivações até encontrar uma capaz de gerar a sentença inicial. Livro “Computational Linguistics”, Ralph Grishman, 1986, pág. 28.

62

Em que: S - estado inicial

SV - solicitação do usuário (sintagma verbal)

VERB - verbos primitivos da INSIRIUS

PAL-CHAVE - palavras-chave da solicitação

OBJ-PESQ - conteúdo do objeto-de-pesquisa

IND-INF - indicador inferencial - palavras que permitem inferir o tipo de

pesquisa a realizar

Λ - indica que o componente gramatical pode ser vazio, embora muitas vezes

seja necessário para a correta interpretação da sentença. Neste caso, serão

feitas inferências até que se consiga recuperá-lo.

* - indica que o componente gramatical não é imprescindível à sentença,

podendo ser nulo.

Palavras maiúsculas - não-terminais Palavras minúsculas – terminais

Fig. 4.11 – “Parse tree”

A estrutura em árvore não capta todas as possibilidades de ocorrências sintáticas.

Entretanto, a característica “inteligente” da interface é a possibilidade de estabelecer

S

SV

VERB COMPLE

COMPLE 1 COMPLE 2

CHAVE OBJ-PESQ IND-INF OBJ-PESQ

ARTIGO PAL-CHAVE IND PREPARTIGO

63

diálogos com o usuário a fim de descobrir possíveis elementos que faltem na estrutura

da solicitação necessários à realização da pesquisa.

Outra forma de representação em LN são as “Augmented Transition Networks” (ATN).

O analisador da ATN deve encontrar um caminho que permita ir do nó inicial ao nó

final, normalmente obtido através da aplicação de um algoritmo backtracking top-down,

semelhante ao usado pela análise livre de contexto. A representação da estrutura

sintática da interface por ATN é dada a seguir (Figura 4.12).

Fig. 4.12 - ATN

A-1) Representação do Conhecimento - vocabulário do sistema

A representação do conhecimento - vocabulário do sistema é ilustrada a seguir (Figura

4.13):

sq2

q3

q4

q5

q6

q7

q8

q14

q13

q12

q9

q11

SV

verb

comple

q10

comple1

comple2

chave

obj-pesq

artigo

pal-chave

obj-pesqobj-pesq

artigo

indprep

obj-pesq

pal-chave

ind-inf

ind

obj-pesq

obj-pesqobj-pesq

obj-pesq

obj-pesq

comple

64

PALAVRAS

Valor-Instância

Valor-Sinônimo

Valor-Classeclasse

instância

sinônimo

Valor-Puralplural

Fig. 4.13 - Representação do conhecimento: vocabulário do sistema

Em que, Valor-classe assumirá os seguintes valores:

• verbo - verbos primitivos INSIRIUS

• artigo - artigos definidos e indefinidos

• prep - preposição

• chave - palavra-chave

• ind-inf - indicador inferencial

• ajuda - help do sistema

Valor-sinônimo relacionará palavras a seus sinônimos

Valor-plural indicará o plural da palavra

Os verbos estão armazenados no vocabulário na terceira pessoa do singular nos modos

infinitivo e imperativo afirmativo (Figura 4.14).

acha_classe(&Palavra,&Classe) :-

verb(&Palavra,&Verbo); sin_verb(&Palavra,&SVerb);

chave(&Palavra,&Chave); ind_inf(&Palavra,&Ind);

sin_chave(&Palavra,&Schave);

plural(&Palavra,&Plural).

Fig. 4.14 - Regra simplificada de formação do vocabulário.

65

Exemplos: chave(“AUTOR”, “AUTOR”)

sin_chave(“ESCRITOR”, “AUTOR”)

plural(“ESCRITORES”, “ESCRITOR”)

verb(“MOSTRAR”, “MOSTRAR”)

sin_verb(“MOSTRE”, “MOSTRAR”)

A-2) Identificação da Classe dos Componentes da Solicitação

O predicado classifica_componentes busca a classe de cada componente da lista nos

dicionários (fechado e dinâmico) do sistema (Figura 4.15). Se o componente não for

encontrado, o valor da classe será desconhecida.

O valor obtido será utilizado posteriormente pelo analisador semântico para inferir

sobre a ação, a chave e o objeto-de-pesquisa.

classifica_componentes(&lista_de_componentes,

&lista_de_componentes_classicados)

Fig. 4.15 – Predicado classifica_componentes.

O predicado utiliza regras de inferência para tentar determinar a classe de cada palavra

(Figura 4.16).

Inferência 1: Componente existe no dicionário, retorna a classe.

Inferência 2: Componente não existe no dicionário, tentar inferir se este é verbo.

66

classifica_componentes(&lista_de_componentes,

&lista_de_componentes_classificados)

Para cada um dos componentes de lista_de_componentes:

1) verb(&Componente,&Verbo) ou

sin_verb(&Componente,&SVerbo), ou

2) ( Não conseguiu encontrar o componente no dicionário )

Se terminação é A,E,AR,ER,IR ou OR

Se é primeiro componente Então classe é verbo.

Confirmar com o usuário.

3) chave(&Componente,&Chave) ou

sin_chave(&Componente,&SChave) ou

ind_inf(&Componente,&Ind) ou

plural(&Componente,&Plural)

4) Senão Classe é desconhecida.

5) Atribuir à lista_de_componentes_classificados o valor encontrado para a classe.

[ [“COMPONENTE1”,classe1],.....,[“COMPONENTEn”,classen]]

Fig. 4.16 – Regras de inferência simplificadas do predicado classifica_componentes.

B - Análise Semântica

A semântica de uma linguagem é o estudo da atribuição de significado para as frases e

palavras. O significado do todo é uma função do significado de suas partes e de seu

modo de combinação.

Uma sentença é composta de um conjunto de palavras estruturadas sintaticamente em

árvore. As palavras correspondem aos nós desta árvore, e são criadas a partir de

aplicações de regras sintáticas às sentenças. Cada regra sintática deve ter uma regra

semântica correspondente que calcule o valor semântico da entidade sintática

produzida. O valor semântico obtido para o símbolo inicial (nó raiz da árvore) é o

significado da sentença.

67

Quando se está trabalhando com LN na IHC, a idéia é que esta seja capaz de interpretar

uma solicitação do usuário e fornecer-lhe resultados. Para isso, a entrada em LN deve

ser traduzida para alguma linguagem formal conhecida pelo sistema. Estas linguagens

formais devem incorporar as seguintes propriedades:

não ser ambígua;

ter regras simples de interpretação e inferência;

ter uma estrutura lógica determinada pela forma da sentença.

O analisador semântico deve inferir, a partir da lista_de_componentes classificados, a

ação que o usuário deseja realizar, o tipo de pesquisa (representado pela classe chave), o

objeto-de-pesquisa (o que se deseja pesquisar) e se a ação é conhecida pelo sistema

(Figuras 4.17, 4.18 e 4.19).

interpreta_solicitacao(&lista_de_componentes_classificados,&ação,

&chave,&objeto_de_pesquisa,&ação_conhecida)

Fig. 4.17 – Predicado interpreta_solicitacao.

1) Buscar na lista a classe dos verbos existentes

A) Analisa primeira palavra

B) Procura verbo no vocabulário do sistema

C) Se verbo encontrado, Então ação_conhecida=“SIM”,

Senão ação_conhecida=“NÃO”.

Se ação_conhecida=”NÃO”, Então Verificar desinência verbal

Se existir desinência verbal, Então confirmar se é verbo

Se sim, Então ação_conhecida=”SIM”

Recuperar a primeira palavra classificada como verbo.

Senão ação_conhecida=”NÃO”

Estabelecer diálogo com o usuário.

D) Se ação_conhecida= “NÃO” Então verbo=vazio

Fig. 4.18 – Regras de inferência: ação desejada.

68

2) Encontrar a chave de pesquisa ( tipo de pesquisa )

A) Buscar na lista_de_componentes a segunda palavra e verificar se é chave.

B) Se existe chave Então chave=&componente e posição=posição_na_lista.

C) Se não existe chave Então verificar se existe classe ind_inf

Se existe recuperar da lista os componentes próximo e anterior a classe

Sobre eles inferir:

- Se próximo é preposição “sobre” Então chave = assunto e

posição = posicao_preposicao

Senão Se próximo é outra preposição Então confirmar com o usuário

o tipo de pesquisa

D) Se nenhuma das regras foi satisfeita Então chave=vazio.

Estabelecer contato com o usuário

3) Encontrar o objeto-de-pesquisa

objeto_de-pesquisa = todos os componentes da lista a partir da

próxima posição

4) Se ( ação=vazio, chave=vazio e objeto-de-pesquisa=vazio) e existe na

lista_de_componentes_classificados componente cuja classe é ajuda, abandona o

processo de análise e recupera o help do sistema.

Concluída a análise chame

Preencher frame de pesquisa.

Fig. 4.19 – Regras de inferência: pesquisa ou solicitação de ajuda.

4.2.7 - COMPONENTE 7: PREENCHER FRAME DE PESQUISA

Neste ponto, é preenchido o frame (Figura 4.20), de acordo com os valores inferidos

através da análise semântica da solicitação do usuário (Figura 4.21).

69

Frame-Pesquisa ação-p

chave-p

objeto-de-pesquisa-p

Fig. 4.20 – Frame de pesquisa.

Em que: ação_p: verbo a ser associado a uma primitiva INSIRIUS

chave_p: tipo de pesquisa

objeto-de-pesquisa-p: valor a ser pesquisado

preencher_frame(&acao_p,&chave_p,&objeto_de_pesquisa_p) :-

acao_p = acao

chave_p = chave

objeto_de_pesquisa_p = Objeto_de_pesquisa

Se acao_conhecida = “SIM” e acao ≠ vazio e chave ≠ vazio chame

montar_Comando SIRIUS

Senão

chame interagir com usuário para preencher frame.

Fig. 4.21 – Regras de inferência: preenchimento do frame de pesquisa.

4.2.8 - COMPONENTE 8: INTERAGIR COM USUÁRIO PARA PREENCHER

FRAME

Dependendo do conteúdo dos slots do frame de pesquisa e do conteúdo de ação-

conhecida, a interface estabelecerá diálogos diferenciados com o usuário.

Os padrões de diálogos foram modelados segundo estruturas de frame.

70

Estrutura dos Frames de Diálogo:

Foram estabelecidos padrões de frames de diálogo, a serem utilizados pela interface na

interação com o usuário. Cada um deles foi estruturado de maneira simples, com o

objetivo de orientar o usuário na realização de consultas. As mensagens são padrões e

possuem variáveis que serão instanciadas com os valores de ação_p, classe_p e

objeto_de_pesquisa_p do frame de pesquisa (Figuras 4.22, 4.23, 4.24 e 4.25).

O conteúdo dos slots mensagem, opções e default representam:

Mensagem: mensagem exibida ao usuário caso a interface não tenha conseguido

reconhecer todas as informações necessárias ao processo de pesquisa;

Opções: relaciona, ao usuário, as opções de tipos de ações e tipos de chaves de

pesquisa utilizadas pelo sistema;

Mensagem Final: mensagem de finalização exibida pela interface.

Padrões de Frames de Diálogo:

Fig. 4.22 - Frame (situação 1).

Diálogo 1

mensagem

"Não consegui compreender completamente sua solicitação Não consegui recuperar todas as informações necessárias Por favor, que ação você deseja realizar na pesquisa? opções

1- mostrar 2- verificar 3 - imprimir 4 - não sei 5 - Cancelar a consulta mensagem_final "vazia"

71

Frame ( situação 3 )

Fig. 4.23 - Frame (situação 2).

Fig. 4.24 - Frame (situação 3).

Diálogo 2

mensagem

"Não consegui compreender completamente sua solicitação Não consegui recuperar todas as informações necessárias Por favor, qual o significado de &acao_p ? opções

1- mostrar 2- verificar 3 - imprimir 4 - não sei 5 - Cancelar a consulta mensagem_final "vazia"

Diálogo 3

mensagem

"Não consegui compreender completamente sua solicitação Não consegui recuperar todas as informações necessárias Por favor, que tipo de pesquisa você deseja realizar ? opções

1- autor 2- assunto 3 - título 4 - palavra de série 5 - Nao sei 6 - Cancelar a consulta mensagem_final "vazia"

72

Fig. 4.25 - Frame (situação 4).

Acionamento dos Frames de Diálogo

O acionamento dos frames de diálogos ocorre de acordo com as respostas do usuário às

perguntas realizadas pela interface.

O tipo de informação não interpretada pela interface na solicitação do usuário definirá a

seqüência na qual os frames de diálogo serão acionados. Outro fator determinante são as

respostas dadas pelo usuário às perguntas da interface.

Interações com o Usuário

Sempre que a interface não conseguir compreender uma solicitação do usuário, serão

estabelecidos diálogos diferenciados a fim de tentar interpretá-la. Caso a intenção não

seja descoberta, a interface orientará o usuário sobre a sintaxe do sistema, estimulando o

mesmo a tentar digitar novamente a solicitação ou a procurar a bibliotecária de

referência.

mensagem "Me desculpe, mas nao estou conseguindo compreender sua solicitacao. Lembre-se: As solicitações de pesquisa devem seguir a estrutura demonstrada nos exemplos abaixo: Para pesquisar obras de Machado de Assis, digite: mostre autor assis

Para pesquisar sobre o assunto Robótica, digite: ver assunto robotica

mensagem_final "Se desejar mais esclarecimentos, procure a bibliotecária"

Diálogo 4

opcoes"1 - Quero reformular a solicitacao2 - Nao quero tentar novamente "

"

73

Interações com o Usuário - Regras de Produção

Um exemplo de regra de produção que pode ser aplicada no diálogo entre usuário e

interface é ilustrada a seguir (Figura 4.26).

Se frame-pesquisa possuir slot não preenchido

Se acao_p = vazio

Então acionar situação1

Se opção do usuário ≠ “Nao Sei”e “Cancelar”

Então &ação_p=verbo da ação escolhida.

Senão

Se ação_conhecida=“NÃO”

Então acionar situação2

Se opção do usuário ≠ “Nao Sei”e “Cancelar”

Então grave no dicionário o sinônimo e

&ação_p=verbo da ação escolhida.

Se chave_p = vazio

Então acionar situação3

Se opção do usuário ≠ “Nao Sei”e “Cancelar”

Então &chave_p=valor da chave da opção escolhida.

Fig. 4.26 – Exemplo de regra de produção: diálogo entre o usuário e a interface.

Este conjunto de regras estrutura o comportamento básico da interface em relação aos

diálogos com o usuário.

Concluída a análise da solicitação, são executados os componentes “Converter

Solicitação para Maiúscula” e “Montar Comando SIRIUS”.

74

4.2.9 - COMPONENTE 9: CONVERTER SOLICITAÇÃO PARA MAIÚSCULA

Converte a solicitação em letras maiúsculas (Figura 4.27).

converte_solicitacao(&solicitacao,&conv_solicitacao,&posicao_caracter) :-

concatene(&conv_solicitacao,&maiuscula-do-caracter-na-posicao),

Se posicao_caracter ≤ tamanho_total(solicitacao)

converte_solicitacao(&solicitacao,&conv_solicitacao,&posicao_proximo-

caracter).

Fig. 4.27 – Predicado converte_solicitacao: representação da conversão dos caracteres

da solicitação em letras maiúsculas.

Em que: maiúscula_do_caracter_na_posicao corresponde à conversão do caracter em

maiúsculo, na posição indicada por posicao_caracter.

4.2.10 - COMPONENTE 10: MONTAR COMANDO SIRIUS

Este componente criará a estrutura do comando para o SIRIUS, a partir dos dados dos

slots do frame de pesquisa.

O processo será dividido em três etapas.

Etapa1: Encontrar no dicionário a correspondência entre ação_p e o verbo

primitivo do SIRIUS

Encontrar o sinônimo do verbo digitado pelo usuário representado por &acao_p (Figura

4.28).

sinon(&acao_p,&primitivo)

Fig. 4.28 – Predicado sinon: representação da busca de sinônimos nos dicionários da

INSIRIUS.

75

Etapa2: Formatar o objeto-de-pesquisa de acordo com as regras do SIRIUS

Essa etapa utilizará os slots classe_p e objeto_de_pesquisa_p do frame de pesquisa. O

predicado utilizado irá retornar o objeto_de_pesquisa_p devidamente formatado para o

comando SIRIUS.

A representação deste conhecimento é dada a seguir (Figuras 4.29 e 4.30).

OBJETO-DE-PESQUISA

TITULO

AUTOR

SERIE ASSUNTO

$SERIE$ "TITULO" [ASSUNTO]

<AUTOR>instância instância instância

instância

formato formato formato

formato

Fig. 4.29 - Representação de formatos SIRIUS

transforma(&classe_p,&objeto_de_pesquisa_p,&formato) :-

formato_pesquisa(&classe_p,&simb_ini,&simb_fim),

formato = simb_ini + objeto_de_pesquisa_p + simb_fim.

formato_pesquisa(“AUTOR”, “<”, “>”).

formato_pesquisa(“ASSUNTO”, “[“, “]”).

formato_pesquisa(“SERIE”, “$”, “$”).

formato_pesquisa(“TITULO”, “ “ “, “ ” “).

Fig. 4.30 – Predicado formato_pesquisa: representação da formatação do objeto de

pesquisa de acordo com a sintaxe do SIRIUS.

76

Etapa 3: Montar Comando

Encontrar o comando SIRIUS corresponde à primitiva INSIRIUS, através da busca no

dicionário de associações (Figuras 4.31 e 4.32).

associacao(&primitivo,&comando)

associacao(“MOSTRAR”, “MOSTRE”).

associacao(“VERIFICAR”, “VERIFIQUE”).

associacao(“IMPRIMIR”, “IMPRIMA”).

Fig. 4.31 – Predicado associacao: associa verbos em consultas na INSIRIUS com

comandos SIRIUS.

comando_sirius=comando+espaço-em_branco+formato

Se comando = “VERIFIQUE” ou “IMPRIMA”

Então defina def = “DEFINA “ + &variável “=“.

Senão defina def = “”.

Fig. 4.32 – Regra para a montagem do comando SIRIUS.

4.2.11 - COMPONENTE 11: FINALIZAR

Concluído o processo de consulta, a interface deverá retornar ao ambiente Prolog para

que o usuário possa elaborar uma nova solicitação.

77

78

CAPÍTULO 5

CONCLUSÕES

5.1 - CONSIDERAÇÕES INICIAIS

Devido ao Prolog ter sido desenvolvido com o principal objetivo de servir de apoio a

sistemas de processamento de linguagem natural, orientado para processamento

simbólico, com pouca ou nenhuma ênfase na manipulação de números, Cordeiro (1985),

optou-se pelo seu uso na fase de implementação do protótipo.

A interface INSIRIUS (Interface Inteligente em Linguagem Natural para o Sistema

SIRIUS), foi construída com o objetivo de validar os estudos realizados sobre o

processamento da LN na IHC. Ao utilizar um sistema de pesquisa e recuperação

bibliográfica, o usuário, muitas vezes fica perdido sem nem mesmo saber por onde

começar. O sistema SIRIUS, especificamente, devido a sua sintaxe complexa, dificulta

a realização das consultas. Uma interface em linguagem natural resolve o problema,

uma vez que permite ao usuário uma flexibilidade na formulação das solicitações de

pesquisa, dentro de seu domínio restrito.

5.2 - O PROTÓTIPO INSIRIUS

O protótipo visa capturar algumas construções simples em linguagem natural realizadas

dentro do domínio do problema e interpretá-las, gerando como resposta um comando de

pesquisa aceito pelo sistema SIRIUS. A comunicação efetiva com o SIRIUS não foi

estabelecida, podendo ser realmente efetivada através do desenvolvimento de uma outra

interface capaz de realizar a transferência de dados entre os dois sistemas. Assim, o

campo para o desenvolvimento de um futuro trabalho na área e aprimoramento do

protótipo já implementado está aberto.

A interface limita-se às pesquisas bibliográficas realizadas pelos usuários da biblioteca

do INPE, tratando apenas os argumentos-de-busca não abordando expressões-de-busca

nem Informações de Circulação (Capítulo 2). O tratamento de expressões-de-busca

79

aumentaria muito a complexidade do sistema, pois seria necessária a análise de

conjunções e preposições dentro do contexto da solicitação para que ela pudesse ser

interpretada de forma correta. Ademais, o tratamento de solicitações formuladas apenas

utilizando argumentos-de-busca, por si só, já é suficiente para validar os estudos

propostos neste trabalho.

As consultas deverão ser escritas obedecendo a estrutura sintática definida no Capítulo

3, seguindo-se as regras de coesão e coerência da língua portuguesa do Brasil. A

interface reconhece todas as consultas formuladas de acordo com a sintaxe modelada

(Capítulo3), bem como tem capacidade de tentar inferir o significado de uma solicitação

desconhecida através do estabelecimento de um diálogo com o usuário.

Os diálogos são estabelecidos na forma de menus, devido a eles direcionarem a resposta

do usuário de acordo com as necessidades de informação da interface. Deste modo, uma

solicitação não precisa necessariamente ser formulada com um dos verbos primitivos.

Caso o usuário utilize um verbo não conhecido pela interface, esta estabelecerá diálogo

com ele, a fim de tentar compreender sua solicitação. O mesmo ocorrerá se a solicitação

não possuir palavra-chave. A interface procurará na solicitação por outras palavras que

indiquem o tipo de pesquisa que o usuário deseja realizar e estabelecerá diálogo com

ele.

Sempre que a interface não conseguir capturar a intenção do usuário, seja pelo uso de

um verbo não conhecido por ela, ou pela omissão do verbo, ou pela omissão da palavra-

chave, ou pelo uso de um indicador-inferencial não conhecido, será estabelecido um

diálogo apropriado, a fim de tentar capturar a intenção do usuário.

O uso de preposições na solicitação também não foi tratado, apenas alguns casos foram

previstos. Portanto, a interface nem sempre reconhecerá uma solicitação que possua

uma preposição indicativa do tipo de pesquisa. Por exemplo, em uma conversa informal

entre um usuário da biblioteca e a bibliotecária, se o primeiro diz ao segundo: “quero

pesquisar os livros sobre filosofia”, a bibliotecária consegue compreender a necessidade

do usuário de ter livros sobre o assunto filosofia, pois ela possui capacidade de dedução

80

devido às características cognitivas desenvolvidas nos seres humanos. Mas em se

tratando de IHM, isto não é tão simples assim. Uma série de inferências devem ser

feitas para que uma máquina chegue a esta conclusão, devido a intenção do usuário

estar oculta.

As pesquisas “por autor” devem ser feitas através do fornecimento do último

sobrenome. Se o usuário desejar filtrar um pouco mais a pesquisa, informando o nome

completo do autor, deverá escrever o último sobrenome seguido das iniciais do pré-

nome e demais sobrenomes. Tal procedimento se deve ao fato da estruturação interna

do sistema SIRIUS e da maioria dos sistemas de consulta e recuperação bibliográfica

que possuem suas bases de dados indexadas pela último sobrenome dos autores.

A referência às pessoas por seus sobrenomes é comum no trato formal. O uso do

primeiro nome denota uma informalidade e naturalidade no tratamento humano, e seria

interessante que fosse empregado na realização das consultas em uma interface em

linguagem natural. É importante ressaltar que nada impedirá o usuário de realizar uma

consulta “por autor” referenciando-o por seu pré-nome seguido dos sobrenomes. A

interface aceitará esta solicitação e formulará o comando de pesquisa.

Os diálogos estão representados através de frames, e são mostrados aos usuários sempre

que necessário, de acordo com as necessidades da interface, ou sempre que for

entendido que o usuário está solicitando algum tipo de ajuda. As telas de ajuda são

usadas para explicitar ao usuário para que serve a interface e qual a sintaxe correta a ser

usada em uma consulta. Estas telas são apresentadas toda vez que o usuário dá entrada a

uma solicitação vazia, solicita ajuda, ou quando a interface não consegue compreender a

solicitação do usuário após ter interagido com ele. Um exemplo desse tipo de interação

é mostrado a seguir (Figura 5.1).

81

Fig. 5.1 – Tela de interação com o usuário para solicitação de ajuda ou solicitação

vazia.

Todo o conhecimento da interface está armazenado em dicionários abertos, que poderão

ser ampliados a partir das interações com o usuário, e em dicionários fechados. Deste

modo, futuras consultas aos usuários diminuirão, devido à capacidade de expansão dos

dicionários abertos. É importante ressaltar que, neste caso, considerando-se as

condições de sinceridade, razoabilidade e adequabilidade, descritas no Capítulo 3, não

será realizado nenhum tipo de confirmação com o usuário quando a interface já

conhecer o que lhe foi solicitado, ou seja, a palavra ou expressão procurada já fizer

parte do vocabulário do sistema. Este procedimento caracteriza um aprendizado

gradativo da máquina.

5.2.1 - ARQUITETURA DA INSIRIUS

O protótipo está dividido em componentes, como descrito no Capítulo 4, cada qual com

uma responsabilidade específica na análise da solicitação.

INTERFACE INSIRIUS

Bem vindo à interface INSIRIUS

As consultas deverão ser iniciadas por um verbo, preferencialmente no infinitivo ou imperativo, seguido de uma palavra-chave e do objeto-de-pesquisa.

Exemplos: mostrar autor alencarverificar assunto inteligencia artificial

VERBOS PRIMITIVOS PALAVRAS-CHAVE

mostrarverificarimprimir

autorassuntotituloserie

Responda: 1- Quero fazer uma pesquisa2 - Não quero fazer uma pesquisa

========> _

82

O processamento de uma solicitação não vazia consiste na análise de sua estrutura e

reconhecimento dos termos utilizados.

O componente “Separar Palavra a Palavra” é responsável pela extração de cada palavra

da solicitação. Após sua execução, são executados os componentes responsáveis pela

análise sintática e semântica da solicitação.

O componente “Preencher Frame de Pesquisa” é responsável pelo preenchimento do

frame com os valores inferidos através da análise semântica da solicitação do usuário.

Este componente também é responsável pela chamada ao componente “Interagir com

Usuário para Preencher Frame” o qual após uma interação ativará o componente

“Montar Comando SIRIUS” ou então, caso não tenha conseguido interpretar a

solicitação do usuário, apresentará uma nova tela de interação, sugerindo que o usuário

reformule a solicitação ou procure a bibliotecária de referência.

5.2.2 – CONFIGURAÇÃO FÍSICA

O protótipo da interface foi desenvolvido no ambiente Prolog, como mencionado

anteriormente, e necessita deste ambiente para ser executado.

O desenvolvimento do sistema bem como os testes de validação e verificação de

desempenho, foram realizados em um microcomputador, com microprocessador

Pentium de velocidade igual a 100 Mhz e 32 MB de memória RAM.

As solicitações referentes aos testes e as interações com o usuário foram efetuadas

através de um teclado de 101 teclas, padrão português. O protótipo não prevê o uso de

mouse.

O meio utilizado para a visualização das informações tanto solicitadas à interface

quanto emitidas por ela foi um monitor de vídeo colorido de 15 polegadas.

83

5.2.3 - DESEMPENHO

A interface apresenta uma resposta em um tempo curto, que varia de acordo com a

necessidade ou não de estabelecer interações com o usuário. Uma solicitação formulada

com a sintaxe correta, modelada no Capítulo 3, apresenta um tempo de resposta de

aproximadamente três segundos. Quando há a necessidade de interagir com o usuário,

seja apresentando as telas de ajuda, seja para inferir algum conhecimento não

compreendido, este tempo é acrescido de forma variável, dependendo do número de

interações realizadas.

5.3 – PERSPECTIVAS

Conforme descrito nos itens anteriores deste Capítulo, o protótipo não trata todos os

aspectos abordados pelo sistema SIRIUS, nem todas as estruturas sintáticas

pertencentes à língua portuguesa do Brasil, comumente usadas por seus falantes.

A compreensão de expressões-de-busca constantes em uma consulta INSIRIUS, é

importante tanto por aprimorar a interface em relação ao sistema SIRIUS, como por

possibilitar um estudo mais detalhado de preposições e conjunções que poderão fazer

parte dessas expressões. O tratamento de preposições, apesar de deixar o sistema mais

complexo, é importante pois aumenta a característica inteligente do sistema. Quanto

mais conhecimento a máquina possuir e quanto maior for sua capacidade de inferir

sobre o domínio do problema e fornecer resultados satisfatórios, certamente, melhor

será o seu desempenho.

O estudo de formas dialogais, tal como a detecção de pressuposições pode ser realizado

a médio e longo prazo, permitindo à interface capturar a intenção do usuário, quando

este não for direto na comunicação, ou seja, informar algo nas “entrelinhas”.

Pode-se então verificar que há necessidade de aumentar o volume de conhecimento

lingüístico da língua portuguesa do Brasil na interface, tanto pela expansão de seu

vocabulário (inclusão de novas informações), como pelo seu refinamento.

84

A ligação da interface INSIRIUS à INTERNET poderia vir a ser estudada. A

possibilidade de consultar o acervo bibliográfico, tanto da biblioteca do INPE quanto de

qualquer outra biblioteca, via rede WWW, traz facilidades aos usuários, poupando-lhes

tempo e esforço, no sentido de que estes não precisarão se deslocar até a biblioteca

apenas para realizar uma consulta.

Outro aspecto interessante que poderia ser considerado é a existência de um dicionário

inteligente, com a finalidade de auxiliar a interface nas análises sintáticas e semânticas

das solicitações. Desta forma, o problema da ambigüidade das linguagens naturais

poderia ser suavizado.

Além disso, outras características inteligentes poderiam ser desenvolvidas na interface,

como por exemplo a capacidade de se adaptar a diferentes perfis de usuário. Isso

permitiria uma maior otimização do sistema uma vez que a interface seria capaz de

estabelecer diálogos distintos com o usuário, de acordo com o grau de conhecimento

cada um.

A implementação de novos módulos, que abordem os aspectos descritos acima, seria

útil não apenas por tornar a interface mais eficiente, mas principalmente por permitir a

continuidade dos estudos.

A metodologia de desenvolvimento utilizada poderá ser empregada na concepção de

novas interfaces, realizando-se as modificações necessárias.

Desta forma pode-se perceber que o campo para a pesquisa e o desenvolvimento de

futuros trabalhos está aberto, pois sempre existirá a necessidade de aperfeiçoamento e

implementação dos estudos já desenvolvidos.

5.4 – CONSIDERAÇÕES FINAIS

Construir uma interface robusta e inteligente em LN é uma tarefa difícil e complexa.

Um sistema em LN incorpora diferentes tipos de conhecimento - conhecimento

sintático, conhecimento semântico-pragmático e conhecimento do domínio da

85

aplicação. Um modo de facilitar o desenvolvimento desta tarefa é o uso da

modularidade. A modularidade consiste em dividir o conhecimento do sistema em

componentes diferentes (módulos). A divisão do problema permite que seus módulos

sejam atacados independentemente, tornando a tarefa mais clara e simples.

Outro modo de simplificar esta tarefa é o uso de modelos formais. Muitos sistemas são

difíceis de projetar, modificar e compreender. O desenvolvimento desses sistemas

poderia ser incrementado com maior facilidade se existisse um modelo simples e

abstrato capaz de ser usado na implementação de novos modelos, contribuindo para o

desenvolvimento da área como um todo.

O trabalho apresenta restrições quanto ao reconhecimento de solicitações dos usuários,

devido às dificuldades de tratamento da linguagem natural .As ferramentas utilizadas

na modelagem do conhecimento conseguem capturar as principais características do

sistema, visto que, o domínio da aplicação é restrito.

A interface proposta necessita de um módulo adicional ( protocolo de comunicação ),

que será responsável pelo intercâmbio de informações entre o SIRIUS e a INSIRIUS.

Este componente não foi modelado por não fazer parte do escopo deste trabalho.

O ideal é que a interface possa interagir com o usuário através da linguagem falada,

tendo como apoio recursos gráficos, tornando sua utilização mais intuitiva. Entretanto, a

modelagem aqui apresentada, não é suficiente para capturar este tipo de conhecimento.

O sistema de apresentação de HELP pode ser melhorado, fazendo distinção entre o tipo

de pergunta do usuário e o tipo de resposta do sistema, a qual poderia ser mais simples

ou mais detalhada. O sistema poderia dar respostas mais explicativas (detalhadas), ou

mais gerais, dependendo do tipo de usuário. Isso pode ser obtido através do refinamento

dos frames de diálogo e do componente de apresentação de HELP.

Apesar das limitações que apresenta, a INSIRIUS é um melhoramento em relação à

interface do sistema SIRIUS, por apresentar características de comunicação mais

próximas do usuário.

86

87

REFERÊNCIAS BIBLIOGRÁFICAS

Carberry, S. Modeling the user’s plans and goals. Computational Linguistics, v.14,

n.3, p. 23-37, 1988.

Cordeiro, J. L. Anatomia do prolog. Rio de Janeiro. Dissertação (Mestrado em

Ciências em Engenharia de Sistemas) - IME, 1985.

Grice, H. P. Logic and conversation. New York: Academic Press, 1975.

Grishman, R. Computacional linguistcs. New York: Cambridge University Press,

1986.

Jakobson, R. Lingüística e comunicação. São Paulo: Cultrix, 1969

Katz, B. START - Natural Language System. [online]. Laboratório de Inteligência

Artificial. MIT. <http://www.ai.mit.edu/>, 03 Novembro 1997.

Koch, I. G. V. Argumentação e linguagem. São Paulo: Cortez, 1984.

Minsky, M. A Framework for representing knowledge. In: Winston, P., ed. The

Psychology of Computer Vision. New York: McGraw-Hill, 1975.

Oliveira, C. A. IDEAL - Uma interface dialógica em linguagem natural para

sistemas especialistas. São José dos Campos. (INPE-5151-TLD/424). Tese

(Doutorado em Computação Aplicada) – Instituto Nacional de Pesquisas

Espaciais, 1990.

Passos, E. L. Inteligência artificial. São Paulo: McGraw-Hill, 1988.

Rich, E.; Knight, K. Inteligência artificial. São Paulo: Makron Books, 1993.

Savadovsky, P. Introdução ao projeto de interfaces em linguagem natural. São

Paulo: SID Informática, 1988.

88

Schank, R. C. Conceptual information processing. Amsterdam, North-Holland:

Holland Publishing Company, 1975.

Sharp, B.; EL Gihani, A. Natural language processing and understanding.

INFORMEX. [online]. Grupo de Inteligência Artificial. Universidade de

StaffordShire, U.K. <http://www.staffs.ac.uk/research/groups/ai/ai_projects.html>.

04 Novembro 1997.

89

APÊNDICE A

BIBLIOGRAFIA COMPLEMENTAR

Arariboia, G. Inteligência artificial: um curso prático. Rio de Janeiro: Livros

Técnicos e Científicos Editora, 1989.

Casanova, M. A.; Giorno, F. A. C.; Furtado, A. L. Programação em lógica e a

linguagem prolog. Rio de Janeiro: Editora Edgard Blücher, 1987.

Instituto Nacional de Pesquisas Espaciais (INPE). SIRIUS: sistema de pesquisa e

recuperação bibliográfica. Manual do Usuário. São José dos Campos.

Lopes, E. Fundamentos da lingüística contemporânea. São Paulo: Cultrix, 1995.

Oliveira, C. A. Lingüística textual e representação do conhecimento: um enfoque.

São José dos Campos: INPE, 1990 (INPE-5064-PRE/1590).

Oliveira, C .A .; Silva, J. D. S. Interface para a tradução de frases em linguagem

natural para uma linguagem de representação geométrica. São José dos

Campos: INPE, 1993 (INPE-5467-PRE/1775).

Oliveira, C. A. O tratamento automático de linguagem natural em processos de

aquisição de conhecimento. São José dos Campos: INPE, 1988 (INPE-4737-

PRE/1412).

Oliveira, C. A. Uma proposta de classificação verbal como unidade geradora de

texto. São José dos Campos: INPE, 1992 (INPE-3712-PRE-848).

Oliveira, C. A. Uma proposta de (re) classificação verbal como unidade geradora

de texto. São José dos Campos: INPE, 1992 (INPE-3712-PRE-856).

Oliveira, C. A. Um tradutor automatizado de frases de língua natural escrita para o

formalismo FASE. São José dos Campos: INPE, 1992 (INPE-5626-PRP-191).

90

Ritchie, G. Information, extraction and manipulation using natural language.

[online]. Departamento de Inteligência Artificial. Grupo de Linguagem

Natural. Universidade de Edinburg, U.K. <http://www.daí.ed.ac.uk/groups/npl/NPL

home page.html>. 03 Novembro 1997.

Rodrigues, F. B. V.; Silva, L. M. INSIRIUS: uma interface em linguagem natural

para o sistema SIRIUS. São José dos Campos: INPE, 1996.

Ruwet, N. Introdução à gramática gerativa. São Paulo: Perspectiva, 1975.

Sharp, B.; Liu, K.; Filipe, J. Knowledge base information systems. [online]. Grupo de

Inteligência Artificial. Universidade de StaffordShire,U.K.,

<http://www.staffs.ac.uk/research/groups/ai/ai_projects.html>. 04 Novembro 1997.

Silva, J. D. Ambiente inteligente para conversão de aplicações em linguagem

natural para uma linguagem de transformações. Dissertação (Mestrado -

Centro de Ciência e Tecnologia) - Universidade Federal da Paraíba. 1992.

Souza, G. Interface Configurável. Dissertação (Mestrado em Computação Aplicada) -

Instituto Nacional de Pesquisas Espaciais, São José dos Campos, Fevereiro 1997.

Torrance, M. C. Advances in human-computer interaction: the intelligent room.

[online]. Laboratório de Inteligência Artificial. MIT. <http://www.ai.mit.edu/>.

03 Novembro 1997.