Index: trunk/workshop-foss4g/spatial_relationships.rst
===================================================================
--- trunk/workshop-foss4g/spatial_relationships.rst	(revision 81)
+++ trunk/workshop-foss4g/spatial_relationships.rst	(revision 1)
@@ -1,32 +1,32 @@
 .. _spatial_relationships:
 
-Partie 10 : Les relations spatiales
-===================================
+Section 10: Spatial Relationships
+=================================
 
-Jusqu'Ã  prÃ©sent, nous avons utilisÃ© uniquement des fonctions qui permettent de mesurer (:command:`ST_Area`, :command:`ST_Length`), de sÃ©rialiser (:command:`ST_GeomFromText`) ou dÃ©sÃ©rialiser (:command:`ST_AsGML`) des gÃ©omÃ©tries. Ces fonctions sont toutes utilisÃ©es sur une gÃ©omÃ©trie Ã  la fois.
+So far we have only used spatial functions that measure (:command:`ST_Area`, :command:`ST_Length`), serialize (:command:`ST_GeomFromText`) or deserialize (:command:`ST_AsGML`) geometries. What these functions have in common is that they only work on one geometry at a time.
 
-Les base de donnÃ©es spatiales sont puissantes car elle ne se contentent pas de stocker les gÃ©omÃ©tries, elle peuvent aussi vÃ©rifier les *relations entre les gÃ©omÃ©tries*.
+Spatial databases are powerful because they not only store geometry, they also have the ability to compare *relationships between geometries*. 
 
-Pour les questions comme "Quel est le plus proche garage Ã  vÃ©lo prÃšs du parc ?" ou "Ou est l'intersection du mÃ©tro avec telle rue ?", nous devrons comparer les gÃ©omÃ©tries reprÃ©sentant les garages Ã  vÃ©lo, les rues et les lignes de mÃ©tro.
+Questions like âWhich are the closet bike racks to a park?â or âWhere are the intersections of subway lines and streets?â can only be answered by comparing geometries representing the bike racks, streets, and subway lines.
 
-Le standard de l'OGC dÃ©finit l'ensemble de fonctions suivantes pour comparer les gÃ©omÃ©tries.
+The OGC standard defines the following set of methods to compare geometries.
 
 ST_Equals
 ---------
-
-:command:`ST_Equals(geometry A, geometry B)` teste l'Ã©galitÃ© spatiale de deux gÃ©omÃ©tries.
+ 
+:command:`ST_Equals(geometry A, geometry B)` tests the spatial equality of two geometries. 
 
 .. figure:: ./spatial_relationships/st_equals.png
    :align: center
 
-ST_Equals retourne TRUE si les deux gÃ©omÃ©tries sont du mÃªme type et ont des coordonnÃ©es x.y identiques.
+ST_Equals returns TRUE if two geometries of the same type have identical x,y coordinate values, i.e. if the secondary shape is equal (identical) to the primary shape object.
 
-PremiÃšrement, essayons de rÃ©cupÃ©rer la reprÃ©sentation d'un point de notre table ``nyc_subway_stations``. Nous ne prendrons que l'entrÃ©e : 'Broad St'.
+First, let's retrieve a representation of a point from our ``nyc_subway_stations`` table. We'll take just the entry for 'Broad St'.
 
 .. code-block:: sql
 
   SELECT name, the_geom, ST_AsText(the_geom)
-  FROM nyc_subway_stations
-  WHERE name = 'Broad St';
+  FROM nyc_subway_stations 
+  WHERE name = 'Broad St';             
 
 ::
@@ -35,11 +35,11 @@
   ----------+----------------------------------------------------+-----------------------
    Broad St | 0101000020266900000EEBD4CF27CF2141BC17D69516315141 | POINT(583571 4506714)
-
-Maintenant, copiez / collez la valeur affichÃ©e pour tester la fonction :command:`ST_Equals`:
+ 
+Then, plug the geometry representation back into an :command:`ST_Equals` test:
 
 .. code-block:: sql
 
-  SELECT name
-  FROM nyc_subway_stations
+  SELECT name 
+  FROM nyc_subway_stations 
   WHERE ST_Equals(the_geom, '0101000020266900000EEBD4CF27CF2141BC17D69516315141');
 
@@ -50,37 +50,37 @@
 .. note::
 
