AGSi Guidance / General¶
Governance - Naming conventions¶
Note
Work in progress - copied from old page - need to go through this.
Object names use PascalCase except that all are preceded by the prefix ags or agsi in lower case. Example: agsiObjectName¶
The object name prefix agsi is used for objects that are unique to the AGSi schema whereas ags is used for objects that are expected to be eventually incorporated in the AGS Common schema (as described above).
Note
OGC GML standards use PascalCase but with a namespace prefix in lower case (separated by a colon), e.g. gsmlb:GeologicUnit. IFC has names starting with 'Ifc', e.g. IfcPile.*
Attribute names use camelCase. Example: attributeName
Note
OGC GML standards use camelCase. IFC uses PascalCase.
Object and attribute names should be meaningful. Full words should generally be used, except that reasonable truncation or abbreviation may be used to avoid very long names. Example: valueProfileIndVarCodeID
Note
This is common convention. Applied in OGC GML standards and IFC.
Object names shall incorporate the object name of its top level parent, but should not include any further parent names.
Example: agsiData (top level parent); agsiDataParameterValue (2nd level child)
Note
Including all parent names would lead to very long and cumbersome object names.
Where one object is embedded (nested) within another (as an attribute), the parent object attribute name shall generally be the child object name. Example: agsiDataParameterSet has an attribute agsiDataParameterValue, which will contain agsiDataParameterValue objects.
Note
Adopting this convention ensures that the object name will always appear in the data file (for nested Json encoding).
Where an attribute value is intended to be a reference to an identifier defined elsewhere in the schema, the source and target identifiers should be the same, and should end with 'ID'. Example: codeID attribute in agsiDataParameterValue references codeID attribute in agsiDataCode object.
An exception to the above is where clarification of the usage of the identifier is desirable, or required to avoid conflict. In such cases clarifying terms may be added to the source attribute name in front of the target attribute name.
Example: valueProfileIndVarCodeID attribute of agsiDataParameterValue references codeID attribute of agsiDataCode (clarifies and avoids clash with codeID attribute of agsiDataParameterValue