UN TOOL PER LA VISUALIZZAZIONE E L ANALISI DI RETI BIOLOGICHE E SOCIALI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UN TOOL PER LA VISUALIZZAZIONE E L ANALISI DI RETI BIOLOGICHE E SOCIALI"

Transcript

1 Università di Catania Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea di Primo Livello in Informatica UN TOOL PER LA VISUALIZZAZIONE E L ANALISI DI RETI BIOLOGICHE E SOCIALI Progetto Finale Relatore: Prof.ssa Rosalba Giugno Correlatore: Dott. Giuseppe Pigola Candidato: Fabio Rinnone Anno Accademico

2 A Mariolina

3 Indice Introduzione vii 1 Panoramica di Graphtool Definizioni preliminari Interfaccia utente Creazione e caricamento di grafi Opzioni di visualizzazione Formati per la rappresentazione dei grafi Simple Interaction Format Graph Modelling Language extensible Graph Markup and Modeling Language Resource Description Framework Statements URIs Literals Blank nodes Sintassi per il formato RDF RDF/XML N-Triples

4 Indice i Notation TriX TriG Algoritmi su grafi con applicazioni su reti biologiche e sociali Dijkstra Shortest Path Misure di Centralità Degree Centrality Node/Edge Betweenness Closeness Barycenter Page Rank Authority & Hub Subgraph matching Algoritmo di ricerca Opzioni di ricerca Network Motifs Motif Verification Un esempio completo Conclusioni 41 Appendice 42 Bibliografia 47 Indice analitico 48

5 Elenco delle figure 1.1 Grafo e matrice d adiacenza Schermata principale di Graphtool Pannello laterale di Graphtool Grafo con layout circolare Hyperbolic View Grafo in formato SIF File NA con attributi dei nodi di un file SIF File EA con attributi degli archi di un file SIF Grafo in formato GML Parametri grafici di un file GML Grafo in formato XGMML Parametri grafici di un grafo XGMML Modello dati RDF Grafo RDF Grafo RDF e sua serializzazione in RDF/XML Grafo RDF con language tags Grafo in formato N-Triples Semplice grafo in formato Notation Grafo in formato Notation ii

6 Indice iii 2.15 Grafo in formato TriX Grafo in formato TriG Esempio di Indegree Centrality Esempio di Closeness Centrality Subgraph Matching Passi dell algoritmo VF Tipi di Query Caratteristiche delle query Esecuzione di una ricerca Feed-forward loop Motifs Query d esempio Target d esempio Selezione di un match Motif Verification

7 Elenco degli algoritmi 1 Rilassamento di un arco Algoritmo di Dijkstra Calcolo dell Hub e dell Authority Algoritmo di matching VF iv

8 Introduzione Una delle strutture dati più potenti e largamente utilizzate in informatica è sicuramente il grafo (di seguito indicato anche come network o rete). Esso permette di modellare diversi problemi che spaziano, ad esempio, dall analisi di network biologiche allo studio di interazioni sociali. Numerose sono le problematiche che possono essere affrontate mediante tale struttura dati: tra queste troviamo la ricerca di un cammino minimo, il calcolo delle misure di centralità e la ricerca di occorrenze di sottostrutture all interno di un grande grafo. Esse sono tutte operazioni comuni su grafi che richiedono algoritmi raffinati ed efficienti. Non di minore importanza è la possibilita di visualizzare in modo efficiente un grafo ed eventualmente avere la possibilità di rappresentare graficamente il risultato di un algoritmo applicato ad esso. Lo scopo di questo progetto è stato la realizzazione di un tool, chiamato Graphtool, per la visualizzazione e l analisi di reti biologiche e sociali. Esso è portabile e, di conseguenza, eseguibile su tutte le principali piattaforme hardware e sistemi operativi (Microsoft Windows, GNU/Linux, Solaris, etc.). Fornisce, inoltre, un intuitiva interfaccia grafica che guida agevolemente l utente nel caricamento, creazione e visualizzazione di grafi. Dà altresi la possibilità di creare ed eventualmente salvare il proprio grafo in una serie di diversi formati standard. Infine, Graphtool mette a disposizione dell utente una serie di algoritmi per li calcolo di misure di centralità e per la ricerca di v

9 Introduzione vi sottostrutture all interno di un grafo (subgraph matching). Dal momento in cui lo scopo principale di Graphtool è stato quello di sviluppare algoritmi per l analisi di grafi di interazioni sociali, esso si pone nel contesto dell Analisi dei Social Network. Ciò non preclude la possibilità di poter permettere all utente di lavorare su network biologiche e d interazione molecolare e di porre anche l attenzione al concetto di Web semantico, attualmente in fase di continua evoluzione grazie al progressivo diffondersi del formato RDF (Resource Description Framework), quest ultimo particolarmente adatto per la rappresentazione di risorse correlate fra loro e reperibili nel World Wide Web e non solo. Intuitivamente una rete sociale è una struttura sociale caratterizzata dalla presenza di individui (o organizzazioni) rappresentabili mediante nodi ed una serie di relazioni che intercorrono tra di essi, quest ultimi rappresentabili sotto forma di archi. I tipi di relazione possono essere i piu svariati: da relazioni di amicizia, di parentela, interessi comuni o altro ancora. L Analisi dei Social Network deriva della Teoria dei Grafi e si occupa di analizzare le reti sociali individuando ed analizzando i legami che intercorrono tra i vari individui o nodi e permettendo di fornire delle specifiche misure (dette di centralità) che danno una misura dell importanza di ciascun nodo in base al posto che esso occupa all interno della rete. Graphtool fornisce una serie di algoritmi per il calcolo di molte tra le più importanti misure di centralità. Ovviamente il calcolo delle misure di centralità non è una prerogativa esclusiva delle network sociali. Le misure di centralità possono anche essere calcolate su reti biologiche: in tali reti un nodo rappresenta una componente biologica (ad es. un gene, una proteina, etc.) ed un arco tra due nodi rappresenta una interazione (conosciuta o prevista) tra due componenti. Sia nelle reti biologiche che nelle reti sociali, Graphtool permette infi-

10 Introduzione vii ne di ricercare occorrenze di sottostrutture, anche approssimate, mediante l applicazione di un efficiente algoritmo di matching [1] opportunamente modificato. Di seguito presenteremo, nel capitolo 1, una panoramica generale del funzionamento e delle opzioni di Graphtool, nel capitolo 2 una descrizione completa dei formati di rappresentazione dei grafi supportati da Graphtool, nel capitolo 3 mostreremo gli algoritmi per il calcolo della centralità supportati ed infine, nell ultimo capitolo, descriveremo la ricerca di sottostrutture nei grafi.

11 Capitolo 1 Panoramica di Graphtool In questo capitolo presenteremo una panoramica generale di Graphtool, mostrandone dettagli relativi all interfaccia utente. La parte di codice relativa ad analisi e visualizzazione di Graphtool si basa sulla libreria Java Universal Network/Graph Framework (JUNG2.0) [2]. Essa permette di modellare, analizzare e visualizzare grafi. Scritta in Java, JUNG2.0 si presta perfettamente per la realizzazione di Graphtool. Per maggiori dettagli implementativi si rimanda il lettore all appendice. 1.1 Definizioni preliminari Graphtool è stato sviluppato per la visualizzazione ed analisi di grafi con particolare riferimento a reti biologiche e sociali. Presenteremo, quindi, alcune definizioni preliminari riguardanti i grafi. Definizione 1.1. Un grafo è una coppia G = (V, E) dove V è l insieme dei vertici (o nodi) ed E è l insieme degli archi (v, w) tali che v V e w V. Il numero di vertici e di archi è dato rispettivamente da V e E. 1

12 1.1 Definizioni preliminari 2 Definizione 1.2. Un grafo si dice orientato quando E è un insieme di coppie ordinate. Un arco (w, u) si dice incidente da w in u. Definizione 1.3. Un grafo si dice non orientato quando E è un insieme di coppie non ordinate. Definizione 1.4. Una matrice d adiacenza A(a ij ) di un grafo è una matrice V V tale che 1 se (i, j) E, a ij = 0 altrimenti. (1.1) In Figura 1.1 è mostrato un semplice grafo e la sua matrice d adiacenza. Definizione 1.5. Il grado (degree) di un vertice u V di un grafo non orientato è il numero di archi (u, w) E. Definizione 1.6. Il grado entrante (indegree) di un vertice w V di un grafo orientato è il numero di archi (u, w) E incidenti in esso. Definizione 1.7. Il grado uscente (outdegree) di un vertice u V di un grafo orientato è il numero di archi (u, w) E che da esso si dipartono. Definizione 1.8. Dato un grafo è possibile definire una funzione peso (weight) w : E R tale che associ ad ogni arco un valore nell insieme dei numeri reali. Definizione 1.9. Dato un grafo pesato, il peso di un cammino p da un vertice v 0 ad un vertice v k (tali che v i V con i = 0, 1,..., k) è definito da w(p) = k w(v i 1, v i ) (1.2) i=1

