LogicalRecord

Version: 
1
Is Abstract: 
yes
Is Pattern: 
no
Definition: 

The LogicalRecord is a record definition. It is abstract.

The actual realization of record definitions are provided by the UnitDataRecord and the DataCube. UnitDataRecords support two types of record definitions. The first is based on the SimpleCollection it inherits from LogicalRecord. The second type is a StructuredCollection that specializes the LogicalRecord. As a SimpleCollection a UnitDataRecord can, for example, provide table definitions. As a StructuredCollection, UnitDataRecord can define structures comparable to a "struct" in C or a JSON nested object. A UnitDataRecord, then, inherits SimpleCollection from LogicalRecord but adds its own StructuredCollection into the mix. The DataCube brings into play its own StructuredCollection which is distinct from the UnitDataRecord StructuredCollection.The DataCube StructuredCollection is not currently in scope.

The various record definitions -- simple and structured -- when they are actually instantiated with data is described by the PhysicalLayout of a LogicalRecord in the FormatDescription package. The PhysicalLayout places data into DataPoints formed at the direction of a LogicalRecord and its instance variables. At this point a LogicalRecord turn into a "dataset" that hosts unit records, A record definition is not a record. So we conflate metadata and data when we refer to a LogicalRecord as an empty table.

Explanatory Notes: 

In GSIM a DataPoint is a member of a "DataSet" and a UnitDataRecord. Since a DataPoint contains "Datum", this can lead to the conflation of a DataSet and a record definition. In the presence of a DataPoint it is difficult to be clear that a record definition does not have any rows.

In DDI4 we defer the introduction of DataPoints until PhysicalLayouts are described. In this approach the instance variables that make up a LogicalRecord work downstream where they help to give each DataPoint in a PhysicalRecord its format.

Example: 
SQL Data Definition Language (DDL) traffics in record definitions. SQL queries on "system tables" discover record definitions.
Synonyms: 
Record Type, Data Structure
Property: 
NameCardinalityDatatypeDescription
type
0..1
Whether the collection is a bag or a set: a bag is a collection with duplicates allowed, a set is a collection without duplicates.
name
0..n
A linguistic signifier. Human understandable name (word, phrase, or mnemonic) that reflects the ISO/IEC 11179-5 naming principles. If more than one name is provided provide a context to differentiate usage.
purpose
0..1
Explanation of the intent of some decision or object. Supports the use of multiple languages and structured text.
contains
0..n
Specifies contents of Unit Record as Instance Variable values.
isOrdered
0..1
If members are ordered set to true, if unordered set to false.
Relationship: 
NameTarget ObjectDescriptionSource cardinalityTarget cardinalityRelationship type
realizes
Specifies the subtype of collection realized by this class
0..n
1..1
Neither
definingConcept
The conceptual basis for the collection of members.
0..n
0..n
Neither

Stage:

DDI 3.2: 
l:LogicalRecordType
Is extendable: 
GSIM: 
Data Structure
Is property: 
0
RDF Mapping: 

Comments

What are Data Records intended to be? Why do they contain Instance Variables? The Datapoints already contain the needed references to describe a record. I think this belongs to the Physical Data Description, not the Logical.

Isn't this really a RecordType, rather than a record?