Gestione della Conoscenza - Istituto di Calcolo e Reti ad...

36
1 Gestione della Conoscenza Prof. Massimo Ruffolo Ing. Marco Manna UNICAL - A.A. 2006-2007 Sommario Rappresentazione della Conoscenza Introduzione Linguaggi di Rappresentazione Ragionamento Automatico Sistemi di Rappresentazione Elementi di Logica Descrittiva Introduzione XML: eXtensible Markup Language Introduzione Specifiche

Transcript of Gestione della Conoscenza - Istituto di Calcolo e Reti ad...

1

Gestione dellaConoscenza

Prof. Massimo RuffoloIng. Marco Manna

UNICAL - A.A. 2006-2007

SommarioRappresentazione della Conoscenza

IntroduzioneLinguaggi di RappresentazioneRagionamento AutomaticoSistemi di Rappresentazione

Elementi di Logica DescrittivaIntroduzione

XML: eXtensible Markup LanguageIntroduzioneSpecifiche

2

Note

Course web sitehttp://www.mat.unical.it/informatica/Gestione_della_Conoscenza

ContactsProf. Massimo Ruffolo: [email protected]

Ing. Marco Manna: [email protected]

Office hourLunedì 11.30-13.30 (ufficio del prof. Ruffolo, Exeura s.r.l. - EdificioPolifunzionale)

Gestione dellaConoscenza

Prof. Massimo RuffoloIng. Marco Manna

UNICAL - A.A. 2006-2007

3

Capitolo 1Rappresentazione della Conoscenza

IntroduzioneLinguaggi di RappresentazioneRagionamento AutomaticoSistemi di Rappresentazione

Rappresentazionedella Conoscenza

Introduzione

4

La ConoscenzaUn sistema basato su conoscenza è un sistema informativo in grado di sfruttare l’informazionecontenuta in una base di conoscenza (knowledgebase, KB) mediante procedure automatiche di ragionamento.Conoscenza = Informazione disponibile per l’Azione (Dretske, 1981).

Nei computer risiede una grande quantità di informazione …… solo una piccola parte di essa può essere sfruttata dagli stessi per agire …… poiché la stragrande maggioranza dei file memorizzati nei computer è in linguaggio naturale.

InterrogativoÈ possibile automatizzare certe attivitàche oggi richiedono l’intervento umano?

È possibile dare una semantica all’informazione in modo tale che i computer possano sfruttarla appieno in applicazioni complesse?

La risposta sarà chiara a fine corso!

5

Forme di Conoscenza (Nonaka)

ImplicitaPosseduta dalle personeComunicabile in forma verbale o scritta

TacitaPresente nelle menti degli individuiDifficile da comunicare verbalmente (importante è l’esperienza sensoriale)

EsplicitaStrutturata (data base, XML+DTD, XML+Shema, ecc.)Semi-strutturata (XML, EBCDIC, ecc.)Debolmente strutturata (HTML, testi tabulati, ecc.)Non strutturata (documenti in linguaggio naturale)

Forme di Conoscenza (Ryle)

DichiarativaConoscere (knowing that) ...

… la storia romana

… il linguaggio Java

ProceduraleSaper (knowing how) …

… nuotare (I’m able to swim)

… programmare in Java (I can program using Java)

6

Conoscenza DichiarativaConoscenza Terminologica

Lessico di una lingua …… “madre” significa “donna con almeno un figlio”

Conoscenza NomologicaRegolarità, leggi generali che regolano il mondo …… ogni “madre” sempre è più anziana di “suo figlio”… ogni “madre” in genere ama “suo figlio”

Conoscenza FattualeFatti particolari …… “Marco” è assistente di “Massimo”… “Marco” conosce “Massimo”

Acquisizione e ConservazioneFonti di Conoscenza

Esperienza direttaInterazione del soggetto con il suo ambiente

RagionamentoDeduttivo/inferenza (conclusioni premesse)Abduttivo (possibili cause effetti osservati)Induttivo (regole generali fatti specifici)

ComunicazioneUso di sistemi di segni (in particolare il linguaggio naturale) per trasferire informazioni da un soggetto a un altro.

Funzione della memoriaCapacità di Conservare nel tempo elementi di conoscenza e soprattutto di reperirli con efficienza quando occorre farne uso.

7

Ruoli della ConoscenzaInterpretare la realtà

Capire che cosa è successo (ipotizzare le cause di un evento che si èverificato)

Prevedere l’evoluzione della realtàPrevedere con approssimazione accettabile quali eventi si verificheranno nel futuro

Agire in modo razionale modificando la realtàCostruire piani d’azione per raggiungere determinati obiettivi

Realizzare Tecnologie informatiche “Evolute”KDD (Knowledge Discovery in Database)DSS (Decision Support Systems)ES (Expert Systems).

Un po’ di StoriaIntelligenza Artificiale (1956-1965)

Risoluzione automatica di problemi

Rappresentazione della Conoscenza (1965-1975)Sfruttabile da un programma. Dichiarativa o Procedurale?

Ingegneria della Conoscenza (1975-1985)Sistemi esperti. Dichiarativa + Procedurale.

Crisi e ricerca di strade alternative (1985-1995)Reti neurali, computazione evolutiva (analisi di segnali, apprendimento automatico, ecc.)

Gli agenti e le Ontologie (1995-oggi)Interoperabilità delle applicazioni e gestione delle risorse in rete.

8

La centralità dei datiQualsiasi applicazione informatica è costituita da dati e programmi; le due componenti non hanno però lo stesso peso in applicazioni di tipo differente.

Vi sono applicazioni centrate maggiormente:

sul processo (es. simulazione di sistemi dinamici)

sui dati (es. il web)

Le applicazioni centrate sui dati sono sempre piùdiffuse, per cui l’interesse dell’informatica si ègradualmente spostato verso i sistemi centrati sui dati.

L’interoperabilità “interna”Per molti anni le aziende hanno sviluppato e utilizzato applicazioni “chiuse” (operano su dati per lo più in formato proprietario)

Difficile interazione tra applicazioni distinte

Le tecnologie basate su XML offrono un buon livello d’interoperabilità all’interno di una singola azienda

Intranet aziendali e integrazione di dati e servizi web (web services)

9

L’interoperabilità “esterna”Le applicazioni “aperte” devono essere in grado di interoperarecon applicazioni di aziende diverse (ambito extranet)

Le tecnologie basate su XML sono necessarie ma non sufficienti. XML codifica e standardizza la sintassi dei dati ma non la loro semantica.

Due documenti XML possono contenere le due seguenti stringhe "<spesa>85</spesa>" "<costo>85</costo>". Un’applicazione informatica non può scoprire che si tratta di due diverse codifiche della stessa informazione, a meno che non sia disponibile la conoscenza del fatto che “prezzo” e “costo” sono sinonimi (conoscenza terminologica), almeno nel contesto dell’applicazione in oggetto.

Il triangolo aristotelico (1)Assegnamento di un significato ai dati

Significato rapporto fra linguaggio e realtà.Il termine “seggiola” (sostantivo) può corrispondere all’insieme di tutte le seggiole, oppure a una seggiola specifica (un individuo membro dell’insieme delle seggiole).

La relazione fra linguaggio e realtà (fra il termine “seggiola” e l’insieme delle seggioleconcrete) è detta relazione semantica.

10

Il triangolo aristotelico (2)Il rapporto fra linguaggio e realtà è mediato dai concetti (dalla mente)

La mente è in grado di cogliere gli esatti significati in base al particolare contesto

Più precisamente, dobbiamo distinguere fra:Il termine “seggiola” (“chair” in inglese)L’insieme di tutte le seggiole che esistono nella realtà (l’estensionedel termine “seggiola”)Il concetto di seggiola così come è rappresentato nella mente degli esseri umani (l’intensione del termine “seggiola”).

Il triangolo aristotelico (3)Il gergo dell’ingegneria della conoscenza spesso confonde i tre vertici del triangolo: così, una definizione di “seggiola” sarà indifferentemente denominata “termine”, “concetto” o “classe”.

Questo abuso linguistico è innocuo purché si tenga in mente la distinzione appena introdotta

A rigore, comunque, nei sistemi informatici sarebbe preferibile parlare sempre di termini, dato che un gli oggetti informatici sono comunque simboli appartenenti a un linguaggio formale.

11

Rappresentazionedella Conoscenza

Linguaggi diRappresentazione

La Logica SimbolicaProblema

Rappresentare la conoscenza in formato machine-readable (un computer può “leggere” tale conoscenza rappresentata e utilizzarla per eseguire compiti d’interesse applicativo)

SoluzioneRappresentazione dichiarativa tramite logica simbolica (formale), ed in particolare la logica dei predicati del primo ordine (first order logic, FOL)

12

First Order Logic (FOL)In FOL tutte le rappresentazioni riguardino un insiemenon vuoto di individui detto universo (o dominio).

Di questi individui possiamo rappresentare proprietàoppure relazioni che li leghino fra loro. Un fatto è dato dal sussistere:

di una proprietà di un determinato individuo (es. “Barbara èbionda”, “Luigi ha 21 anni”)

oppure di una relazione fra più individui (es. “Alberto è più alto di Barbara”, “Alberto ha dato il suo cellulare a Barbara”, ecc.)

Linguaggi di RappresentazioneUn linguaggio per la rappresentazione di conoscenze è un linguaggio formale, con sintassi testuale o grafica, le cui espressioni sono utilizzate per rappresentare elementi di conoscenza.Esempio: rappresentare il significato del termine “madre” come “donna con almeno un figlio”.

Linguaggio naturale:(x è una madre) se e solo se (x è una donna ed esiste almeno un y tale che x è genitore di y)

First Order Logic (FOL):∀ x (MADRE(x) ↔ DONNA(x) ∧ ∃ y GenDi(x,y))

Logic Programming (LP):madre(X) :- donna(X), genDi(X,Y).

13

Notazione classica per FOLQuantificatore Universale

∀ x … (per ogni x … ) Quantificatore Esistenziale

∃ y … (esiste un y tale che … )Connettivo Bicondizionale

… ↔ … ( … se e solo se … )Connettivo Condizionale

… → … ( … allora … )Connettivo di Congiunzione

… ∧ … ( … e … )Predicati Monoargomentali

MADRE(x) (poprietà su x) DONNA(x) (poprietà su x) Predicato Biargomentale

GeniDi(x,y) (relazione binaria tra x e y)

Altre notazioni possibili Notazione classica per FOL :

∀ x (MADRE(x) ↔ DONNA(x) ∧ ∃ y GenDi(x,y))

Notazione ASCII per FOL:

(forall (?x)(iff (MADRE ?x)

(and (DONNA ?x)(exists (?y) (GenDi ?x ? y)))))

Notazione XML per FOL:

<formula> <forall> <varlist> <var>x</var> </varlist> <iff> <atom> <con>MADRE</con> <var>x</var> </atom> <and> <atom> <con>DONNA</con> <var>x</var> </atom> <exists> <varlist> <var>y</var> </varlist> <atom> <con>GenDi</con> <var>x</var> <var>y</var> </atom> </exists> </and> </iff> </forall> </formula>

14

Rappresentazionedella Conoscenza

RagionamentoAutomatico

La DeduzioneNel contesto in cui ci stiamo muovendo, per “ragionamento”s’intende il ragionamento deduttivo (o deduzione)Una deduzione è un processo che fa passare da alcune espressioni (dette premesse o ipotesi) a un’espressione (detta conclusione o tesi), in modo tale da conservare l’eventuale veritàdelle premesse: in altre parole, se le premesse sono vere, lo saràanche la conclusione.Ad esempio, dati come premesse1. la definizione di “madre”2. il fatto che laura è una DONNA3. il fatto che laura è GenitoreDi di franco

si può dedurre come conclusione chelaura è una MADRE

15

Deduzione Naturale (calcolo)Premesse

1. ∀ x (MADRE(x) ↔ DONNA(x) ∧ ∃ y GenDi(x,y))2. DONNA(laura)3. GenDi(laura,franco)

Deduzione (da 1 per eliminazione di ∀)4. MADRE(laura) ↔ DONNA(laura) ∧ ∃ y GenDi(laura,y)

Deduzione (da 3 per introduzione di ∃)5. ∃ y GenDi(laura,y)

Deduzione (da 2 e 5 per introduzione di ∧)6. DONNA(laura) ∧ ∃ y GenDi(laura,y)

Deduzione (da 4 e 6 per eliminazione di ↔)7. MADRE(laura)

Semi-decidibilità di FOL (1)Utilizzando FOL si può

esprimere conoscenza in modo molto articolate

eseguire (in linea di principio) in modo automatico ragionamenti complessi.

C’è però un problema: in FOL la procedura di deduzione non è una procedura di decisione, ma soltanto di semidecisione. Ciò significa che:

se la conclusione è deducibile delle premesse, la procedura termina in un numero finito di passi producendo una prova

se la conclusione non è deducibile delle premesse, la procedura può non terminare.

16

Semi-decidibilità di FOL (2)La semi-decidibilità di FOL dipende dalla sua notevole espressività:

più un linguaggio di rappresentazione è espressivo, più sono problematiche le procedure di ragionamento

Molte ricerche nel campo dei linguaggi di rappresentazione delle conoscenze hanno l’obiettivo di identificare un sottolinguaggio di FOL tale che:

il linguaggio sia comunque abbastanza espressivo per le applicazionila deduzione si basi su una procedura di decisionetale procedura di decisione abbia complessità computazionale accettabile

Le Logiche Descrittive (DL)I sistemi di questo tipo hanno preso il nome di logiche descrittive (description logic, DL). Le DL utilizzano una sintassi semplificata rispetto a FOL.Ad esempio, le tre premesse

1. ∀ x (MADRE(x) ↔ DONNA(x) ∧ ∃ y GenDi(x,y))2. DONNA(laura)3. GenDi(laura,franco)

in logica descrittiva verrebbero rappresentate come1. MADRE ≡ DONNA ⊓ ∃ GenDi2. DONNA(laura)3. GenDi(laura,franco)

17

Rappresentazionedella Conoscenza

Sistemi diRappresentazione

Le Rappresentazioni (1)Esempi di Sistemi di Rappresentazione sono:

le basi di dati

i diagrammi UML

i documenti XML

Al di là delle ovvie differenze, tutti i sistemi di rappresentazione condividono alcune caratteristiche comuni:

Modello concreto: conoscenza fattuale su un certo frammento di realtà (es. “Luigi Rossi ha 10 anni”)

Modello concettuale: conoscenza terminologica e nomologica (es. definire i concetti di persona (avente nome e cognome), di età, ecc.)

Metamodello: la specifica degli strumenti formali utilizzabili per definire i primi due (es. linguaggio FOL, schemi E-R, diagrammi delle classi in UML, ecc)

18

Le Rappresentazioni (2)

un’ABoxun

documento RDF

formule atomiche prive di variabili

le istanze delle classi

un’istanza di base di

dati

modello concreto

una TBoxun

documento RDFS

una teoria del primo

ordine

diagramma delle classi

un modello concettuale

E-R

modello concettuale

una particolare

DLTriple RDFFOLdiagrammi

UMLformalismo

E-Rmeta-

modello

DLRDFlogicaspecifiche softwarebasi di dati

Knowledge Representation Systems

Differenza di fondo tra un KBS ed atri sistemi di rappresentazione (basi dei dati, UML):

nei campi delle basi di dati e della specifica del software, i modelli concettuali (E-R, UML, ecc.)NON fanno parte del prodotto finale

nei KBS i modelli concettuali sono parte integrante del prodotto finale in quanto disponibili e utilizzati a runtime dai sistemi software.

19

L’architettura di un KBSBase di conoscenze (KB):

Terminological Box (TBox) per accedere al modello concettuale (schemi)Assertion Box (ABox), per accedere al modello concreto (dati)

Applicazioni Software:Servizi di ragionamento per dedurre conoscenza partendo dalla KBInterfaccia di editing per gestire (lato utente) i contenuti della KBApplicazioni software specifiche

Interfaccia di accesso per la comunicazione tra KB e Applicazioni

Gestione dellaConoscenza

Prof. Massimo RuffoloIng. Marco Manna

UNICAL - A.A. 2006-2007

20

Capitolo 2…Elementi di Logica Descrittiva

Termini, equivalenze e sussunzioniOntologieRuoli

Elementi diLogica Descrittiva

Termini, equivalenzee sussunzioni

21

Operatori LogiciDiverse Logiche Descrittive (DL)

SHIQ (alla base del linguaggio DAML+OIL)

SHOIN(Dn) (alla base del linguaggio OWL, lo standard attualmente sostenuto dal W3C)

Ogni DL si caratterizza per l’utilizzo di un certo numero di operatori logici scelti da un repertorio di operatori possibili

TerminiAtomici (indicati spesso con le lettere A e B)

DONNA

intuitivamente significa “DONNA”

Complessi (indicati spesso con le lettere C e D)

PERSONA ⊓ FEMMINAsi legge “PERSONA e FEMMINA” o “PERSONA intersezione FEMMINA”intuitivamente significa “persona di genere femminile”

Spesso chiamaticoncetti (poiché descrivono concetti)classi (poiché denotano insiemi di oggetti della realtà)

22

EquivalenzeEquivalenza Terminologica

DONNA ≡ PERSONA ⊓ FEMMINAintuitivamente significa “DONNA equivale a PERSONA FEMMINA”

In generaleC ≡ D

si legge “C equivale a D”esprime l’equivalenza fra i 2 termini “C” e “D”

Definizione TerminologicaA ≡ C (con “A” è atomico)DONNA ≡ PERSONA ⊓ FEMMINAdefinizione del termine “DONNA” a partire dai termini “PERSONA” e “FEMMINA”

SussunzioniSussunzione Terminologica

RAGAZZA ⊑ DONNA

si legge “RAGAZZA è sussunto da DONNA” o “DONNA sussume RAGAZZA”

intuitivamente significa “una ragazza è una donna”

In generaleC ⊑ D

ogni individuo descritto da “C” è anche descritto da “D”

SimmetriaC ≡ D coincide con la doppia sussunzione C ⊑ D e D ⊑ C

23

Elementi diLogica Descrittiva

Ontologie

Enunciati TerminologiciEspressioni che esprimono

equivalenze fra termini

sussunzioni fra termini

Assioma TerminologicoEnunciato Terminologico assunto come vero

Terminologia o Ontologiainsieme finito di Assiomi Terminologici

una teoria del primo ordine esprimibile in una DL

24

Funzione di una OntologiaDefinire relazioni di equivalenza e sussunzione fra un certo numero di termini

Assegnare un significato non ambiguo a un certo numero di termini atomici in base al significato di altri termini

Termini atomici primitivi

privi di una definizione

Traduzione di terminiOgni termine atomico o complesso esprime un predicato monàdico

una proprietà che ciascun individuo (di un certo universo) può possedere o meno

Termini atomici predefiniti⊤ (top = termine universale = tutti gli individui esistenti nell’universo)

⊥ (bottom = insieme vuoto di individui)

In FOL i predicati sono rappresentati da formule con esattamente una variabile libera. Esempi di traduzione da DL a FOL

DONNA diventa [DONNA]x = DONNA(x)

PERSONA ⊓ FEMMINA diventa [PERSONA ⊓ FEMMINA]x = [PERSONA]x ⋀[FEMMINA]x = PERSONA(x) ⋀ FEMMINA(x)

⊤ diventa [⊤]x = (x = x)⊥ diventa [⊥]x = (x ≠ x)

25

Traduzione di enunciati terminologiciIn FOL avremo formule chiuse (prive di variabili libere) quantificate universalmente

C ⊑ D diventa [C ⊑ D] = = ∀ x ([C]x → [D]x) = ∀ x (C(x) → D(x))

C ≡ D diventa [C ≡ D] = = ∀ x ([C]x ↔ [D]x) = ∀ x (C(x) ↔ D(x))

EsempiRAGAZZA ⊑ DONNA diventa[RAGAZZA ⊑ DONNA] = ∀ x ([RAGAZZA]x → [DONNA]x) = = ∀ x (RAGAZZA(x) → DONNA(x))

DONNA ≡ PERSONA ⊓ FEMMINA diventa[DONNA ≡ PERSONA ⊓ FEMMINA] = = ∀ x ([DONNA]x ↔ [PERSONA ⊓ FEMMINA]x) == ∀ x (DONNA(x) ↔ PERSONA(x) ⋀ FEMMINA(x))

Negazione e disgiunzioneGli “uomini” sono il complemento delle “donne” rispetto alla totalità delle “persone”. Utilizzando l’operatore ¬ di complemento(negazione) è quindi possibile definire:

UOMO ≡ PERSONA ⊓ ¬FEMMINA diventa[UOMO ≡ PERSONA ⊓ ¬FEMMINA] = = ∀ x ([UOMO]x ↔ [PERSONA ⊓ ¬FEMMINA]x) == ∀ x (UOMO(x) ↔ PERSONA(x) ⋀ ~FEMMINA(x))

Un altro operatore utile è l’operatore di unione (disgiunzione, ornon esclusivo), che ci permette ad esempio di definire gli “esseri viventi” come unione di “vegetali” e “animali”:

VIVENTE ≡ VEGETALE ⊔ ANIMALE diventa[VIVENTA ≡ VEGETALE ⊔ ANIMALE] = = ∀ x ([VIVENTE]x ↔ [VEGETALE ⊔ ANIMALE]x) == ∀ x (VIVENTE(x) ↔ VEGETALE(x) ⋁ ANIMALE(x))

26

DL vs. Algebra BooleanaSi noti che gli operatori ¬, ⊓, ⊔, ⊤, ⊥ formano un’algebra booleana:

¬ ⊤ equivale a ⊥¬ ¬ C equivale a C

¬ (C ⊓ D) equivale a ¬ C ⊔ ¬ D

¬ (C ⊔ D) equivale a ¬ C ⊓ ¬ D

Elementi diLogica Descrittiva

Ruoli

27

I RuoliOltre ai termini corrispondenti a predicati con un argomento (detti, come abbiamo visto, concetti o classi), le DL utilizzano termini corrispondenti a predicati a due argomenti

I predicati a due argomenti esprimono relazioni binarie fra individui della realtà

Tali termini vengono detti ruoliruoli ≡ proprietà ≡ attributi ≡ relazioni

Quantificatore EsistenzialeEsempio di enunciato terminologico con un ruolo

MADRE ⊑ ∃GenDi

intuitivamente significa “ogni madre è genitore di almeno un individuo”

si legge “MADRE è sussunto dall’INSIEME DEGLI INDIVIDUI che sono GENITORI di QUALCUNO”

∃GenDi = termine complesso formato dal quantificatore esistenziale ∃ed il ruolo GenDi

Traduzione in FOL (una formula dotata di un’unica variabile libera x, mentre y è vincolata da ∃)

MADRE ⊑ ∃GenDi diventa[MADRE ⊑ ∃GenDi] = ∀ x ([MADRE]x → [∃GenDi]x) == ∀ x (MADRE(x) → ∃ y GenDi(x, y))

28

Quantificatore Esistenziale QualificatoEsempio

∃GenDi.FEMMINA

denota l’insieme di “tutti gli individui” dell’universo che sono “genitori”di almeno un “individuo” di sesso “femminile”

si legge “l’INSIEME DEGLI INDIVIDUI che sono GENITORI di almeno una FEMMINA”

Traduzione∃R.C diventa[∃R.C]x = ∃ y(R(x, y) ⋀ [C]y)

∃GenDi.FEMMINA diventa[∃GenDi.FEMMINA]x = ∃ y(GenDi(x, y) ⋀ [FEMMINA]y) = = ∃ y(GenDi(x, y) ⋀ FEMMINA( y))

Quantificatore UniversaleEsempio

∀GenDi.FEMMINA

si legge “l’insieme degli INDIVIDUI dell’universo che sono GENITORI di sole FEMMINE”

Traduzione∀R.C diventa[∀R.C]x = ∀ y(R(x, y) → [C]y)

∀GenDi.FEMMINA diventa[∀GenDi.FEMMINA]x = ∀ y(GenDi(x, y) → [FEMMINA]y) == ∀ y(GenDi(x, y) → FEMMINA(y))

29

Gestione dellaConoscenza

Prof. Massimo RuffoloIng. Marco Manna

UNICAL - A.A. 2006-2007

Capitolo 3…XML: eXtensible Markup Language

IntroduzioneSpecifiche

30

XML: eXtensibleMarkup Language

Introduzione

XML: eXtensible Markup Language (1)XML è nato per far fronte alle limitazioni di HTML nella realizzazione delle nuove applicazioni Web, in cui i daticostituiscono un elemento essenziale (data-centric Web applications).

XML è stato quindi il primo passo per assegnare una semantica ai tag permettendo lo scambio di informazioni tra database diversi.

L' adozione di XML agevola la gestione di collezioni di documenti, e costituisce un supporto fondamentale per la pubblicazione di informazioni a livello internazionale, con il non piccolo vantaggio di essere indipendente dalla piattaforma e dal linguaggio.

XML è stato definito “ASCII del 2000”.

31

XML: eXtensible Markup Language (2)Il documento XML è verboso ma logicamente ben strutturato, esso contiene nel contempo

sia i nomi dei campiche i loro valori

Il modello relazione è più semplice perchéuna ennupla di una tabella riporta solo i valorimentre lo schema (nomi e tipi dei campi) sono memorizzati una volta per tutte a parte

