Sunteți pe pagina 1din 67

Universitatea POLITEHNICA București

Facultatea de Automatică şi Calculatoare


Departamentul Automatică şi Informatică Industrială

LUCRARE DE LICENŢĂ

Sistem educațional de tip wiki pentru Ingineria


Sistemelor de Programe

Coordonator Absolvent
Prof. Dr. Ing. Anca Daniela Ioniță Andra Ștefana Solomon

București,2016
Cuprins

1. INTRODUCERE ..................................................................................................................... 4

2.ASPECTE TEORETICE .............................................................................................................. 6


2.1 WEB-UL SEMANTIC ....................................................................................................................... 6
2.1.1 Arhitectura Semantic Web................................................................................................ 7
2.1.2 Legături semantice ........................................................................................................... 9
2.1.3 Ontologii ........................................................................................................................... 9
2.2 WIKI ......................................................................................................................................... 11
2.2.1 Wiki Semantic ................................................................................................................. 12
2.2.2 Platforme Wiki existente ................................................................................................ 14

3. PREZENTAREA DOMENIULUI DE APLICABILITATE ȘI A TEMEI ABORDATE .............................. 19


3.1 DOMENIUL INSTRUIRII ASISTATE DE CALCULATOR (COMPUTER ASSISTED LEARNING) ............................. 19
3.1.1 Utilizarea de ontologii în e-learning ............................................................................... 20
3.1.2 Platforme de e-learning existente .................................................................................. 20
3.1.3 Utilitatea sistemelor de tip wiki în educație ................................................................... 21
3.1.4 Utilitatea wiki-urilor semantice în educație ................................................................... 22
3.2 DESCRIEREA TEMEI ABORDATE: CADRUL DE CUNOȘTINȚE PENTRU INGINERIA SISTEMELOR DE PROGRAME -
„SOFTWARE ENGINEERING BODY OF KNOWLEDGE” ............................................................................... 23
3.2.1 Prezentarea standardului SWEBOK ................................................................................ 23

4.TEHNOLOGII FOLOSITE ........................................................................................................ 26


4.1 XAMPP.................................................................................................................................... 26
4.1.1 Apache HTTP Server ........................................................................................................ 27
4.1.2 MariaDB.......................................................................................................................... 28
4.1.3 PHP ................................................................................................................................. 28
4.2 TIKI WIKI................................................................................................................................... 29
4.3 MEDIAWIKI ............................................................................................................................... 34
4.3.1 Semantic MediaWiki ....................................................................................................... 35
4.4 PROTÉGÉ ................................................................................................................................... 35

5. DESCRIEREA APLICAȚIEI: WIKI SEMANTIC PENTRU INGINERIA SISTEMELOR DE PROGRAME. 38


5.1 PROIECTARE ȘI METODA DE DEZVOLTARE ........................................................................................ 38

2
5.2 DEFINIREA UNEI ONTOLOGII A DOMENIULUI INGINERIEI SISTEMELOR DE PROGRAME CARE SA RESPECTE
CLASIFICĂRILE SWEBOK.................................................................................................................... 39

5.3. CREAREA STRUCTURII PLATFORMEI WIKI IN CONFORMITATE CU STANDARDUL SWEBOK ........................ 39


5.4. POPULAREA CU CONȚINUT ȘI LISTAREA PAGINILOR ........................................................................... 41
5.5 ADĂUGAREA DE LEGĂTURI SEMANTICE ........................................................................................... 43
5.6 FUNCȚIONALITĂȚI SUPLIMENTARE ȘI ADMINISTRARE ......................................................................... 46
5.7 ADMINISTRAREA ACCESULUI ȘI A GRUPULUI DE UTILIZATORI ............................................................... 50
5.8 INTEROGAREA DIRECTĂ A BAZEI DE DATE ......................................................................................... 52
5.9 EXPERIMENT DE IMPORT/EXPORT PENTRU PROTÉGÉ ȘI SEMANTIC MEDIAWIKI ..................................... 54

6. CONCLUZII ȘI DEZVOLTĂRI ULTERIOARE.............................................................................. 57

BIBLIOGRAFIE: ....................................................................................................................... 59

ANEXE ................................................................................................................................... 61

3
1. Introducere

Datorită progresului în tehnologie si a evoluției web-ului, a devenit necesară


implementarea unor instrumente software care să le permită utilizatorilor umani să treacă
de la simpla lectură a unor pagini web statice, la interacționarea cu mediul de lucru si
colaborarea cu alți utilizatori ai internetului.

Prin dezvoltarea ideii că utilizatorul uman trebuie să își controleze propriile date și
realizându-se că inteligența colectivă poate fi valorificată, mediile wiki au devenit un
instrument util de colaborare la scară largă.

Sistemele wiki au fost numite în [1] un instrument eficient pentru educatori;


conform [2], acestea permit studenților să colaboreze într-un spațiu care este actualizat
imediat. Datorită caracteristicilor simpliste, wiki-urile sunt adecvate pentru profesori și
studenți de orice nivel. Acestea pot fi folosite pentru a încuraja colaborarea între
studenți/elevi, permițându-le să își citească, revizuiască și să își modifice reciproc munca.

De asemenea, considerând faptul că tehnologia a revoluționat metodele de învățare


și că studenții sunt tot mai atrași de explorarea gamei largi de informații din mediul online,
putem spune că sistemele wiki sunt o unealtă potrivită pentru prezentarea materialelor de
curs.

Scopul principal al acestei lucrări este studierea, înțelegerea și implementarea unei


aplicații de tip wiki semantic, care să funcționeze ca un suport de cursuri pentru Ingineria
Sistemelor de Programe, ce conține un ghid pentru SWEBOK (Software Engineering Body
of Knowledge).

Pentru a înțelege sistemul implementat, este necesară însușirea conceptului de


sistem wiki în web-ul semantic. Prezentarea unui scurt istoric a sistemelor wiki și a web-
ului semantic in cel de-al doilea capitol, împreună cu o scurtă definire a acestor termeni și
prezentarea unor platforme wiki existente, ajută la formarea unei imagini generale asupra

4
conceptului de wiki semantic, asigurând baza pentru înțelegerea aplicației prezentate în
această lucrare.

În cel de-al treilea capitol este prezentată o scurtă descriere a domeniului și a temei,
urmând ca în capitolul patru să fie descrise tehnologiile folosite la implementare.

În capitolul cinci este prezentată atât implementarea aplicației, cât și un scurt


experiment/studiu de caz asupra creării și importării unei ontologii într-un wiki. Ultimul
capitol conține concluziile și prezentarea posibilelor utilizări și îmbunătățiri ale aplicației.

Am ales această temă de licență datorită faptului că este un domeniu de actualitate,


care se va extinde foarte mult în viitor și pentru că, fiind student, am remarcat că
informația este mult mai ușor de colectat și asimilat atunci când se bazează pe o ierarhie
bine structurată, iar conținutul este stocat în același loc. Legarea semantică a informațiilor
poate facilita cu mult accesul la informație, funcționând ca o relație de trecere între două
materii/domenii diferite care au anumite detalii/termeni în comun.

5
2.Aspecte teoretice

2.1 Web-ul semantic

World Wide Web-ul (WWW), numit mai scurt și web, reprezintă un set de
concepte și relațiile dintre ele deținute de un spațiu informatic, în cadrul căruia site-urile și
documentele sunt identificate prin URL-uri (Uniform Resource Locator) și sunt
interconectate prin intermediul hiperlink-urilor, putând fi accesate prin intermediul
Internetului.

Web-ul a fost inventat în anul 1989 de către Tim Berners-Lee la CERN (Centrul
European de Cercetări Nucleare), venind ca o rezolvare la problemele de comunicare
întâmpinate de către echipele de cercetători. Sistemul implementat avea nevoie de un
program cu funcționalitatea unei porți de acces, care să mapeze structura de informații
existentă într-un model de tip hipertext, la care să ofere acces limitat; acesta este de fapt un
server hipertext care oferă o vizualizare a bazei de date existente.

Fig. 2.1 Poarta de acces permite ca datele existente să fie văzute într-o formă hipertext

6
Web-ul are tendința de a evolua, devenind un mediu colaborativ. Datorită cantității
imense de date, a devenit din ce în ce mai greu să găsim informații cu adevărat utile; cu cât
acest volum de informații crește, cu atât găsirea, organizarea sau accesarea datelor în timp
util devine mai dificilă. Aceste impedimente au dus la apariția unei extensii a web-ului -
web-ul semantic.

Prin intermediul web-ului semantic, datele localizate oriunde pe web pot fi


accesibile și înțelese atât de utilizatorii umani, cât și de echipamentul de calcul prin
adăugarea unor extensii numite metadate la documentele deja existente. Așa cum este
prezentat în [3], web-ul semantic se axează mai mult pe înțeles decât pe structura datelor.

Spre exemplu, la o simplă introducere într-un motor de căutare a unei succesiuni de


cuvinte, vom avea ca rezultat redarea tuturor site-urilor care conțin acele cuvinte; prin
intermediul unui motor de căutare semantic web, rezultatele vor consta în acele pagini care
au ca și proprietăți cuvintele introduse, pentru că web-ul semantic definește sensul
informațiilor și le interpretează.

2.1.1 Arhitectura Semantic Web

Fig. 2.2 Stiva Semantic Web

7
Conform [4], web-ul semantic oferă o arhitectură simplă, care permite ca datele să
fie partajate și reutilizate în cadrul aplicațiilor și întreprinderilor dincolo de restricțiile
impuse în cadrul comunității.

În figura 2.2 este prezentată arhitectura Semantic Web cu funcțiile asociate; aceste
funcții pot fi rezumate după cum urmează:
 Standardele URI (Uniform Resource Identifier) și IRI (Internationalized Resource
Identifier) utilizate pentru identificarea resursei prin intermediul unui șir de
caractere.
 Standardul XML (Extensible Markup Language) este folosit pentru descrierea și
transferul informațiilor pe web, deși nu asociază semantică înțelesului cuvintelor.
 Limbajul RDF (Resource Description Framework), care a apărut din necesitatea de
a asocia un anumit nivel de semantică schemelor XML, este utilizat la descrierea
resurselor, utilizând triplete de forma subiect-predicat-obiect; RDF este standardul
fundamental al web-ului semantic.
 RDFS (RDF Schema) este o extensie a RDF și este utilizat pentru descrierea sau
organizarea proprietăților și a claselor într-o ierarhie
 Limbajul OWL (Web Ontology Language) este o extensie a RDF(S) care permite
în plus definirea de constrângeri asupra proprietăților, cum ar fi: relații între clase,
cardinalitate, simetrie.
 SPARQL (Simple Protocol and RDF Query Language) este un protocol și un
limbaj utilizat pentru interogarea resurselor semantice, asemănător cu SQL-ul.
 RIF (Rule Interchange Format) este un limbaj pentru reprezentarea
regulilor/instrucțiunilor web care pot fi realizate de către echipamentul de calcul.

Celelalte componente ale arhitecturii nu sunt complet definite/standardizate. Acestea au


ca scop definirea unor limbaje de reguli utilizate pentru descrierea unor relații ce nu pot fi
definite prin intermediul standardelor cunoscute și pentru verificarea surselor din care
provin tripletele RDF. Componenta de criptografie se bazează pe semnături digitale și are
un rol foarte important în verificarea provenienței tripletelor RDF, conform [5].

