Linguaggi di markup

33
Linguaggi di markup Linguaggi di markup Marco Mesiti [email protected]

description

Linguaggi di markup. Marco Mesiti [email protected]. 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. - PowerPoint PPT Presentation

Transcript of Linguaggi di markup

Page 1: Linguaggi di markup

Linguaggi di markupLinguaggi di markup

Marco [email protected]

Page 2: Linguaggi di markup

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

Page 3: Linguaggi di markup

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

Page 4: Linguaggi di markup

Struttura e RappresentazioneStruttura e Rappresentazione

La scrittura ha definito il rapporto fra

struttura gerarchica delle informazioni e

rappresentazione visiva

Page 5: Linguaggi di markup

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

Page 6: Linguaggi di markup

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

Page 7: Linguaggi di markup

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>

Page 8: Linguaggi di markup

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

Page 9: Linguaggi di markup

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.

Page 10: Linguaggi di markup

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

Page 11: Linguaggi di markup

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

Page 12: Linguaggi di markup

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

Page 13: Linguaggi di markup

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

Page 14: Linguaggi di markup

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>

Page 15: Linguaggi di markup

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

?

Page 16: Linguaggi di markup

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

Page 17: Linguaggi di markup

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!

Page 18: Linguaggi di markup

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>

??

Page 19: Linguaggi di markup

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

Page 20: Linguaggi di markup

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

Page 21: Linguaggi di markup

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

Page 22: Linguaggi di markup

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

Page 23: Linguaggi di markup

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……

Page 24: Linguaggi di markup

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

Page 25: Linguaggi di markup

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…

Page 26: Linguaggi di markup

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

Page 27: Linguaggi di markup

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

Page 28: Linguaggi di markup

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)

Page 29: Linguaggi di markup

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

Page 30: Linguaggi di markup

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)

Page 31: Linguaggi di markup

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

Page 32: Linguaggi di markup

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

Page 33: Linguaggi di markup

ENDEND