# NAM_1_NAM_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 NAM level (2) by NAM (1)

# 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=1900-01-01;

# This is the source of the data
SOURCE = http://www.ibm.com

# ISO3166-1 alpha3 keys and levels of relationship
ISOKEY_0 = NAM
ISOKEY_0_LEVEL = 1
ISOKEY_1 = NAM
ISOKEY_1_LEVEL = 2

# Record Number = Key1, Key2, relationship
1 = NA-MRI, NA-MRI-G210001, Contains
2 = NA-OMU, NA-OMU-G270001, Contains
3 = NA-KAK, NA-KAK-G110001, Contains
4 = NA-HEW, NA-HEW-G100001, Contains
5 = NA-LU, NA-LU-G190006, Contains
6 = NA-LU, NA-LU-G190005, Contains
7 = NA-LU, NA-LU-G190003, Contains
8 = NA-LU, NA-LU-G190002, Contains
9 = NA-LU, NA-LU-G190004, Contains
10 = NA-LU, NA-LU-G190001, Contains
11 = NA-LU, NA-LU-G190007, Contains
12 = NA-OKD, NA-OKD-G240001, Contains
13 = NA-MLT, NA-MLT-G200001, Contains
14 = NA-OTI, NA-OTI-G310001, Contains
15 = NA-GR, NA-GR-G070001, Contains
16 = NA-OUT, NA-OUT-G330001, Contains
17 = NA-KAS, NA-KAS-G130001, Contains
18 = NA-WIH, NA-WIH-G380001, Contains
19 = NA-BET, NA-BET-G010001, Contains
20 = NA-RBH, NA-RBH-G350001, Contains
21 = NA-DA, NA-DA-G040001, Contains
22 = NA-KE, NA-KE-G160001, Contains
23 = NA-NAL, NA-NAL-G220001, Contains
24 = NA-SWK, NA-SWK-G360001, Contains
25 = NA-KAV, NA-KAV-G150001, Contains
26 = NA-HEA, NA-HEA-G090001, Contains
27 = NA-HEA, NA-HEA-G090002, Contains
28 = NA-GO, NA-GO-G060001, Contains
29 = NA-CA, NA-CA-G030001, Contains
30 = NA-TSB, NA-TSB-G370001, Contains
31 = NA-KIB, NA-KIB-G140001, Contains
32 = NA-OWA, NA-OWA-G340001, Contains
33 = NA-BO, NA-BO-G020001, Contains
