Consider inclusion of 'system' construction #1

Open
opened 2025-12-18 19:53:17 -05:00 by yukirij · 0 comments
Owner

A 'system' is a collection of schemas and data that interact based on a set of rules.

Unlike schemas—which apply broad, static constraints on properties—a system would provide dynamic constraints and behaviors similar to those used in relational databases.

  • Living index constraints
  • Reference tracking
  • Recursive updates, insertion/deletion

Notes

  • While schemas may need to be defined within the system, there are no current requirements for syntax.
  • Large systems may not have all information available in memory; the construct should provide interfaces for handling resources.
# Definition Syntax

Person {
  name :sequence
  position :natural
  groups :list{bind}
}

Positions {
  title :sequence
}

Group {
  properties :schema
}

system Faculty {
  Persons :Person {
    index name
    # store a search tree index on `name`

    position: Positions
    # bind `position` to index of `Positions`

    groups: Groups (properties)
    # bind each element of `groups` to index of `Groups` with instance of `Group.properties`.
  }

  Positions :Position
  Groups :Group
}


# Usage Syntax

faculty: mut Faculty.{}

# transaction
faculty {
  

  # validates and commits at end of block
}

# read-only access
print faculty.Persons[0].name;
A 'system' is a collection of schemas and data that interact based on a set of rules. Unlike schemas—which apply broad, static constraints on properties—a system would provide dynamic constraints and behaviors similar to those used in relational databases. - Living index constraints - Reference tracking - Recursive updates, insertion/deletion **Notes** - While schemas may need to be defined within the system, there are no current requirements for syntax. - Large systems may not have all information available in memory; the construct should provide interfaces for handling resources. ``` # Definition Syntax Person { name :sequence position :natural groups :list{bind} } Positions { title :sequence } Group { properties :schema } system Faculty { Persons :Person { index name # store a search tree index on `name` position: Positions # bind `position` to index of `Positions` groups: Groups (properties) # bind each element of `groups` to index of `Groups` with instance of `Group.properties`. } Positions :Position Groups :Group } # Usage Syntax faculty: mut Faculty.{} # transaction faculty { # validates and commits at end of block } # read-only access print faculty.Persons[0].name; ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Suzu/suzu#1
No description provided.