Capitolo 5: Modello avanzato dell’ipertesto Progettazione di dati e applicazioni per il Web S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera Copyright © 2003 - The McGraw-Hill Companies, srl Contenuto per concessione del Politecnico di Milano MODEL Computazione di pagine Il contenuto di pagina viene ricomputato nei seguenti casi: • Accesso alla pagina da un link proveniente da un’altra pagina (link inter-pagina) – Tutte le unit sono ricomputate • Navigazione di un link interno alla pagina (link intra-pagina) – Parte delle unit sono ricomputate in base ai nuovi parametri, ma parte del contesto deve essere mantenuto • Esecuzione di un’operazione che termina con un link rientrante nella pagina di partenza – Simile al caso di link intra-pagina, ma con possibilità di modifica delle istanze dei dati mostrati Progettazione di dati e applicazioni per il Web S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera Copyright © 2003 - The McGraw-Hill Companies, srl Contenuto per concessione del Politecnico di Milano MODEL Qualche definizione… • Unit priva di contesto: unit che non ha link entranti • Unit esternamente dipendente: unit che richiede input da almeno un link proveniente da un’altra pagina o da una operation • Unit internamente dipendente: unit che richiede input solo da link intra-pagina • La computabilità di una unit dipende dalla categoria a cui essa appartiene Progettazione di dati e applicazioni per il Web S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera Copyright © 2003 - The McGraw-Hill Companies, srl Contenuto per concessione del Politecnico di Milano Computabilità di una unit Condizioni necessarie affinché una unit sia computabile: • Tutti i parametri di ingresso di tipo mandatory devono essere valorizzati • Tutte le unit che possono fornire parametri di ingresso di tipo optional devono essere già state computate • Caso particolare: Unit priva di contesto: unit che non hanno link entranti sempre computabili Progettazione di dati e applicazioni per il Web S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera Copyright © 2003 - The McGraw-Hill Companies, srl Contenuto per concessione del Politecnico di Milano Algoritmo di computazione di pagina • INPUT: inisieme iniziale di unit computabili • OUTPUT: tutte le unit computate • PROCEDURA: WHILE (ci sono unit da computare) DO IF esiste una unit U tale che: (Tutti i mandatory input param di U sono valorizzati AND Tutte le unit che possono fornire optional param sono computate) THEN - Assegna ad ogni parametro di U il valore più specifico - Computa U ELSE HALT END DO Progettazione di dati e applicazioni per il Web S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera Copyright © 2003 - The McGraw-Hill Companies, srl Contenuto per concessione del Politecnico di Milano Specificità di un parametro Scopo: regola per risolvere i conflitti in caso di più valori presenti per uno stesso parametro di input • MAX SPECIFICITA’: valore fornito direttamente dalla scelta dell’utente in seguito all’ultimo evento di navigazione • MEDIA SPECIFICITA’: valore che dipende dalle scelte passate dell’utente o da parametri globali recuperati da get unit • MINIMA SPECIFICITA’: valore di default scelto indeterministicamente da una unit per garantire la gestione di link automatici Valori più specifici hanno la priorità. Progettazione di dati e applicazioni per il Web S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera Copyright © 2003 - The McGraw-Hill Companies, srl Contenuto per concessione del Politecnico di Milano Esempio di computazione DeleteAlbum Link1 Link4 Link2 OK Album KO Link5 ArtistPage ArtistIndex ArtistData AlbumIndex A Artist Progettazione di dati e applicazioni per il Web S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera Link3 AlbumData A Artist Album [ArtistToAlbum] Album Copyright © 2003 - The McGraw-Hill Companies, srl Contenuto per concessione del Politecnico di Milano Esempio: Link1 e Link2 DeleteAlbum Link1 Link2 OK Album KO ArtistPage ArtistIndex ArtistData AlbumIndex A Artist Link3 AlbumData A Artist Album [ArtistToAlbum] Album • Link1 (non-contextual inter-page link): la computazione parte dalla unit context free, e poi prosegue a cascata. • Link2 (contextual inter-page link): la computazione parte da ArtistIndex (context free) o da ArtistData, e poi prosegue a cascata. L’input più specifico per ArtistData è quello fornito da Link2. Progettazione di dati e applicazioni per il Web S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera Copyright © 2003 - The McGraw-Hill Companies, srl Contenuto per concessione del Politecnico di Milano DeleteAlbum Esempio: Link3, Link4, Link5 Link4 OK Album KO Link5 ArtistPage ArtistIndex ArtistData AlbumIndex A Artist Link3 AlbumData A Artist Album [ArtistToAlbum] Album • Link3 (contextual intra-page link): Solo AlbumData deve essere ricomputato con il nuovo valore fornito da Link3. Il vecchio input delle altre unit è preservato. • Link4 (non-contextual link): Il vecchio input delle unit è preservato, dove valido. Per AlbumData serve un nuovo input perché il precedente non è più valido. • Link5 (contextual link): Il vecchio input di tutte le unit è preservato, dove valido. Per AlbumData l’input fornito da Link5 prevale sul default fornito da Link3. Progettazione di dati e applicazioni per il Web S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera Copyright © 2003 - The McGraw-Hill Companies, srl Contenuto per concessione del Politecnico di Milano