8
2.1.2 Legături semantice

Legăturile semantice reprezintă un atribut descriptiv atașat unui hiperlink, pentru


definirea tipului de relație dintre resursele sursă și destinație. Pentru realizarea acestor
legături este necesar accesul la o bază de date, în care sunt salvate tipurile de legături și
paginile care sunt interconectate prin intermediul lor. Definirea este realizată de către
utilizator, iar de salvarea ca și metadate se ocupă echipamentul de calcul, condiția fiind ca
acesta să dispună de tehnologiile descrise anterior și prezentate în figura 2.2.

Relațiile dintre paginile/obiectele definite pot fi interogate prin intermediul


SPARQL, sau prin diferite instrucțiuni, în funcție de limbajul de generare folosit.

Legăturile semantice pot fi atât unidirecționale, cât și bidirecționale; nu este


obligatoriu ca la destinație să existe o legătură către sursă, însă se pot vizualiza paginile
care conduc către pagina curentă (în engleză „backlinks”). Dacă dintr-o pagină web este
definit același tip de legătură semantică, prin intermediul căreia se poate naviga în n pagini
web, la vizualizarea amănunțită (interogare) a legăturii, putem vedea toate n paginile care
au proprietatea definită de legătură.

Legăturile semantice formează alături de regulile și nodurile semantice, o rețea de


legături semantice, care este orientată mai mult pe conținut, și mai puțin pe corectitudinea
acestuia.

2.1.3 Ontologii

O ontologie reprezintă definirea unor primitive reprezentaționale, prin intermediul


cărora se poate modela o bază de cunoștințe. Primitivele sunt, de obicei clase (sau
concepte), atribute (sau proprietăți) și relații semantice. Definițiile primitivelor conțin
informații cu privire la înțelesul acestora și a restricțiilor de aplicare. O ontologie,

9
împreună cu un set de instanțe ale claselor, constituie o bază de cunoștințe; în realitate este
o linie fină între sfârșitul ontologiei și baza de cunoștințe.

În contextul sistemelor de baze de date, ontologiile pot fi privite ca un nivel de


abstractizare a modelelor de date, echivalente modelelor ierarhice și relaționale, dar
destinate modelării cunoștințelor despre indivizi, a atributelor acestora și a relațiilor dintre
ei. Așa cum este prezentat în [6], se poate afirma că ontologiile sunt reprezentate la nivelul
semantic, în timp ce bazele de date sunt reprezentate la nivel logic sau fizic.

Indiferent de limbajul în care au fost create, majoritatea ontologiilor au o structură


similară, conținând instanțe, concepte, proprietăți și relații. Componente uzuale ale
ontologiilor :
 Instanțe : obiecte de bază;
 Clase : clase, seturi, concepte, tipuri de obiecte;
 Atribute : aspecte, proprietăți, caracteristici ale obiectelor;
 Relații : modurile în care clasele sunt legate între ele;
 Restricții : descrieri formale a ceea ce trebuie sa fie adevărat pentru ca o clauză să
fie considerată intrare;
 Reguli : instrucțiuni de forma IF..THEN care descriu concluziile logice care pot fi
extrase dintr-o clauză;
 Evenimente : schimbări ale atributelor sau relațiilor.

Fig. 2.3 Exemplu de ontologie

10
Există o multitudine de limbaje si editoare asociate pentru creare de ontologii; cel
mai cunoscut este editorul Protégé, care este gratuit, conține o multitudine de exemple, este
dezvoltat de Universitatea Stanford în Java și suportă format OWL (Web Ontology
Language).

2.2 Wiki

Un wiki este o aplicație web care oferă posibilitatea modificării colaborative a


conținutului și a structurii sale, direct din browser-ul web. În cele mai multe cazuri, într-un
wiki textul este scris într-un limbaj de marcare, care reprezintă de fapt un sistem de
adnotare a documentului, într-un mod în care notațiile editorilor sa se distingă sintactic de
text.

Ward Cunningham este cel care a dezvoltat primul software pentru crearea de wiki-
uri (WikiWikiWeb) în 1995; acesta a descris, inițial, în [7] wiki-ul ca fiind cea mai simplă
bază de date editabilă online. Termenul „wiki” provine din limba hawaiiană și înseamnă
„repede”.

Așa cum este prezentat în [8], termenul de wiki mai poate fi definit ca o suită de
pagini web interconectate, care poate fi expandată sau un sistem de tip hipertext folosit
pentru stocarea și modificarea informațiilor.

Un wiki poate fi rulat utilizând un software wiki. În prezent, există o multitudine de


software-uri wiki, care conțin diverse unelte, menite să ușureze sarcina utilizatorilor,
pentru a avea un acces cât mai simplist la mediul colaborativ.

Operațiile care pot fi efectuate asupra unui sistem de tip wiki sunt clasificate în [9]
după cum urmează :
 Procedee de proiectare : se referă la schimbul de informații, în care utilizatorul
contribuie la adăugarea de noi cunoștințe.

11
 Procedee de denumire : se referă la contribuția utilizatorilor privind adăugarea de
etichete asupra conținutului și a paginilor.
 Procedee de implementare : descrie cum utilizatorii lucrează împreună la
dezvoltarea colecțiilor de informații.
 Procedee de identificare : se referă la descoperirea, de către utilizatori, a unor
obiecte, tendințe și resurse ale altor dezvoltatori.
Într-un wiki, utilizatorul are posibilitatea de a interacționa cu informațiile
asumându-și rolul de a aplica toate aceste procedee, consolidând astfel funcția de creare
colectivă.

Din punct de vedere al securității, filosofia deschisă a wiki-urilor, care permite


oricui să editeze conținutul, nu asigură veridicitatea modificărilor aduse de către editori,
deci acestea pot fi predispuse la atacuri cibernetice sau la introducerea de conținut
ofensator. Pe wiki-urile de mari dimensiuni, aceste modificări pot rămâne neobservate
pentru un timp îndelungat. Wiki-urile sunt axate mai mult pe refacerea sau anularea
modificărilor necorespunzătoare, decât pe prevenirea acestora; pentru detectarea acestor
atacuri au fost dezvoltate diverse unelte, capabile să semnalizeze conținutul inadecvat.

Problemele de securitate apar în general la acele wiki-uri complet „deschise”.


Pentru a spori securitatea, majoritatea administratorilor sistemelor de tip wiki, acordă
drepturi de editare doar utilizatorilor înregistrați, sau creează grupuri de utilizatori, cu
diferite drepturi. De asemenea, unele software-uri wiki, deși permit editarea paginilor de
către orice utilizator (chiar și cei neînregistrați), nu actualizează pagina decât în urma unei
verificări efectuate de un utilizator căruia i-au fost alocate drepturi de administrare.

Cele mai cunoscute software-uri folosite pentru crearea unui wiki sunt MediaWiki
și Tiki Wiki.

2.2.1 Wiki Semantic

Un wiki semantic este un wiki care are definit un raționament și modul de


reprezentare al cunoștințelor acestuia. Wiki-urile simple, sintactice, sunt bazate pe

12
modelarea textului prin intermediul hiperlink-urilor, pe când cele semantice oferă
posibilitatea de identificare a informațiilor și a relațiilor din/dintre pagini, în moduri care
pot fi exportate și interogate semantic într-o bază de date, conform [10].

Modelul de cunoștințe în aceste wiki-uri este în majoritatea cazurilor disponibil


într-un limbaj formal, pentru ca echipamentele de calcul să le poată prelucra într-o bază
de date relațională sau într-un model de tip ER (Entity-Relationship), care poate fi utilizat
pentru descrierea unei ontologii într-o anumită sferă de interes.

Într-un model ER avem următoarele componente :


 Entitatea/Clasa (sau substantivul) este o componentă definită și identificată în mod
unic; aceasta poate exista atât fizic (poate fi un obiect), cât și logic (poate
reprezenta un concept).
 Relația (sau verbul) reprezintă modul în care sunt interconectate entitățile.
 Atributul este o proprietate a unei entități sau a unei relații. Fiecare entitate are un
set minim de atribute, printre care se numără și cheia primară, care servește la
identificare.
Diagramele ER conțin toate entitățile și relațiile din baza de cunoștințe asociată,
împreună cu atributele definite.

Fig 2.4 Două entități înrudite Fig. 2.5 O entitate cu un atribut

Fig 2.6 O relație cu un atribut Fig 2.7 Cheie primară

O altă modalitate de vizualizare a componentelor este prin intermediul diagramelor


UML (Unified Modeling Language). O astfel de diagramă este prezentată în figura 2.8 :

13
Fig. 2.8 Exemplu de diagramă UML

Extinderea sintaxei wiki pentru a permite adnotări semantice, reduce efortul de a


menține documentele actualizate la noile cerințe. Navigarea într-un wiki semantic este mai
intuitivă decât într-un wiki static, ușurând cu mult sarcina utilizatorilor.

Wiki-urile semantice pot varia prin gradul lor de formalizare. Semantica poate fi
inclusă în software-ul wiki, sau poate fi introdusă prin intermediul limbajului de marcare.
Reprezentarea semanticii poate fi realizată prin intermediul limbajului wiki, standarde
precum RDF sau OWL, sau anumite baze de date care preiau semantica din datele brute.

Semantica în wiki-uri este importantă pentru specificarea legăturilor semantice, a


sursei și destinației acestora, a tipului de legătură, iar anumite software-uri permit și
încadrarea paginilor în categorii și structuri. Unele wiki-uri semantice moștenesc în
totalitate o ontologie pre-existentă, pe când la altele, utilizatorul este cel care generează
ontologia.

2.2.2 Platforme Wiki existente

În prezent, sistemele de tip wiki sunt utilizate în domenii vaste și au scopuri


multiple. Spre exemplu, un wiki poate fi utilizat pentru:
 Proiecte desfășurate pe echipe : sunt utile pentru un grup de persoane care dezvoltă
aceleași interese, dar din diferite motive, nu se pot întâlni. De exemplu, un grup de
cercetători poate crea un wiki în care să poată posta diferite articole, imagini și noi
descoperiri asupra subiectului care reprezintă interes.

14
 Organizații/Întreprinderi : companiile pot utiliza wiki-uri pentru dezvoltarea de
baze de date informaționale, în care fiecare angajat poate adăuga informații
interesante sau anunțuri.
 Ședințe : wiki-urile pot fi folosite pentru gestionarea întâlnirilor. Aceste întâlniri au
o agendă, care poate fi modificată de cel care o conduce. Pe wiki poate fi scrisă
minuta întâlnirii, pentru a putea fi corectată imediat și pentru a putea fi consultată
ulterior.
 Sarcini și cursuri școlare : cursurile, cerințele și temele pot fi postate pe wiki pentru
un acces ușor și rapid, lucru care facilitează atât efortul cadrelor didactice, cât și al
studenților.
 Enciclopedii : wiki-urile pot fi utilizate pentru ca utilizatorii din toată lumea să
poată contribui cu diverse informații pentru a crea o enciclopedie pe baza unui
domeniu bine stabilit.

2.2.2.1 Wikipedia

