Key Concepts

Following are the key concepts used in TQL

NameDescription
ProjectA deployment unit, consisting of one or more Models, Model Facets and Queries.
ModelA unit of definition with structures to represent the Attributes and Actions of an entity.
ThingModelOne kind of Model. Used to represent things that interact with the application from outside the software system, such as sensors, devices and machines.
AppModelOne kind of Model. Used to represent an application logic construct.
DataModelOne kind of Model. Used to define a data structure.
ModelFacetA reusable definition component that can be used (via "Combines") by Models. Usually contains its Attribute and Action definitions.
ThingFacetOne kind of ModelFacets. Used to define a reusable construct concerning interaction with things.
AppFacetOne kind of ModelFacets. Used to define a reusable construct concerning application logic.
CombinesA keyword used in Model definitions. Models "Combines" ModelFacets to acquire all the Attributes and Action definitions of the ModelFacets.
AttributeA container that holds values for the Model.
ActionA definition of a process(es) associated with a Model.
Actionable Attribute

An attribute whose value changes will automatically trigger the processes defined by Action(s).

WorkflowA sequence of tasks that are orchestrated and repeatable.
TaskA unit of work.
Model InstanceAn incarnation of a Model definition.
DeployThe process of compiling Model definitions and make the post-compilation artifacts (such as model runtime) available to the running TQL Engine
InstantiationThe process of creating Model Instances from a Model definition. The process of creating workflow instances from a Workflow definition.
QueryAny operation(s) on the model instance data (or model data), which includes filtering, joining, and manipulations.
SubscriptionSubscribing to a topic
TopicTopic is a string value that model developers use to subscribe and eventually receive notifications.
/wiki/spaces/TQLDocs/pages/1179763Custom or System defined Model definitions (Example: Primitive types - String, Number etc)
MacrosMacros help keep TQL code (portions) organized and reusable. Macros have Arguments and Result (Reusable portion of TQL code)
Protocol HandlerProtocol Handlers are communication (Channel) transport handler within A-Stack. Protocol Handlers are one of the key extension points of A-Stack
Facet InstancesFacet Instances are runtime definition of A-Stack capabilities by choosing appropriate Facet Types.
Facet TypesA-Stack capabilities are provided as Facet Types. Example, SffTqlFacet, SffMsgFacet etc
FacetIDUnique identifier given each Facet Instance definition. A-Stack adds fid- user provided Facet Instance ID
Template ProcessingTemplate Processing provides runtime access to variable values. XPath expressions can be used with Template Processing.
Atomic Domain Languages (ADL)Atomiton provided Domain Languages to build IoT Applications
Thing Query Language (TQL)Thing Query Language is core part of Atomic Domain Language. TQL consists of Thing Definition Language (TDL) and Thing Interaction Language (TIL)