doc/srd-content.tex
author wneuper
Sat, 05 Mar 2005 17:26:21 +0100
changeset 2152 a863de293415
parent 1692 4fcc0b44ff74
child 2323 d89dfc81ac06
permissions -rw-r--r--
sml-050305b-cut_tree: after sticky tags
agriesma@306
     1
%nicht vergessen: auch srd.tex ($Revision $) \"andern !
akremp@767
     2
\part{Software Requirements Document}
agriesma@306
     3
agriesma@306
     4
This Software Requirements Document is structured along the modules
agriesma@306
     5
abstracted from the functionality defined in the User Requirements
agriesma@306
     6
Document. The User Requirements Document, however, is structured along
agriesma@306
     7
the different kinds of users envisaged. In order to establish
agriesma@306
     8
comfortable tracing, the $m:n$ relation between user requirements and
agriesma@306
     9
software requirements will be accurrately recorded in a double-linked
agriesma@306
    10
way.
agriesma@306
    11
akremp@767
    12
\chapter{General requirements}
agriesma@306
    13
%One goal of this section is to achieve a smooth design and minimize the effort in development. Although \sisac consists of a number of (more or less) autonomous modules, a number of developments can be shared.
agriesma@306
    14
agriesma@306
    15
\subparagraph{Delopment environment,} standards and components, documentation and revision control are described in appendix \ref{AP:environment}.
agriesma@306
    16
wneuper@1692
    17
wneuper@1692
    18
\subparagraph{Decisions for underlying systems} have been done already.
wneuper@1692
    19
As this requirements document shows, \sisac{} is a large system: thus it cannot be done from scratch, rather is has to use as much as components already available. The theorem prover Isabelle provides for both, a comprehensive frontend for interactive deduction (i.e. for definitions, axioms and proving theorems), and a hughe mathematics knowledge base. Both are under rapid development, which \sisac{} shall take advantage of. The kernel of Isabelle, however is relatively stable already, and thus the interfaces to \sisac s math engine (ME) are sufficiently stable.
wneuper@1692
    20
{\bf\SR The deductive part is left to Isabelle. \label{deduct-isa}}
wneuper@1692
    21
{\bf\SR \sisac s math engine closely cooperates with Isabelle \label{me-isa}\\}
wneuper@1692
    22
Thus the math engine is already implemented in the same program language as Isabelle, SML.
wneuper@1692
    23
wneuper@1692
    24
%dropped: visitor canNOT calculate !
wneuper@1692
    25
%
wneuper@1692
    26
%\subparagraph{The call hierarchy} between the components underlies a severe restriction due to UR \ref{access-ab} and UR \ref{isac-www}: Because a browser can only deliver a HTTP-request, the worksheet must start browsers, too (and not only the dialog, as it would be desirable w.r.t. the system architecture).
wneuper@1692
    27
%{\bf\SR Browsers are called by a 'master-browser' {\em and} by the worksheet. \label{}} ??? %WN2.12.02 ...... ausbessern !!!!
agriesma@306
    28
agriesma@306
    29
\subparagraph{The connection between Java and SML} has to be 'hand-made'. During the next few years there will be several changes at the interfaces between the
agriesma@306
    30
 \sisac-components belonging to these two language environments. 
agriesma@306
    31
{\bf\SR The SML-kernel is started by a java thread \label{}} which controls the time-out eventuall resulting from non-terminating loops in the knowledge interpreter.
agriesma@306
    32
{\bf\SR The SML standard-output channel is read by parsers, \label{}} one for the SML-structures, and one for the mathematics formulas embedded in the SML-structures.
agriesma@306
    33
agriesma@306
    34
\subparagraph{System requirements for the users:} Users (with exception of the math authors, which work directly on the SML-kernel) are expected to work on standard-browsers (UR \ref{browser}) and some additional software components.
agriesma@306
    35
{\bf\SR On the client-side a Java virtual machine version .... \label{}} must reside on the local computer of the learners and authors.
agriesma@306
    36
{\bf\SR On the server there is a Linux or Unix \label{}} operating system, Linux version ..., Unix ...
agriesma@306
    37
agriesma@306
    38