Cel mai cunoscut wiki semantic este fără îndoială Wikipedia, un proiect
enciclopedic inițiat de către Jimmy Wales și Larry Sanger în 2001, conform [11], care are
un conținut de informații mai mare decât orice altă enciclopedie tipărită sau electronică. În
prezent, aceasta este disponibilă în aproximativ toate limbile lumii, și are peste patruzeci
de milioane de articole din diferite domenii.. Principiul de bază este acela că oricine poate
contribui cu informații, astfel încât editorii beneficiază la rândul lor de articole sau
informații introduse de alți utilizatori, cunoașterea oferită de un grup fiind mult mai vastă
decât cea a unui individ. Deși oricine poate modifica și adăuga conținut, administratorii
sistemului pot bloca utilizatorii care aduc informații greșite sau necorespunzătoare.

15
Fig. 2.9 Distribuția principalelor domenii de conținut [12]

Wikipedia în limba română are în prezent peste 370000 de articole, așa cum este
prezentat în [13], proiectul fiind inițiat în anul 2003 în urma succesului obținut de
Wikipedia în engleză, care a atins pragul de două milioane de articole.

2.2.2.2 WikiHow

WikiHow este de asemenea un sistem wiki semantic, fondat în 2005 de către Jack
Herrick și reprezintă o comunitate cu o bază de date expandabilă. Scopul acestui wiki este
de a crea cel mai important ghid din lume care să conțină tutoriale și instrucțiuni ajutătoare
pentru ca fiecare persoană din lume să învețe să facă orice își dorește [14].

Această aplicație web este în continuă dezvoltare, permițând membrilor comunității


editarea, modificarea și ștergerea de conținut; aceste operații sunt validate după ce un
voluntar (ales de administratorul wiki-ului) își dă acordul asupra modificărilor realizate. Ca
și multe alte wiki-uri, conține grupuri de utilizatori, care au diferite drepturi asupra
conținutului.

16
Fig.2.10 WikiHow [15] Fig. 2.11 Scrierea unui articol în WikiHow

2.2.2.3 RecipesWikia

RecipesWikia este un wiki găzduit de Wikia; Wikia este de fapt un serviciu gratuit
de găzduire wiki care își sustrage veniturile din publicitate. Acesta găzduiește pe servere
Linux câteva sute de mii de wiki-uri care folosesc software-ul MediaWiki. Wikia a fost
fondată în anul 2004 de către Jimmy Wales și Angela Beesley Starling.

Wiki-urile găzduite de Wikia pot avea orice conținut, însă sunt populate în
principal de comunități pentru filme, cărți, jocuri și rețete datorită regulilor stricte care fac
imposibilă afișarea anumitor informații pe Wikipedia. Limbajul laic este de asemenea un
impediment în folosirea anumitor informații pe Wikipedia, iar multe dintre articole sunt
axate pe părerile personale ale membrilor, și nu pe fapte verificate.

17
Fig. 2.12 Recipes wikia [16]

18
3. Prezentarea domeniului de aplicabilitate și a
temei abordate

3.1 Domeniul Instruirii Asistate de Calculator


(Computer Assisted Learning)

Într-o lume bazată pe cunoaștere, este foarte important ca la absolvirea a diferite


forme de învățământ, studenții să aibă aptitudini de lucru în echipă, să aibă abilități de
cooperare și colaborare.

În ultimii ani, s-a manifestat un interes tot mai mare asupra introducerii în educație
a mediilor de învățare colaborative online, însă este destul de greu de estimat câte din
instituțiile de învățământ au îmbrățișat această abordare a studiului.

Necesitatea de interacțiune, de comunicare rapidă și de creare a unui mediu cu


difuzare masivă a conținuturilor a dus la dezvoltarea domeniului de Instruire Asistată de
Calculator – IAC (în engleză CAL – Computer Assisted Learning). Instruirea asistată de
calculator se referă la o tehnică de auto-învățare care implică interacțiunea studentului cu
materiale de instruire din mediul online. În funcție de necesități, un astfel de program poate
oferi pe lângă prezentarea cursurilor și posibilitatea de evaluare prin intermediul unor teste,
exerciții sau sarcini pentru acasă care pot fi verificate automat (în cazul testelor cu
răspunsuri prestabilite, sau de către profesor prin expunerea exercițiilor/testelor sub formă
de formular).
Instruirea Asistată de Calculator transformă procesul de învățare într-un proces cu
trei actori, în care profesorul nu mai are rolul principal. Calculatorul este cel care
reprezintă principala sursă de transmitere a cunoștințelor, iar profesorul devine un
„mesager” al informațiilor.

19
3.1.1 Utilizarea de ontologii în e-learning

Conform [17], în literatura de specialitate ontologiile din domeniul învățării asistate


de calculator (e-learning) sunt clasificate în funcție de sarcina pe care o deservesc astfel :
 Modelarea și managementul planurilor de învățământ – pentru definirea
evenimentelor , corelarea modulelor pedagogice cu obiectivele stabilite;
 Descrierea domeniilor de învățare – prezentarea conținutului unui domeniu din mai
multe perspective;
 Descrierea cunoștințelor unei persoane – personalizarea profilului de învățare în
funcție de performanțele și istoria unui individ;
 Descrierea serviciilor de e-learning – furnizarea de vocabulare partajate pentru
asigurarea interoperabilității între două sisteme de învățare.

3.1.2 Platforme de e-learning existente

În prezent, una dintre cele mai utilizate platforme online pentru cursuri este Moodle
(Modular Object-Oriented Dynamic Learning Environment), un sistem open-source de
management al învățării (LMS-Learning Management System), disponibil în mai multe
limbi. Moodle este o platformă de învățare (e-learning), dezvoltată de Martin Dougiamas
în anul 2002, cu scopul de a facilita crearea cursurilor online de către profesori, care să fie
bazate pe colaborare și interacțiune.

Fig. 3.1 Platforma Moodle pentru Facultatea de Automatică [18]

20
Platforma Moodle este scrisă în PHP (Hypertext Preprocessor) și poate fi rulată pe
platforme multiple, instalarea acesteia putând fi realizată pe un server web, sau utilizând o
bibliotecă de pachete software. Informațiile sunt stocate într-o singură bază de date. Unele
din caracteristicile platformei sunt : posibilitatea de înregistrare/autentificare, posibilitatea
de notare prin crearea unui catalog online, încărcarea temelor de curs și vizualizarea
ulterioară a acestora și crearea/susținerea testelor, în funcție de rolul pe care îl îndeplinește
utilizatorul.

Există multe alte platforme de e-learning, majoritatea construite pentru o anumită


categorie de vârstă. Menționăm aici platforma Edmodo, care este folosită în preponderență
în studiile gimnaziale. Profesorul adaugă elevi în grup pe baza unui cod de acces, cod de
acces pe care îl pot folosi și părinții pentru a monitoriza situația școlară a copiilor lor.
Există o secțiune de teme, numită „Assignments”, o secțiune de cursuri și o secțiune de
catalog. Elevii nu pot avea discuții private între ei, singura modalitate de discuție fiind cu
un grup de utilizatori. Această platformă și-a câștigat popularitatea în rândul profesorilor
prin mediul strict academic pe care îl oferă, iar în rândul elevilor, prin asemănarea, ca și
interfață, cu rețelele de socializare.

3.1.3 Utilitatea sistemelor de tip wiki în educație

Așa cum s-a menționat, sistemele de tip wiki se bazează pe schimbul de informații
și pe colaborarea dintre utilizatori. Prin utilizarea sistemelor de tip wiki în educație, elevii
au posibilitatea de a lucra în grupuri eterogene care sprijină în același timp învățarea
individuală. Cooperarea în procesul de învățare conduce la o interdependență pozitivă între
membrii grupului, dar încurajează și responsabilitatea individuală și interacțiunile directe
între colegi, potrivit [19]. Conform [20], echipele care se bazează pe un mediu colaborativ
ating niveluri mai ridicate de gândire și pot reține informațiile mai mult timp decât cei care
lucrează individual, așadar caracteristicile mediilor wiki le fac să fie favorabile pentru
mediile de învățare prin cooperare.

21
Fig. 3.2 Posibilitatea utilizării unui wiki în educație

Wiki-urile joacă un rol din ce în ce mai important în învățarea reflexivă și


îmbogățirea experienței studenților dincolo de informațiile oferite de cursuri sau proiecte,
oferindu-le un cadru conceptual care le va permite să își dezvolte rapid intelectul în
continuare[21]. În prezent, wiki-urile nu sunt utilizate la nivel de instituție de învățământ,
ci mai cu seamă de profesori care doresc să implice activ studenții în procesul de învățare.

3.1.4 Utilitatea wiki-urilor semantice în educație

Tehnologiile web semantice sunt folosite pentru facilitarea și îmbunătățirea


prezentării conținutului, a navigării, a personalizării și a schimbului de date dintre wiki-uri.
Pe de altă parte, wiki-urile semantice sunt utilizate ca și medii ușoare de colaborare și
partajare a conținutului sau pentru editarea de ontologii [22].

În prezentarea unui curs, wiki-urile semantice aduc noi elemente care să ușureze
munca studenților și a profesorilor. Pe lângă avantajele introduse de wiki-urile statice,
acestea oferă posibilitatea de navigare mult mai facilă în cadrul cursurilor- legăturile
semantice fac posibilă corelarea imediată a informației din contextul actual cu
documente/pagini similare, învățate sau utilizate și în alte module de curs. De asemenea,
organizarea datelor sub formă de ontologii transformă înțelegerea acestora într-un proces
facil, datorită structurării sub formă de ierarhie. Astfel, în cazul în care în text este referit,
spre exemplu, un termen care face parte dintr-o anumită structură definită în altă pagină de

22
conținut, utilizatorul poate vedea tipul de legătură care există între cele două pagini și
poate decide dacă dorește să aprofundeze mai întâi structura/termenul întâlnit.

Monitorizarea sistemului și a modificărilor survenite în cadrul acestuia este facilă și


poate fi realizată în totalitate de profesor, care este de fapt administratorul aplicației.
Profesorul are posibilitatea de a adăuga studenții în grupuri de utilizatori și să le ofere un
set de permisiuni asupra conținutului.

Utilizarea wiki-urilor semantice într-un sistem aparținând domeniului instruirii


asistate de calculator duce la creșterea performanțelor acestor sisteme, prin simplitatea pe
care o conferă unui model de învățare complex.

3.2 Descrierea temei abordate: Cadrul de cunoștințe


pentru Ingineria Sistemelor de Programe - „Software
Engineering Body of Knowledge”

Prezenta lucrare descrie o aplicație web de tip wiki semantic pentru cursul de
Ingineria Sistemelor de Programe, în care a fost introdus ghidul pentru cadrul de cunoștințe
a ingineriei sistemelor de programe , denumit pe scurt SWEBOK (Software Engineering
Body of Knowledge).

Pornind de la cuprinsul și conținutul ghidului, s-au ales componentele unei


ontologii, care alături de proprietăți și instanțe, constituie cadrul de cunoștințe asociat
ghidului SWEBOK, cunoștințe ce sunt în conformitate cu datele prezentate în cadrul
standardului ce îl definește. Entitățile sunt reprezentate de titlurile secțiunilor ghidului, iar
proprietățile sunt constituite de relațiile deduse din conținut.

3.2.1 Prezentarea standardului SWEBOK

SWEBOK este un standard internațional ISO/IEC TR19759:2015 [23], care


