duminică, 6 ianuarie 2008

Despre tema 4

La multi ani tuturor!
Credeam ca tema 4 nu se mai publica, insa am avut surpriza sa o vad pe 2 ianuarie. Din cele 2 variante propuse, eu mi-am ales-o pe prima.
De real ajutor in realizarea acestei teme sunt cele doua linkuri:
http://utd.edu/~rxs040200/DVDStore.xml
http://utd.edu/~rxs040200/DVDStore.xsd
Aici puteti gasi un fisier xml care inglobeaza atat dvdtitles.xml cat si reviews.xml. Si de asemenea, puteti gasi si schema asociata cu acel xml.
In legatura cu XQuery. Pe mine m-au ajutat foarte mult explicatiile de pe http://www.w3schools.com/xquery/default.asp, precum si pdf-ul furnizat in cadrul laboratorului. De asemenea, un validator de scheme XML il puteti gasi si la: http://www.validome.org/grammar/validate/, iar pentru a valida o schema XML si XML asociat este util site-ul http://www.validome.org/xml/validate/.

Era sa uit. Pentru a folosi XQuery, am instalat Altova Xml 2008, gasit pe site-ul: http://www.download3k.com/Install-AltovaXML.html. Eu l-am utilizat in felul urmator:

Din linie de comanda, am intrat in directorul in care a fost instalat programul, iar de exemplu, pentru prima cerinta am executat urmatoarea comanda:

AltovaXML /xq q1.xq -out q1.xml

Practic, prin aceasta comanda, este executat q1.xq, iar rezultatul este salvat in fisierul XML q1.xml.

Succes in continuare!

luni, 10 decembrie 2007

Tool monotorizare site

Intrucat la un moment dat ramasesem fara Google Analytics din oarecare motive, am cautat un alt tool de monitorizarea site-ului si a blogului. Am dat de mon.itor.us care din pacate nu testeaza decat cat de repede raspunde site-ul tau la diferite query-uri ale motorului de cautare. Acest utilitar iti construieste si un grafic pentru a vedea timpii la care siteul tau raspunde la cereri. Trebuie sa iti faci un cont la ei si ai la dispozitie un meniu cu care iti poti gestiona site-urile pe care le-ai inscris. Pretul este postarea bannerului lor pe site :)

miercuri, 5 decembrie 2007

Despre laboratorul de XSL

