Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
-
Upload
sabin-buraga -
Category
Technology
-
view
2.666 -
download
2
description
Transcript of Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
![Page 1: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/1.jpg)
Dr. Sabin-Corneliu BuragaFacultatea de Informatică
Universitatea “Alexandru Ioan Cuza” – Iași, România
www.purl.org/net/busaco@busaco
![Page 2: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/2.jpg)
„Lucrurile nu sunt grele de făcut,ceea ce este greu este să fim în stare să le facem!”
Constantin Brâncuși
![Page 3: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/3.jpg)
![Page 4: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/4.jpg)
Cum modelăm (reprezentăm) datele?
![Page 5: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/5.jpg)
Procesare(programe)
Date proprietare(baze de date, suite de birou)
Publicareadatelorpe Web (HTML)
Modelare(semi)
structurată(XML)
Modelareconceptuală(RDF, OWL)
1945 -1970 2000 - 20031994 - 20001970 - 1994 2003 -
“Data is lessimportant
than code”
“Data is asimportantas code”
“Data is moreimportant
than code”
evoluția conceptului de “dată” (Daconta et al., 2003)
datele: mai importante decât aplicațiile
![Page 6: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/6.jpg)
Procesare(programe)
Date proprietare(baze de date, suite de birou)
Publicareadatelorpe Web (HTML)
Modelare(semi)
structurată(XML)
Modelareconceptuală(RDF, OWL)
1945 -1970 2000 - 20031994 - 20001970 - 1994 2003 -
“Data is lessimportant
than code”
“Data is asimportantas code”
“Data is moreimportant
than code”
datele: mai importante decât aplicațiile
evoluția conceptului de “dată” (Daconta et al., 2003)
![Page 7: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/7.jpg)
Ce model de reprezentare a dateloralegem pentru…
stocarea datelor eterogene,provenind din surse multiple?
![Page 8: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/8.jpg)
Ce model de reprezentare a dateloralegem pentru…
informații care evoluează rapid?
![Page 9: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/9.jpg)
Ce model de reprezentare a dateloralegem pentru…
reprezentarea limbajului natural?
![Page 10: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/10.jpg)
Dorim să modelăm și să procesămdate privitoare la…
antologii de poezii,cataloage de produse ale unui e-shop,
depozite de rețete gastronomice,chestionare,rețele sociale
etc.
![Page 11: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/11.jpg)
Folosim HTML pentru modelarea datelorși – eventual – CSS pentru prezentarea lor
o soluție
![Page 12: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/12.jpg)
Folosim HTML pentru modelarea datelorși – eventual – CSS pentru prezentarea lor
<p><strong>Prietenii mei:</strong></p><ul>
<li><a href="http://twitter.com/pinguinulvesel">Dragoș</a></li>
<li><a href="mailto:[email protected]">Tux</a></li>
</ul>
o soluție
![Page 13: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/13.jpg)
![Page 14: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/14.jpg)
Nu putem defini propriile noastre marcaje!?
![Page 15: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/15.jpg)
Necesitate:un limbaj de marcare explicită a datelor
![Page 16: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/16.jpg)
Necesitate:un limbaj de marcare explicită a datelor
datele modelate pot fi practic nelimitate (unbound)și necunoscute
![Page 17: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/17.jpg)
Necesitate:un limbaj de marcare explicită a datelor
ar fi de dorit ca datelesă se poată „explica” pe ele însele (self-explanatory)
![Page 18: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/18.jpg)
Necesitate:un limbaj de marcare explicită a datelor
ar fi de dorit ca datelesă se poată „explica” pe ele însele (self-explanatory)
ce reprezintă triplul ("Sabin", "Buraga", 33)?
![Page 19: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/19.jpg)
Necesitate:modelul adoptat să se preteze arhitecturilornavigaționale actuale, bazate pe hipertext
suport pentru specificarea adreselor Web – URI-uri
![Page 20: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/20.jpg)
Am putea recurge la sau specificaun nou format de document?
![Page 21: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/21.jpg)
Documente:
formate particulare (proprietare)
versus
formate generice (deschise, standardizate)
![Page 22: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/22.jpg)
definiție
Marcaj – adnotare, codare, mark-up
orice actiune de a interpreta explicito porțiune de text (conținut)
![Page 23: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/23.jpg)
definiție
Marcaj – adnotare, codare, mark-up
orice actiune de a interpreta explicito porțiune de text (conținut)
exemple:semnele de punctuație pentru limbile scrise,
deliminatorii folosiți în codul-sursă
![Page 24: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/24.jpg)
![Page 25: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/25.jpg)
definiție
Limbaj de specificare(de adnotare, de marcare)
set de convenții de marcareutilizate pentru codificarea datelor
![Page 26: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/26.jpg)
definiție
Limbaj de specificare(de adnotare, de marcare)
set de convenții de marcareutilizate pentru codificarea datelor
specifică mulțimea de marcaje obligatorii,modul de identificare și de structurare a marcajelor
![Page 27: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/27.jpg)
Extensible Markup Language
meta-limbaj de marcare
permite definirea de limbaje
![Page 28: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/28.jpg)
Extensible Markup Language
descendent simplificat al SGML destinatutilizării în Internet (1996–prezent)
![Page 29: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/29.jpg)
Extensible Markup Language
standard al Consorțiului Web (W3C)
www.w3.org/TR/REC-xml
![Page 30: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/30.jpg)
Extensible Markup Language
o tehnologie + o familie de limbaje
www.w3.org/XML/
![Page 31: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/31.jpg)
Asigură inter-operabilitatea la nivel de date
are suport pe orice platformă hardware/software, inclusiv în cadrul navigatoarelor Web
![Page 32: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/32.jpg)
Asigură inter-operabilitatea la nivel de date
procesoarele XML sunt implementateîn toate limbajele de programare
![Page 33: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/33.jpg)
Asigură inter-operabilitatea la nivel de date
procesoarele XML sunt implementateîn toate limbajele de programare
metode uzuale de procesareobiectuală: DOM (Document Object Model)
secvențială bazată pe evenimente: SAX (Simple API for XML)simplificată: Simple XML
![Page 34: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/34.jpg)
Asigură inter-operabilitatea la nivel de date
recurge la Unicode – independent de codificare
![Page 35: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/35.jpg)
Soluție pentru reprezentarea conținutuluiresurselor Web identificate de URI/IRI
![Page 36: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/36.jpg)
Reprezentarea unei antologii de poezii
<?xml version="1.0" ?><antologie>
<poem><titlu>...</titlu> <strofa>
<vers>...</vers> <vers>...</vers> ...
</strofa> </poem> <!-- mai multe poeme… (acesta e un comentariu) -->
</antologie>
exemplu
![Page 37: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/37.jpg)
Specificarea unui catalog de produse
<produse> <produs tip="promo">
<nume>Ping Uinix</nume><ofertant>http://www.pinguin.info</ofertant>
</produs> <produs>
<!-- un soi de portocale albastre --><nume>Blue Ory</nume><descriere /> <!-- un element având conținut vid -->
</produs><produs>…</produs>
</produse>
exemplu
![Page 38: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/38.jpg)
Specificarea unui catalog de produse
<produse> <produs tip="promo">
<nume>Ping Uinix</nume><ofertant>http://www.pinguin.info</ofertant>
</produs> <produs>
<!-- un soi de portocale albastre --><nume>Blue Ory</nume><descriere /> <!-- un element având conținut vid -->
</produs><produs>…</produs>
</produse>
exemplu
![Page 39: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/39.jpg)
Specificarea unui catalog de produse
<produse> <produs tip="promo">
<nume>Ping Uinix</nume><ofertant>http://www.pinguin.info</ofertant>
</produs> <produs>
<!-- un soi de portocale albastre --><nume>Blue Ory</nume><descriere /> <!-- un element având conținut vid -->
</produs><produs>…</produs>
</produse>
exemplu
date semi-structurate
![Page 40: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/40.jpg)
Informații despre o persoanăvia vocabularul FOAF (Friend Of A Friend)
<foaf:Person rdf:ID="busaco"> <foaf:name>Sabin Buraga</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> <foaf:homepage rdf:resource="http://www.purl.org/net/busaco"/>
</foaf:Person>
exemplu
![Page 41: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/41.jpg)
Informații despre o persoanăvia vocabularul FOAF (Friend Of A Friend)
<foaf:Person rdf:ID="busaco"> <foaf:name>Sabin Buraga</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> <foaf:homepage rdf:resource="http://www.purl.org/net/busaco"/>
</foaf:Person>
<foaf:Image rdf:about="http://www.flickr.com/.../foto.jpg"> <dc:date rdf:datatype="xsd:date">2010-05-12</dc:date> <dc:title xml:lang="ro">Prezentare la Summer Web 2010</dc:title> <foaf:depicts rdf:resource="#busaco"/> <foaf:maker rdf:resource="#tux"/>
</foaf:Image>
exemplu
![Page 42: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/42.jpg)
Informații despre o persoanăvia vocabularul FOAF (Friend Of A Friend)
<foaf:Person rdf:ID="busaco"> <foaf:name>Sabin Buraga</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> <foaf:homepage rdf:resource="http://www.purl.org/net/busaco"/>
</foaf:Person>
<foaf:Image rdf:about="http://www.flickr.com/.../foto.jpg"> <dc:date rdf:datatype="xsd:date">2010-05-12</dc:date> <dc:title xml:lang="ro">Prezentare la Summer Web 2010</dc:title> <foaf:depicts rdf:resource="#busaco"/> <foaf:maker rdf:resource="#tux"/>
</foaf:Image>
exemplu
spații de nume
![Page 43: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/43.jpg)
sintaxaXML (Extensible Markup Language)
modelul de date XML (abstract)XML Information Set – Infoset
transformări/prezentări de dateXSL (Extensible Stylesheet Language)
interogarea datelorXQuery – împreună cu XPath
![Page 44: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/44.jpg)
Structurarea/formatarea conținutului(formate de prezentare a datelor)
în navigatorul Web: (X)HTML – Extensible HTMLformulare electronice: XForms
grafică vectorială: SVG (Scalable Vector Graphics)lumi tridimensionale: X3D (Extensible 3D Graphics)
în medii fără fir: XHTML-MP (Mobile Profile), Tiny SVG
![Page 45: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/45.jpg)
Reprezentarea diferitelor tipuri de conținut
expresii matematice: MathMLmultimedia sincronizată: SMIL
(Synchronized Multimedia Integration Language)informații vocale: VoiceXML
componente ale interfeței-utilizator: XUL(Extensible User-interface Language)
informații cartografice: KML (Keyhole Markup Language)
![Page 46: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/46.jpg)
Reprezentarea diferitelor tipuri de conținut
documentații: DocBook (Documentation Book)informații prelucrate de suite de birou
– e.g., Open Office: ODF (Open Document Format) mediatizare (syndication) – fluxuri de știri:
RSS (Really Simple Syndication), Atomreguli de specificare a proceselor de afaceri:
BRML (Business Rules Markup Language)
![Page 47: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/47.jpg)
Multe alte limbaje la
http://xml.coverpages.org/
![Page 48: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/48.jpg)
Așadar, până la urmă, ce este XML?
![Page 49: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/49.jpg)
XML unifică tehnologii privind:
procesarea documentelor
stocarea și prelucrarea tradițională a datelor
accesul la Internet (Web)
![Page 50: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/50.jpg)
XML
Internet
Docu-mente
Bazede date
![Page 51: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/51.jpg)
XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate
![Page 52: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/52.jpg)
XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate
sistemele tradiționale (e.g., bazele de date relaționale)necesită specificarea unei scheme rigide
în vederea stocării/accesării datelor
![Page 53: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/53.jpg)
XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate
sistemele tradiționale (e.g., bazele de date relaționale)necesită specificarea unei scheme rigide
în vederea stocării/accesării datelor
…un punct de vedere în general centralizat
![Page 54: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/54.jpg)
XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate
datele de pe Web sunt descentralizate, eterogene și pot fi,deseori, accesate – chiar modificate – de către oricine
![Page 55: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/55.jpg)
XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate
datele de pe Web sunt descentralizate, eterogene și pot fi,deseori, accesate – chiar modificate – de către oricine
resursele disponibile la un moment datnu sunt cunoscute a-priori
![Page 56: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/56.jpg)
![Page 57: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/57.jpg)
Direcții de interes:comunicatii și interacțiune
![Page 58: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/58.jpg)
Direcții de interes:comunicatii și interacțiune
person-to-person
instant messaging – e.g., Jabber via XMPPmicro-blogging – exemplu: Twitter
![Page 59: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/59.jpg)
Direcții de interes:comunicatii și interacțiune
computer-to-person
syndication – via RSS/Atomrecomandare de conținut – e.g., Zemanta
integrare de sisteme sociale
![Page 60: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/60.jpg)
![Page 61: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/61.jpg)
Direcții de interes:comunicatii și interacțiune
computer-to-computer
servicii Webaplicații hibride (mash-up-uri)
![Page 62: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/62.jpg)
Twitter + Google EarthTwittEarth
![Page 63: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/63.jpg)
Direcții de interes:publicare deschisă a datelor
![Page 64: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/64.jpg)
Direcții de interes:publicare deschisă a datelor
modelare (semi)structurată
utilizare de formate/vocabulare standardizateDCMI (Dublin Core Metadata Initiative),
FOAF (Friend Of A Friend),DOAP (Description Of A Project),
…
![Page 65: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/65.jpg)
![Page 66: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/66.jpg)
Direcții de interes:publicare deschisă a datelor
procesare independentă de platformă/limbaj
![Page 67: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/67.jpg)
Direcții de interes:publicare deschisă a datelor
prezentări multiple ale conținutului,în diverse formate, pe sisteme eterogene
![Page 68: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/68.jpg)
![Page 69: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/69.jpg)
Direcții de interes:modelarea proceselor (de afaceri, mai ales)
![Page 70: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/70.jpg)
Direcții de interes:modelarea proceselor (de afaceri, mai ales)
dataflow/workflow
BRML (Business Rules Markup Language),BPEL4WS (Business Process Execution Language
for Web Services)
![Page 71: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/71.jpg)
Analizoare (procesoare, parsers)Apache Xerces, Expat, libxml,…
Vizualizatoare și editoare structuraleFirefox, Open Office, 4Suite, <oXygen />, Serna etc.
Formatatoare – e.g., procesoare XSLT/XSL-FOApache FOP, libxslt, Saxon,…
![Page 72: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/72.jpg)
Firefinder – folosirea interogărilor XPath în cadrul Firebug
![Page 73: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/73.jpg)
Instrumente de convertireTidy
Instrumente de arhivareXMill
Sisteme de gestiune a bazelor de date XMLBerkeley DB XML, eXist, Sedna etc.
![Page 74: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/74.jpg)
![Page 75: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/75.jpg)
Există bune practiciprivind utilizarea și/sau modelarea
documentelor XML?
![Page 76: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/76.jpg)
Cum trebuie structurat un document XML pentru a modela (stoca)
anumite date sau meta-date?
![Page 77: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/77.jpg)
Recurgerea la șabloane de proiectare(design patterns)
![Page 78: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/78.jpg)
definiție
Pattern (șablon)
regulă ce exprimă o relațiedintre un context, o problemă și o soluție
Christopher Alexander, 1979
![Page 79: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/79.jpg)
Uzual, pattern-urile sunt utilizateîn proiectarea de aplicații
(object-oriented software design)
pattern “mind sized” chunk of information
lucrarea de referință:E. Gamma et al., Design Patterns, Addison-Wesley, 1995
![Page 80: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/80.jpg)
Șabloanele de proiectare au fost folosite, ulterior, în cadrul interacțiunii om-calculator
context: IA – Information Architecture
resurse esențiale:J. Tidwell, Designing Interfaces, O’Reilly, 2005
www.hcipatterns.orgwww.welie.com/patterns
![Page 81: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/81.jpg)
folosirea șabloanelor de interacțiune
![Page 82: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/82.jpg)
Un șablon poate descrie cunoștințele unui expert(pe baza experienței sale personale)
în domeniul problemei în ceea ce priveșterecunoașterea problemei, a contextului și a soluției
la acea problemă
![Page 83: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/83.jpg)
Un șablon nu reprezintă o regulă fermă
uneori nu trebuie aplicatanti-patterns
![Page 84: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/84.jpg)
Este necesară adoptarea unui vocabular comuncorespunzător domeniului problemei
pattern language
![Page 85: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/85.jpg)
Șabloane privitoare la:
proiectarearhitectură
analizădezvoltarestructură
comportament
![Page 86: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/86.jpg)
Ne interesează modelarea datelorpe baza familiei XML
![Page 87: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/87.jpg)
Recurgerea la șabloane structurale pentruproiectarea structurii unui document XML:
lungimea documentuluiușurința folosirii marcajelor
ușurința procesăriiflexibilitateaconsistența
gradul de abstractizare
![Page 88: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/88.jpg)
Use XML
determină situația în care XML este soluția viabilă de reprezentare a informațiilor (semi-)structurate
exemplu
![Page 89: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/89.jpg)
Use XML
reprezentări multiple: binar, CSV (Comma-Separated Values), HTML,
baze de date relaționale, obiecte serializate, XML,…
exemplu
![Page 90: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/90.jpg)
Use XML
XML poate fi o soluție adecvată atunci când:
datele (conținutul) trebuie separat(e) de formatare
exemplu
![Page 91: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/91.jpg)
Use XML
XML poate fi o soluție adecvată atunci când:
datele trebuie partajate între aplicații, organizații,...
exemplu
![Page 92: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/92.jpg)
exemplu
![Page 93: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/93.jpg)
Use XML
XML poate fi o soluție adecvată atunci când:
reprezentarea resurselortrebuie să poată fi înțeleasă și de oameni
exemplu
![Page 94: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/94.jpg)
Use XML
XML poate fi o soluție adecvată atunci când:
reprezentarea trebuie procesată facil de calculator, independent de platformă și de limbaj
exemplu
![Page 95: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/95.jpg)
Short Understandable Names
numele marcajelor (elemente și atribute)trebuie să fie scurte și ușor de înțeles atât de autori,
cât și de dezvoltatorii software-uluicare va procesa documentul XML
exemplu
![Page 96: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/96.jpg)
Short Understandable Names
numele prea scurte sunt dificil de înțeles,dar reduc lungimea documentelor
<DescriereaEchipamentului CodulEchipamentului="…" /> versus <desec c="…" />
<b> <ul> versus <video /> <table> <title>
exemplu
![Page 97: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/97.jpg)
Short Understandable Names
convenții de numire:
<nume_tag><NumeTag><numeTag>
exemplu
![Page 98: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/98.jpg)
Content Element
problemă: numeroase elemente care aparpe același nivel în document și care pot fi divizate
în grupuri distincte
un container grupează elemente (copil) înrudite
exemplu
![Page 99: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/99.jpg)
Content Element
adaugă un nivel de abstractizare,gruparea elementelor oferind informații semantice
suplimentare – e.g., asocierea de meta-date unui grup de elemente
exemplu
![Page 100: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/100.jpg)
Content Element
șabloane înrudite: Head-Body
Collection Element
exemplu
![Page 101: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/101.jpg)
Content Element
exemplu
<config>
<ram>4096</ram>
<hdd tip="...">500</hdd>
<parser limbaj="Java">
Xerces</parser>
<editor>vim</editor>
<parser limbaj="Perl">
Expat</parser>
</config>
<config><hardware>
<ram>4096</ram><hdd tip="...">500</hdd>
</hardware><software>
<parser limbaj="Java">Xerces</parser>
<parser limbaj="Perl">Expat</parser>
<editor>vim</editor></software>
</config>
![Page 102: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/102.jpg)
Envelope
oferă un tip de document care va desemna un „plic” în care se vor putea stoca date XML arbitrare
exemplu
![Page 103: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/103.jpg)
Envelope
oferă un tip de document care va desemna un „plic” în care se vor putea stoca date XML arbitrare
problemă: diferite seturi de date trebuie livrateunui sistem, într-o manieră consistentă
context: structura datelor din „plic” poate varia și nu este cunoscută la momentul creării sistemului
exemplu
![Page 104: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/104.jpg)
Envelope
permite separarea diferitelor tipuri de conținuturi,oferindu-se un mecanism de livrare a datelor XML
„plicul” nu interferează cu conținutul propriu-zisal mesajului transmis
exemplu
![Page 105: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/105.jpg)
Envelope
exemplu tipic de utilizare:protocolul SOAP folosit la vehicularea datelor
dintre servicii Web și clienți
exemplu
![Page 106: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/106.jpg)
Envelope
exemplu
![Page 107: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/107.jpg)
Role Attribute
problemă:unui element îi trebuie precizat rolul
(i.e. caracteristica definitorie)
exemplu
![Page 108: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/108.jpg)
Role Attribute
problemă:unui element îi trebuie precizat rolul
(i.e. caracteristica definitorie)
soluție:se poate folosi un atribut specificând rolul
exemplu
![Page 109: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/109.jpg)
Role Attribute
valorile atributului trebuie să fie mutual exclusive
pentru un element XML, nu pot apăreade mai multe ori atribute având același nume
<departament rol="cercetare">…</departament>
exemplu
![Page 110: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/110.jpg)
Role Attribute
exemple de utilizare în cadrul microformatelor
www.microformats.org
vezi direcția POSH (Plain Old Semantic HTML)
exemplu
![Page 111: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/111.jpg)
Alte șabloane
reutilizarea tipurilor de documente existente: Reuse Document Type
![Page 112: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/112.jpg)
Alte șabloane
alegerea elementului/elementelor rădăcină: Multiple Document Types
Multi Root Document Types
![Page 113: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/113.jpg)
Alte șabloane
referențierea unor construcții: Declare Before First Use
referențierea aceleiași informații în locuri multiple: Flyweight
arbore (ierarhie) versus graf: Marketplace
facilitează organizarea structurii documentului XML
![Page 114: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/114.jpg)
Alte șabloane
facilitarea extinderii: Catch-All Element
Role AttributeExtensible Content Model
![Page 115: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/115.jpg)
Alte șabloane
asigurarea consistenței: Common Attributes
Consistent Element Set
![Page 116: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/116.jpg)
Alte șabloane
asocierea de meta-date:Separate Metadata & Data
Metadata in Separate DocumentHead-Body
Metadata First
![Page 117: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/117.jpg)
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatoruluiîn contextul navigării pe Web
studiu de caz
![Page 118: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/118.jpg)
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatoruluiîn contextul navigării pe Web
studiu de caz
<preferinte tema="aqua" rezolutie="1024x768" browser="Firefox 3.6"
/>
![Page 119: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/119.jpg)
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatoruluiîn contextul navigării pe Web
studiu de caz
<preferinte tema="aqua" rezolutie="1024x768" browser="Firefox 3.6"
/>
convenții de reprezentare ce nu pot fi deduse explicit
![Page 120: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/120.jpg)
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatoruluiîn contextul navigării pe Web
studiu de caz
<preferinte tema="aqua" rezolutie="1024x768" browser="Firefox 3.6"
/>
dacă trebuie stocatăo listă de navigatoare?
![Page 121: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/121.jpg)
Modelarea datelor (de la implicit la explicit)
recurgând la șabloaneo soluție mai bună
studiu de caz
<preferinte> <tema>aqua</tema><rezolutie>
<latime unit="px">1024</latime><lungime unit="px">768</lungime>
</rezolutie><browser versiune="3.6">Firefox</browser>
</preferinte>
![Page 122: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/122.jpg)
![Page 123: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/123.jpg)
Resurse bibliografice
S. Buraga, Tehnologii XML, Polirom, 2006
S. Buraga (coord.), Programarea în Web 2.0, Polirom, 2007
B. Daum, U. Merten, System Architecture with XML,Elsevier Science, 2003
![Page 124: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/124.jpg)
Situri Web de interes
Consorțiul Web: www.w3.org
Șabloane de proiectare XML: www.XMLPatterns.com
XML.org: www.XML.org
Instrumente XML open source oferite de fundația Apache: xml.apache.org
![Page 125: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.fdocuments.in/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/125.jpg)
Ă