prezintă un ghid ce caracterizează limitele disciplinei de inginerie software și oferă acces la

23
literatura de specialitate care vine în ajutorul acestei discipline. Acest ghid a fost creat prin
cooperarea mai multor profesioniști în domeniu și a membrilor industriei, și a fost publicat
de IEEE (Institute of Electrical and Electronics Engineers).

Acest ghid prezintă 15 secțiuni de cunoaștere, așa cum este prezentat în [24] :
 Cerințele Software : se axează pe descoperirea, analiza, specificarea și validarea
cerințelor impuse de către stakeholderi pe întregul ciclu de viață al produsului
software.
 Proiectarea Software-ului : este definită atât ca procesul de definire al arhitecturii,
componentelor interfețelor și caracteristicilor sistemului în conformitate cu
cerințele impuse, dar și ca rezultatul acestui proces.
 Implementarea Software-ului : se referă la crearea detaliată a software-ului, prin
combinarea codării, verificării, testării și depanării.
 Testarea Software-ului : constă în verificarea dinamică a produsului software din
care să rezulte că acesta asigură comportamentele dorite și prevăzute pe un număr
finit de cazuri de test, alese în mod corespunzător din domeniul țintă.
 Mentenanța Software-ului : este o parte integrată în ciclul de viață al produsului și
se definește ca fiind totalitatea de activități necesare pentru a întreține software-ul,
efectuate atât înainte, cât și după livrare.
 Managementul Configurației Software : este un proces care face parte din ciclul de
viață al produsului, aducând beneficii management-ului de proiect, activităților de
dezvoltare și implementare, activităților de întreținere, precum și
clienților/utilizatorilor produsului final, având rolul de a urmări și controla
modificările survenite software-ului.
 Managementul Ingineriei Software : se poate defini ca fiind o aplicație a
activităților manageriale – planificare, coordonare, măsurare, monitorizare,
controlare și raport- care are rolul de a se asigura că produsul și/sau serviciul de
inginerie software sunt livrate în mod eficient, și în beneficiul părților implicate.
 Procesul de Inginerie Software : constă în împărțirea dezvoltării în etape și
activități care transformă intrările (de obicei cerințele) în ieșiri, prin consumarea
resurselor puse la dispoziție.
 Modele și Metode în Ingineria Software : constă în prezentarea modelelor și
metodelor prin intermediul cărora produsul capătă o abordare matematică,

24
sistemică, deci o mai bună structură care să ajute la crearea arhitecturii, a
specificațiilor și care să fie axată pe rezolvarea problemelor.
 Calitatea Software-ului : se referă la capabilitatea produsului de a îndeplini
necesitățile inițiale, prin prisma unor condiții impuse.
 Profesionalismul în Ingineria Software : se preocupă de cunoștințele, abilitățile,
calificările și atitudinea pe care inginerii software trebuie să le aibă, pentru a
practica ingineria într-o manieră profesională și etică.
 Economia în Ingineria Software : se referă la luarea deciziilor în contextul
afacerilor.
 Fundamentele Tehnicilor de Calcul : cuprinde informații despre dezvoltarea și
mediul operațional în care software-ul evoluează și este executat; pentru că un
software nu poate rula fără un echipament de calcul, sunt necesare aceste noțiuni
despre calculatoare.
 Fundamente Matematice : prezintă noțiuni logice care le sunt necesare inginerilor
software pentru a înțelege algoritmii.
 Fundamentele Ingineriei : se axează pe prezentarea noțiunilor, abilităților și
tehnicilor pe care trebuie să le cunoască un inginer.

25
4.Tehnologii folosite

4.1 XAMPP

XAMPP este un pachet de programe software gratuite, open-source, disponibil în


mai multe limbi, dezvoltat de Apache Friends în 2002, gândit ca o soluție pentru crearea de
servere web. Acesta constă, în principal, în serverul Apache HTTP, baza de date MariaDB
și interpretoarele de scripturi scrise în limbajele de programare PHP și Perl. Numele este
de fapt un acronim format din componentele pe care le oferă : Cross-Platform, Apache,
MariaDB, PHP, Perl.

Fig. 4.1 Arhitectura XAMPP

XAMPP este o distribuție simplă care facilitează dezvoltarea de servere web locale
utilizate pentru testare și implementare. Acesta conține toate uneltele necesare pentru
configurarea unui server web – aplicație server (Apache), bază de date (MariaDB) și limbaj
de scripting (PHP) și permite instalarea pe sisteme de operare diferite. Deoarece

26
majoritatea servere-lor web actuale folosesc aceleași componente, tranziția de la un server
de test local la un server real este extrem de facilă.

Acesta permite și instalarea de diferite module ajutătoare, printre care și sisteme de


administrare a conținutului (CMS- Content Management System). Wiki-urile pot fi
considerate sisteme de administrare a conținutului, caracteristicile lor principale fiind de a
crea și modifica informațiile folosind o interfață simplistă, comună și de a sprijini lucrul
mai multor utilizatori într-un mediu colaborativ. În cadrul aplicației ce urmează a fi
prezentată s-a utilizat CMS-ul Tiki Wiki.

Fig. 4.2 Panoul de administrare XAMPP pentru Windows

4.1.1 Apache HTTP Server

Apache HTTP Server este cel mai utilizat server web în prezent, depășind pragul de
o sută de miliarde de site-uri. Acesta este gratuit, open-source a fost dezvoltat în limbajul
de programare C de către Robert McCool și a fost lansat official în anul 1995. De-a lungul

27
timpului, la dezvoltarea codului și a documentației au contribuit sute de utilizatori. Acesta
suportă diverse module care îi extind funcționalitatea.

4.1.2 MariaDB

MariaDB este o comunitate dezvoltată pornind de la codul sursă folosit pentru


bazele de date relaționale MySQL în anul 2009, de către dezvoltatorii MySQL, pentru
menținerea codului sub licență gratuită, după preluarea MySQL de către Oracle. Numele
provine de la numele fiicei dezvoltatorului principal, Michael Widenius, unul dintre
fondatorii MySQL AB (al cărui nume provine de la cealaltă fiică a sa, My).

Aceasta este scrisă în C, C++ și Perl și reprezintă un sistem de gestiune a bazelor


de date relaționale (SGBD). Bazele de date MariaDB sunt complet compatibile cu cele
MySQL și cu phpMyAdmin, o unealtă scrisă în PHP cu scopul de a se ocupa de
administrarea bazelor de date MySQL într-un browser web, unealtă utilizată și de XAMPP.
Bazele de date stochează informația în tabele, pentru ca datele să fie bine structurate și
organizate. Limbajul folosit este SQL (Structured Query Language), limbaj care se ocupă
de manipularea datelor (cum ar fi interogarea bazei de date, inserarea, ștergerea,
modificarea de intrări în baza de date).

4.1.3 PHP

PHP este un limbaj de scripting proiectat în limbajul C pentru dezvoltarea de


aplicații web, dar este utilizat și ca limbaj de programare de uz general. Acesta a fost creat
în anul 1994, de către Rasmus Lerdorf și însemna inițial Personal Home Page, dar ulterior
a fost numit „PHP: Hypertext Preprocessor”, conform [21].

Codul generat de PHP, este procesat, în general, de către un interpretor PHP,


implementat ca un modul al server-ului web sau ca o CGI (Common Gateway Interface)
executabilă. Server-ul web combină codul interpretat și executat, care poate avea orice tip
de date, inclusiv imagini, cu pagina web generată. Codul PHP poate fi executat și din linie

28
de comandă (CLI-Command-Line Interface) și poate fi folosit pentru a dezvolta aplicații
grafice de sine stătătoare.

4.2 Tiki Wiki

Tiki Wiki, pe scurt Tiki, este un CMS gratuit, open-source, disponibil în mai multe
limbi, utilizat pentru crearea de aplicații Wiki. Acesta este scris în PHP, și a fost lansat în
anul 2002 de către Luis Argerich, Eduardo Polidor și Garland Foster. În prezent, este în
curs de dezvoltare activă de către o comunitate de peste trei sute de dezvoltatori și
translatori, fiind una dintre cele mai mari echipe open-source din lume. Tiki este un
acronim pentru Tightly Integrated Knowledge Infrastructure.

Pe lângă crearea de website-uri și portaluri pe internet și intranet, Tiki conține o


serie de proprietăți care îi permite să funcționeze ca un sistem de management al
conținutului geospațial (GCMS), în care obiectele (utilizatori, articole, imagini) pot fi
predispuse pe o hartă interactivă.

Tiki include toate caracteristicile de bază comune celor mai multe CMS-uri, cum ar
fi capabilitatea de înregistrare și menținere de conturi individuale pentru utilizatori într-un
sistem cu privilegii și permisiuni flexibile, personalizarea paginilor, crearea de meniuri și
administrarea sistemului de către unul sau mai mulți utilizatori autorizați. Toate sarcinile
de administrare a sistemului sunt realizate printr-o interfață cu utilizatorul bazată pe
browser-ul web.

În comparație cu alte CMS-uri, în care multe dintre caracteristici sunt separate de


nucleu, instalarea lor ca și extensii rămânând la latitudinea administratorului, Tiki are toate
caracteristicile înglobate împreună, făcând actualizarea software-ului mai stabilă, însă are
și un dezavantaj major – codul scris este extrem de amplu (peste un milion de linii de cod).
După instalarea software-ului Tiki în directorul „htdocs” din XAMPP, administratorul
wiki-ului configurează baza de date asociată și activează caracteristicile pe care le dorește
și de care are nevoie în construirea wiki-ului pe server-ul web local Apache.

29
Pornind de la cele enunțate în [26], cele mai importante patru categorii de
componente ale Tiki sunt :
 Instrumente de creare și management a conținutului;
 Instrumente de organizare a conținutului și unelte de navigare;
 Instrumente de comunicare;
 Instrumente de administrare.
Prin intermediul acestor unelte se permite crearea, gestionarea și partajarea conținutului
de către utilizatori și administratori.

Caracteristica prinicipală a unui Tiki este configurarea sistemului de tip wiki.


Aceasta permite utilizatorilor și administratorilor crearea unui număr nelimitat de pagini
care pot fi citite. Indiferent de persoana care a creat pagina, aceasta este aproape
instantaneu accesibilă pentru editare de către un utilizator care este autorizat să efectueze
operații de modificare.

La deschiderea unei pagini wiki, autorii pot utiliza pentru editare sintaxa wiki, un
set de coduri de formatare, proiectate pentru a maximiza ușurința utilizării, iar în cazul în
care au permisiunile necesare, se pot folosi și de sintaxa HTML (HyperText Markup
Language). De asemenea, utilizatorii autorizați pot introduce în pagină fișiere de orice tip.
Se mai pot include legături interne (care duc către o pagină a wiki-ului) sau legături
externe (care duc către o pagină web externă). Paginile create sunt structurate și ușor
accesibile, existând chiar un istoric complet de editare al paginilor, care poate să compare
două versiuni succesive ale aceleiași pagini. Dacă nu se dorește ca modificările aduse de
utilizatorii cu drepturi de editare să fie aplicate instantaneu, administratorii pot verifica
noul conținut înainte de a-și da acceptul asupra editării. Administratorii pot activa opțiunea
de a primi un e-mail ori de câte ori se realizează o modificare de conținut.

