@@ -57,39 +57,41 @@ package Base {
5757 /*
5858 * Occurrence is the most general class of entities that may occur over time.
5959 * BehaviorOccurrence and FunctionOccurrence are specializations representing the
60- * occurrence (execution/evaluation) of behaviors and functions.
60+ * occurrence (execution/evaluation) of behaviors and functions. LiteralEvaluation
61+ * and NullEvaluation are further specializations of FunctionOccurrence representing
62+ * literal and null expressions.
6163 */
6264 abstract class Occurrence specializes Anything;
6365 abstract behavior BehaviorOccurrence() specializes Occurrence;
64- abstract function FunctionEvaluation(): Anything[0..*] specializes BehaviorOccurrence;
65-
66+ abstract function FunctionEvaluation(): Anything[0..*] specializes BehaviorOccurrence;
6667 function LiteralEvaluation(): Anything specializes FunctionEvaluation;
6768 function NullEvaluation(): Anything[0..0] specializes FunctionEvaluation;
6869
6970 /*
70- * property is the top-level feature in the language.
71- * referenceProperty and valueProperty are specializations that restrict the feature type
72- * to Objects and Values , respectively.
71+ * things is the top-level feature in the language.
72+ * objects and values are specializations that restrict the feature type
73+ * to Object and Value , respectively.
7374 */
74- feature property : Anything[0..*] nonunique;
75- feature referenceProperty : Object[0..*] nonunique subsets property ;
76- feature valueProperty : Value[0..*] nonunique subsets property ;
75+ abstract feature things : Anything[0..*] nonunique;
76+ abstract feature objects : Object[0..*] nonunique subsets things ;
77+ abstract feature values : Value[0..*] nonunique subsets things ;
7778
7879 /*
79- * connection is the most general feature of links between individuals.
80- * binaryConnection and binding are specializations of binary links and self links.
81- */
82- feature connection : Link[0..*] nonunique subsets property ;
83- feature binaryConnection : BinaryLink[0..*] nonunique subsets connection ;
84- feature binding : SelfLink[0..*] nonunique subsets binaryConnection ;
80+ * links is the most general feature of links between individuals.
81+ * binaryLinks and selfLinks are specializations of binary links and self links.
82+ */
83+ abstract feature links : Link[0..*] nonunique subsets objects ;
84+ abstract feature binaryLinks : BinaryLink[0..*] nonunique subsets links ;
85+ abstract feature selfLinks : SelfLink[0..*] nonunique subsets binaryLinks ;
8586
8687 /*
87- * execution is the most general feature of occurrences of behaviors.
88- * evaluation is a specialization for occurrences of functions.
88+ * behaviorOccurrences is the most general feature of occurrences of behaviors.
89+ * functionEvaluations is a specialization for occurrences of functions.
90+ * literalEvaluations and nullEvaluations are specializations of functionEvaluations
91+ * that restrict the feature type to LiteralEvaluation and NullEvaluation, respectively.
8992 */
90- feature execution: BehaviorOccurrence[0..*] nonunique subsets property;
91- feature evaluation: FunctionEvaluation[0..*] nonunique subsets execution;
92-
93- feature literalEvaluation: LiteralEvaluation[0..*] nonunique subsets evaluation;
94- feature nullEvaluation: NullEvaluation[0..*] nonunique subsets evaluation;
93+ abstract step behaviorOccurrences: BehaviorOccurrence[0..*] nonunique subsets things;
94+ abstract expr functionEvaluations: FunctionEvaluation[0..*] nonunique subsets behaviorOccurrences;
95+ abstract expr literalEvaluations: LiteralEvaluation[0..*] nonunique subsets functionEvaluations;
96+ abstract expr nullEvaluations: NullEvaluation[0..*] nonunique subsets functionEvaluations;
9597}
0 commit comments