FII Linked Data Barat Mihaela, Mihai Teodora Facultatea de Informatica Iasi Abstract. Aplicatie web care ofera un punct terminal SPARQL pentru interogarea resurelor publice de interes din cadrul FII pe baza unui model de cunostinte privitor la personal, studenti, discipline, locatii, evenimente. Cuvinte cheie: RDF, SPARQL, FII, Virtuoso, Jena, JSP. Tehnologii folosite Aplicatia web a fost implementata folosind tehnologiile Java EE: JSP, Jena API, Jasper Reports. Ca server web s-a folosit Apache Tomcat 7.0, pentru stocarea datelor interogate serverul Virtuoso, iar ca IDE Eclipse Helios. Descrierea succinta a tehnologiilor utilizate Eclipse Helios Eclipse Helios este un IDE open-source ce permite crearea facila de 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 utilizatorii pot sa ii extinda capacitatile prin instalarea de plug-inuri scrise pentru Eclipse, precum tool-urile de dezvoltare pentru alte limbaje de programare.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
FII Linked Data
Barat Mihaela, Mihai Teodora
Facultatea de Informatica Iasi
Abstract. Aplicatie web care ofera un punct terminal SPARQL pentru interogarea resurelor publice de interes din cadrul FII pe baza unui model de cunostinte privitor la personal, studenti, discipline, locatii, evenimente.
Aplicatia web a fost implementata folosind tehnologiile Java EE: JSP, Jena API, Jasper Reports. Ca server web s-a folosit Apache Tomcat 7.0, pentru stocarea datelor interogate serverul Virtuoso, iar ca IDE Eclipse Helios.
2 Descrierea succinta a tehnologiilor utilizate
2.1 Eclipse Helios
Eclipse Helios este un IDE open-source ce permite crearea facila de 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 utilizatorii pot sa ii extinda capacitatile prin instalarea de plug-inuri scrise pentru Eclipse, precum tool-urile de dezvoltare pentru alte limbaje de programare.
2.2 Java EE
Proiectul a fost dezvoltat folosind JDK 1.5, Apache Tomcat 7.0 ( deoarece are suport pentru dezvoltarea aplicatiilor web semantice) si JSP (Java Server Pages), care este o modalitate pentru generarea de
FII Linked DATA
continut dinamic pe web, si totodata este strategia Java EE pentru generarea prezentarii (View).
RDF ( Resource Description Fremework) este un framework pentru descrierea resurselor web, cum ar fi titlul, autorul, continutul si informatiile de copyright ale unei pagini web. Modelul RDF este similar cu alte concepte de modelare si se bazeaza pe ideea crearii de afirmatii despre resurse (resurse web in particular) , sub forma de expresii subiect-predicat-obiect. Acestea sunt cunoscute sub numele de triple in terminología RDF. Subiectul este reprezentat de o resursa, predicatul de trasatura a resursei si exprima o relatie intre subiect si obiect.
Jena este un API Java pentru aplicatiile web semantice. Pachetul Java care trebuie importat este com.hp.hpl.jena.rdf.model. API-ul a fost definit sub forma de interfete, astfel incat codul aplicatiei sa 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 mod codul aplicatiei ramane independent de implementare.
2.4 Virtuoso OpenLink
Serverul Virtuoso este un server hibrid de baze de date care combina functionalitatea unui RDBMS ( sistem de management pentru base de date relationale), ORDBMS (sistem de management pentru baze de date obiectual-relationale), RDF, XML intr-un singur sistem. Editia open-source al acestui server este cunoscuta ca “OpenLink Virtuoso”.
Virtuoso este alcatuit din doua componente: client si server. Elementele tipice utilizate pentru a comunica cu un server Virtuoso local sau la distanta includ:
Driverele Virtuoso pentru ODBC, JDBC, ADO.NET si OLE DB
Conductor, o interfata web pentru administrarea bazei de date ISQL ( SQL Interactiv)
FII Linked DATA
Documentatie si tutoriale Exemple
Acest server pune la dispozitia utilizatorilor o interfata grafica prietenoasa, usor de utilizat. Intefata permite administrarea si configurarea facila a serverului.
3 Descrierea proiectului
In Virtuoso, datele sunt stocate sub forma de triple ( care sunt formatul pentru Linked Data). Linked data descrie o metoda de a afisa date structurate, astfel incat sa fie interconectate si sa devina mult mai utile. 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 de calculatoare.
In proiect s-a utilizat principiul linked data, prin crearea unui document RDF ce stocheaza datele de interes referitoare la personalul, studentii, disciplinele, locatiile si evenimentele din cadrul Facultatii de Informatica, Iasi. Documentul RDF a fost validat folosind w3.org – Validator. Instantele prezente in document apartin unor clase precum:
Profesor Student Materie Eveniment Sala Concurs GrupaStudent
FII Linked DATA
Mai jos sunt prezentate cateva instante ale claselor mentionate:
Aplicatia permite, printre altele, afisarea tuturor colaboratorilor, asistentilor, profesorilor, personalului asociat, studentilor. Pentru a exemplifica relatia dintre acestia a fost definita clasa Persoana, care are ca subclase clasele: Colaborator, Asistent, Staff, Profesor, Student. Fragmentul de cod care prezinta cele mentionate mai sus este urmatorul:
Fiecare clasa are o serie de proprietati reprezentative, ce au rolul de a evidentia trsaturile clasei in cauza; de exemplu clasa Materie are urmatoarele proprietati: areProfSeminar, areProfCurs, iar o instanta a sa are urmatoarea forma:
Pentru afisarea informatiilor a fost necesara interogarea documentului RDF cu ajutorul limbajului SPARQL (este un limbaj descriptiv standardizat pentru realizarea de interogari pe baza potrivirilor de sabloane referitoare la triple RDF; este inspirit din RDQL si este oferit de Jena, RAP, Redland) .
De exemplu, interogarea SPARQL necesara pentru aflarea tuturor colaboratorilor in ordine alfabetica, precum si a trasaturilor acestora, din cadrul FII are urmatoarea forma:
Colaboratorii din cadrul aplicatiei FII Linked Data sunt afisati in tabelul de mai jos:
3.3 Functionalitatea aplicatiei
Aplicatia FII Linked Data are, printre altele, urmatoarele functionalitati:
Prima pagina (index.jsp) afiseaza cele mai recente stiri si evenimente cu toate informatiile aferente lor;
Pagina filtered.jsp are un combobox de unde utilizatorul poate selecta o anumita optiune (All Staff / Teachers /
FII Linked DATA
Collaborators / Assistants), iar la apasarea butonului Submit vor aparea datele aferente optiunii respective;
Pagina students.jsp permite afisarea informatiilor foarte utile studentilor ca: toate grupele existente impreuna cu coordonatorii acestora si numarul de studenti prezenti in fiecare grupa; toate materiile impreuna cu profesorii care predau materia respectiva la seminar/ laborator si la curs;se poate observa sa exista materii care pot avea la seminar/ laborator unul sau mai multi profesori/colaboratori/asistenti;
FII Linked DATA
Pagina resources.jsp prezinta: toate salile din cadrul FII Linked Data, tipul lor (curs/seminar/laborator/amfiteatru) si etajul la care sunt situate; o parte din cartile cele mai utile studentilor (acestea sunt identificate printr: titlu, autor, tema, descriere, data publicarii, format); concursurile care tocmai s-au desfasurat sau urmeaza sa se desfasoare cat mai repede;
Pagina contact.jsp afiseaza decanul, prodecanii, personalul asociat din cadrul FII Linked Data precum si cateva linkuri utile pentru utilizator; Staff-ul tehnic si administrativ are asociate in documentul RDF proprietati ca: areFunctie, areEmail;
3.4 Vocabulare de meta-date
In aplicatia FII Linked Data este utilizat vocabularul de meta-date DCMI (Dublin Core Metadata Initiative care contine
FII Linked DATA
proprietati pentru descrierea resurselor) la crearea modelului de cunostinte privitor la cartile cele mai utile studentilor;
<rdf:Description rdf:about="Programarea retelelor"> <dc:Title> Atelier de programare in retele de
Rezultatul efectiv al acestei interogari este prezentat in imaginea de mai jos:
FII Linked DATA
3.5 Interfata & meniul aplicatiei
Interfata aplicatiei este simpla, dispune de un meniu prietenos, astfel incat utilizatorul sa poata naviga si sa poata cauta cu usurinta informatiile de interes;
Elementele importante ale interfetei (de exemplu meniul=element de navigatie) sunt vizibile, exista consistenta de la o pagina la alta (prin utilizarea unui template) pentru a reduce incarcarea memoriei si pentru a nu forta utilizatorul sa nu se refamiliarizeze cu interfata la fiecare schimbare de pagina;
Meniurile, link-urile ajuta la localizarea informatiei, astfel incat userul sa poata gasi repede si cu usurinta datele dorite;
Imaginea de mai jos reprezinta meniul aplicatiei:
FII Linked DATA
Se poate observa ca meniul are 5 optiuni (Home, Academic Staff, Students, Resources, Contact) fiecare din ele permitand afisarea anumitor categorii de date. De exemplu optiunea Academic Staff listeaza tot personal din cadrul FII, toti colaboratorii, asistentii, profesorii,
Prima pagina a aplicatiei (index.jsp), ce contine printre altele si cele mai recente stiri din cadrul FII Linked Data, permite citirea in intregime a unei stiri de interes prin simpla apasare pe link-ul intitulat “read more”, asa cum este ilustrat in imaginea urmatoare:
3.6 Generarea de rapoarte cu JasperReports
In cadrul aplicatiei este posibila si generarea de diferite rapoarte : lista tuturor profesorilor din facultate, lista referitoare cu grupele de studenti sau lista de cursuri predate in cadrul facultatii. Pentru aceasta s-a folosit biblioteca Jasper Reports si tool-ul iReport. Pentru a putea genera rapoartele cu date provenind din rdf-ul stocat pe serverul Virtuoso, a fost nevoie intai de crearea de java beanuri, care nu sunt altceva decat clase avand ca metode doar getteri si setteri.
Mai jos este prezentat bean-ul referitor la cursurile din facultate :
Atunci cand graful rdf este interogat in aplicatie, este populata o lista avand ca obiecte entitati din bean-ul respectiv . La sfarsitul interogarii, dupa ce lista s-a populat cu datele din rdf, este apelat un fisier cu extensia jrmxl (creat cu ajutorul tool-ului iReport) si generat raportul in format PDF, XML SI HTML. Codul pentru crearea unui astfel de raport este prezentat mai jos :
FileInputStream inputStream = new FileInputStream ("G:/report/Courses.jrxml"); JRBeanCollectionDataSource beanColDataSource = new JRBeanCollectionDataSource(courses);