a generalização do sistema conpor - nilc.icmc.usp.br · universidade de são paulo - usp...

38
Universidade de São Paulo - USP Universidade Federal de São Carlos - UFSCar Universidade Estadual Paulista - UNESP A generalização do sistema ConPor Lucia Specia Lucia Helena Machado Rino NILC-TR-03-01 Janeiro, 2003 Série de Relatórios do Núcleo Interinstitucional de Lingüística Computacional NILC - ICMC-USP, Caixa Postal 668, 13560-970 São Carlos, SP, Brasil

Upload: truongphuc

Post on 08-Feb-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Universidade de São Paulo - USP Universidade Federal de São Carlos - UFSCar

Universidade Estadual Paulista - UNESP

A generalização do sistema ConPor

Lucia Specia Lucia Helena Machado Rino

NILC-TR-03-01 Janeiro, 2003

Série de Relatórios do Núcleo Interinstitucional de Lingüística Computacional

NILC - ICMC-USP, Caixa Postal 668, 13560-970 São Carlos, SP, Brasil

Resumo

Este relatório descreve o processo de generalização do ConPor, um sistema cuja função é mapear estruturas sintáticas em estruturas conceituais UNL. Para essa generalização, as regras de mapeamento sintático-conceitual foram redefinidas por meio de uma gramática gerativo-transformacional, de acordo com uma metodologia funcional e composicional. São apresentadas as diferenças da versão generalizada em relação à anterior, a expansão do corpus realizada para viabilizar essa generalização e a implementação da nova versão.

Este trabalho conta com o apoio financeiro da CAPES

Índice

1 Introdução.................................................................................................................................. 1

2 A expansão do corpus base ....................................................................................................... 2

3 O Repositório Conceitual .......................................................................................................... 3

3.1 Regras de projeção............................................................................................................ 5

3.1.1 Especificação das regras .......................................................................................... 5

3.1.2 Um exemplo ........................................................................................................... 14

3.2 Heurísticas de relacionamento ........................................................................................ 18

3.2.1 Busca e linearização............................................................................................... 19

3.2.2 Extração dos papéis semânticos ............................................................................. 19

3.2.3 Atribuição dos RLs ................................................................................................ 19

3.3 Estruturas sintáticas não previstas .................................................................................. 21

4 A implementação, os números e o custo do ConPor ............................................................... 22

4.1 Implementação................................................................................................................ 22

4.2 Números.......................................................................................................................... 23

4.2.1 Entradas lexicais .................................................................................................... 23

4.2.2 Regras de projeção ................................................................................................. 24

4.2.3 Heurísticas de relacionamento ............................................................................... 24

4.3 Custo de desenvolvimento e expansão ........................................................................... 24

4.4 Comparação das duas versões......................................................................................... 25

5 Considerações finais ................................................................................................................ 27

Referências bibliográficas ................................................................................................................ 28

Apêndice A....................................................................................................................................... 30

Regras de projeção....................................................................................................................... 30

Heurísticas de relacionamento ..................................................................................................... 33

Figuras

Figura 1 – Arquitetura do ConPor...................................................................................................... 1

Figura 2 – Estrutura sintática das sentenças (2a) e (2b) ..................................................................... 3

Figura 3 – Exemplos de estruturas conceituais UNL para a estrutura sintática da Figura 2 .............. 4

Figura 4 – Detalhamento dos módulos Gerador Conceitual e Repositório Conceitual...................... 4

Figura 5 – Exemplos de estruturas sintáticas para períodos independentes ....................................... 7

Figura 6 – Exemplo do uso de escopos na UNL .............................................................................. 14

Figura 7 – Estrutura sintática da sentença (8) .................................................................................. 14

Figura 8 – Regras de projeção para a sentença (8)........................................................................... 15

Figura 9 – Esquema geral da aplicação das regras de projeção para sentença (8) ........................... 16

Figura 10 – Subestruturas sintáticas da sentença (8)........................................................................ 17

Figura 11 – Exemplos de diferentes ordens na estrutura conceitual da sentença (10) ..................... 21

Figura 12 – Estrutura sintática da sentença (8) ................................................................................ 30

Figura 13 – Regras de projeção para a sentença (8)......................................................................... 31

Figura 14 – Simulação da aplicação das regras de projeção para a sentença (8) ............................. 32

Figura 15 – Resultado do processo de mapeamento da sentença (8) ............................................... 34

Tabelas

Tabela 1 – Atributos dos verbos utilizados pelas regras de projeção................................................. 9

Tabela 2 – Exemplos de verbos descritos segundo o dicionário de Borba ...................................... 10

Tabela 3 – Possíveis papéis semânticos para os constituintes das sentenças do corpus base .......... 12

Tabela 4 – Atributos UNL considerados no ConPor........................................................................ 13

Tabela 5 – Relações UNL consideradas no ConPor......................................................................... 20

Tabela 6 – Exemplos de possíveis combinações de regras para diferentes constituintes................. 21

Tabela 7 – Números de palavras e entradas lexicais ........................................................................ 23

Tabela 8 – Número de regras de projeção intermediárias e terminais ............................................. 24

Tabela 9 – Número de regras nas duas etapas da segunda versão do ConPor ................................. 25

Tabela 10 – Número de regras nas duas versões do ConPor............................................................ 26

Tabela 11 – Número de palavras e entradas lexicais nas duas versões do ConPor.......................... 26

1

1 Introdução

O ConPor (Conceitualização do Português) é um sistema de geração de estruturas conceituais UNL (Universal Networking Language) (UNL, 2001) para sentenças do português. No estágio atual, o sistema parte de estruturas sintáticas produzidas pelo parser Curupira, em desenvolvimento no NILC1, mapeando-as em estruturas conceituais (mapeamento sintático-conceitual, doravante). Na arquitetura do sistema, ilustrada na Figura 1, esse mapeamento é realizado pelo módulo Gerador Conceitual, a partir do conhecimento armazenado no Repositório Conceitual e no Léxico Enriquecido, um léxico semântico que contém informações morfossintáticas e semânticas da língua portuguesa (Specia & Rino, 2002a).

Figura 1 – Arquitetura do ConPor

Os detalhes sobre os módulos dessa arquitetura, bem como sobre o funcionamento da

primeira versão do sistema, são descritos em Specia & Rino (2002b). Neste relatório, apresentamos algumas alterações dessa versão, que envolvem, basicamente, a reespecificação do Repositório Conceitual e a modificação correspondente do Gerador Conceitual, com o objetivo de tornar o mapeamento sintático-conceitual mais genérico. Descrevemos, também, a expansão do corpus base, usado para modelar as regras de mapeamento sintático-conceitual e, portanto, para especificar a gramática de fundamentação do ConPor. Essa expansão do corpus é detalhada na Seção 2, seguida da descrição do novo Repositório Conceitual (Seção 3) e das alterações na implementação do sistema (Seção 4). Algumas considerações finais sobre o trabalho são apresentadas na Seção 5.

1 Núcleo Interinstitucional de Lingüística Computacional (www.nilc.icmc.sc.usp.br).

Fase de preparação

Código UNL

Estruturas Sintáticas

Est. Sintática mais Provável

Parser Curupira

Léxico do Português

Dicionário Port-UNL

Léxico Enriquecido

Repositório Conceitual

Gerador Conceitual

Sentença em Português

Seletor Manual

2

2 A expansão do corpus base

O corpus base do ConPor define o conjunto de exemplos que servem de base para a definição dos recursos lingüísticos e processos do sistema. Assim, esse corpus indica as estruturas sintáticas que podem ser contempladas pelo processo de mapeamento. Na primeira versão do sistema, esse corpus era constituído por 36 sentenças simples (orações nucleares, isto é, compostas por um único verbo ou locução verbal) declarativas e imperativas, agrupadas em 33 estruturas sintáticas diferentes, conforme descrito em Specia & Rino (2002b).

Esse corpus, no entanto, mostrou-se pouco representativo para fornecer subsídios para a generalização pretendida. Portanto, resolvemos expandi-lo, para obter um corpus suficientemente representativo de algumas generalizações da língua portuguesa, as quais deveriam ser identificadas e formalizadas por meio de regras de mapeamento sintático-conceitual. Nessa expansão, consideramos variações sintáticas e semânticas das novas sentenças, com base principalmente nos seguintes fatores relevantes para a generalização: (a) estruturas sintáticas variadas podem levar a uma mesma estrutura conceitual; (b) uma mesma estrutura sintática pode levar a diferentes estruturas conceituais. Privilegiamos, portanto, o aspecto qualitativo, buscando inserir construções gramaticais diversificadas.

