Linguaggi di markup
description
Transcript of Linguaggi di markup
Linguaggi di markupLinguaggi di markup
Marco [email protected]
Programma e obiettiviProgramma 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 obiettiviProgramma 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 RappresentazioneStruttura e Rappresentazione
La scrittura ha definito il rapporto fra
struttura gerarchica delle informazioni e
rappresentazione visiva
Struttura e RappresentazioneStruttura 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 RappresentazioneStruttura e Rappresentazione
La rappresentazione può essere utile in fase di individuazioneper migliorare la leggibilitàper favorire la percezione della struttura
Struttura e Struttura e RappresentazioneRappresentazione di un contenuto sono due cose assolutamente separate
StrutturaStruttura
RappresentazioneRappresentazione
Cosa si intende per markupCosa 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
contenutocontenuto
<Tag_APERTURA><Tag_APERTURA>
<Tag_CHIUSURA><Tag_CHIUSURA>
I Linguaggi di MarkupI 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 descrittivoI 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 markupChe cos‘è un linguaggio di markup
NONNON è un linguaggio di programmazione! 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 WebUn 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 datiPer poter scambiare e manipolare documenti
strutturati
Un po’ di storia: Il Markup ed il WebUn 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
Da SGML Tim Berners-Lee ricava un sottoinsieme: HTMLHTML
GenCodeGenCode GMLGML
HTMLHTML
SGMLSGML
Il linguaggio HTMLIl 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 testoEsempio: <I> corsivo
Esempio di file HTML Esempio di file HTML
<UL> …
<LI>Pinco Pallino
<UL>
<LI>Client ID: 002
<LI>Azienda: La mia Azienda s.r.l.
<LI>Email: [email protected]
<LI>Telefono: 010.5553331
<LI>Indirizzo: Via B, 23/a
<LI>Città : Genova
<LI>C.A.P.: 16100
</UL>
</UL>
I Problemi del web: I Problemi del web: Perdita di Struttura/RappresentazionePerdita di Struttura/Rappresentazione
Distinzione struttura/rappresentazione persa
Tale distinzione è la base della concezione dei linguaggi di markup di tipo descrittivo come SGML
Rappresentazione
<i>, <b>, <hr>, …
<h1>, <h2>, <p>, …
Struttura
?
I Problemi del web: I Problemi del web: Perdita di Struttura/RappresentazionePerdita 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?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 formuleUn costruttore di aeroplani per i motori,
modelli...Mantenere tutti i tag possibili sarebbe davvero
difficile!
Cosa è sbagliato in HTML? 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><HTML>
<BODY><BODY>
<H2> Prova </H2><H2> Prova </H2>
<P> una prova<P> una prova
<H1> titolo1 </H1><H1> titolo1 </H1>
</HTML></HTML>
??
Arriviamo ad XML: HTML e SGMLArriviamo 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’XMLEsigenza 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
XMLXMLHTML
Extensible Markup Language Extensible Markup Language IntroduzioneIntroduzione
“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 Extensible Markup Language IntroduzioneIntroduzione
eXtensibleeXtensible - 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…
E’ un metalinguaggiometalinguaggio usato per definire nuovi domini applicativi o linguaggi specifici
Extensible Markup Language Extensible Markup Language Aree ApplicativeAree 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/Server
OracleOracle SQLSQL……
Extensible Markup Language Extensible Markup Language Aree ApplicativeAree 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)
CompitoCompito
Testo Testo EsercizioEsercizio
SoluzioneSoluzione
Client User1Client User1
Client User2Client User2
Testo Testo EsercizioEsercizio
SoluzioneSoluzione
Client con Client con caratteristichecaratteristiche
A, B, C, ….A, B, C, ….
AgenteAgente
Extensible Markup Language Extensible Markup Language VantaggiVantaggi
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 utentiMatematici, chimici, una singola società, un
ente…etc…
Extensible Markup Language Extensible Markup Language differenze con HTMLdifferenze con HTML
XML non specifica né la semantica né un insieme di TAG
XML è un metalinguaggio per la descrizione XML è un metalinguaggio per la descrizione dei linguaggi di markupdei 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:eXtensible Markup Language:Standard collegatiStandard 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 metadataDefinizione 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ù documentiDefinizione 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. documentiRappresentaz./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 interrogazioneDefinizione 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
La proposta potrebbe essere XML queryXML query
Manipolazione documenti XML Manipolazione documenti XML “da programma”“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
Gli standard principalmente utilizzati sono DOMDOM e SAXSAX
ENDEND