13 1.2 Interfaccia utente (a) (b) Figura 1.1: Grafo e matrice d adiacenza. (a) Grafo orientato G. (b) Matrice d adiacenza di G. Graphtool fornisce un intuitiva interfaccia utente utile per la rappresentazione dei grafi e l applicazione di diversi algoritmi. Segue adesso una rapida panoramica dell interfaccia utente. 1.2 Interfaccia utente All avvio dell applicazione viene mostrato un framework con un pannello laterale ed un pannello centrale principale. In Figura 1.4 è mostrata la schermata principale di Graphtool con all interno la rappresentazione di un grafo. Il pannello laterale mostra le opzioni principali mentre il pannello centrale permette di visualizzare contemporaneamente diversi grafi (gestiti tutti in memoria principale). L utente puo decidere se creare un nuovo grafo, aprirne uno esistente, salvare, chiudere i grafi correntemente aperti o uscire dall applicazione. L utente puo anche scegliere se visualizzare o nascondere il pannello laterale delle opzioni in modo da ottenere piu spazio per l editing o la visualizzazione dei grafi aperti. Dal pannello laterale è possibile visualizzare la lista dei grafi correntemente caricati, le opzioni di visualizzazione ed impostare le opzioni per l esecuzione di vari algoritmi.

14 1.3 Creazione e caricamento di grafi 4 Figura 1.2: Schermata principale di Graphtool. 1.3 Creazione e caricamento di grafi Alla creazione di un nuovo grafo viene aperta una nuova scheda in corrispondenza del pannello principale che permette di disegnare un nuovo grafo. Utilizzando il mouse l utente puo creare vertici ed archi e visualizzare proprietà del grafo corrente, editare etichette e attributi dei vertici e degli archi o modificarne proprietà grafiche (quali spessore della linea di contorno o colore). È data anche la possibilita di decidere se visualizzare o meno i grafi caricati. Quest ultima opzione risulta particolarmente utile quando si ha a che fare con grafi di grandi dimensioni per i quali la visualizzazione potrebbe non essere possibile a causa delle enormi richieste in termini di spazio di memoria. Con tale opzione è possibile caricare comunque un grafo, anche se non visualizzato, al fine di poter applicare comunque un algoritmo su di esso. Per evitare un sovraccarico della memoria i grafi caricati da file con un numero di vertici superiore a 1000 non sono visualizzati come impostazione

15 1.3 Creazione e caricamento di grafi 5 (a) (b) (c) (d) Figura 1.3: Pannello laterale di Graphtool. (a) Visualizzazione dei grafi correntemente caricati con rispettivi numero di vertici e di archi. (b) Opzioni di visualizzazione. (c) Scelta e calcolo delle misure di centralità su grafi. (d) Ricerca di sottostrutture in un grafo.

16 1.4 Opzioni di visualizzazione 6 Figura 1.4: Grafo con layout circolare: layout predefinito di visualizzazione dei grafi. di default. 1.4 Opzioni di visualizzazione Dal pannello delle opzioni è possibile settare alcune impostazioni di visualizzazione dei grafi. In particolare l utente puo scegliere la modalità di interazione con i grafi correntemente aperti: Editing permette di aggiungere o rimuovere vertici ed archi, Transforming permette di ruotare o ridimensionare il grafo, Piking permette di spostare vertici ed archi. Possono inoltre essere impostate le viste iperboliche ossia particolari metodi di visualizzazione pseudo tridimensionale (Figura 1.5) e selezionati diversi layout di disposizione dei grafi sul piano. Il layout predefinito è quello circolare: in

17 1.4 Opzioni di visualizzazione 7 tal caso i vertici vengono disposti in eguale distanza dal centro del pannello di visualizzazione e in eguale distanza gli uni dagli altri. Altre opzioni di visualizzazione riguardano la tipologia di archi (ad esempio curvilinei od ortogonali), il tipo di colorazione degli archi, la posizione e la visualizzazione delle etichette sia dei vertici che degli archi. Figura 1.5: Hyperbolic View.

18 Capitolo 2 Formati per la rappresentazione dei grafi Graphtool supporta svariati formati di file per la rappresentazione di grafi ed in particolare di reti biologiche e sociali. Tali formati sono compatibili con standard riconosciuti a livello internazionale. In questo capitolo verranno descritti in dettaglio i formati supportati con particolare attenzione allo standard Resource Description Framework (RDF) e delle notazioni usate per la rappresentazione dei dati. 2.1 Simple Interaction Format Il formato Simple Interaction Format (SIF) è un formato di rappresentazione di reti biologiche correntemente adottato da diversi tool tra cui Cytoscape, quest ultima un applicazione ampiamente usata nell ambito della bioinformatica per la visualizzazione e l analisi di reti biologiche [3]. Tale formato permette di rappresentare testualmente le interazione tra i vari nodi. Ogni riga assume il formato source edge target1... targetn. 8

19 2.1 Simple Interaction Format 9 node1 edge1 node2 node3 node2 edge2 node3 node3 node4 edge3 node4 node5 Figura 2.1: Grafo in formato SIF: il grafo rappresentato è costituito da 5 nodi e 3 vertici. Il nodo node1 è connesso tramite l arco edge1 ai nodi node2 e node3. Il nodo node3 non ha archi in uscita, ma ha due archi in ingresso provenienti rispettivamente da node1 e node2. Il nodo node4, inoltre, ha un arco avente se stesso come destinazione. Archi con indentica etichetta sono consentiti: saranno, tuttavia, caricati in memoria con id numerici differenti. In Figura 2.1 è mostrato un esempio di grafo in formato SIF. In Cytoscape i tag per i nodi specificano l id dell arco (tipicamente una stringa di testo), mentre i tag degli archi specificano il tipo di relazione tra due o più nodi. In Graphtool i suddetti tag vengono interpreati come etichette (labels) dei nodi e degli archi essendo essi identificati mediante id numerici univoci. Il formato SIF consente, oltre che a definire le etichette dei nodi e degli archi, di associare ad essi anche attributi. Gli attributi sono definiti in due file separati aventi lo stesso nome del file SIF ma estensioni differenti: NA per il file degli attributi dei nodi e EA per il file degli attributi degli archi. Nelle figure Figura 2.2 e Figura 2.3 sono mostrati due esempi di file degli attributi associabili al file in Figura 2.1. Da notare che non è obbligatorio che ad un file in formato SIF siano associati i rispettivi file degli attributi. node1 = nattr1 node2 = nattr2 node3 = nattr3 node4 = nattr4 node5 = nattr5 Figura 2.2: File NA con attributi dei nodi di un file SIF: ad ogni nodo è associato un solo attributo.

20 2.2 Graph Modelling Language 10 node1 (edge1) node2 = eattr1 node1 (edge1) node3 = eattr2 node2 (edge2) node3 = eattr3 node4 (edge3) node4 = eattr4 node4 (edge3) node5 = eattr5 Figura 2.3: File EA con attributi degli archi di un file SIF: per ogni arco con specifica etichetta, avente nodo sorgente e destinazione definiti, è associato un attributo. 2.2 Graph Modelling Language Il formato Graph Modelling Language (GML) è un formato portabile per la rappresentazione di grafi [4]. Le caratteristiche che lo contraddistinguono sono semplicità d interpretazione, estensibilità e particolare flessibilità. Un file GML consiste in una serie di coppie chiave-valore organizzate gerarchicamente. L implementazione è molto flessibile poiché non è necessario che venga garantito un ordine specifico nella dichiarazione dei vari elementi che caratterizzano il grafo. Un grafo in formato GML è un insieme di liste di valori racchiuse tra parentesi quadre che identificano le caratteristiche principali della struttura. Ogni lista può contenere al suo interno ulteriori liste: l idea di base è che un grafo è costituito da un insieme di nodi e di archi ed ogni nodo o arco può essere costituito da insiemi di proprietà (quali possono essere aspetto grafico o posizione). In Figura 2.4 è mostrato un semplice grafo in formato GML che rappresenta un grafo costituito da un ciclo con 3 nodi. Possono, quindi, essere definiti per ciascun nodo od arco appositi parametri grafici in cui sono descritte caratteristiche relative al loro aspetto e le coordinate che identificano la posizione di ogni singolo nodo. In figura Figura 2.5 è riportato un esempio di grafo GML.