Como fonte para a escolha das sentenças, utilizamos um conjunto de textos que já haviam sido selecionados na primeira versão do sistema. Desse conjunto constavam os textos correspondentes a 27 horóscopos diários coletados da versão on-line do jornal Folha de São Paulo (http://www1.uol.com.br/folha/urania/). Esses textos foram analisados segundo os mesmos critérios utilizados na primeira versão do corpus, exceto no que diz respeito às restrições para a seleção e simplificação das sentenças, que se tornou menos rígido. Basicamente, o corpus expandido permite construções gramaticais relativamente mais complexas, como as orações subordinadas reduzidas exemplificadas em (1).

(1) a. Reflita mais antes de falar. b. Pretender mais aumentaria a adrenalina. c. Fixar poucos objetivos seria bom.

Com essa expansão, obtivemos 86 sentenças (declarativas e imperativas) adicionais,

agrupadas em 74 diferentes estruturas sintáticas. Somadas ao corpus base inicial, essas sentenças totalizam 122, agrupadas em 107 estruturas sintáticas.

Muito embora essa expansão indique um crescimento relativamente grande do corpus inicial, a representatividade desse corpus ainda é pequena, se considerarmos o uso efetivo do sistema na interpretação de sentenças do português, mesmo para um domínio limitado como o escolhido. No entanto, o objetivo deste trabalho é propor um modelo de interpretação semântica, e não um sistema robusto. Nesse sentido, a implementação de um sistema é apenas uma das conseqüências do trabalho, servindo para comprovar a aplicabilidade do modelo. Além disso, conforme veremos nas próximas seções, o sistema é organizado de forma a permitir a inclusão de regras de mapeamento para novas construções gramaticais, bem como a inclusão de novas palavras no Léxico Enriquecido. Com isso, tal sistema pode ser refinado de modo incremental, considerando novas construções gramaticais para o domínio em questão.

3

3 O Repositório Conceitual

O Repositório Conceitual responde pela principal diferença entre a primeira versão do ConPor e a versão generalizada descrita neste relatório. Da mesma forma que na primeira versão, ele é um recurso lingüístico constituído pelas regras de mapeamento sintático-conceitual, ou seja, por regras que, quando aplicadas a estruturas sintáticas, convertem essas estruturas em representações conceituais, isto é, em códigos UNL. A diferença entre as duas versões está localizada na natureza das regras que fazem esse mapeamento e na forma como elas são organizadas, dentre outros fatores.

Na primeira versão do sistema, as regras de mapeamento são representadas por templates completos, ou seja, por modelos de mapeamento que assumem como entrada a estrutura sintática completa da sentença e guiam o processo de mapeamento até que a estrutura conceitual UNL seja gerada. Templates de estruturas conceituais são escolhidos de modo que seus slots possam ser preenchidos com as informações da sentença de entrada. Para a aplicação de um determinado template, as restrições nele especificadas devem ser satisfeitas.

A única variação permitida nos templates diz respeito às folhas da estrutura sintática de entrada, que correspondem às palavras da sentença, desde que sejam observadas as restrições sintáticas e semânticas do template. Essa especificidade é mantida em todas as etapas do processo de mapeamento, de modo que ele ocorre somente para sentenças cujas características sintáticas e semânticas restritivas são idênticas às previstas pelos templates.

Ao assumir a estrutura sintática completa como entrada, essa abordagem, apesar de apresentar chances maiores para um mapeamento correto, limita a capacidade de mapeamento do sistema aos exemplos completos pré-estabelecidos nos templates, uma vez que um ou mais templates precisam ser exaustivamente definidos para cada estrutura sintática completa diferente. Isso acontece porque a definição do repositório de templates não considera a ocorrência das partes análogas de diferentes estruturas sintáticas e, portanto, não permite a generalização (e conseqüente economia) de representação. Por exemplo, no caso das sentenças (2a) e (2b), apesar de todas as similaridades, inclusive a estrutura sintática, ilustrada na Figura 2, são necessários dois templates, uma vez que elas dão origem a diferentes estruturas conceituais.

(2) a. O sol brilha em sagitário. b. O sol brilha em janeiro.

Figura 2 – Estrutura sintática das sentenças (2a) e (2b) A estrutura da Figura 2 segue o formato do parser Curupira: as letras minúsculas

indicam os símbolos terminais, enquanto as maiúsculas indicam os não-terminais, sendo SUJ = sujeito, SN = sintagma nominal, AADNE = adjunto adnominal à esquerda, SDET = sintagma determinante, PREDV = predicado verbal, SVI = sintagma verbal intransitivo, AADVO = advérbio e SP = sintagma preposicional. Para essa estrutura sintática, neste caso, há duas possibilidades de mapeamento conceitual em UNL, ilustradas na Figura 3, cada qual considerando diferentes características semânticas: em (2a), o advérbio é representado conceitualmente como “lugar” (relação plc), em (2b), como “tempo” (relação tim).

(FRASE (PERIODO (PERIODO_INDEPENDENTE (SUJ (SUJ_SIMPLES (SN (AADNE (SDET (nucleo_artigo))) (nucleo_subst)))) (PREDICADO (PREDV (SVI (nucleo_verbo)))) (AADVO (AADVO SIMPLES (SP (nucleo preposicao) (SN (nucleo subst))))))))

4

Figura 3 – Exemplos de estruturas conceituais UNL para a estrutura sintática da Figura 2 Considerando que todos os constituintes das sentenças, exceto o advérbio, possuem as

mesmas características sintáticas e semânticas, parte dos dois templates é idêntica, de modo que a repetição de informações, nessa abordagem, pode ser grande e o modelo de mapeamento, contraproducente.

Nessa primeira versão do sistema, o acesso ao Léxico Enriquecido para a verificação de restrições, recuperação do conceito de uma dada palavra e a atribuição do papel semântico a esse conceito é a única regra definida de forma genérica, que pode ser utilizada por vários templates. Na versão generalizada, descrita nesta seção, uma das principais alterações é justamente a utilização de regras específicas para partes das estruturas sintáticas a serem mapeadas, em vez de templates completos. Essas regras são organizadas em uma estrutura hierárquica, de modo a evitar a repetição de informações e modelar o processo de mapeamento de forma mais genérica e flexível, contemplando, muitas vezes, mesmo construções gramaticais não previstas no corpus.

Para tanto, os templates completos foram desmembrados em sub-templates que ativam regras de mapeamento de duas naturezas: regras de projeção, que mapeiam os constituintes da sentença em conceitos UNL, associados a seus papéis semânticos, e heurísticas de relacionamento, que combinam pares de conceitos UNL, de acordo com seus papéis semânticos, em relações UNL. A Figura 4, um detalhamento dos módulos Gerador Conceitual e Repositório Conceitual da Figura 1, ilustra a aplicação dessas regras.

Figura 4 – Detalhamento dos módulos Gerador Conceitual e Repositório Conceitual

obj(shine, sun.@def) plc(shine, sagittarius)

obj(shine, sun.@def) tim(shine, january)

Repositório Conceitual

Estrutura sintática

Regras de Projeção

Estrutura intermediária

Heurísticas de Relacionamento

Código UNL

Conjunto de Heurísticas

Gramática de Projeção

Gerador Conceitual

5

A seguir, explicamos essas duas categorias de regras de mapeamento e discutimos o

comportamento do modelo de mapeamento perante estruturas sintáticas não previstas no corpus. 3.1 Regras de projeção

As regras de projeção mapeiam constituintes classificados por suas funções sintáticas (sujeito, objeto direto, adjunto adnominal, etc.) em constituintes conceituais, ou seja, em conceitos da linguagem UNL. Além disso, associam-nos a seus respectivos papéis semânticos (agente, paciente, objeto, modificador, etc.). Esse mapeamento não é um-para-um, isto é, um constituinte sintático não corresponde, necessariamente, a um único item lexical. Por exemplo, no caso dos sintagmas nominais, um constituinte sintático pode ser formado por um nome e um artigo e no caso dos sintagmas verbais, pode ser formado por um verbo auxiliar e um verbo principal.

A identificação dos papéis semânticos é a parte mais importante do mapeamento sintático-conceitual, já que a identificação dos conceitos UNL, assim como das suas inter-relações na sentença são processos mais simples, apesar de serem indispensáveis para a obtenção das estruturas UNL completas.

3.1.1 Especificação das regras

O conjunto de regras de projeção constitui a gramática de projeção sintático-conceitual do sistema. As regras da gramática são composicionais, uma vez que uma estrutura conceitual completa é obtida a partir da composição de subestruturas conceituais indicadas pelos constituintes da sentença. Além disso, elas contemplam a funcionalidade dos componentes conceituais correspondentes, uma vez que são definidas de acordo com a função sintática e semântica desses componentes.

Para contemplar esses aspectos, as regras são definidas segundo uma hierarquia, na qual regras mais genéricas (que recebem como entrada estruturas sintáticas completas, ou mesmo partes de estruturas sintáticas passíveis de decomposição) são decompostas em regras mais específicas, até que a decomposição não seja mais possível ou necessária, isto é, até que se chegue a conceitos elementares. Desse modo, as regras de projeção têm duas naturezas: as genéricas, que podem ser decompostas em regras mais específicas e são chamadas de regras intermediárias, e as específicas, que acessam diretamente o léxico para determinar os conceitos elementares, denominadas regras terminais.

Ao aplicar as regras de projeção, o mapeamento constitui, portanto, um processo modular e multinível, no qual a estrutura conceitual é obtida a partir da aplicação sucessiva de uma série de regras intermediárias, que são decompostas em regras mais específicas. Com isso, além de todas as vantagens das abordagens modulares (facilidade de manutenção e expansão das regras, por exemplo), obtém-se um mecanismo mais flexível, que permite representar e manipular regras parciais para determinados constituintes.

Outra característica importante da gramática é o seu não-determinismo, isto é, a possibilidade de aplicação de várias regras para uma dada entrada, o que permite diferentes combinações de regras parciais. Dessa forma, mesmo estruturas sintáticas não previstas

6

integralmente no corpus podem, eventualmente, ser contempladas a partir da combinação de regras parciais definidas para outras estruturas.

O não determinismo da gramática permite, também, que mais de um resultado seja obtido para uma única sentença de entrada. Idealmente, isso deve ocorrer somente para sentenças semanticamente ambíguas. A ocorrência para sentenças não ambíguas semanticamente indica que as próprias regras de projeção são ambíguas ou não são suficientemente claras para mapear corretamente a sentença.

Quanto ao seu formato, as regras de projeção são especificadas na forma de regras de produção das gramáticas livres de contexto, com conotações gerativas e transformacionais (Chomsky, 1965), em uma sintaxe próxima à da DCG – Definite Clause Grammar (Pereira & Warren, 1980). A DCG é um formalismo lógico, cujo processamento é baseado em unificação. Esse formalismo é uma extensão das gramáticas livres de contexto de Chomsky. Com base nele, a interpretação de uma sentença passa a ser a prova de que ela é bem formada sintática e semanticamente.

A definição das regras de projeção é governada, principalmente, pela estrutura sintática e pela classe do verbo, segundo as classes do modelo de Borba (1990), a saber, “ação”, “ação-processo”, “processo” e “estado”. Ao analisar essas classes, no entanto, percebemos que para os nossos propósitos de mapeamento, as classes “ação” e “ação-processo” se comportam da mesma forma, isto é, dão origem a estruturas conceituais idênticas. Portanto, definimos apenas três classes de regras de projeção: regras de ação, regras de estado e regras de processo.

A estrutura sintática representa um dos argumentos de entrada e a principal restrição sintática para as regras, como ocorre em todos os sistemas nos quais a análise semântica é realizada posterior e isoladamente à análise sintática. A classe verbal representa a principal restrição semântica e o ponto de partida para a aplicação das regras. Abordagens como essa, que consideram o verbo como chave do processo de análise semântica, de acordo com os argumentos que exige (estrutura de argumentos), são sustentadas por diversos autores, dentre os quais, Vendler (1967), Chafe (1970) e Dik (1997).

Os detalhes referentes à especificação das regras de projeção, segundo as premissas aqui elencadas, são discutidos a seguir. Aspecto composicional

Para seguir a abordagem composicional, a entrada para cada regra de projeção não é a

estrutura sintática completa de uma dada sentença, mas sim parte dessa estrutura, sendo que as demais partes podem estar em uma das seguintes situações: (a) são representadas por variáveis na mesma regra, quando mapeiam constituintes mais específicos dessa regra; ou (b) são representadas por outras regras, quando mapeiam constituintes do mesmo nível ou mais gerais, que dependem da resolução da estrutura parcial em questão. Os exemplos a seguir ilustram essas situações, em uma notação simplificada das regras utilizadas:

(3) sentença(suj(SN), pred(SV)], [ECs, ECv]) :- resolveSuj(SN, ECs), resolvePred(SV, ECv). (4) resolveSuj(subst(SUB), agente:CONs) :- recuperaConceito(SUB, CONs). (5) resolvePred(verbo(V), evento:CONv) :- recuperaConceito(V, CONv).

7

A regra (3) ilustra o caso (a), representando uma regra intermediária, na qual a estrutura sintática de entrada é composta por duas partes (suj(SN) e pred(SV)) e cuja resolução depende da resolução das regras para essas partes (resolveSuj e resolvePred), que retornam as estruturas conceituais parciais (ECs e ECv) como resultado. Já as regras (4) e (5) ilustram o caso (b), representando regras terminais, que recuperam do Léxico Enriquecido os conceitos (CONs e CONv) correspondentes aos constituintes da estrutura sintática de entrada (SUB e SV) e atribuem a eles os papéis semânticos “agente” e “evento”. Nesse caso, as demais partes da estrutura sintática são mapeadas por regras mais gerais. Os detalhes dessas regras, como a verificação de restrições, não representada aqui, são explicados no decorrer dessa seção.

A definição do nível de granularidade das estruturas sintáticas parciais, ou seja, do nível de decomposição dessas estruturas e, conseqüentemente, do nível de decomposição das regras, teve como base as variações nas estruturas sintáticas das sentenças do corpus. As estruturas invariantes não são separadas, sendo vários níveis da estrutura representados por uma única regra. Por exemplo, no parser Curupira, um “período” pode ser decomposto em um “período_coordenado” (com duas ou mais orações) ou em um “período_independente” (simples, com uma única oração). Como não consideramos períodos coordenados nas sentenças do corpus, os constituintes “período” e “período_independente” são considerados uma unidade, representada por “período(período_independente (...))” nas estruturas sintáticas de entrada. Com isso, existe apenas uma regra de projeção, para períodos independentes. As estruturas sintáticas da Figura 5 são exemplos dos períodos independentes contemplados pelo ConPor.

Figura 5 – Exemplos de estruturas sintáticas para períodos independentes Aspecto funcional

Para seguir a abordagem funcional, os nomes das regras representam o tipo de projeção que elas executam. Por exemplo, uma regra para transformar um “sujeito” (denominado “suj”, no parser) em um “agente”, é chamada de “sujAcao”. Da mesma forma, ao decompor esse constituinte em seus subconstituintes, a regra para o sintagma nominal (denominado “sn”, no parser), cujo núcleo (um substantivo, por exemplo) corresponde, efetivamente, ao sujeito da sentença, é chamada de “snAgente”.

Como vimos, as regras mais genéricas são definidas de acordo com a estrutura sintática genérica e seus macroconstituintes e de acordo com as três classes verbais de Borba. Essas regras, ao serem decompostas em função das suas estruturas sintáticas, mantêm marcadores para indicar que as restrições impostas pela classe verbal devem ser preservadas para as regras mais específicas, sempre que necessário. Por exemplo, uma regra para verbos de ação, cujos macroconstituintes são “sujeito” e “objeto direto” (o verbo “comer”, por exemplo), mapeia o núcleo de tal sujeito em um conceito cujo papel semântico é “agente”. Agora, uma regra para um verbo de estado (“saber”, por exemplo), com os mesmos macroconstituintes, mapeia o núcleo do sujeito em um conceito cujo papel semântico é “experienciador”, em vez de “agente”.