agriesma@306
    39
akremp@767
    40
\chapter{The worksheet}
agriesma@306
    41
A worksheet is the protocol of a more or less interactive calculation of an example, and it offers access to all services necessary to calculate the result of the example. 
agriesma@306
    42
agriesma@306
    43
\subparagraph{A calculation mirrors the structure of the prooftree.}
agriesma@306
    44
{\bf\SR The structure of a calculation is given by the ME. \label{}} Consequently any editing in a calculation affects the parts depending on the edited formula or tactic. Edit the worksheet w.r.t. UR \ref{edit} for publication etc. is done outside \sisac{} after having exported the calculation.
agriesma@306
    45
{\bf\SR Export a calculation to a standard format \label{}} preferably XML plus MathML. 
agriesma@306
    46
agriesma@306
    47
%{\bf\SR \label{}}
agriesma@306
    48
agriesma@306
    49
akremp@767
    50
\chapter{The browser generators}
agriesma@306
    51
 \sisac's mathematics knowledge (on (1)theories (2)problems (3)methods)
agriesma@306
    52
 is held in SML datastructures. Here we describe all requirements
agriesma@306
    53
 concerning the generation of the browsers written in Java, whereas
agriesma@306
    54
 the generation of the math knowledge itself is described in the
agriesma@306
    55
 'interfaces for authors of math knowledge'.
agriesma@306
    56
agriesma@306
    57
The browser generators provide the contents for the browsers. This
agriesma@306
    58
means that a browser querys its respective browser generator about
agriesma@306
    59
subnodes etc. whereas the further description is held outside the
agriesma@306
    60
SML-engine. To maintain this connection, unique identifyer are needed.
agriesma@306
    61
{\bf\SR browser-generators use locally unique identifyers \label{}} (locally unique within SML) for their informations (for each node of their structure).
agriesma@306
    62
agriesma@306
    63
\subparagraph{Data are structured hierarchically,} i.e. the problems, methods and examples. (The theories for a directed graph without cycles; thus it also can presented by a hierarchy.)
agriesma@306
    64
{\bf\SR The hiearchy  displayed in a frame \label{}} in order to have it visible all the time.
agriesma@306
    65
{\bf\SR The hierarchy has arbitrary levels. \label{}} For the headlines for each level see SR \dots SR \ref{expl-headlines}.
agriesma@306
    66
{\bf\SR The hierarchy shows the position \label{}} of the related element displayed in the browser-window; for this purpose an additional button is required, because the 'back' and 'forward'-button on the browser may disconnect the relation.
agriesma@306
    67
agriesma@306
    68
akremp@767
    69
\section{The theory browser generator}
agriesma@306
    70
The generation of the theory browser is already implemented by Isabelle. Within phase 1 of development, \sisac{} will take this component without any change.
agriesma@306
    71
{\bf\SR The theory browser generator is given by Isabelle. \label{gen-isa}} 
agriesma@306
    72
akremp@767
    73
\section{The problem and method browser generators}
agriesma@306
    74
.
agriesma@306
    75
akremp@767
    76
\section{The example browser generator}
agriesma@306
    77
This authoring component comprises all tools necessary to generate the content displayed by the example browser. 
agriesma@306
    78
agriesma@306
    79
{\bf\SR The headlines of the example-hierarchy: \label{expl-headlines}} The hierarchy comprises the labels of the chapters, sections, subsections etc. plus the respective head line, and the blocks of examples with the respective labels -- all defined by the user (see UR \ref{UR161a}). 
agriesma@306
    80
agriesma@306
    81
{\bf\SR Integrated editors for text, formulas and figures. \label{}} This integration should be as smooth as possible; it includes an MathML-based formula-editor for the formalization.
agriesma@306
    82
akremp@767
    83
\chapter{The knowledge browsers}
agriesma@306
    84
\label{kbrowser}
agriesma@306
    85
%W.N.: dieser Abschnitt ist f''ur A.G. + W.N.
agriesma@306
    86
All browsers (Example-Browser and Knowledge-Browsers) present their
agriesma@306
    87
output in a similar way. Textual descriptions have to be combined with
agriesma@306
    88
images, formulas, formalisations, problems, \dots and links to further
agriesma@306
    89
informations(UR\ref{URinterlink}). The structure of this informations
agriesma@306
    90
has to be taken from the respective browser-generators. All kinds of
agriesma@306
    91
information might be interlinked among each other, but not all parts
agriesma@306
    92
of the information might be already present in the system when a new
agriesma@306
    93
item is inserted. (e.g. a example might use the keyword
agriesma@306
    94
\emph{is\_rooteq\_in} in its \emph{where}\/clause before the keyword
agriesma@306
    95
is described in the system. If the example is viewed after a
agriesma@306
    96
description became available, a link to the explanation should be
agriesma@306
    97
provided automatically.) To support this feature, the browsers need a
agriesma@306
    98
fast way to look up a special description.
agriesma@306
    99
{\bf\SR fast look up for description (includes resolve of the
agriesma@306
   100
identifyer and query for a description)}
agriesma@306
   101
agriesma@306
   102
\subparagraph{Groups of users} are usually 1-to-1 related to courses; members of courses get specific examples and specific advice by explanations.
agriesma@306
   103
{\bf\SR Each user is assigned exactly one group during a session. \label{}} The user, however, may start another session as a member of another group.
agriesma@306
   104
{\bf\SR There is a default group for visitors. \label{}}
agriesma@306
   105
{\bf\SR \label{}}
agriesma@306
   106
agriesma@306
   107
\subparagraph{Additional data and visibility properties:} A considerable part of the data are additional to the data generated from the SML structures. The visibility concerns enabled or disabled links from problem and methods, and the access to examples from the hierarchy frame. There are respective time constraints on the visibility.
agriesma@306
   108
{\bf\SR Additional data and visibility are course specific. \label{}}
agriesma@306
   109
{\bf\SR Time constraints are given by intervals; \label{}} there are specific values for the limits of the interval indicanting infinity (contraint is given from the very beginning, or lasts forever).
agriesma@306
   110
agriesma@306
   111
akremp@767
   112
\section{The theory browser}
agriesma@306
   113
The theory browser is already implemented by Isabelle. Within phase 1 of development, \sisac{} will take this component without any change.
agriesma@306
   114
{\bf\SR the theory browser is given by Isabelle. \label{}} 
agriesma@306
   115
akremp@767
   116
\section{The problem and method browsers}
agriesma@306
   117
%\subparagraph{Static and dynamic views onto the KB} are provided by both browsers. Thus the (HTML-) presentation is generated dynamically. The dynamic view for problemjs concerns instantiation by a model of the current calculation on the worksheet. The dynamic view for methods concerns marking the tactic currently applied in a calculation.
agriesma@306
   118
%{\bf\SR Browsers create the presentation in browser-windows dynamically. \label{}}
agriesma@306
   119
agriesma@306
   120
\subparagraph{Additional data} are explanations and typical examples which may be provided for each problem and each method. Both of these kinds of additional data are spcific for courses and may underly time constraints (UR \ref{expl-locked}, UR \ref{invisible}, UR \ref{restrict-know}). 
agriesma@306
   121
agriesma@306
   122
The primary contents are the respective problem and the respective method; {\em all} other data are reachable by links. This holds for special mathematical data (on rulesets etc.) from SML, too.
agriesma@306
   123
{\bf\SR A problem-page consists of \label{problem-page}} the 
agriesma@306
   124
\begin{tabbing}
agriesma@306
   125
12345\=123\=123\=\kill
agriesma@306
   126
\>name of the problem\\
agriesma@306
   127
\>the fields 'given', 'where', 'find' and 'relate'\\
agriesma@306
   128
\>a link to the special math data\\
agriesma@306
   129
\>a list of subordinated methods (only displayed in the hierarchy-frame)\\
agriesma@306
   130
\>an arbitrary list of links to additional data
agriesma@306
   131
\end{tabbing}
agriesma@306
   132
The next lower and next higher level in the hierarchy can be found in the hierarchy-frame.
agriesma@306
   133
{\bf\SR A method-page consists of \label{method-page}}
agriesma@306
   134
\begin{tabbing}
agriesma@306
   135
12345\=123\=123\=\kill
agriesma@306
   136
\>name of the method\\
agriesma@306
   137
\>the script\\
agriesma@306
   138
\>a link to the special math data\\
agriesma@306
   139
\>a list of subordinated methods (only displayed in the hierarchy-frame)\\
agriesma@306
   140
\>an arbitrary list of links to additional data
agriesma@306
   141
\end{tabbing}
agriesma@306
   142
{\bf\SR The links to additional data \label{}} have the following attributes:
agriesma@306
   143
\begin{tabbing}
agriesma@306
   144
12345\=123\=123\=\kill
agriesma@306
   145
\>text on the link\\
agriesma@306
   146
\>the reference (to an explanation or to an example starting a worksheet)\\
agriesma@306
   147
\>groups\\
agriesma@306
   148
\>\>ID of first group\\
agriesma@306
   149
\>\>\>locked: list of intervals\\
agriesma@306
   150
\>\>\>???used by userID ---$>$ usermodel???\\
agriesma@306
   151
\>\>ID of second group \dots
agriesma@306
   152
\end{tabbing}
agriesma@306
   153
%{\bf\SR Explanations and examples are optional. \label{}} For each problem and each method there is {\em one ???} link for the explanations and {\em one} link for the examples (which may be disabled).
agriesma@306
   154
%{\bf\SR Access to explanations and examples of other courses \label{}} is possible by ... ??? (see UR \ref{other-courses}).
agriesma@306
   155
agriesma@306
   156
agriesma@306
   157
agriesma@306
   158
akremp@767
   159
\section{The example browser}
agriesma@306
   160
In contrary to the problem and method browsers, the presentation of the contents of a browser-window is {\em not} generated automatically. UR \ref{expl-layout} requests for a layout 'handmade' by the course designer; there are, however, a lot of attributes invisible for the learner to be added by the course designer, too.
agriesma@306
   161
agriesma@306
   162
\subparagraph{Attributes of examples and collections} are numerous, and thus defaults help to safe space. There is only one collection, partitioned hierarchically into subcollections.
agriesma@306
   163
{\bf\SR Default data \label{}} are filled in bottum up: A default is filled by the first non-default parent.
agriesma@306
   164
{\bf\SR A subcollection has the attributes \label{coll-attr}}
agriesma@306
   165
\begin{tabbing}
agriesma@306
   166
12345\=123\=123\=123\=123\=\kill
agriesma@306
   167
\>headline of the collection (displayed also in the hiearchy-frame) \\
agriesma@306
   168
\>description of the collection\\
agriesma@306
   169
\>list of subcollections\\
agriesma@306
   170
\>OR\\
agriesma@306
   171
\>layout of examples belonging to this subcollection\\
agriesma@306
   172
\>author\\
agriesma@306
   173
\>copyright owner\\
agriesma@306
   174
\>groups of users, for each group: \\
agriesma@306
   175
\>\>ID of the group \\
agriesma@306
   176
\>\>schemas \\
agriesma@306
   177
\>\>\>error \\
agriesma@306
   178
\>\>\>fill-in \\
agriesma@306
   179
\>\>\> \\
agriesma@306
   180
\>\>dialog \\
wneuper@1692
   181
%\>\>\>blackbox \\
agriesma@306
   182
\>\>\>detail \\
agriesma@306
   183
\>\>\>activity \\
agriesma@306
   184
\>\>\>stepwidt \\
agriesma@306
   185
\>\>\> \\
agriesma@306
   186
\>\>invisible: list of intervals OR duration (? TODO !)\\
agriesma@306
   187
\>\>locked: list of intervalsOR duration (? TODO !) \\
agriesma@306
   188
\>\>evaluation \\
agriesma@306
   189
\>\>\>TODO: difficulty, length, \dots \\
agriesma@306
   190
\>\>\>finished-by: \\
agriesma@306
   191
\>\>\>\>elements: list of mandatory examples (or groups) to be done \\
agriesma@306
   192
\>\>\>\>number: number of (arbitrary) examples (or groups) to be done \\
agriesma@306
   193
\>\>\>\>points: calculated from TODO: difficulty, length, \dots \\
agriesma@306
   194
\end{tabbing}
agriesma@306
   195
Pay attention to the entry 'list of subcollections OR ayout of examples belonging to this subcollection': This means that the subcollection {\em exactly one} hierarchy-level above the bottom of individual examples has a specific content, the graphical layout of the examples. This is in order to meet UR \ref{expl-layout}.
agriesma@306
   196
agriesma@306
   197
agriesma@306
   198
{\bf\SR An example has the attributes \label{expl-att}}
agriesma@306
   199
\begin{tabbing}
agriesma@306
   200
12345\=123\=123\=123\=123\=123\=\kill
agriesma@306
   201
\>label \\
agriesma@306
   202
\>reference ??? to the description of the example (in the layout ?)\\
agriesma@306
   203
\>list of formalizations and specifications \\
agriesma@306
   204
\>author\\
agriesma@306
   205
\>copyright owner\\
agriesma@306
   206
\>time stamp\\
agriesma@306
   207
\>groups of users, for each group: \\
agriesma@306
   208
\>\>ID of the group \\
agriesma@306
   209
\>\>schemas \\
agriesma@306
   210
\>\>\>error \\
agriesma@306
   211
\>\>\>fill-in \\
agriesma@306
   212
\>\>\> \\
agriesma@306
   213
\>\>dialog \\
agriesma@306
   214
\>\>\>blackbox \\
agriesma@306
   215
\>\>\>detail \\
agriesma@306
   216
\>\>\>activity \\
agriesma@306
   217
\>\>\>stepwidt \\
agriesma@306
   218
\>\>\> \\
agriesma@306
   219
\>\>invisible: list of intervals OR duration (? TODO !) \\
agriesma@306
   220
\>\>locked: list of intervals OR duration (? TODO !)\\
agriesma@306
   221
\>\>evaluation \\
agriesma@306
   222
\>\>\>TODO: difficulty, length, \dots \\
agriesma@306
   223
\>\>???done by userID ---$>$ usermodel??? 
agriesma@306
   224
\end{tabbing}
agriesma@306
   225
{\bf\SR Hitting the label of the example starts the calculation. \label{}}
agriesma@306
   226
agriesma@306
   227
\subparagraph{Visibility of the examples} is defined in two levels: (1) 'locked' displays the text of the example, but doesn't allow to calculate it; and (2) 'invisible' desn't display the example at all.
agriesma@306
   228
{\bf\SR {\em Only} visible examples are checked for being locked.\label{}}
agriesma@306
   229
%{\bf\SR Authoring-/learner-mode:} the formalization and other attributes are shown/not shown, depending on the group the user belongs to.
agriesma@306
   230
agriesma@306
   231
%\subparagraph{}
agriesma@306
   232
%{\bf\SR \label{}}
agriesma@306
   233
agriesma@306
   234
agriesma@306
   235
akremp@767
   236
\chapter{The dialog guide}
agriesma@306
   237
agriesma@306
   238
%{\bf\SR A learner has a dialog state within the current session. \label{}}
agriesma@306
   239
%{\bf\SR Each learner has a history of all sessions. \label{}}
agriesma@306
   240
%{\bf\SR The history holds the condensed performance in calculations. \label{}}
agriesma@306
   241
%{\bf\SR The history holds requests into the knowledge. \label{}\\}
agriesma@306
   242
%\subparagraph{}
agriesma@306
   243
%{\bf\SR \\}
agriesma@306
   244
agriesma@306
   245
As already mentioned, the dialog guide will be fleshed out in a later phase of development involving didactics and learning theory. Now we try to establish a framework open for later completion.
agriesma@306
   246
agriesma@306
   247
\subparagraph{The dialogstate} is read and updated during {\em one} session. A dialog resumes the dialogstate from the previous session done as a member of the same student-group.
agriesma@306
   248
{\bf\SR The last dialog is stored \label{}} for each group the student is a member of. When storing and replacing the previous dialogstate, this dialogstate is transferred to the history of the usermodel (eventually after compression).
agriesma@306
   249
{\bf\SR The dialogstate has the attributes \label{}}
agriesma@306
   250
{\small
agriesma@306
   251
\begin{tabbing}
agriesma@306
   252
12345\=123\=123\=123\=123\=123\=123\=123\=12345123\=123\=\kill
agriesma@306
   253
\>begin       \>\>\>\>\>\>\>\>\>timestamp of begin of session\\
agriesma@306
   254
\>provided-end\>\>\>\>\>\>\>\>\>e.g. for examinations\\
agriesma@306
   255
\>actual-end  \>\>\>\>\>\>\>\>\>empty, or timestamp of end of session\\
agriesma@306
   256
\>group       \>\>\>\>\>\>\>\>\>the user has started the session with\\
agriesma@306
   257
\>interactions, for each: \\
agriesma@306
   258
\>\>timestamp\\
agriesma@306
   259
\>\>label of example\>\>\>\>\>\>\>\>empty if \sisac{} entered via KB\\
agriesma@306
   260
\>\>input\>\>\>\>\>\>\>\>tactic, formula, command or label in KB\\
agriesma@306
   261
\>\>response\>\>\>\>\>\>\>\>??? of which part of system ???\\
agriesma@306
   262
\>\>pattern\>\>\>\>\>\>\>\>of dialog\\
agriesma@306
   263
\>\>\>activity\\
agriesma@306
   264
\>\>\>stepwidt\\
agriesma@306
   265
\>\>\>\dots TODO \dots\\
agriesma@306
   266
\end{tabbing}}
agriesma@306
   267
The use of these fields is shown by use-case UC TODO.
agriesma@306
   268
agriesma@306
   269
agriesma@306
   270
\subparagraph{The usermodel} consists of two parts: the settings of the personal preferences and the history of (condensed) dialogstates. The history is constructed from the dialogstates: before a dialogstate is being replaced at the start of a new session, its data are restructured and appended to the history.
agriesma@306
   271
{\bf\SR The usermodel has the attributes\label{}}
agriesma@306
   272
{\small
agriesma@306
   273
\begin{tabbing}
agriesma@306
   274
12345\=123\=123\=123\=123\=123\=123\=123\=12345123\=123\=\kill
agriesma@306
   275
\>settings\\  
agriesma@306
   276
\>\>patterns, for each:\>\>\>\>\>\>\>\>of dialog\\  
agriesma@306
   277
\>\>\>activity\\
agriesma@306
   278
\>\>\>stepwidt\\
agriesma@306
   279
\>\>\>\dots TODO \dots\\
agriesma@306
   280
\>history, for each session:\>\>\>\>\>\>\>\>\>\\  
agriesma@306
   281
\>\>begin\_end\>\>\>\>\>\>\>\>2 timestamps\\  
agriesma@306
   282
\>\>group\>\>\>\>\>\>\>\> the user has started the session with\\  
agriesma@306
   283
\>\>kb\_touchs, for each:\>\>\>\>\>\>\>\>\\  
agriesma@306
   284
\>\>\>label of KB item\\  
agriesma@306
   285
\>\>\>timestamps\\
agriesma@306
   286
\>\>examples, for each:\\  
agriesma@306
   287
\>\>\>label of example\\  
agriesma@306
   288
\>\>\>begin\_end\>\>\>\>\>\>\>2 timestamps\\  
agriesma@306
   289
\>\>\>finished\>\>\>\>\>\>\>yes/no\\
agriesma@306
   290
\>\>\>performance\>\>\>\>\>\>\>from example.evaluation.TODO and\\  
agriesma@306
   291
\>\>\>\>\>\>\>\>\>\>from dialog.interactions\\  
agriesma@306
   292
\end{tabbing}}
agriesma@306
   293
The use of these fields is shown by use-case UC TODO.
agriesma@306
   294
agriesma@306
   295
wneuper@1692
   296
%\chapter{The mathematics engine}
wneuper@1692
   297
%Here only these requirements are recorded which have been newly raised when specifying the interfaces to the ME.
wneuper@1692
   298
%
wneuper@1692
   299
%{\bf\SR The structure of a calculation is given %by ??? for each formula
wneuper@1692
   300
%\label{}}
agriesma@306
   301