luni, 5 noiembrie 2007

Math ML

MathML este un limbaj care inlesneste comunicarea pe internet si care permite utilizatorilor sa codeze atat notatiile care reprezinta obiectele matematice cat si structurile matematice. El reprezinta implinirea unui deziderat: crearea unui mark-up language care sa poate reproduce atat prezentare cat si expresii matematice.Toate elementele MathMl se impart regasesc intr-una din categoriile de baza: elemente de prezentare, elemente de continut si elemente de interfatare.
            Elementele de prezentare descriu notiunile matematice orientate vizual pe o structura bidimensionala. Exemple de astfel de elemente sunt mrow, care este folosit pentru a indica o linie orizontala de expresii, iar msup este folosit pentru a marca o expresie si o suprascriere a ei. Ca si regula generala, fiecare element de prezentare corespunde unui singur tip de schema notationala cum ar fi o linie, un superscrit, un subscript sau un underscript. Orice formula este facuta din unirea partilor componente simple care pot fi analizate- litere, cifre, simboluri. In contexul marcajelor de continut un superscript ar fi reprezentat de o operatie exponentiala care ar avea nevoie de doi operanzi. : „baza” si „exponentul”. Aceasta nu este o coincidenta, deoarece formatul matematic urmareste in de aproape structura logica a obiectelor matematice. Natura recursiva a obiectelor si notatiilor matematice este reflectata in marcajele MathML. Cand sunt folosite elementele de prezentare si continut contin elemente corespunzatoare elementelor constituente care se obtin din schema initiala prin recursivitate. Schema originala se cheama schema parinte, iar constiuenti sunt numiti general schema copii. Generalizand, expresiile MathML pot fi vazute ca arbori, in care fiecare nod corespunde unui element MathML iar ramurile – legatura intre nodul parinte si nodul copil, iar frunzele corespund notatiilor atomice care contin unitati – numere, caracter, etc. Cele mai importante elemente de prezentare sunt mi, mn, mo care reprezinta identificatori, numere si operatori. In elementele de continut sunt in numar de 3 : ci, cn si csymbol respectiv pentru identificatotri, numere, si simboluri noi

             Marcajele prezentare
MathML sunt in numar de 30 si pot accepta pana la 50 de atribute. Majoritatea dintre ele apartin un scheme care contine si alte elemente de prezentare. Fiecare schema de layout corespunde unei element notatii bidimensionale cum ar fi superscript sau fractii, tabele. Sunt si elemente „goale” care au rolul de a ajuta al aranjarea in pagina. Schemele de layout se impoart in 3 clase. Un grup de elemente il reprezinta scripturile si contine msub, munder, mmultiscripts. Alt grup il reprezinta elementele de layout – de aranjare in pagina – mrow, mstyle, mfrac. Cel de-al treilea grup il reprezinta elementele care ajuta la crearea tabelelor. O categorie speciala o reprezinta maction care permite codarea tipurilor variate de actiuni si notatii.
             Marcajele continut
sunt aproximativ in numar de 120 si pot accepta nenumarate atribrute. Majoritatea acestor elemente sunt elemente goale corespunzatoare unor operatori, relatii, functii variate. Exemple de aceste elemente sunt: partialdiff, leq, tan. Operatorii de tipul „matrix” sunt folositi pentru a coda diverse tipuri de date matematice.Elementul cel mai important este apply folosit pentru executia operatiilor si expresiilor si pentru a crea noi obiecte matematica.
             Abecedarul sintaxei XML.Deoarece MathML este o aplicatie a XML, specificatiile MathML folosesc terminologia XML. Pe scurt datele XML sunt compuse din caractere Unicode care includ si caracterele ASCII, Referintele entitate cum ar fi &lt care sunt numite si caractere extinse. Asemenea XML-ului si MathML este case-sensitive. Pentru usurinta se recomanda ca toate specificatiile sa fie scrise cu litere mici.

A aparut tema 2 la Interfete evoluate

Tema 2 este destul de interesanta,ni se cere sa cream un mic crawler si sa analizam un anumit domeniu, stabilind relatiile ce exista intre useri.

Enuntul temei este urmatorul:

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 temaJ

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:


model relational

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

· Scrierea/utilizarea unui mic crawler web

· Analiza unui document formatat (SGML/XML) si prelucrarea datelor din acesta folosind metodele descrise la laborator

Probleme cu site-ul (2)


Asa cum am banuit problema era legata de serverul de mysql.
Dupa o cautare prin forumurile lx.ro, am gasit si cauza





Pentru a mai imbunatati calitatea serviciului upgradam serverul de mysql.
Pentru curiosi, diferentele hardware sunt:
old <-> new
proc: 1 p4, dual core <-> 2 xeon, dual core
mobo: intel <-> intel
hdd: dual sata raid 1 <-> dual scsi raid 0
ram: 1 GB <-> 2 GB
os: centos 4 <-> centos 4

In masura posibilitatilor vom incerca sa facem backup saptamanal la bazele voastre de date, chiar daca pt continutul web (fisierele voastre de pe ftp) nu se face nici un fel de backup. Este totusi o idee foarte buna sa va faceti backup la sit (atat ftp cat si mysql) frecvent.

De asemenea, dat fiind ca bazele voastre de date au aprox. 20GB pe disk va dura o perioada transferul si posibil sa apara si erori pe timpul transferului (care incepe in aceasta noapte si speram sa fie gata pana luni).