Wat is het GRAPHML-bestandsformaat?
Een .graphml-bestand slaat graafgegevens op - netwerken van knooppunten en verbindingen - in een gestandaardiseerd op .xml gebaseerd formaat, ontwikkeld door een academisch consortium (Universiteit van Konstanz, TU Wien, Brown University) en voor het eerst gepubliceerd in 2001. Het wordt veel gebruikt in netwerkwetenschap, sociale netwerkanalyse, bio-informatica en graafdatabases.
De structuur is eenvoudig: een <graphml> root-element (namespace http://graphml.graphdrawing.org/graphml) bevat optionele <key> declaraties die een getypeerd attribuutschema definiëren, gevolgd door een of meer <graph> elementen. Elke <graph> bevat <node> en <edge> elementen; beiden kunnen <data key="..."> subelementen bevatten om attribuutwaarden toe te voegen. Gerichte, ongerichte, gemengde, hypergraaf- en geneste hiërarchische graafstructuren worden allemaal ondersteund.
GraphML is een formaat voor gegevensuitwisseling, geen visueel diagramhulpmiddel. Het codeert alleen de graaftopologie en attributen; visuele coördinaten en styling kunnen optioneel worden toegevoegd via extensie-attributen (bijvoorbeeld de y:Geometry attributen die door de yEd-editor worden gebruikt). De .graphmlz variant is een met gzip gecomprimeerd .graphml-bestand.
Omdat .graphml ongecomprimeerde XML is, kan elke teksteditor het inspecteren. Voor analyse en visualisatie zijn de meest gebruikte tools Gephi (open-source netwerkanalyse) en yEd Graph Editor. Python's networkx, Java's JGraphT en R's igraph bibliotheek kunnen allemaal standaard .graphml lezen en schrijven. Een gerelateerd formaat is .gexf, dat standaard door Gephi wordt gebruikt.
Beveiliging & veiligheid
RISICO: LOWEen .graphml-bestand is platte XML-data en kan geen code uitvoeren. Het openen ervan is veilig. Zeer grote graafbestanden (honderden MB's) kunnen aanzienlijk RAM-geheugen verbruiken in Gephi of yEd (meerdere GB's voor grote sociale netwerken) - beperk het geheugen van de JVM bij het openen van grote bestanden. Er zijn geen scripting of macro's mogelijk in het GraphML-formaat.
Formaatdetails
in een notendopProgramma's die GRAPHML-bestanden openen
Technische details
diepe specificaties| Bestandscodering | Platte XML-tekst, UTF-8 |
| Root-element | <graphml> met XML-namespace http://graphml.graphdrawing.org/graphml |
| Knooppunt-element | <node id="..."> - ID moet uniek zijn binnen het document |
| Verbindings-element | <edge source="..." target="..."> - gericht of ongericht volgens het attribuut <graph edgedefault="..."> van de ouder |
| Attribuutschema | <key> declaraties definiëren getypeerde attributen (string, int, double, boolean, long, float) gericht op knooppunt, verbinding of graaf |
| Attribuutwaarden | <data key="..."> subelementen voegen gedeclareerde attribuutwaarden toe aan individuele knooppunten of verbindingen |
| Ondersteunde graaftypes | Gerichte, ongerichte, gemengde, hypergraaf- en geneste/hiërarchische grafen |
| Gecomprimeerde variant | .graphmlz - een met gzip gecomprimeerd .graphml-bestand; de standaardextensie voor gecomprimeerde GraphML-grafen |
| Binaire handtekening | Geen - begint met optionele <?xml declaratie gevolgd door <graphml |
| Typische bestandsgrootte | 1 KB (kleine testgrafen) tot 500 MB+ (grote sociale of biologische netwerken) |
| MIME-type | application/xml (informeel ook application/graphml+xml) |
| Visuele lay-out | Niet gecodeerd in de basisspecificatie; de yEd-extensie voegt y:Geometry en y:NodeLabel attributen toe voor optionele lay-outgegevens |
| XML-schema locatie | http://graphml.graphdrawing.org/xmlns/1.1/graphml.xsd |
| Uitgebracht | 2001 (initial GraphML specification published) |
| Laatste versie | GraphML 1.1 (spec stable; no significant changes since ~2007) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | graphml.graphdrawing.org |
GRAPHML conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over GRAPHML-bestanden.