bachelor thesis - final version
authorgkompach
Fri, 20 Apr 2007 07:39:00 +0200
changeset 3874f9fcc52c7c0a
parent 3873 7f52c751644b
child 3875 da7e10d5494d
bachelor thesis - final version
doc/GK/GK_bachelor_thesis.tex
doc/GK/bib/bib-GK.bib
doc/GK/fig/GK-sysdesign_seeheim.png
doc/GK/fig/GK-thy-browser.png
doc/GK/fig/GK-worksheet.png
     1.1 --- a/doc/GK/GK_bachelor_thesis.tex	Thu Apr 19 14:31:48 2007 +0200
     1.2 +++ b/doc/GK/GK_bachelor_thesis.tex	Fri Apr 20 07:39:00 2007 +0200
     1.3 @@ -97,10 +97,11 @@
     1.4  
     1.5  \section{About the \isac{}-Project}
     1.6  
     1.7 -The \sisac{}-project is a development and research project at the
     1.8 Institute for Software Technology (IST) of the University of Technology in Graz. 
     1.9 +The \sisac{}-project is a development and research project at the
    1.10 +Institute for Software Technology (IST) of the University of Technology in Graz. 
    1.11  It establishes a new technology for a novel kind of interactive and web-based transparent software for applied mathematics. The interactivity is given by the possibility to browse thru the knowledge base and the transparency is given by the ability of the user to see what knowledge is used and how the knowledge is used to solve a problem. So it is possible so solve problems, while \sisac{} can provide help and also additional information at every step of a calculation.
    1.12  
    1.13 -The kernel of \sisac{} is a math-engine which is based on the theorem prover Isabelle which is written in SML while the rest of \sisac{} is written in Java.
    1.14 +The kernel of \sisac{} is a math-engine which is based on the theorem prover Isabelle which is written in SML while the rest of \sisac{} is written in Java \cite{JPL}.
    1.15  
    1.16  % isac is interactive - that means that the user can require a lot of knowledge - lookup from the current context (solve phase: step in a calculation, specify phase: model instantiated)
    1.17  
    1.18 @@ -252,6 +253,8 @@
    1.19  
    1.20  {\bf\UR{The context comes exactly from the current position on the worksheet.}\label{}}
    1.21  
    1.22 +\pagebreak
    1.23 +
    1.24  {\bf\UR{$<$To Worksheet$>$ is available if:}\label{}}
    1.25  \begin{enumerate}
    1.26  \item $<$Context on$>$ is selected {\em and}
    1.27 @@ -260,7 +263,7 @@
    1.28  
    1.29  {\bf\UR{$<$To Worksheet$>$ is {\em not} available:}\label{}}
    1.30  \begin{enumerate}
    1.31 -\item if $<$Context off$>$ is selected, as described in UR.\ref{UR.GK-context-off-ref-worksheet-na}
    1.32 +\item if $<$Context off$>$ is selected
    1.33  \item if no worksheet is open
    1.34  \item if the worksheet on top is in the solve phase (and {\em no} calchead panel is open)
    1.35  \end{enumerate}
    1.36 @@ -300,7 +303,7 @@
    1.37  
    1.38  {\bf\UR{The context of a formula to the methods is given by the headline of the calc-head on the next higher level in the calculation.}\label{}}
    1.39  
    1.40 -{\bf\UR{The context of a method concerns the guard and the script.}\label{}} The script in the context shows the tactic which calculated the currents position; the guard is matched with the model of the problem at the current position.
    1.41 +{\bf\UR{The context of a method concerns the guard and the script.}\label{}} The script in the context shows the tactic which calculated the current position; the guard is matched with the model of the problem at the current position.
    1.42  
    1.43  {\bf\UR{$<$To Worksheet$>$ is available if:}\label{}}
    1.44  \begin{enumerate}
    1.45 @@ -310,7 +313,7 @@
    1.46  
    1.47  {\bf\UR{$<$To Worksheet$>$ is {\em not} available:}\label{}}
    1.48  \begin{enumerate}
    1.49 -\item if $<$Context off$>$ is selected, as described in UR.\ref{UR.GK-context-off-ref-worksheet-na}
    1.50 +\item if $<$Context off$>$ is selected
    1.51  \item if no worksheet is open
    1.52  \item if the worksheet on top is in the solve phase (and {\em no} calchead panel is open)
    1.53  \end{enumerate}
    1.54 @@ -342,12 +345,9 @@
    1.55  \label{fig.sysdesign_draft}
    1.56  \end{figure}
    1.57  
    1.58 -% KE-Store heisst im Glossary "KE-base"? Die Bedeutung muss auch im Text
    1.59 -% erklaert werden.
    1.60 -
    1.61 -As it was already discussed in UR.\ref{ur:4-data} the design took the designers of \sisac{} to 4 different browsers and guarantee a well designed abstraction every browser gets its own dialogue controller. Such a dialogue controller is one of the basic parts inside of \sisac{}. In the following paragraphs the term browsers will be used to describe the three knowledge browsers and the example browser. So these browsers with their corresponding dialogue controllers can be seen as one subsystem.
    1.62 +As it was already discussed in UR.3.1.1 \cite{isac:all} the design took the designers of \sisac{} to 4 different browsers and to guarantee a well designed abstraction every browser gets its own dialogue controller. Such a dialogue controller is one of the basic parts inside of \sisac{}. In the following paragraphs the term browsers will be used to describe the three knowledge browsers and the example browser. So these browsers with their corresponding dialogue controllers can be seen as one subsystem.
    1.63   
    1.64 -Mathematical knowledge is normally very static, but with \isac{} you can also make the current problem, method, theory or example available thru one of your browsers. So the basic design led to two subsystems which can be used separately, each with a presentation layer and a dialogue controller, but they can also access the actual context of each other.
    1.65 +Mathematical knowledge is normally very static, but with \isac{} you can also make the current problem, method, theory or example available thru one of your browsers. An other subsystem comprises the worksheets with their corresponding browsers. So the basic design led to two subsystems which can be used separately, each with a presentation layer and a dialogue controller, but they can also access the actual context of each other.
    1.66  
    1.67  The two subsystems interact in the following points:
    1.68  \begin{itemize}
    1.69 @@ -387,18 +387,18 @@
    1.70  
    1.71  %WN000705---summerterm06------------BEGIN---please don't remove this line
    1.72  \section{Browser Dialog}\label{WN-add-BrowserDialog}
    1.73 -The browser dialogs are responsible to process the informations coming from the user interactions on the knowledge browsers (see chap.\ref{WN-add-Knowledge-Browser}) and also for gathering information from the knowledge base or (indirectly over the worksheet dialog) from the math engine.
    1.74 +The browser dialogs are responsible to process the informations coming from the user interactions on the knowledge browsers (see chap.18 in \cite{isac:all}) and also for gathering information from the knowledge base or (indirectly over the worksheet dialog) from the math engine.
    1.75  
    1.76  There is no possibility for the learner to manipute the data presented by the knowledge browsers while using \sisac{}'s tutoring-system. The only way to change data from the KE-store is via \sisac{}'s authoring-system.
    1.77  There are two sources where the browser dialogs fetch their information:
    1.78  \begin{enumerate}
    1.79 -\item When Data has to be fetched from the KEStore (chap.\ref{ADD:ke-store}) it solely depends on the UserModel (the membership to a course, a session within a written examination, etc.) how much informationen if any can be retrieved form the KEStore.
    1.80 -\item Data from the MathEngine (chap.\ref{WN-add-Bridge}) which concerns a context to a certain calculation. The context gives a concrete interpretation of the meaning of an item of the KEStore. The user can choose if he wants to switch the context on or off. When the context is switched off only the static information from the KEStore will be presented.
    1.81 +\item When Data has to be fetched from the KEStore (chap.19 in \cite{isac:all}) it solely depends on the UserModel (the membership to a course, a session within a written examination, etc.) how much informationen if any can be retrieved from the KEStore.
    1.82 +\item Data from the MathEngine (chap.20 in \cite{isac:all}) which concerns a context to a certain calculation. The context gives a concrete interpretation of the meaning of an item of the KEStore. The user can choose if he wants to switch the context on or off. When the context is switched off only the static information from the KEStore will be presented.
    1.83  \end{enumerate}
    1.84  
    1.85 -In analogy to the worksheet dialog the browser dialog has a central role in \sisac{}'s architecture following the 'Seeheim Model' (see sect.\ref{AK:DESIGN:SYSTEM:DISTRIBUTE:dialog}).
    1.86 +In analogy to the worksheet dialog the browser dialog has a central role in \sisac{}'s architecture following the 'Seeheim Model' (see \cite{Seeheim}).
    1.87  
    1.88 -There is one dialog for one browser (see chap.\ref{WN-add-Knowledge-Browser}). But the functionality of the four browsers is more different than their layout shows. Thus there is a more sophisticated (subclass-)relation between the dialogs than betwenn the browsers. The dialog can be
    1.89 +There is one dialog for one browser (see chap.18 in \cite{isac:all}). But the functionality of the four browsers is more different than their layout shows. Thus there is a more sophisticated (subclass-)relation between the dialogs than between the browsers. The dialog can be
    1.90  \begin{itemize}
    1.91  \item an example browser dialog, which is responsible for starting the execution of examples
    1.92  \item a knowledge browser dialog, which is responsible for displaying the respective parts of the math knowledge; thus there is a
    1.93 @@ -412,15 +412,9 @@
    1.94  
    1.95  \section{Context}
    1.96  
    1.97 -To get the relation between the active formula from the active worksheet the worksheet dialog has to be contacted. There we will get the current position in the calculation tree. Then the math engine will be asked to retrieve a context to us to show it in a browser.
    1.98 +To get the relation between the active formula from the active worksheet the worksheet dialog has to be contacted. The current position in the calculation tree has to be retrieved from the worksheet dialog. Then the math engine will be demanded to retrieve a context of that current position on the worksheet.
    1.99  
   1.100 -To get a context-related view there are two components build together. one component is the context from the math engine and the second is the static part coming from the knowlege base. to merge them at the browser dialog the context objects need to store the ke\_store\_key and to show the correct item in the hierachy also the hierarcxhy key is stored. The math engine will give us the contexts is sml-form and then they will we parsed and java-objects will be build to send them to the knowlegdebrowserdialogs.
   1.101 - 
   1.102 -To generate the context to the active formula dynamically 
   1.103 -is coming from the math engine over the bridge to the browser dialog. It is
   1.104 -then forwarded to the respective browser if the feature is activated.
   1.105 -According to SR.3.2.6, the content displayed in the knowledge browsers can be enriched with context dependent information. A context refers to the active formula. The reader may have a look at figure 4.1 while reading the following explanation.
   1.106 -The worksheetdialog is the module which knows the active formula. It queries the math engine over the bridge for a specific context (a context to theories, problems or methods) for this formula. The math engine responses on this query with the XML representation of the desired context. The context is parsed, which leads to a Context object (either ContextTheory, ContextProblem or ContextMethod) carrying the information in attributes. This Context object is passed to the corresponding browserdialog. The browserdialog remembers the context as current context and forwards it to the browser.
   1.107 +To get a context-related view there are two components build together. One component is the context from the math engine and the second is the static part coming from the knowledge base. To merge them at the browsers the context objects need to store an identifier to the KE-store (KE-store-key) and to show the correct item in the hierarchy also an other key (hierarchy key) has to be stored inside of such a context. The math engine will give us the context in the xml-format and then the file is parsed and java-objects are build. As there are different context-types for every kind of knowledge (contexts to theories, problems and methods) will be sent to the right browser-dialog. The dialog has to decide, if the context has to be sent to the corresponding browser, which depends on the decision of the user, who can switch the context on or off.
   1.108  
   1.109  \section{Browser Dialogs and Worksheet Dialog}
   1.110  There are four browser dialogs for one session, while there may be $0\dots n$ worksheet dialogs (according to the number of worksheets opened). The relations between the two kinds of dialogs are discussed in \ref{WN-add-BDialog-WSDialog}.
   1.111 @@ -462,7 +456,7 @@
   1.112  
   1.113  \chapter{Software Design and  Implementation}\label{WN-sdd-BrowserDialogs}
   1.114  
   1.115 -The figure Fig.\ref{fig.RK-browserdialoges} p.\pageref{fig.RK-browserdialoges} shows the class diagram for the browser dialoges.
   1.116 +The figure Fig.\ref{fig.RK-browserdialoges} p.\pageref{fig.RK-browserdialoges} shows the class diagram for the browser dialogs which will be described in this chapter.
   1.117  
   1.118  \begin{figure}[htb]
   1.119  \centerline{\includegraphics[width=\textwidth, keepaspectratio=true]{fig/RK-browserdialoges}}
   1.120 @@ -470,7 +464,8 @@
   1.121  \label{fig.RK-browserdialoges}
   1.122  \end{figure}
   1.123  
   1.124 -Each \verb'BrowserDialog' is responsible for the communication to the \verb'WSDialog's via the \verb'ContextProvider'-interface and also for the communication to the Browsers over Java RMI (Remote Method Invocation). Each \verb'BrowserDialog' gets information from the Browser by triggered \verb'UserAction's. In the other direction \verb'UIAction's are sent. Thes class has the following constructor:
   1.125 +\begin{sloppypar}
   1.126 +Each \verb'BrowserDialog' is responsible for the communication to the \verb'WSDialog's via the \verb'ContextProvider'-interface and also for the communication to the Browsers over Java RMI (Remote Method Invocation \cite{Pitt:2001:JRR}). Each \verb'BrowserDialog' gets information from the Browser by triggered \verb'UserAction's. In the other direction \verb'UIAction's are sent. Thes class has the following constructor:
   1.127  
   1.128  \verb'BrowserDialog(Session session)': This class must have the \verb'session_' locally stored to provide access to the active \verb'WorksheetDialog' for this \verb'BrowserDialog'. The \verb'Session' stores the \verb'WSDialogManager' and the \verb'WSDialogManager' itself stores the active \verb'WorksheetDialog'. The \verb'UserLanguage' is also read out from the \verb'session_' and stored locally.
   1.129  
   1.130 @@ -500,15 +495,15 @@
   1.131  
   1.132  \item{\verb'void drawButtonContextOn()': This method causes the Context On button to be shown. If the button is already shown, nothing happens. Otherwise the Button for Context Off is removed and the Button for Context On is shown.}
   1.133  
   1.134 -\item{\verb'abstract void drawButtons()': This method has to be implemented by the drived classes because every browser has a different set of buttons.}
   1.135 +\item{\verb'abstract void drawButtons()': This method has to be implemented by the derived classes because every browser has a different set of buttons.}
   1.136  
   1.137  \item{\verb'HierarchyKey getHierarchyKey(String xml_content)': To get the correct \verb'HierarchyKey' from the \verb'xml_content' string the '\verb'HierarchyKeyParser' will be used and the \verb'HierarchyKey' will be returned.}
   1.138  
   1.139 -\item{\verb'void interpretLink(URL url)': This method responsible to interpret a link coming from the \verb'BrowserFrame'. Normal links fetch html-files which are shown in the correspondig browser (The first three letters in the filename show which browser is responsible for the link). For specific links coming from the ExampleBrowser which include \verb'#COMMAND_EXEC_EXAMPLE#' a the method \verb'openWorksheetFromExample(String kestore_key)' is called. The \verb'kestore_key' is parsed from the \verb'URL'.}
   1.140 +\item{\verb'void interpretLink(URL url)': This method responsible to interpret a link coming from the \verb'BrowserFrame'. Normal links fetch html-files which are shown in the correspondig browser (The first three letters in the filename show which browser is responsible for the link). For specific links coming from the ExampleBrowser which include \verb'#COMMAND_EXEC_EXAMPLE#' the method \verb'openWorksheetFromExample(String kestore_key)' is called. The \verb'kestore_key' is parsed from the \verb'URL'.}
   1.141  
   1.142 -\item{\verb'Vector<String> loadContent(String session, String type, String filename)': The content is loaded from the \verb'KEStore' by using the \verb'callKEStore' method whith encapsulates the communication via \verb'XML-RPC'. The content is stored as the first element. The \verb'Vector<String>' is used to get better structured information if an erros occurs.}
   1.143 +\item{\verb'Vector loadContent(String session, String type,' \verb'String filename)': The content is loaded from the \verb'KEStore' by using the \verb'callKEStore' method which encapsulates the communication via \verb'XML-RPC' \cite{oai:CiteSeerPSU:328175}. The content is stored as the first element. The \verb'Vector' is used to get better structured information if an erros occurs.}
   1.144  
   1.145 -\item{\verb'Hierarchy loadHierarchy(ContextType type)': The \verb'Hierarchy' is loaded from the \verb'KEStore' by using the \verb'callKEStore'.  If the type is unknown, \verb'null' will be returned.}
   1.146 +\item{\verb'Hierarchy loadHierarchy(ContextType type)': The \verb'Hierarchy' is loaded from the \verb'KEStore' by using the \verb'callKEStore' method.  If the type is unknown, \verb'null' will be returned.}
   1.147  
   1.148  \item{\verb'void sendContextToBrowser(Context context)': This method sends a context to the browser but first it has do get the \verb'HierarchyKey' and store it into the \verb'context' object. The sent context is the new \verb'current_context_'.}
   1.149  
   1.150 @@ -520,7 +515,7 @@
   1.151  
   1.152  \item{\verb'void sendLinkToMiniBrowser(String link, int user_status )': Calls the \verb'doUIAction' method of the \verb'BrowserFrame' with an \verb'UIActionOnLink' but first the \verb'user_status' has to be checked for the privileges of the user to decide how much information will be provided.}
   1.153  
   1.154 -\item{\verb'void setCurrentContextToWorksheet()': This method takes the \verb'current_context_' and calls the active Worksheet to set the \verb'current_context_' as the new context for the worksheet. The <ToWorksheet> button is only visible if there is an active Worksheet and if the calcHead is opened.}
   1.155 +\item{\verb'void setCurrentContextToWorksheet()': This method takes the \verb'current_context_' and calls the active Worksheet to set the \verb'current_context_' as the new context for the worksheet. The \verb'ToWorksheet' button is only visible if there is an active Worksheet and if the calcHead is opened.}
   1.156  
   1.157  \item{\verb'void switchToMatchOff()': This Method sends an \verb'UIAction' to instruct the \verb'BrowserDialog' to generate the Context off button (and also remove the Context on button first).}
   1.158  
   1.159 @@ -532,9 +527,9 @@
   1.160  
   1.161  \begin{itemize}
   1.162  
   1.163 -\item{\verb'private Vector<String> callKEStore(String function, Vector<String> parameters)': This method encapsulates the communication with \verb'KEStore'. This communictaion is done via \verb'XML-RPC'.}
   1.164 +\item{\verb'private Vector callKEStore(String function,' \verb'Vector parameters)': This method encapsulates the communication with \verb'KEStore'. This communictaion is done via \verb'XML-RPC'.}
   1.165  
   1.166 -\item{\verb'private Vector<String> filterContent(String session, Vector<String> result)': Inside this method a \verb'DOM' is build from the \verb'String' stored in the result \verb'Vector'. Then some Node of the \verb'DOM' can be filtered depending on the privileges of the user.}
   1.167 +\item{\verb'private Vector filterContent(String session, Vector result)': Inside this method a \verb'DOM' is build from the \verb'String' stored in the result \verb'Vector'. Then some Node of the \verb'DOM' can be filtered depending on the privileges of the user.}
   1.168  
   1.169  \end{itemize}
   1.170  
   1.171 @@ -574,7 +569,7 @@
   1.172  
   1.173  \section{XML-Parser Digester}
   1.174  
   1.175 -To parse the xml-files coming from the math-engine the digester component from the jakarta project is used. The following subsections describe the usage of the digester inside the java code.
   1.176 +To parse the xml-files coming from the math-engine the digester component from the Jakarta Project\footnote{from \url{http://jakarta.apache.org/commons/digester/}} is used. The following subsections describe the usage of the digester inside the java code.
   1.177  
   1.178  \subsection{How the Digester works}
   1.179  
   1.180 @@ -606,6 +601,24 @@
   1.181  digester_.addSetNext("*/GUH", "setKEStoreKey");
   1.182  \end{verbatim}
   1.183  
   1.184 +\end{sloppypar}
   1.185 +
   1.186 +\section{Examples of the Implementation}
   1.187 +
   1.188 +Finally, to get an idea how the implementation works, some screenshots may be very helpful. As you can see in figure Fig.\ref{fig.GK-worksheet} there is an open worksheet and the current position on the worksheet is marked. Now the user takes a specific view on the theory context of that position. When the user opens the theory browser, as far as it is not open yet, he will see not only the static information but also, red marked, the context to his calculation (see Figure Fig.\ref{fig.GK-thy-browser}).
   1.189 +
   1.190 +\begin{figure}[htb]
   1.191 +\centerline{\includegraphics[width=\textwidth, keepaspectratio=true]{fig/GK-worksheet}}
   1.192 +\caption{Example for an open worksheet}
   1.193 +\label{fig.GK-worksheet}
   1.194 +\end{figure}
   1.195 +
   1.196 +\begin{figure}[htb]
   1.197 +\centerline{\includegraphics[width=\textwidth, keepaspectratio=true]{fig/GK-thy-browser}}
   1.198 +\caption{Example for Context Information in a Theory Browser}
   1.199 +\label{fig.GK-thy-browser}
   1.200 +\end{figure}
   1.201 +
   1.202  % SOFTWARE DESIGN AND IMPLEMENTATION - END
   1.203  
   1.204  % CONCLUSION - BEGIN
   1.205 @@ -618,12 +631,16 @@
   1.206  
   1.207  \section{Further Development}
   1.208  
   1.209 -\subsection{The Implementation of a User Model Filter}
   1.210 +\subsection{The Implementation of a User Model}
   1.211  
   1.212 -The user of \sisac{} is very often overwhelmed by the mass and the complexity of data. Very often the information provided to the user does not match the standard of knowledge of the user. One of the next developments in \sisac{} will be the implementation of such a User Model which stores not only the privileges of a user but also the improvements with his knowledge. As one of the following steps a filter will be implemented by using this user model to filter the informations provided to the user.
   1.213 +The user of \sisac{} is very often overwhelmed by the mass and the complexity of data. Very often the information provided to the user does not match the standard of knowledge of the user. One of the next developments in \sisac{} will be the implementation of such a User Model which stores not only the privileges of a user but also the improvements with his knowledge.
   1.214 +
   1.215 +\subsection{The Implementation of a Content Filter}
   1.216 +
   1.217 +After the development of a User Model, a content filter has to be implemented by using this user model to filter the informations provided to the user. There will be different methods to define filters for user groups or especially for specific users.
   1.218  
   1.219  % CONCLUSION - END
   1.220  
   1.221 -\bibliography{bib/isac,bib/from-theses,bib-GK}
   1.222 +\bibliography{bib/bib-GK}
   1.223  
   1.224  \end{document}
   1.225 \ No newline at end of file
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/doc/GK/bib/bib-GK.bib	Fri Apr 20 07:39:00 2007 +0200
     2.3 @@ -0,0 +1,149 @@
     2.4 +@article{thiery92,
     2.5 + author = {Laurent Thery and Yves Bertot and Gilles Kahn},
     2.6 + title = {Real theorem provers deserve real user-interfaces},
     2.7 + journal = {SIGSOFT Softw. Eng. Notes},
     2.8 + volume = {17},
     2.9 + number = {5},
    2.10 + year = {1992},
    2.11 + issn = {0163-5948},
    2.12 + pages = {120--129},
    2.13 + doi = {http://doi.acm.org/10.1145/142882.143760},
    2.14 + publisher = {ACM Press},
    2.15 + address = {New York, NY, USA},
    2.16 + }
    2.17 +
    2.18 +@Book{Nipkow-Paulson-Wenzel:2002,
    2.19 +  author	= {Tobias Nipkow and Lawrence C. Paulson and Markus Wenzel},
    2.20 +  title		= {Isabelle/HOL --- A Proof Assistant for Higher-Order Logic},
    2.21 +  publisher	= {Springer},
    2.22 +  series	= {LNCS},
    2.23 +  volume	= 2283,
    2.24 +  year		= 2002}
    2.25 +  
    2.26 +@Book{Pitt:2001:JRR,
    2.27 +  author =  "Esmond Pitt and Kathy McNiff",
    2.28 +  title = "{Java.RMI}: the remote method invocation guide",
    2.29 +  publisher = "Pearson Education",
    2.30 +  address = "Harlow, England",
    2.31 +  pages = "xxxi + 284",
    2.32 +  year =  "2001",
    2.33 +  ISBN =  "0-201-70043-3",
    2.34 +  isbn-13 = "978-0-201-70043-5",
    2.35 +  LCCN =  "QA76.73.J38 P58 2001",
    2.36 +  bibdate = "Mon May 6 06:26:30 MDT 2002",
    2.37 +  acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
    2.38 +     of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
    2.39 +     City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
    2.40 +     801 581 4148, e-mail: \path|beebe@math.utah.edu|,
    2.41 +     \path|beebe@acm.org|, \path|beebe@computer.org|
    2.42 +     (Internet), URL:
    2.43 +     \path|http://www.math.utah.edu/~beebe/|",
    2.44 +  keywords =  "application software -- development; electronic data
    2.45 +     processing -- distributed processing; Java (computer
    2.46 +     program language); RMI (computer architecture)",
    2.47 +}
    2.48 +
    2.49 +@book{JPL,
    2.50 + author = {Ken Arnold and James Gosling},
    2.51 + title = {The Java programming language (2nd ed.)},
    2.52 + year = {1998},
    2.53 + isbn = {0-201-31006-6},
    2.54 + source = {ACM member price $34.15, order no. 701973},
    2.55 + publisher = {ACM Press/Addison-Wesley Publishing Co.},
    2.56 + address = {New York, NY, USA},
    2.57 + }
    2.58 +
    2.59 +@InProceedings{aspinall:proof-gen,
    2.60 +  author = 	 {Aspinall, David },
    2.61 +  title = 	 {Proof General: A Generic Tool for Proof Development},
    2.62 +  booktitle = 	 {Tools and Algorithms for the Construction and Analysis of Systems},
    2.63 +  number = 	 {1785},
    2.64 +  series = 	 {LNCS},
    2.65 +  year = 	 {2000},
    2.66 +  organization = {TACAS},
    2.67 +  pnote={},status={cite diss},
    2.68 +  source={http://zermelo.dcs.ed.ac.uk/~proofgen/index.phtml?page=doc},
    2.69 +  location={}  
    2.70 +}
    2.71 +
    2.72 +@MastersThesis{AK04:thesis,
    2.73 +  author = 	 {Krempler, Alan},
    2.74 +  title = 	 {Architectural Design for Integrating an Interactive Dialogguide into a Mathematical Tutoring System},
    2.75 +  school = 	 {University of Technology, Institute for Softwaretechnology},
    2.76 +  address = 	 {Graz, Austria},
    2.77 +  note = 	 {$\,$\\http://www.ist.tugraz.at/projects/isac/publ/da-krempler.pdf},
    2.78 +  month = 	 {March},
    2.79 +  year = 	 {2005}
    2.80 +}
    2.81 +
    2.82 +@Misc{oai:CiteSeerPSU:328175,
    2.83 +  title = "{XML}-{RPC} Agents for Distributed Scientific
    2.84 +     Computing",
    2.85 +  author =  "Van Engelen and Kyle Gallivan and Gunjan Gupta and
    2.86 +     George Cybenko",
    2.87 +  year =  "2000",
    2.88 +  month = aug # "~29",
    2.89 +  abstract =  "This paper presents the use of XML-RPC to achieve data
    2.90 +     interoperability between scientific applications in a
    2.91 +     distributed environment. Remote procedure calling with
    2.92 +     XML-RPC is programming language independent and
    2.93 +     operates across different platforms. We have designed
    2.94 +     and implemented tools for the automatic generation of
    2.95 +     XMLRPC stub routines and XML serialization converters
    2.96 +     to support application data interoperability in
    2.97 +     componentbased problem-solving environments for
    2.98 +     distributed scientific computing. Locating and indexing
    2.99 +     XML-RPC services is performed using mobile agents. The
   2.100 +     agents serve to setup problem-solving sessions and to
   2.101 +     connect remote applications. 1 Introduction The
   2.102 +     integration of large-scale scientific models, such as
   2.103 +     coupled ocean-atmosphere models, is a tremendous
   2.104 +     programming task. The degree of sophistication of a
   2.105 +     model implementation has to be high in terms of data
   2.106 +     structure compatibility and algorithmic selection to
   2.107 +     support an efficient exchange of simulation resu...",
   2.108 +  citeseer-references = "oai:CiteSeerPSU:410284; oai:CiteSeerPSU:6312",
   2.109 +  annote =  "Van Engelen (Department of Computer Science; School of
   2.110 +     Computational Science and Engineering; Florida State
   2.111 +     University; Tallahassee , FL 32306-4530); Kyle Gallivan
   2.112 +     (Department of Computer Science; School of
   2.113 +     Computational Science and Engineering; Florida State
   2.114 +     University; Tallahassee , FL 32306-4530); Gunjan Gupta
   2.115 +     (Department of Computer Science; School of
   2.116 +     Computational Science and Engineering; Florida State
   2.117 +     University; Tallahassee , FL 32306-4530); George
   2.118 +     Cybenko (Thayer School of Engineering; Dartmouth
   2.119 +     College; Hanover , NH 03755-8000);",
   2.120 +  bibsource = "OAI-PMH server at cs1.ist.psu.edu",
   2.121 +  language =  "en",
   2.122 +  oai =   "oai:CiteSeerPSU:328175",
   2.123 +  rights =  "unrestricted",
   2.124 +  URL =   "http://citeseer.ist.psu.edu/328175.html;
   2.125 +     http://www.cs.fsu.edu/~engelen/imacs2000.ps",
   2.126 +}
   2.127 +
   2.128 +@PhdThesis{wn:diss,
   2.129 +  author = 	 {Neuper, Walther A.},
   2.130 +  title = 	 {Reactive User-Guidance by an Autonomous Engine Doing High-School Math},
   2.131 +  school = 	 {IICM - Inst. f. Softwaretechnology},
   2.132 +  year = 	 {2001},
   2.133 +  address = 	 {Technical University, A-8010 Graz},
   2.134 +  note = 	{$\,$\\http://www.ist.tugraz.at/projects/isac/publ/wn-diss.ps.gz}
   2.135 +}
   2.136 +
   2.137 +@proceedings{Seeheim,
   2.138 +  editor =       "Pfaff, G.",
   2.139 +  title =        "Seeheim Workshop on User Interface Management Systems",
   2.140 +  year =         "1985",
   2.141 +  publisher =    "Springer",
   2.142 +  category =     "General",
   2.143 +}
   2.144 +
   2.145 +@TechReport{isac:all,
   2.146 +  author = 	 {\isac{}- Team},
   2.147 +  title = 	 {\isac{} -- User Requirements Document, Software Requirements Document, Architectural Design Document, Software Design Document, Use Cases, Test Cases},
   2.148 +  institution =  {Institute for Softwaretechnology, 
   2.149 +                  University of Technology},
   2.150 +  year = 	 {2002},
   2.151 +  note = 	 {$\,$\\http://www.ist.tugraz.at/projects/isac/publ/appendices.ps.gz}
   2.152 +}
     3.1 Binary file doc/GK/fig/GK-sysdesign_seeheim.png has changed
     4.1 Binary file doc/GK/fig/GK-thy-browser.png has changed
     5.1 Binary file doc/GK/fig/GK-worksheet.png has changed