# CCK_0_human_2006_population.properties
# This file contains population values for Cocos (Keeling) Islands
#/*******************************************************************************
# * 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 = CCK

# 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/ck.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
CCK = 574

# State/Province