-  La reprÃ©sentation du point n'est pas vraiment comprÃ©hensible (``0101000020266900000EEBD4CF27CF2141BC17D69516315141``) mais c'est exactement la reprÃ©sentation des coordonnÃ©es. Pour tester l'Ã©galitÃ©, l'utilisation de ce format est nÃ©cessaire.
+  The representation of the point was not very human readable (``0101000020266900000EEBD4CF27CF2141BC17D69516315141``) but it was an exact representation of the coordinate values. For a test like equality, using the exact coordinates in necessary.
 
 
-ST_Intersects, ST_Disjoint, ST_Crosses et ST_Overlaps
+ST_Intersects, ST_Disjoint, ST_Crosses and ST_Overlaps
 ------------------------------------------------------
 
-:command:`ST_Intersects`, :command:`ST_Crosses`, et :command:`ST_Overlaps` teste si l'intÃ©rieur des gÃ©omÃ©tries s'intersecte, se croise ou se chevauche.
+:command:`ST_Intersects`, :command:`ST_Crosses`, and :command:`ST_Overlaps` test whether the interiors of the geometries intersect. 
 
 .. figure:: ./spatial_relationships/st_intersects.png
    :align: center
 
-:command:`ST_Intersects(geometry A, geometry B)` retourne t (TRUE) si l'intersection ne renvoie pas un ensemble vide de rÃ©sultats. Intersects retourne le rÃ©sultat exactement inverse de la fonction disjoint.
+:command:`ST_Intersects(geometry A, geometry B)` returns t (TRUE) if the intersection does not result in an empty set. Intersects returns the exact opposite result of disjoint.
 
 .. figure:: ./spatial_relationships/st_disjoint.png
    :align: center
 
-L'opposÃ© de ST_Intersects est :command:`ST_Disjoint(geometry A , geometry B)`. Si deux gÃ©omÃ©tries sont disjointes, elle ne s'intersectent pas et vice-versa. En fait, il est souvent plus efficace de tester si deux gÃ©omÃ©tries ne s'intersectent pas que de tester si elles sont disjointes du fait que le test d'intersection peut Ãªtre spatialement indexÃ© alors que le test disjoint ne le peut pas.
+The opposite of ST_Intersects is :command:`ST_Disjoint(geometry A , geometry B)`. If two geometries are disjoint, they do not intersect, and vice-versa. In fact, it is often more efficient to test "not intersects" than to test "disjoint" because the intersects tests can be spatially indexed, while the disjoint test cannot.
 
-.. figure:: ./spatial_relationships/st_crosses.png
+.. figure:: ./spatial_relationships/st_crosses.png  
    :align: center
 
-Pour les comparaisons de couples de types multipoint/polygon, multipoint/linestring, linestring/linestring, linestring/polygon, et linestring/multipolygon, :command:`ST_Crosses(geometry A, geometry B)` retourne t (TRUE) si les rÃ©sultats de l'intersection sont Ã  l'intÃ©rieur des deux gÃ©omÃ©tries.
+For multipoint/polygon, multipoint/linestring, linestring/linestring, linestring/polygon, and linestring/multipolygon comparisons, :command:`ST_Crosses(geometry A, geometry B)` returns t (TRUE) if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.
 
 .. figure:: ./spatial_relationships/st_overlaps.png
    :align: center
 
-:command:`ST_Overlaps(geometry A, geometry B)` compare deux gÃ©omÃ©tries de mÃªme dimension et retourne TRUE si leur intersection est une gÃ©omÃ©trie diffÃ©rente des deux fournies mais de mÃªme dimension.
+:command:`ST_Overlaps(geometry A, geometry B)` compares two geometries of the same dimension and returns TRUE if their intersection set results in a geometry different from both but of the same dimension.
 
-Essayons de prendre la station de mÃ©tro de Broad Street et de dÃ©terminer son voisinage en utilisant la fonction :command:`ST_Intersects` :
+Let's take our Broad Street subway station and determine its neighborhood using the :command:`ST_Intersects` function:
 
 .. code-block:: sql
 
-  SELECT name, boroname
+  SELECT name, boroname 
   FROM nyc_neighborhoods
   WHERE ST_Intersects(the_geom, '0101000020266900000EEBD4CF27CF2141BC17D69516315141');
@@ -88,5 +88,5 @@
 ::
 
-          name        | boroname
+          name        | boroname  
   --------------------+-----------
    Financial District | Manhattan
@@ -97,30 +97,30 @@
 ----------
 
-:command:`ST_Touches` teste si deux gÃ©omÃ©tries se touchent en leur contours extÃ©rieurs, mais leur contours intÃ©rieurs ne s'intersectent pas
+:command:`ST_Touches` tests whether two geometries touch at their boundaries, but do not intersect in their interiors 
 
 .. figure:: ./spatial_relationships/st_touches.png
    :align: center
 
