raymyers / toc-lang

Text-based notation for Theory of Constraints diagrams
2 stars 2 forks source link

Goal Tree syntax - Request For Comments #2

Open raymyers opened 1 year ago

raymyers commented 1 year ago

Goal Tree syntax RFC

The purpose of this issue is to gather feedback and counterproposals for TOC-Lang's Goal Tree syntax. We are currently in a prototyping phase where it is safe to break compatibility, so this is the best time to shape our notation for the future.

Please comment your thoughts, thanks!

Entities

Example Tree

Goal: Drive adoption of TOC in software
devFriendly: Thinking Processes are Dev Friendly

openTool: Open source tooling
wellFormed: It is easy to create well-formed diagrams

versioning: Diagrams can be version controlled with source code
textRep: Diagrams have a textual representation {
  status: 50
}

devFriendly <- openTool && wellFormed && versioning
versioning <- textRep {
  status: 50
}
textRep <- gtGrammar && crtGrammar && ecGrammar && prqGrammar && frtGrammar

gtGrammar: Goal Tree grammar {
  status: 100
}
ecGrammar: Evaporating Cloud grammar {
  status: 100
}
crtGrammar: Current Reality Tree grammar {
  status: 1
}
prqGrammar: Prerequisite Tree grammar {
  status: 1
}
frtGrammar: Future Reality Tree grammar {
  status: 1
}

Check src/assets/grammars/toc-lang.peggy for the grammar specification.

Open Questions

Status is a percentage, but written as a plain number. Will this be ambiguous? Are there other ways of representing status we should think about supporting?

raymyers commented 6 months ago

Historical note. The RC1 syntax shown below is now abandoned in favor of RC2 patterned after d2lang.

Goal is "Drive adoption of TOC in software"
CSF devFriendly is "Thinking Processes are Dev Friendly"

NC openTool is "Open source tooling"
NC wellFormed is "It is easy to create well-formed diagrams"

NC versioning is "Diagrams can be version controlled with source code"
NC textRep is "Diagrams have a textual representation"

devFriendly requires openTool and wellFormed and versioning
versioning requires textRep
textRep requires gtGrammar and crtGrammar and ecGrammar and prqGrammar and frtGrammar
NC gtGrammar is "Goal Tree grammar"
NC ecGrammar is "Evaporating Cloud grammar"
NC crtGrammar is "Current Reality Tree grammar"
NC prqGrammar is "Prerequisite Tree grammar"
NC frtGrammar is "Future Reality Tree grammar"

gtGrammar has status 100%
ecGrammar has status 100%
crtGrammar has status 1%
prqGrammar has status 1%
frtGrammar has status 1%

textRep has status 50%
versioning has status 50%