China level 3 data for Shenzhen created manually by Kun Hu
diff --git a/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_3_area.properties b/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_3_area.properties
new file mode 100644
index 0000000..bf03566
--- /dev/null
+++ b/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_3_area.properties
@@ -0,0 +1,56 @@
+# CHN_2_area.properties 
+# This file contains area values for CHINA
+# /*********************************************************************************************
+# * Copyright (c) 2006 IBM Corporation and others.
+# * All rights reserved. This program and the accompanying materials
+# * are made available under the terms of the Eclipse Public License v1.0
+# * which accompanies this distribution, and is available at
+# * http://www.eclipse.org/legal/epl-v10.html
+# *
+# * Contributors:
+# *     IBM Corporation - initial API and implementation
+# ***********************************************************************************************/
+
+# /**********************************************************************************************
+# * Key Format: 
+# * 
+# * 	 For level 1 data, the key is the ISO3166-2 code. An ISO3166-2 code is composed as follows: 
+# * a two letter country code followed by up to three alphanumeric characters for the level 1 administration.
+# *
+# * 	 For level 2 data, the key is the ISO3166-2 code followed by six digits. The leftmost two digits indicate
+# * the level 1 container of a level 2 administration (i.e. California is a level 1 container for Orange County
+# * which is a level 2 administration).  The two digits were taken from a lexicographic sorting of all the
+# * level 1 administrations within a country. Similarly, the four leftmost digits indicate a level 2 administration.
+# * Again, these four digits are an index into the lexicographic sorting of all level 2 administrations within 
+# * a level 1 administration. 
+# ************************************************************************************************/
+
+# This is the name of the class that will interpret the rest of the file's contents
+RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.CountryAreaLabelPropertyFileSpecification
+
+# The ISO-3166-1 alpha3 code for the country
+ISOKEY = CHN
+
+# The administration level of the area data
+ADMIN_LEVEL = 3
+
+# This is the date range for which the area values in this file are valid 
+# See http://purl.org/dc/terms/1.1/valid
+VALID = start=2015-01-01;
+
+# This is the source of the data
+SOURCE = https://www.cia.gov/library/publications/the-world-factbook/
+# SOURCE = https://www.cia.gov/library/publications/the-world-factbook/
+
+# Looked up from web
+CN-44-G070067-FT = 78.04
+#
+CN-44-G070067-LH = 78.75
+#
+CN-44-G070067-NS = 185.49
+#
+CN-44-G070067-BA = 712.95
+#
+CN-44-G070067-LG = 844.08
+#
+CN-44-G070067-YT = 71.82
\ No newline at end of file
diff --git a/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_3_node.properties b/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_3_node.properties
new file mode 100644
index 0000000..9ff94aa
--- /dev/null
+++ b/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_3_node.properties
@@ -0,0 +1,58 @@
+# CHN_2_node.properties 
+# /*********************************************************************************************
+# * Copyright (c) 2006 IBM Corporation and others.
+# * All rights reserved. This program and the accompanying materials
+# * are made available under the terms of the Eclipse Public License v1.0
+# * which accompanies this distribution, and is available at
+# * http://www.eclipse.org/legal/epl-v10.html
+# *
+# * Contributors:
+# *     IBM Corporation - initial API and implementation
+# ***********************************************************************************************/
+
+# /**********************************************************************************************
+# * Key Format: 
+# * 
+# * 	 For level 1 data, the key is the ISO3166-2 code. An ISO3166-2 code is composed as follows: 
+# * a two letter country code followed by up to three alphanumeric characters for the level 1 administration.
+# *
+# * 	 For level 2 data, the key is the ISO3166-2 code followed by six digits. The leftmost two digits indicate
+# * the level 1 container of a level 2 administration (i.e. California is a level 1 container for Orange County
+# * which is a level 2 administration).  The two digits were taken from a lexicographic sorting of all the
+# * level 1 administrations within a country. Similarly, the four leftmost digits indicate a level 2 administration.
+# * Again, these four digits are an index into the lexicographic sorting of all level 2 administrations within 
+# * a level 1 administration. 
+# ************************************************************************************************/
+
+# This is the name of the class that will interpret the rest of the file's contents
+RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.CountryNodePropertyFileSpecification
+
+# The ISO-3166-1 alpha3 code for the country
+ISOKEY = CHN
+
+# The administration level of the node data
+ADMIN_LEVEL = 3
+
+# This is the date range for which the area values in this file are valid 
+# See http://purl.org/dc/terms/1.1/valid
+VALID = start=2015-01-01;
+
+# This is the source of the data
+SOURCE = colleague in CRL
+# SOURCE = http://www.iso.org/iso/home.htm
+
+# The file that contains the latitude/longitude data for the node 
+SPATIAL_URI = platform:/plugin/org.eclipse.stem.data.geography/resources/data/geo/country/CHN/CHN_3_MAP.xml
+
+# Manually Added :  Level 1 ( CN-JK = JAMMU AND KASHMIR ). Level 2 ( 170001 = LADAKH (LEH) ). 
+CN-44-G070067-FT = Futian
+#
+CN-44-G070067-LH = Luohu
+#
+CN-44-G070067-NS = Nanshan
+#
+CN-44-G070067-BA = Baoan
+#
+CN-44-G070067-LG = Longgang
+#
+CN-44-G070067-YT = Yantian
\ No newline at end of file
diff --git a/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_centers.properties b/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_centers.properties
index cf4f774..44124e9 100644
--- a/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_centers.properties
+++ b/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_centers.properties
@@ -2458,3 +2458,10 @@
 CN-NT-G250013 = 22.32832, 114.323422
 CN-NT-G250014 = 22.315182, 114.350302
 CN-NT-G250015 = 22.308075, 114.361351
