RDF Triple Store: Sesame

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "RDF Triple Store: Sesame"

Transcript

1 Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati RDF Triple Store: Sesame Anno Accademico 2014/2015 Candidato: Ciro Guida matr. N46/000744

2 Ai miei genitori per avermi costantemente sostenuto

3 Indice Introduzione 1 Capitolo 1: Il Web Semantico 1.1 Introduzione Architettura del Web Semantico XML RDF RDF Data Model RDF Schema OWL 14 Capitolo 2: Panoramica sui database Triple Store 2.1 Introduzione Database Triple Store SPARQL 18 Capitolo 3: Sesame 3.1 Introduzione Architettura Il Repository Abstraction Layer Stacking RAL Il Repository RQL Query Module RDF Administration Module RDF Export Module On-To-Knowledge 28 Conclusioni 29 Bibliografia 31

4 Introduzione Al giorno d'oggi Internet è uno strumento di cui le persone non possono farne più a meno (o quasi), basti pensare alle ore trascorse davanti ad un pc o con uno smartphone tra le mani ad eseguire ricerche, scambiare messaggi, usufruire di servizi in streaming, ecc. Eppure Internet, così come lo conosciamo, è nato quasi per puro caso: nel 1964 un progetto militare ad opera di ricercatori della N.A.S.A dà vita ad una primordiale forma di Internet, che in origine venne chiamata ARPANET. L'obiettivo era quello che in caso di un conflitto mondiale (si era in piena guerra fredda tra Unione Sovietica e Stati Uniti), di salvaguardare la comunicazione tra varie postazioni dislocate sul pianeta anche in mancanza di una parte della rete telefonica internazionale. Il criterio fondamentale era quindi quello di "bypassare" un tratto della rete telefonica anche circumnavigando l intero pianeta per connettere tra loro due punti di comunicazione. Successivamente il progetto militare fu abbandonato dal Pentagono a causa dell'intrusione di un tecnico molto esperto che si impossessò di documenti top secret che inconsapevolmente lì divulgò. Nel 1985 il progetto militare fu privato del segreto di Stato e lasciato a libero utilizzo. Attualmente Internet è un mondo sconfinato e basti pensare che solo una piccolissima parte è raggiungibile mediante un ipertesto. E' utilizzato specialmente come strumento di ricerca e condivisione di informazioni. Dato il numero elevato (quasi incommensurabile) di informazioni reperibili in Rete, è importante sapere dell'esistenza di strumenti, quali browser e motori di ricerca, capaci di effettuare ricerche attraverso semplici parole chiavi. E' interessante notare come, data la mole straordinaria di dati che circolano sul Web, una buona percentuale di utenti durante le proprie ricerche, non superi le primissime pagine suggerite. Questo perché i motori di ricerca (come Google o Yahoo!), non sono in grado di poter percepire il significato di una parola chiave all'interno del contesto in cui si trovano, visto che gli algoritmi di ricerca utilizzati sono basati, ad esempio, sulla popolarità della pagina e non sull'aspetto sintattico delle informazioni. 1

5 A tutto ciò si è voluto porre rimedio, cercando di riorganizzare la Rete in chiave semantica. Negli ultimi anni molte aziende proprietarie di motori di ricerca stanno investendo i loro sforzi cercando di creare sistemi in grado di poter effettuare ricerche sempre più raffinate e precise. Tutto ciò è alla base del cosiddetto Web Semantico. In questo elaborato tratteremo i principali concetti alla base del Web Semantico, dandone una visione sintetica(data la vastità dell'argomento) ma allo stesso esauriente. Successivamente vedremo quali tecnologie possono essere utilizzate affinché la Rete diventi un mondo semantico. 2

6 Capitolo 1: Il Web Semantico 1.1 Introduzione Il World Wide Web, o semplicemente Web, fu progettato come una enorme libreria costituita da elementi che in qualche modo possono essere collegati tra loro attraverso link ipertestuali, senza i quali gran parte delle funzionalità e della praticità offerta da Internet verrebbero a mancare allontanando l'utente meno esperto. Poiché la maggior parte delle informazioni contenute in Rete è adatta alla semplice consultazione, l'ostacolo più grande all'espansione del Web è dato dalla difficoltà di agenti software come browser e motori di ricerca, di poter interpretare i dati nella maniera più corretta possibile. Ad esempio quando un motore di ricerca salva una pagina, non distingue se la parola mobile si riferisce ad un oggetto di arredamento o ad un'apparecchiatura tecnologica come un telefono cellulare, oppure se con programma ci si riferisce ad una trasmissione televisiva o ad un certo software (a maggior ragione se il contenuto della pagina Web è rappresentato da un documento multimediale contenete ad esempio audio e video), quindi non sarebbe in grado di accettare domande complesse e fornire risposte esaustive all'utente finale. A tale scopo è nata la necessità di introdurre una struttura semantica nei contenuti del Web che espliciti il significato dei dati, in modo tale che le macchine siano in grado di elaborare i dati e non solo di visualizzarli. Il Web Semantico non è una sostituzione del Web così come concepito negli Anni '80, ma un' evoluzione della sua prima forma, di cui T. Berners-Lee afferma [3] sostanzialmente che: le macchine diventano capaci di analizzare tutti i dati sul Web, il contenuto, i link e le transazioni tra persone e computer. [...] I meccanismi quotidiani di commercio, burocrazia e vita saranno gestiti da macchine che parleranno a macchine, lasciando che gli uomini pensino soltanto a fornire l'ispirazione e l'intuito[...]. Il Web sarà un luogo in cui l'improvvisazione dell'essere umano e il ragionamento della macchina coesisteranno in una miscela ideale e potente 3

7 Nei prima anni dalla sua invenzione il Web (chiamato anche Web 1.0) è stato un medium di sola lettura dove gli utenti erano semplicemente spettatori in grado di accedere ad una grande libreria di informazioni. Tra la fine del vecchio e l'inizio del nuovo secolo, con la nascita di Blog e Social Network i navigatori hanno acquisito la possibilità di divenire parte attiva di questo mondo con la possibilità di pubblicare informazioni ed opinioni: il cosiddetto Web 2.0. Infine negli ultimi anni, le informazioni presenti sul Web stanno diventando comprensibili ai calcolatori in modo tale da poter essere collegate tra loro e riutilizzate sotto altre forme (dando vita a nuove informazioni) tramite strumenti automatici [9]. Dunque un Web così come concepito, e come chiarito in precedenza, è ad uso e consumo dei soli agenti umani che tramite la loro esperienza e alla capacità di evocazione delle parole chiavi si orientano su di esso. La capacità di avere a disposizione macchine (dicasi agenti intelligenti) in grado di comprendere il significato delle informazioni presenti in Rete e dunque di guidare l'utente verso l'informazione ricercata oppure di sostituirsi a lui in alcune operazioni (create senza ricorrere all'intelligenza artificiale ad alti livelli) è alla base del concetto di Web Semantico. Un agente intelligente [21], per definirsi tale, dovrebbe avere le seguenti caratteristiche: comprendere i testi presenti in Rete; creare dei percorsi in base alle informazioni fornite dall'utente; spostarsi di sito in sito collegando logicamente elementi diversi dell'informazione richiesta; verificare l'attendibilità delle informazioni attraverso ricerche incrociate o in dipendenza del contesto. Le possibilità offerte dal Web Semantico sono tante e tali che al giorno d'oggi sono ancora in fase di approfondimento, per questo motivo più che di tecnologia si parla di visione del Web Semantico. 1.2 Architettura del Web Semantico Berners-Lee ipotizza, in un esempio divenuto un classico della letteratura sul Web 4

