Utilizarea Tehnologiilor Semantice Web In Dezvoltarea de Aplicatii
LUCRARE DE LICENȚĂ
UTILIZAREA TEHNOLOGIILOR SEMANTIC WEB IN DEZVOLTAREA DE APLICAȚII
Capitolul 1. Web-ul Semantic
1.1 Introducere
1.2 Înțelegerea informației
1.3 Modelarea datelor
1.3.1 Date tabelare
1.3.2 Date relaționale
1.3.3 Date RDF
1.4 Componentele sistemelor SW
Capitolul 2. Tehnologii ale Web-ului Semantic
2.1 Formate de serializare a datelor RDF
2.2 Vocabulare și ontologii
2.3 Stocarea și interogarea datelor
2.3.1 Microformatele
Capitolul 3. Învățământul electronic în Web-ul Semantic
3.1 Sisteme de e-Learning
3.2 Platforme e-Learning
3.3 Obiecte educaționale
3.3.1 SCROM
3.3.2 IMS
Capitolul 4. Meta-date educaționale în formate RDF
4.1 Implementarea unei ontologii educaționale
4.2 Semantic Web for Earth and Environmental Terminology(SWEET)
Bibliografie
1.Introducere
1.1Argument
Domeniul WEB a fost inițial creat pentru a ușura regasirea de catre calculator a oricarei date indiferent de localizarea ei. Din cauza volumului tot mai mare de informații prezente în spatiul WEB este dificil de a automatiza regasirea lor inteligentă, cu atât mai puțin de către programatorii web. Prioritatile consorțiului WEB este acela de a pune la dispoziție o modalitate bazată pe actualele tehnologii XML de prelucrare de catre calculator a informatiilor. Solutia este prezentata sub numele de Semantic WEB, in cadrul caruia dispozitive inteligente partajeaza cunostinte privitoare la propriile funcționalitați și la contextul în care își desfășoară activitatea, utilizând reguli de inferență și metadate pentru a gasi informațiile solicitate de către utilizatori.
Conform Semantic WEB, spatiul WEB trebuie să reprezinte o pânză consistentă de relații stabilite între obiectele identificabile, dezvoltarea ulterioara a WEB-ului fiind focalizată asupra sitemelor de calcul nu numai asupra utilizatorilor.
Cele mai importante obiective ale WEB-ului semantic sunt urmatoarele:
Spațiul WEB sa poata fi extins si clasificat prin adoptarea specificatiilor conceptuale;
Asocierea legaturilor dintre resurse, cu posibilitatea extinderii acestor semantici;
Oferă mașinilor și oamenilor servicii complexe precum căutarea datelor, regasirea unor tipuri de resurse, monitorizarea activitatii aplicațiilor sau filtrarea informațiilor.
Utilizatorii pot partaja informațiile indiferent de modul de stocare si de reprezentare a acestora.
O premisă actuală în ceea ce privește WEB-ul Semantic este managementul cunoștințelor, mai ales in contextul rețelelor interne ale organizatiilor sau în domeniul e-learning.
Principalele probleme cu care se confrunta cercetatorii sunt:
Metodele de cautare bazate pe cuvinte cheie conduc de multe ori la rezultate eronate, neluandu-se in calcul structura continutului resurselor dorite sau relațiile acestora cu alte resurse.
Instrumentele de extragere automata a informatiilor provenind din surse multiple nu sunt încă suficient de flexibile să poata prelua informații din surse non-textuale sau din domenii de cunoaștere diferite.
Pentru ca informațiile să fie coerente și uzor de actualizat trebuie gasite reprezentari semantice procesabile de către calculator.
Generarea automata de documente – acest aspect va conduce la reconfigurarea automată a modalitaților de prezentare a continutului siturilor WEB, pe baza profolului cognitiv al vizitatorilor sau al altor factori relevanți.
1.2Obiectivele lucrarii
Lucrare „Utilizarea tehnologiilor Semantic Web in dezvoltarea de aplicații” are următoarele obiective:
Dezvoltarea, cunoașterea și evoluția Semantic Web;
Prezentarea linbajelor XML, OIL+OWL, RDF+RDFa, SPARQL;
Exemplificarea unor aplicații și proiecte care utilizează tehnologiile Semantic Web;
Realizarea unui exemplu practic de utilizare a Semantic Web pentru crearea unui fișier RDF, a unui vocabular FOAF și realizarea conexiunii web a acestui fișier cu ajutorul unui server, proiect realizat cu Eclipse, Jena, Dojo și Tomcat Apache.
1.3 Structura lucrării
Această lucrare ne prezintă o mica introducere în Semantic Web, principalele aspecte și modalități de exprimare a relațiilor între spațiual Web și a metadatelor. În viitorul apropiat privind în urma la gradul de dezvoltare a spatiului Web, putem aproxima o bună relație între Semantic Web și dezvoltatori, ceea ce va duce la o mai bună și rapidă cautare a datelor în mediul Web.
Structura lucrarii este următoarea:
Capitolul 1. – Introducere;
Capitolul 2. – Web-ul Semantic;
Capitolul 3. – Tehnologii ale Web-ului Semantic;
Capitolul 4. – Învățământul electronic în Web-ul Semantic;
Capitolul 2. Web-ul Semantic
2.1 Introducere
Pentru o buna intelegere a termenului de WEB SEMANTIC , trebuie să definim mai intai cuvantul semantic.Conform dicționarului explicativ al limbii române , cuvântul semantic are urmatoarea definiție [1] :
”SEMÁNTIC, -Ă, semantici, -ce, s.f., adj. I. S. f. 1. Ramura a lingvisticii care se ocupă cu studierea sensurilor cuvintelor și a evoluției acestor sensuri;semasiologie, semantism. 2. (Log.) Teoria interpretării unui anumit sistem formalizat prin alt sistem formalizat. II. Adj. Care ține de semantică (I 1), care se referă la sensurilecuvintelor; semasiologic. – Din fr. sémantique.”
Astfel , prin semantic înțelegem sensul unui cuvânt. În combinație cu WEB-ul îl putem vedea ca o sursă infinită de informații. Web-ul Semantic se referă la modul în care se poate publica o informație într-o formă structurată pentru a putea fi ușor recunoscută și identificat “sensul” datelor respective de un agent software .Pentru a da un exemplu concret, în momentul de față informația în paginile web este formatată utilizând tag-uri HTML. Prin definiția pe care am dat-o , putem deduce ca informația încapsulată in tag-ul <H1> prezintă o importanță sporită pentru cititor, față de restul informațiilor , datorită sensului tag-ului respective. In unele pagini web gasim și informații suplimentare destinate motoarelor de căutare, numite meta-informații, dar acestea conțin doar cuvinte cheie fară a defini “sensul” și contextul informației conținute.
Aceste metode de publicare a informației nu sunt suficiente pentru a permite descrierea semnificației datelor conținute în documente. Astfel , a apărut necesitatea utilizării unui nou concept, Web-ul Semantic. Acesta a fost introdus de către Tim Berners Lee în articolul The Semantic Web din anul 2001 [2], fiind conceput ca o extensie a Web-lui actual , care permite în plus descrierea sensului datelor publicate.
2.2 Înțelegerea informației
Comunicarea dintre două persoane , atât verbal cat și vizual este destul de ușor de înțeles. Fără un efort prea mare reușim să solicităm o informație unei persoane , să ne exprimăm părerile sau să învățăm dintr-o carte scrisă cu ceva timp în urmă. Cea mai simplă formă gramaticală de a transmite informația în limbaj natural este “subiect – predicat – obiect”. Să luăm un mic exemplu care respectă acestă forma:
Ionela adora merele.
Merele îl dezgustă pe Marian.
Aceste două fraze ne transmit o informație. Cuvintele Ionela și Marian se referă la doua persoane, cuvântul mere se referă la un fruct, iar cuvintele adoră și dezgustă defines legatura dintre persoană și fruct. Datorită faptului că pe baza cunoștințelor anterioare înțelegem sensul verbelor a adora si a dezgusta, putem înțelege informația conținută în cele două propoziții. Acesta este un exemplu de semantică: simbolurile se referă la obiecte sau concept, iar o înșiruire de simboluri ne transmit o semnificație.
Un astfel model de funcționare în comunicarea dintre oameni, folosind un limbaj natural, s-ar putea aplica și la schimbul de informații într-o rețea de calculatoare. Odata cu apariția Word Widw Web ca ți metodă principala de schimb de date între calculatoare, structura informației transmise între client și server este ascunsă utilizatorului. Acest lucru se datorează decuplării transmisiei datelor de la interfața aplicației, ducând la dezvoltarea sistemelor de gestiune a datelor.
Acest lucru duce însă la un efect negativ, datele publicate într-o aplicație nu pot fi partajate, interconectate sau integrate în alte aplicații. Internetul are o multitudine de aplicații inteligente: motoare de căutare care returnează rezultate profunde și intuitive, site-uri de comerț electronic care pot face recomandari inteligente, folosind șabloane de cumparare ale fiecărui cumpărător, site-uri de cartografiere care includ informații geografice extinse si pot planifica trasee si pot calcula distanțe. Orice tehnologie informațională o putem utiliza într-o aplicație web într-un mod inteligent.
Chiar și cele mai perspicace și inteligente aplicații sunt limitate de calitatea informației accesibile ei. Indifernt cat de inteligente sunt, aceste aplicatii pot oferi date confuze, stupide, dacă utilizează informații de intrare inconsecvente sau contradictorii. De aici vine necesitatea utilizării unei infrastructuri web “inteligente” din punct de vedere al integrării informațiilor pe Web. Această provocare se poate fi rezolvată de Semantic Web – să obțină date corecte și să le distribuie la locul potrivit, astfel încât aplicațiile inteligente sa poată prelua datele corecte.
Web-ul Semantic, asa cum este el imaginat de W3C, va permite în plus construirea unui graf de date prin interconectarea tuturor datelor semantice.Pentru a realiza acest tip de structură , a apărut comunitatea Linked Open Data, cu scopul declarat de a dezvolta cele mai bune practici pentru publicarea ți distribuirea de date semantice.
În timp ce o comunitate de publicare este necesară pentru a realiza graful global, la fel de importantă este comunitatea dezvoltatorilor de aplicații care folosesc această colecție de date distribuite pentru a demonstra valoarea unui astfel de graf. Astfel de aplicații vor putea interoga surse multiple de date, obținând o bucată critică de informație de la fiecare, care le va permite să interogheze următoarea sursă. Navigând prin această structură, până la sursa de date finală, aceste aplicații vor fi capabile sa furnizeze informații pe care nu le-am putea obține de la nici unul din site-urile inițiale[3] [p 105- 116].
2.3 Modelarea datelor
Ca să descriem un model, pudem sa spunem că este o descriere simplificată a unor aspecte din realitate, utilizate pentru a înțelege structura unei anumite parți din lumea reală. Crearea de modele face parte din capacitatea ființelor umane de a comunica și raționa.În comunicarea umană avem avantajul capacității oamenilor de a interpreta simbolurile și de a înțelege sensul , aceste modele putând fi definite într-o gamă variată de forme folosind limbajul natural sau chiar imagini. Un anume model poate sa fie definit de o persoană, modificat de catre o altă persoană și interpretată de o a treia persoană. Modelele de comunicare au fost dezvoltate pentru a interacționa om-calculator sau calculator – calculator.
Odată cu creșterea cantității informațiilor utilizate în aplicații web, a fost necesară dezvoltarea unor modele de structurare a informației. Sunt insă multe modalități de păstrare a informației, fiecare din ele optimizate pentru a îndeplini o anumită sarcină. In arhitectura Internetului există modele standardizate de comunicare între client și server. Dacă un server web ascută protocolul HTTP primește cererea GET, el știe să trimită datele gasite la adresa specificată la cerere către client. Această metodă de comunicare a permis dezvoltatorilor de aplicații web să se focalizeze pe modul în care aplicațiile sunt vizualizate de către utilizator, ducând în acest fel la decuplarea ăntre date și interfața web. Datorită acestei metode, datele sunt ascunse în spatele unor interfețe , impiedicând partajarea și integrarea aestora în alte aplicații internet, capabile să ofere o utilitate crescută.
În cazul Web-ului Semantic trebuie utilizat un model care să faciliteze partajarea ușoară și interoperabilitatea datelor. Această problemă are două părți: sintactică și semantică. Din punct de vedere sintactic, partajarea datelor implică accesul la dagasite la adresa specificată la cerere către client. Această metodă de comunicare a permis dezvoltatorilor de aplicații web să se focalizeze pe modul în care aplicațiile sunt vizualizate de către utilizator, ducând în acest fel la decuplarea ăntre date și interfața web. Datorită acestei metode, datele sunt ascunse în spatele unor interfețe , impiedicând partajarea și integrarea aestora în alte aplicații internet, capabile să ofere o utilitate crescută.
În cazul Web-ului Semantic trebuie utilizat un model care să faciliteze partajarea ușoară și interoperabilitatea datelor. Această problemă are două părți: sintactică și semantică. Din punct de vedere sintactic, partajarea datelor implică accesul la date, adică modelul standard în care sistemul trimite o cerere și primețte un răspuns. A doua parte, cea semantică, se referă la capacitatea de a încorpora datele extrase în structura informațională a sistemului care le consumă.
2.3.1 Date tabelare
Aceste date sunt cunoscute de toata lumea, sunt cele mai simple seturi de date, acestea sunt datele tabelare. Datele sunt pastrate dupa cum sunt si numite în tabele cum ar fi Excel sau un tabel HTML. Avantajele modelului tabeler reies din simplitatea cu care acest model a fost conceput. Datele care sunt introduse in acest format sunt ușor de citit si manipulat.
Tabel 1. Exemplu model tabelar
Structurarea acestor dare se face pe linii și coloane. Chiar și aceasta structurare simplista a datelor păstrează informații despre date(meta-date).
Poziționarea informației într-o anumită coloana sau anumit rând permite persoanei care citește să deducă sensul informației.
2.3.2 Date relaționale
Odata cu ascensiunea aplicațiilor web, de la simple pagini HTML spre aplicații cu un conșinut dynamic, datele au trebuit să fie separate de interfața grafică. Acest model relational s-a impus datorită maturității sistemelor de gestiune bazate pe acest model, cum ar fi MySQL, Oracle DB sau PostgreSQL. Bazele de date relationale sunt capabile sa stocheze cantități imense de informație, dar in celași timp oferă și un timp de rulare optim pentru interogări, scalabilitate, tranzacții, etc.
O bază de date relatională permite să se unească print-o operație de tip JOIN, informație din mai multe tabele într-un mod standardizat. Din punct de vedere sintactic, partajarea informației este posibilă prin utilizarea de API-uri standardizate de interacțiune cu bazele de date (Open Database Connectivity, Java Database Connectivity, Structure Query Language).
Aceste baze de date relaționale sunt folosite pentru a păstra cantități mari de informații într-un model de date care nu se modifică.
Exemplu de model relational
2.3.3 Date RDF
Acest tip de date în Web-ul Semantic sunt reprezentate sub forma unor afirmații compuse din trei părți: subiect, predicat și obiect. Datorită acestei componențe, datele se mai numesc și triplete. Subiectul este lucrul deschis în afirmație, în timp ce predicatul descrie legatura dintre subiect si obiect. Vom da un exemplu:
Popescu are prenumele Ion.
Popescu are anul de naștere 1984.
Popescu are materia Fizică.
Aceste afirmații se pot reprezenta sub forma unui graf, unde nodurile reprezintă subiecte sau obiecte, iar predicatele sunt muchii. Direcția muchiei este dinspre subiect spre obiect. Fiecare din cele trei componente ale unei triplete are ca și identificator o adresă URI, cu excepția obiectelor reprezentate printr-o valoare literală. În cazul in care obiectul este o valoare, el este reprezentat grafic sub forma unui dreptunghi. Acesta este modelul de date utilizat în Web-ul Semantic și este standardizat în limbajul Resource Description Framework (RDF) [4] .
Grafurile nu au elemente rădăcină ca și în cazul documentelor XML, care sunt construite sub o structură ierarhică. Daca vrem sa unim două documente XML va fi dificil de decis care dintre elemente va deveni rădăcină. În grafurile RDF acest lucru nu este o problemă, deoarece nu există o rădăcină, iar suprapunerea nodurilor se face pe baza identificatorului URI. În acest mod se por uni grafuri din diferite surse fară a pierde sensul datelor respective. Modelul RDF rezolvă problema semantică a partajării informației.
Exemplu de model graf RDF
Pentru partea sintactică, s-au definit standard de extragere a datelor din grafuri RDF, prin limbajul de interogare SPARQL. În concluzie modelul RDF a rezolvat problema partajării , propunând un sistem relativ simplu de modelare a datelor, dar complet diferit de modelele clasice.
Aceste modele de date clasice (tabeler și relațional) nu sunt utilizabile în Web-ul Semantic, deoarece nu permit partajarea ușoară și interoperabilitatea datelor.In acest sens s-a introdus modelul grafului RDF, care rezolvă problema semantică a partajării informației.
2.4 Componentele sistemelor SW
Aceste componente sunt împărțite in doua categorii :
Componente de bază, care sunt utilizate pentru a descrie datele în formate specifice SW.
Componente asociate SW, pentru interacțiunea cu datele care urmează să interacționăm.
Acum vom clasifica categoriile care fac parte din componentele de bază, acestea sunt următoarele:
afirmațiile SW;
identificatorii URI;
limbajele SW;
ontologiile și datele;
Vom detalia fiecare categorie în parte pentru a putea înțelege utilitatea fiecarei categorii.
Afirmațiile: Orice afirmație este compusă din subiect, predicat și obiect. Acestea pot defini structura informației, instanțele și costrângerile.
Limbajele: Acestea sunt de mai multe tipuri, standardizate cu complexitate și expresivitate variabilă.
URI : Uniform Resource Identifier , este folosit pentru a furniza un identificator unic pentru o anumită resursă. Acest model este folosit în SW pentru a elimina conflictele de nume utilizate deja.
Ontologii: O ontologie defineste în sine un concept. Acestea definesc relații între acestea și costrîngeri. Astfel o ontologie poate să fie privită ca fiind o schemă a unei baze de date.
Date: Conțin informații despre anumite entități. Datele formează cea mai mare parte a SW.
Toate acestea pot fi integrate si folosite în pachete software.
Structură pachet software SW.
Capitolul 2. Tehnologii ale Web-ului Semantic
În anul 2001 în Scientific America, a fost introdus la scară largă în articolul „ The Semantic Web”, articolul a fost publicat de Tim Berners-Lee, James Hendler și Ora Lassila. Aceștia au evidențiat conceptele fundamentale: limbajul RDF, tripletele, ontologiile precum și rolul URI-urilor. Drept exemplu au folosit un studiu de caz, referitor la un soft de programari care gasește furnizori de servicii medicale care indeplinesc unele criterii specifice.
Aceste criterii incepand din anul 2001 s-au extins evidențiinduse din nou în anul 2006.Totuși , Web-ul Semantic nu poate sa fie comparat ca fiind un singur obiect comun, acesta are la bază o serie de standarde , seturi de unelte, o comunitate care publică și partajează date pentru imbogatirea și dezvoltarea aplicațiilor. O să facem referire la o comunitate internațională care se ocupă cu dezvoltarea standardelor deschise pentru Web – W3C(The Word Wide Web Consortium). Conform definiției Web-ul Semantic poate să fie privită ca o stivă de tehnologii. A fost pria dată introdusă de către Tim Beners-Lee într-o prezentare despre Web-ul Semantic. De-a lungul vremii aceasta stivă a evoluat și a a ridicat standardele.
Stiva Web-ului Semantic
Tehnologiile de jos sunt tehnologii bine cunoscute , fiind utilizate și în Web-ul actual, prin utilizarea acestor tehnologii putem evolua , dezvoltând Web-ul Semantic ca o extensie a Web-ului actual. O sa detaliem cate putin din fiecare tehnologie în parte pentru a evidenți utilitatea ei.
Uniform Resourse Identifier (URI), facilitează în mod unic identificarea resurselor web. Web-ul Semantic are nevoie deo identificare unica, pentru a putea permite manipularea resurselor în straturile superioare.
Unicode – acesta este utilizat pentru a putea reprezenta si manipula un text în mai multe limbi. Web-ul Semantic trebuie să permită legaturi între mai multe limbi.
XML – acesta este un limbaj de marcare, prin utilizarea lui permite crearea de documente de date structurate. Web-ul Semantic utilizează o metodă pentru a structura date , după care să construiască legaturi între ele. Pentru a facilita relaționarea între date provenite din surse diferite se utilizează XML Namespaces, astfel identificând unic elementele din aceste documente XML.
Resource Description Framework (RDF), acesta este un limbaj care permite crearea de declarații în formă de triplete. Datele pot fi reprezentate sub formă de grafuri.
RDF Schema (RDFS) , acesta poate fi considerat un vocabular de bază pentru construcția de clase și proprietăți în RDF. În RDFS condtrucția vocabularelor poare sa fie de o complexitate redusă.
Construcția de vocabulare / ontologii complexe a dus la standardizarea limbajului Web Ontology Language (OWL). OWL aduce restrictii sulimentare asupra conținutului și structurii fișierelor RDF, permitând construcția de algoritmi de relaționare.
SPARQL este standardizat ca limbaj de interogare pentru RDF. Acesta poate fi utilizat pentru a interoga date RDF, inclusiv declarații RDFS sau OWL.
RIF (Rule Interchange Format) sau SWRL (Semantic Web Rule Language), acestea ofera suport pentru construirea de reguli în descrierea de legaturi.
Cryptography și Trust, asigură securitatea și calitatea datelor
User intrefaces and applications, reprezintă aplicațiile care vor permiteaccesul la datele modelate pentru Web-ul Semantic.
Au început să apară aplicații care au la bază tehnologii și concepte ale Web-ului Semantic.O să enumerăm cele mai importante dintre ele:
Semantic MediaWiki(SMW) – platformă care stă la baza Wikipedia.org. Legaturile dintre pagini sunt puternic influențate de intervenția umană.Wiki-urilie semantice permit sa introducem și să intrerogăm date semantice în interiorul unei pagini.Acestea pot să interogheze continutul și sa-l refolosească.
Facebook – acesta utilizează pentru descrierea persoanelor și legaturilor între ele vocabularul FOAF. În sine se foloseste un graf, Acest graf a fost extins și dezvoltat prin Open Graph protocol, care permite pastrarea informațiilor de interacțiune a utilizatorilor cu diferite pagini ți site-uri externe.
Freebase – este o bază colaborativă de date semantice. Acesta este un graf de date realizat din noduri și legaturi.
Google – cel mai important motor de cautare la ora actuală. Acesta extrage meta-datele produselor definite folosind Goodrelations și RDFa, astfel afisând informații suplimentare ăn momentul afișarii paginii respective în pagina de cautare.
2.1 Formate de serializare a datelor RDF
Modelul de descriere a datelor in Web-ul Semantic este dat de către limnajul RDF. Serializarea permite transmiterea datelor între aplicații, folosind o metodă de conversie a grafurilor.Grafurile RDF au aceiași structură, orice format de serializare trebuie să poată reprezenta aceleași construcții(afirmații URI și valori literale).
RDF/XML
Recomandarea W3C [5] referitor la RDF, sunt descrise modele de date RDF cât și informații de reprezentare în RDF. Descrierea serializată în RDF se refera în general la formatul RDF/XML. Acesta este singurul standard de serializare a datelor RDF pentru schimbul de informații.Ca sa înțelegem ce conține un document RDF , acesta este o serie de descrieri, fiecare din aceste descrieri urmărind o muchie.Dacă considerăm un nod(subiect), muchia (predicat) care descrie o alta legatura sau legatura cu un nod(obiect). Dacă există mai multe muchii care pleacă din același nod, aceste afirmații se grupează în elemente <rdf:Description>.Daca în acest caz există mai multe grupuri, acestea sunt condiționate, ele trebuie să aibă ca și parinte elementul XML rdf:RDF; în cazul în care acest lucru nu se realizează, avem un singur grup. Referitor la fiecare element din grup, acestea conțin elemente de descriere, care la randul lor conțin atribute rdf:about, care definesc subiectulpentru afirmațiile din interiorul elementului. În mod similar , elementele conținute , cele copil definesc predicatul și subiectul afirmațiilor.
N-triples
Cea mai simplă formă de serializare. Afirmația este reprezentată în N-triple intr-o singură linie, aceasta conține subiectul, obiectul și predicatul.Raportat la fiecare linie, aceasta resprezintă o afirmație formată din subiect, predicat, obiect urmată de un punct. În acest caz fiecare din subiect, predicat, respectiv obiect sunt reprezentate prinURI. Nodurile care sunt anonime se reprezinta astfel – _:nume, iar obiectele sunt introduse între ghilimele.
Terse RDF Triple Language(Turtle)
Această sintaxă de serializare este mult mai ușor de citit și de utilizat de catre oameni. Acesta nu este un limbaj XML, este un limbal special realizat pentru date RDF.
Informațiile conținute în N-triple sunt repetitive, acest fapt duce la un timp de procesare mai indelungat si o transmitere mai greoaie, ridicand mari probleme la aplicații care produc ți consumă cantități mari de informație. Cu ajutorul acestui limbaj , s-a reușit reducerea masivă a repetiției informației. Dacă stam să analizăm, fiecare conexiune dintre două noduri va deveni o tripleta.După cum știm că un nod poate participa la mai multe conexiuni, așa putem reduce numarul de caractere utilizat în N-triple dacă utilizăm un simbol pentru a indica nodurile repetitive. Astfel s-a creat conceptul de XML Namespace ți s-a introdus prefixul URI fiiind declarat la începutul documentului. Prin utilizarea acestui prefix putem scurta URI-urile.
În Turtle avem posibilitatea de a lega afirmațiile despre același subiect. Prin utilizare caracterului ‚‚ ; ’’ca terminator al unui triplet, putem afirma ca următoarele două elemente sunt predicat si obiect ale aceluiași subiect. Prin utilizare ’’, ’’ putem sa definim separat tripletele care are același subiect și predicat.
Turtle reprezinta cea mai ușoară formă de scriere și citire a tripletelor de către oameni, acesta oferă metode de reducere a informației redurante și comunicarea corectă între aplicații.Există o multitudine de biblioteci care asigură interacțiunea cu toate sau aproape toate formatele de mai sus.
2.2 Vocabulare și ontologii
Transpunerea uni graf RDF în formă serializată, asigură partajarea informației între mai multe aplicații. Pentru a pastra și sensul informației trebuie sa definim conceptele, relațiile și constrângerile. Acest lucru îl putem realiza prin definirea unei schemedin sistemele de gestiunerelaționare. Acestea se pot întâlni sub diferite forme: vocabulare, taxonomii sau ontologii.
Vocabular – sunt niște termeni definiți utilizați în comunicare.Aceștia trebuie să aibă același sens în orice context.
Taxonomie – aici terminii sunt organizați ierarhic.Un termen poate sa aibă mai multe relații parinte-copil cu oricare alt termen din taxonomie. Între parinte copil se adoptă o restricție , fiecare termen poate avea un singur parinte, acestea avand o structură aborescentă.
Ontologie – folosește un vocabular predefinit de termeni, cu ajutorul acestor termeni să poată defini concepte și relații dintre ele pentru un anumit domeniu.
Web-ul Semantic folosește un limbaj de definire a schemelor și unul de definire a ontologiilor. Limbajul de definire a ontologiilor, OWL furnizează un limbaj foarte complex de definire a ontologiilor. Pentru definirea ontologiilor se utilizează limbaje RDF, iar tripletele rezultate se pot pastra în aceiași bază de date RDF ca și datele de sine.
Vocabular Taxonomie
Ca o concluzie a aplicațiilor software semantice, realizate pe baza conceptelor , relțiilor și constângerilor definite în ontologii se pot deduce informații noi printr-un proces de inferență. Rezultatul informației poate fi considerat ca și o concluzie , asstfel aceasta ofera posibilitatea ca să fie adaugată la cunoștințele initiale. Ontologiile ne oferă posibilitatea de a introduce reguli, pe baza carora să putem extinde cunoștințele inițiale.
RDFS
O latură foarte importantă în datele RDF este aceea de a construi un vocabular comun, care sa conțină termeni bine definiți și cunoscuți, care să derscrie cat mai bine resursele(subiect, predicat, obiect). [6]
În RDFS sunt considerate instanțe ale clasei resurselor toate elementele tripletelor. Vocabularele RDFS descriu clase de resurse și proprietăți folosite in modele RDF.
OWL
Web Ontology Language(OWL) impreuna cu vocabularul RDFS extind resursele care pot duce la construcția de ontologii mult mai expresive. OWL ne ajuta prin introducerea de resticții suplimentare referitoare la construcția si conținutul documentelor RDF, pentru a ne permite o procesare si o deducere cat mai bună a informației. Ontologiile declarate fiind OWLsunt scrise utilizând limbajul RDF.
2.3 Stocarea și interogarea datelor
Dupa cum știm SQL este un limbaj de interogare standardizat pentru baze de date relaționale, pentru a putea utiliza datele din grafuri RDF a fost necesară introducerea unui standard. SPARQL(Simple Protocol and RDF Query Language) a fost introdus in 2008, în momentul de față sunt în curs versiuni care aduc o serie de imbunătățiri. Mai avem și alte variante de limbaje de interogare pentru RDF, cele mai cunoscute fiind RDQL(RDF Data Query Language) și SeRQL(Sesame RDF Query Language). Dar datorită adoptării la scara largă a serviciilor SPARQL acesta ar fi cel mai indicat de utilizat.[7]
SPARQL ne pune la dispoziíe o serie de avantaje pentru construcția șabloanelor de interogare, unde putem audauga condiții suplimentare de filtrare , dar și metode de formatare a rezultatelor. Dacă comparam structura de interogare SQL și structura de interogare SPARQL putem spune că cele două limbaje sunt similare ca și sintaxă, dar cele două sunt fundamental diferite operând pe structuri de date complet diferite.
Față de standardizarea limbajului de interogare, SPARQL defineste protocolul de comunicare între un client și un server de stocare. Drept urmare W3C folosește un alt standard și anume WSDL 2.0.
Ca să putem extrage sabloane a tripletelor vom folosi sintaxa Turtle. SPARQL are în plus variabile de interogare care pot specifica care din acestea doresc să fie extrase ca și rezultat.
Un exemplu de graf RDF, pentru selecția tuturor persoanelor , respectiv materialelor pe care ei le studiază avem următoare interogare:
@prefix : <http://exemplu.ro#>.
select ?persoana ?materie
where
{
?persoana :areMaterie ?materie
}
Regasim în această interogare două componente SELECT și WHERE. Pentru a verifica ce variabile vor fi utilizate pentru selectarea datelor vom folosi prima componentă., iar a doua componentă o vom folofi pentru a specifica șablonul de interogare, eventual informații suplimentare de filtrare.
În SPARQL regasim patru tipuri de interogari suportate:
SELECT – sunt returnate rezultate care nu fac parte dintr-un graf RDF;
CONSTRUCT – ne lasă sa transformăm datele dintr-un graf RDF în altul și ne lasă să și combinăm grafurile;
ASK – ne returnează adevărat sau fals;
DESCRIBE – ne lasă să returnăm un graf RDF fără specificarea unui șablon de la client.Acesta este utilizat în cazurile în care nu cunoaștem structura informației.
Pentru modificarea datelor a fost dezvoltat un limbaj separat SPARUL(SPARQL/Update) [8], acesta permite adaugarea, ștergerea, mutarea, etc.
Existența unor pachete software în sursă deschisă care să permită stocarea grafurilor RDF, care la rîndul lor să aibă implementat și motorul de interogare SPARQL.Aceste pachete fac cam urmatoarele operațiuni:
Stocarea – datele descriese trebuie sa fie stocate în memoria RAM a calculatorului, o bază de date sau un motor de stocare specilalizat pentru triplet;
Încărcarea datelor – să recunoască cît mai multe formate de swerializare a datelor;
Deducerea informației – RDFS sau OWL trebuie să aibă capabilități de inferare;
Interogare – interogări asupra datelor stocate;
Export – salvarea datelor;
Cele mai utilizate și stabile soluții gratuite sunt: Jena, dezvoltată de Hewlett-Packard [9], Sesame dezvoltată de Aduna, PHP dezvoltat de ARC2.
Comparație unelte semantic web
Principala problemă în adoptarea de către furnizorii de conținut a acestor principii a fost lipsa unor standarde și a unuor unelte ușor de folosit. Ca exemplu putem da formatul RDF/XML care este mai complicat de implementat, majoritatea informațiilor le regăsim in format HTML, astfel că administratorii aplicațiilor web ar fi obligați să țină două pagini pentru o singură informație.
Rezolvare acestei probleme se face cu ajutorul microformatelor, eRDFși RDFa care permit inserarea de etichete semantice direct ăn documentele HTML.
2.3.1 Microformatele
Au fost dezvoltate pentru a pune la dispoziția utilizatorilor posibilitatea de introducere a etichetelor semantice direct în documentele HTML, folosind atributul class. Microformatele prezintă o serie de dezavantaje: nu sunt de dezvoltate de o singură entitate; se adresează în primul rând oamenilor , dupa care se adresează aplicațiilor; încurajează utilizarea etichetării directe în documentele HTML. Utilizarea de metode de conversie GRDDL, microformatele se pot integra în seturi de date semantice [10].
Enumerăm cele mai utilizate microformate:
hCard – are la bază informații despre persoane, locații organizații și companii;
hCalendar – descriere de evenimente, dependente de calendar;
XFN – descrierea diferitelor relații între prieteni;
XOXO – imbogățirea informațiilor despre titlu, rezumate adrese URL;
hReview – pentru descrierea de recenzii.
eRDF
Este un subset a limbajului RDF care poate fi utilizat în XHTML și HTML. O parte a recomandărilor RDF nu este suportată în eRDF(noduri anonime, liste, subclase).În momentul de față sunt biblioteci pentru extragerea cunoștințelor ce conțin structuri eRDF.
RDFa
Permite introducerea de etichete semantice în interiorul documentelor XHTML. RDFa a fost dezvoltat după apariția microformatelor, încercînd să reutilizeze cele mai bune cncepte din acestea. RDFa este interoperabil cu limbajul RDF și suportă spațiile de nume XML și sintaxe de compactare a URI-urilor.
Limbajul RDFa permite publicare de date semantice fără restricții. Pentru definirea predicatului unui triplete se utilizează unul din atributele property, rel sau rev. Obiectele sunt reprezentate prin atribute href, resource sau src. Obiectele cu valori literale se declară folosind atributul content sau textul de limitat de etichete.
Capitolul 3. Învățământul electronic în Web-ul Semantic
În acest context voi prezenta studiul platformelor de management al conținutului educațional și exemple de meta-date pentru imbunătățirea serviciilor oferite.
3.1 Sisteme de e-Learning
Aceste sisteme dupa denumirea pe care o are este utilizat în tehnologii informaționale și de comunicare în procesele de predare și învățare. Învățământul online, învățământ virtual învățământ bazat pe rețea sau web, toate acestea se referă la utilizarea tehnologiilor infornaționale în procesul educațional.
Definiția acestui termen a fost dată de consiliul de evaluare a învățământului deschisși la distanțădin Marea Britanie(Open and Distance Learning Quality Council UK) [11] : “ E-Learning-ul este procesul eficient de învățare creat prin combinarea livrării digitale de conținut, cu suport și servicii. “
În sectorul corporațiilor , aceste tehnologii E-learning au fost adopltate pentru reduce costurile de instruire ale angajaților. Același efect pentru a pune la dispoziția studentilor l-au folosit și Universitățile pentru a imbunătăți accesul studenților la programele lor educaționale.
Evoluția e-Learning este strict legată de cea a calculatoarelor și internetului. Tehnologiile internet și accesul de mare viteză la rețeaua globală au încurajat dezvoltarea sistemelor educaționale electronice. Inițial au existat două tipiri fundamentale de e-Learning:
Sincron – interacțiunea între participant și tutor se realizează în timp real prin intermediul internetului. Principalele avantaje ar fi următoarele :posibilitatea monitorizării activităților de învățare, conectivitate la nivel global.
Asincron – participanții pot parcurge mterialele, fără interacțiune în timp real cu tutorele. Informațiile sunt disponibile non-stop. Avantajul este dat de faptul că informația este disponibilă mereu pentru student, alte avantaje ar fi: flexibilitatea, se poate adresa un număr mare de student, cost de producție redus.
Raportat la cele doua platform, a apărut conceptul de învățământ mixt sau blended learning. Acestea presupun utilizarea de concepte din învățământul sincron și asincron. Motivele pentru care se allege implementarea unui sistem de tip mixt sunt comform lui Graham [12]:
Imbunătățirea practicilor pedagogice – creșterea eficenției procesului didactic, strategii de transmitere a informației în strategii interactive;
Creșterea flexibilității și accesului – accesarea materialelor didactice de catre studenți de la distanță, dar păstând interactiune cu tutorele față în față;
Eficiența costului – un sistem educațional mixt ar putea duce la un număr mai mic de tutori.
3.2 Platforme e-Learning
Un pachet software proiectat pentru a facilita învățarea folosind ca mediu de comunicare Internetul este LMS(Learning Management System). Acesta rulează pe un server Web, care este gestionat de catre unitatea de învățământ sau universitatea unde se țin respectivele cursuri. Ca să putem evidenția diferențele dintre un LMS și un site web , putem afirma că instituțiile pot restricționa accesul studenților inscriți la un curs, pot să prezinte materialele într-un mod automat și pot minitoriza accesarea acestora.
Furnizare de conținut educațional , permite la un LMS ca procesul educațional să se desfășoare colaborativ. Acest sistem pune la dispoziția studenților un sistem care conține forumuri de discuții, în care studenții pot sa participe, aceste unelte folosite fiin asincrone.Uneltele sincrone(conferinte audio-video, mesagerie instant) sunt de asemenea integrate în LMS-uri. Raportat la fiecare instituție în parte acestea pot opta pentru utilizarea unui LMS la trei posibilități:
Utilizarea unei variante comerciale;
Utilizare unei variante gratuite;
Dezvoltarea unei platforme educaționale interne.
Pentru o soluțit de durată și stabilă cea mai indicată ar fi cea de achiziționare a unei variante comerciale, ceea ce implica și niste costuri mai ridicare de achiziționare a licenței și suportului. Dacă optăm pentru o variantă gratuită în sursă deschisă, care oferă aproximativ aceleași facilități, are avantajul de adaptare a platformei la nevoile unitații de învățământ. Ca sa evidențiem și un dezavantaj al platformei gratuite ar fi acela de administrare, dezvoltare care implica și acesta niște costuri suplimentare. Exemple de soluții comerciale, cele mai utilizate sunt Blackboard și WebCT, iar ăn sursă deschisă ar fi Moodle, Sakai și OCW.
Utilizarea majoritară în Romania este cea a platformei Moodle, aproximativ 243 de instanțe, având un grad destul de mare de utilizare.Modular Object Oriented Dynamic Learning Environment(Moodle) este construit pe un concept modular, în acest mod se realizează foarte ușor integrarea de module externe pachetului de bază. Materialele educaționale se fac în funcție de cursul care îi aparțin, cea mai mare paste este destinată definirii cursului respectiv, impreună cu datele necesare descrierii lui. Acest curs reprezintă un spațiu comun între studenți și tutore. Cursurile pot fi organizate pe categorii, utilizând un sistem ierarhic. În astfel de cazuri există următoarele tipuri de cursuri:
Formatul subiecte, pemite organizare pe module de studii. Se pot utiliza toate uneltele de comunicare disponibile.
Formatul săptămânal, este organizat pe săptămîni de studiu.
Formatul social, structurat în jurul unui forum, materialele fiind în planul secund. Învățarea cursului constă în discuții libere purtate între participanți.
Formatul SCROM, acesta permite importul de obiecte educaționale din exterior.
Activitățile de tip tema pe care le poate adauga un tutore sunt următoarele:
Urcare fișier – se poate incărca un singur fisier sau mai multe arhivate intr-un singur fișier.
Urcare avansată de fișiere – mai multe fișiere urcate și posibilitatea scrierii unui mesaj pentru fiecare fișier în parte.
Text online – folosind editorul integrat în platformă, poate să compună sau să editeze text.
Activitatea offline – utilizată pentru a comunica cerințele unei teme.
Activitatea SCROM permite tutorelui să urce și să includă în curs orice pachet care rspectă acest format. SCROM este o colecție de specificații, care permit ca resursele web educaționale să fie reutilizabile. Modulul workshop este o evaluare făcută de către colegi. Activitate de sugestii (Feedback) pentru colectarea de informații de evaluare. Modulul Choice permite participanților la curs să deschidă subiecte pe o anumită temă, pentru realizare unui proces de votare cu privire la activitățile desfășurate.Forumurile pot fi utilizate în comunicarea asincronă, discuțiile fiind disponibile și celorlalți participanți la discuție. Chatul permite colaborarea intr-un mod sincron. Blogul poate fi utilizat pentru a realiza un conținut individual, sugestiile pot fi date de participanți.
Evaluare participanților se face cu ajutorul modulului Quiz, care permite definirea mai multor tipuri de teste(tip eseu, cu raspuns scurt, cu răspunsuri multiple, etc.).
3.3 Obiecte educaționale
Platformele LMS asigură administrarea procesului educațional, a resurselor și utilizatorilor implicați. Standardele de realizare a resurselor electronice educaționale[13] trebuie să asigure următoarele:
Accesibilitate – să poată să fie accesate din mai multe locații;
Interoperabilitatea – utilizare unei componente pe mai multe platforme;
Durabilitatea – capacitatea de a fi refolosite pe o perioadă lungă de timp fără reproiectare sau reconfigurare;
Reutilizarea – utilizarea componentelor în mai multe aplicații și contexte.
Standardele utilizate la scară înaltă sunt: SCORM și IMS. Moodle oferă suport pentru ambele standarde.
3.3.1 SCROM
Este o colecție de standarde și specificații pentru impachetarea și definirea într-o formă partajabilă și reutilizabilă. SCROM propune propune utilizarea de obiecte partajabile de conținut (SCO) care conțin instrucțiuni și materiale educaționale, astfel rulate vor reda informația conținută utilizatorului. Acestea pot fi integrate în platforme educaționale sau pot fi ăncarcate în baze de date de obiecte educaționale.Meta-informația conținută în aceste pachete este utilizată pentru localizarea obiectelor conținute[14].
Un astfel de pachet SCROM (Shareable Content Object Reference Model ) este o arhivă, care conține obiecte care pot fi transmise folosind Internetul. Componentele conținute de pachetele SCROM sunt[15]:
Resurse – reprezentari electronice de conínut media, text, imagini, audio, HTML. Pot fi reutilizate în diferite contexte și aplicații.
SCO – cea mai mică unitate logică de informație care poate fi livrată cursantului prin intermediul unui LMS. Este elementul care comunică cu platforma LMS.
Agregare – o colecție de activități relaționate. Contine obiecte SCO sau alte elemente de agregare. Este utilizat pentru a grupa conținutul pentru a fi redat în ordinea dorită de tutore.
Organizarea – Obiectele SCO sunt structurate aborescent. SCROM este o agregare de tip rădăcină.
Pentru declararea unui manifest SCROM se utilizează limbajul de marcare XML, iar pentru organizarea conținutului se va folosi specificațiile IMS. Avem trei secțiuni principale:
Organization, se descrie organizarea și agregarea obiectelor ;
Resource, sunt introduce resursele disponibile;
Metadata, versiunea de SCROM și alte meta-informații.
Meta-datele sunt utilizate pentru cautarea pachetelor SCROM si ne pune la dispoziție un mecanism prin care sunt descrise caracteristicile acelui pachet.
<manifest>
<metadata> … </metadata>
<organization>
<item identifier="Agregare1">
<item identifier="SCO1" identifierref="resursa1">…</item>
<item identifier="SCO2" identifierref="resursa2">…</item>
</item>
<item identifier="SCO3" identifierref="resursa3">…</item>
</organization>
<resource>
<resource identifier="resursa1">…</resource>
resource identifier="resursa2" >… </resource>
resource identifier="resursa3" >… </resource>
</resource>
</manifest>
Pentru definirea meta-datelor este recomandată utilizarea standardului IEEE LOM[16], care descrie elemente ce pot fi utilizate pentru a construi meta-date. Modelul este structurat în opt categorii de elemente:
Categoria generală, descrie informația generală despre pachetul SCROM;
Ciclul de viață, descrie istoricul și forma curentă a pachetului;
Categoria meta-metadatele, descrie informații despre componenta de meta-date;
Categoria tehnică, descrie caracteristicile și cerințele tehnice;
Categoria educațională, descrie caracteristicile pedagogice;
Categoria drepturi, derepturile de autor;
Categoria adnotări, pentru a introduce comentarii;
Categoria clasificări, modul în care componentele fac parte dintr-un sistem de clasificare.
Toate instanțele de meta-date vor avea un nod parinte <lom>și cuprinde toate categorile de mai sus. Este necesară declararea spațiilor de nume în elementul <lom>. SCROM permite declararea meta-datelor în fișierul manifest.Acestea pot fi:
Meta-date de agreare a conținutului;
Meta-date de organizare a conținutului;
Meta-date de activitate;
Meta-date ale elementelor SCO;
Meta-date de resurse.
SCROM permite declararea meta-datelor și în fișiere externe.Legatura se realizează în fișierul manifest prin nodul <adlcp:location> de unde se furnizează locația exactă a meta-datelor.
3.3.2 IMS
IMS (Instructional Management System) Global Consortium , este un consorțiu de furnizori și dezvoltatori de resurse educaționale care doresc să stabilească specificatii bazate pe XML pentru a descrie caracteristici cheie . Specificațiile propuse de IMS Global Consortium este Common Cartige, acesta definește un format deschis pentru distrubuția de conținut în Internet. Proiectat pentru a asigura instalarea și operarea corectă a conținutului în orice platformă compatibilă IMS CC.Specificațiile definite de consorțiu se bazează pe următoarele[17]:
IEEE LOM – utilizat și la pachetele SCROM;
IMS Content Packaging – facilitează imiortul, exportul, agreare de conținut între două sisteme;
IMS Questions & Test Interoperability – permite schimbul de elemente de test;
IMS Authorization Web Service – modul de comunicare între LMS și pachetul CC;
IMS Basic Learning Tools Interoperability – integrarea de conșinut și unelte externe.
Unitatea de organizare a resurselor sunt impachetate într-un dosar. Acesta conține o colecție de elemente si dosare copil care sunt organizate într-o anumită ordine. Aceste dosare pot conține mai multe tipuri de resurse. Aceste elemente pot să fie fișiere HTML, imagini, documente PDF, flash, etc. Resursele pot fi și legături web, specificându-se titlul, fereastra în care să se deschidă și dimensiunile acestora. Dosarele pot să mai conțină și documente XML care descriu informația necesară integrării de unelte externe folosind specificația IMS LTI. Platforma educațională care dorește să citească acest document apelează unealta externă pe baza informațiilor conținute în acest document. În acest mod meta-datele se păstrează folosinduse un profil redus al specificației IEEE LOM , aceștia având doar cei mai folosiți termeni. Profilul este descris folosind termeni din vocabularul Dublin Core. Ca o conluzie referitoare la standardul IEEE LOM, acesta se poate reutiliza și extrage meta-informații din obiecte educaționale pentru aplicații Semantic Web.
Capitolul 4. Meta-date educaționale în formate RDF
Au fost dezvoltate specificațiile de declarare de meta-date pentru a permite interoperabilitatea între diferiți agenți software, dar și o mai bună identificare a resurselor educaționale, IEEE LOM și DC. Categoria intermediară este reprezentată de meta – date semi-semantice, adică un profil IEEE LOM extins cu anumite componente semantice. O altă categorie este cea de meta-date semantice, acestea folosind modele derivate din IEEE LOM sau alte modele mai noi. Pentru transformarea unor meta-date deja existente în fromat XML LOM în triplete RDF se face prin realizarea unui fișier de legatură pentru definirea termenilor în RDF[18].
Folosind limbajul RDFS, se defines termenii din IEEE LOM folosind vocabulare deja existente(vCard, DC). Datele despre cursant, interacțiunea acestuia cu conținutul cursului, evaluarea cursantului, toate acestea se strîng într-un raport colectiv. Informațiile se păstreză folosind modele RDF. Aceasta poate să fie , vazută din prisma autorilor o extensie a pachetului SCROM. Putem da ca exemplu proiectul EDUTELLA care a avut ca scop realizarea infrastructurii necesare în sisteme educaționale P2P(Peer to Peer), folosinf RDF [19]. Această structură conține:
Serviciu de interogare;
Serviciu de replicare;
Serviciu de mapare;
Serviciu de adnotare;
Utilizare meta-datelor obiectelor educaționale în format RDF este reprezentată de integrarea resurselor educaționale partajate din diferite surse folosind principiile Linked Data [20]. Aici se realizează convertirea datelor LOM extrase din resursele partajate în format RDF, stocarea acestora într-o bază de cunoștințe, prin interogari de date Linked Open Data, se aplică mecanisme de imbogățire a datelor . O paltformă educațională care să integreze meta-date RDF ar putea crește posibilitatea de a se putea adapta la nevoile utilizatorilor. Utilizarea microformatelor ajută la structurarea pe bucați mai mici de informație, care ajută la imbunătățirea serviciilor oferite. Extragerea de informații din pagini web se bazează pe standardele de publicare a datelor (microformate și RDFa), pentru a păstra semnificația informației si structura conținutului. Construcția unui bloc Moodle, în care sunt utilizate pentru publicare standardele hCard, Vcard ți codurile QR de marcare pentru dispozitive mobile.LCMS-urile în sursă deschisă , Moodle este foarte des utilizat, acesta permite implementarea unui curs rapid și ieftin.
Moodle ca și sistem de management de conținut , folosesște Web-ul pentrul administrare și distribuție de conținut. Microformatele sunt standarde simple care sunt utilizate pentru publicarea inteligentă a informatiilor pe Web. Formatul vCard este cel mai utilizat la realizarea carților de vizită electronice, la aplicațiile de stocare de date cu caracter personal.
Codurile QR sunt niște coduri de bare bidimensionale, care sunt din ce în ce mai utilizate.Atît codurile vCard cât și QR sunt acceptate de majoritatea sistemelor de operare mobile. Printre cele mai cunoscute coduri de bare bidimensionale sunt QR(Quick Respons), Data Matrix și codurile Aztec. Spre deosebire de alte coduri , facem referire la codurile QR care sunt capabile să codeze orice tip de date(date binare, coduri de control, simboluri, litere sau caractere numerice) în aproximativ o zecime din spațiul alocat unui cod de bare clasic. Acestea au capacitatea de corecta erorile și pot fi citite cu ușurință din diferite unghiuri.
4.1 Implementarea unei ontologii educaționale
Dezvoltarea rapidă a multor aplicații educaționale a dus la noi metode de învățare bazate pe unelte și aplicații educaționale. Majoritatea au tendința de a compara o platformă realizată de sistemele educaționale electronice cu o platformă online, care permite studentului să se documenteze și să aibă acces la datele necesare procesului de învățare. Acest lucru a fost însă benefic pentru dezvoltarea acest aplicații, ducând la cresterea mediului de lucru și a comunităților de utilizatori care colaborează în scopuri educaționale.
Aceste elemente sunt organizate în untăți de învățare având scopul de a putea reutiliza si posibilitatea de interoperabilitate. Cele mai cunoscute limbaje pentru modelarea conținutului educațional se gasesc în:
IMS LD – o serie de activități care permit utilizatorului să atingă anumite obiective educaționale; [http://www.imsglobal.org/learningdesign/]
IEEE LOM – descrie aspecte tehnice referitoare la e-Learning;
SCROM – o colecție de specificații care permit partajarea , impachetarea și distribuția obiectelor educaționale[21]; [http://www.adlnet.gov/]
DC – o gamă largă de resurse partajate în rețea.
Specificațiile în limbaj natural sunt mai ușor de înteles de o fiinșă umană, dar mai dificil de procesat automat de un sistem software. Pentru asta vom utiliza ontologii ca să descriem într-un mod explicit structura și sensul elementelor ce conțin meta-date. Ontologiile pot sa fie folositore cînd vine vorba de organizare de conținut. Pentru aplicație care interogheză date semantice, identificarea unei resurse educaționale poate să fie o sarcina ușor de îndeplinit, prin creearea unei ontologii bine definite.
Web-ul Semantic are ca bază ontologiile formale, acestea ajută la miscarea și transmiterea datelor către alte masini. Pentru acest lucru trebuie sa clarifică de la început tipul ontologiilor care trebuie sa le folosim pentru a ne atinge scopul dorit. Ontologiile pot fi clasificate după nivelul de expresivitate și formalitate dar și după scopul ontologiei.
Ontologii de informații – sunt utilizate în colaborarea între oameni;
Ontologii lingvistice – dicționare, taxonomii, baze de date lexicale;
Ontologii software – activități de dezvoltare de software. Cel mai cunoscut este UML(Unified Modeling Language);
Ontologii formale – termenii sunt utilizați ca simboluri.
După scopul ontologiei, se impart în:
Ontologii locale – nu permit partajarea cunoștințelor;
Ontologii de domeniu – sunt legate de o anumită aplicație;
Ontologii de bază – descrierea conceptelor și relațiile de bază;
Ontologii generale – conțin cunoștințe generale;
Ontologii fundamentale – definesc cunoștinte de bază.
Pentru ca un sistem care utilizează această ontologie să poată interacționa cu alte aplicații, este necesară reutilizarea vocabularelor sau ontologiilor dintr-un anumit domeniu. Ontologiile au un rol important în dezvoltarea de agenți de comunicare, în contextul Web-ului Semantic. Adaugarea unui sens în Web, astfel încât datele să fie mai accesibile și mai ușor manipulate de către masini și să fie mult mai accesibile și pentru om.
Un prim pas în proiectarea ontologiei educaționale a fost acela de a stabili domeniul ontologiei. Ontologiile sunt un extraordinar produs al Web-ului Semantic. Semantica asigură utilizatorul uman că performanțele masinii sunt la un nivel ridicat, reușind să pună la dispoziție nu doar prelucrarea informațiilor disponibile , dar oferind și înțelegerea și dezvoltarea de noi șabloane de deducere a informației, cu scopul de a extinde capacitatea de extragere a cunoștințelor.
4.2 Semantic Web for Earth and Environmental Terminology(SWEET)
Ontologiile SWEET sunt scrise în limbajul OWL și sunt accesibile publicului. SWEET 2.3 are pete 6000 de concepte în ontologii și 200 seprate. Alternativ, aceste ontologii pot fi privite individual, SWEET 2.3 fiind format din nouă concepte de nivel superior/ontologii. SWEET este o ontologie de nivel mijlociu, majoritatea utilizatorilor adaugă o ontologie specifică domeniului folosind componente pentru nevoile utilizatorului final.
Exemplu practic de utilizare a tehnologiilor Semantic Web cu ajutorul programelor de dezvoltare Eclipse si Tomcat Apache.
Pentru dezvoltarea acestui proiect am folosit un program accesibil tuturor celor care doresc sa utilizeze resursele gratuite. Programul folosit se numeste Eclipse IDE for Java EE Developers, versiunea pe 32 biti, pe care o putem gasi pe site-ul oficial https://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/lunar. Am utilizat resursele pe care le pune la dispoziție acest program, importând majoritatea librariilor necesare pentru realizarea proiectului.
Numele acestui proiect este dat aleatoriu, urmatorul pas a fost crearea unui Java Project numit „Rosolina” care generează o sursă și librariilie JRE din sistem. Sursa creată conține o clasa denumită în acest proiect „FoafRPC.java” care constiutuie baza acestei aplicații. În acest proiect am folosit si resursele oferite de Jena Apache, arhiva utilizată o putem gasi pe site-ul : https://jena.apache.org/download/index.cgi , de unde am utilizat librariilie necesare pentru crearea și accesarea fisierului RDF creat.
Clasa realizată „FoafRPC” conține un String care este denumit foaf.rdf, acest model realizează adaugarea atributelor persoanei create generând un String : [ String uri = "http://rosolina.com/" + person.get("familyName") + "/" + person.get("firstName");], crearea unei persoane [public static String createPerson(Object p)], urmată de selectarea persoanei dupa e-mail [public static Resource getPersonByEmail(String email, Model model)] și afișarea respectivei persoane [public static List<HashMap<String, Object>> listPersons()]. În continuare vom explica configurarea serverului Tomcat Apache.
Foaf.RPC.java
package com.rosolina.logic;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.google.gson.internal.LinkedTreeMap;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.ResIterator;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.sparql.vocabulary.FOAF;
import com.hp.hpl.jena.util.FileManager;
import com.hp.hpl.jena.vocabulary.RDF;
public class FoafRPC {
public static final String rdfFileName = "foaf.rdf";
public static String createPerson(Object p) throws IOException {
LinkedTreeMap<String, Object> person = (LinkedTreeMap<String, Object>)p;
Model model = loadModel();
String uri = "http://rosolina.com/" + person.get("familyName") + "/" + person.get("firstName");
Resource r = model.createResource(uri);
r.addProperty(RDF.type, FOAF.Person);
r.addProperty(FOAF.firstName, person.get("firstName").toString());
r.addProperty(FOAF.family_name, person.get("familyName").toString());
r.addProperty(FOAF.mbox, person.get("email").toString());
r.addProperty(FOAF.accountName, person.get("account").toString());
if(person.get("homepage") != null && person.get("homepage").toString() != "") {
r.addProperty(FOAF.homepage, person.get("homepage").toString());
}
if(person.get("gender") != null && person.get("gender").toString() != "") {
r.addProperty(FOAF.gender, person.get("gender").toString());
}
if(person.get("knows") != null && person.get("knows").toString() != "") {
Resource re = getPersonByEmail(person.get("knows").toString(), model);
r.addProperty(FOAF.knows, re);
}
FileWriter out = new FileWriter(rdfFileName);
try {
model.write( out, "RDF/XML-ABBREV" );
}
finally {
try {
out.close();
}
catch (IOException closeException) {
return "";
}
}
return uri;
}
public static List<HashMap<String, Object>> listPersons() {
Model model = loadModel();
List<HashMap<String, Object>> persons = new ArrayList<HashMap<String, Object>>();
ResIterator iter = model.listResourcesWithProperty(RDF.type, FOAF.Person);
while(iter.hasNext()) {
Resource resource = iter.nextResource();
HashMap<String, Object> person = new HashMap<String, Object>();
String firstName = resource.getProperty(FOAF.firstName).getObject().toString();
String familyName = resource.getProperty(FOAF.family_name).getObject().toString();
String email = resource.getProperty(FOAF.mbox).getObject().toString();
String account = resource.getProperty(FOAF.accountName).getObject().toString();
String homepage = resource.getProperty(FOAF.homepage).getObject().toString();
String gender = resource.getProperty(FOAF.gender).getObject().toString();
person.put("firstName", firstName);
person.put("familyName", familyName);
person.put("email", email);
person.put("account", account);
person.put("uri", resource.getURI());
person.put("homepage", homepage);
person.put("gender", gender);
persons.add(person);
}
return persons;
}
private static Model loadModel() {
File f = new File(rdfFileName);
if(!f.exists()) {
try {
f.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Model model = ModelFactory.createDefaultModel();
model.setNsPrefix("foaf", FOAF.NS);
try{
model = FileManager.get().loadModel(rdfFileName);
} catch(Exception e) {
}
return model;
}
public static Resource getPersonByEmail(String email, Model model) {
if(model == null) {
model = loadModel();
}
ResIterator iter = model.listResourcesWithProperty(FOAF.mbox, email);
if(iter.hasNext()) {
Resource res = iter.nextResource();
return res;
}
return null;
}
}
Un nou instrument utilizat în acest proiect este Dojo 1.10, un instrument pentru Ajax bazat pe CSS interogare, JSON etc. Acest instrument ne ajută la vizualizare mai usoară a datelor atunci când vom face conexiunea cu serverul Tomcat Apache.
Index.jsp
Acesta este fișierul index.jsp în care am utilizat resursele Dojo1.10 pentru crearea interfeței paginii web si conectare a acesteia cu datele din Eclipse :
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Rosolina FOAF</title>
<script>
var dojoConfig = {
isDebug: true,
async: true,
parseOnLoad: true,
baseUrl: "./lib",
packages:
["dojo","dijit", "dojox", "gridx", "rosolina"]
};
</script>
<script src="lib/dojo/dojo.js"></script>
<script type="text/javascript">
require([
'dojo/_base/array',
'dojo/on',
'dijit/registry',
'dojo/store/Memory',
"dijit/form/FilteringSelect",
'gridx/Grid',
'gridx/core/model/cache/Sync',
'gridx/modules/Menu',
'rosolina/Services',
"dijit/Dialog",
"dijit/Menu",
"dijit/MenuItem",
"dijit/form/Button",
"dijit/form/RadioButton",
"dijit/form/ValidationTextBox",
"dojo/domReady!"
], function(array, on, registry, Store, FilteringSelect, Grid, Cache, Menu, Services){
var methods = (new Services()).methods;
createPerson = function() {
console.log(this.personDialog.get('value'));
var person = this.personDialog.get('value');
methods.createPerson(person).then(function(uri) {
if(uri) {
person.uri = uri;
this.grid.store.add(person);
}
});
}
methods.listPersons().then(function(persons){
console.log(persons);
for(var i = 0; i < persons.length; i++) {
this.grid.store.add(persons[i]);
}
var stateStore = new Store({
data: array.map(persons, function(p) {
return {name: p.firstName + " " + p.familyName, id: p.email};
})});
var filteringSelect = new FilteringSelect({
id: "knowsSelect",
store: stateStore,
name: "knows",
searchAttr: "name"
}, "knowsSelect");
});
var store = new Store({
data: []
});
var columns = [
{field: 'firstName', name: 'First name', width: "200px"},
{field: 'familyName', name: 'Family name', width: "200px"},
{field: 'email', name: "Email", width: "200px"},
{field: 'account', name: "Account", width: "150px"},
{field: 'gender', name: "Gender", width: "100px"},
{field: 'uri', name: 'URI'},
{field: 'homepage', name: "Homepage"}
];
this.grid = new Grid({
cacheClass: Cache,
store: store,
structure: columns,
modules: [ Menu ]
}, 'gridNode'); //Assume we have a node with id 'gridNode'
grid.startup();
//this.grid.menu.bind(personSelectedMenu, {hookPoint: "row", selected: true});
});
</script>
<link rel="stylesheet" type="text/css" href="lib/dijit/themes/claro/claro.css" />
<link rel="stylesheet" href="lib/gridx/resources/claro/Gridx.css" />
<style type="text/css">
.label {
width:80px;display:inline-block;margin-bottom:10px;
}
.mar10t {
margin-top:10px;'
}
</style>
</head>
<body class="claro">
<h1>FOAF</h1>
<div>
<button type="button" id="personBtn" data-dojo-type="dijit/form/Button" data-dojo-props="onClick:function(){personDialog.reset(); personDialog.show();}">Add Person</button>
<button type="button" id="groupBtn" data-dojo-type="dijit/form/Button">Create Group</button>
</div>
<div style="margin-top:20px">
<div id="gridNode" style="width: auto; height: 300px"></div>
</div>
<!– <div data-dojo-type="dijit/Menu" data-dojo-id="personSelectedMenu" style="display: none;"> –>
<!– <div data-dojo-type="dijit/MenuItem" onclick='console.log("knows")'>Knows</div> –>
<!– </div> –>
<div data-dojo-type="dijit/Dialog" data-dojo-id="personDialog" title="Add person" style="width:650px">
<div style="margin-bottom:30px;height:300px">
<div style="float:left; width:50%">
<div class="mar10t">
<span class="label">First name:</span>
<input data-dojo-type="dijit/form/ValidationTextBox" name="firstName" id="firstName" data-dojo-props="required:true">
</div>
<div class="mar10t">
<span class="label">Email:</span>
<input data-dojo-type="dijit/form/ValidationTextBox" name="email" id="email" data-dojo-props="required:true">
</div>
<div class="mar10t">
<span class="label">Homepage:</span>
<input data-dojo-type="dijit/form/ValidationTextBox" name="homepage" id="homepage">
</div>
<div class="mar10t">
<span class="label">Knows:</span>
<input id="knowsSelect" name="knows">
</div>
</div>
<div style="float:left; width:50%">
<div class="mar10t">
<span class="label">Family name:</span>
<input data-dojo-type="dijit/form/ValidationTextBox" name="familyName" id="familyName" data-dojo-props="required:true">
</div>
<div class="mar10t">
<span class="label">Account:</span>
<input data-dojo-type="dijit/form/ValidationTextBox" name="account" id="account">
</div>
<div class="mar10t">
<span class="label">Gender:</span>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="gender" value="female">Female</input>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="gender" value="male">Male</input>
</div>
</div>
<div class="clear"></div>
</div>
<div class="dijitDialogPaneActionBar" style="text-align:center">
<button data-dojo-type="dijit/form/Button" type="submit" data-dojo-props="onClick: function(){createPerson();personDialog.hide();}">OK</button>
<button data-dojo-type="dijit/form/Button" type="button" data-dojo-props="onClick:function(){personDialog.hide();}"
id="cancel">Cancel</button>
</div>
</div>
</body>
</html>
Pentru a realiza conexiunea între Eclipse și Server am utilizat și o clasă numită „RPCAdaptor” unde am folosit un Servlet. Această componentă interacționează cu clienții (din rețea) print-o paradigmă de tip cerere-răspuns. Utilizând Eclipse IDE for Java EE Developers, ne oferă posibilitatea gestionării unui container care extinde funcționalitatea unui server Web(poate genera conținut dinamic, poate controla fluxul unei aplicații Web). Vom utiliza un java.servlet.http pentru protocolul HTTP.
Acesta este conținutul pachetului „RPCAdaptor”:
package com.rosolina.rpc;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import com.rosolina.logic.FoafRPC;
/**
* Servlet implementation class RPCAdapter
*/
@WebServlet("/RPCAdapter")
public class RPCAdapter extends HttpServlet {
private static final long serialVersionUID = 1L;
static Map<String,Object> rpcTargets = new HashMap<String,Object>();
public RPCAdapter() {
// TODO Auto-generated constructor stub
}
static {
registerRpcTarget("/foaf", new FoafRPC());
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Gson gson = new Gson();
String content = streamToString(request.getInputStream());
JsonRpcRequest rpcRequest = gson.fromJson(content, JsonRpcRequest.class);
Object targetPath = rpcTargets.get(request.getPathInfo());
JsonRpcResponse rpcResponse = new JsonRpcResponse();
rpcResponse.setId(rpcRequest.getId());
try {
for (Method method : targetPath.getClass().getMethods()) {
if (method.getName().equals(rpcRequest.getMethod())) {
Object result = method.invoke(targetPath, rpcRequest.getParams());
rpcResponse.setResult(result);
rpcResponse.setError(null);
response.getOutputStream().print(gson.toJson(rpcResponse));
return;
}
}
throw new RuntimeException("Could not find the method " + rpcRequest.getMethod() + " on the object " + targetPath);
} catch (Throwable e) {
rpcResponse.setResult(null);
rpcResponse.setError(e.getMessage());
response.getOutputStream().print(gson.toJson(rpcResponse));
}
}
public static void registerRpcTarget(String path, Object target) {
rpcTargets.put(path, target);
}
public static String streamToString(InputStream in)
throws IOException {
BufferedInputStream bis = new BufferedInputStream(in);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result = bis.read();
while(result != -1) {
byte b = (byte)result;
buf.write(b);
result = bis.read();
}
return buf.toString();
}
}
Instalarea și configurarea server-ului Tomcat Apache s-a realizat prin urmatoarii pași:
Copierea PACHETULUI de pe site-ul oficial : http://tomcat.apache.org/download-80.cgi ;
Dezarhivare pachetului și configurarea serverului în Eclipse;
Deschiderea serverului Tomcat Apache în Eclipse – localhost:8080/Rosolina
Afișarea conținutului ;
În imaginea de ma jos sunt afișate datele deja introduse în Eclipse.
Dupa introducerea datelor se genereaza un fisier RDF:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>
<rdf:Description rdf:about="http://rosolina.com/Botez/Ionela">
<foaf:family_name>Botez</foaf:family_name>
<foaf:knows rdf:resource="http://rosolina.com//"/>
<foaf:accountName>Ionela</foaf:accountName>
<foaf:mbox>[anonimizat]</foaf:mbox>
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<foaf:firstName>Ionela</foaf:firstName>
<foaf:gender>female</foaf:gender>
<foaf:homepage>www.ionelab.ro</foaf:homepage>
</rdf:Description>
<rdf:Description rdf:about="http://rosolina.com//">
<foaf:family_name></foaf:family_name>
<foaf:firstName></foaf:firstName>
<foaf:accountName></foaf:accountName>
<foaf:homepage>www.ionmescu.ro</foaf:homepage>
<foaf:gender>male</foaf:gender>
<foaf:knows rdf:resource="http://rosolina.com//"/>
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<foaf:mbox></foaf:mbox>
</rdf:Description>
<rdf:Description rdf:about="http://rosolina.com/Ionescu/Marius">
<foaf:gender>male</foaf:gender>
<foaf:mbox>[anonimizat]</foaf:mbox>
<foaf:firstName>Marius</foaf:firstName>
<foaf:knows rdf:resource="http://rosolina.com/Botez/Lucian"/>
<foaf:family_name>Ionescu</foaf:family_name>
<foaf:accountName>home</foaf:accountName>
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<foaf:homepage></foaf:homepage>
</rdf:Description>
<rdf:Description rdf:about="http://rosolina.com/Botez/Lucian">
<foaf:accountName>Marius</foaf:accountName>
<foaf:family_name>Botez</foaf:family_name>
<foaf:homepage>www.lucianbtz.ro</foaf:homepage>
<foaf:knows rdf:resource="http://rosolina.com//"/>
<foaf:mbox>[anonimizat]</foaf:mbox>
<foaf:firstName>Lucian</foaf:firstName>
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<foaf:gender>male</foaf:gender>
</rdf:Description>
</rdf:RDF
Acest fișier conține date referitoare la persoanele pe care le-am introdus și atributele conținute de fiecare persoană în parte, precum și legaturile(knows) pe care acestea le au.
Datele introduse în Eclipse au generat un fișier .rdf care urmează să fie accesat prin intermediu serverului Tomcat Apache în browser.
În figura de mai sus este prezentată lista persoanelor care au fost adaugate în Eclipse, generând un fișier care este afisat in browser, un tabel care conține date personale despre unele persoane adaugate de mine.
Voi prezenta în continuare modalitatea de introducere a persoanelor, implicit a datelor care le conțin.
În urma completării datelor in casuțele respective, se vor salva datele intr-un fișier numit foaf.rdf care se va regasi în directorul unde este instalat Eclipse. Odata introdusele toate datele programul va genera automat pentru fiecare persoana în parte URI.
Selectarea relațiilor între persoanele introduse
Pentru a realiza o legatura între persoanele introduse (FOAF), am creat o căsuță denumită „Knows” care oferă posibilitatea de selectare a persoanelor care se cunosc sau au legatură între ele.
La finalizarea introducerii persoanelor, respectiv a datelor la fiecare persoana, am generat un graf care ne evidențiază legaturile dintre fiecare persoană în parte și atributele lor.
Graful fișierului foaf.rdf
Concluzii:
Folosind resursele puse la dispozitie de Eclipse, împreuna cu Tomcat Apache am realizat un model de introducere a unor date despre persoane, acestor persoane fiind asociate niște atribute personale. Legat de Semantic Web și cu ajutorul aplicațiilor existente pe internet legate de RDF, precum și alte formate care ne ajuta la realizarea unor ontologii, putem realiza un mod mult mai eficient de cautare și de selectare a datelor existente in mediul web.
Prin simpla introducere a unor persoane, urmată de generarea unui fișier RDF, putem accesa prin internediul unui server cum ar fi cel utilizat Tomcat Apache 8.0.12, datele existente introduse despre acea persoana, adresa de e-mail și multe alte date care ne pot ajuta si simplifica procesul de căutare.
Bibliografie
Academia Română, ―Dicționarul explicativ al limbii române, ediția a II-a.Editura Univers Enciclopedic, 1998.
T. B. Lee, J. Hendler, O. Lassila, and others, ―The semantic web,‖ Scientific American, vol. 284, no. 5, pp. 34–43, 2001.
T. Segaran, C. Evans, and J. Taylor, Programming the Semantic Web, 1st ed. O‘Reilly Media, 2009.
RDF Primer.‖ [Online]. Available: http://www.w3.org/TR/rdf-primer/.
"Resource Description Framework (RDF) Model and Syntax Specification,"[Online]. Available: http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/.
"RDF Vocabulary Description Language 1.0: RDF Schema." [Online].Available: http://www.w3.org/TR/rdf-schema/.
J. Bailey, F.Bry, T. Furche, and S.Schaffert, "Web and semantic web query languages: A survey," Reasoning Web, pp. 95-95, 2005.
A. Seaborne, G. Manjunath, C. Bizer, J. Breslin, S. Das, I. Davis, S. Harris, K. Idehen, O. Corby, K. Kjernsmo, and others, "SPARQL/Update: A language for updating RDF graphs," W3C Member Submission, vol. 15, 2008.
B. McBride, "Jena: A semantic web toolkit," Internet Computing, IEEE, vol. 6, no. 6, pp. 55-59, 2002.
A. Ben, "hGRDDL: Bridging microformats and RDFa," Web Semantics: Science, Services and Agents on the World Wide Web, vol. 6, no. 1, pp. 5460, Feb. 2008.
R. Mason and F. Rennie, Elearning: The key concepts. Taylor & Francis,
2006.
C. R. Graham, "Blended learning systems," Handbook of blended learning: Global Perspectives, local designs. Pfeiffer Publishing, San Francisco, http://www.publicationshare.com/graham_intro. pdf , 2006.
G. Totkov, C. Krusteva, and N. Baltadzhiev, "About the standardization and the interoperability of e-learning resources," in Proceedings of the 5th international conference on Computer systems and technologies, 2004, pp. 1-6.
V. Gonzalez-Barbone and L. Anido-Rifon, "Creating the first SCORM object," Computers & Education, vol. 51, no. 4, pp. 1634-1647, 2008.
"SCORM Users Guide for Programmers." ADLNet.gov, 2011.
P. Jesukiewicz, "SCORM® 2004 4th Edition Content Aggregation Model (CAM) Version 1.1." ADLNet.gov, 2009.
"IMS GLC Common Cartridge Profile: Implementation." 2011.
M. Nilsson, M. Palmer, and J. Brase, "The LOM RDF binding: principles and implementation," in Proceedings of the Third Annual ARIADNE conference, Leuven Belgium, 2003, 2003.
W. Nejdl, B. Wolf, C. Qu, S. Decker, M. Sintek, A. Naeve, M.Nilsson, M.Palmer,and T. Risch, "EDUTELLA: a P2P networking infrastructure based on RDF," in Proceedings of the 11th international conference on World Wide Web, 2002, pp. 604-615.
H. Q. Yu, S. Dietze, N. Li, C. Pedrinaci, D. Taibi, N. Dovrolls, T. Stefanut, E.
Kaldoudi and J. Domingue, "A linked data-driven & service-oriented
architecture for sharing educational resources," 2011.
V. Gonzalez-Barbone and L. Anido-Rifon, "From SCORM to Common Cartridge: A step forward," Computers & Education, vol. 54, no. 1, pp. 88102,2010
Bibliografie
Academia Română, ―Dicționarul explicativ al limbii române, ediția a II-a.Editura Univers Enciclopedic, 1998.
T. B. Lee, J. Hendler, O. Lassila, and others, ―The semantic web,‖ Scientific American, vol. 284, no. 5, pp. 34–43, 2001.
T. Segaran, C. Evans, and J. Taylor, Programming the Semantic Web, 1st ed. O‘Reilly Media, 2009.
RDF Primer.‖ [Online]. Available: http://www.w3.org/TR/rdf-primer/.
"Resource Description Framework (RDF) Model and Syntax Specification,"[Online]. Available: http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/.
"RDF Vocabulary Description Language 1.0: RDF Schema." [Online].Available: http://www.w3.org/TR/rdf-schema/.
J. Bailey, F.Bry, T. Furche, and S.Schaffert, "Web and semantic web query languages: A survey," Reasoning Web, pp. 95-95, 2005.
A. Seaborne, G. Manjunath, C. Bizer, J. Breslin, S. Das, I. Davis, S. Harris, K. Idehen, O. Corby, K. Kjernsmo, and others, "SPARQL/Update: A language for updating RDF graphs," W3C Member Submission, vol. 15, 2008.
B. McBride, "Jena: A semantic web toolkit," Internet Computing, IEEE, vol. 6, no. 6, pp. 55-59, 2002.
A. Ben, "hGRDDL: Bridging microformats and RDFa," Web Semantics: Science, Services and Agents on the World Wide Web, vol. 6, no. 1, pp. 5460, Feb. 2008.
R. Mason and F. Rennie, Elearning: The key concepts. Taylor & Francis,
2006.
C. R. Graham, "Blended learning systems," Handbook of blended learning: Global Perspectives, local designs. Pfeiffer Publishing, San Francisco, http://www.publicationshare.com/graham_intro. pdf , 2006.
G. Totkov, C. Krusteva, and N. Baltadzhiev, "About the standardization and the interoperability of e-learning resources," in Proceedings of the 5th international conference on Computer systems and technologies, 2004, pp. 1-6.
V. Gonzalez-Barbone and L. Anido-Rifon, "Creating the first SCORM object," Computers & Education, vol. 51, no. 4, pp. 1634-1647, 2008.
"SCORM Users Guide for Programmers." ADLNet.gov, 2011.
P. Jesukiewicz, "SCORM® 2004 4th Edition Content Aggregation Model (CAM) Version 1.1." ADLNet.gov, 2009.
"IMS GLC Common Cartridge Profile: Implementation." 2011.
M. Nilsson, M. Palmer, and J. Brase, "The LOM RDF binding: principles and implementation," in Proceedings of the Third Annual ARIADNE conference, Leuven Belgium, 2003, 2003.
W. Nejdl, B. Wolf, C. Qu, S. Decker, M. Sintek, A. Naeve, M.Nilsson, M.Palmer,and T. Risch, "EDUTELLA: a P2P networking infrastructure based on RDF," in Proceedings of the 11th international conference on World Wide Web, 2002, pp. 604-615.
H. Q. Yu, S. Dietze, N. Li, C. Pedrinaci, D. Taibi, N. Dovrolls, T. Stefanut, E.
Kaldoudi and J. Domingue, "A linked data-driven & service-oriented
architecture for sharing educational resources," 2011.
V. Gonzalez-Barbone and L. Anido-Rifon, "From SCORM to Common Cartridge: A step forward," Computers & Education, vol. 54, no. 1, pp. 88102,2010
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Utilizarea Tehnologiilor Semantice Web In Dezvoltarea de Aplicatii (ID: 150761)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