La afișarea unei pagini salvate, cei care au permisiunile necesare pot salva pagina
pe sistemele lor locale, pot exporta pagina în format PDF (Portable Document Format), sau
o pot salva în format txt.

O caracteristică foarte importantă a Tiki o constituie și încorporarea editorului


WYSIWYG (What You See Is What You Get), care implică o interfață prietenoasă cu

30
utilizatorul. Prin intermediul acestuia, în timpul editării, conținutul paginii curente apare
într-o formă similară cu aspectul final.

Cele mai populare caracteristici ale unui Tiki, pe lângă configurarea efectivă a
sistemului de tip wiki, sunt :
 Blog-ul – se referă la o colecție de postări înrudite din punct de vedere al tematicii.
Într-un tiki, există posibilitatea creării unui număr nelimitat de blog-uri, inclusiv pe
prima pagină a tiki-ului. Blog-urile pot fi accesate fie prin adăugarea într-un meniu,
fie prin crearea de legături către ele. Printre opțiunile de configurare a acestora
amintim posibilitatea de selectare a numărului de postări afișate și ordinea apariției
lor (în mod implicit în ordine inversă cronologic), posibilitatea de a permite sau nu
altor utilizatori postarea pe blog, posibilitatea de a permite căutările avansate și
comentariile.
 Forum-ul – se referă la o colecție de teme de discuție despre un anumit subiect,
fiecare temă conținând o serie de mesaje și răspunsuri. Un forum poate fi
monitorizat în aceeași manieră cu paginile wiki-ului: prin sincronizare cu e-mail-ul.
 Calendar și Evenimente – se pot urmări atât evenimente, cât și actualizări ale site-
ului tiki. Tiki oferă posibilitatea de personalizare a calendarului în funcție de an,
semestru, lună, săptămână și zi, și permite apariția unor ferestre pop-up pentru
notificări cu privire la evenimentele următoare.
 Management-ul grupurilor de utilizatori – există posibilitatea de creare a unor
grupuri cu diferite permisiuni (tiki oferă peste două sute de tipuri de permisiuni).
Un grup poate moșteni permisiunile altui/altor grupuri, în funcție de nivelul de
securitate dorit. În funcție de grupul de care aparțin, utilizatorii pot avea diferite
teme pentru wiki, sau pot primi e-mail-uri de grup.
 Sondajele și chestionarele – cu ajutorul Tiki se pot construi de la sondaje simple
pentru vot, până la chestionare complexe cu opțiuni diferite de răspuns. Cu ajutorul
acestora se pot crea teste educaționale, administratorii putând urmări rezultatele
fiecărui utilizator. Testele pot avea o scală de notare și se poate introduce un timp
limită pentru rezolvarea lor.

31
Caracteristicile utilizate în cadrul acestei lucrări sunt :
- Unelte de conținut:
 Galeria de fișiere – întrebuințată la stocarea de imagini, documente sau orice alt tip
de fișiere. Sistemul recunoaște automat tipurile populare de fișiere. Fișierele pot fi
descărcate de către utilizatorii care au acest drept, iar descărcările pot fi
monitorizate de către administratori. Înainte de adăugarea unui fișier într-o pagină,
acesta trebuie adăugat în galeria de fișiere.
 Pagini ale utilizatorilor – fiecare utilizator al wiki-ului poate avea o pagină în care
poate adăuga informații personale, informații de contact, imagini.
 Pagina de contact – oricine are acces la wiki poate contacta administratorul wiki-
ului, transmițându-i un mesaj pe care acesta îl va primi prin e-mail

- Unelte de navigabilitate:
 Categorie – orice pagină poate aparține unei categorii; apartenența unei pagini la o
categorie poate fi definită la crearea sau la editarea paginii.
 Meniu – pot exista diferite module listate într-un meniu; meniurile sunt vizibile
doar pentru utilizatorii autorizați.
 Modul – termenul de „modul” este deseori confundat cu cel de caracteristică;
modulul este un container pentru conținut care poate fi poziționat oriunde în pagini,
iar caracteristicile reprezintă conținutul în sine.
 Structură – creează o ierarhie structurată de pagini wiki, permițând parcurgerea
acestora în ordine.
 Semantic – permite crearea de legături semantice în cadrul wiki-ului.

- Unelte pentru secțiunea de text :


 Wiki Syntax – permite formatarea fără utilizarea sintaxei HTML.
 AddRealtion – permite crearea legăturilor direct în secțiunea de editare text a
paginilor, prin specificarea tipului de relație și pagina destinație a legăturii.
 ALink – permite asocierea legăturii cu o „ancoră” din cadrul unei pagini din wiki.
 AName – permite crearea unei ancore. O ancoră reprezintă un cuvânt sau o
înșiruire de cuvinte spre care va indica o legătura, ducând cursorul la începutul
cuvântului. Se utilizează împreună cu ALink.

32
 BackLinks – listează toate paginile care indică, prin intermediul unor legături, spre
pagina curentă.
 Equation – permite introducerea sub formă de imagini a unor ecuații scrise în
LaTeX.
 FancyList – permite introducerea de liste numerotate; poate fi utilizat doar dacă a
fost activat și plugin-ul List.
 FancyTable – permite introducerea de tabele care pot fi sortate după rânduri sau
coloane, și ale căror intrări pot avea dimensiuni diferite.
 Group – permite afișarea de conținut în funcție de permisiunile grupului de
utilizatori.
 Img – permite introducerea de imagini în rând cu textul, imagini ce pot fi
redimensionate sau afișate parțial pe pagină, urmând ca la selectare să se deschidă
într-o fereastră de tip pop-up. Imaginile aparțin galeriei de imagini/fișiere și sunt
identificate după ID.
 Mouseover – permite afișarea de conținut ascuns la trecerea cu mouse-ul deasupra
textului.
 Relations – permite afișarea relațiilor unei pagini cu alte pagini.
 TableOfContents – permite afișarea, într-o pagină aparținând unei structuri, a
cuprinsului paginii (doar sub-categoriile paginii curente).
 toc, maketoc – permit generarea unui cuprins, fie de la începutul paginii (maketoc),
fie de la secțiunea curentă (toc).

- Unelte de administrare :
 Permisiuni – administratorii pot atribui diferite drepturi utilizatorilor sau grupurilor
de utilizatori.
 Controlul Temelor – utilizarea de teme și stiluri multiple în cadrul aceluiași wiki.
 Administrarea utilizatorilor – administratorii pot adăuga, șterge sau bloca anumiți
utilizatori sau grupuri de utilizatori.
 Grupuri – grupurile pot fi incluse la rândul lor în alte grupuri pentru moștenirea
permisiunilor.

33
4.3 MediaWiki

MediaWiki este, asemenea TikiWiki, o aplicație software gratuită, open-source,


pentru crearea sistemelor de tip wiki. Aceasta a fost dezvoltată în PHP, de către Magnus
Manske și Lee Daniel Crocker în 2002. MediaWiki este utilizată împreună cu o bază de
date MySQL sau MariaDB, și poate fi instalată în directorul „htdocs” al XAMPP pentru
dezvoltarea unui serviciu web local.

Fig. 4.3 Instalare MediaWiki

Spre deosebire de Tiki, acest software este împărțit în nucleu și extensii, deci un
utilizator ne-experimentat ar putea întâmpina dificultăți în instalarea extensiilor. La
actualizarea software-ului principal, cele mai multe extensii rămân neactualizare, creându-
se astfel o neconcordanță în funcționalitatea acestora ca un întreg. La ultima versiune de
Media Wiki, majoritatea extensiilor au devenit instabile, sau chiar nefuncționale.

Din punct de vedere al caracteristicilor, MediaWiki se aseamănă foarte mult cu Tiki


Wiki; editarea conținutului poate fi mai greoaie decât în cazul tiki, deoarece acesta nu
oferă suport pentru editorul WYSIWYG, însă utilizează de asemenea sintaxa wiki, fără a fi
nevoie de cunoașterea sintaxei HTML.

34
Modalitatea de configurare și administrare este asemănătoare cu cea a tiki; în urma
editării unei pagini, se păstrează în baza de date versiunea precedentă a paginii, și există
același principiu pentru crearea de permisiuni ale utilizatorilor.

4.3.1 Semantic MediaWiki

Semantic MediaWiki reprezintă o extensie a MediaWiki, dezvoltată cu scopul de a


introduce legăturile semantice între pagini, într-un mod în care acestea să poată fi
interogate, asemenea unei baze de date, prin intermediul interogărilor semantice. Spre
deosebire de software-ul prezentat anterior, în acest caz legăturile semantice, deși sunt
declarate sub formă de triplete , pot avea și patru elemente, cuprinzând și o metadată cu
sursa informației.

Relațiile semantice pot fi introduse direct în zona de editare a textului, sau pot fi
importate ontologii în format OWL/RDF. Acest lucru impune instalarea unei extensii a
Semantic MediaWiki RDFIO, a cărei instalare și utilizare este greoaie și pune probleme la
ultima sa versiune, majoritatea paginilor create nefiind în concordanță cu datele definite în
interiorul ontologiei.

Comparând cele două software-uri pentru crearea de wiki-uri, putem conchide că


produc, în esență, aceleași rezultate, însă Tiki Wiki este mai ușor de folosit, fiind mai bine
structurat.

4.4 Protégé

Protégé este un editor de ontologii gratuit, open-source și un sistem de management


al cunoștințelor, scris în Java și lansat de către Universitatea Stanford.

Conceptul de bază care stă la baza acestui software (și a ontologiilor în general) îl
reprezintă axiomele – fapte, reguli, „piece of knowledge”.

35
Interfața cu utilizatorul dispune de o filă pentru declararea claselor (toate obiectele
vor aparține superclasei owl:Thing) numită Entities, o filă pentru crearea de proprietăți ale
datelor (aici se pot adăuga proprietăți prin care se disting indivizii) numită Data Properties
şi o filă pentru crearea de proprietăți ale obiectelor (unde se introduc efectiv tipurile de
legături dintre două clase) numită Object Properties.

Entitățile sunt asemănătoare claselor din programarea orientată pe obiecte, însă


entitățile din ontologii sunt folosite în special pentru descrierea obiectelor și a metodelor, și
nu în mod obligatoriu pentru crearea lor.

Proprietățile sunt asociate claselor din fila de entități sau din fila de proprietăți.
Proprietățile de date sunt unice pentru fiecare entitate, ele asociază valori obiectelor, iar la
crearea acestora trebuie să se specifice căror clase vor putea fi atribuite, sau căror clase le
este restricționat accesul la acest tip de proprietate. Proprietățile de obiecte sunt cele care
leagă două sau mai multe obiecte între ele și pot fi de mai multe tipuri :
 Funcționale : un obiect poate avea o singură proprietate de acest tip; de exemplu,
dacă avem clasa „Persoană”, putem avea o singură proprietate de tip „vârsta”,
pentru că o persoană are o singură vârstă la un anumit moment de timp.
 Invers-funcționale : o proprietate este invers funcțională atunci când reciproca sa
este funcțională; spre exemplu, un URL este o proprietate invers-funcțională pentru
o pagină web pentru că este o singură pagină asociată cu el (chiar dacă pagina
răspunde la mai multe URL-uri).
 Tranzitive : o proprietate este tranzitivă dacă definește o relație tranzitivă; dacă