-:command:`ST_Touches(geometry A, geometry B)` retourne TRUE soit si les contours des gÃ©omÃ©tries s'intersectent ou si l'un des contours intÃ©rieurs de l'une intersecte le contour extÃ©rieur de l'autre.
+:command:`ST_Touches(geometry A, geometry B)` returns TRUE if either of the geometries' boundaries intersect or if only one of the geometry's interiors intersects the other's boundary.
 
-ST_Within et ST_Contains
+ST_Within and ST_Contains
 -------------------------
 
-:command:`ST_Within` et :command:`ST_Contains` teste si une gÃ©omÃ©trie est totalement incluse dans l'autre.
+:command:`ST_Within` and :command:`ST_Contains` test whether one geometry is fully within the other. 
 
 .. figure:: ./spatial_relationships/st_within.png
    :align: center
+    
+:command:`ST_Within(geometry A , geometry B)` returns TRUE if the first geometry is completely within the second geometry. ST_Within tests for the exact opposite result of ST_Contains.  
 
-:command:`ST_Within(geometry A , geometry B)` retourne TRUE si la premiÃšre gÃ©omÃ©trie est complÃštement contenue dans l'autre. ST_Within teste l'exact opposÃ© au rÃ©sultat de ST_Contains.
-
-:command:`ST_Contains(geometry A, geometry B)` retourne TRUE si la seconde gÃ©omÃ©trie est complÃštement contenue dans la premiÃšre gÃ©omÃ©trie.
+:command:`ST_Contains(geometry A, geometry B)` returns TRUE if the second geometry is completely contained by the first geometry. 
 
 
-ST_Distance et ST_DWithin
+ST_Distance and ST_DWithin
 --------------------------
 
-Une question frÃ©quente dans le domaine du SIG est "trouver tous les Ã©lÃ©ments qui se trouvent Ã  une distance X de cet autre Ã©lÃ©ment".
+An extremely common GIS question is "find all the stuff within distance X of this other stuff". 
 
-La fonction :command:`ST_Distance(geometry A, geometry B)` calcule la *plus courte* distance entre deux gÃ©omÃ©tries. Cela est pratique pour rÃ©cupÃ©rer la distance entre les objets.
+The :command:`ST_Distance(geometry A, geometry B)` calculates the *shortest* distance between two geometries and returns it as a float. This is useful for actually reporting back the distance between objects.
 
 .. code-block:: sql
@@ -134,24 +134,24 @@
   3
 
-Pour tester si deux objets sont Ã  la mÃªme distance d'un autre, la fonction :command:`ST_DWithin` fournit un test tirant profit des index. Cela est trÃšs utile pour rÃ©pondre a une question telle que: "Combien d'arbres se situent dans un buffer de 500 mÃštres autour de cette route ?". Vous n'avez pas Ã  calculer le buffer, vous avez simplement besoin de tester la distance entre les gÃ©omÃ©tries.
+For testing whether two objects are within a distance of one another, the :command:`ST_DWithin` function provides an index-accelerated true/false test. This is useful for questions like "how many trees are within a 500 meter buffer of the road?". You don't have to calculate an actual buffer, you just have to test the distance relationship.
 
   .. figure:: ./spatial_relationships/st_dwithin.png
      :align: center
-
-En utilisant de nouveau notre station de mÃ©tro Broad Street, nous pouvons trouver les rues voisines (Ã  10 mÃštres de) de la station :
+    
+Using our Broad Street subway station again, we can find the streets nearby (within 10 meters of) the subway stop:
 
 .. code-block:: sql
 
-  SELECT name
-  FROM nyc_streets
+  SELECT name 
+  FROM nyc_streets 
   WHERE ST_DWithin(
-          the_geom,
-          '0101000020266900000EEBD4CF27CF2141BC17D69516315141',
+          the_geom, 
+          '0101000020266900000EEBD4CF27CF2141BC17D69516315141', 
           10
         );
 
-::
+:: 
 
-       name
+       name     
   --------------
      Wall St
@@ -159,29 +159,31 @@
      Nassau St
 
-Nous pouvons vÃ©rifier la rÃ©ponse sur une carte. La station Broad St est actuellement Ã  l'intersection des rues Wall, Broad et Nassau.
+And we can verify the answer on a map. The Broad St station is actually at the intersection of Wall, Broad and Nassau Streets.
 
 .. image:: ./spatial_relationships/broad_st.jpg
 
-Liste des fonctions
--------------------
+Function List
+-------------
 
