microsoft / microsoft/winml-cli

Clean up analyze subgraph pattern logic (match-first / derived from rules parquet / overrides node results)

Open
#981 1 comment 0 reactions 1 assignee View on GitHub

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

  1. 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.
  2. 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.
  3. 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.py
  • analyze/core/model_validators/pattern_matching_validator.py
  • analyze/core/output_aggregator.py

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.