obiectul A este asociat obiectului B prin intermediul acestei proprietăți și obiectul B
este asociat obiectului C, putem spune că obiectul C este asociat obiectului A. De
exemplu, considerând A = pisică, B = felină, C = animal, putem spune că dacă
pisica este felină și felina este animal, atunci și animalele pot fi pisici.
 Simetrice : o proprietate este simetrică dacă definește o relație de simetrie; dacă
obiectul A este asociat obiectului B prin intermediul acestei proprietăți, atunci și
obiectul B este asociat obiectului A. De exemplu dacă A = Andrei și B = Matei,
putem spune că dacă Andrei este fratele lui Matei, atunci Matei este fratele lui
Andrei.

36
 Asimetrice : o proprietate este asimetrică dacă definește o relație de asimetrie; dacă
prin intermediul acestei proprietăți asociem obiectul A obiectului B, nu implică B
asociat lui A. De exemplu, dacă A = Andrei și B = Ioana și Andrei este fratele
Ioanei, nu implică Ioana- fratele lui Andrei.
 Reflexive : o proprietate este reflexivă dacă se poate referi la obiectul sursă. De
exemplu, dacă avem A = 7 și proprietatea p= „este egal cu”, atunci succesiunea
ApA este aplicabilă.
 Ireflexive : o proprietatea este ireflexiva dacă nu se poate aplica asupra obiectului
sursă. De exemplu dacă avem A = 7 și proprietatea p= „diferit de”, succesiunea
ApA nu este aplicabilă.

De asemenea, Protégé permite adăugarea de adnotări pentru entități și proprietăți.


Aceste adnotări sunt de fapt comentarii și sunt utilizate pentru a maximiza claritatea bazei
de cunoștințe. Cele mai utilizate astfel de adnotări sunt „label”, care conține un nume
prescurtat al entității/proprietății și „is defined by”.

Adnotările precum „label” sunt utile atunci când se dorește prezentarea ontologiei
sub formă de graf, făcând astfel graful obținut mult mai ușor de înțeles.

Din interfața cu utilizatorul, cel mai ușor mod de a naviga este din fila de Entități;
de aici se poate accesa ierarhia de clase cu proprietățile și relațiile asociate.

37
5. Descrierea aplicației: Wiki Semantic pentru
Ingineria Sistemelor de Programe

Având stabilite atât noțiunile de bază ale web-ului semantic, cât și a tehnologiilor
folosite, putem continua cu descrierea efectivă a aplicației. Rolul acestei aplicații web este
de a crea un mediu facil și eficient pentru prezentarea cursului de Ingineria Sistemelor de
Programe, prin prezentarea ghidului SWEBOK. Scopul acestei lucrări îl reprezintă crearea
unui sistem de tip wiki semantic.

5.1 Proiectare și metoda de dezvoltare

Obiectivele principale ale acestui proiect sunt :


 Crearea unei ontologii pe baza ghidului studiat;
 Definirea tripletelor semantice;
 Crearea unei structuri care să conțină partea de subiect a tripletelor și care să
constituie un cuprins al sistemului;
 Crearea și definirea legăturilor semantice în cadrul sistemului;
 Importarea/exportarea ontologiei în sistem;
 Popularea cu conținut a wiki-ului;
 Administrarea sistemului.

Pentru dezvoltare, s-a pornit de la studierea web-ului semantic, a metodelor de


învățare, a platformelor educative, ca mai apoi să se studieze standardul SWEBOK, iar pe
baza conținutului acestuia să se creeze cadrul de cunoștințe pentru aplicația web efectivă.
Aplicația a fost creată prin descrierea succesivă a paginilor dorite, crearea de legături, iar la
final partea de administrare a wiki-ului.

38
5.2 Definirea unei ontologii a domeniului Ingineriei
Sistemelor de Programe care sa respecte clasificările
SWEBOK

Pornind de la conținutul ghidului, a fost creată o ontologie bazată pe triplete


semantice. Astfel, au fost identificate entitățile ca fiind secțiunile componente ale ghidului
(iar o descriere a lor – conținutul efectiv). Relațiile au fost stabilite în urma studierii
conținutului standardului, majoritatea constând în conceptul de explicare mai amplă a unor
anumiți termeni în partea de destinație a legăturii. Atributele, adică destinația efectivă a
legăturii, sunt reprezentate tot de entități, deci sunt denumiri de secțiuni.

Tipurile de legături/relații definite care au aplicabilitate în cadrul ontologiei sunt :


„definiție”, „acronim”, „referință”, „alias”.

5.3. Crearea structurii platformei wiki in conformitate


cu standardul SWEBOK

Având definite entitățile (pe baza conținutului), a fost creat un fișier conținând
titlurile secțiunilor (entitățile). Prin prelucrare XML titlurile au fost așezate sub forma unei
structuri de date, în care fiecare intrare reprezintă numele unei pagini din cadrul wiki-ului.
Acest fișier XML a fost importat în cadrul wiki-ului la secțiunea de structuri (Structures).

Structura obținută conține paginile generate, așezate într-o ierarhie, după modul de
definire în cadrul fișierului. Modul de navigare în cadrul structurii este după ID-ul paginii.
După crearea paginilor din ierarhie, acestea pot fi organizate, astfel încât și utilizatorul
final (cel care nu deține drepturi de creare/modificare/vizualizare a structurii) să poată
naviga prin paginile acesteia.

39
Fig. 5.1 Structura Contents în XML

După crearea structurii Contents, care este de fapt cuprinsul ghidului SWEBOK, pe
lângă paginile aparținând structurii, este generată și pagina Contents, care conține
cuprinsul structurii, realizat prin intermediul extensiei ”maketoc”.

Fig. 5.2a Pagina Contents Fig 5.2b Structura Contents

40
Posibilitatea de afișare a cuprinsului și în alte pagini se realizează prin referirea
structurii Contents într-un obiect de tip „toc”, cu specificarea ID-ului paginii și a adâncimii
cuprinsului.

5.4. Popularea cu conținut și listarea paginilor

Pe lângă cele 505 pagini generate prin intermediul structurii, au mai fost create
pagina de start, o pagină de acronime și o pagină de definire a termenilor. Paginile de
definiții (denumită în cadrul wiki-ului Definitions) și acronime (definită în cadrul wiki-ului
Acronyms) nu apar în cuprinsul realizat pe prima pagină, singura posibilitate de accesare a
acestora fiind prin selectarea, dintr-o pagina care conține o legătură semantică de tip
definiție sau acronim, a acelui element care are ca destinație una dintre aceste două pagini.

Popularea cu conținut a paginilor a fost realizată atât prin intermediul editorului


WYSIWYG, cât și prin intermediul editorului implicit care utilizaează sintaxa Wiki.
Paginile pot conține pe lângă text, orice obiect care aparține extensiilor (pliugin-urilor)
menționate anterior. Declararea unor astfel de obiecte necesită un grad de înțelegere a
sintaxei Wiki, aceasta fiind una dintre cauzele pentru care nu toți utilizatorii vor avea
drepturi de modificare a informațiilor.

În cadrul unei pagini, imaginile pot fi adăugate doar în cazul în care au fost
încărcate în prealabil în galeria de fișiere, unde, de fapt, pot fi adăugate orice tip de date.
Acestora li se asociază un ID, se memorează numele autorului, numele celui care a efectuat
ultima modificare, și opțional o scurtă descriere a fișierului.

41
Fig. 5.3 Galeria de fișiere

Paginile pot fi listate din Menu-Wiki-List Pages, unde se poate vizualiza data
ultimei modificări, cine a produs această modificare, versiunea paginii și numărul de back-
link-uri asociate paginii. În această vizualizare, administratorii au și dreptul de a șterge
paginile. Pe lângă List Pages, mai există și posibilitatea vizualizării rapide a ultimelor
modificări aduse wiki-ului, din pagina LastChanges.

Fig. 5.4 Afișarea ultimelor modificări

42
Pagina de start, denumită SWEBOK este prima pagina care le apare atât
utilizatorilor înregistrați, cât și celor neînregistrați, la accesarea wiki-ului și conține o
scurtă descriere a ghidului și cuprinsul acestuia. La selectarea oricăreia dintre opțiunile
cuprinsului, utilizatorul va fi redirecționat către pagina atașată – acestea sunt legături
simple. Pagina de start va apărea diferit pentru categorii diferite de utilizatori. În figura 5.5
este prezentat modul de afișare al paginii de start pentru utilizatori neînregistrați, care nu
au acces la meniul de navigare.

Fig. 5.5 Pagina de start

5.5 Adăugarea de legături semantice

Tipurile de legături semantice (numite și proprietăți) pot fi definite în două moduri :


prin adăugarea lor direct în text de către orice editor și acceptarea acestora ca legături
valide de către un administrator, sau prin inserarea acestora direct în baza de date. Pentru
administratorul sistemului, care are acces la baza de date, este recomandată introducerea
datelor direct în baza de date, pentru a nu mai fi nevoie de o ulterioară verificare a acestora
din panoul de administrare; pentru un utilizator obișnuit (studentul, în acest caz) care nu

43
are cunoștințele necesare și nici dreptul de a accesa datele, inserarea legăturilor semantice
se va face direct din editorul WYSIWYG.

Fig. 5.6 Interogare asupra tabelului „tiki_semantic_tokens” din baza de date

Legăturile semantice, așa cum am menționat anterior se împart în tipuri cunoscute


(acceptate de către administrator) și tipuri noi (care sunt în așteptare). Utilizatorii autorizați
pot accesa tabelul cu tipurile de legături și pot vizualiza rapid întrebuințarea acestora în
cadrul paginilor wiki. În acest caz, singurul autorizat să vizualizeze acest tabel este
profesorul, pentru că de aici se pot manipula foarte ușor legăturile existente, iar ștergerea
acestora, deși poate fi urmărită de către administrator, nu mai poate fi recuperată automat.

Legăturile semantice sunt definite între două pagini- acestea sunt asociate unor
cuvinte cheie din pagina curentă; la selectarea cuvintelor/înșiruirii de cuvinte care conține
legătura, utilizatorul este redirecționat către pagina destinație. În cadrul paginii destinație,
legătura poate fi asociată unei ancore, deci cursorul este poziționat în secțiunea care
prezintă interes din punctul de vedere al relației dintre cele două entități.

44
Fig. 5.7 Tabelul cu tipurile de legături și utilizarea legăturii „definitie”

Cea mai utilă funcționalitate pentru legăturile semantice o reprezintă modulul de


proprietăți semantice, denumit „Semantics”; acesta conține toate informațiile despre
legăturile semantice care au ca sursă sau ca destinație pagina curentă, astfel încât
utilizatorii să poată vedea ce fel de proprietăți leagă conținutul curent de altă pagină și care
este numele paginii respective. Acest modul poate fi vizualizat de către utilizatorii
aparținând grupului Registered și de către cei care moștenesc drepturile acestui grup. În
figura 5.8 este prezentată pagina „3.3 Design Patterns”, împreună cu modulul semantic
asociat.

În cadrul acestei aplicații au fost create patru tipuri de legături semantice :


 acronim : conduce către o pagină în care sunt explicați termenii asupra cărora s-a
creat legătura;
 alias : se aplică acelor cuvinte din conținut care sunt chiar numele unei pagini din
