Research and methods
SysML v2 language inventory and research findings
Purpose and evidence
Research date: 2026-10-20. This note inventories language entities, relationships, properties, constraints and behavior. It does not establish implementation support or conformance.
The user-provided NotebookLM notebook is titled SysML 2.0 Language Specification. nlm notebook get reported one source, ID c83ee3d3-22d7-4c7c-97f5-196a6fe0c27d, titled with the official OMG Language PDF URL. The retrieved source identifies SysML 2.0, Part 1, formal/2026-03-02, March 2026.
Seven notebook queries covered scope, structure, behavior, requirements/cases/views, shared properties, coverage and disputed details. Answers were reviewed alongside the source text fetched through nlm source content. Generated answers are research leads; the specification clauses take precedence. Some answers contained incorrect section numbers, inheritance labels and ownership explanations. Those mistakes are not accepted as facts here.
The companion language inventory JSON records:
- 98 named subsection entries in §§8.3.6–8.3.27: 93 metaclasses and 5 enumerations.
- 218 extracted declared property signatures, preserving types, multiplicities, slash notation and qualifiers as present on matching source lines.
- 365 named constraints, plus general classes and per-entry section references.
- Source metadata and content hash, notebook query topics, conversation IDs, question/answer hashes and coverage limitations.
These counts describe this extraction, not the entire SysML/KerML metamodel. It does not expand inherited properties, operation definitions, complete OCL bodies, every grammar rule or every library member. A missing extracted property does not establish that a metaclass lacks that property. Full implementation requires checking the official machine-readable metamodel and referenced KerML specification.
Source evidence 1 location
- SysML 2.0 Languageofficial OMG Language PDF URLformal/2026-03-02
Specification layers
| Specification layer | Evidence | Inventory scope |
|---|---|---|
| User-facing language concepts | Clause 7 | Useful discovery guide; not a complete data schema |
| Textual and graphical syntax | §8.2 | Textual grammar and graphical notation are separate coverage dimensions |
| Abstract syntax | §8.3 | Metaclasses, properties, inheritance and well-formedness rules inform the semantic model |
| Semantics | §8.4 | Resolve implied relationships and library specialization; labels alone are insufficient |
| Standard libraries | Clause 9 | Load compatible library models and resolve their members |
| Referenced specifications | Normative references and interchange clauses | KerML and Systems Modeling API/Services are separate sources; this notebook does not replace them |
The specification describes language meaning. It does not prescribe our palette, storage engine, undo stack or layout algorithm. Proposed engineering choices below must remain distinguishable from language requirements.
Entity and relationship inventory
The following list is generated from dedicated subsection headings in the notebook source. Foundation concepts preceding §8.3.6 are recorded separately below. Each row links back to the OMG source; exact subsection IDs and declarations are in the JSON.
| Section | Family | Named entries |
|---|---|---|
| 8.3.6 | Definition and usage | Definition, ReferenceUsage, Usage, VariantMembership |
| 8.3.7 | Attributes | AttributeDefinition, AttributeUsage |
| 8.3.8 | Enumerations | EnumerationDefinition, EnumerationUsage |
| 8.3.9 | Occurrences | EventOccurrenceUsage, OccurrenceDefinition, OccurrenceUsage, PortionKind (enum) |
| 8.3.10 | Items | ItemDefinition, ItemUsage |
| 8.3.11 | Parts | PartDefinition, PartUsage |
| 8.3.12 | Ports | ConjugatedPortDefinition, ConjugatedPortTyping, PortConjugation, PortDefinition, PortUsage |
| 8.3.13 | Connections | BindingConnectorAsUsage, ConnectionDefinition, ConnectionUsage, ConnectorAsUsage, SuccessionAsUsage |
| 8.3.14 | Interfaces | InterfaceDefinition, InterfaceUsage |
| 8.3.15 | Allocations | AllocationDefinition, AllocationUsage |
| 8.3.16 | Flows | FlowDefinition, FlowUsage, SuccessionFlowUsage |
| 8.3.17 | Actions | AcceptActionUsage, ActionDefinition, ActionUsage, AssignmentActionUsage, ControlNode, DecisionNode, ForkNode, ForLoopActionUsage, IfActionUsage, JoinNode, LoopActionUsage, MergeNode, PerformActionUsage, SendActionUsage, TerminateActionUsage, TriggerInvocationExpression, TriggerKind (enum), WhileLoopActionUsage |
| 8.3.18 | States | ExhibitStateUsage, StateSubactionKind (enum), StateSubactionMembership, StateDefinition, StateUsage, TransitionFeatureKind (enum), TransitionFeatureMembership, TransitionUsage |
| 8.3.19 | Calculations | CalculationDefinition, CalculationUsage |
| 8.3.20 | Constraints | AssertConstraintUsage, ConstraintDefinition, ConstraintUsage |
| 8.3.21 | Requirements and concerns | ActorMembership, ConcernDefinition, ConcernUsage, FramedConcernMembership, RequirementConstraintKind (enum), RequirementConstraintMembership, RequirementDefinition, RequirementUsage, SatisfyRequirementUsage, SubjectMembership, StakeholderMembership |
| 8.3.22 | Cases | CaseDefinition, CaseUsage, ObjectiveMembership |
| 8.3.23 | Analysis cases | AnalysisCaseDefinition, AnalysisCaseUsage |
| 8.3.24 | Verification cases | RequirementVerificationMembership, VerificationCaseDefinition, VerificationCaseUsage |
| 8.3.25 | Use cases | IncludeUseCaseUsage, UseCaseDefinition, UseCaseUsage |
| 8.3.26 | Views and viewpoints | Expose, MembershipExpose, NamespaceExpose, RenderingDefinition, RenderingUsage, ViewDefinition, ViewpointDefinition, ViewpointUsage, ViewRenderingMembership, ViewUsage |
| 8.3.27 | Metadata | MetadataDefinition, MetadataUsage |
Foundations inherited or referenced from KerML
These must be part of the implementation coverage checklist even though they do not have dedicated class-detail entries in the extracted §§8.3.6–8.3.27 index. The Language PDF discusses foundations in §§8.3.2–8.3.5 and uses additional KerML classes throughout its grammar, generalizations and constraints. Exact inherited declarations need verification against KerML.
| Foundation | Concepts to preserve | Evidence in the SysML source |
|---|---|---|
| Graph identity | Element, Relationship, declared/effective names, IDs, owned relationships and implied elements |
§§7.2, 8.3.2 |
| Dependencies | Dependency, client/supplier references |
§§7.3, 8.3.3 |
| Annotations | AnnotatingElement, Annotation, Comment, Documentation, TextualRepresentation |
§§7.4, 8.3.4 |
| Namespaces | Namespace, Package, LibraryPackage, Membership, OwningMembership, visibility |
§§7.5, 8.3.5 |
| Imports and aliases | Import, MembershipImport, NamespaceImport, filtering and alias memberships |
§§7.5, 8.3.5 |
| Classification and featuring | Type, Classifier, Feature, FeatureMembership, FeatureTyping |
§§7.6, 8.2.2.6, 8.3.6 |
| Specialization | Subclassification, Subsetting, Redefinition, reference/cross subsetting and feature chaining |
§§7.6, 7.13, 8.2.2.6 |
| Expressions and execution foundations | Expressions, invocations, functions, predicates, behaviors, steps, connectors and successions | §§7.13, 7.17–7.20; imported KerML classes in §8.3 |
Distinguish grammar productions, library definitions and metaclasses. A relationship is itself a model element; its graphical representation does not replace its semantic structure.
Source evidence 1 location
- SysML 2.0 LanguageOMG sourceformal/2026-03-02
The most important semantic distinctions
Ownership, featuring, composition and diagram nesting
These are four different mechanisms:
- Owning membership owns a declaration in a namespace/model structure.
- Feature membership establishes a feature of a type/context.
- Composite feature semantics concerns dependence of modeled instances;
Usage::isReferenceis derived from the complement ofisComposite. - Diagram nesting is a presentation choice that can show ownership, features, imports or grouping according to the selected notation/view.
For example, a ref part declaration can be owned in the source model while its referenced instances are non-composite. A definition nested in another definition creates a scoped declaration; that does not itself create an owned part instance. See §§7.5–7.6, 8.3.6.2–8.3.6.4.
Definitions, usages and occurrences
A definition is a classifier; a usage is a feature in context. Do not represent them as one node type with a decorative label. Keep explicit typing/specialization references and preserve multiple usages of the same definition. Do not equate a usage declaration with a single runtime instance. See §8.3.6 and the type-specific families.
Ports, connections, interfaces, bindings and flows
These are separate semantic kinds. Record feature paths, end features, port typing and conjugation. A connection can require a presentation richer than one binary line. Bindings assert equality; successions express temporal ordering; flows model transfers. See §§8.3.12–8.3.16 and their corresponding semantics.
Port feature direction, flow direction, connection-end ordering and graphical arrow direction must remain separate fields/concepts.
Requirements and verification
SatisfyRequirementUsage is a usage with requirement/constraint semantics, not simply a colored edge. RequirementVerificationMembership is a specialized membership associated with verified requirements. A link to evidence and an executed verification result are different concepts. See §§8.3.21, 8.3.24, 8.4.17 and 8.4.20.
Metamodel properties, modeled attributes and notation
| Category | Example | Handling |
|---|---|---|
| Metamodel property | Definition::isVariation |
Use the metamodel declaration and constraints |
| Derived metamodel property | /ownedPart, /isReference |
Compute/obtain from the semantic engine; avoid independent writable copies |
| Model feature | A user-declared AttributeUsage such as mass |
Resolve its type, value expression and units |
| Notation | A label or compartment in graphical syntax | Record its syntax-to-semantics mapping; it is not an extra metamodel attribute |
A leading slash in §8.3 declarations indicates derivation. This is distinct from a modeler's derived feature modifier. Stored, inherited, derived and implied information must be distinguishable in inventory records. See §8.3.1 and §8.3.6.
Property and relationship coverage checklist
The JSON retains declaration signatures rather than inventing a flattened database schema. Examples directly extracted from the source:
| Metaclass | Declared properties to inspect | Section |
|---|---|---|
Definition |
isVariation; derived owned-usage collections and variant information |
8.3.6.2 |
Usage |
Derived definition, isReference, mayTimeVary, nested-usage collections; isVariation |
8.3.6.4 |
OccurrenceUsage |
isIndividual, portionKind, derived individualDefinition and occurrenceDefinition |
8.3.9.4 |
PortUsage |
Derived portDefinition with [0..*] multiplicity |
8.3.12.6 |
AssignmentActionUsage |
Derived referent, targetArgument, valueExpression |
8.3.17.5 |
IfActionUsage |
Derived ifArgument, thenAction, optional elseAction |
8.3.17.10 |
StateUsage |
isParallel; derived entry/do/exit actions and state definitions |
8.3.18.6 |
TransitionUsage |
Derived source, target, succession, trigger actions, guard expressions and effect actions | 8.3.18.9 |
SatisfyRequirementUsage |
Derived satisfiedRequirement, satisfyingFeature |
8.3.21.10 |
ViewUsage |
Derived exposed elements, satisfied viewpoints, conditions, view definition and rendering | 8.3.26.11 |
For every supported kind, inspect applicable inherited properties too: identity, names, visibility, owning relationships, typing, abstractness, direction, multiplicity bounds, ordering, uniqueness, composition/reference, specialization, value expressions, initial/default values, variation and temporal portions. Applicability and defaults depend on kind/context; do not expose every modifier on every element or assume a universal default multiplicity.
A relationship record needs more than source/target strings: preserve its own ID/kind, role-specific references, owning context, explicit/implied status and constraints. The renderer may choose a simpler edge representation without discarding the semantic record.
Behavioral coverage and runtime boundary
All families below belong in the language inventory.
| Behavior family | Capture in the semantic model | Execution work beyond rendering | Source |
|---|---|---|---|
| Occurrences/events | Temporal portions, identity and event references | Lifetimes and temporal interpretation | §8.3.9 |
| Actions/performances | Definitions, usages, parameters, performed-action references | Invocation and parameter binding | §8.3.17 |
| Branching and concurrency | Decisions, merges, forks, joins and successions | Scheduling and synchronization | §8.3.17.6–8.3.17.13 |
| Structured control | If/for/while forms, test/sequence/body/variable references | Evaluate conditions and iterate | §8.3.17 |
| Communication/triggers | Send/accept payloads and endpoint/trigger expressions | Transfer handling, matching and time/change triggers | §8.3.17 |
| Assignment/termination | Target/referent/value and terminated-occurrence references | Mutate time-varying values and end lifetimes | §8.3.17.5, §8.3.17.16 |
| States | Parallel/exclusive structure, exhibited states, entry/do/exit memberships | Active-state and subaction lifecycle | §8.3.18 |
| Transitions | Source/target, trigger/guard/effect memberships | Trigger eligibility, guard evaluation and transition effects | §8.3.18.8–8.3.18.9 |
| Calculations/constraints | Parameters, expressions, assertions and dependencies | Expression evaluation and constraint checking | §§8.3.19–8.3.20 |
| Analysis/verification cases | Objectives, subjects, results and verified requirements | Execute analysis or verification with a declared evaluator | §§8.3.22–8.3.24 |
Behavioral declarations, semantic validity, expression evaluation and execution semantics are separate inventory dimensions. Detailed behavior comes from §8.4 and model libraries, including referenced KerML foundations; this inventory records their scope without implementing an execution engine.
Views, variability, metadata and libraries
Views/viewpoints/renderings/exposure/filtering are model concepts (§8.3.26), distinct from arbitrary diagram presentation. Metadata definitions/usages (§8.3.27) and semantic extensions differ from untyped custom properties. Variation points and VariantMembership (§8.3.6) must not be treated as simultaneous owned features.
Library coverage must remain a separate workstream from metaclass enumeration:
| Library group | Reference | Required investigation |
|---|---|---|
| Systems Model Library | §9.2 | Base definitions/usages and implicit specialization targets |
| Standard views and reflection | §§9.2.20, 9.2.22 | Standard view definitions and the reflective SysML model |
| Metadata | §9.3 | Structured annotations and domain metadata |
| Analysis | §9.4 | Tool execution and analysis/trade-study models |
| Cause and effect | §9.5 | Causation-related modeling |
| Requirement derivation | §9.6 | Derivation models and metadata |
| Geometry | §9.7 | Spatial/shape types and operations |
| Quantities and units | §9.8 | Quantity values, measurement references, units and conversions |
These are coverage pointers, not an enumeration of every library element. Library symbols such as a verdict enumeration must not be mistaken for new §8.3 metaclasses. A library-aware parser/resolver is required before accurate inherited-feature and typing displays can be promised.
Source discrepancies and generated-answer corrections
| Finding | Evidence/check | Treatment |
|---|---|---|
| Port referentiality is overgeneralized in prose | §8.3.12.6 description versus validatePortUsageIsReference, validatePortUsageNestedUsagesNotComposite and checkPortUsageSubportSpecialization |
Preserve the discrepancy. Constraints distinguish nested port contexts; do not implement an unconditional ban on composite ports from the overview alone |
| Transition fields are collections in abstract syntax | §8.3.18.9 declares trigger, guard and effect collections with [0..*] |
Keep the declared shape; investigate constraints/library restrictions before interpreting them as singular properties |
| A notebook answer conflated ownership and composition | Its structural summary treated OwningMembership and isComposite together; the source separates membership and usage semantics |
Use the four-way distinction above |
| Several SysML classes were mislabeled as KerML classes | Requirement/case answer labeled ConstraintDefinition, CalculationDefinition and others as KerML classes |
Verify against each class's General Classes declaration; do not copy generated inheritance tables |
| Some class section numbers were wrong | Behavior answer assigned wrong subsection IDs to StateDefinition, TransitionUsage and SuccessionAsUsage |
Use extracted index: 8.3.18.5, 8.3.18.9 and 8.3.13.6 respectively |
| Generated cardinalities were polluted by citation markers | Structural answer included declarations such as [5] alongside citations |
Use source declaration strings, not the generated table |
| API protocol lists varied between answers | Generated scope answers listed unsupported mixes of protocols | Do not repeat them; the separate API specification was not researched here |
These findings demonstrate why notebook answers cannot substitute for an official metamodel and clause-by-clause validation. No erratum was filed and no standard interpretation is claimed as approved.
Acceptance cases and open coverage
Use these examples to audit inventory coverage:
- Inherited and redefined features remain distinguishable from directly declared ones.
- Multiplicity, units, expressions and default/initial values survive inspection without flattening their meaning.
- A conjugated port retains its typing and direction semantics.
- A branching/concurrent action model displays control kinds without claiming simulation.
- A guarded state transition retains triggers/effects and its exact memberships.
- Satisfaction and verification retain their distinct semantic structures.
- Metadata application and a filtered view reference existing elements without duplicating ownership.
- Unsupported library features and unresolved references are retained and diagnosed rather than dropped.
Still open: complete inherited KerML schema, official metamodel validation, all library declarations, grammar/graphical-notation coverage, full OCL and derivation evaluation, source-preserving parser behavior, API/interchange scope and execution conformance. These acceptance cases are proposed, not run.
Reproduction and verification
The installed nlm CLI was used directly. The normal authenticated profile worked; no credentials were read or printed, and no notebook sources, notes, sharing settings or artifacts were changed. Queries may remain in notebook chat history.
nlm notebook get 68f78add-cb6f-42cf-9e2e-cb1b1ce42511
nlm source content c83ee3d3-22d7-4c7c-97f5-196a6fe0c27d \
--output sandbox/sysml-notebook/source.txt
nlm notebook query 68f78add-cb6f-42cf-9e2e-cb1b1ce42511 \
'<targeted language-inventory question>' \
--json --new-conversation
The catalogue was extracted by reading unique named subsection headings in §§8.3.6–8.3.27, selecting their body occurrences, and collecting General Classes, one-line property declarations between Attributes and Operations, and constraint identifiers. It is sensitive to source-text layout; its raw declaration strings intentionally remain visible for review.
Raw retrieved text and generated answers are not included in this public repository. The catalogue retains query topics, conversation IDs and question/answer hashes. Original question wording included project-specific context and is omitted rather than rewritten as if different questions had been asked. Seven queries returned successfully, with the expected source ID. Verification checked JSON parsing, unique entry names/sections, counts, representative source declarations and local documentation links. The catalogue and documentation checks do not establish language conformance.
Research repository scope
This repository owns the ongoing SysML v2 inventory. Its records describe language constructs, source evidence and unresolved coverage. Notebook access may require authorization; no public sharing was enabled. Query topic summaries are descriptive labels, not verbatim historical prompts.