MMs seminar/project finished
authorwneuper
Mon, 24 Mar 2008 17:39:54 +0100
changeset 3906cb022e135e64
parent 3905 4ee0c47f55f2
child 3907 824ef5e94beb
MMs seminar/project finished
doc/GS/ISAC_AuthoringTools.tex
doc/GS/MM_semproj.pdf
doc/GS/MM_semproj.tex
     1.1 --- a/doc/GS/ISAC_AuthoringTools.tex	Mon Mar 24 17:34:31 2008 +0100
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,367 +0,0 @@
     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 -
    1.11 -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.12 -
    1.13 -\chapter{Content}
    1.14 -\label{chap:content}
    1.15 -
    1.16 -\section{Die Struktur von \isac s Wissensbasis}
    1.17 -
    1.18 -\subsection{Mathematikwissen: Theorien, Probleme, Methoden}
    1.19 -
    1.20 -\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.21 -\begin{enumerate}
    1.22 -\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.23 -\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.24 -\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.25 -\end{enumerate}
    1.26 -
    1.27 -\subsection{Beispiele zur Anwendung des Wissens}
    1.28 -
    1.29 -\sisac{} kann Beispiele automatisch l\"osen (und automatisch Dialoge generieren, die den Lernenden f\"uhren), wenn eine formale Spezifikation (in \sisac{} {\tt Formalisierung} genannt) einem dreifachen (Theorie, Problem, Methode) Verweis in das Mathematikwissen zugeordnet werden. Die Vorz\"uge des \sisac-Systems kommen also nur zum Tragen, wenn Beispiele als entsprechend strukturierter Content vorbereitet werden.
    1.30 -
    1.31 -Wenn im Folgenden von Content gesprochen wird, bezieht es sich in diesem Dokument auf die Inhalte (Beispiele) eines Mathematikbuches, welche im \sisac{} Tutoring System zur Verf\"ugung gestellt werden sollen. Grunds\"atzlich werden die Inhalte Seitenweise im System abgebildet. In diesem Kapitel wird zuerst der Aufbau einer Content Seite beschrieben, und danach die davon erzeugte Abbildung im \sisac{} Tutoring System vorgestellt.
    1.32 -
    1.33 -\section{Aufbau einer Beispiel-Sammlung}
    1.34 -\label{sec:Aufbau_Content}
    1.35 -Eine typische Seite eines Mathematikbuches, welche im \sisac{} Tutoring System bereitgestellt werden soll, ist in Abbildung \ref{fig:exp_page} zu sehen.
    1.36 -
    1.37 -\begin{figure}[htbp]
    1.38 -  \centering
    1.39 -  \includegraphics[width=0.6\textwidth]{myfig/MM-book_page.eps}
    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 -
    1.46 -\section{Abbildung im \isac{} Tutoring System}
    1.47 -\label{sec:Abbildung_Content}
    1.48 -
    1.49 -Das Ziel ist es nun, die vorliegenden Inhalte des Buches im \sisac{} Tutoring System abzubilden. F\"ur die Sch\"uler soll ein Wiedererkennungswert gegeben sein, deswegen werden nicht nur zu rechnende Beispiele, sondern auch Erl\"auterungen, Grafiken und bereits durchgerechnete Beispiele abgebildet. 
    1.50 -
    1.51 -Nach Starten der Anwendung gelangt man mit dem \texttt{<Examples>} Button in den \texttt{Example browser}, welcher in Abbildung \ref{fig:exp_browser} zu sehen ist. Der \texttt{Example browser} soll in der Lage sein, mehrere Beispielsammlungen parallel anzuzeigen. 
    1.52 -
    1.53 -Deswegen sind alle Beispiele in eine (vom Benutzer konfigurierbare) hierarchische Men\"ustruktur eingegliedert, die in der linken Spalte zu sehen ist. So kann der Hauptmen\"upunkt den Namen des abzubildenden Mathematikbuches tragen und darunter jede Seite einen Men\"upunkt bekommen, welche dann alle Beispiele beinhaltet. Das in diesem Dokument behandelte Buch ``Lebendige Mathematik'' ist unter \texttt{Etc > Lebendige Mathematik} zu finden.
    1.54 -
    1.55 -Die Rechnung zu einem Beispiel wird durch Aktivieren eines zugeh\"origen Links gestartet. Dieses Link wird in den gezeigten Beispieln auf der Nummer des Beispiels plaziert, was sich als hinreichend intuitiv herausgestellt hat.
    1.56 -
    1.57 -Jedes Beispiel einer Sammlung hat seine {\em eigene} Datei, in der sein Formalisierung und seine Spezifikation angegeben ist; diese erlauben \sisac{} das automatische L\"osen des Beispiels. Diese Datei ist also auch notwendig, wenn Beispiele bequemerweise mittels Link in der Sammlung auf der Seite gestartet werden.
    1.58 -
    1.59 -\begin{figure}[htbp]
    1.60 -  \centering
    1.61 -  \includegraphics[width=0.6\textwidth]{myfig/MM-exp_browser.eps}
    1.62 -  \caption{Example Browser im \sisac{} System}
    1.63 -  \label{fig:exp_browser}
    1.64 -\end{figure}
    1.65 -
    1.66 -\chapter{Content Generator}
    1.67 -\label{chap:Content_Generator}
    1.68 -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.69 -
    1.70 -Wenn nun Inhalte abgebildet werden sollen, ist eine Reihe von Schritten notwendig, die gegebenenfalls von jeweils anderen Softwarewerkzeugen unterst\"utzt werden:
    1.71 -\begin{enumerate}
    1.72 - \item Ausw\"ahlen der gew\"unschten Seiten im Mathematikbuch
    1.73 - \item Ausw\"ahlen und Einscannen der Grafiken und Erl\"auterungen, die im \sisac{} Tutoring System angezeigt werden soll
    1.74 - \item Ausw\"ahlen der Rechenbeispiele, die im \sisac{} Tutoring System durchrechenbar sein sollen
    1.75 - \item Erstellen einer XML Konfigurationsdatei f\"ur jede Seite, mit welchem der Content Generator die Inhalte in \sisac{} erzeugt
    1.76 - \item Konfiguration und starten des Content Generators
    1.77 - \item Anpassung der Hierarchie
    1.78 - \item Kopieren von Dateien
    1.79 - \item Starten der HTML Generierung
    1.80 -\end{enumerate}
    1.81 -
    1.82 -\section{Seitenauswahl}
    1.83 -Zu Beginn muss eine Auswahl der abzubildenden Seiten getroffen werden. Es gibt keine weiteren Vorgaben f\"ur diesen Schritt. Die n\"achsten Schritte werden am Beispiel einer einzelnen Seite erl\"autert. Erst Schritt 7 (Sekt.\ref{sec:Content_Konfiguration}) bezieht sich wieder auf die Gesamtheit aller ausgew\"ahlten Seiten.
    1.84 -
    1.85 -\section{Einscannen}
    1.86 -Sch\"uler sollen im \sisac{} Tutoring System die Seite aus ihrem Mathematikbuch wiedererkennen. Aus diesem Grund werden Grafiken, Erl\"auterungen und durchgerechnete Beispiele eingescannt und in Kombination mit den Rechenbeispielen angezeigt. Die Entscheidung, welche Elemente eingescannt und dann im \texttt{Example browser} angezeigt werden sollen, liegt ganz beim Ersteller des Contents. In Abbildung \ref{fig:scan_page} ist eine Beispielseite zu sehen, von welcher die rot markierten Bereiche eingescannt wurden.
    1.87 -
    1.88 -\begin{figure}[htbp]
    1.89 -  \centering
    1.90 -  \includegraphics[width=0.6\textwidth]{myfig/MM-book_page.eps}
    1.91 -  \caption{Ausgew\"ahlte Bereiche die eingescannt werden}
    1.92 -  \label{fig:scan_page}
    1.93 -\end{figure}
    1.94 -
    1.95 -Folgende Scan-Einstellungen haben sich bew\"ahrt:
    1.96 -\begin{description}
    1.97 - \item[Format] JPG
    1.98 - \item[DPI] 100
    1.99 - \item[Qualit\"at] Foto
   1.100 - \end{description}
   1.101 -
   1.102 -Alle Scans m\"ussen in dem \texttt{\$EXP\_DATA\_IMG\_DIR\$} Verzeichnis
   1.103 -\footnote{Eine \"Ubersicht \"uber die Verzeichnisse findet sich im Appendix\ref{MM-install} auf S.\pageref{MM-install}}
   1.104 - gespeichert werden.
   1.105 -
   1.106 -
   1.107 -\section{Ausw\"ahlen der Rechenbeispiele}
   1.108 -Nun m\"ussen alle Rechenbeispiele von dieser Seite, die im \sisac{} Tutoring System zur Verf\"ugung stehen sollen, ausgew\"ahlt werden. Diese m\"ussen dann im n\"achsten Schritt in die XML Konfigurationsdatei eingetragen werden.
   1.109 -
   1.110 -\section{XML Konfigurationsdatei}
   1.111 -F\"ur jede Seite muss nun eine XML Konfigurationsdatei erstellt werden, welche der Content Generator verwendet, um den Content des \sisac{} Tutoring Systems zu erstellen. Diese Datei beinhaltet die Kopfzeile der Seite, die Seitenummer, die Platzierung der eingescannten Elemente, die Rechenbeispiele und die verwendeten Theorien zur L\"osung der Beispiele. Weiters kann noch spezifiert werden, ob es eine Probe zu einem Rechenbeispiel gibt. In Listing \ref{lst:Content_XMLconfig} ist das Schema der XML Datei zu sehen.
   1.112 -
   1.113 -\lstset{language=XML}
   1.114 -\begin{lstlisting}[caption=Beispiel einer XML Konfigurationsdatei, label=lst:Content_XMLconfig]
   1.115 -<Seite>
   1.116 -  <Kapiteltitel></Kapiteltitel>
   1.117 -  <Seitentitel></Seitentitel>
   1.118 -  <SeitenNr></SeitenNr>
   1.119 -  <Beispiel>
   1.120 -    <ImagePath></ImagePath>
   1.121 -    <ImageName></ImageName>
   1.122 -    <ImageWidth></ImageWidth>
   1.123 -    <ImageHeight></ImageHeight>
   1.124 -    <locateBeforeExp>true</locateBeforeExp>
   1.125 -    <Nr>142</Nr>
   1.126 -    <Spalten>4</Spalten>
   1.127 -    <Term>a + (4*a - 3)</Term>
   1.128 -    <HasProbe>true</HasProbe>
   1.129 -    <Probe>
   1.130 -      <ProbeTerm>5*a - 3</ProbeTerm>
   1.131 -      <SubsValues>a=2</SubsValues>
   1.132 -    </Probe>		
   1.133 -    <Theory>poly</Theory>
   1.134 -    <Problem></Problem>
   1.135 -    <Method></Method>
   1.136 -  </Beispiel>
   1.137 -</Seite> 
   1.138 -
   1.139 -\end{lstlisting}
   1.140 -
   1.141 -\begin{description}
   1.142 - \item[Titel] Kapitel- und Seitentitel sind optional, die Seitennummer muss jedoch angegeben werden. Danach folgen die Beispiele f\"ur die ganze Seite.
   1.143 - \item[Beispiele] Ein Beispiel umfasst ein oder mehrere Unterbeispiele, wie in Abbildung \ref{fig:exp_beispiel} zu sehen ist. 
   1.144 -Wie schon vorher erw\"ahnt, m\"ussen die eingescannten Grafiken dargestellt werden.
   1.145 - \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.146 -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.147 - \item[Beispielnummer] Das Beispiel selbst muss eine Nummer \texttt{Nr} erhalten. 
   1.148 - \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.149 - \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.150 - \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.151 - \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.152 - \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.153 -\end{description}
   1.154 -  
   1.155 -Nachdem f\"ur jede Seite eine XML Konfigurationsdatei erstellt wurde, kann man zum n\"achsten Schritt \"ubergehen.
   1.156 -
   1.157 -\section{Content Generator konfigurieren und starten}
   1.158 -\label{sec:Content_Konfiguration}
   1.159 -
   1.160 -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.161 -
   1.162 -\begin{verbatim}
   1.163 -XMLParser parser = new XMLParser();
   1.164 -Page page = parser.parsePage("<Dateiname>");
   1.165 -page.generatePageFile();
   1.166 -page.generateExampleFiles();
   1.167 -page.clearAll(); 
   1.168 -\end{verbatim}
   1.169 -
   1.170 -Danach wird \texttt{GeneratorMain.java} mit 2 Argumenten ausgef\"uhrt. 
   1.171 -
   1.172 -\paragraph{Das erste Argument} gibt an, welche Dateinamen f\"ur die generierten Dateien verwendet werden soll. 
   1.173 -
   1.174 -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.175 -
   1.176 -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.177 -
   1.178 -// TODO
   1.179 -//soll auch erkl\"art werden, welche Files erzeugt werden und wie deren Struktur aussieht???\\
   1.180 -WN: kurze Erklarung (ev. nur ein Beispiel zu \textit{exp\_Etc\_LebMatC-S53-N257a.xml}) waere guenstig als Erfolgsbestaetigung fuer den Benutzer ;-)
   1.181 -//
   1.182 -
   1.183 -\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.184 -
   1.185 -\section{Hierarchie anpassen und Dateien kopieren}
   1.186 -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 TODO.WN befindet \footnote{Eine \"Ubersicht \"uber die Verzeichnisse findet sich im Appendix\ref{MM-install} auf S.\pageref{MM-install}}.
   1.187 -
   1.188 -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.189 -
   1.190 -\begin{figure}[htbp]
   1.191 -  \centering
   1.192 -  \includegraphics[width=0.9\textwidth]{myfig/MM-exp_hierarchy.eps}
   1.193 -  \caption{Hierarchie im Example Browser}
   1.194 -  \label{fig:exp_hierarchy}
   1.195 -\end{figure}
   1.196 -
   1.197 -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.198 -
   1.199 -Ein Men\"upunkt sieht immer folgendermassen aus:
   1.200 -\begin{verbatim}
   1.201 -<NODE>
   1.202 -  <ID> </ID>
   1.203 -  <CONTENTREF> </CONTENTREF>
   1.204 -</NODE>
   1.205 -\end{verbatim}
   1.206 -
   1.207 -\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.208 -
   1.209 -\lstset{language=XML}
   1.210 -\begin{lstlisting}[]
   1.211 -<NODE>
   1.212 -  <ID> Etc </ID>
   1.213 -  <CONTENTREF> exp_Etc</CONTENTREF>
   1.214 -  <NODE>
   1.215 -    <ID> Algebra Einfuehrung </ID>
   1.216 -    <CONTENTREF> exp_Etc_AlgEin </CONTENTREF>
   1.217 -  </NODE>
   1.218 -  <NODE>
   1.219 -    <ID> Leb. Mathematik </ID>
   1.220 -    <CONTENTREF> exp_Etc_LebMat </CONTENTREF>
   1.221 -
   1.222 -      <NODE>
   1.223 -	<ID> Lehrversion </ID>
   1.224 -	<CONTENTREF> exp_Etc_LebMatL </CONTENTREF>
   1.225 -	...
   1.226 -      </NODE>
   1.227 -      <NODE>
   1.228 -	<ID> Computerversion </ID>
   1.229 -	<CONTENTREF> exp_Etc_LebMatC </CONTENTREF>
   1.230 -
   1.231 -	// ==== hier beginnen die Daten aus exp_hierarchy_AllPages.xml
   1.232 -	<NODE>
   1.233 -	  <ID>Seite 33</ID>  
   1.234 -	  <CONTENTREF> exp_Etc_LebMatC-S33 </CONTENTREF>
   1.235 -	  ...
   1.236 -  	</NODE>
   1.237 -	// ==== hier enden die Daten aus exp_hierarchy_AllPages.xml
   1.238 -      </NODE>
   1.239 -  </NODE>
   1.240 -</NODE>
   1.241 -\end{lstlisting}
   1.242 -
   1.243 -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.244 -
   1.245 -\section{Kopieren von Dateien}
   1.246 -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.247 -
   1.248 -\section{Starten der HTML Generierung}
   1.249 -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.250 -
   1.251 -
   1.252 -\chapter{Zusammenfassung und Ausblick}
   1.253 -\label{chap:Ausblick}
   1.254 -Ziel dieser Arbeit war es, einen Prototyp f\"ur die Content Generierung f\"ur das \sisac{} Tutoring zu erstellen. Aus diesem sollten auch Erfahrungen f\"ur die Entwicklung allgemeinerer Tools zur Content Generierung gewonnen werden. 
   1.255 -
   1.256 -Die Implementation ist erfolgreich gelungen und hat die zum Erstellen der vorgegebenen Beispielsammlung notwendige Zeit so verk\"urzt, dass diese Autorenarbeit vom \sisac-Team auf andere Anwender weitergegeben werden kann.
   1.257 -
   1.258 -In diesem Kapitel wird eine kurze Zusammenfassung und danach ein Ausblick f\"ur die Entwicklung eines universeller einsetzbaren Tools gegeben.
   1.259 -
   1.260 -\section{Die Wert des Prototypen f\"ur das \isac-Projekt}
   1.261 -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.262 -
   1.263 -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.264 -
   1.265 -Nun folgt eine Auflistung von Erkenntnissen und offenen Fragen, die w\"ahrend der Entwicklung des Prototyps gewonnen wurden bzw. aufgetaucht sind:
   1.266 -
   1.267 -\begin{description}
   1.268 - \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.269 -\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.270 -\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.271 -\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.272 -\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.273 -\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.274 -\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.275 -\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 in alle Autorentools Bedacht nehmen.
   1.276 - \end{description}
   1.277 -
   1.278 -\begin{appendix}
   1.279 -\chapter{Installationshinweise}\label{MM-install}
   1.280 -Dies ist die {\tt README} Datei im {\tt cvs} im Verzeichnis {\tt CVSROOT/isacaut/doc}:
   1.281 -\begin{verbatim}
   1.282 -*************************************************
   1.283 -Usage of Content Generator
   1.284 -*************************************************
   1.285 -
   1.286 -
   1.287 ---------------------------------------------------
   1.288 -1) Contents
   1.289 -2) Paths
   1.290 -3) Installation
   1.291 -4) Usage
   1.292 ---------------------------------------------------
   1.293 -
   1.294 -
   1.295 -1) Contents
   1.296 -
   1.297 -  GeneratorMain.java      Main file
   1.298 -  Page.java
   1.299 -  XMLParser.java
   1.300 -  Examples.java
   1.301 -  Image.java
   1.302 -
   1.303 -  TEMPLATE_lb_page_xx.xml Template for the xml configuration file
   1.304 -
   1.305 -
   1.306 -2) Paths
   1.307 -  $ISAC_BASE_DIR$: base directory of ISAC installation
   1.308 -                   (e.g. /home/neuper/proto2)
   1.309 -
   1.310 -  $EXP_BASE_DIR$ : directory where exp files of the isac engine are locate 
   1.311 -                   (e.g. $ISAC_BASE_DIR/isac/xmldata/exp/)
   1.312 -
   1.313 -  $KBASE_EXP_IMG_DIR$: directory where images for the Example HTML pages are located (KBASE)
   1.314 -                       (currently $ISAC_BASE_DIR$/www/kbase/exp/img)
   1.315 -                       ##TODO## if the path changes, the java source code needs to change as well
   1.316 -                                because the HTML pages contain a static link to the subdirectory <img>
   1.317 -
   1.318 -  $GEN_BASE_DIR$ : directory where java source files for Generator tool are located
   1.319 -                   (e.g. /home/neuper/isacAuth/)
   1.320 -
   1.321 -  $GEN_OUT_DIR$  : directory where generated files will be created
   1.322 -                   (e.g. /home/neuper/isacAuth/outputDir/)
   1.323 -
   1.324 -  $GEN_IMG_DIR$  : directory where scanned images are located
   1.325 -                   (e.g. /home/neuper/isacAuth/img)
   1.326 -
   1.327 -  $GEN_EXP_HIERARCHY$: file which contains the generated hierarchy
   1.328 -		       (currently exp_hierarchy_allPages.xml and located in $GEN_OUT_DIR$)
   1.329 -
   1.330 -  $EXP_HIERARCHY$: file which contains the complete hierarchy for ISAC
   1.331 -                   (currently $EXP_BASE_DIR$/exp_hierarchy.xml)
   1.332 -
   1.333 -
   1.334 -3) Installation 
   1.335 -
   1.336 -  * Copy all files listed in 1) to $GEN_BASE_DIR$
   1.337 -  
   1.338 -  * Create the directory $GEN_OUT_DIR$ where Java will write the output files 
   1.339 -
   1.340 -
   1.341 -4) Usage
   1.342 -
   1.343 -  * Create one xml configuration file (according to the Template) for each page in the mathematics book
   1.344 -  
   1.345 -  * Modify the main method of GeneratorMain.java so that all xml configuration files will be read
   1.346 -  
   1.347 -  * Problem and Methods need to be adapted for each page in Examples.java
   1.348 -  
   1.349 -  * Compile java classes
   1.350 -  
   1.351 -  * Execute Generator Main with 3 arguments:
   1.352 -           0: prefix for generated XML files (e.g. "exp_Etc_LebMatL-S")
   1.353 -           1: true|false (true if lehrversion pages should be generated)
   1.354 -           2: absolute path of output directory for generated files
   1.355 -
   1.356 -  
   1.357 -  * GeneratorMain reads in all xml configuration files and generates html and xml files in the 
   1.358 -    specified directory
   1.359 -  
   1.360 -  * Copy all files (except $GEN_EXP_HIERARCHY$) from $GEN_OUT_DIR$ to $EXP_BASE_DIR$
   1.361 -  
   1.362 -  * Copy all images from $GEN_IMG_DIR$ to $KBASE_EXP_IMG_DIR$
   1.363 -  
   1.364 -  * Create entry for the new pages in $EXP_HIERARCHY$ (refer to Documentation)
   1.365 -    (content from $GEN_EXP_HIERARCHY$ needs to be copied to the according place in $EXP_HIERARCHY$)
   1.366 -
   1.367 -  Now run GenHTML and the content will be available in the ISAC Tutoring System
   1.368 -
   1.369 -\end{verbatim}
   1.370 -\end{appendix}
   1.371 \ No newline at end of file
     2.1 Binary file doc/GS/MM_semproj.pdf has changed
     3.1 --- a/doc/GS/MM_semproj.tex	Mon Mar 24 17:34:31 2008 +0100
     3.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3 @@ -1,11 +0,0 @@
     3.4 -\documentclass[a4wide]{report}
     3.5 -\input{preamble}
     3.6 -
     3.7 -\begin{document}
     3.8 -\input{titlepage} 
     3.9 -\tableofcontents
    3.10 -\listoffigures
    3.11 -
    3.12 -\input{ISAC_AuthoringTools} 
    3.13 -\bibliography{bib/isac,bib/MM}
    3.14 -\end{document}