8 Semantico, un possibile scenario di collaborazione uomo-macchina sul Web [3]: Lucy ha la necessità di prenotare una visita specialistica per sua madre. Dopo aver istruito il suo agente (che possiamo definire in modo semplicistico un programma capace di eseguire compiti definiti da un utente in modo autonomo, ovvero senza il controllo dell'utente stesso ) circa le proprie esigenze (tipo di visita specialistica, massima tariffa consentita, distanza dalla casa della madre, date disponibili, etc...) delega ad esso il compito di ricercare sul Web in modo del tutto autonomo quali soluzioni sono disponibili. Una volta che l'agente avrà individuato le possibili alternative, Lucy avrà l'unico compito di scegliere la più adatta e darà il comando al suo agente di prenotare in sua vece. La possibilità di avere computer in grado di accedere a collezioni strutturate di informazioni e di portare a termine operazioni di ragionamento e comprensione automatici attraverso l'utilizzo di regole di inferenza logica (si trae una conclusione da un insieme di fatti) e semantica è alla base della sfida lanciata dal Web Semantico. Affinché le macchine possano avere un approccio semantico è necessario che le informazioni presenti sul Web siano corredate di una struttura dati composta da: metadati (HTML) o annotazioni (XML, RDF) per indicare i collegamenti semantici; schema (o ontologia) del dominio per ragionare su tali collegamenti, estraendo le informazioni di interesse e/o trovando nuovi collegamenti. Lo scenario futuro previsto dal Web Semantico vuole riprendere in parte quello già previsto per le basi di dati: quando si interroga una base dati è possibile effettuare delle ricerche molto raffinate, come ad esempio quali autori hanno pubblicato almeno due studi sul Web Semantico. Questo perché esiste uno schema della base dati in grado di consentire all'utente di imporre precise relazioni (almeno due studi sul Web Semantico) e tali relazioni sono stabilite fra concetti (autore e studio) e non tra le parole chiavi (la stringa autore e la stringa studio), cioè esiste un modello ed un insieme di regole che stabiliscono come debbano essere organizzati i dati. Il Web Semantico è un ambiente dichiarativo, e in particolare la semantica dei dati consiste nel fornire alla macchina informazioni in modo tale che i dati possano essere 5

9 interpretati correttamente, eventualmente convertiti.[1] Vista la necessità di garantire una visione sintetica ma allo stesso tempo modulare del problema, la struttura del Web Semantico può essere vista come un diagramma piramidale, dove ciascun livello racchiude in sé le metodologie e i linguaggi che caratterizzano quel particolare standard. Tale schema può essere suddiviso in 3 livelli: dati gestiti tramite XML; metadati che rappresentano le informazioni sui dati tramite RDF; ontologie per la semantica di dati e metadati tramite specifici linguaggi. Fig. 1: Architettura Web Semantico Analizziamo ora il diagramma più nel dettaglio, con una visione su di esso dal basso verso l'alto: Unicode [14], come sistema di codifica delle informazioni che assegna un numero univoco sotto forma di stringa binaria ad ogni carattere, indipendentemente dalla piattaforma informatica, dal programma e dalla lingua utilizzata nonché simboli (matematici, chimici, ideogrammi, alfabeto Braille, etc...), ed URI [10](Uniform 6

10 Resource Identifier) che garantisce l'identificazione univoca della risorsa, tramite una stringa, di una risorsa ad esempio Web; XML [12], (extensible Markup Language) meta-linguaggio di markup che fornisce un insieme di regole sintattiche per modellare la struttura di documenti e dati quindi la possibilità di crearsi un proprio linguaggio di markup (ampia interoperabilità dei dati), XML Schema, che fornisce la possibilità di creare vocabolari XML ovvero definire la grammatica e la struttura soggiacenti ad un documento XML, e Namespace, insieme di attributi e/o nomi identificati da un codice univoco in modo tale da poter essere distinti da altri attributi e/o nomi di altri namespaces [20]; poiché XML non fornisce una corretta interpretazione dell'informazione semantica, occorre risalire al livello RDF [1] (Resource Description Framework) che fornisce un insieme di regole per la codifica, lo scambio e il riutilizzo di metadati strutturati e consente l'interoperabilità tra applicazioni attraverso lo scambio di informazioni machine-understadble. Tramite il linguaggio RDF è possibile definire qualsiasi oggetto, identificato univocamente mediante un URI, come risorsa RDF. L'unità base per la rappresentazione della informazione è lo statement, una tripla costituita da Soggetto Predicato Oggetto, dove il soggetto è una risorsa, il predicato è una proprietà e l'oggetto è un valore. Tali descrizioni vengono combinate in un vocabolario definito dal RDF Schema; per la mancanza di una semantica formale da parte di RDF, ragion per cui non è possibile descrivere le risorse in maniera dettagliata, bisogna salire ulteriormente per arrivare al livello delle ontologie (denominazione [22] formale di tipi, proprietà e di interrelazioni tra le varie entità di un particolare dominio del discorso), che si occupa di conciliare le infinite visioni del mondo cioè della condivisione e della conciliazione dei diversi punti di vista. Poiché un' ontologia formale è utopistica, nell'ambito del Web Semantico, si stanno sviluppando ontologie provenienti dal basso ovvero emergenti dal senso comune e dalla negoziazione dei significati. Poiché ciascuna ontologia si riferisce ad un certo dominio di interesse, è necessario 7

11 una certa interoperabilità dei vari sistemi ontologici generati, garantita solo mediante una standardizzazione dei linguaggi descrittivi che governano tali processi. Per quanto riguarda il Web Semantico, il W3C (World Wide Web Consortium) ha messo a disposizione un linguaggio per la definizione di ontologie strutturate e basate sul Web chiamato OWL (Web Ontology Language). In seguito, in questa trattazione, daremo un breve approfondimento per quanto riguarda XML, RDF ed OWL, ma prima una piccola panoramica sugli ultimi livelli dell'architettura, di cui si stava parlando prima, ancora in fase di sviluppo che potrebbero fornire la via per una rappresentazione ordinata ed efficiente della conoscenza on-line: Unifying Logic, Proof e Trust sono i nomi degli strati non ancora sviluppati e sui quali si hanno ancora idee abbastanza incerte. A questi livelli dovrebbe risiedere l intelligenza automatica (o se vogliamo artificiale) e l attendibilità del Web Semantico. Il livello più alto tra i tre strati è rappresentato da Trust (Fiducia) che, dato il grande quantitativo di informazioni presenti in Rete, ha il compito di dividere i dati in affidabili o non affidabili. L affidabilità dei dati può essere palese oppure potrebbe essere dedotta da parte di agenti intelligenti, a partire dai dati presenti. Nel caso di affidabilità inferita,cioè dedotta a partire da una o più premesse e per via logica arrivare ad una conclusione, è necessario poter risalire ai meccanismi che hanno portato a stabilirne la validità. A tale necessità risponde il livello Proof (Prova) che dimostra quale sia stata la logica sottostante a un dato ragionamento e le relative conclusioni. Per essere in grado di fare questo, la Prova si serve della logica; quest'ultima, infatti, si pone al livello sottostante, chiamato Unifying Logic o Logica Unificante. Questa deve rispondere a due necessità: validare la prova e permettere di definire e descrivere l informazione stessa. Le caratteristiche di questo linguaggio logico non sono ancora state definite con precisione. Entro il progetto del Web Semantico, nonostante questa vaghezza, la Logica ne costituisce il cuore pulsante. In particolare, a questo livello dovrebbe essere possibile derivare la conoscenza elaborata e prodotta (quindi dedotta) da 8

