Che cos'è il formato di file GRAPHML?
Un file .graphml memorizza dati di grafi - reti di nodi e archi - in un formato standard basato su .xml sviluppato da un consorzio accademico (Università di Costanza, TU Wien, Brown University) e pubblicato per la prima volta nel 2001. È ampiamente utilizzato nella scienza delle reti, nell'analisi delle reti sociali, nella bioinformatica e nei database a grafi.
La struttura è lineare: un elemento radice <graphml> (namespace http://graphml.graphdrawing.org/graphml) contiene dichiarazioni <key> opzionali che definiscono uno schema di attributi tipizzati, seguite da uno o più elementi <graph>. Ogni <graph> contiene elementi <node> e <edge>; entrambi possono ospitare figli <data key="..."> per allegare valori di attributo. Sono supportate strutture di grafi diretti, non diretti, misti, ipergrafi e grafi gerarchici nidificati.
GraphML è un formato di interscambio dati, non uno strumento di diagrammi visuali. Codifica solo la topologia e gli attributi del grafo; le coordinate visive e lo stile possono essere aggiunti opzionalmente tramite attributi di estensione (ad esempio, gli attributi y:Geometry utilizzati dall'editor yEd). La variante .graphmlz è un file .graphml compresso con gzip.
Poiché .graphml è XML non compresso, qualsiasi editor di testo può ispezionarlo. Per l'analisi e la visualizzazione, gli strumenti più comuni sono Gephi (analisi di rete open-source) e yEd Graph Editor. La libreria networkx di Python, JGraphT di Java e igraph di R leggono e scrivono tutti .graphml nativamente. Un formato correlato è .gexf, utilizzato nativamente da Gephi.
Sicurezza e incolumità
RISCHIO: LOWUn file .graphml è un dato XML semplice e non può eseguire codice. L'apertura è sicura. File di grafi molto grandi (centinaia di MB) possono consumare una quantità significativa di RAM in Gephi o yEd (diversi GB per grandi reti sociali) - limitare la memoria della JVM se si aprono file di grandi dimensioni. Non sono possibili script o macro nel formato GraphML.
Dettagli del formato
in sintesiProgrammi che aprono file GRAPHML
Dettagli tecnici
specifiche approfondite| Codifica del file | Testo XML semplice, UTF-8 |
| Elemento radice | <graphml> con namespace XML http://graphml.graphdrawing.org/graphml |
| Elemento nodo | <node id="..."> - l'ID deve essere unico all'interno del documento |
| Elemento arco | <edge source="..." target="..."> - diretto o non diretto secondo l'attributo del genitore <graph edgedefault="..."> |
| Schema degli attributi | Le dichiarazioni <key> definiscono attributi tipizzati (string, int, double, boolean, long, float) con ambito nodo, arco o grafo |
| Valori degli attributi | Gli elementi figli <data key="..."> collegano i valori degli attributi dichiarati ai singoli nodi o archi |
| Tipi di grafi supportati | Grafi diretti, non diretti, misti, ipergrafi e grafi nidificati/gerarchici |
| Variante compressa | .graphmlz - un file .graphml compresso con gzip; l'estensione standard per i grafi GraphML compressi |
| Firma binaria | Nessuna - inizia con la dichiarazione opzionale <?xml seguita da <graphml |
| Dimensione tipica del file | Da 1 KB (piccoli grafi di test) a oltre 500 MB (grandi reti sociali o biologiche) |
| Tipo MIME | application/xml (informalmente anche application/graphml+xml) |
| Layout visivo | Non codificato nella specifica di base; l'estensione yEd aggiunge gli attributi y:Geometry e y:NodeLabel per dati di layout opzionali |
| Posizione dello schema XML | http://graphml.graphdrawing.org/xmlns/1.1/graphml.xsd |
| Rilasciato | 2001 (initial GraphML specification published) |
| Ultima versione | GraphML 1.1 (spec stable; no significant changes since ~2007) |
| Standard aperto | Sì · royalty-free |
| Specifica | graphml.graphdrawing.org |
Conversioni GRAPHML
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file GRAPHML.