Fii linked data
Upcoming SlideShare
Loading in...5
×
 

Fii linked data

on

  • 614 views

 

Statistics

Views

Total Views
614
Views on SlideShare
614
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Fii linked data Fii linked data Document 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. 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 ApacheTomcat 7.0, pentru stocarea datelor interogate serverul Virtuoso, iar caIDE Eclipse Helios. Descrierea succinta a tehnologiilor utilizateEclipse Helios Eclipse 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.
  • FII Linked DATAJava EE Proiectul 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 JSP Secvente de cod (scripleturi)RDF & Jena API RDF ( 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 terminología 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.
  • 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 DB Conductor, o interfata web pentru administrarea bazei de date ISQL ( SQL Interactiv) Documentatie si tutoriale Exemple Acest 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,
  • 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:<rdf:Description rdf:about="#Imagine Cup"> <rdf:type rdf:resource="#Concurs" /></rdf:Description><rdf:Description rdf:about="#Grigoras Gheorghe"> <esteDecan rdf:resource="#Facultatea deInformatica" /> <rdf:type rdf:resource="#Decan"/></rdf:Description><rdf:Description rdf:about="#Grupa Master2 ISS"> <rdf:type rdf:resource="#GrupaStudent" /></rdf:Description>Relatiile dintre clase Aplicatia 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:
  • FII Linked DATA<rdfs:Class rdf:ID="Persoana" ></rdfs:Class><rdfs:Class rdf:ID="Profesor"> <rdfs:subClassOfrdf:resource="http://www.infoiasi.ro#Persoana" /></rdfs:Class><rdfs:Class rdf:ID="Asistent"> <rdfs:subClassOf rdf:resource="#Persoana" /></rdfs:Class><rdfs:Class rdf:ID="Colaborator"> <rdfs:subClassOf rdf:resource="#Persoana" /></rdfs:Class><rdfs:Class rdf:ID="Staff"> <rdfs:subClassOf rdf:resource="#Persoana" /></rdfs:Class><rdfs:Class rdf:ID="Student"> <rdfs:subClassOf rdf:resource="#Persoana" /></rdfs:Class> Fiecare 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:<rdf:Description rdf:about="Algoritmi siProgramare"> <rdf:typerdf:resource="http://www.infoiasi.ro#Materie" /> <areProfSeminar rdf:resource="Necula Raluca;Necula Emilian"/> <areProfCurs rdf:resource="Lucanu Dorel"/></rdf:Description>
  • FII Linked DATAAfisarea informatiilor Pentru 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:<http://www.infoiasi.ro#>prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> 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();%> <tr> <td>
  • FII Linked DATA <%out.println(nume.toString()); %> </td> <td> <%out.println(email.toString()); %> </td> <td> <a href="http://<%out.println(url.toString());%>"target="_blank"><% out.println(url.toString());%></a> </td> </tr> <% }e.close();Colaboratorii din cadrul aplicatiei FII Linked Data sunt afisati intabelul de mai jos:Functionalitatea aplicatiei Aplicatia FII Linked Data are, printre altele, urmatoarelefunctionalitati:
  • FII Linked DATA Prima pagina (index.jsp) afiseaza cele mai recente stiri si evenimentecu toate informatiile aferente lor; Pagina filtered.jsp are un combobox de unde utilizatorul poateselecta o anumita optiune (All Staff / Teachers / Collaborators /Assistants), iar la apasarea butonului Submit vor aparea datele aferenteoptiunii respective; Pagina students.jsp permite afisarea informatiilor foarte utilestudentilor ca: toate grupele existente impreuna cu coordonatoriiacestora si numarul de studenti prezenti in fiecare grupa; toate materiileimpreuna 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 suntsituate; o parte din cartile cele mai utile studentilor (acestea suntidentificate printr: titlu, autor, tema, descriere, data publicarii, format);concursurile care tocmai s-au desfasurat sau urmeaza sa se desfasoarecat mai repede; Pagina contact.jsp afiseaza decanul, prodecanii, personalul asociatdin cadrul FII Linked Data precum si cateva linkuri utile pentru
  • FII Linked DATAutilizator; Staff-ul tehnic si administrativ are asociate in documentulRDF proprietati ca: areFunctie, areEmail;Vocabulare de meta-date In aplicatia FII Linked Data este utilizat vocabularul de meta- date DCMI (Dublin Core Metadata Initiative care contine proprietati pentru descrierea resurselor) la crearea modelului de cunostinte privitor la cartile cele mai utile studentilor; <rdf:Description rdf:about="Programarearetelelor"> <dc:Title> Atelier de programare in retele decalculatoare </dc:Title> <dc:Creator> Sabin Buraga
  • FII Linked DATA </dc:Creator> <dc:Subject> networks,networkprogramming,client/server,signals </dc:Subject> <dc:Description> An introduction in network programmingusing socket interface BSD. </dc:Description> <dc:Date> 2005-01-08 </dc:Date> <dc:Format> text/html </dc:Format> </rdf:Description> Interogarea SPARQL care afiseaza toate cartile si detaliile acestoraare urmatoarea forma: query = "prefix fii:<http://www.infoiasi.ro#>prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> prefixdc:<http://purl.org/dc/elements/1.1/> selectdistinct ?b ?c ?d ?e ?f ?g where {?a dc:Title ?b. ?a dc:Creator ?c. ?a dc:Subject ?d. ?adc:Description ?e. ?a dc:Date ?f. ?a dc:Format ?g } order by ?a"; Rezultatul efectiv al acestei interogari este prezentat in imaginea demai jos:
  • FII Linked DATAInterfata & 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 denavigatie) sunt vizibile, exista consistenta de la o pagina la alta (prinutilizarea unui template) pentru a reduce incarcarea memoriei si pentrua nu forta utilizatorul sa nu se refamiliarizeze cu interfata la fiecareschimbare de pagina; Meniurile, link-urile ajuta la localizarea informatiei, astfel incatuserul sa poata gasi repede si cu usurinta datele dorite; Imaginea de mai jos reprezinta meniul aplicatiei: Se poate observa ca meniul are 5 optiuni (Home, AcademicStaff, Students, Resources, Contact) fiecare din ele permitand afisareaanumitor categorii de date. De exemplu optiunea Academic Stafflisteaza tot personal din cadrul FII, toti colaboratorii, asistentii,profesorii, Prima pagina a aplicatiei (index.jsp), ce contine printre altele si celemai recente stiri din cadrul FII Linked Data, permite citirea inintregime a unei stiri de interes prin simpla apasare pe link-ul intitulat“read more”, asa cum este ilustrat in imaginea urmatoare:
  • FII Linked DATAGenerarea de rapoarte cu JasperReports In cadrul aplicatiei este posibila si generarea de diferite rapoarte :lista tuturor profesorilor din facultate, lista referitoare cu grupele destudenti sau lista de cursuri predate in cadrul facultatii. Pentru aceastas-a folosit biblioteca Jasper Reports si tool-ul iReport. Pentru a puteagenera rapoartele cu date provenind din rdf-ul stocat pe serverulVirtuoso, a fost nevoie intai de crearea de java beanuri, care nu suntaltceva decat clase avand ca metode doar getteri si setteri. Mai jos este prezentat bean-ul referitor la cursurile din facultate : package Staff; public class Course { private String course; private String courseTeacher; private String labTeacher; public String getCourse() { return course; } public void setCourse(String course) { this.course = course;
  • FII Linked DATA } public String getCourseTeacher() { return courseTeacher; } public void setCourseTeacher(StringcourseTeacher) { this.courseTeacher = courseTeacher; } public String getLabTeacher() { return labTeacher; } public void setLabTeacher(StringlabTeacher) { this.labTeacher = labTeacher; } } Atunci cand graful rdf este interogat in aplicatie, este populata o listaavand ca obiecte entitati din bean-ul respectiv . La sfarsitul interogarii,dupa ce lista s-a populat cu datele din rdf, este apelat un fisier cuextensia jrmxl (creat cu ajutorul tool-ului iReport) si generat raportul informat PDF, XML SI HTML. Codul pentru crearea unui astfel deraport este prezentat mai jos : FileInputStream inputStream = newFileInputStream ("G:/report/Courses.jrxml");JRBeanCollectionDataSource beanColDataSource =new JRBeanCollectionDataSource(courses); JasperDesign jasperDesign =JRXmlLoader.load(inputStream); JasperReport jasperReport =JasperCompileManager.compileReport(jasperDesign; JasperPrint jasperPrint =JasperFillManager.fillReport(jasperReport, newHashMap(), beanColDataSource);JasperExportManager.exportReportToPdfFile(jasperPrint, "G:/report/all_courses.pdf");
  • FII Linked DATAJasperExportManager.exportReportToXmlFile(jasperPrint,"G:/report/all_courses.xml",false);JasperExportManager.exportReportToHtmlFile(jasperPrint,"G:/report/all_courses.html"); Raportul astfel creat este salvat pe disc si poate fi accesat. Mai joseste prezentata o imagine a unui raport in format pdf generat deaplicatie: Bibliografie 1. http://jena.sourceforge.net/ARQ/Tutorial/basic_patterns.html 2. http://jena.sourceforge.net/documentation.html 3. http://jena.sourceforge.net/tutorial/RDF_API/ 4. http://www.w3.org/TR/rdf-sparql-query/ 5. http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/ 6. http://en.wikipedia.org/wiki/Virtuoso_Universal_Server
  • FII Linked DATA7. http://www.infoiasi.ro/bin/Main/