12 affermazioni esistenti; ancora più incerto risulta essere lo strato delle applicazioni e delle interfacce utenti (User Interface & Applications) e quello della crittografia (Crypto); il primo, User Interface & Applications, dovrebbe essere costruito sulla base dell insieme delle tecnologie sottostanti. Il secondo, includerebbe la crittografia e la firma digitale. Crypto rappresenterebbe un tassello importante per il raggiungimento di buoni livelli di affidabilità nel mondo del Web. Il livello di firma digitale potrebbe essere utilizzato, per esempio, per certificare la provenienza delle ontologie oltre che dei dati (strutturati).[16] 1.3 XML Attualmente il Web è un enorme contenitore di informazioni e l'utilizzo di un linguaggio come HTML (HyperText Markup Language), che assieme ad HTTP (HyperText Transfer Protocol) usato per la trasmissione delle informazioni basata sul modello client-server, ne ha sicuramente favorito lo sviluppo. Poiché si tratta di un linguaggio per la semplice formattazione grafica dei documenti (nel gergo si parla di informazioni human-readble e machine-readble ) che non permette un approccio semantico, è nata la necessità di sviluppare linguaggi che consentano il recupero intelligente dei dati e di organizzarli in maniera efficiente dal punto di vista logico e semantico. A tale scopo si pone un linguaggio derivante da SGML (Standard Generalized Markup Language), chiamato XML extensible Markup Language che esplicita la struttura di un documento, dal punto di vista sintattico, attraverso marcatori (detti anche tag) che rendono le informazioni contenute in esse comprensibili anche alle macchine. A differenza di HTML, il quale possiede un certo insieme predefinito di etichette utilizzabili (standardizzate peraltro da un organismo internazionale, il Web Consortium), in XML l'autore ha la libertà di creare dei nuovi marcatori in base alle esigenze dei dati da descrivere: per tale motivo si parla di metalinguaggio. Per autore si intende un insieme di soggetti interessati alla distribuzione di documenti XML che descrivono una certa tipologia semantica e che concordano insieme una struttura comune da adottare(vedasi 9

13 XML Schema). Un documento XML può essere visto come una struttura logica ad albero dove, necessariamente, esiste un elemento definito root element (nodo radice) che a sua volta può contenere altri elementi, i nodi foglia. Ad ogni elemento dell'albero possono essere associati degli attributi, informazioni che ne descrivono le proprietà (potenzialmente in numero illimitato). Di seguito si riporta un esempio di struttura logica di un documento XML Fig.2: Diagramma documento XML La rappresentazione fisica del documento XML visto prima può essere la seguente (ogni elemento è caratterizzato da un tag di apertura ed uno di chiusura ): <?xml version="1.0"?> <books> <book> <author>carson</author> <price format="dollar">31.95</price> <pubdate>05/01/2001</pubdate> </book> <pubinfo> <publisher>mspress</publisher> <state>wa</state> </pubinfo> </books> La sintassi di un documento XML passa anche attraverso la definizione dei suoi due 10

14 componenti principali: XML Schema che permette di definire la struttura, il contenuto e la semantica di documenti XML. Consente una tipizzazione dei dati sistematica, ovvero permette di definire un vocabolario XML che può essere utilizzato per descrivere documenti XML facendo ricorso sempre alla stessa sintassi. Documenti conformi allo standard possono essere convalidati come schemi validi; Namespace XML cioè una raccolta di nomi identificati da un URI, utilizzata nel documento XML, nel momento in cui ci si riferisce ad un certo elemento, eliminando il rischio di ambiguità. Non andremo oltre nella descrizione di XML, ma una piccola panoramica su di esso era necessaria poiché RDF ed OWL, cuore dell'architettura del Web Semantico, sono linguaggi di markup derivanti proprio da esso. Per approfondimenti si può far riferimento a [12]. 1.4 RDF La necessità di utilizzare metadati affinché il Web sia uno strumento di automazione dei dati, ha portato a definire, per questi, convenzioni per la semantica, la sintassi e la struttura. La semantica dei metadati viene definita dalle singole comunità interessate alla descrizione delle loro specifiche risorse. La sintassi facilita l'utilizzo e lo scambio di metadati tra applicazioni diverse. La struttura, invece, può essere definita come un vincolo formale sulla sintassi cioè per dare una rappresentazione consistente della semantica. A tale scopo si pone RDF [17] Resouce Description Framework come base per la codifica, lo scambio e il riutilizzo di metadati strutturati, consentendo, inoltre, interoperabilità tra applicazioni che si scambiano sul Web informazioni machineunderstadble. Figlio del formalismo XML, è stato proposto dal W3C alla fine degli anni '90 e nel 2014 è stata pubblicata una nuova specifica (RDF 1.1). Con RDF è possibile ad esempio descrivere il contenuto di una pagina Web, implementare agenti intelligenti per lo scambio di conoscenza, stabilire proprietà intellettuali delle 11

15 singole pagine, contribuire alla creazione di un Web of Trust per il commercio elettronico, ecc. Dunque RDF non descrive la semantica, ma mette a disposizione una base comune per poterla esprimere, permettendo di definire la semantica dei tag XML (infatti XML definisce solo l'organizzazione dei dati all'interno di una risorsa web). RDF è costituito da due componenti: RDF Model and Syntax che definisce il modello di dati RDF e la sua codifica XML, senza definire alcun livello di gerarchia o di relazione RDF Schema che permette di definire specifici vocabolari per i metadati e creare nessi tra oggetti Quindi da una parte avremo i dati, dall'altra uno schema che definisce come i dati si strutturano e come sono in relazione fra loro; c'è bisogno anche di un livello intermedio in cui tenere traccia di come un dato specifico (istanza) può essere espresso a partire dallo schema. Per concludere la panoramica su RDF daremo uno sguardo generale al Data Model e allo Schema definito. Per ulteriori approfondimenti il lettore è invitato a consultare [17] RDF Data Model RDF si serve di un preciso modello RDF Data Model per la descrizione di un qualsiasi oggetto; per ogni oggetto vengono specificati 3 componenti: risorsa, identificabile (univocamente) mediante un URI o un anchor identifier, descritta attraverso un'espressione RDF. Ogni risorsa RDF può essere inquadrata ad esempio in una pagina Web, in un'intera collezione di pagine Web o addirittura in un oggetto non direttamente accessibile via Web (libro, dipinto,...); proprietà per definire una specifica caratteristica o attributo di una risorsa; una proprietà può anche descrivere relazioni con altre risorse. Ogni proprietà possiede un proprio significato, definisce i valori ammissibili, il tipo di risorse che può descrivere e le relazioni che possono instaurarsi con altre proprietà; asserzione costituita dall'insieme di una risorsa, una proprietà e uno specifico 12

16 valore per quella proprietà e descrive le caratteristiche di una risorsa e le relazioni con altre risorse. Costituisce, dunque, una tripla composta da un soggetto (risorsa), un predicato (proprietà) ed un oggetto (valore). L'oggetto di un' asserzione può essere un qualsiasi tipo primitivo definito da XML oppure un'altra risorsa. Graficamente, ognuna delle triple costituenti la struttura di base di ogni espressione RDF viene rappresentata mediante grafo etichettato e orientato, in cui le risorse vengono identificate come nodi (graficamente delle ellissi), le proprietà come archi orientati etichettati, e i valori corrispondenti a sequenze di caratteri come rettangoli. Fig.3: Grafo triple RDF Poiché un grafo RDF non è comprensibile alle macchine, è necessario un processo di serializzazione che converta un oggetto in un form in grado di essere trasportato (es. HTTP). Le principali serializzazioni[2] per un grafo RDF sono le seguenti: XML: il grafo RDF è serializzato mediante sintassi XML; N-Triple: ogni espressione RDF viene serializzata in forma soggetto-predicatooggetto; N3: si serializza il grafo, descrivendo una per volta, le risorse e tutte le sue proprietà. 13

