Università degli Studi di Firenze Facoltà di Ingegneria Dipartimento di Sistemi e Informatica Corso di Laurea in Ingegneria Informatica Modelli e strumenti per la descrizione e la selezione di stili per la formattazione automatica di contenuti multimediali Relatore: Prof. Ing. Paolo Nesi Candidati: Marco Pini Claudio Sorbi Contesto Crescita mercato multimedia in rete Esigenza di piattaforme integrate per la gestione di contenuti multimediali Riduzione dei costi di produzione e distribuzione: – – 2 necessità automatizzazione processi difficoltà causata dall’eterogeneità delle risorse coinvolte Obiettivo della tesi Studio e realizzazione di un prototipo in linguaggio C++ per la formattazione automatica di contenuti multimediali attraverso l’utilizzo di modelli: – – – generali riutilizzabili personalizzabili Rapporto col framework AXMEDIS: – – 3 Composition tool Formatting tool Analisi del problema Composizione delle risorse Modelli Template e Stylesheet – – 4 Scelta del linguaggio di rappresentazione Adattamento e riutilizzo Descrittori Criteri di filtro Automazione del processo Analisi del problema Composizione delle risorse Convenzioni che stabiliscano il ruolo delle risorse nella rappresentazione: – – Definizione delle correlazioni fra risorse: – – – 5 categorie d’uso standardizzate disposizione gerarchica spaziale logica semantica Analisi del problema Modelli I modelli hanno lo scopo di: permettere la creazione di varie tipologie di documenti essere riutilizzabili più volte anche in contesti eterogenei consentire facili modifiche per l’adattamento a nuovi contenuti consentire la separazione tra lo stile della presentazione e i contenuti che la compongono: – 6 soluzione: divisione del modello in template e stylesheet Analisi del problema Template Un template è il contenitore base degli oggetti multimediali è privo di informazioni riguardanti lo stile e la formattazione descrive le regioni logiche della presentazione definisce la temporizzazione degli eventi 7 Analisi del problema Linguaggio per i template SMIL (Synchronized Multimedia Integration Language) human readable standard W3C presentazioni su più finestre indipendenti separazione tra elementi spaziali e temporali configurazione dinamica del documento sincronizzazione fra gli elementi transizioni complesse fra i media 8 Analisi del problema Adattamento e riuso dei template Template SMIL: rappresenta il formato di output è un documento valido che non presenta differenze formali col risultato prodotto dall’applicazione dello stylesheet: – problema: – creazione di scene logiche complesse e specializzate soluzione: – 9 riutilizzo e personalizzazione suddivisione dell’intera presentazione in sottoscene descritte da SMIL distinti Analisi del problema Stylesheet Uno stylesheet definisce: 10 il look and feel della presentazione il posizionamento e il dimensionamento delle regioni logiche descritte nel template i parametri che regolano le impostazioni di visualizzazione Analisi del problema Linguaggio per gli stylesheet XSLT (Extensible Stylesheet Language Transformations) permette di operare modifiche sulla struttura del documento XML aumenta la possibilità di personalizzazione e ottimizzazione del documento fornisce funzionalità maggiori al CSS, consentendone l’eventuale inclusione 11 Analisi del problema Descrittore Il descrittore è un documento XML che: raccoglie informazioni ricavabili dalla struttura stessa dell’oggetto che rappresenta consente l’inserimento di metadati facilita le operazioni di selezione dei template e degli stylesheet 12 Analisi del problema Descrittore della risorsa specifica il ruolo che la risorsa riveste nel indica il documento riferimento ad una risorsa esterna correlata 13 Analisi del problema Descrittore del template informazioni fornite dal creatore del template informazioni ricavabili dall’analisi del template SMIL 14 Analisi del problema Descrittore dello stylesheet 15 Analisi del problema Criteri di filtro Primo criterio di filtro for each (template) for each (type) template.penalty += | numResInput(type) – numResTemplate(type) | Secondo criterio di filtro for each (template) for each (type) template.penalty += | numCategoryResMatched(type) – numCategoryResTemplate(type) | Criteri di filtro sugli stylesheet – 16 – precedente scelta del template informazioni derivanti dai profili Università degli Studi di Firenze Facoltà di Ingegneria Dipartimento di Sistemi e Informatica Corso di Laurea in Ingegneria Informatica Modelli e strumenti per la descrizione e la selezione di stili per la formattazione automatica di contenuti multimediali Relatore: Prof. Ing. Paolo Nesi Candidati: Marco Pini Claudio Sorbi Descrizione del progetto Diagramma delle classi «utilizza» Xerces / Xalan XSLtools StyleDescriptor «friend» TemplateDescriptor - * * «utilizza» Placeholder 1 1 - TemplateList FormatManager 1 - StyleList 1 1 «utilizza» TemplateFilter ResourceList 1 «friend» FilteredTemplate ResourceFactory * 1 StyleFilter Resource ProfileInfo «friend» FilteredStyle ResourceText ResourceAudio 18 ResourceImage ResourceVideo ResourceApplication DeviceInfo ContextInfo UserInfo Optimizer Descrizione del progetto Gestione della formattazione Inizializzazione – – Operazioni di filtro – – filtro sui template filtro sugli stylesheet Formattazione della presentazione – 19 caricamento dei descrittori di template e stylesheet inserimento delle risorse – applicazione dello stylesheet al template selezionato creazione dell’output SMIL Descrizione del progetto Diagramma delle classi «utilizza» Xerces / Xalan XSLtools StyleDescriptor «friend» TemplateDescriptor - * * «utilizza» Placeholder 1 1 - TemplateList FormatManager 1 - StyleList 1 1 «utilizza» TemplateFilter ResourceList 1 «friend» FilteredTemplate ResourceFactory * 1 StyleFilter Resource ProfileInfo «friend» FilteredStyle ResourceText ResourceAudio 20 ResourceImage ResourceVideo ResourceApplication DeviceInfo ContextInfo UserInfo Optimizer Descrizione del progetto Gestione delle risorse La gestione delle risorse prevede: descrizione di risorse eterogenee – creazione della lista – – 21 utilizzo di una factory caricamento dei descrittori metodi per reperire informazioni utili per il filtraggio Descrizione del progetto Diagramma delle classi «utilizza» Xerces / Xalan XSLtools StyleDescriptor «friend» TemplateDescriptor - * * «utilizza» Placeholder 1 1 - TemplateList FormatManager 1 - StyleList 1 1 «utilizza» TemplateFilter ResourceList 1 «friend» FilteredTemplate ResourceFactory * 1 StyleFilter Resource ProfileInfo «friend» FilteredStyle ResourceText ResourceAudio 22 ResourceImage ResourceVideo ResourceApplication DeviceInfo ContextInfo UserInfo Optimizer Descrizione del progetto Gestione dei template Creazione e caricamento dei descrittori Metodi per la creazione di relazioni tra risorse e placeholders: – – Regole per la gestione delle eccezioni nell’assegnamento: – – 23 per tipo e categoria (facoltativa) per tipo risorse in eccesso o difetto rispetto al template (risorse di default, cancellazione nodi) risorse da posizionare più volte nella stessa presentazione Descrizione del progetto Diagramma delle classi «utilizza» Xerces / Xalan XSLtools StyleDescriptor «friend» TemplateDescriptor - * * «utilizza» Placeholder 1 1 - TemplateList FormatManager 1 - StyleList 1 1 «utilizza» TemplateFilter ResourceList 1 «friend» FilteredTemplate ResourceFactory * 1 StyleFilter Resource ProfileInfo «friend» FilteredStyle ResourceText ResourceAudio 24 ResourceImage ResourceVideo ResourceApplication DeviceInfo ContextInfo UserInfo Optimizer Descrizione del progetto Gestione degli stylesheet La gestione degli stylesheet si occupa della: 25 creazione e caricamento dei descrittori associazione fra stylesheet e template memorizzazione di attributi per l’ottimizzatore Descrizione del progetto Diagramma delle classi «utilizza» Xerces / Xalan XSLtools StyleDescriptor «friend» TemplateDescriptor - * * «utilizza» Placeholder 1 1 - TemplateList FormatManager 1 - StyleList 1 1 «utilizza» TemplateFilter ResourceList 1 «friend» FilteredTemplate ResourceFactory * 1 StyleFilter Resource ProfileInfo «friend» FilteredStyle ResourceText ResourceAudio 26 ResourceImage ResourceVideo ResourceApplication DeviceInfo ContextInfo UserInfo Optimizer Descrizione del progetto Gestione dei filtri Logica di selezione dei modelli di formattazione – – Impostazione dei pesi per i criteri – – 27 metodi per la scelta del template più adatto sulla base delle risorse in input e della presentazione da generare accesso alle informazioni contenute nei profili dei dispositivi di riproduzione modalità automatica modalità manuale Ranking (penalità, meriti) Descrizione del progetto Creazione descrittori dei template Insieme dei template contenuti nel sistema Inserimento dei descrittori nella lista Parsing dei template 28 Creazione dei placeholder Setting dei tipi e delle categorie Creazione del descrittore Descrizione del progetto Processo di filtraggio Filtro dei template Risorse Template Template selezionato Filtro degli stylesheet Stylesheet Profili Stylesheet selezionato 29 Descrizione del progetto Creazione dell’output Sostituzione Placeholder/risorsa Template selezionato template Processore XSLT Stylesheet selezionato 30 SMIL Esempio Inserimento delle risorse 31 ID Tipo Categoria back1 video background but1 img button but2 img button but3 img button but4 img button Esempio Creazione dell’output Template selezionato in base alle risorse in ingresso 32 Sostituzione placeholder/risorse Applicazione dello stylesheet Conclusioni e sviluppi futuri Problematiche principali: – – – – 33 logica di selezione regole di assegnamento risorse/placeholder rappresentazione delle risorse attraverso descrittori XML metodi per la manipolazione di documenti XML mediante le librerie Xerces e Xalan Conclusioni e sviluppi futuri Sviluppi futuri: – – – 34 integrazione del meccanismo nel framework AXMEDIS gestione delle risorse contenute negli oggetti AXMEDIS riutilizzo di parti delle presentazioni