Gestione della Conoscenza - Istituto di Calcolo e Reti ad...
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/