Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Structure

Generated from the sysml-rs language pack — see the Language Reference index for provenance, licensing, and the raw JSON. 65 cards.

Association

KerMLkerml.structure.association

An association is a classifier of links between things, relating two or more end features. It is the KerML base of SysML connection definitions; its ends name the related types.

package P { class C; assoc A { end a : C; end b : C; } }

Normative clauses: KerML §7.4.5

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Association Structure

KerMLkerml.structure.association-structure

An association structure is both an association and a structure: a link that itself carries structural features, so the link between things is a structured object in its own right.

package P { class C; assoc struct AS { end a : C; end b : C; } }

Normative clauses: KerML §7.4.5.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Binding Connector

KerMLkerml.structure.binding-connector

A binding connector asserts that its two ends are the same thing — a binding that forces the connected features to have identical values. It is written with the equals form.

package P { class C; feature x : C; binding b = x; }

Normative clauses: KerML §8.2.5.5.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Class

KerMLkerml.structure.class

A class is a classifier of occurrences — things that exist over time and space with intrinsic identity. It is the KerML base from which SysML parts and other occurrence-typed constructs derive.

package P { class C; }

Normative clauses: KerML §7.4.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Classifier

KerMLkerml.structure.classifier

A classifier is a type that classifies individual things by their intrinsic identity, as opposed to a feature that classifies things by their role. Classes, structures, and behaviors are all classifiers.

package P { classifier C; }

Normative clauses: KerML §7.3.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Classifier Conjugation

KerMLkerml.structure.classifier-conjugation

A classifier conjugation (classifier C ~ D; or ... conjugates D;) declares a classifier as the conjugate of another, inheriting its features with directions reversed. The grammar rule ClassifierConjugation returns Conjugation — the declaring classifier is the conjugatedType, the target the originalType; there is no distinct ClassifierConjugation metaclass.

package P { classifier D; classifier C ~ D; }

Normative clauses: KerML §8.2.4.2.1

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Conjugation

KerMLkerml.structure.conjugation

A conjugation relationship (conjugates or the symbolic ~) makes a type inherit another’s features with input/output directions reversed. Lowers to a distinct Conjugation relationship (conjugatedType = the declaring type, originalType = the target). Both spellings are admitted; in lambda-parameter position only the conjugates keyword applies (the ~ there is the unary operator).

package P { class A; class X conjugates A; }

Normative clauses: KerML §8.3.3.1.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Connector

KerMLkerml.structure.connector

A connector is a feature that links two or more other features, typed by an association. It is the KerML base of SysML connection usages; its ends name the connected features.

package P { class C; feature x : C; feature y : C; connector c from x to y; }

Normative clauses: KerML §7.4.6

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Data Type

KerMLkerml.structure.data-type

A datatype is a classifier of data values — things distinguished only by their value, with no intrinsic identity, so two equal values are the same datum. It is the KerML base of SysML attribute value types.

package P { datatype D; }

Normative clauses: KerML §7.4.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Differencing

KerMLkerml.structure.differencing

A differencing relationship (differences) makes a type the difference of the listed types — the instances of the first that are not in the rest. Lowers to a distinct Differencing relationship owned by the declaring type.

package P { class A; class B; class D differences A, B; }

Normative clauses: KerML §8.3.3.1.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Disjoining

KerMLkerml.structure.disjoining

A disjoining relationship (disjoint from) asserts two types share no instances. Lowers to a distinct Disjoining relationship owned by the declaring type.

package P { class A; class B; class J disjoint from A, B; }

Normative clauses: KerML §8.3.3.1.4

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

EndFeatureMembership

KerMLkerml.structure.end-feature-membership

The EndFeatureMembership metamodel relationship (KerML abstract syntax). It has no dedicated concrete notation — it is how the model graph is wired — so it is documented as a metamodel concept with its inheritance and property constraints, not a grammar card.

Normative clauses: KerML §8.3.3.3.3

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Feature Conjugation

KerMLkerml.structure.feature-conjugation

A feature conjugation (feature b ~ a; or ... conjugates a;) declares a feature as the conjugate of another feature. The grammar rule FeatureConjugation returns Conjugation — the declaring feature is the conjugatedType, the target feature the originalType; there is no distinct FeatureConjugation metaclass.

