Model attributes are defined by declaring the Type and the Name of each attribute. For example: <Integer name="currentTemp"/>. Integer is a system-defined type. This definition declares an entity of the Type (pattern) Integer with the name of "currentTemp" as an attribute of the Model.
All attributes must be declared from existing types, which can be system-defined types or user-defined types.
Model attributes can be of three categories:
1. Atom. An attribute defined by a type which contains only one slot implicitly named “value”. (Atomic types are also called Primitive types and are pre-defined by the system. For example, Number is an atomic type. All atomic types inherits from the type "Atom".) TQLEngine currently does not support user-defined atomic types.
2. Composite. An attribute defined by a type which is a container (contains more than one slot). A container type can be defined by the user using type definition language (<Def/>)
3. Ad-hoc composite. An attribute with a nested structure that is
4. Cherry-picked.
Automatically Generated System Attributes
TQLEngine automatically generates attributes as part of every attribute that make up the model definition. System attributes can Read (Find) using
Format="all" modified on <Find> Query.
System Attribute Name | Description |
---|---|
Value | The value of the attribute is stored in "Value". This is specified by user at time of create query |
Known | Applicable to ThingFacet/AppFacet - this is the value that is set within the Action. Known can not be set using Create / Update TQL Query by the user. |
Version | Version number of the attribute. This number is automatically incremented each time the value changes. |
Timestamp | Unix epoch time at the time (in millisecond) of the attribute creation. For example: Timestamp value1457663102004 is same as Fri, 11 Mar 2016 02:25:02 GMT |
Datetime | Formatted data time value of the attribute creation. For example:2016-03-10 18:25:02.004 |
QName | Fully qualified name of the attribute. <NamSpace>.<Domain>.<ModelName>.<AttributeName>. For example SimpleModel.MyModels.VendorInfo.vendorName given that VendorInfo is defined within Namespace - SimpleModel, with Domain as MyModels and DataModel Name as VendorInfo |
FName | Given name of the attribute name. |