periodo(periodo_independente(predicado(PREDICADO))) periodo(periodo_independente([suj(SUJEITO),predicado(PREDICADO)])) periodo(periodo_independente([aadvo(ADJADVERBIAL),suj(SUJEITO),predicado(PREDICADO)]))

8

Para algumas regras, a indicação da funcionalidade semântica, incorpora, portanto, uma identificação relacionada à classe de verbo contemplada por aquela regra. Outras regras, no entanto, são mais genéricas, no sentido de que se aplicam às diferentes classes verbais e, portanto, não incorporam esse tipo de identificação. Nesse caso, indicam apenas o papel semântico para o qual o constituinte é mapeado. Isso ocorre, por exemplo, com adjuntos adverbiais (sadvTempo, sadvManeira, etc.), com modificadores em sintagmas nominais, como adjuntos adnominais à esquerda (aadnePosse ou aadneModificador) ou à direita (aadndModificador) e complementos nominais (cnModificador), que são sempre mapeados pelas mesmas regras, independentemente do template que ativa essas regras.

Acesso ao Léxico Enriquecido

Regras terminais, que mapeiam as palavras da sentença em conceitos e seus papéis semânticos e, portanto, acessam o Léxico Enriquecido, podem ter diferentes objetivos: (a) buscar traços do constituinte, que serão utilizados para representar alguma informação na estrutura conceitual ou como restrição para outro constituinte; (b) verificar restrições de natureza morfossintática e/ou semântica, impostas para o próprio constituinte, pelas regras de projeção; (c) simplesmente recuperar o conceito UNL do constituinte.

O acesso ao Léxico Enriquecido é simplificado, em seu estágio atual, pela representação de apenas uma descrição para cada entrada da mesma categoria gramatical. Com isso, evitamos a ambigüidade, em especial, a de sentido, uma vez que apenas um conceito para cada entrada é representado.

Esse acesso é feito por meio de estruturas com alguns atributos com valores já fixados (atributos que estabelecem restrições e que devem, portanto, combinar com as informações da estrutura sintática ou da descrição lexical dos constituintes dessa estrutura), e alguns atributos com valores em aberto, representados por variáveis.

Os valores fixos dos atributos morfossintáticos, juntamente com a estrutura sintática da sentença, representam as restrições de natureza sintática de uma regra de projeção e definem, portanto, o ambiente sintático delineado por tal regra. Esses atributos incluem alguns traços lexicais dos constituintes, como a transitividade do verbo. Já os atributos morfossintáticos cujos valores são representados via slots em branco apenas fornecem informações adicionais para o mapeamento. Essas informações podem ser de duas categorias: (a) restrições para outros constituintes, mapeados por outras regras; e (b) traços para a inserção de alguns rótulos de atributos (ALs) da UNL.

Da mesma forma, os valores fixos dos atributos semânticos, quais sejam, a classe do verbo e a sua subcategorização, representam as restrições semânticas de uma regra de projeção e definem, portanto, o ambiente semântico indicado por essa regra. Os demais atributos semânticos, a saber, as restrições de seleção dos argumentos dos verbos e os traços semânticos dos substantivos, são recuperados do Léxico Enriquecido e utilizados para conduzir o processo de unificação do verbo com os seus argumentos.

Os atributos morfossintáticos e semânticos utilizados pelas regras, sejam eles de valores fixos ou em aberto, dependem da categoria sintática das palavras que compõem o constituinte que está sendo mapeado. Por exemplo, as regras de projeção para o verbo acessam o Léxico Enriquecido para verificar atributos que representam informações sobre a sua forma analisada e sobre a sua forma canônica2. A Tabela 1 apresenta o conjunto dos 2 O Léxico Enriquecido é composto por dois tipos entradas: formas canônicas e formas analisadas das palavras das sentenças do corpus. As formas canônicas são as formas básicas das palavras, não flexionadas. As formas

9

atributos para verbos do Léxico Enriquecido, bem como o modo como esses atributos são utilizados no mapeamento.

Tabela 1 – Atributos dos verbos utilizados pelas regras de projeção

Atributo Exemplo Utilização tempo/modo (da forma analisada)

imperativo afirmativo, futuro do presente, futuro do pretérito

mapeado em um AL da UNL associado ao verbo ou ao núcleo do predicado, que indica o tempo de ocorrência do evento ou em que um estado é verdadeiro

forma canônica da forma analisada

ilumina iluminar considere considerar

indica qual a entrada no Léxico Enriquecido da canônica correspondente

tempo/modo (da forma canônica)

sempre infinitivo pessoal como restrição, nas locuções verbais, único caso em que o verbo principal é usado na sentença na sua forma não flexionada, que corresponde à canônica

tipo do verbo transitivo direto, pronominal, bitransitivo, etc.

como restrição

classe do verbo ação, estado, processo, ação-processo.

como restrição

subcategorização do verbo

sujeito e objeto, objeto, sujeito e complemento, etc.

como restrição, indicando os argumentos que o verbo exige

restrições de seleção para todos os argumentos obrigatórios do verbo

sujeito animado, complemento lugar

como restrição para os argumentos do verbo, indicando os traços semânticos que eles devem apresentar

UW considere consider representado na codificação UNL resultante, como conceito em uma ou mais relações

Por exemplo, para mapear o verbo da sentença (6) no seu respectivo conceito,

associado ao papel semântico “evento”, a regra em (7) é utilizada para acessar o Léxico Enriquecido.

(6) Considere seu desgaste físico. (7) veSvtdAcao(verbo(V), RestSuj, RestObj, [evento:UnlV.@T]) :-

(sin(T), can(CanV), [V|_],[]), v(sin(_,td), unl(UnlV), cl(AP), rest([suj(RestSuj), obj(RestObj)]),[CanV|_],[]), (AP = acao; AP = acao_proc).

Nessa regra, o primeiro argumento da sua cabeça representa a estrutura sintática do

constituinte V, que está sendo mapeado (verbo(V)). Os dois argumentos seguintes retornam as restrições de seleção do sujeito e objeto do verbo, para serem utilizadas por outras regras. O último argumento indica o resultado da aplicação dessa regra, consistindo do conceito do verbo (UnlV), associado ao tempo desse verbo (T) e já com o papel semântico de “evento”. A

analisadas são possíveis variações de uma forma canônica, do modo como aparecem na sentença. As variações incluem, por exemplo, flexões de gênero, número, grau, modo e tempo.

10

segunda linha representa a entrada lexical da forma analisada do verbo V. Por meio dela, são recuperados a canônica de V (CanV) e o atributo que indica o tempo de V (T). A terceira linha representa a entrada lexical da forma canônica de V, estabelecendo como restrições a transitividade (td = transitivo direto), a subcategorização (suj e obj) e a classe verbal da canônica desse verbo (AP), identificada na quarta linha como “ação” ou “ação-processo”. As restrições de seleção dos argumentos da canônica de V são recuperadas por meio de variáveis que são instanciadas com as informações específicas do verbo (RestSuj e RestObj). Como vimos, além de recuperar o conceito de um constituinte, as regras de acesso ao Léxico Enriquecido atribuem um papel semântico a esse constituinte. O modo como esse processo é realizado é descrito a seguir. Atribuição dos papéis semânticos

De um modo geral, a definição das regras de projeção partiu da análise dos códigos UNL gerados manualmente para o corpus base, numa etapa anterior à da implementação do modelo computacional. Nessa etapa, a identificação dos papéis semânticos, em especial, que corresponde ao núcleo do processo de mapeamento, teve por base a análise conjunta de informações de três categorias: (a) quando explicitados, os papéis semânticos exigidos pela estrutura de argumentos do verbo, segundo o dicionário de Borba; (b) os papéis semânticos exigidos pelas próprias relações UNL, de acordo com a especificação da interlíngua; e (c) os papéis semânticos identificados como possíveis projeções de constituintes sintáticos no estudo de Sossolote et al. (1997).

No dicionário de Borba, as restrições de seleção dos verbos, em alguns casos, são dadas em função do papel semântico dos constituintes. Por exemplo, a sentença (8), com um verbo cuja acepção é identificada como “processo”, exige um sujeito “paciente”. Nesse caso, ao conceito correspondente ao núcleo do constituinte que representa o sujeito é atribuído o papel “paciente”. (8) A lua crescente ocorre amanhã.

Todos os verbos das sentenças do corpus foram analisados segundo o referido

dicionário e as informações levantadas foram utilizadas tanto para a definição das regras de mapeamento (projeção e heurísticas) quanto para a especificação dos itens do Léxico Enriquecido. Alguns exemplos desse levantamento são ilustrados na Tabela 2.

Tabela 2 – Exemplos de verbos descritos segundo o dicionário de Borba

Verbo Classe Papel Semântico 1 Papel Semântico 2 Acepção Desdenhar Ação-

processo Sujeito agente Complemento expresso

por nome Rejeitar com desdém, não fazer caso de

Expressar Ação Sujeito agente Complemento expresso por nome abstrato

Revelar, fazer conhecer

Aparecer Processo Sujeito paciente expresso por nome abstrato

Revelar-se, manifestar-se

Ir Modal Auxiliar que indica futuridade

Esquentar Ação-processo

Sujeito agente/causativo Complemento expresso por nome abstrato/humano

Animar, acalorar

11

Ter Estado Sujeito inativo Complemento expresso por nome abstrato

Posse inerente ou transitória

Ocorrer Processo Sujeito paciente expresso por nome designativo de evento

Acontecer, suceder, dar-se

Conforme pode ser verificado na tabela, nem todos os argumentos dos verbos, no

entanto, são descritos no dicionário segundo seus papéis semânticos. Muitas vezes, não é possível identificar tal papel. Para esses casos, Borba descreve o argumento em função de seus traços semânticos obrigatórios. Para esses argumentos e também para aqueles constituintes não previstos na valência dos verbos como argumentos, por não serem obrigatórios (adjuntos adverbiais, por exemplo), as outras duas fontes de informação foram consultadas.

A especificação da UNL, ao descrever a sintaxe das suas relações, define, em alguns casos, mesmo que implicitamente, quais os possíveis papéis semânticos esperados para os conceitos que fazem parte da relação. Por exemplo, segundo a especificação da UNL, a relação “plc” define “o lugar em que um evento ocorre, ou um estado é verdadeiro, ou uma coisa existe”. Portanto, chamamos um dos papéis semânticos exigidos por essa relação de “lugar”.

Por fim, como fonte de informação auxiliar, utilizamos o estudo das manifestações morfossintáticas da UNL no português. Esse estudo foi realizado pelo NILC visando obter subsídios para o desenvolvimento de módulos de codificação e decodificação UNL-Português. O objetivo era identificar as possíveis construções gramaticais correspondentes a todas as estruturas UNL de um determinado corpus. De acordo com esse estudo, uma das formas de manifestação morfossintática da UNL no português é justamente aquela decorrente das suas relações semânticas. Por exemplo, a função sintática de “sujeito”, segundo tal estudo, pode manifestar-se na UNL pelas relações “obj”, “agt”, “ins”, “met”, “cau” e “soj” (as duas últimas relações não são consideradas na especificação atual da UNL). Para o caso específico da correspondência entre “sujeito” e “ins”, por exemplo, as seguintes informações foram apresentadas (Sossolote et al., 1997, p. 27):

Nesse caso, consideramos, portanto, que o papel semântico do sujeito é “instrumento”. Uma vez que essas fontes procuram identificar todos os possíveis papéis semânticos

dos constituintes sintáticos, em alguns casos precisamos escolher o papel mais adequado para o contexto de cada sentença. Para facilitar essa escolha, identificamos os casos nos quais foi possível generalizá-la e estabelecemos, para esses casos, convenções a serem seguidas, por exemplo: verbos (exceto os de ligação) exercem sempre o papel semântico “evento”, advérbios que indicam tempo exercem sempre o papel semântico “tempo”, adjetivos modificadores de sintagmas nominais exercem sempre o papel semântico “modificador”. A Tabela 3 ilustra todos os papéis semânticos utilizados nas regras de mapeamento para as sentenças do corpus base, totalizando 26 papéis diferentes.

ins & sujeito • ins se manifesta sintaticamente como sujeito entre um substantivo e um verbo, como em: ins(supply, computer_translation) >> ins(fornecer, tradução_automática) >> sujeito (fornecer,

tradução_automática) Exemplo: A tradução automática é incapaz de fornecer um resultado de alta qualidade.

12

Tabela 3 – Possíveis papéis semânticos para os constituintes das sentenças do corpus base Papel semântico Descrição

Agente constituinte que desencadeia uma ação, sendo origem dele e seu controlador Atributo constituinte que descreve um estado ou uma coisa3 que representa um estado Beneficiario constituinte sede da transferência de posse, vítima ou destinatário de um

benefício Cenário constituinte que define um mundo virtual onde um evento ocorre ou um estado é

verdadeiro ou uma coisa existe Co_coisa constituinte nominal secundário (não em foco) que está em um estado Conteúdo constituinte que define que um conceito é equivalente a outro Destino constituinte que define o destino de um evento Duração constituinte que define o período de tempo durante o qual um evento ocorre ou

um estado existe Evento constituinte que designa o evento da sentença Experimentador constituinte que designa uma experiência ligada a uma disposição mental, uma

sensação, uma emoção, uma cognição Inativo constituinte nominal que está em um estado ou possui um atributo e é, portanto,

suporte de uma propriedade, condição ou situação expressa pelo predicado Lugar constituinte que define o lugar no qual um evento ocorre, no qual um estado é

verdadeiro ou no qual uma coisa existe LugarDestino constituinte que define o lugar onde um evento termina ou um estado se torna

falso LugarOrigem constituinte que define o lugar onde um evento começa ou um estado se torna

verdadeiro Maneira constituinte que define a maneira como um evento é realizado ou as

características de um estado Meta constituinte que identifica o estado final de um objeto, associado ou não a um

evento Modificador constituinte que restringe a descrição de uma coisa em foco Objeto constituinte que é diretamente afetado por um evento ou estado Origem constituinte que define a origem de uma coisa Paciente constituinte afetado por aquilo que o verbo expressa, que sofre uma mudança de

estado, condição ou posição Parceiro constituinte que, juntamente com o agente, inicia um evento Possuidor constituinte que possui uma coisa Propósito constituinte que define o propósito ou objetivo do agente de um evento ou o

propósito de alguma coisa existir Quantidade constituinte que define a quantidade de alguma coisa Razão constituinte que define a razão pela qual um evento ou estado ocorre Tempo constituinte que define o momento em que um evento ocorre ou em que um

estado é verdadeiro Esse conjunto é um pouco maior que o utilizado na primeira versão do ConPor, que

totalizavam 21 e foram descritos em Specia & Rino (2002b). Esse aumento se deve, essencialmente, à expansão dos casos conceituais sugeridos pelo novo corpus.

3 Adotamos o termo “coisa” como uma tradução do termo thing utilizado na especificação UNL original, para indicar um constituinte genérico, sem papel semântico específico.

13

Atribuição dos rótulos de atributos

Dependendo do constituinte que está sendo mapeado, as regras terminais podem associar alguns rótulos de atributos (ALs) aos seus conceitos recuperados do Léxico Enriquecido, como é o caso, por exemplo, da regra em (7). O ConPor considera um conjunto de ALs que inclui alguns identificados a partir dos traços morfossintáticos das descrições lexicais dos constituintes e outros identificados em função da estrutura sintática da sentença. Ainda, esses ALs podem ser indicados pelos traços do próprio item lexical (por exemplo, a um evento que ocorre no passado é associado o AL @past), ou pelos traços de outros itens (por exemplo, os substantivos acompanhados de um artigo terão um AL @def ou @indef, indicando se o constituinte já foi referenciado ou não, respectivamente). A Tabela 4 exibe a lista dos 13 ALs contemplados pelo ConPor.

Tabela 4 – Atributos UNL considerados no ConPor

Nome do atributo AL Descrição Plural @pl conceito coletivo Definido @def conceito já referenciado Indefinido @indef conceito de uma classe não específica Futuro @future evento ocorrerá no futuro Passado @past evento ocorreu no passado Irreal @unreal suposição contrária à realidade Imperativo @imperative evento imperativo Negação @not complemento do evento Possibilidade @possibility possibilidade lógica de que um evento ocorra Necessidade @need necessidade ou obrigação Progressão @progress evento ocorrendo no momento Futuro imediato @will evento ocorrerá no futuro imediato Entrada @entry conceito principal da sentença ou do escopo

O número de ALs utilizados, apesar de ser maior que na primeira versão do ConPor,

representa apenas um subconjunto do total de ALs previstos na UNL (cerca de 60 ALs). Alguns dos ALs não utilizados simplesmente por foram identificados no corpus. Outros, no entanto, não foram utilizados por exigirem conhecimento mais profundo para a sua identificação (extralingüístico), como é caso dos ALs de aspecto e de ponto de vista (@admire, @conclusion, @induce, @begin-just, @begin-soon, @complete, etc.). Como o ConPor se baseia exclusivamente em conhecimento lingüístico, tais ALs não foram considerados.

Os três primeiros ALs da Tabela 4 são associados a substantivos, sendo o primeiro (@pl) identificado por meio do traço “número” do próprio substantivo e os outros dois (@def ou @indef) por meio do traço “tipo” do artigo que acompanha esse substantivo.

Todos os demais atributos são associados ao evento ou ao estado da sentença. Os quatro seguintes (@future, @past, @unreal, @imperative) são identificados a partir do traço modo/tempo do verbo dessa sentença. Os cinco posteriores (@not, @possibility, @need, @progress, @will) são identificados a partir de constituintes que acompanham o verbo principal (advérbio de negação (não), no caso do @not e verbos auxiliares (poder, precisar, estar e ir, respectivamente), nos demais casos). Seguindo a especificação UNL, esses 9 ALs, bem como o AL @entry, foram associados ao conceito do verbo principal, nas estruturas com verbos que não são de ligação, e ao núcleo do predicado, nas estruturas com verbos de ligação.

14

Outro uso do AL @entry é a indicação de escopos. Na UNL, um escopo especifica um conjunto de relações entre UWs que podem ser referenciadas como uma única UW em outra relação. No corpus atual, escopos foram definidos para as sentenças com conjunções coordenativas e alternativas (identificadas pelas relações “and” e “or”, respectivamente) indicando que uma propriedade ou um evento se relaciona com ambos os conceitos ligados pela conjunção “and” ou com um conceito exclusivo entre os dois ligados pela disjunção “or”. Isso ocorre, por exemplo, para a sentença (9), cujo código UNL é dado na Figura 6, sendo o escopo definido na primeira relação (a relação conjuntiva “and”) e identificado por :01.

(9) O trabalho diário e a vida cotidiana exigirão mais iniciativa de sua parte.

Figura 6 – Exemplo do uso de escopos na UNL Uma vez que a especificação da UNL apenas indica a necessidade de “eleger” um dos

conceitos de um escopo para a atribuição do AL .@entry, convencionamos atribuir tal AL ao primeiro conceito envolvido no escopo (no exemplo, ao conceito work.@def). 3.1.2 Um exemplo

Para ilustrar as regras de projeção, tomemos como exemplo a sentença (8), aqui repetida, cuja estrutura sintática é ilustrada na Figura 7. As regras especificadas para a sua projeção sintático-conceitual são descritas em uma notação simplificada, na Figura 8. Na Seção 4, que descreve a implementação do sistema, apresentamos novamente esse exemplo, de forma completa. (8) A lua crescente ocorre amanhã.

frase(periodo(periodo_independente([suj(suj_simples(sn([aadne(sdet(artigo(a))),subst(lua),aadnd(aadnd_simples(sadj(adj(crescente))))]))),predicado(predv(svi(verbo(ocorre)))),aadvo(aadvo_simples(sadv(adv(amanhã))))]))) frase(periodo(periodo_independente([suj(suj_simples(sn([aadne(sdet(artigo(A))),subst(S),aadnd(aadnd_simples(sadj(adj(ADJ))))]))),predicado(predv(svi(verbo(V)))),aadvo(aadvo_simples(sadv(adv(AADVO))))])))

Figura 7 – Estrutura sintática da sentença (8)

A estrutura sintática da sentença (8), que serve de entrada para a primeira regra do exemplo, é mostrada na primeira linha da Figura 6. Para chegar a esse formato adequado de estrutura, a partir da saída do parser, são aplicados alguns procedimentos de pré-edição, conforme descrito em Specia & Rino (2002b). Essa mesma estrutura, para servir como entrada para as diversas sentenças, tem as palavras substituídas por variáveis, representadas por letras maiúsculas (por exemplo, V para o verbo, S para o substantivo, etc.). Conforme a

aoj(require.@entry.@future, :01) and:01(work.@entry.@def, life.@def) mod(work.@entry.@def, daily) mod(life.@def, quotidian) obj(require.@entry.@future, initiative) man(initiative, more) frm(initiative, side) pos(side, you)

15

segunda linha da Figura 6, para a aplicação das regras, essa estrutura também é decomposta em outras subestruturas.

Figura 8 – Regras de projeção para a sentença (8)

Na Figura 8, a regra “mapear” procura aplicar à entrada um dos três possíveis

templates do ConPor: t_Acao, t_Processo ou t_Estado. Para a sentença (8), o template adequado é t_Processo. Este decompõe a estrutura sintática de entrada em sujeito (SUJ), predicado (PRED) e adjunto adverbial (ADV) e ativa regras para mapear essas três subestruturas, retornando como saída o conjunto de resultados das três regras (EC1, EC2, EC3). A regra para predicados de processo (predicado_processo) simplesmente ativa uma regra específica para predicados verbais de processo (predicado_verbal_processo). Esta, da mesma forma, continua a decomposição da estrutura sintática da sentença, ativando agora uma regra para sintagmas verbais intransitivos de processo (svi_processo). Essa última regra acessa diretamente o Léxico Enriquecido para verificar os traços do verbo (V) e da sua canônica (CanV), recuperando o tempo de V (T), o conceito da canônica (UnlV) e as restrições de seleção para o sujeito dessa canônica (RestSuj). Por fim, essa regra associa ao conceito do verbo o rótulo de atributo @entry e o rótulo relativo ao tempo do evento (@present). Além disso, atribui o papel semântico “evento” a esse conceito. Todas essas operações estão sujeitas, certamente, às restrições apresentadas pelo template do verbo: sua classe deve ser “processo”, deve ser “intransitivo” e deve apresentar um sujeito (suj) como o argumento obrigatório da subcategorização.

A regra para o sujeito (sujeito_processo) ativa outra regra mais específica (sn_processo). Esta última decompõe a estrutura sintática do sujeito em artigo (ART), substantivo (SUBST) e adjunto adnominal (AADND), buscando no Léxico Enriquecido o

mapear(ES,EC) :- t_Acao(ES,EC); t_Processo(ES,EC); t_Estado(ES,EC).

t_ Processo([SUJ, PRED, ADV],[EC1,EC2,EC3]) :- predicado_processo(PRED,RestSuj,EC2),

sujeito_processo(SUJ,RestSuj,EC1), adverbio(ADV,EC3).

predicado_processo(PRED, RestSuj, EC) :- predicado_verbal_processo(PRED, RestSuj, EC). predicado_verbal_processo(PRED, RestSuj, EC) :- svi_processo(PRED, RestSuj, EC). svi_processo(VERBO, RestSuj, EC) :- v(sin(T),can(CanV),[VERBO|_]),

v(sin(_,int),unl(UnlV),cl(processo), rest([suj(RestSuj)]),[CanV|_]), concatena(evento:, UnlV, .@entry.@, T, EC). sujeito_processo(SUJ, RestSuj, EC) :- sn_paciente(SUJ, RestSuj, EC). sn_paciente([ART, SUBST, AADND], RestSuj, [EC1, EC2]) :- art(sin(D),_,[ART|_]),

s(_,unl(UnlS),sem(Tracos),[SUBST|_]), subconjunto(Tracos,RestSuj), concatena(paciente:, UnlS, .@, D, , EC1),

