# OMN_1_OMN_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 OMN level (2) by OMN (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 = OMN
ISOKEY_0_LEVEL = 1
ISOKEY_1 = OMN
ISOKEY_1_LEVEL = 2

# Record Number = Key1, Key2, relationship
1 = OM-DHA, OM-DHA-G040005, Contains
2 = OM-DHA, OM-DHA-G040004, Contains
3 = OM-DHA, OM-DHA-G040001, Contains
4 = OM-DHA, OM-DHA-G040003, Contains
5 = OM-DHA, OM-DHA-G040002, Contains
6 = OM-MU, OM-MU-G090002, Contains
7 = OM-MU, OM-MU-G090004, Contains
8 = OM-MU, OM-MU-G090001, Contains
9 = OM-MU, OM-MU-G090003, Contains
10 = OM-DA, OM-DA-G010003, Contains
11 = OM-DA, OM-DA-G010005, Contains
12 = OM-DA, OM-DA-G010002, Contains
13 = OM-DA, OM-DA-G010008, Contains
14 = OM-DA, OM-DA-G010006, Contains
15 = OM-DA, OM-DA-G010004, Contains
16 = OM-DA, OM-DA-G010007, Contains
17 = OM-DA, OM-DA-G010001, Contains
18 = OM-WU, OM-WU-G060001, Contains
19 = OM-MA, OM-MA-G100001, Contains
20 = OM-MA, OM-MA-G100004, Contains
21 = OM-MA, OM-MA-G100002, Contains
22 = OM-MA, OM-MA-G100005, Contains
23 = OM-MA, OM-MA-G100003, Contains
24 = OM-DHF, OM-DHF-G080007, Contains
25 = OM-DHF, OM-DHF-G080002, Contains
26 = OM-DHF, OM-DHF-G080001, Contains
27 = OM-DHF, OM-DHF-G080003, Contains
28 = OM-DHF, OM-DHF-G080006, Contains
29 = OM-DHF, OM-DHF-G080005, Contains
30 = OM-DHF, OM-DHF-G080004, Contains
31 = OM-BA, OM-BA-G030003, Contains
32 = OM-BA, OM-BA-G030009, Contains
33 = OM-BA, OM-BA-G030004, Contains
34 = OM-BA, OM-BA-G030008, Contains
35 = OM-BA, OM-BA-G030011, Contains
36 = OM-BA, OM-BA-G030006, Contains
37 = OM-BA, OM-BA-G030005, Contains
38 = OM-BA, OM-BA-G030007, Contains
39 = OM-BA, OM-BA-G030010, Contains
40 = OM-BA, OM-BA-G030002, Contains
41 = OM-BA, OM-BA-G030001, Contains
42 = OM-SH, OM-SH-G020001, Contains
43 = OM-SH, OM-SH-G020002, Contains
44 = OM-SH, OM-SH-G020007, Contains
45 = OM-SH, OM-SH-G020008, Contains
46 = OM-SH, OM-SH-G020003, Contains
47 = OM-SH, OM-SH-G020005, Contains
48 = OM-SH, OM-SH-G020006, Contains
49 = OM-SH, OM-SH-G020004, Contains
