51
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-

Date structurate, aplicarea modelului linked data

Embed Size (px)

Citation preview

Page 1: Date structurate, aplicarea modelului linked data

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-

Page 2: Date structurate, aplicarea modelului linked data

“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

Page 3: Date structurate, aplicarea modelului linked data

Tablă de materii

Prefaţă ......................................................................................................................... 4

1. Evoluţia Internetului şi a serviciului World Wide Web .......................................... 5

1.1 Scurt istoric şi prezentare a serviciului WWW .......................................... 5

1.2 Standarde actuale in lumea .........................................................................

1.3 Importanta metadatelor ...............................................................................

1.4 Introducere în Web-ul Semantic. Concepte de bază ..................................

1.5 RDF-concept, descriere, vocabulare ..........................................................

1.6 Agregarea si distribuirea informatiilor .......................................................

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

1.8 Cautarea în WWW(comparatie intre cautarea “traditionala” si cautarea

intr-un mediu semantic ...............................................................................................

7

8

10

13

14

15

18

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

2.1 Resurse de stocare a datelor ......................................................................

2.2 O comparație a resurselor de stocare a triplelor ........................................

2.3 Limbajul SPARQL. Conceptul de endpoint ..............................................

2.4 Conceptul linked data ................................................................................

2.5 Mișcarea NoSQL .......................................................................................

21

21

25

26

28

33

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

3.1 Modulul FII23 ...........................................................................................

3.2 Modulul FII Sparql Endpoint ....................................................................

35

35

39

4. Studii de caz ............................................................................................................. 43

5. Concluzii şi direcţii de dezvoltare ........................................................................... 45

6. Bibliografie .............................................................................................................. 47

Page 4: Date structurate, aplicarea modelului linked data

Prefaţă -4-

Prefaţă

În lumea de astăzi, în care tehnologia se manifestă în toate domeniile, în care

dezvoltarea şi îmbunătăţirea echipamentelor actuale nu mai cunoaşte limite, în care niciun

domeniu al vieţii nu a scăpat de binefacerile lumii moderne, omul este beneficiarul tuturor

acestor eforturi, menite să îi uşureze viaţa.

Dezvoltările recente în tehnologia sistemelor informaţionale au determinat o creştere

a gradului de computerizare a multor aplicaţii în diverse domenii business. Datele au devenit

o resursă critică în foarte multe organizaţii şi astfel accesarea lor în mod eficient, distribuirea

lor, extragerea de informaţii utile şi crearea unui sistem capabil să le gestioneze în mod

eficient au devenit necesităţi mai mult decat urgente. Eforturile care se fac în acest sens

vizează crearea unui sistem capabil atât să integreze datele din surse diferite, cât şi să extragă

şi ofere informaţii în diferite forme (rapoarte, statistici), pe baza unor şabloane (eng. pattern).

Aceste surse de date pot fi baze de date gestionate de un sistem creat în acest scop (Sistem de

Gestiune al Bazelor de Date— SGBD) sau pot fi, de asemenea, date primare, din surse

multiple. Dincolo de aceste aspecte care ţin de modul de păstrare şi manipulare a datelor şi

care în mod normal prezintă interes doar pentru specialiştii în domeniu, s-a mai dorit crearea

unor dispozitive de tip intrare/ieşire care să transforme toate aceste maşinarii de calcule în

dispozitive accesibile oamenilor de rând, care nu beneficiază de o pregătire în domeniu.

Privind evolutia calculatoarelor, de la prima generaţie şi până la cea curentă (a patra),

putem întelege de unde am plecat şi unde am ajuns. Pe măsură ce a evoluat hardware-ul a

evoluat, software-ul a evoluat. Pe măsură ce reţelele au evoluat, au evoluat şi protocoalele de

comunicaţie dintre calculatoare. Dezvolarea acestor reguli şi protocoale a determinat evoluţia

întregii reţele Internet şi a software-ului pentru această reţea. Poate cele mai multe schimbări

majore într-un interval scurt de timp s-au resimţit în spaţiul World Wide Web, acest serviciu

resimţind îmbunătăţiri majore în cei 20 de ani de existenţă.

Page 5: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -5-

1. Evolutia Internetului si a serviciului World Wide Web

1.1 Scurt istoric şi prezentare a serviciului World Wide Web

Începuturile WWW(World Wide Web) datează din anul 1989 când la Laboratorul de

Cercetări de Fizică Nucleară (CERN) din Geneva s-a cristalizat ideea conceperii unui sistem

de transmitere a informaţilor între diferitele echipe, aflate la distanţă una de alta, bazat pe

Hypertext. Un an mai târziu, în octombrie 1990 proiectul a fost prezentat, iar după numai

două luni au început să se contureze primele rezultate. Munca a demarat cu elaborarea unui

program capabil să interpreteze limbajul Hypertext, numit browser.

În anul 1991, după eliminarea mai multor neajunsuri în funcţionare, Web-ul a fost pus

la punct şi a devenit funcţionabil. Anul 1992 a fost un an al dezvoltării, browserul Web a

devenit disponibil prin intermediul FTP iar Web-ul a fost prezentat publicului şi

organizaţiilor cele mai diverse. La începutul anului 1993 existau 50 de servere Web în

întreaga lume pentru ca spre sfârşitul aceluiaşi an numărul lor să crească de peste 10 ori.

Un alt moment important în istoria WWW este înfiinţarea Consorţiului Web(W3

Consortium – W3C), în octombrie 1994. Scopul său este "de a exploata spaţiul World Wide

Web la întregul său potenţial prin dezvoltarea de protocoale comune care să promoveze

evoluţia şi să îi asigurare interoperabilitatea. "

Ce este astăzi Webul este lesne de constatat: informaţii, mesagerie, afaceri, comerţ,

artă, divertisment sunt numai câteva dintre activităţile ce se derulează sub semnul acestui

serviciu.

Funcţionarea WWW se bazează în esenţă pe doi piloni: protocolul şi limbajul (sau

codul). Protocolul este acel produs software (sau mai simplu program) care asigură tranzacţia

între clienţi şi servere. Protocolul pentru Web este HTTP (HyperText Transfer Protocol)

care, în desfăşurarea unei tranzacţii, tratează 4 faze: conectarea, cererea, răspunsul şi

Page 6: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -6-

deconectarea. Un alt protocol similar cu HTTP este HTTPS (HTTP Secure – HTTP

Securizat). Acesta este un protocol folosit de serverele web pentru a transfera şi afişa

conţinutul Web în siguranţă. Datele transferate sunt criptate, astfel încât să nu poată fi citite

de oricine, cu excepţia destinatarului. HTTPS este utilizat de către orice sit Web care se

bazează pe colectarea de date sensibile clientului, cum ar fi informaţii bancare sau tranzacţii

online. Eficacitatea HTTPS poate fi limitată de folosirea deficitară a browser-ului sau de

anumite deficienţe la nivel de server. În plus, deşi HTTPS securizează datele care circulă

între server şi client, odată ce datele sunt decriptate la destinaţie, acesta devin la fel de sigure

ca şi computerul gazdă.

Limbajul este un limbaj care descrie modul în care informaţia conţinută în

documentele Web trebuie afişată. În Internet limbajul standard este HTML (Hyper Text

Markup Language - limbaj de marcare a hipertext-ului). Documentele HTML conţin text,

imagini, sunet şi linkuri (legături) către alte documente. Limbajul HTML, având posibilităţi

variate de formatare a documentului valorifică ingeniozitatea celui care îl creează (web

master sau web designer), rezultatul fiind documente cu mare impact la utilizator.

Fig. 1. Evoluţia spaţiului Web. Concepte şi tehnologii aferente

fiecărei etape

Page 7: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -7-

1.2 Standarde actuale în World Wide Web

Web-ul progreseză prin agregarea contribuţiilor a sute de milioane de utilizatori. Fiind

o lume deschisă, WWW permite oricui sa contribuie într-un fel. Crearea aplicaţiilor este

facilitată de colaborarea masivă între dezvoltatorii din cadrul comunităţilor şi de reutilizarea

componentelor software, toate aceste lucruri realizând din Web un mediu aflat într-un ritm

accelerat de dezvoltare şi îmbunătăţire, care are ca element central utilizatorul.

Evoluţia spre Web 2.0 s-a produs atunci când vizitatorii siteurilor au putut să

contribuie cu informaţii noi şi au putut oferi feed-back. Odată cu Web 2.0 s-a creat o

adevărată arhitectură a participării în cadrul căreia fiecare individ care dispune de un

dispozitiv conectat la internet poate produce conţinut şi poate interacţiona cu alţi utilizatori

de internet, depăşind barierele de timp şi spaţiu. La nivel de instrumente de programare

utilizate pentru a crea pagini web, Web 2.0 foloseşte concepte care sunt considerate "de

ultimă oră". Aceasta a inclus AJAX şi SOAP şi alte aplicatii XML şi JavaScript care permite

clienţilor să interacţioneze efectiv cu informaţia.

Un pas important în evoluţia Web-ului a fost făcut prin intermediul funcţiei tag

prezentă pe bloguri, siteuri sau pe unele reţele de socializare. În acest sens, indivizii

contribuie prin efortul lor individual la îmbogăţirea listelor de cuvinte cheie de care va fi

nevoie în construirea noii arhitecturii a spaţiului Web. În plus faţă de aceste facilităţi, se

doreşte interconectarea serviciilor oferite în prezent pe internet. De exemplu, în cautarea unui

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

Page 8: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -8-

restaurant, utilizatorul de internet primeşte nu numai cele mai bune sfaturi dar şi indicaţii

despre cum să ajungă la restaurantul ales cu ajutorul unui serviciu de tipul celui oferit de

Google Maps. Timpul de căutare a informaţiilor relevante se reduce, iar internetul tinde să

devenă sursa cea mai rapidă de informaţie utilă.

O altă tendinţă actuală este unificarea tuturor operaţiilor. Spre exemplu, în momentul

de faţă cu un cont pe un sit de socializare ne putem autentifica la o mulţime de alte reţele.

Este o dovadă că sit-urile web "comunică" şi tendinţa este de a creşte acest fapt. Un model de

autentificare comun pe cât mai multe platforme înseamnă o sursă nouă de informaţii despre

un anumit utilizator. Cu siguranţă vom putea vorbi în curând de motoare de căutare care să

personalizeze răspunsurile. Acestea vor urmări care sunt rezultatele pentru care un anumit

utilizator este interesat şi va produce rezultate diferite de căutare pentru utilizatori diferiţi.

Chiar şi anunţurile pe care un utilizator le urmăreşte vor fi diferite. Într-un cuvânt, tendinţa

generală este una singură: inteligenţă artificială.

1.3 Importanţa metadatelor

Pe langă gestionarea datelor, o atenţie deosebită trebuie acordată definirii elementelor

de date utilizate în baze de date. Fără o înţelegere a structurii, a limitărilor, a modului de

definire şi de descriere a datelor, este probabil ca datele să fie interpretate greşit sau utilizate

în mod abuziv. În plus, datele care nu sunt bine definite pot cauza probleme de integritate

asupra bazelor de date. Aceasta este o problemă de metadate.

Utilizatorii de date trebuie să ştie ce reprezintă datele înainte ca acestea să devină

utile ca informaţii. Informaţiile despre date sunt definite ca metadate. Cea mai simplă

definiţie a metadatelor este "date despre date." Dar, pentru a fi un pic mai precis, metadata

descrie date, dar furnizează informaţii cum ar fi tipul de date, lungime, descriere textuală, şi

alte caracteristici ale datelor. Deci, de exemplu, metadatele permit utilizatorului să ştie că

Page 9: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -9-

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

putea fi 56789.

Unitatea de bază pentru reprezentarea cunoştiinţelor este data. Data este, în fapt

reprezentată ca un element ce nu are nici o legătură cu alte lucruri. Exemple de date sunt 27,

010110, şi ianuarie. Fără detalii suplimentare nu ştim nimic despre oricare din aceste trei

bucăţi de date. Informaţii, pe de altă parte, adaugă context prin relaţiile dintre date şi eventual

alte informaţii. Datele, în context cu metadatele generează informaţii. Relatiile pot reprezenta

informaţii, dar relaţiile nu constituie de fapt informaţii până când acestea nu sunt înţelese. De

asemenea, relaţiile care reprezintă date au tendinţa de a fi limitate în context, mai ales despre

trecut sau prezent, cu atât mai puţin dacă presupun implicaţii în viitor.

Beneficiul cel mai evident al metadatelor se observă la căutare. Cel mai adesea,

căutarea vizează anumiţi termeni cheie, care nu ar putea fi făcută altfel decât cu ajutorul

metadatelor. Un alt beneficiu vizează distribuirea conţinutului. Valorile asociate cu un

anumit conţinut sunt adesea inspectate de către aplicaţii pentru a determina când este cazul ca

anumite resurse să fie distribuite sau puse în comun. Securitatea aplicată la anumite obiecte

este adesea parte a modelului de metadate global.

Metadatele îmbunătăţesc în mod considerabil gradul de granulaţie ce aparţine căutării

în cadrul volumului de date disponibile. Acest lucru permite, folosind motoare de căutare,

căutarea pe web pentru a lucra mai eficient şi efectiv în asistarea oamenilor să găsească

resursele pe care le cer. Metadatele măresc, de asemenea, abilitatea oamenilor de a localiza

resursele online şi pot creşte semnificativ întoarcerea la investiţia iniţială de publicare web.

Mai mult decât atât, metadatele sunt de neînlocuit când articolele non-text trebuie să

devină disponibile din punct de vedere electronic. Spre exemplu, motoarele de căutare nu pot

scana poze sau colecţii de muzică în loc de cuvinte cheie. Metadatele pot conduce utilizatorii

la imaginile corecte sau la serviciile de furnizare în situaţii unde numele fişierelor şi

categoriile mai mari rareori o fac.

Page 10: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -10-

O altă problemă cu care ne confruntăm este cantitatea tot mai mare de date existentă

în întreg spaţiul WWW. De exemplu, Twitter generază zilnic aproximativ 7Tb de date. Noi

modalităţi pentru stocarea şi interogarea datelor au fost introduse – BigTable de către

Google, modelul Dynamo de către Amazon, dar pe lângă asta e nevoie de o modalitate care

să poată procesa automat aceste date, eventual într-un format dedicat în exclusivitate

maşinilor. Tendinţa actuală în spaţiul WWW – care nu este altceva decât o bibliotecă imensă

de documente interconectate, transferate între calculatoare şi celor ce le accesează – este de a

crea o mediu uniform astfel încât calculatoarele să poată prelucra la rândul lor informaţiile

prezentate, să le poată interconecta şi interpreta pentru a ajuta utilizatorul uman la regăsirea

informaţiilor.

1.4 Introducere în Web-ul Semantic. Concepte de bază

Web-ul semantic nu este un concept referitor doar la spaţiul WWW(World Wide

Web). El reprezintă un set de concepte şi tehnologii capabile să lucreze atât la nivel global,

cât şi în reţele locale – intranet-uri. Din acest motiv o definiţie exactă, completă şi precisă

este imposibil de dat.

Unii consideră web-ul semantic o viziune, o idee a lui Tim-Berners Lee, cel care la

începutul anilor 2000 a anticipat posibilitatea de a folosi web-ul semantic pentru a crea baze

de cunoştiinţe şi pentru a procesa datele existente în spaţiul Web. Acestă idee este destul de

Fig. 3. Logo-ul propus de Consorţiul Web

pentru Web-ul Semantic

Page 11: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -11-

confuză, cu atât mai mult cu cât web-ul tradiţional este pentru utilizatorii umani iar web-ul

semantic este destinat pentru aplicaţii, agenţi şi maşini, capabile să „înţeleagă” şi să

proceseze conţinutul text al paginilor web.

Web-ul semantic este considerat evoluţia firească, fiind a treia generaţie a spaţiului

web. Încă de la crearea sa, web-ul s-a vrut a fi mai mult decât un mijloc de accesare a

paginilor HTML stocate pe diferite servere. Prima generaţie a spaţiului – cea a anilor 90 – a

însemnat mai ales pagini statice, accesarea conţinutului lor facându-se via legături. Odată cu

apariţia unor noi tehnologii şi concepte capabile să genereze conţinut HTML dinamic, putem

vorbi de cea de-a doua generaţie, denumită web social. Putem vorbi aici despre bloguri,

reţele sociale, mash-up-uri de date. Următoarea generaţie a spaţiului web spre care se tinde

în momentul de faţă va fi aşa-numitul „web inteligent”, bazat pe o serie de concepte şi

specificaţii, cum ar fi: web-ul semantic, învăţare automată, data-mining, căutare pe bază de

limbaj natural,etc. Toate acestea vor face spaţiul web un mediu deschis, interconectat şi

inteligent. Aşa cum am mai menţionat, viitoarea generaţie a spaţiului web va avea în centrul

său maşinile şi aplicaţiile, utilizatorul uman urmând a fi beneficiarul direct al tuturor acestor

progrese tehnologice.

Web-ul semantic reprezintă un obiectiv: ideea de a avea date de pe Web definite şi

legate într-un mod prin care să poate fi utilizat de către maşini, nu doar pentru a fi redate prin

pagini HTML, dar şi pentru automatizare, integrare şi reutilizare a datelor din şi în diferite

aplicaţii. Scopul web-ului semantic este la fel de larg ca al întregului spaţiu Web: de a crea

un mediu universal pentru schimbul de date. Se preconizează interconectarea informaţiilor

personale, integrarea aplicaţiilor industriale, precum şi schimbul global de date comerciale,

ştiinţifice şi culturale.

Datorită dezvoltării infrastructurii, conexiunea la Internet este posibilă astăzi peste tot,

iar cantitate de informaţii a crescut exponenţial în ultimii ani. Cu toate acestea, informaţiile şi

serviciile sunt distribuite, de multe ori greu de găsit şi greu de integrat. Acest lucru duce la

un cost mai mare pentru găsirea informaţiilor relevante şi extragerea conţinutului important.

Page 12: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -12-

Web-ul îşi poate atinge potenţialul maxim numai dacă devine un loc unde datele pot fi

partajate şi prelucrate alături de oameni şi de instrumente automatizate. Pentru ca spaţiul

Web să scaleze, programele de mâine trebuie să poată partaja datele şi procese chiar şi atunci

când aceste programe au fost concepute în mod total independent. Acesta este unul dintre

obiectivele principale şi motivaţia din spatele viziunea web-ul semantic.

Scopul web-ului semantic este de a fi "un web care să vorbească cu maşinile", în care

maşinile să poată oferi un ajutor mai bun pentru oameni, prin valorifcarea conţinutului

informaţiilor de pe Web. Informaţiile de pe web ar trebui să fie astfel exprimat într-un mod

accesibil pentru calculatoare. Această definiţie este legată cu ceea ce există deja pe web:

motoare pentru extragerea de date din pagini cu conţinut structurat, analizatoare de limbaj

natural pentru a extrage conţinutul paginilor Web, sisteme de indexare. O mare parte din

aceaste proiecte sunt încă la început şi în momentul de faţă nu pot fi considerate o soluţie

viabilă şi stabilă.

Una dintre provocările curente în evoluţia web-ului semantic este elaborarea unui

cadru în care toate cunoştiinţele să poată colabora, deoarece beneficiul maxim de pe urma

web-ului semantic poate fi atins numai atunci când calculatoarele gestioneză resurse din

surse multiple.

Dezvoltarea web-ului semantic va angrena mai multe domenii ale informaticii:

tehnologiile web, bazele de date, teoremele automate, ingineria cunoştiinţelor, interacţiunea

om-calculator, prelucrarea limbajului natural, etc. Mai mult decât atât, web-ul semantic nu

trebuie să fie separat de mai multe aspecte: personalizare (probleme de confidenţialitate),

mobilitate (probleme de fiabilitate), publicarea (problema de securitate). Aceste probleme şi

subiecte sunt comune în contextul de azi, dar web-ul semantic le conduce la extrema lor,

deoarece utilizarea limbajelor semantice face acţiunile calculatorului mai puternice şi,

implicit ameninţările mai acute.

Cu toate acestea, maturizarea conceptelor legate de web-semantic nu depinde doar o

de tehnologie. Aceasta implică alaturi de tehnologie, economie, şi diverse aspecte sociale. Un

Page 13: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -13-

cale de mijloc, susţinută de eforturi comune trebuie să fie găsită între aceste domenii care i-ar

putea creşte valoarea, facându-l mai atrăgătoar şi mai uşor de utilizat. Toate aceste aspecte

trebuie să fie aşezate într-o alchimie dedicată pentru web-ul semantic. Acesta este motivul

pentru multe aplicaţii ar trebui să fie încurajate ca, printr-o infrastructură solidă, să ridice

utilitatea web-ului semantic.

1.5 RDF-concept, descriere, vocabulare

RDF (Resource Description Framework – Framework pentru descrierea resurselor)

este un limbaj creat pentru a suporta conceptele web-ului sematic în aceeaşi măsură în care

HTML reprezintă suportul pentru paginile web obişnuite. Limbajul RDF oferă o structură

comună pentru schimbul de date, bazat în mare parte pe specificaţiile XML, fiind aşadar un

mijloc independent, deschis, cu suport pe aproape toate platformele.

Deşi nu este la fel de cunoscut ca alte specificaţii ale W3C (Consorţiul WWW), RDF

reprezintă una din cele mai vechi specificaţii, primul extras fiind dat în anul 1997. Scopul

iniţial al RDF a fost de a crea un mecanism pentru lucru cu metadate care să promoveze

schimbul de date între procese automate. Limbajul este în plin proces de maturizare, având

ca scop fix, bine stabilit cel menţionat mai sus.

Specificaţiile RDF se bazează pe un concept similar cu programarea orientată-obiect:

ierarhii de clase. O colecţie de clase dezvoltate într-un scop precis se numeşte schemă.

Organizarea ierarhică a claselor permite extensibilitatea lor prin rafinarea subclaselor. Astfel,

pentru crearea de noi scheme se poate folosi o schemă de bază – un fel de clasă abstractă în

programarea orientată obiect. În acest fel se realizează reutilizarea definiţiilor de metadate.

Moştenirea multiplă permite exploatarea în forme diferite ale aceleiaşi informaţii.

La începuturile sale, limbajul RDF a fost folosit în prima implementare a

specificaţiilor RSS, de către compania Netscape. Folosirea modelului RDF este justificată

Page 14: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -14-

pentru acele seturi de RSS-uri care au durată de viată destul de mare, deoarece în felul acesta

cresc şansele ca datele să fie descoperite şi incluse în graful de date RDF.

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

- resurse: reprezintă ceea ce este descris. O resursă poate fi o pagină web întreagă, o parte a

unei pagini web. Cel mai adesea resursele sunt specificate de URI-uri.

-proprietăţi: reprezintă un aspect specific, o caracteristică, relaţie sau atribut pentru resursa

descrisă. Specificaţiile prevăd ca fiecare proprietate să aiba o semantică, un set de valori

posibile şi un set de relaţii cu alte proprietăţi.

- declaraţii: sunt formate dintr-o resursă, împreună cu o proprietate a sa care conţine o

valoare. Declaraţia poate fi privită din punct de vedere matematic ca un tuplu: {subiect,

predicat, obiect}. Obiectul declaraţiei poate fi o altă resursă sau un literal. Declaraţiile pot fi

reprezentate fie ca grafuri orientate(nodurile sunt subiecte sau obiecte, iar arcele proprietaţi),

fie folosind marcaje (<subiectul> are <predicat> <obiect>), fie folosind limbajul RDF/XML.

1.6 Agregarea si distribuirea informatiilor

Cele mai multe sit-uri Web sunt dedicate cititorilor umani şi acest lucru tinde să

creeze informaţie contextuală, care nu poate fi procesată în mod eficient şi de maşini. Pentru

accesarea respectivei informaţii şi de către calculatoare s-au realizat diferiţi algoritmi de

procesare a limbajului natural sau algoritmi care încearcă să extragă înţeles din cadrul

textelor, dar toţi aceşti algoritmi lucrează în jurul ideii de „recuperare” de informaţie, nu de

„citire” sau „înţelegere” a informaţiei.

Web-ul Semantic crează un Web orientat spre date prin integrarea resurselor care

provin din surse diferite ca: pagini HTML, documente XML, foi de calcul, baze de date

relaţionale, etc. Pentru ca aplicaţiile Web să poată utiliza surse diferite de date trebuie ca

acestea să fie componente ale unei baze de date virtuale unificate. Acest lucru este posibil

utilizând modelul RDF3. Acest lucru facilitează schimbul şi combinarea datelor regăsite în

Page 15: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -15-

cadrul Web-ului, alcătuind spaţiul Datelor Interconectate (Linked Data), despre care vom

vorbi în capitolul viitor.

RDF realizează o interoperabilitate şi o colaborare mai eficientă decât alte standarde,

ca XML, deoarece permite furnizorilor de date să încapsuleze alături de date şi înţelesul

acestora. Adiţional, dacă aceste date sunt interconectate, atunci datele devin uşor de

descoperit. O legătură RDF doar afirmă ca o bucată de date are o anumită relaţie cu o alta

bucată de date. Aceste relaţii pot avea tipuri diferite. De exemplu, o legătură RDF care

conectează date despre persoane, poate afirma că doua persoane se cunosc; o legătură RDF

care conectează informaţii despre o persoană şi publicaţiile acesteia într-o bază de date

bibliografică, poate să afirme că acea persoană este autorul respectivei lucrări.

Conceptul de integrare a datelor este chiar mai vechi decât calculatoarele, este la fel

de veche ca ideea de date în sine: toate seturile de date pe care le folosim astăzi (de la o carte

la o colecţie de imagini, de la un catalog la un recensământ de date), ar trebui să fie colectate

de diferite persoane /entităţi şi integrate. Se estimează că va mai dura ceva timp

popularizarea şi înţelegerea modelului RDF, precum şi a beneficiilor pe care folosirea sa le

presupune, dar este tot mai evident că acest model este un candidat excelent pentru integrarea

datelor din diverse surse independente. Acest lucru pune RDF în coliziune directă cu

tehnologiile de stocare a datelor, cu instrumente de data mining, baze de date multi-

dimensionale şi articole similare, asta deoarece puţini specialişti din aceste domenii

realizează faptul că RDF nu este doar un alt standard marcare XML.

Integrarea datelor reprezintă provocarea de a combina date care provin din diferite

surse şi furnizate utilizatorului într-un format unificat, bazat pe scheme universale. Sursele

conţine date reale, în timp ce schema globală oferă o semantică unică, integrată, şi virtuală a

surselor. Modelarea relaţiei dintre sursele de date şi schema universală este, prin urmare, un

aspect crucial. Aceasta se bazează pe mapări. Maparea este procesul de unificare a

elementelor din două modele distincte. Acesta este un prim pas într-o varietate de procese de

unificare a datelor, dintre care enumerăm: identificarea relaţiilor între date, ca parte a analizei

Page 16: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -16-

de date, descoperirea de date ascunse şi mai ales consolidarea bazelor de date multiple într-o

bază de date unică şi identificarea coloanele redundante de date pentru eliminare lor.

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

Scopul modelului RDF este de a defini resurse şi fapte conexe, şi apoi să ofere o

modalitate de a permite maparea acestor resurse/fapte pentru a interacţiona. Acest lucru este

realizat prin capturarea declaraţiilor despre resurse, fiecare declaraţie constând dintr-o

proprietate specifică, cum ar fi titlul şi autorul pentru articolul unor resurse.

Cu toate acestea, modelul RDF impune destul de multe constrângeri asupra modelului

de reprezentare a datelor. De exemplu, nu oferă nicio modalitate care să restrângă

cardinalitatea unei proprietăţi specifice sau care să furnizeze informaţii despre două

proprietăţi care sunt disjuncte. Aceste neajunsuri se rezolvă prin folosirea de ontologii.

Ontologiile sunt considerate unul dintre pilonii de web-ului semantic, deşi ele nu au o

definiţie unanim acceptată. Un vocabular în web-ul semantic poate fi considerat ca o formă

specială de ontologie, sau, uneori, ca o colectie de URI-uri cu un sens (de obicei neoficial)

descris. Termenul de "ontologie" poate fi definit ca o specificare explicită a unui concept.

Ontologii captează structura unui domeniu, adică îl conceptualizează. Aceasta include

modelul de domeniu cu posibile restricţii. Conceptualizarea descrie cunoştinţe despre

domeniu, nu şi despre starea lucrurilor din domeniu. Cu alte cuvinte, conceptualizarea nu se

schimbă, sau se schimbă foarte rar. Ontologia este astfel caietului de specificaţoo al acestui

concept - conceptualizarea este specificată folosind un limbaj de modelare particular şi

termeni speciali.

Un limbaj dedicat ontologiilor, cum ar fi OWL(Web Ontology Language ) adaugă

constrângeri suplimentare, care cresc acuratetea de implementare a unui vocabular dat. Mai

mult decât atât, permit informaţiile suplimentare care urmează să fie deduse din date, deşi

acestea nu pot fi stocare în mod specific.

Page 17: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -17-

OWL pune la dispoziţie 3 sublimbaje, cu grade diferite de expresivitate, care pot fi

integrate în diferite vocabulare, în funcţie de scopul acestuia. OWL Lite sprijină utilizatorii

care au nevoie în primul rând o ierarhie de clasificare şi de constrângeri simple. De exemplu,

constrângerile de cardinalitatea să permite numai valori cardinalitatea de 0 sau 1. OWL DL

sprijină utilizatorii care îşi doresc expresivitate maximă asigurând în acelaşi timp

completitudinea (se garantează calculabilitatea concluziilor) şi decidabilitate (toate calculele

se vor termina în timp finit). OWL DL include toate construcţiile limbajului OWL, dar

acestea pot fi folosite numai în conformitate cu anumite restricţii (de exemplu, în timp ce o

clasă poate fi o subclasă de multe clase, o clasa nu poate fi un exemplu de o altă clasă).

În timp ce ontologiile descriu relaţiile într-o manieră n-dimensională, care să permită

cu uşurinţă accesarea informaţiei din mai multe perspective, un alt concept apropriat web-

ului semantic – taxonomiile – sunt limitate la relaţiile ierarhice. Într-un mediu RDF,

ontologiile sunt capabile să asigure o capacitate care extinde utilitatea unei taxonomii.

Avantajul ontologiilor este că aceasta pot fi legată de o altă ontologie, care să beneficieze de

datele sale.

Din acest motiv al posibilelor legături, taxonomiile sunt limitate în mod clar ca fiind

mai mult scheme de clasificare, decât modele care să descrie relaţiile parte-întreg dintre

termeni. Ontologiile au ca scop organizarea, adăugarea de sens la grafurile de date şi

metadate şi maparea printre ontologiile dintr-un domeniu specific a modului în care datele

devin interconectate pe Web.

O taxonomie este un instrument foarte util, mai ales pentru că pot fi construite cu

uşurinţă, pot fi îmbunătăţite şi extinse. Dar taxonomii au anumite limitări. Ele nu sunt

flexibile. Astfel, poate deveni dificil să fie extinse la un spatiu mare de descriere. Cu cât se

adaugă mai multe elemente, cu atât mai multe moduri de interconectare vor fi găsite, ceea ce

duce la ruperea structurii tradiţionale de arbore. Există modalităţi de a îmbunătăţi

flexibilitatea prin combinarea taxonomiilor cu vocabulare şi diverse concepte de baza de

date, dar acestea le face şi mai subsceptible la erori.

Page 18: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -18-

1.8 Cautarea în WWW(comparatie intre cautarea “traditionala” si

cautarea intr-un mediu semantic.

Căutarea în spaţiul WWW se face folosind motoarele de căutare,care se bazează pe

tabele de indecşi. Acest proces de indexare a datelor este făcut de un software specializat,

denumit crawler. Scopul său e să exploreze întreg spaţiul Web pentru a indexa orice dată

care ar putea ulterior deveni subiectul unor căutări. Practic, în felul acesta se crează un tabel

imens de structuri cheie-valoare, unde cheia este un cuvânt, iar valoarea este o listă de

structuri care memorează URI-ul unde a fost găsită respectiva resursă, precum şi alte detalii

ce ţin de particularităţile fiecărui motor de căutare în parte.

Când un utilizator introduce o interogare într-un motor de căutare (de obicei, prin

folosirea cuvintelor-cheie), motorul examinează tabelul de indicşi şi se furnizează o listă de

pagini web care se potrivesc cel mai bine cu criteriile sale, de obicei, cu un scurt rezumat

care conţine titlul documentului şi, uneori, piese a textului. Indexul este construit din

informaţiile stocate cu datele şi metoda prin care informaţia este indexată. Din păcate, nu

există în prezent motoare de căutare cunoscute publicului, care permit căutarea documentelor

în funcţie de dată. Cele mai multe motoare de căutare utilizează operatorii booleani AND,

OR si NOT pentru a specifica în continuare interogarea de căutare. Operatorii booleeni sunt

pentru căutările literale, care permit utilizatorului să perfecţioneze şi să extindă termenii de

căutare. Motorul caută cuvinte sau fraze exact aşa cum a intrat. Unele motoare de căutare

oferă o funcţie avansată numită căutare de proximitate care permite utilizatorilor să

definească distanţa dintre cuvintele cheie.

Utilitatea unui motor de căutare depinde de relevanţa setul de rezultate care este

returnat. Deşi pot exista milioane de pagini web care includ un anumit cuvânt sau o frază,

unele pagini pot fi mai relevante, mai populare decât altele. Cele mai multe motoare de

căutare utilizează metode de clasificare a rezultatelor pentru a furniza primele "cele mai

Page 19: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -19-

bune" rezultate. Cum fiecare motor de căutare decide care pagini se potrivesc cel mai bine, şi

ce ordine a rezultatelor ar trebui să fie prezentate, acestea variază mult de la un motor de

căutare la altul.

Spre deosebire de motoarele de căutare de acum, care folosesc crawl-ere pentru

exploarea paginilor Web,în Web-ul Semantic motoarele de cautare indexeză datele stocate în

format RDF pe Web.

Desigur, un motor de căutare pentru Web RDF pe Web, oferă servicii echivalente un

motor de căutare existent în prezent pentru Web HTML. Sistemul explorează indexurile

web-ului semantic şi oferă o interfaţă uşor de utilizat, prin care utilizatorii pot găsi

informaţiile pe care le caută. Din cauza semanticii inerente a RDF şi altor limbaje specifice

Web-ului Semantic, capacităţile de căutare şi regăsire a informaţiilor sunt potential mult mai

puternic decât cele de la motoarele de căutare actuale. Prezentăm în continuare câteva dintre

motoarele de căutare bazate pe tehnologiile Web-ului Semantic.

Sindice

Sindice este un motor de căutare al indecşilor din documentele Web-ului Semantic

construit pe tehnici intensive de calcul în clustere,fiind dezvoltat de Déri Irlanda. Sindice

indexează web-ul semantic şi poate să spune ce surse menţionează o resură URI sau un

cuvânt cheie, dar nu poate răspunde la interogări asupra triplelor. Sindice indexează în

prezent peste 20 de milioane de documente RDF.

Yahoo! Microsearch

Microsearch este produsul oferit de Yahoo! pentru căutarea în Semantic Web şi oferă

o experienţă mai bogată căutare prin combinarea rezultate tradiţionale de căutare cu metadate

extrase din pagini Web. Acesta se bazează pe indexarea documentelor RDF, RDFa şi

microformate de pe Web. Yahoo! a anunţat că va adaugă în curând proiectului Microsearch

suport pentru GRDDL.

Page 20: Date structurate, aplicarea modelului linked data

Evoluţia Internetului şi a serviciului World Wide Web -20-

Swoogle

Swoogle caută prin peste 10.000 de ontologii. 2.3 milioane documente RDF indexate,

în prezent, inclusiv cele scrise în RDF / XML, N-triple, N3 (RDF), precum şi unele

documente care presupun fragmente de RDF / XML. În prezent, aceasta permite căutarea

prin ontologii. Pe lângă asta, oferă metadate pentru documentele Web-ului Semantic şi

sprijină navigarea prin aceste documente. Swoogle, de asemenea, oferă suport pentru

arhivarea unor versiuni diferite de documente. Acest proiect este dezvoltat de Ebiquity

Group of UMBC.

Page 21: Date structurate, aplicarea modelului linked data

Framewo rk-uri, specificații și tehnologii pentru web-ul semantic -21-

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

2.1 Resurse de stocare a datelor

Suportul pentru aplicaţiile pe scară largă în domeniul web-ului semantic depinde de

alegerea și utilizarea mediilor de stocare a triplelor potrivite, în special în funcție de

cantitatea de RDF care trebuie persistată. Interesul acordat framework-urilor de stocare a

triplelor se datorează capacității lor de a reprezenta relaţiile dintre entităţi arbitrare într-un

format generalizat: noţiunea de triplu, cu care o relaţie între un subiect şi un obiect este

notată cu o proprietate.

Un mecanism de stocare a triplelor RDF este un framework pentru persistarea și

interogarea datelor în format RDF, dispuse cel mai adesea sub forma unui graf de date. În

ultima vreme s-a constatat un interes major în dezvoltarea de aplicații pentru stocarea datelor

RDF, pentru interogarea și optimizarea protocoalelor de acces. Dacă în anii 2000 singurele

medii de stocare erau Sesame și Jena, amândouă pentru platforma Java, în momentul de față

există suport pentru aproape orice limbaj. Direcțiile actuale se concentrează pe dezvoltarea

de medii distribuite, cu suport pentru replicarea datelor și distribuția lor uniformă din punct

i0de vedere spațial la nivel global.

Limbaj Nume

C 3Store,Virtuoso

CommonLisp AllegroGraph

Java Jena, Joseki, Mulgara, Sesame

Perl RDF::Core, RDF::Trine

PHP RAP

Python Pointrel System

C# SemWeb-DotNet, Smart-M3

Fig.1. Tabel cu diverse framework-uri de stocare a triplelor RDF

Page 22: Date structurate, aplicarea modelului linked data

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

Mediile de stocare a triplelor RDF pot fi împărțite în trei categorii importante: native,

stocate în memorie și non-native, nestocate în memorie. Stocarea în memorie este o metodă

eficientă pentru cantități moderate de date. Au avantajul vitezei, fiind folosite mai ales în

sistemele de reasoning sau pentru rezolvarea problemelor de inferențe în mediile de stocare

persistente, acționând adesea ca un cache. Acest model de stocare se pretează la structurile

de triple omogene în timp, deoarece avantajul major – viteza de procesare ar avea de suferit

dacă s-ar face des operații de refacere a modelului.

În momentul de față modelul dominant pentru stocare este cel nativ, care oferă

modalități persistente de stocare, cu suport propriu pentru implementarea bazelor de date.

Câteva exemple de framework-uri din această categorie: Virtuoso, Mulgara, AllegroGraph,

Garlik JXT. Cea de-a treia categorie de aplicatii pentru stocarea triplelor este non-nativă și

nestocată în memorie. Aceast model este folosit ca o modalitate de a cupla modelul triplelor

RDF cu alte modele tradiționale de baze de date(relațional, orientat obiect,etc.). În momentul

de față, framework-urile bazate pe modelul nativ au câștigat popularitate datorită timpului

redus de încărcare și posibilităților de optimizare.

Framework-ul Jena

Jena este un framework dezvoltat pentru platforma Java pentru construirea de aplicații

pentru web-ul semantic. Jena implementeaza API-uri pentru lucrul cu structuri specifice

acestui domeniu, cum ar fi RDF şi OWL. Conceptul fundamental în Jena

pentru utilizatori este modelul, care reprezintă modalitatea în care framework-ul gestionează

o mulțime de triple RDF. Un model poate fi creat 0064e sistemul de fişiere sau dintr-un fişier

existente pe un server web. Folosind JDBC, acesta poate fi, de asemenea, legat la un server

de baze de date relațional, cum ar fi MySQL sau PostgreSQL.

Jena dispune de o componentă denumită SDB, care oferă o modalitate eficientă

pentru persistare scalabilă şi interogare a seturilor de date RDF folosind structuri SQL

Page 23: Date structurate, aplicarea modelului linked data

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

convenţionale, utilizate în aplicaţii clasice sau aplicații J2EE bazate pe diverse framework-

uri. de stocare, după cum sa menţionat, este furnizată de o bază de date SQL şi multe baze de

date sunt susţinute, atât open source şi proprietare. În plus, referitor la accesul optimizat la

datele stocate folosind API-ul Jena, acesta poate fi cuplat cu web-server - "Joseki" - care este

server ce suportă interogări SPARQL. Acest lucru permite ca o bază de date să poată fi

interogată peste protocolul HTTP.

Jena în plus faţă de caracteristicile menţionate mai sus, de asemenea, oferă

posibilitatea de a realiza raţionamente de grade diferite. Acesta poate fi folosit pentru a

efectua raţionamente simple RDFS sau raţionamente care presupun o folosire mai intensă a

memoriei - OWL-DL. Toate sistemele de raționament (reasoners) puse la dispoziţie de către

API-ul Jena efectuază raţionamentele în memorie, cu alte cuvinte modelul sau structura de

date pe care se face raționamentul trebuie să fie încărcat în memorie.

Framework-ul Sesame

Sesame este un framework open source pentru persistare, interogare a datelor RDF și

pentru realizarea de inferențe. Sesame posedă caracteristicile Jena, având un API propriu,

suport pentru inferențe și funcționalitatea specifică unui server web şi endpoint SPARQL. Ca

și Jena SDB, oferă suport pentru backend-uri multiple cum ar fi MySQL şi Postsgre. Sesame

Native este modulul care se ocupă de gestiunea triplelor de RDF. În comparaţie cu Jena

TDB, este mai puţin scalabil. Testele facute menţionează că Sesame Native a fost testat cu

pana la aproximativ 70 de milioane de triple în timp ce Jena TDB este capabil să gestioneze

cu 1,7 miliarde triple.

Sesame acceptă două limbaje de interogare: SeRQL şi SPARQL. O altă componentă a

framework-ului este Alibaba, un API care permite maparea claselor Java pe ontologii, şi

pentru generarea de fișiere sursă Java din ontologii. Acest lucru face posibilă utilizarea unor

ontologii specifice, cum ar fi RSS, FOAF şi Dublin Core direct din Java.

Page 24: Date structurate, aplicarea modelului linked data

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

Framework-ul Mulgara

Mulgara este un mediu nativ, scris în Java pentru a stoca triple RDF. Acesta oferă o

conexiune API care poate fi utilizat pentru conectarea la Mulgara. Fiind un mediu nativ,

framework-ul are o script de „încărcare” care poate fi folosit pentru a încărca date RDF în

mediul de stocare a triplelor. În plus faţă de sprijinirea interogări SPARQL prin conexiunea

API, acestea pot fi efectuate prin intermediul unui shell TQL.TQL este o interfaţă linie de

comandă care permite interogări pe modele prezente în mediul de stocare.

Trebuie remarcat că Mulgara nu se bazează și nici nu oferă suport pentru modelul

relaţional. În schimb, Mulgara este o bază de date complet nouă optimizată pentru

gestionarea metadatelor. Modele Mulgara ţine metadatele sub formă de scurte declaraţii

subiect-predicat-obiect, la fel ca standardul W3C Resource Description Framework (RDF).

Metadatele pot fi importate sau exportate din Mulgara în RDF sau forma N3.

Un aspect important care trebuie remarcat la Mulgara este modul în care este

gestionată concurența, acesta bazându-se pe suportul sistemului de operare pe care rulează,

evitând blocarea resurselor folosite. Fiecare sesiune/tranzacție asupra resurselor stocate

rulează într-un fir de execuție propriu. În acest fel, numărul maxim de sesiuni concomitente

este limitat de sistemul de operare și de sistemul de intrare-ieșire. Atunci când se iniţiază o

sesiune de interogare, care ar putea implica mai multe cereri pentru mediului de stocare a

triplelor, mai întâi se realizează un instantaneu al întregii baze de date. Acest lucru asigură

că toate cererile în timpul prelucrărilor se vor executa asupra unei baze de date într-o stare

consistentă.

Framework-ul Virtuoso

Virtuoso este un framework disponibil în ambele versiuni: open source şi cu licenţă

comercială. Acesta oferă o interfață la linia de comandă pentru diverse operații, un API

pentru conexiuni, suport pentru SPARQL şi server web pentru a efectua interogări SPARQL

Page 25: Date structurate, aplicarea modelului linked data

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

şi încărcarea de date prin HTTP. O serie de evaluări au testat Virtuoso şi au constatat că

scalează până la aproximativ 1 miliard de triple. În afară de aceasta, Virtuoso dispune de

module prin care se poate conecta pentru a fi folosit cu Jena şi Sesame.

Virtuoso este conceput pentru a rula pe sisteme de operare cu suport multithreading şi

pe sisteme cu mai multe procesoare. Arhitectural, constă dintr-un singur proces care

gestionează mai multe fire de execuție, partajate între clienţi. Pentru comunicarea între firele

de execuție se păstrează un fişier de tranzacţii care înregistrează toate operaţiunile. Fişierul

de tranzacții poate fi conservat şi arhivat pentru o perioadă de timp nedeterminată, oferind o

istorie completă, recuperabilă a bazei de date. Toate cele patru niveluri de izolare sunt

suportate: citirea eronată (dirty read), citit comis(commited read), citit repetabile(repetable

read) şi serializarea(serializabile). Nivelul de izolare poate fi specificat pentru fiecare

operaţie în parte, dintr-un set de operaţii ale unei tranzacţii.

2.2 O comparație a resurselor de stocare a triplelor

Toate testele la care au fost supuse mediile de stocare de mai sus au arătat un grad

superior de performanță a mediilor native, cum ar fi Mulgara, Sesame și Virtuoso. Acest

lucru este în concordanță cu tendințele actuale în ceea ce privește dezvoltarea de medii native

de stocare a triplelor RDF, cu atât mai mult cu cât pot performanța lor va duce la optimizarea

lucrului cu RDF. Totuși câteva din aceste medii(Mulgara și Virtuoso) au un dezavantaj

major: nu posedă un API care să se realizeze în mod programatic accesul la resursele stocate.

După cum am menționat și la începutul acestei părți, eficiența unei aplicații din

domeniul web-ului semantic este influențată direct de framework-urile și API-urile auxiliare

folosite. Experimentele au arătat incapacitatea framework-urilor de a gestiona cantități mare

de date, nefiind niște medii scalabile. Acest lucru se datorează mai ales dependențelor acestor

medii, care nu sunt compatibile în totalitate cu aplicațiilor în care sunt folosite și API-urilor

care au fost create pentru a facilita accesul în mod programatic. Documentația acestor medii

recomandă folosirea scripturilor în detrimentul API-urilor, în cazul în care se lucrează cu

baze de date foarte mari.

Page 26: Date structurate, aplicarea modelului linked data

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

Un comportament cu totul aparte s-a observat la Jena: a reușit să gestioneze baze de

date de orice dimensiune, dar cu un cost mai mare în ceea ce privește viteza cu care se

realizează aceste operații. Acest lucru era oarecum previzibil, deoarece Jena are suport pentru

bazele de date relationale în care stocheză datele și care nu poate fi optimizat pentru baze de

date particulare.

Au fost câteva abordări hibride ale mecanismelor de stocare a triplelor, dar principala

problemă în acest sens este compatibiliatea între sisteme. Rezolvarea acestor probleme ar

duce la crearea unor medii cu adevărat optime și care ar putea multe probleme în acest sens.

2.3 Limbajul SPARQL. Conceptul de endpoint

După cum am prezentat în capitolul anterior, specificațiile RDF(S) și OWL pentru

reprezentarea ontologiilor și pentru adnotarea datelor în web-ul semantic. Totuși, odată ce

aceste date au fost publicate, este necesar un mecanism de interogare a datelor existente,

pentru a le face în întregime utilizabile. SPARQL (SPARQL Protocol and RDF Query

Language – Protocolul SPARQL și limbajul de interogare a RDF-urilor) rezolvă această

problemă și oferă, după cum sugerează și numele, atât un limbaj pentru interogarea datelor și

un protocol pentru datele în format RDF. Acest limbaj poate fi privit ca limbajul SQL pentru

web-ul semantic, oferind un mecanism extrem de puternic și de simplu pentru interogarea

triplelor și a grafurilor de date. Referior la SPARQL, Tim Berners-Lee a afirmat:

”Web-ul semantic fără SPARQL este același lucru ca bazele de date relaționale fără SQL.

SPARQL face posibilă interogarea bazelor de date și a altor surse existente în întreg spațiul

WWW.”

Deoarece RDF-urile sunt reprezentate ca grafuri, SPARQL este un limbaj de

interogare peste grafuri, spre deosebire de SQL care manipulează tabele și înregistrări. În

plus, interogările sunt mult mai flexibile, astfel încât interogări complexe pot fi rulate peste

graful de date. Ex: să se găsească toate persoanele care cunosc pe cineva interesat de web-ul

semantic.

Page 27: Date structurate, aplicarea modelului linked data

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

SPARQL poate fi folosit pentru interogarea fișierelor RDF independente, dar și

pentru modele mai complexe, fie încărcate în memorie de către motorul de interogare, fie

folosind structuri optimizate pentru manipularea triplelor RDF. Astfel, este necesară

cunoașterea fișierelor care vor fi interogate pentru a fi încărcate în modul cel mai optim în

memoria principală. O abordare extrem de interesantă pentru determinarea fișierelor ce vor fi

interogate este voiD (Vocabulary of Interlinked Datasets – Vocabulare de colecții de date

interconectate). Acest lucru se bazează pe o schemă RDF pentru a exprima metadate despre

colecțiile de date RDF. voiD trebuie privit ca o conexiune între cei care au publicat datele și

cei care vor consuma aceste date.

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

- SELECT – pentru extragerea de informații,după anumite șabloane și criterii

- CONSTRUCT – utilizat pentru construirea grafului de date, translatând triplele RDF

stocate fizic în fișiere într-un model interogabil.

- ASK – similar cu select, dar în loc de a extrage informații, verifică dacă respectivul

șablon este aplicabil pe baza de date.

- DESCRIBED – utilizat pentru a identifica toate triplele care au legătură cu unj anumit

obiect.

Un exemplu de interogare SPARQL folosind select, care listează toate cursurile de la

master care ținute de un profesor cu numele Popescu.

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX dc: <http://purl.org/dc/elements/1.1/>

select ?course

where

{

?a foaf:name "Popescu".

?t dc:creator ?a.

?t dc:title ?course.

?t dc:educationLevel "Master"

}

Page 28: Date structurate, aplicarea modelului linked data

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

Așa cum am menționat, SPARQL este pe lângă un limbaj de interogare și un protocol.

Conform specificațiilor Consorțiului Web, rezultatele interogărilor pot fi serializate în

diverse formate (uzual JSON și XML) pentru a oferi acces deschis și standardizat la seturile

de date. De asemenea pentru acest protocol, standarul actual specifică utilizarea serviciilor

web folosind limbajul de descriere WSDL 2.0.

Endpoint-ul reprezintă interfața prin care se manipulează structura de date

disponibilă. Acest schimb poate fi făcut fie de un utilizator uman, fie de către alte aplicații.

Rezultatele sunt de obicei oferite în mai multe formate, care să poată fi ulterior procesate atât

de mașină, cât și de utilizatorul uman.

Tendința actuală este ca toate marile companii, instituții sau organizații care

manipulează date să ofere o modalitate prin care datele publice existente să fie disponibile

via interogări SPARQL. La fel cum serviciile web reprezinta o standardizare a aplicațiilor,

acestea putând fi accesate independent de mașină, sistem de operare și limbaj de programare

folosit, accesarea datelor via endpoint-uri reprezintă același concept la nivelul bazelor de

date.

Pentru a satisface și extinde acest deziderat, au fost unele abordări susținute de marii

dezvoltatori de baze de date relaționale care convertesc acest model către un model sub

formă de triple, accesibil via interogări SPARQL. Acest proiect este încă în faza de început,

astfel încât nu se poate vorbi de o soluție utilizabilă la scară largă.

2.4 Conceptul linked data

Termenul linked data (date interconectate) a fost introdus de către Tim Berners-Lee

într-o lucrare a sa despre arhitectura spațiului web. Termenul descrie o modalitate de

publicare și interconectare a datelor în formă structurată, plecând de la prezumția că datele

devin mai valoroase și mai credibile pe măsură ce devin tot mai conectate cu alte date.

Practic, acest model dorește o standardizare a datelor din surse diverse, având ca reguli

Page 29: Date structurate, aplicarea modelului linked data

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

principale utilizarea modelului RDF pentru a publica date structurate pe web și utlizarea de

referinte RDF(RDF links) pentru a lega date din surse diverse.

Aplicarea acestor principii ar conduce la crearea unui web de date comune, un spațiu

unde oricine poate să publice și să consume date. Aceasta este definiția web-ului semantic,

cunoscut și sub numele de web de date (web of data).

În momentul de față există deja o cantitate mare de date structurate care poate fi

accesată prin API - uri dedicate, oferite de către fiecare furnizor în parte: API pentru eBay,

pentru Amazon, pentru Yahoo!, etc. Spre deosebire de ceea ce există acuma, conceptul

despre care vorbim are avantajul de a oferi un mecanism standardizat, unic, care nu depinde

de vreo interfață sau de vreun format proprietar. În felul acesta datele ar fi mult mai ușor de

indexat de către motoarele de căutare, ar putea fi accesate prin intermediul unor navigatoare

specializate pentru web-ul semantic care să folosească legaturile dintre sursele de date în

locul legaturilor text din web-ul actual.

Pentru a publica date pe web, primul lucru care trebuie făcut este să identificăm

aspectele care ne interesează. Acestea sunt lucruri a căror relații sau caracteristici dorim să le

descriem folosind date. În arhitectura web, aspectele care ne interesează poartă numele de

resurse. Resursele sunt identificare folosind URI-uri(Uniform Resource Identifiers –

Idenitificatori uniformi ai resurselor). În contextul specificațiilor linked data, se limitează

doar folosirea identificatorilor HTTP URI, pentru a se evita conflictele cu alte scheme URI

cum ar fi URN sau DOI. Folosirea acestor identificatori este recomandată din cel puțin două

motive: oferă un modalitate extrem de simplă de a crea nume unice la nivel global fără acces

centralizat și aceste URI nu actionează doar ca un nume, ci reprezintă o modalitate de a

accesa o resursă din spațiul Web.

Resursele din spațiu Web pot avea o reprezentare. O reprezentare este o secvență de

octeți într-un anumit format, ca de exemplu PDF, XML sau JPEG. O sigură resursă

informațională poate avea diferite reprezentări, în formate diferite, de calitate diferită, în

limbi diferite, etc.

Page 30: Date structurate, aplicarea modelului linked data

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

Un alt concept important în contextul linked data este dereferențierea URI-urilor.

Acesta este un proces prin care se caută în întreg spațiul web informații despre resursa

referită. Când un identificator de resurse a descoperit o resursă informațională care este

referită, server-ul proprietar al acelui URI generază o nouă reprezentare a stării acelei

resurse, care este trimisă înapoi la client prin protocolul HTTP, cu răspunsul 200 OK.

Resursele non-informaționale nu pot fi referite direct. Arhitectura web pune la dispoziție un

mecanism prin care se poate realiza acest lucru. În locul reprezentării resursei respective,

serverul trimite ca răspuns un indentificator care descrie respectiva resursă non-

informațională, împreună cu codul 303 See Other. Practic, acest lucru este o redirectare. Într-

un alt pas, clientul referă noul identificator și primește reprezentarea respectivei resurse.

Navigatoarele obișnuite redau de obicei conținutul RDF în format text, primar sau

downloadează respectivul cod, fără a afișa ceva. Pentru utilizatorii care nu au cunoștiințe de

IT acest lucru nu este deloc folositor. Astfel, o reprezentare HTML adecvată în locul unei

reprezentări RDF este mult mai utilă. În cadrul protocolului HTTP acest lucru se numește

negocierea conținutului. Clienții HTTP trimit odată cu cererea și antetul HTTP pentru a

indica ce fel de reprezentare preferă. În funcție de acest lucru serverul generează o

reprezentare adecvată.

Într-un mediu deschis cum este spațiul Web se întâmplă foarte des ca mai multe

informații să refere aceeași resursă. În termeni tehnici acest lucru înseamnă ca diferite URI-

uri identifică același obiect din lumea reală. Acești identificatori poartă numele de alias-uri

URI, fiind un concept extrem de comun în web-ul semantic și având un rol important în

descrierea resurselor non-informaționale. De exemplu, reprezentarea OWL oferă în sintaxa

sa proprietatea owl:sameAs pentru a identifica o resursă prin mai multe URI-uri.

Explorarea eficientă a datelor structurate în format RDF necesită folosirea unor

aplicații create special pentru acest lucru. Denumite sugestiv navigatoare semantice, aceste

aplicații sunt optimizate pentru a traversa cât mai rapid documentele interconectate din punct

de vedere semantic. Prin intermediul legăturilor dintre elemente, se poate naviga între

Page 31: Date structurate, aplicarea modelului linked data

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

paginile grafului de date. Proiecte care merită menționate în acestă categorie sunt sig.ma,

SemDis, Tabulator,etc. Fiecare din acestea are specificul său: posibilitatea de a vizualiza

rezultatele în formate mai ușor de procesat de utilizatorul uman (JSON), căutarea automată

de noi seturi de date care să extindă graful actual, salvarea automată a preferințelor

utilizatorului,etc.

Studiu de caz: DBpedia

DBpedia este un proiect început în anul 2007 de către Universitatea Liberă din Berlin

și Universitatea din Leipzig, împreună cu OpenLink Software. Scopul lor a fost să extragă

datele structurate din Wikipedia și să le expună pe Web prin intermediul interogărilor

SPARQL. Întreaga comunitate care susține web-ul semantic a catalogat DBpedia ca unul din

cele mai puternice și mai importate proiecte din acest domeniu. Scopul inițial al proiectului a

fost îmbunătăţirea căutării pe Wikipedia.

Datele privind DBpedia sunt disponibile gratuit şi pot fi la rândul său, legat de alte

baze de date de pe Web. Christian Bizer profesor de la Universitatea Liberă din Berlin,

afirmă:

"Din moment ce DBpedia acoperă multe probleme, a început un număr mare de surse

de date să pună link-uri către DBpedia. Ca rezultat, DBpedia a dezvoltat un fel de punct focal

pentru colecții de date emergente."

În ianuarie 2011, colecția de date DBpedia consta în peste 672 milioane de triple

RDF, din care 286 milioane au fost extrase din ediţia engleză a Wikipedia şi 386 milioane au

fost extrase din ediţii alte limbi. Una dintre dificultățile importante în extragerea de

informaţiilor de pe Wikipedia este că aceleaşi concepte pot fi exprimate folosind proprietăţi

diferite în vocabulare, cum ar fi locul de naştere. Din aceasta cauza, întrebări legate de unde

oamenii s-au născut ar trebui să caute pentru ambele din aceste proprietăţi, în scopul de a

obţine mai multe rezultate complete.

Page 32: Date structurate, aplicarea modelului linked data

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

Pentru reducerea numărului de sinonime și pentru dezambiguizare a fost creat un

proiect separat – DBpedia Mapping Languare. În plus, procesul de îmbunătațire a seturilor de

date stocate de DBpedia a fost deschis contribuției publice. În momentul de față se poate

răspunde prin utilizarea DBpedia unor întrebări destul de complexe, cum ar fi pentru toţi

jucătorii profesionişti de fotbal tricoul cu numărul 11 de la ţările cu mai mult de zece

milioane de locuitori. Tot pe același principiu a fost dezvoltat un proiect pentru dispozitivele

mobile- DBpedia Mobile. Acesta a fost dezvoltat în special pentru turiști. În plus față de

DBpedia, el nu primeşte informaţii numai de la Wikipedia, dar din bazele de date multiple,

cum ar fi statisticile de la Eurostat sau fotografii pe Flickr. De asemenea, informaţii cum ar fi

muzicienii din Berlin pot fi găsite folosind baza de date muzicală MusicBrainz

Fig. 4. Arhitectura generală a proiectului DBpedia

Page 33: Date structurate, aplicarea modelului linked data

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

2.5 Mișcarea NoSQL

Ideea de NoSQL a luat fiinţă în contextul unei nevoi de scalare pe orizontală.

Wikipedia prezintă scalabilitatea pe orizontală ca o tendinţă a arhitecturilor de astăzi cu efect

direct asupra bazelor de date, ideea de scalare orizontală o implică pe cea de sistem distribuit.

Termenul NoSQL se traduce ca not only SQL(nu doar SQL). Așadar, acest concept este unul

complementar modelului relațional de baze de date.

Mişcarea NoSQL nu susţine ca SQL sau bazele de date relaţionale ar fi elemente

negative, nici că web-ul social ar avea de suferit de pe urma lor. Pentru 99.8% din site-urile

disponibile, bazele de date relaţionale sunt suficiente. Pentru câteva companii mari, ale căror

aplicaţii se apropie de statutul de aplicaţii gigant, alternativa la bazele de date relaţionale,

disponibilitatea în defavoarea consistenţei şi sisteme care nu deţin puncte slabe (single point

of failure) a fost îndelung căutată şi perfecţionată.

Probabil că web-ul social de dimensiuni mici-medii, aplicaţiile în care utilizatorul

poate lăsa feedback sau în care poate interacţiona cu un număr nu foarte amre de alţi useri

este potrivit SQL. Totuşi, web-ul semantic şi cel social de dimensiuni foarte mari au găsit în

mişcarea NoSQL o soluţie. Pot stoca şi expune cantităţi impresionante de date, le pot

interoga şi pot procesa rezultatele. Iar un astfel de beneficiu nu ar fi fost posibil din partea

bazelor de date relaţionale, fie ele cuprinse în sisteme distribuite şi consistente.

Influenţa mişcării NoSQL asupra web-ului semantic sau a web-ului social se observă

la o simplă enumerare a companiilor care s-au afiliat. Google foloseşte BigTable pentru mare

parte din aplicaţiile pe care le pune la dispoziţia utilizatorilor: Google Earth, Google Reader,

Google Maps, Google Code, YouTube. Amazon, unul dintre cei mai mari operatori de e-

commerce din lume foloseşte Dynamo, o colecţie de perechi cheie-valoare cu o rată foarte

mare de disponibilitate, iar pentru a atinge acest obiectiv renunţă la conceptul de consistenţă,

esenţial pentru sistemele de baze de date relaţionale.

Page 34: Date structurate, aplicarea modelului linked data

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

Cele mai multe sisteme NoSQL folosesc o arhitectură distribuită, cu datele deţinute

într-un mod redundant pe mai multe servere, folosind adesea tabele hash distribuite. În acest

fel, sistemul poate scala uşor prin adăugarea de servere, iar eşecul pe un server poate fi

tolerat. NoSQL este compatibil cu modelul relațional, dar nu vine cu nicio garanție în ceea ce

privește consistența.

Studiu de caz: Amazon Dynamo

Dynamo este o colecţie de perechi cheie-valoare, este distribuit, versionat, partiţionat

şi replicat. Nu este expus ca serviciu web dar este parte integrantă din Amazon Web

Services, precum S3.

Ca sistem de e-commerce, Amazon a dezvoltat de-a lungul timpului soluţii de

business intelligence pentru a-şi promova produsele. Asemeni căutării personalizate de la

Google, Amazon ia în considerare „profilul” utilizatorului pentru a face sugestii inteligente.

Pe lângă informaţiile despre produse şi utilizatori, Amazon corelează utilizatorul de

informaţiile ce ar putea prezenta interes pentru acesta. Soluţia SQL are ca avantaje

consistenţa dar aduce ca principal dezavantaj disponibilitatea.

Teorema lui Brewer se aplică în cazul Amazon astfel: s-a optat pentru disponibilitate

(availability din „CAP”) în defavoarea consistenţei (C din ACID). Practic, într-o rețea fizică

există un număr mic de componente care se pot defecta la un moment dat, de aceea e necesar

ca softul să trateze erorile ca pe niște cazuri normale, fără a fi afectate disponibilitatea sau

performanța.

Procesarea unui număr mare de triple necesită un efor computaţional semnificativ, iar

în cazul Amazon aceasta s-ar traduce în pierderi financiare. Reprezentarea informaţiilor în

format RDF şi asocierea produselor cu eventuale concepte definite extern nu pare a fi una din

priorităţile companiei la momentul acesta. Totuşi, o colecţie stabilă şi flexibilă cum este

Dynamo ar putea propulsa Amazon în universul web-ului semantic.

Page 35: Date structurate, aplicarea modelului linked data

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

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

FII-SPARQL Endpoint este o aplicaţie dezvoltată în Java, care a fost proiectată atât

pentru extragerea de date structurate, cât şi pentru a oferi o modalitate de interogarea şi

utilizare a acestor date. Pentru persistarea datelor se foloseşte modelul de date RDF, iar

pentru interogarea datelor se folosesc framework-urile Jena şi Joseki. Rolul acestora este de a

crea un graf de date, din diferite surse: fişiere, baze de date, URL-uri şi combinaţii ale

acestora. Acest graf de date reprezintă modelul abstract de reprezentare a informaţiilor.

Joseki este parte a proiectului Jena, rolul său fiind acela de a oferi o interfaţă HTTP pentru

datele RDF, având suport pentru interogări SPARQL şi pentru integrarea cu aplicaţiile J2EE.

În afară de aceste framework-uri, s-a mai folosit framework-ul Spring MVC,

biblioteca de funcţii jQuery pentru programarea la nivel de client, specificaţiile AJAX pentru

crearea de aplicaţii web interactive.

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

Din punct de vedere arhitectural, aplicaţia este compusă din două module: primul

dintre acestea – FII23 (FII to triple) – are rolul de a parsa sit-ul Facultăţii de Informatică

Page 36: Date structurate, aplicarea modelului linked data

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

pentru extragerea de informaţii structurate şi persistarea lor în format RDF, folosind

vocabulare standard. Celălalt modul – FII SPARQL Endpoint – este o aplicaţie web prin care

se pot exploata datele obţinute de FII23, gestionând în acelaşi timp activitatea acestui modul.

3.1 Modulul FII23

Aşa cum am precizat deja, rolul acestui model este de a explora sit-ul Facultăţii de

Informatică pentru extragerea de date. Trebuie precizat că scopul acestei aplicaţii nu este

acela de a explora întreg sit-ul facultăţii pentru a crea o copie, o alternativă dedicată web-ului

semantic, ci extragerea de date pentru a putea un model consistent, în conformitate cu

specificaţiile linked data.

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

Fig. 6. Arhitectura modului Fii23. În figura de mai sus, cifrele

reprezintă componente specializate pentru parsarea unei resurse, după

cum urmează: 1. – dedicat personalului academic, 2. – dedicate

personalului asociat, 3. – cursurilor, 4. – dedicate evenimentelor

din orar şi 5. - studenţilor

Page 37: Date structurate, aplicarea modelului linked data

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

Extragerea de informaţii din aceste pagini se face în două maniere: prin parsarea

manuală a conţinutului paginii HTML şi folosind un serviciu web – any23 (Anything to

triple) – care extrage conţinut structurat din documente web şi formatează datele de ieşire în

diferite formate: XML, RDF, N3, Turle, RDFa. Any23 este un proiect susţinut de Consorţiul

Web, care poate fi accesat atât via servicii web, librărie pentru limbajul Java, cât şi accesat

printr-o aplicaţie la nivel de consolă care să convertească datele între limbajele suportate.

Din punct de vedere al implementării, pagina fiecărui profesor este procesată într-un

fir de execuţie dedicat, care comunică printr-o coadă blocantă, care permite la un moment dat

doar controlul doar unei singure resurse, realizându-se astfel o prelucrare paralelă.

Vocabularul FOAF (Friend of a friend – Prietenul unui prieten) a fost utilizat pentru

descrierea datelor ce au fost extrase despre un profesor.

Pe lângă datele extrase despre profesori, în acest pas al aplicaţiei se realizează şi

input-ul pentru urmatoarea pagina care va fi parsată: pagina ce conţine descrierea cursurilor.

Practic de pagina fiecărui profesor se reţine lista de cursuri pe care acesta le susţine. Ulterior,

fiecare pagină asociată unui curs este parsată manual. La fel, pagina fiecărui curs este

prelucrată în paralel, folosindu-se aceeşi structură de date pentru comunicare şi pentru

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

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

Page 38: Date structurate, aplicarea modelului linked data

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

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

Dublin Core Metadata.

Un concept relativ nou pentru limbajul Java folosit în această aplicaţie este folosirea

de latch-uri pentru sincronizarea firelor de execuţie. Acestea funcţionează exact ca trigger-

ele de la bazele de date, având setată la început o valoare, iar firele de execuţie care îl

partajează pot să aştepte în stare blocantă până când valoarea sa devine 0 sau pot să

decrementeze valoarea cu care a fost setat. Odată ce s-a atins valoarea 0, aceasta nu mai

poate fi modificată nicicum. De asemenea, la atingerea valorii 0, toate firele care partajează

latch-ul şi care sunt în stare blocantă, vor trece în starea running. În aplicaţia noastră, latch-ul

este partajat de modulele care extrag datele de pe paginile de profesori, profesori asociaţi şi

cursuri. Latch-ul are iniţial valoarea 2, iar valoarea sa este decrementată de cele două module

dedicate paginilor profesorilor, notificând modulul care gestionează pagina de cursuri că

poate să înceapă.

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

un eveniment din orar

Graful de date este completat cu resurse şi din alte două locaţii. Prima din acestea este

sit-ul dedicat orarului. De aici se extrag informaţii despre fiecare curs, laborator sau seminar,

urmărindu-se atât detaliile organizatorice ( zi, ora de start, ora de sfârşit, tip), cât şi căror

studenţi îi este dedicat acest eveniment. Scopul acestuia din urmă va fi prezentat puţin mai

Page 39: Date structurate, aplicarea modelului linked data

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

încolo. Îndeplinirea specificaţiilor linked data a presupus o mapare a paginii fiecărui profesor

de pe pagina de orar cu pagina fiecarui profesor de pagina facultăţii şi o mapare a numelui

unei discipline din română – cum este pe pagina de orar în engleză – aşa cum a fost extrasă

de către modulul care gestioneză cursurile. Pentru stocarea datelor referitoare la orar s-a

folosit vocabularul Event, precum şi Dublin Core Metadata.

Ultimul set de date care completează graful de resurse al aplicaţiei noastre este despre

studenţii facultăţii, de la toate nivelurile de studii. Pe lângă numele studentului şi numele de

pe serverul facultăţii, despre fiecare student trebuie reţinut grupurile din care face el parte,

aşa cum apar ele în orar. De exemplu un student din anul 1, semianul A, grupa 2, va face

parte din grupul I1A2 – grupa sa, din grupul I1A – semianul său şi I1 – anul. Fiind vorba

despre persoane, şi în acest caz a fost folosit vocabularul FOAF pentru descrierea datelor.

3.2 Modulul FII Sparql Endpoint

Cel de-al doile modul al aplicaţiei este, aşa cum am menţionat deja, o aplicaţie web

care permite explorarea grafului de date. În plus, această componentă gestionează şi

activitatea primului modul, lansând la intervale de timp configurabile – implicit este 7 zile –

cereri de recreare a datelor. În intervalul de timp cât FII23 extrage datele – aproximativ 2

minute – nu se pot executa interogări.

FII Sparql Endpoint se bazează pe framework-ul Spring MVC. Acesta este unul din

cele mai populare framework-uri pentru dezvoltarea de aplicaţii web conforme cu

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

student

Page 40: Date structurate, aplicarea modelului linked data

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

specificaţiile J2EE. succesul său se datorează faptului că este un proiect open-source, care

permite dezvoltarea de aplicaţii în stil agile, axat pe şablonul de proiectare MVC – Model-

View-Controller, în care componentele unei aplicaţii web – interfaţa grafică, datele şi partea

de logică – sunt izolate unele de altele, rezultând în acest fel o cantitate de cod mai mică, mai

uşor de întreţinut de către persoane specializate într-un anumit domeniu. În plus, Spring

MVC este extrem de uşor de integrat cu alte proiecte specifice J2EE: Struts, Apache Tiles,

JSTL, Velocity,etc.

Practic, în Spring MVC putem specifica rolul fiecărei componente în cadrul

modelului MVC. Componentele din partea de control vor fi adnotate cu @Controller şi vor

gestiona o cerere de la o anumită adresă/pagină web. Pentru partea de client, Spring MVC

pune la dispoziţie o bibliotecă de taguri care traslatează automat tipurile de date din form-

urile de input la tipurile de date standard din Java, oferind suport şi pentru colecţii.

Cererile către serverul web pentru executarea de interogări SPARQL sunt trimite în

manieră AJAX – adică asincronă – nefiind necesară reîncărcarea paginii pentru afişarea

rezultatelor. Practic, orice cerere de explorare a grafului de date va fi gestionată de o

componentă specializată, marcată în mod corespunzător – în cazul nostru clasa

AjaxController. Rolul său este este de a lua valorile de întrare, de a cere unei componente

specializate să execute o anumită interogare şi de a întoarce rezultatul acelei interogări: o

listă de înregistrări într-un anumit format sau un mesaj de eroare. Prezentăm mai jos codul

care gestionează o astfel de cerere:

@RequestMapping(value = "/ajax/runQuery.htm", method=RequestMethod.POST)

public @ResponseBody String runQuery(int format, String query){

return queryEngine.performQuery( query , format );

}

După cum se poate vedea, această metodă procesează orice cerere de tip POST către pagina

/ajax/runQuery.htm, având ca date de intare două valori din form: interogarea SPARQL şi

formatul rezultatului: tabelar sau XML. Un avantaj major al acestui tip de abordare a

Page 41: Date structurate, aplicarea modelului linked data

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

aplicaţiilor web este faptul că scade cantitatea de cod Java nativ în interfaţa grafică,

nemaifiind necesară instanţierea de clase, preluarea valorilor unor parametrii de pe context,

blocuri logice,etc., ci doar un simplu apel către o componentă specializată.

Apelul către controller este făcut folosind biblioteca de funcţii jQuery. Acesta este

una din cele mai folosite biblioteci JavaScript folosite în momentul de faţă. jQuery este

suportat de toate navigatoarele web, oferind suport pentru apeluri AJAX, lucrul cu foi de

stiluri CSS, traversarea şi modificarea arborelui DOM asociat unei pagini HTML.

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

$.ajax({

url: "/FII-SPARQLEndpoint/ajax/runQuery.htm",

type:"POST",

data: ({format :$("input[name='format']:checked").val(),

query : $("#input-textarea").val()}),

success: function(data){

$("#resultsDiv").html("<h4>The output is:</h4><pre>"+data+"</pre>");

}

error: function(data) {

$("#resultsDiv").html("Error on retrieving data.");

}

});

După cum se poate vedea, URL-ul şi tipul acţiunii este identic cu cel din controller. De

asemenea, celor doi parametrii ai metodei din controller le sunt asignate valori în câmpul

data, şi în plus valorea variabilei "format" este convertită automat la o valoare întreagă de

către containerul Spring MVC.

Explorarea resurselor folosind servicii web

Facilităţile prezentate mai sus de interogare a grafului de date pot fi exploatate şi prin

intermediul serviciilor web, folosind modelul arhitectural REST. Conceptual, modelul REST

este extrem de simplu: este orientat pe resurse şi pe reprezentări. Motivatia folosirii acestui

model este capturarea caracteristicilor de succes ale Web-ului şi utilizarea lor pentru a

continua evoluţia acestuia. Chiar World Wide Web, bazat pe protocolul HTTP, poate fi vazut

Page 42: Date structurate, aplicarea modelului linked data

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

ca un sistem arhitectural REST. Aplicatiile RESTful utilizează cereri HTTP pentru toate cele

patru operatii CRUD ( create, read, update, delete ). REST este o alternativă mult mai simplă

decat alte modele(SOAP, RPC), dar cu toate acestea, oferă aceleaşi funcţionalităţi ca şi

mecanismele mai complexe.

Cererea este constituită dintr-un simplu URL, care este trimis server-ului utilizând

metoda GET, iar raspunsul HTTP va fi un set de date, într-un anume format, dar

neîncapsulate. Cererile REST utilizează foarte rar formatul XML. Deseori, răspunsurile

server-ului, în cazul utilizării REST, sunt în format XML. Totuşi, se pot utiliza şi alte

formate precum : CSV ( comma-separated values), JSON ( JavaScript Object Notation ).

Fiecare format are propriile avantaje şi dezavantaje: XML este uşor de extins şi este type-

safe, CSV este mai compact, iar JSON este foarte usor parsabil de catre clienţii JavaScript şi

uşor de interpretat şi de către alte limbaje. Aşadar, spre deosebire de Serviciile SOAP, REST

nu este “legat” de XML. Totuşi, nu se accepta ca format al raspunsului REST, HTML sau

orice alt format human-readable, care nu este usor procesabil de către clienţi.

În cazul nostru, pentru a expune funcţionalitatea aplicaţiei ca servicii web, am folosit

un servlet, care prin intermediul metodei doGet() preia valorile pentru parametrii săi,

respectiv: query pentru inteorgare şi format pentru formatul rezutatului(XML sau JSON).

Astfel, o invocare a serviciilor web arată după cum urmeză:

http://localhost:8084/FII-SPARQLEndpoint/WebService?query=[query]&format=[XML/JSON]

Page 43: Date structurate, aplicarea modelului linked data

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

4. Studii de caz

i. Un utilizator doreşte să vadă lista de cursuri a unui profesor şi, în plus, doreşte să specifice

nivelul acestor cursuri: licenţă sau master. De exemplu, interogarea SPARQL de mai jos

întoarce lista de cursuri şi numele profesorului cu nick-ul „busaco” de la nivel de master.

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX dc: <http://purl.org/dc/elements/1.1/>

select distinct ?course ?teacher

where

{

?a foaf:nick "busaco"@en.

?a foaf:name ?teacher.

?t dc:creator ?a.

?t dc:title ?course.

?t dc:educationLevel "Master"

}

ii. Un utilizator doreşte să verifice dacă într-adevăr un anumit curs este predat de un profesor

cu numele menţionat. Pentru aceasta, sintaxa SPARQL oferă posibilitatea de a executa o

interogare care returnează un boolean ce indică dacă o interogare se potriveşte pe datele din

model sau nu. Sintaxa de interogare care se bazează pe cuvântul cheie ASK, ca în exemplul

următor:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

Page 44: Date structurate, aplicarea modelului linked data

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

PREFIX dc: <http://purl.org/dc/elements/1.1/>

ask

{

?n foaf:name "Florin Iacob"@en.

?x dc:creator ?n.

?x dc:title ?t.

FILTER(?t = "Mathematics").

}

iii. Executăm înterogările de la studiul de caz 1 ca apeluri de servicii web şi afişăm rezultatul

în format JSON.

{

"head": {

"vars": [ "course" , "teacherwhere" ]

} ,

"results": {

"bindings": [

{

"course": { "type": "literal" , "value": "Web Application

Development" }

} ,

{

"course": { "type": "literal" , "value": "Web Applications

Development" }

} ,

{

"course": { "type": "literal" , "value": "Intelligent Human-Computer

Interaction" }

}

]

}

}

Page 45: Date structurate, aplicarea modelului linked data

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

5. Concluzii şi direcţii de dezvoltare

Spaţiul Web-ul este perceput ca o reţea globală de informaţie care conectează

documente şi date. Cu toate acestea, deşi a devenit operaţional încă din anul 1993, îi lipsesc

anumite funcţionalităţi importante. Una din acestea este lipsa unui model unitar, standardizat

care să descrie modul de interconectare a datelor de pe Web. Acest neajuns se traduce prin

faptul că în continuare se folosesc mecanisme de bază pentru crearea de legături, dar aceste

mecanisme nu specifică semantica sau contextul legăturilor şi datelor.

Pentru a creşte relevanţa şi acurateţea informaţiilor este necesară o modalitate

universală prin care să se adauge semantică conţinutului. Este necesară o descriere a

resurselor şi un context, care să arate în ce fel resursele sunt în relaţie cu alte resurse. Acest

lucru facilitează schimbul şi combinarea datelor găsite în cadrul Web-ului, alcătuind spaţiul

Datelor Interconectate (sau Linked Data).

Modelul arhitectural al Datelor Interconectate va duce la crearea unei baze de date

globale şi interoperabile. Suportul pe care se bazează toată acestă revoluţie a spaţiului Web

este RDF. Principala avantaj al folosirii RDF-urilor este faptul că permite stocarea virtuală a

oricărei date structurate sau nestructurate. Un alt mecanism vital a fost utilizarea URI-urilor

ca identificatori globali de conectare.

Momentan comunitatea Datelor Interconectate a pus accentul mai mult pe conectarea

şi înglobarea a cât mai mult conţinut. Direcţii viitoare pentru Datele Interconectate includ

dezvoltarea de interfeţe utilizator care să pună în valoare noile moduri de navigare a datelor,

noi navigatoare pentru Web-ul Semantic, care să poată exploata graful de date. Vor trebui

deasemenea îmbunătăţite motoarele de căutare în cadrul acestor date. Adăugarea de conţinut

se poate cel mai simplu prin valorificarea conţinutul deja existent în Web-ul tradiţional şi

transformarea sa în formatul cerut, care să satisfacă principiile modelului.

Acest ultim aspect al transformării conţinutului HTML static în triple de date

interconectate, precum şi beneficiile aduse de acest nou mod de stocare au fost demonstrate

Page 46: Date structurate, aplicarea modelului linked data

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

în cadrul aplicaţiei FII-SPARQL Endpoint, care mai întâi creează o bază de date, formată din

triple RDF. Ulterior, aceasta devine un graf de date interconectate, prin folosirea unui

framework care poate face acest lucru – Jena.

Unul din avantajele acestui nou model de date este faptul că graf obţinut poate fi

explorat prin interogări SPARQL. Aceste interogări se realizează folosind protocolul HTTP

şi framework-ul Joseki. Practic, în acest fel graful de date devine disponibil în întreg spaţiul

WWW, putând fi accesat atât de către utilizatori umani prin interfaţa oferită, cât şi de alte

aplicaţii prin invocarea interogărilor via servicii Web.

Provocările din momentul de faţă din domeniile apropiate Web-ului Semantic vizează

în îmbunătăţirea framework-urilor deja existente, crearea de noi colecţii de date care să

descrie cât mai relevant anumite „lumi”. De asemenea, cu deosebit interes este aşteptată noua

versiune a limbajului SPARQL. Aceasta va adăuga un număr suplimentar de funcţii care în

momentul de faţă se regăsesc în limbajele de interogare a bazelor de date tradiţionale.

Aplicaţia FII-SPARQL Endpoint este un prototip, un model vis-a-vis de modul cum

ar trebui extrase datele din paginile Web tradiţionale în date în format deschis, conform

specificaţiilor W3C în domeniul Web-ului Semantic. Utilitatea sa ar creşte considerabil prin

extinderea sa la nivelul întregii instituţii (sit-ul www.uaic.ro), şi eventual extragarea de date

din surse generatoare de conţinut(bloguri, forumul studenţilor, asociaţii studenţeşti). În acest

fel am putea vorbi de un sistem complet, unitar, dar în acelaşi timp deschis, care să fie în

conformitate cu standardele actuale. De asemenea, framework-urile pe care se bazează

aplicaţia pot constitui subiectele viitoarelor versiuni ale aplicaţiei. Nu în ultimul rând,

extinderea aplicaţiei presupune utilizarea unor noi metode de adnotare a datelor, cum ar fi

ontologiile. Cu siguranţă spaţiul Web ca domeniul, şi Web-ul Semantic ca evolutie firească a

sa vor reprezenta şi în perioada următoare subiecte de interes pentru cercetare şi inovare.

Page 47: Date structurate, aplicarea modelului linked data

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

6. Bibliografie

Ayers, D., Bizer, C., Heath, T., Raimond, Y., "Interlinking Open Data on the Web", 2008,

http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkingOpenData.pdf

Berners-Lee, T., „Giant Global Graph”, 2007, http://dig.csail.mit.edu/breadcrumbs/node/215

Berners-Lee, T., „Linked Data”, 2007, http://www.w3.org/DesignIssues/LinkedData.html

Berners-Lee, T., „Tim Berners-Lee Card”, http://www.w3.org/People/Berners-Lee/card/

Bizer, C., Cyganiak, R., Hausenblas, M., Heath, T., "How to Publish Linked Data on the

Web", 2008, http://events.linkeddata.org/iswc2008tutorial/proposal.pdf

Brelin John „The Social Semantic Web”, Springer, 2009

Daconta C., „The Semantic Web: A Guide to the Future of XML, Web Services, and

Knowledge Management”, Wiley & Sons , 2003

Groppe S. „Data Management and Query Processing in Semantic Web Databases”, 2011

Heath T., „LinkedData. Evolving theWeb into aGlobalData Space”, 2011, Springer

Liang Y., „Introduction to the Semantic Web and Semantic Web Services ”, 2007

Powers S., „Practical RDF”,O'Really, 2003

Vipul K., „The Semantic Web Semantics for Data and Services on the Web”, 2008, Springer

***, „Architecture of the World Wide Web”, Volume One, 2004,

http://www.w3.org/TR/webarch/

***, „Best Practice Recipes for Publishing RDF Vocabularies”, 2008,

http://www.w3.org/TR/swbp-

Page 48: Date structurate, aplicarea modelului linked data

ANEXE

Page 49: Date structurate, aplicarea modelului linked data

Declaraţie privind originalitate şi respectarea drepturilor de autor

Prin prezenta declar că Lucrarea de disertaţie cu titlul “Extragerea de date

structurate, aplicarea modelului Linked Data şi a interogărilor SPARQL asupra sit-

ului www.info.uaic.ro” este scrisă de mine şi nu a mai fost prezentată niciodată la o altă

facultate sau instituţie de învăţământ superior din ţară sau străinătate. De asemenea, declar că

toate sursele utilizate, inclusiv cele preluate de pe Internet, sunt indicate în lucrare, cu

respectarea regulilor de evitare a plagiatului:

- toate fragmentele de text reproduse exact, chiar şi în traducere proprie din altă limbă,

sunt scrise între ghilimele şi deţin referinţa precisă a sursei;

reformularea în cuvinte proprii a textelor scrise de către alţi autori deţine referinţa

precisă;

- codul sursă, imagini etc. preluate din proiecte open-source sau alte surse sunt utilizate

cu repsectarea drepturilor de autor şi deţin referinţe precise;

- rezumarea ideilor altor autori precizează referinţa precisă la textul original.

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

____________________

Page 50: Date structurate, aplicarea modelului linked data

Declaraţie de consimţământ

Prin prezenta declar că sunt de acord ca Lucrarea de disertaţie cu titlul “Extragerea de

date structurate, aplicarea modelului Linked Data şi a interogărilor SPARQL asupra

sit-ului www.info.uaic.ro”, codul sursă al programelor şi celelalte continuturi (grafice,

multimedia, date de test etc.) care însoţesc această lucrare să fie utilizate în cadrul Facultăţii de

Informatică. De asemenea, sunt de acord ca Facultatea de Informatică de la Universitatea

Alexandru Ioan Cuza Iaşi să utilizeze, modifice, reproducă şi să distribuie în scopuri

necomerciale programele-calculator, format executabil şi sursă, realizate de mine în cadrul

prezentei lucrări de licenţă.

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

____________________

Page 51: Date structurate, aplicarea modelului linked data

Acord privind proprietatea dreptului de autor

Facultatea de Informatică este de acord ca drepturile de autor asupra programele-

calculator, format executabil şi sursă, să aparţină autorului prezentei lucrări, Ionuţ Nicolaie Ignătescu.

În calitate de autor al prezentei aplicaţii declar că toate resursele şi tehnologiile folosite se înscriu în categoria open-source, iar folosirea şi redistribuirea lor nu necesită decât respectarea principiilor open-source.

Iaşi, 2 iulie 2011

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

____________________ ________________________