Your SlideShare is downloading. ×
Procesarea RDF pentru platforma Java
Procesarea RDF pentru platforma Java
Procesarea RDF pentru platforma Java
Procesarea RDF pentru platforma Java
Procesarea RDF pentru platforma Java
Procesarea RDF pentru platforma Java
Procesarea RDF pentru platforma Java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Procesarea RDF pentru platforma Java

1,353

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
1,353
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Studiu Comparativ Vizand Procesarea RDF pentru Platforma Java Gheorghita Raluca Programatorii Java ce doresc sa dezvolte aplicatii Web semantice au acum un set mare de instrumente si librarii din care sa aleaga. In acest raport, vom discuta despre trei din cele mai importante instrumente, vizand posibiltatile lor de a realiza procesare RDF. Vom lua in considerare diferite aspecte, precum maniera de stocare a triplelor, suportul pentru realizarea de interogari SPARQL, suportul oferit programatorilor (de exemplu, documentatie, integrare in mediul de dezvoltare, curba de invatare,...), performanta (e.g., viteza de procesare, eficienta interogarilor etc.), interoperabilitatea, maturitatea implementarii, maniera de licentiere. Din multitudinea de framework-uri, vom analiza trei mai populare si reprezentative: Jena, Sesame si Mulgara. Jena Jena este un framework Java util in realizarea de aplicatii Web semantic. Furnizeaza un mediu de programare pentru RDF (Resource Description Framework), RDFS (RDF Schema) si OWL (Web Ontology Language), SPARQL (SPARQL Protocol and RDF Query Language) si include un motor de inferente bazat pe reguli. Jena include: 1. Un API pentru manipularea de grafuri RDF 2. Suport pentru multiple motoare de inferenta – OWL-DL, OWL-Lite si RDF Schema 3. Suport pentru multiple sisteme de persistenta back-end, incluzand a. suport nativ pentru grafuri stocate in memorie b. sistem de persistenta in tabele RDBMS, implementat pentru Oracle, SQL Server, MySQL, Postgres etc. 4. Suport pentru limbajul de interogare SPARQL
  • 2. 5. Server software (Joseki) ce suporta limbajul de interogare SPARQL Sesame Sesame este un framework open source pentru stocarea, inferenta si interogarea datelor RDF. Sesame ofera: 1. Un API pentru manipularea de grafuri RDF 2. Server software ce suporta limbajul de interogare SeRQL 3. Support pentru un sistem de stocare properietar, bazat pe fisiere 4. Inferente realizate cu RDF Schema Mulgara/Kowari Mulgara Semantic Store reprezinta un sistem de stocare open source, foarte scalabil, ce ofera siguranta tranzactiilor, construit cu scopul de a stoca si extrage date RDF, scris in Java. Reprezinta o ramura activa a framework-ului Kowari. Mulgara ofera: 1. Un server ce suporta limbajul de interogar/updatare Itql 2. Un sistem de persistenta proprietar back-end Stocarea Triplelor RDF Exista trei tipuri de metode de stocare a triplelor RDF: in memorie, nativa si in baze de date externe. Stocarea in memorie presupune salvarea grafurilor RDF in memoria principala. Aceasta metoda nu este utila in cazul stocarii volumelor foarte mari de date. Totusi, acest tip poate fi folosit pentru realizarea diferitelor operatii precum salvarea temporara a datelor de pe site-uri si realizarea de inferente. A doua categorie este cea nativa, bazata pe stocarea persistenta a triplelor folosind implementari proprii ale bazelor de date. Cea din urma categorie presupune utilizarea unor baze de date externe, cum ar fi MySQL, PostgreSQL, Oracle etc. in vederea stocarii triplelor. Jena implementeaza API-uri pentru manipularea tehnologiilor precum RDF si OWL. Clasa fundamentala oferita utilizatorilor este clasa Model, un API utilizat in manipularea seturilor de
  • 3. triple RDF. Un Model poate fi creat din sistemul de fisiere sau dintr-un fisier remote. Utilizand JDBC, acesta poate fi legat de un sistem relational de gestiune a bazelor de date precum MySQL sau PostgreSQL. Pe langa stocarea in memorie, Jena propune doua subsisteme de stocare a datelor RDF si OWL: SDB si TDB. TDB este un motor nativ de persistenta, netranzactional, de perfomanta ridicata, ce utilizeaza un motor Java pur. SDB este un nivel de persistenta ce foloseste o baza de date SQL si suporta tranzactii ACID complete. Din cele doua, TDB este mai usor si mai rapid de setat. TDB, nivelul de persistenta pentru stocarea grafurilor, a fost folosit pentru incarcarea versiunii 13.4 a bazei de date UniProt (1.7 miliarde de triple) pe o singura masina cu un singur procesor pe 64 biti. SDB este o componenta a framework-ului Jena ce ofera persistenta scalabila si interogarea seturilor de date RDF folosind baze de date SQL conventionale in aplicatii de sine statatoare, J2EE si alte framework-uri de aplicatii. SDB este conceput in mod specific sa suporte SPARQL. Baze de date suportate (cu versiunile lor anterioare), includ:  Oracle 10gR@ incluzand Oracle Express  Microsoft SQL Server 2005 incluzand SQL Server Express  IBM DB2 inlcuzand DB2 Express  PostgreSQL v8  MySQL 5.0  HSQLDB 1.8  H2 1.0.73  Apache Derby 10.2 Datele stocate cu SDB pot fi accesate si manipulate cu scripturile puse la dispozitie si prin intermediul API-ului Jena. In afara de aceasta modalitate prin intermediul API-ului Jena, SDB poate fi legat de serverul web Joseki, server de interogari SPARQL. Acest lucru ofera posibilitatea interogarii datelor stocate cu SDB prin HTTP. Surse Web (http://esw.w3.org/topic/LargeTripleStore) indica faptul ca Jena SDB poate incarca pana la 650 de milioane de triple RDF. La fel ca si Jena, Sesame ofera suport pentru toate cele trei moduri de stocarea a triplelor. Exista, totusi, cateva mici diferente: pentru stocarea in sisteme relationale de baze de date, Sesame suporta MySQl si PostgreSQL, spre deosebire de Jena ce ofera suport pentru mult mai multe sisteme relationale de baze de date. In ceea ce priveste stocarea nativa, Sesame propune
  • 4. Sesame Native. Este mai putin scalabil decat TDB-ul oferit de Jena, acest fapt fiind demonstrat si de surse web ce confirma testarea acestuia cu pana la 70 de milioane de triple RDF, spre deosebire de Jena TDB care functioneaza cu 1.7 miliarde de triple (http://esw.w3.org/topic/LargeTripleStore). Spre deosebire de Jena si Sesame, Mulgara nu se bazeaza pe o stocare intr-o baza de date relationala datorita numarului mare de join-uri intre tabele intr-un sistem relational atunci cand se lucreaza cu metadate. In schimb, Mulgara este o noua baza de date optimizata pentru managementul metadetelor. Modelele Mulgara stocheaza metadatele sub forma unor declaratii de tipul subiect-predicat-obiect, asemanator cu standardul RDF. Metadatele pot fi importate si exportate din Mulgara in format RDF sau Notation 3. In vederea realizarii acestor operatii, Mulgara ofera un API de conectare. Surse web confirma faptul ca Mulgara este capabil sa stocheze pana la 500 de milioane de triple. Suportul pentru Realizarea de Interogari SPARQL SPARQL este un limbaj de interogare RDF, considerat o tehnologie cheie in web-ul semantic. Majoritatea sistemelor de stocare a triplelor RDF ofera suport pentru SPARQL, fie in forma nativa a acestuia, fie prin limbaje ce au la baza SPARQL. In Jena, suportul pentru realizarea interogarilor SPARQL este oferit prin intermediul motorului de interogari ARQ, o implementare proprie a limbajului SPARQL. Pe langa sintaxa standard SPARQL, ARQ permite si alte operatii suplimentare, aducand astfel extensii limbajului standard; ca si caracteristici noi sau modificate putem aminti Sparql/Update (un limbaj pentru update-uri bazat pe SPARQL), extensii ale algebrei SPARQL, functii de filtrare si cautare customizate, functii de agregare, grupare si asignare etc. Pe langa accesul direct la date, exista si posiblitatea de a utiliza un server de interogari SPARQL, Joseki, ce permite interogari ale datelor stocate cu SDB prin http. Sesame foloseste SeRQL (Sesame RDF Query Language), un nou limbaj RDF/RDFS dezvoltat de Aduna ca parte a Sesame. Combina cele mai bune caracteristici ale altor limbaje de interogare (RQL, RDQL etc) si adauga unele proprii, cum ar fi transformari ale grafurilor, suport pentru RDF si XML etc. In ultima versiune, SeRQL a fost modificat pentru a semana mai mult cu SPARQL, adoptand semantica si operatorii acestuia. De asemenea, si SPARQL a adoptat unele caracteristici ale SeRQL. Mulgara suporta doua moduri de acces la triple, folosind interogari TQL si mai recent SPARQL. Accesul poate fi facut prin intermediul API-urilor ca Jena sau Sesame sau folosind iTQL, SOAP etc.
  • 5. Suportul Oferit Programatorilor Majoritatea sistemelor de procesare RDF sunt open source si beneficiaza de suportul unor intregi comunitati. Mai toate ofera posibilitatea de a posta intrebari, de a raporta probleme si de a contribui activ la dezvoltare. Jena dispune de o documentatie bine pusa la punct, de stabilitate si vechime, si o popularitate datorata mai ales suportului pentru o gama larga de sisteme relationale de baze de date. De asemenea, Jena ofera suport OWL, ceea ce ii ofera un plus in optiunile celor ce sunt interesati de aceasta caracteristica. Cu toate acestea, Sesame capata din ce in ce mai multa popularitate, datorita unei arhitecturi moderne, modulare, integrare cu framework-ul Spring si posibilitatea de testare a interogarilor direct din browser (folosind Tomcat). De asemenea, Sesame dispune de o comunitate in crestere, documentatie complet actualizata si detaliata Mulagra a intampinat, la inceput, o usoara reticenta din partea comunitatii, datorita desprinderii din Kowari insa a castigat rapid teren, datorita scalabilitatii crescute si integrarii cu celelalte API-uri. In momentul de fata, documentatia acestuia este migrata catre una de tip wiki, care este relativ incompleta; in schimb este prezenta si vechea documentatie, mult mai completa si detaliata. Performanta si Interoperabilitate Desi Jena dispune de cea mai mare scalabilitate si respecta indeaproape protocolul si sintaxa SPARQL, acest fapt face ca acesta sa fie mai incet decat celelalte sisteme; este un compromis al vitezei in fata scalabilitatii iar in cazul SDB acest lucru se datoreaza in principal utilizarii unor baze de date externe, SDB fiind doar loaderul. Acest lucru nu ii permite optimizare pentru un anumit tip de baza de date, generalizarea contribuind la viteza redusa. Sesame, desi comparabil cu Jena, nu este la fel de scalabil dar este mai rapid (in special Sesame Native). Mulgara nu dispune de un API propriu, de aceea perfomantele sale sunt strans legate de performantele API- ului folosit. In ceea ce privestea scalabilitatea, Mulgara a intampinat probleme de incarcare a unor seturi de date foarte mari folosind API-uri, de aceea documentatia oficiala sugereaza incarcarea acestora folosind scripturile proprii. In prezent, Jena si Sesame sunt cele mai populare implementari pentru procesarea datelor RDF. Deoarece nu exista niste specificatii ale unui API pentru RDF acceptate de comunitatea java, programatorii folosesc ori API-ul Jena, ori API-ul Sesame pentru a afisa, interoga, sau a face inferente peste triplele RDF. Prin urmare, codul sursa rezultat al aplicatiei RDF este strans legat ori de API-ul Jena, ori de API-ul Sesame.
  • 6. Interoperabilitatea intre Jena si Sesame apare ca o problema atunci cand o aplicatie bazata pe API-ul Jena are nevoie sa acceseze un back-end Sesame, sau o aplicatie bazata pe API-ul Sesame necesita accesarea unui back-end Jena. Aceasta problema se rezolva partial cu Sesame-Jena Adapter, ce ofera acces la un model Jena prin API-ul Sesame SAIL (The Storage And Inference Layer). Modelul Jena Sesame (JSM) considera problema interoperabilitatii dintre Jena si Sesame intr-o alta maniera. JSM furnizeaza acces la un depozit Sesame prin intermediul API-ului Jena. JSM are urmatoarele caracteristici:  JSM se conformeaza cu Jena Model API;  JSM se conformeaza cu Jena Graph SPI;  Intern, JSM opereaza pe un deposit Sesame;  JSM suporta limbajul de interogare RDQL cu exceptia expresiilor regulate. Maturitatea Implementarii si Maniera de Licentiere Din toate framework-urile amintite, Jena se bucura de cea mai matura implementare; mai mult de atat, ofera suport back-end pentru o multitudine de baze de date, care, de asemenea, aduc un aport de maturitate intregului sistem (ex. Oracle, SQL Server, DB2). Cu toate ca Sesame nu beneficiaza de o aceeasi maturitate a implementarii, este o alternativa din ce in ce mai viabila, intrucat abaterea sa de la specificatiile respectate cat mai strict de Jena a permis optimizari si o arhitectura moderna si modularizata. Mulgara a urmat un traseu al maturizarii diferit fata de celelalte doua sisteme, prin desprindere acestuia de Kowari, a carui continuitate a fost intrerupta intre timp. Jena este distribuit sub o licenta de tip BSD, ce permite modificarea si distribuirea pachetelor si surselor; de asemenea Jena utilizeaza subsisteme cu licente de tip Common Public License, Apache2 si IBM X (http://jena.sourceforge.net/license.html, http://jena.sourceforge.net/Licenses/index.html). Sesame este de asemenea distribuit sub o licenta de tip BSD, incluzand si software dezvoltat sub licenta Apache si LGPL (http://www.openrdf.org/license.jsp ) Mulgara este distribuit sub licenta OSL, aleasa pentru compatibilitatea cu licenta MPL a Kowari. Noul cod este scris sub licenta Apache 2, care este compatibil cu OSL si mult mai popular in cadrul comunitatii. (http://mulgara.org/developers.html )
  • 7. Desi Jena este unul din cele mai stabile, scalabile, ofera suport pentru foarte multe sisteme de baze de date, si respecta cat mai strict protocolul si specificatiile SPARQL, tocmai acest fapt il face sa fie mai lent si mai rigid, fapt care a indreptat atentia dezvoltatorilor mai mult catre Sesame, cu o arhitectura moderna, modulara, o scalabilitate mai scazuta dar performante la capitolul viteza. Mulgara reprezinta si el un sistem de stocare cunoscut dar nu se bucura de aceeasi popularitate precum clasicele sisteme de baze de date. Referinte: http://www.openrdf.org/ http://www.mulgara.org/ http://jena.sourceforge.net/ http://esw.w3.org/topic/LargeTripleStores http://www.bioontology.org/wiki/images/6/6a/Triple_Stores.pdf http://openjena.org/wiki http://www.pnl.gov/main/publications/external/technical_reports/PNNL-17237.pdf http://en.wikipedia.org http://www.2paths.com/2008/12/30/mulgara-rdf-store/

×