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

Implement Logic in Symbol layer #44

Closed
5 tasks done
amis92 opened this issue Jul 20, 2022 · 2 comments
Closed
5 tasks done

Implement Logic in Symbol layer #44

amis92 opened this issue Jul 20, 2022 · 2 comments
Assignees

Comments

@amis92
Copy link
Member

amis92 commented Jul 20, 2022

ILogicSymbol is a parent type of the following:

  • IConditionSymbol (BS Condition/ConditionGroup)
  • IConstraintSymbol (BS Constraint)
  • IEffectSymbol (BS Modifier/ModifierGroup/Repeat)
  • IQuerySymbol (BS Modifier/Constraint/Condition's Query+FilterBy+Condition common abstraction)
  • IQuerySymbol and IEffectSymbol bindings of the field/scope/filter(child) IDs.

I've settled on a tiny simplification - modifier(group) and repeat are an Effect, condition(group) is Condition, and Query is a common part of querying in constraint, condition and repeat:

  • IEffectSymbol is either a modifier, modifier group or a repeat BS element unified into a single interface. May contain a Condition, and a RepetitionQuery. Entries contains Effects (modifiers/modifier groups) and an Effect can contain other Effects (repeats), as well as ChildEffects (in modifier group).
  • IConditionSymbol is either a condition or condition group BS element. Contains Query. Effects can contain up to a single Condition, and Conditions can have Child conditions that are evaluated using and/or operator.
  • IConstraintSymbol is a constraint BS element. Contains Query, but signifies a boundary/limit. Entries contain Constraints.
  • IQuerySymbol - is an abstraction over querying in conditions, constraints and repeats. It defines a Value (field) that is counted, a Scope in which elements are counted, and a Filter which takes only specific elements to count. Then the results are processed - if query defines a ComparisonOperator, the query result is compared with ReferenceValue - otherwise the numeric sum of values is returned.
@amis92 amis92 self-assigned this Jul 20, 2022
@amis92 amis92 moved this to In Progress in Phalanx Jul 20, 2022
@amis92
Copy link
Member Author

amis92 commented Jul 20, 2022

Implementation of symbols was in 54e12b3

@amis92
Copy link
Member Author

amis92 commented Aug 30, 2022

Deep investigation into Querying was done in #45

amis92 added a commit that referenced this issue Mar 1, 2023
part of: Implement Logic in Symbol layer #44
amis92 added a commit that referenced this issue Mar 9, 2023
* feat: Bind Scope and Filter symbols of a Query

part of: Implement Logic in Symbol layer #44

* feat: make characteristics Resources of a Profile

* feat: bind Effect.TargetMember

* refactor: move around code in Playground Main

* fix: bind members in category links

* fix: deduplicate characteristics in Profile.Members (fixup)

* fix: additional fixes and optimizations for TargetMember binding

* refactor: group Playground diagnostics by message

* fix: shorten lookup on success when descending

* feat: fully bind TargetMember (including link target members)

* feat: optimize CategoryEntry binding

* feat: optimize type checks (maybe)

* feat: optimize lookup in descendants
@amis92 amis92 closed this as completed Mar 9, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in Phalanx Mar 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

1 participant