Tema 2
Enunt
Pe internet exista un mare numar de comunitati online. Prin comunitate pe internet intelegem o multime de oameni ce efectueaza o activitate impreuna (scriu mesaje pe un forum, joaca un joc multiplayer, etc.). Pe baza acestor activitati se formeaza retele sociale – grafuri de mari dimensiuni ale relatiilor online dintre membrii comunitatii. Pentru a extrage un astfel de graf dintr-o aplicatie online metoda uzuala este de a scrie un program care analizeaza paginile web ale site-ului comunitatii si extrage datele referitoare la colaborarile dintre persoane. Acest program trebuie sa-l faceti voi ca tema. Aplicatia se bazeaza pe urmatoarele proprietati ale acestor site-uri: Paginile site-ului sunt generate dinamic => toate vor avea aceeasi structura. Cea mai mare parte a linkurilor din aceste pagini duc tot in pagini ale site-ului. Din aceste proprietati rezulta ca este suficient sa se scrie un script/clasa/functie care sa analizeze o pagina HTML si sa se aplice aceasta functie pe toate linkurile din interiorul site-ului. Datele extrase din site-ul web vor fi salvate intr-o baza de date ce va avea urmatoarea structura:
In tabelul utilizator se salveaza datele despre un anumit utilizator (linkul catre profilul sau de pe site si username-ul – daca exista). In tabelul colaborare se salveaza toate instantele de colaborari dintre 2 utilizatori, tipul colaborarii (pot fi mai multe tipuri in functie de tipul comunitatii – de exemplu pentru o comunitate unde se joaca un joc online pot fi urmatoarele tipuri de relatii – A joaca impotriva lui B, A joaca in echipa cu B, A ii da reply lui B pe forumul jocului, etc.), detalii colaborare – in functie de tipul comunitatii pot sa fie rezultatul jocului, mesajul schimbat, etc. Exemple de comunitati online ce pot fi analizate:
- Bloguri gazduite pe acelasi server (blogspot.com, wordpress.com, etc)
- Forumuri (forumuri bazate pe phpbb, vBulletin, etc)
- Jocuri online (hattrick.org, online.bridgebase.com/myhands, etc., sah sau pool de pe yahoo games)
Aplicatia poate fi realizata intr-un limbaj la alegere. Prima etapa a temei consta in a posta in forumul destinat temei (pana marti 06.11) a alegerii comunitatii facute (pentru a fi validata) si a descrierii tipurilor de interactiuni ce vor fi extrase. Observatie1: membrii aceleiasi echipe de proiect nu au voie sa-si aleaga aceeasi comunitate pentru analiza. Observatie2: Tema va va permite sa invatati urmatoarele lucruri:
<!--[if !supportLists]-->· <!--[endif]--> Scrierea/utilizarea unui mic crawler web
<!--[if !supportLists]-->· <!--[endif]--> Analiza unui document formatat (SGML/XML) si prelucrarea datelor din acesta folosind metodele descrise la laborator
Rezolvarea urmeaza sa fie publicata pana in data de 17 noiembrie!