Project and project structure

Project

A Project is a logical name or entity that contains list of all the resources that is created at the time of model definition. Note that a Project is NOT a TQL or Atomic Domain Language construct. It is a concept used in TQLStudio to make the process of creating and managing the models simpler for developers. The project concept can be used as a design pattern when developing models without using TQLStudio's model editor.

Here is the development process to create applications using TQL.

Project Structure

Subdirectory NamePurposeCreated ByAuto generated?
cmodels

Complete Model Definitions. Consists of single file CModel.dbm.xml which holds

entire model content of the project (facets, models, macros).

Model EditorNo. The content is written by Model Developers either through the source code editor window or Model Editor Grammar Palette.
deploy

Contains default A-Stack Package Definition for your project. After the project is deployed

a single GenericTQLInterface.mqp.xml is automatically generated by the TQLStudio / ThingSpaces /Deploy

(or) A-Stack / ThingSpaces / Deploy.

Thing Spaces/

Deploy

Yes. The parameterized content is provided by model developers using Project Settings.
facets

Contains list of all ThingFacet(s) and AppFacet(s). There is one single file for each ThingFacet / AppFacet definition

that is found when creating models. ThingFacets are stored in files that end with <FacetName>.tf.xml and AppFacets

are stored in files end with <FacetName>.af.xml

Model Editor

(Split Models Option)

Yes. But the content is provided by model developers.
modelsContains list of ThingModel, DataModel, AppModel. There is one single file with <ProjectName>.dbm.xml.

Model Editor

(Split Models Option)

Yes. But the content is provided by model developers.
macros

Contains list of all the Macro definitions founds at the time of creating models. There is one single file with <MacroName>.mc.xml

created.

Model Editor

(Split Models Option)

Yes. But the content is provided by model developers.
tqlsContains list of all the TQL Queries thatQuery EditorNo
spaces
Thing Spaces / InstantiateYes. The Create / Save TQL Statements are generated based on content provided by Model Developers for against the model definition (either manually or import csv file)

Project Export / Import

Export: Project Content can be exported from the TQLStudio using Export option provided as part of Project Settings. Once project is exported a compresses zip file is sent to registered developer's email account. The Zip file is sent as a downloadable URL. The zip file contains:

  • Zip File Name: <UniqueID given to your project>.zip
  • Subdirectories (cmodels, deploy, facets, macros, tqls, spaces, models) with individual files

Import: Once the project is exported from TQLStudio, the content can be imported into your locally installed A-Stack. A-Stack can be installed on micro controllers (Raspberry pi), your development laptops, edge gateways, public or private clouds.

Note: Once the project is exported and imported into your local A-Stack any edits that are made on the local copy are NOT synced back with the version of models that are on the TQLStudio. It is developers responsibility to ensure project versions of models are source controlled and reimported back into the studio for further editing.