# MNG_1_human_2006_population.properties 
#
# This file contains population values for MONGOLIA
#
#
#
# /*********************************************************************************************
#
# * 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 = MNG
#
#
#
# The administration level of the population data
#
ADMIN_LEVEL = 1
#
#
#
# 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 = https://www.cia.gov/library/publications/the-world-factbook/
#
#
#
# The population identifier
#
POPULATION = human
#
#
#
# The year the data is valid
#
YEAR = 2006
#
#
#
# State/Province
#
#
#
MN-065 = 73127
MN-047 = 1066702
MN-073 = 110738
MN-046 = 111424
MN-055 = 137152
MN-039 = 84231
MN-063 = 62517
MN-057 = 117962
MN-043 = 97038
MN-069 = 101856
MN-067 = 163814
MN-053 = 51932
MN-059 = 77356
MN-049 = 205997
MN-04 = 120994
MN-05 = 66825
MN-06 = 89661
MN-07 = 92896

