Universitatea “Alexandru Ioan Cuza” Iaşi                            Facultatea de InformaticăExtragerea de date structurat...
“I have a dream for the Web [in which computers]      become capable of analyzing all the data on    the Web – the content...
Tablă de materiiPrefaţă .....................................................................................................
Prefaţă -4-       Prefaţă       În lumea de astăzi, în care tehnologia se manifestă în toate domeniile, în caredezvoltarea...
Evoluţia Internetului şi a serviciului World Wide Web -5-1. Evolutia Internetului si a serviciului World Wide Web      1.1...
Evoluţia Internetului şi a serviciului World Wide Web -6-deconectarea. Un alt protocol similar cu HTTP este HTTPS (HTTP Se...
Evoluţia Internetului şi a serviciului World Wide Web -7-       1.2 Standarde actuale în World Wide Web       Web-ul progr...
Evoluţia Internetului şi a serviciului World Wide Web -8-restaurant, utilizatorul de internet primeşte nu numai cele mai b...
Evoluţia Internetului şi a serviciului World Wide Web -9-numărul de telefon al unui client este un câmp numeric de cinci c...
Evoluţia Internetului şi a serviciului World Wide Web -10-       O altă problemă cu care ne confruntăm este cantitatea tot...
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 ...
Evoluţia Internetului şi a serviciului World Wide Web -12-        Web-ul îşi poate atinge potenţialul maxim numai dacă dev...
Evoluţia Internetului şi a serviciului World Wide Web -13-cale de mijloc, susţinută de eforturi comune trebuie să fie găsi...
Evoluţia Internetului şi a serviciului World Wide Web -14-pentru acele seturi de RSS-uri care au durată de viată destul de...
Evoluţia Internetului şi a serviciului World Wide Web -15-cadrul Web-ului, alcătuind spaţiul Datelor Interconectate (Linke...
Evoluţia Internetului şi a serviciului World Wide Web -16-de date, descoperirea de date ascunse şi mai ales consolidarea b...
Evoluţia Internetului şi a serviciului World Wide Web -17-       OWL pune la dispoziţie 3 sublimbaje, cu grade diferite de...
Evoluţia Internetului şi a serviciului World Wide Web -18-      1.8 Cautarea în WWW(comparatie intre cautarea “traditional...
Evoluţia Internetului şi a serviciului World Wide Web -19-bune" rezultate. Cum fiecare motor de căutare decide care pagini...
Evoluţia Internetului şi a serviciului World Wide Web -20-      Swoogle      Swoogle caută prin peste 10.000 de ontologii....
Framewo          rk-uri, specificații și tehnologii pentru web-ul semantic -21-2. Framework-uri, specificații și tehnologi...
Framework-uri, specificații și tehnologii pentru web-ul semantic -22-          Mediile de stocare a triplelor RDF pot fi î...
Framework-uri, specificații și tehnologii pentru web-ul semantic -23-convenţionale, utilizate în aplicaţii clasice sau apl...
Framework-uri, specificații și tehnologii pentru web-ul semantic -24-       Framework-ul Mulgara       Mulgara este un med...
Framework-uri, specificații și tehnologii pentru web-ul semantic -25-şi încărcarea de date prin HTTP. O serie de evaluări ...
Framework-uri, specificații și tehnologii pentru web-ul semantic -26-       Un comportament cu totul aparte s-a observat l...
Framework-uri, specificații și tehnologii pentru web-ul semantic -27-        SPARQL poate fi folosit pentru interogarea fi...
Framework-uri, specificații și tehnologii pentru web-ul semantic -28-        Așa cum am menționat, SPARQL este pe lângă un...
Framework-uri, specificații și tehnologii pentru web-ul semantic -29-principale utilizarea modelului RDF pentru a publica ...
Framework-uri, specificații și tehnologii pentru web-ul semantic -30-       Un alt concept important în contextul linked d...
Framework-uri, specificații și tehnologii pentru web-ul semantic -31-paginile grafului de date. Proiecte care merită menți...
Framework-uri, specificații și tehnologii pentru web-ul semantic -32-       Pentru reducerea numărului de sinonime și pent...
Framework-uri, specificații și tehnologii pentru web-ul semantic -33-       2.5 Mișcarea NoSQL       Ideea de NoSQL a luat...
Framework-uri, specificații și tehnologii pentru web-ul semantic -34-       Cele mai multe sisteme NoSQL folosesc o arhite...
Framework-uri, specificații și tehnologii pentru web-ul semantic -35-3. FII-Semantic Endpoint – arhitectura şi detalii de ...
Framework-uri, specificații și tehnologii pentru web-ul semantic -36-pentru extragerea de informaţii structurate şi persis...
Framework-uri, specificații și tehnologii pentru web-ul semantic -37-       Extragerea de informaţii din aceste pagini se ...
Framework-uri, specificații și tehnologii pentru web-ul semantic -38-transferul rezultatelor. Pentru stocarea datelor ce d...
Framework-uri, specificații și tehnologii pentru web-ul semantic -39-încolo. Îndeplinirea specificaţiilor linked data a pr...
Framework-uri, specificații și tehnologii pentru web-ul semantic -40-specificaţiile J2EE. succesul său se datorează faptul...
Framework-uri, specificații și tehnologii pentru web-ul semantic -41-aplicaţiilor web este faptul că scade cantitatea de c...
Framework-uri, specificații și tehnologii pentru web-ul semantic -42-ca un sistem arhitectural REST. Aplicatiile RESTful u...
Framework-uri, specificații și tehnologii pentru web-ul semantic -43-4. Studii de cazi. Un utilizator doreşte să vadă list...
Framework-uri, specificații și tehnologii pentru web-ul semantic -44-PREFIX dc: <http://purl.org/dc/elements/1.1/>ask{  ?n...
Framework-uri, specificații și tehnologii pentru web-ul semantic -45-5. Concluzii şi direcţii de dezvoltare       Spaţiul ...
Framework-uri, specificații și tehnologii pentru web-ul semantic -46-în cadrul aplicaţiei FII-SPARQL Endpoint, care mai în...
Framework-uri, specificații și tehnologii pentru web-ul semantic -47-6. BibliografieAyers, D., Bizer, C., Heath, T., Raimo...
ANEXE
Declaraţie privind originalitate şi respectarea drepturilor de autor        Prin prezenta declar că Lucrarea de disertaţie...
Declaraţie de consimţământ        Prin prezenta declar că sunt de acord ca Lucrarea de disertaţie cu titlul “Extragerea de...
Acord privind proprietatea dreptului de autor        Facultatea de Informatică este de acord ca drepturile de autor asupra...
Upcoming SlideShare
Loading in …5
×

Date structurate, aplicarea modelului linked data

3,831 views

Published on

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,831
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
59
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Date structurate, aplicarea modelului linked data

  1. 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. 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. 3. Tablă de materiiPrefaţă ......................................................................................................................... 41. 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 cautareaintr-un mediu semantic ............................................................................................... 182. 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 ....................................................................................... 333. FII-Semantic Endpoint – arhitectura şi detalii de implementare ............................ 35 3.1 Modulul FII23 ........................................................................................... 35 3.2 Modulul FII Sparql Endpoint .................................................................... 394. Studii de caz ............................................................................................................. 435. Concluzii şi direcţii de dezvoltare ........................................................................... 456. Bibliografie .............................................................................................................. 47
  4. 4. Prefaţă -4- Prefaţă În lumea de astăzi, în care tehnologia se manifestă în toate domeniile, în caredezvoltarea şi îmbunătăţirea echipamentelor actuale nu mai cunoaşte limite, în care niciundomeniu al vieţii nu a scăpat de binefacerile lumii moderne, omul este beneficiarul tuturoracestor eforturi, menite să îi uşureze viaţa. Dezvoltările recente în tehnologia sistemelor informaţionale au determinat o creşterea gradului de computerizare a multor aplicaţii în diverse domenii business. Datele au devenito resursă critică în foarte multe organizaţii şi astfel accesarea lor în mod eficient, distribuirealor, extragerea de informaţii utile şi crearea unui sistem capabil să le gestioneze în modeficient au devenit necesităţi mai mult decat urgente. Eforturile care se fac în acest sensvizează 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 deGestiune al Bazelor de Date— SGBD) sau pot fi, de asemenea, date primare, din sursemultiple. Dincolo de aceste aspecte care ţin de modul de păstrare şi manipulare a datelor şicare în mod normal prezintă interes doar pentru specialiştii în domeniu, s-a mai dorit creareaunor dispozitive de tip intrare/ieşire care să transforme toate aceste maşinarii de calcule îndispozitive 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 aevoluat, software-ul a evoluat. Pe măsură ce reţelele au evoluat, au evoluat şi protocoalele decomunicaţ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ărimajore într-un interval scurt de timp s-au resimţit în spaţiul World Wide Web, acest serviciuresimţind îmbunătăţiri majore în cei 20 de ani de existenţă.
  5. 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 deCercetări de Fizică Nucleară (CERN) din Geneva s-a cristalizat ideea conceperii unui sistemde transmitere a informaţilor între diferitele echipe, aflate la distanţă una de alta, bazat peHypertext. Un an mai târziu, în octombrie 1990 proiectul a fost prezentat, iar după numaidouă luni au început să se contureze primele rezultate. Munca a demarat cu elaborarea unuiprogram capabil să interpreteze limbajul Hypertext, numit browser. În anul 1991, după eliminarea mai multor neajunsuri în funcţionare, Web-ul a fost pusla punct şi a devenit funcţionabil. Anul 1992 a fost un an al dezvoltării, browserul Web adevenit disponibil prin intermediul FTP iar Web-ul a fost prezentat publicului şiorganizaţ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(W3Consortium – W3C), în octombrie 1994. Scopul său este "de a exploata spaţiul World WideWeb la întregul său potenţial prin dezvoltarea de protocoale comune care să promovezeevoluţ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 acestuiserviciu. Funcţionarea WWW se bazează în esenţă pe doi piloni: protocolul şi limbajul (saucodul). 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. 6. Evoluţia Internetului şi a serviciului World Wide Web -6-deconectarea. Un alt protocol similar cu HTTP este HTTPS (HTTP Secure – HTTPSecurizat). Acesta este un protocol folosit de serverele web pentru a transfera şi afişaconţinutul Web în siguranţă. Datele transferate sunt criptate, astfel încât să nu poată fi cititede oricine, cu excepţia destinatarului. HTTPS este utilizat de către orice sit Web care sebazează pe colectarea de date sensibile clientului, cum ar fi informaţii bancare sau tranzacţiionline. 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 etapeanumite 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 sigureca şi computerul gazdă. Limbajul este un limbaj care descrie modul în care informaţia conţinută îndocumentele Web trebuie afişată. În Internet limbajul standard este HTML (Hyper TextMarkup 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ăţivariate de formatare a documentului valorifică ingeniozitatea celui care îl creează (webmaster sau web designer), rezultatul fiind documente cu mare impact la utilizator.
  7. 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. Fiindo lume deschisă, WWW permite oricui sa contribuie într-un fel. Crearea aplicaţiilor estefacilitată de colaborarea masivă între dezvoltatorii din cadrul comunităţilor şi de reutilizareacomponentelor software, toate aceste lucruri realizând din Web un mediu aflat într-un ritmaccelerat 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 oadevărată arhitectură a participării în cadrul căreia fiecare individ care dispune de undispozitiv conectat la internet poate produce conţinut şi poate interacţiona cu alţi utilizatoride internet, depăşind barierele de timp şi spaţiu. La nivel de instrumente de programareutilizate pentru a crea pagini web, Web 2.0 foloseşte concepte care sunt considerate "deultimă oră". Aceasta a inclus AJAX şi SOAP şi alte aplicatii XML şi JavaScript care permiteclienţilor să interacţioneze efectiv cu informaţia. Un pas important în evoluţia Web-ului a fost făcut prin intermediul funcţiei tagprezentă pe bloguri, siteuri sau pe unele reţele de socializare. În acest sens, indiviziicontribuie prin efortul lor individual la îmbogăţirea listelor de cuvinte cheie de care va finevoie în construirea noii arhitecturii a spaţiului Web. În plus faţă de aceste facilităţi, sedoreşte interconectarea serviciilor oferite în prezent pe internet. De exemplu, în cautarea unui
  8. 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ţiidespre cum să ajungă la restaurantul ales cu ajutorul unui serviciu de tipul celui oferit deGoogle 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 momentulde 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 deautentificare comun pe cât mai multe platforme înseamnă o sursă nouă de informaţii despreun 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 anumitutilizator 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ţagenerală este una singură: inteligenţă artificială. 1.3 Importanţa metadatelor Pe langă gestionarea datelor, o atenţie deosebită trebuie acordată definirii elementelorde date utilizate în baze de date. Fără o înţelegere a structurii, a limitărilor, a modului dedefinire ş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 integritateasupra 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, metadatadescrie date, dar furnizează informaţii cum ar fi tipul de date, lungime, descriere textuală, şialte caracteristici ale datelor. Deci, de exemplu, metadatele permit utilizatorului să ştie că
  9. 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 arputea fi 56789. Unitatea de bază pentru reprezentarea cunoştiinţelor este data. Data este, în faptreprezentată 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 treibucăţi de date. Informaţii, pe de altă parte, adaugă context prin relaţiile dintre date şi eventualalte informaţii. Datele, în context cu metadatele generează informaţii. Relatiile pot reprezentainformaţii, dar relaţiile nu constituie de fapt informaţii până când acestea nu sunt înţelese. Deasemenea, relaţiile care reprezintă date au tendinţa de a fi limitate în context, mai ales despretrecut 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 ajutorulmetadatelor. Un alt beneficiu vizează distribuirea conţinutului. Valorile asociate cu unanumit conţinut sunt adesea inspectate de către aplicaţii pentru a determina când este cazul caanumite resurse să fie distribuite sau puse în comun. Securitatea aplicată la anumite obiecteeste 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 localizaresursele 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 potscana poze sau colecţii de muzică în loc de cuvinte cheie. Metadatele pot conduce utilizatoriila imaginile corecte sau la serviciile de furnizare în situaţii unde numele fişierelor şicategoriile mai mari rareori o fac.
  10. 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. Noimodalităţi pentru stocarea şi interogarea datelor au fost introduse – BigTable de cătreGoogle, modelul Dynamo de către Amazon, dar pe lângă asta e nevoie de o modalitate caresă poată procesa automat aceste date, eventual într-un format dedicat în exclusivitatemaş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 acrea o mediu uniform astfel încât calculatoarele să poată prelucra la rândul lor informaţiileprezentate, să le poată interconecta şi interpreta pentru a ajuta utilizatorul uman la regăsireainformaţ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 WideWeb). 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 bazede 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. 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-ulsemantic 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ţiuluiweb. Încă de la crearea sa, web-ul s-a vrut a fi mai mult decât un mijloc de accesare apaginilor 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ă cuapariţia unor noi tehnologii şi concepte capabile să genereze conţinut HTML dinamic, putemvorbi 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 şispecificaţii, cum ar fi: web-ul semantic, învăţare automată, data-mining, căutare pe bază delimbaj natural,etc. Toate acestea vor face spaţiul web un mediu deschis, interconectat şiinteligent. Aşa cum am mai menţionat, viitoarea generaţie a spaţiului web va avea în centrulsău maşinile şi aplicaţiile, utilizatorul uman urmând a fi beneficiarul direct al tuturor acestorprogrese tehnologice. Web-ul semantic reprezintă un obiectiv: ideea de a avea date de pe Web definite şilegate într-un mod prin care să poate fi utilizat de către maşini, nu doar pentru a fi redate prinpagini HTML, dar şi pentru automatizare, integrare şi reutilizare a datelor din şi în diferiteaplicaţii. Scopul web-ului semantic este la fel de larg ca al întregului spaţiu Web: de a creaun mediu universal pentru schimbul de date. Se preconizează interconectarea informaţiilorpersonale, 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 şiserviciile sunt distribuite, de multe ori greu de găsit şi greu de integrat. Acest lucru duce laun cost mai mare pentru găsirea informaţiilor relevante şi extragerea conţinutului important.
  12. 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 fipartajate şi prelucrate alături de oameni şi de instrumente automatizate. Pentru ca spaţiulWeb să scaleze, programele de mâine trebuie să poată partaja datele şi procese chiar şi atuncicând aceste programe au fost concepute în mod total independent. Acesta este unul dintreobiectivele 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 caremaşinile să poată oferi un ajutor mai bun pentru oameni, prin valorifcarea conţinutuluiinformaţiilor de pe Web. Informaţiile de pe web ar trebui să fie astfel exprimat într-un modaccesibil 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 limbajnatural pentru a extrage conţinutul paginilor Web, sisteme de indexare. O mare parte dinaceaste proiecte sunt încă la început şi în momentul de faţă nu pot fi considerate o soluţieviabilă şi stabilă. Una dintre provocările curente în evoluţia web-ului semantic este elaborarea unuicadru în care toate cunoştiinţele să poată colabora, deoarece beneficiul maxim de pe urmaweb-ului semantic poate fi atins numai atunci când calculatoarele gestioneză resurse dinsurse multiple. Dezvoltarea web-ului semantic va angrena mai multe domenii ale informaticii:tehnologiile web, bazele de date, teoremele automate, ingineria cunoştiinţelor, interacţiuneaom-calculator, prelucrarea limbajului natural, etc. Mai mult decât atât, web-ul semantic nutrebuie să fie separat de mai multe aspecte: personalizare (probleme de confidenţialitate),mobilitate (probleme de fiabilitate), publicarea (problema de securitate). Aceste probleme şisubiecte 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 ode tehnologie. Aceasta implică alaturi de tehnologie, economie, şi diverse aspecte sociale. Un
  13. 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-arputea creşte valoarea, facându-l mai atrăgătoar şi mai uşor de utilizat. Toate aceste aspectetrebuie să fie aşezate într-o alchimie dedicată pentru web-ul semantic. Acesta este motivulpentru multe aplicaţii ar trebui să fie încurajate ca, printr-o infrastructură solidă, să ridiceutilitatea 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 careHTML 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 unmijloc 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), RDFreprezintă una din cele mai vechi specificaţii, primul extras fiind dat în anul 1997. Scopuliniţial al RDF a fost de a crea un mecanism pentru lucru cu metadate care să promovezeschimbul de date între procese automate. Limbajul este în plin proces de maturizare, avândca 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ă înprogramarea 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 aspecificaţiilor RSS, de către compania Netscape. Folosirea modelului RDF este justificată
  14. 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 acestacresc ş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 aunei pagini web. Cel mai adesea resursele sunt specificate de URI-uri.-proprietăţi: reprezintă un aspect specific, o caracteristică, relaţie sau atribut pentru resursadescrisă. Specificaţiile prevăd ca fiecare proprietate să aiba o semantică, un set de valoriposibile ş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 ovaloare. 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 fireprezentate 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. Pentruaccesarea respectivei informaţii şi de către calculatoare s-au realizat diferiţi algoritmi deprocesare a limbajului natural sau algoritmi care încearcă să extragă înţeles din cadrultextelor, 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 careprovin din surse diferite ca: pagini HTML, documente XML, foi de calcul, baze de daterelaţionale, etc. Pentru ca aplicaţiile Web să poată utiliza surse diferite de date trebuie caacestea să fie componente ale unei baze de date virtuale unificate. Acest lucru este posibilutilizând modelul RDF3. Acest lucru facilitează schimbul şi combinarea datelor regăsite în
  15. 15. Evoluţia Internetului şi a serviciului World Wide Web -15-cadrul Web-ului, alcătuind spaţiul Datelor Interconectate (Linked Data), despre care vomvorbi î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ţelesulacestora. Adiţional, dacă aceste date sunt interconectate, atunci datele devin uşor dedescoperit. O legătură RDF doar afirmă ca o bucată de date are o anumită relaţie cu o altabucată de date. Aceste relaţii pot avea tipuri diferite. De exemplu, o legătură RDF careconectează date despre persoane, poate afirma că doua persoane se cunosc; o legătură RDFcare conectează informaţii despre o persoană şi publicaţiile acesteia într-o bază de datebibliografică, 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 felde veche ca ideea de date în sine: toate seturile de date pe care le folosim astăzi (de la o cartela o colecţie de imagini, de la un catalog la un recensământ de date), ar trebui să fie colectatede diferite persoane /entităţi şi integrate. Se estimează că va mai dura ceva timppopularizarea şi înţelegerea modelului RDF, precum şi a beneficiilor pe care folosirea sa lepresupune, dar este tot mai evident că acest model este un candidat excelent pentru integrareadatelor din diverse surse independente. Acest lucru pune RDF în coliziune directă cutehnologiile 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 domeniirealizează faptul că RDF nu este doar un alt standard marcare XML. Integrarea datelor reprezintă provocarea de a combina date care provin din diferitesurse şi furnizate utilizatorului într-un format unificat, bazat pe scheme universale. Surseleconţine date reale, în timp ce schema globală oferă o semantică unică, integrată, şi virtuală asurselor. Modelarea relaţiei dintre sursele de date şi schema universală este, prin urmare, unaspect crucial. Aceasta se bazează pe mapări. Maparea este procesul de unificare aelementelor din două modele distincte. Acesta este un prim pas într-o varietate de procese deunificare a datelor, dintre care enumerăm: identificarea relaţiilor între date, ca parte a analizei
  16. 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-obază 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 omodalitate de a permite maparea acestor resurse/fapte pentru a interacţiona. Acest lucru esterealizat prin capturarea declaraţiilor despre resurse, fiecare declaraţie constând dintr-oproprietate specifică, cum ar fi titlul şi autorul pentru articolul unor resurse. Cu toate acestea, modelul RDF impune destul de multe constrângeri asupra modeluluide 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 odefiniţ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 includemodelul de domeniu cu posibile restricţii. Conceptualizarea descrie cunoştinţe despredomeniu, nu şi despre starea lucrurilor din domeniu. Cu alte cuvinte, conceptualizarea nu seschimbă, sau se schimbă foarte rar. Ontologia este astfel caietului de specificaţoo al acestuiconcept - conceptualizarea este specificată folosind un limbaj de modelare particular şitermeni 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. Maimult decât atât, permit informaţiile suplimentare care urmează să fie deduse din date, deşiacestea nu pot fi stocare în mod specific.
  17. 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 fiintegrate în diferite vocabulare, în funcţie de scopul acestuia. OWL Lite sprijină utilizatoriicare 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 DLsprijină utilizatorii care îşi doresc expresivitate maximă asigurând în acelaşi timpcompletitudinea (se garantează calculabilitatea concluziilor) şi decidabilitate (toate calculelese vor termina în timp finit). OWL DL include toate construcţiile limbajului OWL, daracestea pot fi folosite numai în conformitate cu anumite restricţii (de exemplu, în timp ce oclasă 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 dedatele sale. Din acest motiv al posibilelor legături, taxonomiile sunt limitate în mod clar ca fiindmai mult scheme de clasificare, decât modele care să descrie relaţiile parte-întreg dintretermeni. Ontologiile au ca scop organizarea, adăugarea de sens la grafurile de date şimetadate şi maparea printre ontologiile dintr-un domeniu specific a modului în care dateledevin interconectate pe Web. O taxonomie este un instrument foarte util, mai ales pentru că pot fi construite cuuşurinţă, pot fi îmbunătăţite şi extinse. Dar taxonomii au anumite limitări. Ele nu suntflexibile. Astfel, poate deveni dificil să fie extinse la un spatiu mare de descriere. Cu cât seadaugă mai multe elemente, cu atât mai multe moduri de interconectare vor fi găsite, ceea ceduce la ruperea structurii tradiţionale de arbore. Există modalităţi de a îmbunătăţiflexibilitatea prin combinarea taxonomiilor cu vocabulare şi diverse concepte de baza dedate, dar acestea le face şi mai subsceptible la erori.
  18. 18. Evoluţia Internetului şi a serviciului World Wide Web -18- 1.8 Cautarea în WWW(comparatie intre cautarea “traditionala” sicautarea intr-un mediu semantic. Căutarea în spaţiul WWW se face folosind motoarele de căutare,care se bazează petabele 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 tabelimens de structuri cheie-valoare, unde cheia este un cuvânt, iar valoarea este o listă destructuri care memorează URI-ul unde a fost găsită respectiva resursă, precum şi alte detaliice ţ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, prinfolosirea cuvintelor-cheie), motorul examinează tabelul de indicşi şi se furnizează o listă depagini web care se potrivesc cel mai bine cu criteriile sale, de obicei, cu un scurt rezumatcare conţine titlul documentului şi, uneori, piese a textului. Indexul este construit dininformaţiile stocate cu datele şi metoda prin care informaţia este indexată. Din păcate, nuexistă î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 suntpentru căutările literale, care permit utilizatorului să perfecţioneze şi să extindă termenii decăutare. Motorul caută cuvinte sau fraze exact aşa cum a intrat. Unele motoare de căutareoferă 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 estereturnat. 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 decăutare utilizează metode de clasificare a rezultatelor pentru a furniza primele "cele mai
  19. 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, şice ordine a rezultatelor ar trebui să fie prezentate, acestea variază mult de la un motor decăutare la altul. Spre deosebire de motoarele de căutare de acum, care folosesc crawl-ere pentruexploarea paginilor Web,în Web-ul Semantic motoarele de cautare indexeză datele stocate înformat RDF pe Web. Desigur, un motor de căutare pentru Web RDF pe Web, oferă servicii echivalente unmotor de căutare existent în prezent pentru Web HTML. Sistemul explorează indexurileweb-ului semantic şi oferă o interfaţă uşor de utilizat, prin care utilizatorii pot găsiinformaţiile pe care le caută. Din cauza semanticii inerente a RDF şi altor limbaje specificeWeb-ului Semantic, capacităţile de căutare şi regăsire a informaţiilor sunt potential mult maiputernic decât cele de la motoarele de căutare actuale. Prezentăm în continuare câteva dintremotoarele de căutare bazate pe tehnologiile Web-ului Semantic. Sindice Sindice este un motor de căutare al indecşilor din documentele Web-ului Semanticconstruit pe tehnici intensive de calcul în clustere,fiind dezvoltat de Déri Irlanda. Sindiceindexează web-ul semantic şi poate să spune ce surse menţionează o resură URI sau uncuvânt cheie, dar nu poate răspunde la interogări asupra triplelor. Sindice indexează înprezent 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 metadateextrase din pagini Web. Acesta se bazează pe indexarea documentelor RDF, RDFa şimicroformate de pe Web. Yahoo! a anunţat că va adaugă în curând proiectului Microsearchsuport pentru GRDDL.
  20. 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 uneledocumente care presupun fragmente de RDF / XML. În prezent, aceasta permite căutareaprin ontologii. Pe lângă asta, oferă metadate pentru documentele Web-ului Semantic şisprijină navigarea prin aceste documente. Swoogle, de asemenea, oferă suport pentruarhivarea unor versiuni diferite de documente. Acest proiect este dezvoltat de EbiquityGroup of UMBC.
  21. 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 dealegerea și utilizarea mediilor de stocare a triplelor potrivite, în special în funcție decantitatea de RDF care trebuie persistată. Interesul acordat framework-urilor de stocare atriplelor se datorează capacității lor de a reprezenta relaţiile dintre entităţi arbitrare într-unformat generalizat: noţiunea de triplu, cu care o relaţie între un subiect şi un obiect estenotată cu o proprietate. Un mecanism de stocare a triplelor RDF este un framework pentru persistarea șiinterogarea datelor în format RDF, dispuse cel mai adesea sub forma unui graf de date. Înultima vreme s-a constatat un interes major în dezvoltarea de aplicații pentru stocarea datelorRDF, pentru interogarea și optimizarea protocoalelor de acces. Dacă în anii 2000 singurelemedii 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 dezvoltareade medii distribuite, cu suport pentru replicarea datelor și distribuția lor uniformă din puncti0de 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. 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 însistemele de reasoning sau pentru rezolvarea problemelor de inferențe în mediile de stocarepersistente, acționând adesea ca un cache. Acest model de stocare se pretează la structurilede triple omogene în timp, deoarece avantajul major – viteza de procesare ar avea de suferitdacă 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ă șinestocată în memorie. Aceast model este folosit ca o modalitate de a cupla modelul triplelorRDF cu alte modele tradiționale de baze de date(relațional, orientat obiect,etc.). În momentulde față, framework-urile bazate pe modelul nativ au câștigat popularitate datorită timpuluiredus de încărcare și posibilităților de optimizare. Framework-ul Jena Jena este un framework dezvoltat pentru platforma Java pentru construirea de aplicațiipentru web-ul semantic. Jena implementeaza API-uri pentru lucrul cu structuri specificeacestui domeniu, cum ar fi RDF şi OWL. Conceptul fundamental în Jenapentru 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şierexistente pe un server web. Folosind JDBC, acesta poate fi, de asemenea, legat la un serverde 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. 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 dedate sunt susţinute, atât open source şi proprietare. În plus, referitor la accesul optimizat ladatele stocate folosind API-ul Jena, acesta poate fi cuplat cu web-server - "Joseki" - care esteserver ce suportă interogări SPARQL. Acest lucru permite ca o bază de date să poată fiinterogată 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 aefectua raţionamente simple RDFS sau raţionamente care presupun o folosire mai intensă amemoriei - OWL-DL. Toate sistemele de raționament (reasoners) puse la dispoziţie de cătreAPI-ul Jena efectuază raţionamentele în memorie, cu alte cuvinte modelul sau structura dedate 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 șipentru 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. SesameNative este modulul care se ocupă de gestiunea triplelor de RDF. În comparaţie cu JenaTDB, este mai puţin scalabil. Testele facute menţionează că Sesame Native a fost testat cupana la aproximativ 70 de milioane de triple în timp ce Jena TDB este capabil să gestionezecu 1,7 miliarde triple. Sesame acceptă două limbaje de interogare: SeRQL şi SPARQL. O altă componentă aframework-ului este Alibaba, un API care permite maparea claselor Java pe ontologii, şipentru generarea de fișiere sursă Java din ontologii. Acest lucru face posibilă utilizarea unorontologii specifice, cum ar fi RSS, FOAF şi Dublin Core direct din Java.
  24. 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ă oconexiune 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 înmediul de stocare a triplelor. În plus faţă de sprijinirea interogări SPARQL prin conexiuneaAPI, acestea pot fi efectuate prin intermediul unui shell TQL.TQL este o interfaţă linie decomandă care permite interogări pe modele prezente în mediul de stocare. Trebuie remarcat că Mulgara nu se bazează și nici nu oferă suport pentru modelulrelaţional. În schimb, Mulgara este o bază de date complet nouă optimizată pentrugestionarea metadatelor. Modele Mulgara ţine metadatele sub formă de scurte declaraţiisubiect-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 estegestionată 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 stocaterulează într-un fir de execuție propriu. În acest fel, numărul maxim de sesiuni concomitenteeste limitat de sistemul de operare și de sistemul de intrare-ieșire. Atunci când se iniţiază osesiune de interogare, care ar putea implica mai multe cereri pentru mediului de stocare atriplelor, 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 stareconsistentă. 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 APIpentru conexiuni, suport pentru SPARQL şi server web pentru a efectua interogări SPARQL
  25. 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 demodule 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 şipe sisteme cu mai multe procesoare. Arhitectural, constă dintr-un singur proces caregestionează mai multe fire de execuție, partajate între clienţi. Pentru comunicarea între firelede execuție se păstrează un fişier de tranzacţii care înregistrează toate operaţiunile. Fişierulde tranzacții poate fi conservat şi arhivat pentru o perioadă de timp nedeterminată, oferind oistorie completă, recuperabilă a bazei de date. Toate cele patru niveluri de izolare suntsuportate: citirea eronată (dirty read), citit comis(commited read), citit repetabile(repetableread) şi serializarea(serializabile). Nivelul de izolare poate fi specificat pentru fiecareoperaţ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 gradsuperior de performanță a mediilor native, cum ar fi Mulgara, Sesame și Virtuoso. Acestlucru este în concordanță cu tendințele actuale în ceea ce privește dezvoltarea de medii nativede stocare a triplelor RDF, cu atât mai mult cu cât pot performanța lor va duce la optimizarealucrului cu RDF. Totuși câteva din aceste medii(Mulgara și Virtuoso) au un dezavantajmajor: 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 dindomeniul web-ului semantic este influențată direct de framework-urile și API-urile auxiliarefolosite. Experimentele au arătat incapacitatea framework-urilor de a gestiona cantități marede date, nefiind niște medii scalabile. Acest lucru se datorează mai ales dependențelor acestormedii, care nu sunt compatibile în totalitate cu aplicațiilor în care sunt folosite și API-urilorcare au fost create pentru a facilita accesul în mod programatic. Documentația acestor mediirecomandă folosirea scripturilor în detrimentul API-urilor, în cazul în care se lucrează cubaze de date foarte mari.
  26. 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 dedate de orice dimensiune, dar cu un cost mai mare în ceea ce privește viteza cu care serealizează aceste operații. Acest lucru era oarecum previzibil, deoarece Jena are suport pentrubazele de date relationale în care stocheză datele și care nu poate fi optimizat pentru baze dedate particulare. Au fost câteva abordări hibride ale mecanismelor de stocare a triplelor, dar principalaproblemă în acest sens este compatibiliatea între sisteme. Rezolvarea acestor probleme arduce 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 pentrureprezentarea ontologiilor și pentru adnotarea datelor în web-ul semantic. Totuși, odată ceaceste 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 QueryLanguage – 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 șiun protocol pentru datele în format RDF. Acest limbaj poate fi privit ca limbajul SQL pentruweb-ul semantic, oferind un mecanism extrem de puternic și de simplu pentru interogareatriplelor ș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țiulWWW.” Deoarece RDF-urile sunt reprezentate ca grafuri, SPARQL este un limbaj deinterogare peste grafuri, spre deosebire de SQL care manipulează tabele și înregistrări. Înplus, interogările sunt mult mai flexibile, astfel încât interogări complexe pot fi rulate pestegraful de date. Ex: să se găsească toate persoanele care cunosc pe cineva interesat de web-ulsemantic.
  27. 27. Framework-uri, specificații și tehnologii pentru web-ul semantic -27- SPARQL poate fi folosit pentru interogarea fișierelor RDF independente, dar șipentru modele mai complexe, fie încărcate în memorie de către motorul de interogare, fiefolosind 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 înmemoria principală. O abordare extrem de interesantă pentru determinarea fișierelor ce vor fiinterogate este voiD (Vocabulary of Interlinked Datasets – Vocabulare de colecții de dateinterconectate). Acest lucru se bazează pe o schemă RDF pentru a exprima metadate desprecolecțiile de date RDF. voiD trebuie privit ca o conexiune între cei care au publicat datele șicei 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 lamaster 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 ?coursewhere{?a foaf:name "Popescu".?t dc:creator ?a.?t dc:title ?course.?t dc:educationLevel "Master"}
  28. 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 îndiverse formate (uzual JSON și XML) pentru a oferi acces deschis și standardizat la seturilede date. De asemenea pentru acest protocol, standarul actual specifică utilizarea serviciilorweb folosind limbajul de descriere WSDL 2.0. Endpoint-ul reprezintă interfața prin care se manipulează structura de datedisponibilă. 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âtde mașină, cât și de utilizatorul uman. Tendința actuală este ca toate marile companii, instituții sau organizații caremanipulează date să ofere o modalitate prin care datele publice existente să fie disponibilevia 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 programarefolosit, accesarea datelor via endpoint-uri reprezintă același concept la nivelul bazelor dedate. Pentru a satisface și extinde acest deziderat, au fost unele abordări susținute de mariidezvoltatori de baze de date relaționale care convertesc acest model către un model subformă 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 depublicare și interconectare a datelor în formă structurată, plecând de la prezumția că dateledevin 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. 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 dereferinte RDF(RDF links) pentru a lega date din surse diverse. Aplicarea acestor principii ar conduce la crearea unui web de date comune, un spațiuunde 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 fiaccesată 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, conceptuldespre care vorbim are avantajul de a oferi un mecanism standardizat, unic, care nu depindede vreo interfață sau de vreun format proprietar. În felul acesta datele ar fi mult mai ușor deindexat de către motoarele de căutare, ar putea fi accesate prin intermediul unor navigatoarespecializate pentru web-ul semantic care să folosească legaturile dintre sursele de date înlocul legaturilor text din web-ul actual. Pentru a publica date pe web, primul lucru care trebuie făcut este să identificămaspectele care ne interesează. Acestea sunt lucruri a căror relații sau caracteristici dorim să ledescriem folosind date. În arhitectura web, aspectele care ne interesează poartă numele deresurse. 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 URIcum 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ă accescentralizat și aceste URI nu actionează doar ca un nume, ci reprezintă o modalitate de aaccesa o resursă din spațiul Web. Resursele din spațiu Web pot avea o reprezentare. O reprezentare este o secvență deocteț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ă, înlimbi diferite, etc.
  30. 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 resursareferită. Când un identificator de resurse a descoperit o resursă informațională care estereferită, server-ul proprietar al acelui URI generază o nouă reprezentare a stării aceleiresurse, 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 unmecanism 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 saudownloadează respectivul cod, fără a afișa ceva. Pentru utilizatorii care nu au cunoștiințe deIT acest lucru nu este deloc folositor. Astfel, o reprezentare HTML adecvată în locul uneireprezentări RDF este mult mai utilă. În cadrul protocolului HTTP acest lucru se numeștenegocierea conținutului. Clienții HTTP trimit odată cu cererea și antetul HTTP pentru aindica ce fel de reprezentare preferă. În funcție de acest lucru serverul generează oreprezentare adecvată. Într-un mediu deschis cum este spațiul Web se întâmplă foarte des ca mai multeinformaț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-uriURI, fiind un concept extrem de comun în web-ul semantic și având un rol important îndescrierea resurselor non-informaționale. De exemplu, reprezentarea OWL oferă în sintaxasa proprietatea owl:sameAs pentru a identifica o resursă prin mai multe URI-uri. Explorarea eficientă a datelor structurate în format RDF necesită folosirea unoraplicații create special pentru acest lucru. Denumite sugestiv navigatoare semantice, acesteaplicații sunt optimizate pentru a traversa cât mai rapid documentele interconectate din punctde vedere semantic. Prin intermediul legăturilor dintre elemente, se poate naviga între
  31. 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 vizualizarezultatele î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țelorutilizatorului,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ărilorSPARQL. Întreaga comunitate care susține web-ul semantic a catalogat DBpedia ca unul dincele mai puternice și mai importate proiecte din acest domeniu. Scopul inițial al proiectului afost îmbunătăţirea căutării pe Wikipedia. Datele privind DBpedia sunt disponibile gratuit şi pot fi la rândul său, legat de altebaze 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 sursede date să pună link-uri către DBpedia. Ca rezultat, DBpedia a dezvoltat un fel de punct focalpentru colecții de date emergente." În ianuarie 2011, colecția de date DBpedia consta în peste 672 milioane de tripleRDF, din care 286 milioane au fost extrase din ediţia engleză a Wikipedia şi 386 milioane aufost extrase din ediţii alte limbi. Una dintre dificultățile importante în extragerea deinformaţiilor de pe Wikipedia este că aceleaşi concepte pot fi exprimate folosind proprietăţidiferite în vocabulare, cum ar fi locul de naştere. Din aceasta cauza, întrebări legate de undeoamenii s-au născut ar trebui să caute pentru ambele din aceste proprietăţi, în scopul de aobţine mai multe rezultate complete.
  32. 32. Framework-uri, specificații și tehnologii pentru web-ul semantic -32- Pentru reducerea numărului de sinonime și pentru dezambiguizare a fost creat unproiect separat – DBpedia Mapping Languare. În plus, procesul de îmbunătațire a seturilor dedate stocate de DBpedia a fost deschis contribuției publice. În momentul de față se poaterăspunde prin utilizarea DBpedia unor întrebări destul de complexe, cum ar fi pentru toţijucătorii profesionişti de fotbal tricoul cu numărul 11 de la ţările cu mai mult de zecemilioane de locuitori. Tot pe același principiu a fost dezvoltat un proiect pentru dispozitivele Fig. 4. Arhitectura generală a proiectului DBpediamobile- DBpedia Mobile. Acesta a fost dezvoltat în special pentru turiști. În plus față deDBpedia, 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 fimuzicienii din Berlin pot fi găsite folosind baza de date muzicală MusicBrainz
  33. 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 efectdirect 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 unulcomplementar modelului relațional de baze de date. Mişcarea NoSQL nu susţine ca SQL sau bazele de date relaţionale ar fi elementenegative, nici că web-ul social ar avea de suferit de pe urma lor. Pentru 99.8% din site-uriledisponibile, bazele de date relaţionale sunt suficiente. Pentru câteva companii mari, ale căroraplicaţ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 pointof failure) a fost îndelung căutată şi perfecţionată. Probabil că web-ul social de dimensiuni mici-medii, aplicaţiile în care utilizatorulpoate lăsa feedback sau în care poate interacţiona cu un număr nu foarte amre de alţi userieste potrivit SQL. Totuşi, web-ul semantic şi cel social de dimensiuni foarte mari au găsit înmişcarea NoSQL o soluţie. Pot stoca şi expune cantităţi impresionante de date, le potinteroga şi pot procesa rezultatele. Iar un astfel de beneficiu nu ar fi fost posibil din parteabazelor 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 mareparte 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ă foartemare de disponibilitate, iar pentru a atinge acest obiectiv renunţă la conceptul de consistenţă,esenţial pentru sistemele de baze de date relaţionale.
  34. 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 acestfel, sistemul poate scala uşor prin adăugarea de servere, iar eşecul pe un server poate fitolerat. NoSQL este compatibil cu modelul relațional, dar nu vine cu nicio garanție în ceea cepriveș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 WebServices, precum S3. Ca sistem de e-commerce, Amazon a dezvoltat de-a lungul timpului soluţii debusiness intelligence pentru a-şi promova produsele. Asemeni căutării personalizate de laGoogle, Amazon ia în considerare „profilul” utilizatorului pentru a face sugestii inteligente. Pe lângă informaţiile despre produse şi utilizatori, Amazon corelează utilizatorul deinformaţiile ce ar putea prezenta interes pentru acesta. Soluţia SQL are ca avantajeconsistenţ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 necesarca softul să trateze erorile ca pe niște cazuri normale, fără a fi afectate disponibilitatea sauperformanț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 înformat RDF şi asocierea produselor cu eventuale concepte definite extern nu pare a fi una dinpriorităţile companiei la momentul acesta. Totuşi, o colecţie stabilă şi flexibilă cum esteDynamo ar putea propulsa Amazon în universul web-ului semantic.
  35. 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âtpentru extragerea de date structurate, cât şi pentru a oferi o modalitate de interogarea şiutilizare a acestor date. Pentru persistarea datelor se foloseşte modelul de date RDF, iarpentru interogarea datelor se folosesc framework-urile Jena şi Joseki. Rolul acestora este de acrea un graf de date, din diferite surse: fişiere, baze de date, URL-uri şi combinaţii aleacestora. 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 pentrudatele 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 pentrucrearea 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: primuldintre acestea – FII23 (FII to triple) – are rolul de a parsa sit-ul Facultăţii de Informatică
  36. 36. Framework-uri, specificații și tehnologii pentru web-ul semantic -36-pentru extragerea de informaţii structurate şi persistarea lor în format RDF, folosindvocabulare standard. Celălalt modul – FII SPARQL Endpoint – este o aplicaţie web prin carese 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 deInformatică pentru extragerea de date. Trebuie precizat că scopul acestei aplicaţii nu esteacela de a explora întreg sit-ul facultăţii pentru a crea o copie, o alternativă dedicată web-uluisemantic, ci extragerea de date pentru a putea un model consistent, în conformitate cuspecificaţ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. 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 parsareamanuală a conţinutului paginii HTML şi folosind un serviciu web – any23 (Anything totriple) – care extrage conţinut structurat din documente web şi formatează datele de ieşire îndiferite formate: XML, RDF, N3, Turle, RDFa. Any23 este un proiect susţinut de ConsorţiulWeb, care poate fi accesat atât via servicii web, librărie pentru limbajul Java, cât şi accesatprintr-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-unfir de execuţie dedicat, care comunică printr-o coadă blocantă, care permite la un moment datdoar controlul doar unei singure resurse, realizându-se astfel o prelucrare paralelă.Vocabularul FOAF (Friend of a friend – Prietenul unui prieten) a fost utilizat pentrudescrierea 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ă şiinput-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 esteprelucrată în paralel, folosindu-se aceeşi structură de date pentru comunicare şi pentru
  38. 38. Framework-uri, specificații și tehnologii pentru web-ul semantic -38-transferul rezultatelor. Pentru stocarea datelor ce detaliază un curs, s-a folosit vocabularulDublin Core Metadata. Un concept relativ nou pentru limbajul Java folosit în această aplicaţie este folosireade 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 îlpartajează 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 maipoate 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-uleste partajat de modulele care extrag datele de pe paginile de profesori, profesori asociaţi şicursuri. Latch-ul are iniţial valoarea 2, iar valoarea sa este decrementată de cele două modulededicate 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 estesit-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ărorstudenţi îi este dedicat acest eveniment. Scopul acestuia din urmă va fi prezentat puţin mai
  39. 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 profesorde pe pagina de orar cu pagina fiecarui profesor de pagina facultăţii şi o mapare a numeluiunei 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-afolosit vocabularul Event, precum şi Dublin Core Metadata. Ultimul set de date care completează graful de resurse al aplicaţiei noastre este desprestudenţii facultăţii, de la toate nivelurile de studii. Pe lângă numele studentului şi numele depe 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 faceparte din grupul I1A2 – grupa sa, din grupul I1A – semianul său şi I1 – anul. Fiind vorbadespre 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 webcare permite explorarea grafului de date. În plus, această componentă gestionează şiactivitatea 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 2minute – nu se pot executa interogări. FII Sparql Endpoint se bazează pe framework-ul Spring MVC. Acesta este unul dincele mai populare framework-uri pentru dezvoltarea de aplicaţii web conforme cu
  40. 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, carepermite 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 parteade logică – sunt izolate unele de altele, rezultând în acest fel o cantitate de cod mai mică, maiuşor de întreţinut de către persoane specializate într-un anumit domeniu. În plus, SpringMVC 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 cadrulmodelului MVC. Componentele din partea de control vor fi adnotate cu @Controller şi vorgestiona o cerere de la o anumită adresă/pagină web. Pentru partea de client, Spring MVCpune 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 înmanieră AJAX – adică asincronă – nefiind necesară reîncărcarea paginii pentru afişarearezultatelor. Practic, orice cerere de explorare a grafului de date va fi gestionată de ocomponentă specializată, marcată în mod corespunzător – în cazul nostru clasaAjaxController. Rolul său este este de a lua valorile de întrare, de a cere unei componentespecializate să execute o anumită interogare şi de a întoarce rezultatul acelei interogări: olistă de înregistrări într-un anumit format sau un mesaj de eroare. Prezentăm mai jos codulcare 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 şiformatul rezultatului: tabelar sau XML. Un avantaj major al acestui tip de abordare a
  41. 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 esteuna din cele mai folosite biblioteci JavaScript folosite în momentul de faţă. jQuery estesuportat de toate navigatoarele web, oferind suport pentru apeluri AJAX, lucrul cu foi destiluri 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. Deasemenea, celor doi parametrii ai metodei din controller le sunt asignate valori în câmpuldata, şi în plus valorea variabilei "format" este convertită automat la o valoare întreagă decătre containerul Spring MVC.Explorarea resurselor folosind servicii web Facilităţile prezentate mai sus de interogare a grafului de date pot fi exploatate şi prinintermediul serviciilor web, folosind modelul arhitectural REST. Conceptual, modelul RESTeste extrem de simplu: este orientat pe resurse şi pe reprezentări. Motivatia folosirii acestuimodel este capturarea caracteristicilor de succes ale Web-ului şi utilizarea lor pentru acontinua evoluţia acestuia. Chiar World Wide Web, bazat pe protocolul HTTP, poate fi vazut
  42. 42. Framework-uri, specificații și tehnologii pentru web-ul semantic -42-ca un sistem arhitectural REST. Aplicatiile RESTful utilizează cereri HTTP pentru toate celepatru 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 şimecanismele mai complexe. Cererea este constituită dintr-un simplu URL, care este trimis server-ului utilizândmetoda GET, iar raspunsul HTTP va fi un set de date, într-un anume format, darneîncapsulate. Cererile REST utilizează foarte rar formatul XML. Deseori, răspunsurileserver-ului, în cazul utilizării REST, sunt în format XML. Totuşi, se pot utiliza şi alteformate 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 şiuşor de interpretat şi de către alte limbaje. Aşadar, spre deosebire de Serviciile SOAP, RESTnu este “legat” de XML. Totuşi, nu se accepta ca format al raspunsului REST, HTML sauorice 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 folositun 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. 43. Framework-uri, specificații și tehnologii pentru web-ul semantic -43-4. Studii de cazi. Un utilizator doreşte să vadă lista de cursuri a unui profesor şi, în plus, doreşte să specificenivelul 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 ?teacherwhere{?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 profesorcu numele menţionat. Pentru aceasta, sintaxa SPARQL oferă posibilitatea de a executa ointerogare care returnează un boolean ce indică dacă o interogare se potriveşte pe datele dinmodel sau nu. Sintaxa de interogare care se bazează pe cuvântul cheie ASK, ca în exemplulurmător:PREFIX foaf: <http://xmlns.com/foaf/0.1/>
  44. 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 ApplicationDevelopment" } } , { "course": { "type": "literal" , "value": "Web ApplicationsDevelopment" } } , { "course": { "type": "literal" , "value": "Intelligent Human-ComputerInteraction" } } ] }}
  45. 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 lipsescanumite funcţionalităţi importante. Una din acestea este lipsa unui model unitar, standardizatcare să descrie modul de interconectare a datelor de pe Web. Acest neajuns se traduce prinfaptul că în continuare se folosesc mecanisme de bază pentru crearea de legături, dar acestemecanisme nu specifică semantica sau contextul legăturilor şi datelor. Pentru a creşte relevanţa şi acurateţea informaţiilor este necesară o modalitateuniversală prin care să se adauge semantică conţinutului. Este necesară o descriere aresurselor şi un context, care să arate în ce fel resursele sunt în relaţie cu alte resurse. Acestlucru facilitează schimbul şi combinarea datelor găsite în cadrul Web-ului, alcătuind spaţiulDatelor Interconectate (sau Linked Data). Modelul arhitectural al Datelor Interconectate va duce la crearea unei baze de dateglobale şi interoperabile. Suportul pe care se bazează toată acestă revoluţie a spaţiului Webeste RDF. Principala avantaj al folosirii RDF-urilor este faptul că permite stocarea virtuală aoricărei date structurate sau nestructurate. Un alt mecanism vital a fost utilizarea URI-urilorca 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 includdezvoltarea 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 trebuideasemenea îmbunătăţite motoarele de căutare în cadrul acestor date. Adăugarea de conţinutse poate cel mai simplu prin valorificarea conţinutul deja existent în Web-ul tradiţional şitransformarea sa în formatul cerut, care să satisfacă principiile modelului. Acest ultim aspect al transformării conţinutului HTML static în triple de dateinterconectate, precum şi beneficiile aduse de acest nou mod de stocare au fost demonstrate
  46. 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ă dintriple RDF. Ulterior, aceasta devine un graf de date interconectate, prin folosirea unuiframework care poate face acest lucru – Jena. Unul din avantajele acestui nou model de date este faptul că graf obţinut poate fiexplorat 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ţiulWWW, putând fi accesat atât de către utilizatori umani prin interfaţa oferită, cât şi de alteaplicaţ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ă nouaversiune a limbajului SPARQL. Aceasta va adăuga un număr suplimentar de funcţii care înmomentul 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 cumar trebui extrase datele din paginile Web tradiţionale în date în format deschis, conformspecificaţiilor W3C în domeniul Web-ului Semantic. Utilitatea sa ar creşte considerabil prinextinderea sa la nivelul întregii instituţii (sit-ul www.uaic.ro), şi eventual extragarea de datedin surse generatoare de conţinut(bloguri, forumul studenţilor, asociaţii studenţeşti). În acestfel am putea vorbi de un sistem complet, unitar, dar în acelaşi timp deschis, care să fie înconformitate 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 fiontologiile. Cu siguranţă spaţiul Web ca domeniul, şi Web-ul Semantic ca evolutie firească asa vor reprezenta şi în perioada următoare subiecte de interes pentru cercetare şi inovare.
  47. 47. Framework-uri, specificații și tehnologii pentru web-ul semantic -47-6. BibliografieAyers, D., Bizer, C., Heath, T., Raimond, Y., "Interlinking Open Data on the Web", 2008, http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkingOpenData.pdfBerners-Lee, T., „Giant Global Graph”, 2007, http://dig.csail.mit.edu/breadcrumbs/node/215Berners-Lee, T., „Linked Data”, 2007, http://www.w3.org/DesignIssues/LinkedData.htmlBerners-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 theWeb", 2008, http://events.linkeddata.org/iswc2008tutorial/proposal.pdfBrelin John „The Social Semantic Web”, Springer, 2009Daconta C., „The Semantic Web: A Guide to the Future of XML, Web Services, andKnowledge Management”, Wiley & Sons , 2003Groppe S. „Data Management and Query Processing in Semantic Web Databases”, 2011Heath T., „LinkedData. Evolving theWeb into aGlobalData Space”, 2011, SpringerLiang Y., „Introduction to the Semantic Web and Semantic Web Services ”, 2007Powers S., „Practical RDF”,OReally, 2003Vipul 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. 48. ANEXE
  49. 49. Declaraţie privind originalitate şi respectarea drepturilor de autor Prin prezenta declar că Lucrarea de disertaţie cu titlul “Extragerea de datestructurate, 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, curespectarea 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ţaprecisă; - codul sursă, imagini etc. preluate din proiecte open-source sau alte surse sunt utilizatecu 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. 50. Declaraţie de consimţământ Prin prezenta declar că sunt de acord ca Lucrarea de disertaţie cu titlul “Extragerea dedate structurate, aplicarea modelului Linked Data şi a interogărilor SPARQL asuprasit-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 deInformatică. De asemenea, sunt de acord ca Facultatea de Informatică de la UniversitateaAlexandru Ioan Cuza Iaşi să utilizeze, modifice, reproducă şi să distribuie în scopurinecomerciale programele-calculator, format executabil şi sursă, realizate de mine în cadrulprezentei lucrări de licenţă.Iaşi, 2 iulie 2011 Absolvent: Ionuţ Nicolaie Ignătescu ____________________
  51. 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ţ NicolaieIgnătescu. În calitate de autor al prezentei aplicaţii declar că toate resursele şi tehnologiile folositese înscriu în categoria open-source, iar folosirea şi redistribuirea lor nu necesită decâtrespectarea principiilor open-source. Iaşi, 2 iulie 2011 Decan: prof.dr. Gh. Grigoraş Absolvent: Ionuţ Nicolaie Ignătescu ____________________ ________________________

×