adndModo (AADND, EC2). adndModo(ADJ, modificador:UnlA) :- adj(can(CanA),[ADJ|_]), adj(unl(UnlA),[CanA|_]). adverbio(SADV, EC) :- sadv_tempo(SADV,EC). sadv_tempo(ADV, tempo:UnlAdv) :- adv(sin(cir_temp),unl(UnlAdv),[ADV|_]).

16

conceito do artigo, para verificar seu tipo (D), definido ou indefinido, e também o conceito do substantivo, aplicando sobre ele as restrições de seleção do verbo (RestSuj). Satisfeitas essas restrições, a regra associa o tipo do artigo como um rótulo de atributo UNL ao conceito do substantivo e atribui a esse conceito o papel “paciente”. Além disso, essa regra ativa outra, para mapear o adjunto adnominal.

A regra para adjunto adnominal acessa o léxico buscando o conceito do adjetivo (UnlAdj) e atribui a ele o papel semântico “modificador”. Por fim, a regra para o advérbio primeiramente ativa uma regra mais específica, para advérbios de tempo (sadv_tempo), que, por sua vez, acessa o Léxico Enriquecido para buscar o conceito do advérbio (UnlAdv), desde que satisfaça a restrição de ser um advérbio de tempo (cir_temp), e atribui a ele o papel semântico “tempo”.

O esquema geral da aplicação das regras de projeção sobre a estrutura sintática da sentença (8) é ilustrado na Figura 9.

Figura 9 – Esquema geral da aplicação das regras de projeção para sentença (8) A decomposição da estrutura sintática da sentença (8) em subestruturas, utilizadas

como entradas e manipuladas por essas regras, por sua vez, é esquematizada na Figura 10.

adverbio

sadv_tempo

tempo:UnlAdv

estrutura sintática

mapear

t_processo

sujeito_processo predicado_processo

sn_paciente predicado_verbal_ processo

adndModo paciente: UnlS.@D

svi_processo

evento:UnlV .@entry.@T

modificador: UnlA

[[paciente:UnlS.@D:, modificador:UnlA], [[evento:UnlV.@entry.@T], [tempo:UnlAdv]]]

17

frase(periodo(periodo_independente([suj(SUJ),predicado(PRED),aadvo(AADVO)])))

suj_simples(sn(SN)) predv(PREDV) aadvo_simples(AADVO) [aadne(sdet(artigo(A))),subst(S),aadnd(aadnd_simples(AADND))] svi(SVI) sadv(SADV)

‘a’ ‘lua’ sadj(adj(ADJ)) verbo(V) adv(ADV)

‘crescente’ ‘ocorre’ ‘amanhã’

Figura 10 – Subestruturas sintáticas da sentença (8)

Como pode ser verificado nesse exemplo, o corpo de cada regra possui outras regras de projeção para as partes da estrutura sintática de entrada e/ou, no caso de entradas com constituintes terminais, regras terminais para acessar o léxico, recuperar as informações necessárias sobre tais constituintes, via mecanismo de unificação, e realizar as devidas manipulações para transformá-lo em um conceito UNL com seu papel semântico. As regras podem retornar como resultado, além dos conceitos com seus papéis semânticos, valores de atributos lexicais do constituinte sintático que são utilizados por outras regras, como argumentos de entrada. Este é o caso, por exemplo, das regras para sintagmas verbais, que são decompostas em regras para “verbo” e “objeto”. As regras do verbo são aplicadas primeiramente e retornam as restrições de seleção para o objeto daquele verbo, as quais são usadas como entrada nas suas regras.

Dessa forma, a aplicação sucessiva das regras é feita até que os constituintes correspondam a elementos terminais da gramática. Nesse ponto, além do reconhecimento da estrutura sintática, as regras transformam as palavras da sentença em conceitos UNL, gerando parte da estrutura conceitual de tal sentença, que deverá ser anexada às estruturas parciais geradas para os demais constituintes.

Ao final da aplicação dessas regras, o resultado, que é a composição de todos os resultados das regras mais específicas, é a lista de conceitos a seguir:

[[paciente:moon.@def:, modificador:crescent], [[evento:occur.@entry.@present],

[tempo:tomorrow]]]

Essa lista pode ser considerada uma estrutura conceitual intermediária, cujos elementos são conceitos correspondentes aos constituintes da estrutura sintática, juntamente com seus papéis semânticos, aninhados em sublistas, segundo o próprio aninhamento da estrutura sintática. Nesse ponto, caso a sentença seja semanticamente ambígua, mais de uma lista é gerada, cada qual indicando uma interpretação diferente.

Para transformar essa estrutura intermediária na estrutura conceitual UNL, propriamente dita, são aplicadas as heurísticas de relacionamento, conforme será descrito na próxima seção.

18

3.2 Heurísticas de relacionamento

As heurísticas de relacionamento identificam, na estrutura intermediária resultante da aplicação das regras de projeção, os pares de conceitos UNL inter-relacionados. Ao identificar tais pares, elas buscam os RLs UNL correspondentes, de acordo com os papéis semânticos desses conceitos, gerando, assim, as relações binárias que irão compor o código UNL da estrutura sintática de entrada. Com a utilização dessas heurísticas, o mapeamento deixa de ser dirigido por modelos completos de estruturas conceituais pré-definidas, como ocorre na primeira versão do sistema e em outros sistemas de interpretação semântica orientados à templates (por exemplo, Wilensky & Arens, 1980), uma vez que os componentes da estrutura conceitual também são criados seguindo uma abordagem composicional, à medida que a estrutura sintática da sentença é interpretada.

Para atribuir as relações UNL aos pares de conceitos, as heurísticas percorrem a lista resultante da aplicação das regras de projeção, procurando relacionar primeiramente os constituintes mais internos dessa lista. Esse relacionamento é feito exclusivamente com base nos papéis semânticos dos constituintes, isto é, nesse ponto do mapeamento não é empregado nenhum tipo de conhecimento, lingüístico ou extralingüístico, para verificar a validade da relação ou, em casos de mais uma possibilidade de relacionamento, escolher pela opção mais apropriada. Consideramos que o conhecimento empregado pelas regras de projeção e a forma como tal projeção é realizada permitem que as listas de conceitos e papéis possuam, implicitamente, as relações semânticas entre tais conceitos. Consideramos, também, que tal mecanismo é suficientemente claro e conciso para evitar relacionamentos incorretos. Para tanto, as heurísticas são definidas de maneira não ambígua, para que haja uma correspondência unívoca entre os pares de papéis semânticos e relações, ou seja, para que a cada par de papéis semânticos específicos corresponda uma única relação UNL.

Com isso, na aplicação das heurísticas de relacionamento não ocorrem casos em que uma única lista dá origem a mais de um conjunto de relacionamentos. Para sentenças semanticamente ambíguas, são geradas duas ou mais estruturas intermediárias pelas regras de projeção. Neste caso, as heurísticas de relacionamento somente refletem os relacionamentos implícitos em cada lista, gerando um conjunto de relações diferente para cada lista tomada como entrada.

À medida que os conceitos são relacionados, uma nova lista é gerada, com os conceitos (sem os seus papéis semânticos) agrupados nas relações UNL. Para cada relacionamento entre dois conceitos, um deles é excluído da lista de origem, que vai sendo reduzida até que reste um único elemento, sempre o evento (ou propriedade) principal da sentença. Essa exclusão é feita sistematicamente, uma vez que é preciso certificar-se que o elemento excluído não tem relação com nenhum outro elemento da lista. Isso é garantido, contudo, pelo próprio aninhamento dos conceitos, pois um conjunto de constituintes agrupados no mesmo nível (um sintagma) tem sempre um elemento principal (núcleo) e um ou mais elementos secundários, modificadores ou complementos do principal. Desse modo, as heurísticas podem relacionar todos os elementos secundários com o principal, e depois excluí-los, deixando apenas o principal, para que seja relacionado com os demais elementos (núcleos de outros sintagmas) da sentença. O uso das heurísticas de relacionamento envolve alguns procedimentos auxiliares, sendo que os principais são descritos nas seções a seguir.

19

3.2.1 Busca e linearização Antes de aplicar as heurísticas para relacionar os constituintes, um procedimento genérico percorre a lista procurando por uma sublista plana, isto é, uma sublista que não contém sublistas mais internas (todos os seus constituintes estão no mesmo nível), independentemente dos papéis semânticos dos seus constituintes. Por exemplo, para a lista a seguir, resultante das regras de projeção sobre a sentença (8) da seção anterior:

[[paciente:moon.@def, modificador:crescent], [[evento:occur.@entry.@present],

[tempo:tomorrow]]] os constituintes paciente:moon.@def e modificador:crescent estão em uma sublista plana, portanto, nenhuma alteração é realizada na lista neste primeiro momento e esses constituintes são selecionados para serem relacionados. Uma sublista plana indica que existe uma relação sintática entre os constituintes dessa lista, nesse caso, a relação de adjunto adnominal entre um substantivo (lua) e um adjetivo (crescente). Dessa forma, os papéis semânticos desses constituintes permitem identificar qual é a relação semântica correspondente a essa relação sintática. Isso é possível porque o aninhamento em sublistas dos conceitos gerados pelas regras de projeção reflete o aninhamento sintático da sentença.

Caso não seja encontrada nenhuma sublista plana, uma sublista complexa, isto é, uma sublista contendo outras sublistas, é linearizada para que seus constituintes passem a fazer parte de uma mesma lista plana e possam, então, ser relacionados. Essa linearização corresponde à busca por uma relação sintática de mais alto nível entre dois constituintes. Tal procedimento é aplicado sucessivamente até que a lista apresente pelo menos um par de constituintes em uma sublista plana. No exemplo acima, isso ocorre com os dois últimos conceitos, isto é, [[evento:occur.@entry.@present], [tempo:tomorrow]]. O resultado do processo de linearização, nesse caso, é o seguinte:

[evento:occur.@entry.@present, tempo:tomorrow] 3.2.2 Extração dos papéis semânticos Sobre cada sublista plana resultante do procedimento anterior é aplicado um segundo procedimento, também genérico, que extrai os papéis semânticos dos constituintes a serem relacionados, isolando-os dos conceitos. Isso é feito somente por questões de otimização e maior clareza na especificação das heurísticas de relacionamento. No caso do exemplo, esse procedimento é aplicado inicialmente sobre os dois primeiros constituintes: paciente:moon.@def e modificador:crescent, e retorna o par de papéis semânticos paciente-modificador, e os conceitos moon.@def e crescent. 3.2.3 Atribuição dos RLs Para cada par de conceitos identificados pelo procedimento anterior, são aplicadas as heurísticas de relacionamento, propriamente ditas, que atribuem um RL da UNL, de acordo com os papéis semânticos de tais conceitos. Essas heurísticas são definidas com base em esquemas conforme os exemplos ilustrados a seguir:

20

rel(paciente-modificador, mod(P, M), 1). rel(posse-objeto, pos(O, P), 2). rel(paciente-evento, obj(E, P), 2). rel(objeto-modificador, mod(O, M), 1). rel(evento-objeto, obj(E, O), 1). rel(experimentador-evento, aoj(Ev, Ex), 2). rel(evento-maneira, man(E, M), 1). rel(evento-tempo, tim(E, T), 1).

Cada heurística é constituída por um determinado par de papéis semânticos (posse-

objeto, objeto-modificador, evento-objeto, etc.), os seus respectivos conceitos, representados por variáveis (O, P, M, etc.), o rótulo de relação UNL (pos, mod, obj, aoj, etc.) que indica a relação semântica UNL resultante da aplicação da heurística entre os dois conceitos, e o identificador do conceito, dentre esses dois, que deve ser mantido na lista de entrada (1 ou 2).

Por meio de um processo de unificação, os valores dos atributos das heurísticas são combinados com as informações provindas da lista recuperada e/ou linearizada e reescrita pelo procedimento descrito em 3.2.2. Para o caso do exemplo dado, a aplicação da primeira heurística sobre os papéis paciente-modificador e seus respectivos conceitos resulta na seguinte relação UNL:

mod(moon.@def, crescent)