Saptamana trecuta, in cadrul laboratorului de IE, am avut de facut un document .xsl asociat profilului creat in tema 1. Impreuna cu Alina, am plecat de la profilul din tema mea:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited with XML Spy v2007 (http://www.altova.com) -->
<?xml-stylesheet type="text/xsl" href="profil.xsl"?>
<!DOCTYPE PROFIL SYSTEM "profil1.dtd">
<PROFIL CNP="D2841110030018">
<GENERAL>
<NUME>NECULA</NUME>
<PRENUME>DIANA</PRENUME>
<SEX TYPE="FEMININ"></SEX>
<DATA_NASTERII>10 Noiembrie 1984</DATA_NASTERII>
<ORAS>CAMPULUNG</ORAS>
<JUDET>ARGES</JUDET>
<LIMBI_VORBITE>ENGLEZA</LIMBI_VORBITE>
<LIMBI_VORBITE>SPANIOLA</LIMBI_VORBITE>
<LIMBI_VORBITE>FRANCEZA</LIMBI_VORBITE>
<LICEU>LICEUL TEORETIC "DAN BARBILIAN"</LICEU>
<FACULTATE>FACULTATEA DE AUTOMATICA SI CALCULATOARE BUCURESTI</FACULTATE>
<CASATORIT>NECASATORIT</CASATORIT>
</GENERAL>
<RELATII_SOCIALE>
<ALTE_PROFILE ID_PERSOANA="A1">
<TIP_RELATIE>PRIETENIE</TIP_RELATIE>
<NUME>VLAD</NUME>
<PRENUME>DIANA</PRENUME>
<TELEFON_FIX>0248544444</TELEFON_FIX>
</ALTE_PROFILE>
<ALTE_PROFILE ID_PERSOANA="A2">
<TIP_RELATIE>COLEGI</TIP_RELATIE>
<NUME>RADU</NUME>
<PRENUME>ALINA</PRENUME>
<TELEFON_MOBIL>0722222222</TELEFON_MOBIL>
</ALTE_PROFILE>
<ALTE_PROFILE ID_PERSOANA="A3">
<TIP_RELATIE>COLEGI</TIP_RELATIE>
<NUME>BUCATA</NUME>
<PRENUME>CATALIN</PRENUME>
</ALTE_PROFILE>
<ALTE_PROFILE ID_PERSOANA="A4">
<TIP_RELATIE>COLEGI</TIP_RELATIE>
<NUME>COSTACHE</NUME>
<PRENUME>STEFAN</PRENUME>
</ALTE_PROFILE>
<ALTE_PROFILE ID_PERSOANA="A5">
<TIP_RELATIE>COLEGI</TIP_RELATIE>
<NUME>CIRJAN</NUME>
<PRENUME>DRAGOS</PRENUME>
</ALTE_PROFILE>
<ALTE_PROFILE ID_PERSOANA="A6">
<TIP_RELATIE>FUN</TIP_RELATIE>
<NUME>IONESCU</NUME>
<PRENUME>MARIAN</PRENUME>
<TELEFON_MOBIL>0724292434</TELEFON_MOBIL>
</ALTE_PROFILE>
</RELATII_SOCIALE>
<CONTACT>
<ADRESA>
<STRADA>CARPATI</STRADA>
<NR>82</NR>
<BLOC>P2</BLOC>
<SCARA>C</SCARA>
<ETAJ>3</ETAJ>
<APARTAMENT>14</APARTAMENT>
<ORAS>CAMPULUNG</ORAS>
<JUDET>ARGES</JUDET>
<COD>115100</COD>
</ADRESA>
</CONTACT>
<PROFESIONAL>
<OCUPATIE>STUDENT</OCUPATIE>
<DOMENIU>CALCULATOARE</DOMENIU>
<NUME_COMPANIE>FACULTATEA DE AUTOMATICA SI CALCULATOARE </NUME_COMPANIE>
<DESCRIERE_OCUPATIE>Studenta in anul 5, specializarea C1</DESCRIERE_OCUPATIE>
</PROFESIONAL>
</PROFIL>

Fisierul de stil asociat a fost:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
<table border="1">
<tr>
<th align="left"><big>Nume</big></th>
<th align="left"><big>Prenume</big></th>
<th align="left"><big>Data nasterii</big></th>
<th align="left"><big>Oras</big></th>
<th align="left"><big>Judet</big></th>
<th align="left"><big>Facultate</big></th>
</tr>

<xsl:for-each select="PROFIL/GENERAL">
<tr>
<td><xsl:value-of select="NUME"/></td>
<td><xsl:value-of select="PRENUME"/></td>
<td><xsl:value-of select="DATA_NASTERII"/></td>
<td><xsl:value-of select="ORAS"/></td>
<td><xsl:value-of select="JUDET"/></td>
<td><xsl:value-of select="FACULTATE"/></td>
</tr>
</xsl:for-each>
</table>

<table border="1">
<tr>
<th align="left"><big>Relatie prietenie</big></th>
<th align="left"><big>Nume</big></th>
<th align="left"><big>Prenume</big></th>
<th align="left"><big>Telefon</big></th>
</tr>

<xsl:for-each
select="PROFIL/RELATII_SOCIALE/ALTE_PROFILE">
<tr>
<td><xsl:value-of select="TIP_RELATIE"/></td>
<td><xsl:value-of select="NUME"/></td>
<td><xsl:value-of select="PRENUME"/></td>
<td><xsl:value-of select="TELEFON_MOBIL|TELEFON_FIX"/></td>
</tr>
</xsl:for-each>
</table>

</body>
</html>
</xsl:template>
</xsl:transform>

Deschizand noul fisier .xml in browser, vor fi obtinute doua tabele: unul cu informatii generale despre mine, si unul cu relatiile de prietenie si detaliil
Ca o observatie, trebuie sa fim atenti atunci cand facem selectia din XML, campurile selectate sa fie scrise la fel ca si in XML (in acest caz, cu litere mari, ex: PROFIL, ORAS etc)

duminică, 2 decembrie 2007

Ontologii in domeniul informatic

Ontologia in domeniul informatic

Ontologia in domeniul informatic face referire la incercarea de a formula o schema conceptuala exhaustiva si riguroasa in interiorul unui domeniu dat, avand drept scop facilitarea comunicatiei si impartirea informatiei intre diverse sisteme. Termenul de ontologie este intalnit in special in inteligenta artificiala si in domeniul reprezentarii cunostintelor.

O ontologie cuprinde:

- categoriile, conceptele fundamentale

- proprietatile conceptelor

- relatiile si diferentele dintre concepte

Este important sa ne gandim la o partajare a cunostintelor. Orice document XML poate fi considerat ca fiind o ontologie de ordin 0. Din punct de vedere formal, exista ontologii axiomatice (fac distinctia sub-tipurilor prin axiome si definitii specificate intr-un limbaj formal) si ontologii bazate pe prototipuri: disting sub-tipurile prin comparatia cu un membru tipic ori specificând un prototip pentru fiecare sub-tip în parte.

Limbajele bazate pe logici descriptive sunt: OIL (Ontology Inference Layer), RDFS( RDF Schema), OWL (Web Ontology Language) . OWL poate descrie semanticile claselor si proprietatile folosite in documentele web. OWL, fiind bazat pe XML, se foloseste pentru a partaja diferse ontologii intre aplicatii. Limbajul OWL suporta 3 versiuni: OWL Lite (poate face o clasificare ierarhica si simpla a caracteristicilor de constrangere), OWL DL (DL – Description Logic), OWL Full.

Exemplu: ontologie din domeniul animal

<rdfs:Class rdf:ID="cal">
   <rdfs:subClassOf rdf:resource="#mamifer" />
   <rdfs:subClassOf rdf:resource="#ierbivor" /> 
   <oil:hasPropertyRestriction> 
       <oil:ValueType> 
           <oil:onProperty 
              rdf:resource="#consuma" /> 
           <oil:toClass rdf:resource="#planta" /> 
       </oil:ValueType> 
       <oil:hasFiller> 
           <oil:onProperty 
              rdf:resource="#culoare" /> 
           <oil:stringFiller> 
              negru
           </oil:stringFiller> 
       </oil:hasFiller> 
   </oil:hasPropertyRestriction> 
</rdfs:Class> 

Enunt Tema 3

Se cere sa se implementeze o componenta Javascript la alegere dintre cele ce vor fi prezentate mai jos. Dupa ce sunt prezentate la laborator si dupa ce trece termenul de predare al temei, scripturile vor fi integrate pe site-ul proiectului. Ca si la tema precedenta 2 studenti care lucreaza la acelasi proiect nu vor putea sa-si aleaga aceeasi tema.
Fiecare tema are 2 variante - varianta mai simpla presupune numai utilizarea javascript si o tema facuta perfect poate obtine maxim 7p din 10. Varianta mai complexa presupune si utilizarea unui limbaj server-side (java, asp, php, etc.) + ajax si poate aduce 14 (tot din 10) smile

Temele sunt urmatoarele:

a) implementarea unui calendar pe site (folosind YUI).

  • varianta simpla - numai javascript: In calendar trebuie sa apara cu o culoare diferita datele cand au fost adaugate posturi pe blogul proiectului si la click pe una din zilele astfel subliniate sa se deschida pagina cu postul respectiv. maparea intre posturi linkuri si date se face static folosind un fisier de configurare.
  • acelasi comportament dar maparea intre posturi, linkuri si date se face dinamic folosind o baza de date si Ajax pentru incarcarea url-ului numai la click
