# An economic sentence structure
Like Markdown, but for economic networking and interactions.
Using this syntax, almost all operations can be performed through a chat text input, empowered by a bot and widgets to facilitate some operations (picking a date, select an item from a range of options, ...)
Results will be showed graphically: kanban, data-viz, feed, inventories.
The main interaction with the network will be done chatting, and the chat will allow to create economic event, exchange resources, create plans, etc.
The following is an attempt to write done an economic sentence structure to implement as front-end of pub of the commons, after 1year of practice and study of economic networks.
#### INTRODUCTION
This economic sentence structure (ESS) is a text-to-Js conversion tool for economic network. ESS allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid Jsx.
#### MAIN ELEMENTS
- Agent
- Resource
- Quantity
- Economic Event
- Taxonomy
- Constructs
- Macros
## Agent
vocab. https://www.valueflo.ws/introduction/agents.html
An agent is definied preceding a ```@``` to its username
@Alice, @p2p-team, @faircoop
## Resource
vocab. https://www.valueflo.ws/introduction/resources.html
A resource is defined preceding ```%``` to its username.
```%pie-123```, ```%macao-room-1```, ```%helic-gear```
```%pie-123``` is different from ```#pie-123```, where %pie-123 refers to a specific resource present inside some agent inventory, #pie-123 refer to a taxonomy resource (read later about taxonomy)
## Quantity
Quantity is specified by ':'
I !use :3.5 %sugar
## Event
An event type is defined preceding ! to its name
- !work
- !use
- !consume
- !exchange
- !cite
- !produce
```I !work :3.5 #cooking-pie```
(The qty unit can be omitted, since ```#cooking-pie``` is already associated with a specific one)
An event must be associated with a taxonomy or a commitment.
**Nice to note**
An existent economic event can be retrieved and linked using !eventid structure
eg. !716 will refer to: Alice worked 3h to graphic design
## Constructs
[This is not the right word]
Construct are identified by ```>``` / ```>>``` / ```>>>```
Example of construct are:
- Commitment
- Process
- Plan
### Commitment
An intent commitment is defined by ```>``` before its name
```> unit-test-feature-request-123```
### Process
An intent process contains 1 or more commitments and it is defined by ```>>```
```>> test-feature-123```
### Plan
A plan contains 1 or more processes and it is defined by ```>>>```
```>>> Release-feature-123```
## Taxonomy
Taxonomies are defined by ```#``` and can define conversation threads as well as taxonomy skills or taxonomy resources
## Macro
Macro are reserved word to interact with the economic bot
Each macro is preceded by the character ```/```
### /new
It is used to create a new commitment / process / plan
Eg.
Alice: /new > unit-test-feature-request-2
Bot: Hooray! You have just created a new commitment called _unit-test-feature-request-2_. Before publishing, add some more details…
What event will fulfill your commitment?
Alice: !work ~5 #programming-javascript @p2p-team
Bot: [visual representation of the commitment]
Bot: Your commitment has the mandatory info to be published, you can add a *due date* and a *note*, or publish it…
*Alice click on date and pick a date from the datepicker widget*
*Alice click on note and write some stuff*
Bot: Allright, your commitment is ready to be published, this is the preview, you can publish it or save for later.
*visual representation of the commitment*
*Alice clicks on publish*
### /link
It is used to link a commitment with a process, or a process with a plan, or a commitment with a plan, or an event with a process, or a plan with a group.
```/link !123 to > unit-test-feature-request-2```
```/link > unit-test-feature-request-2 to >> test-feature-2```
```/link !123 to >> test-feature-2```
```/link >>> feature-123 to @OCE```
### /show
It is used to require a specific portion of data, organized as a viewbox in the ui.
It can be used to look at the inventory of a specific agent, or show its wallet, see the kanban representation of a plan, or the feed of a specific agent.
Under the hood, this command will create a specific graphql query, and the result will be organized in pre-defined layout templates.
Some examples:
```/show wallet @alice```
```/show kanban >>> feature-123```
```/show feed >>> @bob```
```/show plans >>> @oce```
```/show inventory @fablab-milano```