doc/srd-content.tex
author cropposc
Fri, 07 Mar 2008 10:53:15 +0100
branchstart-work-070517
changeset 285 2d8940b9c351
parent 26 28955dfcb1cd
permissions -rw-r--r--
Documentation for Master-Practical
     1 %nicht vergessen: auch srd.tex ($Revision $) \"andern !
     2 \part{Software Requirements Document}
     3 
     4 This Software Requirements Document is structured along the modules
     5 abstracted from the functionality defined in the User Requirements
     6 Document. The User Requirements Document, however, is structured along
     7 the different kinds of users envisaged. In order to establish
     8 comfortable tracing, the $m:n$ relation between user requirements and
     9 software requirements will be accurrately recorded in a double-linked
    10 way.
    11 
    12 \chapter{General requirements}
    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.
    14 
    15 \section{Delopment environment,} standards and components, documentation and revision control are described in appendix \ref{AP:environment}.
    16 
    17 
    18 \section{Decisions for underlying systems} have been done already.
    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.
    20 {\bf\SR The deductive part is left to Isabelle. \label{deduct-isa}}
    21 {\bf\SR \sisac s math engine closely cooperates with Isabelle \label{me-isa}\\}
    22 Thus the math engine is already implemented in the same program language as Isabelle, SML.
    23 
    24 %dropped: visitor canNOT calculate !
    25 %
    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).
    27 %{\bf\SR Browsers are called by a 'master-browser' {\em and} by the worksheet. \label{}} ??? %WN2.12.02 ...... ausbessern !!!!
    28 
    29 \section{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
    30  \sisac-components belonging to these two language environments. 
    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.
    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.
    33 
    34 \section{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.
    35 {\bf\SR On the client-side a Java virtual machine version .... \label{}} must reside on the local computer of the learners and authors.
    36 {\bf\SR On the server there is a Linux or Unix \label{}} operating system, Linux version ..., Unix ...
    37 
    38 \section{Communication in the distributed system}
    39 %WN050518---AK.p.58-61->isac-SRD--------BEGIN---please don't remove this line
    40 \footnote{Begin of copy from \cite{AK04:thesis} p.58-61.}
    41 \subsection{Choosing a Means of Communication}\label{AK:DESIGN:SYSTEM:DISTRIBUTE:comm}
    42 
    43 For integration of the various components across several machines an off-the-shelf solution was sought with the following criteria in mind: 
    44 
    45 \begin{description}
    46 \item[Speed] Many of the user's requests originating on the Worksheet require processing in the Math Engine. With \isac{} being an interactive system, we need response times near the response times in normal human interaction.
    47 \item[Security] With many of the features of \isac{} depending on the identity of the user and the enforcement of access rights, basic security features are a necessity.
    48 \item[Mobility] Users might want to use \isac{} at work, in class or at home, even on computers they use only occasionally. This asks for communication robust against changing addresses of client and server computers, but still secure.
    49 \item[Conformity to Standards] is especially important for the Worksheet, which runs on the user's machine. An ideal solution would build on standard resources available on the user's machine without the need of additional installation. If installation is required, it must be kept as simple as possible. 
    50 
    51 With the goal of being open to cooperation with the tools of other projects, a standard solution would ease integration of the different systems.
    52 
    53 In addition to that, a standard solution is preferred with the limited resources of the \isac{} project in mind. 
    54 
    55 \end{description} 
    56 
    57 Several options were reviewed to find a suitable means of communication, among them Java-RMI \footnote{http://java.sun.com/products/jdk/rmi/}, XML-RPC \footnote{http://www.xmlrpc.com/spec}, SOAP \footnote{http://www.w3.org/TR/SOAP} and Dinopolis \footnote{http://www.dinopolis.org/}.
    58 
    59 While the Dinopolis approach looked most promising with respect to the aforementioned criteria, it was not yet available in a stable implementation.
    60 Java-RMI was chosen for the implementation of the \isac{} prototype. The strongest arguments for Java-RMI were the seamless integration into the Java programming environment and the widespread use and accepted stability.
    61 
    62 \subsection{The Dinopolis Middleware project}\label{AK:DESIGN:SYSTEM:DISTRIBUTE:dino}
    63 % pl: Wie schon in meiner e-mail bemerkt, sollten Sie hier lieber Java-RMI
    64 % skizzieren, das Sie benutzen und nicht Dinopolis, das Sie nicht benuetzen.
    65 Dinopolis \cite{dino2002} is an object management middleware system aiming at object and component retrieval, security and run-time polymorphism. While not part of the current implementation of \isac{}, Dinopolis still played an important role during the design phase.
    66 
    67 The main features of Dinopolis include:
    68 \begin{description}
    69 
    70 \item[Component and object management]
    71 Extending the traditional data-and-operations view, Dinopolis objects have the following aspects, all handled by the middleware: 
    72 \begin{description}
    73 \item[Content] is the traditional data content.
    74 \item[Meta-Data] can be used for administrative purposes which are not necessarily reflected by the content. 
    75 \item[Interrelations] associate several objects, of equal or different types, in a m:n manner.
    76 \item[Operations] manipulate the content of an object.
    77 \item[Services] are GUI building blocks offered by an object to facilitate data manipulation by the user. Services can be viewed as the View and Controller parts of a MVC triple.
    78 \end{description}
    79 All of these aspects are handled transparently by the Dinopolis middleware according to the current run-time context, which not only takes burden from the programmer, but also allows for run-time dynamic typing as a key feature.
    80 
    81 Objects and components are accessed through Globally Unique Handles (GUH), a mechanism allowing for unambiguous retrieval of objects independent of their physical locations  \cite{DOLSA}.
    82 
    83 \item[Role-based security]
    84 Dinopolis takes control over access to components, objects, their data and operations. Access control is based on the user and his role as opposed to the user's identity alone. With Dinopolis, the same user would have different access rights and therefore see different aspects and different behaviour of objects depending on whether he accesses \isac{} as administrator, teacher or student. All security-relevant operations are handled transparently by the Dinopolis middleware, so the only task left to \isac{} is to identify the user. As far as objects are concerned, the transparent security system may be considered a special case of dynamic typing described above.
    85 
    86 \item[Ability to embed existing systems]
    87 Existing systems can easily be integrated into Dinopolis by writing embedders for existing objects such as databases. This could ease integrating \isac{} with other projects without the need to define common data structures. In addition to that, the SML part of \isac{} could easily be integrated this way.
    88 
    89 \item[Platform-independency]
    90 At present, Dinopolis is being implemented in C++ and Java, but the protocols and algorithms are open to arbitrary programming languages.
    91 
    92 \end{description} 
    93 
    94 The features mentioned above make Dinopolis ideally suited for the needs of \isac{}, for communication of the various distributed components as well as for security and role-dependent behaviour of the system. Unfortunately, Dinopolis is still being developed and was not finished in time to base the current prototype of \isac{} on. The \isac{} team still hope to use the features of Dinopolis in future versions.
    95 
    96 \subsection{Java-RMI}\label{AK:DESIGN:SYSTEM:DISTRIBUTE:rmi}
    97 Java Remote Method Invocation provides for communication of processes running in different Virtual Machines, even if the VMs run on different computers. Basically, RMI provides invoking methods on remote objects and passing parameters to remote methods. RMI cannot be compared directly to Dinopolis, because RMI's purpose is communication between remote objects, but not object retrieval, system security or dynamic typing.
    98 
    99 To invoke methods on a remote object, the remote object has to implement a public remote interface extending \texttt{java.rmi.Remote}. Every method in the remote interface has to declare to throw \texttt{RemoteException}. The remote object may implement other methods in addition to the remote interface, but only the methods in the remote interface can be invoked remotely.
   100 
   101 Any objects implementing the \texttt{java.io.Serializable} interface can be passed as parameter. Unlike other distributed component systems, this is the only condition imposed on parameters.
   102 
   103 Apart from the non-restrictive conditions listed, remote objects can be used like local objects once a connection is established. 
   104 
   105 This tight integration into the Java programming environment is the key advantage of Java-RMI and one of its few drawbacks, as it is limited to Java as a programming language.
   106 
   107 \footnote{End of copy from \cite{AK04:thesis} p.58-61.}
   108 %WN050518---AK.p.58-61->isac-SRD--------END---please don't remove this line
   109 
   110 \begin{verbatim}
   111 
   112 -------- Original Message --------
   113 Subject: Re: RK noch eine Bitte
   114 Date: Thu, 31 May 2007 18:56:28 +0200
   115 From: Walther Neuper <neuper@ist.tugraz.at>
   116 To: isac@ist.tugraz.at
   117 References: <465DA1BD.506@ist.tugraz.at> <465DECBF.5030607@sbox.tugraz.at>	<465EE077.9000504@ist.tugraz.at> <20070531175410.b9zz0p64g00cckgo@webmail.tugraz.at>
   118 
   119 Robert Könighofer wrote:
   120 > Zitat von Walther Neuper <neuper@ist.tugraz.at>:
   121 > 
   122 >> _noch_ eine Frage zu Eurer, Deiner und Nelles, Arbeit an der HTL: laut
   123 >>
   124 >>     http://java.sun.com/developer/onlineTraining/rmi/RMI.html
   125 >>
   126 >> sollte RMI bei Firewallproblemen _automatisch_ auf http-tunneling 
   127 >> schalten (..it is blocked by the firewall. When this happens, the RMI 
   128 >> transport layer automatically retries by encapsulating the JRMP call 
   129 >> data within an HTTP POST request. etc..)
   130 >>
   131 >> Habt Ihr bei Eurer Arbeit davon bemerkt ?
   132 > 
   133 > Nein, leider.
   134 > 
   135 Ah, sehr interessant, dass das nicht so läuft ...
   136 
   137 > Die einleitenden Worte würden schon irgendwie darauf hindeuten, dass das 
   138 > alles automatisch passiert. Davon haben wir allerdings leider nichts 
   139 > bemerkt. Vielleicht haben wir uns dieses feature auch unabsichtlich 
   140 > selbst deaktiviert, als wir anstelle der Default Sockets zur 
   141 > Kommunikation unsere eigenen Sockets mit fixierten Ports aktiviert haben.
   142 > 
   143 ?!?!?
   144 > [...]
   145 > "If a client is behind a firewall, it is important that you also set the 
   146 > system property http.proxyHost appropriately. Since almost all firewalls 
   147 > recognize the HTTP protocol, the specified proxy server should be able 
   148 > to forward the call directly to the port on which the remote server is 
   149 > listening on the outside."
   150 > 
   151 ... das gilt für die Firewall auf der Serverseite; wir brauchen aber nur 
   152 die Firewall auf der Clientseite beachten, da der isacserver am IST 
   153 _vor_ der Firewall (in der dmz) läuft !
   154 
   155 > [...]
   156 Vielleicht ist das Ganze einfacher, als wir denken !?!
   157 > 
   158 > lg RK
   159 > 
   160 lg Walther
   161 -- 
   162 ------------------------------------------------------------------------
   163 Walther Neuper                          Mailto: neuper@ist.tugraz.at
   164 Institute for Software Technology          Tel: +43-(0)316/873-5728
   165 TUG University of Technology,              Fax: +43-(0)316/873-5706
   166 and HTL Ortweinschule, Graz, Austria      Home: www.ist.tugraz.at/neuper
   167 ------------------------------------------------------------------------
   168 
   169 
   170 
   171 -------- Original Message --------
   172 Subject: Re: RK noch eine Bitte
   173 Date: Fri, 01 Jun 2007 12:35:28 +0200
   174 From: Nebojsa Simic <nelle@sbox.tugraz.at>
   175 To: Walther Neuper <neuper@ist.tugraz.at>
   176 References: <465DA1BD.506@ist.tugraz.at> <465DECBF.5030607@sbox.tugraz.at>	<465EE077.9000504@ist.tugraz.at>	<20070531175410.b9zz0p64g00cckgo@webmail.tugraz.at>	<465EFE3C.5030502@ist.tugraz.at>
   177 
   178 Quoting Walther Neuper <neuper@ist.tugraz.at>:
   179 
   180 > Robert Könighofer wrote:
   181 >> Zitat von Walther Neuper <neuper@ist.tugraz.at>:
   182 >>
   183 >>> _noch_ eine Frage zu Eurer, Deiner und Nelles, Arbeit an der HTL: laut
   184 >>>
   185 >>>    http://java.sun.com/developer/onlineTraining/rmi/RMI.html
   186 >>>
   187 >>> sollte RMI bei Firewallproblemen _automatisch_ auf http-tunneling  
   188 >>> schalten (..it is blocked by the firewall. When this happens, the  
   189 >>> RMI transport layer automatically retries by encapsulating the  
   190 >>> JRMP call data within an HTTP POST request. etc..)
   191 >>>
   192 >>
   193 > ... das gilt für die Firewall auf der Serverseite; wir brauchen aber  
   194 > nur die Firewall auf der Clientseite beachten, da der isacserver am  
   195 > IST _vor_ der Firewall (in der dmz) läuft !
   196 
   197 Das grosste Problem ist dass ISAC Client gleichzeitig ein RMI Server ist ...
   198 Um die Events (CalcChanged + doUIAction) die von Dialog->Worksheet  
   199 gehen, der ISAC Client registriert einen RMI Server auf der Client  
   200 Machine ... Und wenn der Server versucht, die Verbindung aufzubauen,  
   201 dann scheitert das ganze am Client Firewall ...
   202 
   203 Das alles schaut grob so aus :
   204 
   205 WindowApplication                 ISAC Server
   206 
   207 RMI Client        --------------> RMI Server( 1040, 1050 , ... )
   208 RMI Server (3113) <-------------- RMI Client
   209 
   210 Wir haben das ganze so umgeschrieben dass die RMI Sockets umgekehrt  
   211 funktionieren ... Das ist eigentlich schwer zu erklären, aber es  
   212 schaut das ganze so aus :
   213 
   214 RMI Client              --------------> RMI Server( 1040, 1050 , ... )
   215 Quasi RMI Server (3113) --------------> Quasi RMI Client
   216 
   217 Das Problem da ist, dass ganze sehr empfindlich ist ... Falls die  
   218 Verbindung aufgebrochen wird, gibt es kein mechanismus um die wieder  
   219 aufzubauen und das System wartet ewig darauf ...
   220 
   221 Beim letzten versuch im HTL war die kommunikation zwischen Client und  
   222 Server schon aufgebaut (wir konnten alle browser fenster aufmachen),  
   223 aber es war, wie schon gesagt, sehr instabil bzw. hat das System oft  
   224 abgesturzt ....
   225 
   226 Meine vermutung ist dass im ReverseClientSocket und  
   227 ReverseServerSocket ein bug liegt oder dass man diese klassen  
   228 irgendwie umbauen muss ...
   229 
   230 
   231 -- 
   232 lG,
   233 Nelle
   234 \end{verbatim}
   235 
   236 
   237 
   238 \chapter{The worksheet}
   239 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. 
   240 
   241 \subparagraph{A calculation mirrors the structure of the prooftree.}
   242 {\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.
   243 {\bf\SR Export a calculation to a standard format \label{}} preferably XML plus MathML. 
   244 
   245 %{\bf\SR \label{}}
   246 
   247 %--------------------------------------------------------------------------------------------------------
   248 %--------------------------------------------------------------------------------------------------------
   249 %--------------------------------------------------------------------------------------------------------
   250 %--------------------------------------------------------------------------------------------------------
   251 %--------------------------------------------------------------------------------------------------------
   252 %--------------------------------------------------------------------------------------------------------
   253 %--------------------------------------------------------------------------------------------------------
   254 %--------------------------------------------------------------------------------------------------------
   255 %--------------------------------------------------------------------------------------------------------
   256 % FIXXME RK, Oct. 2006 old version:
   257 % \chapter{The browser generators}
   258 %  \sisac's mathematics knowledge (on (1)theories (2)problems (3)methods)
   259 %  is held in SML datastructures. Here we describe all requirements
   260 %  concerning the generation of the browsers written in Java, whereas
   261 %  the generation of the math knowledge itself is described in the
   262 %  'interfaces for authors of math knowledge'.
   263 % 
   264 % The browser generators provide the contents for the browsers. This
   265 % means that a browser querys its respective browser generator about
   266 % subnodes etc. whereas the further description is held outside the
   267 % SML-engine. To maintain this connection, unique identifyer are needed.
   268 % {\bf\SR browser-generators use locally unique identifyers \label{}} (locally unique within SML) for their informations (for each node of their structure).
   269 % 
   270 % \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.)
   271 % {\bf\SR The hiearchy  displayed in a frame \label{}} in order to have it visible all the time.
   272 % {\bf\SR The hierarchy has arbitrary levels. \label{}} For the headlines for each level see SR \dots SR \ref{expl-headlines}.
   273 % {\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.
   274 % 
   275 % 
   276 % \section{The theory browser generator}
   277 % The generation of the theory browser is already implemented by Isabelle. Within phase 1 of development, \sisac{} will take this component without any change.
   278 % {\bf\SR The theory browser generator is given by Isabelle. \label{gen-isa}} 
   279 % 
   280 % \section{The problem and method browser generators}
   281 % .
   282 % 
   283 % \section{The example browser generator}
   284 % This authoring component comprises all tools necessary to generate the content displayed by the example browser. 
   285 % 
   286 % {\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}). 
   287 % 
   288 % {\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.
   289 % 
   290 % \chapter{The knowledge browsers}
   291 % \label{kbrowser}
   292 % %W.N.: dieser Abschnitt ist f''ur A.G. + W.N.
   293 % All browsers (Example-Browser and Knowledge-Browsers) present their
   294 % output in a similar way. Textual descriptions have to be combined with
   295 % images, formulas, formalisations, problems, \dots and links to further
   296 % informations(UR\ref{URinterlink}). The structure of this informations
   297 % has to be taken from the respective browser-generators. All kinds of
   298 % information might be interlinked among each other, but not all parts
   299 % of the information might be already present in the system when a new
   300 % item is inserted. (e.g. a example might use the keyword
   301 % \emph{is\_rooteq\_in} in its \emph{where}\/clause before the keyword
   302 % is described in the system. If the example is viewed after a
   303 % description became available, a link to the explanation should be
   304 % provided automatically.) To support this feature, the browsers need a
   305 % fast way to look up a special description.
   306 % {\bf\SR fast look up for description (includes resolve of the
   307 % identifyer and query for a description)}
   308 % 
   309 % \subparagraph{Groups of users} are usually 1-to-1 related to courses; members of courses get specific examples and specific advice by explanations.
   310 % {\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.
   311 % {\bf\SR There is a default group for visitors. \label{}}
   312 % {\bf\SR \label{}}
   313 % 
   314 % \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.
   315 % {\bf\SR Additional data and visibility are course specific. \label{}}
   316 % {\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).
   317 % 
   318 % 
   319 % \section{The theory browser}
   320 % The theory browser is already implemented by Isabelle. Within phase 1 of development, \sisac{} will take this component without any change.
   321 % {\bf\SR the theory browser is given by Isabelle. \label{}} 
   322 % 
   323 % \section{The problem and method browsers}
   324 % %\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.
   325 % %{\bf\SR Browsers create the presentation in browser-windows dynamically. \label{}}
   326 % 
   327 % \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}). 
   328 % 
   329 % 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.
   330 % {\bf\SR A problem-page consists of \label{problem-page}} the 
   331 % \begin{tabbing}
   332 % 12345\=123\=123\=\kill
   333 % \>name of the problem\\
   334 % \>the fields 'given', 'where', 'find' and 'relate'\\
   335 % \>a link to the special math data\\
   336 % \>a list of subordinated methods (only displayed in the hierarchy-frame)\\
   337 % \>an arbitrary list of links to additional data
   338 % \end{tabbing}
   339 % The next lower and next higher level in the hierarchy can be found in the hierarchy-frame.
   340 % {\bf\SR A method-page consists of \label{method-page}}
   341 % \begin{tabbing}
   342 % 12345\=123\=123\=\kill
   343 % \>name of the method\\
   344 % \>the script\\
   345 % \>a link to the special math data\\
   346 % \>a list of subordinated methods (only displayed in the hierarchy-frame)\\
   347 % \>an arbitrary list of links to additional data
   348 % \end{tabbing}
   349 % {\bf\SR The links to additional data \label{}} have the following attributes:
   350 % \begin{tabbing}
   351 % 12345\=123\=123\=\kill
   352 % \>text on the link\\
   353 % \>the reference (to an explanation or to an example starting a worksheet)\\
   354 % \>groups\\
   355 % \>\>ID of first group\\
   356 % \>\>\>locked: list of intervals\\
   357 % \>\>\>???used by userID ---$>$ usermodel???\\
   358 % \>\>ID of second group \dots
   359 % \end{tabbing}
   360 % %{\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).
   361 % %{\bf\SR Access to explanations and examples of other courses \label{}} is possible by ... ??? (see UR \ref{other-courses}).
   362 % 
   363 % 
   364 % 
   365 % 
   366 % \section{The example browser}
   367 % 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.
   368 % 
   369 % \subparagraph{Attributes of examples and collections} are numerous, and thus defaults help to safe space. There is only one collection, partitioned hierarchically into subcollections.
   370 % {\bf\SR Default data \label{}} are filled in bottum up: A default is filled by the first non-default parent.
   371 % {\bf\SR A subcollection has the attributes \label{coll-attr}}
   372 % \begin{tabbing}
   373 % 12345\=123\=123\=123\=123\=\kill
   374 % \>headline of the collection (displayed also in the hiearchy-frame) \\
   375 % \>description of the collection\\
   376 % \>list of subcollections\\
   377 % \>OR\\
   378 % \>layout of examples belonging to this subcollection\\
   379 % \>author\\
   380 % \>copyright owner\\
   381 % \>groups of users, for each group: \\
   382 % \>\>ID of the group \\
   383 % \>\>schemas \\
   384 % \>\>\>error \\
   385 % \>\>\>fill-in \\
   386 % \>\>\> \\
   387 % \>\>dialog \\
   388 % %\>\>\>blackbox \\
   389 % \>\>\>detail \\
   390 % \>\>\>activity \\
   391 % \>\>\>stepwidt \\
   392 % \>\>\> \\
   393 % \>\>invisible: list of intervals OR duration (? TODO !)\\
   394 % \>\>locked: list of intervalsOR duration (? TODO !) \\
   395 % \>\>evaluation \\
   396 % \>\>\>TODO: difficulty, length, \dots \\
   397 % \>\>\>finished-by: \\
   398 % \>\>\>\>elements: list of mandatory examples (or groups) to be done \\
   399 % \>\>\>\>number: number of (arbitrary) examples (or groups) to be done \\
   400 % \>\>\>\>points: calculated from TODO: difficulty, length, \dots \\
   401 % \end{tabbing}
   402 % 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}.
   403 % 
   404 % 
   405 % {\bf\SR An example has the attributes \label{expl-att}}
   406 % \begin{tabbing}
   407 % 12345\=123\=123\=123\=123\=123\=\kill
   408 % \>label \\
   409 % \>reference ??? to the description of the example (in the layout ?)\\
   410 % \>list of formalizations and specifications \\
   411 % \>author\\
   412 % \>copyright owner\\
   413 % \>time stamp\\
   414 % \>groups of users, for each group: \\
   415 % \>\>ID of the group \\
   416 % \>\>schemas \\
   417 % \>\>\>error \\
   418 % \>\>\>fill-in \\
   419 % \>\>\> \\
   420 % \>\>dialog \\
   421 % \>\>\>blackbox \\
   422 % \>\>\>detail \\
   423 % \>\>\>activity \\
   424 % \>\>\>stepwidt \\
   425 % \>\>\> \\
   426 % \>\>invisible: list of intervals OR duration (? TODO !) \\
   427 % \>\>locked: list of intervals OR duration (? TODO !)\\
   428 % \>\>evaluation \\
   429 % \>\>\>TODO: difficulty, length, \dots \\
   430 % \>\>???done by userID ---$>$ usermodel??? 
   431 % \end{tabbing}
   432 % {\bf\SR Hitting the label of the example starts the calculation. \label{}}
   433 % 
   434 % \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.
   435 % {\bf\SR {\em Only} visible examples are checked for being locked.\label{}}
   436 % %{\bf\SR Authoring-/learner-mode:} the formalization and other attributes are shown/not shown, depending on the group the user belongs to.
   437 % 
   438 % %\subparagraph{}
   439 % %{\bf\SR \label{}}
   440 
   441 %WN050519---AG------old version replaced by RK below
   442 %WN050519---RK->isac-SRD-----------------BEGIN---please don't remove this line
   443 
   444 
   445 % FIXXME RK, Oct. 2006 new version:
   446 \chapter{Views on Examples and Knowledge Items}
   447 
   448 \footnote{Begin of \cite{ba-RK06} p....-- p....}
   449 
   450 This chapter describes the software requirements for the browsers and the
   451 browserdialogs controlling these browsers. 
   452 
   453 All browsers (Example-Browser and Knowledge-Browsers) present their
   454 output in a similar way. Textual descriptions have to be combined with
   455 images, formulas, formalisations, problems, \dots and links to further
   456 informations. All items of
   457 information might be interlinked with each other.%WN061009??,but not all parts
   458 %of the information might be already present in the system when a new
   459 %item is inserted.
   460 
   461 \section{General Requirements}
   462 
   463 %NOTE: completely new:
   464 {\bf\SR Unique identification by a GUH.\label{SR.RK-id-by-guh}}
   465 Each item of the examples collection or the knowledge base is uniquely identified 
   466 by a GUH (Global Unique Identifier).
   467 The GUH is a String starting with \verb,'thy_', for theory elements, \verb,'pbl_', for problem elements,
   468 \verb,'met_', for method elements and \verb,'exp_', for examples.
   469 
   470 %NOTE: completely new:
   471 {\bf\SR Presentation in a standard browser and in the \isac-browsers.\label{SR.RK-stand-and-isac-browser}} The knowledge elements and examples can be viewed in a standard browser as well
   472 as in the \isac-browsers. Thus, knowledge elements have to be available in HTML
   473 form in some way.
   474 
   475 %NOTE: completely new:
   476 {\bf\SR GUHs as links.\label{SR.RK-link-by-guh}}
   477 Links between elements of the knowledge base are defined by the GUH of the link target.
   478 To make the links work in a standard browser, some path information has to be added to the URL in the
   479 HMTL representation of the knowledge elements.
   480 
   481 %NOTE: something similar already existed: RIGHT: this is a USER-requirement
   482 %{\bf\SR Additional information can be given to any element of the knowledge base or the
   483 %examples collection.\label{SR.RK-add-info}}
   484 %This information is not extracted from the SML structures, it is added by the course designer. 
   485 %The additional information can contain links to
   486 %examples or elements of the knowledge base. External links and images are possible as well.
   487 
   488 %NOTE: completely new:
   489 %WN061009 isn't that an (ugly!) _consequence_ of the present (ugly!) handling of the browsers contents ?!?
   490 %{\bf\SR The \isac-browsers can display the content of HTML files on the local file system as
   491 %well as files available over the World Wide Web.\label{SR.RK-html-local-web}} 
   492 
   493 %NOTE: completely new:
   494 {\bf\SR Asynchronous load of content.\label{SR.RK-browser-load-asynch}}  The \isac-browsers load the content to be displayed asynchronously. That means, that the
   495 user interface does not block until the page is loaded. The page is loaded in an extra thread instead.
   496 
   497 %NOTE: copied:
   498 {\bf\SR The hierarchy is displayed in a frame \label{SR.RK-hier-in-frame}} in order to have it visible all the time.
   499 %NOTE: copied:
   500 {\bf\SR The hierarchy has arbitrary levels. \label{SR.RK-hier-arb-levels}}
   501 %NOTE: copied:
   502 {\bf\SR The hierarchy shows the position \label{SR.RK-hier-arb-levels}} of the related element displayed in the browser-window.
   503 
   504 \section{The Knowledge Browsers}
   505 The following enumerations do {\em not} show all items contained in the respective sml datastructure; rather it shows the 'most important' ones --- a preliminary decision, which will be overlayed by filtering due to the dialog-guide.
   506 %NOTE: modified:
   507 {\bf\SR A problem page consists of:\label{SR.RK-pbl-consists}}
   508 %WN061009 problem content-page ? problem content ?
   509 \begin{enumerate}
   510 \item name of the problem or the 'CAS-command' (a short command similar to an algebra system; e.g. {\em solve})
   511 \item a model consisting of the fields 'given', 'where', 'find' and 'relate'
   512 \item explanations %WN see 'list of terms...' additional data
   513 \item the authors
   514 \item the position within the problem-hierarchy displayed in the hierarchy-frame)
   515 \end{enumerate} 
   516 
   517 %NOTE: modified:
   518 {\bf\SR A method page consists of:\label{SR.RK-met-consists}}
   519 \begin{enumerate}
   520 \item the script
   521 \item a name (only displayed in the hierarchy-frame)
   522 \item a guard consisting of the fields 'given', 'where', 'find' and 'relate'
   523 \item explanations %WN see 'list of terms...' additional data
   524 \item the authors
   525 \item the position within the method-hierarchy displayed in the hierarchy-frame\end{enumerate} 
   526 
   527 %NOTE: completely new:
   528 {\bf\SR A theorem page (within theories) consists of:\label{SR.RK-thm-thy-consists}}
   529 \begin{enumerate}
   530 \item the name of the theorem
   531 \item the formula of the theorem
   532 \item a link to the proof of the theorem within Isabelle %WN061009 TODO
   533 \item explanations %WN see 'list of terms...' additional data
   534 \item the authors (math authors and course designers)
   535 \end{enumerate} 
   536 
   537 %NOTE: completely new:
   538 {\bf\SR A ruleset page (within theories) consists of:\label{SR.RK-rls-thy-consists}}
   539 \begin{enumerate}
   540 \item the identifier of the ruleset
   541 \item the type of the ruleset ({\tt Rls, Seq, Rrls}) %WN061009 TODO: use tag <TYPE>
   542 \item a list of rules and links to the rules. Rules can be theorems other rulesets or operations.
   543 \item a rewrite order
   544 \item explanations %WN see 'list of terms...' additional data
   545 \item the authors (math authors and course designers)
   546 \item the position within the theory-hierarchy displayed in the hierarchy-frame
   547 \end{enumerate} 
   548 
   549 %NOTE: completely new:
   550 {\bf\SR A htmldata theory page consists of:\label{SR.RK-html-thy-consists}}
   551 \begin{enumerate}
   552 \item explanations %WN see 'list of terms...' additional data
   553 \item the authors
   554 \end{enumerate} 
   555 
   556 %NOTE: completely new:
   557 {\bf\SR Similar representation for static and dynamic content.\label{SR.RK-add-context-2-html}}
   558 If elements of the knowledge base are shown in the \isac-browser, the
   559 content can be enriched with dynamically generated context dependent information.
   560 Any selected formula in the worksheet has a context to an element of the knowledge base.
   561 This context information is inserted into the HTML content displayed in the browser if the
   562 feature is activated.
   563 
   564 %NOTE: completely new:
   565 {\bf\SR Data and representation separated.\label{SR.RK-data-rep-sep}}
   566 The knowledge data and its representation should be separated well.
   567 
   568 %NOTE: completely new:
   569 {\bf\SR Easy generation of different representations.\label{SR.RK-rep-to-data}} SR.\ref{SR.RK-data-rep-sep} 
   570 The system must provide an easy way of generating different representations
   571 of the same knowledge data. SR.\ref{SR.RK-data-rep-sep} is a precondition to
   572 make this possible.
   573 
   574 \section{The example browser}
   575 In contrary to the knowledge 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.
   576 
   577 {\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}). 
   578 
   579 {\bf\SR Metadata for selecting examples: \label{SR.WN-exp-metadata}}
   580 \subparagraph{Attributes of examples and collections} are numerous, and thus defaults help to safe space.
   581 
   582 {\bf\SR Visibility of examples: \label{SR.WN-exp-visible}}
   583 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' doesn't display the example at all.
   584 
   585 {\bf\SR {\em Only} visible examples are checked for being locked.\label{}}
   586 
   587 \footnote{End of \cite{ba-RK06} p....-- p....}
   588 %WN050519---RK->isac-SRD-----------------END---please don't remove this line
   589 
   590 
   591 
   592 
   593 
   594 
   595 \chapter{The dialog guide}
   596 
   597 %{\bf\SR A learner has a dialog state within the current session. \label{}}
   598 %{\bf\SR Each learner has a history of all sessions. \label{}}
   599 %{\bf\SR The history holds the condensed performance in calculations. \label{}}
   600 %{\bf\SR The history holds requests into the knowledge. \label{}\\}
   601 %\subparagraph{}
   602 %{\bf\SR \\}
   603 
   604 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.
   605 
   606 \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.
   607 {\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).
   608 {\bf\SR The dialogstate has the attributes \label{}}
   609 {\small
   610 \begin{tabbing}
   611 12345\=123\=123\=123\=123\=123\=123\=123\=12345123\=123\=\kill
   612 \>begin       \>\>\>\>\>\>\>\>\>timestamp of begin of session\\
   613 \>provided-end\>\>\>\>\>\>\>\>\>e.g. for examinations\\
   614 \>actual-end  \>\>\>\>\>\>\>\>\>empty, or timestamp of end of session\\
   615 \>group       \>\>\>\>\>\>\>\>\>the user has started the session with\\
   616 \>interactions, for each: \\
   617 \>\>timestamp\\
   618 \>\>label of example\>\>\>\>\>\>\>\>empty if \sisac{} entered via KB\\
   619 \>\>input\>\>\>\>\>\>\>\>tactic, formula, command or label in KB\\
   620 \>\>response\>\>\>\>\>\>\>\>??? of which part of system ???\\
   621 \>\>pattern\>\>\>\>\>\>\>\>of dialog\\
   622 \>\>\>activity\\
   623 \>\>\>stepwidt\\
   624 \>\>\>\dots TODO \dots\\
   625 \end{tabbing}}
   626 The use of these fields is shown by use-case UC TODO.
   627 
   628 
   629 \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.
   630 {\bf\SR The usermodel has the attributes\label{}}
   631 {\small
   632 \begin{tabbing}
   633 12345\=123\=123\=123\=123\=123\=123\=123\=12345123\=123\=\kill
   634 \>settings\\  
   635 \>\>patterns, for each:\>\>\>\>\>\>\>\>of dialog\\  
   636 \>\>\>activity\\
   637 \>\>\>stepwidt\\
   638 \>\>\>\dots TODO \dots\\
   639 \>history, for each session:\>\>\>\>\>\>\>\>\>\\  
   640 \>\>begin\_end\>\>\>\>\>\>\>\>2 timestamps\\  
   641 \>\>group\>\>\>\>\>\>\>\> the user has started the session with\\  
   642 \>\>kb\_touchs, for each:\>\>\>\>\>\>\>\>\\  
   643 \>\>\>label of KB item\\  
   644 \>\>\>timestamps\\
   645 \>\>examples, for each:\\  
   646 \>\>\>label of example\\  
   647 \>\>\>begin\_end\>\>\>\>\>\>\>2 timestamps\\  
   648 \>\>\>finished\>\>\>\>\>\>\>yes/no\\
   649 \>\>\>performance\>\>\>\>\>\>\>from example.evaluation.TODO and\\  
   650 \>\>\>\>\>\>\>\>\>\>from dialog.interactions\\  
   651 \end{tabbing}}
   652 The use of these fields is shown by use-case UC TODO.
   653 
   654 
   655 %\chapter{The mathematics engine}
   656 %Here only these requirements are recorded which have been newly raised when specifying the interfaces to the ME.
   657 %
   658 %{\bf\SR The structure of a calculation is given %by ??? for each formula
   659 %\label{}}
   660