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 Name | Purpose | Created By | Auto generated? |
---|---|---|---|
cmodels | Complete Model Definitions. Consists of single file CModel.dbm.xml which holds entire model content of the project (facets, models, macros). | Model Editor | No. 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. |
models | Contains 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. |
tqls | Contains list of all the TQL Queries that | Query Editor | No |
spaces | Thing Spaces / Instantiate | Yes. 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.