Skip to content

feat(QVTS): add QVTS, the shape of a query result — Outcome and the QueryResult view - #21

Open
devin-ai-integration[bot] wants to merge 2 commits into
mainfrom
feat/qvts-library
Open

devin-ai-integration[bot] wants to merge 2 commits into
mainfrom
feat/qvts-library

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds libraries/QVTS.sysml, the library a query answer is written against:

library package QVTS {
	private import ScalarValues::*;
	enum def Outcome { established; pathError; modelError; }
	view def QueryResult {
		attribute query : String;
		attribute source : String;
		attribute outcome : Outcome;
		attribute provenance : String;
	}
}
  • Purpose. A QVTS::QueryResult view exposes the elements a query selected (references, never copies) and states which query ran, over which source, with which outcome, and where the run's provenance record is. The outcome distinction (a value, a path error, a model error) is the one specified in Open-MBEE/qvts docs/qvts-core.md §2.
  • Origin. The declarations and their doc text are those of examples/QVTS.sysml in Open-MBEE/qvts. Two changes make it a library of this repository: package became library package, and the top-level doc opens with the NON-NORMATIVE notice.
  • Intended consumers. OpenSysML's query surfaces (named and inline document queries, and SysML v2 API / OSLC queries), which write their answer as such a view, and any tool that reads one.
  • Engine contract. engine-contract.json gains two entries, QVTS (package) and QVTS::QueryResult (element): OpenSysML's result-view writer (internal/doc/queryexec/resultview.go) and its view renderer (internal/ir/view/queryresult.go) bind those two names by qualified name. Additions only; contract is not bumped.
  • Portability. Any SysML v2 tool: the library declares an enumeration and a view definition and needs no engine support to be read.
  • Semver impact. MINOR — a library and two contract entries are added; nothing existing changes.

Also: the README table row, the regenerated .meta.json, and "query results" in .project.json's description.

Validation

  • ./scripts/verify-pilot-pin.sh — pin verified (pilot 2026-08).
  • ./scripts/validate-libraries.sh — Validation clean: 0 errors, 0 warning(s); validation/allowed-warnings.txt untouched.
  • ./scripts/check-readme-table.sh, ./scripts/write-project-meta.py --check, ./scripts/build-kpar.py — all pass; ./scripts/check-engine-contract.sh passes with the two new entries resolved against libraries/.
  • The pinned pilot batch validator over this QVTS.sysml together with Open-MBEE/qvts's examples/observatory.sysml and examples/result.sysml (a view heavyParts : QueryResult with expose members and the four attributes redefined) reports no diagnostic, so the example result view resolves against the library as shipped here.

Note for review

Open-MBEE/qvts carries no LICENSE file; this repository is Apache-2.0. The copied text is nine declarations and three doc comments.

A matching Open-MBEE/OpenSysML pull request re-pins its vendored copy to this library once it is merged.

Link to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/1cb9400fae2e41888d76085f38572ba4
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/1cb9400fae2e41888d76085f38572ba4?variant=devin
Requested by: @HuiJun


🟢 Devin Review found nothing to fix · View findings · Follow Devin's work

Devin Review

…ueryResult view

QVTS: :QueryResult is a view that exposes the elements a query selected and states the query, its source, its Outcome (established, pathError, modelError) and its provenance. The declarations are those of examples/QVTS.sysml in Open-MBEE/qvts, as a library package with the non-normative notice this repository requires. No engine binding, so engine-contract.json is unchanged.
Co-Authored-By: jason.han <hanhuijun@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

Newer findings are available below. Devin Review posted a newer report on this PR, in addition to the findings presented here.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

OpenSysML's query engine writes an answer as a view typed by
QVTS::QueryResult and its renderer recognises that definition, so both
names are bound by qualified name.

Co-Authored-By: jason.han <hanhuijun@gmail.com>

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant