An introduction to XML (Extensible Markup Language), including several considerations regarding the use of design patterns in the context of semi-structural data modeling.
A presentation regarding search engines, Web robots and related technologies prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016).
O prezentare referitoare la motoare de căutare, roboți Web și alte tehnologii înrudite pregătită pentru Școala de vară "Informatica la Castel" (Macea, Arad, România, 2016): http://informaticalacastel.ro/
A presentation – available in Romanian language – regarding the open data and 5-star access & publishing approaches. Also, several details about the linked data initiative are provided.
Aspecte esențiale privitoare la limbajul de marcare HTML5 (o prezentare pentru un hackathon Web destinat elevilor de liceu).
Essential aspects about the HTML5 markup language (a Web hackathon presentation for high-school students).
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
A presentation regarding search engines, Web robots and related technologies prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016).
O prezentare referitoare la motoare de căutare, roboți Web și alte tehnologii înrudite pregătită pentru Școala de vară "Informatica la Castel" (Macea, Arad, România, 2016): http://informaticalacastel.ro/
A presentation – available in Romanian language – regarding the open data and 5-star access & publishing approaches. Also, several details about the linked data initiative are provided.
Aspecte esențiale privitoare la limbajul de marcare HTML5 (o prezentare pentru un hackathon Web destinat elevilor de liceu).
Essential aspects about the HTML5 markup language (a Web hackathon presentation for high-school students).
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
WADe 2017-2018 (6/12) RDF Data Management. Accessing RDF Data via SPARQLSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
O lectie de anatomie Web. Disectia unui document HTMLSabin Buraga
A presentation -- prepared for InfoEducatie 2012, a national IT contest for high-school students -- regarding the main methods to access (and process) parts of a HTML document by using CSS, XPath, and JavaScript (jQuery).
O prezentare (pentru ediția 2015 a Școlii de vară "Informatica la Castel" de la Macea, Arad – www.informaticalacastel.ro) descriind o serie de instrumente Web disponibile liber și bazate pe diversele tehnologii aliniate curentului "cloud computing" pentru editarea, testarea, rularea și partajarea de cod-sursă scris în mai multe limbaje de programare.
Pentru alte detalii, a se vizita siturile aferente materiilor predate de Sabin Buraga: http://profs.info.uaic.ro/~busaco/teach/
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)Sabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
WADe 2017-2018 (1/12) Web Application Development: Concepts & VisionSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Prezentare oferită Academiei Române, filiala Cluj Napoca, Arhiva de Folclor, 7 iunie, 2014
Prezentarea a oferit o perspectivă asupra unor aspecte privind construcția depozitelor digitale proprii dedicate obiectelor culturale (reprezentări digitale).
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
More Related Content
Similar to Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
WADe 2017-2018 (6/12) RDF Data Management. Accessing RDF Data via SPARQLSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
O lectie de anatomie Web. Disectia unui document HTMLSabin Buraga
A presentation -- prepared for InfoEducatie 2012, a national IT contest for high-school students -- regarding the main methods to access (and process) parts of a HTML document by using CSS, XPath, and JavaScript (jQuery).
O prezentare (pentru ediția 2015 a Școlii de vară "Informatica la Castel" de la Macea, Arad – www.informaticalacastel.ro) descriind o serie de instrumente Web disponibile liber și bazate pe diversele tehnologii aliniate curentului "cloud computing" pentru editarea, testarea, rularea și partajarea de cod-sursă scris în mai multe limbaje de programare.
Pentru alte detalii, a se vizita siturile aferente materiilor predate de Sabin Buraga: http://profs.info.uaic.ro/~busaco/teach/
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)Sabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
WADe 2017-2018 (1/12) Web Application Development: Concepts & VisionSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Prezentare oferită Academiei Române, filiala Cluj Napoca, Arhiva de Folclor, 7 iunie, 2014
Prezentarea a oferit o perspectivă asupra unor aspecte privind construcția depozitelor digitale proprii dedicate obiectelor culturale (reprezentări digitale).
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
5. datele: mai importante decât aplicațiile
Procesare Date proprietare Publicarea Modelare Modelare
(programe) (baze de date, datelor (semi) conceptuală
suite de birou) pe Web structurată (RDF, OWL)
(HTML) (XML)
“Data is less “Data is as “Data is more
important important important
than code” as code” than code”
1945 -1970 1970 - 1994 1994 - 2000 2000 - 2003 2003 -
evoluția conceptului de “dată” (Daconta et al., 2003)
6. datele: mai importante decât aplicațiile
Procesare Date proprietare Publicarea Modelare Modelare
(programe) (baze de date, datelor (semi) conceptuală
suite de birou) pe Web structurată (RDF, OWL)
(HTML) (XML)
“Data is less “Data is as “Data is more
important important important
than code” as code” than code”
1945 -1970 1970 - 1994 1994 - 2000 2000 - 2003 2003 -
evoluția conceptului de “dată” (Daconta et al., 2003)
7. Ce model de reprezentare a datelor
alegem pentru…
stocarea datelor eterogene,
provenind din surse multiple?
8. Ce model de reprezentare a datelor
alegem pentru…
informații care evoluează rapid?
9. Ce model de reprezentare a datelor
alegem pentru…
reprezentarea limbajului natural?
10. Dorim să modelăm și să procesăm
date privitoare la…
antologii de poezii,
cataloage de produse ale unui e-shop,
depozite de rețete gastronomice,
chestionare,
rețele sociale
etc.
11. o soluție
Folosim HTML pentru modelarea datelor
și – eventual – CSS pentru prezentarea lor
12. o soluție
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:tux@pinguin.info">
Tux</a></li>
</ul>
16. Necesitate:
un limbaj de marcare explicită a datelor
datele modelate pot fi practic nelimitate (unbound)
și necunoscute
17. Necesitate:
un limbaj de marcare explicită a datelor
ar fi de dorit ca datele
să se poată „explica” pe ele însele (self-explanatory)
18. Necesitate:
un limbaj de marcare explicită a datelor
ar fi de dorit ca datele
să se poată „explica” pe ele însele (self-explanatory)
ce reprezintă triplul ("Sabin", "Buraga", 33)?
19. Necesitate:
modelul adoptat să se preteze arhitecturilor
navigaționale actuale, bazate pe hipertext
suport pentru specificarea adreselor Web – URI-uri
21. Documente:
formate particulare (proprietare)
versus
formate generice (deschise, standardizate)
22. definiție
Marcaj – adnotare, codare, mark-up
orice actiune de a interpreta explicit
o porțiune de text (conținut)
23. definiție
Marcaj – adnotare, codare, mark-up
orice actiune de a interpreta explicit
o porțiune de text (conținut)
exemple:
semnele de punctuație pentru limbile scrise,
deliminatorii folosiți în codul-sursă
24.
25. definiție
Limbaj de specificare
(de adnotare, de marcare)
set de convenții de marcare
utilizate pentru codificarea datelor
26. definiție
Limbaj de specificare
(de adnotare, de marcare)
set de convenții de marcare
utilizate pentru codificarea datelor
specifică mulțimea de marcaje obligatorii,
modul de identificare și de structurare a marcajelor
33. Asigură inter-operabilitatea la nivel de date
procesoarele XML sunt implementate
în toate limbajele de programare
metode uzuale de procesare
obiectuală: DOM (Document Object Model)
secvențială bazată pe evenimente: SAX (Simple API for XML)
simplificată: Simple XML
36. exemplu
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>
37. exemplu
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>
38. exemplu
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>
39. exemplu
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>
date semi-structurate
40. exemplu
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:busaco@infoiasi.ro"/>
<foaf:homepage rdf:resource="http://www.purl.org/net/busaco"/>
</foaf:Person>
41. exemplu
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:busaco@infoiasi.ro"/>
<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>
42. exemplu
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:busaco@infoiasi.ro"/>
<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>
spații de nume
43. sintaxa
XML (Extensible Markup Language)
modelul de date XML (abstract)
XML Information Set – Infoset
transformări/prezentări de date
XSL (Extensible Stylesheet Language)
interogarea datelor
XQuery – împreună cu XPath
44. Structurarea/formatarea conținutului
(formate de prezentare a datelor)
în navigatorul Web: (X)HTML – Extensible HTML
formulare 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
45. Reprezentarea diferitelor tipuri de conținut
expresii matematice: MathML
multimedia 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)
46. 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), Atom
reguli de specificare a proceselor de afaceri:
BRML (Business Rules Markup Language)
51. XML se pretează pentru stocarea
(reprezentarea) datelor semi-structurate
52. 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
53. 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
54. 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
55. 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 dat
nu sunt cunoscute a-priori
58. Direcții de interes:
comunicatii și interacțiune
person-to-person
instant messaging – e.g., Jabber via XMPP
micro-blogging – exemplu: Twitter
59. Direcții de interes:
comunicatii și interacțiune
computer-to-person
syndication – via RSS/Atom
recomandare de conținut – e.g., Zemanta
integrare de sisteme sociale
60.
61. Direcții de interes:
comunicatii și interacțiune
computer-to-computer
servicii Webaplicații hibride (mash-up-uri)
64. Direcții de interes:
publicare deschisă a datelor
modelare (semi)structurată
utilizare de formate/vocabulare standardizate
DCMI (Dublin Core Metadata Initiative),
FOAF (Friend Of A Friend),
DOAP (Description Of A Project),
…
65.
66. Direcții de interes:
publicare deschisă a datelor
procesare independentă de platformă/limbaj
67. Direcții de interes:
publicare deschisă a datelor
prezentări multiple ale conținutului,
în diverse formate, pe sisteme eterogene
70. 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)
71. Analizoare (procesoare, parsers)
Apache Xerces, Expat, libxml,…
Vizualizatoare și editoare structurale
Firefox, Open Office, 4Suite, <oXygen />, Serna etc.
Formatatoare – e.g., procesoare XSLT/XSL-FO
Apache FOP, libxslt, Saxon,…
78. definiție
Pattern (șablon)
regulă ce exprimă o relație
dintre un context, o problemă și o soluție
Christopher Alexander, 1979
79. 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
80. Ș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.org
www.welie.com/patterns
82. Un șablon poate descrie cunoștințele unui expert
(pe baza experienței sale personale)
în domeniul problemei în ceea ce privește
recunoașterea problemei, a contextului și a soluției
la acea problemă
83. Un șablon nu reprezintă o regulă fermă
uneori nu trebuie aplicatanti-patterns
84. Este necesară adoptarea unui vocabular comun
corespunzător domeniului problemei
pattern language
87. Recurgerea la șabloane structurale pentru
proiectarea structurii unui document XML:
lungimea documentului
ușurința folosirii marcajelor
ușurința procesării
flexibilitatea
consistența
gradul de abstractizare
88. exemplu
Use XML
determină situația în care XML este soluția viabilă
de reprezentare a informațiilor (semi-)structurate
89. exemplu
Use XML
reprezentări multiple:
binar, CSV (Comma-Separated Values), HTML,
baze de date relaționale, obiecte serializate, XML,…
90. exemplu
Use XML
XML poate fi o soluție adecvată atunci când:
datele (conținutul) trebuie separat(e) de formatare
91. exemplu
Use XML
XML poate fi o soluție adecvată atunci când:
datele trebuie partajate între aplicații, organizații,...
93. exemplu
Use XML
XML poate fi o soluție adecvată atunci când:
reprezentarea resurselor
trebuie să poată fi înțeleasă și de oameni
94. exemplu
Use XML
XML poate fi o soluție adecvată atunci când:
reprezentarea trebuie procesată facil de calculator,
independent de platformă și de limbaj
95. exemplu
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-ului
care va procesa documentul XML
96. exemplu
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>
97. exemplu
Short Understandable Names
convenții de numire:
<nume_tag>
<NumeTag>
<numeTag>
98. exemplu
Content Element
problemă: numeroase elemente care apar
pe același nivel în document și care pot fi divizate
în grupuri distincte
un container grupează elemente (copil) înrudite
99. exemplu
Content Element
adaugă un nivel de abstractizare,
gruparea elementelor oferind informații semantice
suplimentare – e.g., asocierea de meta-date
unui grup de elemente
100. exemplu
Content Element
șabloane înrudite:
Head-Body
Collection Element
102. exemplu
Envelope
oferă un tip de document care va desemna un „plic”
în care se vor putea stoca date XML arbitrare
103. exemplu
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 livrate
unui sistem, într-o manieră consistentă
context: structura datelor din „plic” poate varia și
nu este cunoscută la momentul creării sistemului
104. exemplu
Envelope
permite separarea diferitelor tipuri de conținuturi,
oferindu-se un mecanism de livrare a datelor XML
„plicul” nu interferează cu conținutul propriu-zis
al mesajului transmis
105. exemplu
Envelope
exemplu tipic de utilizare:
protocolul SOAP folosit la vehicularea datelor
dintre servicii Web și clienți
107. exemplu
Role Attribute
problemă:
unui element îi trebuie precizat rolul
(i.e. caracteristica definitorie)
108. exemplu
Role Attribute
problemă:
unui element îi trebuie precizat rolul
(i.e. caracteristica definitorie)
soluție:
se poate folosi un atribut specificând rolul
109. exemplu
Role Attribute
valorile atributului trebuie să fie mutual exclusive
pentru un element XML, nu pot apărea
de mai multe ori atribute având același nume
<departament rol="cercetare">…</departament>
110. exemplu
Role Attribute
exemple de utilizare în cadrul microformatelor
www.microformats.org
vezi direcția POSH (Plain Old Semantic HTML)
113. 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
114. Alte șabloane
facilitarea extinderii:
Catch-All Element
Role Attribute
Extensible Content Model
116. Alte șabloane
asocierea de meta-date:
Separate Metadata & Data
Metadata in Separate Document
Head-Body
Metadata First
117. studiu de caz
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatorului
în contextul navigării pe Web
118. studiu de caz
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatorului
în contextul navigării pe Web
<preferinte
tema="aqua"
rezolutie="1024x768"
browser="Firefox 3.6"
/>
119. studiu de caz
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatorului
în contextul navigării pe Web
<preferinte
tema="aqua" convenții de reprezentare
ce nu pot fi deduse explicit
rezolutie="1024x768"
browser="Firefox 3.6"
/>
120. studiu de caz
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatorului
în contextul navigării pe Web
<preferinte
tema="aqua"
rezolutie="1024x768"
browser="Firefox 3.6" dacă trebuie stocată
o listă de navigatoare?
/>
121. studiu de caz
Modelarea datelor (de la implicit la explicit)
recurgând la șabloaneo soluție mai bună
<preferinte>
<tema>aqua</tema>
<rezolutie>
<latime unit="px">1024</latime>
<lungime unit="px">768</lungime>
</rezolutie>
<browser versiune="3.6">Firefox</browser>
</preferinte>
122.
123. 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
124. 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