tiki și conduc către pagina respectivă;
 definiție : conduce către o pagină în care sunt definiți termenii;

45
 referință : conduce către o pagină cu conținut asemănător sau cu ajutorul căreia se
poate înțelege mai bine conținutul.

Fig. 5.8 Pagina Design Patterns cu modulul semantic asociat

5.6 Funcționalități suplimentare și administrare

Administratorul poate adăuga în cadrul tiki-ului mai multe elemente ajutătoare,


numite module. Modulele utilizate variază în funcție de funcționalitățile dorite. Modulele
existente în acest wiki sunt Logo, LogIn, QuickAdmin (care permite navigarea ușoară în
panoul de control pentru grupul de administratori), Menu și altele.

Fig. 5.9a Module atribuite părții superioare a tiki-ului

46
Fig. 5.9b Module atribuite marginii stângi a tiki-ului

Modulul Logo, așezat în partea stângă a paginilor, afișează logo-ul wiki-ului, care
este și logo-ul SWEBOK. În momentul în care un utilizator apasă pe logo, acesta va fi
redirecționat către pagina de start.

Prin intermediul modului pentru meniuri este creat meniul din partea stângă a
paginii, care va fi diferit în funcție de grupul de utilizatori și drepturile asociate acestora.
Modulul de autentificare se află în partea dreaptă a paginii, iar meniul de administrare
rapidă apare la trecerea cu mouse-ul deasupra unei săgeți din partea superioară a paginii.

O altă caracteristică interesantă o reprezintă adăugarea caracteristicii „backlinks”.


Modulul asociat afișează pe ecran paginile posibile ca sursă a paginii curente, adică toate
paginile care pot redirecționa utilizatorul către pagina curentă prin intermediul legăturilor
semantice. Spre deosebire de modulul de legături semantice, „Backlinks” nu oferă
informații privind proprietatea/relația dintre conținuturi, ci doar numele paginilor wiki.

Administratorul beneficiază de un meniu cu mai multe opțiuni, aceste opțiuni fiind


înglobate într-un panou de administrare.

47
Fig. 5.10 Panoul de control al administratorului

Din panoul de administrare se poate alege primirea de notificări la apariția unor


schimbări în cadrul tiki-ului și numele utilizatorului care va fi notificat. În acest caz, s-a
ales ca administratorul să primească notificări chiar și la schimbările minore, iar datorită
setului de permisiuni asociate grupurilor, acesta trebuie să își dea acordul înainte ca aceste
modificări să fie aplicate conținutului.

48
Fig. 5.11 Opțiuni de notificare

În cadrul unei comunități educaționale, este important ca utilizatorii să fie în


contact unii cu ceilalți, așadar fiecare utilizator poate avea o pagină personală care să ofere
diferite informații despre utilizator și informații de contact.

Fig. 5.12 Pagina personală a administratorului admin

49
Utilizatorii înregistrați pot efectua căutări asupra conținutului. La introducerea unui
cuvânt sau a unui șir de cuvinte, vor fi returnate toate paginile care conțin cuvântul
respectiv și contextul în care apare.

Fig. 5.13 Efectuarea unei căutări

5.7 Administrarea accesului și a grupului de utilizatori

În cadrul aplicației, au fost create trei grupuri de utilizatori (grupul Admins este
creat implicit):
 Anonymous – au drept de vizualizare a conținutului.
 Registered – moștenesc drepturile grupului anterior și în plus au dreptul de a naviga
în cadrul structurii, de a vizualiza meniul de navigabilitate, de a efectua căutări
asupra conținutului, de a vizualiza modulele semantice și de a descărca fișierele din
Files Gallery.
 Editors – moștenesc drepturile grupului Registered și în plus au dreptul de a
modifica conținutul paginilor, de a adăuga și a șterge fișiere din galerie.
 Admins – au drepturi de administrare în cadrul tiki-ului.

50
Fig. 5.14 Grupurile de utilizatori

Fig. 5.15 Lista cu utilizatori

Administratorul este cel care poate adăuga utilizatori și poate atribui diverse
drepturi/permisiuni utilizatorilor/grupurilor de utilizatori. Înregistrarea individuală nu este
posibilă, pentru că doar studenții pot avea acces la grupul Registered din wiki. Astfel,
pentru a deveni utilizator înregistrat, un student trebuie să își contacteze profesorul, și doar
în urma acceptării studentului la cursul respectiv acesta va face parte din grupul Registerd.
Totuși, un utilizator neînregistrat poate vizualiza conținutul, fără a beneficia însă de
drepturile pe care i le conferă apartenența la un grup.

Profesorul poate oferi unui grup permisiuni din orice categorie a tik-ului, chiar și
drepturi de administrare. Este de asemenea posibilă acordarea unor permisiuni doar unui
anumit utilizator. În figura 5.16 este ilustrată tabela de administrare a drepturilor asupra
galeriei de fișiere.

51
Fig. 5.16 Permsiuni alocate grupurilor de utilizatori

5.8 Interogarea directă a bazei de date

Baza de date asociată tiki-ului conține 250 tabele. Un utilizator experimentat poate
efectua căutări avansate prin intermediul interogărilor SQL. Tabelele care reprezintă
interes în acest caz sunt cele ce conțin relațiile și notațiile semantice.

Tabelul de notații semantice conține tipurile de legături semantice definite în cadrul


tiki-ului, iar tabelul de relații conține legăturile efective, care au ca și cheie primară
denumirea acestora din tabelul „tiki_semantic_tokens”, ilustrat în figura 5.6.

52
Fig. 5.17 Secvență din tabelul de relații

Asupra legăturilor semantice se pot face interogări în baza de date, prin intermediul
sintaxei SQL. Un exemplu de interogare a tabelei de relații este dat în figura 5.12.

Fig. 5.18 Selectarea tuturor legăturilor care au ca sursă


pagina Chapter1

53
Pe lângă tabelele de relații, mai există tabele specifice setărilor, utilizatorilor și
permisiunilor, și conținutului. Interogările asupra bazei de date se efectuează utilizând
sintaxa SQL, iar accesul este identic cu accesul la o bază de date obișnuită, de uz general.

5.9 Experiment de import/export pentru Protégé și


Semantic MediaWiki

Așa cum am menționat în capitolele precedente, Protégé este un software destinat


creării și editării de ontologii. Ontologia creată în acest mediu conține primele două
capitole din ghidul SWEBOK.

Fig. 5.19 Ierarhia de clase

Toate entitățile create au o superclasă comună : owl:thing. Fiecare capitol este


declarat ca o clasă, iar apoi fiecare subcapitol și secțiune sunt organizate ierarhic prin
moștenire. Pentru că în cadrul numelui unei clase nu puteam avea spații libere, am adăugat
fiecărei entități o adnotare de tip „label” în care este specificat numele cu spații. Au mai
fost adăugate adnotări de tipul „is defined by” în care s-a precizat numele standardului care

54
definește ghidul. Au fost create proprietăți ale obiectelor identice cu legăturile semantice
„definitie” și „acronim” aprofundate anterior și au fost asociate entităților. În figura 5.19
este ilustrată ierarhia de clase, iar în figura 5.20 sunt prezentate proprietățile adăugate.

Fig. 5.20 Proprietatea „acronim”

Pentru o viziune mai clară asupra ontologiei, aceasta a fost așezată sub formă de
graf, după cum se poate vedea în figura 5.21:

Fig. 5.21 Ontologia creată în conformitate cu SWEBOK

Această ontologie a fost creată pentru a fi importată în MediaWiki. Având extensia


Semantic instalată, pentru importarea de ontologii a fost necesară și instalarea extensiei

55
RDFIO, o extensie bazată pe PHP și MySQL, prin intermediul căreia ar trebui să fie
posibilă introducerea tripletelor semantice oferite de formatul OWL/RDF sub formă de
pagini wiki. Pentru instalarea extensiei RDFIO a fost necesară și importarea bibliotecii
ARC2, bibliotecă scrisă în PHP pentru parsarea textului. Datorită eforturilor continue de
dezvoltare a platformei MediaWiki și a actualizărilor frecvente, la ultimele versiuni de
MediaWiki nu mai este funcțională biblioteca ARC2, așa cum se poate observa în figura
5.22 :

Fig. 5.22

Dacă ar fi fost posibilă importarea ontologiei, crearea și administrarea aplicației de


tip wiki s-ar fi simplificat considerabil, dat fiind faptul că paginile și legăturile dintre
pagini s-ar fi creat automat. După auto-generarea legăturilor, ar fi urmat ca fiecărei legături
să îi fie adăugate, pe lângă sursă și destinație, și ancorele din text. De altfel, în MediWiki,
pe lângă paginile propriu-zise ale cuprinsului ghidului s-ar fi creat pagini speciale cu
numele proprietăților, pagini conținând descrierile tipurilor de legătură.

56
6. Concluzii și dezvoltări ulterioare

Partea practică a acestei lucrări este reprezentată de implementarea sistemului


educațional de tip wiki utilizând platforma Tiki, pe baza unei ontologii create în
conformitate cu conținutul ghidului definit de standardul SWEBOK (Software Engineering
Body of Knowledge) - Baza de Cunoștințe pentru Ingineria Sistemelor de Programe. De
asemenea, este prezentată și implementarea unei ontologii într-un editor pentru ontologii și
utilizarea platformei MediaWiki pentru importarea acesteia.

S-a ales ca și platformă de lucru TikiWiki datorită eficienței sale și a numeroaselor


caracteristici ajutătoare. Platforma MediaWiki, deși mai utilizată și mai populară, se
confruntă cu erori la ultimele versiuni apărute, făcând imposibilă executarea unor operații
cu ajutorul unor biblioteci specifice.

În cadrul aplicației au fost realizate :


 Crearea unei ontologii pornind de la studierea ghidului și standardului SWEBOK,
ontologie al cărei conținut este în conformitate cu conținutul ghidului;
 Definirea unei structuri pornind de la ontologia ghidului, structură ce conține
titlurile secțiunilor, în format XML și importarea acesteia într-un sistem de tip wiki
sub formă de structură pagini;
 Crearea wiki-ului folosind platforma Tiki Wiki și gestionarea conținutului paginilor
wiki-ului;
 Definirea legăturilor semantice în cadrul sistemului implementat, pe baza tripletelor
semantice descrise în cadrul ontologiei;
 Gestionarea și interogarea tabelului de legături semantice și relații din cadrul bazei
de date asociate wiki-ului;
 Crearea unei ontologii utilizând platforma Protégé; aceasta reprezintă un model de
implementare a relațiilor semantice;
 Crearea unui wiki experimental utilizând platforma MediaWiki și testarea funcțiilor
de import/export a ontologiei create în Protégé pentru auto-generarea paginilor.

57
Aceste funții sunt inutilizabile, datorită neactualizării extensiilor odată cu
actualizarea programului-nucleu.

Sistemul construit îndeplinește caracteristicile unui mediu de învățare colaborativ


eficient și datorită implementării acestuia într-o manieră în care studenții nu pot lua decizii
administrative, dar pot avea acces la conținutul cursului și la modulul semantic asociat
fiecărei pagini. Conținutul tiki-ului este vast, iar legăturile semantice maximizează ușurința
navigabilității, făcând ca procesul de învățare să devină mai plăcut și mai rapid.

