1. Introduction
Contents of DESL 0.2
A designer is the kind of ADP tool that lays its content out as a form-based visual layout in which nothing is connected (terminology). In DESL a tool engineer specifies one designer type: the model its documents hold, where and how they are stored, which models are valid, how the model is presented on the designer's surface, and what each gesture on that surface changes. A DESL file (.des) holds one designer type. What users create of that type is stored as DED definitions (DED).
{
"$schema": "https://etalii.net/adp/desl/schema/0.1/desl.schema.json#/$defs/Specification",
"desl": "0.1",
"language": { "id": "net.etalii.adp.knowledge", "version": "0.1.0", "origin": "etalii/knowledge", "label": "Knowledge" },
"metamodel": { "types": { "Property": { … }, "Row": { … }, "Cell": { … }, "View": { … } } },
"persistence": { "format": "fbl", "bindings": ["knowledge.fbl#yaml", "knowledge.fbl#json", "knowledge.fbl#xml"],
"ids": { "strategy": "uuid-v4", "encoding": "base36" } },
"surface": { "kind": "table", "columns": { "type": "Property", … }, "rows": { "type": "Row" }, … },
"operations": { "addProperty": { … } }
}
minimal-table.des beside this document is a complete, small example, and (DESL 0.2) minimal-hierarchy.des, with its binding minimal-hierarchy.fbl, one of the hierarchy kind.
A designer's documents are DED definitions, stored through FBL (FBL-specification.md): a document's body is a file that the bindings in persistence.bindings read and write by splices, so a user's file keeps its bytes wherever nothing changed. DESL says what the model is and what may happen to it; FBL says how the model is read from a body and how an edit becomes splices; DED says what a document of any designer type holds. (DESL 0.2) What of the model a document's registration keeps beside the body (section 5.5) is stored in the blocks a binding declares there (FBL section 8.1).
FBL serves every kind of tool and names the constructs it relies on in a specification language's words. For a designer, those constructs are DESL's: the element types of section 4, the type map and ids of section 5, the findings of section 6 and the transaction of section 10.3. FBL section 1.3 lists the correspondence.