memo_core_annotations
SysML API
Namespace hierarchy
memo → memo::core → memo::core::annotations
Packages
| Package |
memo_core_annotations |
Imports
| Visibility |
Target |
| private |
Metaobjects::SemanticMetadata |
| private |
ScalarValues::* |
| private |
memo_core_common::* |
| private |
memo_core_enumerations::* |
| private |
memo_core_relationships::* |
Declarations
| Name |
SysML kind |
Description |
Specializes |
ModelAnnotation |
part def |
Model annotation definition specializing MemoPart. |
MemoPart |
ModelComment |
part def |
Model comment definition specializing ModelAnnotation. |
ModelAnnotation |
ModelRationale |
part def |
Model rationale definition specializing ModelAnnotation. |
ModelAnnotation |
ModelNote |
part def |
Model note definition specializing ModelAnnotation. |
ModelAnnotation |
CommentsOn |
connection def |
Replies form a thread through the ordinary Composes relation (parent comment → reply), so CR-ONT-001's acyclicity invariant already covers comment threads and no thread-specific relation is needed.… |
MemoRelationship |
RationaleFor |
connection def |
Typed relationship for rationale for. |
MemoRelationship |
NotesOn |
connection def |
Typed relationship for notes on. |
MemoRelationship |
ModelAnnotation
abstract part def ModelAnnotation specializes MemoPart
| Property |
Value |
| Description |
Model annotation definition specializing MemoPart. |
| Kind |
part def |
| Abstract |
Yes |
| Specializes |
MemoPart |
| Owning package |
memo_core_annotations |
part def ModelComment specializes ModelAnnotation
| Property |
Value |
| Description |
Model comment definition specializing ModelAnnotation. |
| Kind |
part def |
| Abstract |
No |
| Specializes |
ModelAnnotation |
| Owning package |
memo_core_annotations |
ModelRationale
part def ModelRationale specializes ModelAnnotation
| Property |
Value |
| Description |
Model rationale definition specializing ModelAnnotation. |
| Kind |
part def |
| Abstract |
No |
| Specializes |
ModelAnnotation |
| Owning package |
memo_core_annotations |
ModelNote
part def ModelNote specializes ModelAnnotation
| Property |
Value |
| Description |
Model note definition specializing ModelAnnotation. |
| Kind |
part def |
| Abstract |
No |
| Specializes |
ModelAnnotation |
| Owning package |
memo_core_annotations |
connection def CommentsOn :> MemoRelationship
| Property |
Value |
| Description |
Replies form a thread through the ordinary Composes relation (parent comment → reply), so CR-ONT-001's acyclicity invariant already covers comment threads and no thread-specific relation is needed.… |
| Kind |
connection def |
| Abstract |
No |
| Specializes |
MemoRelationship |
| Owning package |
memo_core_annotations |
RationaleFor
connection def RationaleFor :> MemoRelationship
| Property |
Value |
| Description |
Typed relationship for rationale for. |
| Kind |
connection def |
| Abstract |
No |
| Specializes |
MemoRelationship |
| Owning package |
memo_core_annotations |
NotesOn
connection def NotesOn :> MemoRelationship
| Property |
Value |
| Description |
Typed relationship for notes on. |
| Kind |
connection def |
| Abstract |
No |
| Specializes |
MemoRelationship |
| Owning package |
memo_core_annotations |
Source
core/annotations/memo_annotations.sysml
package memo_core_annotations {
private import Metaobjects::SemanticMetadata;
private import ScalarValues::*;
private import memo_core_common::*;
private import memo_core_enumerations::*;
private import memo_core_relationships::*;
abstract part def ModelAnnotation specializes MemoPart {
attribute body : String;
attribute author : String;
attribute createdAt : String;
attribute anchor : String;
}
part def ModelComment specializes ModelAnnotation {
attribute commentStatus : CommentStatusKind;
attribute resolution : String;
attribute resolvedBy : String;
attribute resolvedAt : String;
}
part def ModelRationale specializes ModelAnnotation {
attribute basis : String;
}
part def ModelNote specializes ModelAnnotation {
attribute noteKind : String;
}
connection def CommentsOn :> MemoRelationship {
end remark : ModelComment :>> source;
end annotatedElement :>> target;
}
abstract connection commentsOnLinks : CommentsOn[*];
metadata def <commentsOn> CommentsOnMetadata :> SemanticMetadata {
:> annotatedElement : SysML::ConnectionDefinition;
:> annotatedElement : SysML::ConnectionUsage;
:>> baseType = commentsOnLinks meta SysML::Usage;
}
connection def RationaleFor :> MemoRelationship {
end rationaleRecord : ModelRationale :>> source;
end justifiedElement :>> target;
}
abstract connection rationaleForLinks : RationaleFor[*];
metadata def <rationaleFor> RationaleForMetadata :> SemanticMetadata {
:> annotatedElement : SysML::ConnectionDefinition;
:> annotatedElement : SysML::ConnectionUsage;
:>> baseType = rationaleForLinks meta SysML::Usage;
}
connection def NotesOn :> MemoRelationship {
end noteRecord : ModelNote :>> source;
end notedElement :>> target;
}
abstract connection notesOnLinks : NotesOn[*];
metadata def <notesOn> NotesOnMetadata :> SemanticMetadata {
:> annotatedElement : SysML::ConnectionDefinition;
:> annotatedElement : SysML::ConnectionUsage;
:>> baseType = notesOnLinks meta SysML::Usage;
}
}