+# Level 3
+CN-44-G070067-FT = 22.5225, 114.055833
+CN-44-G070067-LH = 22.5456, 114.129
+CN-44-G070067-NS = 22.501619, 113.907822
+CN-44-G070067-BA = 22.5534, 113.884
+CN-44-G070067-LG = 22.720278, 114.2475
+CN-44-G070067-YT = 22.5637, 114.24
diff --git a/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_names.properties b/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_names.properties
index f2348ea..f5e8f37 100644
--- a/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_names.properties
+++ b/geography/org.eclipse.stem.internal.data.geography/resources/data/country/CHN/CHN_names.properties
@@ -4883,3 +4883,16 @@
 CN-MAR-G230012 = CN-MAR-G230012
 # Generated key details :  Level 1 ( CN-MAR = MARINE ). Level 2 ( 230013 = CHN.L2.32 ). 
 CN-MAR-G230013 = CN-MAR-G230013
+# MANUALLY ADDED LEVEL 3 data for SHENZHEN CITY
+CN-44-G070067-FT = Futian
+#
+CN-44-G070067-LH = Luohu
+#
+CN-44-G070067-NS = Nanshan
+#
+CN-44-G070067-BA = Baoan
+#
+CN-44-G070067-LG = Longgang
+#
+CN-44-G070067-YT = Yantian
+
diff --git a/geography/org.eclipse.stem.internal.data.geography/resources/data/geo/country/CHN/CHN_3_MAP.xml b/geography/org.eclipse.stem.internal.data.geography/resources/data/geo/country/CHN/CHN_3_MAP.xml
new file mode 100644
index 0000000..58d6e1b
--- /dev/null
+++ b/geography/org.eclipse.stem.internal.data.geography/resources/data/geo/country/CHN/CHN_3_MAP.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+# ***************************************************************************************************
+# * Copyright (c) 2007 IBM Corporation and others.
+# * All rights reserved. This program and the accompanying materials
+# * are made available under the terms of the Eclipse Public License v1.0
+# * which accompanies this distribution, and is available at
+# * http://www.eclipse.org/legal/epl-v10.html
+# *
+# * Contributors:
+# *     IBM Corporation - initial API and implementation
+# ********************************************************************************************** --> 
+<!-- 
+# /*******************************************************************************************************
+# * Key Format: 
+# * 
+# * 	 For level 1 data, the key is the ISO3166-2 code. An ISO3166-2 code is composed as follows: 
+# * a two letter country code followed by up to three alphanumeric characters for the level 1 administration.
+# *
+# * 	 For level 2 data, the key is the ISO3166-2 code followed by six digits. The leftmost two digits indicate
+# * the level 1 container of a level 2 administration (i.e. California is a level 1 container for Orange County
+# * which is a level 2 administration).  The two digits were taken from a lexicographic sorting of all the
+# * level 1 administrations within a country. Similarly, the four leftmost digits indicate the level 2 administration.
+# * Again, these four digits are an index into the lexicographic sorting of all level 2 administrations within 
+# * a level 1 administration. 
+# *************************************************************************************************** --> 
+
+<Map xmlns:gml="http://www.opengis.net/gml" xmlns:georss="http://www.georss.org/georss">
+<title>CHN Level 1 Map</title>
+<subTitle>Administrative Boundaries</subTitle>
+<updated>Tue Nov 07 16:57:55 PST 2006 </updated>
+<entry>
+<georss:where>
+<gml:Polygon gml:id="CN-44-G070067-BA">
+<gml:outerBoundaryIs>
+<gml:LinearRing>
+<gml:posList>
+22.672331 114.062138 22.684091 114.084644 22.669061 114.0982 22.67666 114.109365 22.702519 114.107331 22.727803 114.123682 22.727155 114.117326 22.731663 114.112728 22.747544 114.106395 22.753782 114.084996 22.747169 114.080466 22.763837 114.072539 22.761654 114.059539 22.769052 114.047152 22.76568 114.028642 22.770248 114.009012 22.777409 114.002808 22.80674 113.995636 22.809241 113.984701 22.817777 113.97863 22.82016 113.967204 22.833765 113.944255 22.843024 113.947005 22.847033 113.942046 22.848021 113.912232 22.857625 113.894649 22.850042 113.884552 22.84166 113.881669 22.838869 113.867071 22.842913 113.856805 22.838597 113.848808 22.817843 113.848432 22.807118 113.844592 22.798712 113.831136 22.79716 113.820972 22.790862 113.82107 22.787828 113.817114 22.789617 113.807005 22.782751 113.807751 22.77558 113.798487 22.762082 113.79979 22.749145 113.776022 22.734136 113.763063 22.733648 113.729528 22.728106 113.715946 22.726393 113.68352 22.697177 113.701844 22.649396 113.723603 22.542888 113.747328 22.535732 113.745916 22.528318 113.735535 22.520582 113.692399 22.447412 113.699814 22.416114 113.722692 22.409449 113.735253 22.516216 113.836299 22.531673 113.857115 22.547586 113.900917 22.562977 113.922503 22.571698 113.922604 22.579901 113.933197 22.58658 113.936156 22.593551 113.930993 22.598716 113.933979 22.604535 113.931339 22.613872 113.937102 22.6362 113.935238 22.65742 113.951591 22.656977 113.973232 22.648414 113.974815 22.645135 113.979249 22.643759 113.997029 22.635255 114.001227 22.63413 114.009938 22.612017 114.019419 22.606064 114.029787 22.588103 114.029856 22.589821 114.050857 22.587395 114.059112 22.592988 114.065604 22.591133 114.072783 22.5982 114.078085 22.606547 114.06731 22.601146 114.068907 22.60862 114.063856 22.618244 114.067568 22.632135 114.067299 22.635934 114.058187 22.641545 114.057419 22.669629 114.058714 22.672331 114.062138
+</gml:posList>
+</gml:LinearRing></gml:outerBoundaryIs>
+</gml:Polygon>
+<gml:Polygon gml:id="CN-44-G070067-FT">
+<gml:outerBoundaryIs>
+<gml:LinearRing>
+<gml:posList>
+22.591133 114.072783 22.592988 114.065604 22.587395 114.059112 22.589821 114.050857 22.588102 114.029891 22.586004 114.016159 22.582217 114.012039 22.570114 114.00892 22.562909 114.012577 22.561198 114.003994 22.555931 114.006308 22.55302 114.00266 22.539055 114.003994 22.534018 113.999577 22.513987 114.006482 22.503929 114.024001 22.511034 114.035254 22.505174 114.063616 22.519415 114.075536 22.521347 114.083843 22.518334 114.088923 22.522133 114.094455 22.527082 114.096798 22.533337 114.090148 22.540224 114.10265 22.538051 114.111486 22.574234 114.110501 22.57034 114.099265 22.575741 114.093598 22.574271 114.085563 22.583496 114.081477 22.591133 114.072783
+</gml:posList>
+</gml:LinearRing></gml:outerBoundaryIs>
+</gml:Polygon>
+<gml:Polygon gml:id="CN-44-G070067-LG">
+<gml:outerBoundaryIs>
+<gml:LinearRing>
+<gml:posList>
+22.755981 114.215561 22.744613 114.220989 22.731504 114.214091 22.722775 114.216392 22.71681 114.204325 22.699472 114.205844 22.693261 114.198891 22.661484 114.185264 22.66756 114.162997 22.672732 114.161741 22.676054 114.170178 22.685435 114.174126 22.696263 114.158268 22.702453 114.159587 22.708201 114.149828 22.722351 114.14728 22.718419 114.140491 22.723224 114.134691 22.721509 114.13017 22.727983 114.124784 22.702519 114.107331 22.67666 114.109365 22.669061 114.0982 22.684091 114.084644 22.669629 114.058714 22.635934 114.058187 22.632135 114.067299 22.618244 114.067568 22.60862 114.063856 22.601146 114.068907 22.606547 114.06731 22.597815 114.080959 22.603386 114.081693 22.606549 114.088036 22.605779 114.099588 22.594376 114.11367 22.59738 114.124467 22.592126 114.137597 22.598541 114.152803 22.611243 114.161621 22.609915 114.175796 22.624875 114.187435 22.626018 114.200334 22.617946 114.208703 22.61374 114.207417 22.60929 114.222113 22.591481 114.228844 22.602766 114.237982 22.617202 114.242569 22.629904 114.261277 22.628487 114.268463 22.632028 114.273585 22.636869 114.273951 22.647457 114.266883 22.657325 114.267983 22.662883 114.280276 22.65553 114.284512 22.650022 114.293934 22.640116 114.298266 22.628527 114.297597 22.629251 114.305755 22.638428 114.314224 22.631513 114.321689 22.633495 114.343071 22.628976 114.349179 22.622821 114.350483 22.611361 114.345841 22.608277 114.358927 22.604639 114.35992 22.571439 114.350644 22.565132 114.445384 22.548422 114.466412 22.472177 114.466199 22.439975 114.480932 22.42381 114.505021 22.421695 114.513321 22.421381 114.525647 22.436284 114.568872 22.46293 114.58705 22.486369 114.614548 22.493892 114.625887 22.502331 114.650056 22.530647 114.658681 22.55358 114.632741 22.577062 114.61727 22.625445 114.616553 22.660517 114.605858 22.67325 114.591416 22.673688 114.584889 22.663355 114.539982 22.664708 114.523501 22.674818 114.512966 22.675678 114.498343 22.674148 114.488683 22.668419 114.483151 22.672773 114.477598 22.674802 114.459553 22.671105 114.456077 22.667 114.438659 22.682214 114.435132 22.684813 114.443743 22.695065 114.451929 22.704532 114.448006 22.708326 114.432597 22.725511 114.412543 22.732578 114.411888 22.746586 114.427137 22.75923 114.429715 22.766267 114.424539 22.774281 114.424505 22.782123 114.416227 22.784664 114.409812 22.781695 114.402376 22.767586 114.40222 22.765802 114.398794 22.771323 114.373028 22.778365 114.367218 22.786766 114.351307 22.790002 114.350878 22.795455 114.358073 22.804794 114.357222 22.80731 114.359903 22.811497 114.359472 22.815048 114.353688 22.811338 114.343958 22.813521 114.327336 22.804644 114.308393 22.80997 114.299087 22.807311 114.294754 22.801401 114.294357 22.800288 114.281054 22.787613 114.26502 22.800442 114.241246 22.815473 114.236259 22.795831 114.216219 22.787241 114.192046 22.772115 114.197525 22.768727 114.206091 22.755981 114.215561
+</gml:posList>
+</gml:LinearRing></gml:outerBoundaryIs>
+</gml:Polygon>
+<gml:Polygon gml:id="CN-44-G070067-LH">
+<gml:outerBoundaryIs>
+<gml:LinearRing>
+<gml:posList>
+22.5982 114.078085 22.591133 114.072783 22.583496 114.081477 22.574343 114.085419 22.575741 114.093598 22.57034 114.099265 22.574234 114.110501 22.538051 114.111486 22.538779 114.115049 22.535086 114.115257 22.540151 114.120956 22.533228 114.123308 22.545383 114.142217 22.544901 114.16004 22.557917 114.163618 22.558096 114.168209 22.564797 114.172756 22.561995 114.175418 22.562595 114.188472 22.556788 114.192358 22.557259 114.201923 22.57232 114.218539 22.581578 114.213738 22.586042 114.227054 22.591481 114.228844 22.60929 114.222113 22.61374 114.207417 22.617946 114.208703 22.626018 114.200334 22.624875 114.187435 22.609915 114.175796 22.611243 114.161621 22.598541 114.152803 22.592126 114.137597 22.59738 114.124467 22.594376 114.11367 22.605268 114.100958 22.606675 114.09159 22.603617 114.08202 22.599678 114.083147 22.5982 114.078085
+</gml:posList>
+</gml:LinearRing></gml:outerBoundaryIs>
+</gml:Polygon>
+<gml:Polygon gml:id="CN-44-G070067-NS">
+<gml:outerBoundaryIs>
+<gml:LinearRing>
+<gml:posList>
+22.506303 113.997266 22.513987 114.006482 22.529682 113.999479 22.539055 114.003994 22.55302 114.00266 22.555931 114.006308 22.560939 114.003886 22.562909 114.012577 22.570114 114.00892 22.582217 114.012039 22.589529 114.030786 22.606064 114.029787 22.612017 114.019419 22.63413 114.009938 22.635255 114.001227 22.643759 113.997029 22.644023 113.981667 22.648414 113.974815 22.656977 113.973232 22.658642 113.956087 22.655666 113.949057 22.643623 113.943025 22.640058 113.936492 22.613872 113.937102 22.604535 113.931339 22.598716 113.933979 22.593551 113.930993 22.58658 113.936156 22.579901 113.933197 22.571698 113.922604 22.562977 113.922503 22.547586 113.900917 22.531673 113.857115 22.516216 113.836299 22.409449 113.735253 22.398465 113.764399 22.371004 113.79039 22.347731 113.802364 22.290004 113.813838 22.240159 113.837116 22.270685 113.850441 22.276198 113.858777 22.336642 113.880412 22.432119 113.880408 22.475107 113.959233 22.506303 113.997266
+</gml:posList>
+</gml:LinearRing></gml:outerBoundaryIs>
+</gml:Polygon>
+<gml:Polygon gml:id="CN-44-G070067-YT">
+<gml:outerBoundaryIs>
+<gml:LinearRing>
+<gml:posList>
+22.627053 114.25644 22.617202 114.242569 22.612806 114.243026 22.586042 114.227054 22.581578 114.213738 22.57232 114.218539 22.55858 114.204151 22.558209 114.230408 22.547413 114.238877 22.556746 114.254208 22.568487 114.287354 22.571439 114.350644 22.604639 114.35992 22.608277 114.358927 22.611361 114.345841 22.625069 114.350579 22.63291 114.345072 22.630763 114.333973 22.634119 114.328807 22.631513 114.321689 22.638428 114.314224 22.629251 114.305755 22.628527 114.297597 22.640116 114.298266 22.650022 114.293934 22.663377 114.27881 22.659088 114.270092 22.653858 114.267378 22.632028 114.273585 22.627053 114.25644
+</gml:posList>
+</gml:LinearRing></gml:outerBoundaryIs>
+</gml:Polygon>
+</georss:where>
+</entry>
+</Map>
diff --git a/geography/org.eclipse.stem.internal.data.geography/resources/data/relationship/commonborder/CHN_3_CHN_3.properties b/geography/org.eclipse.stem.internal.data.geography/resources/data/relationship/commonborder/CHN_3_CHN_3.properties
new file mode 100644
index 0000000..61bafc5
--- /dev/null
+++ b/geography/org.eclipse.stem.internal.data.geography/resources/data/relationship/commonborder/CHN_3_CHN_3.properties
@@ -0,0 +1,22 @@
+# 
+#  File generated from:
+#   c:/stem/org.eclipse.stem.geography/resources/data/geo/country/CHN/CHN_2_MAP.xml
+#
+#  Generated by: class org.eclipse.stem.internal.data.utility.NeighborUtility
+# 
+RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.CommonBorderGeographicRelationshipPropertyFileSpecification
+TITLE = Common Border relationship within country CHN
+VALID = start=2015-01-01;
+ISOKEY_0 = CHN
+ISOKEY_0_LEVEL = 3
+ISOKEY_1 = CHN
+ISOKEY_1_LEVEL = 3
+0=CN-44-G070067-BA,CN-44-G070067-FT,1.0
+1=CN-44-G070067-BA,CN-44-G070067-LG,1.0
+2=CN-44-G070067-BA,CN-44-G070067-LH,1.0
+3=CN-44-G070067-BA,CN-44-G070067-NS,1.0
+4=CN-44-G070067-FT,CN-44-G070067-LH,1.0
+5=CN-44-G070067-FT,CN-44-G070067-NS,1.0
+6=CN-44-G070067-LG,CN-44-G070067-LH,1.0
+7=CN-44-G070067-LG,CN-44-G070067-YT,1.0
+8=CN-44-G070067-LH,CN-44-G070067-YT,1.0
\ No newline at end of file
diff --git a/geography/org.eclipse.stem.internal.data.geography/resources/data/relationship/relativephysical/CHN_2_CHN_3.properties b/geography/org.eclipse.stem.internal.data.geography/resources/data/relationship/relativephysical/CHN_2_CHN_3.properties
new file mode 100644
index 0000000..791a155
--- /dev/null
+++ b/geography/org.eclipse.stem.internal.data.geography/resources/data/relationship/relativephysical/CHN_2_CHN_3.properties
@@ -0,0 +1,38 @@
+# CHN_1_CHN_2.properties 
+#/*******************************************************************************
+# * Copyright (c) 2007 IBM Corporation and others.
+# * All rights reserved. This program and the accompanying materials
+# * are made available under the terms of the Eclipse Public License v1.0
+# * which accompanies this distribution, and is available at
+# * http://www.eclipse.org/legal/epl-v10.html
+# *
+# * Contributors:
+# *     IBM Corporation - initial API and implementation
+# *******************************************************************************/
+
+# This is the name of the class that will interpret the rest of the file's contents
+RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.RelativePhysicalGeographicRelationshipPropertyFileSpecification
+
+# The title of the relationship
+TITLE = Physical containment of CHN level (3) by CHN (2)
+
+# This is the date range for which the values in this file are valid
+# See http://purl.org/dc/terms/1.1/valid
+VALID = start=2015-01-01;
+
+# This is the source of the data
+SOURCE = http://www.ibm.com
+
+# ISO3166-1 alpha3 keys and levels of relationship
+ISOKEY_0 = CHN
+ISOKEY_0_LEVEL = 2
+ISOKEY_1 = CHN
+ISOKEY_1_LEVEL = 3
+
+# Record Number = Key1, Key2, relationship
+1 = CN-44-G070067, CN-44-G070067-FT, Contains
+2 = CN-44-G070067, CN-44-G070067-LH, Contains
+3 = CN-44-G070067, CN-44-G070067-NS, Contains
+4 = CN-44-G070067, CN-44-G070067-BA, Contains
+5 = CN-44-G070067, CN-44-G070067-LG, Contains
+6 = CN-44-G070067, CN-44-G070067-YT, Contains
\ No newline at end of file
diff --git a/org.eclipse.stem.internal.data/src/org/eclipse/stem/internal/data/utility/CountryLvl0BorderGenerator.java b/org.eclipse.stem.internal.data/src/org/eclipse/stem/internal/data/utility/CountryLvl0BorderGenerator.java
new file mode 100644
index 0000000..372aad8
--- /dev/null
+++ b/org.eclipse.stem.internal.data/src/org/eclipse/stem/internal/data/utility/CountryLvl0BorderGenerator.java
@@ -0,0 +1,243 @@
+package org.eclipse.stem.internal.data.utility;
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+
+/**
+ * This class generates Admin Level 0 (country level) common borders.
+ * it derives them from the existing higher resolution border property files.
+ *
+ */
+public class CountryLvl0BorderGenerator {
+
+	
+		// get the path
+		private static final String sep = File.separator;
+		/**
+		 * the output path
+		 */
+		public static String outputPath;
+		/** 
+		 * location of existing files
+		 */
+		private static String commonBorderPath ;
+		
+		private static Map<String,String> borderElementMap = new HashMap<String,String>();
+		private static Map<String,Double> borderValueMap = new HashMap<String,Double>();
+		
+	/**
+	 * finds and returns the path to the existing property files
+	 * @return path to common border files
+	 */
+	public static String getCommonBorderPath() {
+		 URL location = CountryLvl0BorderGenerator.class.getProtectionDomain().getCodeSource().getLocation();
+	     String path0 = location.getFile().toString();
+		 int tail = path0.indexOf("bin");
+		 path0 = path0.substring(0, tail);
+		 path0 = path0.replaceAll("org.eclipse.stem.data"+sep, "org.eclipse.stem.data"+sep+"geography"+sep);
+		 path0 = path0.replaceAll("org.eclipse.stem.internal.data", "org.eclipse.stem.internal.data.geography");
+		 path0 = path0+"resources"+sep+"data"+sep+"relationship"+sep+"commonborder"+sep;
+		 outputPath = path0+"level0_files_test_output"+sep;
+		 commonBorderPath = path0;
+		 return path0;
+	}
+	
+	
+	/**
+	 * Generates everything
+	 */
+	@SuppressWarnings("unused")
+	public static void generateLvl0PropertyFiles() {
+		String path0 = getCommonBorderPath();
+
+		File dir = new File(path0);
+		System.out.println("" + dir.toString());
+		if (dir.isDirectory()) {
+			File[] fileList = dir.listFiles();
+			for (File f : fileList) {
+				String shortName = f.getName();
+				// the countries are already in alphabetic order
+				String ctry1 = shortName.substring(0, 3);
+				String ctry2 = shortName.substring(6, 9);
+				
+				double borderLength  = 0.0;
+				try {
+
+					// System.out.println("["+ctry1+"] , [" + ctry2+"]");
+					if (!ctry1.equals(ctry2)) {
+						
+						// not the same country
+						//System.out.println("" + shortName);
+						// remember the headerLines in the original file
+						List<String> headerLines = new ArrayList<String>();
+						
+						// 1. sum the border lengths
+						if (shortName.indexOf(".properties") >= 1) {
+							BufferedReader fileReader = new BufferedReader(new FileReader(f));
+
+							// Add all the source URLs for this country.
+							if (fileReader != null) {
+								String buffer = null;
+								while (EOF(buffer = fileReader.readLine()) != true) {
+									StringTokenizer tokenizer = new StringTokenizer(buffer, ","); //$NON-NLS-1$
+									if (tokenizer.countTokens() >= 3) {
+										String part1 = tokenizer.nextToken().trim();
+										String part2 = tokenizer.nextToken().trim();
+										String part3 = tokenizer.nextToken().trim();
+										borderLength += (new Double(part3)).doubleValue();
+										//System.out.println("" + buffer);
+									} else {
+										headerLines.add(buffer);
+									}
+								}
+							}// filereader ! null
+							fileReader.close();
+						}// properties file
+						
+						//System.out.println("" + shortName + "  length = "+borderLength);
+						
+						String fileNameKey = ctry1+"_0_"+ctry2+"_0.properties";
+						// eg 0=USA,MEX,   then double
+						String nameElement = "0="+ctry1+","+ctry2+",";
+						if(borderValueMap.containsKey(fileNameKey)) {
+							double oldVal = borderValueMap.get(fileNameKey).doubleValue();
+							if(borderLength > oldVal) {
+								borderValueMap.put(fileNameKey, new Double(borderLength)); // take the larger value if there are more than one
+							}
+						} else {
+							borderElementMap.put(fileNameKey,nameElement);
+							borderValueMap.put(fileNameKey, new Double(borderLength));
+						}
+					} // if not same country
+
+				} catch (Exception e) {
+					System.out.println("error reading file " + shortName + " "+ e.getMessage());
+					e.printStackTrace();
+				}
+				 
+			}// for Files
+		}// if Dir
+		
+		writeLevel0Files();
+		
+	}
+	
+	/**
+	 * 	writes the files
+	 */
+	public static void writeLevel0Files()	 {
+		Set<String> filenameSet = borderElementMap.keySet();
+		
+		File outDir = new File(outputPath);
+		  // if the directory does not exist, create it
+		  if (!outDir.exists()) {
+		    System.out.println("creating directory: " + outputPath);
+		    try{
+		        outDir.mkdir();
+		        
+		     } catch(SecurityException se){
+		        System.out.println("failed to create directory "+se.getMessage());
+		        System.exit(0);
+		     }        
+		  }
+		
+		int idx = outputPath.indexOf("org.eclipse.stem.data");
+		String commentPath = ".."+sep+commonBorderPath.substring(idx, commonBorderPath.length());
+		 
+		for(String fileName:filenameSet) {
+		
+			String ctry1 = fileName.substring(0, 3);
+			String ctry2 = fileName.substring(6, 9);
+			
+			try {
+				OutputStream os = null;
+				try {
+					final File fn = new File(outputPath+fileName);
+					os = new FileOutputStream(fn, false);
+					String title = "Common Border relationship [LVL=0] between country "	+ ctry1 + " and " + ctry2 ;
+					
+					String comments = "# " + "\n" + "#  File generated from:"
+							+ "\n" + "#   " + commentPath + ctry1 + "/" + ctry1 
+							+ "\n" + "#   " + commentPath + ctry2 + "/" + ctry2 
+							+ "\n" + "#\n" + "#  Generated by: "
+							+ CountryLvl0BorderGenerator.class + "\n" + "# " + "\n";
+					
+					os.write(comments.getBytes());
+					String property = "RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.CommonBorderGeographicRelationshipPropertyFileSpecification"
+							+ "\n";
+					os.write(property.getBytes());
+					property = "TITLE = " + title + "\n";
+					os.write(property.getBytes());
+					property = "VALID = start=2006-01-01;" + "\n";
+					os.write(property.getBytes());
+					
+					String keyInfo = "ISOKEY_0 = " + ctry1 + "\n";
+					keyInfo += "ISOKEY_0_LEVEL = 0" + "\n";
+					keyInfo += "ISOKEY_1 = " + ctry2 + "\n";
+					keyInfo += "ISOKEY_1_LEVEL = 0" + "\n";
+					os.write(keyInfo.getBytes());
+					
+					String name = borderElementMap.get(fileName);
+					String value = ""+borderValueMap.get(fileName).doubleValue();
+					String s = name+value;
+					os.write(s.getBytes());
+					os.flush();
+					os.close();
+				} catch (final FileNotFoundException e) {
+					e.printStackTrace();
+				}
+			} catch (final IOException e) {
+				e.printStackTrace();
+			}	
+		}// for all files
+	}
+	
+	
+	
+
+
+/**
+ * Indicate End-Of-File
+ * 
+ * @param buffer
+ *            A buffer of diva data
+ * 
+ * @return True if we have reached End-Of-File
+ */
+static protected boolean EOF(String buffer) {
+	if (buffer == null || buffer.length() == 0)
+		return true;
+	return false;
+}
+	
+	/**
+	 * @param args
+	 */
+	@SuppressWarnings("nls")
+	public static void main(String[] args) {
+		generateLvl0PropertyFiles();
+	}
+}
diff --git a/population/org.eclipse.stem.internal.data.geography.population.human/resources/data/country/CHN/CHN_3_human_2006_population.properties b/population/org.eclipse.stem.internal.data.geography.population.human/resources/data/country/CHN/CHN_3_human_2006_population.properties
new file mode 100644
index 0000000..b5f3270
--- /dev/null
+++ b/population/org.eclipse.stem.internal.data.geography.population.human/resources/data/country/CHN/CHN_3_human_2006_population.properties
@@ -0,0 +1,120 @@
+# CHN_2_human_2006_population.properties 
+#
+# This file contains population values for CHINA
+#
+#
+#
+# /*********************************************************************************************
+#
+# * Copyright (c) 2006 IBM Corporation and others.
+#
+# * All rights reserved. This program and the accompanying materials
+#
+# * are made available under the terms of the Eclipse Public License v1.0
+#
+# * which accompanies this distribution, and is available at
+#
+# * http://www.eclipse.org/legal/epl-v10.html
+#
+# *
+#
+# * Contributors:
+#
+# *     IBM Corporation - initial API and implementation
+#
+# ***********************************************************************************************/
+#
+#
+#
+# /**********************************************************************************************
+#
+# * Key Format: 
+#
+# * 
+#
+# * 	 For level 1 data, the key is the ISO3166-2 code. An ISO3166-2 code is composed as follows: 
+#
+# * a two letter country code followed by up to three alphanumeric characters for the level 1 administration.
+#
+# *
+#
+# * 	 For level 2 data, the key is the ISO3166-2 code followed by six digits. The leftmost two digits indicate
+#
+# * the level 1 container of a level 2 administration (i.e. California is a level 1 container for Orange County
+#
+# * which is a level 2 administration).  The two digits were taken from a lexicographic sorting of all the
+#
+# * level 1 administrations within a country. Similarly, the four leftmost digits indicate a level 2 administration.
+#
+# * Again, these four digits are an index into the lexicographic sorting of all level 2 administrations within 
+#
+# * a level 1 administration. 
+#
+# ************************************************************************************************/
+#
+#
+#
+# This is the name of the class that will interpret the rest of the file's contents
+#
+RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.CountryPopulationLabelPropertyFileSpecification
+#
+#
+#
+# The ISO-3166-1 alpha3 code for the country
+#
+ISOKEY = CHN
+#
+#
+#
+# The administration level of the population data
+#
+ADMIN_LEVEL = 3
+#
+#
+#
+# This is the date range for which the population values in this file are valid 
+#
+# See http://purl.org/dc/terms/1.1/valid
+#
+VALID = start=2006-01-01; end=2006-12-31;
+#
+#
+#
+# This is the source of the data
+#
+SOURCE = Primary (https://www.cia.gov/library/publications/the-world-factbook/). 
+#
+# SOURCE = Distributions (subdivision ratios) validated against ORNL LandScan 2007(TM)/UT-Battelle, LLC 
+#
+# SOURCE = http://www.stats.gov.cn/english/index.htm
+#
+# SOURCE = https://www.cia.gov/library/publications/the-world-factbook/
+#
+#
+#
+# The population identifier
+#
+POPULATION = human
+#
+#
+#
+# The year the data is valid
+#
+YEAR = 2015
+#
+#
+#
+# Level 1 (admin 1 = e.g., state)
+#
+# Level 2 (admin 2 = e.g., county)
+#
+#
+#
+CN-44-G070067-BA = 4499284
+CN-44-G070067-FT = 1317511
+CN-44-G070067-LG = 2320460
+CN-44-G070067-LH = 923421
+CN-44-G070067-NS = 1088345
+CN-44-G070067-YT = 209360
+
+