360 likes | 573 Views
STRUTTURA E RAPPRESENTAZIONE. Desideriamo un software che ci permetta l’interscambio di documenti a prescindere dalla piattaforma Il software deve permettere di scambiare non solo la rappresentazione ma anche la struttura del documento. STRUTTURA E RAPPRESENTAZIONE.
E N D
STRUTTURA E RAPPRESENTAZIONE • Desideriamo un software che ci permetta l’interscambio di documenti a prescindere dalla piattaforma • Il software deve permettere di scambiare non solo la rappresentazione ma anche la struttura del documento.
STRUTTURA E RAPPRESENTAZIONE • I prodotti WYSIWYG limitano la portabilità • I linguaggi di markup indicano le caratteristiche di un testo marcando porzioni di testo • I linguaggi di markup prescindono dal software con cui sono generati • HTML è un linguaggio di markup
STRUTTURA E RAPPRESENTAZIONE • HTML presenta numerosi limiti : • aumento dei dead links perchè il link è solo un valore di un attributo interno al file • non è nato per inserire elementi multimediali e necessita di tecnologie parallele proprietarie (Scockwave, Acrobat, Javascript) che non funzionano su tutti i browser
STRUTTURA E RAPPRESENTAZIONE • HTML presenta numerosi limiti : • Non c’è distinzione fra tag struttura e tag rappresentazione • I motori di ricerca sono costretti a fare ricerche su tutto il testo a parità di importanza • I tag sono solo predefiniti e non è possibile definirne di nuovi
XML - eXtensible Markup Language • Nasce così XML, metalinguaggio per creare linguaggi personalizzati • Porta nel WWW lo Standard Generalized Markupo Language (SGML) nato nel 1986 • E’ un sottoinsieme più semplice di SGML • Descrive la struttura dei dati e non la loro rappresentazione • Permette di creare tag personalizzati
XML - eXtensible Markup Language • Fornisce un modo per definire i tag e i rapporti strutturali fra loro • Il parser è application-independent • Consente a gruppi di persone di creare il proprio linguaggio di markup • Lo stesso sorgente può essere visualizzato in modi diversi e con device diversi (anche audio)
XML - eXtensible Markup Language • I link in XML sono controllati dal linguaggio XLL che controlla e gestisce gli eventi associati • I link in XML possono essere: • bidirezionali • multipli (uno a molti e molti a uno - es. Web rings) • links a sezioni strutturali di un documento • links a sequenze di documenti • links definiti all’esterno del documento
XML - eXtensible Markup Language • Un tool per leggere un documento XML consiste di due parti: • un Parser che esegue il controllo semantico e gestisce gli errori • un Processor che utilizzando un file di styling separato visualizza il documento.
XML - eXtensible Markup Language • Permette di creare un modello, chiamato Document Type Definition (DTD), che descrive la struttura di una classe di documenti. • Può essere utilizzato come piattaforma per lo scambio di dati tra applicazioni e database di fornitori differenti e sistemi operativi diversi
XML - eXtensible Markup Language • Esistono diversi linguaggi di styling • Il linguaggio di styling XSL definisce la specifica per la presentazione • con XSL è possibile creare fogli di stile di qualunque formato (audio, video, braille,…)
XML - eXtensible Markup Language Foglio di stile XSL per browser (HTML) Documento XML Foglio di stile XSL per braille Processore XML/XLS OUTPUT Foglio di stile XSL per sintesi vocale
XML - SINTASSI • Un file XML comincia sempre con la dichiarazione di versione: <?xml version = “1.0” ?> • Un elemento è un blocco elementare del documento XML • Ogni elemento è identificato da un tag • Un tag viene utilizzato per individuare un dato identificandolo con un nome, es. <NOMETAG> Laura </NOMETAG>
XML - SINTASSI • Gli attributi sono pensabili come aggettivi perchè descrivono gli elementi. Ogni attributo ha un nome e un valore. Il valore segue il nome: <COUNTRY code = “it” > Italia</COUNTRY> • Un attributo consente di aggiungere all’elemento informazioni addizionali, ad es. l’elemento LIBRO può avere attributo RILEGATURA con valori “rigida” o “brossura”.
XML - SINTASSI • Un documento XML deve essere ben formato, ossia: • L’intero contenuto del documento deve essere racchiuso entro un singolo elemento • I marcatori devono essere correttamente bilanciati • I valori degli attributi devono essere fra virgolette
XSL • E’ il linguaggio proprietario di XML per lo styling. • L’associazione fra documento XML e foglio di stile avviene attraverso l’istruzione <?xml:stylesheet href=“stile.xsl” title=“Compact” type=“text/xsl”?> • I componenti di XLS sono: • construction rules • style rules • named styles • macros • scripts
DTD • Un particolare linguaggio XML è definito dal suo DTD • In genere il file DTD è esterno al file XML • Una DTD è una Document Type Definition. Definisce • gli elementi • gli attributi • le relazioni che intercorrono fra elementi • Il suo utilizzo non è obbligatorio • Quando un documento XML viene processato, viene confrontato con la DTD associata.
ESEMPI • DATABASE ETEROGENEI Es.: il sistema informativo di un’azienda ospedaliera • Il record del paziente è una collezione di documenti storici. Il centro di cura interessato deve accedere alla documentazione via browser, stamparla e reintrodurla manualmente nel suo sistema informativo. • La soluzione giusta è fare un drag&drop dall cartella su web al proprio database.
ESEMPI PROCESSI DISTRIBUITI • Nelle grandi industrie viene mantenuta molta deocumentazione che va scambiata all’interno dei consorzi (es. Intel, Philps, Texas, etc.) • A questo scopo vengono implementati linguaggi di markup appositi come veicolo per la distribuzione dati. • Nel caso dei semiconduttori c’e anche la possibilità di distribuire il carico computazionale del disegno dei circuiti su vari client.
ESEMPI VISTE DIFFERENTI • L’ utente può cambiare con facilità la visualizzazione dei dati. • Ad es. si può creare una TOC dinamica: l’utente può cliccare una parte della TOC ottenendo livelli di dettaglio più specifici. • In questo caso la struttura TOC viene scaricata su client senza dover passare ogni volta su Internet. • Si può anche da client scegliere la visualizzazione adatta al tipo di macchina (es. Solaris vs. Pentium) o in lingue diverse.
ESEMPI • Non e’ possibile usare HTML a questo scopo perchè non supporta la rappresentazione della struttura dei dati • Non è possibile convertire tutti i sistemi informativi in un tipo standard • E’ però possibile adottare un formato standard per lo scambio di informazione • La definibilità dei tag XML rende evidenziabile il contenuto dei campi (es. <allergia>) • E’ stato già creato uno Health Care Markup Language
ESEMPI MOTORI DI RICERCA • I tag personalizzati e la strutturazione del testo consentono la ricerca semantica • Timothy J. Berners-Lee, inventore del WWW e capo del WWW Consortium, sta sviluppando la seconda generazione di Web, il WEB SEMANTICO. • Le connessioni devono essere intese sempre come bidirezionali • Il motore di ricerca deve comprendere le relazioni fra le parole • Ogni computer deve poter accedere alla conoscenza che l’umanità ha accumulato sulla rete
ESEMPI MOTORI DI RICERCA • XML è la base da cui si parte. • VIVISIMO (Carnegie Mellon Un.) • Organizza in modo automatico gli output di altri motori di ricerca • Utilizza clustering concettuale: il numero di classi non è predefinito • Il programma è scritto in C e l’output è un file XML che rappresenta la gerarchia trovata
ESEMPI MOTORI DI RICERCA • XML è la base da cui si parte. • Esistono già strumenti che rendono XML più evoluto: • AXE (Autonomy XML Engine) è uno strumento che inserisce tag e link automaticamente • SHAREPOINT (Microsoft) è inserito gratuitamente nell’ultimo FrontPage e permette l’interscambio di documenti e la creazione di documenti collaborativi.
ESEMPI • RDF (Resource Description Framework, Recommendation del W3C dal 1999, permette l’interscambio di metadati grazie a una sintassi che struttura i testi. • Fornisce interoperabilità fra risorse che utilizzano dati su web • RDF e XML sono complementari: RDF definisce semantiche per dati in formato XML.
SOFTWARE • Molti sono i parser disponibili, molti dei quali free • Molti anche i processori SGML : Panorama della SoftQuad e Jumbo, applicazione Java scaricabile in versione free • Molti tool di sviluppo freeware, anche da Microsoft • Microsoft ha sviluppato parser e processor free che si integrano con Explorer.
Esempio di linguaggio speciale: MATHML • Scopo di MATHML è codificare materiale matematico e facilitare la conversione da un formato matematico all’altro • Gli elementi di MATHML si suddividono in: • elementi di presentazione • elementi di contenuto • elementi di interfaccia
Esempio di linguaggio speciale: MATHML • Scopo di MATHML è codificare materiale matematico e facilitare la conversione da un formato matematico all’altro • Gli elementi di MATHML si suddividono in: • elementi di presentazione • elementi di contenuto • elementi di interfaccia
Esempio di linguaggio speciale: MATHML • Gli elementi di presentazione descrivono strutture di notazione matematica: sono 28 elementi e accettano 50 attributi, es. msub, munder. • Gli elementi di contenuto descrivono oggetti matematici, es. Plus, vector. Ne esistono 75 che accettano 12 attributi • L’elemento apply applica una funzione ad un insieme di elementi
Esempio di linguaggio speciale: MATHML (a+b)2 si scrive così: <msup> <mfenced> <mrow> <mi> a </mi> <mo> + </mo> <mi> a /mi> </mrow> </mfenced> <mn> 2 </mn> </msup>
ESEMPIO: URL meteo • Il sito distribuisce informazioni sul tempo. Ognuno desidera informazioni locali. • Il codice XML contiene l’indicazione su dove trovare il relativo DTD, es.: <weather-info> <location> <city>Boston</city> </location> <summary> sunny </summary> </weather-info>
ESEMPIO: URL meteo • Allora lo XSL stylesheet sarà: <xsl:stylesheet xmlns:xsl= HYPERLINK “http://www.w3.org/1999/XSL/Transform” version =“1.0”> …. <xsl:template match=“/”> … </xsl:template> match:”weather-info[location/city=‘Boston’]”> <xsl:apply-templates select = “summary”/> </xsl:template> </xsl:stylesheet>
ESEMPIO: URL meteo • Si può anche personalizzare l’output per utenti diversi, ad es. Lasciando la scelta della nazione. • Il codice XML sarà … <page> <country code = “it”> Italy </country> <country code = “fr”> France</country> …. </page>
ESEMPIO: URL meteo Lo stylesheet XSL sarà …. <xsl:template match=“page”> <html> <body> … </xsl:when> <xsl:when test=“country[@code=$countrycode]”> </xsl:apply-templates select=“country[@code=$countrycode]” mode=“selected”/> </xsl:when>
UN ESEMPIO COMPLETO -1 <?xml version =“1.0” standalone=“yes”?> <radice> <libro> <autore>Giovanni Boccaccio</autore> <titolo>Decameron</titolo> <descrizione>10 persone in fuga dalla peste raccontano per 10 giorni una novella ciascuno </descrizione> <prezzo> 15 euro </prezzo> </libro>
UN ESEMPIO COMPLETO - 2 <libro> <autore>Francesco Petrarca</autore> <titolo>Le Rime</titolo> <descrizione>una raccolta di poesia da uno dei maggiori autori della storia </descrizione> <prezzo> 20 euro </prezzo> </libro> ……[altri libri] </radice>
UN ESEMPIO COMPLETO - 3 …. File XSL: <radice> <rule> <target-element type=“LIBRO”/> <children/> </rule> <rule> <target-element type=“AUTORE”/> <H3 color=“brown”> <children/> </H3> </rule> … <rule><target-element type=“PREZZO”/> <H5 color=“red” font-style=“italic”> <children/> </H5></rule> </radice>