Skip to content

Improve support for MRCM #7

@ekorchmar

Description

@ekorchmar

State

Currently, Jackalope core evaluates only a subset of MRCM rules, so there is little indication that concept may break established modelling; this may lead to Jackalope silently failing to find the correct subhierarchy. Precisely, only Attribute Domains(AD) are tested, but not attribute groupping, nor Attribute Ranges(AR).

Proposed solution steps

  • Add new rule constructor class that would produce AR rules validation.data_atoms
  • Implement AR validation methods for MRCMValidator. Initial subset of rules for testing may be defined by hand, because they use ECL definition language, which Jackalope does not yet speak.
  • Similarly, implement groupping validation for AD. This does not require new parsing technologies.
  • Add support for ECL grammar. I suggest switching to tree-sitter as a more long-term sustainable solution, primarily for it's ability for error recovery. Existing expression parser should also move off ANTLR for that reason, but that is a task for another day.
  • Create a rule factory that creates AR rules based on ECL definitions.
  • Extend MRCMValidator to use these AR rules
  • Make sure MRCMValidator raises informative exceptions when AD/AR rules are broken. Process them in server.py

Domain Reference has lower priority as it is mostly redundant to AD+AR constraints, and is more useful to authoring tools than to Jackalope core. Module Scope is also way beyond what is required here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions