OSLC Systems Modeling Language Version 2.0. Part 3: Constraints defines the standard OSLC constratint on the RDF vocabulary terms and resources that are the OSLC representation of the corresponding OMG Systems Modeling Language Version 2.0.
This document was last revised or approved by the OASIS Open Services for Lifecycle Collaboration (OSLC) OP on the above date. The level of approval is also listed above. Check the “Latest stage” location noted above for possible later revisions of this document. Any other numbered Versions and other technical work produced by the Open Project are listed at https://open-services.net/about/.
Comments on this work can be provided by opening issues in the project repository or by sending email to the project’s public comment list oslc-op@lists.oasis-open-projects.org.
Note that any machine-readable content (Computer Language Definitions) declared Normative for this Work Product is provided in separate plain text files. In the event of a discrepancy between any such plain text file and display content in the Work Product's prose narrative document(s), the content in the separate plain text file prevails.
[OSLC-SYSML-2.0-Part3]
OSLC Systems Modeling Language Version 2.0 Part 3: Constraints.
Edited by Jim Amsden.
25 April 2024.
OASIS Project Specification Draft 01.
https://docs.oasis-open-projects.org/oslc-op/sysml/v2.0/psd01/sysml-shapes.html.
Latest stage: https://docs.oasis-open-projects.org/oslc-op/sysml/v2.0/sysml-shapes.html.
Copyright © OASIS Open 2024. All Rights Reserved.
All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.
This specification is published under the Attribution 4.0 International (CC BY 4.0). Portions of this specification are also provided under the Apache License 2.0.
All contributions made to this project have been made under the OASIS Contributor License Agreement (CLA).
For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Open Projects IPR Statements page.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Open Project or OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Project Specification or OASIS Standard, to notify the OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.
OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Open Project that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.
OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Open Project Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.
The name "OASIS" is a trademark of OASIS, the owner and developer of this specification, and should be used only to refer to the organization and its official outputs. OASIS welcomes reference to, and implementation and use of, specifications, while reserving the right to enforce its marks against misleading uses. Please see https://www.oasis-open.org/policies-guidelines/trademark/ for above guidance.
This section is non-normative.
RDF vocabularies define the terms and resources for a domain of interest, life-cycle management in the case of OSLC SysML v2. These vocabularies are often specified in an open manner, without providing information such as property domain and range assertions, cardinalities, etc. This helps keep the vocabulary applicable for a wide range of uses and furthering integration with other vocabularies.
However, it is often desirable to closed down a vocabulary with specific constraints to facilitate using the vocabulary for a specific purpose. This document specifies the constraints for using the OSLC SysML v2 vocabulary in OSLC. Different sets of constraints may be applied to a vocabulary in order to tailor its use, without overly constraining the vocabulary for other usages.
These constraints apply to the core vocabulary defined in OSLC SysML Version 2.0. Part 2: Vocabulary.
This section is non-normative.
Terminology is based on OSLC Core Overview [OSLCCore3], W3C Linked Data Platform [LDP], W3C's Architecture of the World Wide Web [WEBARCH], Hyper-text Transfer Protocol [HTTP11]. Terminology for this specification is defined in part 1 of the multi-part specification.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this specification are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
In addition to the namespace URIs and namespace prefixes oslc, rdf,
dcterms and foaf defined in the
OSLC Core specification, OSLC SysML v2 defines the namespace URI of http://open-services.net/ns/sysmlv2# with a
namespace prefix of oslc_sysmlv2
This specification also uses these namespace prefix definitions:
http://open-services.net/ns/core# [OSLCCore3]This section specifies the constraints for the SysML v2 resources. The resource properties are not limited to the ones defined in this specification, SysML v2 Servers may provide additional properties. It is recommended that any additional properties exist in their own unique namespace and not use the namespaces defined in these specifications.
http://open-services.net/ns/sysmlv2#AnnotatingElementAnnotatingElement is an Element that provides additional description of or metadata on some other Element. An AnnotatingElement is either attached to its annotatedElements by Annotation Relationships, or it implicitly annotates its owningNamespace.http://open-services.net/ns/sysmlv2#EventOccurrenceUsageEventOccurrenceUsage is an OccurrenceUsage that represents another OccurrenceUsage occurring as a suboccurrence of the containing occurrence of the EventOccurrenceUsage. Unless it is the EventOccurrenceUsage itself, the referenced OccurrenceUsage is related to the EventOccurrenceUsage by a ReferenceSubsetting Relationship.http://open-services.net/ns/sysmlv2#ConjugatedPortDefinitionConjugatedPortDefinition is a PortDefinition that is a PortDefinition of its original PortDefinition. That is, a ConjugatedPortDefinition inherits all the features of the original PortDefinition, but input flows of the original PortDefinition become outputs on the ConjugatedPortDefinition and output flows of the original PortDefinition become inputs on the ConjugatedPortDefinition. Every PortDefinition (that is not itself a ConjugatedPortDefinition) has exactly one corresponding ConjugatedPortDefinition, whose effective name is the name of the originalPortDefinition, with the character ~ prepended.http://open-services.net/ns/sysmlv2#ActionDefinitionActionDefinition is a Definition that is also a Behavior that defines an Action performed by a system or part of a system.http://open-services.net/ns/sysmlv2#ReturnParameterMembershipReturnParameterMembership is a ParameterMembership that indicates that the ownedMemberParameter is the result parameter of a Function or Expression. The direction of the ownedMemberParameter must be out.http://open-services.net/ns/sysmlv2#SuccessionAsUsageSuccessionAsUsage is both a ConnectorAsUsage and a Succession.http://open-services.net/ns/sysmlv2#InvocationExpressionInvocationExpression is an Expression each of whose input parameters are bound to the result of an argument Expression.http://open-services.net/ns/sysmlv2#RequirementDefinitionRequirementDefinition is a ConstraintDefinition that defines a requirement used in the context of a specification as a constraint that a valid solution must satisfy. The specification is relative to a specified subject, possibly in collaboration with one or more external actors.http://open-services.net/ns/sysmlv2#ItemFlowEndItemFlowEnd is a Feature that is one of the connectorEnds giving the source or target of an ItemFlow. For ItemFlows typed by FlowTransfer or its specializations, ItemFlowEnds must have exactly one ownedFeature, which redefines Transfer::source::sourceOutput or Transfer::target::targetInput and redefines the corresponding feature of the relatedElement for its end.http://open-services.net/ns/sysmlv2#ConnectorConnector is a usage of Associations, with links restricted according to instances of the Type in which they are used (domain of the Connector). The associations of the Connector restrict what kinds of things might be linked. The Connector further restricts these links to be between values of Features on instances of its domain.http://open-services.net/ns/sysmlv2#FlowConnectionDefinitionFlowConnectionDefinition is a ConnectionDefinition and ActionDefinition that is also an Interaction representing flows between Usages.http://open-services.net/ns/sysmlv2#VariantMembershipVariantMembership is a Membership between a variation point Definition or Usage and a Usage that represents a variant in the context of that variation. The membershipOwningNamespace for the VariantMembership must be either a Definition or a Usage with isVariation = true.http://open-services.net/ns/sysmlv2#NullExpressionNullExpression is an Expression that results in a null value.http://open-services.net/ns/sysmlv2#LiteralStringLiteralString is a LiteralExpression that provides a String value as a result. Its result parameter must have the type String.http://open-services.net/ns/sysmlv2#EnumerationUsageEnumerationUsage is an AttributeUsage whose attributeDefinition is an EnumerationDefinition.http://open-services.net/ns/sysmlv2#OperatorExpressionOperatorExpression is an InvocationExpression whose function is determined by resolving its operator in the context of one of the standard packages from the Kernel Function Library.http://open-services.net/ns/sysmlv2#BooleanExpressionBooleanExpression is a Boolean-valued Expression whose type is a Predicate. It represents a logical condition resulting from the evaluation of the Predicate.http://open-services.net/ns/sysmlv2#StateDefinitionStateDefinition is the Definition of the Behavior of a system or part of a system in a certain state condition.http://open-services.net/ns/sysmlv2#NamespaceExposeNamespaceExpose is an Expose Relationship that exposes the Memberships of a specific importedNamespace and, if isRecursive = true, additional Memberships recursively.http://open-services.net/ns/sysmlv2#SpecializationSpecialization is a Relationship between two Types that requires all instances of the specific type to also be instances of the general Type (i.e., the set of instances of the specific Type is a subset of those of the general Type, which might be the same set).http://open-services.net/ns/sysmlv2#LibraryPackageLibraryPackage is a Package that is the container for a model library. A LibraryPackage is itself a library Element as are all Elements that are directly or indirectly contained in it.http://open-services.net/ns/sysmlv2#ViewpointUsageViewpointUsage is a Usage of a ViewpointDefinition.http://open-services.net/ns/sysmlv2#ConnectionDefinitionConnectionDefinition is a PartDefinition that is also an AssociationStructure. The end Features of a ConnectionDefinition must be Usages.http://open-services.net/ns/sysmlv2#RelationshipRelationship is an Element that relates other Element. Some of its relatedElements may be owned, in which case those ownedRelatedElements will be deleted from a model if their owningRelationship is. A Relationship may also be owned by another Element, in which case the ownedRelatedElements of the Relationship are also considered to be transitively owned by the owningRelatedElement of the Relationship.http://open-services.net/ns/sysmlv2#IntersectingIntersecting is a Relationship that makes its intersectingType one of the intersectingTypes of its typeIntersected.http://open-services.net/ns/sysmlv2#ParameterMembershipParameterMembership is a FeatureMembership that identifies its memberFeature as a parameter, which is always owned, and must have a direction. A ParameterMembership must be owned by a Behavior or a Step.http://open-services.net/ns/sysmlv2#ClassClass is a Classifier of things (in the universe) that can be distinguished without regard to how they are related to other things (via Features). This means multiple things classified by the same Class can be distinguished, even when they are related other things in exactly the same way.http://open-services.net/ns/sysmlv2#SubclassificationSubclassification is Specialization in which both the specific and general Types are Classifier. This means all instances of the specific Classifier are also instances of the general Classifier.http://open-services.net/ns/sysmlv2#ElementElement is a constituent of a model that is uniquely identified relative to all other Elements. It can have Relationships with other Elements. Some of these Relationships might imply ownership of other Elements, which means that if an Element is deleted from a model, then so are all the Elements that it owns.http://open-services.net/ns/sysmlv2#TransitionFeatureMembershipTransitionFeatureMembership is a FeatureMembership for a trigger, guard or effect of a TransitionUsage, whose transitionFeature is a AcceptActionUsage, Boolean-valued Expression or ActionUsage, depending on its kind. .http://open-services.net/ns/sysmlv2#FeatureValueFeatureValue is a Membership that identifies a particular member Expression that provides the value of the Feature that owns the FeatureValue. The value is specified as either a bound value or an initial value, and as either a concrete or default value. A Feature can have at most one FeatureValue.http://open-services.net/ns/sysmlv2#CommentComment is an AnnotatingElement whose body in some way describes its annotatedElements.http://open-services.net/ns/sysmlv2#FeatureChainExpressionFeatureChainExpression is an OperatorExpression whose operator is ".", which resolves to the Function ControlFunctions::'.' from the Kernel Functions Library. It evaluates to the result of chaining the result Feature of its single argument Expression with its targetFeature.http://open-services.net/ns/sysmlv2#UseCaseUsageUseCaseUsage is a Usage of a UseCaseDefinition.http://open-services.net/ns/sysmlv2#DataTypeDataType is a Classifier of things (in the universe) that can only be distinguished by how they are related to other things (via Features). This means multiple things classified by the same DataType.http://open-services.net/ns/sysmlv2#ExpressionExpression is a Step that is typed by a Function. An Expression that also has a Function as its featuringType is a computational step within that Function. An Expression always has a single result parameter, which redefines the result parameter of its defining function. This allows Expressions to be interconnected in tree structures, in which inputs to each Expression in the tree are determined as the results of other Expression in the tree.http://open-services.net/ns/sysmlv2#PartDefinitionPartDefinition is an ItemDefinition of a Class of systems or parts of systems. Note that all parts may be considered items for certain purposes, but not all items are parts that can perform actions within a system.http://open-services.net/ns/sysmlv2#SendActionUsageSendActionUsage is an ActionUsage that specifies the sending of a payload given by the result of its payloadArgument Expression via a MessageTransfer whose source is given by the result of the senderArgument Expression and whose target is given by the result of the receiverArgument Expression. If no senderArgument is provided, the default is the this context for the action. If no receiverArgument is given, then the receiver is to be determined by, e.g., outgoing Connections from the sender.http://open-services.net/ns/sysmlv2#LiteralExpressionLiteralExpression is an Expression that provides a basic DataValue as a result.http://open-services.net/ns/sysmlv2#StakeholderMembershipStakeholderMembership is a ParameterMembership that identifies a PartUsage as a stakeholderParameter of a RequirementDefinition or RequirementUsage, which specifies a role played by an entity with concerns framed by the owningType.http://open-services.net/ns/sysmlv2#ReferenceUsageReferenceUsage is a Usage that specifies a non-compositional (isComposite = false) reference to something. The definition of a ReferenceUsage can be any kind of Classifier, with the default being the top-level Classifier Base::Anything from the Kernel Semantic Library. This allows the specification of a generic reference without distinguishing if the thing referenced is an attribute value, item, action, etc.http://open-services.net/ns/sysmlv2#AllocationDefinitionAllocationDefinition is a ConnectionDefinition that specifies that some or all of the responsibility to realize the intent of the source is allocated to the target instances. Such allocations define mappings across the various structures and hierarchies of a system model, perhaps as a precursor to more rigorous specifications and implementations. An AllocationDefinition can itself be refined using nested allocations that give a finer-grained decomposition of the containing allocation mapping.http://open-services.net/ns/sysmlv2#ReferenceSubsettingReferenceSubsetting is a kind of Subsetting in which the referencedFeature is syntactically distinguished from other Features subsetted by the referencingFeature. ReferenceSubsetting has the same semantics as Subsetting, but the referenceFeature may have a special purpose relative to the referencingFeature. For instance, ReferenceSubsetting is used to identify the relatedFeatures of a Connector.http://open-services.net/ns/sysmlv2#InvariantInvariant is a BooleanExpression that is asserted to have a specific Boolean result value. If isNegated = false, then the result is asserted to be true. If isNegated = true, then the result is asserted to be false.http://open-services.net/ns/sysmlv2#TypeType is a Namespace that is the most general kind of Element supporting the semantics of classification. A Type may be a Classifier or a Feature, defining conditions on what is classified by the Type (see also the description of isSufficient).http://open-services.net/ns/sysmlv2#AnalysisCaseUsageAnalysisCaseUsage is a Usage of an AnalysisCaseDefinition.http://open-services.net/ns/sysmlv2#FramedConcernMembershipFramedConcernMembership is a RequirementConstraintMembership for a framed ConcernUsage of a RequirementDefinition or RequirementUsage.http://open-services.net/ns/sysmlv2#AssignmentActionUsageAssignmentActionUsage is an ActionUsage that is defined, directly or indirectly, by the ActionDefinition AssignmentAction from the Systems Model Library. It specifies that the value of the referent Feature, relative to the target given by the result of the targetArgument Expression, should be set to the result of the valueExpression.http://open-services.net/ns/sysmlv2#PackagePackage is a Namespace used to group Elements, without any instance-level semantics. It may have one or more model-level evaluable filterCondition Expressions used to filter its importedMemberships. Any imported member must meet all of the filterConditions.http://open-services.net/ns/sysmlv2#ItemFeatureItemFeature is the ownedFeature of an ItemFlow that identifies the things carried by the kinds of transfers that are instances of the ItemFlow.http://open-services.net/ns/sysmlv2#ConstraintUsageConstraintUsage is an OccurrenceUsage that is also a BooleanExpression, and, so, is typed by a Predicate. Nominally, if the type is a ConstraintDefinition, a ConstraintUsage is a Usage of that ConstraintDefinition. However, other kinds of kernel Predicates are also allowed, to permit use of Predicates from the Kernel Model Libraries.http://open-services.net/ns/sysmlv2#SubjectMembershipSubjectMembership is a ParameterMembership that indicates that its ownedSubjectParameter is the subject of its owningType. The owningType of a SubjectMembership must be a RequirementDefinition, RequirementUsage, CaseDefinition, or CaseUsage.http://open-services.net/ns/sysmlv2#FeatureInvertingFeatureInverting is a Relationship between Features asserting that their interpretations (sequences) are the reverse of each other, identified as featureInverted and invertingFeature. For example, a Feature identifying each person's parents is the inverse of a Feature identifying each person's children. A person identified as a parent of another will identify that other as one of their children.http://open-services.net/ns/sysmlv2#ElementFilterMembershipElementFilterMembership is a Membership between a Namespace and a model-level evaluable Boolean-valued Expression, asserting that imported members of the Namespace should be filtered using the condition Expression. A general Namespace does not define any specific filtering behavior, but such behavior may be defined for various specialized kinds of Namespaces.http://open-services.net/ns/sysmlv2#IncludeUseCaseUsageIncludeUseCaseUsage is a UseCaseUsage that represents the inclusion of a UseCaseUsage by a UseCaseDefinition or UseCaseUsage. Unless it is the IncludeUseCaseUsage itself, the UseCaseUsage to be included is related to the includedUseCase by a ReferenceSubsetting Relationship. An IncludeUseCaseUsage is also a PerformActionUsage, with its useCaseIncluded as the performedAction.http://open-services.net/ns/sysmlv2#ItemUsageItemUsage is a ItemUsage whose definition is a Structure. Nominally, if the definition is an ItemDefinition, an ItemUsage is a ItemUsage of that ItemDefinition within a system. However, other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Model Libraries.http://open-services.net/ns/sysmlv2#TextualRepresentationTextualRepresentation is an AnnotatingElement whose body represents the representedElement in a given language. The representedElement must be the owner of the TextualRepresentation. The named language can be a natural language, in which case the body is an informal representation, or an artificial language, in which case the body is expected to be a formal, machine-parsable representation.http://open-services.net/ns/sysmlv2#JoinNodeJoinNode is a ControlNode that waits for the completion of all the predecessor Actions given by incoming Successions.http://open-services.net/ns/sysmlv2#CalculationDefinitionCalculationDefinition is an Function producing a result.http://open-services.net/ns/sysmlv2#ConjugatedPortTypingConjugatedPortTyping is a FeatureTyping whose type is a ConjugatedPortDefinition. (This relationship is intended to be an abstract-syntax marker for a special surface notation for conjugated typing of ports.).http://open-services.net/ns/sysmlv2#MergeNodeMergeNode is a ControlNode that asserts the merging of its incoming Successions. A MergeNode may have at most one outgoing Successions.http://open-services.net/ns/sysmlv2#ConnectionUsageConnectionUsage is a ConnectorAsUsage that is also a PartUsage. Nominally, if its type is a ConnectionDefinition, then a ConnectionUsage is a Usage of that ConnectionDefinition, representing a connection between parts of a system. However, other kinds of kernel AssociationStructures are also allowed, to permit use of AssociationStructures from the Kernel Model Libraries.http://open-services.net/ns/sysmlv2#NamespaceImportNamespaceImport is an Import that imports Memberships from its importedNamespace into the importOwningNamespace. If isRecursive = false, then only the visible Memberships of the importedNamespace are imported. If isRecursive = true, then, in addition, Memberships are recursively imported from any ownedMembers of the importedNamespace that are Namespaces.http://open-services.net/ns/sysmlv2#FeatureReferenceExpressionFeatureReferenceExpression is an Expression whose result is bound to a referent Feature.http://open-services.net/ns/sysmlv2#AcceptActionUsageAcceptActionUsage is an ActionUsage that specifies the acceptance of an incomingTransfer from the Occurrence given by the result of its receiverArgument Expression. (If no receiverArgument is provided, the default is the this context of the AcceptActionUsage.) The payload of the accepted Transfer is output on its payloadParameter. Which Transfers may be accepted is determined by conformance to the typing and (potentially) binding of the payloadParameter.http://open-services.net/ns/sysmlv2#BindingConnectorBindingConnector is a binary Connector that requires its relatedFeatures to identify the same things (have the same values).http://open-services.net/ns/sysmlv2#TriggerInvocationExpressionTriggerInvocationExpression is an InvocationExpression that invokes one of the trigger Functions from the Kernel Semantic Library Triggers package, as indicated by its kind.http://open-services.net/ns/sysmlv2#ViewUsageViewUsage is a usage of a ViewDefinition to specify the generation of a view of the members of a collection of exposedNamespaces. The ViewUsage can satisfy more viewpoints than its definition, and it can specialize the viewRendering specified by its definition.http://open-services.net/ns/sysmlv2#AttributeDefinitionAttributeDefinition is a Definition and a DataType of information about a quality or characteristic of a system or part of a system that has no independent identity other than its value. All features of an AttributeDefinition must be referential (non-composite).http://open-services.net/ns/sysmlv2#MetaclassMetaclass is a Structure used to type MetadataFeatures.http://open-services.net/ns/sysmlv2#UseCaseDefinitionUseCaseDefinition is a CaseDefinition that specifies a set of actions performed by its subject, in interaction with one or more actors external to the subject. The objective is to yield an observable result that is of value to one or more of the actors.http://open-services.net/ns/sysmlv2#StepStep is a Feature that is typed by one or more Behaviors. Steps may be used by one Behavior to coordinate the performance of other Behaviors, supporting a steady refinement of behavioral descriptions. Steps can be ordered in time and can be connected using ItemFlows to specify things flowing between their parameters.http://open-services.net/ns/sysmlv2#AssociationStructureAssociationStructure is an Association that is also a Structure, classifying link objects that are both links and objects. As objects, link objects can be created and destroyed, and their non-end Features can change over time. However, the values of the end Features of a link object are fixed and cannot change over its lifetime.http://open-services.net/ns/sysmlv2#ResultExpressionMembershipResultExpressionMembership is a FeatureMembership that indicates that the ownedResultExpression provides the result values for the Function or Expression that owns it. The owning Function or Expression must contain a BindingConnector between the result parameter of the ownedResultExpression and the result parameter of the owning Function or Expression.http://open-services.net/ns/sysmlv2#MembershipImportMembershipImport is an Import that imports its importedMembership into the importOwningNamespace. If isRecursive = true and the memberElement of the importedMembership is a Namespace, then the equivalent of a recursive NamespaceImport is also performed on that Namespace.http://open-services.net/ns/sysmlv2#PortUsagePortUsage is a usage of a PortDefinition. A PortUsage itself as well as all its nestedUsages must be referential (non-composite).http://open-services.net/ns/sysmlv2#ConstraintDefinitionConstraintDefinition is an OccurrenceDefinition that is also a Predicate that defines a constraint that may be asserted to hold on a system or part of a system.http://open-services.net/ns/sysmlv2#SelectExpressionSelectExpression is an OperatorExpression whose operator is "select", which resolves to the Function ControlFunctions::select from the Kernel Functions Library.http://open-services.net/ns/sysmlv2#PortConjugationPortConjugation is a Conjugation Relationship between a PortDefinition and its corresponding ConjugatedPortDefinition. As a result of this Relationship, the ConjugatedPortDefinition inherits all the features of the original PortDefinition, but input flows of the original PortDefinition become outputs on the ConjugatedPortDefinition and output flows of the original PortDefinition become inputs on the ConjugatedPortDefinition.http://open-services.net/ns/sysmlv2#SuccessionSuccession is a binary Connector that requires its relatedFeatures to happen separately in time.http://open-services.net/ns/sysmlv2#MetadataDefinitionMetadataDefinition is an ItemDefinition that is also a Metaclass.http://open-services.net/ns/sysmlv2#IfActionUsageIfActionUsage is an ActionUsage that specifies that the thenAction ActionUsage should be performed if the result of the ifArgument Expression is true. It may also optionally specify an elseAction ActionUsage that is performed if the result of the ifArgument is false.http://open-services.net/ns/sysmlv2#TypeFeaturingTypeFeaturing is a Featuring Relationship in which the featureOfType is the source and the featuringType is the target.http://open-services.net/ns/sysmlv2#EndFeatureMembershipEndFeatureMembership is a FeatureMembership that requires its memberFeature be owned and have isEnd = true.http://open-services.net/ns/sysmlv2#AttributeUsageAttributeUsage is a Usage whose type is a DataType. Nominally, if the type is an AttributeDefinition, an AttributeUsage is a usage of a AttributeDefinition to represent the value of some system quality or characteristic. However, other kinds of kernel DataTypes are also allowed, to permit use of DataTypes from the Kernel Model Libraries. An AttributeUsage itself as well as all its nested features must be referential (non-composite).http://open-services.net/ns/sysmlv2#PredicatePredicate is a Function whose result parameter has type Boolean and multiplicity 1..1.http://open-services.net/ns/sysmlv2#MetadataAccessExpressionMetadataAccessExpression is an Expression whose result is a sequence of instances of Metaclasses representing all the MetadataFeature annotations of the referencedElement. In addition, the sequence includes an instance of the reflective Metaclass corresponding to the MOF class of the referencedElement, with values for all the abstract syntax properties of the referencedElement.http://open-services.net/ns/sysmlv2#InteractionInteraction is a Behavior that is also an Association, providing a context for multiple objects that have behaviors that impact one another.http://open-services.net/ns/sysmlv2#DecisionNodeDecisionNode is a ControlNode that makes a selection from its outgoing Successions.http://open-services.net/ns/sysmlv2#CaseDefinitionCaseDefinition is a CalculationDefinition for a process, often involving collecting evidence or data, relative to a subject, possibly involving the collaboration of one or more other actors, producing a result that meets an objective.http://open-services.net/ns/sysmlv2#WhileLoopActionUsageWhileLoopActionUsage is a LoopActionUsage that specifies that the bodyAction ActionUsage should be performed repeatedly while the result of the whileArgument Expression is true or until the result of the untilArgument Expression (if provided) is true. The whileArgument Expression is evaluated before each (possible) performance of the bodyAction, and the untilArgument Expression is evaluated after each performance of the bodyAction.http://open-services.net/ns/sysmlv2#ExhibitStateUsageExhibitStateUsage is a StateUsage that represents the exhibiting of a StateUsage. Unless it is the StateUsage itself, the StateUsage to be exhibited is related to the ExhibitStateUsage by a ReferenceSubsetting Relationship. An ExhibitStateUsage is also a PerformActionUsage, with its exhibitedState as the performedAction.http://open-services.net/ns/sysmlv2#ViewDefinitionViewDefinition is a PartDefinition that specifies how a view artifact is constructed to satisfy a viewpoint. It specifies a viewConditions to define the model content to be presented and a viewRendering to define how the model content is presented.http://open-services.net/ns/sysmlv2#LifeClassLifeClass is a Class that specializes both the Class Occurrences::Life from the Kernel Semantic Library and a single OccurrenceDefinition, and has a multiplicity of 0..1. This constrains the OccurrenceDefinition being specialized to have at most one instance that is a complete Life.http://open-services.net/ns/sysmlv2#RequirementConstraintMembershipRequirementConstraintMembership is a FeatureMembership for an assumed or required ConstraintUsage of a RequirementDefinition or RequirementUsage..http://open-services.net/ns/sysmlv2#OccurrenceUsageOccurrenceUsage is a Usage whose types are all Classes. Nominally, if a type is an OccurrenceDefinition, an OccurrenceUsage is a Usage of that OccurrenceDefinition within a system. However, other types of Kernel Classes are also allowed, to permit use of Classes from the Kernel Model Libraries.http://open-services.net/ns/sysmlv2#RenderingDefinitionRenderingDefinition is a PartDefinition that defines a specific rendering of the content of a model view (e.g., symbols, style, layout, etc.).http://open-services.net/ns/sysmlv2#CalculationUsageCalculationUsage is an ActionUsage that is also an Expression, and, so, is typed by a Function. Nominally, if the type is a CalculationDefinition, a CalculationUsage is a Usage of that CalculationDefinition within a system. However, other kinds of kernel Functions are also allowed, to permit use of Functions from the Kernel Model Libraries.http://open-services.net/ns/sysmlv2#LiteralBooleanLiteralBoolean is a LiteralExpression that provides a Boolean value as a result. Its result parameter must have type Boolean.http://open-services.net/ns/sysmlv2#LiteralRationalLiteralRational is a LiteralExpression that provides a Rational value as a result. Its result parameter must have the type Rational.http://open-services.net/ns/sysmlv2#DocumentationDocumentation is a Comment that specifically documents a documentedElement, which must be its owner.http://open-services.net/ns/sysmlv2#ForkNodeForkNode is a ControlNode that must be followed by successor Actions as given by all its outgoing Successions.http://open-services.net/ns/sysmlv2#AnnotationAnnotation is a Relationship between an AnnotatingElement and the Element that is annotated by that AnnotatingElement.http://open-services.net/ns/sysmlv2#FeatureMembershipFeatureMembership is an OwningMembership between a Feature in an owningType that is also a Featuring Relationship between the Feature and the Type, in which the featuringType is the source and the featureOfType is the target. A FeatureMembership is always owned by its owningType, which is the featuringType for the FeatureMembership considered as a Featuring.http://open-services.net/ns/sysmlv2#ConjugationConjugation is a Relationship between two types in which the conjugatedType inherits all the Features of the originalType, but with all input and output Features reversed. That is, any Features with a direction in relative to the originalType are considered to have an effective direction of out relative to the conjugatedType and, similarly, Features with direction out in the originalType are considered to have an effective direction of in in the conjugatedType. Features with direction inout, or with no direction, in the originalType, are inherited without change.http://open-services.net/ns/sysmlv2#SatisfyRequirementUsageSatisfyRequirementUsage is an AssertConstraintUsage that asserts, by default, that a satisfied RequirementUsage is true for a specific satisfyingFeature, or, if isNegated = true, that the RequirementUsage is false. The satisfied RequirementUsage is related to the SatisfyRequirementUsage by a ReferenceSubsetting Relationship.http://open-services.net/ns/sysmlv2#AssertConstraintUsageAssertConstraintUsage is a ConstraintUsage that is also an Invariant and, so, is asserted to be true (by default). Unless it is the AssertConstraintUsage itself, the asserted ConstraintUsage is related to the AssertConstraintUsage by a ReferenceSubsetting Relationship.http://open-services.net/ns/sysmlv2#FeatureTypingFeatureTyping is Specialization in which the specific Type is a Feature. This means the set of instances of the (specific) typedFeature is a subset of the set of instances of the (general) type. In the simplest case, the type is a Classifier, whereupon the typedFeature has values that are instances of the Classifier.http://open-services.net/ns/sysmlv2#VerificationCaseDefinitionVerificationCaseDefinition is a CaseDefinition for the purpose of verification of the subject of the case against its requirements.http://open-services.net/ns/sysmlv2#StructureStructure is a Class of objects in the modeled universe that are primarily structural in nature. While such an object is not itself behavioral, it may be involved in and acted on by Behaviors, and it may be the performer of some of them.http://open-services.net/ns/sysmlv2#ControlNodeControlNode is an ActionUsage that does not have any inherent behavior but provides constraints on incoming and outgoing Successions that are used to control other Actions. A ControlNode must be a composite owned usage of an ActionDefinition or ActionUsage.http://open-services.net/ns/sysmlv2#MembershipMembership is a Relationship between a Namespace and an Element that indicates the Element is a member of (i.e., is contained in) the Namespace. Any memberNames specify how the memberElement is identified in the Namespace and the visibility specifies whether or not the memberElement is publicly visible from outside the Namespace.http://open-services.net/ns/sysmlv2#RenderingUsageRenderingUsage is the usage of a RenderingDefinition to specify the rendering of a specific model view to produce a physical view artifact.http://open-services.net/ns/sysmlv2#AllocationUsageAllocationUsage is a usage of an AllocationDefinition asserting the allocation of the source feature to the target feature.http://open-services.net/ns/sysmlv2#FeaturingFeaturing is a Relationship between a Type and a Feature that is featured by that Type. It asserts that every instance in the domain of the feature must be classified by the type.http://open-services.net/ns/sysmlv2#DefinitionDefinition is a Classifier of Usages. The actual kinds of Definition that may appear in a model are given by the subclasses of Definition (possibly as extended with user-defined SemanticMetadata).http://open-services.net/ns/sysmlv2#UsageUsage is a usage of a Definition. A Usage may only be an ownedFeature of a Definition or another Usage.http://open-services.net/ns/sysmlv2#FlowConnectionUsageFlowConnectionUsage is a ConnectionUsage that is also an ItemFlow.http://open-services.net/ns/sysmlv2#CollectExpressionCollectExpression is an OperatorExpression whose operator is "collect", which resolves to the Function ControlFunctions::collect from the Kernel Functions Library.http://open-services.net/ns/sysmlv2#RequirementVerificationMembershipRequirementVerificationMembership is a RequirementConstraintMembership used in the objective of a VerificationCase to identify a RequirementUsage that is verified by the VerificationCase.http://open-services.net/ns/sysmlv2#StateUsageStateUsage is an ActionUsage that is nominally the Usage of a StateDefinition. However, other kinds of kernel Behaviors are also allowed as types, to permit use of Behaviors
.http://open-services.net/ns/sysmlv2#BindingConnectorAsUsageBindingConnectorAsUsage is both a BindingConnector and a ConnectorAsUsage.http://open-services.net/ns/sysmlv2#InterfaceDefinitionInterfaceDefinition is a ConnectionDefinition all of whose ends are PortUsages, defining an interface between elements that interact through such ports.http://open-services.net/ns/sysmlv2#MetadataUsageMetadataUsage is a Usage and a MetadataFeature, used to annotate other Elements in a system model with metadata. As a MetadataFeature, its type must be a Metaclass, which will nominally be a MetadataDefinition. However, any kernel Metaclass is also allowed, to permit use of Metaclasses from the Kernel Model Libraries.http://open-services.net/ns/sysmlv2#ItemFlowItemFlow is a Step that represents the transfer of objects or data values from one Feature to another. ItemFlows can take non-zero time to complete.http://open-services.net/ns/sysmlv2#FeatureChainingFeatureChaining is a Relationship that makes its target Feature one of the chainingFeatures of its owning Feature.http://open-services.net/ns/sysmlv2#DifferencingDifferencing is a Relationship that makes its differencingType one of the differencingTypes of its typeDifferenced.http://open-services.net/ns/sysmlv2#SuccessionItemFlowSuccessionItemFlow is an ItemFlow that also provides temporal ordering. It classifies Transfers that cannot start until the source Occurrence has completed and that must complete before the target Occurrence can start.http://open-services.net/ns/sysmlv2#MultiplicityRangeMultiplicityRange is a Multiplicity whose value is defined to be the (inclusive) range of natural numbers given by the result of a lowerBound Expression and the result of an upperBound Expression. The result of these Expressions shall be of type Natural. If the result of the upperBound Expression is the unbounded value *, then the specified range includes all natural numbers greater than or equal to the lowerBound value. If no lowerBound Expression, then the default is that the lower bound has the same value as the upper bound, except if the upperBound evaluates to *, in which case the default for the lower bound is 0.http://open-services.net/ns/sysmlv2#LiteralInfinityLiteralInfinity is a LiteralExpression that provides the positive infinity value (*). It's result must have the type Positive.http://open-services.net/ns/sysmlv2#InterfaceUsageInterfaceUsage is a Usage of an InterfaceDefinition to represent an interface connecting parts of a system through specific ports.http://open-services.net/ns/sysmlv2#PerformActionUsagePerformActionUsage is an ActionUsage that represents the performance of an ActionUsage. Unless it is the PerformActionUsage itself, the ActionUsage to be performed is related to the PerformActionUsage by a ReferenceSubsetting relationship. A PerformActionUsage is also an EventOccurrenceUsage, with its performedAction as the eventOccurrence.http://open-services.net/ns/sysmlv2#TransitionUsageTransitionUsage is an ActionUsage representing a triggered transition between ActionUsages or StateUsages. When triggered by a triggerAction, when its guardExpression is true, the TransitionUsage asserts that its source is exited, then its effectAction (if any) is performed, and then its target is entered.http://open-services.net/ns/sysmlv2#VerificationCaseUsageVerificationCaseUsage is a Usage of a VerificationCaseDefinition.http://open-services.net/ns/sysmlv2#PortDefinitionPortDefinition defines a point at which external entities can connect to and interact with a system or part of a system. Any ownedUsages of a PortDefinition, other than PortUsages, must not be composite.http://open-services.net/ns/sysmlv2#LiteralIntegerLiteralInteger is a LiteralExpression that provides an Integer value as a result. Its result parameter must have the type Integer.http://open-services.net/ns/sysmlv2#ViewpointDefinitionViewpointDefinition is a RequirementDefinition that specifies one or more stakeholder concerns that are to be satisfied by creating a view of a model.http://open-services.net/ns/sysmlv2#LoopActionUsageLoopActionUsage is an ActionUsage that specifies that its bodyAction should be performed repeatedly. Its subclasses WhileLoopActionUsage and ForLoopActionUsage provide different ways to determine how many times the bodyAction should be performed.http://open-services.net/ns/sysmlv2#MembershipExposeMembershipExpose is an Expose importedMembership and, if isRecursive = true, additional Memberships recursively.http://open-services.net/ns/sysmlv2#ActorMembershipActorMembership is a ParameterMembership that identifies a PartUsage as an actor parameter, which specifies a role played by an external entity in interaction with the owningType of the ActorMembership.http://open-services.net/ns/sysmlv2#ViewRenderingMembershipViewRenderingMembership is a viewRendering of a ViewDefinition or ViewUsage.http://open-services.net/ns/sysmlv2#ImportImport is an Relationship between its importOwningNamespace and either a Membership (for a MembershipImport) or another Namespace (for a NamespaceImport), which determines a set of Memberships that become importedMemberships of the importOwningNamespace. If isImportAll = false (the default), then only public Memberships are considered "visible". If isImportAll = true, then all Memberships are considered "visible", regardless of their declared visibility. If isRecursive = true, then visible Memberships are also recursively imported from owned sub-Namespaces.http://open-services.net/ns/sysmlv2#BehaviorBehavior coordinates occurrences of other Behaviors, as well as changes in objects. Behaviors can be decomposed into Steps and be characterized by parameters.http://open-services.net/ns/sysmlv2#ExposeExpose is an Import of Memberships into a ViewUsage that provide the Elements to be included in a view. Visibility is always ignored for an Expose (i.e., isImportAll = true).http://open-services.net/ns/sysmlv2#RequirementUsageRequirementUsage is a Usage of a RequirementDefinition.http://open-services.net/ns/sysmlv2#CaseUsageCaseUsage is a Usage of a CaseDefinition.http://open-services.net/ns/sysmlv2#OwningMembershipOwningMembership is a Membership that owns its memberElement as a ownedRelatedElement. The ownedMemberElement becomes an ownedMember of the membershipOwningNamespace.http://open-services.net/ns/sysmlv2#FunctionFunction is a Behavior that has an out parameter that is identified as its result. A Function represents the performance of a calculation that produces the values of its result parameter. This calculation may be decomposed into Expressions that are steps of the Function.http://open-services.net/ns/sysmlv2#RedefinitionRedefinition is a kind of Subsetting that requires the redefinedFeature and the redefiningFeature to have the same values (on each instance of the domain of the redefiningFeature). This means any restrictions on the redefiningFeature, such as type or multiplicity, also apply to the redefinedFeature (on each instance of the domain of the redefiningFeature), and vice versa. The redefinedFeature might have values for instances of the domain of the redefiningFeature, but only as instances of the domain of the redefinedFeature that happen to also be instances of the domain of the redefiningFeature. This is supported by the constraints inherited from Subsetting on the domains of the redefiningFeature and redefinedFeature. However, these constraints are narrowed for Redefinition to require the owningTypes of the redefiningFeature and redefinedFeature to be different and the redefinedFeature to not be inherited into the owningNamespace of the redefiningFeature.This enables the redefiningFeature to have the same name as the redefinedFeature, if desired.http://open-services.net/ns/sysmlv2#AnalysisCaseDefinitionAnalysisCaseDefinition is a CaseDefinition for the case of carrying out an analysis.http://open-services.net/ns/sysmlv2#UnioningUnioning is a Relationship that makes its unioningType one of the unioningTypes of its typeUnioned.http://open-services.net/ns/sysmlv2#SuccessionFlowConnectionUsageSuccessionFlowConnectionUsage is a FlowConnectionUsage that is also a SuccessionItemFlow.http://open-services.net/ns/sysmlv2#NamespaceNamespace is an Element that contains other Elements, known as its members, via Membership Relationships with those Elements. The members of a Namespace may be owned by the Namespace, aliased in the Namespace, or imported into the Namespace via Import Relationships.http://open-services.net/ns/sysmlv2#DependencyDependency is a Relationship that indicates that one or more client Elements require one more supplier Elements for their complete specification. In general, this means that a change to one of the supplier Elements may necessitate a change to, or re-specification of, the client Elements.http://open-services.net/ns/sysmlv2#OccurrenceDefinitionOccurrenceDefinition is a Definition of a Class of individuals that have an independent life over time and potentially an extent over space. This includes both structural things and behaviors that act on such structures.http://open-services.net/ns/sysmlv2#ForLoopActionUsageForLoopActionUsage is a LoopActionUsage that specifies that its bodyAction ActionUsage should be performed once for each value, in order, from the sequence of values obtained as the result of the seqArgument Expression, with the loopVariable set to the value for each iteration.http://open-services.net/ns/sysmlv2#MetadataFeatureMetadataFeature is a Feature that is an AnnotatingElement used to annotate another Element with metadata. It is typed by a Metaclass. All its ownedFeatures must redefine features of its metaclass and any feature bindings must be model-level evaluable.http://open-services.net/ns/sysmlv2#ObjectiveMembershipObjectiveMembership is a FeatureMembership that indicates that its ownedObjectiveRequirement is the objective RequirementUsage for its owningType, which must be a CaseDefinition or CaseUsage.http://open-services.net/ns/sysmlv2#FeatureFeature is a Type that classifies relations between multiple things (in the universe). The domain of the relation is the intersection of the featuringTypes of the Feature. (The domain of a Feature with no featuringTyps is implicitly the most general Type Base::Anything from the Kernel Semantic Library.) The co-domain of the relation is the intersection of the types of the Feature.
.http://open-services.net/ns/sysmlv2#EnumerationDefinitionEnumerationDefinition is an AttributeDefinition all of whose instances are given by an explicit list of enumeratedValues. This is realized by requiring that the EnumerationDefinition have isVariation = true, with the enumeratedValues being its variants.http://open-services.net/ns/sysmlv2#ActionUsageActionUsage is a Usage that is also a Step, and, so, is typed by a Behavior. Nominally, if the type is an ActionDefinition, an ActionUsage is a Usage of that ActionDefinition within a system. However, other kinds of kernel Behaviors are also allowed, to permit use of Behaviors from the Kernel Model Libraries.http://open-services.net/ns/sysmlv2#DisjoiningDisjoining is a Relationship between Types asserted to have interpretations that are not shared (disjoint) between them, identified as typeDisjoined and disjoiningType. For example, a Classifier for mammals is disjoint from a Classifier for minerals, and a Feature for people's parents is disjoint from a Feature for their children.http://open-services.net/ns/sysmlv2#AssociationAssociation is a Relationship and a Classifier to enable classification of links between things (in the universe). The co-domains (types) of the associationEnd Features are the relatedTypes, as co-domain and participants (linked things) of an Association identify each other.http://open-services.net/ns/sysmlv2#PartUsagePartUsage is a usage of a PartDefinition to represent a system or a part of a system. At least one of the itemDefinitions of the PartUsage must be a PartDefinition.http://open-services.net/ns/sysmlv2#MultiplicityMultiplicity is a Feature whose co-domain is a set of natural numbers giving the allowed cardinalities of each typeWithMultiplicity. The cardinality of a Type is defined as follows, depending on whether the Type is a Classifier or Feature.
.http://open-services.net/ns/sysmlv2#ConcernDefinitionConcernDefinition is a RequirementDefinition that one or more stakeholders may be interested in having addressed. These stakeholders are identified by the ownedStakeholdersof the ConcernDefinition.http://open-services.net/ns/sysmlv2#ConcernUsageConcernUsage is a Usage of a ConcernDefinition.http://open-services.net/ns/sysmlv2#ClassifierClassifier is a Type that classifies:.http://open-services.net/ns/sysmlv2#ItemDefinitionItemDefinition is an OccurrenceDefinition of the Structure of things that may themselves be systems or parts of systems, but may also be things that are acted on by a system or parts of a system, but which do not necessarily perform actions themselves. This includes items that can be exchanged between parts of a system, such as water or electrical signals.http://open-services.net/ns/sysmlv2#StateSubactionMembershipStateSubactionMembership is a FeatureMembership for an entry, do or exit ActionUsage of a StateDefinition or StateUsage..http://open-services.net/ns/sysmlv2#SubsettingSubsetting is Specialization in which the specific and general Types are Features. This means all values of the subsettingFeature (on instances of its domain, i.e., the intersection of its featuringTypes) are values of the subsettedFeature on instances of its domain. To support this the domain of the subsettingFeature must be the same or specialize (at least indirectly) the domain of the subsettedFeature (via Specialization), and the co-domain (intersection of the types) of the subsettingFeature must specialize the co-domain of the subsettedFeature.http://open-services.net/ns/sysmlv2#ConnectorAsUsageConnectorAsUsage is both a Connector and a Usage. ConnectorAsUsage cannot itself be instantiated in a SysML model, but it is the base class for the concrete classes BindingConnectorAsUsage, SuccessionAsUsage and ConnectionUsage.OSLC SysML v2 servers MUST follow the constraints defined here where required, and with the meanings defined here.
OSLC SysML v2 servers MAY provide additional constraints for specific purposes.
| Clause Number | Requirement |
|---|---|
| SML-172 | Short name identifying a resource, often used as an abbreviated identifier for presentation to end-users. SHOULD include only content that is valid inside an XHTML <span> element |