microsoft / microsoft/winml-cli
Clean up analyze subgraph pattern logic (match-first / derived from rules parquet / overrides node results)
Open
Nobody has claimed this yet.
enhancement
P2
refactor
static-analyzer
triaged
- Dominant language
- Python
- Stars
- 40
- Forks
- 11
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 50
Description
Background
Clean up the subgraph pattern decision logic in analyze, and clarify the relationship between pattern results and op (node) results.
Expected logic
-
Match the pattern first; once matched, the ops it contains are no longer checked individually.
- As soon as a pattern matches, its constituent nodes are removed from node-level checking to avoid duplicate evaluation.
-
Pattern results are fully derived from the rules parquet table, using the same decision source as ops.
- A pattern's supported / unsupported conclusion comes from the rules parquet (the same data source ops use), not from ad-hoc computation.
-
Pattern results override node results (keeping the current behavior).
- When some nodes belong to a matched pattern, the final result is taken from the pattern, overriding the original results of those nodes.
Related
- Depends on #980 (complete the pattern rules parquet + all-nodes-supported short circuit).
- Affects #982 (analyze UI change: display patterns separately).
Relevant code
analyze/core/pattern_extractor.pyanalyze/core/model_validators/pattern_matching_validator.pyanalyze/core/output_aggregator.py
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.