SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
Universitatea “Alexandru Ioan Cuza” Iaşi
                            Facultatea de Informatică




Extragerea de date structurate, aplicarea modelului Linked Data
   şi a interogărilor SPARQL asupra sit-ului www.info.uaic.ro




     Coordonator,                                               Candidat,
Asist. dr. Lenuţa Alboaie                             Ionuţ Nicolaie IGNĂTESCU




                                 -Iaşi, iunie 2011-
“I have a dream for the Web [in which computers]
      become capable of analyzing all the data on
    the Web – the content, links, and transactions
                between people and computers.”
                     Sir Tim Berners-Lee
Tablă de materii
Prefaţă .........................................................................................................................   4
1. Evoluţia Internetului şi a serviciului World Wide Web ..........................................                                 5
       1.1 Scurt istoric şi prezentare a serviciului WWW ..........................................                                 5
       1.2 Standarde actuale in lumea .........................................................................                     7
       1.3 Importanta metadatelor ...............................................................................                   8
       1.4 Introducere în Web-ul Semantic. Concepte de bază ..................................                                      10
       1.5 RDF-concept, descriere, vocabulare ..........................................................                            13
       1.6 Agregarea si distribuirea informatiilor .......................................................                          14
       1.7 Notiuni avansate despre Web-ul Semantic (ontologii, taxonomii) ...........                                               15
       1.8 Cautarea în WWW(comparatie intre cautarea “traditionala” si cautarea
intr-un mediu semantic ...............................................................................................              18
2. Framework-uri, specificații și tehnologii pentru web-ul semantic .........................                                       21
        2.1 Resurse de stocare a datelor ......................................................................                     21
        2.2 O comparație a resurselor de stocare a triplelor ........................................                               25
        2.3 Limbajul SPARQL. Conceptul de endpoint ..............................................                                   26
        2.4 Conceptul linked data ................................................................................                  28
        2.5 Mișcarea NoSQL .......................................................................................                  33
3. FII-Semantic Endpoint – arhitectura şi detalii de implementare ............................                                      35
        3.1 Modulul FII23 ...........................................................................................               35
        3.2 Modulul FII Sparql Endpoint ....................................................................                        39
4. Studii de caz .............................................................................................................      43
5. Concluzii şi direcţii de dezvoltare ...........................................................................                  45
6. Bibliografie ..............................................................................................................      47
Prefaţă -4-




       Prefaţă

       În lumea de astăzi, în care tehnologia se manifestă în toate domeniile, în care
dezvoltarea şi îmbunătăţirea echipamentelor actuale nu mai cunoaşte limite, în care niciun
domeniu al vieţii nu a scăpat de binefacerile lumii moderne, omul este beneficiarul tuturor
acestor eforturi, menite să îi uşureze viaţa.
       Dezvoltările recente în tehnologia sistemelor informaţionale au determinat o creştere
a gradului de computerizare a multor aplicaţii în diverse domenii business. Datele au devenit
o resursă critică în foarte multe organizaţii şi astfel accesarea lor în mod eficient, distribuirea
lor, extragerea de informaţii utile şi crearea unui sistem capabil să le gestioneze în mod
eficient au devenit necesităţi mai mult decat urgente. Eforturile care se fac în acest sens
vizează crearea unui sistem capabil atât să integreze datele din surse diferite, cât şi să extragă
şi ofere informaţii în diferite forme (rapoarte, statistici), pe baza unor şabloane (eng. pattern).
Aceste surse de date pot fi baze de date gestionate de un sistem creat în acest scop (Sistem de
Gestiune al Bazelor de Date— SGBD) sau pot fi, de asemenea, date primare, din surse
multiple. Dincolo de aceste aspecte care ţin de modul de păstrare şi manipulare a datelor şi
care în mod normal prezintă interes doar pentru specialiştii în domeniu, s-a mai dorit crearea
unor dispozitive de tip intrare/ieşire care să transforme toate aceste maşinarii de calcule în
dispozitive accesibile oamenilor de rând, care nu beneficiază de o pregătire în domeniu.
       Privind evolutia calculatoarelor, de la prima generaţie şi până la cea curentă (a patra),
putem întelege de unde am plecat şi unde am ajuns. Pe măsură ce a evoluat hardware-ul a
evoluat, software-ul a evoluat. Pe măsură ce reţelele au evoluat, au evoluat şi protocoalele de
comunicaţie dintre calculatoare. Dezvolarea acestor reguli şi protocoale a determinat evoluţia
întregii reţele Internet şi a software-ului pentru această reţea. Poate cele mai multe schimbări
majore într-un interval scurt de timp s-au resimţit în spaţiul World Wide Web, acest serviciu
resimţind îmbunătăţiri majore în cei 20 de ani de existenţă.
Evoluţia Internetului şi a serviciului World Wide Web -5-


1. Evolutia Internetului si a serviciului World Wide Web
      1.1 Scurt istoric şi prezentare a serviciului World Wide Web


       Începuturile WWW(World Wide Web) datează din anul 1989 când la Laboratorul de
Cercetări de Fizică Nucleară (CERN) din Geneva s-a cristalizat ideea conceperii unui sistem
de transmitere a informaţilor între diferitele echipe, aflate la distanţă una de alta, bazat pe
Hypertext. Un an mai târziu, în octombrie 1990 proiectul a fost prezentat, iar după numai
două luni au început să se contureze primele rezultate. Munca a demarat cu elaborarea unui
program capabil să interpreteze limbajul Hypertext, numit browser.

       În anul 1991, după eliminarea mai multor neajunsuri în funcţionare, Web-ul a fost pus
la punct şi a devenit funcţionabil. Anul 1992 a fost un an al dezvoltării, browserul Web a
devenit disponibil prin intermediul FTP iar Web-ul a fost prezentat publicului şi
organizaţiilor cele mai diverse. La începutul anului 1993 existau 50 de servere Web în
întreaga lume pentru ca spre sfârşitul aceluiaşi an numărul lor să crească de peste 10 ori.

       Un alt moment important în istoria WWW este înfiinţarea Consorţiului Web(W3
Consortium – W3C), în octombrie 1994. Scopul său este "de a exploata spaţiul World Wide
Web la întregul său potenţial prin dezvoltarea de protocoale comune care să promoveze
evoluţia şi să îi asigurare interoperabilitatea. "

       Ce este astăzi Webul este lesne de constatat: informaţii, mesagerie, afaceri, comerţ,
artă, divertisment sunt numai câteva dintre activităţile ce se derulează sub semnul acestui
serviciu.

       Funcţionarea WWW se bazează în esenţă pe doi piloni: protocolul şi limbajul (sau
codul). Protocolul este acel produs software (sau mai simplu program) care asigură tranzacţia
între clienţi şi servere. Protocolul pentru Web este HTTP (HyperText Transfer Protocol)
care, în desfăşurarea unei tranzacţii, tratează 4 faze: conectarea, cererea, răspunsul şi
Evoluţia Internetului şi a serviciului World Wide Web -6-

deconectarea. Un alt protocol similar cu HTTP este HTTPS (HTTP Secure – HTTP
Securizat). Acesta este un protocol folosit de serverele web pentru a transfera şi afişa
conţinutul Web în siguranţă. Datele transferate sunt criptate, astfel încât să nu poată fi citite
de oricine, cu excepţia destinatarului. HTTPS este utilizat de către orice sit Web care se
bazează pe colectarea de date sensibile clientului, cum ar fi informaţii bancare sau tranzacţii
online. Eficacitatea HTTPS poate fi limitată de folosirea deficitară a browser-ului sau de




            Fig. 1. Evoluţia spaţiului Web. Concepte şi tehnologii aferente
                                     fiecărei etape
anumite deficienţe la nivel de server. În plus, deşi HTTPS securizează datele care circulă
între server şi client, odată ce datele sunt decriptate la destinaţie, acesta devin la fel de sigure
ca şi computerul gazdă.

       Limbajul este un limbaj care descrie modul în care informaţia conţinută în
documentele Web trebuie afişată. În Internet limbajul standard este HTML (Hyper Text
Markup Language - limbaj de marcare a hipertext-ului). Documentele HTML conţin text,
imagini, sunet şi linkuri (legături) către alte documente. Limbajul HTML, având posibilităţi
variate de formatare a documentului valorifică ingeniozitatea celui care îl creează (web
master sau web designer), rezultatul fiind documente cu mare impact la utilizator.
Evoluţia Internetului şi a serviciului World Wide Web -7-



       1.2 Standarde actuale în World Wide Web
       Web-ul progreseză prin agregarea contribuţiilor a sute de milioane de utilizatori. Fiind
o lume deschisă, WWW permite oricui sa contribuie într-un fel. Crearea aplicaţiilor este
facilitată de colaborarea masivă între dezvoltatorii din cadrul comunităţilor şi de reutilizarea
componentelor software, toate aceste lucruri realizând din Web un mediu aflat într-un ritm
accelerat de dezvoltare şi îmbunătăţire, care are ca element central utilizatorul.




                     Fig.2. Comparaţie între Web 1.0 şi Web 2.0

       Evoluţia spre Web 2.0 s-a produs atunci când vizitatorii siteurilor au putut să
contribuie cu informaţii noi şi au putut oferi feed-back. Odată cu Web 2.0 s-a creat o
adevărată arhitectură a participării în cadrul căreia fiecare individ care dispune de un
dispozitiv conectat la internet poate produce conţinut şi poate interacţiona cu alţi utilizatori
de internet, depăşind barierele de timp şi spaţiu. La nivel de instrumente de programare
utilizate pentru a crea pagini web, Web 2.0 foloseşte concepte care sunt considerate "de
ultimă oră". Aceasta a inclus AJAX şi SOAP şi alte aplicatii XML şi JavaScript care permite
clienţilor să interacţioneze efectiv cu informaţia.

       Un pas important în evoluţia Web-ului a fost făcut prin intermediul funcţiei tag
prezentă pe bloguri, siteuri sau pe unele reţele de socializare. În acest sens, indivizii
contribuie prin efortul lor individual la îmbogăţirea listelor de cuvinte cheie de care va fi
nevoie în construirea noii arhitecturii a spaţiului Web. În plus faţă de aceste facilităţi, se
doreşte interconectarea serviciilor oferite în prezent pe internet. De exemplu, în cautarea unui
Evoluţia Internetului şi a serviciului World Wide Web -8-

restaurant, utilizatorul de internet primeşte nu numai cele mai bune sfaturi dar şi indicaţii
despre cum să ajungă la restaurantul ales cu ajutorul unui serviciu de tipul celui oferit de
Google Maps. Timpul de căutare a informaţiilor relevante se reduce, iar internetul tinde să
devenă sursa cea mai rapidă de informaţie utilă.

       O altă tendinţă actuală este unificarea tuturor operaţiilor. Spre exemplu, în momentul
de faţă cu un cont pe un sit de socializare ne putem autentifica la o mulţime de alte reţele.
Este o dovadă că sit-urile web "comunică" şi tendinţa este de a creşte acest fapt. Un model de
autentificare comun pe cât mai multe platforme înseamnă o sursă nouă de informaţii despre
un anumit utilizator. Cu siguranţă vom putea vorbi în curând de motoare de căutare care să
personalizeze răspunsurile. Acestea vor urmări care sunt rezultatele pentru care un anumit
utilizator este interesat şi va produce rezultate diferite de căutare pentru utilizatori diferiţi.
Chiar şi anunţurile pe care un utilizator le urmăreşte vor fi diferite. Într-un cuvânt, tendinţa
generală este una singură: inteligenţă artificială.




       1.3 Importanţa metadatelor
       Pe langă gestionarea datelor, o atenţie deosebită trebuie acordată definirii elementelor
de date utilizate în baze de date. Fără o înţelegere a structurii, a limitărilor, a modului de
definire şi de descriere a datelor, este probabil ca datele să fie interpretate greşit sau utilizate
în mod abuziv. În plus, datele care nu sunt bine definite pot cauza probleme de integritate
asupra bazelor de date. Aceasta este o problemă de metadate.

       Utilizatorii de date trebuie să ştie ce reprezintă datele înainte ca acestea să devină
utile ca informaţii. Informaţiile despre date sunt definite ca metadate. Cea mai simplă
definiţie a metadatelor este "date despre date." Dar, pentru a fi un pic mai precis, metadata
descrie date, dar furnizează informaţii cum ar fi tipul de date, lungime, descriere textuală, şi
alte caracteristici ale datelor. Deci, de exemplu, metadatele permit utilizatorului să ştie că
Evoluţia Internetului şi a serviciului World Wide Web -9-

numărul de telefon al unui client este un câmp numeric de cinci cifre, încât datele în sine ar
putea fi 56789.

       Unitatea de bază pentru reprezentarea cunoştiinţelor este data. Data este, în fapt
reprezentată ca un element ce nu are nici o legătură cu alte lucruri. Exemple de date sunt 27,
010110, şi ianuarie. Fără detalii suplimentare nu ştim nimic despre oricare din aceste trei
bucăţi de date. Informaţii, pe de altă parte, adaugă context prin relaţiile dintre date şi eventual
alte informaţii. Datele, în context cu metadatele generează informaţii. Relatiile pot reprezenta
informaţii, dar relaţiile nu constituie de fapt informaţii până când acestea nu sunt înţelese. De
asemenea, relaţiile care reprezintă date au tendinţa de a fi limitate în context, mai ales despre
trecut sau prezent, cu atât mai puţin dacă presupun implicaţii în viitor.

       Beneficiul cel mai evident al metadatelor se observă la căutare. Cel mai adesea,
căutarea vizează anumiţi termeni cheie, care nu ar putea fi făcută altfel decât cu ajutorul
metadatelor. Un alt beneficiu vizează distribuirea conţinutului. Valorile asociate cu un
anumit conţinut sunt adesea inspectate de către aplicaţii pentru a determina când este cazul ca
anumite resurse să fie distribuite sau puse în comun. Securitatea aplicată la anumite obiecte
este adesea parte a modelului de metadate global.

       Metadatele îmbunătăţesc în mod considerabil gradul de granulaţie ce aparţine căutării
în cadrul volumului de date disponibile. Acest lucru permite, folosind motoare de căutare,
căutarea pe web pentru a lucra mai eficient şi efectiv în asistarea oamenilor să găsească
resursele pe care le cer. Metadatele măresc, de asemenea, abilitatea oamenilor de a localiza
resursele online şi pot creşte semnificativ întoarcerea la investiţia iniţială de publicare web.

       Mai mult decât atât, metadatele sunt de neînlocuit când articolele non-text trebuie să
devină disponibile din punct de vedere electronic. Spre exemplu, motoarele de căutare nu pot
scana poze sau colecţii de muzică în loc de cuvinte cheie. Metadatele pot conduce utilizatorii
la imaginile corecte sau la serviciile de furnizare în situaţii unde numele fişierelor şi
categoriile mai mari rareori o fac.
Evoluţia Internetului şi a serviciului World Wide Web -10-

       O altă problemă cu care ne confruntăm este cantitatea tot mai mare de date existentă
în întreg spaţiul WWW. De exemplu, Twitter generază zilnic aproximativ 7Tb de date. Noi
modalităţi pentru stocarea şi interogarea datelor au fost introduse – BigTable de către
Google, modelul Dynamo de către Amazon, dar pe lângă asta e nevoie de o modalitate care
să poată procesa automat aceste date, eventual într-un format dedicat în exclusivitate
maşinilor. Tendinţa actuală în spaţiul WWW – care nu este altceva decât o bibliotecă imensă
de documente interconectate, transferate între calculatoare şi celor ce le accesează – este de a
crea o mediu uniform astfel încât calculatoarele să poată prelucra la rândul lor informaţiile
prezentate, să le poată interconecta şi interpreta pentru a ajuta utilizatorul uman la regăsirea
informaţiilor.




       1.4 Introducere în Web-ul Semantic. Concepte de bază
       Web-ul semantic nu este un concept referitor doar la spaţiul WWW(World Wide
Web). El reprezintă un set de concepte şi tehnologii capabile să lucreze atât la nivel global,
cât şi în reţele locale – intranet-uri. Din acest motiv o definiţie exactă, completă şi precisă
este imposibil de dat.

       Unii consideră web-ul semantic o viziune, o idee a lui Tim-Berners Lee, cel care la
începutul anilor 2000 a anticipat posibilitatea de a folosi web-ul semantic pentru a crea baze
de cunoştiinţe şi pentru a procesa datele existente în spaţiul Web. Acestă idee este destul de




                         Fig. 3. Logo-ul propus de Consorţiul Web
                                  pentru Web-ul Semantic
Evoluţia Internetului şi a serviciului World Wide Web -11-

confuză, cu atât mai mult cu cât web-ul tradiţional este pentru utilizatorii umani iar web-ul
semantic este destinat pentru aplicaţii, agenţi şi maşini, capabile să „înţeleagă” şi să
proceseze conţinutul text al paginilor web.

        Web-ul semantic este considerat evoluţia firească, fiind a treia generaţie a spaţiului
web. Încă de la crearea sa, web-ul s-a vrut a fi mai mult decât un mijloc de accesare a
paginilor HTML stocate pe diferite servere. Prima generaţie a spaţiului – cea a anilor 90 – a
însemnat mai ales pagini statice, accesarea conţinutului lor facându-se via legături. Odată cu
apariţia unor noi tehnologii şi concepte capabile să genereze conţinut HTML dinamic, putem
vorbi de cea de-a doua generaţie, denumită web social. Putem vorbi aici despre bloguri,
reţele sociale, mash-up-uri de date. Următoarea generaţie a spaţiului web spre care se tinde
în momentul de faţă va fi aşa-numitul „web inteligent”, bazat pe o serie de concepte şi
specificaţii, cum ar fi: web-ul semantic, învăţare automată, data-mining, căutare pe bază de
limbaj natural,etc. Toate acestea vor face spaţiul web un mediu deschis, interconectat şi
inteligent. Aşa cum am mai menţionat, viitoarea generaţie a spaţiului web va avea în centrul
său maşinile şi aplicaţiile, utilizatorul uman urmând a fi beneficiarul direct al tuturor acestor
progrese tehnologice.

        Web-ul semantic reprezintă un obiectiv: ideea de a avea date de pe Web definite şi
legate într-un mod prin care să poate fi utilizat de către maşini, nu doar pentru a fi redate prin
pagini HTML, dar şi pentru automatizare, integrare şi reutilizare a datelor din şi în diferite
aplicaţii. Scopul web-ului semantic este la fel de larg ca al întregului spaţiu Web: de a crea
un mediu universal pentru schimbul de date. Se preconizează interconectarea informaţiilor
personale, integrarea aplicaţiilor industriale, precum şi schimbul global de date comerciale,
ştiinţifice şi culturale.

        Datorită dezvoltării infrastructurii, conexiunea la Internet este posibilă astăzi peste tot,
iar cantitate de informaţii a crescut exponenţial în ultimii ani. Cu toate acestea, informaţiile şi
serviciile sunt distribuite, de multe ori greu de găsit şi greu de integrat. Acest lucru duce la
un cost mai mare pentru găsirea informaţiilor relevante şi extragerea conţinutului important.
Evoluţia Internetului şi a serviciului World Wide Web -12-

        Web-ul îşi poate atinge potenţialul maxim numai dacă devine un loc unde datele pot fi
partajate şi prelucrate alături de oameni şi de instrumente automatizate. Pentru ca spaţiul
Web să scaleze, programele de mâine trebuie să poată partaja datele şi procese chiar şi atunci
când aceste programe au fost concepute în mod total independent. Acesta este unul dintre
obiectivele principale şi motivaţia din spatele viziunea web-ul semantic.

        Scopul web-ului semantic este de a fi "un web care să vorbească cu maşinile", în care
maşinile să poată oferi un ajutor mai bun pentru oameni, prin valorifcarea conţinutului
informaţiilor de pe Web. Informaţiile de pe web ar trebui să fie astfel exprimat într-un mod
accesibil pentru calculatoare. Această definiţie este legată cu ceea ce există deja pe web:
motoare pentru extragerea de date din pagini cu conţinut structurat, analizatoare de limbaj
natural pentru a extrage conţinutul paginilor Web, sisteme de indexare. O mare parte din
aceaste proiecte sunt încă la început şi în momentul de faţă nu pot fi considerate o soluţie
viabilă şi stabilă.

        Una dintre provocările curente în evoluţia web-ului semantic este elaborarea unui
cadru în care toate cunoştiinţele să poată colabora, deoarece beneficiul maxim de pe urma
web-ului semantic poate fi atins numai atunci când calculatoarele gestioneză resurse din
surse multiple.

        Dezvoltarea web-ului semantic va angrena mai multe domenii ale informaticii:
tehnologiile web, bazele de date, teoremele automate, ingineria cunoştiinţelor, interacţiunea
om-calculator, prelucrarea limbajului natural, etc. Mai mult decât atât, web-ul semantic nu
trebuie să fie separat de mai multe aspecte: personalizare (probleme de confidenţialitate),
mobilitate (probleme de fiabilitate), publicarea (problema de securitate). Aceste probleme şi
subiecte sunt comune în contextul de azi, dar web-ul semantic le conduce la extrema lor,
deoarece utilizarea limbajelor semantice face acţiunile calculatorului mai puternice şi,
implicit ameninţările mai acute.

        Cu toate acestea, maturizarea conceptelor legate de web-semantic nu depinde doar o
de tehnologie. Aceasta implică alaturi de tehnologie, economie, şi diverse aspecte sociale. Un
Evoluţia Internetului şi a serviciului World Wide Web -13-

cale de mijloc, susţinută de eforturi comune trebuie să fie găsită între aceste domenii care i-ar
putea creşte valoarea, facându-l mai atrăgătoar şi mai uşor de utilizat. Toate aceste aspecte
trebuie să fie aşezate într-o alchimie dedicată pentru web-ul semantic. Acesta este motivul
pentru multe aplicaţii ar trebui să fie încurajate ca, printr-o infrastructură solidă, să ridice
utilitatea web-ului semantic.



       1.5 RDF-concept, descriere, vocabulare
       RDF (Resource Description Framework – Framework pentru descrierea resurselor)
este un limbaj creat pentru a suporta conceptele web-ului sematic în aceeaşi măsură în care
HTML reprezintă suportul pentru paginile web obişnuite. Limbajul RDF oferă o structură
comună pentru schimbul de date, bazat în mare parte pe specificaţiile XML, fiind aşadar un
mijloc independent, deschis, cu suport pe aproape toate platformele.

       Deşi nu este la fel de cunoscut ca alte specificaţii ale W3C (Consorţiul WWW), RDF
reprezintă una din cele mai vechi specificaţii, primul extras fiind dat în anul 1997. Scopul
iniţial al RDF a fost de a crea un mecanism pentru lucru cu metadate care să promoveze
schimbul de date între procese automate. Limbajul este în plin proces de maturizare, având
ca scop fix, bine stabilit cel menţionat mai sus.

       Specificaţiile RDF se bazează pe un concept similar cu programarea orientată-obiect:
ierarhii de clase. O colecţie de clase dezvoltate într-un scop precis se numeşte schemă.
Organizarea ierarhică a claselor permite extensibilitatea lor prin rafinarea subclaselor. Astfel,
pentru crearea de noi scheme se poate folosi o schemă de bază – un fel de clasă abstractă în
programarea orientată obiect. În acest fel se realizează reutilizarea definiţiilor de metadate.
Moştenirea multiplă permite exploatarea în forme diferite ale aceleiaşi informaţii.

       La începuturile sale, limbajul RDF a fost folosit în prima implementare a
specificaţiilor RSS, de către compania Netscape. Folosirea modelului RDF este justificată
Evoluţia Internetului şi a serviciului World Wide Web -14-

pentru acele seturi de RSS-uri care au durată de viată destul de mare, deoarece în felul acesta
cresc şansele ca datele să fie descoperite şi incluse în graful de date RDF.

       Modelul de bază se construieşte cu ajutorul următoarelor tipuri de obiecte:

- resurse: reprezintă ceea ce este descris. O resursă poate fi o pagină web întreagă, o parte a
unei pagini web. Cel mai adesea resursele sunt specificate de URI-uri.
-proprietăţi: reprezintă un aspect specific, o caracteristică, relaţie sau atribut pentru resursa
descrisă. Specificaţiile prevăd ca fiecare proprietate să aiba o semantică, un set de valori
posibile şi un set de relaţii cu alte proprietăţi.
- declaraţii: sunt formate dintr-o resursă, împreună cu o proprietate a sa care conţine o
valoare. Declaraţia poate fi privită din punct de vedere matematic ca un tuplu: {subiect,
predicat, obiect}. Obiectul declaraţiei poate fi o altă resursă sau un literal. Declaraţiile pot fi
reprezentate fie ca grafuri orientate(nodurile sunt subiecte sau obiecte, iar arcele proprietaţi),
fie folosind marcaje (<subiectul> are <predicat> <obiect>), fie folosind limbajul RDF/XML.


       1.6 Agregarea si distribuirea informatiilor


       Cele mai multe sit-uri Web sunt dedicate cititorilor umani şi acest lucru tinde să
creeze informaţie contextuală, care nu poate fi procesată în mod eficient şi de maşini. Pentru
accesarea respectivei informaţii şi de către calculatoare s-au realizat diferiţi algoritmi de
procesare a limbajului natural sau algoritmi care încearcă să extragă înţeles din cadrul
textelor, dar toţi aceşti algoritmi lucrează în jurul ideii de „recuperare” de informaţie, nu de
„citire” sau „înţelegere” a informaţiei.

       Web-ul Semantic crează un Web orientat spre date prin integrarea resurselor care
provin din surse diferite ca: pagini HTML, documente XML, foi de calcul, baze de date
relaţionale, etc. Pentru ca aplicaţiile Web să poată utiliza surse diferite de date trebuie ca
acestea să fie componente ale unei baze de date virtuale unificate. Acest lucru este posibil
utilizând modelul RDF3. Acest lucru facilitează schimbul şi combinarea datelor regăsite în
Evoluţia Internetului şi a serviciului World Wide Web -15-

cadrul Web-ului, alcătuind spaţiul Datelor Interconectate (Linked Data), despre care vom
vorbi în capitolul viitor.

       RDF realizează o interoperabilitate şi o colaborare mai eficientă decât alte standarde,
ca XML, deoarece permite furnizorilor de date să încapsuleze alături de date şi înţelesul
acestora. Adiţional, dacă aceste date sunt interconectate, atunci datele devin uşor de
descoperit. O legătură RDF doar afirmă ca o bucată de date are o anumită relaţie cu o alta
bucată de date. Aceste relaţii pot avea tipuri diferite. De exemplu, o legătură RDF care
conectează date despre persoane, poate afirma că doua persoane se cunosc; o legătură RDF
care conectează informaţii despre o persoană şi publicaţiile acesteia într-o bază de date
bibliografică, poate să afirme că acea persoană este autorul respectivei lucrări.

       Conceptul de integrare a datelor este chiar mai vechi decât calculatoarele, este la fel
de veche ca ideea de date în sine: toate seturile de date pe care le folosim astăzi (de la o carte
la o colecţie de imagini, de la un catalog la un recensământ de date), ar trebui să fie colectate
de diferite persoane /entităţi şi integrate. Se estimează că va mai dura ceva timp
popularizarea şi înţelegerea modelului RDF, precum şi a beneficiilor pe care folosirea sa le
presupune, dar este tot mai evident că acest model este un candidat excelent pentru integrarea
datelor din diverse surse independente. Acest lucru pune RDF în coliziune directă cu
tehnologiile de stocare a datelor, cu instrumente de data mining, baze de date multi-
dimensionale şi articole similare, asta deoarece puţini specialişti din aceste domenii
realizează faptul că RDF nu este doar un alt standard marcare XML.

       Integrarea datelor reprezintă provocarea de a combina date care provin din diferite
surse şi furnizate utilizatorului într-un format unificat, bazat pe scheme universale. Sursele
conţine date reale, în timp ce schema globală oferă o semantică unică, integrată, şi virtuală a
surselor. Modelarea relaţiei dintre sursele de date şi schema universală este, prin urmare, un
aspect crucial. Aceasta se bazează pe mapări. Maparea este procesul de unificare a
elementelor din două modele distincte. Acesta este un prim pas într-o varietate de procese de
unificare a datelor, dintre care enumerăm: identificarea relaţiilor între date, ca parte a analizei
Evoluţia Internetului şi a serviciului World Wide Web -16-

de date, descoperirea de date ascunse şi mai ales consolidarea bazelor de date multiple într-o
bază de date unică şi identificarea coloanele redundante de date pentru eliminare lor.


       1.7 Notiuni avansate despre Web-ul Semantic (ontologii, taxonomii)

       Scopul modelului RDF este de a defini resurse şi fapte conexe, şi apoi să ofere o
modalitate de a permite maparea acestor resurse/fapte pentru a interacţiona. Acest lucru este
realizat prin capturarea declaraţiilor despre resurse, fiecare declaraţie constând dintr-o
proprietate specifică, cum ar fi titlul şi autorul pentru articolul unor resurse.

       Cu toate acestea, modelul RDF impune destul de multe constrângeri asupra modelului
de reprezentare a datelor. De exemplu, nu oferă nicio modalitate care să restrângă
cardinalitatea unei proprietăţi specifice sau care să furnizeze informaţii despre două
proprietăţi care sunt disjuncte. Aceste neajunsuri se rezolvă prin folosirea de ontologii.
Ontologiile sunt considerate unul dintre pilonii de web-ului semantic, deşi ele nu au o
definiţie unanim acceptată. Un vocabular în web-ul semantic poate fi considerat ca o formă
specială de ontologie, sau, uneori, ca o colectie de URI-uri cu un sens (de obicei neoficial)
descris. Termenul de "ontologie" poate fi definit ca o specificare explicită a unui concept.
Ontologii captează structura unui domeniu, adică îl conceptualizează. Aceasta include
modelul de domeniu cu posibile restricţii. Conceptualizarea descrie cunoştinţe despre
domeniu, nu şi despre starea lucrurilor din domeniu. Cu alte cuvinte, conceptualizarea nu se
schimbă, sau se schimbă foarte rar. Ontologia este astfel caietului de specificaţoo al acestui
concept - conceptualizarea este specificată folosind un limbaj de modelare particular şi
termeni speciali.

       Un limbaj dedicat ontologiilor, cum ar fi OWL(Web Ontology Language ) adaugă
constrângeri suplimentare, care cresc acuratetea de implementare a unui vocabular dat. Mai
mult decât atât, permit informaţiile suplimentare care urmează să fie deduse din date, deşi
acestea nu pot fi stocare în mod specific.
Evoluţia Internetului şi a serviciului World Wide Web -17-

       OWL pune la dispoziţie 3 sublimbaje, cu grade diferite de expresivitate, care pot fi
integrate în diferite vocabulare, în funcţie de scopul acestuia. OWL Lite sprijină utilizatorii
care au nevoie în primul rând o ierarhie de clasificare şi de constrângeri simple. De exemplu,
constrângerile de cardinalitatea să permite numai valori cardinalitatea de 0 sau 1. OWL DL
sprijină utilizatorii care îşi doresc expresivitate maximă asigurând în acelaşi timp
completitudinea (se garantează calculabilitatea concluziilor) şi decidabilitate (toate calculele
se vor termina în timp finit). OWL DL include toate construcţiile limbajului OWL, dar
acestea pot fi folosite numai în conformitate cu anumite restricţii (de exemplu, în timp ce o
clasă poate fi o subclasă de multe clase, o clasa nu poate fi un exemplu de o altă clasă).

       În timp ce ontologiile descriu relaţiile într-o manieră n-dimensională, care să permită
cu uşurinţă accesarea informaţiei din mai multe perspective, un alt concept apropriat web-
ului semantic – taxonomiile – sunt limitate la relaţiile ierarhice. Într-un mediu RDF,
ontologiile sunt capabile să asigure o capacitate care extinde utilitatea unei taxonomii.
Avantajul ontologiilor este că aceasta pot fi legată de o altă ontologie, care să beneficieze de
datele sale.

       Din acest motiv al posibilelor legături, taxonomiile sunt limitate în mod clar ca fiind
mai mult scheme de clasificare, decât modele care să descrie relaţiile parte-întreg dintre
termeni. Ontologiile au ca scop organizarea, adăugarea de sens la grafurile de date şi
metadate şi maparea printre ontologiile dintr-un domeniu specific a modului în care datele
devin interconectate pe Web.

       O taxonomie este un instrument foarte util, mai ales pentru că pot fi construite cu
uşurinţă, pot fi îmbunătăţite şi extinse. Dar taxonomii au anumite limitări. Ele nu sunt
flexibile. Astfel, poate deveni dificil să fie extinse la un spatiu mare de descriere. Cu cât se
adaugă mai multe elemente, cu atât mai multe moduri de interconectare vor fi găsite, ceea ce
duce la ruperea structurii tradiţionale de arbore. Există modalităţi de a îmbunătăţi
flexibilitatea prin combinarea taxonomiilor cu vocabulare şi diverse concepte de baza de
date, dar acestea le face şi mai subsceptible la erori.
Evoluţia Internetului şi a serviciului World Wide Web -18-


      1.8 Cautarea în WWW(comparatie intre cautarea “traditionala” si
cautarea intr-un mediu semantic.


       Căutarea în spaţiul WWW se face folosind motoarele de căutare,care se bazează pe
tabele de indecşi. Acest proces de indexare a datelor este făcut de un software specializat,
denumit crawler. Scopul său e să exploreze întreg spaţiul Web pentru a indexa orice dată
care ar putea ulterior deveni subiectul unor căutări. Practic, în felul acesta se crează un tabel
imens de structuri cheie-valoare, unde cheia este un cuvânt, iar valoarea este o listă de
structuri care memorează URI-ul unde a fost găsită respectiva resursă, precum şi alte detalii
ce ţin de particularităţile fiecărui motor de căutare în parte.

       Când un utilizator introduce o interogare într-un motor de căutare (de obicei, prin
folosirea cuvintelor-cheie), motorul examinează tabelul de indicşi şi se furnizează o listă de
pagini web care se potrivesc cel mai bine cu criteriile sale, de obicei, cu un scurt rezumat
care conţine titlul documentului şi, uneori, piese a textului. Indexul este construit din
informaţiile stocate cu datele şi metoda prin care informaţia este indexată. Din păcate, nu
există în prezent motoare de căutare cunoscute publicului, care permit căutarea documentelor
în funcţie de dată. Cele mai multe motoare de căutare utilizează operatorii booleani AND,
OR si NOT pentru a specifica în continuare interogarea de căutare. Operatorii booleeni sunt
pentru căutările literale, care permit utilizatorului să perfecţioneze şi să extindă termenii de
căutare. Motorul caută cuvinte sau fraze exact aşa cum a intrat. Unele motoare de căutare
oferă o funcţie avansată numită căutare de proximitate care permite utilizatorilor să
definească distanţa dintre cuvintele cheie.

       Utilitatea unui motor de căutare depinde de relevanţa setul de rezultate care este
returnat. Deşi pot exista milioane de pagini web care includ un anumit cuvânt sau o frază,
unele pagini pot fi mai relevante, mai populare decât altele. Cele mai multe motoare de
căutare utilizează metode de clasificare a rezultatelor pentru a furniza primele "cele mai
Evoluţia Internetului şi a serviciului World Wide Web -19-

bune" rezultate. Cum fiecare motor de căutare decide care pagini se potrivesc cel mai bine, şi
ce ordine a rezultatelor ar trebui să fie prezentate, acestea variază mult de la un motor de
căutare la altul.

       Spre deosebire de motoarele de căutare de acum, care folosesc crawl-ere pentru
exploarea paginilor Web,în Web-ul Semantic motoarele de cautare indexeză datele stocate în
format RDF pe Web.

       Desigur, un motor de căutare pentru Web RDF pe Web, oferă servicii echivalente un
motor de căutare existent în prezent pentru Web HTML. Sistemul explorează indexurile
web-ului semantic şi oferă o interfaţă uşor de utilizat, prin care utilizatorii pot găsi
informaţiile pe care le caută. Din cauza semanticii inerente a RDF şi altor limbaje specifice
Web-ului Semantic, capacităţile de căutare şi regăsire a informaţiilor sunt potential mult mai
puternic decât cele de la motoarele de căutare actuale. Prezentăm în continuare câteva dintre
motoarele de căutare bazate pe tehnologiile Web-ului Semantic.

       Sindice
       Sindice este un motor de căutare al indecşilor din documentele Web-ului Semantic
construit pe tehnici intensive de calcul în clustere,fiind dezvoltat de Déri Irlanda. Sindice
indexează web-ul semantic şi poate să spune ce surse menţionează o resură URI sau un
cuvânt cheie, dar nu poate răspunde la interogări asupra triplelor. Sindice indexează în
prezent peste 20 de milioane de documente RDF.

       Yahoo! Microsearch

       Microsearch este produsul oferit de Yahoo! pentru căutarea în Semantic Web şi oferă
o experienţă mai bogată căutare prin combinarea rezultate tradiţionale de căutare cu metadate
extrase din pagini Web. Acesta se bazează pe indexarea documentelor RDF, RDFa şi
microformate de pe Web. Yahoo! a anunţat că va adaugă în curând proiectului Microsearch
suport pentru GRDDL.
Evoluţia Internetului şi a serviciului World Wide Web -20-

      Swoogle

      Swoogle caută prin peste 10.000 de ontologii. 2.3 milioane documente RDF indexate,
în prezent, inclusiv cele scrise în RDF / XML, N-triple, N3 (RDF), precum şi unele
documente care presupun fragmente de RDF / XML. În prezent, aceasta permite căutarea
prin ontologii. Pe lângă asta, oferă metadate pentru documentele Web-ului Semantic şi
sprijină navigarea prin aceste documente. Swoogle, de asemenea, oferă suport pentru
arhivarea unor versiuni diferite de documente. Acest proiect este dezvoltat de Ebiquity
Group of UMBC.
Framewo          rk-uri, specificații și tehnologii pentru web-ul semantic -21-




2. Framework-uri, specificații și tehnologii pentru web-ul semantic

       2.1 Resurse de stocare a datelor
       Suportul pentru aplicaţiile pe scară largă în domeniul web-ului semantic depinde de
alegerea și utilizarea mediilor de stocare a triplelor potrivite, în special în funcție de
cantitatea de RDF care trebuie persistată. Interesul acordat framework-urilor de stocare a
triplelor se datorează capacității lor de a reprezenta relaţiile dintre entităţi arbitrare într-un
format generalizat: noţiunea de triplu, cu care o relaţie între un subiect şi un obiect este
notată cu o proprietate.

       Un mecanism de stocare a triplelor RDF este un framework pentru persistarea și
interogarea datelor în format RDF, dispuse cel mai adesea sub forma unui graf de date. În
ultima vreme s-a constatat un interes major în dezvoltarea de aplicații pentru stocarea datelor
RDF, pentru interogarea și optimizarea protocoalelor de acces. Dacă în anii 2000 singurele
medii de stocare erau Sesame și Jena, amândouă pentru platforma Java, în momentul de față
există suport pentru aproape orice limbaj. Direcțiile actuale se concentrează pe dezvoltarea
de medii distribuite, cu suport pentru replicarea datelor și distribuția lor uniformă din punct
i0de vedere spațial la nivel global.

                             Limbaj        Nume
                               C           3Store,Virtuoso
                           CommonLisp AllegroGraph
                              Java         Jena, Joseki, Mulgara, Sesame
                              Perl         RDF::Core, RDF::Trine
                              PHP          RAP
                             Python        Pointrel System
                               C#          SemWeb-DotNet, Smart-M3
            Fig.1. Tabel cu diverse framework-uri de stocare a triplelor RDF
Framework-uri, specificații și tehnologii pentru web-ul semantic -22-

          Mediile de stocare a triplelor RDF pot fi împărțite în trei categorii importante: native,
stocate în memorie și non-native, nestocate în memorie. Stocarea în memorie este o metodă
eficientă pentru cantități moderate de date. Au avantajul vitezei, fiind folosite mai ales în
sistemele de reasoning sau pentru rezolvarea problemelor de inferențe în mediile de stocare
persistente, acționând adesea ca un cache. Acest model de stocare se pretează la structurile
de triple omogene în timp, deoarece avantajul major – viteza de procesare ar avea de suferit
dacă s-ar face des operații de refacere a modelului.

          În momentul de față modelul dominant pentru stocare este cel nativ, care         oferă
modalități persistente de stocare, cu suport propriu pentru implementarea bazelor de date.
Câteva exemple de framework-uri din această categorie: Virtuoso, Mulgara, AllegroGraph,
Garlik JXT. Cea de-a treia categorie de aplicatii pentru stocarea triplelor este non-nativă și
nestocată în memorie. Aceast model este folosit ca o modalitate de a cupla modelul triplelor
RDF cu alte modele tradiționale de baze de date(relațional, orientat obiect,etc.). În momentul
de față, framework-urile bazate pe modelul nativ au câștigat popularitate datorită timpului
redus de încărcare și posibilităților de optimizare.




          Framework-ul Jena

          Jena este un framework dezvoltat pentru platforma Java pentru construirea de aplicații
pentru web-ul semantic. Jena implementeaza API-uri pentru lucrul cu structuri specifice
acestui     domeniu,    cum ar      fi   RDF   şi   OWL. Conceptul        fundamental    în   Jena
pentru utilizatori este modelul, care reprezintă modalitatea în care framework-ul gestionează
o mulțime de triple RDF. Un model poate fi creat 0064e sistemul de fişiere sau dintr-un fişier
existente pe un server web. Folosind JDBC, acesta poate fi, de asemenea, legat la un server
de baze de date relațional, cum ar fi MySQL sau PostgreSQL.

          Jena dispune de o componentă denumită SDB, care oferă o modalitate eficientă
pentru persistare scalabilă şi interogare a seturilor de date RDF folosind structuri SQL
Framework-uri, specificații și tehnologii pentru web-ul semantic -23-

convenţionale, utilizate în aplicaţii clasice sau aplicații J2EE bazate pe diverse framework-
uri. de stocare, după cum sa menţionat, este furnizată de o bază de date SQL şi multe baze de
date sunt susţinute, atât open source şi proprietare. În plus, referitor la accesul optimizat la
datele stocate folosind API-ul Jena, acesta poate fi cuplat cu web-server - "Joseki" - care este
server ce suportă interogări SPARQL. Acest lucru permite ca o bază de date să poată fi
interogată peste protocolul HTTP.

       Jena în plus faţă de caracteristicile menţionate mai sus, de asemenea, oferă
posibilitatea de a realiza raţionamente de grade diferite. Acesta poate fi folosit pentru a
efectua raţionamente simple RDFS sau raţionamente care presupun o folosire mai intensă a
memoriei - OWL-DL. Toate sistemele de raționament (reasoners) puse la dispoziţie de către
API-ul Jena efectuază raţionamentele în memorie, cu alte cuvinte modelul sau structura de
date pe care se face raționamentul trebuie să fie încărcat în memorie.

       Framework-ul Sesame

       Sesame este un framework open source pentru persistare, interogare a datelor RDF și
pentru realizarea de inferențe. Sesame posedă caracteristicile Jena, având un API propriu,
suport pentru inferențe și funcționalitatea specifică unui server web şi endpoint SPARQL. Ca
și Jena SDB, oferă suport pentru backend-uri multiple cum ar fi MySQL şi Postsgre. Sesame
Native este modulul care se ocupă de gestiunea triplelor de RDF. În comparaţie cu Jena
TDB, este mai puţin scalabil. Testele facute menţionează că Sesame Native a fost testat cu
pana la aproximativ 70 de milioane de triple în timp ce Jena TDB este capabil să gestioneze
cu 1,7 miliarde triple.

       Sesame acceptă două limbaje de interogare: SeRQL şi SPARQL. O altă componentă a
framework-ului este Alibaba, un API care permite maparea claselor Java pe ontologii, şi
pentru generarea de fișiere sursă Java din ontologii. Acest lucru face posibilă utilizarea unor
ontologii specifice, cum ar fi RSS, FOAF şi Dublin Core direct din Java.
Framework-uri, specificații și tehnologii pentru web-ul semantic -24-




       Framework-ul Mulgara

       Mulgara este un mediu nativ, scris în Java pentru a stoca triple RDF. Acesta oferă o
conexiune API care poate fi utilizat pentru conectarea la Mulgara. Fiind un mediu nativ,
framework-ul are o script de „încărcare” care poate fi folosit pentru a încărca date RDF în
mediul de stocare a triplelor. În plus faţă de sprijinirea interogări SPARQL prin conexiunea
API, acestea pot fi efectuate prin intermediul unui shell TQL.TQL este o interfaţă linie de
comandă care permite interogări pe modele prezente în mediul de stocare.

       Trebuie remarcat că Mulgara nu se bazează și nici nu oferă suport pentru modelul
relaţional. În schimb, Mulgara este o bază de date complet nouă optimizată pentru
gestionarea metadatelor. Modele Mulgara ţine metadatele sub formă de scurte declaraţii
subiect-predicat-obiect, la fel ca standardul W3C Resource Description Framework (RDF).
Metadatele pot fi importate sau exportate din Mulgara în RDF sau forma N3.

       Un aspect important care trebuie remarcat la Mulgara este modul în care este
gestionată concurența, acesta bazându-se pe suportul sistemului de operare pe care rulează,
evitând blocarea resurselor folosite. Fiecare sesiune/tranzacție asupra resurselor stocate
rulează într-un fir de execuție propriu. În acest fel, numărul maxim de sesiuni concomitente
este limitat de sistemul de operare și de sistemul de intrare-ieșire. Atunci când se iniţiază o
sesiune de interogare, care ar putea implica mai multe cereri pentru mediului de stocare a
triplelor, mai întâi   se realizează un instantaneu al întregii baze de date. Acest lucru asigură
că toate cererile în timpul prelucrărilor se vor executa asupra unei baze de date într-o stare
consistentă.

       Framework-ul Virtuoso

       Virtuoso este un framework disponibil în ambele versiuni: open source şi cu licenţă
comercială. Acesta oferă o interfață la linia de comandă pentru diverse operații, un API
pentru conexiuni, suport pentru SPARQL şi server web pentru a efectua interogări SPARQL
Framework-uri, specificații și tehnologii pentru web-ul semantic -25-

şi încărcarea de date prin HTTP. O serie de evaluări au testat Virtuoso şi au constatat că
scalează până la aproximativ 1 miliard de triple. În afară de aceasta, Virtuoso dispune de
module prin care se poate conecta pentru a fi folosit cu Jena şi Sesame.

        Virtuoso este conceput pentru a rula pe sisteme de operare cu suport multithreading şi
pe sisteme cu mai multe procesoare. Arhitectural, constă dintr-un singur proces care
gestionează mai multe fire de execuție, partajate între clienţi. Pentru comunicarea între firele
de execuție se păstrează un fişier de tranzacţii care înregistrează toate operaţiunile. Fişierul
de tranzacții poate fi conservat şi arhivat pentru o perioadă de timp nedeterminată, oferind o
istorie completă, recuperabilă a bazei de date. Toate cele patru niveluri de izolare sunt
suportate: citirea eronată (dirty read), citit comis(commited read), citit repetabile(repetable
read)   şi serializarea(serializabile). Nivelul de izolare poate fi specificat pentru fiecare
operaţie în parte, dintr-un set de operaţii ale unei tranzacţii.

        2.2 O comparație a resurselor de stocare a triplelor

        Toate testele la care au fost supuse mediile de stocare de mai sus au arătat un grad
superior de performanță a mediilor native, cum ar fi Mulgara, Sesame și Virtuoso. Acest
lucru este în concordanță cu tendințele actuale în ceea ce privește dezvoltarea de medii native
de stocare a triplelor RDF, cu atât mai mult cu cât pot performanța lor va duce la optimizarea
lucrului cu RDF. Totuși câteva din aceste medii(Mulgara și Virtuoso) au un dezavantaj
major: nu posedă un API care să se realizeze în mod programatic accesul la resursele stocate.

        După cum am menționat și la începutul acestei părți, eficiența unei aplicații din
domeniul web-ului semantic este influențată direct de framework-urile și API-urile auxiliare
folosite. Experimentele au arătat incapacitatea framework-urilor de a gestiona cantități mare
de date, nefiind niște medii scalabile. Acest lucru se datorează mai ales dependențelor acestor
medii, care nu sunt compatibile în totalitate cu aplicațiilor în care sunt folosite și API-urilor
care au fost create pentru a facilita accesul în mod programatic. Documentația acestor medii
recomandă folosirea scripturilor în detrimentul API-urilor, în cazul în care se lucrează cu
baze de date foarte mari.
Framework-uri, specificații și tehnologii pentru web-ul semantic -26-

       Un comportament cu totul aparte s-a observat la Jena: a reușit să gestioneze baze de
date de orice dimensiune, dar cu un cost mai mare în ceea ce privește viteza cu care se
realizează aceste operații. Acest lucru era oarecum previzibil, deoarece Jena are suport pentru
bazele de date relationale în care stocheză datele și care nu poate fi optimizat pentru baze de
date particulare.

       Au fost câteva abordări hibride ale mecanismelor de stocare a triplelor, dar principala
problemă în acest sens este compatibiliatea între sisteme. Rezolvarea acestor probleme ar
duce la crearea unor medii cu adevărat optime și care ar putea multe probleme în acest sens.

       2.3 Limbajul SPARQL. Conceptul de endpoint

       După cum am prezentat în capitolul anterior, specificațiile RDF(S) și OWL pentru
reprezentarea ontologiilor și pentru adnotarea datelor în web-ul semantic. Totuși, odată ce
aceste date au fost publicate, este necesar un mecanism de interogare a datelor existente,
pentru a le face în întregime utilizabile. SPARQL (SPARQL Protocol and RDF Query
Language – Protocolul SPARQL și limbajul de interogare a RDF-urilor) rezolvă această
problemă și oferă, după cum sugerează și numele, atât un limbaj pentru interogarea datelor și
un protocol pentru datele în format RDF. Acest limbaj poate fi privit ca limbajul SQL pentru
web-ul semantic, oferind un mecanism extrem de puternic și de simplu pentru interogarea
triplelor și a grafurilor de date. Referior la SPARQL, Tim Berners-Lee a afirmat:

”Web-ul semantic fără SPARQL este același lucru ca bazele de date relaționale fără SQL.
SPARQL face posibilă interogarea bazelor de date și a altor surse existente în întreg spațiul
WWW.”

       Deoarece RDF-urile sunt reprezentate ca grafuri, SPARQL este un limbaj de
interogare peste grafuri, spre deosebire de SQL care manipulează tabele și înregistrări. În
plus, interogările sunt mult mai flexibile, astfel încât interogări complexe pot fi rulate peste
graful de date. Ex: să se găsească toate persoanele care cunosc pe cineva interesat de web-ul
semantic.
Framework-uri, specificații și tehnologii pentru web-ul semantic -27-

        SPARQL poate fi folosit pentru interogarea fișierelor RDF independente, dar și
pentru modele mai complexe, fie încărcate în memorie de către motorul de interogare, fie
folosind structuri optimizate pentru manipularea triplelor RDF. Astfel, este necesară
cunoașterea fișierelor care vor fi interogate pentru a fi încărcate în modul cel mai optim în
memoria principală. O abordare extrem de interesantă pentru determinarea fișierelor ce vor fi
interogate este voiD (Vocabulary of Interlinked Datasets – Vocabulare de colecții de date
interconectate). Acest lucru se bazează pe o schemă RDF pentru a exprima metadate despre
colecțiile de date RDF. voiD trebuie privit ca o conexiune între cei care au publicat datele și
cei care vor consuma aceste date.

        SPARQL oferă patru structuri de manipulare a colecțiilor de date:

    -   SELECT – pentru extragerea de informații,după anumite șabloane și criterii
    -   CONSTRUCT – utilizat pentru construirea grafului de date, translatând triplele RDF
        stocate fizic în fișiere într-un model interogabil.
    -   ASK – similar cu select, dar în loc de a extrage informații, verifică dacă respectivul
        șablon este aplicabil pe baza de date.
    -   DESCRIBED – utilizat pentru a identifica toate triplele care au legătură cu unj anumit
        obiect.
        Un exemplu de interogare SPARQL folosind select, care listează toate cursurile de la
master care ținute de un profesor cu numele Popescu.
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
select ?course
where
{
?a foaf:name "Popescu".
?t dc:creator ?a.
?t dc:title ?course.
?t dc:educationLevel "Master"
}
Framework-uri, specificații și tehnologii pentru web-ul semantic -28-

        Așa cum am menționat, SPARQL este pe lângă un limbaj de interogare și un protocol.
Conform specificațiilor Consorțiului Web, rezultatele interogărilor pot fi serializate în
diverse formate (uzual JSON și XML) pentru a oferi acces deschis și standardizat la seturile
de date. De asemenea pentru acest protocol, standarul actual specifică utilizarea serviciilor
web folosind limbajul de descriere WSDL 2.0.

        Endpoint-ul reprezintă interfața prin care se manipulează structura de date
disponibilă. Acest schimb poate fi făcut fie de un utilizator uman, fie de către alte aplicații.
Rezultatele sunt de obicei oferite în mai multe formate, care să poată fi ulterior procesate atât
de mașină, cât și de utilizatorul uman.

        Tendința actuală este ca toate marile companii, instituții sau organizații care
manipulează date să ofere o modalitate prin care datele publice existente să fie disponibile
via interogări SPARQL. La fel cum serviciile web reprezinta o standardizare a aplicațiilor,
acestea putând fi accesate independent de mașină, sistem de operare și limbaj de programare
folosit, accesarea datelor via endpoint-uri reprezintă același concept la nivelul bazelor de
date.

        Pentru a satisface și extinde acest deziderat, au fost unele abordări susținute de marii
dezvoltatori de baze de date relaționale care convertesc acest model către un model sub
formă de triple, accesibil via interogări SPARQL. Acest proiect este încă în faza de început,
astfel încât nu se poate vorbi de o soluție utilizabilă la scară largă.

        2.4 Conceptul linked data

        Termenul linked data (date interconectate) a fost introdus de către Tim Berners-Lee
într-o lucrare a sa despre arhitectura spațiului web. Termenul descrie o modalitate de
publicare și interconectare a datelor în formă structurată, plecând de la prezumția că datele
devin mai valoroase și mai credibile pe măsură ce devin tot mai conectate cu alte date.
Practic, acest model dorește o standardizare a datelor din surse diverse, având ca reguli
Framework-uri, specificații și tehnologii pentru web-ul semantic -29-

principale utilizarea modelului RDF pentru a publica date structurate pe web și utlizarea de
referinte RDF(RDF links) pentru a lega date din surse diverse.

        Aplicarea acestor principii ar conduce la crearea unui web de date comune, un spațiu
unde oricine poate să publice și să consume date. Aceasta este definiția web-ului semantic,
cunoscut și sub numele de web de date (web of data).

        În momentul de față există deja o cantitate mare de date structurate care poate fi
accesată prin API - uri dedicate, oferite de către fiecare furnizor în parte: API pentru eBay,
pentru Amazon, pentru Yahoo!, etc. Spre deosebire de ceea ce există acuma, conceptul
despre care vorbim are avantajul de a oferi un mecanism standardizat, unic, care nu depinde
de vreo interfață sau de vreun format proprietar. În felul acesta datele ar fi mult mai ușor de
indexat de către motoarele de căutare, ar putea fi accesate prin intermediul unor navigatoare
specializate pentru web-ul semantic care să folosească legaturile dintre sursele de date în
locul legaturilor text din web-ul actual.

        Pentru a publica date pe web, primul lucru care trebuie făcut este să identificăm
aspectele care ne interesează. Acestea sunt lucruri a căror relații sau caracteristici dorim să le
descriem folosind date. În arhitectura web, aspectele care ne interesează poartă numele de
resurse. Resursele sunt identificare folosind URI-uri(Uniform Resource Identifiers –
Idenitificatori uniformi ai resurselor). În contextul specificațiilor linked data, se limitează
doar folosirea identificatorilor HTTP URI, pentru a se evita conflictele cu alte scheme URI
cum ar fi URN sau DOI. Folosirea acestor identificatori este recomandată din cel puțin două
motive: oferă un modalitate extrem de simplă de a crea nume unice la nivel global fără acces
centralizat și aceste URI nu actionează doar ca un nume, ci reprezintă o modalitate de a
accesa o resursă din spațiul Web.

        Resursele din spațiu Web pot avea o reprezentare. O reprezentare este o secvență de
octeți într-un anumit format, ca de exemplu PDF, XML sau JPEG. O sigură resursă
informațională poate avea diferite reprezentări, în formate diferite, de calitate diferită, în
limbi diferite, etc.
Framework-uri, specificații și tehnologii pentru web-ul semantic -30-

       Un alt concept important în contextul linked data este dereferențierea URI-urilor.
Acesta este un proces prin care se caută în întreg spațiul web informații despre resursa
referită. Când un identificator de resurse a descoperit o resursă informațională care este
referită, server-ul proprietar al acelui URI generază o nouă reprezentare a stării acelei
resurse, care este trimisă înapoi la client prin protocolul HTTP, cu răspunsul 200 OK.
Resursele non-informaționale nu pot fi referite direct. Arhitectura web pune la dispoziție un
mecanism prin care se poate realiza acest lucru. În locul reprezentării resursei respective,
serverul trimite ca răspuns un indentificator care descrie respectiva resursă non-
informațională, împreună cu codul 303 See Other. Practic, acest lucru este o redirectare. Într-
un alt pas, clientul referă noul identificator și primește reprezentarea respectivei resurse.

       Navigatoarele obișnuite redau de obicei conținutul RDF în format text, primar sau
downloadează respectivul cod, fără a afișa ceva. Pentru utilizatorii care nu au cunoștiințe de
IT acest lucru nu este deloc folositor. Astfel, o reprezentare HTML adecvată în locul unei
reprezentări RDF este mult mai utilă. În cadrul protocolului HTTP acest lucru se numește
negocierea conținutului. Clienții HTTP trimit odată cu cererea și antetul HTTP pentru a
indica ce fel de reprezentare preferă. În funcție de acest lucru serverul generează o
reprezentare adecvată.

       Într-un mediu deschis cum este spațiul Web se întâmplă foarte des ca mai multe
informații să refere aceeași resursă. În termeni tehnici acest lucru înseamnă ca diferite URI-
uri identifică același obiect din lumea reală. Acești identificatori poartă numele de alias-uri
URI, fiind un concept extrem de comun în web-ul semantic și având un rol important în
descrierea resurselor non-informaționale. De exemplu, reprezentarea OWL oferă în sintaxa
sa proprietatea owl:sameAs pentru a identifica o resursă prin mai multe URI-uri.

       Explorarea eficientă a datelor structurate în format RDF necesită folosirea unor
aplicații create special pentru acest lucru. Denumite sugestiv navigatoare semantice, aceste
aplicații sunt optimizate pentru a traversa cât mai rapid documentele interconectate din punct
de vedere semantic. Prin intermediul legăturilor dintre elemente, se poate naviga între
Framework-uri, specificații și tehnologii pentru web-ul semantic -31-

paginile grafului de date. Proiecte care merită menționate în acestă categorie sunt sig.ma,
SemDis, Tabulator,etc. Fiecare din acestea are specificul său: posibilitatea de a vizualiza
rezultatele în formate mai ușor de procesat de utilizatorul uman (JSON), căutarea automată
de noi seturi de date care să extindă graful actual, salvarea automată a preferințelor
utilizatorului,etc.

Studiu de caz: DBpedia

          DBpedia este un proiect început în anul 2007 de către Universitatea Liberă din Berlin
și Universitatea din Leipzig, împreună cu OpenLink Software. Scopul lor a fost să extragă
datele structurate din Wikipedia și să le expună pe Web prin intermediul interogărilor
SPARQL. Întreaga comunitate care susține web-ul semantic a catalogat DBpedia ca unul din
cele mai puternice și mai importate proiecte din acest domeniu. Scopul inițial al proiectului a
fost îmbunătăţirea căutării pe Wikipedia.

          Datele privind DBpedia sunt disponibile gratuit şi pot fi la rândul său, legat de alte
baze de date de pe Web. Christian Bizer profesor de la Universitatea Liberă din Berlin,
afirmă:

          "Din moment ce DBpedia acoperă multe probleme, a început un număr mare de surse
de date să pună link-uri către DBpedia. Ca rezultat, DBpedia a dezvoltat un fel de punct focal
pentru colecții de date emergente."




          În ianuarie 2011, colecția de date DBpedia consta în peste 672 milioane de triple
RDF, din care 286 milioane au fost extrase din ediţia engleză a Wikipedia şi 386 milioane au
fost extrase din ediţii alte limbi. Una dintre dificultățile importante în extragerea de
informaţiilor de pe Wikipedia este că aceleaşi concepte pot fi exprimate folosind proprietăţi
diferite în vocabulare, cum ar fi locul de naştere. Din aceasta cauza, întrebări legate de unde
oamenii s-au născut ar trebui să caute pentru ambele din aceste proprietăţi, în scopul de a
obţine mai multe rezultate complete.
Framework-uri, specificații și tehnologii pentru web-ul semantic -32-

       Pentru reducerea numărului de sinonime și pentru dezambiguizare a fost creat un
proiect separat – DBpedia Mapping Languare. În plus, procesul de îmbunătațire a seturilor de
date stocate de DBpedia a fost deschis contribuției publice. În momentul de față se poate
răspunde prin utilizarea DBpedia unor întrebări destul de complexe, cum ar fi pentru toţi
jucătorii profesionişti de fotbal tricoul cu numărul 11 de la ţările cu mai mult de zece
milioane de locuitori. Tot pe același principiu a fost dezvoltat un proiect pentru dispozitivele




                    Fig. 4. Arhitectura generală a proiectului DBpedia


mobile- DBpedia Mobile. Acesta a fost dezvoltat în special pentru turiști. În plus față de
DBpedia, el nu primeşte informaţii numai de la Wikipedia, dar din bazele de date multiple,
cum ar fi statisticile de la Eurostat sau fotografii pe Flickr. De asemenea, informaţii cum ar fi
muzicienii din Berlin pot fi găsite folosind baza de date muzicală MusicBrainz
Framework-uri, specificații și tehnologii pentru web-ul semantic -33-

       2.5 Mișcarea NoSQL

       Ideea de NoSQL a luat fiinţă în contextul unei nevoi de scalare pe orizontală.
Wikipedia prezintă scalabilitatea pe orizontală ca o tendinţă a arhitecturilor de astăzi cu efect
direct asupra bazelor de date, ideea de scalare orizontală o implică pe cea de sistem distribuit.
Termenul NoSQL se traduce ca not only SQL(nu doar SQL). Așadar, acest concept este unul
complementar modelului relațional de baze de date.

       Mişcarea NoSQL nu susţine ca SQL sau bazele de date relaţionale ar fi elemente
negative, nici că web-ul social ar avea de suferit de pe urma lor. Pentru 99.8% din site-urile
disponibile, bazele de date relaţionale sunt suficiente. Pentru câteva companii mari, ale căror
aplicaţii se apropie de statutul de aplicaţii gigant, alternativa la bazele de date relaţionale,
disponibilitatea în defavoarea consistenţei şi sisteme care nu deţin puncte slabe (single point
of failure) a fost îndelung căutată şi perfecţionată.

       Probabil că web-ul social de dimensiuni mici-medii, aplicaţiile în care utilizatorul
poate lăsa feedback sau în care poate interacţiona cu un număr nu foarte amre de alţi useri
este potrivit SQL. Totuşi, web-ul semantic şi cel social de dimensiuni foarte mari au găsit în
mişcarea NoSQL o soluţie. Pot stoca şi expune cantităţi impresionante de date, le pot
interoga şi pot procesa rezultatele. Iar un astfel de beneficiu nu ar fi fost posibil din partea
bazelor de date relaţionale, fie ele cuprinse în sisteme distribuite şi consistente.

       Influenţa mişcării NoSQL asupra web-ului semantic sau a web-ului social se observă
la o simplă enumerare a companiilor care s-au afiliat. Google foloseşte BigTable pentru mare
parte din aplicaţiile pe care le pune la dispoziţia utilizatorilor: Google Earth, Google Reader,
Google Maps, Google Code, YouTube. Amazon, unul dintre cei mai mari operatori de e-
commerce din lume foloseşte Dynamo, o colecţie de perechi cheie-valoare cu o rată foarte
mare de disponibilitate, iar pentru a atinge acest obiectiv renunţă la conceptul de consistenţă,
esenţial pentru sistemele de baze de date relaţionale.
Framework-uri, specificații și tehnologii pentru web-ul semantic -34-

       Cele mai multe sisteme NoSQL folosesc o arhitectură distribuită, cu datele deţinute
într-un mod redundant pe mai multe servere, folosind adesea tabele hash distribuite. În acest
fel, sistemul poate scala uşor prin adăugarea de servere, iar eşecul pe un server poate fi
tolerat. NoSQL este compatibil cu modelul relațional, dar nu vine cu nicio garanție în ceea ce
privește consistența.

Studiu de caz: Amazon Dynamo

       Dynamo este o colecţie de perechi cheie-valoare, este distribuit, versionat, partiţionat
şi replicat. Nu este expus ca serviciu web dar este parte integrantă din Amazon Web
Services, precum S3.

       Ca sistem de e-commerce, Amazon a dezvoltat de-a lungul timpului soluţii de
business intelligence pentru a-şi promova produsele. Asemeni căutării personalizate de la
Google, Amazon ia în considerare „profilul” utilizatorului pentru a face sugestii inteligente.

       Pe lângă informaţiile despre produse şi utilizatori, Amazon corelează utilizatorul de
informaţiile ce ar putea prezenta interes pentru acesta. Soluţia SQL are ca avantaje
consistenţa dar aduce ca principal dezavantaj disponibilitatea.

       Teorema lui Brewer se aplică în cazul Amazon astfel: s-a optat pentru disponibilitate
(availability din „CAP”) în defavoarea consistenţei (C din ACID). Practic, într-o rețea fizică
există un număr mic de componente care se pot defecta la un moment dat, de aceea e necesar
ca softul să trateze erorile ca pe niște cazuri normale, fără a fi afectate disponibilitatea sau
performanța.

       Procesarea unui număr mare de triple necesită un efor computaţional semnificativ, iar
în cazul Amazon aceasta s-ar traduce în pierderi financiare. Reprezentarea informaţiilor în
format RDF şi asocierea produselor cu eventuale concepte definite extern nu pare a fi una din
priorităţile companiei la momentul acesta. Totuşi, o colecţie stabilă şi flexibilă cum este
Dynamo ar putea propulsa Amazon în universul web-ului semantic.
Framework-uri, specificații și tehnologii pentru web-ul semantic -35-


3. FII-Semantic Endpoint – arhitectura şi detalii de implementare


       FII-SPARQL Endpoint este o aplicaţie dezvoltată în Java, care a fost proiectată atât
pentru extragerea de date structurate, cât şi pentru a oferi o modalitate de interogarea şi
utilizare a acestor date. Pentru persistarea datelor se foloseşte modelul de date RDF, iar
pentru interogarea datelor se folosesc framework-urile Jena şi Joseki. Rolul acestora este de a
crea un graf de date, din diferite surse: fişiere, baze de date, URL-uri şi combinaţii ale
acestora. Acest graf de date reprezintă modelul abstract de reprezentare a informaţiilor.
Joseki este parte a proiectului Jena, rolul său fiind acela de a oferi o interfaţă HTTP pentru
datele RDF, având suport pentru interogări SPARQL şi pentru integrarea cu aplicaţiile J2EE.

       În afară de aceste framework-uri, s-a mai folosit framework-ul Spring MVC,
biblioteca de funcţii jQuery pentru programarea la nivel de client, specificaţiile AJAX pentru
crearea de aplicaţii web interactive.




          Fig. 5. Vedere generală asupra aplicaţiei FII-SPARQL Endpoint

       Din punct de vedere arhitectural, aplicaţia este compusă din două module: primul
dintre acestea – FII23 (FII to triple) – are rolul de a parsa sit-ul Facultăţii de Informatică
Framework-uri, specificații și tehnologii pentru web-ul semantic -36-

pentru extragerea de informaţii structurate şi persistarea lor în format RDF, folosind
vocabulare standard. Celălalt modul – FII SPARQL Endpoint – este o aplicaţie web prin care
se pot exploata datele obţinute de FII23, gestionând în acelaşi timp activitatea acestui modul.




       3.1 Modulul FII23

       Aşa cum am precizat deja, rolul acestui model este de a explora sit-ul Facultăţii de
Informatică pentru extragerea de date. Trebuie precizat că scopul acestei aplicaţii nu este
acela de a explora întreg sit-ul facultăţii pentru a crea o copie, o alternativă dedicată web-ului
semantic, ci extragerea de date pentru a putea un model consistent, în conformitate cu
specificaţiile linked data.

       În acest sens, explorarea sit-ului începe cu paginile de profesori şi profesori asociaţi.




       Fig. 6. Arhitectura modului Fii23. În figura de mai sus, cifrele
     reprezintă componente specializate pentru parsarea unei resurse, după
        cum urmează: 1. – dedicat personalului academic, 2. – dedicate
      personalului asociat, 3. – cursurilor, 4. – dedicate evenimentelor
                          din orar şi 5. - studenţilor
Framework-uri, specificații și tehnologii pentru web-ul semantic -37-

       Extragerea de informaţii din aceste pagini se face în două maniere: prin parsarea
manuală a conţinutului paginii HTML şi folosind un serviciu web – any23 (Anything to
triple) – care extrage conţinut structurat din documente web şi formatează datele de ieşire în
diferite formate: XML, RDF, N3, Turle, RDFa. Any23 este un proiect susţinut de Consorţiul
Web, care poate fi accesat atât via servicii web, librărie pentru limbajul Java, cât şi accesat
printr-o aplicaţie la nivel de consolă care să convertească datele între limbajele suportate.

       Din punct de vedere al implementării, pagina fiecărui profesor este procesată într-un
fir de execuţie dedicat, care comunică printr-o coadă blocantă, care permite la un moment dat
doar controlul doar unei singure resurse, realizându-se astfel o prelucrare paralelă.
Vocabularul FOAF (Friend of a friend – Prietenul unui prieten) a fost utilizat pentru
descrierea datelor ce au fost extrase despre un profesor.




       Fig. 7. Extras din documentul RDF care stochează date despre profesori




       Fig. 8. Extras din documentul RDF care stochează date despre                   un curs

       Pe lângă datele extrase despre profesori, în acest pas al aplicaţiei se realizează şi
input-ul pentru urmatoarea pagina care va fi parsată: pagina ce conţine descrierea cursurilor.
Practic de pagina fiecărui profesor se reţine lista de cursuri pe care acesta le susţine. Ulterior,
fiecare pagină asociată unui curs este parsată manual. La fel, pagina fiecărui curs este
prelucrată în paralel, folosindu-se aceeşi structură de date pentru comunicare şi pentru
Framework-uri, specificații și tehnologii pentru web-ul semantic -38-

transferul rezultatelor. Pentru stocarea datelor ce detaliază un curs, s-a folosit vocabularul
Dublin Core Metadata.

       Un concept relativ nou pentru limbajul Java folosit în această aplicaţie este folosirea
de latch-uri pentru sincronizarea firelor de execuţie. Acestea funcţionează exact ca trigger-
ele de la bazele de date, având setată la început o valoare, iar firele de execuţie care îl
partajează pot să aştepte în stare blocantă până când valoarea sa devine 0 sau pot să
decrementeze valoarea cu care a fost setat. Odată ce s-a atins valoarea 0, aceasta nu mai
poate fi modificată nicicum. De asemenea, la atingerea valorii 0, toate firele care partajează
latch-ul şi care sunt în stare blocantă, vor trece în starea running. În aplicaţia noastră, latch-ul
este partajat de modulele care extrag datele de pe paginile de profesori, profesori asociaţi şi
cursuri. Latch-ul are iniţial valoarea 2, iar valoarea sa este decrementată de cele două module
dedicate paginilor profesorilor, notificând modulul care gestionează pagina de cursuri că
poate să înceapă.




           Fig. 9. Extras din documentul RDF care stochează date despre
                               un eveniment din orar



       Graful de date este completat cu resurse şi din alte două locaţii. Prima din acestea este
sit-ul dedicat orarului. De aici se extrag informaţii despre fiecare curs, laborator sau seminar,
urmărindu-se atât detaliile organizatorice ( zi, ora de start, ora de sfârşit, tip), cât şi căror
studenţi îi este dedicat acest eveniment. Scopul acestuia din urmă va fi prezentat puţin mai
Framework-uri, specificații și tehnologii pentru web-ul semantic -39-

încolo. Îndeplinirea specificaţiilor linked data a presupus o mapare a paginii fiecărui profesor
de pe pagina de orar cu pagina fiecarui profesor de pagina facultăţii şi o mapare a numelui
unei discipline din română – cum este pe pagina de orar în engleză – aşa cum a fost extrasă
de către modulul care gestioneză cursurile. Pentru stocarea datelor referitoare la orar s-a
folosit vocabularul Event, precum şi Dublin Core Metadata.

       Ultimul set de date care completează graful de resurse al aplicaţiei noastre este despre
studenţii facultăţii, de la toate nivelurile de studii. Pe lângă numele studentului şi numele de
pe serverul facultăţii, despre fiecare student trebuie reţinut grupurile din care face el parte,
aşa cum apar ele în orar. De exemplu un student din anul 1, semianul A, grupa 2, va face
parte din grupul I1A2 – grupa sa, din grupul I1A – semianul său şi I1 – anul. Fiind vorba
despre persoane, şi în acest caz a fost folosit vocabularul FOAF pentru descrierea datelor.




         Fig. 10. Extras din documentul RDF care stochează date despre un
                                      student



       3.2 Modulul FII Sparql Endpoint

       Cel de-al doile modul al aplicaţiei este, aşa cum am menţionat deja, o aplicaţie web
care permite explorarea grafului de date. În plus, această componentă gestionează şi
activitatea primului modul, lansând la intervale de timp configurabile – implicit este 7 zile –
cereri de recreare a datelor. În intervalul de timp cât FII23 extrage datele – aproximativ 2
minute – nu se pot executa interogări.

       FII Sparql Endpoint se bazează pe framework-ul Spring MVC. Acesta este unul din
cele mai populare framework-uri pentru dezvoltarea de aplicaţii web conforme cu
Framework-uri, specificații și tehnologii pentru web-ul semantic -40-

specificaţiile J2EE. succesul său se datorează faptului că este un proiect open-source, care
permite dezvoltarea de aplicaţii în stil agile, axat pe şablonul de proiectare MVC – Model-
View-Controller, în care componentele unei aplicaţii web – interfaţa grafică, datele şi partea
de logică – sunt izolate unele de altele, rezultând în acest fel o cantitate de cod mai mică, mai
uşor de întreţinut de către persoane specializate într-un anumit domeniu. În plus, Spring
MVC este extrem de uşor de integrat cu alte proiecte specifice J2EE: Struts, Apache Tiles,
JSTL, Velocity,etc.

       Practic, în Spring MVC putem specifica rolul fiecărei componente în cadrul
modelului MVC. Componentele din partea de control vor fi adnotate cu @Controller şi vor
gestiona o cerere de la o anumită adresă/pagină web. Pentru partea de client, Spring MVC
pune la dispoziţie o bibliotecă de taguri care traslatează automat tipurile de date din form-
urile de input la tipurile de date standard din Java, oferind suport şi pentru colecţii.

       Cererile către serverul web pentru executarea de interogări SPARQL sunt trimite în
manieră AJAX – adică asincronă – nefiind necesară reîncărcarea paginii pentru afişarea
rezultatelor. Practic, orice cerere de explorare a grafului de date va fi gestionată de o
componentă specializată, marcată în mod corespunzător – în cazul nostru clasa
AjaxController.    Rolul său este este de a lua valorile de întrare, de a cere unei componente
specializate să execute o anumită interogare şi de a întoarce rezultatul acelei interogări: o
listă de înregistrări într-un anumit format sau un mesaj de eroare. Prezentăm mai jos codul
care gestionează o astfel de cerere:

@RequestMapping(value = "/ajax/runQuery.htm", method=RequestMethod.POST)
public @ResponseBody String runQuery(int format, String query){

     return queryEngine.performQuery( query , format );
}



După cum se poate vedea, această metodă procesează orice cerere de tip POST către pagina
/ajax/runQuery.htm, având ca date de intare două valori din form: interogarea SPARQL şi
formatul rezultatului: tabelar sau XML. Un avantaj major al acestui tip de abordare a
Framework-uri, specificații și tehnologii pentru web-ul semantic -41-

aplicaţiilor web este faptul că scade cantitatea de cod Java nativ în interfaţa grafică,
nemaifiind necesară instanţierea de clase, preluarea valorilor unor parametrii de pe context,
blocuri logice,etc., ci doar un simplu apel către o componentă specializată.

       Apelul către controller este făcut folosind biblioteca de funcţii jQuery. Acesta este
una din cele mai folosite biblioteci JavaScript folosite în momentul de faţă. jQuery este
suportat de toate navigatoarele web, oferind suport pentru apeluri AJAX, lucrul cu foi de
stiluri CSS, traversarea şi modificarea arborelui DOM asociat unei pagini HTML.

Prezentăm mai jos codul pentru realizarea unei astfel de cereri:

$.ajax({
       url: "/FII-SPARQLEndpoint/ajax/runQuery.htm",
       type:"POST",
       data: ({format :$("input[name='format']:checked").val(),
               query : $("#input-textarea").val()}),
       success: function(data){
         $("#resultsDiv").html("<h4>The output is:</h4><pre>"+data+"</pre>");
       }
       error: function(data) {
         $("#resultsDiv").html("Error on retrieving data.");
       }
});



După cum se poate vedea, URL-ul şi tipul acţiunii este identic cu cel din controller. De
asemenea, celor doi parametrii ai metodei din controller le sunt asignate valori în câmpul
data, şi în plus valorea variabilei "format" este convertită automat la o valoare întreagă de
către containerul Spring MVC.

Explorarea resurselor folosind servicii web

       Facilităţile prezentate mai sus de interogare a grafului de date pot fi exploatate şi prin
intermediul serviciilor web, folosind modelul arhitectural REST. Conceptual, modelul REST
este extrem de simplu: este orientat pe resurse şi pe reprezentări. Motivatia folosirii acestui
model este capturarea caracteristicilor de succes ale Web-ului şi utilizarea lor pentru a
continua evoluţia acestuia. Chiar World Wide Web, bazat pe protocolul HTTP, poate fi vazut
Framework-uri, specificații și tehnologii pentru web-ul semantic -42-

ca un sistem arhitectural REST. Aplicatiile RESTful utilizează cereri HTTP pentru toate cele
patru operatii CRUD ( create, read, update, delete ). REST este o alternativă mult mai simplă
decat alte modele(SOAP, RPC), dar cu toate acestea, oferă aceleaşi funcţionalităţi ca şi
mecanismele mai complexe.

       Cererea este constituită dintr-un simplu URL, care este trimis server-ului utilizând
metoda GET, iar raspunsul HTTP va fi un set de date, într-un anume format, dar
neîncapsulate. Cererile REST utilizează foarte rar formatul XML. Deseori, răspunsurile
server-ului, în cazul utilizării REST, sunt în format XML. Totuşi, se pot utiliza şi alte
formate precum : CSV ( comma-separated values), JSON ( JavaScript Object Notation ).
Fiecare format are propriile avantaje şi dezavantaje: XML este uşor de extins şi este type-
safe, CSV este mai compact, iar JSON este foarte usor parsabil de catre clienţii JavaScript şi
uşor de interpretat şi de către alte limbaje. Aşadar, spre deosebire de Serviciile SOAP, REST
nu este “legat” de XML. Totuşi, nu se accepta ca format al raspunsului REST, HTML sau
orice alt format human-readable, care nu este usor procesabil de către clienţi.

       În cazul nostru, pentru a expune funcţionalitatea aplicaţiei ca servicii web, am folosit
un servlet, care prin intermediul metodei doGet() preia valorile pentru parametrii săi,
respectiv: query pentru inteorgare şi format pentru formatul rezutatului(XML sau JSON).
Astfel, o invocare a serviciilor web arată după cum urmeză:

http://localhost:8084/FII-SPARQLEndpoint/WebService?query=[query]&format=[XML/JSON]
Framework-uri, specificații și tehnologii pentru web-ul semantic -43-

4. Studii de caz

i. Un utilizator doreşte să vadă lista de cursuri a unui profesor şi, în plus, doreşte să specifice
nivelul acestor cursuri: licenţă sau master. De exemplu, interogarea SPARQL de mai jos
întoarce lista de cursuri şi numele profesorului cu nick-ul „busaco” de la nivel de master.

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
select distinct ?course ?teacher
where
{
?a foaf:nick "busaco"@en.
?a foaf:name ?teacher.
?t dc:creator ?a.
?t dc:title ?course.
?t dc:educationLevel "Master"
}




ii. Un utilizator doreşte să verifice dacă într-adevăr un anumit curs este predat de un profesor
cu numele menţionat. Pentru aceasta, sintaxa SPARQL oferă posibilitatea de a executa o
interogare care returnează un boolean ce indică dacă o interogare se potriveşte pe datele din
model sau nu. Sintaxa de interogare care se bazează pe cuvântul cheie ASK, ca în exemplul
următor:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
Framework-uri, specificații și tehnologii pentru web-ul semantic -44-


PREFIX dc: <http://purl.org/dc/elements/1.1/>
ask
{
  ?n foaf:name "Florin Iacob"@en.
  ?x dc:creator ?n.
  ?x dc:title ?t.
  FILTER(?t = "Mathematics").
}




iii. Executăm înterogările de la studiul de caz 1 ca apeluri de servicii web şi afişăm rezultatul
în format JSON.
{
  "head": {
    "vars": [ "course" , "teacherwhere"           ]
  } ,
  "results": {
    "bindings": [
      {
        "course": { "type": "literal" ,           "value": "Web Application
Development" }
      } ,
      {
        "course": { "type": "literal" ,           "value": "Web Applications
Development" }
      } ,
      {
        "course": { "type": "literal" ,           "value": "Intelligent Human-Computer
Interaction" }
      }
    ]
  }
}
Framework-uri, specificații și tehnologii pentru web-ul semantic -45-



5. Concluzii şi direcţii de dezvoltare

       Spaţiul Web-ul este perceput ca o reţea globală de informaţie care conectează
documente şi date. Cu toate acestea, deşi a devenit operaţional încă din anul 1993, îi lipsesc
anumite funcţionalităţi importante. Una din acestea este lipsa unui model unitar, standardizat
care să descrie modul de interconectare a datelor de pe Web. Acest neajuns se traduce prin
faptul că în continuare se folosesc mecanisme de bază pentru crearea de legături, dar aceste
mecanisme nu specifică semantica sau contextul legăturilor şi datelor.
       Pentru a creşte relevanţa şi acurateţea informaţiilor este necesară o modalitate
universală prin care să se adauge semantică conţinutului. Este necesară o descriere a
resurselor şi un context, care să arate în ce fel resursele sunt în relaţie cu alte resurse. Acest
lucru facilitează schimbul şi combinarea datelor găsite în cadrul Web-ului, alcătuind spaţiul
Datelor Interconectate (sau Linked Data).
       Modelul arhitectural al Datelor Interconectate va duce la crearea unei baze de date
globale şi interoperabile. Suportul pe care se bazează toată acestă revoluţie a spaţiului Web
este RDF. Principala avantaj al folosirii RDF-urilor este faptul că permite stocarea virtuală a
oricărei date structurate sau nestructurate. Un alt mecanism vital a fost utilizarea URI-urilor
ca identificatori globali de conectare.
       Momentan comunitatea Datelor Interconectate a pus accentul mai mult pe conectarea
şi înglobarea a cât mai mult conţinut. Direcţii viitoare pentru Datele Interconectate includ
dezvoltarea de interfeţe utilizator care să pună în valoare noile moduri de navigare a datelor,
noi navigatoare pentru Web-ul Semantic, care să poată exploata graful de date. Vor trebui
deasemenea îmbunătăţite motoarele de căutare în cadrul acestor date. Adăugarea de conţinut
se poate cel mai simplu prin valorificarea conţinutul deja existent în Web-ul tradiţional şi
transformarea sa în formatul cerut, care să satisfacă principiile modelului.

       Acest ultim aspect al transformării conţinutului HTML static în triple de date
interconectate, precum şi beneficiile aduse de acest nou mod de stocare au fost demonstrate
Framework-uri, specificații și tehnologii pentru web-ul semantic -46-

în cadrul aplicaţiei FII-SPARQL Endpoint, care mai întâi creează o bază de date, formată din
triple RDF. Ulterior, aceasta devine un graf de date interconectate, prin folosirea unui
framework care poate face acest lucru – Jena.

       Unul din avantajele acestui nou model de date este faptul că graf obţinut poate fi
explorat prin interogări SPARQL. Aceste interogări se realizează folosind protocolul HTTP
şi framework-ul Joseki. Practic, în acest fel graful de date devine disponibil în întreg spaţiul
WWW, putând fi accesat atât de către utilizatori umani prin interfaţa oferită, cât şi de alte
aplicaţii prin invocarea interogărilor via servicii Web.

       Provocările din momentul de faţă din domeniile apropiate Web-ului Semantic vizează
în îmbunătăţirea framework-urilor deja existente, crearea de noi colecţii de date care să
descrie cât mai relevant anumite „lumi”. De asemenea, cu deosebit interes este aşteptată noua
versiune a limbajului SPARQL. Aceasta va adăuga un număr suplimentar de funcţii care în
momentul de faţă se regăsesc în limbajele de interogare a bazelor de date tradiţionale.

       Aplicaţia FII-SPARQL Endpoint este un prototip, un model vis-a-vis de modul cum
ar trebui extrase datele din paginile Web tradiţionale în date în format deschis, conform
specificaţiilor W3C în domeniul Web-ului Semantic. Utilitatea sa ar creşte considerabil prin
extinderea sa la nivelul întregii instituţii (sit-ul www.uaic.ro), şi eventual extragarea de date
din surse generatoare de conţinut(bloguri, forumul studenţilor, asociaţii studenţeşti). În acest
fel am putea vorbi de un sistem complet, unitar, dar în acelaşi timp deschis, care să fie în
conformitate cu standardele actuale. De asemenea, framework-urile pe care se bazează
aplicaţia pot constitui subiectele viitoarelor versiuni ale aplicaţiei. Nu în ultimul rând,
extinderea aplicaţiei presupune utilizarea unor noi metode de adnotare a datelor, cum ar fi
ontologiile. Cu siguranţă spaţiul Web ca domeniul, şi Web-ul Semantic ca evolutie firească a
sa vor reprezenta şi în perioada următoare subiecte de interes pentru cercetare şi inovare.
Framework-uri, specificații și tehnologii pentru web-ul semantic -47-


6. Bibliografie


Ayers, D., Bizer, C., Heath, T., Raimond, Y., "Interlinking Open Data on the Web", 2008,
       http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkingOpenData.pdf
Berners-Lee, T., „Giant Global Graph”, 2007, http://dig.csail.mit.edu/breadcrumbs/node/215
Berners-Lee, T., „Linked Data”, 2007, http://www.w3.org/DesignIssues/LinkedData.html
Berners-Lee, T., „Tim Berners-Lee Card”, http://www.w3.org/People/Berners-Lee/card/
Bizer, C., Cyganiak, R., Hausenblas, M., Heath, T., "How to Publish Linked Data on the
Web", 2008, http://events.linkeddata.org/iswc2008tutorial/proposal.pdf
Brelin John „The Social Semantic Web”, Springer, 2009
Daconta C., „The Semantic Web: A Guide to the Future of XML, Web Services, and
Knowledge Management”, Wiley & Sons , 2003
Groppe S. „Data Management and Query Processing in Semantic Web Databases”, 2011
Heath T., „LinkedData. Evolving theWeb into aGlobalData Space”, 2011, Springer
Liang Y., „Introduction to the Semantic Web and Semantic Web Services ”, 2007
Powers S., „Practical RDF”,O'Really, 2003
Vipul K., „The Semantic Web Semantics for Data and Services on the Web”, 2008, Springer
***, „Architecture of the World Wide Web”, Volume One, 2004,
       http://www.w3.org/TR/webarch/
***, „Best Practice Recipes for Publishing RDF Vocabularies”, 2008,
       http://www.w3.org/TR/swbp-
ANEXE
Declaraţie privind originalitate şi respectarea drepturilor de autor




        Prin prezenta declar că Lucrarea de disertaţie cu titlul “Extragerea de date
structurate, aplicarea modelului Linked Data şi a interogărilor SPARQL asupra sit-
ului www.info.uaic.ro” este scrisă de mine şi nu a mai fost prezentată niciodată la o altă
facultate sau instituţie de învăţământ superior din ţară sau străinătate. De asemenea, declar că
toate sursele utilizate, inclusiv cele preluate de pe Internet, sunt indicate în lucrare, cu
respectarea regulilor de evitare a plagiatului:
        - toate fragmentele de text reproduse exact, chiar şi în traducere proprie din altă limbă,
sunt scrise între ghilimele şi deţin referinţa precisă a sursei;
        reformularea în cuvinte proprii a textelor scrise de către alţi autori deţine referinţa
precisă;
        - codul sursă, imagini etc. preluate din proiecte open-source sau alte surse sunt utilizate
cu repsectarea drepturilor de autor şi deţin referinţe precise;
        - rezumarea ideilor altor autori precizează referinţa precisă la textul original.




Iaşi, 2 iulie 2011                                                 Absolvent: Ionuţ Nicolaie Ignătescu

                                                                             ____________________
Declaraţie de consimţământ




        Prin prezenta declar că sunt de acord ca Lucrarea de disertaţie cu titlul “Extragerea de
date structurate, aplicarea modelului Linked Data şi a interogărilor SPARQL asupra
sit-ului www.info.uaic.ro”, codul sursă al programelor şi celelalte continuturi (grafice,
multimedia, date de test etc.) care însoţesc această lucrare să fie utilizate în cadrul Facultăţii de
Informatică. De asemenea, sunt de acord ca Facultatea de Informatică de la Universitatea
Alexandru Ioan Cuza Iaşi să utilizeze, modifice, reproducă şi să distribuie în scopuri
necomerciale programele-calculator, format executabil şi sursă, realizate de mine în cadrul
prezentei lucrări de licenţă.




Iaşi, 2 iulie 2011                                             Absolvent: Ionuţ Nicolaie Ignătescu

                                                                           ____________________
Acord privind proprietatea dreptului de autor




        Facultatea de Informatică este de acord ca drepturile de autor asupra programele-
calculator, format executabil şi sursă, să aparţină autorului prezentei lucrări, Ionuţ Nicolaie
Ignătescu.
        În calitate de autor al prezentei aplicaţii declar că toate resursele şi tehnologiile folosite
se înscriu în categoria open-source, iar folosirea şi redistribuirea lor nu necesită decât
respectarea principiilor open-source.




       Iaşi, 2 iulie 2011




       Decan: prof.dr. Gh. Grigoraş                     Absolvent: Ionuţ Nicolaie Ignătescu
       ____________________                                          ________________________

Contenu connexe

Similaire à Date structurate, aplicarea modelului linked data

Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Ecaterina Moraru (Valica)
 
Referat com metodica 11noiem2013
Referat com metodica 11noiem2013Referat com metodica 11noiem2013
Referat com metodica 11noiem2013
mihaelapaduraru
 
Impactul economic al sistemului de operare linux asupra funcționării unei ins...
Impactul economic al sistemului de operare linux asupra funcționării unei ins...Impactul economic al sistemului de operare linux asupra funcționării unei ins...
Impactul economic al sistemului de operare linux asupra funcționării unei ins...
silviu_cojocaru
 
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareDiploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Vlad Petre
 
Microarhitecturi de procesare a informatiei (Lucian Vintan _ Adrian Florea) (...
Microarhitecturi de procesare a informatiei (Lucian Vintan _ Adrian Florea) (...Microarhitecturi de procesare a informatiei (Lucian Vintan _ Adrian Florea) (...
Microarhitecturi de procesare a informatiei (Lucian Vintan _ Adrian Florea) (...
ivan ion
 

Similaire à Date structurate, aplicarea modelului linked data (20)

IT & C, Volumul 2, Numărul 3, Septembrie 2023 - Rezumate
IT & C, Volumul 2, Numărul 3, Septembrie 2023 - RezumateIT & C, Volumul 2, Numărul 3, Septembrie 2023 - Rezumate
IT & C, Volumul 2, Numărul 3, Septembrie 2023 - Rezumate
 
diSparql
diSparqldiSparql
diSparql
 
Date deschise geo spatial
Date deschise geo spatialDate deschise geo spatial
Date deschise geo spatial
 
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
 
Patrascu Mihaela Hanelore Conceptul World Wide Web
Patrascu Mihaela Hanelore Conceptul World Wide Web Patrascu Mihaela Hanelore Conceptul World Wide Web
Patrascu Mihaela Hanelore Conceptul World Wide Web
 
Cloud computing caracteristici si modele v greavu
Cloud computing caracteristici si modele   v greavuCloud computing caracteristici si modele   v greavu
Cloud computing caracteristici si modele v greavu
 
25 de ani de Web
25 de ani de Web 25 de ani de Web
25 de ani de Web
 
Referat com metodica 11noiem2013
Referat com metodica 11noiem2013Referat com metodica 11noiem2013
Referat com metodica 11noiem2013
 
DATE DESCHISE CE SUNT DATELE DESCHISE? O PERSPECTIVĂ EUROPEANĂ ȘI UNA ROMÂNEASCĂ
DATE DESCHISE CE SUNT DATELE DESCHISE? O PERSPECTIVĂ EUROPEANĂ ȘI UNA ROMÂNEASCĂDATE DESCHISE CE SUNT DATELE DESCHISE? O PERSPECTIVĂ EUROPEANĂ ȘI UNA ROMÂNEASCĂ
DATE DESCHISE CE SUNT DATELE DESCHISE? O PERSPECTIVĂ EUROPEANĂ ȘI UNA ROMÂNEASCĂ
 
Stroia_Laurentiu
Stroia_LaurentiuStroia_Laurentiu
Stroia_Laurentiu
 
Impactul economic al sistemului de operare linux asupra funcționării unei ins...
Impactul economic al sistemului de operare linux asupra funcționării unei ins...Impactul economic al sistemului de operare linux asupra funcționării unei ins...
Impactul economic al sistemului de operare linux asupra funcționării unei ins...
 
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul REST
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul RESTWADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul REST
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul REST
 
De câte stele sunt datele d-voastră?
De câte stele sunt datele d-voastră?De câte stele sunt datele d-voastră?
De câte stele sunt datele d-voastră?
 
Modelarea datelor via XML. Design patterns in contextul specificarii document...
Modelarea datelor via XML. Design patterns in contextul specificarii document...Modelarea datelor via XML. Design patterns in contextul specificarii document...
Modelarea datelor via XML. Design patterns in contextul specificarii document...
 
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...
 
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
 
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareDiploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
 
Microarhitecturi de procesare a informatiei (Lucian Vintan _ Adrian Florea) (...
Microarhitecturi de procesare a informatiei (Lucian Vintan _ Adrian Florea) (...Microarhitecturi de procesare a informatiei (Lucian Vintan _ Adrian Florea) (...
Microarhitecturi de procesare a informatiei (Lucian Vintan _ Adrian Florea) (...
 
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
 
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul REST
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul RESTDezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul REST
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul REST
 

Date structurate, aplicarea modelului linked data

  • 1. Universitatea “Alexandru Ioan Cuza” Iaşi Facultatea de Informatică Extragerea de date structurate, aplicarea modelului Linked Data şi a interogărilor SPARQL asupra sit-ului www.info.uaic.ro Coordonator, Candidat, Asist. dr. Lenuţa Alboaie Ionuţ Nicolaie IGNĂTESCU -Iaşi, iunie 2011-
  • 2. “I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web – the content, links, and transactions between people and computers.” Sir Tim Berners-Lee
  • 3. Tablă de materii Prefaţă ......................................................................................................................... 4 1. Evoluţia Internetului şi a serviciului World Wide Web .......................................... 5 1.1 Scurt istoric şi prezentare a serviciului WWW .......................................... 5 1.2 Standarde actuale in lumea ......................................................................... 7 1.3 Importanta metadatelor ............................................................................... 8 1.4 Introducere în Web-ul Semantic. Concepte de bază .................................. 10 1.5 RDF-concept, descriere, vocabulare .......................................................... 13 1.6 Agregarea si distribuirea informatiilor ....................................................... 14 1.7 Notiuni avansate despre Web-ul Semantic (ontologii, taxonomii) ........... 15 1.8 Cautarea în WWW(comparatie intre cautarea “traditionala” si cautarea intr-un mediu semantic ............................................................................................... 18 2. Framework-uri, specificații și tehnologii pentru web-ul semantic ......................... 21 2.1 Resurse de stocare a datelor ...................................................................... 21 2.2 O comparație a resurselor de stocare a triplelor ........................................ 25 2.3 Limbajul SPARQL. Conceptul de endpoint .............................................. 26 2.4 Conceptul linked data ................................................................................ 28 2.5 Mișcarea NoSQL ....................................................................................... 33 3. FII-Semantic Endpoint – arhitectura şi detalii de implementare ............................ 35 3.1 Modulul FII23 ........................................................................................... 35 3.2 Modulul FII Sparql Endpoint .................................................................... 39 4. Studii de caz ............................................................................................................. 43 5. Concluzii şi direcţii de dezvoltare ........................................................................... 45 6. Bibliografie .............................................................................................................. 47
  • 4. Prefaţă -4- Prefaţă În lumea de astăzi, în care tehnologia se manifestă în toate domeniile, în care dezvoltarea şi îmbunătăţirea echipamentelor actuale nu mai cunoaşte limite, în care niciun domeniu al vieţii nu a scăpat de binefacerile lumii moderne, omul este beneficiarul tuturor acestor eforturi, menite să îi uşureze viaţa. Dezvoltările recente în tehnologia sistemelor informaţionale au determinat o creştere a gradului de computerizare a multor aplicaţii în diverse domenii business. Datele au devenit o resursă critică în foarte multe organizaţii şi astfel accesarea lor în mod eficient, distribuirea lor, extragerea de informaţii utile şi crearea unui sistem capabil să le gestioneze în mod eficient au devenit necesităţi mai mult decat urgente. Eforturile care se fac în acest sens vizează crearea unui sistem capabil atât să integreze datele din surse diferite, cât şi să extragă şi ofere informaţii în diferite forme (rapoarte, statistici), pe baza unor şabloane (eng. pattern). Aceste surse de date pot fi baze de date gestionate de un sistem creat în acest scop (Sistem de Gestiune al Bazelor de Date— SGBD) sau pot fi, de asemenea, date primare, din surse multiple. Dincolo de aceste aspecte care ţin de modul de păstrare şi manipulare a datelor şi care în mod normal prezintă interes doar pentru specialiştii în domeniu, s-a mai dorit crearea unor dispozitive de tip intrare/ieşire care să transforme toate aceste maşinarii de calcule în dispozitive accesibile oamenilor de rând, care nu beneficiază de o pregătire în domeniu. Privind evolutia calculatoarelor, de la prima generaţie şi până la cea curentă (a patra), putem întelege de unde am plecat şi unde am ajuns. Pe măsură ce a evoluat hardware-ul a evoluat, software-ul a evoluat. Pe măsură ce reţelele au evoluat, au evoluat şi protocoalele de comunicaţie dintre calculatoare. Dezvolarea acestor reguli şi protocoale a determinat evoluţia întregii reţele Internet şi a software-ului pentru această reţea. Poate cele mai multe schimbări majore într-un interval scurt de timp s-au resimţit în spaţiul World Wide Web, acest serviciu resimţind îmbunătăţiri majore în cei 20 de ani de existenţă.
  • 5. Evoluţia Internetului şi a serviciului World Wide Web -5- 1. Evolutia Internetului si a serviciului World Wide Web 1.1 Scurt istoric şi prezentare a serviciului World Wide Web Începuturile WWW(World Wide Web) datează din anul 1989 când la Laboratorul de Cercetări de Fizică Nucleară (CERN) din Geneva s-a cristalizat ideea conceperii unui sistem de transmitere a informaţilor între diferitele echipe, aflate la distanţă una de alta, bazat pe Hypertext. Un an mai târziu, în octombrie 1990 proiectul a fost prezentat, iar după numai două luni au început să se contureze primele rezultate. Munca a demarat cu elaborarea unui program capabil să interpreteze limbajul Hypertext, numit browser. În anul 1991, după eliminarea mai multor neajunsuri în funcţionare, Web-ul a fost pus la punct şi a devenit funcţionabil. Anul 1992 a fost un an al dezvoltării, browserul Web a devenit disponibil prin intermediul FTP iar Web-ul a fost prezentat publicului şi organizaţiilor cele mai diverse. La începutul anului 1993 existau 50 de servere Web în întreaga lume pentru ca spre sfârşitul aceluiaşi an numărul lor să crească de peste 10 ori. Un alt moment important în istoria WWW este înfiinţarea Consorţiului Web(W3 Consortium – W3C), în octombrie 1994. Scopul său este "de a exploata spaţiul World Wide Web la întregul său potenţial prin dezvoltarea de protocoale comune care să promoveze evoluţia şi să îi asigurare interoperabilitatea. " Ce este astăzi Webul este lesne de constatat: informaţii, mesagerie, afaceri, comerţ, artă, divertisment sunt numai câteva dintre activităţile ce se derulează sub semnul acestui serviciu. Funcţionarea WWW se bazează în esenţă pe doi piloni: protocolul şi limbajul (sau codul). Protocolul este acel produs software (sau mai simplu program) care asigură tranzacţia între clienţi şi servere. Protocolul pentru Web este HTTP (HyperText Transfer Protocol) care, în desfăşurarea unei tranzacţii, tratează 4 faze: conectarea, cererea, răspunsul şi
  • 6. Evoluţia Internetului şi a serviciului World Wide Web -6- deconectarea. Un alt protocol similar cu HTTP este HTTPS (HTTP Secure – HTTP Securizat). Acesta este un protocol folosit de serverele web pentru a transfera şi afişa conţinutul Web în siguranţă. Datele transferate sunt criptate, astfel încât să nu poată fi citite de oricine, cu excepţia destinatarului. HTTPS este utilizat de către orice sit Web care se bazează pe colectarea de date sensibile clientului, cum ar fi informaţii bancare sau tranzacţii online. Eficacitatea HTTPS poate fi limitată de folosirea deficitară a browser-ului sau de Fig. 1. Evoluţia spaţiului Web. Concepte şi tehnologii aferente fiecărei etape anumite deficienţe la nivel de server. În plus, deşi HTTPS securizează datele care circulă între server şi client, odată ce datele sunt decriptate la destinaţie, acesta devin la fel de sigure ca şi computerul gazdă. Limbajul este un limbaj care descrie modul în care informaţia conţinută în documentele Web trebuie afişată. În Internet limbajul standard este HTML (Hyper Text Markup Language - limbaj de marcare a hipertext-ului). Documentele HTML conţin text, imagini, sunet şi linkuri (legături) către alte documente. Limbajul HTML, având posibilităţi variate de formatare a documentului valorifică ingeniozitatea celui care îl creează (web master sau web designer), rezultatul fiind documente cu mare impact la utilizator.
  • 7. Evoluţia Internetului şi a serviciului World Wide Web -7- 1.2 Standarde actuale în World Wide Web Web-ul progreseză prin agregarea contribuţiilor a sute de milioane de utilizatori. Fiind o lume deschisă, WWW permite oricui sa contribuie într-un fel. Crearea aplicaţiilor este facilitată de colaborarea masivă între dezvoltatorii din cadrul comunităţilor şi de reutilizarea componentelor software, toate aceste lucruri realizând din Web un mediu aflat într-un ritm accelerat de dezvoltare şi îmbunătăţire, care are ca element central utilizatorul. Fig.2. Comparaţie între Web 1.0 şi Web 2.0 Evoluţia spre Web 2.0 s-a produs atunci când vizitatorii siteurilor au putut să contribuie cu informaţii noi şi au putut oferi feed-back. Odată cu Web 2.0 s-a creat o adevărată arhitectură a participării în cadrul căreia fiecare individ care dispune de un dispozitiv conectat la internet poate produce conţinut şi poate interacţiona cu alţi utilizatori de internet, depăşind barierele de timp şi spaţiu. La nivel de instrumente de programare utilizate pentru a crea pagini web, Web 2.0 foloseşte concepte care sunt considerate "de ultimă oră". Aceasta a inclus AJAX şi SOAP şi alte aplicatii XML şi JavaScript care permite clienţilor să interacţioneze efectiv cu informaţia. Un pas important în evoluţia Web-ului a fost făcut prin intermediul funcţiei tag prezentă pe bloguri, siteuri sau pe unele reţele de socializare. În acest sens, indivizii contribuie prin efortul lor individual la îmbogăţirea listelor de cuvinte cheie de care va fi nevoie în construirea noii arhitecturii a spaţiului Web. În plus faţă de aceste facilităţi, se doreşte interconectarea serviciilor oferite în prezent pe internet. De exemplu, în cautarea unui
  • 8. Evoluţia Internetului şi a serviciului World Wide Web -8- restaurant, utilizatorul de internet primeşte nu numai cele mai bune sfaturi dar şi indicaţii despre cum să ajungă la restaurantul ales cu ajutorul unui serviciu de tipul celui oferit de Google Maps. Timpul de căutare a informaţiilor relevante se reduce, iar internetul tinde să devenă sursa cea mai rapidă de informaţie utilă. O altă tendinţă actuală este unificarea tuturor operaţiilor. Spre exemplu, în momentul de faţă cu un cont pe un sit de socializare ne putem autentifica la o mulţime de alte reţele. Este o dovadă că sit-urile web "comunică" şi tendinţa este de a creşte acest fapt. Un model de autentificare comun pe cât mai multe platforme înseamnă o sursă nouă de informaţii despre un anumit utilizator. Cu siguranţă vom putea vorbi în curând de motoare de căutare care să personalizeze răspunsurile. Acestea vor urmări care sunt rezultatele pentru care un anumit utilizator este interesat şi va produce rezultate diferite de căutare pentru utilizatori diferiţi. Chiar şi anunţurile pe care un utilizator le urmăreşte vor fi diferite. Într-un cuvânt, tendinţa generală este una singură: inteligenţă artificială. 1.3 Importanţa metadatelor Pe langă gestionarea datelor, o atenţie deosebită trebuie acordată definirii elementelor de date utilizate în baze de date. Fără o înţelegere a structurii, a limitărilor, a modului de definire şi de descriere a datelor, este probabil ca datele să fie interpretate greşit sau utilizate în mod abuziv. În plus, datele care nu sunt bine definite pot cauza probleme de integritate asupra bazelor de date. Aceasta este o problemă de metadate. Utilizatorii de date trebuie să ştie ce reprezintă datele înainte ca acestea să devină utile ca informaţii. Informaţiile despre date sunt definite ca metadate. Cea mai simplă definiţie a metadatelor este "date despre date." Dar, pentru a fi un pic mai precis, metadata descrie date, dar furnizează informaţii cum ar fi tipul de date, lungime, descriere textuală, şi alte caracteristici ale datelor. Deci, de exemplu, metadatele permit utilizatorului să ştie că
  • 9. Evoluţia Internetului şi a serviciului World Wide Web -9- numărul de telefon al unui client este un câmp numeric de cinci cifre, încât datele în sine ar putea fi 56789. Unitatea de bază pentru reprezentarea cunoştiinţelor este data. Data este, în fapt reprezentată ca un element ce nu are nici o legătură cu alte lucruri. Exemple de date sunt 27, 010110, şi ianuarie. Fără detalii suplimentare nu ştim nimic despre oricare din aceste trei bucăţi de date. Informaţii, pe de altă parte, adaugă context prin relaţiile dintre date şi eventual alte informaţii. Datele, în context cu metadatele generează informaţii. Relatiile pot reprezenta informaţii, dar relaţiile nu constituie de fapt informaţii până când acestea nu sunt înţelese. De asemenea, relaţiile care reprezintă date au tendinţa de a fi limitate în context, mai ales despre trecut sau prezent, cu atât mai puţin dacă presupun implicaţii în viitor. Beneficiul cel mai evident al metadatelor se observă la căutare. Cel mai adesea, căutarea vizează anumiţi termeni cheie, care nu ar putea fi făcută altfel decât cu ajutorul metadatelor. Un alt beneficiu vizează distribuirea conţinutului. Valorile asociate cu un anumit conţinut sunt adesea inspectate de către aplicaţii pentru a determina când este cazul ca anumite resurse să fie distribuite sau puse în comun. Securitatea aplicată la anumite obiecte este adesea parte a modelului de metadate global. Metadatele îmbunătăţesc în mod considerabil gradul de granulaţie ce aparţine căutării în cadrul volumului de date disponibile. Acest lucru permite, folosind motoare de căutare, căutarea pe web pentru a lucra mai eficient şi efectiv în asistarea oamenilor să găsească resursele pe care le cer. Metadatele măresc, de asemenea, abilitatea oamenilor de a localiza resursele online şi pot creşte semnificativ întoarcerea la investiţia iniţială de publicare web. Mai mult decât atât, metadatele sunt de neînlocuit când articolele non-text trebuie să devină disponibile din punct de vedere electronic. Spre exemplu, motoarele de căutare nu pot scana poze sau colecţii de muzică în loc de cuvinte cheie. Metadatele pot conduce utilizatorii la imaginile corecte sau la serviciile de furnizare în situaţii unde numele fişierelor şi categoriile mai mari rareori o fac.
  • 10. Evoluţia Internetului şi a serviciului World Wide Web -10- O altă problemă cu care ne confruntăm este cantitatea tot mai mare de date existentă în întreg spaţiul WWW. De exemplu, Twitter generază zilnic aproximativ 7Tb de date. Noi modalităţi pentru stocarea şi interogarea datelor au fost introduse – BigTable de către Google, modelul Dynamo de către Amazon, dar pe lângă asta e nevoie de o modalitate care să poată procesa automat aceste date, eventual într-un format dedicat în exclusivitate maşinilor. Tendinţa actuală în spaţiul WWW – care nu este altceva decât o bibliotecă imensă de documente interconectate, transferate între calculatoare şi celor ce le accesează – este de a crea o mediu uniform astfel încât calculatoarele să poată prelucra la rândul lor informaţiile prezentate, să le poată interconecta şi interpreta pentru a ajuta utilizatorul uman la regăsirea informaţiilor. 1.4 Introducere în Web-ul Semantic. Concepte de bază Web-ul semantic nu este un concept referitor doar la spaţiul WWW(World Wide Web). El reprezintă un set de concepte şi tehnologii capabile să lucreze atât la nivel global, cât şi în reţele locale – intranet-uri. Din acest motiv o definiţie exactă, completă şi precisă este imposibil de dat. Unii consideră web-ul semantic o viziune, o idee a lui Tim-Berners Lee, cel care la începutul anilor 2000 a anticipat posibilitatea de a folosi web-ul semantic pentru a crea baze de cunoştiinţe şi pentru a procesa datele existente în spaţiul Web. Acestă idee este destul de Fig. 3. Logo-ul propus de Consorţiul Web pentru Web-ul Semantic
  • 11. Evoluţia Internetului şi a serviciului World Wide Web -11- confuză, cu atât mai mult cu cât web-ul tradiţional este pentru utilizatorii umani iar web-ul semantic este destinat pentru aplicaţii, agenţi şi maşini, capabile să „înţeleagă” şi să proceseze conţinutul text al paginilor web. Web-ul semantic este considerat evoluţia firească, fiind a treia generaţie a spaţiului web. Încă de la crearea sa, web-ul s-a vrut a fi mai mult decât un mijloc de accesare a paginilor HTML stocate pe diferite servere. Prima generaţie a spaţiului – cea a anilor 90 – a însemnat mai ales pagini statice, accesarea conţinutului lor facându-se via legături. Odată cu apariţia unor noi tehnologii şi concepte capabile să genereze conţinut HTML dinamic, putem vorbi de cea de-a doua generaţie, denumită web social. Putem vorbi aici despre bloguri, reţele sociale, mash-up-uri de date. Următoarea generaţie a spaţiului web spre care se tinde în momentul de faţă va fi aşa-numitul „web inteligent”, bazat pe o serie de concepte şi specificaţii, cum ar fi: web-ul semantic, învăţare automată, data-mining, căutare pe bază de limbaj natural,etc. Toate acestea vor face spaţiul web un mediu deschis, interconectat şi inteligent. Aşa cum am mai menţionat, viitoarea generaţie a spaţiului web va avea în centrul său maşinile şi aplicaţiile, utilizatorul uman urmând a fi beneficiarul direct al tuturor acestor progrese tehnologice. Web-ul semantic reprezintă un obiectiv: ideea de a avea date de pe Web definite şi legate într-un mod prin care să poate fi utilizat de către maşini, nu doar pentru a fi redate prin pagini HTML, dar şi pentru automatizare, integrare şi reutilizare a datelor din şi în diferite aplicaţii. Scopul web-ului semantic este la fel de larg ca al întregului spaţiu Web: de a crea un mediu universal pentru schimbul de date. Se preconizează interconectarea informaţiilor personale, integrarea aplicaţiilor industriale, precum şi schimbul global de date comerciale, ştiinţifice şi culturale. Datorită dezvoltării infrastructurii, conexiunea la Internet este posibilă astăzi peste tot, iar cantitate de informaţii a crescut exponenţial în ultimii ani. Cu toate acestea, informaţiile şi serviciile sunt distribuite, de multe ori greu de găsit şi greu de integrat. Acest lucru duce la un cost mai mare pentru găsirea informaţiilor relevante şi extragerea conţinutului important.
  • 12. Evoluţia Internetului şi a serviciului World Wide Web -12- Web-ul îşi poate atinge potenţialul maxim numai dacă devine un loc unde datele pot fi partajate şi prelucrate alături de oameni şi de instrumente automatizate. Pentru ca spaţiul Web să scaleze, programele de mâine trebuie să poată partaja datele şi procese chiar şi atunci când aceste programe au fost concepute în mod total independent. Acesta este unul dintre obiectivele principale şi motivaţia din spatele viziunea web-ul semantic. Scopul web-ului semantic este de a fi "un web care să vorbească cu maşinile", în care maşinile să poată oferi un ajutor mai bun pentru oameni, prin valorifcarea conţinutului informaţiilor de pe Web. Informaţiile de pe web ar trebui să fie astfel exprimat într-un mod accesibil pentru calculatoare. Această definiţie este legată cu ceea ce există deja pe web: motoare pentru extragerea de date din pagini cu conţinut structurat, analizatoare de limbaj natural pentru a extrage conţinutul paginilor Web, sisteme de indexare. O mare parte din aceaste proiecte sunt încă la început şi în momentul de faţă nu pot fi considerate o soluţie viabilă şi stabilă. Una dintre provocările curente în evoluţia web-ului semantic este elaborarea unui cadru în care toate cunoştiinţele să poată colabora, deoarece beneficiul maxim de pe urma web-ului semantic poate fi atins numai atunci când calculatoarele gestioneză resurse din surse multiple. Dezvoltarea web-ului semantic va angrena mai multe domenii ale informaticii: tehnologiile web, bazele de date, teoremele automate, ingineria cunoştiinţelor, interacţiunea om-calculator, prelucrarea limbajului natural, etc. Mai mult decât atât, web-ul semantic nu trebuie să fie separat de mai multe aspecte: personalizare (probleme de confidenţialitate), mobilitate (probleme de fiabilitate), publicarea (problema de securitate). Aceste probleme şi subiecte sunt comune în contextul de azi, dar web-ul semantic le conduce la extrema lor, deoarece utilizarea limbajelor semantice face acţiunile calculatorului mai puternice şi, implicit ameninţările mai acute. Cu toate acestea, maturizarea conceptelor legate de web-semantic nu depinde doar o de tehnologie. Aceasta implică alaturi de tehnologie, economie, şi diverse aspecte sociale. Un
  • 13. Evoluţia Internetului şi a serviciului World Wide Web -13- cale de mijloc, susţinută de eforturi comune trebuie să fie găsită între aceste domenii care i-ar putea creşte valoarea, facându-l mai atrăgătoar şi mai uşor de utilizat. Toate aceste aspecte trebuie să fie aşezate într-o alchimie dedicată pentru web-ul semantic. Acesta este motivul pentru multe aplicaţii ar trebui să fie încurajate ca, printr-o infrastructură solidă, să ridice utilitatea web-ului semantic. 1.5 RDF-concept, descriere, vocabulare RDF (Resource Description Framework – Framework pentru descrierea resurselor) este un limbaj creat pentru a suporta conceptele web-ului sematic în aceeaşi măsură în care HTML reprezintă suportul pentru paginile web obişnuite. Limbajul RDF oferă o structură comună pentru schimbul de date, bazat în mare parte pe specificaţiile XML, fiind aşadar un mijloc independent, deschis, cu suport pe aproape toate platformele. Deşi nu este la fel de cunoscut ca alte specificaţii ale W3C (Consorţiul WWW), RDF reprezintă una din cele mai vechi specificaţii, primul extras fiind dat în anul 1997. Scopul iniţial al RDF a fost de a crea un mecanism pentru lucru cu metadate care să promoveze schimbul de date între procese automate. Limbajul este în plin proces de maturizare, având ca scop fix, bine stabilit cel menţionat mai sus. Specificaţiile RDF se bazează pe un concept similar cu programarea orientată-obiect: ierarhii de clase. O colecţie de clase dezvoltate într-un scop precis se numeşte schemă. Organizarea ierarhică a claselor permite extensibilitatea lor prin rafinarea subclaselor. Astfel, pentru crearea de noi scheme se poate folosi o schemă de bază – un fel de clasă abstractă în programarea orientată obiect. În acest fel se realizează reutilizarea definiţiilor de metadate. Moştenirea multiplă permite exploatarea în forme diferite ale aceleiaşi informaţii. La începuturile sale, limbajul RDF a fost folosit în prima implementare a specificaţiilor RSS, de către compania Netscape. Folosirea modelului RDF este justificată
  • 14. Evoluţia Internetului şi a serviciului World Wide Web -14- pentru acele seturi de RSS-uri care au durată de viată destul de mare, deoarece în felul acesta cresc şansele ca datele să fie descoperite şi incluse în graful de date RDF. Modelul de bază se construieşte cu ajutorul următoarelor tipuri de obiecte: - resurse: reprezintă ceea ce este descris. O resursă poate fi o pagină web întreagă, o parte a unei pagini web. Cel mai adesea resursele sunt specificate de URI-uri. -proprietăţi: reprezintă un aspect specific, o caracteristică, relaţie sau atribut pentru resursa descrisă. Specificaţiile prevăd ca fiecare proprietate să aiba o semantică, un set de valori posibile şi un set de relaţii cu alte proprietăţi. - declaraţii: sunt formate dintr-o resursă, împreună cu o proprietate a sa care conţine o valoare. Declaraţia poate fi privită din punct de vedere matematic ca un tuplu: {subiect, predicat, obiect}. Obiectul declaraţiei poate fi o altă resursă sau un literal. Declaraţiile pot fi reprezentate fie ca grafuri orientate(nodurile sunt subiecte sau obiecte, iar arcele proprietaţi), fie folosind marcaje (<subiectul> are <predicat> <obiect>), fie folosind limbajul RDF/XML. 1.6 Agregarea si distribuirea informatiilor Cele mai multe sit-uri Web sunt dedicate cititorilor umani şi acest lucru tinde să creeze informaţie contextuală, care nu poate fi procesată în mod eficient şi de maşini. Pentru accesarea respectivei informaţii şi de către calculatoare s-au realizat diferiţi algoritmi de procesare a limbajului natural sau algoritmi care încearcă să extragă înţeles din cadrul textelor, dar toţi aceşti algoritmi lucrează în jurul ideii de „recuperare” de informaţie, nu de „citire” sau „înţelegere” a informaţiei. Web-ul Semantic crează un Web orientat spre date prin integrarea resurselor care provin din surse diferite ca: pagini HTML, documente XML, foi de calcul, baze de date relaţionale, etc. Pentru ca aplicaţiile Web să poată utiliza surse diferite de date trebuie ca acestea să fie componente ale unei baze de date virtuale unificate. Acest lucru este posibil utilizând modelul RDF3. Acest lucru facilitează schimbul şi combinarea datelor regăsite în
  • 15. Evoluţia Internetului şi a serviciului World Wide Web -15- cadrul Web-ului, alcătuind spaţiul Datelor Interconectate (Linked Data), despre care vom vorbi în capitolul viitor. RDF realizează o interoperabilitate şi o colaborare mai eficientă decât alte standarde, ca XML, deoarece permite furnizorilor de date să încapsuleze alături de date şi înţelesul acestora. Adiţional, dacă aceste date sunt interconectate, atunci datele devin uşor de descoperit. O legătură RDF doar afirmă ca o bucată de date are o anumită relaţie cu o alta bucată de date. Aceste relaţii pot avea tipuri diferite. De exemplu, o legătură RDF care conectează date despre persoane, poate afirma că doua persoane se cunosc; o legătură RDF care conectează informaţii despre o persoană şi publicaţiile acesteia într-o bază de date bibliografică, poate să afirme că acea persoană este autorul respectivei lucrări. Conceptul de integrare a datelor este chiar mai vechi decât calculatoarele, este la fel de veche ca ideea de date în sine: toate seturile de date pe care le folosim astăzi (de la o carte la o colecţie de imagini, de la un catalog la un recensământ de date), ar trebui să fie colectate de diferite persoane /entităţi şi integrate. Se estimează că va mai dura ceva timp popularizarea şi înţelegerea modelului RDF, precum şi a beneficiilor pe care folosirea sa le presupune, dar este tot mai evident că acest model este un candidat excelent pentru integrarea datelor din diverse surse independente. Acest lucru pune RDF în coliziune directă cu tehnologiile de stocare a datelor, cu instrumente de data mining, baze de date multi- dimensionale şi articole similare, asta deoarece puţini specialişti din aceste domenii realizează faptul că RDF nu este doar un alt standard marcare XML. Integrarea datelor reprezintă provocarea de a combina date care provin din diferite surse şi furnizate utilizatorului într-un format unificat, bazat pe scheme universale. Sursele conţine date reale, în timp ce schema globală oferă o semantică unică, integrată, şi virtuală a surselor. Modelarea relaţiei dintre sursele de date şi schema universală este, prin urmare, un aspect crucial. Aceasta se bazează pe mapări. Maparea este procesul de unificare a elementelor din două modele distincte. Acesta este un prim pas într-o varietate de procese de unificare a datelor, dintre care enumerăm: identificarea relaţiilor între date, ca parte a analizei
  • 16. Evoluţia Internetului şi a serviciului World Wide Web -16- de date, descoperirea de date ascunse şi mai ales consolidarea bazelor de date multiple într-o bază de date unică şi identificarea coloanele redundante de date pentru eliminare lor. 1.7 Notiuni avansate despre Web-ul Semantic (ontologii, taxonomii) Scopul modelului RDF este de a defini resurse şi fapte conexe, şi apoi să ofere o modalitate de a permite maparea acestor resurse/fapte pentru a interacţiona. Acest lucru este realizat prin capturarea declaraţiilor despre resurse, fiecare declaraţie constând dintr-o proprietate specifică, cum ar fi titlul şi autorul pentru articolul unor resurse. Cu toate acestea, modelul RDF impune destul de multe constrângeri asupra modelului de reprezentare a datelor. De exemplu, nu oferă nicio modalitate care să restrângă cardinalitatea unei proprietăţi specifice sau care să furnizeze informaţii despre două proprietăţi care sunt disjuncte. Aceste neajunsuri se rezolvă prin folosirea de ontologii. Ontologiile sunt considerate unul dintre pilonii de web-ului semantic, deşi ele nu au o definiţie unanim acceptată. Un vocabular în web-ul semantic poate fi considerat ca o formă specială de ontologie, sau, uneori, ca o colectie de URI-uri cu un sens (de obicei neoficial) descris. Termenul de "ontologie" poate fi definit ca o specificare explicită a unui concept. Ontologii captează structura unui domeniu, adică îl conceptualizează. Aceasta include modelul de domeniu cu posibile restricţii. Conceptualizarea descrie cunoştinţe despre domeniu, nu şi despre starea lucrurilor din domeniu. Cu alte cuvinte, conceptualizarea nu se schimbă, sau se schimbă foarte rar. Ontologia este astfel caietului de specificaţoo al acestui concept - conceptualizarea este specificată folosind un limbaj de modelare particular şi termeni speciali. Un limbaj dedicat ontologiilor, cum ar fi OWL(Web Ontology Language ) adaugă constrângeri suplimentare, care cresc acuratetea de implementare a unui vocabular dat. Mai mult decât atât, permit informaţiile suplimentare care urmează să fie deduse din date, deşi acestea nu pot fi stocare în mod specific.
  • 17. Evoluţia Internetului şi a serviciului World Wide Web -17- OWL pune la dispoziţie 3 sublimbaje, cu grade diferite de expresivitate, care pot fi integrate în diferite vocabulare, în funcţie de scopul acestuia. OWL Lite sprijină utilizatorii care au nevoie în primul rând o ierarhie de clasificare şi de constrângeri simple. De exemplu, constrângerile de cardinalitatea să permite numai valori cardinalitatea de 0 sau 1. OWL DL sprijină utilizatorii care îşi doresc expresivitate maximă asigurând în acelaşi timp completitudinea (se garantează calculabilitatea concluziilor) şi decidabilitate (toate calculele se vor termina în timp finit). OWL DL include toate construcţiile limbajului OWL, dar acestea pot fi folosite numai în conformitate cu anumite restricţii (de exemplu, în timp ce o clasă poate fi o subclasă de multe clase, o clasa nu poate fi un exemplu de o altă clasă). În timp ce ontologiile descriu relaţiile într-o manieră n-dimensională, care să permită cu uşurinţă accesarea informaţiei din mai multe perspective, un alt concept apropriat web- ului semantic – taxonomiile – sunt limitate la relaţiile ierarhice. Într-un mediu RDF, ontologiile sunt capabile să asigure o capacitate care extinde utilitatea unei taxonomii. Avantajul ontologiilor este că aceasta pot fi legată de o altă ontologie, care să beneficieze de datele sale. Din acest motiv al posibilelor legături, taxonomiile sunt limitate în mod clar ca fiind mai mult scheme de clasificare, decât modele care să descrie relaţiile parte-întreg dintre termeni. Ontologiile au ca scop organizarea, adăugarea de sens la grafurile de date şi metadate şi maparea printre ontologiile dintr-un domeniu specific a modului în care datele devin interconectate pe Web. O taxonomie este un instrument foarte util, mai ales pentru că pot fi construite cu uşurinţă, pot fi îmbunătăţite şi extinse. Dar taxonomii au anumite limitări. Ele nu sunt flexibile. Astfel, poate deveni dificil să fie extinse la un spatiu mare de descriere. Cu cât se adaugă mai multe elemente, cu atât mai multe moduri de interconectare vor fi găsite, ceea ce duce la ruperea structurii tradiţionale de arbore. Există modalităţi de a îmbunătăţi flexibilitatea prin combinarea taxonomiilor cu vocabulare şi diverse concepte de baza de date, dar acestea le face şi mai subsceptible la erori.
  • 18. Evoluţia Internetului şi a serviciului World Wide Web -18- 1.8 Cautarea în WWW(comparatie intre cautarea “traditionala” si cautarea intr-un mediu semantic. Căutarea în spaţiul WWW se face folosind motoarele de căutare,care se bazează pe tabele de indecşi. Acest proces de indexare a datelor este făcut de un software specializat, denumit crawler. Scopul său e să exploreze întreg spaţiul Web pentru a indexa orice dată care ar putea ulterior deveni subiectul unor căutări. Practic, în felul acesta se crează un tabel imens de structuri cheie-valoare, unde cheia este un cuvânt, iar valoarea este o listă de structuri care memorează URI-ul unde a fost găsită respectiva resursă, precum şi alte detalii ce ţin de particularităţile fiecărui motor de căutare în parte. Când un utilizator introduce o interogare într-un motor de căutare (de obicei, prin folosirea cuvintelor-cheie), motorul examinează tabelul de indicşi şi se furnizează o listă de pagini web care se potrivesc cel mai bine cu criteriile sale, de obicei, cu un scurt rezumat care conţine titlul documentului şi, uneori, piese a textului. Indexul este construit din informaţiile stocate cu datele şi metoda prin care informaţia este indexată. Din păcate, nu există în prezent motoare de căutare cunoscute publicului, care permit căutarea documentelor în funcţie de dată. Cele mai multe motoare de căutare utilizează operatorii booleani AND, OR si NOT pentru a specifica în continuare interogarea de căutare. Operatorii booleeni sunt pentru căutările literale, care permit utilizatorului să perfecţioneze şi să extindă termenii de căutare. Motorul caută cuvinte sau fraze exact aşa cum a intrat. Unele motoare de căutare oferă o funcţie avansată numită căutare de proximitate care permite utilizatorilor să definească distanţa dintre cuvintele cheie. Utilitatea unui motor de căutare depinde de relevanţa setul de rezultate care este returnat. Deşi pot exista milioane de pagini web care includ un anumit cuvânt sau o frază, unele pagini pot fi mai relevante, mai populare decât altele. Cele mai multe motoare de căutare utilizează metode de clasificare a rezultatelor pentru a furniza primele "cele mai
  • 19. Evoluţia Internetului şi a serviciului World Wide Web -19- bune" rezultate. Cum fiecare motor de căutare decide care pagini se potrivesc cel mai bine, şi ce ordine a rezultatelor ar trebui să fie prezentate, acestea variază mult de la un motor de căutare la altul. Spre deosebire de motoarele de căutare de acum, care folosesc crawl-ere pentru exploarea paginilor Web,în Web-ul Semantic motoarele de cautare indexeză datele stocate în format RDF pe Web. Desigur, un motor de căutare pentru Web RDF pe Web, oferă servicii echivalente un motor de căutare existent în prezent pentru Web HTML. Sistemul explorează indexurile web-ului semantic şi oferă o interfaţă uşor de utilizat, prin care utilizatorii pot găsi informaţiile pe care le caută. Din cauza semanticii inerente a RDF şi altor limbaje specifice Web-ului Semantic, capacităţile de căutare şi regăsire a informaţiilor sunt potential mult mai puternic decât cele de la motoarele de căutare actuale. Prezentăm în continuare câteva dintre motoarele de căutare bazate pe tehnologiile Web-ului Semantic. Sindice Sindice este un motor de căutare al indecşilor din documentele Web-ului Semantic construit pe tehnici intensive de calcul în clustere,fiind dezvoltat de Déri Irlanda. Sindice indexează web-ul semantic şi poate să spune ce surse menţionează o resură URI sau un cuvânt cheie, dar nu poate răspunde la interogări asupra triplelor. Sindice indexează în prezent peste 20 de milioane de documente RDF. Yahoo! Microsearch Microsearch este produsul oferit de Yahoo! pentru căutarea în Semantic Web şi oferă o experienţă mai bogată căutare prin combinarea rezultate tradiţionale de căutare cu metadate extrase din pagini Web. Acesta se bazează pe indexarea documentelor RDF, RDFa şi microformate de pe Web. Yahoo! a anunţat că va adaugă în curând proiectului Microsearch suport pentru GRDDL.
  • 20. Evoluţia Internetului şi a serviciului World Wide Web -20- Swoogle Swoogle caută prin peste 10.000 de ontologii. 2.3 milioane documente RDF indexate, în prezent, inclusiv cele scrise în RDF / XML, N-triple, N3 (RDF), precum şi unele documente care presupun fragmente de RDF / XML. În prezent, aceasta permite căutarea prin ontologii. Pe lângă asta, oferă metadate pentru documentele Web-ului Semantic şi sprijină navigarea prin aceste documente. Swoogle, de asemenea, oferă suport pentru arhivarea unor versiuni diferite de documente. Acest proiect este dezvoltat de Ebiquity Group of UMBC.
  • 21. Framewo rk-uri, specificații și tehnologii pentru web-ul semantic -21- 2. Framework-uri, specificații și tehnologii pentru web-ul semantic 2.1 Resurse de stocare a datelor Suportul pentru aplicaţiile pe scară largă în domeniul web-ului semantic depinde de alegerea și utilizarea mediilor de stocare a triplelor potrivite, în special în funcție de cantitatea de RDF care trebuie persistată. Interesul acordat framework-urilor de stocare a triplelor se datorează capacității lor de a reprezenta relaţiile dintre entităţi arbitrare într-un format generalizat: noţiunea de triplu, cu care o relaţie între un subiect şi un obiect este notată cu o proprietate. Un mecanism de stocare a triplelor RDF este un framework pentru persistarea și interogarea datelor în format RDF, dispuse cel mai adesea sub forma unui graf de date. În ultima vreme s-a constatat un interes major în dezvoltarea de aplicații pentru stocarea datelor RDF, pentru interogarea și optimizarea protocoalelor de acces. Dacă în anii 2000 singurele medii de stocare erau Sesame și Jena, amândouă pentru platforma Java, în momentul de față există suport pentru aproape orice limbaj. Direcțiile actuale se concentrează pe dezvoltarea de medii distribuite, cu suport pentru replicarea datelor și distribuția lor uniformă din punct i0de vedere spațial la nivel global. Limbaj Nume C 3Store,Virtuoso CommonLisp AllegroGraph Java Jena, Joseki, Mulgara, Sesame Perl RDF::Core, RDF::Trine PHP RAP Python Pointrel System C# SemWeb-DotNet, Smart-M3 Fig.1. Tabel cu diverse framework-uri de stocare a triplelor RDF
  • 22. Framework-uri, specificații și tehnologii pentru web-ul semantic -22- Mediile de stocare a triplelor RDF pot fi împărțite în trei categorii importante: native, stocate în memorie și non-native, nestocate în memorie. Stocarea în memorie este o metodă eficientă pentru cantități moderate de date. Au avantajul vitezei, fiind folosite mai ales în sistemele de reasoning sau pentru rezolvarea problemelor de inferențe în mediile de stocare persistente, acționând adesea ca un cache. Acest model de stocare se pretează la structurile de triple omogene în timp, deoarece avantajul major – viteza de procesare ar avea de suferit dacă s-ar face des operații de refacere a modelului. În momentul de față modelul dominant pentru stocare este cel nativ, care oferă modalități persistente de stocare, cu suport propriu pentru implementarea bazelor de date. Câteva exemple de framework-uri din această categorie: Virtuoso, Mulgara, AllegroGraph, Garlik JXT. Cea de-a treia categorie de aplicatii pentru stocarea triplelor este non-nativă și nestocată în memorie. Aceast model este folosit ca o modalitate de a cupla modelul triplelor RDF cu alte modele tradiționale de baze de date(relațional, orientat obiect,etc.). În momentul de față, framework-urile bazate pe modelul nativ au câștigat popularitate datorită timpului redus de încărcare și posibilităților de optimizare. Framework-ul Jena Jena este un framework dezvoltat pentru platforma Java pentru construirea de aplicații pentru web-ul semantic. Jena implementeaza API-uri pentru lucrul cu structuri specifice acestui domeniu, cum ar fi RDF şi OWL. Conceptul fundamental în Jena pentru utilizatori este modelul, care reprezintă modalitatea în care framework-ul gestionează o mulțime de triple RDF. Un model poate fi creat 0064e sistemul de fişiere sau dintr-un fişier existente pe un server web. Folosind JDBC, acesta poate fi, de asemenea, legat la un server de baze de date relațional, cum ar fi MySQL sau PostgreSQL. Jena dispune de o componentă denumită SDB, care oferă o modalitate eficientă pentru persistare scalabilă şi interogare a seturilor de date RDF folosind structuri SQL
  • 23. Framework-uri, specificații și tehnologii pentru web-ul semantic -23- convenţionale, utilizate în aplicaţii clasice sau aplicații J2EE bazate pe diverse framework- uri. de stocare, după cum sa menţionat, este furnizată de o bază de date SQL şi multe baze de date sunt susţinute, atât open source şi proprietare. În plus, referitor la accesul optimizat la datele stocate folosind API-ul Jena, acesta poate fi cuplat cu web-server - "Joseki" - care este server ce suportă interogări SPARQL. Acest lucru permite ca o bază de date să poată fi interogată peste protocolul HTTP. Jena în plus faţă de caracteristicile menţionate mai sus, de asemenea, oferă posibilitatea de a realiza raţionamente de grade diferite. Acesta poate fi folosit pentru a efectua raţionamente simple RDFS sau raţionamente care presupun o folosire mai intensă a memoriei - OWL-DL. Toate sistemele de raționament (reasoners) puse la dispoziţie de către API-ul Jena efectuază raţionamentele în memorie, cu alte cuvinte modelul sau structura de date pe care se face raționamentul trebuie să fie încărcat în memorie. Framework-ul Sesame Sesame este un framework open source pentru persistare, interogare a datelor RDF și pentru realizarea de inferențe. Sesame posedă caracteristicile Jena, având un API propriu, suport pentru inferențe și funcționalitatea specifică unui server web şi endpoint SPARQL. Ca și Jena SDB, oferă suport pentru backend-uri multiple cum ar fi MySQL şi Postsgre. Sesame Native este modulul care se ocupă de gestiunea triplelor de RDF. În comparaţie cu Jena TDB, este mai puţin scalabil. Testele facute menţionează că Sesame Native a fost testat cu pana la aproximativ 70 de milioane de triple în timp ce Jena TDB este capabil să gestioneze cu 1,7 miliarde triple. Sesame acceptă două limbaje de interogare: SeRQL şi SPARQL. O altă componentă a framework-ului este Alibaba, un API care permite maparea claselor Java pe ontologii, şi pentru generarea de fișiere sursă Java din ontologii. Acest lucru face posibilă utilizarea unor ontologii specifice, cum ar fi RSS, FOAF şi Dublin Core direct din Java.
  • 24. Framework-uri, specificații și tehnologii pentru web-ul semantic -24- Framework-ul Mulgara Mulgara este un mediu nativ, scris în Java pentru a stoca triple RDF. Acesta oferă o conexiune API care poate fi utilizat pentru conectarea la Mulgara. Fiind un mediu nativ, framework-ul are o script de „încărcare” care poate fi folosit pentru a încărca date RDF în mediul de stocare a triplelor. În plus faţă de sprijinirea interogări SPARQL prin conexiunea API, acestea pot fi efectuate prin intermediul unui shell TQL.TQL este o interfaţă linie de comandă care permite interogări pe modele prezente în mediul de stocare. Trebuie remarcat că Mulgara nu se bazează și nici nu oferă suport pentru modelul relaţional. În schimb, Mulgara este o bază de date complet nouă optimizată pentru gestionarea metadatelor. Modele Mulgara ţine metadatele sub formă de scurte declaraţii subiect-predicat-obiect, la fel ca standardul W3C Resource Description Framework (RDF). Metadatele pot fi importate sau exportate din Mulgara în RDF sau forma N3. Un aspect important care trebuie remarcat la Mulgara este modul în care este gestionată concurența, acesta bazându-se pe suportul sistemului de operare pe care rulează, evitând blocarea resurselor folosite. Fiecare sesiune/tranzacție asupra resurselor stocate rulează într-un fir de execuție propriu. În acest fel, numărul maxim de sesiuni concomitente este limitat de sistemul de operare și de sistemul de intrare-ieșire. Atunci când se iniţiază o sesiune de interogare, care ar putea implica mai multe cereri pentru mediului de stocare a triplelor, mai întâi se realizează un instantaneu al întregii baze de date. Acest lucru asigură că toate cererile în timpul prelucrărilor se vor executa asupra unei baze de date într-o stare consistentă. Framework-ul Virtuoso Virtuoso este un framework disponibil în ambele versiuni: open source şi cu licenţă comercială. Acesta oferă o interfață la linia de comandă pentru diverse operații, un API pentru conexiuni, suport pentru SPARQL şi server web pentru a efectua interogări SPARQL
  • 25. Framework-uri, specificații și tehnologii pentru web-ul semantic -25- şi încărcarea de date prin HTTP. O serie de evaluări au testat Virtuoso şi au constatat că scalează până la aproximativ 1 miliard de triple. În afară de aceasta, Virtuoso dispune de module prin care se poate conecta pentru a fi folosit cu Jena şi Sesame. Virtuoso este conceput pentru a rula pe sisteme de operare cu suport multithreading şi pe sisteme cu mai multe procesoare. Arhitectural, constă dintr-un singur proces care gestionează mai multe fire de execuție, partajate între clienţi. Pentru comunicarea între firele de execuție se păstrează un fişier de tranzacţii care înregistrează toate operaţiunile. Fişierul de tranzacții poate fi conservat şi arhivat pentru o perioadă de timp nedeterminată, oferind o istorie completă, recuperabilă a bazei de date. Toate cele patru niveluri de izolare sunt suportate: citirea eronată (dirty read), citit comis(commited read), citit repetabile(repetable read) şi serializarea(serializabile). Nivelul de izolare poate fi specificat pentru fiecare operaţie în parte, dintr-un set de operaţii ale unei tranzacţii. 2.2 O comparație a resurselor de stocare a triplelor Toate testele la care au fost supuse mediile de stocare de mai sus au arătat un grad superior de performanță a mediilor native, cum ar fi Mulgara, Sesame și Virtuoso. Acest lucru este în concordanță cu tendințele actuale în ceea ce privește dezvoltarea de medii native de stocare a triplelor RDF, cu atât mai mult cu cât pot performanța lor va duce la optimizarea lucrului cu RDF. Totuși câteva din aceste medii(Mulgara și Virtuoso) au un dezavantaj major: nu posedă un API care să se realizeze în mod programatic accesul la resursele stocate. După cum am menționat și la începutul acestei părți, eficiența unei aplicații din domeniul web-ului semantic este influențată direct de framework-urile și API-urile auxiliare folosite. Experimentele au arătat incapacitatea framework-urilor de a gestiona cantități mare de date, nefiind niște medii scalabile. Acest lucru se datorează mai ales dependențelor acestor medii, care nu sunt compatibile în totalitate cu aplicațiilor în care sunt folosite și API-urilor care au fost create pentru a facilita accesul în mod programatic. Documentația acestor medii recomandă folosirea scripturilor în detrimentul API-urilor, în cazul în care se lucrează cu baze de date foarte mari.
  • 26. Framework-uri, specificații și tehnologii pentru web-ul semantic -26- Un comportament cu totul aparte s-a observat la Jena: a reușit să gestioneze baze de date de orice dimensiune, dar cu un cost mai mare în ceea ce privește viteza cu care se realizează aceste operații. Acest lucru era oarecum previzibil, deoarece Jena are suport pentru bazele de date relationale în care stocheză datele și care nu poate fi optimizat pentru baze de date particulare. Au fost câteva abordări hibride ale mecanismelor de stocare a triplelor, dar principala problemă în acest sens este compatibiliatea între sisteme. Rezolvarea acestor probleme ar duce la crearea unor medii cu adevărat optime și care ar putea multe probleme în acest sens. 2.3 Limbajul SPARQL. Conceptul de endpoint După cum am prezentat în capitolul anterior, specificațiile RDF(S) și OWL pentru reprezentarea ontologiilor și pentru adnotarea datelor în web-ul semantic. Totuși, odată ce aceste date au fost publicate, este necesar un mecanism de interogare a datelor existente, pentru a le face în întregime utilizabile. SPARQL (SPARQL Protocol and RDF Query Language – Protocolul SPARQL și limbajul de interogare a RDF-urilor) rezolvă această problemă și oferă, după cum sugerează și numele, atât un limbaj pentru interogarea datelor și un protocol pentru datele în format RDF. Acest limbaj poate fi privit ca limbajul SQL pentru web-ul semantic, oferind un mecanism extrem de puternic și de simplu pentru interogarea triplelor și a grafurilor de date. Referior la SPARQL, Tim Berners-Lee a afirmat: ”Web-ul semantic fără SPARQL este același lucru ca bazele de date relaționale fără SQL. SPARQL face posibilă interogarea bazelor de date și a altor surse existente în întreg spațiul WWW.” Deoarece RDF-urile sunt reprezentate ca grafuri, SPARQL este un limbaj de interogare peste grafuri, spre deosebire de SQL care manipulează tabele și înregistrări. În plus, interogările sunt mult mai flexibile, astfel încât interogări complexe pot fi rulate peste graful de date. Ex: să se găsească toate persoanele care cunosc pe cineva interesat de web-ul semantic.
  • 27. Framework-uri, specificații și tehnologii pentru web-ul semantic -27- SPARQL poate fi folosit pentru interogarea fișierelor RDF independente, dar și pentru modele mai complexe, fie încărcate în memorie de către motorul de interogare, fie folosind structuri optimizate pentru manipularea triplelor RDF. Astfel, este necesară cunoașterea fișierelor care vor fi interogate pentru a fi încărcate în modul cel mai optim în memoria principală. O abordare extrem de interesantă pentru determinarea fișierelor ce vor fi interogate este voiD (Vocabulary of Interlinked Datasets – Vocabulare de colecții de date interconectate). Acest lucru se bazează pe o schemă RDF pentru a exprima metadate despre colecțiile de date RDF. voiD trebuie privit ca o conexiune între cei care au publicat datele și cei care vor consuma aceste date. SPARQL oferă patru structuri de manipulare a colecțiilor de date: - SELECT – pentru extragerea de informații,după anumite șabloane și criterii - CONSTRUCT – utilizat pentru construirea grafului de date, translatând triplele RDF stocate fizic în fișiere într-un model interogabil. - ASK – similar cu select, dar în loc de a extrage informații, verifică dacă respectivul șablon este aplicabil pe baza de date. - DESCRIBED – utilizat pentru a identifica toate triplele care au legătură cu unj anumit obiect. Un exemplu de interogare SPARQL folosind select, care listează toate cursurile de la master care ținute de un profesor cu numele Popescu. PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> select ?course where { ?a foaf:name "Popescu". ?t dc:creator ?a. ?t dc:title ?course. ?t dc:educationLevel "Master" }
  • 28. Framework-uri, specificații și tehnologii pentru web-ul semantic -28- Așa cum am menționat, SPARQL este pe lângă un limbaj de interogare și un protocol. Conform specificațiilor Consorțiului Web, rezultatele interogărilor pot fi serializate în diverse formate (uzual JSON și XML) pentru a oferi acces deschis și standardizat la seturile de date. De asemenea pentru acest protocol, standarul actual specifică utilizarea serviciilor web folosind limbajul de descriere WSDL 2.0. Endpoint-ul reprezintă interfața prin care se manipulează structura de date disponibilă. Acest schimb poate fi făcut fie de un utilizator uman, fie de către alte aplicații. Rezultatele sunt de obicei oferite în mai multe formate, care să poată fi ulterior procesate atât de mașină, cât și de utilizatorul uman. Tendința actuală este ca toate marile companii, instituții sau organizații care manipulează date să ofere o modalitate prin care datele publice existente să fie disponibile via interogări SPARQL. La fel cum serviciile web reprezinta o standardizare a aplicațiilor, acestea putând fi accesate independent de mașină, sistem de operare și limbaj de programare folosit, accesarea datelor via endpoint-uri reprezintă același concept la nivelul bazelor de date. Pentru a satisface și extinde acest deziderat, au fost unele abordări susținute de marii dezvoltatori de baze de date relaționale care convertesc acest model către un model sub formă de triple, accesibil via interogări SPARQL. Acest proiect este încă în faza de început, astfel încât nu se poate vorbi de o soluție utilizabilă la scară largă. 2.4 Conceptul linked data Termenul linked data (date interconectate) a fost introdus de către Tim Berners-Lee într-o lucrare a sa despre arhitectura spațiului web. Termenul descrie o modalitate de publicare și interconectare a datelor în formă structurată, plecând de la prezumția că datele devin mai valoroase și mai credibile pe măsură ce devin tot mai conectate cu alte date. Practic, acest model dorește o standardizare a datelor din surse diverse, având ca reguli
  • 29. Framework-uri, specificații și tehnologii pentru web-ul semantic -29- principale utilizarea modelului RDF pentru a publica date structurate pe web și utlizarea de referinte RDF(RDF links) pentru a lega date din surse diverse. Aplicarea acestor principii ar conduce la crearea unui web de date comune, un spațiu unde oricine poate să publice și să consume date. Aceasta este definiția web-ului semantic, cunoscut și sub numele de web de date (web of data). În momentul de față există deja o cantitate mare de date structurate care poate fi accesată prin API - uri dedicate, oferite de către fiecare furnizor în parte: API pentru eBay, pentru Amazon, pentru Yahoo!, etc. Spre deosebire de ceea ce există acuma, conceptul despre care vorbim are avantajul de a oferi un mecanism standardizat, unic, care nu depinde de vreo interfață sau de vreun format proprietar. În felul acesta datele ar fi mult mai ușor de indexat de către motoarele de căutare, ar putea fi accesate prin intermediul unor navigatoare specializate pentru web-ul semantic care să folosească legaturile dintre sursele de date în locul legaturilor text din web-ul actual. Pentru a publica date pe web, primul lucru care trebuie făcut este să identificăm aspectele care ne interesează. Acestea sunt lucruri a căror relații sau caracteristici dorim să le descriem folosind date. În arhitectura web, aspectele care ne interesează poartă numele de resurse. Resursele sunt identificare folosind URI-uri(Uniform Resource Identifiers – Idenitificatori uniformi ai resurselor). În contextul specificațiilor linked data, se limitează doar folosirea identificatorilor HTTP URI, pentru a se evita conflictele cu alte scheme URI cum ar fi URN sau DOI. Folosirea acestor identificatori este recomandată din cel puțin două motive: oferă un modalitate extrem de simplă de a crea nume unice la nivel global fără acces centralizat și aceste URI nu actionează doar ca un nume, ci reprezintă o modalitate de a accesa o resursă din spațiul Web. Resursele din spațiu Web pot avea o reprezentare. O reprezentare este o secvență de octeți într-un anumit format, ca de exemplu PDF, XML sau JPEG. O sigură resursă informațională poate avea diferite reprezentări, în formate diferite, de calitate diferită, în limbi diferite, etc.
  • 30. Framework-uri, specificații și tehnologii pentru web-ul semantic -30- Un alt concept important în contextul linked data este dereferențierea URI-urilor. Acesta este un proces prin care se caută în întreg spațiul web informații despre resursa referită. Când un identificator de resurse a descoperit o resursă informațională care este referită, server-ul proprietar al acelui URI generază o nouă reprezentare a stării acelei resurse, care este trimisă înapoi la client prin protocolul HTTP, cu răspunsul 200 OK. Resursele non-informaționale nu pot fi referite direct. Arhitectura web pune la dispoziție un mecanism prin care se poate realiza acest lucru. În locul reprezentării resursei respective, serverul trimite ca răspuns un indentificator care descrie respectiva resursă non- informațională, împreună cu codul 303 See Other. Practic, acest lucru este o redirectare. Într- un alt pas, clientul referă noul identificator și primește reprezentarea respectivei resurse. Navigatoarele obișnuite redau de obicei conținutul RDF în format text, primar sau downloadează respectivul cod, fără a afișa ceva. Pentru utilizatorii care nu au cunoștiințe de IT acest lucru nu este deloc folositor. Astfel, o reprezentare HTML adecvată în locul unei reprezentări RDF este mult mai utilă. În cadrul protocolului HTTP acest lucru se numește negocierea conținutului. Clienții HTTP trimit odată cu cererea și antetul HTTP pentru a indica ce fel de reprezentare preferă. În funcție de acest lucru serverul generează o reprezentare adecvată. Într-un mediu deschis cum este spațiul Web se întâmplă foarte des ca mai multe informații să refere aceeași resursă. În termeni tehnici acest lucru înseamnă ca diferite URI- uri identifică același obiect din lumea reală. Acești identificatori poartă numele de alias-uri URI, fiind un concept extrem de comun în web-ul semantic și având un rol important în descrierea resurselor non-informaționale. De exemplu, reprezentarea OWL oferă în sintaxa sa proprietatea owl:sameAs pentru a identifica o resursă prin mai multe URI-uri. Explorarea eficientă a datelor structurate în format RDF necesită folosirea unor aplicații create special pentru acest lucru. Denumite sugestiv navigatoare semantice, aceste aplicații sunt optimizate pentru a traversa cât mai rapid documentele interconectate din punct de vedere semantic. Prin intermediul legăturilor dintre elemente, se poate naviga între
  • 31. Framework-uri, specificații și tehnologii pentru web-ul semantic -31- paginile grafului de date. Proiecte care merită menționate în acestă categorie sunt sig.ma, SemDis, Tabulator,etc. Fiecare din acestea are specificul său: posibilitatea de a vizualiza rezultatele în formate mai ușor de procesat de utilizatorul uman (JSON), căutarea automată de noi seturi de date care să extindă graful actual, salvarea automată a preferințelor utilizatorului,etc. Studiu de caz: DBpedia DBpedia este un proiect început în anul 2007 de către Universitatea Liberă din Berlin și Universitatea din Leipzig, împreună cu OpenLink Software. Scopul lor a fost să extragă datele structurate din Wikipedia și să le expună pe Web prin intermediul interogărilor SPARQL. Întreaga comunitate care susține web-ul semantic a catalogat DBpedia ca unul din cele mai puternice și mai importate proiecte din acest domeniu. Scopul inițial al proiectului a fost îmbunătăţirea căutării pe Wikipedia. Datele privind DBpedia sunt disponibile gratuit şi pot fi la rândul său, legat de alte baze de date de pe Web. Christian Bizer profesor de la Universitatea Liberă din Berlin, afirmă: "Din moment ce DBpedia acoperă multe probleme, a început un număr mare de surse de date să pună link-uri către DBpedia. Ca rezultat, DBpedia a dezvoltat un fel de punct focal pentru colecții de date emergente." În ianuarie 2011, colecția de date DBpedia consta în peste 672 milioane de triple RDF, din care 286 milioane au fost extrase din ediţia engleză a Wikipedia şi 386 milioane au fost extrase din ediţii alte limbi. Una dintre dificultățile importante în extragerea de informaţiilor de pe Wikipedia este că aceleaşi concepte pot fi exprimate folosind proprietăţi diferite în vocabulare, cum ar fi locul de naştere. Din aceasta cauza, întrebări legate de unde oamenii s-au născut ar trebui să caute pentru ambele din aceste proprietăţi, în scopul de a obţine mai multe rezultate complete.
  • 32. Framework-uri, specificații și tehnologii pentru web-ul semantic -32- Pentru reducerea numărului de sinonime și pentru dezambiguizare a fost creat un proiect separat – DBpedia Mapping Languare. În plus, procesul de îmbunătațire a seturilor de date stocate de DBpedia a fost deschis contribuției publice. În momentul de față se poate răspunde prin utilizarea DBpedia unor întrebări destul de complexe, cum ar fi pentru toţi jucătorii profesionişti de fotbal tricoul cu numărul 11 de la ţările cu mai mult de zece milioane de locuitori. Tot pe același principiu a fost dezvoltat un proiect pentru dispozitivele Fig. 4. Arhitectura generală a proiectului DBpedia mobile- DBpedia Mobile. Acesta a fost dezvoltat în special pentru turiști. În plus față de DBpedia, el nu primeşte informaţii numai de la Wikipedia, dar din bazele de date multiple, cum ar fi statisticile de la Eurostat sau fotografii pe Flickr. De asemenea, informaţii cum ar fi muzicienii din Berlin pot fi găsite folosind baza de date muzicală MusicBrainz
  • 33. Framework-uri, specificații și tehnologii pentru web-ul semantic -33- 2.5 Mișcarea NoSQL Ideea de NoSQL a luat fiinţă în contextul unei nevoi de scalare pe orizontală. Wikipedia prezintă scalabilitatea pe orizontală ca o tendinţă a arhitecturilor de astăzi cu efect direct asupra bazelor de date, ideea de scalare orizontală o implică pe cea de sistem distribuit. Termenul NoSQL se traduce ca not only SQL(nu doar SQL). Așadar, acest concept este unul complementar modelului relațional de baze de date. Mişcarea NoSQL nu susţine ca SQL sau bazele de date relaţionale ar fi elemente negative, nici că web-ul social ar avea de suferit de pe urma lor. Pentru 99.8% din site-urile disponibile, bazele de date relaţionale sunt suficiente. Pentru câteva companii mari, ale căror aplicaţii se apropie de statutul de aplicaţii gigant, alternativa la bazele de date relaţionale, disponibilitatea în defavoarea consistenţei şi sisteme care nu deţin puncte slabe (single point of failure) a fost îndelung căutată şi perfecţionată. Probabil că web-ul social de dimensiuni mici-medii, aplicaţiile în care utilizatorul poate lăsa feedback sau în care poate interacţiona cu un număr nu foarte amre de alţi useri este potrivit SQL. Totuşi, web-ul semantic şi cel social de dimensiuni foarte mari au găsit în mişcarea NoSQL o soluţie. Pot stoca şi expune cantităţi impresionante de date, le pot interoga şi pot procesa rezultatele. Iar un astfel de beneficiu nu ar fi fost posibil din partea bazelor de date relaţionale, fie ele cuprinse în sisteme distribuite şi consistente. Influenţa mişcării NoSQL asupra web-ului semantic sau a web-ului social se observă la o simplă enumerare a companiilor care s-au afiliat. Google foloseşte BigTable pentru mare parte din aplicaţiile pe care le pune la dispoziţia utilizatorilor: Google Earth, Google Reader, Google Maps, Google Code, YouTube. Amazon, unul dintre cei mai mari operatori de e- commerce din lume foloseşte Dynamo, o colecţie de perechi cheie-valoare cu o rată foarte mare de disponibilitate, iar pentru a atinge acest obiectiv renunţă la conceptul de consistenţă, esenţial pentru sistemele de baze de date relaţionale.
  • 34. Framework-uri, specificații și tehnologii pentru web-ul semantic -34- Cele mai multe sisteme NoSQL folosesc o arhitectură distribuită, cu datele deţinute într-un mod redundant pe mai multe servere, folosind adesea tabele hash distribuite. În acest fel, sistemul poate scala uşor prin adăugarea de servere, iar eşecul pe un server poate fi tolerat. NoSQL este compatibil cu modelul relațional, dar nu vine cu nicio garanție în ceea ce privește consistența. Studiu de caz: Amazon Dynamo Dynamo este o colecţie de perechi cheie-valoare, este distribuit, versionat, partiţionat şi replicat. Nu este expus ca serviciu web dar este parte integrantă din Amazon Web Services, precum S3. Ca sistem de e-commerce, Amazon a dezvoltat de-a lungul timpului soluţii de business intelligence pentru a-şi promova produsele. Asemeni căutării personalizate de la Google, Amazon ia în considerare „profilul” utilizatorului pentru a face sugestii inteligente. Pe lângă informaţiile despre produse şi utilizatori, Amazon corelează utilizatorul de informaţiile ce ar putea prezenta interes pentru acesta. Soluţia SQL are ca avantaje consistenţa dar aduce ca principal dezavantaj disponibilitatea. Teorema lui Brewer se aplică în cazul Amazon astfel: s-a optat pentru disponibilitate (availability din „CAP”) în defavoarea consistenţei (C din ACID). Practic, într-o rețea fizică există un număr mic de componente care se pot defecta la un moment dat, de aceea e necesar ca softul să trateze erorile ca pe niște cazuri normale, fără a fi afectate disponibilitatea sau performanța. Procesarea unui număr mare de triple necesită un efor computaţional semnificativ, iar în cazul Amazon aceasta s-ar traduce în pierderi financiare. Reprezentarea informaţiilor în format RDF şi asocierea produselor cu eventuale concepte definite extern nu pare a fi una din priorităţile companiei la momentul acesta. Totuşi, o colecţie stabilă şi flexibilă cum este Dynamo ar putea propulsa Amazon în universul web-ului semantic.
  • 35. Framework-uri, specificații și tehnologii pentru web-ul semantic -35- 3. FII-Semantic Endpoint – arhitectura şi detalii de implementare FII-SPARQL Endpoint este o aplicaţie dezvoltată în Java, care a fost proiectată atât pentru extragerea de date structurate, cât şi pentru a oferi o modalitate de interogarea şi utilizare a acestor date. Pentru persistarea datelor se foloseşte modelul de date RDF, iar pentru interogarea datelor se folosesc framework-urile Jena şi Joseki. Rolul acestora este de a crea un graf de date, din diferite surse: fişiere, baze de date, URL-uri şi combinaţii ale acestora. Acest graf de date reprezintă modelul abstract de reprezentare a informaţiilor. Joseki este parte a proiectului Jena, rolul său fiind acela de a oferi o interfaţă HTTP pentru datele RDF, având suport pentru interogări SPARQL şi pentru integrarea cu aplicaţiile J2EE. În afară de aceste framework-uri, s-a mai folosit framework-ul Spring MVC, biblioteca de funcţii jQuery pentru programarea la nivel de client, specificaţiile AJAX pentru crearea de aplicaţii web interactive. Fig. 5. Vedere generală asupra aplicaţiei FII-SPARQL Endpoint Din punct de vedere arhitectural, aplicaţia este compusă din două module: primul dintre acestea – FII23 (FII to triple) – are rolul de a parsa sit-ul Facultăţii de Informatică
  • 36. Framework-uri, specificații și tehnologii pentru web-ul semantic -36- pentru extragerea de informaţii structurate şi persistarea lor în format RDF, folosind vocabulare standard. Celălalt modul – FII SPARQL Endpoint – este o aplicaţie web prin care se pot exploata datele obţinute de FII23, gestionând în acelaşi timp activitatea acestui modul. 3.1 Modulul FII23 Aşa cum am precizat deja, rolul acestui model este de a explora sit-ul Facultăţii de Informatică pentru extragerea de date. Trebuie precizat că scopul acestei aplicaţii nu este acela de a explora întreg sit-ul facultăţii pentru a crea o copie, o alternativă dedicată web-ului semantic, ci extragerea de date pentru a putea un model consistent, în conformitate cu specificaţiile linked data. În acest sens, explorarea sit-ului începe cu paginile de profesori şi profesori asociaţi. Fig. 6. Arhitectura modului Fii23. În figura de mai sus, cifrele reprezintă componente specializate pentru parsarea unei resurse, după cum urmează: 1. – dedicat personalului academic, 2. – dedicate personalului asociat, 3. – cursurilor, 4. – dedicate evenimentelor din orar şi 5. - studenţilor
  • 37. Framework-uri, specificații și tehnologii pentru web-ul semantic -37- Extragerea de informaţii din aceste pagini se face în două maniere: prin parsarea manuală a conţinutului paginii HTML şi folosind un serviciu web – any23 (Anything to triple) – care extrage conţinut structurat din documente web şi formatează datele de ieşire în diferite formate: XML, RDF, N3, Turle, RDFa. Any23 este un proiect susţinut de Consorţiul Web, care poate fi accesat atât via servicii web, librărie pentru limbajul Java, cât şi accesat printr-o aplicaţie la nivel de consolă care să convertească datele între limbajele suportate. Din punct de vedere al implementării, pagina fiecărui profesor este procesată într-un fir de execuţie dedicat, care comunică printr-o coadă blocantă, care permite la un moment dat doar controlul doar unei singure resurse, realizându-se astfel o prelucrare paralelă. Vocabularul FOAF (Friend of a friend – Prietenul unui prieten) a fost utilizat pentru descrierea datelor ce au fost extrase despre un profesor. Fig. 7. Extras din documentul RDF care stochează date despre profesori Fig. 8. Extras din documentul RDF care stochează date despre un curs Pe lângă datele extrase despre profesori, în acest pas al aplicaţiei se realizează şi input-ul pentru urmatoarea pagina care va fi parsată: pagina ce conţine descrierea cursurilor. Practic de pagina fiecărui profesor se reţine lista de cursuri pe care acesta le susţine. Ulterior, fiecare pagină asociată unui curs este parsată manual. La fel, pagina fiecărui curs este prelucrată în paralel, folosindu-se aceeşi structură de date pentru comunicare şi pentru
  • 38. Framework-uri, specificații și tehnologii pentru web-ul semantic -38- transferul rezultatelor. Pentru stocarea datelor ce detaliază un curs, s-a folosit vocabularul Dublin Core Metadata. Un concept relativ nou pentru limbajul Java folosit în această aplicaţie este folosirea de latch-uri pentru sincronizarea firelor de execuţie. Acestea funcţionează exact ca trigger- ele de la bazele de date, având setată la început o valoare, iar firele de execuţie care îl partajează pot să aştepte în stare blocantă până când valoarea sa devine 0 sau pot să decrementeze valoarea cu care a fost setat. Odată ce s-a atins valoarea 0, aceasta nu mai poate fi modificată nicicum. De asemenea, la atingerea valorii 0, toate firele care partajează latch-ul şi care sunt în stare blocantă, vor trece în starea running. În aplicaţia noastră, latch-ul este partajat de modulele care extrag datele de pe paginile de profesori, profesori asociaţi şi cursuri. Latch-ul are iniţial valoarea 2, iar valoarea sa este decrementată de cele două module dedicate paginilor profesorilor, notificând modulul care gestionează pagina de cursuri că poate să înceapă. Fig. 9. Extras din documentul RDF care stochează date despre un eveniment din orar Graful de date este completat cu resurse şi din alte două locaţii. Prima din acestea este sit-ul dedicat orarului. De aici se extrag informaţii despre fiecare curs, laborator sau seminar, urmărindu-se atât detaliile organizatorice ( zi, ora de start, ora de sfârşit, tip), cât şi căror studenţi îi este dedicat acest eveniment. Scopul acestuia din urmă va fi prezentat puţin mai
  • 39. Framework-uri, specificații și tehnologii pentru web-ul semantic -39- încolo. Îndeplinirea specificaţiilor linked data a presupus o mapare a paginii fiecărui profesor de pe pagina de orar cu pagina fiecarui profesor de pagina facultăţii şi o mapare a numelui unei discipline din română – cum este pe pagina de orar în engleză – aşa cum a fost extrasă de către modulul care gestioneză cursurile. Pentru stocarea datelor referitoare la orar s-a folosit vocabularul Event, precum şi Dublin Core Metadata. Ultimul set de date care completează graful de resurse al aplicaţiei noastre este despre studenţii facultăţii, de la toate nivelurile de studii. Pe lângă numele studentului şi numele de pe serverul facultăţii, despre fiecare student trebuie reţinut grupurile din care face el parte, aşa cum apar ele în orar. De exemplu un student din anul 1, semianul A, grupa 2, va face parte din grupul I1A2 – grupa sa, din grupul I1A – semianul său şi I1 – anul. Fiind vorba despre persoane, şi în acest caz a fost folosit vocabularul FOAF pentru descrierea datelor. Fig. 10. Extras din documentul RDF care stochează date despre un student 3.2 Modulul FII Sparql Endpoint Cel de-al doile modul al aplicaţiei este, aşa cum am menţionat deja, o aplicaţie web care permite explorarea grafului de date. În plus, această componentă gestionează şi activitatea primului modul, lansând la intervale de timp configurabile – implicit este 7 zile – cereri de recreare a datelor. În intervalul de timp cât FII23 extrage datele – aproximativ 2 minute – nu se pot executa interogări. FII Sparql Endpoint se bazează pe framework-ul Spring MVC. Acesta este unul din cele mai populare framework-uri pentru dezvoltarea de aplicaţii web conforme cu
  • 40. Framework-uri, specificații și tehnologii pentru web-ul semantic -40- specificaţiile J2EE. succesul său se datorează faptului că este un proiect open-source, care permite dezvoltarea de aplicaţii în stil agile, axat pe şablonul de proiectare MVC – Model- View-Controller, în care componentele unei aplicaţii web – interfaţa grafică, datele şi partea de logică – sunt izolate unele de altele, rezultând în acest fel o cantitate de cod mai mică, mai uşor de întreţinut de către persoane specializate într-un anumit domeniu. În plus, Spring MVC este extrem de uşor de integrat cu alte proiecte specifice J2EE: Struts, Apache Tiles, JSTL, Velocity,etc. Practic, în Spring MVC putem specifica rolul fiecărei componente în cadrul modelului MVC. Componentele din partea de control vor fi adnotate cu @Controller şi vor gestiona o cerere de la o anumită adresă/pagină web. Pentru partea de client, Spring MVC pune la dispoziţie o bibliotecă de taguri care traslatează automat tipurile de date din form- urile de input la tipurile de date standard din Java, oferind suport şi pentru colecţii. Cererile către serverul web pentru executarea de interogări SPARQL sunt trimite în manieră AJAX – adică asincronă – nefiind necesară reîncărcarea paginii pentru afişarea rezultatelor. Practic, orice cerere de explorare a grafului de date va fi gestionată de o componentă specializată, marcată în mod corespunzător – în cazul nostru clasa AjaxController. Rolul său este este de a lua valorile de întrare, de a cere unei componente specializate să execute o anumită interogare şi de a întoarce rezultatul acelei interogări: o listă de înregistrări într-un anumit format sau un mesaj de eroare. Prezentăm mai jos codul care gestionează o astfel de cerere: @RequestMapping(value = "/ajax/runQuery.htm", method=RequestMethod.POST) public @ResponseBody String runQuery(int format, String query){ return queryEngine.performQuery( query , format ); } După cum se poate vedea, această metodă procesează orice cerere de tip POST către pagina /ajax/runQuery.htm, având ca date de intare două valori din form: interogarea SPARQL şi formatul rezultatului: tabelar sau XML. Un avantaj major al acestui tip de abordare a
  • 41. Framework-uri, specificații și tehnologii pentru web-ul semantic -41- aplicaţiilor web este faptul că scade cantitatea de cod Java nativ în interfaţa grafică, nemaifiind necesară instanţierea de clase, preluarea valorilor unor parametrii de pe context, blocuri logice,etc., ci doar un simplu apel către o componentă specializată. Apelul către controller este făcut folosind biblioteca de funcţii jQuery. Acesta este una din cele mai folosite biblioteci JavaScript folosite în momentul de faţă. jQuery este suportat de toate navigatoarele web, oferind suport pentru apeluri AJAX, lucrul cu foi de stiluri CSS, traversarea şi modificarea arborelui DOM asociat unei pagini HTML. Prezentăm mai jos codul pentru realizarea unei astfel de cereri: $.ajax({ url: "/FII-SPARQLEndpoint/ajax/runQuery.htm", type:"POST", data: ({format :$("input[name='format']:checked").val(), query : $("#input-textarea").val()}), success: function(data){ $("#resultsDiv").html("<h4>The output is:</h4><pre>"+data+"</pre>"); } error: function(data) { $("#resultsDiv").html("Error on retrieving data."); } }); După cum se poate vedea, URL-ul şi tipul acţiunii este identic cu cel din controller. De asemenea, celor doi parametrii ai metodei din controller le sunt asignate valori în câmpul data, şi în plus valorea variabilei "format" este convertită automat la o valoare întreagă de către containerul Spring MVC. Explorarea resurselor folosind servicii web Facilităţile prezentate mai sus de interogare a grafului de date pot fi exploatate şi prin intermediul serviciilor web, folosind modelul arhitectural REST. Conceptual, modelul REST este extrem de simplu: este orientat pe resurse şi pe reprezentări. Motivatia folosirii acestui model este capturarea caracteristicilor de succes ale Web-ului şi utilizarea lor pentru a continua evoluţia acestuia. Chiar World Wide Web, bazat pe protocolul HTTP, poate fi vazut
  • 42. Framework-uri, specificații și tehnologii pentru web-ul semantic -42- ca un sistem arhitectural REST. Aplicatiile RESTful utilizează cereri HTTP pentru toate cele patru operatii CRUD ( create, read, update, delete ). REST este o alternativă mult mai simplă decat alte modele(SOAP, RPC), dar cu toate acestea, oferă aceleaşi funcţionalităţi ca şi mecanismele mai complexe. Cererea este constituită dintr-un simplu URL, care este trimis server-ului utilizând metoda GET, iar raspunsul HTTP va fi un set de date, într-un anume format, dar neîncapsulate. Cererile REST utilizează foarte rar formatul XML. Deseori, răspunsurile server-ului, în cazul utilizării REST, sunt în format XML. Totuşi, se pot utiliza şi alte formate precum : CSV ( comma-separated values), JSON ( JavaScript Object Notation ). Fiecare format are propriile avantaje şi dezavantaje: XML este uşor de extins şi este type- safe, CSV este mai compact, iar JSON este foarte usor parsabil de catre clienţii JavaScript şi uşor de interpretat şi de către alte limbaje. Aşadar, spre deosebire de Serviciile SOAP, REST nu este “legat” de XML. Totuşi, nu se accepta ca format al raspunsului REST, HTML sau orice alt format human-readable, care nu este usor procesabil de către clienţi. În cazul nostru, pentru a expune funcţionalitatea aplicaţiei ca servicii web, am folosit un servlet, care prin intermediul metodei doGet() preia valorile pentru parametrii săi, respectiv: query pentru inteorgare şi format pentru formatul rezutatului(XML sau JSON). Astfel, o invocare a serviciilor web arată după cum urmeză: http://localhost:8084/FII-SPARQLEndpoint/WebService?query=[query]&format=[XML/JSON]
  • 43. Framework-uri, specificații și tehnologii pentru web-ul semantic -43- 4. Studii de caz i. Un utilizator doreşte să vadă lista de cursuri a unui profesor şi, în plus, doreşte să specifice nivelul acestor cursuri: licenţă sau master. De exemplu, interogarea SPARQL de mai jos întoarce lista de cursuri şi numele profesorului cu nick-ul „busaco” de la nivel de master. PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> select distinct ?course ?teacher where { ?a foaf:nick "busaco"@en. ?a foaf:name ?teacher. ?t dc:creator ?a. ?t dc:title ?course. ?t dc:educationLevel "Master" } ii. Un utilizator doreşte să verifice dacă într-adevăr un anumit curs este predat de un profesor cu numele menţionat. Pentru aceasta, sintaxa SPARQL oferă posibilitatea de a executa o interogare care returnează un boolean ce indică dacă o interogare se potriveşte pe datele din model sau nu. Sintaxa de interogare care se bazează pe cuvântul cheie ASK, ca în exemplul următor: PREFIX foaf: <http://xmlns.com/foaf/0.1/>
  • 44. Framework-uri, specificații și tehnologii pentru web-ul semantic -44- PREFIX dc: <http://purl.org/dc/elements/1.1/> ask { ?n foaf:name "Florin Iacob"@en. ?x dc:creator ?n. ?x dc:title ?t. FILTER(?t = "Mathematics"). } iii. Executăm înterogările de la studiul de caz 1 ca apeluri de servicii web şi afişăm rezultatul în format JSON. { "head": { "vars": [ "course" , "teacherwhere" ] } , "results": { "bindings": [ { "course": { "type": "literal" , "value": "Web Application Development" } } , { "course": { "type": "literal" , "value": "Web Applications Development" } } , { "course": { "type": "literal" , "value": "Intelligent Human-Computer Interaction" } } ] } }
  • 45. Framework-uri, specificații și tehnologii pentru web-ul semantic -45- 5. Concluzii şi direcţii de dezvoltare Spaţiul Web-ul este perceput ca o reţea globală de informaţie care conectează documente şi date. Cu toate acestea, deşi a devenit operaţional încă din anul 1993, îi lipsesc anumite funcţionalităţi importante. Una din acestea este lipsa unui model unitar, standardizat care să descrie modul de interconectare a datelor de pe Web. Acest neajuns se traduce prin faptul că în continuare se folosesc mecanisme de bază pentru crearea de legături, dar aceste mecanisme nu specifică semantica sau contextul legăturilor şi datelor. Pentru a creşte relevanţa şi acurateţea informaţiilor este necesară o modalitate universală prin care să se adauge semantică conţinutului. Este necesară o descriere a resurselor şi un context, care să arate în ce fel resursele sunt în relaţie cu alte resurse. Acest lucru facilitează schimbul şi combinarea datelor găsite în cadrul Web-ului, alcătuind spaţiul Datelor Interconectate (sau Linked Data). Modelul arhitectural al Datelor Interconectate va duce la crearea unei baze de date globale şi interoperabile. Suportul pe care se bazează toată acestă revoluţie a spaţiului Web este RDF. Principala avantaj al folosirii RDF-urilor este faptul că permite stocarea virtuală a oricărei date structurate sau nestructurate. Un alt mecanism vital a fost utilizarea URI-urilor ca identificatori globali de conectare. Momentan comunitatea Datelor Interconectate a pus accentul mai mult pe conectarea şi înglobarea a cât mai mult conţinut. Direcţii viitoare pentru Datele Interconectate includ dezvoltarea de interfeţe utilizator care să pună în valoare noile moduri de navigare a datelor, noi navigatoare pentru Web-ul Semantic, care să poată exploata graful de date. Vor trebui deasemenea îmbunătăţite motoarele de căutare în cadrul acestor date. Adăugarea de conţinut se poate cel mai simplu prin valorificarea conţinutul deja existent în Web-ul tradiţional şi transformarea sa în formatul cerut, care să satisfacă principiile modelului. Acest ultim aspect al transformării conţinutului HTML static în triple de date interconectate, precum şi beneficiile aduse de acest nou mod de stocare au fost demonstrate
  • 46. Framework-uri, specificații și tehnologii pentru web-ul semantic -46- în cadrul aplicaţiei FII-SPARQL Endpoint, care mai întâi creează o bază de date, formată din triple RDF. Ulterior, aceasta devine un graf de date interconectate, prin folosirea unui framework care poate face acest lucru – Jena. Unul din avantajele acestui nou model de date este faptul că graf obţinut poate fi explorat prin interogări SPARQL. Aceste interogări se realizează folosind protocolul HTTP şi framework-ul Joseki. Practic, în acest fel graful de date devine disponibil în întreg spaţiul WWW, putând fi accesat atât de către utilizatori umani prin interfaţa oferită, cât şi de alte aplicaţii prin invocarea interogărilor via servicii Web. Provocările din momentul de faţă din domeniile apropiate Web-ului Semantic vizează în îmbunătăţirea framework-urilor deja existente, crearea de noi colecţii de date care să descrie cât mai relevant anumite „lumi”. De asemenea, cu deosebit interes este aşteptată noua versiune a limbajului SPARQL. Aceasta va adăuga un număr suplimentar de funcţii care în momentul de faţă se regăsesc în limbajele de interogare a bazelor de date tradiţionale. Aplicaţia FII-SPARQL Endpoint este un prototip, un model vis-a-vis de modul cum ar trebui extrase datele din paginile Web tradiţionale în date în format deschis, conform specificaţiilor W3C în domeniul Web-ului Semantic. Utilitatea sa ar creşte considerabil prin extinderea sa la nivelul întregii instituţii (sit-ul www.uaic.ro), şi eventual extragarea de date din surse generatoare de conţinut(bloguri, forumul studenţilor, asociaţii studenţeşti). În acest fel am putea vorbi de un sistem complet, unitar, dar în acelaşi timp deschis, care să fie în conformitate cu standardele actuale. De asemenea, framework-urile pe care se bazează aplicaţia pot constitui subiectele viitoarelor versiuni ale aplicaţiei. Nu în ultimul rând, extinderea aplicaţiei presupune utilizarea unor noi metode de adnotare a datelor, cum ar fi ontologiile. Cu siguranţă spaţiul Web ca domeniul, şi Web-ul Semantic ca evolutie firească a sa vor reprezenta şi în perioada următoare subiecte de interes pentru cercetare şi inovare.
  • 47. Framework-uri, specificații și tehnologii pentru web-ul semantic -47- 6. Bibliografie Ayers, D., Bizer, C., Heath, T., Raimond, Y., "Interlinking Open Data on the Web", 2008, http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkingOpenData.pdf Berners-Lee, T., „Giant Global Graph”, 2007, http://dig.csail.mit.edu/breadcrumbs/node/215 Berners-Lee, T., „Linked Data”, 2007, http://www.w3.org/DesignIssues/LinkedData.html Berners-Lee, T., „Tim Berners-Lee Card”, http://www.w3.org/People/Berners-Lee/card/ Bizer, C., Cyganiak, R., Hausenblas, M., Heath, T., "How to Publish Linked Data on the Web", 2008, http://events.linkeddata.org/iswc2008tutorial/proposal.pdf Brelin John „The Social Semantic Web”, Springer, 2009 Daconta C., „The Semantic Web: A Guide to the Future of XML, Web Services, and Knowledge Management”, Wiley & Sons , 2003 Groppe S. „Data Management and Query Processing in Semantic Web Databases”, 2011 Heath T., „LinkedData. Evolving theWeb into aGlobalData Space”, 2011, Springer Liang Y., „Introduction to the Semantic Web and Semantic Web Services ”, 2007 Powers S., „Practical RDF”,O'Really, 2003 Vipul K., „The Semantic Web Semantics for Data and Services on the Web”, 2008, Springer ***, „Architecture of the World Wide Web”, Volume One, 2004, http://www.w3.org/TR/webarch/ ***, „Best Practice Recipes for Publishing RDF Vocabularies”, 2008, http://www.w3.org/TR/swbp-
  • 48. ANEXE
  • 49. Declaraţie privind originalitate şi respectarea drepturilor de autor Prin prezenta declar că Lucrarea de disertaţie cu titlul “Extragerea de date structurate, aplicarea modelului Linked Data şi a interogărilor SPARQL asupra sit- ului www.info.uaic.ro” este scrisă de mine şi nu a mai fost prezentată niciodată la o altă facultate sau instituţie de învăţământ superior din ţară sau străinătate. De asemenea, declar că toate sursele utilizate, inclusiv cele preluate de pe Internet, sunt indicate în lucrare, cu respectarea regulilor de evitare a plagiatului: - toate fragmentele de text reproduse exact, chiar şi în traducere proprie din altă limbă, sunt scrise între ghilimele şi deţin referinţa precisă a sursei; reformularea în cuvinte proprii a textelor scrise de către alţi autori deţine referinţa precisă; - codul sursă, imagini etc. preluate din proiecte open-source sau alte surse sunt utilizate cu repsectarea drepturilor de autor şi deţin referinţe precise; - rezumarea ideilor altor autori precizează referinţa precisă la textul original. Iaşi, 2 iulie 2011 Absolvent: Ionuţ Nicolaie Ignătescu ____________________
  • 50. Declaraţie de consimţământ Prin prezenta declar că sunt de acord ca Lucrarea de disertaţie cu titlul “Extragerea de date structurate, aplicarea modelului Linked Data şi a interogărilor SPARQL asupra sit-ului www.info.uaic.ro”, codul sursă al programelor şi celelalte continuturi (grafice, multimedia, date de test etc.) care însoţesc această lucrare să fie utilizate în cadrul Facultăţii de Informatică. De asemenea, sunt de acord ca Facultatea de Informatică de la Universitatea Alexandru Ioan Cuza Iaşi să utilizeze, modifice, reproducă şi să distribuie în scopuri necomerciale programele-calculator, format executabil şi sursă, realizate de mine în cadrul prezentei lucrări de licenţă. Iaşi, 2 iulie 2011 Absolvent: Ionuţ Nicolaie Ignătescu ____________________
  • 51. Acord privind proprietatea dreptului de autor Facultatea de Informatică este de acord ca drepturile de autor asupra programele- calculator, format executabil şi sursă, să aparţină autorului prezentei lucrări, Ionuţ Nicolaie Ignătescu. În calitate de autor al prezentei aplicaţii declar că toate resursele şi tehnologiile folosite se înscriu în categoria open-source, iar folosirea şi redistribuirea lor nu necesită decât respectarea principiilor open-source. Iaşi, 2 iulie 2011 Decan: prof.dr. Gh. Grigoraş Absolvent: Ionuţ Nicolaie Ignătescu ____________________ ________________________