SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
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
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
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
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.
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.
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 )
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/

Mais conteúdo relacionado

Semelhante a Procesarea RDF pentru platforma Java

Fii linked data
Fii linked dataFii linked data
Fii linked datateodora001
 
Fii linked data
Fii linked dataFii linked data
Fii linked datateodora001
 
J boss seam framework
J boss seam frameworkJ boss seam framework
J boss seam frameworkbeatrisrusu
 
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...Sabin Buraga
 
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)Sabin Buraga
 
Un site cu si despre muzica
Un site cu si despre muzicaUn site cu si despre muzica
Un site cu si despre muzicaGeorgia Papp
 
Un site cu si despre muzica2
Un site cu si despre muzica2Un site cu si despre muzica2
Un site cu si despre muzica2Georgia Papp
 
Un site cu si despre muzica
Un site cu si despre muzicaUn site cu si despre muzica
Un site cu si despre muzicaGeorgia Papp
 
Fundamentele Limbajului Java
Fundamentele Limbajului JavaFundamentele Limbajului Java
Fundamentele Limbajului Javacolaru
 
Nosql Movement Budai Steliana Gorea Alexandra Diana
Nosql Movement Budai Steliana Gorea Alexandra DianaNosql Movement Budai Steliana Gorea Alexandra Diana
Nosql Movement Budai Steliana Gorea Alexandra Dianasteliana
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...Ecaterina Moraru (Valica)
 

Semelhante a Procesarea RDF pentru platforma Java (20)

Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
diSparql
diSparqldiSparql
diSparql
 
J boss seam framework
J boss seam frameworkJ boss seam framework
J boss seam framework
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
Fii linked data
Fii linked dataFii linked data
Fii linked data
 
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
 
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
 
Un site cu si despre muzica
Un site cu si despre muzicaUn site cu si despre muzica
Un site cu si despre muzica
 
Un site cu si despre muzica2
Un site cu si despre muzica2Un site cu si despre muzica2
Un site cu si despre muzica2
 
Un site cu si despre muzica
Un site cu si despre muzicaUn site cu si despre muzica
Un site cu si despre muzica
 
Fundamentele Limbajului Java
Fundamentele Limbajului JavaFundamentele Limbajului Java
Fundamentele Limbajului Java
 
Irina Cureraru
Irina CureraruIrina Cureraru
Irina Cureraru
 
Stroia_Laurentiu
Stroia_LaurentiuStroia_Laurentiu
Stroia_Laurentiu
 
NoSql
NoSqlNoSql
NoSql
 
Nosql Movement Budai Steliana Gorea Alexandra Diana
Nosql Movement Budai Steliana Gorea Alexandra DianaNosql Movement Budai Steliana Gorea Alexandra Diana
Nosql Movement Budai Steliana Gorea Alexandra Diana
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
 
Mahout Balaoi Bogdan
Mahout Balaoi BogdanMahout Balaoi Bogdan
Mahout Balaoi Bogdan
 

Procesarea RDF pentru platforma Java

  • 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/