Na Tabela 5, listamos as 24 relações UNL utilizadas no ConPor. Essas relações são obtidas em função das sentenças do corpus e representam apenas parte do conjunto das relações UNL originais (total de 41). Novamente, devido à expansão desse corpus, o número de relações é maior que o da primeira versão do sistema.

Tabela 5 – Relações UNL consideradas no ConPor

Nome da relação RL Agente agt

Conjunção and Coisa com atributo aoj

Beneficiário ben Co_coisa com atributo cao

Conteúdo cnt Duração dur Origem frm

Meta gol Maneira man

Modificador mod Coisa afetada obj

Disjunção or Lugar plc

Lugar inicial plf Lugar final plt Possuidor pos Parceiro ptn

Propósito pur Quantidade qua

Razão rsn

21

Cenário scn Tempo tim Destino to

A linearização incremental, realizada para a aplicação das heurísticas, garante que são combinados primeiramente os constituintes mais internos, mantendo o aninhamento da estrutura sintática, o que garante, por sua vez, que a dependência sintática original continue preservada, no caso das construções gramaticais regulares contempladas pelo ConPor, nas quais não há constituintes deslocados da sua ordem normal e não ocorrem casos de longa dependência, como extraposições.

É importante ressaltar, no entanto, que esse aninhamento sintático, que reflete a ordem dos constituintes na estrutura sintática, não tem implicação direta sobre a ordem das relações binárias UNL resultantes, pois essas relações são comutativas, pela própria definição da UNL. Para a sentença (10), por exemplo, ambos os códigos ilustrados na Figura 11 são válidos, entre outros tantos, ilustrando diferentes combinações na ordem das relações binárias.

(10) O sucesso pessoal está eminente hoje.

Figura 11 – Exemplos de diferentes ordens na estrutura conceitual da sentença (10)

A seguir, descrevemos o comportamento do modelo de mapeamento diante de construções não previstas como estruturas sintáticas de entrada. 3.3 Estruturas sintáticas não previstas

Conforme mencionado, diferentemente da primeira versão do sistema, o modelo de mapeamento generalizado do ConPor permite que estruturas sintáticas não previstas como entrada sejam contempladas a partir da combinação de regras parciais previstas para outras estruturas. Por exemplo, uma regra de projeção para verbos de ação, cuja estrutura sintática prevê como constituintes um “sujeito”, um “predicado” e um “advérbio”, pode apresentar diversas variações nesses constituintes, sendo algumas delas ilustradas na Tabela 6. Essas variações, no entanto, podem ter sido criadas para mapear partes de outras construções gramaticais.

Tabela 6 – Exemplos de possíveis combinações de regras para diferentes constituintes

Possíveis sujeitos

sujeito simples sujeito composto

Possíveis sujeitos simples

sintagma nominal formado por um artigo e um substantivo sintagma nominal formado por um artigo, um substantivo e um complemento nominal sintagma nominal formado por um artigo, um substantivo e um adjunto nominal

aoj(eminent.@entry, success.@def)mod(success.@def, personal) tim(eminent.@entry, today)

tim(eminent.@entry, today) aoj(eminent.@entry, success.@def)mod(success.@def, personal)

22

sintagma nominal constituído de um pronome substantivo sintagma nominal constituído de um substantivo sintagma nominal formado por um substantivo e um adjunto nominal

Possíveis predicados

predicado verbal predicado verbo-nominal

Possíveis predicados

verbais

sintagma verbal formado por um verbo transitivo direto e indireto, um objeto direto e um objeto indireto sintagma verbal formado por um verbo transitivo indireto e um objeto indireto sintagma verbal formado por um verbo transitivo direto, um objeto indireto e um predicativo do objeto sintagma verbal formado por um verbo intransitivo

Possíveis advérbios

advérbio simples advérbio composto

Possíveis advérbios

simples

sintagma preposicional formado por um preposição e um sintagma nominal sintagma adverbial constituído de um advérbio

Por exemplo, o sistema prevê inicialmente somente “sujeitos simples” para as

construções cujos macroconstituintes são “sujeito”, “predicado” e “advérbio”, para verbos de ação. No entanto, as regras definidas para outra construção, cujos macroconstituintes são “sujeito” e “predicado”, também para verbos de ação, prevêem um “sujeito composto”. Como a regra para mapear o “sujeito” de verbos de ação é especificada independentemente das demais, a regra para “sujeito composto” pode ser aplicada para contemplar o novo tipo de construção gramatical, cujos macroconstituintes são “sujeito composto”, “predicado” e “advérbio”.

Nessa tabela não foram decompostos todos os constituintes das estruturas parciais, apenas alguns dos mais genéricos. Outras combinações, portanto, seriam possíveis, incluindo aquelas envolvendo diferentes complementos nominais (CN), adjuntos adnominais (AADND) ou objetos diretos e indiretos (OD, OI). Para que as combinações sejam possíveis, contudo, os constituintes da sentença de entrada devem satisfazer as restrições impostas pelas regras. Além disso, as diversas partes, ao serem combinadas, podem dar origem a estruturas conceituais inadequadas, seja porque as regras não apresentam restrições suficientes ou porque foram definidas de maneira ambígua.

A seguir, apresentamos algumas questões sobre o modelo computacional que realiza o

processo de mapeamento, implementado no módulo Gerador Conceitual. Apresentamos, também, alguns números para uma análise intuitiva do custo de desenvolvimento e expansão da nova versão do ConPor, bem como para uma análise comparativa entre as suas duas versões desse sistema.

4 A implementação, os números e o custo do ConPor 4.1 Implementação

Como vimos, o processamento realizado pelo Gerador Conceitual consiste, basicamente, da aplicação das regras do Repositório Conceitual, controlada pelo mecanismo de inferência da linguagem Prolog (Colmerauer, 1977), usada para a implementação das regras de mapeamento (projeção e heurísticas). Essa linguagem Prolog foi adotada por

23

facilitar a implementação de gramáticas para a LN, principalmente porque é declarativa e possui um mecanismo de inferência próprio, com recursos como a unificação e o de retrocesso (backtracking). Ao fazer uso desses recursos, a linguagem facilita a simulação do processo de interpretação humana, que é não determinístico, permitindo a escolha por certos caminhos mesmo quando não é possível determinar, a priori, se são adequados. A recuperação do processo, no caso de uma regra incorreta, é feita automaticamente e de modo transparente pelo mecanismo backtracking, que anula a estrutura conceitual parcialmente construída a partir do ponto de escolha de tal regra e busca outra alternativa de análise. Um exemplo completo de implementação do mapeamento, simulando a utilização das regras de projeção e heurísticas de mapeamento, é ilustrado no Apêndice A. 4.2 Números

A seguir, apresentamos o montante de regras de projeção, heurísticas de relacionamento e entradas lexicais dos recursos do ConPor na sua versão atual. Com esse levantamento, o objetivo é a realização de uma análise, ainda que puramente intuitiva, sobre o custo de desenvolvimento e expansão dessa versão do ConPor (Seção 4.3) e também a realização de uma análise comparativa entre essa e a primeira versão do sistema (Seção 4.4). 4.2.1 Entradas lexicais

As entradas do Léxico Enriquecido representam as 694 palavras existentes nas

sentenças do corpus base, que totalizam 372 palavras diferentes. Ao todo, são 514 entradas lexicais, que correspondem a todas as diferentes palavras do corpus (ou palavras iguais, com diferente classe gramatical), na forma como aparecem na sentença, e às suas respectivas formas canônicas (quando, na sentença, a palavra já não estiver na sua forma canônica).

A Tabela 7 mostra o número total de entradas lexicais para canônicas e analisadas, em uma divisão baseada nas categorias sintáticas das palavras. O total geral corresponde ao número total de entradas, para formas canônicas e analisadas de todas as categorias.

Tabela 7 – Números de palavras e entradas lexicais

Categoria sintática Nº de entradas lexicais – canônicas

Nº de entradas lexicais – analisadas

Adjetivo 68 29 Advérbio 16 - Artigo 2 4 Conjunção 2 - Preposição 11 8 Pronome 11 5 Substantivo 159 40 Verbo 82 77

Total 351 163 Total geral 514

24

4.2.2 Regras de projeção

Para ilustrar os números das regras de projeção, dividimos essas regras nas categorias de regras intermediárias e de regras terminais. Para as 122 sentenças do corpus foram criadas 104 regras de projeção intermediárias e 188 regras de projeção terminais, totalizando 290, conforme ilustra a Tabela 8, que divide as regras de acordo com os constituintes que elas mapeiam. Procedimentos auxiliares, que assessoram as regras de mapeamento, mas são genéricos, isto é, aplicados a diversas regras, não foram considerados nesse computo.

Tabela 8 – Número de regras de projeção intermediárias e terminais

Regras intermediárias Tipo de regra Nº regras Regras para sentenças 16 Regras para predicados 23 Regras para sujeitos 10 Regras para adjuntos adnominais 5 Regras para complementos nominais 16 Regras para advérbios 16 Regras para predicativos do sujeito 5 Regras para objetos 13 Total 104

Regras terminais Tipo de regra Nº regras Regras para verbos 27 Regras para sintagmas nominais sujeitos 44 Regras para períodos sujeitos 2 Regras para adjuntos adnominais à esquerda 4 Regras para adjuntos adnominais à direita 4 Regras para preposições 9 Regras para sintagmas adverbiais 13 Regras para sintagmas adjetivais 13 Regras para sintagmas nominais objetos 28 Regras para sintagmas nominais diversos 42 Regras para períodos diversos 2

Total 188 Total geral 290

4.2.3 Heurísticas de relacionamento Para as 122 sentenças do corpus foram criadas 103 heurísticas de relacionamento, cada qual para relacionar dois pares de conceitos com papéis semânticos diferentes. 4.3 Custo de desenvolvimento e expansão

O custo de desenvolvimento da versão atual do ConPor é analisado, aqui, em termos do número de regras necessárias para mapear as construções do corpus. Somando-se as regras

25

de projeção às heurísticas de relacionamentos, o número total é 393. Esse número parece elevado, no entanto, Allen (1995) afirma que grandes quantidades de regras são necessárias em sistemas baseados em gramáticas gerativas que consideram informações semânticas, principalmente em sistemas cujo nível de granularidade das regras é alto. No ConPor, o nível de granularidade é alto em função da generalização pretendida, que exige que a decomposição das regras contemple todas as variações sintático-conceituais possíveis de constituintes significativos nas sentenças do corpus.

Além disso, como não encontramos outros sistemas de mapeamento sintático-conceitual baseados em gramáticas gerativas que fornecessem números para servir de base de confrontação, não realizamos análises comparativas. Tampouco, encontramos critérios ou limiares que nos permitissem julgar, de forma categórica, o custo do sistema com base nesses números.

O custo de expansão ou, simplesmente, o impacto da expansão do sistema, por sua vez, é analisado, aqui, pelo número de regras adicionais necessárias para a expansão do corpus em uma determinada proporção. Para realizar essa análise, estabelecemos uma divisão do processo de implementação do sistema e comparamos os números obtidos na primeira etapa do processo com os obtidos na segunda etapa. Como ponto de divisão, definimos, por julgar adequado, que cada etapa da análise é constituída pelas regras para mapear 50% das sentenças, na ordem na qual elas se encontram no corpus. É importante ressaltar que as 107 diferentes estruturas sintáticas estão uniformemente distribuídas nas sentenças do corpus. A Tabela 9 ilustra os números levantados para as duas etapas dessa divisão.

Tabela 9 – Número de regras nas duas etapas da segunda versão do ConPor

Tipo de regra Nº para 61 sentenças iniciais

Nº para 61 sentenças restantes

Regras de projeção intermediárias 78 26 Regras de projeção terminais 124 64 Heurísticas de relacionamento 75 28

Total 277 118 Conforme ilustram os números da tabela, a expansão do sistema, em termos do

número de regras para o mapeamento, não é linear, uma vez que os percentuais de regras de projeção intermediárias, de projeção terminais e de heurísticas de relacionamento já contempladas para a metade inicial das 122 sentenças são, respectivamente, 75%, 66% e 73%. A tendência é, portanto, que o número de regras a serem acrescentadas seja menor à medida que novas estruturas sintáticas são incorporadas ao corpus base, desde que essas estruturas estejam de acordo com o padrão definido para tal corpus.

Outra variável que poderia ser considerada no impacto da expansão do sistema é o número de entradas lexicais adicionadas na etapa de expansão. Esse número, no entanto, é diretamente proporcional à diversidade das palavras nas novas sentenças do corpus base. Uma vez que não utilizamos nenhuma técnica para otimizar a representação e o armazenamento das entradas lexicais, o custo de expansão dessas entradas pode ser considerado linear em relação ao crescimento do número de palavras ainda não pertencentes ao léxico. 4.4 Comparação das duas versões Nessa seção procuramos comparar as duas versões do ConPor, a primeira, não generalizada, cujo corpus é constituído de 36 sentenças, e a segunda, descrita neste relatório,

26

com o corpus expandido para 122 sentenças. Essa comparação é feita em termos do número de regras, de palavras e de entradas lexicais necessárias nas duas versões. Na análise realizada, computamos o total desses elementos na primeira versão do sistema, na segunda versão, considerando apenas as 36 sentenças iniciais e na segunda versão, considerando as 122 sentenças (incluindo as 36 sentenças originais). Os totais obtidos com relação às regras são ilustrados na Tabela 10 e com relação às palavras e entradas lexicais, na Tabela 11.

Tabela 10 – Número de regras nas duas versões do ConPor Tipo de regra ConPor – v1 (36

sentenças) ConPor – v2 (36

sentenças iniciais) ConPor – v2 (122

sentenças) Projeção 124 141 290 Relacionamento 33 58 103

Total 157 199 393

Tabela 11 – Número de palavras e entradas lexicais nas duas versões do ConPor Parâmetro ConPor – v1 (36

sentenças) ConPor – v2 (36

sentenças iniciais) ConPor – v2 (122

sentenças) Palavras diferentes 143 143 372 Total de palavras 213 213 694 Entradas Lexicais 206 206 514

Para o levantamento do número de regras da Tabela 10, consideramos somente as regras relevantes para o mapeamento, excluindo todas as regras auxiliares, como as de manipulação de strings, por exemplo. É importante ressaltar que as regras das duas versões do sistema não são definidas da mesma forma. Como vimos, na primeira versão, um template completo apresenta todas as regras para mapear determinada estrutura, sendo genéricas apenas algumas regras de acesso ao léxico para a atribuição do papel semântico aos conceitos.

O número de regras de projeção para mapear as 36 sentenças da segunda versão é pouco maior que o número da primeira versão, apesar do alto nível de granularidade das regras nessa segunda versão. Isso indica que grande parte das regras parciais é compartilhada para o mapeamento de diversas construções na segunda versão. Para mapear as 86 sentenças restantes, certamente, esse número passa a ser bem maior (290), em função da diversidade de construções nessas sentenças.

O número das regras (ou heurísticas) de relacionamento é consideravelmente maior na segunda versão do sistema, uma vez que, na primeira versão, a cada template é associada uma única regra de relacionamento, que responde pela distribuição de todos os conceitos mapeados por aquele template em uma estrutura conceitual UNL completa, como todas as suas relações. Na segunda versão, no entanto, há uma heurística para distribuir cada par de conceitos e papéis semânticos em uma dada relação UNL. Dessa forma, a uma única regra de relacionamento da primeira versão podem corresponder várias heurísticas da segunda, uma para cada relação da estrutura conceitual UNL que está sendo gerada.

Para ambos os tipos de regras, pode-se notar que, na segunda versão, o seu crescimento não é linear com relação ao aumento das construções gramaticais e sentenças do corpus, visto que grande parte das regras é reutilizada. Na Tabela 11, como podemos verificar, o número de entradas lexicais para as 36 sentenças nas duas versões do sistema é a mesma, uma vez que não modificamos a estrutura do Léxico Enriquecido para a segunda versão. Apesar de o aumento do número de entradas lexicais ser proporcional ao aumento das sentenças do corpus, com o crescimento desse

27

corpus, a chance das palavras se repetirem e, com isso, a chance de o Léxico Enriquecido já apresentar as entradas lexicais necessárias é maior, em função da delimitação do domínio. 5 Considerações finais

Neste relatório descrevemos o desenvolvimento da segunda versão do sistema ConPor, cuja função é o mapeamento de estruturas sintáticas em estruturas conceituais UNL. Nessa nova versão, o objetivo era obter um modelo mais genérico e flexível para o mapeamento sintático-conceitual. Para tanto, o processo de mapeamento foi reespecificado e reimplementado seguindo uma abordagem composicional e funcional, por meio de dois componentes principais: (a) uma gramática gerativo-transformacional de regras de projeção, que convertem os constituintes da sentença em conceitos UNL associados a seus respectivos papéis semânticos; e (b) um conjunto de heurísticas de relacionamento que distribuem esses conceitos em relações UNL, de acordo com seus papéis semânticos. Dessa forma, o mapeamento é realizado passo a passo, de forma hierárquica, partindo de regras mais genéricas para regras mais específicas, até que toda a estrutura sintática seja percorrida e todos os constituintes sejam transformados em conceitos com seus papéis semânticos.

Em função desse modelo de mapeamento, diferentemente da primeira versão do ConPor, grande parte das regras é reutilizada para mapear diversas estruturas sintáticas, evitando a repetição de informações. Além disso, como as regras são para estruturas parciais, estruturas sintáticas não previstas podem, eventualmente, ser contempladas a partir da combinação de regras para partes de estruturas previstas. Nesse caso, a corretude das estruturas conceituais obtidas não é garantida, uma vez que regras mais específicas, próprias para as novas estruturas sintáticas, com maiores restrições sobre os constituintes, poderiam ser aplicadas de forma mais eficaz.

Haja vista que a metodologia de desenvolvimento do sistema é baseada em corpus, para viabilizar a definição do modelo nessa nova versão, o corpus base foi expandido de modo a torna-se mais representativo de algumas regularidades da língua portuguesa, as quais deveriam ser contempladas por regras genéricas de mapeamento sintático-conceitual.

Apesar de ser restrito a um pequeno subconjunto de construções gramaticais da língua, o sistema pode ser facilmente estendido, com relação tanto ao número de estruturas sintáticas e sentenças previstas no corpus base quanto à complexidade gramatical de tais estruturas, por meio da inclusão de outras regras de mapeamento. As extensões do sistema, no entanto, devem manter, certamente, os princípios definidos como premissas para o sistema, como as restrições nas construções gramaticais e a não representação de conceitos ambíguos no Léxico Enriquecido, uma vez que não foram definidos mecanismos de desambiguação de sentido dos itens lexicais. Mecanismos dessa natureza (de desambiguação) exigiriam, naturalmente, o uso de outros recursos lingüísticos e/ou extralingüísticos, como ontologias.

A limitação na abrangência do sistema justifica-se pelo objetivo deste trabalho: propor um modelo efetivo de mapeamento, e não um sistema robusto. Os mecanismos de desambiguação, por sua vez, não foram previstos por conta das submetas estabelecidas para atingir tal objetivo: definir um modelo de mapeamento fundamentado na identificação das relações semânticas nas sentenças, dadas em função dos papéis semânticos dos constituintes, e não na resolução de problemas de seleção lexical. Além disso, a ambigüidade de sentido representa, por si só, um problema complexo, que constitui uma das possíveis extensões no modelo conceitual do sistema.

28

A linguagem utilizada na implementação do processo de mapeamento – Prolog – se mostrou adequada para essa tarefa por possuir um mecanismo de inferência próprio para a aplicação das regras de projeção e heurísticas de relacionamento, com recursos como a unificação e o backtracking.

Como principal fonte de informações lingüísticas semânticas, tanto para o Léxico Enriquecido quanto para as regras do Repositório Conceitual, o trabalho de Borba (1990) se mostrou bastante apropriado, principalmente devido à disponibilidade do dicionário completo com informações sobre os verbos da língua portuguesa, as quais permitiram identificar certas regularidades para a definição das regras.

Uma análise intuitiva do custo de desenvolvimento e de expansão do sistema do sistema foi realizada. Os números obtidos com essa análise servem tão somente para algumas inferências empíricas, visto que não foram comparados com números de outros sistemas. Com relação ao custo de expansão, em especial, foi possível verificar que o crescimento do número de regras de mapeamento, à medida que novas sentenças, com diferentes estruturas sintáticas, são incorporadas ao corpus base, não é linear. Nota-se, na verdade, que esse número tende a diminuir, uma vez que grande parte das regras parciais para as novas estruturas sintáticas é reutilizada a partir de regras definidas para outras estruturas.

Outra análise realizada compara as duas versões do sistema, a primeira, com os templates completos, e a segunda, com os templates generalizados. Essa comparação mostrou que o número de regras da segunda versão para mapear as mesmas 36 sentenças do corpus base inicial é pouco maior que o número da primeira versão, mas que parte considerável dessas regras é reutilizada para o mapeamento de novas construções gramaticais, o que não é possível na primeira versão, na qual novas regras teriam de ser definidas.

Essas análises, no entanto, nada nos dizem a respeito do desempenho do sistema para a tarefa de geração conceitual. Procedimentos dessa natureza para a avaliação do sistema, incluindo a análise humana dos códigos gerados e a decodificação manual desses códigos, com posterior análise da proximidade semântica entre as sentenças obtidas e as originais, serão relatados posteriormente.

Referências bibliográficas Allen, J. (1995). Natural Language Understanding. The Benjamin/Cummings Publishing

Company, California.

Borba, F.S. (1990). Dicionário gramatical de verbos do português contemporâneo do Brasil. Fundação Editora Unesp, São Paulo.

Chafe, W. (1970). Meaning and the Structure of the Language. University of Chicago Press, Chicago.

Chomsky, N. (1965). Aspects of the Theory of Syntax. The MIT Press, Cambridge.

Colmerauer, A. (1977). An Interesting Subset of Natural Language. Groupe Intelligence Artificielle, Faculté des Sciences de Luminv, Marseilee, France.

Dik, S.C. (1997). The theory of functional grammar part 1: the structure of the clause. Mouton de Gruyter, Berlim.

29

Pereira, F.C.N.; Warren, D.H.D. (1980). Definite Clause Grammars for Language Analysis – A Survey of the Formalism and a Comparison with Augmented Transition Networks. In Artificial Intelligence, 13, pp. 231-278.

Sossolote, E.R.C.; Zavaglia, C.; Rino, L.H.M.; Nunes, M.G.V. (1997)*. As Manifestações Morfossintáticas da Linguagem UNL no Português do Brasil. Série de Relatórios Técnicos do NILC, NILC-TR-97-02 (Notas do ICMC, no.36). São Carlos, Novembro, 76p.

Specia, L.; Rino, L.H.M. (2002a)*. O desenvolvimento de um léxico para a geração de estruturas conceituais UNL. Série de Relatórios Técnicos do NILC, NILC-TR-02-14. São Carlos, Setembro, 25p.

Specia, L.; Rino, L.H.M. (2002b)*. ConPor: um gerador de estruturas conceituais UNL. Série de Relatórios Técnicos do NILC, NILC-TR-02-15. São Carlos, Setembro, 39p.

UNL (2001). The Universal Networking Language (UNL) Specifications. UNU/IAS/UNL Center, Tokyo.

Vendler, Z. (1967). Linguistics in philosophy. Cornell University Press, New York.

Wilensky, R.; Arens, Y. (1980). PHRAN - a knowledge based natural language understander. In Proceedings of the 18th Annual Meeting of the Association for Computational Linguistics, pp. 117-121. Philadelphia, PA.

* Disponível em http://www.nilc.icmc.usp.br/nilc/publications.htm

30

Apêndice A

O modelo conceitual das regras de projeção foi definido na Seção 3. Apresentamos, aqui, o mesmo exemplo dessa seção, para a sentença (8) e sua respectiva estrutura sintática na Figura 12, de forma mais completa e mais fiel à sintaxe das regras, conforme foram implementadas, em Prolog. Desconsideramos apenas os procedimentos não relevantes ao mapeamento, como aqueles referentes à manipulação de strings.

(8) A lua crescente ocorre amanhã.

