Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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.

...

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 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 A-Stack 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 Inline 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 NameDescription
ValueThe 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.

VersionVersion number of the attribute. This number is automatically incremented each time the value changes.
TimestampUnix epoch time at the time (in millisecond) of the attribute creation. For example: Timestamp value
1457663102004 is same as Fri, 11 Mar 2016 02:25:02 GMT
DatetimeFormatted 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

FNameGiven name of the attribute name.

 

 which is a container defined only at the time of model definition, that is, no such type is pre-defined. Therefore, the structure of inline composite cannot be reused by other models, but only exist in the particular model itself. All inline composites must be declared with the type "Data".

4. Cherry-picked. Cherry-picking allows to create a structure with a subset of model attributes. For details see CherryPicking.