17 1.4.2 RDF Schema Affinché si possa provvedere allo scambio di metadati, RDF necessita di una sintassi. A tale scopo il W3C ha messo a disposizione XML come sintassi di scambio RDF e permettere attraverso XML Namespace l associazione delle proprietà con lo schema RDF che le definisce. A differenza di XML Schema, che vincola la struttura del documento stesso, RDF Schema fornisce informazioni utili alla sua interpretazione. In particolare permette di costruire vocabolari specifici per la descrizione di un insieme di proprietà, eventualmente vincoli sul dominio e sui singoli valori. In RDF Schema è definito il concetto di classe, ma a differenza dei linguaggi di programmazione orientati agli oggetti (come Java e C#), una classe viene descritta in termini delle risorse a cui si applicano. Una particolarità offerta da RDF Schema è la possibilità di estendere una versione precedente di un certo vocabolario senza ridefinire una gran mole di concetti. Per evitare problemi di ambiguità, ogni RDF Schema deve essere identificato attraverso un certo URI pur trattandosi dell'estensione di un altro Schema. 1.5 OWL Le specifiche fino ad ora trattate, XML ed RDF, hanno assicurato senz'altro un passo fondamentale nello sviluppo del Web Semantico. XML ha contribuito ad una maggiore interoperabilità sintattica, assicurando dunque una sintassi di superficie per la rappresentazione di dati anche molto diversi tra loro, mentre RDF una maggiore interoperabilità semantica che possa permettere alle macchine di interpretare al meglio il significato di un oggetto all'interno di una risorsa web. Inoltre abbiamo visto come con RDF Schema sia possibile costruire dei vocabolari, utili alla descrizione di un insieme di proprietà di una particolare risorsa. Poiché con RDF Schema non è possibile esprimere relazioni più complesse, quali unione, 14

18 cardinalità, uguaglianza, ecc., è necessario aggiungere più vocabolari per esprimere classi e proprietà. Per esprimere tutto ciò bisogna risalire al livello delle ontologie e servirsi del linguaggio OWL [7] Web Ontology Language diviso in tre sottolinguaggi differenti usabili a seconda delle esigenze: OWL Lite: supporta quegli utenti che necessitano in primo luogo di una gerarchia di classificazione e di vincoli semplici,ad esempio esso consente solo valori di cardinalità 0 o 1 e non permette di utilizzare contemporaneamente la sintassi OWL e la sintassi RDF. Una nuova classe può essere definita da zero oppure partendo da altre due classi, ma solamente con il costrutto IntersectionOf; OWL DL: supporta quegli utenti che vogliono la massima espressività, pur mantenendo la completezza e la decidibilità. OWL DL comprende tutti i costrutti del linguaggio OWL, ma può essere utilizzato solo in determinate restrizioni (per esempio, mentre una classe può essere una sottoclasse di molte classi, una classe non può essere un'istanza di un'altra classe). OWL DL permette di definire le classi in maniera più complessa utilizzando i costrutti quali UnionOf, ComplementOf, IntersectionOf e inoltre non esistono limiti sulla cardinalità delle proprietà. L aggettivo DL è dovuto alla corrispondenza del linguaggio con la Description Logic (logica descrittiva) che è un campo della ricerca che studia le logiche che formano la base formale dell OWL; OWL Full: è pensato per gli utenti che vogliono la massima espressività e la libertà sintattica di RDF senza le garanzie computazionali. Per esempio, in OWL Full una classe può essere trattata contemporaneamente come un insieme di individui e come un individuo a sé stante. OWL Full permette un'ontologia di aumentare il significato del vocabolario predefinito (RDF o OWL). E 'improbabile che qualsiasi software di ragionamento sarà in grado di sostenere un ragionamento completo per ogni caratteristica di OWL Full. 15

19 Capitolo 2: Panoramica sui database Triple Store 2.1 Introduzione Come da titolo ci dobbiamo occupare di Sesame, che anticipiamo subito, è un framework open-source per lo stoccaggio di dati RDF. Prima di parlare di tutto ciò è necessario un passaggio intermedio, cioè introdurre i concetti essenziali sui database Triple Store e SPARQL. 2.2 Database Triple Store Un Triplestore [8] è un framework usato per lo stoccaggio e l'interrogazione di dati RDF, e fornisce i meccanismi essenziali all'interrogazione e memorizzazione di grafi RDF. Ricordiamo ancora che un dato RDF è una tripla del tipo soggetto-predicato-oggetto. Lo sviluppo di framework per il trattamento di dati RDF ha avuto inizio nei primi anni 2000 con il rilascio di Jena e Sesame, fino ai nostri giorni di cui ne ricordiamo alcuni, quali: Garlik JXT (proprietario e non distribuito), AllegroGraph e BigOWLIM (distribuiti commercialmente), Mulgara, Sesame Native, Kowari, Jena SDB(gratuiti ed opensource),ecc. In base alla loro implementazione i database triplestore si classificano in: in-memory: poiché lo stoccaggio dei grafi RDF avviene in memoria centrale, tali triplestore sono dotati di un'elevata velocità di elaborazione. Di contro, come per un qualsiasi calcolatore, a causa delle ridotte capacità di tali memorie (visti gli elevati costi per una sua produzione) non è possibile immagazzinare una gran mole di dati, ma triplestore del genere possono risultare utili ad esempio per il caching dati da siti remoti, oppure ottimizzati ad eseguire inferenze su database RDF persistenti. A titolo esemplificativo di triple store in-memory, possiamo citare TripleRush[4] progettato in modo tale da avere grafi efficienti, e che estrapoli i dati il più velocemente possibile anche se essi risiedono su grafi molto estesi. 16

20 native: triplestore che offrono la memorizzazione di grafi RDF direttamente su una propria implementazione del database (le informazioni risiedono sul file system). Grazie ad un'ottima velocità di caricamento dei dati dalla memoria secondaria e alla capacità di trattare in maniera efficiente dati RDF, negli ultimi anni stanno riscuotendo un notevole successo; non-native, non-memory: triplestore che essendo eseguiti su database relazionali, usufruiscono dei loro meccanismi di archiviazione e recupero dati. Si ricordi ad esempio Jena SDB che può essere accoppiato a database relazionali come MySql, Oracle, PostgreSQL. Su quest'ultima categoria di triplestore bisogna chiarire un aspetto. Poiché la memorizzazione di dati RDF viene fatta in tabelle relazionali, è necessario l'utilizzo di uno dei seguenti schemi [2]: generic Schemas: il database è composto da un'unica tabella di campi soggetto, predicato e oggetto, che rispecchia in pieno la natura della tripla RDF. Inoltre vi è il vantaggio che l'aggiunta di nuove classi e proprietà all'ontologia, può essere effettuata semplicemente inserendo nuove righe nella tabella. Di contro vi è il fatto che inserire tutta l'ontologia in un'unica tabella, non dà la possibilità di avere una visione gerarchica delle varie classi. Inoltre eseguire query molto complesse richiede un elevato numero di self-join, specie se il database è estremamente popolato; ontology-specific Schemas: i dati non risiedono più in una sola tabella, come sopra, ma lo schema del database riflette le proprietà stesse dell'ontologia. In particolare si può far in modo che per ogni classe dell'ontologia esista una tabella(one-table-forclass schema), oppure una tabella per ogni proprietà dell'ontologia (one-table-forproperty schema). Nel primo caso ogni tabella sarà costituita dai seguenti campi: id dell'istanza, nome della classe ed una o più colonne per le varie proprietà. Lo svantaggio di tale approccio è che se cambiasse l'ontologia bisognerebbe rivedere tutte le tabelle. Nel secondo caso, invece, ogni tabella contiene i campi soggetto e 17

21 oggetto. Lo svantaggio di tale approccio è che per query molto complesse vengono effettuati un numero elevato di join tra le tabelle proprietà; hybrid Schemas: combina i vantaggi delle prime due soluzioni. 2.3 SPARQL Assodato che uno statement RDF è una tripla del tipo soggetto-predicato-oggetto, il classico linguaggio di interrogazione SQL Structured Query Language risulta poco adatto ad ispezionare intere collezioni di dati RDF (coinvolgerebbe un numero enorme di tabelle). A tale scopo è stato proposto SPARQL Simple Protocol And RDF Query Language dallo SPARQL Working Group del W3C. Il linguaggio di query SPARQL è strettamente legato alle seguenti specifiche: SPARQL Protocol for RDF che definisce le modalità di interrogazione e ricezione dati da remoto; SPARQL Query Result XML Format che definisce il formato di un documento XML contenente i risultati di query quali SELECT ed ASK. Di seguito daremo solo un breve assaggio di ciò che concerne SPARQL; se il lettore è interessato ad approfondimenti può consultare [18]. Pur essendo progettati per scopi diversi, SPARQL e SQL hanno una notevole somiglianza. Se pensassimo ad un'asserzione RDF del tipo Soggetto Predicato Oggetto id744 facoltà N46 è facilmente traducibile come segmento di riga della tabella relazionale di tipo chiave nome colonna valore colonna Codice Facoltà N

22 dunque è possibile tradurre espressioni SPARQL in espressioni SQL [11], permettendo così a chi ne fa uso di immagazzinare i propri dati RDF in database relazionali e di scrivere le query, a seconda dei casi, in SQL oppure in SPARQL. Vediamo ora alcune caratteristiche sintattiche tipiche del linguaggio in questione. SPARQL adotta la sintassi Turtle, un'estensione di N-Triples, alternativa estremamente sintetica e intuitiva al tradizionale RDF/XML. Si considerino le seguenti triple RDF, che saranno usate per mostrare degli esempi exp: < :A_Multimedia_Recommender_System exp:autore Vincenzo Moscato. :A_Multimedia_Recommender_System exp:anno :The_Semantic_Web exp:autore Tim Berners-Lee. :Elaborato_Sesame exp:autore "Ciro Guida". Le asserzioni rispecchiano in pieno la natura di una tripla RDF, in particolare SPARQL le organizza secondo il costrutto triple pattern nella forma:?subject?predicate?object dove le variabili contrassegnate da? denotano l'incognita dell'interrogazione (in particolare?predicate funge da costante nel nostro esempio). Prefissi e namespace denotati dalla Ecco un esempio di query SPARQL: PREFIX exp: < SELECT?titolo?autore?anno FROM < WHERE {?titolo exp:autore?autore.?titolo exp:anno?anno. } Possiamo notare molte affinità con una query SQL, in particolare la clausola FROM indica il dataset da cui prelevare le informazioni. Il risultato sarà il seguente: 19

23 Titolo Autore Anno A_Multimedia_Recommender_System Vincenzo Moscato 2013 Nell'esempio precedente sono state restituite tutte le triple dotate dei termini richiesti (titolo, autore, anno). È possibile riformulare la query in modo più elastico, prevedendo l'eventuale assenza di alcuni termini: PREFIX exp: < SELECT?titolo?autore?anno FROM < WHERE {?titolo exp:autore?autore. OPTIONAL{?titolo exp:anno?anno.} } Il secondo pattern è dichiarato opzionale: l'informazione è aggiunta al risultato solo se disponibile, altrimenti le variabili compariranno prive di valore (unbound). Risultato della query: Titolo Autore Anno A_Multimedia_Recommender_System Vincenzo Moscato 2013 The_Semantic_Web Tim Berners-Lee Elaborato_Sesame Ciro Guida 20

24 Capitolo 3: Sesame 3.1 Introduzione Dopo aver introdotto i principali concetti alla base del Web Semantico e dei database triplestore, possiamo passare all'argomento principale di questo elaborato: Sesame. Sesame[13] è un framework scritto in Java per l'elaborazione e la gestione dei dati RDF. Ciò include la creazione, l'analisi, la conservazione,l'inferenza e l'interrogazione su tali dati. Offre una API (Application Program Interface) facile da usare che può essere collegata a tutte le principali soluzioni di storage RDF. Il progetto e l'implementazione di Sesame sono indipendenti dal particolare dispositivo di archiviazione. In questo modo può essere installato al di sopra di molte periferiche di stoccaggio, quali database relazionali, triplestore e database object-oriented, senza modificare il query engine (motore di interrogazione) ed altri moduli funzionali. 3.2 Architettura Diamo uno sguardo ai principali componenti dell'architettura di Sesame [5]. Fig.4: Architettura Sesame 21

25 L'architettura su cui poggia Sesame è di tipo Web-based: per tale motivo lo stoccaggio permanente di dati e schemi RDF avviene nei cosiddetti repository (archivi web in cui sono raggruppati i dati). La gestione del repository potrebbe essere affidata ad un particolare DBMS, ma affinché sia mantenuta l'indipendenza dal dispositivo di memoria, il codice del gestore del database viene racchiuso all'interno del Repository Abstraction Layer (RAL). Il RAL offre metodi per il trattamento di dati RDF ai suoi client, e traduce tali metodi in chiamate specifiche al particolare DBMS su cui poggia Sesame (in questo modo si rende Sesame indipendente dal DBMS). I client di RAL sono dei moduli funzionali e di questi ne sono previsti 3: RDF Query Module, per la valutazione di query RQL poste dagli utenti. L'RDF Query Language è un linguaggio dichiarativo per dati e schemi RDF (querying a livello semantico); l'output di una query su un RDF Schema è ancora un RDF Schema, dove quest'ultimo è in grado di funzionare da input per le query successive; RDF Administration Module, che consente l'uploading incrementale di dati e schemi RDF, così come la cancellazione delle informazioni; RDF Export Module, che consente l'estrazione di schemi e/o dati in formato RDF. A seconda dell'ambiente in cui viene distribuito, Sesame prevede diversi modi di comunicare coi vari moduli, ad esempio in ambiente web è preferibile usare HTTP oppure via RMI (Remote Method Invocation) se la comunicazione avviene tra processi java distribuiti. Per consentire la massima flessibilità, la gestione di tali protocolli viene effettuata all'esterno dei moduli funzionali, mentre la comunicazione tra questi ultimi e i client avviene tramite degli handler (intermediari), con la possibilità di aggiungerne dei nuovi in base alle necessità. Nella figura 4, si suppone l'esistenza di tre client interessati ad accedere/modificare/interrogare il repository di cui: due client comunicano via HTTP, il terzo via SOAP (Simple Object Access Protocol) che permette lo scambio di messaggi tra componenti software secondo la sintassi XML. Nei prossimi paragrafi daremo una visione 22

26 più completa delle varie componenti architetturali di Sesame. 3.3 Il Repository Abstraction Layer Nel paragrafo precedente abbiamo visto come il RAL offre un'interfaccia ad alto livello (API) di gestione dei dati all'interno del repository. In particolare il RAL traduce le chiamate al API in metodi appositi al repository sottostante. Quando un client ad esempio richiede dei dati dal repository, l'api li organizza in vari flussi di dati e ne restituisce uno per volta; questo fa si che Sesame sia in grado di adattarsi a grandi volumi di dati senza richiedere un hardware estremamente costoso. Infatti Sesame richiede una piccolissima quantità di memoria dati ed un'altra, anch'essa minima, dove far girare il programma. Queste caratteristiche, unitamente alla possibilità di utilizzare un archivio dati remoto, rendono Sesame molto apprezzato in ambienti portatili. Di contro la possibilità di poter memorizzare solo piccole quantità di dati provenienti dal repository risulta essere degradante in termini di prestazioni: se ad esempio gli stessi dati vengono richiesti spesso, ci sarà un numero elevato di letture dal repository con conseguente aumento dei tempi di attesa. Questo problema può essere risolto ricorrendo ad un caching, totale se si tratta di flussi dati di dimensioni ridotte (in tal caso il repository funge da memoria permanente), altrimenti selettivo. Un ulteriore compito affidato al RAL è la gestione della concorrenza: poiché il query module divide le query in tante sottoquery è necessario mantenere la coerenza del repository durante l'esecuzione delle sottoquery Stacking RAL Un'importante caratteristica prevista a questo livello è la possibilità di impilare una serie di RAL uno sopra l'altro. Quando uno dei moduli funzionali di Sesame (query, export, administration) interagisce col RAL, vede solo quello più in alto allo stack e se questo non è grado di soddisfare la richiesta pervenuta, viene girata lungo la pila dall'alto verso il basso fino al RAL in grado di poterla processare. 23

27 Tutto ciò ha senso poiché il RAL deve essere in grado di poter ospitare nuove funzionalità che potranno essere sviluppate in futuro. Fig.5: Organizzazione a stack del RAL Un altro vantaggio dato dallo stratificare il RAL è quello di poter essere collegati a più di un repository. A titolo di esempio si osservi la seguente figura: Fig.6: Collegamenti a più repository Si hanno a disposizione due repository, uno locale e l'altro in remoto. Un modulo funzionale chiede di poter accedere al repository sottostante: se la richiesta non può essere 24

28 soddisfatta dal RAL locale, questa viene girata al RAL in remoto. Il tutto avviene in maniera trasparente rispetto al richiedente che non avrà bisogno di adattarsi alla situazione sopra rappresentata. Inoltre un ulteriore vantaggio di tale approccio, è che i risultati trovati localmente possono essere presentati subito all'utente, mentre la query è ancora in esecuzione sul RAL in remoto. 3.4 Il Repository Poiché il RAL offre una API generica, Sesame può essere installato sopra ad un qualsiasi repository in grado di memorizzare RDF. I possibili repository potrebbero essere i seguenti: DBMS: qualsiasi Database Managment System, da quelli relazionali (RDBMS) a quelli orientati agli oggetti (O-RDBMS); RDF-store nativi: Sesame può essere installato sopra di essi, a patto che il RAL sia implementato in modo tale da potersi interfacciare con lo specifico RDF store; RDF file: è possibile memorizzare RDF anche all'interno di file. Sebbene l'utilizzo di flat file, dove tutte le informazioni sono contenute all'interno di una singola tabella, sia deprecabile, è possibile utilizzarli se Sesame dovrà interagire con repository di piccole dimensioni e in tal caso il RAL dovrà provvedere alle operazioni di caching dati; RDF-network service: Sesame può usufruire di un servizio di rete per memorizzare RDF. In questo modo Sesame può essere utilizzato come sistema distribuito che non necessita, per forza, di un repository locale. Un esempio di tale servizio è stato mostrato nel paragrafo precedente. Un repository su cui Sesame può essere installato è PostgreSQL, un DBMS orientato agli oggetti, gratuito ed open-source, che supporta molte caratteristiche in dotazione ad implementazioni commerciali (es. Oracle). In tal caso il RAL dovrà supportare un database schema dinamico: nuove tabelle sono aggiunte al database ogni volta che una classe o proprietà è aggiunta al repository. Se la classe che si vuole inserire è una 25

29 sottoclasse di altre classi, la tabella che si andrà a creare sarà una sottotabella delle tabelle per la superclasse. Similmente accade per le proprietà. 3.5 RQL Query Module Come già accennato in precedenza, in Sesame è previsto un RDF Query Module che permette di interrogare dati e schemi RDF e di ottenere ancora una volta dati in forma RDF. A differenza del linguaggio di interrogazione RQL proposto dallo European IST(Information Sociey Technologies) nell'ambito del progetto C-Web, la versione utilizzata da Sesame, OTK-RQL (On To Knwoledge-RQL), presenta delle differenze rispetto al linguaggio originario. Poiché non è nostro interesse approfondire questi aspetti, per maggiori informazioni si invita a consultare [6]. Il Query Module, una volta interpellato, esegue una serie di operazioni come mostrato nella seguente figura: Fig.7: Componenti con relativo output del layer RQL La query viene analizzata e rappresentata secondo un grafo ad albero. L'output del parser sarà inviato ad un query optimizer che costruirà un nuovo grafo ad albero più efficiente del primo. Successivamente il modello ottimizzato viene valutato a flussi seguendo la struttura ad albero in cui la query è rappresentata. In particolare ogni elemento del grafo rappresenta un'unità base della query originaria e la valutazione di ogni elemento serve ad interpellare, eventualmente, il RAL affinché recuperi il necessario dal repository. In questo modo i dati possono essere restituiti direttamente a flussi, invece di costruire prima l'intero set di informazioni in memoria centrale. In Sesame, una query RQL viene tradotta in una serie di chiamate al RAL, attraverso il 26

30 modello ad oggetti. Questo significa che la maggior parte della valutazione della query viene fatta stesso nel query engine. In questo modo, ad esempio, quando una query contiene un'operazione di join su due sottotabelle, il RAL preleva separatamente i risultati delle due sottoquery e il join dei risultati viene effettuato dal query engine. Anche se molti DBMS offrono buone performance di ottimizzazione di query, questo compito è stato delegato al RDF Query Module in modo tale che Sesame non dipenda da un particolare DBMS. Il prezzo da pagare è una maggiore complessità del query module. Un approccio alternativo potrebbe essere quello di tradurre direttamente query RQL in query per il repository sottostante. Il vantaggio di tale approccio è la possibilità di poter utilizzare senza troppi sforzi, i complessi meccanismi di valutazione ed ottimizzazione offerti dal DBMS. Lo svantaggio sarebbe che l'architettura di Sesame non possa passare facilmente da un repository all'altro. 3.6 RDF Administration Module Questo modulo provvede alla gestione dei metadati RDF, in particolare ai metodi di inserimento e cancellazione dal repository. I metadati da inserire nel repository vengono recuperati da un'altra fonte RDF, inseriti in un documento XML serializzato RDF ed analizzato da una componente del modulo amministrazione. Le informazioni fornite al modulo sono nella forma di statement RDF i quali, sono controllati per verificare la coerenza con gli statement già presenti nel repository: se il controllo va a buon fine i metadati sono aggiunti, altrimenti segnalati ed ignorati. Anche gli statement duplicati vengono ignorati. Infine per la cancellazione, Sesame in origine prevedeva solo una pulizia dell'intero repository, ma con le ultime versioni è possibile anche cancellare statement singoli. 3.7 RDF Export Module Il modulo di esportazione è un componente molto semplice dell'architettura di Sesame: provvede all'esportazione del contenuto del repository in modo tale da poter utilizzare gli 27

31 stessi dati con un altro tool capace di trattare RDF. In particolare con l'export Module è possibile esportare i dati, lo schema o entrambi a seconda del tool che si vorrebbe utilizzare. Ad esempio un editor di ontologie ha bisogno solo dello schema RDF, altri, che non supportano la semantica di uno schema RDF, dei dati. 3.8 On-To-Knowledge Un esempio, famoso, di applicazione basata su Sesame è On-To-Knowledge, uno strumento per la gestione delle ontologie sviluppato allo European IST. La seguente figura ci mostra come Sesame faccia da centro-stella per un insieme di tool: Fig.8: OTK OntoExtract, sviluppata dal CognIT, provvede ad estrarre le strutture ontologiche da documenti scritti in linguaggio naturale. Tali ontologie vengono caricate in un repository tramite Sesame. Le ontologie presenti possono essere scaricate ed editate mediante OntoEdit, editor sviluppato dall' AIFB Institute della University of Karlsruhe, e successivamente ricaricate in Sesame. Infine con RDF Ferret, un'applicazione utente sviluppata dal BT Adastral Park Research Labs, è possibile scaricare le ontologie per poter effettuare ricerche ed interrogazioni su di esse. Poichè Sesame è un server web-based è possibile effettuare collegamenti coi vari tool (oltre a quelli citati nell'esempio precedente), semplicemente usando il protocollo HTTP. 28

32 Conclusioni Lo scopo di questa trattazione è stato quello di analizzare i principali concetti che stanno alla base del Web Semantico e le principali tecnologie messe a disposizione. Siamo partiti dal concetto di Web come enorme libreria, espressione degli utenti che costantemente condividono informazioni (non intesi solo come documenti testuali, ma basti pensare al mondo dei Social Network dove si condividono spesso pensieri personali, foto che ritraggono attimi di vita quotidiana,... ). La difficoltà incontrata da tutti noi, durante una ricerca sul Web, è quella di trovare ciò che si vuole : qui entrano in gioco i motori di ricerca. Poiché la Rete è in continua crescita, usufruire di semplici strumenti in grado di ricercare una o più parole chiavi non basta, ed è per questo motivo che si è avvertita la necessità di riorganizzare l'intero sistema in maniera semantica, cioè assegnare un significato alle informazioni a nostra disposizione. Questo è l'obiettivo principale del W3C. L'idea alla base del Web Semantico è quello di fornire agenti intelligenti in grado di svolgere compiti molto gravosi, lasciando all'utente l'onere di istruire tali entità. E' stato ritenuto opportuno trattare i principali strumenti messi a disposizione dal W3C (XML,RDF,OWL,...), oltre al come il Web Semantico possa rispettare e rappresentare gli infiniti domini della conoscenza. In definitiva, possiamo affermare con certezza che si è riusciti a rappresentare solo degli ambiti molto precisi della conoscenza, ma non ad automatizzarli del tutto. Nei prossimi anni, ed è inevitabile, ci si aspetta un incremento vertiginoso di metadati che possano specificare quantità di dati sempre più vaste e dell'utilizzo di ontologie in grado di poter illustrare i legami tra i vari dati. Successivamente abbiamo affrontato brevemente il concetto di database triplestore, in grado di memorizzare statement RDF, e di SPARQL, linguaggio per l'interrogazione di intere collezioni di dati RDF. Abbiamo notato come un triplestore è più un middleware che un database in grado di poter immagazzinare RDF, e di fornire un supporto al 29

33 ragionamento ontologico. Non a caso, spesso un triplestore è una tecnologia (che abbiamo definito come framework) in grado di poter girare su database ad esempio relazionali o object-oriented. Abbiamo illustrato nel dettaglio Sesame, un framework per la trattazione e l'interrogazione di dati e schemi RDF. La sua caratteristica fondamentale è l'astrazione dai particolari di un qualsiasi repository utilizzato per l'immagazzinamento. Ciò consente a Sesame di adattarsi ad una gran varietà di repository come database relazionali, triplestore nativi e perfino a servizi di immagazzinamento remoti. Inoltre abbiamo visto come Sesame sia indipendente dal particolare protocollo di comunicazione (HTTP, SOAP, WML,...), il che rende molto semplice collegarsi a differenti client che usufruiscono di diversi protocolli di comunicazione. 30

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI Documenti su Internet LINGUAGGI DI MARKUP Internet permette (tra l altro) di accedere a documenti remoti In generale, i documenti acceduti via Internet sono multimediali, cioè che possono essere riprodotti

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

SDD System design document

SDD System design document UNIVERSITA DEGLI STUDI DI PALERMO FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESINA DI INGEGNERIA DEL SOFTWARE Progetto DocS (Documents Sharing) http://www.magsoft.it/progettodocs

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