package P { part def B { attribute a; attribute b ~ a; } }

Normative clauses: KerML §8.2.4.3.1

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Feature Inverting

KerMLkerml.structure.feature-inverting

A feature-inverting relationship (inverse of) asserts two features are inverses — each instance’s value under one is the reverse of the other. Lowers to a distinct FeatureInverting relationship owned by the declaring feature.

package P { feature f; feature g inverse of f; }

Normative clauses: KerML §8.3.3.3.6

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

FeatureMembership

KerMLkerml.structure.feature-membership

The FeatureMembership metamodel relationship (KerML abstract syntax). It has no dedicated concrete notation — it is how the model graph is wired — so it is documented as a metamodel concept with its inheritance and property constraints, not a grammar card.

Normative clauses: KerML §8.3.3.1.6

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Feature Typing

KerMLkerml.structure.feature-typing

A feature typing relates a feature to a type that classifies it — the relationship behind x : T. The same abstract-syntax relationship is realized by two divergent concrete syntaxes: KerML’s 'typing' typedFeature (':'|'typed' 'by') FeatureType versus SysML’s OwnedFeatureTyping | ConjugatedPortTyping dispatcher.

package P { part def A; part a : A; }

Normative clauses: KerML §8.3.3.3.7

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Related: Feature Typing

Filter Package

KerMLkerml.structure.filter-package

A filter package restricts which members are imported by a filter condition, written filter @Metadata inside the package. The condition lowers to a distinct ElementFilterMembership.

metadata def Safety; package P { filter @Safety; }

Normative clauses: KerML §8.3.4.13.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Import

KerMLkerml.structure.import

An import brings the members of another namespace into scope so their names resolve without full qualification. Visibility controls whether the imported names are re-exported.

package Lib { part def Widget; }
package App { import Lib::*; part w : Widget; }

Normative clauses: KerML §8.3.2.4.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Intersecting

KerMLkerml.structure.intersecting

An intersecting relationship (intersects) makes a type the intersection of the listed types — its instances are those common to all intersected types. Lowers to a distinct Intersecting relationship owned by the declaring type.

package P { class A; class B; class I2 intersects A, B; }

Normative clauses: KerML §8.3.3.1.7

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Library Package

KerMLkerml.structure.library-package

A library package is a package marked as a reusable model library with the library keyword. Its members are standard/shared definitions imported by other models; it lowers to a distinct LibraryPackage element.

library package Lib { part def P; }

Normative clauses: KerML §8.3.4.13.3

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Membership

KerMLkerml.structure.membership

The Membership metamodel relationship (KerML abstract syntax). It has no dedicated concrete notation — it is how the model graph is wired — so it is documented as a metamodel concept with its inheritance and property constraints, not a grammar card.

Normative clauses: KerML §8.3.2.4.3

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Membership Import

KerMLkerml.structure.membership-import

A membership import brings one named member of a namespace into scope, written import Path::member. It lowers to a distinct MembershipImport, in contrast to the wildcard namespace import.

package Q { part def X; } package R { import Q::X; }

Normative clauses: KerML §8.3.2.4.4

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Metaclass

KerMLkerml.structure.metaclass

A metaclass is a class whose instances are themselves model elements — the type of a metadata annotation. Metadata features are typed by metaclasses to attach structured data to the elements they annotate.

package P { metaclass M; }

Normative clauses: KerML §8.4.4.13.1

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Multiplicity

KerMLkerml.structure.multiplicity

A multiplicity bounds how many instances a feature may have, written as a range in square brackets. Bounds are a lower and an optional upper limit.

package P { part def A { attribute a[0..1]; } }

Normative clauses: KerML §8.3.3.1.9

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Namespace

KerMLkerml.structure.namespace

A namespace owns named members and defines the scope in which those names are visible and resolvable. Packages are the usual concrete namespaces a modeller writes; membership establishes the owned names.

package Ns { part def A; part def B; }

Normative clauses: KerML §8.3.2.4.5

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Namespace Import

KerMLkerml.structure.namespace-import

A namespace import brings every member of a namespace into scope, written import Path::*. It lowers to a distinct NamespaceImport and is the wildcard companion of the single-member membership import.

package Q { part def X; } package R { import Q::*; }

