O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O...

15
O desenho do novo Folheador Relat´ orio T´ ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca, FCCN [email protected] Resumo Neste relat´ orio ´ e apresentado o novo Folheador, um servi¸ co na rede que permite navegar e explorar rela¸c˜ oes semˆ anticas da l´ ıngua portuguesa. Al´ em de facilitar a pesquisa em diferentes bases de conhecimento lexical para o portuguˆ es, uma caracter´ ıstica importante do sistema ´ e a sua liga¸c˜ ao com uma interface de corpos que permite a explora¸c˜ ao de palavras relacionadas em contextos reais. Uma outra caracter´ ıstica do sistema ´ e a apresenta¸c˜ ao de diferentes valores de confian¸ca, calculados previamente, para cada rela¸ ao semˆ antica. Por fim, o sistema engloba tamb´ em uma interface gr´ afica que permite explorar visualmente todas as rela¸ oes semˆ anticas de uma palavra pr´ e-selecionada no Folheador. 1 Introdu¸c˜ao Neste relat´ orio ´ e apresentado o novo Folheador 1 (figura 1), um servi¸co que surge da necessidade da cria¸c˜ ao de uma interface na rede capaz de manusear e apresentar rela¸ oes semˆ anticas para os recursos p´ ublicos disponibilizados pela Linguateca 2 . De referir que a aparˆ encia do Folheador foi inspirada no antigo Folheador, criado por Hugo Gon¸calo Oliveira para o PAPEL 3 (Gon¸calo Oliveira, Santos e Gomes, 2010). De modo similar ao antigo Folheador, esta nova vers˜ ao foi, primeiramente, pensada para visualizar as rela¸c˜ oes semˆ anticas presentes no recurso referido anteriormente. Contudo, ao longo do seu desenvolvimento, os requisitos mudaram e foi necess´ ario repensar toda a estrutura inicial de modo a possibilitar a inclus˜ ao de novos recursos. Foi atrav´ es desta necessidade que o ucleo 4 foi alvo de arias reestrutura¸c˜ oes durante o seu desenvolvimento, contribuindo por sua vez para um sistema mais otimizado e robusto. Relativamente ` a interface, esta foi desenhada para facilitar a pesquisa nas v´ arias bases de conhecimento lexical para o portuguˆ es, assim como a liga¸c˜ ao a uma interface de corpos, permitindo deste modo a explora¸c˜ ao das palavras relacionadas em contextos reais. Por fim, 1 http://linguateca.pt/Folheador 2 http://www.linguateca.pt 3 http://linguateca.pt/PAPEL 4 ucleo (Back Office) ´ e, tradicionalmente, o nome a que se chama o resto do sistema, que inclui o conte´ udo, a que o Folheador d´ a acesso. surgiu tamb´ em a necessidade de apresentar a informa¸c˜ ao dispon´ ıvel de um modo mais visual. Deste modo, foi criada uma interface gr´ afica, que permite a visualiza¸c˜ ao de todas as rela¸c˜ oes semˆ anticas de uma palavra, selecionada no Folheador, num grafo. Um outro requisito inicial passava pela atribui¸ ao de um valor de confian¸ca a cada rela¸c˜ ao semˆ antica. Foram criados dois tipos diferentes de valores de confian¸ca: um valor simplesmente calculado tendo em conta a co- ocorrˆ encia dos termos da rela¸c˜ ao nos corpos disponibilizados pela Linguateca; e outro considerando o n´ umero de recursos em que a rela¸c˜ ao semˆ antica ´ e contemplada, ou seja o umero de contextos diferentes de que a rela¸c˜ ao foi extra´ ıda. Depois de apresentadas as principais caracter´ ısticas do sistema, o restante relat´ orio cont´ em mais cinco sec¸ oes: asec¸c˜ ao 2 que, de uma forma geral, apresenta a arquitetura do sistema; em seguida as sec¸c˜ oes 3 e 4 descrevem em pormenor como foi abordada a implementa¸c˜ ao da Interface 5 e do ucleo, respetivamente; e por fim, antes de serem apresentadas as novas perpetivas de trabalho futuro na sec¸ ao 6, ao ainda apresentadas algumas observa¸ oes sobre todo o trabalho desenvolvido, no ˆ ambito do projeto, na sec¸c˜ ao 5. 5 Entenda-se Interface, como sendo a parte do sistema relacionada com a intera¸ c˜ao com o utilizador, tradicionalmente chamado em inglˆ es de Front Office.

Transcript of O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O...

Page 1: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

O desenho do novo FolheadorRelatorio Tecnico

31 de Dezembro de 2011

Hernani CostaLinguateca, [email protected]

Resumo

Neste relatorio e apresentado o novo Folheador, um servico na rede que permite navegar e explorarrelacoes semanticas da lıngua portuguesa. Alem de facilitar a pesquisa em diferentes bases deconhecimento lexical para o portugues, uma caracterıstica importante do sistema e a sua ligacaocom uma interface de corpos que permite a exploracao de palavras relacionadas em contextos reais.Uma outra caracterıstica do sistema e a apresentacao de diferentes valores de confianca, calculadospreviamente, para cada relacao semantica. Por fim, o sistema engloba tambem uma interface graficaque permite explorar visualmente todas as relacoes semanticas de uma palavra pre-selecionada noFolheador.

1 Introducao

Neste relatorio e apresentado o novo Folheador1

(figura 1), um servico que surge da necessidadeda criacao de uma interface na rede capazde manusear e apresentar relacoes semanticaspara os recursos publicos disponibilizados pelaLinguateca2.

De referir que a aparencia do Folheador foiinspirada no antigo Folheador, criado por HugoGoncalo Oliveira para o PAPEL 3 (GoncaloOliveira, Santos e Gomes, 2010). De modosimilar ao antigo Folheador, esta nova versaofoi, primeiramente, pensada para visualizar asrelacoes semanticas presentes no recurso referidoanteriormente. Contudo, ao longo do seudesenvolvimento, os requisitos mudaram e foinecessario repensar toda a estrutura inicial demodo a possibilitar a inclusao de novos recursos.Foi atraves desta necessidade que o Nucleo4 foialvo de varias reestruturacoes durante o seudesenvolvimento, contribuindo por sua vez paraum sistema mais otimizado e robusto.

Relativamente a interface, esta foi desenhadapara facilitar a pesquisa nas varias bases deconhecimento lexical para o portugues, assimcomo a ligacao a uma interface de corpos,permitindo deste modo a exploracao das palavrasrelacionadas em contextos reais. Por fim,

1http://linguateca.pt/Folheador2http://www.linguateca.pt3http://linguateca.pt/PAPEL4Nucleo (Back Office) e, tradicionalmente, o nome a

que se chama o resto do sistema, que inclui o conteudo, aque o Folheador da acesso.

surgiu tambem a necessidade de apresentar ainformacao disponıvel de um modo mais visual.Deste modo, foi criada uma interface grafica,que permite a visualizacao de todas as relacoessemanticas de uma palavra, selecionada noFolheador, num grafo.

Um outro requisito inicial passava pelaatribuicao de um valor de confianca a cadarelacao semantica. Foram criados dois tiposdiferentes de valores de confianca: um valorsimplesmente calculado tendo em conta a co-ocorrencia dos termos da relacao nos corposdisponibilizados pela Linguateca; e outroconsiderando o numero de recursos em que arelacao semantica e contemplada, ou seja onumero de contextos diferentes de que a relacaofoi extraıda.

Depois de apresentadas as principaiscaracterısticas do sistema, o restante relatoriocontem mais cinco seccoes: a seccao 2 que,de uma forma geral, apresenta a arquiteturado sistema; em seguida as seccoes 3 e 4descrevem em pormenor como foi abordadaa implementacao da Interface5 e do Nucleo,respetivamente; e por fim, antes de seremapresentadas as novas perpetivas de trabalhofuturo na seccao 6, sao ainda apresentadasalgumas observacoes sobre todo o trabalhodesenvolvido, no ambito do projeto, na seccao 5.

5Entenda-se Interface, como sendo a parte dosistema relacionada com a interacao com o utilizador,tradicionalmente chamado em ingles de Front Office.

Page 2: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

Figura 1: Pagina inicial do Folheador.

Núcleo

PHP

Interface

Base de DadosSQLite

Recursos Externos

AC/DC

VARRA

RecursosSemânticos

(triplos)

pedido

resposta

Figura 2: Arquitetura do sistema.

2 Arquitetura do sistema

A arquitetura inerente ao Folheador eapresentada na figura 2. Como se podeverificar, esta divide-se em duas componentes, aInterface e o Nucleo. A Interface engloba todosos componentes necessarios para interagir como utilizador. Mais especificamente, contem apropria interface do Folheador que, por sua vez,possibilita a invocacao de recursos externos(especificamente, o AC/DC 6 e o VARRA 7

) e do visualizador grafico. Por sua vez, oNucleo disponibiliza, a Interface, a base de

6http://www.linguateca.pt/ACDC7http://www.linguateca.pt/VARRA

dados que contem toda a informacao, ou seja,relacoes semanticas, valores de confianca, etc. Etambem no Nucleo que estao todas as linguagensdedicadas que foram usadas na criacao da basede dados.

O unico requisito do sistema e ter umservidor Apache8 instalado para que esteinterprete a linguagem PHP. A escolha doPHP, como linguagem de programacao principaldeste projeto, deve-se a sua portabilidade9, livredisponibilizacao e por ser uma linguagem quee interpretada do lado do servidor, permitindo

8http://httpd.apache.org9Nao esta dependente da plataforma onde e executado.

Page 3: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

deste modo nao sobrecarregar o cliente.

Em seguida apresenta-se detalhadamente aestrutura da Interface (seccao 3) e como podeser efetuada a manutencao do Nucleo (seccao 4).

3 A Interface do Folheador

Como se sabe, a interface de um sistemainformatico e toda a vertente de software, nestecaso paginas na rede, que esta direcionada aoutilizador. Contudo, por detras da interface,visıvel ao utilizador, existe um conjunto deprogramas que estao a correr para que estafuncione, veja-se a figura 3.

De modo a ser mais percetıvel, saoapresentados em detalhe os tres modulosque a Interface engloba (Modulo: folheador,visualizador e recursos externos), assim comouma pequena descricao dos mesmos:

a) folheador

i) index.php → pagina principal

ii) funcoes indice.php → funcoesauxiliares

iii) style.css → folha de estilos

b) visualizador

i) visualizador.php → pagina principal

ii) jit.js → biblioteca JIT 10

iii) visualizador.js → modeloJavaScript11

iv) base.css → folha de estilos

c) recursos externos

i) reencaminhaACDC.php → cria query

ii) chamaACDC.php → envia pedido com aquery, criada em i), ao AC/DC

iii) reencaminhaVARRA.php → filtra asrelacoes que nao estao presentes noVARRA

iv) chamaVARRA.php → envia pedido aoVARRA

Modulo folheador

O modulo folheador abrange todos osprogramas responsaveis por apresentar ainformacao ao utilizador.

10http://thejit.org/downloads/Jit-2.0.0b.zip11http://thejit.org/static/v20/Jit/Examples/

Hypertree/example1.html

De modo a respeitar as boas praticasde programacao, o formato (ficheirostyle.css) e o conteudo (ficheiro index.phpe funcoes indice.php) do modulo folheadorforam separados. Mais especificamente, e napagina principal, ficheiro index.php, ondee apresentada toda a informacao visıvel aoutilizador. Contudo, o index.php so contema estrutura logica do Folheador, ou seja todasas funcoes necessarias para que as interacoesdo utilizador sejam realizadas com sucessoestao descritas no ficheiro funcoes indice.php(contem todas as funcoes auxiliares usadasrepetidamente pelo index.php). Em adicao, ecomo referido anteriormente, foi criada uma folhade estilos (ficheiro style.css) para formatar ainformacao apresentada na pagina principal.

Como podemos ver na figura 3, existe umaligacao a base de dados e outra ao ficheirolog. Embora se considere que a base de dadosfaz parte do Nucleo, esta e apresentada nafigura de modo a que se compreenda que omodulo folheador vai buscar toda a informacaoa mesma. Por fim, temos o ficheiro log que, comoo proprio nome indica, e onde todo o historicode pesquisas e interacoes com a Interface eguardado. Alem de permitir perceber quaisas pesquisas mais frequentes, futuramente ainformacao guardada neste ficheiro possibilitara,a analise do desempenho do sistema e o estudode futuras melhorias.

Modulo visualizador

O modulo visualizador engloba quatroficheiros (ver figura 3).

O visualizador.php, pagina principal dainterface grafica, recebe um objeto em JavaScriptObject Notation (JSON12), da pagina principaldo Folheador (index.php). Em seguida, atravesde HTTP Request (do tipo GET), o modeloem JavaScript visualizador.js encarrega-se detransformar este objeto num grafo. Este processoe realizado usando os metodos disponibilizadospela biblioteca JIT13 (jit.js).

Por fim, e a semelhanca do modulofolheador, foi criada uma folha de estilospara formatar a disposicao da interface (ficheirobase.css).

Na figura 9 e apresentado o aspeto grafico queeste modulo apresenta.

12http://www.json.org13Acronimo para JavaScript InfoVis Toolkit.

Page 4: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

index.php

funcoes_indice.php

visualizador.php

visualizador.js

base.css

jit.js

style.css

Módulo folheador

Módulo visualizador Módulo recursos externos

chamaVARRA.php

reencaminhaVARRA.php

chamaACDC.php

reencaminhaACDC.php

logBase

de

Dados

Figura 3: Arquitetura da Interface do sistema.

Modulo recursos externos

O terceiro modulo agrega os chamadosrecursos externos, mais especificamente oAD/DC (Santos e Bick, 2000; Santos, 2011) eo VARRA (Freitas et al., 2010).

Em seguida sao apresentadas as solucoesencontradas para invocar, tanto o AC/DC comoo VARRA:

∗ no caso do AC/DC o ficheiroreencaminhaACDC.php serve para criara expressao de pesquisa: ‘MU (meet[lema="’ .$termo1. ‘"] [lema="’.$termo2 .‘"] s)’, onde $termo1 e$termo2 correspondem aos dois termos deuma determinada relacao semantica. Emseguida essa expressao e enviada para oficheiro chamaACDC.php. Este submetede uma forma automatica um formulariocom os dados necessarios para invocar oprograma em Perl “/cgi-bin/acesso.pl”que se encontra no servidor da Linguateca;

∗ no caso do VARRA, o ficheiroreencaminhaVARRA.php filtra somente asrelacoes que estao contempladas no VARRAe o ficheiro chamaVARRA.php submete, deuma forma automatica, um formulariocom os dados necessarios para invocar oprograma em Perl “/cgi-bin/varra.pl”,

que tambem se encontra no servidor daLinguateca.

3.1 Pesquisa e Navegacao

O Folheador permite pesquisar de quatro modosdiferentes:

a) por um termo14: Palavra ou Termo 1,ver figura 4. Ao mesmo tempo e possıvelselecionar a Relac~ao a procurar (ver figura5);

b) por dois termos: Palavra ou Termo 1e Termo 2 (figura 4). Ao mesmo tempoe possıvel selecionar a Relac~ao a procurar(figura 5);

c) selecionando um determinado termonos resultados apresentados: todosos termos resultantes da pesquisa temum endereco associado. Ao clicar numdeterminado termo, o Folheador tem o mesmocomportamento que em a);

d) apresentar todas as relacoes: paraapresentar todos os resultados, as caixas depesquisas tem de estar em branco, so destemodo e apresentada toda a informacao, deuma forma aleatoria, contida na base de dadosdo Folheador.

14Um termo pode conter mais que uma palavra, porexemplo “correio electronico”.

Page 5: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

Figura 4: Interface de pesquisa do Folheador.

Alem da pesquisa, o Folheador permite filtraros resultados. Para isso estao disponıveis asseguintes opcoes:

1. filtrar por relacao: esta opcao (ver figura5 e tabela 1) permite filtrar os resultadospor:

1.1 relacao semantica (por exemplo, PARTEe LOCAL);

1.2 sub-relacao semantica (por exemplo,PARTE DE, LOCAL ORIGEM DE);

1.3 apresentar todos as relacoes (ou seja,opcao “> Todas <”, figura 5 e tabela1).

2. filtrar por recurso: esta opcao soe apresentada caso o Folheador devolvainformacao para uma determinada pesquisa.Neste menu, somente sao apresentados osrecursos ou recurso em que existe o termo outermos que sao pesquisadas (veja-se a figura6).

De modo a nao sobrecarregar o sistema, osresultados das pesquisas sao apresentados emvarias paginas, em que cada uma mostra 20resultados (na figura 4 somente sao apresentados10 resultados para exemplificar). Para

alterar este valor, basta alterar a variavel$linhas por pagina, no ficheiro index.php. Anavegacao nas paginas e conseguida atraves domenu, apresentado no canto inferior direito databela de resultados, que contem a numeracaodas paginas.

De referir tambem que os resultados acessıveisao utilizador estao limitados. Para alteraro valor, que por defeito e 1000, e necessarioalterar a variavel $MAX RESULTADOS no ficheiroindex.php.

3.2 Grau de Confianca dos Dados

Com o objetivo de associar um grau de confiancaaos triplos extraıdos dos varios recursos forampensados dois tipos de valores de confianca:simples e composto. O valor simples resultado numero de vezes que os termos de cadatriplo co-ocorrem nos corpos disponibilizadospelo AC/DC. Para a criacao do mesmo, foi criadoum ficheiro em PHP para invocar o CQP (Evert,2005), instalado no servidor da Linguateca. Oprograma percorre todos os triplos, que a prioriestao na base de dados, e procura no AC/DCo numero de co-ocorrencias dos seus termos emtodas as frases dos corpos. Em seguida essesvalores sao guardados na base de dados. Para

Page 6: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

Figura 5: Relacoes subjacentes ao Folheador.

Figura 6: Recursos subjacentes ao Folheador.

Page 7: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

mais detalhes sobre o modo que o valor simplesfoi implementado veja-se a seccao 4.

Foi tambem pensado um valor composto.Este resultaria do numero de co-ocorrencias dostermos, conectados atraves de padroes lexico-sintaticos que denotassem a relacao semanticados triplos (pensamos usar os mesmos padroes 15

usados no projeto VARRA). No entanto, a suaimplementacao nao foi possıvel devido ao curtoespaco de tempo do projeto.

Contudo, se considerarmos que umdeterminado triplo foi extraıdo em maisque um recurso, poderemos inferir que este temuma maior probabilidade de estar correto do queoutro triplo que so foi extraıdo de um recurso(ver coluna ‘RECURSO(S)’ da figura 4). Destemodo, pode-se interpretar este resultado comoum outro valor de confianca associado ao triplo.

3.3 Ligacoes a outros Recursos

Neste momento, a interface disponibiliza ligacaoa dois recursos da Linguateca, nomeadamente aoAC/DC e ao VARRA (ver figura 2).

Sendo o AC/DC um servico na rede quefornece acesso a um grande conjunto de corpos dalıngua portuguesa, a sua inclusao foi imperativa.No interface do Folheador, em apenas um clique,e possıvel a consulta de todas as frases nos corposdo AC/DC que contem os dois argumentos de

um triplo (ver figura 4, ıcone ). A figura7 apresenta alguns resultados para as palavras“computador” e “aparelho” no contexto doAC/DC.

Um outro servico disponibilizado pelaLinguateca, que tambem e possıvel invocaratraves do interface, e o VARRA. Este servico usaum conjunto de padroes lexico-sintacticos 15 quenormalmente transmitem relacoes semanticas,que podem ser encontradas em corpos. Sao elas:

a) SINONIMO DE

b) HIPERONIMO DE

c) PARTE DE

d) CAUSADOR DE

e) FINALIDADE DE

f) INSTRUMENTO PARA

Depois de clicar no endereco do VARRA(ver figura 4, ıcone ), o Folheador passaos parametros necessarios ao servico. Este,depois de processar os dados, apresenta somenteas frases em que os termos co-ocorrem como padrao semantico correspondente a relacao

15http://linguateca.pt/acesso/padroes_relacoes_semanticas.php

semantica. Na figura 8 sao apresentadas duasfrases retornadas pelo servico para a relacao“computador HIPONIMO DE maquina”.

3.4 O visualizador grafico

De modo a facilitar a visualizacao da informacaodisponibilizada pela interface do Foheador, foicriado um visualizador grafico (ver figura 9,ıcone ). Este, alem de mostrar visualmenteinformacao de um determinado termo, permitenavegar graficamente na informacao apresentada.Como podemos ver na imagem 9, o visualizadorgrafico apresenta os triplos a que um determinadotermo (neste caso ‘computador’, ver figura 5) estaassociado, as suas relacoes semanticas e os termosa que esta ligado (por exemplo, “HIPONIMO DEmaquina”).

Como referido na seccao 3.1, o Folheadordisponibiliza varias opcoes de pesquisa, noentanto somente duas dao acesso ao visualizadorgrafico: pesquisar a) por um termo e c)selecionando um determinado termo nosresultados apresentados (para mais detalhe sobreestas duas opcoes ver seccao 3.1). Somenteatraves destas duas opcoes e possıvel visualizaro termo que procuramos no visualizador grafico.Uma vez no visializador, e possıvel clicar emqualquer no do grafo, permitindo deste modoque possamos com maior facilidade analisar osnos relacionados com o termo que procuramos.

No seu desenvolvimento, optamos por usar oJavaScript InfoViss Toolkit16 devido a inumerasvantagens, tais como: a sua facilidade deintegracao com o Folheador, a sua linguagemde programacao (JavaScript), o seu desempenhona realizacao na tarefa pretendida e a suadisponibilidade (acesso livre).

4 O Nucleo do Folheador

O Nucleo do Folheador e composto por umconjunto de programas, ficheiros e uma base dedados, e pode ser dividido em duas partes: aprimeira que tem como objetivos criar toda aestrutura da base de dados e inserir os valores namesma (ver figura 10); a segunda parte abrangetodos os programas necessarios ao calculo einsercao dos valores de confianca (ver figura 12).Em seguida e apresentada uma pequena descricaodos ficheiros que aparecem nas figuras referidasanteriormente (10 e 12):

a) Descricao da figura 10:

i) criaBD.php → contem toda a estruturada base de dados; permite criar a base de

16http://thejit.org

Page 8: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

Figura 7: Algumas frases retornadas pelo AC/DC para as palavras aparelho e computador.

Figura 8: Frases que exemplificam a relacao computador HIPONIMO DE maquina.

Figura 9: Interface grafica do Folheador.

Page 9: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

dados

ii) insereDadosNaBD.php→ permite inserirtriplos na base de dados

iii) funcoes insere.php →funcoes auxiliares do ficheiroinsereDadosNaBD.php

b) Descricao da figura 12:

calcula

i) calcula valConfSimples.php →calcula valor de confianca simples

ii) funcoes cqp.php → funcoesauxiliares do ficheirocalcula valConfSimples.php;contem as funcoes que permiteminvocar o CQP (Evert, 2005)

iii) indice ficheiro-recurso.conf →associa o nome do recurso com onome do ficheiro

insere

i) insereSimples.php → insere osvalores do grau de confianca simplesna base de dados

c) Ficheiros comuns as duas imagens:

i) triplos → ficheiros com os triplos dosvarios recursos

ii) Base de Dados → ficheiro SQLite 17

que representa a base de dados

De modo a termos uma melhor percecao daestrutura da base de dados, e apresentado odiagrama da base de dados na figura 11. A figuraapresenta todas as tabelas, ligacoes e valores doscampos que constituem a base de dados.

Relativamente as relacoes semanticas (diretas)que estao presentes nesta versao do sistema, estassao apresentadas na tabela 1.

De seguida descreve-se como foi criada a basede dados e como inserir dados na mesma (seccao4.1), como e possıvel adicionar novos recursos(seccao 4.2) e como podem ser calculados osvalores de confianca dos dados previamenteinseridos (seccao 4.3).

17http://www.sqlite.org/index.html

4.1 Como criar e inserir dados nabase de dados?

Relativamente ao sistema de gestao da base dedados, optou-se por usar o SQLite 17 , pois jatem embutido o motor de base de dados SQL.Diferentemente de outros motores de bases dedados SQL, o SQLite nao tem um processode servidor separado. O SQLite le e escrevediretamente para um ficheiro no disco rıgidofacilitando a sua portabilidade. Para alem dasua licenca ser de domınio publico, o que permitea sua livre utilizacao para qualquer tipo definalidade, uma outra vantagem da sua utilizacaopassa pela ausencia de configuracoes adicionais.

Para criar a base de dados basta executaro ficheiro em PHP criaBD.php (ver figura10). Este descreve a estrutura inicial dabase de dados. O ficheiro tambem insere ascategorias gramaticais, relacoes e sub-relacoes(inversas e diretas) que o Folheador abrange, nastabelas: relacoes, catGram, subRelacaoDiretae subRelacaoInversa, respetivamente (verfigura 11). Para executar o programa basta usar

o seguinte comando: $php -q criaBD.php .

Depois de criada a estrutura da base dedados e inseridos os valores iniciais nas tabelasreferidas anteriormente, e necessario introduzir,de uma forma manual, na tabela recursos,o(s) nome(s) do(s) recurso(s) que se pretendeintroduzir na base de dados. Este passo enecessario, pois aquando da insercao dos dados,estes sao identificados pelo identificador dorecurso a que pertencem. Por outras palavras,o campo recursos da tabela triplos teraassociado o(s) identificador(es) do(s) recurso(s)a que pertence (campo id da tabela recursos).

Em seguida, como podemos observar nafigura 10, os ficheiros funcoes insere.php einsereDadosNaBD.php tem como finalidadeguardar os triplos na base de dados. Paraisso, e necessario executar no terminal o seguinte

comando: $php -q insereDadosNaBD.php .

De um modo simples, o comando anteriorguarda na base de dados todos os triplospresentes no(s) ficheiro(s) que pretendemosprocessar (identificados como triplos na figura10). Mais especificamente: os termos dostriplos sao guardados na tabela termos;e usando os seus identificadores (ids) ecriada uma nova entrada na tabela triplos(campos termo1ID e termo2ID). De um modohomologo, o identificador da relacao (tabelarelacoes, campo id), sub-relacao direta (tabelasubRelacaoDireta, campo id) e inversa (tabelasubRelacaoInversa, campo id) sao usados para

Page 10: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

criaBD.php

Cria e Insere Dadostriplos

funcoes_insere.php

insereDadosNaBD.php

Base

de

Dados

Figura 10: Criacao e insercao de dados na base de dados.

id (int)termo1ID (int)termo2ID (int)subDiretaID (int)subInversaID (int)relID (int)nr (int)simples (int)composta (float)recursos (varchar)

triplos

id (int)nome (varchar)

termos

id (int)nome (varchar)

catGram

id (int)nome (varchar)

relacoes

id (int)nome (varchar)

recursos

id (int)nome (varchar)relID (int)cat1ID (int)cat2ID (int)inversaID (int)

subRelacaoDireta

id (int)nome (varchar)relID (int)cat1ID (int)cat2ID (int)

subRelacaoInversa

id (int)nome (varchar)

metricas

Tabelas Auxiliares

Figura 11: Diagrama da base de dados.

preencher os campos relID, subDiretaID esubInversaID da tabela triplos, respetivamente.

Um modo simples de verificar se os valoresforam inseridos corretamente na base de dadospassa por usar o SQLite Manager18, umaextensao gratuita do browser Mozilla Firefox19.

4.2 Como adicionar novos recursos?

Nesta seccao sao apresentados os recursos jaexistentes na base de dados, assim como os passosnecessarios para adicionar novos recursos.

18https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager

19http://www.mozilla.org

De momento o Folheador agrega triplos decinco recursos diferentes: PAPEL 2.0, TeP2.0 (Dias Da Silva, Oliveira e De Moraes, 2002;Dias Da Silva e De Moraes, 2003; Maziero etal., 2008), OpenThesaurus.PT20, Wikcionario21

e Dicionario Aberto22 (Simoes e Farinha, 2010).

� O PAPEL resulta da extracao automaticade triplos do Dicionario PRO da lınguaportuguesa da Porto Editora.

� O TeP e o OpenTesaurus.PT sao dois

20http://openthesaurus.caixamagica.pt21http://pt.wiktionary.org22http://www.dicionario-aberto.net

Page 11: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

Cat1 Sub-Relacao Cat2

SINONIMIAverbo SINONIMO V DE verboadj. SINONIMO ADJ DE adj.adv. SINONIMO ADV DE adv.nome SINONIMO N DE nome

HIPERONIMIAnome HIPERONIMO DE nome

PARTEnome PARTE DE nomenome PARTE DE ALGO COM PROPRIEDADE adj.adj. PROPRIEDADE DE ALGO PARTE DE nome

MEMBROnome MEMBRO DE nomenome MEMBRO DE ALGO COM PROPRIEDADE adj.adj. PROPRIEDADE DE ALGO MEMBRO DE nome

CONTIDOnome CONTIDO EM nomenome CONTIDO EM ALGO COM PROPRIEDADE adj.

MATERIALnome MATERIAL DE nome

FINALIDADEnome FINALIDADE DE nomenome FINALIDADE DA ACCAO verbonome FINALIDADE DE ALGO COM PROPRIEDADE adj.verbo ACCAO FINALIDADE DE nomeverbo ACCAO FINALIDADE DE ALGO COM PROPRIEDADE adj.

CAUSAnome CAUSADOR DE nomenome CAUSADOR DA ACCAO verbonome CAUSADOR DE ALGO COM PROPRIEDADE adj.adj. PROPRIEDADE DE ALGO QUE CAUSA nomeverbo ACCAO QUE CAUSA nome

PRODUTORnome PRODUTOR DE nomenome PRODUTOR DE ALGO COM PROPRIEDADE adj.adj. PROPRIEDADE DE ALGO PRODUTOR DE nome

MANEIRAadv. MANEIRA POR MEIO DE nomeadv. MANEIRA SEM nomeadv. MANEIRA COM PROPRIEDADE adj.adv. MANEIRA SEM ACCAO verboverbo ACCAO PARA MANEIRA adv.

REFERENTEadj. PROPRIEDADE DE ALGO REFERENTE A nomeadj. PROPRIEDADE DO QUE verbo

LOCALnome LOCAL ORIGEM DE nomenome LOCAL ONDE verbo

Tabela 1: Relacoes Semanticas presentes na base de dados.

tesauros da lıngua portuguesa23 criados

23Os thesaurus estao organizados em synsetsque contem, por isso, palavras relacionadas porsinonımia. Para os convertermos num formato detriplos, consideramos que existia um triplo de sinonımiaentre cada par de termos dentro do mesmo synset. Porexemplo: x SINONIMO-DE y , onde x e y sao itenslexicais que pertencem ao mesmo synset.

manualmente, contendo relacoes desinonımia.

� Os restantes dois recursos, Wikcionarioe Dicionario Aberto, sao resultadoda extracao automatica de relacoes

Page 12: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

insereSimples.php

triplos

triploID

+

triplo

+

grau de

confiança

Cálculo do valor de Confiança

calcula_valConfSimples.php

funcoes_cqp.php

indice_ficheiro-recurso.conf

Base

de

Dados

calcula

insere

Figura 12: Calculo e insercao do valor de confianca na base de dados.

semanticas no ambito do projetoOnto.PT (Goncalo Oliveira e Gomes,2010; Goncalo Oliveira et al., 2011). Estesincluem os triplos extraıdos do Wikcionarioda lıngua portuguesa e do DicionarioAberto, respetivamente.

Apresentados os recursos, que neste momento jaestao inseridos na base de dados, seguidamentedescrevem-se os passos necessarios para inserirum novo recurso:

1) primeiro e necessario inserir o nome do recursona tabela recursos, campo nome (ver figura11);

2) em seguida, e necessario alterar o ficheiroindice ficheiro-recurso.php, de modo afazer corresponder o nome do ficheiro que sepretende inserir com o nome do recurso;

3) por ultimo, e preciso executar o programainsereDadosNaBD.php (ver seccao 4.1).

Caso o novo recurso a inserir tenha outrasrelacoes ou categorias gramaticais, diferentes dasapresentadas na tabela 1, e necessario introduzirmanualmente na base de dados:

• o nome das categorias gramaticais (tabelacatGram);

• o nome das novas relacoes, sub-relacoesdiretas e as suas inversas (tabela relacoes,subRelacaoDireta e subRelacaoInversa,respetivamente). No caso das sub-relacoes,

tambem e necessario fazer corresponder osidentificadores das categorias gramaticais(campo id, tabela catGram) e da relacaoa que as sub-relacoes pertencem (campoid, tabela relacoes) aos campos cat1ID,cat2ID e relID, respetivamente.

Como podemos verificar, o processo de adicaode um novo recurso tem de ser feito de um modomanual. Deste modo, e imperativo a criacao deuma interface de administracao capaz de facilitareste processo (ver seccao 6), eliminando porcompleto qualquer tipo de falha que possa advirdeste processo.

4.3 Como calcular e inserir os valoresde confianca?

O processo de calculo e insercao do valor dograu de confianca e relativamente simples. Osficheiros envolvidos no processo foram descritosanteriormente na seccao 4, topico “b) Descricaoda figura 12”.

Como se verifica na figura 12, o processo decalculo e insercao esta dividido em duas partes.A primeira apresenta o processo de calculo e asegunda a insercao dos valores na base de dados.De modo a que seja mais percetıvel, estes doispassos sao detalhados em seguida.

Calculo do valor do grau de confiancasimples

Para calcular o valor do grau de confianca,

Page 13: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

primeiramente e necessario associar o ficheiro detriplos, que se pretende processar, ao nome dorecurso a que pertencem. Isto e possıvel atravesdo ficheiro indice ficheiro-recurso.conf.Em seguida executa-se a seguinte linha de

codigo: $php -q calcula valConfSimples.php . O

programa anterior encarrega-se de criar umnovo ficheiro. Este novo ficheiro, apresentadona figura 12 como triploID + triplo + graude confianca, contem os triplos que leu doficheiro original (triplos), o identificador dotriplo (usando a informacao contida na Basede Dados) e o valor de confianca atribuıdo. Aopcao de criar este ficheiro intermedio serve doispropositos: futura disponibilizacao a comunidadee a facilidade de inserir os valores de confiancana base de dados (ver topico seguinte). De modoa que seja possıvel ter acesso ao identificador dotriplo, e necessario que anteriormente os triplostenham sido guardados na base de dados, ou seja,para calcular e inserir os valores de confiancae obrigatorio criar e inserir os dados/triplospreviamente na base de dados (ver seccao 4.1).

Relativamente ao valor do grau de confianca,este resulta do numero de co-ocorrencias dostermos na mesma frase. Este valor e calculadousando todos os corpos disponibilizados peloservico AC/DC. Mais especificamente, oficheiro calcula valConfSimples.php fazchamadas ao AC/DC com a seguinte questao:MU(meet[lema=‘’’.$termo1.‘‘’][lema=‘’’.$termo2.‘‘’]s);,em que $termo1 e $termo2 correspondem aostermos do triplo.

Inserir os valores na base de dados

Como referido anteriormente, a criacao de umficheiro com os identificadores dos triplos, ostriplos em si e os seus graus de confianca, e umamais valia no processo de insercao. Usando esteficheiro e possıvel atualizar o grau de confianca natabela triplos, campo simples, de uma formadireta, ou seja como o ficheiro tem associado oidentificador ao valor de confianca, o processo deinsercao e muito mais rapido.

Para associar os valores de confianca (vertopico anterior) aos triplos (previamenteinseridos na base de dados, ver seccao 4.2), esomente necessario executar o seguinte comando

no terminal: $php -q insereSimples.php .

Embora o processo de calculo e insercaonao seja muito complicado de realizar, seriauma mais valia ser efetuado numa interface deadministracao (ver seccao 6).

5 Observacoes Finais

Neste relatorio tecnico e apresentado o novoFolheador e todas as suas componentes. De ummodo geral, o trabalho resulta num servico narede que permite navegar e explorar relacoessemanticas da lıngua portuguesa. Este, alemde facilitar a pesquisa em diferentes bases deconhecimento lexical para o portugues, tem avantagem de estar ligado a uma interface decorpos, permitindo deste modo a exploracaode palavras relacionadas em contextos reais.Alem de apresentar diferentes valores deconfianca, para cada relacao semantica, oservico incorpora uma pequena interface graficaque permite explorar visualmente todas asrelacoes semanticas de uma palavra selecionadano Folheador. Depois de apresentadasas caracterısticas, mais gerais do servico,apresentamos em seguida alguns aspectos maisparticulares.

Como seria de esperar, foram criadas ascondicoes necessarias para uma inclusao de novosrecursos na base de dados mais facil. Tambemforam implementados os metodos necessariospara poder, atraves da linguagem PHP, invocaro AC/DC e o VARRA, facilitando a interligacaode “linguagens para a web” (HTML e PHP) comuma ferramenta de corpos, o CQP (Evert, 2005),permitindo, deste modo, o calculo dos valores deconfianca e a propria visualizacao de exemplosem contexto atraves da interface do Folheador.

Em termos de design foi criada uma pagina narede que se pode considerar: simples, funcional,compreensıvel, de facil utilizacao e com linhasmodernas. De referir tambem que codigo doFolheador se encontra na rede, mais precisamentehospedado no google code24. O projeto edisponibilizado sob a licenca GNU GPL v3,permitindo deste modo que a comunidade odescarregue e o altere de acordo com as suasnecessidades.

Contudo, pode-se concluir que apesar demuitos alicerces terem sido acimentados, aindaficaram muitos retoques por dar (ver seccao 6).No entanto, podemos considerar que os objetivospropostos para esta versao foram atingidos comsucesso.

6 Trabalho Futuro

Como referido anteriormente, o desenvolvimentodo Folheador sofreu varias reestruturacoes. Estasalteracoes nao so permitiram solidificar variospontos, como tambem contribuıram para odesenvolvimento de novas ideias. Em seguida sao

24http://code.google.com/p/folheador

Page 14: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

apresentadas algumas delas:

Embora nao tenha havido tempo paracalcular o valor de confianca composto,todas as condicoes estao criadas (ver seccao3.2) para que este seja integrado na proximaiteracao do projeto.

Neste momento o Folheador permite invocardois recursos externos (ver seccao 3.3).Contudo, nao e tido em conta a naoco-ocorrencia dos termos no(s) recurso(s).Deste modo, quando ja sabemos de antemaoque nao existem co-cocorrencias no(s)recurso(s) externo(s), a(s) ligacoes(oes)para o(s) mesmo(s) nao devera(ao) serapresentada(s).

Uma caraterıstica que no futuro seriaimportante integrar no Folheador, e ainclusao de frases de exemplo que ja foramvalidadas pelos varredores do VARRA.Atraves da analise das mesmas, acredita-se que e possıvel criar um novo valor deconfianca. Ou seja, usando os dossies jaavaliados, pode-se tirar partido do numerode vezes que os termos foram validados comsucesso nos varios contextos.

A criacao de uma interface de administracaofaz todo o sentido neste projeto, pois existea necessidade de:

– inserir novos dados de um modoamigavel (por exemplo, a nova versaodo PAPEL (Goncalo Oliveira et al.,2011)). Ou seja inserir novos recursosna base de dados automaticamente esem que o administrador tenha deexecutar os programas na linha decomandos;

– disponibilizar a opcao de calcular osvalores de confianca sem que sejanecessario correr a linha de comandos;

– gerir a base de dados, por exemploadicionar novas categorias gramaticais,nomes de recursos, etc.;

– visualizar os acessos que foram feitosao Folheador, permitindo deste modoanalisar quais as pesquisas maisfrequentes.

O Folheador devera oferecer a ligacaoaos recursos abrangidos pelo mesmo, ouseja, sugere-se que haja ligacoes a paginado OpenThesaurus.PT, Wikcionario eDicionario Aberto, assim como a novosrecursos que venham a ser integrados noprojeto.

Apesar de podermos considerar que apesquisa e navegacao no Folheador estejabastante completa, ainda e possıvel tornara mesma mais versatil, permitindo porexemplo fixar a categoria gramatical do(s)termo(s) na pesquisa.

Sugere-se tambem que o visualizador graficoseja integrado na pagina de resultadosdo Folheador, de modo a oferecer umaalternativa visual as pesquisas feitas pelosutilizadores.

Por fim, tambem seria uma mais valia para acomunidade disponibilizar os varios recursossubjacentes ao Folheador, juntamente comos valores de confianca associados, e/oudisponibilizar a propria base de dados.

Para terminar, pensamos que, apesar docurto espaco de tempo desta iteracao, o projetocontribui com um servico que acreditamosque venha a ser muito util a comunidade deprocessamento da lıngua portuguesa.

Agradecimentos

O trabalho aqui descrito enquadra-se no ambitoda Linguateca, co-financiada desde o seuinıcio pelo Governo Portugues, pela UniaoEuropeia (FEDER e FSE), sob o contratoPOSC/339/1.3/C/NAC, pela UMIC e pelaFCCN, e presentemente pela Fundacao daCiencia e da Tecnologia (FCT) e pela Fundacaopara a Computacao Cientıfica Nacional (FCCN).

Agradeco a orientacao do Hugo GoncaloOliveira e da Diana Santos. Tambem estou gratoaos comentarios do Fernando Ribeiro em relacaoa uma versao preliminar do Folheador.

Referencias

[Dias Da Silva, Oliveira e De Moraes2002]Dias Da Silva, Bento C., Mirna F. deOliveira, e Helio R. De Moraes. 2002.Groundwork for the Development of theBrazilian Portuguese Wordnet. Em NunoMamede e Elisabete Ranchhod, editores,Advances in Natural Language Processing(PorTAL 2002), Lecture Notes in ArtificialIntelligence, pp. 189–196, Berlin/Heidelberg.Springer-Verlag.

[Dias Da Silva e De Moraes2003] Dias Da Silva,Bento Carlos e Helio Roberto De Moraes.2003. A construcao de um thesauruseletronico para o portugues do Brasil. ALFA,47(2):101–115.

[Evert2005] Evert, Stefan. 2005. The CQP QueryLanguage Tutorial (CWB version 2.2.b90).

Page 15: O desenho do novo Folheador - eden.dei.uc.pthpcosta/docs/papers/techReports/Folheador... · O desenho do novo Folheador Relat orio T ecnico 31 de Dezembro de 2011 Hernani Costa Linguateca,

Relatorio tecnico, University of Stuttgart,Stuttgart, Germany.

[Freitas et al.2010] Freitas, Claudia, DianaSantos, Hugo Goncalo Oliveira, eVioleta Quental. 2010. VARRA:Validacao, Avaliacao e Revisao deRelacoes semanticas no AC/DC.http://www.linguateca.pt/Diana/download/resFreitasetalELC2010.pdf.

[Goncalo Oliveira et al.2011] Goncalo Oliveira,Hugo, Leticia Anton Perez, Hernani Costa,e Paulo Gomes. 2011. Uma rede lexico-semanticas de grandes dimensoes para oportugues, extraıda a partir de dicionarioselectronicos. 3(2):23–38, December, 2011.

[Goncalo Oliveira e Gomes2010]Goncalo Oliveira, Hugo e Paulo Gomes.2010. Onto.PT: Automatic Constructionof a Lexical Ontology for Portuguese. EmProc. 5th European Starting AI ResearcherSymposium (STAIRS 2010), pp. 199–211.IOS Press.

[Goncalo Oliveira, Santos e Gomes2010] GoncaloOliveira, Hugo, Diana Santos, e Paulo Gomes.2010. Extraccao de relacoes semanticas entrepalavras a partir de um dicionario: o PAPELe sua avaliacao. Linguamatica, 2(1):77–93,Maio, 2010.

[Maziero et al.2008] Maziero, Erick G., ThiagoA. S. Pardo, Ariani Di Felippo, e Bento C.Dias-da-Silva. 2008. A Base de Dados Lexicale a Interface Web do TeP 2.0 - ThesaurusEletronico para o Portugues do Brasil. EmVI Workshop em Tecnologia da Informacao eda Linguagem Humana (TIL), pp. 390–392.

[Santos2011] Santos, Diana. 2011. Linguateca’sinfrastructure for Portuguese and how itallows the detailed study of language varieties.OSLa: Oslo Studies in Language, 3(2):113–128, Junho, 2011.

[Santos e Bick2000] Santos, Diana e EckhardBick. 2000. Providing Internet access toPortuguese corpora: the AC/DC project.Em Proceedings of 2nd International Conf.on Language Resources and Evaluation,LREC’2000, pp. 205–210.

[Simoes e Farinha2010] Simoes, Alberto e RitaFarinha. 2010. Dicionario Aberto: Umnovo recurso para PLN. Vice-Versa, (16),Setembro, 2010.