-`ST_Contains(geometry A, geometry B) <http://postgis.org/docs/ST_Contains.html>`_ : retourne TRUE si aucun des points de B n'est Ã  l'extÃ©rieur de A, et au moins un point de l'intÃ©rieur de B est Ã  l'intÃ©rieur de A.
+`ST_Contains(geometry A, geometry B) <http://postgis.org/docs/ST_Contains.html>`_: Returns true if and only if no points of B lie in the exterior of A, and at least one point of the interior of B lies in the interior of A.
 
-`ST_Crosses(geometry A, geometry B)  <http://postgis.org/docs/ST_Crosses.html>`_ : retourne TRUE si la gÃ©omÃ©trie A a certains, mais pas la totalitÃ©, de ses points Ã  l'intÃ©rieur de B.
+`ST_Crosses(geometry A, geometry B)  <http://postgis.org/docs/ST_Crosses.html>`_: Returns TRUE if the supplied geometries have some, but not all, interior points in common.
 
-`ST_Disjoint(geometry A , geometry B) <http://postgis.org/docs/ST_Disjoint.html>`_ : retourne TRUE si les gÃ©omÃ©tries ne s'intersectent pas - elles n'ont aucun point en commun.
+`ST_Disjoint(geometry A , geometry B) <http://postgis.org/docs/ST_Disjoint.html>`_: Returns TRUE if the Geometries do not "spatially intersect" - if they do not share any space together.
 
-`ST_Distance(geometry A, geometry B)  <http://postgis.org/docs/ST_Distance.html>`_ : retourne la distance cartÃ©sienne en 2 dimensions minimum entre deux gÃ©omÃ©tries dans l'unitÃ© de la projection.
+`ST_Distance(geometry A, geometry B)  <http://postgis.org/docs/ST_Distance.html>`_: Returns the 2-dimensional cartesian minimum distance (based on spatial ref) between two geometries in projected units. 
 
-`ST_DWithin(geometry A, geometry B, radius) <http://postgis.org/docs/ST_DWithin.html>`_ : retourne TRUE si les gÃ©omÃ©tries sont distante (radius) l'une de l'autre.
+`ST_DWithin(geometry A, geometry B, radius) <http://postgis.org/docs/ST_DWithin.html>`_: Returns true if the geometries are within the specified distance (radius) of one another. 
 
-`ST_Equals(geometry A, geometry B) <http://postgis.org/docs/ST_Equals.html>`_ : retourne TRUE si les gÃ©omÃ©tries fournies reprÃ©sentent la mÃªme gÃ©omÃ©trie. L'ordre des entitÃ©s n'est pas pris en compte.
+`ST_Equals(geometry A, geometry B) <http://postgis.org/docs/ST_Equals.html>`_: Returns true if the given geometries represent the same geometry. Directionality is ignored.
 
-`ST_Intersects(geometry A, geometry B) <http://postgis.org/docs/ST_Intersects.html>`_ : retourne TRUE si les gÃ©omÃ©tries s'intersectent - (ont un espace en commun) et FALSE si elles n'en ont pas (elles sont disjointes).
+`ST_Intersects(geometry A, geometry B) <http://postgis.org/docs/ST_Intersects.html>`_: Returns TRUE if the Geometries/Geography "spatially intersect" - (share any portion of space) and FALSE if they don't (they are Disjoint). 
 
-`ST_Overlaps(geometry A, geometry B) <http://postgis.org/docs/ST_Overlaps.html>`_ : retourne TRUE si les gÃ©omÃ©tries ont un espace en commun, sont de la mÃªme dimension, mais ne sont pas complÃštement contenues l'une dans l'autre.
+`ST_Overlaps(geometry A, geometry B) <http://postgis.org/docs/ST_Overlaps.html>`_: Returns TRUE if the Geometries share space, are of the same dimension, but are not completely contained by each other.
 
-`ST_Touches(geometry A, geometry B)  <http://postgis.org/docs/ST_Touches.html>`_ : retourne TRUE si les gÃ©omÃ©tries ont au moins un point en commun, mais leur intÃ©rieurs ne s'intersectent pas.
+`ST_Touches(geometry A, geometry B)  <http://postgis.org/docs/ST_Touches.html>`_: Returns TRUE if the geometries have at least one point in common, but their interiors do not intersect.
 
-`ST_Within(geometry A , geometry B) <http://postgis.org/docs/ST_Within.html>`_ : retourne TRUE si la gÃ©omÃ©trie A est complÃštement Ã  l'intÃ©rieur de B
+`ST_Within(geometry A , geometry B) <http://postgis.org/docs/ST_Within.html>`_: Returns true if the geometry A is completely inside geometry B
 
+
+
