*** empty log message ***
authormmoschit
Sun, 10 Feb 2008 17:06:17 +0100
changeset 3885c991ddd0f2e7
parent 3884 b527764a257e
child 3886 f9f441977e5c
*** empty log message ***
doc/MM/ISAC_AuthoringTools.tex
     1.1 --- a/doc/MM/ISAC_AuthoringTools.tex	Thu Jan 17 19:54:16 2008 +0100
     1.2 +++ b/doc/MM/ISAC_AuthoringTools.tex	Sun Feb 10 17:06:17 2008 +0100
     1.3 @@ -1,10 +1,11 @@
     1.4  \chapter{Einleitung}
     1.5  \label{chap:Einleitung}
     1.6 +
     1.7  Der Mathematikunterricht in Schulen wird grunds\"atzlich anhand von Lehrb\"uchern durchgef\"uhrt. Die darin vorkommenden Beispiele werden je nach Schulstufe ohne technische Hilfsmittel oder mit Hilfe eines Taschenrechners gel\"ost. Um den Sch\"ulern einen besseren Einblick in L\"osungsverfahren verschiedener Beispiele zu bieten, soll das \sisac{} Tutoring System im Schulbetrieb eingesetzt werden. Dem Sch\"uler wird nun erm\"oglicht, Rechenbeispiele automatisiert zu l\"osen und die dabei durchgef\"uhrten Schritte einzeln zu betrachen.
     1.8  
     1.9 -Das \sisac{} Tutoring System beinhaltet nur eine kleine Sammlung von Beispielen zur Veranschaulichung. Um den Einsatz im Unterricht effizient und auch sinnvoll zu gestalten ist es nun notwendig den Sch\"ulern Beispiele aus ihrem im Mathematikunterricht verwendeten B\"uchern mit \sisac{} zu pr\"asentieren. A priori ist es aber nicht m\"oglich, alle Beispiele aus diversen Schulb\"uchern im System zu integrieren. Daher muss, bevor das System in einer Schulklasse eingesetzt wird, der jeweilige Content generiert werden. Dazu wird das \sisac{} Authoring System verwendet. Content besteht entweder nur aus der aktuellen Seite des Mathematikbuches die gerade bearbeitet wird, oder auch aus mehreren Kapiteln.
    1.10 +Das \sisac{} Tutoring System beinhaltet nur eine kleine Sammlung an Beispielen zur Veranschaulichung. Um den Einsatz im Unterricht effizient und auch sinnvoll zu gestalten ist es nun notwendig den Sch\"ulern Beispiele aus ihrem im Mathematikunterricht verwendeten B\"uchern mit \sisac{} zu pr\"asentieren. A priori ist es aber nicht m\"oglich, alle Beispiele aus diversen Schulb\"uchern im System zu integrieren. Daher muss, bevor das System in einer Schulklasse eingesetzt wird, der jeweilige Content generiert werden. Dazu wird das \sisac{} Authoring System verwendet. Content besteht entweder nur aus der aktuellen Seite des Mathematikbuches die gerade bearbeitet wird, oder auch aus mehreren Kapiteln.
    1.11  
    1.12 -Diese Arbeit sollte m\"oglichst einfach, rasch und effizient durchf\"uhrbar sein. Es ist nicht Sinn der Sache, dass die Contentgenerierung \"uberproportional viel an Zeit beansprucht. Daher entspringt auch die Notwendigkeit, Werkzeuge bereitzustellen, die diese Arbeit vereinfachen und automatisieren. Im n\"achsten Kapitel wird der Aufbau einer typischen Content Seite beschrieben und auch kurz auf die verschiedenen Variationsm\"oglichkeiten eingegangen. Es stellt keinenfalls den Anspruch auf Vollst\"andigkeit, denn nicht alle Mathematikb\"ucher folgen diesem Schema, und Ausnahmen sind durchaus m\"oglich. Diese m\"ussen dann aber gesondert behandelt werden und sind nicht Teil dieses Dokuments. Danach wird der Prototyp des im Rahmen dieser Arbeit entwickelte Tools vorgestellt, welcher die Erstellung von Content erheblich vereinfacht und automatisiert. Dies soll erste Aufschl\"usse dar\"uber geben, welche Requirements f\"ur ein Content Generierungs Tool erforderlich sind. Abschliessend werden die Ergebnisse zusammengefasst, offene Fragen behandelt und kurz erl\"autert, welche Faktoren bei der Entwicklung eines Vollst\"andigen Tools zu ber\"ucksichtigen sind.
    1.13 +Diese Arbeit sollte m\"oglichst einfach, rasch und effizient durchf\"uhrbar sein. Es ist nicht zielf\"uhrend, wenn die Contentgenerierung \"uberproportional viel Zeit beansprucht. Daher die Notwendigkeit, Werkzeuge bereitzustellen, die diese Arbeit vereinfachen und automatisieren. Im n\"achsten Kapitel wird der Aufbau einer typischen Content Seite beschrieben und auch kurz auf die verschiedenen Variationsm\"oglichkeiten eingegangen. Es stellt nicht den Anspruch auf Vollst\"andigkeit, da nicht alle Mathematikb\"ucher diesem Schema folgen. Diese m\"ussen gesondert behandelt werden und sind nicht Teil dieses Dokuments. Danach wird der im Rahmen dieser Arbeit entwickelte Prototyp, welcher die Erstellung von Content erheblich vereinfacht und automatisiert, vorgestellt. Dies soll erste Aufschl\"usse dar\"uber geben, welche Requirements f\"ur ein Content Generierungs Tool erforderlich sind. Abschliessend werden die Ergebnisse zusammengefasst, offene Fragen behandelt und erl\"autert, welche Faktoren bei der Entwicklung eines Vollst\"andigen Tools zu ber\"ucksichtigen sind.
    1.14  
    1.15  \chapter{Content}
    1.16  \label{chap:content}
    1.17 @@ -13,10 +14,10 @@
    1.18  
    1.19  \subsection{Mathematikwissen: Theorien, Probleme, Methoden}
    1.20  
    1.21 -\sisac{} sieht eine Struktur f\"ur das Mathematikwissen vor, die auf Einfachheit und Allgemeinheit zielt. Jedes Detail von Mathematikwissen, das zum L\"osen einer Rechnung notwendig ist, soll aus der speiziellen Rechnung f\"ur einen Lernenden zug\"anglich sein. Alles Mathematikwissen l\"asst sich in folgende dreigliedrige Struktur einpassen:
    1.22 +\sisac{} sieht eine Struktur f\"ur das Mathematikwissen vor, die auf Einfachheit und Allgemeinheit zielt. Jedes Detail von Mathematikwissen, das zum L\"osen einer Rechnung notwendig ist, soll aus der speziellen Rechnung f\"ur einen Lernenden zug\"anglich sein. Alles Mathematikwissen l\"asst sich in folgende dreigliedrige Struktur einpassen:
    1.23  \begin{enumerate}
    1.24  \item {\bf Theorien} beschreiben den {\em deduktiven Aspekt} der Mathematik: Die mathematischen Objekte werden definiert und Axiome zu Theorien zusammengefasst, aus denen Eigenschaften der Objekte definiert bewiesen werden.
    1.25 -\item {\bf Probleme} beschreiben den {\em anwendungs-orientierten Aspekt} der Mathematik: Angewandthe Mathematik widmet sich dem L\"osen von Problemen aus verschiedensten Anwendungsbereichen. Solche Probleme werden maschinell l\"osbar, wenn sie formal spezifiziert sind.
    1.26 +\item {\bf Probleme} beschreiben den {\em anwendungs-orientierten Aspekt} der Mathematik: Angewandte Mathematik widmet sich dem L\"osen von Problemen aus verschiedensten Anwendungsbereichen. Solche Probleme werden maschinell l\"osbar, wenn sie formal spezifiziert sind.
    1.27  \item {\bf Methoden} beschreiben den {\em algorithmischen Aspekt} der Mathematik: Ein Problem hat eine oder mehrere Methoden, die zur L\"osung f\"uhren. Der Benutzer kann passende Methoden interaktiv ausw\"ahlen.
    1.28  \end{enumerate}
    1.29  
    1.30 @@ -28,16 +29,9 @@
    1.31  
    1.32  \section{Aufbau einer Beispiel-Sammlung}
    1.33  \label{sec:Aufbau_Content}
    1.34 -Eine typische Seite eines Mathematikbuches, welche im \sisac{} Tutoring System bereitgestellt werden soll, ist in Abbildung \ref{fig:exp_page} zu sehen.
    1.35 +Eine typische Seite eines Mathematikbuches, welche im \sisac{} Tutoring System bereitgestellt werden soll, ist in Abbildung \ref{fig:scan_page} auf S. \pageref{fig:scan_page} zu sehen.
    1.36  
    1.37 -\begin{figure}[htbp]
    1.38 -  \centering
    1.39 -  \includegraphics[width=0.6\textwidth]{myfig/MM-exp_Etc_LebMat-34-N142-b.png}
    1.40 -  \caption{Beispiel Seite aus einem Mathematikbuch}
    1.41 -  \label{fig:exp_page}
    1.42 -\end{figure}
    1.43 -
    1.44 -Eine Seite kann unterteilt werden in Kopfzeile und Hauptteil. Die Kopfzeile enth\"alt die Seitennummer, den Kapiteltitel und den Seitentitel. Der Hauptteil besteht aus Erl\"auterungen und durchgerechneten Beispielen, aus Bildern und den eigentlichen Beispielen. Diese sind fortlaufend mit Nummern durchnummeriert und jedes Beispiel besitzt Unterbeispiele, welche durch Kleinbuchstaben gekennzeichnet sind. Wie schon eingangs erw\"ahnt, k\"onnen diverse B\"ucher von diesem Aufbau abweichen. Dieser Arbeit liegt jedoch dieses spezielle Schema des Buches ``Lebendige Mathematik'' zu Grunde und Spezialf\"alle werden nicht behandelt und sind Thema m\"oglicher weiterf\"uhrender Arbeiten (Kapitel \ref{chap:Ausblick}).
    1.45 +Eine Seite kann unterteilt werden in Kopfzeile und Hauptteil. Die Kopfzeile enth\"alt die Seitennummer, den Kapiteltitel und den Seitentitel. Der Hauptteil besteht aus Erl\"auterungen und durchgerechneten Beispielen, aus Bildern und den eigentlichen Beispielen. Diese sind fortlaufend mit Nummern durchnummeriert und jedes Beispiel besitzt Unterbeispiele, welche durch Kleinbuchstaben gekennzeichnet sind. Wie schon eingangs erw\"ahnt, k\"onnen diverse B\"ucher von diesem Aufbau abweichen. Dieser Arbeit liegt jedoch dieses spezielle Schema des Buches ``Lebendige Mathematik'' \cite{lebMat} zu Grunde und Spezialf\"alle werden nicht behandelt und sind Thema m\"oglicher weiterf\"uhrender Arbeiten (Kapitel \ref{chap:Ausblick}).
    1.46  
    1.47  \section{Abbildung im \isac{} Tutoring System}
    1.48  \label{sec:Abbildung_Content}
    1.49 @@ -54,12 +48,11 @@
    1.50  
    1.51  \begin{figure}[htbp]
    1.52    \centering
    1.53 -  \includegraphics[width=0.6\textwidth]{myfig/MM-exp_browser.png}
    1.54 +  \includegraphics[width=0.6\textwidth]{myfig/MM-exp_browser.eps}
    1.55    \caption{Example Browser im \sisac{} System}
    1.56    \label{fig:exp_browser}
    1.57  \end{figure}
    1.58  
    1.59 -
    1.60  \chapter{Content Generator}
    1.61  \label{chap:Content_Generator}
    1.62  Um die Erstellung von Content zu erleichtern, wurde ein Prototyp eines Content Generators erstellt. Dieser vereinfacht die Abbildung von Lehrbuchinhalten in das \sisac{} Tutoring System. Wie schon eingangs erw\"ahnt, ist dieser Prototyp sehr an die Struktur des Mathematikbuches ``Lebendige Mathematik'' angelehnt.
    1.63 @@ -84,8 +77,8 @@
    1.64  
    1.65  \begin{figure}[htbp]
    1.66    \centering
    1.67 -  \includegraphics[width=0.6\textwidth]{myfig/MM-exp_Etc_LebMat-34-N142-b.png}
    1.68 -  \caption{Ausgew\"ahlte Bereiche die eingescannt werden}
    1.69 +  \includegraphics[width=0.6\textwidth]{myfig/MM-book_page.eps}
    1.70 +  \caption{Beispiel Seite aus dem Buch und ausgew\"ahlte Bereiche die eingescannt werden}
    1.71    \label{fig:scan_page}
    1.72  \end{figure}
    1.73  
    1.74 @@ -96,9 +89,9 @@
    1.75   \item[Qualit\"at] Foto
    1.76   \end{description}
    1.77  
    1.78 -Alle Scans m\"ussen in dem \texttt{\$EXP\_DATA\_IMG\_DIR\$} 
    1.79 -\footnote{WN: bitte beim ersten Auftreten auf die Definition mittels Fussnote verweisen, oder die Definition der Directories an den Anfang stellen !}
    1.80 -Verzeichnis gespeichert werden.
    1.81 +Alle Scans m\"ussen in dem \texttt{\$GEN\_IMG\_DIR\$} Verzeichnis
    1.82 +\footnote{Eine \"Ubersicht \"uber die Verzeichnisse findet sich im Appendix\ref{MM-install} auf S.\pageref{MM-install}}
    1.83 + gespeichert werden.
    1.84  
    1.85  
    1.86  \section{Ausw\"ahlen der Rechenbeispiele}
    1.87 @@ -139,15 +132,29 @@
    1.88   \item[Titel] Kapitel- und Seitentitel sind optional, die Seitennummer muss jedoch angegeben werden. Danach folgen die Beispiele f\"ur die ganze Seite.
    1.89   \item[Beispiele] Ein Beispiel umfasst ein oder mehrere Unterbeispiele, wie in Abbildung \ref{fig:exp_beispiel} zu sehen ist. 
    1.90  Wie schon vorher erw\"ahnt, m\"ussen die eingescannten Grafiken dargestellt werden.
    1.91 - \item[Gescannte Elemente] Dem Content Generator muss nun mitgeteilt werden, an welcher Position der Seite die eingescannte Grafik plaziert werden soll. Dies wurde so gel\"ost, indem eine eingescanntes Grafik immer einem Beispiel zugeordnet wird. Nun kann man definieren, ob es vor oder nach dem Beispiel plaziert werden soll, vergleiche dazu Abbildung \ref{fig:exp_scanLocation}. 
    1.92 -Wird \texttt{locateBeforeExp} auf \texttt{true} gesetzt, wird die Grafik vor dem Beispiel angezeigt, bei \texttt{false} danach. Die eingescannte Grafik wird mit einem Pfad \texttt{ImagePath}, dem Dateinamen \texttt{ImageName} und optionaler Breite \texttt{ImageWidth} und H\"ohe \texttt{ImageHeight} definiert. Soll einem Beispiel kein Grafik zugeordnet werden, bleiben diese Elemente leer.
    1.93 +
    1.94 +\begin{figure}[htbp]
    1.95 +  \centering
    1.96 +  \includegraphics[width=0.6\textwidth]{myfig/MM-book_example.eps}
    1.97 +  \caption{Typisches Beispiel mit Unterbeispielen}
    1.98 +  \label{fig:exp_beispiel}
    1.99 +\end{figure}
   1.100 +
   1.101 + \item[Gescannte Elemente] Dem Content Generator muss nun mitgeteilt werden, an welcher Position der Seite die eingescannte Grafik plaziert werden soll. Dies wurde so gel\"ost, indem eine eingescanntes Grafik immer einem Beispiel zugeordnet wird. Nun kann man definieren, ob die Grafik vor oder nach dem Beispiel plaziert werden soll. Wird \texttt{locateBeforeExp} auf \texttt{true} gesetzt, wird die Grafik direkt oberhalb des Beispieles angezeigt, bei \texttt{false} darunter. Die eingescannte Grafik wird mit einem Pfad \texttt{ImagePath}, dem Dateinamen \texttt{ImageName} und optionaler Breite \texttt{ImageWidth} und H\"ohe \texttt{ImageHeight} definiert. Soll einem Beispiel keine Grafik zugeordnet werden, bleiben diese Elemente leer.
   1.102   \item[Beispielnummer] Das Beispiel selbst muss eine Nummer \texttt{Nr} erhalten. 
   1.103 - \item[Spalten] Jedes Beispiel umfasst ein oder mehrere Unterbeispiele, welche in einer bestimmten Anzahl von Spalten angezeigt werden. Mit dem Element \texttt{Spalten} kann definiert werden, wieviele Unterbeispiele pro Zeile angeordnet werden sollen. Dies wird in Abbildung \ref{fig:exp_spalten} verdeutlicht.
   1.104 + \item[Spalten] Jedes Beispiel umfasst ein oder mehrere Unterbeispiele, welche in einer bestimmten Anzahl von Spalten angezeigt werden. Mit dem Element \texttt{Spalten} kann definiert werden, wieviele Unterbeispiele pro Zeile angeordnet werden sollen. Dies wird in Abbildung \ref{fig:exp_spalten} verdeutlicht, in welcher Beispiele in 3 bzw. 2 Spalten angeordnet sind. Diese Entscheidung bezieht sich rein aufs Layout und h\"angt im Wesentlichen nur von der L\"ange der Rechenbeispiele ab und soll so gew\"ahlt werden dass alle Beispiele ohne horizontales Scrollen sichtbar sind.
   1.105 +
   1.106 +\begin{figure}[htbp]
   1.107 +  \centering
   1.108 +  \includegraphics[width=0.6\textwidth]{myfig/MM-exp_spalten.eps}
   1.109 +  \caption{Konfigurierbare variable Spaltenanzahl}
   1.110 +  \label{fig:exp_spalten}
   1.111 +\end{figure}
   1.112 +
   1.113   \item[Unterbeispiele] Ein Unterbeispiel wird mit dem Element \texttt{Term} definiert. Dort gibt man das eigentlich Rechenbeispiel an. Die Unterbeispiele werden dann im \sisac{} Tutoring System automatisch mit fortlaufenden Kleinbuchstaben bezeichnet.
   1.114   \item[Proben] Manchmal sollen bei Rechenbeispielen auch Proben durchgef\"uhrt werden. Im derzeitigen System k\"onnen Proben nur f\"ur eine gesammte Beispielnummer (also alle Unterbeispiele gemeinsam) definiert werden und die Substitutionswerte sind f\"ur alle die Gleichen. Entweder werden allen oder gar keinen Unterbeispielen Proben zugeordnet. Dies geschieht mit dem Element \texttt{hasProbe}, welches im Fall von vorliegenden Proben den Wert \texttt{true} bekommt, ansonsten leer bleibt oder auf \texttt{false} gesetzt wird. Liegen Proben vor, m\"ussen f\"ur alle Elemente \texttt{Term} in der gleichen Reihenfolge Elemente \texttt{ProbeTerm} erstellt werden. Diese enthalten das Ergebnis des jeweiligen durchgerechneten Unterbeispieles, da in der Probe die Angabe mit dem Ergebnis eines Beispiels gleichgesetzt und die Unbekannten mit Zahlenwerten ersetzt werden. Diese Zahlenwerte, mit denen die Probe durchgef\"uhrt werden sollen, werden durch Beistriche getrennt im Element \texttt{SubsValues} angegeben.
   1.115 - \item[Theorie] Damit das \sisac{} Tutoring System ein Beispiel durchrechnen kann, muss es eine spezielle Theorie verwenden. Derzeit sind nur zwei Theorien implementiert. Solange ein Beispiel keinen Bruchstrich enth\"alt, wird \texttt{Theorie} auf \texttt{poly} gesetzt, ansonsten auf \texttt{rational}.
   1.116 - \item[Probleme und Methoden] Die Attribute \texttt{Problem} und \texttt{Method} sind derzeit nicht in Verwendung. Jedoch muss jedes Beispiel eine Problem- und Methodendefintion haben. Derzeit ist diese im Sourcecode des Prototyps integriert und muss daher vor der Contentgenerierung eventuell f\"ur jede Seite manuell angepasst werden.
   1.117 -%WN ... versteh' ich nicht ... reden wir darueber !
   1.118 + \item[Theorie] Damit das \sisac{} Tutoring System ein Beispiel durchrechnen kann, muss es eine spezielle Theorie verwenden. Im Prototypen sind zwei Theorien, \texttt{poly} und \texttt{rational} implementiert. %Solange ein Beispiel keinen Bruchstrich enth\"alt, wird \texttt{Theorie} auf \texttt{poly} gesetzt, ansonsten auf \texttt{rational}.
   1.119 + \item[Probleme und Methoden] Die Attribute \texttt{Problem} und \texttt{Method} sind derzeit nicht in Verwendung. Sie sind im Code des Generators implementiert. %Jedoch muss jedes Beispiel eine Problem- und Methodendefintion haben. Derzeit ist diese im Sourcecode des Prototyps integriert und muss daher vor der Contentgenerierung eventuell f\"ur jede Seite manuell angepasst werden.
   1.120  \end{description}
   1.121    
   1.122  Nachdem f\"ur jede Seite eine XML Konfigurationsdatei erstellt wurde, kann man zum n\"achsten Schritt \"ubergehen.
   1.123 @@ -155,57 +162,64 @@
   1.124  \section{Content Generator konfigurieren und starten}
   1.125  \label{sec:Content_Konfiguration}
   1.126  
   1.127 -Nun ist es notwendig, dem Content Generator mitzuteilen, welche Konfigurationsdateien f\"ur die Content Generierung verwendet werden sollen. Dazu werden f\"ur jede XML Konfigurationsdatei folgende Zeilen in die \texttt{main} Methode von \texttt{GeneratorMain.java} eingef\"ugt, wobei \texttt{$<$Dateiname$>$} mit dem eigentlichen Namen der XML Konfigurationsdatei ersetzt wird.
   1.128 +Die Konfiguration des Content Generators erfolgt mit Hilfe eines Property Files. Darin werden wichtige Einstellungen vorgenommen, bevor der Generator gestartet wird. Folgende Parameter m\"ussen definiert werden:
   1.129  
   1.130 -\begin{verbatim}
   1.131 -XMLParser parser = new XMLParser();
   1.132 -Page page = parser.parsePage("<Dateiname>");
   1.133 -page.generatePageFile();
   1.134 -page.generateExampleFiles();
   1.135 -page.clearAll(); 
   1.136 -\end{verbatim}
   1.137 +\begin{description}
   1.138 + \item[GEN\_INPUT\_DIR] definiert das Verzeichnis, in dem die XML Konfigurationsdateien enthalten sind.
   1.139 + 
   1.140 + \item[XML\_CONFIGURATION\_FILES\_STR] definiert die zu verwendenten XML Konfigurationsdateien. Diese m\"ussen durch ein Leerzeichen getrennt und ohne Pfadangabe angegeben werden (zum Beispiel: page\_33.xml 
   1.141 +page\_35.xml page\_53.xml)
   1.142  
   1.143 -Danach wird \texttt{GeneratorMain.java} mit 2 Argumenten ausgef\"uhrt. 
   1.144 + \item[GEN\_OUTPUT\_DIR] definiert das Verzeichnis, in welchem die generierten Dateien gespeichert werden sollen. 
   1.145 + 
   1.146 + \item[FILE\_PREFIX] gibt an, welche Dateinamen f\"ur die generierten Dateien verwendet werden soll. Die ersten vier Zeichen des Dateinamens f\"ur Beispiele m\"ussen {\tt exp\_} sein. Weiterhin ist es ratsam, einen sprechenden Namen zu w\"ahlen. Bew\"ahrt hat sich, den Namen entsprechend der Anordnung in der Men\"ustruktur zu w\"ahlen. Zum Beispiel wurde f\"ur das Buch ``Lebendige Mathematik'' \textit{exp\_Etc\_LebMatC-S} verwendet, wobei ``exp'' f\"ur Examples steht, ``Etc'' dass es in der Hierachie unter Etc angesiedelt ist, und ``LebMatC'' bezeichnet den Namen des Buches und dass es sich bei diesen Dateien um die Computerversion handelt (mehr dazu in K\"urze). ``S'' steht f\"ur Seite, und danach werden vom Content Generator die Seiten- und Beispielnummern automatisch angef\"ugt. Die generierte Datei f\"ur das Beispiel 257a auf Seite 53 w\"urde dann folgenden Namen erhalten: \textit{exp\_Etc\_LebMatC-S53-N257a.xml}.
   1.147  
   1.148 -\paragraph{Das erste Argument} gibt an, welche Dateinamen f\"ur die generierten Dateien verwendet werden soll. 
   1.149 + \item[IS\_LEHRVERSION] definiert, ob die Lehrversion oder Computerversion erstellt werden soll. \texttt{true} erzeugt hierbei die Lehrversion, und \texttt{false} die Computerversion. Der Unterschied zwischen Lehr- und Computerversion ist die Methoden- und Problemwahl bei der Erstellung des Contents f\"ur das \sisac{} Tutoring System. Die Methoden und Probleme sind im Prototyp noch im Sourcecode enthalten und m\"ussen manuell f\"ur die Contentgenerierung angepasst werden.
   1.150  
   1.151 -Die ersten vier Zeichen des Dateinamens f\"ur Beispiele m\"ussen {\tt exp\_} sein. Weiterhin ist es ratsam, einen sprechenden Namen zu w\"ahlen. Bew\"ahrt hat sich, den Namen entsprechend der Anordnung in der Men\"ustruktur zu w\"ahlen. 
   1.152 + \item[GENERATED\_HIERARCHY\_FILE\_NAME] definiert den Namen f\"ur die XML Datei, welche die Hierarchiedaten f\"ur den neu erstellten Content enth\"alt.
   1.153  
   1.154 -Zum Beispiel wurde f\"ur das Buch ``Lebendige Mathematik'' \textit{exp\_Etc\_LebMatC-S} verwendet, wobei ``exp'' f\"ur Examples steht, ``Etc'' dass es in der Hierachie unter Etc angesiedelt ist, und ``LebMatC'' bezeichnet den Namen des Buches und dass es sich bei diesen Dateien um die Computerversion handelt (mehr dazu in K\"urze). ``S'' steht f\"ur Seite, und danach werden vom Content Generator die Seiten- und Beispielnummern automatisch angef\"ugt. Die generierte Datei f\"ur das Beispiel 257a auf Seite 53 w\"urde dann folgenden Namen erhalten: \textit{exp\_Etc\_LebMatC-S53-N257a.xml}.
   1.155 + \end{description}
   1.156  
   1.157 -// TODO
   1.158 -//soll auch erkl\"art werden, welche Files erzeugt werden und wie deren Struktur aussieht???\\
   1.159 -WN: kurze Erklarung (ev. nur ein Beispiel zu \textit{exp\_Etc\_LebMatC-S53-N257a.xml}) waere guenstig als Erfolgsbestaetigung fuer den Benutzer ;-)
   1.160 -//
   1.161 +\section{Generierter Content}
   1.162 +\label{sec:Generierter_Content}
   1.163  
   1.164 -\paragraph{Das zweite Argument} definiert, ob die Lehrversion oder Computerversion erstellt werden soll. \texttt{true} erzeugt hierbei die Lehrversion, und \texttt{false} die Computerversion. Der Unterschied zwischen Lehr- und Computerversion ist die Methoden- und Problemwahl bei der Erstellung des Contents f\"ur das \sisac{} Tutoring System. Die Methoden und Probleme sind im Prototyp noch im Sourcecode enthalten und m\"ussen manuell f\"ur die Contentgenerierung angepasst werden.
   1.165 +Nach erfolgreicher Ausf\"uhrung des Content Generators sind die erzeugten Dateien im \texttt{\$OUTPUT\_DIRECTORY\$} zu finden. So w\"urden f\"ur das vorhin verwendete Beispiel folgende Dateien erzeugt werden:
   1.166 +\begin{enumerate}
   1.167 +\item exp\_Etc\_LebMatC-S53.xml
   1.168 +\item exp\_Etc\_LebMatC-S53.html
   1.169 +\item exp\_Etc\_LebMatC-S53-N257.xml 
   1.170 +\item exp\_Etc\_LebMatC-S53-N257a.xml
   1.171 +\item exp\_hierarchy\_allPages.xml
   1.172 +\end{enumerate}
   1.173 +
   1.174 +1.) enth\"alt alle Beispiele f\"ur diese Seite. 2.) wird erzeugt um schon vorab, bevor die Daten in \sisac{} importiert werden, eine HTML Version zur Betrachtung und Fehlerkontrolle zur Verf\"ugung hat. 3.) F\"ur jedes Beispiel und wird eine XML Datei erzeugt. 4.) Genauso f\"ur jedes Unterbeispiel. 5.) Die notwendigen XML Hierarchiedaten werden in dieser Datei gespeichert.
   1.175  
   1.176  \section{Hierarchie anpassen und Dateien kopieren}
   1.177 -Nachdem nun der Content Generator die Metadaten aus den XML Konfigurationsdateien \"ubersetzt hat, m\"ussen diese noch in das \sisac{} Tutoring System eingebunden werden. Dazu m\"ussen zuerst die neuen Seiten in die Hierarchie des \sisac{} Systems eingebunden werden. Die Hierarchy des \texttt{Example browser} ist in Abbildung \ref{fig:exp_hierarchy} zu sehen. Diese wird aus der XML Datei \texttt{exp\_hierarchy.xml} erzeugt, die sich im \sisac-System im Verzeichnis ... befindet. TODO.WN: Verzeichnis-Definitionen zusammenstellen. 
   1.178 +Nachdem nun der Content Generator die Metadaten aus den XML Konfigurationsdateien \"ubersetzt hat, m\"ussen diese noch in das \sisac{} Tutoring System eingebunden werden. Dazu m\"ussen zuerst die neuen Seiten in die Hierarchie des \sisac{} Systems eingebunden werden. Die Hierarchy des \texttt{Example browser} ist in Abbildung \ref{fig:exp_hierarchy} zu sehen. Diese wird aus der XML Datei \texttt{\$EXP\_HIERARCHY\$} erzeugt, die sich im \sisac-System im Verzeichnis \texttt{\$EXP\_BASE\_DIR\$} befindet \footnote{Eine \"Ubersicht \"uber die Verzeichnisse findet sich im Appendix\ref{MM-install} auf S.\pageref{MM-install}}.
   1.179  
   1.180  Um nun die neuen Seiten in dieser Hierarchie sichtbar zu machen, muss diese Datei ge\"andert werden. Die Hierarchie ist relativ einfach aufgebaut, und alle Men\"upunkte sind dem Hauptpunkt \textit{Examples} untergeordnet. Wie in der Abbildung zu sehen ist, kann jeder Men\"upunkt weitere Untermen\"upunkte enthalten. So sind die Seiten mit den Beispielen des Buches ``Lebendige Mathematik'' in der Hierarchie folgendermassen angeordnet: \textit{Examples $>$ Etc $>$ Leb. Mathematik $>$ Computerversion}. Eine Seite enth\"alt nun nur mehr die einzelnen Beispiele, welche keine Untermen\"upunkte mehr besitzen.
   1.181  
   1.182  \begin{figure}[htbp]
   1.183    \centering
   1.184 -  \includegraphics[width=0.9\textwidth]{myfig/MM-exp_hierarchy.png}
   1.185 +  \includegraphics[width=0.9\textwidth]{myfig/MM-exp_hierarchy.eps}
   1.186    \caption{Hierarchie im Example Browser}
   1.187    \label{fig:exp_hierarchy}
   1.188  \end{figure}
   1.189  
   1.190 -Die Anordnung der Seiten in der Hierarchie wird im XML File \texttt{exp\_hierarchy.xml} definiert. Der Content Generator erstellt automatisch ein XML File \texttt{exp\_hierarchy\_allPages.xml}, welche die Hierarchy der neuen Seiten im XML Format abbildet. Die Struktur der Hierarchie folgt der oben genannten, d.h. jede Seite repr\"asentiert einen Men\"upunkt und jedes Beispiel einen dazugeh\"orenden Untermen\"upunkt. Von der Entscheidung, wo in der Hierarchy die neuen Seiten aufscheinen sollen, ist es abh\"angig an welcher Stelle diese XML Daten in die Datei \texttt{exp\_hierarchy.xml} eingef\"ugt werden m\"ussen.
   1.191 +Die Anordnung der Seiten in der Hierarchie wird im XML File \texttt{\$EXP\_HIERARCHY\$} definiert. Der Content Generator erstellt automatisch ein XML File \texttt{\$GEN\_EXP\_HIERARCHY\$}, welche die Hierarchy der neuen Seiten im XML Format abbildet. Die Struktur der Hierarchie folgt der oben genannten, d.h. jede Seite repr\"asentiert einen Men\"upunkt und jedes Beispiel einen dazugeh\"orenden Untermen\"upunkt. Von der Entscheidung, wo in der Hierarchy die neuen Seiten aufscheinen sollen, ist es abh\"angig an welcher Stelle diese XML Daten in die Datei \texttt{\$EXP\_HIERARCHY\$} eingef\"ugt werden m\"ussen. Die XML Struktur eines Men\"upunkt ist in Listing \ref{lst:Content_XMLmenuItem} zu sehen.
   1.192  
   1.193 -Ein Men\"upunkt sieht immer folgendermassen aus:
   1.194 -\begin{verbatim}
   1.195 +\lstset{language=ISACXML}
   1.196 +\begin{lstlisting}[caption=XML Struktur eines Men\"upunktes, label=lst:Content_XMLmenuItem]
   1.197  <NODE>
   1.198    <ID> </ID>
   1.199    <CONTENTREF> </CONTENTREF>
   1.200  </NODE>
   1.201 -\end{verbatim}
   1.202 +\end{lstlisting}
   1.203  
   1.204 -\texttt{ID} beinhaltet den Namen, der in der Hierarchy aufscheint, und \texttt{CONTENTREF} den Namen der XML Datei, deren Inhalt im Browser angezeigt wird. Dies ist eine rekursive Struktur, d.h. jeder Men\"upunkt kann wieder Untermen\"upunkte mit der gleichen Struktur beinhalten. F\"ur die neu erstellten Seiten muss ein neuer Men\"upunkt an der gew\"unschten Stelle, wo sie in der Hierarchie aufscheinen sollen, erstellt werden. Danach m\"ussen die Daten von \texttt{exp\_hierarchy\_allPages.xml} vor \texttt{$<$/NODE$>$} hineinkopiert werden. Wie dies am Beispiel des Buches ``Lebendige Mathematik'' aussieht ist im folgenden Listing zu erkennen. Wenn man die XML Struktur mit der Hierarchiestruktur des \texttt{Example browser} in Abbildung \ref{fig:exp_hierarchy} vergleicht, ist leicht der Zusammenhang zu erkennen.
   1.205 +\texttt{ID} beinhaltet den Namen, der in der Hierarchy aufscheint, und \texttt{CONTENTREF} den Namen der XML Datei, deren Inhalt im Browser angezeigt wird. Dies ist eine rekursive Struktur, d.h. jeder Men\"upunkt kann wieder Untermen\"upunkte mit der gleichen Struktur beinhalten. F\"ur die neu erstellten Seiten muss ein neuer Men\"upunkt an der gew\"unschten Stelle, wo sie in der Hierarchie aufscheinen sollen, erstellt werden. Danach m\"ussen die Daten von \texttt{\$GEN\_EXP\_HIERARCHY\$} vor \texttt{$<$/NODE$>$} hineinkopiert werden. Wie dies am Beispiel des Buches ``Lebendige Mathematik'' aussieht ist im Listing \ref{lst:Content_XMLmenu} zu sehen. Wenn man die XML Struktur mit der Hierarchiestruktur des \texttt{Example browser} in Abbildung \ref{fig:exp_hierarchy} vergleicht, ist leicht der Zusammenhang zu erkennen.
   1.206  
   1.207 -\lstset{language=XML}
   1.208 -\begin{lstlisting}[]
   1.209 +\lstset{language=ISACXML}
   1.210 +\begin{lstlisting}[caption=XML Struktur der Hierarchie am Beispiel des Buches "Lebendige Matehmatik", label=lst:Content_XMLmenu]
   1.211  <NODE>
   1.212    <ID> Etc </ID>
   1.213    <CONTENTREF> exp_Etc</CONTENTREF>
   1.214 @@ -226,22 +240,22 @@
   1.215  	<ID> Computerversion </ID>
   1.216  	<CONTENTREF> exp_Etc_LebMatC </CONTENTREF>
   1.217  
   1.218 -	// ==== hier beginnen die Daten aus exp_hierarchy_AllPages.xml
   1.219 +	// ==== hier beginnen die XML Daten aus $EXP_HIERARCHY$
   1.220  	<NODE>
   1.221  	  <ID>Seite 33</ID>  
   1.222  	  <CONTENTREF> exp_Etc_LebMatC-S33 </CONTENTREF>
   1.223  	  ...
   1.224    	</NODE>
   1.225 -	// ==== hier enden die Daten aus exp_hierarchy_AllPages.xml
   1.226 +	// ==== hier enden die XML Daten aus $EXP_HIERARCHY$
   1.227        </NODE>
   1.228    </NODE>
   1.229  </NODE>
   1.230  \end{lstlisting}
   1.231  
   1.232 -Hier wurde ein neuer Men\"upunkt \textit{Leb. Mathematik} erzeugt. Dieser beinhaltet einen weiteren Untermen\"upunkt \textit{Lehrversion} und \textit{Computerversion}. In letzteren wurde die XML Hierarchie Spezifikation aus \texttt{exp\_hierarchy\_allPages.xml} hineinkopiert.
   1.233 +Hier wurde ein neuer Men\"upunkt \textit{Leb. Mathematik} erzeugt. Dieser beinhaltet einen weiteren Untermen\"upunkt \textit{Lehrversion} und \textit{Computerversion}. In letzteren wurde die XML Hierarchie Spezifikation aus \texttt{\$EXP\_HIERARCHY\$} hineinkopiert.
   1.234  
   1.235  \section{Kopieren von Dateien}
   1.236 -Vor dem letzten Schritt m\"ussen noch alle XML Dateien , die der Content Generator erzeugt hat und die eingescannten Grafiken in das Datenverzeichnis  (\texttt{\$EXP\_DATA\_DIR\$}) des \sisac{} Systems kopiert werden.
   1.237 +Vor dem letzten Schritt m\"ussen noch alle XML Dateien, die der Content Generator im Verzeichnis \texttt{\$GEN\_OUTPUT\_DIR\$} erzeugt hat in das Datenverzeichnis (\texttt{\$EXP\_BASE\_DIR\$}) des \sisac{} Systems kopiert werden. Weiters m\"ussen noch alle eingescannten Grafiken vom Verzeichnis \texttt{\$GEN\_IMG\_DIR\$} in das Verzeichnis \texttt{\$KBASE\_EXP\_IMG\_DIR\$} kopiert werden \footnote{Eine \"Ubersicht \"uber die Verzeichnisse findet sich im Appendix\ref{MM-install} auf S.\pageref{MM-install}}.
   1.238  
   1.239  \section{Starten der HTML Generierung}
   1.240  Abschliessend wird das Tool \texttt{GenHTML} ausgef\"uhrt, welche die neuen Seiten schliesslich ins \sisac{} Tutoring System integriert. Nach Neustart des \sisac{} Tutoring Systems sind alle neuen Beispiele im \texttt{Example browser} sichtbar und k\"onnen durchgerechnet werden.
   1.241 @@ -255,7 +269,7 @@
   1.242  
   1.243  In diesem Kapitel wird eine kurze Zusammenfassung und danach ein Ausblick f\"ur die Entwicklung eines universeller einsetzbaren Tools gegeben.
   1.244  
   1.245 -\section{Die Wert des Prototypen f\"ur das \isac-Projekt}
   1.246 +\section{Der Wert des Prototypen f\"ur das \isac-Projekt}
   1.247  Der Prototyp ist sehr stark an das Buch ``Lebendige Mathematik'' angelehnt. Es wurde keine Requirements Analyse durchgef\"uhrt, sondern er ist schrittweise mit den aufgetauchten Anforderungen gewachsen. Daher ist er nur sinnvoll f\"ur die Content Generierung von Seiten aus diesem Buch einsetzbar, und auch hierbei gibt es Einschr\"ankungen. Es hat sich gezeigt, dass das Einscannen von Grafiken einen sehr hohen Wiedererkennungswert erzielt und den Content im \sisac{} Tutoring System anschaulicher macht. Die Beschreibung der Seiten im XML Format, welche vom Content Generator als Input verwendet werden, hat sich ebenfalls sehr bew\"ahrt. Jedoch muss dieses Format weitaus flexibler gestaltet werden, um Variationen von Mathematikb\"uchern und Beispielen ansich abzudecken. Dies erfordert eine sehr genaue und weitblickende Analyse- und Definitionsphase. Die Grenzen des Prototyps wurden aufgezeigt, als es notwendig wurde unterschiedliche Probleme und Methoden f\"ur einzelne Beispiele zu definieren. Weiters ist es nur sehr rudiment\"ar m\"oglich, Proben f\"ur Beispiele einzubinden.
   1.248  
   1.249  Bei der Entwicklung eines universellen Tools m\"ussen einige Punkte ber\"ucksichtigt werden. Einige Requirements zur Struktur des \sisac-Wissensbasis und zur Rolle von Knowledge-Autoren wurden ganz zu Beginn \"uberlegt \cite{AG:thesis} und bed\"urfen nun weiterer Bearbeitung. Hilfreich dabei ist, dass nun ein Prototyp zum Authoring bereitsteht, und das Tutoringsystem sowohl Praxiserfahrungen als auch Bedarf nach Einsatz erzeugt hat.
   1.250 @@ -265,12 +279,162 @@
   1.251  \begin{description}
   1.252   \item[Grafiken] Die Platzierung der Grafiken zu definieren, indem sie an ein konkretes Beispiel gebunden werden, hat sich als sehr robust bew\"ahrt. Jedoch muss evaluiert werden, ob dieser Ansatz variabel genug ist um alle vorkommenden F\"alle abzudecken. Derzeit ist es nur m\"oglich, Grafiken ober- oder unterhalb von Beispielen zu plazieren, jedoch nicht in gleicher H\"ohe in einer angrenzenden Spalte.
   1.253  \item[Spalten] Der erste Ansatz, eine vordefinierte Spaltenanzahl pro Seite zu haben, war bald zu restriktiv. Es ist notwendig, pro Beispiel definieren zu k\"onnen, in wie vielen Spalten die Unterbeispiele angeordnet sein sollen.
   1.254 -\item[XML Definition] Das XML Format zur Beschreibung einer Seite ist sicher der richtige Ansatz und sollte weiter verfolgt werden. Jedoch ist es notwendig, zuerst eine ausf\"uhrliche Analyse der abzubildenden Seiten durchzuf\"uhren. Es gibt eine Vielzahl von Mathematikb\"uchern und jedes hat bestimmte Eigenheiten die ber\"ucksichtig werden sollten. Deswegen ist es wichtig, ein m\"oglichst allgemeines Bild zu bekommen und Spezialf\"alle und Ausnahmen zu erkennen. In diesem Prototyp wurde vorausgesetzt, dass alle Beispiele eine bestimmte Anzahl von Unterbeispielen besitzen, welche mit fortlaufenden Kleinbuchstaben bezeichnet werden. Weiters ist noch zu \"uberlegen, ob die generierten XML Files einfach aus Strings oder aus XML Objekten generiert werden. Derzeit wird einfach ein String erstellt, und dieser in ein File geschrieben (einfachste L\"osung). Ein im Code erstelltes XML Objekt hat den Vorteil, dass man es auf Korrektheit \"uberpr\"ufen (durch vergleichen mit einem Schema) und durch genormte Manipulationsschritte ver\"andern kann.
   1.255 +\item[XML Definition] Das XML Format zur Beschreibung einer Seite ist sicher der richtige Ansatz und sollte weiter verfolgt werden. Jedoch ist es notwendig, zuerst eine ausf\"uhrliche Analyse der abzubildenden Seiten durchzuf\"uhren und dann zuerst ein sehr genau durchdachtes XML Schema zu entwerfen welches die XML Struktur der Konfigurationsdatei definiert \cite{xml}. Es gibt eine Vielzahl von Mathematikb\"uchern und jedes hat bestimmte Eigenheiten die ber\"ucksichtig werden sollten. Deswegen ist es wichtig, ein m\"oglichst allgemeines Bild zu bekommen und Spezialf\"alle und Ausnahmen zu erkennen. In diesem Prototyp wurde vorausgesetzt, dass alle Beispiele eine bestimmte Anzahl von Unterbeispielen besitzen, welche mit fortlaufenden Kleinbuchstaben bezeichnet werden. Weiters ist noch zu \"uberlegen, ob die generierten XML Files einfach aus Strings oder aus XML Objekten generiert werden. Derzeit wird einfach ein String erstellt, und dieser in ein File geschrieben (einfachste L\"osung). Ein im Code erstelltes XML Objekt hat den Vorteil, dass man es auf Korrektheit \"uberpr\"ufen (durch vergleichen mit einem Schema) und durch genormte Manipulationsschritte ver\"andern kann.
   1.256  \item[Proben] Es kann sicher vorkommen, dass nicht alle Unterbeispiele eine Probe besitzen, und diese auch nicht alle mit den gleichen Substitutionswerten durchgef\"uhrt werden. Es muss eine flexible Definition von Proben f\"ur einzelne Beispiele gefunden werden.
   1.257  \item[Probleme und Methoden] Wie sich im Laufe der Entwicklung des Protoyps gezeigt hat, ist die Problem- und Methodendefintion nicht einheitlich und unterscheidet sich eventuell von Beispiel zu Beispiel. Derzeit ist diese Definition im Sourcecode integriert, was eine sehr undynamische L\"osung darstellt. Dies hat den Grund, dass es sich hierbei nur um einen in kurzer Zeit entwickelten Prototyp handelt. Es ist auf jeden Fall erforderlich, dass jedes Beispiel eine eigene Problem- und Methodendefinition besitzt. Da aber einige Beispiele die gleichen Definition haben werden, kann diese repetitive Arbeit verhindert werden, indem eine Menge von Problem- und Methodendefinitionen in einer Lookup-Tabelle oder einem speziellen XML File definiert werden. Jedes Beispiel m\"usste dann nur mehr auf die gew\"unschte Problem- und Methodendefinition in der Lookup-Tabelle referenzieren. Dies vereinfacht \"Anderungen und vermeidet sehr oft wiederholte Definitionen in den XML Konfigurationsdateien.
   1.258  \item[Computer- vs. Lehrversion] Zur Zeit gibt es die Unterscheidung zwischen der Computer- und Lehrversion. Sie unterscheiden sich dadurch, dass verschiedene Probleme- und Methoden verwendet werden, und dass der Angabetext bei der Lehrversion nicht Englisch, sonder Deutsch ist (z.B. \textit{Vereinfache} anstatt \textit{Simplify}). Diese Unterschiede sind derzeit auch nur im Sourcecode eingebettet, m\"ussen jedoch entweder in globalen Variablen, Konstanten oder \"uberhaupt extern definiert werden. Die Frage, ob es in Zukunft noch mehrere verschiedenen Versionen geben wird, ist auch zu stellen.
   1.259  \item[Hierarchie] Wie oben erw\"ahnt, muss jede neu erstellte Seite in die XML Hierarchie Datei eingebunden werden, um in der Men\"ustruktur des \texttt{Example browsers} aufzuscheinen. Dieser Schritt ist derzeit noch sehr umst\"andlich, werden doch die XML-Hierarchiedaten f\"ur die neu erstellten Seiten statisch im Code erzeugt und m\"ussen dann manuell an die richtige Stelle der XML-Hierarchie Datei kopiert werden. Ziel soll es sein, dass man nur definieren muss wie und wo die neuen Seiten in die Hierarchie eingebunden werden sollen und das Tool die XML-Hierarchie Datei automatisch anpasst, und somit dieser manuelle Schritt wegf\"allt.
   1.260 -\item[MathML] Einer der entscheidenden Schritte von \sisac{} Richtung breiter Anwendbarkeit wird die 2-dimensionale Darstellung von Formeln sein. Eine Weiterentwicklung des Prototypen f\"ur das Authoring wird also auf die Integration von MatML \cite{WN} in alle Autorentools Bedacht nehmen.
   1.261 +\item[MathML] Einer der entscheidenden Schritte von \sisac{} Richtung breiter Anwendbarkeit wird die 2-dimensionale Darstellung von Formeln sein. Eine Weiterentwicklung des Prototypen f\"ur das Authoring wird also auf die Integration von MathML \cite{mathML} in alle Autorentools Bedacht nehmen.
   1.262   \end{description}
   1.263  
   1.264 -\end{document}
   1.265 +\begin{appendix}
   1.266 +\chapter{Installationshinweise}\label{MM-install}
   1.267 +Dies ist die {\tt README} Datei im {\tt cvs} im Verzeichnis {\tt CVSROOT/isacaut/doc}:
   1.268 +\begin{verbatim}*************************************************
   1.269 +Usage of Content Generator
   1.270 +*************************************************
   1.271 +
   1.272 +
   1.273 +--------------------------------------------------
   1.274 +1) Contents
   1.275 +2) Paths
   1.276 +3) Installation
   1.277 +4) Usage
   1.278 +--------------------------------------------------
   1.279 +
   1.280 +
   1.281 +1) Content
   1.282 +
   1.283 +  Java source:
   1.284 +  ==================================================
   1.285 +  (Main file)
   1.286 +  src/java/exp/GeneratorMain.java
   1.287 +  src/java/exp/Page.java
   1.288 +  src/java/exp/XMLParser.java
   1.289 +  src/java/exp/Examples.java
   1.290 +  src/java/exp/Image.java
   1.291 +
   1.292 +  (Property file for running the application)
   1.293 +  src/java/properties/Generator.properties
   1.294 +
   1.295 +  (Property reader)
   1.296 +  src/java/utils/GeneratorPaths.java
   1.297 +
   1.298 +  Documentation:
   1.299 +  ================================================== 
   1.300 +  (this readme file)
   1.301 +  doc/README 
   1.302 +
   1.303 +  (Template for the xml configuration file)
   1.304 +  doc/TEMPLATE_lb_page_xx.xml
   1.305 +
   1.306 +
   1.307 +2) Paths and File links
   1.308 +  $ISAC_BASE_DIR$: 
   1.309 +   base directory of ISAC installation
   1.310 +   (e.g. /home/neuper/proto2)
   1.311 +
   1.312 +  $EXP_BASE_DIR$: 
   1.313 +   directory where exp files of the isac engine are 
   1.314 +   located (e.g. $ISAC_BASE_DIR/isac/xmldata/exp/)
   1.315 +
   1.316 +  $KBASE_EXP_IMG_DIR$: 
   1.317 +   directory where images for the Example HTML pages 
   1.318 +   are located (KBASE)
   1.319 +   (currently $ISAC_BASE_DIR$/www/kbase/exp/img)
   1.320 +   ##ATTENTION## if this path changes, the XML configuration
   1.321 +   files have to change, because there the location of the 
   1.322 +   image files is specified in the <IMG_PATH>
   1.323 +
   1.324 +  $GEN_BASE_DIR$: 
   1.325 +   directory where java source files for Generator tool 
   1.326 +   are located (e.g. /home/neuper/isacAuth/)
   1.327 +
   1.328 +  $GEN_OUTPUT_DIR$: 
   1.329 +   directory where generated files will be created
   1.330 +   (e.g. /home/neuper/isacAuth/outputDir/)
   1.331 +
   1.332 +  $GEN_IMG_DIR$: 
   1.333 +   directory where scanned images are located
   1.334 +   (e.g. /home/neuper/isacAuth/img)
   1.335 +
   1.336 +  $GEN_EXP_HIERARCHY$: 
   1.337 +   file which contains the generated hierarchy
   1.338 +   (currently exp_hierarchy_allPages.xml and 
   1.339 +   located in $GEN_OUTPUT_DIR$)
   1.340 +
   1.341 +  $EXP_HIERARCHY$: 
   1.342 +   file which contains the complete hierarchy 
   1.343 +   for ISAC (currently exp_hierarchy.xml and 
   1.344 +   located in $EXP_BASE_DIR$)
   1.345 +
   1.346 +
   1.347 +  $PROPERTY_FILE$:
   1.348 +   src/java/properties/Generator.Properties
   1.349 +
   1.350 +  $GENERATOR_READER$:
   1.351 +   src/java/utils/GeneratorPaths.java
   1.352 +
   1.353 +
   1.354 +3) Installation 
   1.355 +
   1.356 +  * Copy all files listed in 1) to $GEN_BASE_DIR$ or 
   1.357 +    create a new Eclipse project in $GEN_BASE_DIR$ and 
   1.358 +    perform a CVS Import
   1.359 +
   1.360 +    For Eclipse project setup:
   1.361 +    1. (<rMouse> on project)<Properties><Java Build Path>: 
   1.362 +       <Source><Add Folder> "$GEN_BASE_DIR/src/java"
   1.363 +   
   1.364 +    2. create the 'run configuration's for the java module:
   1.365 +       mark the respective module in the package explorer 
   1.366 +       of the 'java perspective',
   1.367 +       <rMous><Run As> <Java Application> starts without 
   1.368 +       arguments (errors!) and inserts the module 
   1.369 +       into the 'run configuration'
   1.370 +
   1.371 +    3. adapt the 'run configuration's for all modules by providing
   1.372 +       the path to the respective properties;
   1.373 +       <Run><Run> opens the configurations inserted in #2.#; 
   1.374 +       adapt them as follows
   1.375 +       
   1.376 +       java.exp.GeneratMain.java arguments
   1.377 +       Program Arguments: $GEN_BASE_DIR/$GENERATOR_PROPERTIES
   1.378 +
   1.379 +  
   1.380 +  * Create the directory $GEN_OUTPUT_DIR$ where Java 
   1.381 +    will write the output files 
   1.382 + 
   1.383 +  * Create the directory $GEN_INPUT_DIR$ where Java 
   1.384 +    will look for the xml configuration files
   1.385 +
   1.386 +
   1.387 +
   1.388 +
   1.389 +4) Usage
   1.390 +
   1.391 +  * Create one xml configuration file (according to the Template)
   1.392 +    for each page in the mathematics book in $GEN_INPUT_DIR
   1.393 +  
   1.394 +  * Modify the main method of GeneratorMain.java so that all 
   1.395 +    xml configuration files will be read
   1.396 +  
   1.397 +  * Problem and Methods need to be adapted for each page in Examples.java
   1.398 +  
   1.399 +  * Adapt $PROPERTY_FILE$ and Run this configuration.
   1.400 +  
   1.401 +  * GeneratorMain reads in all xml configuration files and 
   1.402 +    generates html and xml files $GEN_OUTPUT_DIR$
   1.403 +  
   1.404 +  * Copy all files (except $GEN_EXP_HIERARCHY$) from $GEN_OUTPUT_DIR$ 
   1.405 +    to $EXP_BASE_DIR$
   1.406 +  
   1.407 +  * Copy all images from $GEN_IMG_DIR$ to $KBASE_EXP_IMG_DIR$
   1.408 +  
   1.409 +  * Create entry for the new pages in $EXP_HIERARCHY$ (refer to 
   1.410 +    Documentation - content from $GEN_EXP_HIERARCHY$ needs to 
   1.411 +    be copied to the according place in $EXP_HIERARCHY$)
   1.412 +
   1.413 +  Now run GenHTML and the content will be available in the ISAC Tutoring System
   1.414 +\end{verbatim}
   1.415 +\end{appendix}
   1.416 \ No newline at end of file