Normative clauses: KerML §8.3.2.4.6

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

OwningMembership

KerMLkerml.structure.owning-membership

The OwningMembership metamodel relationship (KerML abstract syntax). It has no dedicated concrete notation — it is how the model graph is wired — so it is documented as a metamodel concept with its inheritance and property constraints, not a grammar card.

Normative clauses: KerML §8.3.2.4.8

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Package

KerMLkerml.structure.package

A package is the concrete namespace a modeller writes to group related members and control their visibility. It owns named members and defines the scope in which those names resolve; membership within a package must be name-unique.

package P { class C; package Inner { class D; } }

Normative clauses: KerML §7.4.14

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Redefinition

KerMLkerml.structure.redefinition

A redefinition relates a feature to an inherited feature it replaces, so the redefining feature stands in for the original in its context — the redefines (or :>>) relationship. It is a specialized subsetting that also hides the redefined feature.

package P { type A; feature f : A; feature h : A redefines f; }

Normative clauses: KerML §8.3.3.3.8

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Specialization

KerMLkerml.structure.specialization

A specialization relates a more specific type to a more general one, so the specific type inherits the general type’s features. In usage syntax it is written with the subclassification operator.

package P { part def A; part def B :> A; }

Normative clauses: KerML §8.3.3.1.8

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Structure

KerMLkerml.structure.structure

A structure is a class whose instances are structural — composed of interconnected parts rather than behavioral occurrences. It is the KerML base from which SysML part definitions derive.

package P { struct S; }

Normative clauses: KerML §7.4.4

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Subsetting

KerMLkerml.structure.subsetting

A subsetting relates a feature to a more general feature whose values include all of the subsetting feature’s values — the subsets (or :>) relationship between features. It is the feature-level analogue of subclassification.

package P { type A; feature f : A; feature g : A subsets f; }

Normative clauses: KerML §8.3.3.3.10

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Type

KerMLkerml.structure.type

A type is the most general KerML classifier of things: it classifies a set of instances and may specialize other types, inheriting their features. Classes, datatypes, associations, and behaviors are all specialized kinds of type.

package P { type T; }

Normative clauses: KerML §7.3.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Type Featuring

KerMLkerml.structure.type-featuring

A type-featuring relationship (featured by) makes a feature a feature of another type. Lowers to a distinct TypeFeaturing relationship owned by the declaring feature.

package P { class A; feature g featured by A; }

Normative clauses: KerML §8.3.3.3.11

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Unioning

KerMLkerml.structure.unioning

A unioning relationship (unions) makes a type the union of the listed types — its instances are those of any unioned type. Lowers to a distinct Unioning relationship owned by the declaring type.

package P { class A; class B; class U unions A, B; }

Normative clauses: KerML §8.3.3.1.11

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Allocation Definition

SysMLsysml.structure.allocation-definition

An allocation definition, written allocation def, defines a reusable kind of allocation relating a source element to a target element. It lowers to a distinct AllocationDefinition.

allocation def AD { }

Normative clauses: SysML §7.15.2

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Allocation Usage

SysMLsysml.structure.allocation-usage

An allocation usage records that one element is allocated to another — a mapping decision (for example a function to a component) pending refinement into a firmer relationship. It has two or more ends and is typed by an allocation definition.

package P { part def Sys { part a; part b; allocation al allocate a to b; } }

Normative clauses: SysML §8.3.15.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Attribute Definition

SysMLsysml.structure.attribute-definition

An attribute definition defines a kind of value-typed feature that carries data rather than identity. Usages typed by it hold quantities or literals.

package P { attribute def Temperature; attribute t : Temperature; }

Normative clauses: SysML §8.3.7.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Attribute Usage

SysMLsysml.structure.attribute-usage

An attribute usage is a value-typed feature carrying data — a quantity or literal — rather than identity. It is typed by an attribute definition or a value type.

package P { attribute def Temperature; attribute t : Temperature; }

Normative clauses: SysML §8.3.7.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Binding Connector (as Usage)

SysMLsysml.structure.binding-connector-as-usage

A binding connector as usage, written bind a = b, asserts that two features have the same value at all times. It lowers to a distinct BindingConnectorAsUsage — the SysML usage form of a KerML binding connector.

part def P { attribute a; attribute b; bind a = b; }

