Skip to content

Version 1.0.0.13

This is the first offical version of the CLOD document definition.

Note

This version has been deprecated in favor of Version 2.0.0.14

1. Railroad Diagram

Base Segment First Control Segment Specification Control Segment Dataset Schema Segment Dataset Data Segment Data Segments Last Control Segment Version 1.0.0.13

2. Segments

The CLOD document is broken into Segments by the Segment Terminator as defined by the Base Definition.

2.A. Segment Types

There are two additional types of Segments defined here besides the Base Control Segment: Control Segments and Data Segments.

3. Elements

Each Segment is broken into Elements by the Element Separator as defined by the Base Definition.

3.A. Element Count

There will be 4 and only 4 Elements in each of these additional Segments.

3.B. Identification Element

The first Element will be the Identification Element.

Identification Element Example 1
Identification Element Example 2

3.B.1. Uniqueness

The Identification Element will be unique for every Segment.

3.B.2. Non-Zero ID

The Identification Element cannot be DIGIT ZERO (30hex), as that Identification is reserved to represent the CLOD document itself.

3.B.3. Exclusions

The Identification Element must not contain any characters that are defined by Base.[Control Characters], the Element Separator or the Segment Terminator.

3.B.4. Requirement

The Identification Element is mandatory and can not be empty.

3.C. Parent Element

The second Element will be the Parent Element.

Parent Element Example

3.C.1. Definition

The Parent Element for Segments will be the Identification Element value of that Segment's parent. Any Segments that only have the CLOD document as their parent will have a Parent Element equal to DIGIT ZERO (30hex).

3.C.2. Exclusions

The Parent Element must not contain any characters that are defined by Base.[Control Characters], the Element Separator or the Segment Terminator.

3.C.3. Requirement

The Parent Element is mandatory and can not be empty.

3.D. Name Element

The third Element will be the Name Element.

Name Element Example

3.D.1. Exclusions

The Name Element must not contain any characters that are defined by Base.[Control Characters], the Element Separator or the Segment Terminator.

3.D.2. Requirement

The Name Element is mandatory, but unless it is further defined in this Type definition, it can be empty.

3.E. Content Element

The fourth Element will be the Content Element.

Content Element Example

3.E.1. Data Type

The Content Element is to be considered a string data type for the immediate processing of the CLOD document. Any further Data Type definitions are defined in a CLOD Schema document.

3.E.2. Exclusions

The Content Element must not contain any characters that are defined by Base.[Control Characters], the Element Separator or the Segment Terminator.

3.E.3. Requirement

The Content Element is mandatory, but unless it is further defined in this Type definition, it can be empty.

3.F. Repetition Separator

The Repetition Separator is used to separate a Content Element into unindexed array members of the Parent Element's Data Type as defined by a CLOD Schema document.

3.F.1. Allowed Values

The Repetition Separator will be CIRCUMFLEX ACCENT (5Ehex).

3.F.2. Example

57|45|colors|red^green^blue^orange~

4. Control Segments

Control Segments are defined as segments whose Identification Element is composed of characters that are defined by Base.[Letters]. Their purpose is to provide information about the CLOD document.

4.A. Name Element Requirement

The Name Element can not be empty.

4.B. Content Element Requirement

The Content Element can not be empty.

4.C. First Control Segment

The First Control Segment is immediately after the Base Segment in the CLOD document.

4.C.1. Purpose

To define the beginning of the CLOD document data and to uniquely define the CLOD document by using a UUID.

4.C.2. Element Values

  • Identification = "first"
  • Parent = 0
  • Name = "uuid"
  • Content = a hyphenated UUID without enclosing braces.

4.C.3. Example

first|0|uuid|aeaaecec-6d0d-45a0-9dea-c2b232e731e2~

4.C.4. Requirement

The First Control Segment is mandatory.

4.C.5. Quantity

There can be only one First Control Segment per CLOD document.

4.C.8. CLOD Regeneration

When a CLOD document is regenerated from source data, it must have a new UUID, even if the data it contains has not changed from prior CLOD documents.

4.C.9. CLOD Retransmission

When an existing CLOD document is retransmitted, it does not need a new UUID.

4.D. Specification Control Segment

The Specification Control Segment is after the First Control Segment and before any Data Segments in the CLOD document.

4.D.1. Purpose

To define the location of where the Specification for the CLOD Version can be found.

4.D.2. Element Values

  • Identification = "specification"
  • Parent = 0
  • Name = "url"
  • Content = a URL that contains the specification and any other supporting documentation for the CLOD Version.

4.D.3. Example

specification|0|url|https://clod.omegatower.net/versions/1-0-0-13/~

4.D.4. Requirement

The Specification Control Segment is recommended, but not mandatory.

4.D.5. Quantity

There can be only one Specification Control Segment per CLOD document.

4.E. Last Control Segment

