Q: What is SFW ?
A: Semantic Form Workspace (SFW) - is an experimental platform developed as part of the Semantic Types project, to apply the patterns described here, seeking to understand and learn - if possible - about how to simplify some of the ways in which you describe, interact with, and organize your information in a digital system.
All data resides in namespaces. Namespaces can specify other namespaces they depend on, and will be visible to read entites from, but not modify.
Out of the box there are a few important namespaces to know of:
Any authorized namespaces can be added as dependency to a namespace.
All customers receive a Tenant account. Any Tenant administrator can create Tenant accounts underneath, Users, Namespaces, and Extensions, and can also authorize other Users to do so (Standard tier and up). The Authorization only applies to namespaces and entities the User assigning the rights has the rights to assign access to.
The Tenant model is hierarchical, starting from the top Tenant - SemanticTypes and customers can further sublet to their own tenants, acting as SaaS providers.
| Subscription Tier | Can Create Tenants | Can Create Users | Can Create Namespaces | Can Create Extensions | Can Use Extensions |
|---|---|---|---|---|---|
| Free | No | No | Yes |
No | No |
| Basic | No | No | Yes | No | Yes |
| Standard | Yes | Yes | Yes | No | Yes |
| Pro | Yes | Yes | Yes | No | Yes |
| Partner | Yes | Yes | Yes | Yes | Yes |
| Enterprise | Yes | Yes | Yes | Yes | Yes |
The master lists of tenants is in each tenant's Master List namespace.
Each tenant in the master list has a list of sub-tenants containing:
Each tenant has its default namespace storing the system entities it needs:
Applications in SFW are a collection of pages, supporting the page rendering process, users taking actions and navigating between pages.
Pages in SFW simply host components, both high level(pattern driven) and custom components.
UX Patterns define 4 core components each driven by a clear pattern.
Presenting a list of fields from an entity for viewing, creating and editing. (custom actions ?)
Presenting a list of entities for viewing, creating new entities, and editing existing entities. The list can be searched, filtered, sorted and should support pagination.
Presenting a list of measurement fields aggregated across multiple entities for vieweing. Aggregation logic can be selected from a list (extensibility?!) The list can be searched, filtered, sorted and should support pagination. This can be used to support reports and dashboard elements.
Built through code.
Presenting multiple patterns on the screen, and allowing them to communicate.
Presenting and managing the layouts where components are placed.
Allowing for custom logic to support validation, presentation, transformation, and flow decisions.
Allowing through criteria to decide on validation, presentation and flow decisions.
Allowing through criteria to map exising data to create new data.
Allowing through an expression to compute new data from exising data.
Automate tasks and processes. Each step in a process happens in the right order, involves the right people or systems, as it moves from start to finish.