vineri, 9 ianuarie 2009

RDF, OWL, SPARQL

"Alte litere si grupuri de litere care denumesc tot felul de tehnologii."

Probabil asta esti tentat sa spui la prima vedere. Cel putin cam asta e reactia mea cand mai aflu cate un acronim. Dar luate la puricat, nu sunt cine stie ce chestii complicate. Doar niste instrumente usor de folosit si care isi dovedesc repede utilitatea.

Sa incepem cu inceputul:

Ontologii

O ontologie este o descriere formala a unor concepte si a relatiilor dintre acestea. Este o specificatie a unui domeniu, o modalitate formala de reprezentare a cunostintelor (exista si o modalitate informala numita folksonomie). O ontologie este o parte importanta a web-ului semantic. Ideea web-ului semantic este sa contina date, nu documente. Web-ul trebuie sa fie o baza de cunostinte ce pot fi intelese si prelucrate atat de oameni, cat si de calculatoare. Ontologiile ajuta la crearea acestor baze de cunostinte prin structurarea informatiei intr-o forma comuna ambelor parti.

Si astfel ajungem la primele grupuri de litere:)

RDF, OWL

Spuneam ca baza de cunostinte trebuie inteleasa atat de oameni, cat si de calculatoare. Evident, cel mai potrivit limbaj pentru acest scop este unul bazat pe XML. De aceea, pentru a putea fi folosite de web-ul semantic, ontologiile trebuie sa fie create folosind limbaje bazate pe XML. Doua dintre aceste limbaje sunt RDF (Resource Description Framework) si OWL (Web Ontology Language).

Initial, RDF a fost creat ca un model de reprezentare a metadatelor, dar acum este folosit ca o metoda generala de modelare conceptuala a informatiilor din resursele web. Ideea este de a face afirmatii despre resursele web in forma unor expresii subiect-predicat-obiect(atribut) (expresii numite tripleti). Subiectul denota resursa si este identificat printr-un URI (Uniform Resource Locator); predicatul este de asemenea o resursa identificata printr-un URI si face legatura intre subiect si obiect; obiectul (atributul) poate fi o resursa sau o valoare. O colectie de asemenea afirmatii formeaza un graf; se obtine astel un graf de cunostinte in care subiectul si obiectul sunt noduri, iar predicatul este muchia dintre aceste noduri. Prin aceasta reprezentare, RDF este mai potrivit decat modelele relationale pentru reprezentarea cunostintelor.

OWL este un limbaj conceput special pentru a defini ontologii. El extinde practic RDF prin posibilitatea de a folosi instrumente de inferenta pe datele din ontologie.

SPARQL

Limbajele mai sus mentionate descriu concepte si relatii, creand o baza de cunostinte usor de utilizat de oameni si calculatoare. Pentru a folosi aceasta baza de cunostinte s-au creat alte limbaje pentru a extrage informatiile dorite. Astfel, pentru RDF s-a creat SPARQL, un limbaj de interogare cu o sintaxa asemanatoare sintaxei SQL.

O interogare tipică în SPARQL are următoarea structură:

PREFIX : URI_NAMESPACE_Default
PREFIX prefix_alt_namespace: URI_alt_namespace
Select ?variabila1 ?variabila2
Where
{
?variabila1 predicat prefix_alt_namespace:atribut .
?variabila1 predicat2 ?variabila2
}
Order by ?variabila1

Prefixurile sunt folosite pentru a desemna spatiile de nume ce vor fi folosite la interogarea propriu-zisa. Exista un spatiu de nume default (URI_NAMESPACE_Default) si alte spatii de nume (URI_alt_namespace) care primesc un alias (prefix_alt_namespace) ce va fi folosit in interogari.

Select precizeaza ce variabile va intoarce interogarea. In interiorul interogarii pot fi folosite mai multe variabile ajutatoare, dar cele intoarse sunt doar cele precizate in clauza select. Toate variabilele incep cu semnul ? sau $.

Clauza where contine unul sau mai multe triplete subiect-predicat-atribut care vor construi efectiv sablonul ce va fi cautat in baza de cunostinte. Cum am mai spus, subiectul si predicatul sunt identificate prin URI-uri. Daca un URI face parte din spatiul de nume default, atunci subiectul, respectiv predicatul apar ca atare in interogare. Altfel, ele sunt precedate de alias-ul spatiului de nume din care face parte resursa: alias:subiect sau alias:predicat. Atributul poate fi de asemenea o resursa, caz in care apare cu sau fara alias, la fel ca subiectul si predicatul, sau poate fi o valoare efectiva, caz in care trebuie precizat tipul si eventual limba.

In clauza where informatiile pot fi filtrate folosind operatorul FILTER care specifica restrictii aritmetice, logice sau bazate pe expresii regulate asupra sirurilor de caractere.

Sintaxa completa a SPARQL se gaseste aici.

O baza de cunostinte structurata ce poate fi folosita pentru interogari SPARQL se gaseste aici. Pe acelasi site se gaseste o interfata web pentru testarea interogarilor SPARQL.

luni, 5 ianuarie 2009

Ajax, mini introducere

Ajax

Ajax este un nume interesant pentru un tip de programare facut popular de catre cei de la Google in 2005 si alti dezvoltatori web. Ajax este un acronim pentru Asynchronous Javascript And XML.

De asemenea ne putem gandi la Ajax ca la o versiune s Javascriptului dopata:P

Ajax - Javascript imbunatatit

Cand a fost introdus javascriptul, oamenilor le-au placut toate chestiile cool pe care le puteau face cu browserele web pentru a imbunatati experienta utilizatorilor si ai face sa interactioneze mai bine si mai usor cu paginile vizitate. Puteau valida forumurile, face popup messages mai interesante, sa face utilitare web cool si multe altele. Insa, Javascript nu oferea nici o posibilitate de a transmite informatii intre browserele web si server-ul web.

Daca cineva vroia sa transfere informatii de la o baza de date de pe un server sau sa trimita informatii de la utilizator catre un script de pe server precum PHP, trebuia sa faci mai intai un form HTML pentru a trimite prin POST sau Get date catre server. Utilizatorul trebuia apoi sa faca click pe “Submit”, sa astepte ca serverul sa raspunda si de abia atunci o noua pagina s-ar fi incarcat cu rezultatele. Si nu era prea placut sa se astepte atat de mult.

Ajax incearca sa remedieze aceasta problema lasand Javascriptul sa comunice direct cu serverul, folosind un obiect special Javascript XMLHttpRequest. Cu acest obiect, Javascript poate prelua informatii de la server fara a mai fi nevoie sa se incarce o noua pagina!

Ajax – O solutie?

Destul de adevarat. Folosind programarea in Ajax veti putea sa schimbati date cu un server web fara sa mai fie necesar incarcarea unei noi pagini. In loc sa priviti Ajax-ul ca “un nou mod de a dezvolta site-uri web” ar trebui sa-l priviti ca o noua arma pe care o puteti adauga arsenalului vostru de programare.
 
Ajax poate fi putin greoi pentru cei cu putina experienta in programarea web. Este recomandat sa stiti bine inainte sa va apucati de Ajax HTML si Javascript mai intai.