Repository navigation
EXPRESS frontend scope beyond structural extraction #7
GeneralPawz
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Proposal
Decide the target scope of
openbim_step::express. Today it is an explicitly partial, structural extractor, which is enough for IFC but not for the AP2xx family. Candidates, roughly in order of consumer value:UNIQUE,OPTIONALelement typesINVERSEattributesUNIQUErulesSUPERTYPE OFexpressions (ONEOF/AND/ANDOR), which are needed to decide which complex instances are legalCONSTANTblocks, which Part 21 constant-instance names referenceUSE FROM/REFERENCE FROMinterfaces (short-form schemas). All three AP schemas on hand are long-form (*_mim_lf), so this is lower priority.WHERE/DERIVE/FUNCTION/RULEneeds a full EXPRESS expression language and interpreter. That is a different product.Evidence
Real schemas parsed with
SchemaGraph::from_expressatdab2ae37610e2dda8a4ac4ca059d996144acfb13:Function/rule/procedure declaration counts: 154 (AP203e2), 386 (AP214e3), 413 (AP242). None of them are modelled.
Correctness bugs in what is modelled are filed separately: #2 (multiple inheritance), #3 (explicit redeclarations), #5 (complex-instance resolution).
Prior art
OCCT has no runtime EXPRESS parser. Its typed per-AP classes were generated offline by ExpToCas, which OCCT 8.0 moved out of the main repository. Its runtime schema knowledge (
StepData_ESDescr/ECDescr) covers descriptions only, not rule evaluation. STEPcode'sfedexis a complete EXPRESS front end (C, 3-clause BSD per itsCOPYING).Recommendation
Accept (1) as incremental tasks when a consumer needs them. Defer (2). Decline (3) in this crate: an EXPRESS rule evaluator belongs in a separate crate on top of a complete AST, if ever.
All reactions