Esercitazione di Basi di Dati

Esercitazione di Basi di Dati Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 6 Maggio 2004 Come costruire una ontologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

Introduzione al Semantic Web

Introduzione al Semantic Web Corso di Laurea Specialistica in Ingegneria Gestionale Corso di Sistemi Informativi Modulo II A. A. 2013-2014 Giuseppe Loseto Dal Web al Semantic Web 2 Dal Web al Semantic Web: Motivazioni Il Web dovrebbe

Dettagli

Reti di Calcolatori. Il Livello delle Applicazioni

Reti di Calcolatori. Il Livello delle Applicazioni Reti di Calcolatori Il Livello delle Applicazioni Il DNS Gli indirizzi IP sono in formato numerico: sono difficili da ricordare; Ricordare delle stringhe di testo è sicuramente molto più semplice; Il Domain

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015 BASE DI DATI: introduzione Informatica 5BSA Febbraio 2015 Di cosa parleremo? Base di dati relazionali, modelli e linguaggi: verranno presentate le caratteristiche fondamentali della basi di dati. In particolare

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

ESERCITAZIONE Semplice creazione di un sito Internet

ESERCITAZIONE Semplice creazione di un sito Internet ESERCITAZIONE Semplice creazione di un sito Internet Sistemi e Tecnologie Informatiche - Prof. Gregorio Cosentino 1 Internet Una rete globale che connette milioni di computer in tutto il mondo, anarchica

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Università Politecnica delle Marche. Progetto Didattico

Università Politecnica delle Marche. Progetto Didattico Università Politecnica delle Marche Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e dell Automazione Sede di Ancona Anno Accademico 2011-2012 Corso di Tecnologie WEB Docente prof. Alessandro

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere

Dettagli

I cookie sono classificati in base alla durata e al sito che li ha impostati.

I cookie sono classificati in base alla durata e al sito che li ha impostati. 1. Informativa sui cookie 1.1. Informazioni sui cookie I siti Web si avvalgono di tecniche utili e intelligenti per aumentare la semplicità di utilizzo e rendere i siti più interessanti per ogni visitatore.

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it Decreto Legislativo 196/2003 Codice in materia di protezione dei dati personali COOKIE POLICY La presente informativa è resa anche ai sensi dell art. 13 del D.Lgs 196/03 Codice in materia di protezione

Dettagli

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I La VPN con il FRITZ!Box Parte I 1 Introduzione In questa mini-guida illustreremo come realizzare un collegamento tramite VPN(Virtual Private Network) tra due FRITZ!Box, in modo da mettere in comunicazioni

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico

Dettagli

Facoltà di Farmacia - Corso di Informatica

Facoltà di Farmacia - Corso di Informatica Basi di dati Riferimenti: Curtin cap. 8 Versione: 13/03/2007 1 Basi di dati (Database, DB) Una delle applicazioni informatiche più utilizzate, ma meno conosciute dai non informatici Avete già interagito

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

Nuova funzione di ricerca del sito WIKA.

