doc/lgf.dox
changeset 156 e561aa7675de
child 162 33247f6fff16
equal deleted inserted replaced
-1:000000000000 0:ad66b125650f
       
     1 /* -*- C++ -*-
       
     2  *
       
     3  * This file is a part of LEMON, a generic C++ optimization library
       
     4  *
       
     5  * Copyright (C) 2003-2008
       
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
       
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).
       
     8  *
       
     9  * Permission to use, modify and distribute this software is granted
       
    10  * provided that this copyright notice appears in all copies. For
       
    11  * precise terms see the accompanying LICENSE file.
       
    12  *
       
    13  * This software is provided "AS IS" with no warranty of any kind,
       
    14  * express or implied, and with no claim as to its suitability for any
       
    15  * purpose.
       
    16  *
       
    17  */
       
    18 
       
    19 namespace lemon {
       
    20 /*!
       
    21 
       
    22 
       
    23 
       
    24 \page lgf-format Lemon Graph Format (LGF)
       
    25 
       
    26 The \e LGF is a <em>column oriented</em>
       
    27 file format for storing graphs and associated data like
       
    28 node and edge maps.
       
    29 
       
    30 Each line with \c '#' first non-whitespace
       
    31 character is considered as a comment line.
       
    32 
       
    33 Otherwise the file consists of sections starting with
       
    34 a header line. The header lines starts with an \c '@' character followed by the
       
    35 type of section. The standard section types are \c \@nodes, \c
       
    36 \@arcs and \c \@edges
       
    37 and \@attributes. Each header line may also have an optional
       
    38 \e name, which can be use to distinguish the sections of the same
       
    39 type.
       
    40 
       
    41 The standard sections are column oriented, each line consists of
       
    42 <em>token</em>s separated by whitespaces. A token can be \e plain or
       
    43 \e quoted. A plain token is just a sequence of non-whitespace characters,
       
    44 while a quoted token is a
       
    45 character sequence surrounded by double quotes, and it can also
       
    46 contain whitespaces and escape sequences. 
       
    47 
       
    48 The \c \@nodes section describes a set of nodes and associated
       
    49 maps. The first is a header line, it columns are the names of the
       
    50 maps appearing in the following lines.
       
    51 One of the maps must be called \c
       
    52 "label", which plays special role in the file.
       
    53 The following
       
    54 non-empty lines until the next section describes nodes of the
       
    55 graph. Each line contains the values of the node maps
       
    56 associated to the current node.
       
    57 
       
    58 \code
       
    59  @nodes
       
    60  label   coordinates size    title
       
    61  1       (10,20)     10      "First node"
       
    62  2       (80,80)     8       "Second node"
       
    63  3       (40,10)     10      "Third node"
       
    64 \endcode
       
    65 
       
    66 The \c \@arcs section is very similar to the \c \@nodes section,
       
    67 it again starts with a header line describing the names of the arc,
       
    68 but the \c "label" map is not obligatory here. The following lines
       
    69 describe the arcs. The first two tokens of each line are
       
    70 the source and the target node of the arc, respectively, then come the map
       
    71 values. The source and target tokens must be node labels.
       
    72 
       
    73 \code
       
    74  @arcs
       
    75  	      capacity
       
    76  1   2   16
       
    77  1   3   12
       
    78  2   3   18
       
    79 \endcode
       
    80 
       
    81 The \c \@edges is just a synonym of \c \@arcs.
       
    82 
       
    83 The \c \@attributes section contains key-value pairs, each line
       
    84 consists of two tokens, an attribute name, and then an attribute value.
       
    85 
       
    86 \code
       
    87  @attributes
       
    88  source 1
       
    89  target 3
       
    90  caption "LEMON test digraph"
       
    91 \endcode
       
    92 
       
    93 */
       
    94 }
       
    95 
       
    96 //  LocalWords:  whitespace whitespaces