Îmbunătățiri ce pot fi aduse în lucrări viitoare includ trecerea de la server-ul local la


un server web găzduit și extinderea ontologiei la mai multe domenii. Îmbunătățirile ce țin
de conținut sunt finalizarea introducerii informațiilor din ghidul SWEBOK, crearea de
teste/exerciții/teme care să fie corectate automat (pe baza răspunsurilor corecte),
implementarea unui catalog.

Dacă în următoarele versiuni de Tiki și MediaWiki devin stabile opțiunile și


respectiv extensiile de import/export, un studiu de caz interesant ar fi compararea modului
de generare a paginilor în cadrul sistemelor de tip wiki pe baza unei ontologii create în
Protégé.

În ceea ce privește sistemele educaționale de tip wiki, consider că acestea se vor


dezvolta foarte mult în viitor. Datorită stilului de viață alert, metodele de învățare în mediul
online vor fi favorizate în fața metodelor de învățare clasice, iar sistemele de tip wiki vor
deveni din ce în ce mai utilizate în mediul academic.

58
Bibliografie:
1. Robinson, M. (2006). Wikis in education: Social Construction as learning. The
Community College Enterprise, pag. 107-112.
2. Bold, M. (2006). Use of wikis in graduate course work. Journal of Interactive Learning
Research, pag. 5-14.
3. Introduction to the Semantic Web. How is ”Semantic Web” different ? Articol internet:
http://www.cambridgesemantics.com/semantic-university/introduction-semantic-web
Accesat: 2016.
4. World Wide Web Consortium. W3C Semantic Web Activity (2011)
5. Miron, A. (2012). Semantic Web – scurtă introducere. Today Software Magazine, nr. 4,
2012.
6. Maedche, A. (2002). Ontology learning for the Semantic Web. Fundamentals, pag. 11-
23.
7. Cunningham, W. (2002). What is a Wiki
8. Cunningham, W., Leuf, B. (2001). The Wiki Way. Quick Collaboration on the Web.
9. Howe, J. (2006-2007). Your Web, your way. Time Magazine, 168(26), pag. 60-63.
10. Magend, K. (2009). Semantic Wikis: A comprehensible Introduction with Examples
from the Health Sciences. Journal of Emerging Technologies in Web Intelligence, vol. 1,
nr. 1.
11. Wikimedia Media-Wiki. History of Wikipedia. Documentație internet:
https://meta.wikimedia.org/wiki/Wikipedia_timeline Accesat : 2016
12. Imagine internet: https://en.wikipedia.org/wiki/Wikipedia Accesat: 2016
13. Documentație Wikipedia internet: https://ro.wikipedia.org/wiki/Wikipedia#cite_note-2
Accesat 2016
14. de Leon, P. (2015). The Weird (And Sometimes Wonderful) World Of WikiHow:
Crowdsourcing Online Info On Everything. Articol internet:
https://www.entrepreneur.com/me/the-weird-and-sometimes-wonderful-world-of-
wikihow-crowdsourcing-online-info-on-everything/ Accesat: 2016
15. Imagine internet: http://www.wikihow.com/Main-Page Accesat: 2016
16. Imagine internet: http://recipes.wikia.com/wiki/Recipes_Wiki Accesat: 2016

59
17. Al Yahya, M., George, R., Alfaries, A. (2015). Ontologies in E-learning : Review of
the Literature. Articol internet: http://www.sersc.org/journals/IJSEIA/vol9_no2_2015/7.pdf
Accesat : 2016
18. Imagine internet: http://acs.curs.pub.ro/2015/ Accesat: 2016
19. Schaffert, S., Bischof, D., Buerger, T., Gruber, A., Hilzensauer, W. (2006). Learning
with semantic wikis. From Wikis To Semantics , pag 2-4. Articol internet:
http://ceur-ws.org/Vol-206/paper9.pdf Accesat: 2016
20. Schaffert, S., Gruber, A., Westenthaler, R. (2006). A semantic wiki for collaborative
knowledge formation. Articol internet:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.94.6443&rep=rep1&type=pdf
Accesat: 2016
21. Chen, H. L., Cannon, D.,Gabrio, J., Leifer,L., Toye, G., Bailey, T. (2005). Using wikis
and weblog to support reflective learning in an introductory engineering design course pag.
8-9. Articol internet:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.5481&rep=rep1&type=pdf
Accesat 2016
22. Lange, C. (2011). Enabling Collaboration on Semiformal Mathematical Knowledge by
Semantic Web Integration. The Semantic Wiki SwiM – An Integrated Collaboration
Environment pag 365-390
23. Documentație standard ISO/IEC TR 19759:2015:
http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=6760
4 Accesat: 2016
24. SWEBOK. Guide to the Software Engineering Body of Knowledge. Documentație
internet: http://www4.ncsu.edu/~tjmenzie/cs510/pdf/SWEBOKv3.pdf Accesat: 2016
25. Lengstorf, J. (2009) PHP for Absolute Beginners.
26. Documentație Tiki Wiki internet: http://tiki.org Accesat : 2016

60
Anexe

Anexa A – Secvență din Contents.xml

<structure>
<page><name>Contents</name></page>
<structure>
<page>Chapter 1: Software Requirements</page>
<structure>
<page>1. Software Requirements Fundamentals</page>
<structure>
<page>1.1. Definition of a Software
Requirement</page>
<page>1.2. Product and Process
Requirements</page>
<page>1.3. Functional and Nonfunctional
Requirements</page>
<page>1.4. Emergent Properties</page>
<page>1.5. Quantifiable Requirements</page>
<page>1.6. System Requirements and Software
Requirements</page>
</structure>
<page>2. Requirements Process</page>
<structure>
<page>2.1. Process Models</page>
<page>2.2. Process Actors</page>
<page>2.3. Process Support and Management</page>
<page>2.4. Process Quality and Improvement</page>
</structure>
<page>3. Requirements Elicitation</page>
<structure>
<page>3.1. Requirements Sources</page>
<page>3.2. Elicitation Techniques</page>
</structure>
<page>4. Requirements Analysis</page>
<structure>
<page>4.1. Requirements Classification</page>

61
<page>4.2. Conceptual Modeling</page>
<page>4.3. Architectural Design and Requirements
Allocation</page>
<page>4.4. Requirements Negotiation</page>
<page>4.5. Formal Analysis</page>
</structure>
<page>5. Requirements Specification</page>
<structure>
<page>5.1. System Definition Document</page>
<page>5.2. System Requirements
Specification</page>
<page>5.3. Software Requirements
Specification</page>
</structure>
<page>6. Requirements Validation</page>
<structure>
<page>6.1. Requirements Reviews</page>
<page>6.2. Prototyping</page>
<page>6.3. Model Validation</page>
<page>6.4. Acceptance Tests</page>
</structure>
<page>7. Practical Considerations</page>
<structure>
<page>7.1. Iterative Nature of the Requirements
Process</page>
<page>7.2. Change Management</page>
<page>7.3. Requirements Attributes</page>
<page>7.4. Requirements Tracing</page>
<page>7.5. Measuring Requirements</page>
</structure>
<page>8. Software Requirements Tools</page>
</structure>

Anexa B – Ontologia descrisă în Protégé în format RDF/XML


a) catalog.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

62
<catalog
prefer="public"xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<group id="Folder Repository, directory=, recursive=true, Auto-
Update=true, version=2" prefer="public" xml:base="">
<uri id="Automatically generated entry, Timestamp=1466775897414"
name="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6" uri="inrdfxml.owl"/>
</group>
</catalog>

b) inrdfxml.owl – secvență
<?xml version="1.0"?>
<rdf:RDF
xmlns="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#"
xml:base="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6">
<rdfs:label>SWEBOK</rdfs:label>
<rdfs:isDefinedBy>ISO/IEC TR 19759:2015</rdfs:isDefinedBy>
</owl:Ontology>

<owl:ObjectProperty
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#acronim">
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Context_of_Software_Design"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Families_of_Programs_and_Frameworks"/>

63
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Interaction_and_Presentation"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Object-Oriented_Design"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Practical_Considerations"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Process_Quality_and_Improvement"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Behavioral_Description_(Dynamic_View)"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Structural_Description_(Static_View)"/>
<rdfs:range
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Acronyms"/>
</owl:ObjectProperty>

<owl:ObjectProperty
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#definitie">
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Architectural_Structures_and_Viewpoints"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Architectural_Styles"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Control_and_Handling_of_Events"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Data_Structure-Centered_Design"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Emergent_Properties"/>

64
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#System_Requirements_and_Software_Requirements"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#The_Design_of_User_Interaction_Modalities"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#User_Interface_Design"/>
<rdfs:domain
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#User_Interface_Design_Issues"/>
<rdfs:range
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Definitions"/>
</owl:ObjectProperty>

<owl:Class
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Acceptance_Tests">
<rdfs:subClassOf
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Requirements_Validation"/>
<rdfs:isDefinedBy>ISO/IEC TR 19759:2015</rdfs:isDefinedBy>
<rdfs:label>Acceptance Tests</rdfs:label>
</owl:Class>

<owl:Class
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Acronyms">
<rdfs:comment>Contine explicatia acronimelor
folosite</rdfs:comment>
<rdfs:label>Acronyms</rdfs:label>
</owl:Class>

<owl:Class
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Architectural_Design_and_Requirements_Allocation">
<rdfs:subClassOf
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Requirements_Analysis"/>

65
<rdfs:isDefinedBy>ISO/IEC TR 19759:2015</rdfs:isDefinedBy>
<rdfs:label>Architectural Design and Requirements
Allocation</rdfs:label>
</owl:Class>

<owl:Class
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Architectural_Structures_and_Viewpoints">
<rdfs:subClassOf
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Software_Structure_and_Architecture"/>
<rdfs:isDefinedBy>ISO/IEC TR 19759:2015</rdfs:isDefinedBy>
<rdfs:label>Architectural Structures and Viewpoints</rdfs:label>
</owl:Class>

<owl:Class
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Architectural_Styles">
<rdfs:subClassOf
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Software_Structure_and_Architecture"/>
<rdfs:isDefinedBy>ISO/IEC TR 19759:2015</rdfs:isDefinedBy>
<rdfs:label>Architectural Styles</rdfs:label>
</owl:Class>

<owl:Class
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Architecture_Design_Decisions">
<rdfs:subClassOf
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Software_Structure_and_Architecture"/>
<rdfs:isDefinedBy>ISO/IEC TR 19759:2015</rdfs:isDefinedBy>
<rdfs:label>Architecture Design Decisions</rdfs:label>
</owl:Class>

<owl:Class
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Change_Management">

66
<rdfs:subClassOf
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Practical_Considerations"/>
<rdfs:isDefinedBy>ISO/IEC TR 19759:2015</rdfs:isDefinedBy>
<rdfs:label>Change Management</rdfs:label>
</owl:Class>

<owl:Class
rdf:about="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Conceptual_Modeling">
<rdfs:subClassOf
rdf:resource="http://www.semanticweb.org/user/ontologies/2016/5/untitled-
ontology-6#Requirements_Analysis"/>
<rdfs:isDefinedBy>ISO/IEC TR 19759:2015</rdfs:isDefinedBy>
<rdfs:label>Conceptual Modeling</rdfs:label>
</owl:Class>

67

S-ar putea să vă placă și