Normative clauses: SysML §8.3.13.2

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Conjugated Port Definition

SysMLsysml.structure.conjugated-port-definition

A conjugated port definition is the input/output-reversed counterpart of a port definition, referenced with the ~ prefix (port p : ~P). It lowers to a distinct ConjugatedPortDefinition whose directions are flipped from the base port.

port def Pt { out item a; } part def Q { port p : ~Pt; }

Normative clauses: SysML §7.12.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Connection Definition

SysMLsysml.structure.connection-definition

A connection definition defines a reusable kind of connection between parts, with two or more ends. Connection usages instantiate it to wire specific parts together.

package P { connection def Link; }

Normative clauses: SysML §8.3.13.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Connection Usage

SysMLsysml.structure.connection-usage

A connection usage wires two or more parts together through connector ends. It is owned by a containing type (a part or action), not directly by a package, and instantiates a connection definition or the base association.

package P { part def Sys { part a; part b; connection c connect a to b; } }

Normative clauses: SysML §8.3.13.4

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Dependency

SysMLsysml.structure.dependency

A dependency declares that one or more client elements depend on one or more supplier elements — a coarse traceability link. It is a cross-grammar concept declared identically in KerML and SysML.

package P { part def A; part def B; dependency A to B; }

Normative clauses: SysML §7.3.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Enumerated Value

SysMLsysml.structure.enumerated-value

An enumerated value is the member form inside an enumeration definition. The spec models it as an EnumerationUsage (the grammar rule EnumeratedValue returns EnumerationUsage), so both the bare-name value form and the enum <name> form lower to an EnumerationUsage via a VariantMembership — there is no distinct EnumeratedValue metaclass.

package P { enum def Priority { high; low; } }

Normative clauses: SysML §7.8.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Enumeration Definition

SysMLsysml.structure.enumeration-definition

An enumeration definition defines a closed set of named literal values. Each enumerated value is a singleton usage of the definition, and a typed usage may take only one of them.

package P { enum def Color { enum red; enum green; } }

Normative clauses: SysML §8.3.8.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Enumeration Usage

SysMLsysml.structure.enumeration-usage

An enumeration usage is an attribute usage whose type is an enumeration definition. Inside an enum def body, enum <name>; declares an enumerated value (owned through a VariantMembership); standalone, enum <name> : <EnumDef>; declares an ordinary usage typed by the enumeration (plain owned member — the VariantMembership wrapper is enum-def-body-only). Both lower to a distinct EnumerationUsage.

package P { enum def Color { enum red; enum green; } }

Normative clauses: SysML §8.3.8.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Event Occurrence Usage

SysMLsysml.structure.event-occurrence-usage

An event occurrence usage marks a point event within an enclosing occurrence’s life — the happening of an occurrence, rather than the occurrence itself. It is written with the event keyword and either references an existing occurrence or declares one inline.

package P { occurrence def O { event occurrence e; } }

Normative clauses: SysML §8.3.9.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Feature Typing

SysMLsysml.structure.feature-typing

A feature typing relates a feature to a type that classifies it — the relationship behind x : T. The same abstract-syntax relationship is realized by two divergent concrete syntaxes: KerML’s 'typing' typedFeature (':'|'typed' 'by') FeatureType versus SysML’s OwnedFeatureTyping | ConjugatedPortTyping dispatcher.

package P { part def A; part a : A; }

Normative clauses: KerML §8.3.3.3.7

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Related: Feature Typing

Flow Connection

SysMLsysml.structure.flow-connection

A flow connection transfers items from a source port or feature to a compatible target across a connection. Endpoints must be reachable and their item types compatible.

package P { part def A { out port o; } part def B { in port i; } part def Sys { part a : A; part b : B; flow a.o to b.i; } }

Normative clauses: SysML §8.3.16.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Flow Definition

SysMLsysml.structure.flow-definition

A flow definition, written flow def, defines a reusable kind of transfer of items between features. It lowers to a distinct FlowDefinition that flow usages can be typed by.

flow def FD { }

Normative clauses: SysML §8.3.16.2

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Individual Definition

SysMLsysml.structure.individual-definition

