Identification#
All instances of Item Types are uniquely identified using the ordered
compound key in baseDirectory/Settings/Identification.csv. The file
is required and must contain at least one row. Each property is included in
every root item type and inherited by its descendants.
The columns of the Identification.csv file are the same as the columns in
the Item Types properties CSV.
An optional baseDirectory/Settings/Identification.Mixin.csv file can
be used to add additional identification properties. Those mixin properties are
also part of the compound key and every generated reference.
COGS 2 identification fields are deliberately narrow. Every field must use
string or anyURI, must be required and singular (1..1), must not be
ordered or allow subtypes, and must have a unique name in the effective item
property set. Every item and reference must supply a nonempty lexical value for
every field. The logical key is the concrete item type followed by all values
from both files in declaration order. URI strings are compared as serialized;
COGS does not normalize them before reference lookup.
JSON references contain only $type and all identification properties. XML
references contain all identification elements followed by TypeOfObject.
Forward and repeated references to the same key resolve to the same object
inside an item container.
The DcTerms macro is not permitted in either identification file.