Nuova funzione di ricerca del sito WIKA. Nuova funzione di ricerca del sito WIKA. Il sito WIKA dispone ora di una funzione di ricerca completamente riprogettata. Essa è uno strumento particolarmente importante in quanto deve fornire al navigatore

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

InterNet: rete di reti

InterNet: rete di reti Internet e il web: introduzione rapida 1 InterNet: rete di reti Una rete è costituita da diversi computer collegati fra di loro allo scopo di: Comunicare Condividere risorse Ogni computer della rete può,

Dettagli

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

ARCHIVI E DATABASE (prof. Ivaldi Giuliano) ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).

Dettagli

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA Fornitore: Publisys Prodotto: Intranet Provincia di Potenza http://www.provincia.potenza.it/intranet Indice 1. Introduzione... 3 2. I servizi dell Intranet...

Dettagli

COOKIE POLICY DEL SITO

COOKIE POLICY DEL SITO COOKIE POLICY DEL SITO PREMESSA Questa pagina costituisce una sezione dell'informativa privacy estesa consultabile sul sito e descrive nello specifico l'utilizzo dei cookie effettuato dal titolare. INFORMAZIONI

Dettagli

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione Programma del Corso Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione (I prova scritta) (II prova scritta) Interazione fra linguaggi di programmazione e basi di dati Cenni

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

3. Introduzione all'internetworking

3. Introduzione all'internetworking 3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia

Dettagli

DBMS e Linguaggi di programmazione nell'era di Internet

DBMS e Linguaggi di programmazione nell'era di Internet DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS Basi di Basi di (Sistemi Informativi) Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web) Avete già interagito (magari inconsapevolmente)

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

Sistemi Informativi e Basi di Dati

Sistemi Informativi e Basi di Dati Sistemi Informativi e Basi di Dati Laurea Specialistica in Tecnologie di Analisi degli Impatti Ecotossicologici Docente: Francesco Geri Dipartimento di Scienze Ambientali G. Sarfatti Via P.A. Mattioli

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database Per comprendere al meglio cosa sia un database, dobbiamo prima introdurre il concetto di

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

HTML il linguaggio per creare le pagine per il web

HTML il linguaggio per creare le pagine per il web HTML il linguaggio per creare le pagine per il web Parte I: elementi di base World Wide Web Si basa sul protocollo HTTP ed è la vera novità degli anni 90 Sviluppato presso il CERN di Ginevra è il più potente

Dettagli

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

Dettagli

WorkFLow (Gestione del flusso pratiche)

WorkFLow (Gestione del flusso pratiche) WorkFLow (Gestione del flusso pratiche) Il workflow è l'automazione di una parte o dell'intero processo aziendale dove documenti, informazioni e compiti vengono passati da un partecipante ad un altro al

Dettagli

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,

Dettagli

Gruppo di lavoro per la tutela delle persone con riguardo al trattamento dei dati personali. Raccomandazione 1/99

Gruppo di lavoro per la tutela delle persone con riguardo al trattamento dei dati personali. Raccomandazione 1/99 5093/98/IT/def. WP 17 Gruppo di lavoro per la tutela delle persone con riguardo al trattamento dei dati personali Raccomandazione 1/99 sul trattamento invisibile ed automatico dei dati personali su Internet

Dettagli

LE RETI: STRUMENTO AZIENDALE

LE RETI: STRUMENTO AZIENDALE LE RETI: STRUMENTO AZIENDALE INDICE -Introduzione -La rete e i principali tipi di rete -La rete delle reti: Internet -Evoluzione tecnologica di internet: cloud computing -Vantaggi della cloud all interno

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria ESAME DI STATO DI ABILITAZIONE ALL'ESERCIZIO DELLA PROFESSIONE DI INGEGNERE PRIMA PROVA SCRITTA DEL 22 giugno 2011 SETTORE DELL INFORMAZIONE Tema n. 1 Il candidato sviluppi un analisi critica e discuta

Dettagli

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque? NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui

Dettagli

PROCESSO DI INDICIZZAZIONE SEMANTICA

PROCESSO DI INDICIZZAZIONE SEMANTICA PROCESSO DI INDICIZZAZIONE SEMANTICA INDIVIDUAZIONE DEI TEMI/CONCETTI SELEZIONE DEI TEMI/CONCETTI ESPRESSIONE DEI CONCETTI NEL LINGUAGGIO DI INDICIZZAZIONE TIPI DI INDICIZZAZIONE SOMMARIZZAZIONE INDICIZZAZIONE

Dettagli

2003.06.16 Il sistema C.R.M. / E.R.M.

2003.06.16 Il sistema C.R.M. / E.R.M. 2003.06.16 Il sistema C.R.M. / E.R.M. Customer / Enterprise : Resource Management of Informations I-SKIPPER è un sistema di CONOSCENZE che raccoglie ed integra INFORMAZIONI COMMERCIALI, dati su Clienti,

Dettagli

Organizzazione delle informazioni: Database

Organizzazione delle informazioni: Database Organizzazione delle informazioni: Database Laboratorio Informatico di base A.A. 2013/2014 Dipartimento di Scienze Aziendali e Giuridiche Università della Calabria Dott. Pierluigi Muoio (pierluigi.muoio@unical.it)

Dettagli

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia Informatica Prof. M. Colajanni Università di Modena Reggio Emilia PARTE 4 - World Wide Web WORLD WIDE WEB La killer application di Internet I motivi alla base del successo del Web ( perché è risultata

Dettagli

Creare un Ipertesto. www.vincenzocalabro.it 1

Creare un Ipertesto. www.vincenzocalabro.it 1 Creare un Ipertesto www.vincenzocalabro.it 1 Obiettivi Il corso si prefigge di fornire: Le nozioni tecniche di base per creare un Ipertesto I consigli utili per predisporre il layout dei documenti L illustrazione

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici tesi di laurea Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici Anno Accademico 2008/2009 relatore Ch.mo prof. Porfirio Tramontana Ch.mo prof. Annarita Fasolino candidato

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

La Videosorveglianza Criteri per il dimensionamento dello storage

La Videosorveglianza Criteri per il dimensionamento dello storage La Videosorveglianza Criteri per il dimensionamento dello storage Serie vol 1005/2010 L importanza di registrare le immagini video Il valore di un sistema di videosorveglianza non dipende solo dall abilità

Dettagli

DATABASE. nozioni di base

DATABASE. nozioni di base DATABASE nozioni di base Un database è una raccolta di informazioni organizzata in modo da poter essere facilmente accessibile per consultazione, modifiche e aggiornamenti. All'inizio della storia dei

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

EVOLUZIONE DI UN SISTEMA DI TELECONTROLLO A SERVIZIO DELLA SOSTENIBILITÀ AMBIENTALE: L ACQUEDOTTO CAMPANO. Giuseppe Mario Patti Proxima S.r.l.

EVOLUZIONE DI UN SISTEMA DI TELECONTROLLO A SERVIZIO DELLA SOSTENIBILITÀ AMBIENTALE: L ACQUEDOTTO CAMPANO. Giuseppe Mario Patti Proxima S.r.l. EVOLUZIONE DI UN SISTEMA DI TELECONTROLLO A SERVIZIO DELLA SOSTENIBILITÀ AMBIENTALE: L ACQUEDOTTO CAMPANO Giuseppe Mario Patti Proxima S.r.l. «Competitività e Sostenibilità. Progetti e tecnologie al servizio

Dettagli

Base di dati e sistemi informativi

Base di dati e sistemi informativi Base di dati e sistemi informativi Una base di dati è un insieme organizzato di dati opportunamente strutturato per lo svolgimento di determinate attività La base di dati è un elemento fondamentale per

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli