GraphML Spécification

Original: http://graphml.graphdrawing.org/specification.html


Introduction

Ce document spécifie la syntaxe et les règles de traitement pour la langue cœur GraphML (couche de structure) et deux extensions de GraphML qui permettent d’ajouter des attributs de type de base et de l’information de l’analyse. Alors une introduction plus complète peut être trouvée ici, quelques informations sur la conception de GraphML est fournie dans la référence suivante:

U. Brandes, M. Eiglsperger, I. Herman, M. Himsolt, et MS Marshall:
GraphML Rapport d’étape: Proposition de couche structurelle.
Proc. 9 Intl. Symp. Graphique Dessin (GD ’01), LNCS 2265, pp. 501-512.
© Springer-Verlag, 2002.

Syntaxe

La syntaxe GraphML est définie par le schéma GraphML. Bien que ce soit la définition contraignante, nous fournissons également un specfication lâche dans la GraphML Document Type Definition (DTD), qui, par exemple, ne fait pas de distinction types de référence comme nœud et bords ID. Néanmoins, certaines applications peuvent avoir besoin d’une DTD pour fonctionner correctement.

GraphML schéma

GraphML DTD


Règles de traitement

Éléments d’une application ne peut pas gérer sont ignorées, soit un document GraphML est interprété comme si constituée uniquement de ces éléments connus et visibles à l’application. En particulier:

  •      Les éléments <port>, <hyperarête>, <endpoint>, et <localisateur> sont tout simplement ignorées par les applications ne sachant pas partie ou la totalité d’entre eux. L’analyseur peut donner un avertissement qu’un élément inconnu a été rencontré.
  •      Il n’y a pas de manière canonique comment les applications, capables de traiter un seul <graphique> par document, doivent gérer le cas de plusieurs <graphique> s. Ainsi, ces applications peuvent choisir, soit le traitement que la première <graphe>, ou en prenant l’union de tous <graphique> s dans le document, ou en utilisant une autre politique de repli. Dans les deux cas, ces applications doivent donner un avertissement et informer l’utilisateur.
  •      Il n’y a pas de manière canonique comment les applications, pas capable de gérer niché <graphique> s, doivent faire face à un document en utilisant cette fonction. Ainsi, ces applications peuvent choisir, soit en ignorant toutes les informations graphique dans des niveaux plus profonds, ou de la levée des niveaux plus profonds au niveau supérieur, ou en utilisant une autre politique de repli. Dans les deux cas, ces applications doivent donner un avertissement et informer l’utilisateur.


Données supplémentaires

GraphML fournir un mécanisme pour ajouter des données aux éléments de structure (par exemple <graph>s, <node>s, <edge>s, etc.). Marquages de données sont considérées comme des fonctions (éventuellement partiels) qui attribuent des valeurs dans un (a priori) gamme arbitraire à des éléments du graphe. Une telle fonction est déclarée par un élément <key>. Le domaine de définition de cette fonction est spécifiée par le pour’ attribut de l’élément <key>. Les valeurs sont définies par un élément <default> (enfant de <key>) et / ou <data> éléments (les enfants des éléments qui sont dans le domaine de définition) dont l’attributvaleurs «key» correspond à la ‘id’ de la touche <key>.

Données saisies

L’extension de l’attribut permet de spécifier la gamme de valeurs des fonctions de données mentionnées ci-dessus. Il le fait par l’attribut supplémentaire »attr.type de <key>. Les valeurs de cet attribut (booléen’, ‘int’, ‘long’, ‘float’, ‘double’, et ‘string’) spécifient comment interpréter les chaînes de Charakter dans <data> et <default> par éléments.

En outre, un attribut attr.name »est ajouté à <key> qui peut être utilisée par les applications pour identifier leurs données.

Information pour les analyseurs

L’extension de parseinfo ajoute plusieurs attributs de <graphique> et <node> s qui aident les analyseurs de traiter un document plus efficacement. Ces attributs spécifient par exemple le nombre de nœuds <> ou <s> s, pointe degrés de noeuds, maximum / minimum de degré et plus.

Extensions définies par l’utilisateur

GraphML peut être prolongé de deux façons:

  •      Les utilisateurs peuvent ajouter du contenu structuré pour les éléments <data> et <default>.
  •      Les utilisateurs peuvent ajouter des attributs à tous les éléments GraphML.

Comment cela peut être fait sera expliqué dans une introduction plus complète qui est en cours de préparation.

Comments are closed.