Core Architecture: Model: DescribeIt - UA-ScriptEase/scriptease GitHub Wiki
DescribeIt
s are a GUI construct for allowing the user to select between similar KnowIt
bindings. This is a result of Neesha Desai's research thesis Using Describers to Simplify ScriptEase. The idea here is to present the user with a customizable description of what they want to store in a KnowIt
. They are presented with a DAG that flows left-to-right that contains either text segments or nodes for filling in KnowIt
bindings.
DescribeIt
s have a start node, which is a DescribeItNode, and a mapping of DescribeItNodes to ScriptIt
s that form paths. DescribeItNode
s may have either a name or a knowit, which is only used to display them graphically; the actual KnowIt
or text will come from the binding.
When the user selects a path and closes the graph, a KnowItBindingFunction
with the appropriate ScriptIt
is bound to the KnowIt. Right now it is up to the developer to make sure DescribeItNode
s match the ScriptIt
. In the future, it would be nice if we could just add a bunch of ScriptIts to a KnowIt and automatically parse similar text to create a graph.
#DescribeItManager
The DescribeItManager
maintains a map of DescribeIt
s attached to KnowIt
s. You could think of DescribeIt
s as a rulebook for certain KnowIt
s to follow. It would not make sense for a KnowIt
to have its own DescribeIt
, so we cross-reference them in the DescribeItManager
to find out which KnowIt
s have attached DescribeIt
s.