The Last Control Segment is the last Segment in the CLOD document.

4.E.1. Purpose

To define the ending of the CLOD document and to contain the total count of Data Segments.

4.E.2. Element Values

  • Identification = "last"
  • Parent = 0
  • Name = "count"
  • Content = The total count of Data Segments in the CLOD document. NOTE: This is not guaranteed to be the highest value of Identification Element, as the Identification Element is not required to be sequential or any specific set of values.

4.E.3. Example

last|0|count|14~

4.E.4. Requirement

The Last Control Segment is mandatory.

4.E.5. Quantity

There can be only one Last Control Segment per CLOD document.

5. Data Segments

Data Segments are defined as segments whose Identification Element is composed of characters that are defined by Base.[Integers]. Their purpose is to contain the data that is being described by the CLOD document.

5.A. Dataset Schema Segment

A Dataset Schema Segment is defined as any Data Segment whose Parent Element is DIGIT ZERO (30hex) as this represents the CLOD document itself. A Dataset is defined as all Dataset Data Segments that can trace their parentage back to a common Dataset Schema Segment.

5.A.1. Schema Name

The Name Element of any Dataset Schema Segment is the name of the Schema. All Datasets in a CLOD document with whose Dataset Schema Segment's Name Element match must follow the same Schema, whether that Schema is explicitly defined or not. The Name element of the Dataset Schema Segment can not be empty.

5.A.2. Schema URL

The Content Element of any Dataset Schema Segment can only be either empty or a URL that points to the Formal Schema document or Informal Schema documentation for this Dataset and its children. It is highly suggested that all Dataset Schema Segments have matching Schema documentation.

5.A.3. Example

1|0|recipe|https://clod.omegatower.net/schema-files/otdp/recipe-v1.clod~

5.A.4. Requirement

Each CLOD document must have at least one Dataset Schema Segment.

5.A.5. Quantity

Each CLOD document can contain multiple Dataset Schema Segments. If there are multiple Dataset Schema Segments in the CLOD document, they do not have to match.

5.A.6. Validity

If a Schema URL is defined, then a CLOD document will be considered invalid by all validity checking and parsing tools if the data in the CLOD document does not conform to all the requirements and specifications of that Schema file.

5.B. Dataset Data Segment

A Dataset Data Segment is defined as any Data Segment whose Parent Element is not DIGIT ZERO (30hex) as this represents the CLOD document itself.

5.B.1. Purpose

The Dataset Data Segments of a CLOD document is where the bullk of the data will reside.

5.B.2. Example

61|60|1|Place all ingredients into medium sized bowl.~

5.B.3. Requirement

Each CLOD document must have at least one Dataset Data Segment.

5.B.4. Quantity

Each CLOD document can contain an unlimited number of Dataset Data Segments.

5.B.5. String Data

If the Name Element contains characters that are not defined by Base.[Integers], then the Data Segment is its own Data Type as defined by a CLOD Schema document.

5.B.6. Integer Data

If the Name Element only contains characters that are defined by Base.[Integers], then the Data Segment is an indexed array member of the Parent Element's Data Type as defined by a CLOD Schema document.

5.B.7. Empty Data

If the Name Element is empty, then the Data Segment is an unindexed array member of the Parent Element's Data Type as defined by a CLOD Schema document.

5.B.8. Validity

If a Schema URL is defined, then a CLOD document will be considered invalid by all validity checking and parsing tools if the data in the CLOD document does not conform to all the requirements and specifications of that Schema file.

5.C. Character References

The data in the Name and Content Elements can be encoded with Numeric Character References or Named Entities.

5.C.1. Segment Terminator Encoding

The Segment Terminator must be converted to a Numeric Character Reference or Named Entity when it is used in the Name or Content Elements.

5.C.2. Element Separator Encoding

The Element Separator must be converted to a Numeric Character Reference or Named Entity when it is used in the Name or Content Elements.

5.C.3. Repetition Separator Encoding

The Repetition Separator must be converted to a Numeric Character Reference or Named Entity when it is used in the Name or Content Elements.

5.D. NULL Values

There is no distinction between an empty Content Element and a NULL Content Element for the immediate processing of the CLOD document. Any further Data Type definitions are defined in the CLOD Schema document for the CLOD Dataset.

5.E. Data Typing

All further data typing, definitions, descriptors, limitations, etc... of the data in the CLOD document are defined in the CLOD Schema document for the CLOD Dataset.

5.F. Order

The Dataset Data Segments do not have to be in any specified order in the CLOD document. It is possible they are ordered by Identification. It is also possible they are ordered by Parent, then Identification. It is further possible that they are in any other order, including random. However, when a Parent Element's children are processed, they will be processed in sequential, numeric ascending order by their ID value.

6. Reserved Characters

The following characters are reserved for special use:

  • CIRCUMFLEX ACCENT (5Ehex)