An individual definition (individual def X;) defines a class constrained to represent at most one individual over its lifetime. The grammar rule IndividualDefinition returns OccurrenceDefinition with isIndividual = true — there is no distinct IndividualDefinition metaclass. It lowers to an OccurrenceDefinition carrying the flag (the spec’s owned empty-multiplicity member is consciously carried by the flag alone).

package P { individual def X; abstract individual def Y :> X; }

Normative clauses: SysML §7.9.4

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Individual Usage

SysMLsysml.structure.individual-usage

An individual usage (the individual prefix) names a single identified occurrence. The spec models it as an OccurrenceUsage with isIndividual = true; it lowers to an OccurrenceUsage carrying that flag — there is no distinct IndividualUsage metaclass.

package P { occurrence def D; individual d : D; }

Normative clauses: SysML §7.9.4

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Interface Definition

SysMLsysml.structure.interface-definition

An interface definition defines a reusable kind of connection between ports, coupling their directed features. Interface usages instantiate it between specific ports.

package P { interface def Ifc; }

Normative clauses: SysML §8.3.14.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Interface Usage

SysMLsysml.structure.interface-usage

An interface usage connects two ports through interface ends, coupling their directed features. Like a connection it must be owned by a containing type, not directly by a package, and instantiates an interface definition.

package P { port def Sig; part def Sys { part x { port p1 : Sig; } part y { port p2 : Sig; } interface i connect x.p1 to y.p2; } }

Normative clauses: SysML §8.3.14.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Item Definition

SysMLsysml.structure.item-definition

An item definition defines a kind of thing that can be created, stored, or moved through a system — items carry identity but need not be behavioral parts. Usages typed by it occupy structure or flow along connections.

package P { item def Widget; }

Normative clauses: SysML §8.3.10.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Item Usage

SysMLsysml.structure.item-usage

An item usage is a typed occurrence of an item within a structure or flow. It is typed by an item definition and may be nested in a part or carried by a flow connection.

package P { item def Widget; item w : Widget; }

Normative clauses: SysML §8.3.10.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Occurrence Definition

SysMLsysml.structure.occurrence-definition

An occurrence definition defines a kind of thing that exists over time and space — the common base of parts (structure) and actions (behavior).

package P { occurrence def Event; }

Normative clauses: SysML §8.3.9.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Occurrence Usage

SysMLsysml.structure.occurrence-usage

An occurrence usage is a typed occurrence within a model’s space-time. It is typed by an occurrence definition and may be portioned in time or space.

package P { occurrence def Event; occurrence e : Event; }

Normative clauses: SysML §8.3.9.4

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Part Definition

SysMLsysml.structure.part-definition

A part definition defines a reusable kind of system component with structure and behavior. Part usages instantiate it within a containing structure.

package P { part def Engine; }

Normative clauses: SysML §8.3.11.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Part Usage

SysMLsysml.structure.part-usage

A part usage is a typed occurrence of a part within a containing structure. It is typed by a part definition and may nest further usages or redefine inherited ones.

package P { part def Engine; part e : Engine; }

Normative clauses: SysML §8.3.11.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Port Definition

SysMLsysml.structure.port-definition

A port definition defines a reusable kind of interaction point through which items and information pass. Port usages instantiate it on parts, optionally conjugated to reverse direction.

package P { port def Fuel; }

Normative clauses: SysML §8.3.12.5

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Port Usage

SysMLsysml.structure.port-usage

A port usage is a typed interaction point on a part through which items and information pass. It is typed by a port definition and may be conjugated to reverse direction.

package P { port def Fuel; part def E { port p : Fuel; } }

Normative clauses: SysML §8.3.12.6

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Portion Usage

SysMLsysml.structure.portion-usage

A portion usage (snapshot or timeslice) denotes a temporal portion of an occurrence. The spec models it as an OccurrenceUsage carrying a PortionKind; it lowers to an OccurrenceUsage with that portion kind — there is no distinct PortionUsage metaclass.

package P { occurrence def D; occurrence o : D { snapshot s; } }

Normative clauses: SysML §8.3.9.5

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Reference Usage

SysMLsysml.structure.reference-usage

A reference usage is a non-composite feature that refers to something owned elsewhere, rather than composing it. The ref keyword marks a feature as referential.

package P { part def W { ref r; } }

Normative clauses: SysML §8.3.6.3

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown