SUREGEN-II |
SUREGEN-II in a nutshell |
SuregenConcept
, it takes as arguments the concept name, the direct
superclass, concept attributes (=slots, if any) and – optionally – semantic
markers (see below).
(SuregenConcept Thing :is-a SuregenObject
:has(colour height))
This defines, simply enough, Thing
as a SuregenObject
(the top class) with colour
and height
as
attributes.
Attributes defined with :has
are
“visible” externally and can be modified at runtime via GUI/API. When defined
using the :has-intern
keyword
attributes can be hidden and used/modified by SUREGEN-II procedures only:
(SuregenConcept P_PrepareMeal :is-a
SuregenProcess
:has-intern ((SP :are (P1_buyFood P2_cook P3_setTable))))
P_PrepareMeal
is – somewhat
outside the range of intended applications -defined as a SuregenProcess with an
internal attribute named SP (= subprocesses). The :are
keyword ensures that instances of the respective classes P1_buyFood
, P2_cook
and P3_setTable
are generated for every new instance of P_PrepareMeal
(provided that the classes exist at instantiation time).