AP ˆ ENDICE A A Evoluc¸˜ao da Web
A.2.4 Usu´ario como participante
Segundo (O’REILLY, 2005), o principal fator de sucesso das organizac¸˜ao que nasceram na era web1.0 e sobreviveram ao nascimento da era web2.0 foi acreditar no poder da web de potencializar a inteligˆencia coletiva.
Inserir conte´udo na rede tornou-se mais f´acil do que nunca. A publicacao de textos passou a ser uma tarefa de poucos minutos. Idem para compartilhar fotos na internet. Qualquer usu´ario, sem precisar de nenhum conhecimento al´em de utilizar o navegador de internet, passou a poder participar do conte´udo da internet.
Segundo (LERMAN, 2007), essa transformac¸˜ao aconteceu atrav´es do surgimento do que ela chama de sites de m´ıdias sociais, como blogs, wikis, Digg, Flickr e outros. Em geral, essas aplicac¸˜oes compartilham 4 caracter´ısticas: (1) os usu´arios criam conte´udos numa variedade de tipos de m´ıdias; (2) os usu´arios indicam etiquetas para o conte´udo; (3) os usu´arios avaliam os conte´udos ativamente atrav´es de votos, ou passivamente por simplesmente consumir conte´udos; (4) os usu´arios criam redes sociais, apontando outros usu´arios com interesses similares como contatos ou amigos.
Folksonomias
Folksonomia, do inglˆes, folksonomy, ´e a combinac¸˜ao de folk (povo) com taxonomy (taxono- mia). O termo denota o sistema de desenvolvimento de organizac¸˜ao por metadados de conte´udo (MATHES, 2004). Nesse sistema, os usu´arios comuns, anexam etiquetas (tags) a algum tipo de conte´udo, como livros, fotos e s´ıtios. As etiquetas s˜ao usadas para classificar os conte´udos.
Um aspecto importante de uma folksonomia ´e que ela consiste de etiquetas que n˜ao pos- suem um hierarquia ou qualquer outro tipo de estrutra. O que existe ´e um processamento autom´atico de identificac¸˜ao de etiquetas relacionadas, cujos conte´udos correspondentes s˜ao o mesmo(MATHES, 2004).
As folksonomias s˜ao um sintoma claro do aspecto participativo da web2.0. Os sistemas ondem existem folksonimias permitem que os usu´arios sejam respons´aveis pela organizac¸˜ao do conte´udo do s´ıtio.
A.2 A Web 2.0 103
Social Bookmarking websites
Uma func¸˜ao presente em praticamente todos os navegadores de internet, ou browsers, ´e a de permitir que o usu´ario adicione um determinado site a uma lista de sites favoritos. Essa lista de sites favoritos era armazenada no computador, e portanto, n˜ao pode ser facilmente acessada de um outro computador.
Esse fato inconveniente pode ser contornado utilizando, ao inv´es do sistema tradicional de organizac¸˜ao de sites favoritos, os sites de Social Bookmarking. Esses sites permitem que os usu´arios criem contas, e adicionem favoritos `a elas. Os usu´arios s˜ao encorajados `a classificar os seus favoritos com etiquetas (tags).
O objetivo desta classificac¸˜ao consiste nomeadamente em facilitar a posterior recuperac¸˜ao da informac¸˜ao. Ao mesmo tempo, a utilizac¸˜ao das tags traz vantagens ao n´ıvel da pesquisa, pois ´e poss´ıvel pesquisar quer nas nossas tags, quer nas tags dos outros utilizadores. Deste modo, podemos encontrar pessoas com os mesmos interesses e ”descobrir”novos sites relacionados com o mesmo assunto.
Blogs
Blog ´e uma p´agina da web cujo conte´udo principal, composto por ”postagens”, ´e organi- zado cronologicamente de forma inversa, como em um di´ario. As postagens podem ou n˜ao pertencer ao mesmo assunto ou terem sido escritas pela mesma pessoa. Existe a possibilidade de discuss˜ao e troca de id´eias atrav´es de um espac¸o reservado para coment´arios, que podem ser lidos e escritos por qualquer pessoa.
As p´aginas textuais dos blogs podem vir acompanhadas de imagens e sons, que geralmente s˜ao inseridos de forma f´acil em meio aos textos, permitindo que usu´arios sem muito conheci- mento das ferramentas possam tamb´em criar seus blogs.
Assim como nos ”social bookmarkings”, os posts dos blogs podem ser descritos por eti- quetas. O objetivo dessa descric¸˜ao ´e para que seja poss´ıvel que os leitores naveguem no blog atrav´es das etiquetas.
Todas as configurac¸˜oes de um blog s˜ao abertas `a alterac¸˜ao do autor e de todos que ele auto- rizar. Pode-se alterar o nome, o enderec¸o, a descric¸˜ao, a forma de publicac¸˜ao, a periodicidade dos arquivos, a aparˆencia visual da p´agina, e ainda acoplar outras m´ıdias e ferramentas.
O pr´oprio ambiente estimula a construc¸˜ao de conhecimentos necess´arios para realizar as alterac¸˜oes desejadas, tornando o usu´ario autor e organizador do seu pr´oprio espac¸o. A comunicac¸˜ao atrav´es dos blogs se d´a de forma ass´ıncrona e assim podem ser utilizados como um laborat´orio de escrita virtual onde todos os membros podem agir, interagir, trocar experiˆencias sobre assuntos de mesmo interesse, gerando ambientes colaborativos.
Seria imposs´ıvel falar sobre a emergˆencia do car´ater participativo da web sem falar de Blog: Existem 13 milh˜oes de blogs indexados por Technoratti desde 2002; 346 milh˜oes de pessoas lˆeem blogs; 900 mil novos posts de blogs s˜ao criados por dia.
A.3
A Web 3.0
O termo web3.0, ao contr´ario do web2.0, ainda ´e muito contestado e muito pouco citado por autores - principalmente do meio acadˆemico. Ele foi empregado pela primeira vez pelo
A.4 Conclus˜ao 105
jornalista John Markoff, num artigo do New York Times e logo incorporado e rejeitado com igual ardor pela comunidade virtual.
No entanto, a organizac¸˜ao e uso de maneira mais inteligente de todo o conhecimento j´a dispon´ıvel na Internet ´e um fenˆomeno que n˜ao era not´avel quando da popularizac¸˜ao da web2.0, e portanto, a criac¸˜ao de um novo termo para denotar uma nova era faz algum sentido.
A web atualmente possui terabytes de informac¸˜oes dispon´ıveis para seres-humanos, mas ileg´ıveis por computadores. Esse cen´ario motivou a transformac¸˜ao no paradigma de disponibilizac¸˜ao de informac¸˜oes na web. Essa transformac¸˜ao diz respeito `a web semˆantica, uma tecnologia que atrav´es de linguagens que estruturam os dados semanticamente, permite que as m´aquinas con- versem com outras m´aquinas de forma inteligente.
A infra-estrutura da Web Semˆantica ´e baseada em um modelo de dom´ınio denominado ontologia, que constitui a base formal dos espac¸os virtuais semˆanticos. O termo ontologia tem origem na filosofia grega, e ´e usado para designar a teoria a respeito da existˆencia, sobre que tipos de coisas existem perante o mundo. Na Computac¸˜ao, o termo ´e usado para descrever os modelos do mundo, ou seja, descrever aquilo que pode ser representado computacionalmente sobre o mundo (F., 2005).
Segundo (BERNERS-LEE; HENDLER; LASSILA, 2001), de in´ıcio, a Web Semˆantica ser´a formada por ”ilhas de conhecimento“, ou seja, nichos de conhecimento espec´ıficos para alguma aplicac¸˜ao mas que, atrav´es de interoperabilidade entre ontologias poder˜ao interagir. Portanto, a consolidac¸˜ao da web semˆantica em toda a web, ser´a um processo cont´ınuo e cooperativo entre aplicac¸˜oes especializadas em dom´ınios distintos.
A.4
Conclus˜ao
A web, desde sua concepc¸˜ao entrou em processo de transformac¸˜ao profunda. Seu car´ater aberto e de abrangˆencia mundial permite que centenas de milh˜oes de pessoas contribuam nesse processo de transformac¸˜ao, para melhor atender `as necessidade da comunidade de internautas do globo.
A compreens˜ao da web e das tecnologias envolvidas ´e fundamental para o desenvolvimento de uma aplicac¸˜ao web - como a RSN. Mais do que isso, tal compreens˜ao nos faz entender a origem dos conceitos consolidados atualmente, e nos indica caminhos para onde esses conceitos podem seguir. Este cap´ıtulo destacou os principais aspectos relacionados `as trˆes gerac¸˜oes da web, apontando tendˆencias e auxiliando a compreens˜ao da forma em que a web evolui.
107
AP ˆENDICE B -- Processamento das Recomendac¸ ˜oes
na RSN
Um dos principais recursos propostos para a RSN foram as recomendac¸˜oes. Por este motivo, este trabalho apresenta al´em do cap´ıtulo sobre sistemas de recomendac¸˜ao, o apendice corrente, que apresenta as recomendac¸˜oes inclu´ıdas na RSN bem como suas respectivas implementac¸˜oes.
B.1
A Capa da RSN
A p´agina inicial, ou a capa da RSN, apresenta, por padr˜ao, uma lista de not´ıcias ordenadas por um crit´erio que envolve a “idade” da not´ıcia e o n´umero de votos que ela recebeu. Quanto antes a not´ıcia aparece nessa lista, maior destaque ela tem. Quanto mais votos uma not´ıcia recebeu, maior destaque ela tem, quanto mais “idade” a not´ıcia tem, menor destaque ela tem.
Tal ordenac¸˜ao sugere que essa lista seja uma recomendac¸˜ao, pois o crit´erio adotado ´e tal que faz com que as not´ıcias que possuem maior probabilidade de serem interessantes para o usu´ario recebam maior destaque.
A implementac¸˜ao escolhida ´e simples. A tabela de Not´ıcias possui uma coluna chamada pontos. O valor dessa coluna ´e calculado periodicamente, atrav´es de um script, com o resultado de um calculo que envolve a quantidade de votos da not´ıcia com a “idade” da mesma. Na hora de exibir as not´ıcias, essa coluna “pontos” ´e utilizada como crit´erio de ordenac¸˜ao.
Para isso, o script deve recuperar todas as not´ıcias, com seus respectivos n´umeros de votos e respectivas “idades”, e atualizar a coluna “pontos” de cada registro recuperado atrav´es de um c´alculo que envolve uma constante, a “idade” e o n´umero de votos da not´ıcia. A figura B.1 exibe o script desenvolvido.
Figura B.1: Script para atualizar pontuac¸˜ao das not´ıcias
B.2
Recomendac¸˜oes na Tela Ver Not´ıcia Completa
Na Tela Ver Not´ıcia Completa, o sistema exibe, al´em de uma not´ıcia completa, outras not´ıcias que tenham grande possibilidade de interessar ao leitor. Essa grande possibilidade ´e baseada no fato de que essas outras not´ıcias s˜ao as que mais receberam votos de pessoas que tamb´em votaram na not´ıcia em quest˜ao.
No cap´ıtulo 5, explica-se que a filtragem colaborativa, como mecanismo de recomendac¸˜ao pode ser dividido em trˆes passos: encontrar usu´arios similares; criar a vizinhanc¸a; processar um progn´ostico baseado nos vizinhos selecionados. As recomendac¸˜oes na Tela Ver Not´ıcia Com- pleta ignora os dois primeiros passos, e realiza o terceiro, utilizando o m´etodo de recomendac¸˜ao baseado em regras de associac¸˜ao de uma maneira simplificada.
Considerando Vi= {u1, u2, u3, ...} o conjunto de avaliac¸˜oes recebidas por uma not´ıcia i (em
nosso caso, o valor da avaliac¸˜ao ´e 1 caso tenha recebido voto e 0 caso n˜ao tenha recebido voto). Na tela ver not´ıcia completa onde a not´ıcia em quest˜ao ´e a not´ıcia i, as not´ıcias recomendadas ser˜ao aquelas em que o valor Vi∗ Vx forem maiores. Para exemplificar, vejamos a seguinte
B.3 Recomendac¸ ˜oes da tela Recomendadas 109
Tabela B.1: Votos de usu´arios em not´ıcias: x representa que o usu´ario da linha correspondente votou na not´ıcia da coluna correspondente.
Usu´ario / Not´ıcia 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Marcos x x x x x x Let´ıcia x x x x x x Felipe x x x x x x Marcelo x x x x x x Carolina x x x x x
Por exemplo, de acordo com a situac¸˜ao da tabela, na tela ver not´ıcia onde a not´ıcia quest˜ao ´e a not´ıcia 3, a not´ıcia mais indicada para ser recomendada ´e a not´ıcia 5, pois V3∗ V5 =
{1, 0, 1, 1, 1} ∗ {1, 0, 1, 1, 0} = 3, e n˜ao h´a nenhuma outra not´ıcia x onde V3∗Vx≥ 3.
A implementac¸˜ao foi feita atrav´es de uma consulta SQL, mostrada na figura B.2., que recupera as 3 not´ıcias que possuem maior valor do produto interno de seu conjunto de avaliac¸˜oes com o conjunto de avaliac¸˜oes da not´ıcia em quest˜ao Vx.
Figura B.2: Consulta SQL para recurar not´ıcias a serem recomendadas
B.3
Recomendac¸˜oes da tela Recomendadas
Na tela ”Recomendadas”, o sistema exibe uma lista de not´ıcias recomendadas baseada em usu´arios de gostos similares (vizinhos) ao gosto do usu´ario em quest˜ao. Para gerar essa lista de not´ıcias recomendadas, o sistema executa os trˆes passos da filtragem colaborativa como mecanismo de recomendac¸˜ao, descritos no cap´ıtulo 5.
O primeiro passo ´e realizado atrav´es de um script que calcula o valor das similaridades entre todos os usu´arios atrav´es do coeficiente do coseno. Esse script considera um vetor para cada
usu´ario de n posic¸˜oes, sendo n o n´umero de not´ıcias registradas no sistema. O valor da posic¸˜ao i desse vetor, ´e 1, caso o usu´ario tenha votado na not´ıcia i e 0 caso contr´ario. Esse script, cujo trecho que calcula o coeficiente de similaridade entre dois vetores ´e mostrado na figura B.3, ´e executado periodicamente.
Figura B.3: Func¸˜ao PHP para calcular o coeficiente de similaridade entre 2 perfis de usu´arios
O segundo passo, escolher a vizinhanc¸a, ´e feito atrav´es do estabelecimento de um limiar de similaridade. O valor colocado como limiar foi 0.25, sendo que sua modificac¸˜ao pode ser realizada facilmente.
O terceiro passo, processor um progn´ostico baseado nos vizinhos selecionados, foi consi- derar o conjunto de not´ıcias votadas pelos vizinhos, excluir desse conjunto as not´ıcias em que o usu´ario j´a votou, e exibir o conjunto resultante, por ordem decrescente da data de publicac¸˜ao. Esse processamento ´e realizado atrav´es da func¸˜ao na linguagem php, exibida na figura B.4, que recebe como parˆametros o usu´ario em quest˜ao, e o limiar de similaridade para determinac¸˜ao de vizinhos.
B.3 Recomendac¸ ˜oes da tela Recomendadas 111
Figura B.4: Func¸˜ao PHP que envolve uma consulta SQL que retorna not´ıcias “recomendadas por vizinhos”