Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Goal Tree syntax - Request For Comments #2

Open
raymyers opened this issue Jan 27, 2023 · 1 comment
Open

Goal Tree syntax - Request For Comments #2

raymyers opened this issue Jan 27, 2023 · 1 comment
Labels
question Further information is requested

Comments

@raymyers
Copy link
Owner

raymyers commented Jan 27, 2023

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

  • The Goal
    • Marked with id Goal
  • CSF == Critical Success Factor
    • Marked with a dependency directly from the Goal, or with class: CSF
  • NC == Necessary Condition
    • This is the default node type
    • A relationship should state which CSF or NC depends on them
  • Status 0-100
    • Optional percentage of completion for NC and CSF which will color the nodes Green/Yellow/Red
    • There is no inference of Status up the hierarchy, that should be specified explicitly

Example Tree

type: goal

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 raymyers added the question Further information is requested label Jan 27, 2023
@raymyers
Copy link
Owner Author

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%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant