Index: doc/graph_io.dox
===================================================================
--- doc/graph_io.dox	(revision 1394)
+++ doc/graph_io.dox	(revision 1522)
@@ -5,10 +5,10 @@
 \page graph-io-page Graph Input-Output
 
-The standard graph IO makes possible to store graphs and additional maps
+The standard graph IO enables to store graphs and additional maps
 in a flexible and efficient way. 
 
 \section format The general file format
 
-The graph file contains at most four section in the next order:
+The file contains at most four sections in the following order:
 
 \li nodeset
@@ -17,9 +17,12 @@
 \li edges
 
-The nodeset section starts with the \c \@nodeset line.
-The next line contains the names of the maps separated by whitespaces.
-Each following line describes a node in the graph, it contains
-in the right order the values of the maps. The map named "id" should contain
-unique values because it regarded as ID-map. 
+The nodeset section starts with the following line:
+
+<tt>\@nodeset</tt>
+
+The next line contains the names of the nodemaps, separated by whitespaces.  Each
+following line describes a node in the graph: it contains the values of the
+maps in the right order. The map named "id" should contain unique values
+because it is regarded as an ID-map. For example:
 
 \code
@@ -32,8 +35,12 @@
 
 The edgeset section is very similar to the nodeset section, it has
-same coloumn oriented structure. It starts with the line \c \@edgeset
-The next line contains the whitespace separated list of names of the map.
+the same coloumn oriented structure. It starts with the line 
+
+<tt>\@edgeset</tt>
+
+The next line contains the whitespace separated list of names of the maps.
 Each of the next lines describes one edge. The first two elements in the line
-are the ID of the source and target node as they occur in the ID node map. 
+are the IDs of the source and target (or tail and head) node of the edge as they occur in the ID node
+map. You can also have an optional ID map on the edges for later reference.
 
 \code
@@ -47,6 +54,9 @@
 The next section contains <em>labeled nodes</em> (i.e. nodes having a special
 label on them). The section starts with
-\c \@nodes. Each of the next lines contains a label for a node in the graph 
-and then the ID described in the nodeset.
+
+<tt> \@nodes </tt>
+
+Each of the next lines contains a label for a node in the graph 
+and then the ID described in the nodeset section.
 
 \code
@@ -65,16 +75,18 @@
 \endcode
 
-The file ends with the \c \@end line.
 
 The file may contain empty lines and comment lines. The comment lines
 start with an \c # character.
 
-\code
-@end
-\endcode
+The file ends with the 
+
+<tt> \@end </tt>
+
+line.
+
 
 \section use Using graph input-output
-The graph input and output based on writing and reading commands. The user
-adds writing and reading commands for the reader or writer class, then 
+The graph input and output is based on reading and writing  commands. The user
+adds reading and writing commands to the reader or writer class, then he
 calls the \c run() method that executes all the given commands.
 
@@ -91,6 +103,6 @@
 
 The \c writeNodeMap() function declares a \c NodeMap writing command in the
-\c GraphWriter. You should give as parameter the name of the map and the map
-object. The NodeMap writing command with name "id" should write a 
+\c GraphWriter. You should give a name of the map and the map
+object as parameters. The NodeMap writing command with name "id" should write a 
 unique map because it is regarded as ID map.
 
@@ -110,4 +122,5 @@
 
 \see IdMap, DescriptorMap  
+
 \code
 DescriptorMap<ListGraph, Edge, ListGraph::EdgeMap<int> > edgeDescMap(graph);
@@ -118,7 +131,7 @@
 \endcode
 
-With \c writeNode() and \c writeEdge() functions you can point out Nodes and
-Edges in the graph. By example, you can write out the source and target
-of the graph.
+With \c writeNode() and \c writeEdge() functions you can designate Nodes and
+Edges in the graph. For example, you can write out the source and target node
+of a maximum flow instance.
 
 \code
@@ -130,5 +143,5 @@
 
 After you give all write commands you must call the \c run() member
-function, which execute all the writer commands.
+function, which executes all the writing commands.
 
 \code
@@ -141,8 +154,8 @@
 If you read a graph you need not read all the maps and items just those
 that you need. The interface of the \c GraphReader is very similar to
-the GraphWriter but the reading method does not depend on the order the
+the GraphWriter but the reading method does not depend on the order of the
 given commands.
 
-The reader object suppose that each not readed value does not contain 
+The reader object assumes that each not readed value does not contain 
 whitespaces, therefore it has some extra possibilities to control how
 it should skip the values when the string representation contains spaces.
@@ -153,9 +166,10 @@
 
 The \c readNodeMap() function reads a map from the \c \@nodeset section.
-If there is a map that you do not want to read from the file and there is
-whitespace in the string represenation of the values then you should
+If there is a map that you do not want to read from the file and there are
+whitespaces in the string represenation of the values then you should
 call the \c skipNodeMap() template member function with proper parameters.
 
 \see QuotedStringReader
+
 \code
 reader.readNodeMap("x-coord", xCoordMap);
@@ -187,5 +201,5 @@
 
 After you give all read commands you must call the \c run() member
-function, which execute all the commands.
+function, which executes all the commands.
 
 \code
@@ -193,6 +207,6 @@
 \endcode
 
-\section types The background of the Reading and Writing
-The \c GraphReader should know how can read a Value from the given map.
+\section types The background of Reading and Writing
+The \c GraphReader should know how to read a Value from the given map.
 By the default implementation the input operator reads a value from
 the stream and the type of the readed value is the value type of the given map.
