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

Problem Tree syntax - Request For Comments #3

Open
raymyers opened this issue Jan 27, 2023 · 2 comments
Open

Problem Tree syntax - Request For Comments #3

raymyers opened this issue Jan 27, 2023 · 2 comments
Assignees
Labels
question Further information is requested

Comments

@raymyers
Copy link
Owner

raymyers commented Jan 27, 2023

Problem Tree (AKA Current Reality Tree) syntax RFC

The purpose of this issue is to gather feedback and counterproposals for TOC-Lang's Problem 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

  • Condition == A condition, potentially changeable, that may be in a causal relationship with other nodes
  • Undesirable Effect (UDE) == a condition we don't like
  • Desirable Effect (DE) == a condition we like
  • Fact Of Life (FOL) == a condition we do not believe we can change

Nodes are Condition (C) by default, other types are marked with class: as shown below

Relationships

There are causal relationship between conditions, which can take these forms

  • Single Cause == Simply something like "A causes result"
  • Joint Cause == An AND relationship like "result <- A && B"
  • Disjoint Cause == An OR relationship, implicitly represented with two statements "A -> result" "B -> result"

Currently there is an asymmetry on how AND and OR relationships are represented. That could be resolved by introducing an OR operator, but it would open the door for more complex statements "(A and B) or A1 cause result" - grouping and operator precedence would be needed.

Example Tree

bad: Bad user experience {
  class: UDE
}
cluttered: Cluttered interface
bad <- cluttered

ux: Low investment in UX design
features: Many features added
cluttered <- ux && features

salesPressure: "Pressure to increase sales"

enterpriseRequests: "Enterprise contracts are easier to close by promising new features" {
  class: FOL
}
features <- salesPressure && enterpriseRequests

increasedSales: Increased sales {
  class: DE
}

increasedSales <- features && enterpriseRequests

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

@raymyers raymyers added the question Further information is requested label Jan 27, 2023
@raymyers raymyers self-assigned this Jan 28, 2023
@raymyers
Copy link
Owner Author

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

UDE bad is "Bad user experience"
C cluttered is "Cluttered interface"

cluttered causes bad
C ux is "Low investment in UX design"
C features is "Many features added"
ux and features cause cluttered

C salesPressure is "Pressure to increase sales"
FOL enterpriseRequests is "Enterprise contracts are easier to close by promising new features"
salesPressure and enterpriseRequests cause features

DE increasedSales is "Increased sales"
features and enterpriseRequests cause increasedSales

@raymyers
Copy link
Owner Author

raymyers commented Dec 24, 2023

Should update:

  • Allow arrow in either direction

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