csv o xml? - open data · un’ipotesi di come mettere gli studenti •potremmo mettere una riga...
TRANSCRIPT
![Page 1: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/1.jpg)
CSV o XML?
![Page 2: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/2.jpg)
Quale formato è quello più adatto?
• Dipende dai dati
O meglio…
• Dipende dalla struttura dei dati, cioè da come sono organizzati
• Esistono diversi modi di organizzare i dati• Tabellare
• Ad albero
• Reticolare
![Page 3: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/3.jpg)
Facciamo un esempio pratico
• La tabella riporta i numero di ore di studio fatte da tre studenti (Francesco, Mario e Alessio) in tre materie (Italiano, Storia e Geografia)
Problemi?
Materia Francesco Mario Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
![Page 4: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/4.jpg)
Problemi?
• Di che parla la tabella?• Studenti
• Materie
• OreDiStudio Materia Francesco Mario Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
![Page 5: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/5.jpg)
Una descrizione del dominio
• Dominio
Ogni STUDENTE dedica delle ORE DI STUDIO per ciascuna MATERIA
(metatadi)
vs
MARIO dedica 2 ore all’Italiano
(dati)
![Page 6: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/6.jpg)
Problemi?
• In che modo questi tre elementi sono stati combinati per strutturare la tabella?
• Combinazione di un orientamento orizzontale e di uno verticale
Studente
Materia ORE DI STUDIO
Materia Francesco Mario Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
![Page 7: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/7.jpg)
lo schema standard di una tabella
• I dati sono elencati per riga.
• I dati di una colonna contengono dati di natura omogenea
• L’intestazione della colonna mi dice che tipo di dati contiene la colonna
• Orientamento solo verticale
Intestaz.1 Intestaz.2 … Intestaz.n
![Page 8: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/8.jpg)
L’intestazione della colonna mi dice che tipo di dati contiene la colonna?• NO
• L’intestazione della prima colonna è Francesco, mentre i dati sono dei numeri
• Cosa rappresentano questi numeri?• Le ore di studio di Francesco
Come dovremmo cambiare la tabella?
Materia Francesco Mario Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
![Page 9: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/9.jpg)
Come dovremmo cambiare la tabella?
• Una prima modifica potrebbe essere il cambio dell’intestazione delle colonne
• Sostituisco «Francesco» con «Ore di studio di Francesco»
Materia
Ore di
studioi di
Francesco
Ore di
studio di
Mario
Ore di
studio di
Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
![Page 10: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/10.jpg)
Che fine hanno fatto gli studenti?
• Di che parla la tabella?• Studenti
• Materie
• Ore di studio
• Gli studenti sembrano spariti
• Proviamo ad aggiungerli
Ore di
studioi di
Francesco
Ore di
studio di
Mario
Ore di
studio di
Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
![Page 11: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/11.jpg)
Un’ipotesi di come mettere gli studenti
• Potremmo mettere una riga
• Una tabella strana
• Una possibile colonna «Studente» diventata una riga «Studente»
Studente Francesco Mario Alessio
MateriaOre di studioi
di Francesco
Ore di
studio di
Mario
Ore di
studio di
Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
![Page 12: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/12.jpg)
lo schema standard di una tabella
• I dati sono elencati per riga.
• I dati di una colonna contengono dati di natura omogenea
• L’intestazione della colonna mi dice che tipo di dati contiene la colonna
• Orientamento solo verticale
Intestaz.1 Intestaz.2 … Intestaz.n
![Page 13: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/13.jpg)
Mettiamo gli studenti su una colonna
• Come cambia?
• Gli studenti ora sono in colonna, ma le materie hanno preso il loro posto
Materia Italiano Storia Geografia
Studente
Ore di
studio di
Italiano
Ore di
studiodi
Storia
Ore di studio
di Geografia
Francesco 1 6 7
Mario 2 5 8
Alessio 3 4 9
Studente Francesco Mario Alessio
MateriaOre di studioi
di Francesco
Ore di
studio di
Mario
Ore di
studio di
Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
![Page 14: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/14.jpg)
Una chiave per risolvere
• Distinguiamo dati da metadati
• Di che parla la tabella?• Studenti
• Ore di studio
• Materie
• Questi elementi dovrebbero essere messi in colonna
Studente Francesco Mario Alessio
MateriaOre di studioi
di Francesco
Ore di
studio di
Mario
Ore di
studio di
Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
![Page 15: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/15.jpg)
Una colonna per ogni tipo di elemento
• Le tre colonne sono:• Studente
• Materia
• Ore di studio
• Per ogni studente devo scrivere 3 righe!
Studente MateriaOre di
studio
Francesco Italiano 1
Francesco Storia 6
Francesco Geografia 7
Mario Italiano 2
Mario Storia 5
Mario Geografia 8
Alessio Italiano 3
Alessio Storia 4
Alessio Geografia 9
Metadati
Dati
![Page 16: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/16.jpg)
lo schema standard di una tabella
Intestaz.1 Intestaz.2 … Intestaz.nStudente Materia
Ore di
studio
Francesco Italiano 1
Francesco Storia 6
Francesco Geografia 7
Mario Italiano 2
Mario Storia 5
Mario Geografia 8
Alessio Italiano 3
Alessio Storia 4
Alessio Geografia 9
![Page 17: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/17.jpg)
lo schema standard di una tabella
Studente MateriaOre di
studio
Francesco Italiano 1
Francesco Storia 6
Francesco Geografia 7
Mario Italiano 2
Mario Storia 5
Mario Geografia 8
Alessio Italiano 3
Alessio Storia 4
Alessio Geografia 9
Materia Francesco Mario Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
![Page 18: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/18.jpg)
Proviamo a semplificare la tabella
• Ma una tabella non dovrebbe avere celle unite
Studente MateriaOre di
studio
Francesco Italiano 1
Francesco Storia 6
Francesco Geografia 7
Mario Italiano 2
Mario Storia 5
Mario Geografia 8
Alessio Italiano 3
Alessio Storia 4
Alessio Geografia 9
Studente MateriaOre di
studio
Italiano 1
Storia 6
Geografia 7
Italiano 2
Storia 5
Geografia 8
Italiano 3
Storia 4
Geografia 9
Alessio
Francesco
Mario
![Page 19: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/19.jpg)
Ruotiamo la tabella
Da
A
Studente
Materia Italiano Storia Geografia Italiano Storia Geografia Italiano Storia Geografia
Ore di
studio 1 6 7 2 5 8 3 4 9
Francesco Mario Alessio
Studente MateriaOre di
studio
Italiano 1
Storia 6
Geografia 7
Italiano 2
Storia 5
Geografia 8
Italiano 3
Storia 4
Geografia 9
Alessio
Francesco
Mario
![Page 20: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/20.jpg)
Cosa si intravede nella tabella?
Voti
Studente
Materia Italiano Storia Geografia Italiano Storia Geografia Italiano Storia Geografia
Ore di
studio 1 6 7 2 5 8 3 4 9
Francesco Mario Alessio
![Page 21: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/21.jpg)
Un albero nascosto in una tabella
![Page 22: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/22.jpg)
Un albero nascosto in una tabella
![Page 23: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/23.jpg)
Un albero nascosto in una tabella
Voti
Studente
Materia
Ore di
studio
![Page 24: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/24.jpg)
Dalla tabella allo xml
<oredistudio >
<studente>
Francesco
<materia>
Italiano
<ore>1</ore>
</materia>
…
</studente>
…
</oredistudio >
![Page 25: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/25.jpg)
Riscriviamo lo xml
<oredistudio>
<studente>
Francesco
<materia>
Italiano
<ore>1</ore>
</materia>
…
</studente>
…
</oredistudio >
<oredistudio >
<studente>
<nome>Francesco</nome>
<materia nome=«Italiano»>
<ore>1</ore>
</materia>
…
</studente>
…
</oredistudio >
![Page 26: CSV o XML? - Open Data · Un’ipotesi di come mettere gli studenti •Potremmo mettere una riga •Una tabella strana •Una possibile colonna «Studente» diventata una riga «Studente»](https://reader034.vdocuments.net/reader034/viewer/2022042323/5f0d994b7e708231d43b26a3/html5/thumbnails/26.jpg)
In sintesi
Studente MateriaOre di
studio
Francesco Italiano 1
Francesco Storia 6
Francesco Geografia 7
Mario Italiano 2
Mario Storia 5
Mario Geografia 8
Alessio Italiano 3
Alessio Storia 4
Alessio Geografia 9
Materia Francesco Mario Alessio
Italiano 1 2 3
Storia 6 5 4
Geografia 7 8 9
<oredistudio >
<studente>
<nome>Francesco</nome>
<materia nome=«Italiano»>
<ore>1</ore>
</materia>
…
</studente>
…
</oredistudio >