b) contor (pe langa cel de la trafic sau de la google analytics)
  • varianta simpla ce foloseste numai javascript: la accesul pe site este afisat tipul browserului utilizatorului si de cate ori a mai accesat site-ul (se folosesc cookies si obiectul navigator http://www.w3schools.com/js/js_browser.asp )
  • varianta complexa - se foloseste ajax pentru a pastra vizitele intr-o baza de date si se actualizeaza live pe site (o data la 30 de secunde) numarul de pagini vizitate si de vizitatori unici
c) topul articolelor
  • varianta simpla - numai javascript: intr-o pagina a site-ului este prezentata lista cu titlurile articolelor publicate pana in acel moment. utilizatorul poate sa ordoneze articolele respective dupa preferinta si la sfarsit apasand pe butonul "save" sa reafiseze intr-un tabel linkurile in ordinea data de utilizator
  • varianta mai complicata: la sfarsitul ordonarii utilizatorul sa-si salveze alegerea si folosind AJAX sa i se afiseze lista articolelor in ordinea preferintelor globale ale utilizatorilor (se va folosi un sistem de scor - de exemplu primul primeste 10p, al doilea 8, al treilea 6, etc.) si scorul fiecaruia
d) autocomplete (exemplu: http://www.google.com/webhp?complete=1&hl=en)
  • varianta simpla: intr-un input de tip text se tiparesc caractere. Pe masura ce se tiparesc se cauta articolele dupa titlu intr-o lista initializata static si se ofera utilizatorului o lista cu articolele al caror titlu incepe cu caracterele tastate. dupa selectarea articolului se afiseaza linkul catre articolul respectiv.
  • varianta complexa: acelasi comportament dar cautarea se face intr-o baza de date folosind Ajax.
Dupa cum mi s-a atras atentia sunt si proiecte la care participa 5 persoane. numai pentru aceste grupe mai este valabila urmatoarea optiune:
e) implementarea unui select cu numele participantilor la proiect
  • varianta simpla (doar javascript) - la selectarea unuia dintre participanti se afiseaza un tabel cu linkuri catre toate temele sale (dintr-o lista initializata static)
  • varianta complexa - acelasi comportament dar folosind o baza de date si Ajax.

Welcome!

Acesta este blogul echipei formata din:
Alina Radu
Catalin Bucata
Diana Necula
Dragos Cirjan
Stefan Costache