ViaLinuxis: respondendo perguntas

Jorge Kinoshita

jorge.kinoshita@poli.usp.br

Universidade de São Paulo
Escola Politécnica
Departamento de Engenharia de Computação e Sistemas Digitais 
São Paulo, SP - Brasil

Resumo
Os sistemas que buscam informação não estão avançados o suficiente para dispensar a ajuda humana. O ViaLinuxis é um projeto para responder dúvidas sobre Linux quer seja através de seres humanos que respondem as perguntas postadas no fórum quer seja automaticamente através da busca no banco de perguntas/respostas ou através da busca em documentos selecionados sobre Linux. O ViaLinuxis agrupa um fórum, um sistema de busca de informações e um boletim de forma coesa.

1.  Introdução

A internet apresenta uma quantidade formidável de informação, mas muitas vezes, o usuário encontra dificuldades em encontrar uma informação específica através de um "search engine" devido a problemas que variam da falta de conhecimento do usuário por aquilo que procura até o fato da informação que se busca simplesmente não existir ainda. O usuário pode ficar muito tempo navegando na internet com resultados frustrantes. Em alguns casos, o usuário está disposto a obter a resposta através de um especialista para a busca/geração da informação adequada. Alguns sites na internet possibilitam o acesso a especialistas:
•	http://www.experts-exchange.com: um site de perguntas e respostas sobre Tecnologia de Informação dividido em diversas categorias como por exemplo, sistemas operacionais, bancos de dados, etc. O site não é aberto: para consultar perguntas/respostas sobre um determinado tópico é necessário ser "cliente" do site pagando uma taxa mensal cujo menor valor é de aproximadamente US$10,00 mensais.
•	http://answers.google.com: o "google" possibilita que o usuário entre com uma pergunta e ofereça uma "recompensa" que varia entre US$2,00 a US$200,00 para quem souber a resposta. 
•	http://mathforum.org/: Um professor de matemática da Austrália criou um fórum de matemática não pago e aberto ao público com questões interessantes sobre matemática. As questões são enviadas via email e elas podem ou não serem respondidas. Ele pode repassar a questão para outros professores de matemática.
•	serviço de news: os serviços de "news" são abertos na internet e agrupados por temas. São extremamente fáceis de serem usados, mas dependendo do assunto, praticamente não existem pessoas que fornecem respostas. Por exemplo: em um news sobre "processamento de linguagem natural" alguém fez uma pergunta simples pedindo livros recomendados sobre a área e não houve resposta.
Construímos um site aberto ao público que funciona como uma mistura de boletim, fórum e busca automática de informações sobre Linux. Consideramos que o site possui características interessantes que o diferenciam de outros sites similares.
O ViaLinuxis [1] começou como um boletim sobre Linux. Com o tempo os leitores passaram a enviar emails com perguntas para o autor dos boletins. Isto nos levou a criar um fórum [2] para perguntas e respostas. Porém o fórum não era praticamente utilizado, algumas perguntas eram raramente postadas e mais raramente ainda, algumas respostas. Para incentivar que as pessoas respondessem, as perguntas e respostas passaram a ser anexadas ao boletim. Aproveitamos para transformar algumas perguntas e respostas em boletins novos. Com o fórum em operação, diversas perguntas que já haviam sido respondidas, ocorriam novamente. Assim tivemos a necessidade de criar  mecanismos que facilitassem a busca por perguntas e respostas que já haviam sido acumuladas em nosso banco de dados. Além disso, disponibilizamos ao usuário bons documentos em português que são "linkados" às perguntas.  Atualmente o sistema tem evoluído mais na interface homem-máquina. Isto tem sido feito, observando o comportamento do usuário através do logs.

2.  A interface homem-máquina 
O usuário, antes de postar uma pergunta, faz uma busca no banco de dados como se estivesse entrando com palavras-chaves no "google". Por exemplo: vamos supor que ele esteja com problemas de configuração em seu winmodem. Ele entra com o texto: "como configurar winmodem" e obtém três informações sobre isso:
•	a sua pergunta com palavras do domínio Linux grifadas, com links associados. :

pergunta: [31-10-03] 

como configurar winmodem

No caso, as palavras "configurar" e "winmodem" possuem links associados. Ou seja, apareceram em títulos (head1, head2, etc.) de páginas HTML como LinuxTotal, Guia do Administrador de Sistemas, etc.

•	As Perguntas/Respostas de nosso banco de dados. Sempre são apresentadas as 10 perguntas/respostas que consideramos mais provavelmente relacionadas. No caso obtemos:

Possíveis Perguntas/Respostas relacionadas

 23-07-03
 jeancarlos
       [1] queria saber como faço pra configurar o winmodem no linux?? sera q vc poderia me passar isso? grato jean 

 29-03-02
 gever
       [2] Olá pessoal... Sou novato na comunidade Linux e instalei o RedHat 7.1, só que estou com um pequeno problema. Não estou conseguindo fazer com que o computad 

 21-03-02
 ismacosta
       [1] Tenho um winmodem Conexant. Há algum driver para este modem funcionar com linux. Existe alguma maneira de configurar meu Linux Conectiva para usar este mod 

 18-05-01
 rigarcia
       [4] Modems compativeis com Linux: http://www.idir.net/~gromitkc/winmodem.html -Toddy 

 18-10-01
 r.s.ferrei
       [3] Gostaria de saber se alguém conhece alguma forma de instalar o modem HSP 56 no Conectiva 6. Por favor, caso alguém possa esclarecer-me esta dúvida, eu pediri 

 28-01-02
 silvioalvi
       [4] Alguém já conseguiu fazer o modem Pctel HSP 56 (PCI) funcionar no kernel 2.4.5? Como? Com qual driver?
       Também queeeeeeroooo ! 

 02-03-01
 ohm_flavio
       [1] Como configuro meu modem 'Motorola SM56 Speakerphone Modem (PCI)(nao winmodem)' no linux?!?!?!
       Ele nao reconhece :o/ 

 07-12-01
 ecapelao
       [1] Peço ajuda para o uso do Kppp do Mandrake 7.2, eu uso o winmodem PCtel 56Kb PCI, Kppp detecta normalmente, mas ao ligar para o Provedor, liga normal e tenta 

 26-12-01
 alexts_
       [2] Caros amigos, sou iniciante em Linux ... E gostaria da ajuda de vcs...Pois bem vamos ao problema...INstalei o  Conectiva Linux 7.0 ...Tenho uma maquina 700Mhz 
 28-08-01
 wellersonc
       Sou novato no linux tenho um micro com HD 10G sistemas Windows e Linux Mandrake 8.0 Memoria 192 Placa sus Placa de Som Placa de Video RVA TNT2 Todo Off bo 

Observação: o número entre colchetes (ex: [1]) indica o número de respostas associada à pergunta. O usuário clica sobre a pergunta que lhe interessa e observa as respostas para a pergunta, além de outras perguntas/respostas e links para documentos correlatos. 

•	Comandos relacionados. O sistema procura "chutar" comandos úteis do Linux relacionados com a pergunta do usuário. Nesse caso obtivemos:

Possíveis comandos relacionados

linuxconf kppp samba netscape kde mail sendmail squid lilo zip 

Desses comandos, embora linuxconf e kppp sejam os mais relacionados, sabemos que o kppp não irá configurar o winmodem.

3. O dicionário sobre Linux

Coletamos diversos documentos sobre Linux, desde man pages, tutoriais, guias, etc. em formato HTML. Varremos estes documentos retirando os títulos (tags h1, h2, h3 ...) dos documentos. Para cada palavra que aparecia nos títulos, verificamos se ela era comum em outros domínios que não fossem os relacionados à computação. Criamos um dicionário com estas palavras onde relacionamos para cada palavra, os títulos onde ela aparece. 

Quando um usuário insere uma pergunta ou resposta em nosso sistema, o sistema busca cada palavra de sua pergunta/resposta no dicionário. Se a palavra estiver no dicionário então inserimos um link dessa palavra a uma página que contém documentos relacionados a ela.

Quando o usuário clica na palavra, o sistema apresenta os títulos observando as palavras do título e as palavras da pergunta/resposta do usuário de tal forma que os títulos que apresentarem mais palavras significativas (as do domínio Linux) em comum serão apresentados primeiro.

Voltando ao exemplo, Caso o usuário clique em winmodem ele verá os seguintes links relacionados:

5.9. Como configuro meu winmodem? 
5.12. Onde posso encontrar um driver para winmodem, e como proceder ? 
5.14. Como reconhecer na compra se o modem é ou não winmodem ? 
5.13. Como configurar meu winmodem da PCTEL ? 
5.11. Como configurar um modem PCI não winmodem? 

O "link" "Como configuro meu winmodem" [4] apresenta:

Os modems do tipo winmodem não são suportados pelo Linux. Estes modems dependem de software específico para carregar parte de sua firmware, não disponíveis para o Linux, pois as especificações dos mesmos não são liberadas, não permitindo assim o desenvolvimento de drivers pela comunidade Linux. Alguns modens, como os fabricados pela PCTEL e pela LUCENT já possu em alguns drivers experimentais liberados pelos fabricantes.

4. Apresentação dos documentos relacionados

Alguns documentos em HTML são extremamente extensos como é o caso do "linuxtotal" ou do "guia do administrador de sistemas" que chegam a quase 1 Megabyte. Quando o usuário clicava no título, ele era obrigado a fazer o "download" do documento inteiro a fim de ler apenas uma pequena parte dele. Assim, criamos um mecanismo de quebrar as páginas em HTML em blocos. Cada bloco corresponde a um título (delimitado pelas tags h1, h2, ...) seguido de texto, e opcionalmente com blocos aninhados (ex: um bloco com um título no nível 2 contém blocos em níveis inferiores.). Para tanto criamos uma nova tag HTML que delimita o começo e término de cada bloco. Quando o usuário clica sobre um título, procuramos a tag correspondente ao início do bloco, apresentamos todo o texto até encontrar a tag de final de bloco. Ao apresentar um bloco do texto, colocamos links para o bloco anterior, bloco próximo e bloco superior de tal forma que o usuário possa navegar em partes da página HTML. Pretendemos transformar esta navegação em blocos mais amigável colocando links nas palavras dos blocos de tal forma que o usuário possa facilmente buscar novas informações durante a leitura do texto. Além disso, damos o acesso ao documento original. 
É possível agrupar documentos de forma automática. Pretendemos agrupá-los e apresentar os blocos mais relacionados com o bloco [3] sendo lido.

Conclusão

O ViaLinuxis é um sistema que começou em fevereiro de 2000 e está em constante evolução. O boletim conta com aproximadamente 2000 assinantes; mas observando os logs, constatamos que existe um grande número de pessoas que consultam nossas bases de dados vindos através de "search engines" como o google e yahoo. O objetivo do ViaLinuxis é permitir que o usuário tenha suas dúvidas respondidas da forma mais automática possível e para isso, procuraremos utilizar técnicas de "information retrieval" [3] e processamento de linguagem natural.

Referências
[1] http://www.pcs.usp.br/~jkinoshi/bs
[2] http://www.pcs.usp.br/cgi-bin/jkinoshi/ve.cgi
[3] http://www.dcs.gla.ac.uk/Keith/Preface.html
[4] http://www.pcs.usp.br/~jkinoshi/ftp/pr/hardware.modem.winmodem.html