(SuregenConcept Thing :is-a SuregenObject
:has (colour height)
:SemanticRoles ((t-attribution
((concept (my-intern 'Description))
(attribute (my 'colour))))))
This declares the colour slot to fill the attribute role and the description-slot, which is an internal slot to every SuregenObject to fill the concept role.
Now it is possible to specify just
(ToDescribe :a Thing
:use (DescribeS it :by t-attribution :as as))
The real definition of t-attribution is of course more complicated, mainly because there may be more than one attribute to a concept.
It must be kept in mind that this mechanism can simplify the specification in Suregen-II enourmously. There is, for instance, a SemanticFunction t?consecutiveProcesses which, naturally enough, generates descriptions of successive processes.
It is, therefore, sufficient to define
(ToDescribe :a P_PrepareMeal
:use (DescribeS it :by t-consecutiveProcesses :as :NP))
Note that since P_PrepareMeal is a subclass of the Suregen-II class SuregenProcess not even the definition of the semantic roles is necessary as these are already defined there.