21 2.3 extensible Graph Markup and Modeling Language 11 graph [ node [ id 1 label "node1" ] node [ id 2 label "node2" ] node [ id 3 label "node3" ] edge [ source 1 target 2 label "edge1" ] edge [ source 2 target 3 label "edge2" ] edge [ source 2 target 3 label "edge3" ] ] Figura 2.4: Grafo in formato GML: dopo la definizione iniziale graph sono definiti tre nodi (node) per ognuno dei quali è definito un id, un etichetta e successivamente gli archi. Per ogni arco (edge) sono definiti, oltre che l etichetta, i rispettivi id del nodo sorgente e del nodo destinazione. graph [ node [ id 1 label "node1" graphics [ x 1.0 y 1.0 w 2.0 h 2.0 color "green" ] ] node [ id 2 label "node2" graphics [ x 3.0 y 4.0 w 1.5 h 1.5 color "red" ] ] edge [ source 1 target 2 label "edge1" graphics [ color "blue" ] ] Figura 2.5: Parametri grafici di un file GML: il parametro graphics definisce proprietà grafiche per i nodi e per gli archi. In questo caso x e y fissano le coordinate dei nodi mentre w e h larghezza ed altezza di nodi ed archi. Il parametro color definisce la colorazione del nodo o dell arco. 2.3 extensible Graph Markup and Modeling Language Il formato GML è particolarmente flessibile, ha una sintassi intuitiva ed è molto potente in quanto permette la rappresentazione di qualsiasi struttura dati arbitraria che va oltre quella dei grafi. Tuttavia esiste un estensione del linguaggio di modellazione di grafi GML basata su XML, detta exten-

22 2.4 Resource Description Framework 12 sible Graph Markup and Modeling Language (XGMML), che consente di rappresentare le medesime strutture dati sfruttando le potenzialità semantiche del diffuso metalinguaggio di markup incrementandone notevolmente l espressività [5]. Un grafo espresso in formato GML può essere agevolmente convertito in XGMML e viceversa. L XML (extensible Markup Language) è un linguaggio di markup particolarmente flessibile ed essendo estendibile consente la definizione di tags personalizzati che possono essere utilizzati per i più svariati scopi: proprio per questo motivo le coppie chiavi-valori descritte per il formato GML possono essere agevolmente espresse sotto forma di coppie attributi-valori di appositi tag XGMML. In Figura 2.6 è mostrato il grafo visto in Figura 2.4 espresso in notazione XGMML. <graph directed="1 id="1" label="graph"> <node id="1" label="node 1"> </node> <node id="2" label="node 2"> </node> <node id="3" label="node 3"> </node> <edge source="1" target="2" label="edge 1"> </edge> <edge source="2" target="3" label="edge 2"> </edge> <edge source="3" target="1" label="edge 3"> </edge> </graph> Figura 2.6: Grafo in formato XGMML: il grafo è costituito da un ciclo con 3 nodi. Sono indicati anche un id ed un etichetta associati al grafo. Il significato degli attributi dei tag relativi ai nodi ed agli archi è intuitivo. Analogamente al formato GML è possibile definire anche in XGMML una serie di tag che impostano le opzioni grafiche dei nodi e degli archi. Un esempio è mostrato in Figura Resource Description Framework Graphtool supporta pienamente il caricamento ed il salvataggio di grafi in formato Resource Descripion Framework (RDF). RDF è uno standard

23 2.4 Resource Description Framework 13 <graph directed="1" id="1" label="graph"> <node id="1" label="node 1"> <graphics x="1.0" y="1.0" w ="2.0" h="2.0" color="green"> </graphics> </node> <node id="2" label="node 2"> <graphics x="3.0" y="4.0" w ="1.5" h="1.5" color="red"> </graphics> </node> <edge source="1" target="2" label="edge 1"> <graphics color="blue"> </graphics> </edge> </graph> Figura 2.7: Parametri grafici di un grafo XGMML: il grafo è analogo a quello rappresentato in Figura 2.5 ed è costituito da due nodi interconnessi da un arco. proposto dal World Wide Web Consortium (W3C) [6] nel 1999 ed usato come metodo generale per la descrizione concettuale e la modellazione di informazioni implementate sotto forma di risorse disponibili sul Web [7, 8]. Nella maggior parte dei casi è utilizzato per la rappresentazione di metadati sul Web, quali potrebbero essere titolo, autore o data di ultima modifica di una pagina web, ma, generalizzando, può essere applicato per la definizione di qualsiasi risorsa anche non disponibile nel web Statements Lo standard RDF si basa sull idea che le singole risorse possano essere identificate mediante Uniform Resource Identificator (URI). Un URI è una stringa di caratteri adibita all identificazione univoca di una risorsa disponibile sul Web, ma anche di un file, un immagine, un indirizzo di posta elettronica e quant altro. Ogni concetto che può essere descritto con RDF è costituito da un insieme di proprietà che possono assumere determinati valo-

24 2.4 Resource Description Framework 14 ri: la definizione di tali relazioni avviene mediante appositi statements, ossia triple di elementi chiamati rispettivamente subject, predicate e object. Si veda [9] per una descrizione dettagliata della sintassi URI. subject predicate object Figura 2.8: Modello dati RDF. Da questa premessa appare evidente che RDF consista nella definizione di una serie di triple di elementi che esprimono relazioni tra varie risorse. Risulta evidente, altresì, che tale notazione può essere agevolmente espressa sotto forma di grafo in cui ogni singola tripla rapresenta una coppia di nodi connessa con un arco. Particolare attenzione occorre prestare al fatto che i grafi RDF sono orientati: la direzione di ogni arco va sempre dal soggetto verso l oggetto. Da quanto detto, durante lo sviluppo di Graphtool, si è voluto fare in modo che fosse in grado di elaborare dati RDF e di fornirne una rappresentazione grafica intuitiva. L utente sarà in grado di analizzare tali dati ed eventualmente modificarli, garantendo comunque che in fase di salvataggio lo standard sia rispettato. In Figura 2.9 è riportato un semplice grafo RDF costituito da due triple. Lo standard RDF impone vincoli ben precisi ai tipi di dati che i componenti di una singola tripla possono assumere [10]. In particolare è consentito che il subject possa essere un URI o un blank node, il predicate esclusivamente un URI, mentre il object un URI, un blank node o un tipo literal. Mostriamo un dettaglio di queste queste caratteristiche.

25 2.4 Resource Description Framework EN Figura 2.9: Grafo RDF: un semplice grafo RDF costuito da due triple aventi medesimo subject. In questo caso il grafo è costituito da tre nodi e due archi URIs Un URI consente di identificare una risorsa univoca (generalmente nel Web). Esso è una stringa di caratteri UNICODE non contenente alcun carattere di controllo ed identificata dalla presenza di un apposito separatore (:) che distingue lo schema (identificante il protocollo di comunicazione utilizzato) e una stringa (la cui interpretazione dipende dal tipo di schema) [9]. La stringa può essere suddivisa in namespace e localname distinti mediante un apposito carattere di separazione Literals Un literal è una stringa di caratteri che può assumere due forme distinte: plain literal a cui può essere associato un tag language opzionale oppure typed literal a cui è associato un tag datatype obbligatorio. Un datatype associato ad un typed literal consiste in un URI [11]. Una descrizione dettagliata dei tag language si trova in [12].

26 2.5 Sintassi per il formato RDF Blank nodes I blank nodes sono appartenenti ad un insieme infinito di elementi tale che esso, l insieme infinito degli URI e l insieme infinito dei literals siano a due a due disgiunti. In Graphtool un blank node è rappresentato come un nodo del grafo con etichetta uguale ad una stringa vuota di caratteri. 2.5 Sintassi per il formato RDF Esistono svariate sintassi che permettono di esprimere grafi RDF: esse possono essere più o meno semplici notazioni testuali o serializzazioni in XML. In questo paragrafo vedremo le principali notazioni supportate da Graphtool sia in caricamento che in salvataggio RDF/XML RDF/XML è la serializzazione più comune e più diffusa di grafi RDF. Il suo utilizzo è altamente raccomandato dal World Wide Web Consortium in quanto può essere utilizzato per codificare il modello di dati per lo scambio d informazioni tra applicazioni [10]. Tale serializzazione permette, altresì, la possibilità di poter effettuare uno scambio di informazioni tra RDF e qualsiasi altra applicazione XML. Un nodo RDF/XML può essere un URI, un literal o un blank node. Un nodo subject può essere un URI o un blank node: nel caso sia un URI, esso rappresenta tipicamente una proprietà dell elemento. Il predicate può essere esclusivamente un URI ed in questo caso rappresenta una relazione che intercorre tra soggetto ed oggetto. Un nodo object, invece, può anche essere un literal. Nel caso in cui il nodo è un blank node può essere associato opzionalmente ad esso un apposito tag detto blank node identifier. Tale identificatore viene usato per consentire di distinguere più agevolmente

27 2.5 Sintassi per il formato RDF 17 un blank node da un URI o da un literal. Graphtool permette di salvare in formato RDF/XML, come impostazione di default, impostando un blank node identifier per ciascun blank node del grafo. Un grafo RDF ed una sua possibile serializzazione in RDF/XML sono mostrati in Figura I nodi plain literal possono avere un attributo language opzionale mentre i nodi typed literal hanno un attributo datatype obbligatorio. Nel primo caso nodi con la stessa etichetta, ma con attributi language, devono essere rappresentati da Graphtool come vertici distinti. In Figura 2.11 è mostrato un semplice grafo RDF in cui sono definiti alcuni tags language. Le specifiche complete della sintassi RDF/XML sono riportate in [13]. Una successiva revisione del formato RDF/XML detta RDF Revised, che risolve alcuni problemi sintattici intrinsechi ad RDF/XML, è descritta in [14] N-Triples La notazione N-Triples, tipicamente usata a fini di testing, è una semplice notazione testuale per esprimere in modalità chiara ed intuitiva le triple di un documento RDF [15]. Un documento N-Triples è una sequenza di dichiarazioni subject predicate object, i cui delimitatori differiscono nel caso in cui siano URI, blank nodes o literals. In Figura 2.12 è mostrato il grafo visto in Figura 2.10(b) espresso nella notazione N-Triples Notation 3 Notation 3 (N3) è un ulteriore notazione usata per esprimere grafi in formato RDF. Ha un formato compatto e leggibile che costituisce una valida alternativa alla serializzazione in XML conferendone, altresì, maggiore espressività e simmetricità [16]. Tale notazione è particolarmente adatta

28 2.5 Sintassi per il formato RDF Example Page Mario Rossi <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ex="http://www.example.org/"> (a) <rdf:description rdf:about="http://www.example.org/example"> <ex:editor rdf:nodeid="a0"/> <dc:title>example Page</dc:title> </rdf:description> <rdf:description rdf:nodeid="a0"> <ex:homepage rdf:resource="http://purl.org/net/mariorossi"/> <ex:name>mario Rossi</ex:name> </rdf:description> </rdf:rdf> (b) Figura 2.10: Grafo RDF e sua serializzazione in RDF/XML. (a) Il grafo RDF. (b) Una possibile serializzazione in RDF/XML: È differente la notazione per identificare gli URI dai literals nei nodi subject ed object. Gli archi sono URI per i quali è specificato un prefisso associato ad un localname. Le corrispondenze tra prefisso e specifico namespace sono elencate all inizio del file: ad esempio al prefisso ex è associato il namespace Il blank node è identificato dall id A0 ed è presente in due distinte triple: infatti gli archi uscenti da esso nel grafo sono due.

29 2.5 Sintassi per il formato RDF Example Page Example Example <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://www.example.org/"> (a) <rdf:description rdf:about="http://www.example.org/example"> <ex:name>example Page</ex:name> <ex:name xml:lang="it">example Page</ex:name> <ex:name xml:lang="en">example Page</ex:name> </rdf:description> </rdf:rdf> (b) Figura 2.11: Grafo RDF con language tags. (a) Il grafo RDF. (b) Serializzazione in RDF/XML. _:a <http://www.example.org/homepage> <http://purl.org/net/mariorossi/>. _:a <http://www.example.org/name> "Mario Rossi". <http://www.example.org/example> <http://www.example.org/example> _:a. <http://www.example.org/example> <http://purl.org/dc/elements/1.1/title> "Example Page". Figura 2.12: Grafo in formato N-Triples. per fornire un elenco chiaro e leggibile delle triple RDF. Analogamente alla notazione N-Triples è possibile specificare le singole triple riga per riga apponendo appositi delimitatori a seconda che gli elementi siano URI, blank nodes o literal. In Figura 2.13 è mostrato un semplice file N3 con una tripla RDF. A differenza della notazione N-Triples, tuttavia, è possibile semplificare

30 2.5 Sintassi per il formato RDF 20 <http://www.example.org/example> <http://www.example.org/name> "Mario Rossi"; Figura 2.13: Semplice grafo in formato Notation 3: la notazione è molto simile alla N-Triples. la sintassi nel caso in cui più triple abbiano lo stesso subject. Come nella sintassi RDF/XML, è possibile specificare appositi prefix da associare ai namespaces dei riferimenti URI [17]. In Figura 2.14 è fornito un esempio completo di rappresentazione di un grafo in Notation 3. Esiste anche una notazione più semplice della Notation3, chiamata Turtle [18], che ne costituisce un sottoinsieme: anch essa è pienamente supportata in lettura e scrittura da p: m: <http://www.example.org/meeting_organization#>. <http://www.example.org/people#fred> p:givenname "Fred"; p:has m:attending <http://meetings.example.com/cal#m1>. <http://meetings.example.com/cal#m1> m:homepage <http://meetings.example.com/m1/hp>. Figura 2.14: Grafo in formato Notation 3: in questo caso al namespace è associato il prefisso m e al namespace il prefisso p. Il nodo ha tre archi in uscita definiti nelle tre righe successive. Il nodo ha, invece, un solo arco in uscita. La rappresentazione di questo grafo in notazione Turtle è, in questo caso, identica.

31 2.5 Sintassi per il formato RDF 21 <TriX> <graph> <triple> <id>x</id> <uri>http://example.org/wife</uri> <uri>http://example.org/mary</uri> </triple> <triple> <uri>http://example.org/bob</uri> <uri>http://example.org/name</uri> <plainliteral>bob</plainliteral> </triple> <triple> <uri>http://example.org/mary</uri> <uri>http://example.org/age</uri> <typedliteral datatype="http://www.w3.org/2001/xmlschema#integer" >32</typedLiteral> </triple> </graph> </TriX> Figura 2.15: Grafo in formato TriX: si distinguono chiaramente, per ogni tripla, gli URI, i blank nodes, i plain literals ed i typed literals. Il tag id identifica un blank node TriX Il formato RDF/XML presenta diversi problemi che non ne possono consentire un uso completo, soprattutto per quanto riguarda problemi relativi alla validazione e per quanto riguarda l interoperabilità con altre applicazioni XML. Per questo motivo si è tentato d introdurre una nuova notazione, sintatticamente più semplice e pur sempre basata su XML: essa prende il nome di TriX [19]. Un documento in formato TriX è un documento XML il cui grafo è delimitato da tag graph ed ogni tripla è delimitata da appositi tag triple. Sono esplicitamente distinti tag che identificano blank node, URI,

32 2.5 Sintassi per il formato RDF 22 plain literal e typed literal. Un esempio è mostrato in Figura Graphtool, oltre ai formati RDF già descritti, supporta, anche in questo caso, caricamento e salvataggio di questo formato rdf: ex: : <http://www.example.org/exampledocument#>. :G1 { :Mario ex:name Mario Rossi. :Mario ex:homepage <http://www.mariorossi.it>. :Mario ex: Mario ex:hasskill ex:management } :G2 { :Mario rdf:type ex:person. :Mario ex:hasskill ex:programming } Figura 2.16: Grafo in formato TriG: in questo file sono descritti due differenti grafi (G1 e G2) separati dai delimitatori { e }. La definizione delle triple e dei namespaces è identica a Turtle. Il formato TriG è una sintassi per descrivere grafi RDF che nasce come valida alternativa a TriX ed ha una sintassi simile a Turtle, di cui ne costituisce un estensione [20]. Tale sintassi aggiunge due nuovi delimitatori per permettere di raggruppare più grafi in un unico file e permette di associare ad ogni grafo un nome. In Figura 2.16 è mostrato un semplice esempio in cui sono descritti due differenti grafi.

33 Capitolo 3 Algoritmi su grafi con applicazioni su reti biologiche e sociali Graphtool permette di eseguire una serie di algoritmi sui grafi fornendo all utente una chiara ed intuitiva interfaccia che lo guida nella selezione e nell esecuzione dell algoritmo desiderato. I risultati sono mostrati in un apposito log e sono agevolmente consultabili. Inoltre, a seconda dell algoritmo scelto e del risultato ottenuto, la rete sui cui è eseguito assume connotazioni visive tali da descrivere visivamente il risultato di tale algoritmo. Graphtool consente, inoltre, di assegnare valori reali per i pesi degli archi dei grafi. È possibile pertanto poter calcolare i cammini minimi (Algoritmo di Dijkstra) a partire da un vertice sorgente ad un vertice destinazione prefissati. Si può scegliere di calcolare tali cammini considerando il grafo come pesato o non pesato (in questo ultimo caso il peso di un cammino è dato dal numero di archi da cui è composto). Segue, in questo capitolo, la descrizione dell algoritmo di Dijkstra e delle misure di Centralità supportate da Graphtool. 23

34 3.1 Dijkstra Shortest Path Dijkstra Shortest Path Si supponga di considerare un grafo G = (V, E) i cui pesi degli archi siano tutti non negativi, ossia valga w(u, v) 0 per ogni arco (u, v) E. Si supponga, dunque, di voler calcolare il camminino minimo a partire da un vertice sorgente singolo prefissato, che indicheremo con s. Per un vertice u indichiamo con d[u] la stima del costo del cammino minimo da s ad u correntemente aggiornata. Indichiamo, inoltre, il predecessore di u con π[u]. L algoritmo di Dijkstra costruisce un insieme, che indicheremo con S, contenente tutti i vertici il cui peso di cammino minimo dalla sorgente è stato determinato, ossia tutti i vertici v S per cui d[v] = δ(s, v). L algoritmo seleziona, ad ogni passo, il vertice u V s avente la stima di cammino minimo, inserisce u in S ed esegue l operazione di rilassamento di tutti gli archi uscenti u [21]. Tale operazione, per un generico arco (u, v) consiste nel valutare se è possibile migliorare il cammino minimo per v trovato fino a quel momento con un nuovo cammino passante per u. In un secondo momento aggiorna la stima di cammino minimo ed imposta, eventualmente, il nuovo predecessore di v. In Algoritmo 1 è mostrata la procedura di rilassamento di un arco, mentre in Algoritmo 2 è mostrato l algoritmo per la ricerca dei cammini minimi. RELAX(u,v,w) 1: if d[v] > d[u] + w(u, w) then 2: d[v] d[u] + w(u, v) 3: π[v] u 4: end if Algoritmo 1: Rilassamento di un arco

35 3.2 Misure di Centralità 25 DIKJKSTRA(G,w,s) 1: Per ogni vertice v V imposta d[v] e π[v] NIL 2: d[s] 0 3: S 4: Q V 5: while Q do 6: u elemento con valore minimo da Q 7: S S {u} 8: for ogni vertice v V do 9: RELAX(u, v, w) 10: end for 11: end while Algoritmo 2: Algoritmo di Dijkstra 3.2 Misure di Centralità Come già ampiamente anticipato, dato un grafo è possibile definire una misura della centralità dei nodi (ma anche degli archi) che la costituiscono. Una misura della centralità, intuitivamente, dà informazioni su quanto un nodo della rete sia più centrale, ossia più importante, rispetto ad un altro [22, 23, 24]. Esistono molteplici misure di centralità e Graphtool ne supporta svariate: un nodo quindi, può risultare più o meno centrale a seconda della misura di centralità adottata Degree Centrality La Degree Centrality è una misura di centralità basata sul grado (entrante o uscente) dei nodi di un grafo. Sia G = (V, E) un grafo con n vertici e sia deg(v) il grado del vertice v. Allora la Degree Centrality C D (v) è definita come C D (v) = deg(v) n 1 (3.1) A seconda che si considerino solo archi entranti od uscenti si potrà definire

36 3.2 Misure di Centralità 26 rispettivamente la InDegree e OutDegree Centrality. Si noti come questa misura di centralità dia solo una misurazione locale in quanto, per ciascun nodo è definita solo in funzione dei nodi immediatamente adiacenti. La Degree Centrality può essere di grande utilità quando si analizza una rete sociale in cui gli archi rappresentano relazioni sociali tra individui. Ad esempio, si supponga di considerare una rete sociale i cui nodi rappresentano studenti di un corso di laurea che vogliono eleggere il loro rappresentante e gli archi rappresentano chi ha votato chi (Figura 3.1). Appare evidente in questo contesto che uno studente è più importante, e quindi più centrale di un altro, se avrà ricevuto un maggior numero di voti (determinati dal numero di archi entranti per nodo). In questo caso la misura di centralità che mette in evidenza questa importanza è proprio la Indegree Centrality. A B A vota lo studente C B vota lo studente C C Figura 3.1: Esempio di Indegree Centrality: gli studenti A e B di un corso di laurea votano entrambi per lo studente C quale loro rappresentante. In questo caso lo studente C è il più centrale Node/Edge Betweenness Sia δ st (v) = σ st(v) σ st dove σ st è il numero di cammini minimi tra il nodo s e t mentre σ st (v) rappresenta il numero di cammini minimi tra il nodo s e t passanti per

37 3.2 Misure di Centralità 27 v. Possiamo asserire che δ st rappresenti la probabilità che il nodo v sia coinvolto in una comunicazione tra s e t. Allora la misura di centralità detta Betweenness è definita come C B (v) = δ st (v) (3.2) s v V t v V Analogamente alla Betweenees dei nodi di un grafo è possibile fornire un analoga misura di centralità in funzione degli archi. La Betweenness Centrality può essere utile, nell ambito delle reti sociali, per la misurazione del potere di controllo del flusso della conoscenza. In tale contesto, generalmente, i nodi con un alta Betweenness Centrality sono definiti brokers. Un broker può essere un membro di una rete sociale tramite il quale avviene la comunicazione tra gli altri nodi (in questo caso è detto coordinator), un membro che ottiene dall esterno il flusso di conoscenza e lo trasferisce ad un gruppo (gatekeeper), un membro che trasferisce la conoscenza tra membri dello stesso gruppo a cui esso tuttavia, non appartiene (itinerant) o, infine, un membro che trasferisce la conoscenza tra distinti gruppi della rete sociale (liason). In tutti questi casi il broker ha una funzione importante all interno della rete sociale. Tale importanza viene messa in evidenza da valori di Betweenness Centrality più alti Closeness Sia v V d(u, v) la somma delle distanze da un vertice u V ad ogni altro. Allora la Closeness Centrality è definita come C D (u) = 1 v V d(u, v) (3.3)

38 3.2 Misure di Centralità 28 Tale funzione cresce se la distanza totale di u decresce. In Figura 3.2 è mostrato un esempio. La Closeness Centrality può risultare molto utile quando si vuole determinare il nodo che minimizza la distanza totale da tutti gli altri. Un esempio pratico consiste nel ricercare la posizione ottimale di un centro commerciale in una città (rappresentata adeguatamente da un grafo). Una buona posizione potrebbe essere quella che minimizza la distanza del centro commerciale da tutti i clienti in modo da ottimizzare lo spostamento della maggior parte dei clienti. Figura 3.2: Esempio di Closeness Centrality: in questo caso i valori indicati rappresentano le distanze totali. In questo caso i nodi u e v sono i più centrali Barycenter Sia p V, un vertice di un grafo. Allora la Baricenter Centrality è definita come U center (p) = p u p v 2 (3.4) (u,v) E Con questa misura di centralità viene assegnata una importanza ad un vertice in funzione della somma delle distanze del nodo da tutti gli altri [25].

39 3.2 Misure di Centralità Page Rank L algoritmo Page Rank [26] è ampiamente utilizzato nel World Wide Web nell ambito della classificazione delle pagine web in relazione alla loro importanza: essa è tipicamente determinata dalla quantità di collegamenti ipertestuali presenti nella pagina e a quanto importanti sono le pagine web linkate. In questo caso le pagine web rappresentano i nodi di un grafo mentre i link tra le pagine rappresentano gli archi. Tale algoritmo è utilizzato su larga scala da alcuni tra i principali motori di ricerca disponibili sul web. Si supponga di voler calcolare l algoritmo di Page Rank su un nodo p (una pagina web). Indichiamo con P p l insieme dei nodi raggiungibili a partire da p e sia d un fattore di smorzamento (dumping factory). Allora la misura di centralità indotta da Page Rank per un nodo p è definita come C PR (p) = d q P p C PR (q) d + q + (1 d) (3.5) La misura della centralità basata su Page Rank si inserisce nel generico di concetto di Web Centralities, ossia di centralità orientate al Web. Anche le misure di centralità presentate di seguito (Hub e Authority) appartengono a tale categoria Authority & Hub Nell ambito del World Wide Web possiamo definire come Authority una pagina web autorevole, ossia una pagina web che contiene informazioni rilevanti e precise sull argomento desiderato e, quindi, linkata da parecchie altre pagine web. Possiamo altresì definire come Hub, una pagina web contenente molti collegamenti verso pagine web autorevoli, ossia verso Authorities. Come descritto da Kleinberg [27, 28] un buon hub è, dunque, una pagina

40 3.2 Misure di Centralità 30 web che punta a molte buone autorithies e, viceversa, una buona autorithy è una pagina web che punta a molti buoni hub: appare dunque evidente che i due concetti sono strettamente correlati l uno con l altro. L algoritmo per il calcolo dell hub e dell autority è stato proposto da Kleinberg e consta di due fasi: la prima fase consiste nella ricerca delle pagine web, a partire da una query definita dall utente: questa fase, nel nostro caso, non interessa in quanto vogliamo effettuare il calcolo su una network prestabilita e già caricata nello spazio di lavoro di Graphtool. La seconda fase consiste nel vero e proprio calcolo dei valori hub e autorithy. Sia, dunque, G un grafo e siano c HA H = Ac HA A con c HA A noto e c HA A = Ac HA H con c HA H noto, rispettivamente i valori di hub ed autority, dove A è la matrice d adiacenza del grafo G: l algoritmo per il calcolo di tali valori restituisce le approssimazioni di c HA H e c HA A. Si veda a tal proposito 3 per un implementazione dell algoritmo per il calcolo delle approssimazioni dell hub e dell authority. Output: : approssimazioni di c HA A e c HA H 1: c 0 HA A 1 n 2: for k = 1... do 3: c k HA H Ack 1 HA A 4: c k HA A Ack HA C 5: c k HA H ck HA H c k HA H 6: c k HA A ck HA A c k HA A 7: end for Algoritmo 3: Calcolo dell Hub e dell Authority

41 Capitolo 4 Subgraph matching In questo capitolo verrà presentata un altra funzionalità di Graphtool che permette di ricercare tutte le occorrenze di sottostrutture G 1 (indicato anche come grafo query) all interno di un grafo G 2 (indicato anche come grafo target) (Figura 4.1). Questo problema noto come subgraph matching è un problema NP-Completo [29] per cui non esistono soluzioni polinomiali. Nonostante ciò, esistono diversi algoritmi che risultano particolarmente efficienti anche su grandi grafi. Il metodo implementato su Graphtool si basa sull algoritmo VF2 [1] (a) (b) Figura 4.1: Subgraph Matching. (a) Grafo query. (b) Grafo target. 31

42 4.1 Algoritmo di ricerca Algoritmo di ricerca L algoritmo di ricerca implementato in Graphtool è descritto in [1] e fornisce una soluzione più efficiente rispetto ad altri algoritmi per la ricerca delle sottostrutture in grafi [30]. L algoritmo è applicabile ad ogni tipo di grafo, è particolarmente adatto a grafi con etichette o attributi, utilizza una rappresentazione nello spazio degli stati con una strategia di ricerca depthfirst (in profondità) ed ha cinque regole di fattibilità (feasibility rules) che permettono di ridurre lo spazio degli stati. Il matching tra due grafi G 1 = (V 1, E 1 ) e G 2 = (V 2, E 2 ) consiste nel determinare una mappatura M che associa nodi di G 1 a nodi di G 2 e viceversa, tenendo conto di alcune costanti predefinite. Una mappatura M è un insieme di coppie (n, m) con n G 1 e m G 2. Definiamo, inoltre, l insieme M(s), come un sottoinsieme di M che identifica univocamente due sottografi di G 1 e G 2, rispettivamente indicati come G 1 (s) e G 2 (s) tale da rappresentare il matching parziale dello stato s ossia l insieme corrente delle coppie di nodi dei due grafi che sono corrispondenti. Una transizione da uno stato s ad uno stato successore s consiste nell aggiunta nello spazio degli stati di una coppia di nodi (n, m). Otteremo, dunque, un nuovo insieme M(s ) = M(s) (n, m) con n V 1 e m V 2 (4.1) Per stabilire se una coppia (n, m) da aggiungere allo stato s produce uno stato inconsistente o meno si utilizza un apposita funzione di fattibilità F(s, n, m) che ha lo scopo di filtrare più strade possibili per cercare di arrivare più velocemente alla soluzione. A tal scopo si costruisce un insieme P(s) delle coppie candidate. La scelta delle coppie da inserire in P(s) sfrutta

43 4.2 Opzioni di ricerca 33 i cosidetti terminal sets, indicati rispettivamente con T 1 e T 2, che contengono i nodi direttamente connessi a quelli già inseriti nel mapping parziale e che provengono da V 1 e V 2. Le coppie vengono scelte in modo da assicurare che l eventuale inconsistenza venga riconosciuta quanto più velocemente possibile. L algoritmo VF2 è descritto in Algoritmo 4, mentre in Figura 4.2 sono schematizzati i suoi passi fondamentali. MATCH(s) Input: uno stato intermedio s. Lo stato iniziale è s 0 ha M(s 0 ) = Output: la mappatura tra due grafi 1: if M(s) copre tutti i nodi di G 2 then 2: mostra M(S) 3: else 4: calcola l insieme P(s) delle coppie candidate per l inclusione in M(s) 5: foreach p M(s) do 6: if p è una fattibile coppia then 7: calcola lo stato s ottenuto aggiungendo p a M(s) 8: MATCH(s ) 9: end if 10: end for 11: aggiorna le strutture dati 12: end if Algoritmo 4: Algoritmo di matching VF2 4.2 Opzioni di ricerca L agortimo VF2 è stato adattato in Graphtool in modo da supportare ricerche esatte e approssimate. Nel primo caso è data all utente la possibilità di impostare le etichette dei vertici e degli archi della query (Figura 4.3(a)), nel secondo caso (impostazione predefinita nel caso in cui l utente disegna il grafo query) è data la possibilità di impostare vertici ed archi non etichettati

44 4.2 Opzioni di ricerca 34 TERMINA Y M(s) copre tutti i nodi? N Calcola l insieme P di tutte le coppie da poter accoppiare S = NEW STATE (M+p) FOREACH p E P N IF (M+p) è feasible set of mapping Y Figura 4.2: Passi dell algoritmo VF2. (Figura 4.3(b)) che in questo caso possono essere accoppiati a qualunque nodo del grafo target. Sono inoltre supportate le ricerche con nodi con self-loops (Figura 4.4(a)) e con archi multipli (Figura 4.4(b)). A? B C? C (a) (b) Figura 4.3: Tipi di Query. (a) Query esatta. (b) Query approssimata. Una vota selezionati il grafo query ed il grafo target, l utente può eseguire l algoritmo di matching. Al termine dell esecuzione della ricerca saranno

45 4.3 Network Motifs 35 label label1 label2 (a) (b) Figura 4.4: Caratteristiche delle query. (a) Self-loop. (b) Archi multipli (multiple edges). mostrati il numero di occorrenze trovate e l elenco dei match rilevati (si veda la Figura 4.5). L algoritmo di matching si occupa anche di mostrare il numero totale di match trovati ed il numero di match distinti. Il motivo di questa distinzione sta nel fatto che, data una query di partenza, possono essere restituiti in output sottografi equivalenti (che rappresentano quindi, in buona sostanza, la stessa struttura), ma che sono stati accoppiati in modo diverso. Affinché due match risultino distinti, essi devono essere diversi in almeno un nodo. 4.3 Network Motifs Graphtool permette anche di disegnare alcune query predefinite tipicamente importanti in alcuni contesti come quello delle network biologiche [31]. È molto frequente, ad esempio, che le reti di trascrizione che regolano le risposte delle cellule obbediscano ad alcuni principi che ricorrono più volte, identici, all interno della stessa rete. Uno tra i modelli più comuni e frequenti è certamente il cosiddetto feed-forward loop: esso è un modello a tre geni costituito da due fattori di trascrizione di input (uno dei quali regola l altro) ed un gene su cui effettuare la trascrizione. In Figura 4.6 è mostrata una schematizzazione del feed-forward loop [32]. Altri motifs predefiniti sono resi

46 4.3 Network Motifs 36 (a) (b) Figura 4.5: Esecuzione di una ricerca. (a) Selezione della query e del rete target su cui cercare tutte le occorrenze. L utente può decidere se nella ricerca si deve tenere conto anche delle etichette dei vertici e degli archi (labeled) e se si deve tenere conto delle direzioni degli archi (directed). (b) Log e tabella con i risultati: sono mostrati il numero di match totali e distinti trovati e nella tabella è fornito l elenco completo dei match distinti con indicatore del numero di match, numero di occorrenze per singolo match e nodi coinvolti. disponibili in Graphtool come ad esempio i motifs Bi-Fan (Figura 4.7(a)) e Bi-Parallel (Figura 4.7(b)), spesso ricorrenti nell ambito delle reti neuronali e i motifs Fully connected triad (Figura 4.7(c))e Uplinked mutual dyad (Figura 4.7(d)), quest ultimi di fondamentale rilevanza nel contesto del World Wide Web. X Y Z Figura 4.6: Feed-forward loop.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

Il problema del massimo flusso. Preflow-push e augmenting path: un approccio unificante

Il problema del massimo flusso. Preflow-push e augmenting path: un approccio unificante Introduzione Il problema del massimo flusso. Preflow-push e augmenting path: un approccio unificante Il problema del massimo flusso è uno dei fondamentali problemi nell ottimizzazione su rete. Esso è presente

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

Data warehouse.stat Guida utente

Data warehouse.stat Guida utente Data warehouse.stat Guida utente Versione 3.0 Giugno 2013 1 Sommario INTRODUZIONE 3 I concetti principali 4 Organizzazione dei dati 4 Ricerca 5 Il browser 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Manipolazione di testi: espressioni regolari

Manipolazione di testi: espressioni regolari Manipolazione di testi: espressioni regolari Un meccanismo per specificare un pattern, che, di fatto, è la rappresentazione sintetica di un insieme (eventualmente infinito) di stringhe: il pattern viene

Dettagli

Flusso a costo minimo e simplesso su reti

Flusso a costo minimo e simplesso su reti Flusso a costo minimo e simplesso su reti La particolare struttura di alcuni problemi di PL può essere talvolta utilizzata per la progettazione di tecniche risolutive molto più efficienti dell algoritmo

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento.

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. Excel: le funzioni Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. DEFINIZIONE: Le funzioni sono dei procedimenti

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT IT PROCESS EXPERT 1. CARTA D IDENTITÀ... 2 2. CHE COSA FA... 3 3. DOVE LAVORA... 4 4. CONDIZIONI DI LAVORO... 5 5. COMPETENZE... 6 Quali competenze sono necessarie... 6 Conoscenze... 8 Abilità... 9 Comportamenti

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale InterWrite SchoolBoard è un software per lavagna elettronica di facile utilizzo. Può essere adoperata anche da studenti diversamente

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

The Directed Closure Process in Hybrid Social-Information Networks

The Directed Closure Process in Hybrid Social-Information Networks The Directed Closure Process in Hybrid Social-Information Networks with an Analysis of Link Formation on Twitter Dario Nardi Seminario Sistemi Complessi 15 Aprile 2014 Dario Nardi (CAS) 15/4/14 1 / 20

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

AlboTop. Software di gestione Albo per Ordini Assistenti Sociali

AlboTop. Software di gestione Albo per Ordini Assistenti Sociali AlboTop Software di gestione Albo per Ordini Assistenti Sociali Introduzione AlboTop è il nuovo software della ISI Sviluppo Informatico per la gestione dell Albo professionale dell Ordine Assistenti Sociali.

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Minimo sottografo ricoprente. Minimo sottografo ricoprente. Minimo albero ricoprente. Minimo albero ricoprente

Minimo sottografo ricoprente. Minimo sottografo ricoprente. Minimo albero ricoprente. Minimo albero ricoprente Minimo sottografo ricoprente Minimo sottografo ricoprente Dato un grafo connesso G = (V, E) con costi positivi sugli archi c e, un minimo sottografo ricoprente è un insieme di archi E E tale che: G = (V,

Dettagli

2 Formulazione dello shortest path come problema di flusso

2 Formulazione dello shortest path come problema di flusso Strumenti della Teoria dei Giochi per l Informatica A.A. 2009/10 Lecture 20: 28 Maggio 2010 Cycle Monotonicity Docente: Vincenzo Auletta Note redatte da: Annibale Panichella Abstract In questa lezione

Dettagli

IL PROBLEMA DELLO SHORTEST SPANNING TREE

IL PROBLEMA DELLO SHORTEST SPANNING TREE IL PROBLEMA DELLO SHORTEST SPANNING TREE n. 1 - Formulazione del problema Consideriamo il seguente problema: Abbiamo un certo numero di città a cui deve essere fornito un servizio, quale può essere l energia

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata Giampiero Carboni Davide Travaglia David Board Rev 5058-CO900C Interfaccia operatore a livello di sito FactoryTalk

Dettagli

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Definiamo innanzitutto una relazione d ordine tra le funzioni. Siano φ e ψ funzioni

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

METODO DELLE FORZE 1. METODO DELLE FORZE PER LA SOLUZIONE DI STRUTTURE IPERSTATICHE. 1.1 Introduzione

METODO DELLE FORZE 1. METODO DELLE FORZE PER LA SOLUZIONE DI STRUTTURE IPERSTATICHE. 1.1 Introduzione METODO DELLE FORZE CORSO DI PROGETTZIONE STRUTTURLE a.a. 010/011 Prof. G. Salerno ppunti elaborati da rch. C. Provenzano 1. METODO DELLE FORZE PER L SOLUZIONE DI STRUTTURE IPERSTTICHE 1.1 Introduzione

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

2. GESTIONE DOCUMENTI NON SBN

2. GESTIONE DOCUMENTI NON SBN Istituto centrale per il catalogo unico delle biblioteche italiane e per le informazioni bibliografiche APPLICATIVO SBN-UNIX IN ARCHITETTURA CLIENT/SERVER 2. GESTIONE DOCUMENTI NON SBN Manuale d uso (Versione

Dettagli

Ricerca non informata in uno spazio di stati

Ricerca non informata in uno spazio di stati Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

Ultimo aggiornamento.: 18/02/2006 Pagina 1 di 25

Ultimo aggiornamento.: 18/02/2006 Pagina 1 di 25 Introduzione al programma POWERPOINT Ultimo aggiornamento.: 18/02/2006 Pagina 1 di 25 Introduzione al programma POWERPOINT 1 1 Introduzione al programma 3 2 La prima volta con Powerpoint 3 3 Visualizzazione

Dettagli

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

Dipartimento del Tesoro

Dipartimento del Tesoro Dipartimento del Tesoro POWER POINT AVANZATO Indice 1 PROGETTAZIONE DELL ASPETTO...3 1.2 VISUALIZZARE GLI SCHEMI...4 1.3 CONTROLLARE L ASPETTO DELLE DIAPOSITIVE CON GLI SCHEMI...5 1.4 SALVARE UN MODELLO...6

Dettagli

Documentazione Servizio SMS WEB. Versione 1.0

Documentazione Servizio SMS WEB. Versione 1.0 Documentazione Servizio SMS WEB Versione 1.0 1 Contenuti 1 INTRODUZIONE...5 1.1 MULTILANGUAGE...5 2 MESSAGGI...7 2.1 MESSAGGI...7 2.1.1 INVIO SINGOLO SMS...7 2.1.2 INVIO MULTIPLO SMS...9 2.1.3 INVIO MMS

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 della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

Elementi di Statistica

Elementi di Statistica Elementi di Statistica Contenuti Contenuti di Statistica nel corso di Data Base Elementi di statistica descrittiva: media, moda, mediana, indici di dispersione Introduzione alle variabili casuali e alle

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it SMS API Documentazione Tecnica YouSMS SOAP API YouSMS Evet Limited 2015 http://www.yousms.it INDICE DEI CONTENUTI Introduzione... 2 Autenticazione & Sicurezza... 2 Username e Password... 2 Connessione

Dettagli

Anno di corso: 2004/2005. Istruzioni. Istruzioni per lo svolgimento dei progetti didattici. versione 1.1

Anno di corso: 2004/2005. Istruzioni. Istruzioni per lo svolgimento dei progetti didattici. versione 1.1 versione 1.1 per lo svolgimento dei progetti didattici Corso di Laboratorio di Programmazione II Prof. Luca Forlizzi Anno Accademico 2004-2005 GENERALITÀ...3 Scopo del documento...3 Struttura del documento...3

Dettagli

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione Text mining ed analisi di dati codificati in linguaggio naturale Analisi esplorative di dati testualilezione 2 Le principali tecniche di analisi testuale Facendo riferimento alle tecniche di data mining,

Dettagli

(anno accademico 2008-09)

(anno accademico 2008-09) Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato

Dettagli

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005 Appunti sugli Elaboratori di Testo D. Gubiani Università degli Studi G.D Annunzio di Chieti-Pescara 19 Luglio 2005 1 Cos è un elaboratore di testo? 2 3 Cos è un elaboratore di testo? Cos è un elaboratore

Dettagli

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale RUOLO DELLA MODELLAZIONE GEOMETRICA E LIVELLI DI MODELLAZIONE PARTE 2 Prof. Caterina Rizzi... IN QUESTA LEZIONE Modelli 2D/3D Modelli 3D/3D Dimensione delle primitive di modellazione Dimensione dell oggettoy

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

Autori: M. Di Ianni, A. Panepuccia

Autori: M. Di Ianni, A. Panepuccia AR Analisi di Reti 2010/2011 M.Di Ianni Assegnazioni di ruoli Autori: M. Di Ianni, A. Panepuccia In questa dispensa verrà trattato il problema dell assegnazione dei ruoli in un grafo. Tale problema è stato

Dettagli

Cos è Excel. Uno spreadsheet : un foglio elettronico. è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse

Cos è Excel. Uno spreadsheet : un foglio elettronico. è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse Cos è Excel Uno spreadsheet : un foglio elettronico è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse I dati contenuti nelle celle possono essere elaborati ponendo

Dettagli

Guida rapida all uso di ECM Titanium

Guida rapida all uso di ECM Titanium Guida rapida all uso di ECM Titanium Introduzione Questa guida contiene una spiegazione semplificata del funzionamento del software per Chiputilizzare al meglio il Tuning ECM Titanium ed include tutte

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

Manuale Software. www.smsend.it

Manuale Software. www.smsend.it Manuale Software www.smsend.it 1 INTRODUZIONE 3 Multilanguage 4 PANNELLO DI CONTROLLO 5 Start page 6 Profilo 7 Ordini 8 Acquista Ricarica 9 Coupon AdWords 10 Pec e Domini 11 MESSAGGI 12 Invio singolo sms

Dettagli

La Valutazione Euristica

La Valutazione Euristica 1/38 E un metodo ispettivo di tipo discount effettuato da esperti di usabilità. Consiste nel valutare se una serie di principi di buona progettazione sono stati applicati correttamente. Si basa sull uso

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

Modal 2 Modulo Analisi modale Modulo per l Analisi della dinamica strutturale.

Modal 2 Modulo Analisi modale Modulo per l Analisi della dinamica strutturale. Modal 2 Modulo Analisi modale Modulo per l Analisi della dinamica strutturale. L analisi modale è un approccio molto efficace al comportamento dinamico delle strutture, alla verifica di modelli di calcolo

Dettagli

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t. Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di

Dettagli

La struttura dell RNA Struttura dell RNA mediante analisi comparativa Predizione della struttura secondaria: L algoritmo di Nussinov Predizione della

La struttura dell RNA Struttura dell RNA mediante analisi comparativa Predizione della struttura secondaria: L algoritmo di Nussinov Predizione della La struttura dell RNA Struttura dell RNA mediante analisi comparativa Predizione della struttura secondaria: L algoritmo di Nussinov Predizione della struttura secondaria: Minimizzazione dell energia Un

Dettagli

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore)

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Autore: Matteo Veroni Email: matver87@gmail.com Sito web: matteoveroni@altervista.org Fonti consultate: http://openmeetings.apache.org/

Dettagli

INFORMATIVA SUI COOKIE

INFORMATIVA SUI COOKIE INFORMATIVA SUI COOKIE I Cookie sono costituiti da porzioni di codice installate all'interno del browser che assistono il Titolare nell erogazione del servizio in base alle finalità descritte. Alcune delle

Dettagli

l Editor vi vi (visual editor) è stato scritto per essere utilizzabile con qualsiasi tipo di terminale.

l Editor vi vi (visual editor) è stato scritto per essere utilizzabile con qualsiasi tipo di terminale. l Editor vi Negli ambienti Unix esistono molti editor di testo diversi; tuttavia vi è l unico che siamo sicuri di trovare in qualsiasi variante di Unix. vi (visual editor) è stato scritto per essere utilizzabile

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Metadati e Modellazione. standard P_META

Metadati e Modellazione. standard P_META Metadati e Modellazione Lo standard Parte I ing. Laurent Boch, ing. Roberto Del Pero Rai Centro Ricerche e Innovazione Tecnologica Torino 1. Introduzione 1.1 Scopo dell articolo Questo articolo prosegue

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test Prefazione, Contenuto Parte 1: Sviluppo di programmi Parte 2: Uso e test SIMATIC Parte 3: Descrizione del linguaggio Programmazione di blocchi Appendici Glossario, Indice analitico Manuale Numero di ordinazione

Dettagli

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org.

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Nuovo documento Anteprima di stampa Annulla Galleria Apri Controllo ortografico Ripristina Sorgente dati Salva Controllo

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

Database Manager Guida utente DMAN-IT-01/09/10

Database Manager Guida utente DMAN-IT-01/09/10 Database Manager Guida utente DMAN-IT-01/09/10 Le informazioni contenute in questo manuale di documentazione non sono contrattuali e possono essere modificate senza preavviso. La fornitura del software

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

Panoramica su ITIL V3 ed esempio di implementazione del Service Design

Panoramica su ITIL V3 ed esempio di implementazione del Service Design Master Universitario di II livello in Interoperabilità Per la Pubblica Amministrazione e Le Imprese Panoramica su ITIL V3 ed esempio di implementazione del Service Design Lavoro pratico II Periodo didattico

Dettagli

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 Download Si può scaricare gratuitamente la versione per il proprio sistema operativo (Windows, MacOS, Linux) dal sito: http://www.codeblocks.org

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

UNIVERSITÀ DEGLI STUDI DI PADOVA

UNIVERSITÀ DEGLI STUDI DI PADOVA UNIVERSITÀ DEGLI STUDI DI PADOVA Facoltà di Scienze MM.FF.NN. Corso di Laurea Specialistica in Informatica Tesi di Laurea: GENERAZIONE DI GRAFI IN BUSINESS PROCESS MANAGEMENT NOTATION Laureanda: Contiero

Dettagli

Guida ai Servizi Voce per il Referente. Guida ai Servizi Voce per il Referente

Guida ai Servizi Voce per il Referente. Guida ai Servizi Voce per il Referente Guida ai Servizi Voce per il Referente Guida ai Servizi Voce per il Referente 1 Sommario 1 Introduzione... 3 1.1 Accesso al Self Care Web di Rete Unica... 4 2 Servizi Aziendali... 6 2.1 Centralino - Numero

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

Dai metadati all harvesting

Dai metadati all harvesting Dai metadati all harvesting la gestione di risorse informative attraverso repository interoperabili di Gino Roncaglia 1 Pubblicato su Culture del testo e del documento 26/2008, pp. 109 122 1. Cosa sono

Dettagli

BIBLIOWIN 5.0WEB Versione 5.0.2

BIBLIOWIN 5.0WEB Versione 5.0.2 BIBLIOWIN 5.0WEB Versione 5.0.2 Premessa. In questa nuova versione è stata modificata la risoluzione (dimensione) generale delle finestre. Per gli utenti che navigano nella modalità a Finestre, la dimensione

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

TIP AND TRICKS 01 DEFINIZIONE DEI PARAMETRI DI UNA LASTRA ORTOTROPA EQUIVALENTE A UNA VOLTA MURARIA

TIP AND TRICKS 01 DEFINIZIONE DEI PARAMETRI DI UNA LASTRA ORTOTROPA EQUIVALENTE A UNA VOLTA MURARIA TIP AND TRICKS 01 DEFINIZIONE DEI PARAMETRI DI UNA LASTRA ORTOTROPA EQUIVALENTE A UNA VOLTA MURARIA TECNICA DI DEFINIZIONE DELLE PROPRIETA' DI UNA LASTRA ORTOTROPA EQUIVALENTE A UNA VOLTA MURARIA Descrizione

Dettagli