EDCS Reference
Manual
Concept Mapping from EDCS 4.1 to FACC 2.1 |
This document describes how environmental concepts are mapped from the
EDCS Version 4.1 to FACC Edition 2.1.
Table of Contents
- Overview
- Denoting a Concept
- Overview
- Denoting a Concept
-
Denoting Concepts
-
Specifying Units of Measure
-
Attribute Value Metadata
-
Mapping Concepts
- Mapping API Functions
- Mapping API Data Structures
- Mapping API Use Examples
Part 1: EDCS Version 4.1 Background
1. Overview
The EDCS provides mechanisms to unambiguously specify objects used
to model environmental concepts. This is accomplished by specifying a
collection of nine EDCS Dictionaries of environmental concepts, and a functional
interface to convert between numeric values given in different units
of measure and scales. An EDCS Dictionary is a list of EDCS Dictionary
Entries each of which specifies a single concept. Each EDCS Dictionary
contains entries of a similar nature, however each entry is unique. Each
EDCS Dictionary Entry consists of the following fields:
- definition
- label
- code
- reference type and references
- other EDCS Dictionary-dependent information such as value types,
unit symbols, unit equivalence classes.
The nine EDCS Dictionaries are:
- EDCS Classification (EC) Dictionary
- EDCS Attribute (EA) Dictionary
- EDCS Attribute Value Metadata (EM) Dictionary
- EDCS Attribute Enumerant (EE) Dictionary
- EDCS Unit (EU) Dictionary
- EDCS Unit Scale (ES) Dictionary
- EDCS Unit Equivalence Class (EQ) Dictionary
- EDCS Organizational Schema (EO) Dictionary
- EDCS Group (EG) Dictionary
Additional entries may be added to most EDCS Dictionaries through the
process of registration.
The EDCS Application Program Interface (API) supports conversion between
real values given in different units of measure.
See the EDCS Website for
more information on the structure and content of the EDCS.
2. Denoting a Concept
Every concept In the EDCS Version 4.1 can be consistently denoted in
two fashions: a label and a code.
-
The label field of an EDCS Dictionary Entry is a
compact and human-readable designator that is used to denote a concept.
Labels may include the name or names for the concept. Labels:
- uniquely denote a concept within a dictionary,
- are a succinct expression of the concept it denotes,
- are represented as a character string, and
- are human readable.
-
The code field of an EDCS Dictionary Entry is a
compact, and not necessarily human-readable, designator that is used to
denote a concept. Codes:
- uniquely denote a concept within a dictionary,
- are represented as an integer, and
- are assigned sequentially in increasing order within an EDCS
Dictionary, beginning at 1.
-
There is a one-to-one relationship between labels and codes in the
same EDCS Dictionary. Therefore, a label and a code may be used interchangeably
to denote the same concept.
The EDCS Version 4.1 carefully separates the abstract specification
of the EDCS
(see ISO/IEC 18025 EDCS)
from language-specific bindings (see
ISO/IEC 18041-4 EDCS Language Bindings: Part 4: C).
As a result, in EDCS Version 4.1, three mechanisms exist for denoting
EDCS concepts: the symbolic constant, the label,
and the code.
For example, from files "edcs_types.h" and "edcs_class_iso.h" in the
SDK Version 4.1 release:
/*
* GLOBAL CONSTANT: ECC_EXTRACTION_MINE
*
* Definition:
* An <EXCAVATION> made in the <TERRAIN> for the purpose of extracting
* and/or exploiting natural resources; an extraction mine.
*/
#define ECC_EXTRACTION_MINE ((EDCS_Classification_Code)343)
static const EDCS_Classification_Label_Entry
EDCS_Classification_Labels[]=
{...
{ECC_EXTRACTION_MINE, "EXTRACTION_MINE"},
...
}; /* EDCS_Classification_Labels */
The classification symbolic constant
is "ECC_EXTRACTION_MINE",
the label is "EXTRACTION_MINE",
and the code is the EDCS_Classification_Code
data type (an integer) of value 343.
Analogous mechanisms, and supporting structures and data types, exist
for concepts in each of the other eight EDCS Dictionaries.
Thus:
-
The symbolic constant can be used by programmers as a
shorthand for the code, with the value of the
code denoting the concept (e.g.)
"Extraction Mine". The symbolic constants are defined in
ISO/IEC 18041-4
EDCS Language Bindings: Part 4: C.
-
The label is human-readable, and follows particular
syntactic rules. It also denotes the concept (e.g.) "Extraction Mine",
and is represented as a string with no prefix. Its string-value
is defined in the EDCS abstract specification
(ISO/IEC 18025 EDCS). The
corresponding symbolic constant is derivable from the
label through a set of rules documented in ISO/IEC
18041-4; in particular, the results of applying those rules are fully
documented there.
-
The code is an integer, and is intended for efficient
software use. It also denotes the concept (e.g.) "Extraction Mine".
In summary:
- Symbolic constants are used by programmers
as shorthand for codes.
- Labels are used by humans, and user interfaces.
- Codes are used by software.
Part 2: FACC Edition 2.1 Background
1. Overview
- Scope of DIGEST
Digital Geographic Information (DGI) has evolved into an essential element
in the planning and conduct of civil and military operations. The required
data volume, demands, and data complexity dictate that multi-national agreements
for digital data standards be established to assure compatibility. In
support of this aim, the Digital Information Exchange Standard (DIGEST)
standards define those aspects necessary to the exchange of DGI. They are
as follows:
- the data structures to be supported (including spatial structure
and metadata);
- a feature and attribute coding scheme;
- a format;
- exchange media; and
- administrative procedures.
The type of data to be exchanged using these standards includes the
digital representation of the following:
- geographic feature geometry and feature attribute information;
- information concerning the appearance and status of the Earth's
surface and its features in the electromagnetic spectrum, e.g. radar,
infra-red; and
- other geographic information.
- Purpose of DIGEST
DIGEST standards enable interoperability and compatibility among national
and multinational systems and users. They also support the increasing
use of joint development programs. In fact, it is essential that geographic
staffs involved in the development of national Geographic Information Systems
are advised of the advantages of making their data structures and feature
and attribute coding schemes compatible with these standards.
- Feature and Attribute Coding Catalog
The intent of the DIGEST feature and attribute coding specification
is to provide a standard scheme for documenting features and attributes
necessary to distinguish environmental concepts commonly found in a Digital
Geographic Information Systems and for the orderly exchange of such data.
The specification, which is Part 4 of DIGEST, provides a common menu
of features and attributes along with a standardized coding system. They
are known collectively as the - Feature and Attribute Coding Catalogue
(FACC) Data Dictionary.
FACC provides a means for encoding real-world entities or objects and
concepts, including those which are not necessarily visible or have a
tangible physical form (e.g., airspace). FACC describes the world in terms
of features, attributes and attribute values. FACC does not specify the
delineation or geometry of features. Attributes are the properties or
characteristics associated with features. A standardized dictionary is
required to support encoding in order to maximize interoperability and
to understand the production, exchange, distribution, and exploitation
of digital geographic data.
The FACC Data Dictionary allows for individual nations to define
"national" features and attributes for cases where such features and attributes
are not readily defined in the normative FACC Data Dictionary. National
extensions are not specified within the normative FACC Data Dictionary, and
may not support interoperability.
The FACC Data Dictionary can be modified and updated to keep pace with
the dynamic technology improvements and changing requirements. National
extensions may, if proposed and approved, be incorporated into future editions
of the normative FACC Data Dictionary. Procedures for extending and modifying
the FACC Data Dictionary are described in DIGEST Part 4, Clause 5.3. In
this way, the FACC Data Dictionary may be extended so as to satisfy application
requirements.
FACC Data Dictionary elements implement a specific coding structure.
The coding structure does not specify criteria for feature and attribute
selection or collection (e.g., positional accuracy, feature granularity).
Selection and collection criteria are dependent upon user requirements,
and determined by product specifications, data models, and database schemas.
- Feature coding
Within FACC, each feature is identified (denoted) by a unique five-character
code. The first character corresponds to the feature category
and can have an alphabetic value from "A" to "Z". Currently there are ten
major feature categories, including one category, "S", which has been reserved
for dataset-specific features. The categories are as follows:
Category Category |
Code Name |
A |
Culture |
B |
Hydrography |
C |
Hypsography |
D |
Physiography |
E |
Vegetation |
F |
Demarcation |
G |
Aeronautical Information |
I |
Cadastral |
S |
Special Use (Dataset-specific) |
Z |
General |
Each major feature category is further divided into subcategories identified
by the second character of the five-character code containing
an alphabetic value from "A" to "Z". Finally, the third, fourth, and fifth
characters of the five-character feature code are a numeric
value from 000 to 999. This value provides unique feature type identification
within categories. Thus, all features must be identified by all five alphanumeric
characters; e.g., the feature named "Building" is denoted
by the code "AL015". Feature codes are listed
in Annex
A of the FACC Data Dictionary.
Each feature is associated with a textual description, which provides
a human readable dictionary definition for the feature. Each Feature Code
is also associated with a short human readable name.
Examples:
Code: "AA010"
Name: "Mine"
Definition: "An excavation made in the earth for
the purpose of extracting natural deposits. (See
also AQ090)"
Code: "BB150"
Name: "Landing Place"
Definition: "A place on shore where landing from
the sea is possible."
Code: "DB180"
Name: "Volcano"
Definition: "A mountain or hill, often conical, formed
around a vent in the earth's crust through which
molten rock, ash, or gases are or have been expelled."
Code: "FA001"
Name: "Administrative Area"
Definition: "An area controlled by administrative
authority."
Code: "GB075"
Name: "Taxiway"
Definition: "A prepared surface providing access
to/from runways and the aircraft parking area, terminal
area, or service area, etc."
- Attribute coding
Attributes are used to describe characteristics of a feature, e.g.,
vegetation characteristic of a forested area (e.g., deciduous or evergreen).
Each attribute is described by using an attribute code to
represent the category of information. Each attribute is associated with
a textual description, which provides a human readable dictionary definition
for the attribute. Attribute value format statements provide a computer
interpretation for the attribute value data type (e.g., real, alphanumeric)
and attribute values give quantitative/qualitative meaning to the attribute.
Each attribute is identified by a unique three-character alphanumeric
code. For example, the attribute named "Building
Function Code" is denoted by the code "BFC", and the attribute
named "Total Usable Width" is denoted by the code
"WD2".
There are two types of attribute values: "coded" and "actual".
A given attribute has only one type of value, which is specified in
Annex
B of the FACC Data Dictionary.
Certain generic attribute concepts are often useful for value adding,
or explaining missing attribution, and are pre-defined in FACC for all
types of attributes. These concepts are: Null, Unknown, Unpopulated, Not
Applicable, Multiple, and Other. DIGEST Part 2, Annex
C, Clause C.2.3.4.4 describes the implementation of these generic attribute
concepts.
- Coded Value Attributes
"Coded" values (equivalent to enumerants in other coding
schemes) may range from 0 to 999 and each value is given meaning by a name
consisting of descriptive text. The value of such attributes is thus
an (enumerant) code denoting the named description.
For Coded Value Attributes, its value may be logically defined as shown
below, comprised of a code, a format (a data type) and a value:
Attribute Code |
Attribute Value Format |
Attribute Value |
BFC |
I |
6 |
where code "BFC" denotes the attribute named
"Building Function Category";
"I"
indicates the data type of the coded value (a 4-byte integer for coded
value attributes); and
"6"
indicates the value of the attribute (the code denoting the
named description "Hospital").
The full specification for this attribute concept is:
Code: "BFC"
Name: "Building Function Category"
Definition: "Type or purpose of the building."
Value Domain:
Code / Name: "0"
"Unknown"
Code / Name: "1"
"Fabrication Structures"
Code / Name: "2"
"Government Building"
Code / Name: "3"
"Capitol Building"
Code / Name: "4"
"Castle"
Code / Name: "5"
"Government Administration Building"
Code / Name: "6"
"Hospital"
Code / Name: "7"
"House of Worship"
Code / Name: "8"
"Military Administration/Operations Building"
Code / Name: "9"
"Museum"
Code / Name: ...
Code / Name: "997"
"Unpopulated"
Code / Name: "998"
"Not Applicable"
Code / Name: "999"
"Other"
Additional information about Coded Value Attributes is
contained in Annex B.
- Actual Value Attributes
"Actual" values have a format (data type), one of: A (Alphanumeric),
I (Integer), L (Lexical), R (Real Number) or S (Structured Text).
Real values are typically measurements like height, width, etc. The units
of measurement associated with an attribute are abbreviated according
to the units of measurement codes defined in DIGEST Part 3,
Clause 7 and incorporated into the specification of the attribute.
For example, a four lane, 19.5 meter wide road (denoted by the feature
code "AP030"), having the common name "M-4", would be
attributed as follows:
Attribute Code |
Attribute Value Format |
Attribute Value |
RTN (route number) |
A |
"M-4" |
LTN (track/lane number) |
I |
4 |
WD2 (total usable width in decimetres) |
I |
195 |
Data types or values for Lexical format attributes default to
DIGEST Lexical level 0 or ASCII. However, when a LEX flag is present, a
much wider range of character sets is available and it follows the ISO
10646 set of characters. Lexical values are described in detail in DIGEST Part 3,
Clause 5.
Structured Text format is used with only a few "low frequency
of occurrence" attributes which must be expressed in non-standard units
of measure. The format for Structured Text is:
number(unit)[qualifier], where
number |
is the numeric quantity of the attribute, |
unit (see DIGEST
Part 3, Clause 7) |
is enclosed in parentheses ( ), and |
qualifier |
is an expression (such as a rate) which qualifies unit
and is enclosed in brackets [ ]. |
For instance, the rate at which aircraft can safely fly according to
"Minimum Enroute Altitude" (denoted by the attribute code
"MEA") would be attributed as follows:
Attribute Code |
Attribute Value Format |
Attribute Value |
MEA |
S |
"6000[ft](AMSL)" |
where "ft" indicates "Feet" (Reference DIGEST Part 3,
Clause 7), and "AMSL" indicates "Above Mean Sea Level".
Some example Actual Value Attribute specifications are:
Code: "AIA"
Name: "Airspace Identification Attribute"
Definition: "A set of characters which enables an
individual airspace to be uniquely identified."
Value Domain: Lexical text string (15 characters).
Code: "AOO"
Name: "Angle of Orientation"
Definition: "The angular distance measured from true
north (0 deg) clockwise to the major axis
of the feature. If the feature is square, the axis 0 through 89 deg
shall be recorded. If the feature is circular, 360 deg shall be recorded."
Value Domain: Integer between O and 360 inclusive,
in increments of 1 degree.
Code: "BEN"
Name: "Basic Encyclopedia Number"
Definition: "Unique number associated with a feature
which is used to identify the feature in
other national or intelligence data bases."
Value Domain: ASCII text string (16 characters).
Code: "C60"
Name: "Rate of Current (IHO)"
Definition: "Rate of current flow at tide reference
level."
Value Domain: Real, in Knots.
Code: "PDR"
Name: "Pedestrian Rate"
Definition: "Number of pedestrians per time unit
(this attribute utilizes the structured
text approach), e.g. '10(persons)[per hour]'."
Value Domain: Structured ASCII text (80 characters).
Additional information about Actual Value Attributes is
contained in Annex B.
- Metadata coding
Attribute value format statements provide a computer interpretation
for the attribute value data type (e.g., real, alphanumeric) and attribute
values give quantitative/qualitative meaning to the attribute. Metadata
are used to describe why the value of an attribute doesn't fall within
its specified range of expected values. Metadata values which an attribute
can take on are: "Unknown", "Multiple", "Unpopulated", "Not Applicable",
and "Other". In addition "Null/No Value" is also defined. How these metadata
concepts are encoded in FACC attribute values depends on the representation
of that attribute. Table 5.2, below,
from the FACC specification details these encodings.
FACC Table
5.2 Special Reserved Values
Attribute Type
|
Null/No
Value
|
Unknown
|
Multiple
|
Unpopulated
|
Not
Applicable
|
Other
|
Text (T)
- Fixed Length
- Variable Length
|
.
N/A1
0 Length
|
.
UNK
UNK
|
.
MUL
MUL
|
.
N_P
N_P
|
.
N_A
N_A
|
.
OTH
OTH
|
Coded
|
-327682
|
0
|
989
|
997
|
998
|
999
|
Integer
- Short Integer
- Long Integer
|
.
-327682
-21474836483
|
.
-32768
-2147483648
|
.
-32768
-2147483648
|
.
-32768
-2147483648
|
.
-32768
-2147483648
|
.
-32768
-2147483648
|
Floating Point
- Single Precision
- Double Precision
|
.
NaN
NaN
|
.
NaN
NaN
|
.
NaN
NaN
|
.
NaN
NaN
|
.
NaN
NaN
|
.
NaN
NaN
|
Notes: The value for "Null" for each data type is defined in DIGEST,
Part 2, Annex C, Table C-67.
1. If the length is one or two "-" or "--" should be used instead
(refer to DIGEST, Part 2, Annex C, Clause C.2.5.4).
2. The Null value for a short integer is defined to be the bit pattern
10000000 00000000, which is equivalent to the maximum negative number
in "two's complement number format". Therefore for a 16-bit length
number, the corresponding value for Null is -32768.
3. The Null value for a long integer is defined to be the bit pattern
10000000 00000000 0000000 0000000, which is equivalent to the maximum
negative number in "two's complement number format". Therefore for a 32-bit
length number, the corresponding value for Null is -2147483648.
See the DIGEST Website for more
information on the structure and content of FACC Edition 2.1.
2. Denoting a Concept
In FACC Edition 2.1, only a single mechanism exists for denoting feature
(classification), attribute, and "coded" (enumerant) concepts: the
code.
-- For features, for example:
Code: "AA010"
Name: "Mine"
Definition: "An excavation made in the earth for
the purpose of extracting natural deposits. (See
also AQ090)"
The feature name is "Mine", and the code
is (a 5-character string containing) "AA010".
-- For attributes, for example:
Code: "C60"
Name: "Rate of Current (IHO)"
Definition: "Rate of current flow at tide reference
level."
Value Domain: Real, in Knots.
The attribute name is "Rate of Current (IHO)", and
the code is (a 3-character string containing) "C60".
-- For coded attribute values (enumerants), for example:
Attribute Code: "BFC"
Value Domain:
Code / Name: "1"
"Fabrication Structures"
The coded value (enumerant) name is "Fabrication Structures"
and the code is (an integer) 1.
In summary:
-
The code is a 5- (or 3-) character string, or an integer,
intended primarily for efficient software use, but in practice might be
a string that is (sometimes) human interpretable, e.g., the code
"AA010" denoting the feature concept named "Mine".
Part 3: Concept Mapping from EDCS Version
4.1 to FACC Edition 2.1
1. Denoting Concepts
The EDCS Version 4.1 is significantly different than FACC Edition
2.1 in the manner in which analogous concepts are denoted are denoted
-- i.e., how each unique concept may be referenced by either humans or
software. In EDCS Version 4.1, three mechanisms exist for denoting EDCS
concepts: the symbolic constant, the label,
and the code. These are all equivalent in some sense to
the code in the FACC Edition 2.1.
-
The EDCS Version 4.1 symbolic constant is a constant
that can be used by programmers as a shorthand for the code.
-- The FACC Edition 2.1 code is a "naked" string or
integer. Although a C-language specific symbolic constant might
be defined, the DIGEST FACC specifies no such functionality.
-
The EDCS Version 4.1 label is human-readable,
but follows particular syntactic rules and can be machine parsed.
The corresponding symbolic constant is easily derivable
from it.
-- The FACC Edition 2.1 code is a compact string or
integer. Although the codes for features (classification)
and attributes (both strings) could be (and sometimes are) memorized,
they are not especially convenient for such use for most users.
-
The EDCS Version 4.1 code is functionally equivalent
to the FACC Edition 2.1 code, however it is always an
integer. In FACC Edition 2.1 codes it may be either a
string or an integer.
-- It is important to keep these differences in code types in mind.
All EDCS Version 4.1 codes are positive, non-zero integers that
are consecutively assigned within the scope of an EDCS Dictionary. The
code whose value is the integer 1 will denote different concepts
in different EDCS Dictionaries, just as the label whose value
is "METER" will denote different concepts in different EDCS Dictionaries.
Example concepts from each EDCS Dictionary follow, first stating its
label, and then specifying its symbolic constant,
and finally specifying its code data type (always fundamentally
an integer) and finally its value.
EDCS Dictionaries containing concepts comparable to those in FACC
Edition 2.1:
-
Classification (comparable to FACC Edition 2.1 Feature)
EC Label: "ACCESS_ZONE"
#define ECC_ACCESS_ZONE ((EDCS_Classification_Code) 1)
- Attribute (comparable to FACC Edition 2.1 Attribute)
EA Label: "ACOUSTIC_AMBIENT_NOISE_SPECTRAL_MODEL"
#define EAC_ACOUSTIC_AMBIENT_NOISE_SPECTRAL_MODEL ((EDCS_Attribute_Code)
9)
- Enumerant (comparable to FACC Edition 2.1 Coded
Attribute Values)
EE Label: "ANDES" (for EA Label: "ACOUSTIC_AMBIENT_NOISE_SPECTRAL_MODEL")
#define EEC_ACAMBNSESPECMD_ANDES ((EAC_Acoustic_Ambient_Noise_Spectral_Model)
1)
(Note that each EA is a separate data type.)
EDCS Dictionaries containing concepts not comparable to those
in FACC Edition 2.1:
- Metadata (FACC handles these in a variety of fashions)
EM Label: "VALUE_SPECIFIED"
#define EVC_VALUE_SPECIFIED ((EDCS_Metadata_Code) 1)
- Unit (FACC binds these into the specification of
individual attributes)
EU Label: "AMP_PER_METRE"
#define EUC_AMP_PER_METRE ((EDCS_Unit_Code) 1)
- Unit Equivalence Class (FACC has nothing comparable)
EQ Label: "ABSORBED_DOSE"
#define EQC_ABSORBED_DOSE ((EDCS_Unit_Equivalence_Code) 1)
- Scale (FACC has nothing comparable)
ES Label: "YOTTA"
#define ESC_YOTTA ((EDCS_Scale_Code) 1)
- Organizational Schema (FACC has nothing comparable)
EO Label: "GENERAL"
#define EOC_GENERAL ((EDCS_Organization_Schema_Code) 1)
- Group (FACC has nothing comparable)
EG Label: "ABSTRACT_CONCEPT" (for EO Label: "GENERAL")
#define EGC_GEN_ABSTRACT_CONCEPT ((EOC_General) 1)
(Note that each EO is a separate data type.)
2. Specifying Units of Measure
Units of measure in the FACC Edition 2.1 are bound into the specification
of individual attributes. For example, the following two FACC Version 2.1
attributes differ only in their units of measure:
Code: "HGF"
Name: "Height Above Surface Level in Feet"
Definition: "Distance measured from the lowest point
of the base at ground or water level (downhill
side/downstream side) to the tallest point of the feature."
Value Domain: Integer, in Feet.
Code: "HGT"
Name: "Height Above Surface Level"
Definition: "Distance measured from the lowest point
of the base at ground or water level (downhill
side/downstream side) to the tallest point of the feature."
Value Domain: Integer, in Meters.
In the EDCS Version 4.1, concepts of units of measure have been given
their own EDCS Dictionary and a separate EDCS Scale Dictionary supports
the specification of the scale of the units of measure for an attribute
value. Unit and scale labels are prefixed with "EUC_" and
"ESC_", respectively, and their codes are represented as
positive, non-zero consecutively assigned integers. Both the unit and
scale are required in order to fully specify the meaning of the value
of many quantitative attributes.
For example, to fully specify the value of the height of a mountain,
in FACC Edition 2.1 either of attributes "HGF" or "HGT" could be used, however
no other unit of measure for length, or different scale, could be used.
In the EDCS Version 4.1, the same information would be specified for the
attribute denoted by the label HEIGHT_ABOVE_SURFACE_LEVEL
by simultaneously specifying two separate, orthogonal concepts: EUC_MILE
and ESC_DECI, where EUC_MILE specifies the "mile" unit of measure and ESC_DECI
specifies the "deci" scale of that unit of measure.
3. Attribute Value Metadata
In FACC Edition 2.1, each coded value (enumerated) attribute had several
enumerant concepts denoted by names such as "Unknown",
"Multiple", "Unpopulated", "Other", and/or "Not Applicable", which were
descriptions of the attribute data value rather than the attribute data
value itself. Additionally, non-coded value (text, integer, and real) take
on values as defined in Table 5.2.
In EDCS Version 4.1, these concepts have been moved into the EDCS Attribute
Value Metadata Dictionary, where they can be applied to attributes of any
type. The labels of attribute value metadata concepts are
prefixed with "EVC_" and their codes are represented as positive,
non-zero, consecutively assigned integers.
For example, in FACC Edition 2.1:
Attribute Code: "BFC"
Value Domain:
Code / Name: "0"
"Unknown"
The equivalent, in EDCS Version 4.1, would be denoted as the pair of
concepts:
Attribute Label: "BUILDING_FUNCTION"
Attribute Value Metadata Label: "MISSING"
4. Mapping Concepts
Concepts encoded using the FACC Edition 2.1 are encoded differently using the EDCS Version
4.1, however essentially all concepts supported by FACC Edition 2.1 are also supported by
EDCS Version 4.1, albeit sometimes using a combination of several EDCS Version 4.1
"atomic" concepts.
The tables at the end of this section document the mapping of concepts from
EDCS Version 4.1 to FACC Edition 2.1.
In the significant majority of cases, the concept mapping is one-to-one and direct.
In some cases, however, the mapping is more complex.
These tables document the mappings for each of the concept types in EDCS Version 4.1
where there are equivalent concepts in FACC Edition 2.1:
classifications, attributes, enumerants. In
addition to listing the "EDCS 4.1 Symbolic Constant"
for each concept, each table includes the columns "EDCS 4.1 Concept Mapping Type",
"FACC 2.1 Concept Mapping Information", and "Additional Notes".
-
The value of "EDCS 4.1 Concept Mapping Type" defines how to interpret and
use the information listed in "FACC 2.1 Concept Mapping Information".
-
The value of "Additional Notes" includes human-interpretable information that either
clarifies the rationale behind the mapping type, or provides additional information
for special cases.
The Concept Mapping Types are as follows:
-
ONE_TO_ZERO - The EDCS Version 4.1 concept does not exist in the FACC Edition 2.1.
The "FACC 2.1 Concept Mapping Information" column will be empty.
Examples:
- EDCS Classification does not map
ECC_ARTIFICIAL_SATELLITE
No mapping to the FACC Edition 2.1, because the FACC is limited to
Mapping, Charting & Geodesy concepts.
- EDCS Attribute does not map
EAC_AIR_TEMPERATURE
No mapping to the FACC Edition 2.1, because the FACC is limited to
Mapping, Charting & Geodesy concepts.
-
ONE_TO_ONE -
The EDCS Version 4.1 concept is mapped directly to a single FACC Edition 2.1
concept. The "FACC 2.1 Concept Mapping Information" column will contain the
code of the appropriate FACC Edition 2.1 concept.
While the EDCS Version 4.1 Attribute Dictionary supports the ability for
attributes which are COUNT, INTEGER, and REAL values to be both singletons,
and intervals, the FACC Edition 2.1 only supports the ability to represent
single values (either "integer" or "floating point") -- a change in datatype
is effectively occuring. If the EDCS attribute concept may be interval-valued,
and there is an appropriate FACC attribute concept which provides a mechanism
for representing interval-values, then the mapping types of
MAP_TO_CODED or
INDETERMINATE are used.
Otherwise, the interval-value can only be expressed using the metadata concept
"Other" as defined in Table 5.2.
Also, the EDCS Version 4.1 Attribute DIctionary allows for attribute concept
instances to not have a value, but instead have an Attribute Value Metadata
value. The FACC Edition 2.1 only consistently provides for metadata to be
explicitly represented where a "coded list" is provided; for other representations
(text, integer, and real) various non-unique encodings are specified, as in
Table 5.2.
Examples:
- EDCS Version 4.1 Classification maps to FACC Edition 2.1 Feature
ECC_EXTRACTION_MINE
maps to
AA010 (named "Mine")
- EDCS Version 4.1 Attribute maps to FACC Edition 2.1 Attribute
EAC_COLOUR_INTENSITY
maps to
CIC (named "Color Intensity Category")
-- Note that this is a qualitative attribute for which the value is
represented in EDCS Version 4.1 is as an ENUMERATION, whereas the
representation in FACC Edition 2.1 is as "coded". "Coded" is comparable
to ENUMERATION, however FACC Edition 2.1 "coded" includes metadata
statements that are encoded differently in the EDCS Version 4.1. Each of
the EAC_COLOUR_INTENSITY enumerants must be examined and mapped. In this
particular case, each enumerant of EAC_COLOUR_INTENSITY has an exact mapping
to a value of FACC Edition 2.1 attribute "CIC". Additionally, four
possible Attribute Value Metadata values also have exact mappings. Other
possible Attribute Value Metadata values do not; for example,
EVC_MULTIPLE -- it is instead mapped to "CIC" with value "989",
meaning "Multiple", based on
Table 5.2.
- EDCS Version 4.1 Attribute maps to FACC Edition 2.1 Attribute
EAC_UPSTREAM_HEIGHT with any singleton-value
maps to
HGU (named "Height 2/Depth 2")
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL, whereas the representation
in FACC Edition 2.1 is as an "integer". A REAL can not be represented as an
"integer" without loss of information; rounding will be required. The unit of
measure in the EDCS Version 4.1 is specified using the Unit Equivalence Class
EQC_LENGTH (for which EUC_METRE is preferred), while in FACC Edition 2.1 it
is defined as "meter". These units of measure are commensurate; a unit of
measure conversion may be required depending on the EU/ES of the actual value
of EAC_UPSTREAM_HEIGHT. The precision of the EDCS representation of this
concept will necessarily be lost as the corresponding FACC representation
is necessarily "to the nearest meter".
- EDCS Version 4.1 Attribute maps to FACC Edition 2.1 Attribute
EAC_UPSTREAM_HEIGHT with any interval-value
maps to
HGU (named "Height 2/Depth 2")
with value of -32768
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL interval, whereas the representation
in FACC Edition 2.1 is as an "integer". A REAL interval can not be represented
as a single "integer". This is mapped to the metadata concept "Other" based on
Table 5.2: -32768 (short integer).
- EDCS Version 4.1 Attribute maps to FACC Edition 2.1 Attribute
EAC_UPSTREAM_HEIGHT with no value and EVC_MISSING
maps to
HGU (named "Height 2/Depth 2")
with value of -32768
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL interval, whereas the representation
in FACC Edition 2.1 is as an "integer". In this case, no value is present,
although a metadata value exists. This is mapped to the metadata concept
"Unknown" based on Table 5.2:
-32768 (short integer).
-
ONE_TO_ONE_QUALIFIED -
The EDCS Version 4.1 concept is mapped directly, but it will be
replaced with two or more FACC Edition 2.1 concepts. The "FACC 2.1 Concept Mapping
Information" column will contain a comma-delimited list of
codes of the appropriate FACC Edition 2.1 concepts.
Examples:
- EDCS Version 4.1 Classification maps to FACC Feature plus a FACC Attribute with a value
ECC_FIRE_AND_POLICE_STATION
maps to
AL015 (named "Building") plus
BFC (named "Building Function Category")
with coded list value of 723
(named "Combined Fire and Police Station")
-- Note that "AL015" is a broader concept than ECC_FIRE_AND_POLICE_STATION, so the
additional "qualifying" FACC attribute of "BFC" is used to narrow the concept appropriately.
- EDCS Version 4.1 Classification maps to FACC Feature plus two FACC Attributes with values
ECC_JEWISH_TEMPLE
maps to
AL015 (named "Building") plus
HWT (named "House of Worship Type")
with coded list value of 16
(named "Temple") plus
REL (named "Religious Denomination")
with coded list value of 5
(named "Judaism")
-- Note that "AL015" is a broader concept than ECC_JEWISH_TEMPLE, so the
additional "qualifying" FACC attributes of "HWT" and "REL" are used to
narrow the concept appropriately.
-
MAP_TO_CODED -
This occurs only in the case of mapping an EDCS Version 4.1 Attribute Dictionary
concept to a FACC Edition 2.1 concept. The EDCS Version 4.1 attribute concept is
mapped directly to a single FACC Edition 2.1 attribute concept.
While the EDCS Edition 4.1 supports the ability for COUNT, INTEGER, and REAL
values to be both singletons, and intervals, the FACC Edition
2.1 only supports the ability to represent single values (either "integer" or
"floating point"). Situations in which the FACC intends to represent intervals
are handled either by defining two related attributes (e.g., "DR1" and "DR2",
handled using the SPECIAL_CASE mapping type),
or by using a coded list attribute with a well-defined set of previously
specified ranges (e.g., "BVL"). The "FACC 2.1 Concept Mapping Information" column
will contain the code of the appropriate FACC Edition 2.1 concept.
In addition, information in the EDCS Enumerant Mapping tables is used.
The mapping type MAP_TO_CODED is used when the only appropriate
FACC Edition attribute concept is "coded" (in EDCS terminology, ENUMERATION).
This means that special logic is typically required for single-valued instances
since, in general, "coded" attributes are not often used for single integer or
real values; usualy inequalities on integer, or real, values are defined.
The logic for handling such interval-valued EDCS attribute concepts is as follows:
- Single-valued EDCS attribute instance (e.g., "3.1")
Action: First, convert the value to account for ES/EU, then:
Map to
an exact matching single-value enumerant, if one exists;
Else map
to a ranged-value enumerant containing the single value (as a subset), if one exists;
Else map
to the "Other" concept of the ranged-value attribute.
- Interval-valued EDCS attribute instance (e.g., "[4.5, 5.0)" )
Action: First, convert the value to account for ES/EU, then:
Map to
an exact matching ranged-value enumerant, if one exists;
Else map
to a ranged-value enumerant containing the interval (as a subset), if one exists;
Else map
to the "Other" concept of the ranged-value attribute.
- Non-valued EDCS attribute instance -- only metadata is present (e.g., EVC_MISSING)
Action: Map to a corresponding ranged-enumerant attribute metadata code,
if one exists;
Else map
based on Table 5.2.
Examples:
- EDCS Version 4.1 Attribute maps to FACC Attribute with a quantitative value
EAC_WATER_TABLE_DEPTH with value "0.3" and EUC_METRE and ESC_UNI
maps to
YWT (named "Depth to Water Table")
with coded list value of 1 (a ">0 and <=0.3")
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL, whereas the representation
in FACC Edition 2.1 is as a "coded list". There is no exact coded list item
for the EDCS value provided, however the value falls within a range denoted
by a coded list item.
- EDCS Version 4.1 Attribute maps to FACC Attribute with a qualitative value
EAC_WATER_TABLE_DEPTH with value "(0.3, 1.2]" and EUC_METRE and ESC_UNI
maps to
YWT (named "Depth to Water Table")
with coded list value of 2 (a ">0.3 and <=1.2")
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL interval, whereas the representation
in FACC Edition 2.1 is as a "coded list". There is an exact match.
- EDCS Version 4.1 Attribute maps to FACC Attribute with a more general qualitative value
EAC_WATER_TABLE_DEPTH with value "(0.5, 1.0]" and EUC_METRE and ESC_UNI
maps to
YWT (named "Depth to Water Table")
with coded list value of 2 (a ">0.3 and <=1.2")
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL interval, whereas the representation
in FACC Edition 2.1 is as a "coded list". While there is no exact match,
there exists a ranged-value which is a superset of the EDCS attribute interval-value.
- EDCS Version 4.1 Attribute with metadata maps to FACC Attribute with a qualitative value
EAC_WATER_TABLE_DEPTH with no value and EVC_MISSING
maps to
YWT (named "Depth to Water Table")
with coded list value of 0 (a "Unknown")
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL interval, whereas the representation
in FACC Edition 2.1 is as a "coded list". However, there is no value in
this instance, and instead an Attribute Value Metadata value is present.
INDETERMINATE -
This occurs only in the case of mapping an EDCS Version 4.1 Attribute
Dictionary concept to a FACC Edition 2.1 concept, when
more than one FACC Edition 2.1 concept may be appropriate -- depending on
the instance value of the EDCS attribute.
While the EDCS Edition 4.1 supports the ability for COUNT, INTEGER, and REAL
values to be both singletons, and intervals, the FACC Edition
2.1 only supports the ability to represent single values (either "integer" or
"floating point"). Situations in which the FACC intends to represent intervals
are handled either by defining two related attributes (e.g., "DR1" and "DR2",
handled using the SPECIAL_CASE mapping type),
or by using a coded list attribute with a well-defined set of previously
specified ranges (e.g., "BVL"). In some occasions, there may be more than
one appropriate coded list attribute (e.g., "DW1", and "DW2"), or there
may be an integer, or real, valued attribute and one or more coded list
attributes (e.g., "DMB" and "BUD") which are appropriate.
The "FACC 2.1 Concept Mapping Information" column
will contain the code of the first appropriate FACC Edition 2.1 concept.
In addition, information in the EDCS Enumerant Mapping tables is used.
Also, the EDCS Edition 4.1 allows for attribute concept instances to not have
a value, but instead have an Attribute Value Metadata value. The FACC Edition
2.1 only consistently provides for metadata to be explicitly represented
where a "coded list" is provided; for other representations (text,
integer, and real) various non-unique encodings are specified, as in
Table 5.2.
The logic for handling such EDCS attribute concepts is as follows:
- Single-valued EDCS attribute instance (e.g., "3.1")
Action: First, convert the value to account for ES/EU, then:
Map to
the indicated integer, or real, valued FACC attribute, if one exists;
Else map
to an exact matching single-value enumerant, if one exists;
Else map
to a ranged-value enumerant containing the single value (as a subset), if one exists;
Else map
to the "Other" concept of the ranged-value attribute.
- Interval-valued EDCS attribute instance (e.g., "[4.5, 5.0)" )
Action: First, convert the value to account for ES/EU, then:
Map to
an exact matching ranged-value enumerant, if one exists;
Else map
to a ranged-value enumerant containing the interval (as a subset), if one exists;
Else map
to the "Other" concept of an appropriate ranged-value attribute.
Notes: If there is no exact match, and more than one ranged-value enumerant
specifying
a superset of the interval exists, then map to the narrowest one.
If more
than one superset of the interval exists which is equally narrow
(and
these are the narrowest that exist), map to the interval
with the lower starting point.
- Non-valued EDCS attribute instance -- only metadata is present
(e.g., EVC_MISSING)
Action: Map to a corresponding ranged-enumerant attribute metadata code,
if one exists;
Else map
based on Table 5.2.
Examples:
- EDCS Version 4.1 Attribute maps to FACC Attribute with a quantitative value
EAC_BRUSH_DENSITY with value "12.5" and EUC_PERCENT and ESC_UNI
maps to
DMB (named "Density Measure (Brush/Undergrowth)")
with value of 12 (a "percent" "integer")
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL, whereas the representation
in FACC Edition 2.1 is as an "integer". A REAL can not be represented as an
"integer" without loss of information; rounding will be required. The precision
of the EDCS representation of this concept will necessarily be lost as the
corresponding FACC representation is necessarily "to the nearest meter".
- EDCS Version 4.1 Attribute maps to FACC Attribute with a qualitative value
EAC_BRUSH_DENSITY with value "(5, 15]" and EUC_PERCENT and ESC_UNI
maps to
BUD (named "Brush/Undergrowth Density Code")
with coded list value of 2 (a "> 5% and <= 15%")
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL interval, whereas the representation
in FACC Edition 2.1 is as a "coded list".
- EDCS Version 4.1 Attribute maps to FACC Attribute with a more general qualitative value
EAC_BRUSH_DENSITY with value "(7.5, 12.5]" and EUC_PERCENT and ESC_UNI
maps to
BUD (named "Brush/Undergrowth Density Code")
with coded list value of 2 (a "> 5% and <= 15%")
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL interval, whereas the representation
in FACC Edition 2.1 is as a "coded list". While there is no exact match,
there exists a ranged-value which is a superset of the EDCS attribute interval-value.
- EDCS Version 4.1 Attribute with metadata maps to FACC Attribute with a qualitative value
EAC_BRUSH_DENSITY with no value and EVC_MISSING
maps to
BUD (named "Brush/Undergrowth Density Code")
with coded list value of 0 (a "Unknown")
-- Note that this is a quantitative attribute for which the value is
represented in EDCS Version 4.1 as a REAL interval, whereas the representation
in FACC Edition 2.1 is as a "coded list". However, there is no value in
this instance, and instead an Attribute Value Metadata value is present.
SPECIAL_CASE -
These cases will require some human reasoning to determine the best
way to realize the EDCS Version 4.1 concept in FACC Edition 2.1. Both the "FACC 2.1
Concept Mapping Information" column and "Additional Notes" column contains information
giving recommendations regarding how to handle the specific case.
Examples:
- Conversion to a non-commensurate unit of measure
EAC_LEFT_BELOW_BANK_ANGLE
maps to
BWL (named "Below Water Bank Slope (Left)")
-- Note that the Unit Equivalence Class of attribute EAC_LEFT_BELOW_BANK_ANGLE
is EQC_PLANE_ANGLE, whereas the unit of measure of "BWL" is "percent" (rise/run).
While the concepts are equivalent, the REAL angular value of EAC_LEFT_BELOW_BANK_ANGLE
must be converted to a "short integer" slope value for "BWL". If the actual
value of EAC_LEFT_BELOW_BANK_ANGLE is an interval, then while the conversion to
slope can be made, ultimately no mapping is possible to a concept in FACC 2.1.
- Deriving two single-valued attributes into a single interval-valued attribute
EAC_WATER_DEPTH
maps to
DR3 (named "Depth Range With greater than 1 meter resolution - Value 1") and
DR4 (named "Depth Range With greater than 1 meter resolution - Value 2")
-- Note that if the attribute instance is interval-valued, then the interval must
be parsed into its "DR3" and "DR4" components; if it is single-valued, then both
"DR3" and "DR4" are set to that same value.
When the Concept Mapping Type is ONE_TO_ONE,
ONE_TO_ONE_QUALIFIED,
MAP_TO_CODED, or
INDETERMINATE, then the
"FACC 2.1 Concept Mapping Information" column has very specific formatted
information in it. It will be one or more of the following possibilities
(multiple concepts will be of this form, separated by semicolons):
- Feature Code
The 5-character feature code of a single FACC Edition 2.1 feature
concept; there will be no additional information.
- Attribute Code
The 3-character attribute code of a single FACC Edition 2.1 attribute
concept; there will be no additional information.
- Attribute Code) with the coded value of (value)
The 3-character attribute code of a single FACC Edition 2.1 attribute
concept of type "coded list" with a specific (value).
Examples:
"APT with the CODED value of 7"
"MAC with the CODED value of 999"
Part 4: Mapping Tables for EDCS Version
4.1 to FACC Edition 2.1
Part 5: Mapping API for EDCS Version
4.1 to FACC Edition 2.1
This section describes the EDCS Version 3.x to FACC Edition 2.1 Mapping
API functions, data structures, and use examples. The implementation of
this mapping API is not included by default with the EDCS distribution but
can be downloaded separately at
www.sedris.org.
1. Mapping API Functions
- EDCS 4.1 to FACC 2.1 Mapping Functions
2. Mapping API Data Structures
- EDCS 4.1 to FACC 2.1 main mapping data structures:
- EDCS 4.1 common mapping data structures used in the main structures:
- FACC 2.1 specific mapping data structures used in the API:
3. Mapping API Use Examples
- Concept mapping from EDCS Version 4.1 Classifications
- map_EDCS_class.c
A sample program taking a list of EDCS 4.1 Classification symbolic
constants on the command line, and printing out the associated FACC Edition
2.1 concept mapping information.
Example: To retrieve mapping information for ECC_BUILDING and ECC_BUILT_UP_REGION:
"map_EDCS_class ECC_BUILDING ECC_BUILT_UP_REGION"
Example Output:
"Mapping for EDCS Classification ECC_BUILDING was
ONE_TO_ONE:
FACC Feature Code: AL015
Mapping for EDCS Classification ECC_BUILT_UP_REGION was
ONE_TO_ONE:
FACC Feature Code: AL020"
- Concept mapping from EDCS Version 4.1 attributes
- map_EDCS_attribute.c
A sample program taking a list of EDCS Version 4.1 attribute symbolic
constants on the command line, and printing out the associated FACC Edition
2.1 concept mapping information.
Example: To retrieve mapping information for EAC_HEIGHT_ABOVE_SURFACE_LEVEL
and EAC_WIDTH:
"map_EDCS_attribute EAC_HEIGHT_ABOVE_SURFACE_LEVEL
EAC_WIDTH"
Example Output:
"Mapping for EDCS Attribute EAC_HEIGHT_ABOVE_SURFACE_LEVEL
was INDETERMINATE. This means that it maps to different FACC Attributes depending on the value associated with it.
The mapping for non-interval and non-metadata values is:
FACC Attribute:
HGT
FACC Value Type: SHORT
INTEGER
FACC Expected Unit:
EUC_METRE
FACC Expected Scale:
ESC_UNI
Mapping Notes:
Changed datatype from REAL to "Integer". May also map to HTR if interval-valued
or metadata.
Mapping for EDCS Attribute EAC_WIDTH was ONE to ONE:
FACC Attribute: WGP
FACC Value Type: FLOAT
FACC Expected Unit: EUC_METRE
FACC Expected Scale: ESC_UNI"
- Concept mapping from EDCS Version 4.1 enumerants
- map_EDCS_enumerant.c
A sample program taking a list of EDCS Version 4.1 enumerant symbolic
constants on the command line, and printing out the associated FACC Edition
2.1 concept mapping information.
Example: To find mapping information for EEC_BLDGFN_SHOPPING_CENTRE
and EEC_TERMRPHTY_SAND_DUNES:
"map_EDCS_enumerant EEC_BLDGFN_SHOPPING_CENTRE
EEC_TERMRPHTY_SAND_DUNES"
Example Output:
"Mapping for EDCS Enumerant EEC_BLDGFN_SHOPPING_CENTRE
was ONE to ONE:
FACC Attribute:
BFC
FACC Value Type:
CODED
FACC Coded Value:
122
Mapping for EDCS Enumerant EEC_TERMRPHTY_SAND_DUNES was
ONE to ONE:
FACC Attribute:
SRD
FACC Value Type:
CODED
FACC Coded Value:
38"
- Concept mapping from EDCS Version 4.1 attributes with interval values
-
map_EDCS_attribute_value.c
A sample program taking a space delimited list of EDCS Version 4.1 attribute
symbolic constant and value specification pairs on the command line,
and printing out the associated FACC Edition 2.1 concept mapping information.
Handles interval, boolean, metadata, and single values.
Example: To find mapping information for EAC_BRUSH_DENSITY
with the interval value [0, 5] and the EU PERCENT with ES UNI,
and EAC_RIGHT_BANK_SLOPE with the interval value [15, 30]
and the EU PERCENT with ES UNI, and EAC_TREE_SPACING with the real value
5.0 and the EU METRE with ES UNI, and EAC_CAPACITY with the metadata value
of EVC_MISSING:
"map_EDCS_attribute_value "EAC_BRUSH_DENSITY
[0, 5] EUC_PERCENT ESC_UNI" "EAC_RIGHT_BANK_SLOPE
[15, 30] EUC_PERCENT ESC_UNI" "EAC_TREE_SPACING 5.0 EUC_METRE ESC_UNI"
"EAC_CAPACITY EVC_MISSING""
Example Output:
"Mapping 1: "EAC_BRUSH_DENSITY [0, 5] EUC_PERCENT ESC_UNI"
Mapping was ONE to ONE:
FACC Attribute: BUD
FACC Value Type: CODED
FACC Coded Value: 1
Notes: <= 5%.
Mapping 2: "EAC_RIGHT_BANK_SLOPE [15, 30] EUC_PERCENT ESC_UNI"
Mapping was ONE to ONE:
FACC Attribute: SR1
FACC Value Type: CODED
FACC Coded Value: 1
Notes: <= 30%.
Mapping 3: "EAC_TREE_SPACING 5.0 EUC_METRE ESC_UNI"
Mapping was ONE to ONE:
FACC Attribute: TSD
FACC Value Type: FLOAT
FACC Float Value: 5.000000
Notes: May also map to TS1/TS2/TS3 if interval-valued
or metadata.
Mapping 4: "EAC_CAPACITY EVC_MISSING"
Mapping was ONE to ONE:
FACC Attribute: CAP
FACC Value Type: TEXT
FACC Text Value: UNK"
Return to:
Migration Index,
Main EDCS Index
Last updated: July 28, 2006
|
Copyright © 2006 SEDRIS
|
|