Aquisição de Vocabulário num Sistema de Interrogações em Língua Natural Porfírio P. Filipe 1 , Nuno J. Mamede 2 1 Inst. Sup. de Eng. de Lisboa, R. Conselheiro Emídio Navarro, 1949-014 Lisboa, Portugal [email protected] 2 Instituto Superior Técnico, Av. Rovisco Pais, 1049-001 Lisboa, Portugal [email protected] Resumo. No sistema EDITE, um sistema de interrogações em língua natural para bases de dados, as perguntas do utilizador são traduzidas para uma linguagem lógica intermédia que é posteriormente traduzida para Structured Query Language (SQL instrução SELECT), sendo então processadas por um sistema de gestão de bases de dados que devolve as respostas. Para apoiar o processo de tradução usa-se um módulo, denominado Modelo Conceptual, que contém informação sobre o domínio representado na base de dados. Este artigo descreve uma linguagem declarativa que pode ser usada para definir o conteúdo do modelo conceptual. O trabalho descrito foi integrado num sistema usado para formular perguntas em língua natural através da Internet. 1 Introdução A evolução tecnológica provoca um contínuo desenvolvimento dos sistemas que usam língua natural, especialmente os que exploram arquitecturas que transformam sistemas de interrogações que acedem a bases de dados relacionais em agentes relacionais, integrando língua natural e gráficos explorando as vantagens de ambas as modalidades [1][5]. A comunicação com o computador foi sempre uma barreira difícil de ultrapassar. Os utilizadores, para conseguirem tirar partido dos meios disponibilizados pelo computador, demoram a adaptar-se e, em muitos casos, tem de existir formação adequada. Esta limitação exige da parte dos projectistas de sistemas informáticos um esforço para virtualizar determinados comportamentos que facilitem a comunicação com os utilizadores. Cada vez mais, no dia a dia, o utilizador comum tem necessidade de consultar informações que se encontram numa base de dados (BD). Os sistemas de gestão de base de dados (SGBD), mais comuns, são acedidos empregando a linguagem Structured Query Language (SQL), mais especificamente a instrução SELECT. Quando o utilizador pretende interrogar directamente um SGBD, usando SQL, tem necessidade de conhecer, entre outras coisas menos importantes, a estrutura da base de dados e saber codificar as interrogações no formato de instruções SELECT. Como alternativa podem ser desenvolvidas aplicações informáticas para minimizar estes inconvenientes. Para que o utilizador não tenha de se preocupar com pormenores de realização, é preferível que as perguntas sejam formuladas em língua natural (LN). É nesta linha de ideias que surge o sistema EDITE [4][9][10], um sistema de interrogações em língua natural, que permite aos utilizadores indicarem as perguntas em LN (Português, Francês, Inglês ou Espanhol) como alternativa à utilização de linguagens formais para formular interrogações, diálogos ou ecrãs gráficos. O EDITE disponibiliza uma forma directa e eficiente de consultar uma base de dados dispensando a aprendizagem de uma linguagem artificial. No entanto, o utilizador não é dispensado de conhecer a cobertura linguística que é possível utilizar na formulação de perguntas e que é depende do domínio da aplicação. Fig. 1. Modelo Relacional do Modelo Conceptual O princípio de funcionamento do sistema de interrogações é a tradução das perguntas em língua natural para instruções SELECT. A tradução é feita por etapas: análise morfológica; análise sintáctica; análise semântica; e tradução para SQL [6][7], sendo respeitados os constrangimentos conceptuais associados ao domínio da aplicação. A análise semântica utiliza um modelo conceptual do domínio para seleccionar as interpretação correctas de cada pergunta. A estrutura de dados do modelo conceptual é expressa por um modelo de dados relacional e o seu conteúdo define o vocabulário disponível. O modelo conceptual também contém toda a informação de apoio á tradução que é dependente da base de dados do domínio. O diagrama entidade/associação do modelo de dados relacional que suporta o modelo conceptual e que também disponibiliza informação de apoio a tradução para Error! Reference source not found. SQL é apresentado na Fig 1. As tabelas e colunas indicadas a sombreado contêm dados dependentes da base de dados do domínio; as outras definem informação do modelo conceptual relativa ao domínio. Quando se pretende que o sistema de interrogações compreenda uma palavra da língua natural é necessário acrescentar os símbolos que a representam no modelo conceptual. A aquisição de vocabulário é o procedimento, descrito neste artigo, que determina o conjunto de símbolos a incluir no modelo conceptual, e actualiza a base de dados correspondente (descrita na Fig1). 2 Conceitos Para clarificar alguns aspectos relacionados com a aquisição de vocabulário apresentam-se os seguintes conceitos: Conhecimento Global: abrange todo o conhecimento. Conhecimento da Aplicação: é uma porção do conhecimento global que contempla um assunto específico vulgarmente designado por domínio da aplicação. Conhecimento Explícito: é o conhecimento obtido por consulta directa, sem inferência, a partir da base de dados do domínio. Conhecimento Implícito: é o conhecimento obtido a partir da base de dados do domínio através de um mecanismo de inferência. Conhecimento Representado: é todo o conhecimento implícito e explícito. Função de Equivalência: define o algoritmo que permite determinar os dados associados a um símbolo a partir dos dados associados a outros símbolos (argumentos da função de equivalência). Símbolo Equivalente: é definido por uma função de equivalência e está associado ao conhecimento implícito da base de dados do domínio. Símbolo Sinónimo: é um símbolo equivalente em que a função de equivalência é a função identidade. Símbolo Base : é definido directamente a partir da estrutura relacional da base de dados do domínio e está associado ao conhecimento explícito. Símbolo Simples: tem associado uma única palavra na língua natural. Símbolo Composto: tem associado mais do que uma palavra na língua natural. Vocabulário Base: conjunto das palavras que referem conceitos representados por símbolos base no modelo conceptual. 3 Aquisição de Vocabulário O processo de aquisição de vocabulário baseia-se na associação de palavras da língua natural a símbolos representados no modelo conceptual. Não existe nenhuma limitação em quantidade de entidades, propriedades ou associações, que podem ser representadas (extensibilidade). Uma primeira abordagem consiste em determinar um conjunto de símbolos, correspondentes às palavras que são empregues num grupo de perguntas que permitam obter todo o conhecimento explícito da base de dados do domínio. No entanto a aquisição isolada de palavras é difícil de controlar, dificultando a percepção do conhecimento incluído no modelo conceptual depois de se adicionar mais um símbolo. Em alternativa aconselha-se que seja considerado um texto em língua natural sem grandes pormenores técnicos, visto na perspectiva do utilizador pouco especializado. O texto é analisado frase a frase, traduzindo-as para predicados de aquisição de vocabulário, que exprimem os factos enunciados nas frases. Devido aos símbolos usados na representação do modelo conceptual referirem os mesmos conceitos expressos através das palavras da língua natural, a aquisição de vocabulário confunde-se com a caracterização dos símbolos usados no modelo conceptual. Este processo de aquisição é independente da língua porque o que é representado simbolicamente são os conceitos expressos pelas palavras [2][3][8]. 3.1 Identificação de Símbolos A representação de conhecimento está limitada pelo detalhe considerado na representação adoptada e pela forma como o conhecimento é estruturado. A representação no modelo conceptual deve ter o mesmo detalhe da base de dados do domínio. Assim, o modelo conceptual tem de representar entidades, propriedades e associações às quais correspondem tabelas (ou vistas), colunas e associações (chaves estrangeiras) da base de dados do domínio, ou seja, o modelo conceptual contém informação sobre a estrutura da base de dados do domínio (meta-informação definida por um modelo relacional). A aquisição de vocabulário a partir de um texto em língua natural fornece um enquadramento que ajuda a determinar os conceitos importantes. É sempre útil observar diagramas, figuras ou outras formas de descrever conhecimento que possam ajudar na definição das perguntas permitidas. As metodologias de análise orientadas por objectos devem servir de guia para a aquisição de vocabulário [12]. 3.2 Predicados para Aquisição de Vocabulário Os predicados de aquisição de vocabulário permitem exprimir factos do domínio da aplicação que se pretendem representados no modelo conceptual, podendo um mesmo conceito ser expresso por diferentes predicados dependendo da forma como é interpretado. Este predicados: são usados para definir conceitos associados ao domínio (conceptual) da aplicação e para definir informação de apoio à tradução dependente da base de dados do domínio. Para optimizar o processo de aquisição de vocabulário é importante ter em conta a herança através da hierarquia de tipos, caso contrário, a quantidade de predicados de aquisição aumenta desnecessariamente dificultando a extensibilidade e a reutilização do modelo conceptual. Um domínio agrupa um conjunto de símbolos que contempla um tema específico. A indicação do domínio a que um símbolo ou associação (constrangimento conceptual) pertencem, durante a aquisição de vocabulário, facilita a reutilização do modelo conceptual noutros domínios (portabilidade). 3.2.1 Constantes @Global, @Virtual, @Transitive e @Ser São definidos quatro símbolos constantes com significado pré-definido. O símbolo @Global representa o domínio que agrupa os símbolos e os constrangimentos conceptuais que são válidos em qualquer domínio. O símbolo @Virtual representa o domínio que agrupa os símbolos e os constrangimentos conceptuais que só existem representados no modelo conceptual, ou seja, que não têm dados associados na base de dados do domínio. Os conceitos representados no domínio @Virtual não estão contemplados na base de dados do domínio por serem muito gerais ou muito específicos. O símbolo @Transitive indica uma associação. Esta associação vai permitir a pesquisa, em tempo de execução, de associações compostas com base na transitividade. O símbolo @Ser indica uma associação. Esta associação é uma associação que para além de ter um tratamento comum também é usada para definir uma relação de herança na hierarquia de tipos. 3.2.2 Predicado Domain(Nome_Domínio) Este predicado estabelece o domínio corrente que passará a ser usado como valor por omissão durante o processo de aquisição de vocabulário. O predicado Domain usa a tabela DOMAIN do modelo relacional do modelo conceptual para manter uma lista actualizada dos domínios existentes. 3.2.3 Predicado Symbol(Designação, Alias [,Tipo] [,Condição]) O predicado Symbol efectua a declaração de um símbolo (Alias), que corresponde a uma primitiva da linguagem lógica [9][11] usada para expressar a semântica, no domínio corrente. O argumento Designação deve ser entendido como um comentário do símbolo usado para interpretar o seu significado. O argumento opcional Tipo está relacionado com informação de apoio à tradução e indica qual o tipo ou a função de visualização associada ao símbolo declarado. Quando não é indicado nenhum tipo assume-se que o tipo é VARCHAR(255). O argumento opcional Condição também está relacionado com informação de apoio à tradução e indica uma condição SQL a juntar na cláusula WHERE da tradução quando o símbolo declarado é referido nas condições a que a resposta deve obedecer. O predicado Symbol preenche as colunas DESIGNATION, ALIAS, _TYPE_ e _CONDITION_ da tabela SYMBOL do modelo de dados relacional do modelo conceptual. 3.2.4 Predicado eSymbol(Equivalente, Expressão [,Domínio]) Este predicado expressa uma equivalência entre símbolos, definindo como se obtém o valor atribuído a um símbolo equivalente a partir de valores atribuídos a outros símbolo (base ou equivalentes). O primeiro argumento refere o símbolo que está a ser definido. O segundo argumento, designado genericamente por Expressão, pode ser um Alias de um símbolo, o que transforma a equivalência na definição de um símbolo sinónimo (caso particular de equivalência). O segundo argumento também pode ser uma função de equivalência com uma lista de argumentos ou uma expressão SQL iniciada pelos sinais ‘+’ ou ‘-‘. O argumento Domínio indica qual o domínio em que a equivalência é válida. Se não estiver preenchido usa-se o domínio corrente. O predicado eSymbol preenche pela ordem dos seus argumentos, respectivamente, as colunas E_SYMBOL e B_SYMBOL da tabela EQ_SYMBOL do modelo de dados relacional. Os vários argumentos da função de equivalência vão dar origem, caso existam, a vários registos na tabela EQ_SYMBOL, um por cada argumento que é especificado na coluna B_SYMBOL. O domínio é guardado na coluna SYMBOL.COD_DOMAIN 3.2.5 Predicado Assoc(Nome, Ent, Ent_Prop [,Domínio] [,Condição]) O predicado Assoc define a associação (no sentido directo), cujo o nome é referido no primeiro argumento ( Nome), entre o segundo argumento ( Ent) e o terceiro argumento (Ent_Prop). Estas associações são do tipo um para muitos sendo o sentido da associação determinado com base na sua cardinalidade, o sentido directo é lido no sentido muitos para um. O argumento opcional Domínio tem o mesmo significado que no predicado eSymbol e o argumento Condição tem o mesmo significado que no predicado Symbol. O predicado Assoc preenche, pela ordem dos seus argumentos, as colunas ASSOC, PARAM1, PARAM2, COD_DOMAIN e _CONDITION_ da tabela ASSOCIATION do modelo de dados relacional. A coluna ASSOCIATION._TYPE_ é sempre preenchida com o carácter ‘D’ que corresponde à representação de associações expressas no sentido directo. Quando existe mais do que uma associação entre dois símbolos, elas são consideradas equivalentes entre si. Quando existem várias associações equivalentes apenas a que tem o identificador de associação mais baixo (coluna ASSOCIATION.COD_ASSOC) está representada na base de dados do domínio, sendo designada por associação base. No caso de se pretenderem definir associações que não são equivalentes e que envolvem as mesmas entidades, deve suspeitar-se que as entidades envolvidas estejam a desempenhar múltiplos papéis; nessa situação deve ser definido um símbolo equivalente para cada papel. Quando se pretende indicar que uma associação goza da propriedade transitiva define-se uma associação com os mesmos argumentos indicando no argumento Nome, o símbolo pré-definido @Transitive. Quando se pretende indicar que uma associação também pertence à hierarquia de tipos define-se uma associação em que o argumento Nome é o símbolo pré-definido @Ser. 3.2.6 Predicado iAssoc(Nome, Ent_Prop, Ent [,Domínio] [,Condição]) Este predicado define a associação no sentido inverso entre o segundo argumento e o terceiro argumento cujo nome é referido no primeiro argumento. Os argumentos têm o mesmo significado que no predicado Assoc. A coluna ASSOCIATION._TYPE_ é sempre preenchida com o carácter ‘I’ que corresponde à representação de associações expressas no sentido inverso, sendo o preenchimento das restantes colunas da tabela ASSOCIATION idêntico ao do predicado Assoc. 3.2.7 Predicado cAssoc(Associação, Instâncias_de_Predicados_Assoc) O predicado cAssoc define uma associação, cujo nome é indicado no primeiro argumento, que não está directamente representada na base de dados do domínio, mas que se obtêm a partir da composição de duas ou mais associações. O segundo argumento é uma lista de instâncias de predicados (associações directas ou inversas) que são membros da composição e é explicitado usando o formato: {Assoc1|iAssoc1,Assoc2|iAssoc2[,<Assoc3|iAssoc3>,…]}. A composição de uma associação que só tem uma componente é uma associação equivalente que pode ser directamente expressa pelo predicado Assoc. Cada predicado Assoc ou iAssoc (convertido no respectivo Assoc) da lista de instâncias é referido na coluna M_COD_ASSOC originando um registo na tabela C_ASSOCIATION do modelo de dados relacional. 3.2.8 Predicado Occurrence(Entidade, Propriedade, Valor [,Código]) O predicado Occurrence define a ocorrência de valores que não figuram na base de dados do domínio mas são importantes para a tradução, permitindo associar determinados valores a propriedades. O primeiro argumento refere uma entidade, o segundo argumento uma propriedade, o terceiro um valor (cadeia de caracteres) e o quarto, que é opcional, refere o código usado para indicar o valor expresso no terceiro argumento. Quando o quarto argumento não é especificado assume-se a codificação através de um número inteiro sequencial. Um caso particular de valores de propriedades que também são representáveis pelo predicado Occurrence são os nomes próprios que referem, implicitamente, entidades. Quando na pergunta do utilizador surge um nome próprio, é necessário identificar na base de dados do domínio qual a tabela e a coluna a que o nome se refere. O predicado Occurrence preenche pela ordem dos seus argumentos as colunas OC_ENTITY, OC_ATTRIBUTE, CODE e VALUE da tabela OCCURRENCE do modelo de dados relacional. 3.2.9 Predicado Default(Ent_Prop, Ent_Prop) Este predicado permite exprimir a propriedade subentendida quando se refere uma entidade ou a entidade subentendida quando se refere uma propriedade. Qualquer dos argumentos pode referir uma entidade ou uma propriedade. O predicado Default preenche as colunas SYMBOL1 e SYMBOL2 da tabela DEFAULT do modelo de dados relacional. Por exemplo, a propriedade nome pode, num domínio, representar por omissão uma entidade, existindo no entanto várias entidades com a propriedade nome. Noutro domínio a propriedade nome pode representar outra entidade distinta. Uma situação análoga acontece quando se refere uma entidade sem referir uma propriedade em particular. Por exemplo, uma referência à entidade pessoa, pressupõe que se pretende referir a propriedade mais significativa de pessoa que, por hipótese, pode ser a propriedade nome. 3.2.10 Predicado PK(Entidade, Propriedade) O predicado PK expressa conhecimento sobre as colunas das tabelas da base de dados do domínio que constituem as chaves primárias. O primeiro argumento refere uma entidade que é representada por uma tabela à qual pertence a chave primária e o segundo argumento refere uma propriedade que é representada por uma coluna que pertence à chave primária. Cada chave primária é representada por um ou mais predicados PK. Este predicado preenche pela ordem dos seus argumentos as colunas ENTITY e PK_ATTRIBUTE da tabela KEY_PK do modelo de dados relacional. Cada predicado PK origina um registo na tabela KEY_PK com o número de sequência indicado na coluna PK_NSEQ. 3.2.11 Predicado FK(Entidade, Entidade, Propriedade) O predicado FK expressa conhecimento sobre as colunas das tabelas da base de dados do domínio que constituem as chaves estrangeiras. O primeiro e o segundo argumento referem entidades que são representadas por tabelas e o terceiro argumento refere uma propriedade que é representada por uma coluna que pertence à chave estrangeira. Uma chave estrangeira é representada por um ou mais predicados FK. Cada predicado FK origina um registo na tabela KEY_FK com o número de sequência indicado na coluna FK_NSEQ. 3.3 Abordagens para Aquisição de Vocabulário Interessa considerar para efeitos de aquisição de vocabulário duas abordagens caracterizadas por duas situações: uma em que a instalação é nova, outra em que se realiza uma adaptação a um sistema informático existente. Numa instalação nova em que não existe nada definido, deve-se começar por especificar completamente o vocabulário, incorporando todo o conhecimento importante do domínio da aplicação na representação do modelo conceptual, expressando-o através de predicados de aquisição de vocabulário. Deve-se considerar como base de trabalho do processo de aquisição de vocabulário um texto em língua natural, que resuma os factos que descrevem o conhecimento do domínio a incorporar. O processamento orientado frase a frase, vai conduzir à determinação do conjunto de predicados de aquisição de vocabulário. Seguidamente deve ser gerado o modelo relacional de dados da base de dados do domínio a partir do modelo conceptual. A base de dados concebida desta forma, é a mais adaptada ao sistema de interrogações e conduz a uma simplificação do processo de tradução para SQL minimizando a informação de apoio à tradução. Quando se quer adaptar o sistema de interrogações em língua natural a uma base de dados do domínio já existente, deve-se, numa primeira fase, associar um símbolo a cada tabela, coluna ou chave estrangeira (predicados Symbol). Numa segunda fase, devem-se definir as associações expressas pelas associações do modelo relacional da base de dados do domínio (predicado Assoc). Numa terceira fase, deve-se alargar o âmbito da representação do modelo conceptual (enriquecimento do vocabulário base) definindo símbolos equivalentes (predicado eSymbol), associações equivalentes (predicado Assoc e iAssoc), associações compostas (predicado cAssoc) e associações transitivas (predicado Assoc). 4 Exemplos Exemplo 1: Considere-se que se pretende representar o facto “pessoa tem estado civil” em que na base de dados do domínio a propriedade “estado civil” é representada directamente numa coluna PESSOA.ESTADO_CIVIL que contém as letra inicias: ‘S’ – “SOLTEIRO”, ‘C’ – “CASADO”, ‘D’ – “DIVORCIADO” e ‘V’ – “VIÚVO”. A aquisição de vocabulário pode ser expressa por: Symbol(estado civil, ESTADO_CIVIL) Symbol(pessoa, PESSOA) Assoc(TER, PESSOA, ESTADO_CIVIL) Occurrence(PESSOA, ESTADO_CIVIL, SOLTEIRO, S) Occurrence(PESSOA, ESTADO_CIVIL, CASADO, C) Occurrence(PESSOA, ESTADO_CIVIL, DIVORCIADO, D) Occurrence(PESSOA, ESTADO_CIVIL, VIÚVO, V). Exemplo 2: Se se considerar que a entidade pessoa desempenha os papéis realizador e actor, quando pessoa se relaciona com filme a aquisição de vocabulário é essencialmente expressa por: eSymbol(PESSOA, ACTOR) eSymbol(PESSOA, REALIZADOR) Se fosse simplesmente definido: Assoc(REALIZAR, FILME, REALIZADOR) Assoc(REPRESENTAR, FILME, ACTOR) e Assoc(REPRESENTAR, FILME, PESSOA) significava, erradamente, que realizar um filme é equivalente a representar um filme. Exemplo 3: Para representar os factos “porta bagagem contém mala” e “mala contém roupa” com a intenção de possibilitar a conclusão através de transitividade do facto “porta bagagem contém roupa” a aquisição de vocabulário é expressa por: Assoc(REALIZAR, FILME, PESSOA) Assoc(CONTER, MALA, ROUPA) Assoc(CONTER, PORTA_BAGAGEM, MALA) Assoc(@Transitive, PORTA_BAGAGEM, MALA). Exemplo 4: Considere-se que se está a referir uma base de dados de aluguer de veículos, onde a hierarquia de tipos sobre veículos é: A hierarquia de tipos é representada por um Ve ículo ícul o conjunto de associações @Ser. Neste exemplo, as associações, que representam a hierarquia de tipos Automóvel Camião Automóvel Cami ão são: Assoc(@Ser, MOTA, VEICULO) Assoc(@Ser, AUTOMOVEL, VEICULO) Mota Mota Assoc(@Ser, CAMIAO, VEICULO). Exemplo 5: O facto empresa vende produtos pode ser definido como a composição das associações que caracterizam os factos empresa possui loja e loja vende produtos sendo a aquisição de vocabulário expressa pelo predicado: cAssoc(VENDER, {POSSUIR(EMPRESA, LOJA), VENDER(LOJA, PRODUTO)}). Se na lista de associações membros da composição forem referidas associações expressas no sentido inverso, estas são convertidas nas associações correspondentes expressas no sentido directo. Exemplo 6: Se o utilizador do sistema de interrogações perguntar “Quais os hotéis com sauna?” a pergunta deve ser interpretada como “Quais os nomes dos hotéis com sauna?”, assumindo que à entidade “hotel” está associada a propriedade por omissão “nome”. O facto de à entidade “hotel” estar associado por omissão a propriedade “nome” é indicado pelo predicado: Default(HOTEL, NOME). Exemplo 7: Se o facto de uma “freguesia” ter identificação própria apenas no contexto do respectivo “concelho” for caracterizado no modelo relacional da base de dados do domínio por uma chave primária com duas colunas COD_FREG (“número sequencial da freguesia dentro de cada concelho”) e COD_CONC (“número sequencial do concelho”), a aquisição de vocabulário é realizada por: Symbol(número sequencial da freguesia, COD_FREG, INTEGER) Symbol(número sequencial do concelho, COD_CONC, INTEGER) Symbol(concelho, CONCELHO) Assoc(TER,FREGUESIA,DESCRICAO) Symbol(freguesia, FREGUESIA) PK(CONCELHO, COD_CONC) Symbol(descrição, DESCRICAO) PK(FREGUESIA, COD_CONC) Assoc(TER, CONCELHO, DESCRICAO) PK(FREGUESIA, COD_FREG) O diagrama entidade/associação da Fig 2 ilustra uma parte do modelo relacional da base de dados do domínio a que os predicados PK se referem. Exemplo 8: Se uma “pessoa” for caracterizada na base de dados do domínio pelo “número do bilhete de identidade”, “nome” e “freguesia de recenseamento” (como no diagrama entidade/associação da Fig 2), o essencial da aquisição de vocabulário é expresso por: Symbol(bilhete de identidade, nBI) Symbol(pessoa, PESSOA) Symbol(nome, NOME) Assoc(TER, PESSOA, NOME) Assoc(VOTAR,PESSOA,FREGUESIA) PK(PESSOA, nBI) FK(PESSOA, FREGUESIA, COD_CONC) FK(PESSOA, FREGUESIA, COD_FREG). Neste exemplo os predicados FK podem ser determinados automaticamente a partir da definição da chave primária da entidade “freguesia” constituída pelas coluna COD_CONC e COD_FREG (são iguais). Se a “pessoa” passar a ter também uma associação com a “freguesia de nascimento” não se pode estabelecer a associação “pessoa tem freguesia de nascimento” directamente com “freguesia” pois seria considerado que o facto “pessoa tem freguesia de Fig. 2. Exemplo de Representação de Chaves recenseamento” é equivalente a “pessoa tem freguesia de nascimento”. Tem-se, então, de utilizar a definição de símbolos equivalentes a freguesia, para representar os dois papéis. O diagrama entidade/associação da Fig 3 mostra parte do modelo relacional da base de dados do domínio a que se refere o exemplo anterior. Fig. 3. Exemplo de Associação Dupla A aquisição de vocabulário, neste caso, é expressa, essencialmente, por: Symbol(freguesia recenseamento, FREG_REC) Symbol(freguesia nascimento, FREG_NASC) eSymbol(FREG_REC, FREGUESIA) FK(PESSOA, FREG_REC, COD_CONC_REC) eSymbol(FREG_NASC, FREGUESIA) FK(PESSOA, FREG_REC, COD_FREG_REC) Assoc(VOTAR, PESSOA, FREG_REC) FK(PESSOA,FREG_NASC,COD_CONC_NASC) Assoc(NASCER, PESSOA, FREG_NASC) FK(PESSOA,FREG_NASC,COD_FREG_NASC). 5 Conclusão O processo de aquisição de vocabulário define o conhecimento representado no modelo conceptual usando o conhecimento explícito da base de dados do domínio. Para alargar o âmbito da representação (cobrir a maior porção possível do conhecimento do domínio da aplicação) podem definir-se símbolos equivalentes usando funções de equivalência (para inferir conhecimento implícito). A extensibilidade do modelo conceptual é assegurada por uma estrutura relacional que não tem limitações de dimensão e cujo carregamento é facilitado pela utilização de predicados de aquisição de vocabulário. A portabilidade do modelo conceptual é assegurada pela associação de um domínio a cada conceito. O processo de aquisição de vocabulário embora possa ser parcialmente automatizado, reveste-se de aspectos que exigem sensibilidade para questões que dependem, em última instância, de cada situação particular, não dispensando a participação de agentes humanos. O sistema aqui descrito faz parte do trabalho desenvolvido para o sistema INTOURISM [http://www.caib.es/ibit], um projecto que pretende estimular o comércio electrónico de produtos e serviços de pequenas e médias empresas na área do turismo, sendo possível a formulação de perguntas em língua natural através da Internet. Referências 1. Allen, J. 1995. “Natural Language Understanding”. The Benjamin/Cummings Publishing Company, Inc. 2. Androutsopoulos I., Ritchie G., Thanisch, P. 1993. “An Efficient and Portable Natural Language Query Interface for Relational Databases”. Proceedings of the 6 th International Conference on Industrial & Engineering Applications of Artificial Intelligence and Expert Systems, Edinburgh, U.K., pages 327-330. Gordon and Breach Publishers Inc., U.S.A. 3. Androutsopoulos, I. 1993. “Interfacing a Natural Language Front-End to a Relational Database (MSc thesis)”. Technical paper 11, Dept. of AI, Univ. of Edinburgh. 4. Androutsopoulos, I. 1994. “Natural Language Interfaces - An Introduction”. Journal of Natural Language Engineering, Cambridge University Press. 5. Cohen, P.R. 1991. “The Role of Natural Language in a Multimodal Interface”. Technical Note 514, Computer Dialogue Laboratory, SRI International, 1991. 6. Filipe, P. 1999, “Sistema de Interrogações em Língua Natural para Bases de Dados: Modelo Conceptual, Aquisição de Vocabulário e Tradução”, M.Sc. Dissertation. Instituto Superior Técnico, Universidade Técnica de Lisboa. 7. Mamede, N, Filipe, P., 1999. “From Logic to SQL in Natural Language Interfaces for Databases”. 8. Grosz, B. J., Appelt, D. E., Martin, P. A., Pereira, C. N. 1987. “TEAM: An Experiment in the Design of Transportable Natural-Language Interfaces”. Artificial Intelligence 32, pages 173-243. Elsevier Science Publishers B.V. (North-Holland). 9. Marques, L. 1996. “Edite - Um Sistema de Acesso a Base de Dados em Língua natural Análise Morfológica, Sintáctica e Semântica”, .M.Sc. Dissertation. Instituto Superior Técnico, Universidade Técnica de Lisboa. 10.Reis, P., Mamede, N. 1996. “LIL-SQL. Processamento de Interrogações LIL por Tradução para SQL”. Technical Report. Grupo de Sistemas e Serviços Telemáticos, INESC. 11.Reis, P., Mamede, N., Matias, J. 1997. Edite – A Natural Language Interface to Databases: a New Dimension for an Old Approach in “Proceeding of the Fourth International Conference on Information and Communication Technology in Tourism”, ENTER’ 97, Edinburgh, Scottland. 12.Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., Lorensen, W., 1991. “Object-Oriented Modeling And Design”, Printice-Hall.