Linguaggio di marcatura descrittiva del contenuto logico dei datiper la visualizzazione è necessaria una descrizione a parte attraverso un ulteriore linguaggio, ad esempio

CSS (Cascading Style Sheets)XSL (eXtensible Stylesheet Language)

Il caso HTMLHTML (HyperText Markup Language) nasce semplici documenti testuali con immagini e collegamenti ipertestuali

L’elemento fondamentale è il tag

testo tra ‘<‘ e ‘>’ contenente informazioni circa il testo

un meta-dato circa il dato vero e proprio che è nel testo

Con il successo del web HTML viene usato per scopi diversi da quelli per cui era stato progettato

estensioni proprietarie

I parser (browser) rilassano le regole sintattiche ed interpretano anche documenti HTML “scorretti” (in maniera differente l’uno dall’altro)

32

Da HTML ad XMLXML nasce dall’intento di applicare il paradigma dei tagin campi diversi dalla presentazione di ipertesti

Si basa sul markup in modo simile ad HTML

XML è pensato per descrivere dati

I tag XML non sono predefiniti

XML non è un linguaggio, ma un insieme di regole per costruire particolari linguaggi (metalinguaggio)

I tag in HTMLI tag di HTMLcontengono informazioni per la visualizzazione dei datiLa semantica di ciascun tag è nota a priori.

33

I tag in XML (1)Un documento XML èsimile ad un HTML, in cui però possiamo “inventare” i tag

La scelta dei tag può essere effettuata a seconda delle informazioni che interessa rappresentare

XML: eXtensibleMarkup Language

Specifiche

34

Caratteristiche baseXML usa tag di inizio e fine per marcare i campi informativi

<importo>23.45</importo>

Un campo informativo tra due marcatori è detto elemento23.45

Un elemento può essere ulteriormente arricchito dalla presenza di coppie nome/valore dette attributi

id="ord001"

Regole generali x un XML ben formatoI tag devono essere inseriti correttamente uno dentro l' altroCi deve essere corrispondenza tra tag di apertura e di chiusuraSono previsti elementi a campo informativo nulloGli attributi dei tag devono essere racchiusi tra doppi apici

Sintassi formale semplificata<document> ::= <prolog> <element> <Misc>*<prolog> ::= <XMLDecl> <Misc>* (<doctypedecl> <Misc>*)?<XMLDecl> ::= '<?xml version="1.0" encoding="ISO-8859-1"?>'<element> ::= <EmptyElemTag> | <STag> <content> <ETag><EmptyElemTag> ::= '<' <Name> (<S> <Attribute>)* <S>? '/>'<STag> ::= '<' <Name> (<S> <Attribute>)* <S>? '>'<content> ::= <CharData>? ((<element> | <Comment>) <CharData>?)*<ETag> ::= '</' <Name> <S>?'>'<Attribute> ::= <Name> <Eq> <AttValue><Name> ::= [a-zA-Z_] ([a-zA-Z_0-9.] | '-')*<Eq> ::= '='<CharData> ::= [^<&]<AttValue> ::= '"' [^<&"]* '"'<Misc> ::= <Comment> | <S><Comment> ::= '<!--' <Char>+ '-->'<S> ::= (#x20 | #x9 | #xD | #xA)+<Char> ::= [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

35

Attributi o elementi? (1)Spesso le stesse informazioni possono essere rappresentate sia tramite attributi che tramite (sotto)elementi.

La scelta tra attributi o elementi è soggettiva, tuttavia le due soluzioni non sono in genere equivalenti.

Attributi o elementi? (2)Problemi con gli attributi:

Non possono contenere valori multipli

Sono difficilmente espandibili (aggiunta di sottoelementi)

Non possono descrivere strutture

Sono difficili da controllare rispetto ad un formato di documento

È opportuno usare gli attributi per informazioni essenziali per l’elemento, come ad esempio gli identificativi (ID)

36

Useful LinksGuide

http://www.unicode.org/versions/Unicode5.0.0/http://www.w3.org/TR/1998/REC-xml-19980210http://www.w3.org/TR/2004/REC-xml11-20040204/http://www.w3.org/TR/2006/REC-xml-20060816/http://www.w3.org/TR/2006/REC-xml11-20060816/http://www.w3.org/TR/REC-xml/http://www.w3.org/XML/

Validatorihttp://validator.aborla.net/http://www.stg.brown.edu/service/xmlvalid/