# MSR_0_human_2006_population.properties
# This file contains population values for Montserrat
#/*******************************************************************************
# * 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
# *******************************************************************************/

# This is the name of the class that will interpret the rest of the file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.records.CountryGraphRecord$CountryPopulationLabelGraphRecord

# The ISO-3166-1 alpha3 code for the country
ISOKEY = MSR

# The administration level of the graph data
ADMIN_LEVEL = 0

# 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=2006-01-01; end=2006-12-31;

# This is the source of the data
# The value was sampled in June and represents the average for the year.
SOURCE =  https://www.cia.gov/cia/publications/factbook/geos/mh.html

# The population identifier
POPULATION = human

# The year the data is valid
YEAR = 2006

# The key is the ISO-3166-1 alpha3 three letter identifier of the country
# The units are individuals
MSR = 9439