frase(periodo(periodo_independente([suj(suj_simples(sn([aadne(sdet(artigo(a))),subst(lua),aadnd(aadnd_simples(sadj(adj(crescente))))]))),predicado(predv(svi(verbo(ocorre)))),aadvo(aadvo_simples(sadv(adv(amanhã))))])))

Figura 12 – Estrutura sintática da sentença (8)

Primeiramente, apresentamos as regras de projeção e, em seguida, as heurísticas de relacionamento. Regras de projeção

Na Figura 13, apresentamos as regras de projeção especificadas para esse exemplo, partindo da estrutura sintática de entrada, até obter a lista com todos os conceitos da sentença e seus papéis semânticos. As entradas lexicais das palavras da sentença também são representadas.

Regras para sentença: mapear(ES, UNL) :- (t_Acao(ES,UNL); t_Estado(ES,UNL); t_Processo(ES,UNL)). t_Processo(frase(periodo(periodo_independente([suj(SUJ),predicado(PRED),aadvo(AADVO)]))),UNL) :- vePredProcesso(PRED,RestSuj,ListaPred), veSujProcesso(SUJ,RestSuj,ListaSuj), veAadvo(AADVO,ListaAadvo), concatena([ListaSuj],[ListaPred],[ListaAadvo], ListaConceitos), gera(ListaConceitos,UNL). Regras para predicado: vePredProcesso(predv(PREDV),RestSuj,Lista) :- vePredvProcesso(PREDV,RestSuj,Lista). vePredvProcesso(svi(SVI),RestSuj,Lista) :- veSviProcesso(SVI,RestSuj,Lista). veSviProcesso(verbo(V),RestSuj, [evento: Evento]) :- v(sin(T),can(CanV),[V|_],[]),

v(sin(_,int),unl(UnlV),cl(processo),rest([suj(RestSuj)]),[CanV|_],[]), concatena(UnlV, .@entry.@,T, Evento). Regras para sujeito: veSujProcesso(suj_simples(sn(SN)),Rest,Lista) :- veSnPaciente(SN,Rest,Lista). veSnPaciente([aadne(sdet(artigo(A))),subst(S),aadnd(aadnd_simples(AADND))],Rest,Lista) :- art(sin(D),_,[A|_],[]), veAadndModo(AADND,Modificador),

((s(_,unl(UnlS),sem(Tracos),[S|_],[]),

31

subconjunto(Tracos,Rest), concatena(UnlS, .@, D, Paciente), concatena([paciente:Paciente],Modificador,Lista)); (s(sin(N),can(CanS),[S|_],[]), s(_,unl(UnlS),sem(Tracos),[CanS|_],[]), subconjunto(Tracos,Rest), concatena(UnlS, .@, D, N, Paciente), concatena([paciente:Paciente],Modificador,Lista))). veAadndModo(sadj(adj(A)), [modificador:UnlA]) :- ((adj(can(CanA),[A|_],[]), adj(unl(UnlA),[CanA|_],[])); adj(unl(UnlA),[A|_],[])). Regras para advérbio: veAadvo(aadvo_simples(AADVO),Lista) :- veAadvo_simples(AADVO,Lista). veAadvo_simples(sadv(SADV),Lista) :- veSadvTempo(SADV,Lista). veSadvTempo(adv(ADV), [tempo:UnlAdv]) :- adv(sin(cir_temp),unl(UnlAdv),[ADV|_],[]). Entradas lexicais: art(sin(de),can(o)) --> [a]. s(sin(si),unl(moon),sem([concreto,animado,nao_humano])) --> [lua]. adj(unl(crescent)) --> [crescente]. v(sin(pres),can(ocorrer)) --> [ocorre]. v(sin(inf_pess,int),unl(occur),cl(processo),rest([suj([])])) --> [ocorrer]. adv(sin(cir_temp),unl(tomorrow)) --> [amanhã].

Figura 13 – Regras de projeção para a sentença (8)

Na Figura 14, o processo de mapeamento é simulado, instanciando-se as variáveis, de acordo com a estrutura de entrada e com os valores resultantes de regras mais específicas. Para tanto, representamos as variáveis instanciadas a partir da entrada em vermelho e aquelas instanciadas com valores resultantes da aplicação das regras em azul. Apesar de as regras serem aplicadas em uma abordagem top-down, ou seja, das regras mais genéricas para as mais específicas, os resultados dessa aplicação começam a ocorrer a partir das regras terminais. Portanto, nessa figura, representamos as regras na ordem na qual a estrutura conceitual é construída, isto é, das regras mais específicas para as mais genéricas, inversamente à ordem da Figura 13. Regras para predicado: veSviProcesso(verbo(ocorre),[], evento:occur.@entry.@present) :- v(sin(pres),can(ocorrer),[ocorre|_],[]), v(sin(_,int),unl(occur),cl(processo),rest([suj([]j)]),[ocorrer|_],[]), concatena(occur, .@entry.@, present, occur.@entry.@present). vePredvProcesso(svi(verbo(ocorre)),RestSuj,Lista) :- veSviProcesso(verbo(ocorre),RestSuj,Lista). vePredProcesso(predv(svi(verbo(ocorre))),RestSuj,Lista) :- vePredvProcesso(svi(verbo(ocorre)),RestSuj,Lista). Regras para sujeito: veAadndModo(sadj(adj(crescente)), [modificador:crescent]) :- ((adj(can(CanA),[A|_],[]), adj(unl(UnlA),[CanA|_],[])); adj(unl(crescent),[crescente|_],[])).

32

veSnPaciente([aadne(sdet(artigo(a))),subst(lua),aadnd(aadnd_simples(sadj(adj(crescente))))],[], [paciente:moon.@def,modificador:crescent]) :- art(sin(de),_,[a|_],[]), veAadndModo(sadj(adj(crescente)), [modificador:crescent]), ((s(_,unl(moon),sem([concreto,animado,nao_humano]),[lua|_],[]), subconjunto([concreto,animado,nao_humano],[]), concatena(moon, .@, def, moon.@def), concatena([paciente:moon.@def],[modificador:crescent],[paciente:moon.@def, modificador:crescent])); (s(sin(N),can(CanS),[S|_],[]), s(_,unl(UnlS),sem(Tracos),[CanS|_],[]), subconjunto(Tracos,Rest), concatena(UnlS, .@, D, N, Paciente), concatena([paciente:Paciente],Modificador,Lista))). veSujProcesso(suj_simples(sn([aadne(sdet(artigo(a))),subst(lua),

aadnd(aadnd_simples(sadj(adj(crescente))))])),[],Lista) :- veSnPaciente([aadne(sdet(artigo(a))),subst(lua), aadnd(aadnd_simples(sadj(adj(crescente))))],[],Lista).

Regras para advérbio: veSadvTempo(adv((amanhã)), [tempo:tomorrow]) :- adv(sin(cir_temp),unl(tomorrow),[amanhã|_],[]). veAadvo_simples(sadv(adv(amanhã))),Lista) :- veSadvTempo(adv(amanhã)),Lista). veAadvo(aadvo_simples(sadv(adv(amanhã)))),Lista) :- veAadvo_simples(sadv(adv(amanhã))),Lista). Regras para sentença: t_Processo(frase(periodo(periodo_independente([suj(suj_simples(sn([aadne(sdet(artigo(a))),subst(

lua),aadnd(aadnd_simples(sadj(adj(crescente))))]))),predicado(predv(svi(verbo(ocorre)))),aadvo(aadvo_simples(sadv(adv(amanhã))))]))),UNL) :-

vePredProcesso(predv(svi(verbo(ocorre))),[], [evento:occur.@entry.@present]), veSujProcesso(suj_simples(sn([aadne(sdet(artigo(a))),subst(lua),aadnd(aadnd_simples(sadj(

adj(crescente))))])),[], [paciente:moon.@def, modificador:crescent]), veAadvo(aadvo_simples(sadv(adv(amanhã))), [tempo:tomorrow]), concatena([paciente:moon.@def, modificador:crescent], [[evento:occur.@entry.@present], [tempo:tomorrow]], [[paciente:moon.@def, modificador:crescent], [[evento:occur.@entry.@present], [tempo:tomorrow]]]), gera([[paciente:moon.@def, modificador:crescent], [[evento:occur.@entry.@present], [tempo:tomorrow]]],UNL). mapear(frase(periodo(período_independente([suj(suj_simples(sn([aadne(sdet(artigo(a))),subst (lua),aadnd(aadnd_simples(sadj(adj(crescente))))]))),predicado(predv(svi(verbo(ocorre)))),aadvo(aadvo_simples(sadv(adv(amanhã))))]))), [[paciente:moon.@def, modificador:crescent], [[evento:occur.@entry.@present],

[tempo:tomorrow]]])) :- (t_Acao(ES,UNL); t_Estado(ES,UNL); t_Processo(frase(periodo(periodo_independente([suj(suj_simples(sn([aadne(sdet

(artigo(a))),subst(lua),aadnd(aadnd_simples(sadj(adj(crescente))))]))),predicado (predv(svi(verbo(ocorre)))),aadvo(aadvo_simples(sadv(adv(amanhã))))]))), [[paciente:moon.@def,

modificador:crescent], [[evento:occur.@entry.@present], [tempo:tomorrow]]])).

Figura 14 – Simulação da aplicação das regras de projeção para a sentença (8)

33

Heurísticas de relacionamento

A aplicação das heurísticas é ativada pelo predicado “gera(ListaConceitos,UNL)” do template “t_Processo”, que tem como argumento de entrada a lista de conceitos com seus papéis semânticos (ListaConceitos), neste caso:

[[paciente:moon.@def, modificador:crescent], [[evento:occur.@entry.@present],

[tempo:tomorrow]]]

Os primeiros constituintes a serem relacionados são os dois primeiros, após a busca e extração dos conceitos da lista (a linearização, nesse caso, é desnecessária). A heurística aplicada para o par de papéis semânticos paciente-modificador é a seguinte:

rel(paciente-modificador, mod(P, M), 1). A aplicação dessa heurística resulta na relação UNL de modo, entre o paciente e seu

modificador, ou seja: mod(moon.@def, crescent)

Essa relação é um resultado parcial do processo de mapeamento, sendo, portanto,

acrescentado à lista de relações UNL resultantes. Essa lista, vazia até então, torna-se: [mod(moon.@def, crescent)]

A lista de entrada, após a aplicação de uma heurística, tem um dos seus componentes

excluído. Neste caso, o segundo componente (modificador:crescent) é excluído, uma vez que a heurística indica que o primeiro componente deve ser mantido. A lista alterada, ilustrada a seguir, passa a ser utilizada como entrada para uma nova aplicação de todos os procedimentos, para que dois outros componentes sejam relacionados:

[[paciente:moon.@def], [[evento:occur.@entry.@present], [tempo:tomorrow]]] Após a aplicação dos procedimentos de busca, linearização e extração, os

componentes a serem relacionados são os resultantes da linearização de [[evento:occur.@entry.@present], [tempo:tomorrow]], ou seja:

[evento:occur.@entry.@present, tempo:tomorrow]

A heurística utilizada é a ilustrada abaixo, que retorna a relação UNL de tempo, mostrada em seguida, relacionando o evento da sentença e o tempo em que ele ocorre. Novamente, o segundo componente é excluído.

rel(evento-objeto, obj(E, O), 1).

tim(occur.@entry.@present, tomorrow)

Essa relação é incorporada à lista de resultados intermediários, que se torna: [mod(moon.@def, crescent), tim(occur.@entry.@present, tomorrow)]

Com a exclusão do segundo constituinte, a lista de entrada também é alterada, tornando-se:

[[paciente:moon.@def], [evento:occur.@entry.@present]]

34

Novamente, os três procedimentos são aplicados sobre essa lista, gerando a lista com o resultado final do processo de mapeamento, ilustrada na Figura 15.

Figura 15 – Resultado do processo de mapeamento da sentença (8)

Sobre a estrutura da Figura 15 ainda são aplicados alguns procedimentos de pós-edição, de modo que ela se apresente no formato dos documentos UNL, inserindo, por exemplo, marcadores de início e fim de sentença e documento, conforme descrito em Specia & Rino (2002b).

[mod(moon.@def, crescent), tim(occur.@entry.@present, tomorrow), obj(occur.@entry.@present, moon.@def)]