fii linked data

Click here to load reader

Post on 23-Dec-2014

474 views

Category:

Education

0 download

Embed Size (px)

DESCRIPTION

 

TRANSCRIPT

  • 1. FII Linked DataBarat Mihaela, Mihai TeodoraFacultatea de Informatica IasiAbstract. Aplicatie web care ofera un punct terminal SPARQL pentruinterogarea resurelor publice de interes din cadrul FII pe baza unui model decunostinte privitor la personal, studenti, discipline, locatii, evenimente.Cuvinte cheie: RDF, SPARQL, FII, Virtuoso, Jena, JSP.Tehnologii folositeAplicatia web a fost implementata folosind tehnologiile Java EE:JSP, Jena API, Jasper Reports. Ca server web s-a folosit ApacheTomcat 7.0, pentru stocarea datelor interogate serverul Virtuoso, iar caIDE Eclipse Helios.Descrierea succinta a tehnologiilor utilizateEclipse HeliosEclipse Helios este un IDE open-source ce permite crearea facilade aplicatii in diferite limbaje de programare: Java, C, C++, Perl, PHP,Python etc. Poate rula pe diferite sisteme de operare: Linux, Mac OS X,Solaris, Windows. Un avantaj al acestui IDE este faptul ca utilizatoriipot sa ii extinda capacitatile prin instalarea de plug-inuri scrise pentruEclipse, precum tool-urile de dezvoltare pentru alte limbaje deprogramare.

2. FII Linked DATAJava EEProiectul a fost dezvoltat folosind JDK 1.5, Apache Tomcat 7.0( deoarece are suport pentru dezvoltarea aplicatiilor web semantice) siJSP (Java Server Pages), care este o modalitate pentru generarea decontinut dinamic pe web, si totodata este strategia Java EE pentrugenerarea prezentarii (View). O pagina JSP este formata din: Tipar (componenta statica HTML, XML)Taguri JSPSecvente de cod (scripleturi)RDF & Jena APIRDF ( Resource Description Fremework) este un frameworkpentru descrierea resurselor web, cum ar fi titlul, autorul, continutul siinformatiile de copyright ale unei pagini web. Modelul RDF estesimilar cu alte concepte de modelare si se bazeaza pe ideea crearii deafirmatii despre resurse (resurse web in particular) , sub forma deexpresii subiect-predicat-obiect. Acestea sunt cunoscute sub numelede triple in terminologa RDF. Subiectul este reprezentat de o resursa,predicatul de trasatura a resursei si exprima o relatie intre subiect siobiect. Jena este un API Java pentru aplicatiile web semantice. PachetulJava care trebuie importat este com.hp.hpl.jena.rdf.model.API-ul a fost definit sub forma de interfete, astfel incat codul aplicatieisa poata lucra cu diferite implementari fara a se recurge la modificari.Pachetul contine interfete pentru reprezentarea modelelor, resurselor,proprietatilor, literalilor si a altor concepte cheie privitoare la RDF,precum si un ModelFactory pentru crearea modelelor. In acest modcodul aplicatiei ramane independent de implementare.Virtuoso OpenLink Serverul Virtuoso este un server hibrid de baze de date carecombina functionalitatea unui RDBMS ( sistem de management pentrubase de date relationale), ORDBMS (sistem de management pentrubaze de date obiectual-relationale), RDF, XML intr-un singur sistem. 3. FII Linked DATAEditia open-source al acestui server este cunoscuta ca OpenLinkVirtuoso.Virtuoso este alcatuit din doua componente: client si server.Elementele tipice utilizate pentru a comunica cu un server Virtuosolocal sau la distanta includ:Driverele Virtuoso pentru ODBC, JDBC, ADO.NET si OLE DBConductor, o interfata web pentru administrarea bazei de dateISQL ( SQL Interactiv)Documentatie si tutorialeExempleAcest server pune la dispozitia utilizatorilor o interfata graficaprietenoasa, usor de utilizat. Intefata permite administrarea siconfigurarea facila a serverului.Descrierea proiectului In Virtuoso, datele sunt stocate sub forma de triple ( care suntformatul pentru Linked Data). Linked data descrie o metoda de a afisadate structurate, astfel incat sa fie interconectate si sa devina mult maiutile. Se bazeaza pe tehnologiile web standard ca HTTP sau URI-uri,dar in loc sa se foloseasca la crearea paginilor web pentru utilizatori,aceasta extinde functionalitatea astfel incat sa fie automat citite decalculatoare. In proiect s-a utilizat principiul linked data, prin crearea unuidocument RDF ce stocheaza datele de interes referitoare la personalul, 4. FII Linked DATAstudentii, disciplinele, locatiile si evenimentele din cadrul Facultatii deInformatica, Iasi. Documentul RDF a fost validat folosind w3.org Validator. Instantele prezente in document apartin unor clase precum: Profesor Student Materie Eveniment Sala Concurs GrupaStudentMai jos sunt prezentate cateva instante ale claselor mentionate:Relatiile dintre claseAplicatia permite, printre altele, afisarea tuturor colaboratorilor,asistentilor, profesorilor, personalului asociat, studentilor. Pentru aexemplifica relatia dintre acestia a fost definita clasa Persoana, care areca subclase clasele: Colaborator, Asistent, Staff, Profesor, Student.Fragmentul de cod care prezinta cele mentionate mai sus esteurmatorul: 5. FII Linked DATAFiecare clasa are o serie de proprietati reprezentative, ce aurolul de a evidentia trsaturile clasei in cauza; de exemplu clasa Materieare urmatoarele proprietati: areProfSeminar, areProfCurs, iar o instantaa sa are urmatoarea forma: 6. FII Linked DATAAfisarea informatiilorPentru afisarea informatiilor a fost necesara interogareadocumentului RDF cu ajutorul limbajului SPARQL (este un limbajdescriptiv standardizat pentru realizarea de interogari pe bazapotrivirilor de sabloane referitoare la triple RDF; este inspirit dinRDQL si este oferit de Jena, RAP, Redland) .De exemplu, interogarea SPARQL necesara pentru aflareatuturor colaboratorilor in ordine alfabetica, precum si a trasaturiloracestora, din cadrul FII are urmatoarea forma:query = "prefix fii:prefix rdf: select distinct ?a ?b ?c where {?ardf:type fii:Colaborator. ?a fii:areEmail ?b. ?afii:areUrl ?c. }order by ?a";Instructiunile java care proceseaza rezultatul din urma interogariiSPARQL de mai sus sunt:QueryExecution e =QueryExecutionFactory.sparqlService( service,query ); ResultSet results =e.execSelect(); while ( results.hasNext() ) {QuerySolution s =results.nextSolution();System.out.println("Afisares:"+s);String nume =s.getResource("a").toString();System.out.println(nume);System.out.println("Am ajunsla e-mail");String email =s.getResource("b").toString();System.out.println(email);String url =s.getResource("c").toString();%> 7. FII Linked DATA