Linguaggi di markup Marco Mesiti
Programma e obiettivi I linguaggi di Markup ed il web HTML e le sue lacune eXtensible Markup Language Document Type Definition Conoscere XML e le sue applicazioni
Programma e obiettivi Saper manipolare documenti XML (XSL: Xpath, XSLT, XSL FO) Come rappresentare informazioni di tipo con XML schema Memorizzazione e recupero di documenti XML in/da una base di dati Progettazione di sorgenti di documenti XML
Struttura e Rappresentazione La scrittura ha definito il rapporto fra struttura gerarchica delle informazioni e rappresentazione visiva
Struttura e Rappresentazione Nei documenti elettronici il discorso è analogo Nel momento in cui si ha bisogno di un'informazione entrano in gioco i tre livelli ContenutoContenuto StrutturaStruttura RappresentazioneRappresentazione
Struttura e Rappresentazione La rappresentazione può essere utile in fase di individuazione per migliorare la leggibilità per favorire la percezione della struttura Struttura e Rappresentazione Struttura e Rappresentazione di un contenuto sono due cose assolutamente separate Struttura Rappresentazione
Cosa si intende per markup Il markup permette la struttura- zione di un un file in formato testo in componenti (elementi) logiche etichettandole in modo utile Le etichette (i nomi degli elementi) specificano il tipo di dato che una certa componente logica rappresenta Le etichette vengono inserite nel documento stesso come speciali sequenze di caratteri, dette markup tag o semplicemente tag contenuto <Tag_APERTURA> <Tag_CHIUSURA>
I Linguaggi di Markup Descrivono i meccanismi di strutturazione e di rappresentazione del testo "marcano" le porzioni di testo indicandone le caratteristiche Due gruppi: Di tipo procedurale, indicano le procedure di trattamento del testo aggiungendo le istruzioni Di tipo descrittivo, lasciano la scelta della rappresentazione al software Differenza nel meccanismo usato per definire la formattazione del testo
I Linguaggi di tipo descrittivo I linguaggi di tipo descrittivo risultano più vantaggiosi, Lasciano la concentrazione sui problemi strutturali di leggibilità Prescindono in fase di lettura dal software con cui sono stati generati Garantiscono una corretta separazione tra struttura e rappresentazione Esempi di linguaggi procedurali: Script, TROFF, TEX Esempi di linguaggi dichiarativi: SGML, HTML, XML.
Che cos‘è un linguaggio di markup NON un linguaggio di programmazione! NON è un linguaggio di programmazione! un sistema formale (insieme di convenzioni) per scambiare e pubblicare informazioni (in formato testo) in modo strutturato quali elementi (e tag) si possono usare in un documento come i tag vengono distinti dal contenuto del documento (eventualmente) che significato hanno i vari tag … Non esiste il linguaggio di markup, esistono diversi linguaggi di markup per rappresentare diversi tipi di documenti
Un po’ di storia: Il Markup ed il Web La Graphic Communications Association crea GenCode Dopo IBM sviluppa GML (Generalized Markup Language) Una sintassi semplice di tag contenuti tra <> (/) Per avere un formato aperto e standardizzato per il trattamento di dati Per poter scambiare e manipolare documenti strutturati
Un po’ di storia: Il Markup ed il Web 1980 – GenCode/GML e si fonda “American National Standards Institute” (ANSI) Nel ‘86 nasce SGML Presente anche il CERN HTML Da SGML Tim Berners-Lee ricava un sottoinsieme: HTMLGenCodeGenCode GMLGML HTMLHTML SGML
Il linguaggio HTML Linguaggio di markup più diffuso nel web Definisce un insieme di tag finito Ad ogni TAG viene associata una regola di formattazione di porzioni di testo Esempio: corsivo
Esempio di file HTML … Pinco Pallino Client ID: 002 Azienda: La mia Azienda s.r.l. Telefono: Indirizzo: Via B, 23/a Città : Genova C.A.P.: 16100
Un altro esempio di documento HTML My title A huge heading A smaller one an unordered list A paragraph
I Problemi del web: Perdita di Struttura/Rappresentazione Distinzione struttura/rappresentazione persa Tale distinzione è la base della concezione dei linguaggi di markup di tipo descrittivo come SGML Rappresentazione,,, …,,, … Struttura ? ?
I Problemi del web: Perdita di Struttura/Rappresentazione Una corretta divisione di Struttura e Rappresentazione permette: di individuare occorrenze di un certo termine significativo di stabilirne la rilevanza in base alla posizione nella gerarchia testuale
Cosa è sbagliato in HTML? La Staticità Se l’idea è marcare informazioni in modo molto preciso i TAG HTML possono non bastare Esempio un chimico per le formule Un costruttore di aeroplani per i motori, modelli... Mantenere tutti i tag possibili sarebbe davvero difficile!
Cosa è sbagliato in HTML? Documenti non validi semanticamente Si possono scrivere documenti HTML validi che non hanno senso quando si considera la semantica Non esiste un vincolo nello standard... <HTML><BODY> Prova Prova una prova una prova titolo1 titolo1 </HTML><HTML><BODY> Prova Prova una prova una prova titolo1 titolo1 </HTML> ?
Inadeguatezza di HTML Nuove richieste Gli utenti richiedono pagine complesse, Le prestazioni hardware migliorano Javascript Shockvawe, Acrobat reader HTML diventa assemblatore di tecnologie HTMLHTML Javascript VBScript Applet Flash CGI
Inadeguatezza di HTML: Portabilità Le nuove tecnologie sono soluzioni proprietarie I Documenti HTML ci obbligano a scaricare una miriade di plugin Lontanissimo dalla filosofia iniziale e dall'informatica distribuita Cercare ambienti standard Cercare ambienti standard Ambiente Standard DBDBWEBWEB ParallelParallel
Arriviamo ad XML: HTML e SGML HTML è quindi un linguaggio SGML è un metalinguaggio HTML è semplice ma rigido SGML è duttile ma molto complesso SGMLSGML HTML
Esigenza dell’XML nell’estate del ‘96 il W3C inizia un lavoro per un nuovo standard di applicazioni Web per risolvere i problemi Nasce un nuovo working group (XWG) per creare un nuovo standard eXstensible Markup Language (XML) Qualcosa di più di HTML, qualcosa di più semplice di SGML SGMLSGML XML HTML
Extensible Markup Language Introduzione “XML is a language for creating markup languages that describe structured data.” Mike Edwards, Microsoft Descrive i dati e non la loro rappresentazione Ha un formato aperto e leggibile visualmente simile all’HTML Elimina la necessità di Browser e tool di mezzo per aggiungere TAG speciali
Extensible Markup Language Introduzione eXtensible eXtensible - non rigido come HTML Ottimo per la trasmissione di dati da server a browser Ottimo per la trasmissione da applicazione a applicazione, da macchina a macchina… metalinguaggio E’ un metalinguaggio usato per definire nuovi domini applicativi o linguaggi specifici
Extensible Markup Language Aree Applicative Applicazioni che richiedono al Web Client di mediare tra due o più DB eterogenei Applicazioni che cercano di distribuire porzioni significanti di dati tra Client/ServerOracleSQL…
Extensible Markup Language Aree Applicative Applicazioni che richiedono al Web Client di mostrare più viste dello stesso dato a diversi utenti Applicazioni in cui Agenti Web Intelligenti decidono riguardo informazioni utili per un utente (personalizzazione) Compito TestoEsercizio Soluzione Client User1 Client User2 TestoEsercizio Soluzione Client con caratteristiche A, B, C, …. Agente
Extensible Markup Language Vantaggi Attenzione esclusivamente al contenuto/struttura La rappresentazione può essere attuata successivamente o da un altra persona Si possono sviluppare linguaggi ad HOC specifici per certe comunità di utenti Matematici, chimici, una singola società, un ente…etc…
Extensible Markup Language differenze con HTML XML non specifica né la semantica né un insieme di TAG XML è un metalinguaggio per la descrizione dei linguaggi di markup XML fornisce un modo per definire i tag ed i rapporti strutturali fra loro Poiché non vi è un insieme predefinito di TAG, non ci può essere alcuna semantica preesistente
eXtensible Markup Language: Standard collegati XML è una lingua “franca” che permette di descrivere la struttura di documenti Il W3C ha definito svariati standard per poter integrare la definizione di XML per consentire: Definizione metadata Definizione link tra più documenti Trasformazione/Rappresentazione documenti XML Definizione di linguaggi di interrogazione Manipolazione documenti XML “da programma” Rappresentazione di informazione grafica
Definizione di metadata Come detto in precedenza, i TAG non definiscono la semantica dei dati che rappresentano Occorre quindi introdurre il concetto di metadata cioè “dati sui dati” Si parla di metadata a diversi livelli a livello linguistico introducendo dizionari di nomi (Namespace) a livello di tipo introducendo gli schema (Xschema) a livello concettuale introducendo concetti e legami tra concetti (RDF -- Resource Description Framework)
Definizione link tra più documenti Lo standard XML permette di rappresentare solo i link interni al documento, ma non i link tra documenti diversi Inoltre, si vogliono poter rappresentare tutte le forme di link che abbiamo visto in precedenza Per questo motivo sono stati introdotti i seguenti standard XLink che permette di definire link tra più documenti XPointer che permette di indirizzare una parte specifica di un documento
Rappresentaz./Trasformaz. documenti Lo standard XML permette di strutturare documenti XML No rappresentazione Nasce XSL. XSL permette di Identificare parti di documento da rappresentare (Xpath) Trasformare le parti (attraverso il linguaggio XSLT) Rappresentare (HTML, PDF,...) il documento risultante (attraverso il linguaggio XSL-FO)
Definizione di linguaggi di interrogazione I documenti XML possono essere memorizzati in sorgenti di informazioni (DB). Ognuno può sottomettere alla sorgente richieste di documenti che soddisfano certe condizioni. Esistono diversi linguaggi per poter interrogare sorgenti XML Attualmente non esiste uno standard W3C XML query La proposta potrebbe essere XML query
Manipolazione documenti XML “da programma” I documenti XML possono essere visti come canale di comunicazione tra applicazioni client-server Cioè permettono alle applicazioni di scambiarsi informazioni. Un’applicazione deve saper leggere e manipolare documenti XML Sono stati introdotti standard per manipolare documenti XML DOMSAX Gli standard principalmente utilizzati sono DOM e SAX
SVG – Scalable Vector Graphics Linguaggio per la descrizione di grafica 2D in XML 1.0 SVG tiene conto tre tipi di oggetti grafici: vector graphic shapes (path che consistono in linee rette e curve), immagini testo. Gli oggetti grafici possono essere raggruppati, trasformati Gli oggetti SVG possono essere interattivi e dinamici.
SMIL Synchronized Multimedia Integration Language Permette la gestione di presentazioni nelle quali interagiscono audio e video, ed in generali elementi multimediali. Basato su XML è di fatto uno dei linguaggi definiti su di esso Recommendation
END