<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2CR1//EN"
       "http://www.docbook.org/xml/4.2/docbookx.dtd">

<book lang="de">

  <bookinfo>

    <title>Diplomarbeit</title>
    <subtitle>Extraktion und Erstellung einer Ontologie in
    verschiedenen XML-Formaten am Beispiel des Forschungsprojekts
    <wordasword>MetaChart</wordasword>
</subtitle>

  </bookinfo>

  <dedication>
  <para>
  This book is dedicated to you.
  </para>
  </dedication>
  <preface>
<title>Vorwort</title>
  <para>
  Some content is always required.
  </para>
  </preface>







  
  




<chapter id="c1">
  <title>Einführung</title>

  <section>
<title>Motivation</title>
  
  

    <para>Das Wissen über den Standort von Information ist kaum mehr ohne Hilfsmittel vorstellbar. <quote>Die Angebote der Informationsspeicherung und des Internets [stellen] uns zwar mehr potenzielles Wissen zur Verfügung, aber die Praxis [zeigt], dass viele Menschen beim Wissenserwerb durch die Informationsfülle eher behindert denn gefördert werden</quote> <citation>bpv00</citation>. Die Informationsfülle droht zum Informationschaos zu werden, wo der sinngebende Kontext einer Information verloren geht.</para>

    <para>Das Ziel ist eindeutig die Informationssouverenität des Menschen: Das Informationsangebot so zu gestalten, dass der Überblick erhalten bleibt, Einblick, Erfassung und Aufnahme ermöglicht werden, um so schließlich das Verstehen und die Bildung von Wissen zu fördern.</para>

    <para>Wie Informationen abzulegen sind, damit dieses Ziel erreichbar wird, soll in dieser Arbeit untersucht werden.</para>




  </section>

  <section>
<title>Gliederung der Arbeit</title>
    <para>In <xref linkend="c1"/> werden grundlegende Begriffe geklärt. <xref linkend="c2"/> untersucht die vorhandenen Strukturen im <wordasword>MetaChart</wordasword>-Projekt. Die technische Umsetzung der Ontologieerstellung nach einer Klärung der dafür zugrundeliegenden Methoden der Wissensrepräsentation wird in <xref linkend="c3"/> dargestellt. Das Ergebnis wird in <xref linkend="c4"/> betrachtet.</para>

    <note>
<title>Konventionen</title>
<para>Folgende Hervorhebungen werden benutzt:
    <itemizedlist>
      <listitem>
<para>Fremdsprachige Ausdrücke und Eigennamen: <emphasis>kursiv</emphasis>
</para>
</listitem>
      <listitem>
<para>Computerein- /ausgaben: <literal moreinfo="none">dicktengleich</literal>
</para>
</listitem>
      <listitem>
<para>Datenbanktabellen und -attribute: <database moreinfo="none">dicktengleich oblique</database>
</para>
</listitem>
    </itemizedlist>
    </para>
</note>
  
  </section>


  <section>
<title>Ontologie als Teil der Metaphysik</title>
  <indexterm significance="normal">
<primary>Metaphysik</primary>
<seealso>Philosophie</seealso>
</indexterm>
  <indexterm significance="normal">
<primary>Philosophie</primary>
<secondary>Metaphysik</secondary>
</indexterm>
    <para>Etymologisch bedeutet <wordasword>Ontologie</wordasword> <indexterm significance="normal">
<primary>Ontologie</primary>
</indexterm> <indexterm significance="normal">
<primary>Metaphysik</primary>
<secondary>Ontologie</secondary>
</indexterm> (griechisch <emphasis>ont-</emphasis>: seiend, <emphasis>logos</emphasis>: Lehre) die Lehre vom Sein, die zwischen <wordasword>Sein</wordasword> und dem <wordasword>Seienden</wordasword> unterscheidet. Als Teil der Metaphysik wird sie, <quote>von Aristoteles ausgehend, verstanden als <quote>Erste Philosophie</quote>,<indexterm significance="normal">
<primary>Philosophie</primary>
</indexterm> insofern sie nach den ersten Gründen und Ursprüngen des Seienden als Seienden fragt</quote> <citation>Kunzmann99</citation>.</para>

    <para>Ontologisch erklärt sich die Existenz<indexterm significance="normal">
<primary>Existenz</primary>
</indexterm> der Dinge aus ihrer Denkmöglichkeit. Martin Heidegger (1889&#8211;1976) formuliert: <quote>Ontologie ist das explizite theoretische Fragen nach dem Sein des Seienden.</quote> Anselm von Canterburys <emphasis>ontologischer Gottesbeweis</emphasis> beispielsweise akzeptiert, dass etwas, das man als Ziel allen vernünftigen Handelns ansieht, auch existieren müsse. Immanuel Kant kritisierte dies jedoch (in seiner <quote>Kritik der reinen Vernunft</quote>), indem er die Unmöglichkeit aufzeigte, vom <emphasis>Begriff</emphasis>
<indexterm significance="normal">
<primary>Begriff</primary>
</indexterm> Gottes auf sein <emphasis>Dasein</emphasis>
<indexterm significance="normal">
<primary>Dasein</primary>
<see>Existenz</see>
</indexterm> zu schließen.</para>

    
  </section>

  <section>
<title>Daten, Information, Wissen</title>    
    <para>Zur Erläuterung von <wordasword>Daten</wordasword>, <wordasword>Information</wordasword>, <wordasword>Wissen</wordasword> und deren Beziehung zueinander wird der sprachwissenschaftliche Begriff Semantik benötigt, der griechischen Ursprungs ist. <citation>Meyer92</citation>
</para>

    <para>Semantik <indexterm significance="normal">
<primary>Semantik</primary>
</indexterm>
<indexterm significance="normal">
<primary>Semiotik</primary>
<secondary>Semantik</secondary>
</indexterm> ist neben Syntaktik<indexterm significance="normal">
<primary>Syntaktik</primary>
</indexterm>
<indexterm significance="normal">
<primary>Semiotik</primary>
<secondary>Syntaktik</secondary>
</indexterm> und Pragmatik <indexterm significance="normal">
<primary>Pragmatik</primary>
</indexterm>
<indexterm significance="normal">
<primary>Semiotik</primary>
<secondary>Pragmatik</secondary>
</indexterm> ein Teilgebiet der Semiotik, der Lehre von der Entstehung, dem Aufbau und der Wirkweise von Zeichen und Zeichenkomplexen (Symbolen): Am Zeichen werden drei Dimensionen unterschieden: die Beziehung zwischen ihm und dem Bezeichneten (Semantik), die zwischen ihm und dem Verwender (Pragmatik) und die zwischen dem Zeichen und den anderen Zeichen im Rahmen des Zeichensystems (Syntaktik). Die Semantik befasst sich also mit den <emphasis>Bedeutungen</emphasis> sprachlicher Zeichen und Zeichenfolgen. In der Logik<indexterm significance="normal">
<primary>Logik</primary>
</indexterm> versteht man unter Semantik die allgemeine Bezeichnung für die Theorie der Wahrheit logischer Sätze und Folgerungen, z. B. die Interpretation formaler Sprachen.</para>
    
    
    


    <para>Daten <indexterm significance="normal">
<primary>Daten</primary>
</indexterm> sind bloße Kombinationen von Zeichen<indexterm significance="normal">
<primary>Zeichen</primary>
</indexterm> und Symbolen.<indexterm significance="normal">
<primary>Symbol</primary>
</indexterm> Schreibt man den Daten eine Syntax<indexterm significance="normal">
<primary>Syntax</primary>
</indexterm> zu, die die erlaubte Anordnung der Zeichen eines definierten Zeichenvorrats beschreibt, so spricht man von Information(en). <indexterm significance="normal">
<primary>Information</primary>
</indexterm>

    Wesentlich für eine Information ist, dass die Daten von einem Sender zu einem Empfänger gelangen und von diesem entschlüsselt, d. h. verstanden werden. Die Mindestvoraussetzung dafür ist eine gemeinsame Syntax, die die erlaubten Anordnungen eines Zeichenvorrats beschreibt. Die Art des Kommunikationsmediums spielt dabei keine Rolle.</para>

    <para>Nach Warren Weaver in einem Vorwort zu Shannons <foreignphrase>Mathematical Theory of Communication</foreignphrase> (1949)  treten in der Kommunikation Probleme auf, die neben technischen Aspekten und den unberechenbaren Rezeptionseinflüssen der Kommunikationspartner auch die Semantik der übermittelten Symbole betreffen (vgl. <citation>Johnson00</citation>).

    Hier kommt die Abgrenzung von Wissen gegenüber Information zum Tragen: <quote>Informationen sind noch lange kein Wissen</quote> <citation>Korbmann01</citation>. Der Information im Vergleich zum Wissen fehlt Semantik. Wissen <indexterm significance="normal">
<primary>Wissen</primary>
</indexterm> bezeichnet jedoch eine bedeutungsvolle Vernetzung von Informationen. <quote>Der Bedeutungsgehalt ist auf den Kontext<indexterm significance="normal">
<primary>Kontext</primary>
</indexterm> der Situation bezogen, hängt vom Anwendungszweck ab und unterliegt damit auch subjektiven Faktoren</quote> <citation>Reimann00</citation>.</para> 


  </section>

  <section>
<title>Wissen schaffen</title>

    <para>Nach <citation>Strassmann02</citation> bleibe in Unternehmen bleibe zu viel Wissen ungenutzt. Ein Ziel des neuen Forschungszweigs 
    <wordasword>Wissenmanagement</wordasword>
<indexterm significance="normal">
<primary>Wissensmanagement</primary>
</indexterm> seien <quote>Systeme, die auch das <quote>implizite</quote> Wissen <indexterm significance="normal">
<primary>Wissen</primary>
<secondary>implizites</secondary>
</indexterm> in den Köpfen der Mitarbeiter erfassen.</quote> <citation>Strassmann02</citation>
    Es handelt sich dabei um tazites<indexterm significance="normal">
<primary>Wissen</primary>
<secondary>tazites</secondary>
</indexterm> Wissen &#8211; <quote>Wissen, das aus Erfahrungen gewonnen wird und den Handelnden oft gar nicht bewusst ist</quote> <citation>Reimann00</citation>.
    
    <quote>Diesen <quote>Schatz</quote> zu heben ist ein hartes Brot. [&#8230;]
    
    Rechner sollten mit dem impliziten Wissen <indexterm significance="normal">
<primary>Wissen</primary>
<secondary>implizites</secondary>
</indexterm> am besten so umgehen wie wir Menschen: Wir legen unser Wissen (wahrscheinlich) in Mustern ab, die das Relevante dieses Wissens beschreiben. Gelänge es, den Wissensschatz im Hirn der Mitarbeiter in Muster zu <quote>übersetzen</quote> und zu digitalisieren, könnten Rechner es erfassen und sinnvoll vernetzen. Kontinuierlich ließe sich das Know-how der Experten am Arbeitsplatz <quote>absaugen</quote> und benutzerfreundlich präsentieren. Bloß, all das ist reine Zukunftsmusik</quote>, so Vajna in <citation>Strassmann02</citation>.</para>

    <para>
<quote>Kreative Sitzungen (dort wird womöglich Wissen produziert!) können heute von einem Programm begleitet werden, das keine Brainstorming-Idee übersieht und implizites in explizites Wissen <indexterm significance="normal">
<primary>Wissen</primary>
<secondary>explizites</secondary>
</indexterm> umwandelt &#8211; aber nur, wenn die kreativen Köpfe ihre Gedanken dem Laptop anvertrauen</quote> <citation>Strassmann02</citation>.</para>
    
    

<para>Dieses implizite Wissen zu <quote>externalisieren [&#8230; helfen] Methoden und Werkzeuge, die Gedanken, Konzepte und Vorgehensweisen dokumentieren können. Dazu zählen etwa Programme zur Darstellung von Mind Maps, die das Produkt einer Brainstorming-Sitzung sein können, Präsentationsgrafik-Software wie Microsoft Powerpoint, Diagramming-Werkzeuge wie Visio oder Programme zur Modellierung von Geschäftsprozessen, beispielsweise Aris (www.ids-scheer.de)</quote> <citation>Reimann00</citation>. Das Kreativitätswerkzeug <wordasword>MetaChart</wordasword>
<indexterm significance="normal">
<primary>MetaChart</primary>
</indexterm>
<indexterm significance="normal">
<primary>Kreativitätswerkzeug</primary>
<secondary>MetaChart</secondary>
</indexterm> des Fraunhofer Instituts für Arbeitswirtschaft und Organisation (IAO) lässt sich nun hier als weiteres Beispiel anfügen.</para>

    



  </section>

 


  <section id="it.onto">
<title>Ontologie in der Informationswissenschaft</title>

    



    

    <para>Die philosophische Kategorienanalyse<indexterm significance="normal">
<primary>Kategorie</primary>
</indexterm> als <quote>Richtung der Ontologie [&#8230;] zielt auf die Herausarbeitung übergreifender Strukturen (kategoriale Gesetze) des Seins sowie der Eigengesetzlichkeiten verschiedener Seinsbereiche</quote> <citation>Brockhaus01</citation> und trifft so recht gut den Begriff der <emphasis>Ontologie</emphasis>
<indexterm significance="normal">
<primary>Ontologie</primary>
</indexterm> im informationsverarbeitenden Kontext.</para>



    <para>
<quote>The two major contributors to the development of formal ontology are the philosophers Charles Sanders Peirce<indexterm significance="normal">
<primary>Peirce</primary>
</indexterm>
<indexterm significance="normal">
<primary>Philosophie</primary>
<secondary>Peirce</secondary>
</indexterm> and Edmund Husserl</quote> <citation>Sowa01</citation>.</para>

    <para>Ontologien definieren allgemeine Begriffe<indexterm significance="normal">
<primary>Begriff</primary>
</indexterm> (<emphasis>Konzepte</emphasis>),<indexterm significance="normal">
<primary>Konzept</primary>
</indexterm> die dazu genutzt werden, ein Wissensgebiet zu beschreiben und zu repräsentieren. Ontologien werden von Menschen, Datenbanken und Applikationen verwendet, Informationen innerhalb von <emphasis>Domänen</emphasis> auszutauschen. Eine Domäne<indexterm significance="normal">
<primary>Domäne</primary>
</indexterm> stellt dabei ein spezifisches Themengebiet dar. Ontologien beinhalten maschinenverständliche Definitionen der in der Domäne zugrunde liegenden Konzepte sowie auch domänenübergreifendes Wissen. Somit machen sie dieses Wissen wiederverwendbar.</para>
    <itemizedlist>
<title>Mögliche Merkmale einer Ontologie</title>
      <listitem>
<para>Klassen (allgemeine Dinge) in den interessierenden Domänen</para>
</listitem>
      <listitem>
<para>Instanzen (einzelne Dinge)</para>
</listitem>
      <listitem>
<para>Beziehungen zwischen diesen Dingen</para>
</listitem>
      <listitem>
<para>Eigenschaften (Charakteristiken) dieser Dinge</para>
</listitem>
  
      <listitem>
<para>Einschränkungen (<foreignphrase>constraints</foreignphrase>) und Regeln für diese Dinge</para>
</listitem>
    </itemizedlist>
    <indexterm significance="normal">
<primary>Klasse</primary>
<seealso>Taxonomie</seealso>
</indexterm>
    <indexterm significance="normal">
<primary>Instanz</primary>
<seealso>Taxonomie</seealso>
</indexterm>
    <indexterm significance="normal">
<primary>Taxonomie</primary>
<secondary>Klasse</secondary>
</indexterm>
    <indexterm significance="normal">
<primary>Taxonomie</primary>
<secondary>Instanz</secondary>
</indexterm>

    <para>Ontologien werden meist in logikbasierten, formalen Sprachen dargestellt, um genaue, konsistente und sinnvolle Unterscheidungen zwischen den Klassen, Instanzen, Eigenschaften und Relationen machen zu können. Manche Ontologie-Werkzeuge können automatisch Folgerungen aus der Ontologie mittels definierten Regeln <indexterm significance="normal">
<primary>Regel</primary>
</indexterm>
<indexterm significance="normal">
<primary>Logik</primary>
<secondary>Regel</secondary>
</indexterm> ziehen.</para>

    <para>Eine Sichtweise auf Ontologien sind Schemata (Formatvorlagen) für Metainformationen, die deren Bedeutung strukturieren. Der Begriff der Ontologie ist sehr weitläufig und kann die simple Darstellung einer <emphasis>Taxonomie</emphasis>
<indexterm significance="normal">
<primary>Taxonomie</primary>
</indexterm> (Klassenhierarchie, -einteilung, Klassifizierung)<indexterm significance="normal">
<primary>Hierarchie</primary>
</indexterm> über einen <emphasis>Thesaurus</emphasis>
<indexterm significance="normal">
<primary>Thesaurus</primary>
</indexterm> (Begriffe und deren Synonyme) bis hin zu Logiktheorien über komplexes, konsistentes Wissens meinen.</para>









    
    


    <para>Tom R. Gruber definiert: <quote>An ontology is a formal, explicit specification of a shared conceptualization</quote> und <quote>Ontologies establish a joint terminology between members of a community of interest. These members can be human or automated agents</quote> <citation>Gruber93</citation>.</para>


    <itemizedlist>
        <listitem>
<para>Konzeptualisierung<indexterm significance="normal">
<primary>conceptualization</primary>
</indexterm> (<foreignphrase>conceptualization</foreignphrase>): Ein abstraktes Modell bestimmter Phänomene und Domänen mit deren identifizierten relevanten Begriffen.</para>
</listitem>
        <listitem>
<para>Explizit (<foreignphrase>explicit</foreignphrase>): Art und Bedingung eines jeden Begriffs werden explizit angegeben und definiert.</para>
</listitem>
        <listitem>
<para>Formal (<foreignphrase>formal</foreignphrase>) müssen Ontologien sein, um maschinenverständlich zu sein, was eine natürlichsprachliche Darstellung ausschließt.</para>
</listitem>
        <listitem>
<para>Gemeinsam (<foreignphrase>shared</foreignphrase>) signalisiert, dass es sich bei einer Ontologie nicht um eine einzelne, individuelle Ansicht von Wissen handelt, sondern um eine Darstellung, auf die sich eine bestimmte Benutzergruppe geeinigt hat und über die folglich ein Konsens besteht.</para>
</listitem>
    </itemizedlist>

    

    
    

    <para>Die Beschreibung der Gegenstände und deren Beziehungen zueinander, die für eine Gruppe von Personen begriffsbildend sind, müssen, um im Rahmen eines wissensbasierten Systems computergestützt verarbeitet werden zu können, formal definiert sein. Eingesetzt werden Ontologien in der Wissensverarbeitung zur Formalisierung<indexterm significance="normal">
<primary>Formalisierung</primary>
<see>Repräsentation</see>
</indexterm> der Wissensrepräsentation und zum Austausch von Wissen.</para> 
    <para>Als Repräsentation<indexterm significance="normal">
<primary>Repräsentation</primary>
</indexterm> wird das <quote>Aufschreiben von Symbolen<indexterm significance="normal">
<primary>Symbol</primary>
</indexterm> bezeichnet</quote>, insbesondere wenn dazu Angaben vorliegen, wie die Merkmale der repräsentierten Welt abzubilden sind. Diese Merkmale werden Interpretationsvorschrift<indexterm significance="normal">
<primary>Interpretation</primary>
</indexterm> genannt. (Vgl. <citation>Reimer91</citation> S. 9)</para>

    <para>Dieter Fensel nennt Ontologien <quote>konsensuale und formale Spezifikationen von Begrifflichkeiten</quote> <citation>Fensel01</citation>.</para>
    <para>John F. Sowa schreibt: <quote>The subject of <emphasis>ontology</emphasis> is the study of the <emphasis>categories</emphasis> of things that exist or may exist in some domain. The product of such a study, called <emphasis>an ontology</emphasis>, <indexterm significance="normal">
<primary>Ontologie</primary>
</indexterm>
<indexterm significance="normal">
<primary>ontology</primary>
<see>Ontologie</see>
</indexterm>is a catalog of the types of things that are assumed to exist in a domain of interest.[&#8230;] By itself, logic says nothing about anything, but the combination of logic<indexterm significance="normal">
<primary>Logik</primary>
</indexterm> with an ontology provides a language that can express relationships about the entities in the domain of interest</quote> <citation>Sowa01</citation>.</para>

<indexterm significance="normal">
<primary>entity</primary>
<see>Entität</see>
</indexterm>
<indexterm significance="normal">
<primary>Entität</primary>
</indexterm>
    
    

    <para>Vereinfacht dargestellt sind Ontologien, wie es James Hendler und auch Fensel ausdrücken, <quote>machine-readable semantics</quote>. <indexterm significance="normal">
<primary>semantics</primary>
<see>Semantik</see>
</indexterm>
<indexterm significance="normal">
<primary>Semantik</primary>
</indexterm>  Ihr Sinn liegt in der Ermöglichung der Kommunikation zwischen Computern, und zwar losgelöst von der jeweiligen, individuellen Technologie, der Informationsorganisation und dessen Anwendungsgebiet. Dazu ist primär ein Basiswortschatz und eine exakte Definitionen der enthaltenen Begriffe vorauszusetzen.</para>

    <para>Die Verbindung zum Ontologiebegriff im klassischen Sinne liefert <citation>Anderson00</citation> mit der Frage, an welchem Punkt man eine metaphysische Diskussion beginnen müsse, ob eine Maschine überhaupt etwas <quote>verstehen</quote> könne. Als Antwort darauf ist anzuführen: <quote>The computer doesn&#8217;t truly <quote>understand</quote> any of this information, but it can now manipulate the terms much more effectively in ways that are useful and meaningful to the human user</quote> <citation>Berners01a</citation>. Für Tim Berners-Lee ist damit die Vision des <wordasword>Semantic Webs</wordasword> in erreichbare Nähe gerückt:
     Das <wordasword>Semantic Web</wordasword> soll von sich aus Aufgaben des Alltags bewerkstelligen können: <quote lang="en">The Semantic Web is a computer system, a distributed machine which should function so as to perform socially useful tasks</quote> <citation>Berners98</citation>. Konkreter formulieren die Experten Tim Berners-Lee, James Hendler und Ora Lassila: <quote lang="en">The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation</quote> <citation>Berners01</citation>.</para>

  </section>
    
    






    
    

    
   
    
   






</chapter>





    







    
    










    





    

  

<chapter id="c2">
<title>Das Forschungprojekt <wordasword>MetaChart</wordasword>
</title>


  <section id="mc.idee">
<title>Die <wordasword>MetaChart</wordasword>-Idee</title>

    

    <para>Das Projekt <wordasword>MetaChart</wordasword>
<indexterm significance="normal">
<primary>MetaChart</primary>
</indexterm> stellt eine Art Adaption der Kreativitätstechnik <wordasword>Metaplan</wordasword>
<indexterm significance="normal">
<primary>Metaplan</primary>
</indexterm>
<indexterm significance="normal">
<primary>Kreativitätstechnik</primary>
<secondary>Metaplan</secondary>
</indexterm> als Java-Applikation zur Verfügung. Durch die Verwendung von <trademark class="trade">Java</trademark> und der <foreignphrase>Enterprise Java Beans</foreignphrase>-Technologie ist Plattformunabhängigkeit gegeben. Das erarbeitete Konzept ermöglicht verteiltes, also nicht ortsgebundenes, gruppenbasiertes, kreatives Arbeiten. Die Ideenfindung wird dabei durch eine intuitive Benutzeroberfläche mit Stiftgestenerkennung sowie Spracheingabe unterstützt.</para>

    <note id="metaplan">
      <title>Metaplan</title>
<para>(auch: Moderationsmethode, Kärtchentechnik) ist eine Kreativitäts- und Strukturierungsmethode, die unter anderem deshalb etwa 1975 entwickelt wurde, um bei der Ideenfindung nicht nur auditive Sinne, sondern auch visuelle und haptische Sinne anzusprechen und zu fordern. Dabei werden Ideen stichwortartig auf Karten festgehalten und auf einer großen Pinnwand positioniert, um der Visualisierung Rechnung zu tragen. Die Methode wird überwiegend zur zielorientierten Gestaltung von Kommunikations- und Kooperationsprozessen innerhalb von Gruppen, insbesondere zur Ideensammlung,<indexterm significance="normal">
<primary>Idee</primary>
</indexterm> Strukturierung<indexterm significance="normal">
<primary>Struktur</primary>
</indexterm> und Visualisierung eingesetzt.</para>
      <para>Sie kann nach <citation>Scholles98</citation> damit in verschiedenen Anwendungsfeldern hilfreich sein:
      <itemizedlist>
        
        <listitem>
<para>Themenspeicher bei Ideensammlung</para>
</listitem>
        <listitem>
<para>Ideenproduktion</para>
</listitem>
        <listitem>
<para>Strukturierung und Gliederung von Ideen oder Problemen</para>
</listitem>
        <listitem>
<para>logische Verknüpfung von Sachverhalten</para>
</listitem>
        <listitem>
<para>Ursachenanalyse</para>
</listitem>
        <listitem>
<para>Prioritätenbildung</para>
</listitem>
        <listitem>
<para>Bewertung von Lösungsansätzen</para>
</listitem>
        
      </itemizedlist>
      
      </para>
    </note>

    <para>Als Nachteil der konventionellen-Metaplan-Technik ist die fehlende Möglichkeit der informationstechnischen Weiterverarbeitung zu nennen, was bei der Pinnwand bestenfalls durch Abfotografieren initiiert werden kann. (Vgl. <citation>Magerkurth01</citation>) Dieser Nachteil wird mit <wordasword>MetaChart</wordasword>  ausgeglichen.</para>

    <para>In der <wordasword>MetaChart</wordasword>-Welt heißen die Ideenkarten <wordasword>MetaCharts</wordasword>. Sie dienen als Container für Informationen beliebiger Art und strukturieren diese. Die dem <wordasword>MetaChart</wordasword> zugedachte Idee kann durch sogenannte <wordasword>MetaChart-Attributes</wordasword> ergänzt werden. <quote>Attribute</quote>
<indexterm significance="normal">
<primary>Attribut</primary>
</indexterm> bedeuten hier mediale Objekte, wie z. B. Texte und Grafiken sowie beliebige Dateien, die auch per <foreignphrase>Drag and Drop</foreignphrase> eingebunden werden können: <quote lang="en">According to model-view-controlling (Krasner and Pope, 1988), each member of the group may simultaneously work at the same model and therefore interact from any place on a shared work space. Modifications of the model layer, e. g. adding attributes, creating links or structuring information objects, are visible to all participants</quote> <citation>mttwz01</citation>.</para>

    <para>Durch die Rekursionsfähigkeit<indexterm significance="normal">
<primary>Rekursion</primary>
</indexterm> der <wordasword>MetaCharts</wordasword> können Hierarchien<indexterm significance="normal">
<primary>Hierarchie</primary>
</indexterm> beliebiger Tiefe erzeugt werden; Querverbindungen werden durch  Kanten zwischen (allen vier Kombinationsmöglichkeiten von) <wordasword>MetaCharts</wordasword> und <wordasword>MetaChart-Attributes</wordasword> ermöglicht:</para>

    <indexterm significance="normal">
<primary>Kante</primary>
</indexterm>
    <indexterm significance="normal">
<primary>Assoziation</primary>
</indexterm>


    <para>
<quote lang="en">Objects (visualized by a rectangle) can be arranged graphically in two ways: One rectangle can be contained in another or two rectangles can be associated via an arrow. In addition, each rectangle can be associated with a set of attributes (content) and metadata (describing data)</quote> <citation>mttwz01</citation>. (Siehe auch <xref linkend="mc.applikation"/>)</para>




    <para>Das vorgestellte Werkzeug zur strukturierten Erfassung und Aufbereitung von Informationen zu den verschiedensten Themenbereichen innerhalb einer Gruppe liefert mit der zugrundeliegenden relationalen Datenbank <indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>relational</secondary>
</indexterm> einen interessanten Ausgangspunkt zur Erstellung einfacher Ontologien auf der Repräsentationsebene.</para>
    

    

    <para revision="sowa">
<quote>Examples of formal ontologies include theories in science and mathematics, the collections of rules and frames in an expert system, and specification of a database schema in SQL [Structured Query Language]</quote> <citation>Sowa01</citation>.</para>

  </section>

    <section id="datenbank">
<title>Datenbankstruktur</title>
      <para>Die relationale <wordasword>MetaChart</wordasword>-Datenbank (<database moreinfo="none">mcdb</database>) ist auf einem <trademark class="trade">Oracle</trademark> 8i-System realisiert. Die enthaltenen Tabellen spiegeln die angesprochene Aufteilung zwischen <wordasword>MetaCharts</wordasword> und den <wordasword>MetaChart-Attributes</wordasword> wider; sie trennen deren Metadaten und Darstellungsdaten, genannt <wordasword>Views</wordasword>, von den Inhalten. Als singulärer Punkt für den <foreignphrase>Content</foreignphrase> an sich steht das Feld <database moreinfo="none">value</database> der Tabelle <database moreinfo="none">attributes</database> zur Verfügung.</para>
      <para>Als zentrale Tabelle des vernetzten Modells ist die Tabelle <database moreinfo="none">meta_charts</database> anzusehen;  diese Tabelle enthält das Wurzelelement der <wordasword>MetaChart</wordasword>-Hierarchie und geht die meisten Beziehungen mit anderen Tabellen.</para>

<figure id="relationenschema" float="0">
  <title>Relationenschema der <wordasword>MetaChart</wordasword>-Datenbank</title>
  <mediaobject>
    <imageobject>
      <imagedata format="EPS" fileref="images/tabellen/metachart_relationenschema.EPS"/>
    </imageobject>
  </mediaobject>
</figure>

<indexterm significance="normal">
<primary>Relation</primary>
</indexterm>
<indexterm significance="normal">
<primary>Beziehung</primary>
</indexterm>
<indexterm significance="normal">
<primary>Tabelle</primary>
</indexterm>
<indexterm significance="normal">
<primary>Primärschlüssel</primary>
</indexterm>
<indexterm significance="normal">
<primary>Schlüsselkandidat</primary>
</indexterm>
<indexterm significance="normal">
<primary>Relationenshema</primary>
</indexterm>
<indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>Relation</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>Tabelle</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>Beziehung</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>Primärschlüssel</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>Schlüsselkandidat</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>Relationenschema</secondary>
</indexterm>

      

      <para>Im Folgenden werden die im <wordasword>MetaChart</wordasword>-Projekt vorhandenen Tabellen und deren Beziehungen zueinander erläutert. Da das Projekt noch nicht abgeschlossen ist, ist hier mit eventuellen Veränderungen/Optimierungen zu rechnen.</para>
      <para>Schlüsselkandidaten (<foreignphrase>Candidate Keys</foreignphrase>) bedeuten dabei minimale, identifizierende Attributkombinationen. Einer dieser Schlüsselkandidaten kann als Primärschlüssel ausgezeichnet sein. (Dies ist beispielsweise nicht der Fall bei <database moreinfo="none">meta_datas</database>: <database moreinfo="none">mc_id</database> und <database moreinfo="none">attr_id</database> sind hier alternativ zu besetzen.) In <xref linkend="relationenschema"/> sind Schlüsselkandidaten fett ausgezeichnet; die Fremdschlüssel (FK) verweisen auf die Primärschlüssel (PK) der referenzierten Tabelle.</para>

      
      <section>
<title>Relationenschemata und deren Attribute</title>
        
      
        <indexterm significance="normal">
<primary>Attribut</primary>
</indexterm>
        <indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>Attribut</secondary>
</indexterm>

        <section>
<title>
<database moreinfo="none">meta_charts</database>
</title>

          <para>
<wordasword>MetaCharts</wordasword> treten in verschiedenen Rollen auf. Sie enthalten wiederum <wordasword>MetaCharts</wordasword> oder verweisen auf andere Entitäten.</para>

          <para>
<foreignphrase>Primary Key</foreignphrase>: <database moreinfo="none">mc_id</database>
</para>

          

          <itemizedlist>
          
         

          <listitem>
<para>
<literal moreinfo="none">mc_id VARCHAR(30) PRIMARY KEY</literal>
</para>
<para>Das Attribut <database moreinfo="none">mc_id</database> wird wie jede ID als String mit einer maximalen Länge von dreißig Zeichen abgelegt. IDs gehorchen im <wordasword>MetaChart</wordasword>-Projekt folgender, als regulärer Ausdruck (siehe <citation>perlre</citation>) notierten Syntax:  <literal moreinfo="none">([a-z]+)([0-9]+)</literal>; <database moreinfo="none">mc_id</database>s im Speziellen <literal moreinfo="none">mc[0-9]+</literal>.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">type VARCHAR(50) NOT NULL</literal>
</para>
<para>Das Attribut <database moreinfo="none">type</database> beschreibt die Ausprägung des <wordasword>MetaCharts</wordasword>, wodurch sich die <wordasword>MetaCharts</wordasword> in Kategorien einteilen lassen. Derzeit sind nur Informationscharts definiert.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">owner VARCHAR(30) NOT NULL REFERENCES meta_charts</literal>
</para>
<para>Das Attribut <database moreinfo="none">owner</database> verweist auf das <wordasword>MetaChart</wordasword>, das den User (Benutzer) identifiziert, dem dieser <wordasword>MetaChart</wordasword> gehört. (Benutzer und Benutzergruppen mit Name und Logindaten werden als <wordasword>MetaChart</wordasword> angelegt.)</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">parent VARCHAR(30) DEFAULT NULL REFERENCES meta_charts</literal>
</para>
<para>Das Attribut <database moreinfo="none">parent</database> verweist auf den Vater des <wordasword>MetaCharts</wordasword>. Ist kein Wert angegeben, so handelt es sich um ein Wurzelelement. Mehrere Wurzelelemente sind möglich, da jede <quote>kreative Sitzung</quote> (<foreignphrase>session</foreignphrase>) ihre eigene Wurzel besitzt. Zur Rekursion der <wordasword>MetaCharts</wordasword> siehe <xref linkend="mc.rekursion"/>.</para>
</listitem>

          

          </itemizedlist>
        
        </section>

        <section>
<title>
<database moreinfo="none">attributes</database>
</title>
          
          <para>
<wordasword>MetaChart-Attributes</wordasword> sind die Inhaltsträger für sowohl konkrete als auch abstrakte Inhalte.</para>

          <para>
<foreignphrase>Primary Key</foreignphrase>: <database moreinfo="none">attr_id</database>
</para>

          

          <itemizedlist>
          <listitem>
<para>
<literal moreinfo="none">attr_id VARCHAR(30) PRIMARY KEY</literal>
</para>
<para>
<wordasword>MetaChart-Attributes</wordasword> sind über <database moreinfo="none">attr_id</database> identifizierbar.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">mc_id VARCHAR(30) NOT NULL REFERENCES meta_charts</literal>
</para>
<para>
<wordasword>MetaChart-Attributes</wordasword> werden durch diesen Fremdschlüssel dem <wordasword>MetaChart</wordasword> eindeutig zugeordnet. Es kann kein <wordasword>MetaChart-Attribute</wordasword> ohne <wordasword>MetaChart</wordasword> existieren.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">type VARCHAR(50) NOT NULL</literal>
</para>
<para>Das Attribut <database moreinfo="none">type</database> weist dem <wordasword>MetaChart-Attribute</wordasword> einen Typ zu, mit dem die Art des <wordasword>MetaChart-Attributes</wordasword> angegeben wird, beispielsweise  <varname>text/plain</varname> oder <varname>image/png</varname>. Das Attribut ist unabdingbar zur korrekten Rückwandlung des <database moreinfo="none">value</database>-Wertes im Tupel.</para>
</listitem>
          

          

          <listitem>
<para>
<literal moreinfo="none">value LONG RAW</literal>
</para>
<para>Hier werden die eigentlichen Informationen, die ein <wordasword>MetaChart-Attribute</wordasword> trägt, als <foreignphrase>binary stream</foreignphrase> gespeichert. Der Typ <varname>LONG RAW</varname> erlaubt die Speicherung großer Datenmengen.</para>
</listitem>

          

          </itemizedlist>
        </section>

        <section id="tabelle.meta_datas">
<title>
<database moreinfo="none">meta_datas</database>
</title>

          <para>Diese Tabelle nimmt Metainformationen sowohl der <wordasword>MetaCharts</wordasword> als auch der <wordasword>MetaChart-Attributes</wordasword> auf.</para>
          

          <para>
<foreignphrase>Candidate Keys</foreignphrase>: <database moreinfo="none">mc_id</database> und <database moreinfo="none">attr_id</database>
</para>

          <itemizedlist>

          <listitem>
<para>
<literal moreinfo="none">mc_id VARCHAR(30) DEFAULT NULL</literal>
</para>
<para>Ist <database moreinfo="none">mc_id</database> besetzt, so bedeutet dies die Zugehörigkeit der Metadaten zum <wordasword>MetaChart</wordasword> mit dieser ID.</para>
          
          <para>Wird dieses Attribut gesetzt, so muss das Attribut <database moreinfo="none">attr_id</database> auf jeden Fall <varname>NULL</varname> sein und vice versa. Jedoch muss eines der beiden Attribute gesetzt sein. (Diese Integritätsprüfung ist derzeit durch eine <foreignphrase>stored procedure</foreignphrase> realisiert.)</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">attr_id VARCHAR(30) DEFAULT NULL</literal>
</para>
<para>Ist <database moreinfo="none">attr_id</database> besetzt, so bedeutet dies die Zugehörigkeit der Metadaten zum <wordasword>MetaChart-Attribute</wordasword> mit dieser ID. Hier gilt Analoges zu <database moreinfo="none">mc_id</database>.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">type VARCHAR(50) NOT NULL</literal>
</para>
<para>Metainformationen werden anhand <database moreinfo="none">type</database> charakterisiert. Explizite Werte sind nicht festgelegt; als Beispiel sind jedoch <varname>createDate</varname> und <varname>title</varname> zu nennen.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">value VARCHAR(2000)</literal>
</para>
<para>In diesem Attribut wird die eigentliche Metainformation gehalten. Sie wird durch einen String repräsentiert.</para>
</listitem>

          </itemizedlist>

        </section>

        <section>
<title>
<database moreinfo="none">views</database>
</title>

          <para>
<wordasword>Views</wordasword> beschreiben die Darstellung der <wordasword>MetaCharts</wordasword>, z. B. durch Angabe der Rechteckskoordinaten oder der Hintergrundfarbe.</para>
          
          <para>
<foreignphrase>Primary Key</foreignphrase>: {<database moreinfo="none">view_id</database>, <database moreinfo="none">mc_id</database>, <database moreinfo="none">type</database>}</para>


                  

          
  
          <itemizedlist>

          <listitem>
<para>
<literal moreinfo="none">view_id VARCHAR(30) NOT NULL</literal>
</para>
<para>Jeder <wordasword>View</wordasword> hat eine ID, unter der mehrere <varname>type</varname>/<varname>value</varname>-Kombinationen angelegt sind.</para>
</listitem>
          

          <listitem>
<para>
<literal moreinfo="none">mc_id VARCHAR(30) NOT NULL REFERENCES meta_charts</literal>
</para>
<para>Das <database moreinfo="none">mc_id</database> zeigt verweist auf das <wordasword>MetaChart</wordasword>, das mit diesem <wordasword>View</wordasword> dargestellt wird.</para>
</listitem>
          

          <listitem>
<para>
<literal moreinfo="none">gr_us_id VARCHAR(30) DEFAULT NULL REFERENCES meta_charts</literal>
</para>
<para>Das <database moreinfo="none">mc_id</database> zeigt den Besitzer des Views (<foreignphrase>User</foreignphrase>, auch <foreignphrase>Group</foreignphrase>) an, der als <wordasword>MetaChart</wordasword> identifiziert wird.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">type VARCHAR(50) NOT NULL</literal>
</para>
<para>Im Attribut <database moreinfo="none">type</database> wird der Typ des Attributs <database moreinfo="none">value</database> durch einen String spezifiziert. Im Beispiel von oben wäre dies etwa <varname>rect</varname> und <varname>backgroundcolor</varname>.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">value VARCHAR(2000)</literal>
</para>
<para>Das Attribut <database moreinfo="none">value</database> enthält den Wert der durch <database moreinfo="none">type</database> spezifizierten <wordasword>View</wordasword>-Information.</para>
</listitem>

          </itemizedlist>

          <para>
<wordasword>Views</wordasword> werden in <xref linkend="normalform"/> noch diskutiert.</para>

        </section>

        <section>
<title>
<database moreinfo="none">attribute_views</database>
</title>

          <para>Die Darstellung der <wordasword>MetaChart-Attributes</wordasword> wird analog zu <database moreinfo="none">views</database> mit dieser Tabelle  bestimmt.</para>


          <para>
<foreignphrase>Primary Key</foreignphrase>: {<database moreinfo="none">attr_id</database>, <database moreinfo="none">view_id</database>, <database moreinfo="none">type</database>}</para>

          <itemizedlist>

          

          <listitem>
<para>
<literal moreinfo="none">attr_id VARCHAR(30) NOT NULL REFERENCES attributes</literal>
</para>
<para>Das Attribut <database moreinfo="none">attr_id</database> verweist auf das <wordasword>MetaChart-Attribute</wordasword>, das mit diesem <wordasword>View</wordasword> dargestellt wird.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">view_id VARCHAR(30) NOT NULL REFERENCES views</literal>
</para>
<para>Das Attribut <database moreinfo="none">view_id</database> verweist auf den zugehörigen <wordasword>MetaChart</wordasword>-<wordasword>View</wordasword>. So wird auch die Verbindung zum besitzenden <foreignphrase>User-/Group-</foreignphrase>
<wordasword>MetaCharts</wordasword> festgelegt.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">type VARCHAR(50) NOT NULL</literal>
</para>
<para>Im Attribut <database moreinfo="none">type</database> wird der Typ des Attributs <database moreinfo="none">value</database> durch einen String spezifiziert. Als Beispiele wären dieselben wie in <database moreinfo="none">views.type</database> anzuführen.</para>
</listitem>

          <listitem>
<para>
<literal moreinfo="none">value VARCHAR(2000)</literal>
</para>
<para>Das Attribut <database moreinfo="none">value</database> enthält den Wert der durch <database moreinfo="none">type</database> spezifizierten <wordasword>View</wordasword>-Information.</para>
</listitem>

          </itemizedlist>

        </section>

      </section> 


      <section>
<title>Beziehungen zwischen den Relationenschemata</title>

        <indexterm significance="normal">
<primary>Kardinalität</primary>
</indexterm>
        <indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>Kardinalität</secondary>
</indexterm>

        <itemizedlist>

          <listitem>
<para>
<database moreinfo="none">meta_datas</database> beschreiben <database moreinfo="none">meta_charts</database>
</para>
          <para>Kardinalität <foreignphrase>one-to-many</foreignphrase>: jedem Eintrag in <database moreinfo="none">meta_datas</database> ist genau ein Eintrag in <database moreinfo="none">meta_charts</database> zugeordnet.</para>
</listitem>
          
          <listitem>
<para>
<database moreinfo="none">views</database> stellen <database moreinfo="none">meta_charts</database> dar</para>
          <para>Kardinalität	<foreignphrase>one-to-many</foreignphrase>: jedem Eintrag in <database moreinfo="none">views</database> ist genau ein Eintrag in <database moreinfo="none">meta_charts</database> zugeordnet.</para>
</listitem>

          <listitem>
<para>
<database moreinfo="none">attributes</database> gehören <database moreinfo="none">meta_charts</database>
</para>
          <para>Kardinalität <foreignphrase>one-to-many</foreignphrase>: jedem Eintrag in <database moreinfo="none">attributes</database> ist genau ein Eintrag in <database moreinfo="none">meta_charts</database> zugeordnet.</para>
</listitem>

          <listitem>
<para>
<database moreinfo="none">meta_datas</database> beschreiben <database moreinfo="none">attributes</database>
</para>
          <para>Kardinalität <foreignphrase>one-to-many</foreignphrase>: jedem Eintrag in <database moreinfo="none">meta_datas</database> ist genau ein Eintrag in <database moreinfo="none">attributes</database> zugeordnet.</para>
</listitem>

          <listitem>
<para>
<database moreinfo="none">attribute_views</database> stellen <database moreinfo="none">attributes</database> dar</para>
          <para>Kardinalität <foreignphrase>one-to-many</foreignphrase>: jedem Eintrag in <database moreinfo="none">attribute_views</database> ist genau ein Eintrag in <database moreinfo="none">attributes</database> zugeordnet.</para>
</listitem>

          <listitem>
<para>
<database moreinfo="none">views</database> besitzen <database moreinfo="none">attribute_views</database>
</para>
          <para>Kardinalität <foreignphrase>one-to-many</foreignphrase>: jedem Eintrag in <database moreinfo="none">attribute_views</database> ist genau einem Eintrag in <database moreinfo="none">views</database> zugeordnet.</para>
</listitem>

          <listitem>
<para>
<database moreinfo="none">views</database> gehören <database moreinfo="none">meta_charts</database>
</para>
          <para>Kardinalität <foreignphrase>one-to-many</foreignphrase>: jedem Eintrag in <database moreinfo="none">views</database> ist genau ein Eintrag in <database moreinfo="none">meta_charts</database> zugeordnet.</para>
          <para>Ein <wordasword>View</wordasword> gehört einem User/einer Group, der/die durch ein <wordasword>MetaChart</wordasword> definiert ist.</para>
</listitem>

        

        
        </itemizedlist>
      
      </section>

     
      <section id="normalform">
<title>Normalform</title>
      <indexterm significance="normal">
<primary>Normalform</primary>
<seealso>Datenbank</seealso>
</indexterm>
      <indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>Normalform</secondary>
</indexterm>
      <indexterm significance="normal">
<primary>Datenbank</primary>
<secondary>Atomizität</secondary>
</indexterm>


        <para>Zur Betrachtung des Datenbankschemas bezüglich Normalformen wird Atomizität auch für abgelegte Java-Objekte oder Spezialfälle wie z. B. Rechteckskoordinaten oder RGB-Farbwerte angenommen, da diese Werte für sich eine semantische Einheit bilden und da es sich um ein sehr generisches, d. h. auch flexibles Schema handelt, das (ähnlich wie <foreignphrase>Topic Maps</foreignphrase>, siehe <xref linkend="tm.tao"/>) mit relativ einfachen Mitteln, die Darstellung komplexer Strukturen erlaubt.</para>

        <para revision="todo">Die Relationen der <database moreinfo="none">mcdb</database> befinden sich mindestens in der ersten Normalform (1NF), da alle Attribute im obigen Sinn atomar sind. Fürderhin gelten die Elemente einer Domäne in SQL stets als atomar.</para>

        <para>Die zweite Normalform (2NF) ist jedoch nicht gegeben, da das Relationsschema <varname>Views</varname> Attribute enthält, die nicht Schlüssel sind, aber voll funktional abhängig von Schlüsselkandidaten sind: Das Nichtschlüsselattribut <database moreinfo="none">gr_us_id</database> ist von den Teilattributen <database moreinfo="none">view_id</database> und <database moreinfo="none">mc_id</database> ab. (<database moreinfo="none">view_id</database> tritt redundant auf.)</para>

        <para>Die dritte Normalform (3NF) läge vor, wenn das Schema der 2NF genügte und kein Nichtschlüsselattribut <emphasis>transitiv</emphasis> abhängig von einem Schlüsselattribut wäre.</para>




    
  </section>

      <section id="optimierung">
<title>Mögliche Optimierung</title>
        <para>
<xref linkend="optimierung"/> untersucht eine mögliche Optimierung des vorhandenen Relationenschemas mit Hinblick auf eine höhere Normalform.</para>

      <section id="erdreverse">
<title>
<foreignphrase>Entity Relationship Model</foreignphrase> via <foreignphrase>Reverse Engineering</foreignphrase>
</title>
        <para>Unter <foreignphrase>reverse engineering</foreignphrase> ist im Bereich der Datenbanken die Erstellung eines <foreignphrase>Entity Relationship Models</foreignphrase> anhand bestehender Tabellen und der zugrundeliegenden Semantik zu verstehen. Als <foreignphrase>Entity Relationship Model</foreignphrase> (ER-Modell) bezeichnet man die grafische Repräsentation eines Formalismus' zur Beschreibung konkreter Anwendungsfälle mit Hinblick auf die Transformation in ein Datenbankmodell.</para>

        <para>Das Ziel des <foreignphrase>reverse engineering</foreignphrase>-Prozesses ist es, <quote>ausgehend von einem logischen Schema einer existierenden Datenbank eine konzeptionelle Beschreibung der betreffenden Anwendung zu erzeugen, d. h. zum Beispiel ausgehend von einer SQL-Schemadeklaration [&#8230;] auf ein ER-Diagramm für die Anwendung zu kommen</quote> <citation>Vossen00</citation>. Im Gegensatz zum <foreignphrase>forward engineering</foreignphrase>, dem klassischen Entwurfsprozess, der in </para>
        <itemizedlist>
          <listitem>
<para>Anforderungsanalyse</para>
</listitem>
          <listitem>
<para>konzeptioneller Entwurf</para>
</listitem>
          <listitem>
<para>logischer Entwurf</para>
</listitem>
          <listitem>
<para>physischer Entwurf</para>
</listitem>
        </itemizedlist>
        <para>gegliedert ist, wird für ein <foreignphrase>reverse engineering</foreignphrase> zumeist Benutzerinteraktion benötigt. (vgl. <citation>Vossen00</citation>)</para>

        <section>
<title>Entitäten und Relationen in <wordasword>MetaChart</wordasword>
</title>
        
        <para>Unter Betrachtung des vorhandenen relationalen Modells und dessen geschilderten Einsatzzwecks nach <xref linkend="mc.idee"/> sind folgende Entitäten (<foreignphrase>Entities</foreignphrase>) zu erkennen:</para>



        <itemizedlist>
          <listitem>
<para>
<wordasword>MetaChart</wordasword> (MC)</para>
</listitem>
          <listitem>
<para>
<wordasword>MetaChart-Attribute</wordasword> (A)</para>
</listitem>
          <listitem>
<para>
<wordasword>MetaData</wordasword> (MD)</para>
</listitem>
          <listitem>
<para>
<wordasword>View</wordasword> (V)</para>
</listitem>
          <listitem>
<para>
<wordasword>ViewData</wordasword> (VD)</para>
</listitem>
          <listitem>
<para>
<wordasword>User</wordasword> (U)</para>
</listitem>
        </itemizedlist>

        <para>Diese gehen folgende Beziehungen (<foreignphrase>Relations</foreignphrase>) ein:</para>


        <informaltable pgwide="0" frame="none">
          <tgroup align="left" cols="2">
            <colspec colwidth="*" align="char" char="&#8212;"/>  
            <colspec colwidth="4*" align="left"/>
            <thead>
            <row>
<entry>
<para>Entitäten</para>
</entry>
<entry>
<para>Beziehung</para>
</entry>
</row>
          </thead>
          <tbody>
            <row>
<entry>
<para>MC&#8212;A</para>
</entry>
<entry>
<para>
<wordasword>MetaChart</wordasword> bettet <wordasword>MetaChart-Attribute</wordasword> ein</para>
</entry>
</row>
            <row>
<entry>
<para>MD&#8212;MC</para>
</entry>
<entry>
<para>
<wordasword>MetaData</wordasword> beschreibt <wordasword>MetaChart</wordasword>
</para>
</entry>
</row>
            <row>
<entry>
<para>MD&#8212;A</para>
</entry>
<entry>
<para>
<wordasword>MetaData</wordasword> beschreibt <wordasword>MetaChart-Attribute</wordasword>
</para>
</entry>
</row>
            <row>
<entry>
<para>U&#8212;MC</para>
</entry>
<entry>
<para>
<wordasword>User</wordasword> ist ein <wordasword>MetaChart</wordasword>
</para>
</entry>
</row>
            <row>
<entry>
<para>V&#8212;MC</para>
</entry>
<entry>
<para>
<wordasword>View</wordasword> stellt <wordasword>MetaChart</wordasword> dar</para>
</entry>
</row>
            <row>
<entry>
<para>V&#8212;A</para>
</entry>
<entry>
<para>
<wordasword>View</wordasword> stellt <wordasword>MetaChart-Attribute</wordasword> dar</para>
</entry>
</row>
            <row>
<entry>
<para>V&#8212;U</para>
</entry>
<entry>
<para>
<wordasword>View</wordasword> gehört <wordasword>User</wordasword>
</para>
</entry>
</row>
            <row>
<entry>
<para>VD&#8212;V</para>
</entry>
<entry>
<para>
<wordasword>ViewData</wordasword> beschreibt <wordasword>View</wordasword>
</para>
</entry>
</row>
          </tbody>
          </tgroup>
        </informaltable>


        <para>Die grafische Darstellung liefert zusätzlich die jeweiligen Kardinalitäten zu den Beziehungen zwischen den Entitäten:</para>

<figure float="0">
  <title>
<foreignphrase>Entity Relationship Model</foreignphrase>
</title>
  <mediaobject>
    <imageobject>
      <imagedata format="EPS" fileref="images/erm/erdvorschlag-sonntag.EPS"/>
    </imageobject>
  </mediaobject>
</figure>

        <para>Die drei dominanten Entitäten <varname>metachart</varname>, <varname>attribute</varname> und <varname>view</varname> sind ähnlich in Anbetracht ihrer <foreignphrase>weak entities</foreignphrase> (<quote>schwache Entitäten</quote> sind nur durch ihre Beziehung zum Besitzer identifizierbar; im ER-Modell gekennzeichnet durch Doppellinien): <varname>metachart</varname> und <varname>attribute</varname> besitzen jeweils die schwache Entität <varname>metadata</varname>, <varname>view</varname> besitzt die schwache Entität <varname>viewdata</varname>.</para>

        </section>      

        </section> 

        <section id="mc.reldb">
<title>Transformation in ein relationales Modell</title>
          
     
          <para>Das aus obigem <foreignphrase>Entity Relationship Model</foreignphrase> projizierte relationale Modell entspricht dem vorhandenen, in <xref linkend="datenbank"/> vorgestellten Modell mit Ausnahme der Entitäten <wordasword>View</wordasword> und <wordasword>ViewData</wordasword>.</para>

          <para>Die <foreignphrase>weak entities</foreignphrase> werden im relationalen Modell durch Referenzen zu ihrem <quote>Besitzer</quote>  aufgelöst, d. h. sie enthalten den Primärschlüssel (<foreignphrase>Primary Key</foreignphrase>) des Besitzers als Fremdschlüssel.</para>

          <para>Im Beispiel der <wordasword>MetaData</wordasword>-Entität sind dies zwei Fremdschlüssel, die jedoch <varname>NULL</varname>-Werte zulassen, um die alternative Referenzierung, wie in <xref linkend="tabelle.meta_datas"/> beschrieben, zu ermöglichen.</para>
        
        
          <para>Die Auflösung der <foreignphrase>weak entity</foreignphrase> <wordasword>View</wordasword> bedarf in ihrer Tabelle <database moreinfo="none">views</database> einer ID (<database moreinfo="none">gr_us_id</database>) zur Fremdschlüssel-Referenzierung des besitzenden <database moreinfo="none">meta_charts.mc_id</database>s (Group/User).</para>

          <para>Ähnlich der Tabelle <database moreinfo="none">meta_datas</database> soll nun eine Tabelle <database moreinfo="none">views</database> sowohl zur Darstellung der <wordasword>MetaCharts</wordasword> als auch der <wordasword>MetaChart-Attributes</wordasword> reichen. D. h., auch hier sind zwei Attribute <database moreinfo="none">mc_id</database> und <database moreinfo="none">attr_id</database>, die alternativ besetzt auf die jeweilige Tabelle <database moreinfo="none">meta_charts</database> bzw. <database moreinfo="none">attributes</database> verweisen. 
          In einer Tabelle <database moreinfo="none">view_datas</database> sind die Beschreibungen (Darstellungsdaten) der <wordasword>Views</wordasword> abgelegt, d. h.
          <database moreinfo="none">view_datas</database> referenziert wiederum <database moreinfo="none">views</database>, wozu eine <database moreinfo="none">view_id</database>, die als <foreignphrase>Primary Key</foreignphrase> in <database moreinfo="none">views</database> angelegt wird, sinnvoll erscheint.</para>

          <para>Die zwei Tabellen sind folgendermaßen aufzubauen:</para>
          
          <itemizedlist>
<title>Attribute der Tabelle <database moreinfo="none">views</database>
</title>
            <listitem>
<para>
<literal moreinfo="none">view_id PRIMARY KEY</literal>
</para>
</listitem>
            <listitem>
<para>
<literal moreinfo="none">gr_us_id REFERENCES meta_charts</literal>
</para>
</listitem>
            <listitem>
<para>
<literal moreinfo="none">mc_id NULL REFERENCES meta_charts</literal>
</para>
</listitem>
            <listitem>
<para>
<literal moreinfo="none">attr_id NULL REFERENCES attributes</literal>
</para>
</listitem>
          </itemizedlist>

          <itemizedlist>
<title>Attribute der Tabelle <database moreinfo="none">view_datas</database>
</title>
            <listitem>
<para>
<literal moreinfo="none">view_id REFERENCES views</literal>
</para>
</listitem>
            <listitem>
<para>
<literal moreinfo="none">type</literal>
</para>
</listitem>
            <listitem>
<para>
<literal moreinfo="none">value</literal>
</para>
</listitem>

          </itemizedlist>
          <para>
<foreignphrase>Primary Key</foreignphrase> {<varname>view_id</varname>, <varname>type</varname>}</para>


          


          <para>Für den <foreignphrase>Relationship</foreignphrase>-Typ <foreignphrase>is a</foreignphrase> in <quote>
<wordasword>User</wordasword> <foreignphrase>is a</foreignphrase> <wordasword>MetaChart</wordasword>
</quote> reicht laut <citation>Vossen00</citation> die Hinzunahme zu bereits existierenden Relationenschemata, also hier zur Tabelle <database moreinfo="none">meta_charts</database>, da keine weitere Spezialisierung in <wordasword>User</wordasword> gegenüber <wordasword>MetaChart</wordasword> vorliegt. Dies entspricht der tatsächlichen Modellierung. 
          </para>



          <para>Durch die Erstellung der zusätzlichen Tabelle <database moreinfo="none">viewdata</database> und den damit verbundenen Schlüssel-Änderungen liegt das Datenbankschema in dritter Normalform vor.</para>

        





        </section> 

      </section> 



    <section id="mc.rekursion">
<title>Rekursion der <wordasword>MetaCharts</wordasword>
</title>
      
      <para>Die Rekursion der <wordasword>MetaCharts</wordasword> kommt durch die Angabe einer <varname>mc_id</varname> in <database moreinfo="none">parent</database> der Tabelle <database moreinfo="none">meta_charts</database> zustande. Steht beispielsweise im Tupel der <database moreinfo="none">meta_charts</database> <varname>mc01</varname> als <database moreinfo="none">parent</database> zu <varname>mc02</varname>, so definiert dies <varname>mc02</varname> als <wordasword>Child</wordasword>-<wordasword>MetaChart</wordasword> zu <varname>mc01</varname>.</para>


        
        
        <informaltable pgwide="0" frame="none">
          <tgroup align="left" cols="2">
            <colspec colwidth="*"/>
            <colspec colwidth="*"/>
            <thead>
            <row>
<entry>
<para>mc_id</para>
</entry>
<entry>
<para>parent</para>
</entry>
</row>
          </thead>
          <tbody>
            <row>
<entry>
<para>mc01</para>
</entry>
<entry>
<para>&#8212;</para>
</entry>
</row>
            <row>
<entry>
<para>mc02</para>
</entry>
<entry>
<para>mc01</para>
</entry>
</row>
            <row>
<entry>
<para>mc03</para>
</entry>
<entry>
<para>mc01</para>
</entry>
</row>
            <row>
<entry>
<para>mc04</para>
</entry>
<entry>
<para>mc02</para>
</entry>
</row>
          </tbody>
          </tgroup>
        </informaltable>

        <para>Diese Tupel in <database moreinfo="none">meta_charts</database> ergeben folgende Struktur:</para>

        <itemizedlist>
        <title>
<wordasword>MetaChart</wordasword>-Hierarchie</title>
        <listitem>
<para>
<wordasword>MetaChart</wordasword> mc01<itemizedlist>
<listitem>
<para>
<wordasword>MetaChart</wordasword> mc02<itemizedlist>
<listitem>
<para>
<wordasword>MetaChart</wordasword> mc04</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
<wordasword>MetaChart</wordasword> mc03</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</itemizedlist>
      

    </section>


    <section id="assoziationen">
<title>Assoziationen der <wordasword>MetaCharts</wordasword>
</title>
      <para>Querverweise zwischen <wordasword>MetaCharts</wordasword> und <wordasword>MetaChart-Attributes</wordasword> heißen im <wordasword>MetaChart</wordasword>-Projekt <wordasword>Assoziationen</wordasword>. Folgende vier Kombinationen sind dabei möglich:</para>

        <informaltable pgwide="0" frame="none">
          <tgroup align="left" cols="2">
            <colspec colwidth="*"/>
            <colspec colwidth="*"/>
            <thead>
            <row>
<entry>
<para>Quelle (<foreignphrase>source</foreignphrase>)</para>
</entry>
<entry>
<para>Ziel (<foreignphrase>destination</foreignphrase>)</para>
</entry>
</row>
          </thead>
          <tbody>
            <row>
<entry>
<para>
<wordasword>MetaChart</wordasword>
</para>
</entry>
<entry>
<para>
<wordasword>MetaChart</wordasword>
</para>
</entry>
</row>
            <row>
<entry>
<para>
<wordasword>MetaChart</wordasword>
</para>
</entry>
<entry>
<para>
<wordasword>MetaChart-Attribute</wordasword>
</para>
</entry>
</row>
            <row>
<entry>
<para>
<wordasword>MetaChart-Attribute</wordasword>
</para>
</entry>
<entry>
<para>
<wordasword>MetaChart</wordasword>
</para>
</entry>
</row>
            <row>
<entry>
<para>
<wordasword>MetaChart-Attribute</wordasword>
</para>
</entry>
<entry>
<para>
<wordasword>MetaChart-Attribute</wordasword>
</para>
</entry>
</row>
          </tbody>
          </tgroup>
        </informaltable>



      <para>Das generische Datenbankschema enthält keine explizite Relation für Assoziationen. Diese werden vielmehr als <wordasword>MetaChart-Attribute</wordasword> desjenigen <wordasword>MetaCharts</wordasword> abgelegt, das als Quelle der Assoziation eingetragen ist.</para>

      <para>Das Feld <database moreinfo="none">value</database> der Tabelle <database moreinfo="none">attributes</database> wird dabei mit einem Java-Objekt <literal moreinfo="none">de.fhg.iao.metachart.Edge</literal> beschrieben.</para>

      <para>Assoziationen sind durch vier IDs bestimmt: source-<varname>mc_id</varname>, source-ID, destination-<varname>mc_id</varname>, destination-ID. Zu den direkten source- und destination-IDs werden auch immer die <varname>mc_id</varname>s derjenigen <wordasword>MetaCharts</wordasword> abgelegt, denen die teilnehmenden Assoziationspartner angehören. Im Falle der Teilnahme eines <wordasword>MetaCharts</wordasword> an der Assoziation wird dessen ID demnach mehrfach (redundant) abgelegt.</para>

    </section>

  </section>
   
</chapter>


  



  

 <chapter id="c3" lang="de">
<title>Realisierung der Repräsentation</title>

  
  <section>
<title>Hilfsmittel zur Wissensrepräsentation</title>


    <section>
<title>Semantische Netze</title>
    


      <section id="konzepte">
<title>Konzepte</title>
      <indexterm significance="normal">
<primary>Konzept</primary>
</indexterm>
        <para>Unter einem Konzept werden alle konkreten und abstrakten Dinge verstanden, die Beschreibungsgegenstand sind und über die Aussagen vorliegen. Die Bezeichnung <quote>Konzept</quote> ist aus dem englischen <foreignphrase>concept</foreignphrase> abgeleitet und meint dasselbe wie die Bezeichnung Begriff, nur ist im Feld der Künstlichen Intelligenz (KI) erstere gebräuchlich. (Vgl. <citation>Reimer91</citation> S. 16)</para>
        <indexterm significance="normal">
<primary>Künstliche Intelligenz</primary>
</indexterm>
        <indexterm significance="normal">
<primary>Artificial Intelligence</primary>
<see>Künstliche Intelligenz</see>
</indexterm>

        <para>Die Merkmale eines Konzepts werden durch Eigenschaften beschrieben, die sich insofern von Konzepten unterscheiden, als primär keine weiteren Aussagen über sie gemacht werden. Eigenschaften werden auch als Attribute oder Attributwerte bezeichnet &#8211; vergleichbar mit den Attributen im Bereich der relationalen Datenbanken (siehe <xref linkend="datenbank"/>).</para>
        <indexterm significance="normal">
<primary>Aussage</primary>
</indexterm>

        <section>
<title>Semantische Beziehungen</title>
<indexterm significance="normal">
<primary>Semantische Beziehung</primary>
<see>Beziehung</see>
</indexterm>
<indexterm significance="normal">
<primary>Beziehung</primary>
<secondary>semantische</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Relation</primary>
</indexterm>
          <para>Konzepte werden neben ihren Eigenschaften auch durch ihre Beziehungen zu anderen Konzepten charakterisiert.</para>
          <para>Diese <wordasword>semantischen Beziehungen</wordasword> (Relationen) bilden Aussagen zu zwei (oder auch mehreren) Konzepten. Zu untergliedern sind semantische Beziehungen u. a. in folgende Beziehungstypen; bei manchen kann Transitivität gegeben sein:</para>
          
          <itemizedlist>
            <listitem>
<para>Teil-von-Beziehung</para>
</listitem>
            <listitem>
<para>Kausal-Beziehung</para>
</listitem>
            <listitem>
<para>Instanz-von-Beziehung</para>
</listitem>
            <listitem>
<para>
<foreignphrase>is-a</foreignphrase>-Beziehung (<foreignphrase>type-subtype-relation</foreignphrase>)</para>
</listitem>
          </itemizedlist>
          
          <para>Aussagen werden durch eine Darstellung wie <quote>
<emphasis>x</emphasis>R<emphasis>y</emphasis>
</quote>, mit R als Relation und <emphasis>x</emphasis>, <emphasis>y</emphasis>, <emphasis>z</emphasis> als Konzepten, formalisiert. Transitivität ist gegeben, wenn gilt:
          <indexterm significance="normal">
<primary>Transitivität</primary>
</indexterm>

          <figure id="transitivitaet" float="0">
            <title>Transitivität</title>
            <mediaobject>
              <imageobject>
                <imagedata format="EPS" fileref="equations/transitivitaet.eps"/>
              </imageobject>
            </mediaobject>
          </figure>
                  

          Beispielsweise muss dies nicht immer für eine Teil-von-Beziehung gelten: physisch ist ein <quote>Griff</quote> Teil einer Tür und somit auch Teil eines Hauses; funktional jedoch nur Teil der Tür. Diese Unterscheidung wird jedoch nicht auf der Beziehungstypebene getroffen. (Vgl. <citation>Reimer91</citation> S. 18)</para>

          <para>Die Unterscheidung zwischen Konzepten, Eigenschaften und semantischen Beziehungen ist nicht a priori festgelegt. Wird eine Eigenschaft oder eine Beziehung näher beschrieben, erhält diese Konzeptcharakter.</para>

        </section>

        <section>
<title>Konzeptklassen</title>
        <indexterm significance="normal">
<primary>Konzept</primary>
</indexterm>
<indexterm significance="normal">
<primary>Klasse</primary>
</indexterm>
<indexterm significance="normal">
<primary>Instanz</primary>
</indexterm>
<indexterm significance="normal">
<primary>Individualkonzept</primary>
<see>Konzept</see>
</indexterm>
<indexterm significance="normal">
<primary>Objekt</primary>
</indexterm>
          <para>Bei Konzepten ist zwischen Konzeptklassen und Individualkonzepten zu unterscheiden. Eine Konzeptklasse steht dabei für eine Menge gleichartiger Objekte (Klassenelemente). Das Individualkonzept hingegen enthält nur ein Objekt. Zu jeder Konzeptklasse gibt es eine Menge von Individualkonzepten; die semantische Beziehung zwischen den beiden nennt sich <emphasis>Instanz-von</emphasis>-Beziehung. Dabei erhält (<quote>erbt</quote>) ein Individualkonzept alle Merkmale, die auch der Konzeptklasse innewohnen.</para>

          <para>Die Unterscheidung zwischen Klasse und Instanz ist in vielerlei Bereichen zu sehen; am bekanntesten ist wohl die objektorientierte Programmierung, aber auch bei XML-Applikationen tritt diese Distinktion auf (siehe auch <xref linkend="mc.xsd"/>).</para>


          <para>Von <emphasis>Unterklassen</emphasis>
<indexterm significance="normal">
<primary>Unterklasse</primary>
<see>Klasse</see>
</indexterm>
<indexterm significance="normal">
<primary>Klasse</primary>
<secondary>Unterklasse</secondary>
</indexterm> spricht man, wenn es zu Konzeptklassen speziellere Konzeptklassen gibt, die einen Unterbegriff des durch die erste Konzeptklasse beschriebenen Begriffs darstellt. Unterklassen definieren speziellere Merkmale zu den von der Konzeptklasse vererbten Merkmalen. Die Ober-/Unterbegriffsbeziehung, die zwischen Klassen und Unterklassen herrscht, ist eine <foreignphrase>is-a</foreignphrase>-Beziehung. Beispiel: <foreignphrase>Cat is-a[n] Animal</foreignphrase>.</para>

          <para>Der Unterschied zwischen den beiden semantischen Beziehungen (Instanz-von, <foreignphrase>is-a</foreignphrase>) besteht demnach darin, 
          dass im ersten Fall ein einzelnes, konkretes, individuelles Objekt in Beziehung gebracht wird, das Element aus der Konzeptklasse ist; im zweiten Fall ist eine (verschiedene) Teilmenge der Elemente/Objekte der Konzeptklasse zu verstehen, die eine speziellere Konzeptklasse für sich bilden.</para>

     
     
          <para>Die Menge aller Konzeptklassen mit den zwischen ihnen bestehenden <foreignphrase>is-a</foreignphrase>-Beziehungen ist als <emphasis>Hierarchie</emphasis>
<indexterm significance="normal">
<primary>Hierarchie</primary>
</indexterm> definiert. (Vgl. <citation>Reimer91</citation> S. 20) <quote>A type hierarchy is a partial ordering of concept types by the type-subtype relation</quote> <citation>Sowa01</citation>.</para>

        </section>
      </section>

      <section id="graphentheorie">
<title>Bäume und Wälder (Graphentheorie)</title>
       
        <para>Ein Graph G<indexterm significance="normal">
<primary>Graph</primary>
</indexterm> ist ein geordnetes <indexterm significance="normal">
<primary>Tripel</primary>
</indexterm>Tripel (N, E, A), wobei N die Menge der Knoten<indexterm significance="normal">
<primary>Knoten</primary>
</indexterm> oder Ecken (nodes), E die Menge der Kanten (edges) und A eine Abbildung (Relation) von E in die geordneten oder ungeordneten Paare aus N bezeichnet. <indexterm significance="normal">
<primary>Relation</primary>
</indexterm>
<indexterm significance="normal">
<primary>Graph</primary>
<secondary>geordnet</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Graph</primary>
<secondary>ungeordnet</secondary>
</indexterm> </para>
        
        <para>Eine Kante <indexterm significance="normal">
<primary>Kante</primary>
</indexterm>
<indexterm significance="normal">
<primary>edge</primary>
<see>Kante</see>
</indexterm>n von G heißt gerichtet, wenn A(n) ein geordnetes Paar von Knoten ist. Hat G nur gerichtete Kanten, so heißt G gerichteter Graph oder Digraph. G heißt einfach, wenn A bijektiv (1-1-deutige Relation von E auf N) ist. Ein konverser (entgegensetzter) Graph wird mit G<superscript>-1</superscript> bezeichnet.</para>

        <para>Ein gerichteter Graph kann zwischen zwei Knoten durchaus mehrere Kanten haben. Solche Kanten nennt man Mehrfachkanten; haben zwei Mehrfachkanten die gleiche Richtung, so sind sie parallel. Ein Graph mit Mehrfachkanten heißt auch Multigraph. Dieser ist nicht 1-1-deutig. (Vgl. <citation>Vachenauer97</citation>)</para>

        <para>Für einen Digraph bedeutet ein Weg/Pfad eine Folge von Kanten, so dass der Endknoten einer jeden Kante der Anfangsknoten der nächsten ist. Fallen Anfangs- und Endknoten zusammen, so liegt ein Kreis (Zyklus) vor. <indexterm significance="normal">
<primary>Zyklus</primary>
</indexterm>
<indexterm significance="normal">
<primary>Graph</primary>
<secondary>Zyklus</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Kreis</primary>
<see>Zyklus</see>
</indexterm>
</para>

        

        <para>Ein Graph, der keinen Kreis enthält, ist ein <emphasis>Wald</emphasis>. Ein zusammenhängender Wald ist ein <emphasis>Baum</emphasis>, also  ein zusammenhängender Graph ohne Zyklen, in dem genau ein Knoten, die Wurzel, den Eingangsgrad 0 hat und alle anderen Knoten den Eingangsgrad 1 haben.</para>

        <para>Ein Baum entspricht demnach der Darstellung einer Hierarchie.<indexterm significance="normal">
<primary>Baum</primary>
<seealso>Hierarchie</seealso>
</indexterm>
<indexterm significance="normal">
<primary>Graph</primary>
<secondary>Baum</secondary>
</indexterm>
</para>

        <para>Ist jeder Knoten eindeutig identifizierbar, so ist der Graph geordnet.<indexterm significance="normal">
<primary>Graph</primary>
<secondary>geordnet</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Topologie</primary>
</indexterm> Dies ist Grundvoraussetzung zur Sortierung der (Baum-)Knoten. Es gibt verschiedene topologische Sortierungen für Bäume. Als die beiden wichtigsten sind die Tiefensuche (auch kanonische Suche genannt) und die Breitensuche zu nennen. Bei der Tiefensuche wird erst ein Weg bis zum Blatt durchlaufen um anschließend im nächsten Teilbaum wieder den direkten Weg bis zum Blatt einzuschlagen. Mit der Methode der Breitensuche hingegen würden jeweils zuerst alle Knoten einer Ebene durchlaufen. (Vgl. <citation>Diestel00</citation>)<indexterm significance="normal">
<primary>Tiefensuche</primary>
<seealso>Baum</seealso>
</indexterm>
<indexterm significance="normal">
<primary>Breitensuche</primary>
<seealso>Baum</seealso>
</indexterm>
</para>

        

    
  

    </section>



    <section id="cg">
<title>Conceptual Graphs</title>
      <indexterm significance="normal">
<primary>Conceptual Graphs</primary>
</indexterm>
<indexterm significance="normal">
<primary>konzepueller Graph</primary>
<see>Conceptual Graphs</see>
</indexterm>
<indexterm significance="normal">
<primary>Graph</primary>
<secondary>konzeptueller</secondary>
<see>Conceptual Graphs</see>
</indexterm>
      <para>Als Möglichkeit zur formalen Wissensrepräsentation<indexterm significance="normal">
<primary>Wissensrepräsentation</primary>
</indexterm> wurde von John F. Sowa die Theorie der konzeptionellen Graphen (<foreignphrase>Conceptual Graphs</foreignphrase>, CG) entwickelt. Sie definiert Graphen und das Regelwerk, mit dessen Hilfe die Graphen modelliert werden können. Sie beruht auf der von Charles Sanders Peirce formulierten Logik mit ihren <emphasis>existenziellen Graphen</emphasis> und auf den <emphasis>semantischen Netzen</emphasis> der Künstlichen Intelligenz (KI):<indexterm significance="normal">
<primary>Künstliche Intelligenz</primary>
</indexterm>
<indexterm significance="normal">
<primary>Logik</primary>
</indexterm>
<indexterm significance="normal">
<primary>Peirce</primary>
</indexterm>
</para>

      <para lang="en">
<quote>They express meaning in a form that is logically precise, humanly readable, and computationally tractable. With a direct mapping to language, conceptual graphs serve as an intermediate language for translating computer-oriented formalisms to and from natural languages. With their graphic representation, they serve as a readable, but formal design and specification language</quote> <citation>Sowa01</citation>.</para>

      <note>
<title>
<foreignphrase>Existential Graphs</foreignphrase> nach Peirce</title>
<para>
<quote>By an existential relation I mean any relation <emphasis>R</emphasis>, such that anything that is <emphasis>R</emphasis> to <emphasis>x</emphasis> (where <emphasis>x</emphasis> is some particular kind of object) is nonexistent in case <emphasis>x</emphasis> is nonexistent. Thus lovers of women of bright green complexions are nonexistent in case there are no such women</quote> <citation>Sowa01</citation>.</para>
<indexterm significance="normal">
<primary>Relation</primary>
<secondary>existenzielle</secondary>
</indexterm>
</note>

      <para>Ein CG besteht aus Knoten <indexterm significance="normal">
<primary>Knoten</primary>
</indexterm>und verbindenden gerichteten <indexterm significance="normal">
<primary>Kante</primary>
</indexterm>Kanten. Sowohl Konzepte <indexterm significance="normal">
<primary>Konzept</primary>
</indexterm>als auch Relationen werden als Knoten bezeichnet; die Verbindung zweier Relationen ist dabei ungültig. Diese disjunkte Trennung zwischen Konzepten und Relationen erlaubt somit keine genauere Beschreibung der Relationen mittels Relationen, wie in <xref linkend="konzepte"/> angedeutet.</para>

      <para>Sowa definiert Konzepte hier als <emphasis>etwas</emphasis>, das auf eine Entität, eine Sammlung oder einen Bereich von Entitäten verweist. Entitäten sind dabei alles, was existiert, existierte und existieren könnte; also Objekte aus der realen Welt.</para>

      <indexterm significance="normal">
<primary>Entität</primary>
</indexterm>

      <para>Grafisch werden Konzepte durch Rechtecke, Relationen durch Ellipsen und die Kanten als Pfeile dargestellt. In der linearen Notation sind die Konzepte mit eckigen Klammern, die Relationen mit runden einzuschliessen:</para>

      <screen format="linespecific">[Cat]-&gt;(On)-&gt;[Mat]</screen>

      <para>Als Beispiel wird in der Literatur gern Eric Mottrams (1924-1995) Stabreim <quote>
<foreignphrase>The cat sat on the mat</foreignphrase>
</quote> bzw. <quote>Die Katze saß auf der Matratze</quote> angeführt. <literal moreinfo="none">[Cat]</literal> repräsentiert dabei eine Instanz<indexterm significance="normal">
<primary>Instanz</primary>
</indexterm> einer Katze, <literal moreinfo="none">[Mat]</literal> eine Instanz einer Matratze. Die <foreignphrase>Conceptual Relation</foreignphrase> <literal moreinfo="none">(On)</literal> verbindet die zwei Instanzen:</para>

      <figure float="0">
        <title>
<foreignphrase>Conceptual Graph</foreignphrase>
</title>
        <mediaobject>
          <imageobject>
            <imagedata format="EPS" fileref="images/cg/catonmat.EPS"/>
          </imageobject>
        </mediaobject>
      </figure>


      <para>Das Modell der <foreignphrase>Conceptual Graphs</foreignphrase> ist in vielen Punkten im <foreignphrase>Resource Description Framework</foreignphrase> wiederzuerkennen. (Siehe <xref linkend="rdf"/>)</para>

      

      
    </section>

    <section>
<title>Netze</title>
      <indexterm significance="normal">
<primary>Semantisches Netz</primary>
</indexterm>
<indexterm significance="normal">
<primary>Konzept</primary>
</indexterm>
      

      <para>Eine Anzahl von Konzepten, die semantisch in Beziehung zueinander stehen, läßt sich als Netzwerk darstellen, in dem Knoten die Konzepte und Kanten die Beziehungen versinnbildlichen und so Aussagen bilden, die miteinander vernetzt werden. Semantische Netzwerke gewinnen ihre Ausdrucksstärke durch unterschiedliche Kantentypen.</para>
      <para>Die Modellierung mit semantischen Netzen steht nach Reimer unter der Vereinbarung der Namenseindeutigkeit der Knoten sowie der Einmaligkeit der Knoten, d. h. jeder Knoten (oder jedes Konzept) ist ein Unikat, definiert durch seine Beschriftung. Die Typisierung der Kanten wiederum ist auf verschiedenen Ebenen anzusiedeln. Kantentypen wie <foreignphrase>is-a</foreignphrase>, hat-Teil und synonym sind domänenunabhängig, also <emphasis>epistemische Primitive</emphasis>, die a priori als Grundvokublar anzusehen sind. (Vgl. <citation>Reimer91</citation> S. 15f;)</para>

    </section>
 
  </section>

  <section>
<title>Prädikatenlogik und Inferenz</title>
    <para revision="reimer,29">Logik kann dazu herangezogen werden, Wissen zu repräsentieren und Schlussfolgerungen auf diesem Wissen zu ermöglichen. Ihre Attraktivität liegt dabei in der schon eingeführten Syntax und Semantik sowie in der Bereitstellung eines Schlussfolgerungsapparats.</para>
    <indexterm significance="normal">
<primary>Prädikatenlogik</primary>
</indexterm>
<indexterm significance="normal">
<primary>Logik</primary>
<secondary>Prädikatenlogik</secondary>
</indexterm>
    <para revision="unnoetig">Interessant in Bezug auf Wissensrepräsentation <indexterm significance="normal">
<primary>Wissensrepräsentation</primary>
</indexterm>ist die Prädikatenlogik, in der sich <quote>Variablen nur auf Funktionssymbole, nicht aber auf Prädikatsymbole beziehen können</quote> (<citation>Reimer91</citation> S. 29). D. h., es sind keine weiteren Aussagen über die Prädikate möglich, was analog zu den Relationen der <foreignphrase>conceptual graphs</foreignphrase> zu sehen ist. In der (klassischen) Aussagenlogik sind Aussagen atomar, d. h. es sind keine Aussagen über Teile der Aussagen möglich.<indexterm significance="normal">
<primary>Aussage</primary>
</indexterm>
</para> 
    <indexterm significance="normal">
<primary>Konzept</primary>
</indexterm>
    <para>In der Prädikatenlogik stehen <wordasword>Terme</wordasword> für Objekte und somit für Konzepte, während <wordasword>Formeln</wordasword> Aussagen über Objekte darstellen. (Vgl. <citation>Reimer91</citation> S. 29)</para>

    <para>Ein wesentliches Merkmal dieser Logik besteht darin, dass unter Zuhilfenahme von <emphasis>Inferenzregeln</emphasis>
<indexterm significance="normal">
<primary>Inferenz</primary>
</indexterm>
<indexterm significance="normal">
<primary>Regel</primary>
<secondary>Inferenzregel</secondary>
</indexterm> neue Aussagen abgeleitet werden können. Aus einer impliziten wird eine explizite Darstellung, was menschlichem Schlussfolgern sehr nahe kommt.</para>


    <para>Eine allgemein bekannte und in der KI am häufigsten angewandte Inferenzregel ist der <wordasword>modus ponens</wordasword>, der auf Implikation<indexterm significance="normal">
<primary>Implikation</primary>
</indexterm> basiert. Darum wird auch in der KI oft einfache Induktion schon als Inferenzregel bezeichnet. Der modus ponens besagt, dass eine Aussage <emphasis>b</emphasis> dann wahr ist, falls <emphasis>a</emphasis> gilt und aus der Aussage <emphasis>a</emphasis> die Aussage <emphasis>b</emphasis> folgt. (Vgl. <citation>Reimer91</citation> S. 33)</para>


    <para>Inferenzregeln werden wie folgt notiert:
      <equation id="inferenzregel">
<title>Allgemeine Inferenzregel</title>
      <alt>a,b&gt;c</alt>
<mediaobject>
      <audioobject>
<audiodata fileref=""/>
</audioobject>
      <textobject>
      <literallayout class="monospaced" format="linespecific">
a
b
-
c
      </literallayout>
      </textobject>
</mediaobject>
      </equation>
    </para>







    
    
    <para>Auf <foreignphrase>is-a</foreignphrase>-Relationen bezogen, bedeutet dies: Für <emphasis>x</emphasis> is-a <emphasis>y</emphasis> und <emphasis>y</emphasis> is-a <emphasis>z</emphasis> gilt <emphasis>x</emphasis> is-a <emphasis>z</emphasis>.

      <equation>
<title>Inferenz der <foreignphrase>is-a</foreignphrase>-Relation</title>
      <alt>x is-a y is-a z</alt>
      <mediaobject>
<audioobject>
<audiodata fileref=""/>
</audioobject>
      <textobject>
      <literallayout class="monospaced" format="linespecific">
x is-a y
y is-a z
--------
x is-a z
      </literallayout>
      </textobject>
</mediaobject>
      </equation>Somit ist die <foreignphrase>is-a</foreignphrase>-Relation als transitiv definiert.<indexterm significance="normal">
<primary>Transitivität</primary>
</indexterm>
</para>



    <para>Verbunden mit CG ist folgendes Beispiel anzuführen:
      <equation id="mammal">
<title>Inferenz mit <foreignphrase>Conceptual Graphs</foreignphrase>
</title>
      <alt>cat</alt>
      <mediaobject>
      <audioobject>
<audiodata fileref=""/>
</audioobject>
      <textobject>
      <literallayout class="monospaced" format="linespecific">
[Cat]--&gt;(is-a)--&gt;[Mammal]
[Mammal]--&gt;(is-a)--&gt;[Animal]
----------------------------
[Cat]--&gt;(is-a)--&gt;[Animal]</literallayout>
      </textobject>
</mediaobject>
      </equation>
    </para>

    <para>Um Redundanz zu vermeiden, könnten derartige transitive Kanten bei der Modellierung einer Wissensrepräsentation weggelassen werden. Hier ist auch eine Analogie zur dritten Normalform im Datenbankdesign zu sehen, bei der dies Voraussetzung ist (<xref linkend="normalform"/>).</para>

    




  </section>

  
  <section>
<title>XML und Semantik</title>
    

    <indexterm significance="normal">
<primary>Semantik</primary>
</indexterm>
    <para>Robin Cover sieht es als <quote>alte SGML-Polemie</quote> an, zu behaupten, XML würde durch seine oft selbstbeschreibenden <foreignphrase>Tags</foreignphrase> wie z. B. <sgmltag>TITLE</sgmltag>, <sgmltag>Paragraph</sgmltag> oder <sgmltag>association</sgmltag> deren Bedeutung implizieren. Für den Menschen mag der Name eines Elements oder eines Attributs durchaus andeuten, um welche Art von Information es sich handelt, für einen SGML/XML-Prozessor jedoch sind die <foreignphrase>Tags</foreignphrase> alle gleichermaßen <emphasis>bedeutungslos</emphasis>. Dies rührt auch daher, dass (<foreignphrase>plain</foreignphrase>) XML <quote>nur</quote> eine syntaktisch definierte Serialisierung<indexterm significance="normal">
<primary>Serialisierung</primary>
</indexterm> darstellt. (Vgl. <citation>Cover98</citation>)</para>

    <para>Um verschiedenartige XML-Dokumente dennoch ohne Verlust der Bedeutung austauschen zu können, bedarf es einer semantischen Erklärung der verwendeten Elemente. Idealerweise ist auch diese Erklärung nicht nur für Menschen sondern auch Maschinen <emphasis>verständlich</emphasis>, was letztlich durch Verweise von diesen Elementen auf einen Pool von bekanntem, exakt definiertem Vokabular realisiert wird.</para>


    <indexterm significance="normal">
<primary>Ontologie</primary>
</indexterm>
    <para>Als Ziel einer formalen Sprache für Ontologien ist eine XML-Serialisierung wünschenswert, da diese den Austausch der Ontologien/Daten in einem standardisierten Format ermöglicht. Durch die weite Verbreitung von XML gibt es sehr viele Software-Anwendungen zur Weiterverarbeitung, die für Ontologien wiederverwendet und erweitert werden können: 
    
    <quote>To represent a conceptualization a representation language is needed. [&#8230;] For applications on the web it is important to have a language with a standardized syntax. Because XML [Extensible Markup Language] emerges to be the standard language for data interchange on the web, it is desirable to also exchange ontologies using an XML syntax, thus simplifying the task of writing parsers. This requirement leads again to XML-based languages, defining a language on top of XML</quote> <citation>DeckerSW</citation>.</para>


    <para>Einen Überblick über die in dieser Arbeit berücksichtigten <quote>Aufbauten</quote> zu XML gibt <xref linkend="xml.aufbauten"/> (angelehnt an <citation>Berners01</citation>). Zu XHTML sei nur gesagt, dass es eine XML-konforme Erweiterung des in SGML definierten HTML4-Standards darstellt (Vgl. <citation>Pemberton00</citation>).</para>

  
    <figure id="xml.aufbauten" float="0">
      <title>Wissensrepräsentation mit XML</title>
      <mediaobject>
        <imageobject>
          <imagedata format="EPS" fileref="images/schichten/schichtenmodell.EPS"/>
        </imageobject>
      </mediaobject>
    </figure>
    

    
   



  </section>

  


  <section id="ontologie.klassen">
<title>Konzeptklassen für eine <wordasword>MetaChart</wordasword>-Ontologie</title>

    <para>Eine Basisontologie enthält die grundlegenden Konzepte einer Domäne. Sie ist analog zu einem XML-Schema, einem Template in <foreignphrase>Topic Maps</foreignphrase> oder Klassen im <foreignphrase>Resource Description Framework</foreignphrase> anzusehen. Die Basisontologie benötigt dabei in Übereinstimmung mit [Gruber93] dem <foreignphrase>Entity Relationship Diagram</foreignphrase> ähnliche Begriffe: <quote>Ontologies are also like conceptual schemata in database systems.</quote>
</para>
    <para>Die Ontologie wird durch folgendes Modell bestimmt:

      <itemizedlist>
        <listitem>
<para>
<wordasword>MetaCharts</wordasword> betten <wordasword>MetaChart-Attributes</wordasword> ein.</para>
</listitem>
        <listitem>
<para>
<wordasword>MetaDatas</wordasword> beschreiben <wordasword>MetaCharts</wordasword> und <wordasword>MetaChart-Attributes</wordasword>.</para>
</listitem>
        <listitem>
<para>
<wordasword>Views</wordasword> stellen <wordasword>MetaCharts</wordasword> und <wordasword>MetaChart-Attributes</wordasword> dar.</para>
</listitem>
        <listitem>
<para>
<wordasword>MetaCharts</wordasword> treten als <foreignphrase>parent</foreignphrase> und <foreignphrase>child</foreignphrase> auf, und gehen entsprechende <foreignphrase>relationship</foreignphrase>-Beziehungen ein.</para>
</listitem>
        <listitem>
<para>
<wordasword>MetaCharts</wordasword> und <wordasword>MetaChart-Attributes</wordasword> assoziieren sich gegenseitig.</para>
</listitem>
      </itemizedlist>

    </para>
    <para>Die Entität <wordasword>User</wordasword> wird wie im relationalen Datenbankschema (siehe <xref linkend="mc.reldb"/>) als spezielles <wordasword>MetaChart</wordasword> gehandhabt und somit hier nicht explizit aufgeführt. Die Entität <wordasword>Views</wordasword> als Container für Darstellungsdaten enthält keine semantischen Auszeichnungen, die für die Erstellung einer Ontologie ausschlaggebend sind.</para>

  
    <figure float="0">
      <title>Konzepte und deren Beziehungen in <wordasword>MetaChart</wordasword>
</title>
      <mediaobject>
        <imageobject>
          <imagedata format="EPS" fileref="images/konzepte/mc-attr-md-vi.EPS"/>
        </imageobject>
      </mediaobject>
    </figure>



  </section>

  </section>




  
  

  <section id="extraktion">
<title>Extraktion der Daten</title>




    <section id="algorithmus">
      <title>Algorithmus</title>
      <para>Der zugrundliegende Algorithmus zur Datenbankextraktion gestaltet sich für die verschiedenen Zielformate identisch. Erst in der Aufbereitung der Daten zur Ausgabe zeigen sich Unterschiede. Ein <wordasword>MetaChart</wordasword> als Ausgangsbasis betrachtend sind folgende Bereiche zu unterscheiden:
      <itemizedlist>
        <listitem>
<para>
<wordasword>MetaDatas</wordasword>
</para>
</listitem>
        <listitem>
<para>
<wordasword>MetaChart-Attributes</wordasword>
</para>
</listitem>
        <listitem>
<para>
<wordasword>Views</wordasword>
</para>
</listitem>
        <listitem>
<para>
<wordasword>Children</wordasword>
</para>
</listitem>

      </itemizedlist>
      </para>
      <para>Für jede dieser Einheiten steht eine eigene Methode zur Verfügung, die von der übergeordneten Methode <literal moreinfo="none">processMetaChart</literal> aufgerufen werden. In <literal moreinfo="none">processChildren</literal> wird für jedes <wordasword>Child</wordasword>-<wordasword>MetaChart</wordasword> die Methode <literal moreinfo="none">processMetaChart</literal> rekursiv gestartet. Assoziationen werden in <literal moreinfo="none">processAttributes</literal> behandelt.</para>
      

      <para>Einzelne <wordasword>MetaChart-Attributes</wordasword> besitzen ebenso wie <wordasword>MetaCharts</wordasword> <wordasword>MetaDatas</wordasword> und <wordasword>Views</wordasword>; dementsprechend werden dieselben Methoden auch von der <wordasword>MetaChart-Attribute</wordasword>-verarbeitenden Methode aufgerufen, d. h. sowohl <literal moreinfo="none">processMetaChart</literal> als auch <literal moreinfo="none">processAttribute</literal> rufen 
      <literal moreinfo="none">processMetaDatas</literal> und <literal moreinfo="none">processViews</literal> auf.</para>
      
      

      <para>
      <figure id="methodenabhaengigkeiten" float="0">
        <title>Abhängigkeiten der konzeptverarbeitenden Methoden</title>
        <mediaobject>
          <imageobject>
            <imagedata format="EPS" fileref="images/methods/methoden.EPS"/>
          </imageobject>
        </mediaobject>
      </figure>
      </para>

      <para>Jede dieser fünf Methoden arbeitet nach einem ähnlichen Algorithmus (siehe <xref linkend="figure.schleife"/>): Zu einer übergebenen ID (<database moreinfo="none">mc_id</database> oder <database moreinfo="none">attr_id</database>) werden die davon abhängigen IDs ermittelt um die zugehörigen Inhalte, die z. B. im <literal moreinfo="none">MetaChart</literal>-Objekt zwischengespeichert werden, der Dokumentinstanz anzuhängen.</para>
      <para>Eine Anfrage dieser Art findet sich z. B. in der Methode <literal moreinfo="none">Service.getAttributeIds(ID)</literal>.</para> 

      <para>
      <figure id="figure.schleife" float="0">
        <title>Algorithmus innerhalb einer konzeptverarbeitenden Methode</title>
        <mediaobject>
          <imageobject>
            <imagedata format="EPS" fileref="images/methods/struktogramm.EPS"/>
          </imageobject>
        </mediaobject>
      </figure>
      </para>


      
      

      <para>Den Einstieg liefert eine erste Datenbankanfrage, die eine Liste von <database moreinfo="none">mc_id</database>s als <literal moreinfo="none">Vector</literal> zurückgibt:
      <screen format="linespecific">Vector mcIds = Service.getStartingMetaChartIds();</screen>
      </para>
      <para>Je nach Umfang des Exports kann dies eine bis viele IDs umfassen. Sinnvoll ist z. B. der Einstieg über ein Session-<wordasword>MetaChart</wordasword>, dessen ID alternativ mitübergeben werden kann. Zurückgegeben werden dann nur die davon abhängigen IDs, d. h. nur die in dieser Sitzung erstellten <wordasword>MetaCharts</wordasword> werden exportiert; diese sind <wordasword>Child</wordasword>-<wordasword>MetaCharts</wordasword> des <wordasword>Session</wordasword>-<wordasword>MetaCharts</wordasword>.</para>
      <para>Im Gegensatz zum Export aller <wordasword>MetaCharts</wordasword> aus der Datenbank, was bei mehreren Sitzungen einen Wald als Resultat lieferte, erhält man so einen Baum. (Siehe auch <xref linkend="mc.rekursion"/> und <xref linkend="graphentheorie"/>)</para>

        
        <indexterm significance="normal">
<primary>DOM</primary>
</indexterm>
        <para>XML-Instanzen werden im <foreignphrase>Document Object Model</foreignphrase> (DOM) durch Bäume dargestellt. Deshalb ist eine der in <xref linkend="graphentheorie"/> dargestellten Traversierungsmethoden (auch Plättung genannt) heranzuziehen, um den Baum sequentiell in ein Dokument zu schreiben, d. h. zu serialisieren.<indexterm significance="normal">
<primary>Serialisierung</primary>
</indexterm>
</para>

        


     
      <section>
<title>Datenbankanfragen</title>
        <para>Sämtliche Methoden zur Datenbankabfrage sind in der Klasse <literal moreinfo="none">Service</literal> abgelegt. (Siehe <xref linkend="class.service"/>) </para>
        
        <para>Die Methoden geben meist Objekte der Klassen <literal moreinfo="none">Vector</literal>, <literal moreinfo="none">Hashtable</literal> oder <literal moreinfo="none">String</literal> zurück, wobei Vektoren oft nur eine Liste interessierender IDs für weitere Anfragen enthalten; in Hashtables werden beispielsweise spezielle Objekte wie <literal moreinfo="none">MetaChart</literal> und <literal moreinfo="none">MetaDatas</literal> mit dessen IDs als Schlüssel abgelegt.</para>

      
        <note>
<para>Eine komplette Serialisierung der Datenbankinhalte stellt eine spezielle Sichtweise auf die Daten dar. So könnte man sich einen relationalen <wordasword>View</wordasword> (Sicht) auf die Datenbank als Repräsentation der Daten vorstellen. Von einer Sicht ist nur der Bildungsalgorithmus abgespeichert: <quote>Zentral für die Definition eines Views ist die Verwendung eines <acronym>SELECT</acronym>-Kommandos</quote> (<citation>Vossen00</citation> S. 134). Dieser Anfrageausdruck ist hier anhand von <foreignphrase>equi-joins</foreignphrase> zu realisieren. Diese <foreignphrase>joins</foreignphrase> geben diejenigen Tupel verschiedener Tabellen zurück, die identische Attributwerte enthalten.</para>

        <para>Das <foreignphrase>Result Set</foreignphrase> jedoch ist nicht unbedingt handlich in der Weiterverarbeitung,.</para>
</note>


      </section>
      
      
      



    </section>

      
  </section>




    


  
  

  <section>
<title>Erstellung</title>

    <para>Die in <xref linkend="ontologie.klassen"/> diskutierten Konzepte werden via Instanz-von-Beziehungen mit den in einer Individualschicht auftretenden Individualkonzepten verbunden. Hier treten die gleichen Beziehungen wie in der Konzeptschicht auf.</para>


    <figure float="0">
      <title>Konzepte und Individuen im <wordasword>MetaChart</wordasword>-Export</title>
      <mediaobject>
        <imageobject>
          <imagedata format="EPS" fileref="images/konzepte/metachart_class-instance_layer.EPS"/>
        </imageobject>
      </mediaobject>
    </figure>



    

  
  

  
  <section id="mc">
<title>
<wordasword>MetaChart</wordasword>-XML</title>
  <indexterm significance="normal">
<primary>XML</primary>
</indexterm>

    <section id="mc.baum">
<title>XML-Aufbau/-Elemente</title>
      <para>Die Form der <wordasword>MetaChart</wordasword>-XML-Struktur ist stark von der Datenbankstruktur bestimmt, jedoch nicht nur eine tabellenbasierte Abbildung, bei der die <foreignphrase>Document Type Definition</foreignphrase> (DTD) dem Datenbankschema entspräche. Der folgende Baum beschreibt den Zusammenhang zwischen den verschiedenen Konzepten <wordasword>MetaChart</wordasword>, <wordasword>MetaData</wordasword>, <wordasword>MetaChart-Attribute</wordasword> und <wordasword>View</wordasword> und entspricht somit eher einer objektbasierten Abbildung:</para>

      <itemizedlist>
<title>
<varname>metacharts</varname>
</title>
        <listitem>
<para>
<varname>metachart</varname>
</para>
          <itemizedlist>
            <listitem>
<para>
<varname>metadatas</varname>
</para>
</listitem>
            <listitem>
<para>
<varname>views</varname>
</para>
</listitem>
            <listitem>
<para>
<varname>attributes</varname>
</para>
              <itemizedlist>
                <listitem>
<para>
<varname>attribute</varname>
</para>
                <itemizedlist>
                  <listitem>
<para>
<varname>metadatas</varname>
</para>
</listitem>
                  <listitem>
<para>
<varname>views</varname>
</para>
</listitem>
                  <listitem>
<para>
<varname>value</varname>
</para>
</listitem>
                </itemizedlist>
               </listitem>
              </itemizedlist>
            </listitem>
            <listitem>
<para>
<varname>children</varname>
</para>
              <itemizedlist>
                <listitem>
<para>Referenz auf oder Einbettung von <varname>metachart</varname>
</para>
</listitem>
              </itemizedlist>
            </listitem>
          </itemizedlist>
        </listitem>
        <listitem>
<para>
<varname>metachart</varname>
</para>
          <itemizedlist>
<listitem>
<para>&#8230;</para>
</listitem>
</itemizedlist>
        </listitem>
        <listitem>
<para>&#8230;</para>
</listitem>
      </itemizedlist>


      <para>Dieser Aufbau wiederholt sich prinzipiell auch in <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase> und im <foreignphrase>Resource Description Framework</foreignphrase>; auch die jeweiligen Signaturen der Java-Methoden sind ähnlich. 
      Mittels eines Schalters (Java-<foreignphrase>Property</foreignphrase>) kann zwischen einer baumartigen und einer flachen XML-Instanz gewählt werden, d. h. die <wordasword>Child</wordasword>-<wordasword>MetaCharts</wordasword> können entweder komplett als Kindelement von <varname>children</varname> auftreten oder aber als Verweis mittels <varname>mcref</varname> (<sgmltag>IDREF</sgmltag>) zur entsprechenden <varname>mc_id</varname> (<sgmltag>ID</sgmltag>) nur referenziert werden. Beide Abbildungen zeigen jeweils andere Vorteile &#8211; je nach Anwendungsfall, z. B. Transformation in eine visuelle Darstellung (siehe <xref linkend="xsl"/>) oder bei Importen &#8211; auf.</para>
    </section>

    <section>
<title>Strukturvergleich</title>
      <para>XML stellt eine sehr vielseitige Formalisierung zum Datenaustausch dar. Um Daten jedoch zu speichern und individuell zugreifbar zu machen, sind (relationale) Datenbanken in den meisten Bereichen unschlagbar. Diese basieren auf den mathematischen Arbeiten von E. F. Codd im Jahre 1970 &#8211; die <wordasword>Boyce-Codd-Normalform</wordasword> stellt eine Verschärfung der dritten Normalform dar.</para>

      <para>Während die Struktur der XML-Repräsentation einer Hierarchie entspricht und somit hierarchischen (HDBMS, <foreignphrase>Hierarchical Database Management System</foreignphrase>) und auch objektorientierten Datenbanken (ODBMS, <foreignphrase>Object Database Management System</foreignphrase>) gleicht, ist das relationale Modell (RDBMS, <foreignphrase>Relational Database Management System</foreignphrase>) <quote>flach</quote>. Letzteres zeigt grosse Vorteile in selektiven Anfragen, erschwert jedoch die Erstellung: <quote>the design of tables can become quite elaborate, involving subtle decisions</quote> <citation>Mertz01</citation>.</para>

      <para>Dass jedes Stück Information an nur einer Stelle in der Datenbank abgelegt wird, bringt ein hierarchisches Modell fast automatisch mit sich; im relationelen Kontext ist die Vermeidung von Redundanzen durch <wordasword>Normalisierung</wordasword> der Tabellen zu erarbeiten. Im Vergleich zu HDBMS stellen sich manche Anfragen an an ein RDBMS relativ umständlich dar; Anfragen, die im HDBMS jedoch nur sehr schwer zu formulieren sind, bewerkstelligt ein RDBMS mühelos. (Vgl. <citation>Mertz01</citation>)</para>
    
      <para>Das mächtigste Instrument in relationalen Datenbanken stellt jedoch die Überprüfung von Einschränkungen (<foreignphrase>constraints</foreignphrase>) dar, die beim Design der Datenbank beispielsweise mittels Kardinalitäten in Beziehungen zwischen Attributen verschiedener Tabellen formuliert werden. Diese definieren die Häufigkeit der Teilnahme der Beziehungspartner in der Relation.</para>

      <para>Selbst bei strukturellen Änderungen des Datenbankschemas kann eine inhaltsabbildende XML-Instanz meist gleich bleiben, da sich zum Exportieren der Daten oft nur die Anfrageformulierungen ändern. Selbst diese können in <foreignphrase>Views</foreignphrase> (siehe <xref linkend="extraktion"/>) auf ein Modell bestimmt werden, so dass für den Export an sich keine Änderungen vorzunehmen sind.</para>
    </section>


    <section>
      <title>
<wordasword>MetaChart</wordasword>-DTD</title>
<indexterm significance="normal">
<primary>DTD</primary>
</indexterm>

      <para>Die <foreignphrase>Document Type Definition</foreignphrase> (DTD) legt das <foreignphrase>Content-Model</foreignphrase> (Inhaltsmodell) einer XML-Applikation fest. Sie beschreibt den Aufbau der nach ihr konformen XML-Instanzen, d. h. es werden die Namen der Elemente und deren Attribute festgelegt, sowie die Struktur der Elemente zueinander. (Erst dadurch wird XML zur XML-Applikation.) <quote>A DTD can be regarded as a very primitive ontology, however, it is basically just a set of terms and does not define the relationship between different terms</quote> <citation>DeckerSW</citation>.</para>

      <para>Attribute können eine spezielle Ausweisung, wie z. B. die als <sgmltag>ID</sgmltag>, erhalten, d. h. Attributwerte dieser Attribute müssen eindeutig sein und bestimmte formale Voraussetzungen erfüllen. Nach <citation>Bray00</citation> dürfen diese ID-Werte beispielsweise nicht mit Ziffern beginnen.</para>

      <para>Für welche Inhalte jeweils Elemente oder Attribute erstellt werden, ist nicht a priori festgelegt (Vgl. <citation>Cover02</citation>). Identifizierende Werte als <sgmltag>ID</sgmltag>-Attribute anzuführen ist jedoch sinnvoll, da so validierende Parser die genannten und andere <foreignphrase>Constraints</foreignphrase> (Einschränkungen) &#8211; z. B. müssen <sgmltag>IDREF</sgmltag>s auf <sgmltag>ID</sgmltag>s verweisen &#8211; überprüfen können. Attribute dürfen jedoch nur einfache Strings ohne Anführung enthalten &#8211; <sgmltag>CDATA</sgmltag>-Sections, die die für XML reservierten Zeichen wie <literal moreinfo="none">&lt;</literal> und <literal moreinfo="none">&amp;</literal> enthalten dürfen, jedoch dort nicht als <foreignphrase>MarkUp</foreignphrase> (Befehle für den Parser) geparst werden, sind in Attributen nicht vorgesehen. Gerade für Elemente, die keinen explizit definierten Inhalt enthalten, ist dieses Konstrukt praktisch unverzichtbar. <sgmltag>CDATA</sgmltag>-Sections werden in XML durch die Tags <literal moreinfo="none">&lt;![CDATA[</literal> und <literal moreinfo="none">]]&gt;</literal> eingeschlossen. Im Falle des Auftretens der Zeichenfolge <literal moreinfo="none">]]&gt;</literal> im Content &#8211; was die <sgmltag>CDATA</sgmltag>-Section beenden würde und zu nicht wohlgeformtem XML führe &#8211; kann die <sgmltag>CDATA</sgmltag>-Section zwischen <literal moreinfo="none">]</literal> und <literal moreinfo="none">]&gt;</literal> geschlossen und sodann unmittelbar neu begonnen werden.</para>

      <para>Bei Elementen und Attributen gelten also unterschiedliche Constraints: So ist auch die Reihenfolge der Attribute eines Elements nicht vorgeschrieben. Eine Mehrfachverwendung eines Attributs innerhalb eines Elements ist nicht zulässig: Im Gegensatz zu Elementen müssen die Attribute eindeutig sein, d. h. die Häufigkeit des Auftretens von Elementen kann in der DTD mittels Konnektoren (<foreignphrase>Occurrence Operators</foreignphrase>) (<literal moreinfo="none">?</literal>, <literal moreinfo="none">+</literal> und <literal moreinfo="none">*</literal>) definiert werden. Attribute hingegen können als (nicht) zwingend und Attributwerte durch einer Auswahl an (fixen) Werten festgesetzt werden.</para>
      

      <para>Die explizite Umsetzung der <wordasword>MetaChart</wordasword>-Struktur in eine DTD ist in <xref linkend="appendix.mc.dtd"/> zu sehen.</para>

    </section>

    
    <section id="mc.xsd">
<title>XML-Schema für <wordasword>MetaChart</wordasword>
</title>
    <indexterm significance="normal">
<primary>XML-Schema</primary>
</indexterm>



   


      <para>Je restriktiver bestimmt ist, welchen Regeln die Dokumentinstanzen gerecht werden müssen, umso früher können Fehler im Vorfeld durch einen validierenden Parser abgefangen werden. Das <foreignphrase>Content-Model</foreignphrase> sowie die <foreignphrase>Constraint</foreignphrase>-Modellierung der DTDs ist relativ ausdrucksschwach (vgl. <citation>Fallside01</citation>). Deshalb enstand neben einer Reihe anderer Schemasprachen das XML-Schema, das in manchen Bereichen als Nachfolger der DTDs zu sehen ist: <quote>The purpose of a schema is to define a class of XML documents, and so the term <quote>instance document</quote> is often used to describe an XML document that conforms to a particular schema</quote> <citation>Fallside01</citation>. Die Elemente von XML-Schema sind in einem eigenen Namensraum definiert.</para>

      <indexterm significance="normal">
<primary>Instanz</primary>
</indexterm>
      <indexterm significance="normal">
<primary>XML</primary>
<secondary>Instanz</secondary>
</indexterm>
      <indexterm significance="normal">
<primary>Klasse</primary>
<secondary>Instanz</secondary>
</indexterm>

      <note>
<title>Namensraum</title>
        <para>(<foreignphrase>Namespaces</foreignphrase>) sind Erweiterungen zur XML-Syntax in Form reservierter Attribute, die mit <literal moreinfo="none">xmlns</literal> beginnen. Als Attributwert ist eine URI anzugeben. Im jeweiligen Gültigkeitsbereich (<foreignphrase>scope</foreignphrase>) des <foreignphrase>Namespaces</foreignphrase> innerhalb einer XML-Instanz dürfen die Elemente des jeweiligen Namensraums verwendet werden. Es können also Elemente benutzt werden, die nicht Teil einer DTD sind. Sinnvollerweise sind die Elemente aus dem Namensraum an der durch die URI bestimmten Stelle als XML Schema definiert und erläutert &#8211; dies ist jedoch nicht vorgeschrieben. Die Spezifikation schreibt keine Validierung dieser Elemente vor, so dass ein Dokument mit <foreignphrase>Namespaces</foreignphrase> syntaktisch wie semantisch ungenauer bestimmt ist als ein DTD-konformes Dokument. Der Verweis auf ein XML Schema ist bei Bedarf explizit mit <sgmltag>schemaLocation</sgmltag> anzugeben (Vgl. <citation>Bray99</citation>).</para>
        <para>Als Beispiel sei ein gleichlautendes Element in verschiedenen <foreignphrase>Namespaces</foreignphrase> angeführt, die beide in einem Dokument auftreten dürfen: <sgmltag>&lt;mathml:transpose&gt;</sgmltag> und <sgmltag>&lt;music:transpose&gt;</sgmltag>.</para>
</note> 

 

      
    <indexterm significance="normal">
<primary>Namespace</primary>
<see>Namensraum</see>
</indexterm>
    <indexterm significance="normal">
<primary>Namensraum</primary>
</indexterm>
    <indexterm significance="normal">
<primary>DOM</primary>
</indexterm>

      <para>XML Schema Definitionen (W3C <foreignphrase>Recommendation</foreignphrase> und zweiteilige Spezifikation siehe <citation>Fallside01</citation>, <citation>Thompson01</citation> und <citation>Biron01</citation>) werden selbst in XML notiert, was den Vorteil hat, dass beispielsweise Anwendungen mittels DOM (<foreignphrase>Document Object Model</foreignphrase>) darauf zugreifen und sie auch mittels XSLT (<foreignphrase>Extensible Stylesheet Language Transformations</foreignphrase>) verarbeitet werden können. 
      Auch ist die DTD-Syntax oft schwer zu lesen und die Bedeutungen der Inhaltsmodelle nicht klar, was dazu führen kann, dass v. a. bei großen DTDs, wie z. B. <indexterm significance="normal">
<primary>DocBook</primary>
</indexterm>
<indexterm significance="normal">
<primary>DTD</primary>
<secondary>DocBook</secondary>
</indexterm>DocBook (siehe auch <xref linkend="tm.tao"/>), Elemente für nicht vorgesehene Zwecke entfremdet und fehlinterpretiert werden.</para>

      <para>Neben den in DTDs zur Verfügung stehenden Konnektoren gibt es in XML Schema auch für die <wordasword>und</wordasword>-Beziehung ein Konstrukt: Elemente können in Gruppen gegliedert werden, die das Auftreten der Elemente entweder in beliebiger oder vorgeschriebener Reihenfolge oder alternativ festsetzen. Auch für Attribute gibt es Gruppen um öfter auftretende Attributkombinationen an zentraler Stelle zu definieren. Für die <sgmltag>attributeGroups</sgmltag> gibt es jedoch kein <foreignphrase>Wrapper</foreignphrase>-Element, das ein kombinatorisches Auftreten der Attributgruppen festlegt. So müsste ein Element, das mit differierenden Attributgruppen auftreten kann, auf der Elementebene, je nach den gewünschten Kombinationen, mehrmals definiert werden. Im <wordasword>MetaChart</wordasword>-Beispiel wäre dies für das <sgmltag>VALUE</sgmltag>-Element in Betracht zu ziehen, da diesem Element, je nach Wert im Datenbankattribut <database moreinfo="none">attributes.type</database>, ein anderes Inhaltsmodell zugrundeliegt.</para>
      
      <para>In DTDs kann der Datentyp <varname>#PCDATA</varname> (<foreignphrase>parsed character data</foreignphrase>) eines Textknotens nicht näher bestimmt werden. Dies ist in XML Schema nicht nur durch die in <citation>Biron01</citation> vordefinierten Datentypen (z. B. <varname>date</varname>, <varname>integer</varname>, <varname>string</varname>) möglich, auch Restriktionen wie z. B. die Anzahl und die Art der Zeichen sind denkbar.</para>
      <para>So kann beispielsweise die Form einzelner IDs genauer mittels <foreignphrase>pattern-expressions</foreignphrase> (die der Perl-Syntax der regulären Ausdrücke (siehe <citation>perlre</citation>) genügen müssen) definiert werden:</para>
      <programlisting format="linespecific">&lt;?xml version="1.0"?&gt;
&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;
  &lt;xs:simpleType name="mc-type-raw"&gt;
    &lt;xs:restriction base="xs:string"&gt;
      &lt;xs:pattern value="mc\d+"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;
  &lt;xs:simpleType name="mc-type"&gt;
    &lt;xs:union memberTypes="mc-type-raw xs:ID"/&gt;
  &lt;/xs:simpleType&gt;
  &lt;xs:simpleType name="owner-type"&gt;
    &lt;xs:union memberTypes="mc-type-raw xs:IDREF"/&gt;
  &lt;/xs:simpleType&gt;

	&lt;xs:element name="METACHART"&gt;
		&lt;xs:complexType&gt;
      &lt;xs:attribute name="mcid" 
                    type="mc-type" 
                    use="required"/&gt;
      &lt;xs:attribute name="owner" 
                    type="owner-type" 
                    use="optional"/&gt;
      &lt;!-- ... --&gt;</programlisting>

      <para>Der Auszug beschreibt das <varname>mcid</varname>- und das <varname>owner</varname>-Attribut des <wordasword>MetaChart</wordasword>-XML-Schema näher. So wird mit <literal moreinfo="none">mc\d+</literal> die Form des Attributwerts beginnend mit <quote>mc</quote> und einer Anzahl größer Null von Ziffern (<foreignphrase>digits</foreignphrase>) bestimmt. Sodann werden die Attribute <varname>mcid</varname> als <sgmltag>ID</sgmltag> und <varname>owner</varname> als <sgmltag>IDREF</sgmltag> ausgezeichnet.</para>
      <para>Das XML Schema von <wordasword>MetaChart</wordasword> ist in <xref linkend="appendix.mc.xsd"/> zu sehen.</para>
    </section>


    <section>
<title>Die <wordasword>MetaChart</wordasword>-XML Instanz</title>
      
      <para>Der Export der Daten wird exemplarisch für ein <wordasword>MetaChart-Attribute</wordasword>, insbesondere dessen <database moreinfo="none">value</database>, dargestellt:</para>
      <para>Die Methode <literal moreinfo="none">processAttributes(mcID)</literal> in der Klasse <literal moreinfo="none">DOMAttributes</literal> bekommt u. a. die <varname>mcId</varname> (<database moreinfo="none">meta_charts.mc_id</database> in der Datenbank) und die Elementinstanz des Elements übergeben, an das in dieser Methode erstellte Elemente angehängt werden. Im konkreten Fall ist dies eine Instanz des Elements <sgmltag>METACHART</sgmltag>, an das sodann das <foreignphrase>Wrapper</foreignphrase>-Element <sgmltag>ATTRIBUTES</sgmltag> für <sgmltag>ATTRIBUTE</sgmltag>-Tochter-Elemente angehängt wird.</para>

      <para>Durch den Aufruf von <literal moreinfo="none">Vector attrIds = Service.getAttributeIds(mcId);</literal> werden zunächst sämtliche <wordasword>MetaChart-Attributes</wordasword> dieses <wordasword>MetaCharts</wordasword> identifiziert.</para> 
      <screen format="linespecific">
for (Enumeration enum = attributes.elements(); 
                 enum.hasMoreElements(); ) 
{
  Attribute a        = (Attribute)enum.nextElement();
  String attrId      = new String(a.getId());
  AttributeType type = new AttributeType(a.getType());  
  // ...
  // if/else-block
}
</screen>

      
      <para>Die Schleife durchläuft alle Elemente der Enumeration, die die Elemente des Vectors enthält, d. h. die folgenden Anweisungen werden für jedes auftretende <wordasword>MetaChart-Attribute</wordasword> abgehandelt. (Siehe <xref linkend="figure.schleife"/>) Das <sgmltag>ATTRIBUTE</sgmltag>-Element mit dessen ID als XML-Attribut wird erstellt und in <sgmltag>ATTRIBUTES</sgmltag> eingehängt:</para>

      <screen format="linespecific">
  Element el_attribute = doc.createElement("ATTRIBUTE");
  el_attributes.appendChild(el_attribute);
  el_attribute.setAttribute("attrid", attrId);</screen>

      
      <para>Für das Kindelement <sgmltag>VALUE</sgmltag>, das die <wordasword>MetaChart-Attribute</wordasword>-Daten an sich enthält, wird in einem <foreignphrase>if/else</foreignphrase>-Block (ein <foreignphrase>switch/case-Statement</foreignphrase> ist im Zusammenhang mit Strings nicht möglich) der Typ des <wordasword>MetaChart-Attributes</wordasword> bestimmt, der als <varname>AttributeType</varname>-Objekt vorliegt.</para>
      
      <para>Diese Klasse <varname>AttributeType</varname> hält derzeit folgende Methoden zur Typbestimmung bereit, die <varname>boolean</varname>, also <emphasis>wahr</emphasis> oder <emphasis>falsch</emphasis> zurückgeben:</para>
      
      <itemizedlist>
        <listitem>
<para>
<literal moreinfo="none">isAssoziation()</literal>
</para>
</listitem>
        <listitem>
<para>
<literal moreinfo="none">isProspector()</literal>
</para>
</listitem>
        <listitem>
<para>
<literal moreinfo="none">isUserPreferences()</literal>
</para>
</listitem>
        <listitem>
<para>
<literal moreinfo="none">isBase64()</literal>
</para>
</listitem>
        <listitem>
<para>
<literal moreinfo="none">isPlain()</literal>
</para>
</listitem>
      </itemizedlist>
      
      <para>Dazu wird in der <varname>AttributeType</varname>-Klasse <varname>type</varname> ein String, der den Wert von <database moreinfo="none">attributes.type</database> aus der Datenbank enthält, untersucht. Mit Ausnahme der <wordasword>MetaChart</wordasword>-proprietären Typen wird das Format als <emphasis>MIME-type</emphasis> abgelegt.</para>
      
      <indexterm significance="normal">
<primary>MIME</primary>
</indexterm>
      <note>
<title>
<acronym>MIME</acronym>-type</title>
<para> ist ein Standard System zur Identifizierung des Datenformats einer Datei anhand ihrer Dateinamenendung (Extension). Derzeit ist die Liste in acht Gruppen unterteilt: <literal moreinfo="none">application</literal>, <literal moreinfo="none">audio</literal>, <literal moreinfo="none">image</literal>, <literal moreinfo="none">message</literal>, <literal moreinfo="none">model</literal>, <literal moreinfo="none">multipart</literal>, <literal moreinfo="none">text</literal> und <literal moreinfo="none">video</literal>.</para>
<para>Der Typ wird durch den Verzeichnisseperator <quote>
<constant>/</constant>
</quote> abgetrennt, z. B. <literal moreinfo="none">text/plain</literal>, <literal moreinfo="none">text/xml</literal> oder <literal moreinfo="none">image/png</literal>. (Vgl. <citation>MIME</citation>)</para>
</note>


      <para>Mittels String-Vergleichen wie beispielsweise <literal moreinfo="none">type.equalsIgnoreCase("assoziation")</literal> oder <literal moreinfo="none">type.startsWith("text/")</literal> wird schließlich bestimmt, wie der jeweilige Wert aus <database moreinfo="none"> attributes.value</database> zu dekodieren ist.</para>

      <para>Je nach Typ werden dem <sgmltag>VALUE</sgmltag>-Element verschiedene XML-Attribute angehängt. Im Falle der Assoziation sind dies <varname>srcId</varname>, <varname>dstId</varname>, <varname>srcMCId</varname>, <varname>dstMCId</varname>, deren Werte durch Methoden in der Klasse <literal moreinfo="none">de.fhg.iao.metachart.Edge</literal> abzurufen sind. Dieses Objekt <varname>Edge</varname> (die Assoziation), wird in der Datenbank im Feld <database moreinfo="none">attributes.value</database> abgelegt. Um die Assoziationen aus der Datenbank zu lesen, sind spezielle <foreignphrase>Casts</foreignphrase> (Datentypumwandlungen) nötig, die in der Methode <literal moreinfo="none">Service.getAttributeValueAsEdge</literal> implementiert sind.</para>
      <para>Falls es sich um Typen handelt, die Base64-kodiert abzulegen sind, wird die entsprechende <emphasis>query</emphasis>-Methode aufgerufen und der Datenstrom kodiert, um schließlich in ein Kindelement <sgmltag>VALUE</sgmltag> als <sgmltag>CDATA</sgmltag>-Section einzufließen. Für manche Typen bleibt der Textknoten leer.</para>

      <note>
<title>Base64</title>
<para>ist eine Kodierung (<foreignphrase>Content Transfer Encoding</foreignphrase>) um binäre Daten in die <quote>7bit</quote>-Ebene zu transformieren, um sie so über Protokolle mit gewissen Einschränkungen transportieren zu können. <quote>7bit data</quote> bezeichnet dabei einen Datenstrom, der aus mit CRLF (<foreignphrase>Carriage Return</foreignphrase> [dezimal 13] <foreignphrase>Line Feed</foreignphrase> [dezimal 10]) abgetrennten Zeilen besteht und keine Bytes mit einem dezimalen Wert von über 127 enthält. (Vgl. <citation>RFC2045</citation>)</para>
</note>


      <para>Im <wordasword>MetaChart</wordasword>-Projekt gibt es noch eine Anzahl weiterer <wordasword>MetaChart-Attribute</wordasword>-Typen, die für den XML-Export explizit behandelt werden müssen. Auch ist das <wordasword>MetaChart</wordasword>-Projekt selbst noch nicht abgeschlossen, so dass gerade an dieser Stelle mit Erweiterungen zu rechnen ist. Im Falle auftretender, noch unbekannter Attributtypen, die keine MIME-types darstellen, wird das Element <sgmltag>ATTRIBUTE</sgmltag> nur mit einem Attribut type, das den Wert aus <database moreinfo="none">attributes.type</database> mit dem Hinweis <quote>unknown</quote> enthält, angelegt.</para>


      <para>Das aktuelle <varname>attrId</varname> sowie das Element <sgmltag>ATTRIBUTE</sgmltag> werden schließlich an die Methoden <literal moreinfo="none">processMetaDatas</literal> und <literal moreinfo="none">processViews</literal> weitergegeben, um daran Metadaten sowie <wordasword>View</wordasword>-Daten anzuhängen.</para>


      <para>Eine Beispiel-Instanz ist in <xref linkend="appendix.mc.instance"/> zu sehen.</para>



      


    </section>





    <section>
<title>Visualisierung des <wordasword>MetaChart</wordasword>-XML</title>
    <indexterm significance="normal">
<primary>XML</primary>
</indexterm>
    <indexterm significance="normal">
<primary>Visualisierung</primary>
</indexterm>

      <section>
<title>
<wordasword>MetaChart</wordasword>-XML mit Hyperlinks</title>

        <para>Ein Perlskript, das den URL (<foreignphrase>Uniform Resource Locator</foreignphrase>) einer <wordasword>MetaChart</wordasword>-XML-Instanz per CGI (<foreignphrase>Common Gateway Interface</foreignphrase>) übergeben bekommt, gibt diese Instanz als Klartext, formatiert in HTML (<foreignphrase>HyperText Markup Language</foreignphrase>), aus, wobei es entsprechende <varname>ID</varname>/<varname>IDREF</varname>s als Hyperlinks (Anker und Verweise) auflöst, um so das Springen zu referenzierten <wordasword>MetaCharts</wordasword> und <wordasword>MetaChart-Attributes</wordasword> innerhalb des Dokuments zu ermöglichen. Für String-Ersetzungen zur Hyperlink-Auszeichnung bietet sich das Konzept der regulären Ausdrücke (siehe <citation>perlre</citation>) an, das in Perl sehr einfach anzuwenden ist:</para>
        <para>
<screen format="linespecific">$_ =~ s/mcid="([^"]+)"/mcid="&lt;a name="\1"&gt;&lt;b&gt;\1&lt;\/b&gt;&lt;\/a&gt;"/g;
$_ =~ s/mcref="([^"]+)"/mcref="&lt;a href="#\1"&gt;\1&lt;\/a&gt;"/g;
</screen>
</para>

        <para>Dieses Skript ist über <ulink url="http://www.hdm-stuttgart.de/~da03"/> erreichbar.</para>
      </section>


      <section>
<title>XML und <foreignphrase>Cascading Style Sheets</foreignphrase>
</title>
<indexterm significance="normal">
<primary>CSS</primary>
</indexterm>
    <indexterm significance="normal">
<primary>Visualisierung</primary>
<secondary>CSS</secondary>
</indexterm>


        <para>
<foreignphrase>Cascading Style Sheets</foreignphrase> (CSS) ist eine Stylesheet-Sprache, die es erlaubt, die visuelle Darstellung strukturierter Dokumente wie HTML-Dokumente oder XML-Applikationen näher zu bestimmen. Dies geschieht zumeist in einer externen Datei, wodurch die Layoutbeschreibung und der Dokumentinhalt getrennt sind. Dies ermöglicht zum einen verschiedene Layouts, zum anderen wird das Pflegen sowohl der Inhalte als auch des Layouts erleichtert. (Vgl. <citation>Bos98</citation>)</para>

        <para>Die folgenden Zeilen zeigen einen Ausschnitt der CSS-Datei für das <wordasword>MetaChart</wordasword>-XML; <xref linkend="appendix.mc.css"/> zeigt das Ergebnis der CSS-Darstellung.</para>

<programlisting format="linespecific">METACHART
 { 
   display: block;
   padding: 30px;
 }
VALUE
 { 
   position: relative;
   display: block;
   font-family: serif;
   font-size: small;
   font-weight: normal;
   padding: 6px;
 }</programlisting>

      </section>

      <section id="xsl">
<title>
<foreignphrase>Extensible Stylesheet Language</foreignphrase> &#8211; XML mit XSLT zu XSL</title>
          <indexterm significance="normal">
<primary>Visualisierung</primary>
<secondary>XSL</secondary>
</indexterm>
          <indexterm significance="normal">
<primary>Visualisierung</primary>
<secondary>DSSSL</secondary>
</indexterm>
          <indexterm significance="normal">
<primary>DSSSL</primary>
</indexterm>
        <para>
<foreignphrase>Extensible Stylesheet Language</foreignphrase> (XSL) stellt eine Sprache (in XML-Syntax) zur Beschreibung eines Dokuments und seines Layouts dar. <foreignphrase>Extensible Stylesheet Language Transformations</foreignphrase> (XSLT) ist die für XSL entworfene Transformationssprache, mit deren Hilfe ein XSLT-Prozessor XML-Dokumente nach XSL oder andere XML-Formate, auch <literal moreinfo="none">text/plain</literal>, umwandeln kann. (Vgl. <citation>Adler01</citation>) Die bekanntesten XSLT-Prozessoren sind James Clarks XT sowie Apache Xalan.</para>

        <para>XSL baut auf den früheren Arbeiten zu <foreignphrase>Cascading Style Sheets</foreignphrase> <citation>Bos98</citation> und <foreignphrase>Document Style Semantics and Specification Language</foreignphrase> (DSSSL) auf. So wird zu jedem Element beim Durchlaufen des XSLT-Prozessors durch den XML-Baum eine Regel gesucht, die folgende Form aufweist: 
        <screen format="linespecific">
&lt;xsl:template match="Element"&gt;
  &lt;!-- Aktionen, meist der Form: --&gt;
  &lt;xsl:value-of select="."/&gt;
&lt;/xsl:template&gt;
</screen>
</para>

        <para>XSL-Dokumente werden zur Darstellung formatiert, womit der Prozess gemeint ist, der die Dokumente in eine greifbare Form für den Empfänger &#8211; je nach Medium &#8211; bringt.</para>
        

        

        <para>In <xref linkend="appendix.xtm.mc2xtm"/> wird mittels XSLT das <wordasword>MetaChart</wordasword>-XML in eine <literal moreinfo="none">text/plain</literal>-Datei (in die <foreignphrase>Linear Topic Map Notation</foreignphrase>) gewandelt. Als interessante Zielformate sind auch HTML, SVG (<foreignphrase>Scalable Vector Graphics</foreignphrase>), LaTeX oder Braille zu nennen.</para>
      
        

      
      <bridgehead renderas="sect3" id="xsl.fo">
<foreignphrase>XSL Formatting Objects</foreignphrase>
</bridgehead>
          <indexterm significance="normal">
<primary>Visualisierung</primary>
<secondary>PDF</secondary>
</indexterm>

<indexterm significance="normal">
<primary>FO</primary>
</indexterm>
        <para>Bei <foreignphrase>XSL Formatting Objects</foreignphrase> (XSL-FO) handelt es sich um Elemente des <foreignphrase>formatting object tree</foreignphrase>, die dem XSL Namensraum angehören. Die <foreignphrase>Formatting Objects</foreignphrase> beschreiben, welche Bereiche des Dokuments wie darzustellen sind, sowie deren hierarchische Struktur bezüglich Bereichen anderer <foreignphrase>Formatting Objects</foreignphrase>. Die <foreignphrase>Formatting Objects</foreignphrase> sind zweigeteilt in <literal moreinfo="none">block-level</literal>- und <literal moreinfo="none">inline-level</literal>-Elemente, vergleichbar mit Absatzformatierungen und Auszeichnungen. Darüberhinaus sind im Stylesheet Angaben wie Papierformat, Ränder und Kopf-/Fußzeilenbereiche im <literal moreinfo="none">layout-master-set</literal> zu definieren, auf die sich dann Objekte beziehen, die in der <literal moreinfo="none">page-sequence</literal>-Umgebung eine fixe Position (<literal moreinfo="none">static-content</literal>) oder fliessende (<literal moreinfo="none">flow</literal>) einnehmen. Seitenzahl und Kolumnentitel sind typische Angaben innerhalb <literal moreinfo="none">static-content</literal>.</para>

        

        <para>Die Formatierung der <foreignphrase>Formatting Objects</foreignphrase> ist Aufgabe eines FO-Prozessors. Derzeit sind erst wenige Prozessoren verfügbar. Zu den am weitesten verbreiteten zählen Apache FOP und RenderX XEP. Als weitere Vertreter sind AntennaHouse XSL Formatter, XMLmind FO Converter (XFC) und Unicorn Formatting Objects (UFO) zu nennen. Neben der direkten Formatierung nach PDF<indexterm significance="normal">
<primary>PDF</primary>
</indexterm> (<foreignphrase>Portable Document Format</foreignphrase>) sind Wege über LaTeX oder RTF mögliche Strategien &#8211; eine frühe Version des XEP benutzte beispielsweise Thomas Merz&#8217; Perl PDF-Bibliothek.</para>


        <para>Das Stylesheet, das mit Apache FOP die PDF-Darstellung (siehe <xref linkend="appendix.mc.pdf"/>) einer <wordasword>MetaChart</wordasword>-XML-Instanz erzeugt, ist in <xref linkend="appendix.mc.mc2fo"/> zu sehen. Auftretende base64-kodierte Grafiken sind vor der Formatierung in ihre Ursprungsdatei zu konvertieren, um sie als <literal moreinfo="none">external-graphic</literal> einbinden zu können. Dazu wird im Stylesheet geprüft, ob das <sgmltag>type</sgmltag>-Attribut von <sgmltag>VALUE</sgmltag> mit <quote>
<literal moreinfo="none">image/</literal>
</quote> beginnt.</para>
        
        
        

        

        
      </section>
    
    </section>

  </section>
  
    


  
  <section>
<title>XML <foreignphrase>Topic Maps</foreignphrase>
</title> 
    <para>
<foreignphrase>Topic Maps</foreignphrase> ist ein Standard, Wissensstrukturen zu beschreiben und diese mit Informationsressourcen zu verbinden. (Vgl. <citation>Pepper00</citation>). Holger Rath von <quote>Empolis</quote> (<literal moreinfo="none">topicmaps.com</literal>) bezeichnet <foreignphrase>Topic Maps</foreignphrase> als Lösung zur Organisation und Navigation der immer größer werdenden Informationsmengen. (Vgl. <citation>Rath99</citation>)</para>

    <para>Die XML <foreignphrase>Topic Maps</foreignphrase>-Spezifikation der <foreignphrase>TopicMaps.Org-Authoring Group</foreignphrase> entstand aus dem Modell der <foreignphrase>Topic Maps</foreignphrase> in SGML (kurz HyTM), das als ISO/IEC-Standard 13250, basierend auf HyTime (<foreignphrase>Hypermedia/Time-based Structuring Language</foreignphrase>), definiert wurde. Der XML <foreignphrase>Topic Map</foreignphrase> Standard ist inzwischen auch Teil der ISO-Norm. </para>
    <para>Die <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase>-Spezifikation befindet sich in <citation>Pepper01</citation>, die ISO-Norm ist unter <citation>ISO13250</citation> einzusehen.</para>


    
    
    <para>In dieser Arbeit wird nur auf XML <foreignphrase>Topic Maps</foreignphrase> (XTM) eingegangen.</para>





    <section id="tm.tao">
<title>Das Stichwortverzeichnis <foreignphrase>Topic Maps</foreignphrase>
</title>
<indexterm significance="normal">
<primary>Topic Maps</primary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Topic</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Association</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Occurrence</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Association</primary>
</indexterm>
<indexterm significance="normal">
<primary>Topic</primary>
</indexterm>
<indexterm significance="normal">
<primary>Occurrence</primary>
</indexterm>

      <para>Die ersten Ideen zu <foreignphrase>Topic Map</foreignphrase> sind etwa Anfang der Neunziger anzusiedeln, als die jetzige <wordasword>Davenport Group</wordasword> über Austauschformate für Computerliteratur diskutierte und schließlich die <indexterm significance="normal">
<primary>DocBook</primary>
</indexterm>
<indexterm significance="normal">
<primary>DTD</primary>
<secondary>DocBook</secondary>
</indexterm>DocBook DTD (siehe <citation>Walsh99</citation>) spezifizierte (Vgl. <citation>Pepper00</citation>). Das Ziel, Stichwortverzeichnisse verschiedener Dokumentationen zu vereinigen, schlug damals fehl, weil es an formalen Wissensstrukturen in Form von Ontologien mangelte, mittels derer gleichbedeutende Stichworte erkannt werden hätten können. Fast ein Jahrzehnt dauerte es, bis die Systematik, die Stichwortverzeichnissen innewohnt, als <foreignphrase>Topic Map</foreignphrase>-Standard hervorging: Das Stichwort verbunden mit dem Vorkommen (im Text) bildet das <quote>TAO</quote> der <foreignphrase>Topic Map</foreignphrase>:</para>


        <informaltable pgwide="0" frame="none">
          <tgroup align="left" cols="2">
            <colspec colwidth="*"/>
            <colspec colwidth="*"/>
          <thead>
            <row>
<entry>
<para>Bezeichner</para>
</entry>
<entry>
<para>Analogie</para>
</entry>
</row>
          </thead>
          
          <tbody>
            <row>
<entry>
<para>
<emphasis role="strong">T</emphasis>opic</para>
</entry>
<entry>
<para>Stichwort, Thema, Begriff</para>
</entry>
</row>
            <row>
<entry>
<para>
<emphasis role="strong">A</emphasis>ssociation</para>
</entry>
<entry>
<para>Verbindung, Beziehung</para>
</entry>
</row>
            <row>
<entry>
<para>
<emphasis role="strong">O</emphasis>ccurrence</para>
</entry>
<entry>
<para>Auftreten, Vorkommen</para>
</entry>
</row>
          </tbody>
          </tgroup>
        </informaltable>
      


      <para>Trotz (oder vielleicht gerade aufgrund) der Trivialität dieses Modells ist es mit <foreignphrase>Topic Map</foreignphrase>s möglich, recht komplexe Strukturen abzubilden.</para>

      


      <section>
<title>
<foreignphrase>Topic</foreignphrase>
</title>
        <para>
<quote>A topic, in its most generic sense, can be any <emphasis>thing</emphasis> whatsoever &#8211; a person, an entity, a concept, really anything &#8211; regardless of whether it exists or has any other specific characteristics, about which anything whatsoever may be asserted by any means whatsoever</quote> <citation>Pepper00</citation>. Steve Pepper zieht auch einen Vergleich zu Platons Ideenlehre. Die <foreignphrase>Topics</foreignphrase> entsprächen den Schatten, die nach Platon von den <quote>Urbildern</quote> geworfen werden. (Vgl. <citation>Kunzmann99</citation> S. 39) </para>
      


        <para>Die Art eines <foreignphrase>Topics</foreignphrase> kann durch <foreignphrase>Topic Types</foreignphrase> genauer spezifiziert werden. <foreignphrase>Topic Types</foreignphrase> sind <foreignphrase>Topics</foreignphrase>, die Teil einer <foreignphrase>is-a</foreignphrase>- oder Instanz-von-Beziehung sein können.</para>

      </section>

      <section>
<title>
<foreignphrase>Association</foreignphrase>
</title>
        <para>
<foreignphrase>Associations</foreignphrase> beschreiben Beziehungen zwischen <foreignphrase>Topics</foreignphrase>. Wie <foreignphrase>Topics</foreignphrase> werden <foreignphrase>Associations</foreignphrase> auch durch <foreignphrase>Association Types</foreignphrase> charakterisiert, die wiederum selbst als <foreignphrase>Topics</foreignphrase> existieren. Die zwei in Beziehung gebrachten <foreignphrase>Topics</foreignphrase> werden als <foreignphrase>Member</foreignphrase> referenziert, und treten dabei als <foreignphrase>Role Player</foreignphrase> auf. Letzteres spezifiziert den Typ eines <foreignphrase>Topics</foreignphrase> innerhalb der <foreignphrase>Association</foreignphrase> &#8211; üblicherweise ist dieser identisch mit dem ihm zugewiesenen <foreignphrase>Topic Type</foreignphrase>. Ein Gegenbeispiel zeigt <xref linkend="tm.mc.associations"/>.</para>
                
       
      
      </section>

      <section>
<title>
<foreignphrase>Occurrence</foreignphrase>
</title>
        <para>
<foreignphrase>Topics</foreignphrase> können mit relevanten Ressourcen verbunden werden. Dies wird durch <foreignphrase>Occurrences</foreignphrase> realisiert, die auf die Ressource zeigen oder die Information selbst beinhalten. Beispiele für Ressourcen können Bücher, Artikel, Grafiken oder jegliche vorstellbare Informationsträger zu diesem Thema sein.
        
        </para>
      
      </section>



    
      

    </section>
    <section>
<title>Das <foreignphrase>Topic Map</foreignphrase>-Template</title> 
    <indexterm significance="normal">
<primary>Template</primary>
</indexterm>
    <indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Template</secondary>
</indexterm>



      <para>Eine <foreignphrase>Topic Map</foreignphrase> ist prinzipiell zweigeteilt in ein <foreignphrase>Topic Map</foreignphrase> <foreignphrase>Template</foreignphrase> (<foreignphrase>basic ontology</foreignphrase>) und die eigentliche <foreignphrase>Topic Map</foreignphrase>, der Instanz. Letztere beinhaltet Begriffe als <foreignphrase>Topics</foreignphrase>, denen ein Typ (als Gattung) aus den <foreignphrase>Topics</foreignphrase> des Templates (auch Schemas) zugewiesen wird. Das Template nimmt dabei eine deklarative Funktion ein, besteht selbst jedoch auch aus <foreignphrase>Topics</foreignphrase>.</para>
      

      <para>Diese Unterteilung sowie die Zusammenhänge zwischen <foreignphrase>Topics</foreignphrase>, <foreignphrase>Associations</foreignphrase> und <foreignphrase>Occurrences</foreignphrase> lassen sich in <xref linkend="tm-mann"/> <citation>Schmidt00</citation> gut erkennen.
        <figure id="tm-mann" float="0">
          <title>Konzepte und Individuen in <foreignphrase>Topic Maps</foreignphrase>
</title>
          <mediaobject>
            <imageobject>
              <imagedata format="GIF" fileref="images/tm_thomasmann.gif"/>
            </imageobject>
          </mediaobject>
        </figure>
      </para>



      





      
      


      <section id="xtm.klassen">
<title>Klassen</title>
      <indexterm significance="normal">
<primary>Klasse</primary>
</indexterm>
        <para>Anstatt von <foreignphrase>Topic Types</foreignphrase> kann man auch von Klassen sprechen. Holger Rath hat dafür spezielle <foreignphrase>Topics</foreignphrase> in <citation>Rath01</citation> veröffentlicht, die jedoch nicht Teil des ISO-Standards sind. Diese <foreignphrase>Topics</foreignphrase> ermöglichen eine strukturierte Trennung zwischen Klassen im Template und Instanzen. Das <foreignphrase>Topic</foreignphrase> <varname>template.xtm#topic-class</varname> beschreibt Rath als <quote>concept of topic class; the class of which topic typing topics should be an instance of</quote>, d. h. den <foreignphrase>Topic Type</foreignphrase> <foreignphrase>Topics</foreignphrase> im Template kann als <foreignphrase>Topic Type</foreignphrase> wiederum ein spezielles <foreignphrase>Topic</foreignphrase>, das <literal moreinfo="none">topic-class</literal>-<foreignphrase>Topic</foreignphrase>, zugewiesen werden, das das Konzept einer Klasse (siehe <xref linkend="xtm.klassen"/>) vergegenständlicht.</para>
        <para>Demnach ergäbe sich folgende Struktur:</para>

        <itemizedlist>
          <listitem>
<para>
<foreignphrase>Topic</foreignphrase> #1 als Konzept der Klasse (<literal moreinfo="none">template.xtm#topic-class</literal>)
            <itemizedlist>
<listitem>
<para>
<foreignphrase>Topic</foreignphrase> #2 als Instanz von <foreignphrase>Topic</foreignphrase> #1 (<foreignphrase>Topic Type</foreignphrase>)
              <itemizedlist>
<listitem>
<para>
<foreignphrase>Topic</foreignphrase> #3 als Instanz von <foreignphrase>Topic</foreignphrase> #2 (Individuum)</para>
</listitem>
            </itemizedlist>
</para>
</listitem>
          </itemizedlist>
</para>
</listitem>
        </itemizedlist>

        <para>Die <foreignphrase>Topics</foreignphrase> in <ulink url="http://www.topicmaps.org/xtm/1.0/core.xtm"/> von Steve Pepper ermöglichen im Gegensatz dazu nur die nähere Bestimmung von <foreignphrase>Association Types</foreignphrase>, beispielsweise bezüglich <foreignphrase>class-instance</foreignphrase>-Relationen: <quote>The class of association that represents class-instance relationships between topics, and that is semantically equivalent to the use of <sgmltag class="element">instanceOf</sgmltag> subelements.</quote> (Siehe auch <xref linkend="xtm.psis"/>) Um mit diesen Konstrukten Instanz-von-Beziehungen zu modellieren, bedarf es für jede Instanziierung einer  <foreignphrase>Association</foreignphrase>.</para>


      
     


      </section>


      

 

   

    


    </section>

    <section>
<title>
<foreignphrase>Linear Topic Map Notation</foreignphrase>
</title>
      <para>Die Firma Ontopia (<literal moreinfo="none">ontopia.net</literal>) stellt eine Notation zur Verfügung, mit der sich <foreignphrase>Topic Map</foreignphrase>s in einfacher Textform modellieren lassen. Im Gegensatz zu <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase>, die im Grunde nicht dazu gedacht ist, direkt im Texteditor gelesen und geschrieben zu werden, ermöglicht die <foreignphrase>Linear Topic Map Notation</foreignphrase> eine anschaulichere Einführung in <foreignphrase>Topic Maps</foreignphrase> sowie die Diskussion über <foreignphrase>Topic Map</foreignphrase>-Aspekte in Diskussionsforen. Steve Pepper hatte die Idee, eine lineare Notation für <foreignphrase>Topic Maps</foreignphrase> analog zu der der konzeptionellen Graphen (siehe <xref linkend="cg"/>) zu entwickeln.</para>
      <para>
<foreignphrase>Linear Topic Map Notation</foreignphrase>-Instanzen können mittels eines Python-Scripts oder im <quote>
<foreignphrase>Omnigator</foreignphrase>
</quote>, der <foreignphrase>Topic Map</foreignphrase>-Engine von Ontopia, nach XML transformiert werden.</para>
  
      
     
           
        
    </section>



    <section id="tm.beispiel">
<title>Ein <foreignphrase>Topic Map</foreignphrase>-Beispiel</title>
<indexterm significance="normal">
<primary>Topic Maps</primary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Topic</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Association</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Occurrence</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Association</primary>
</indexterm>
<indexterm significance="normal">
<primary>Topic</primary>
</indexterm>
<indexterm significance="normal">
<primary>Occurrence</primary>
</indexterm>
     

      
    
      <para>Als erläuterndes Beispiel wird eine <foreignphrase>Topic Map</foreignphrase> aus dem Bereich <wordasword>Studium</wordasword>, also eine Ontologie mit Studium als <emphasis>Domäne</emphasis>, erstellt. Von folgendem Sachverhalt soll dabei ausgegangen werden:</para>
      <para>
<itemizedlist>
        <listitem>
<para>Jenny Doe studiert in Weimar Architektur.</para>
</listitem>

        <listitem>
<para>Das Goethehaus ist eine Sehenswürdigkeit Weimars.</para>
</listitem>
      </itemizedlist>
</para>
      <para>
<emphasis>Jenny Doe</emphasis> ist also Studentin, <emphasis>Architektur</emphasis> ein Studiengang und <emphasis>Weimar</emphasis> ein Ort. Als Klassen im Template für die zu erstellende <foreignphrase>Topic Map</foreignphrase> benötigen wir somit <varname>student</varname>, <varname>studiengang</varname> und <varname>ort</varname>. Die Instanzen dieser Klassen werden sein: <varname>jenny</varname>, <varname>architektur</varname> und <varname>weimar</varname>.</para>
      <para>Die Beziehungen zwischen den Studenten und den Studienorten <emphasis>studiert in</emphasis> werden in <foreignphrase>Topic Map</foreignphrase>s mittels <foreignphrase>Associations</foreignphrase> implementiert, die wiederum als Instanzen eines speziellen <foreignphrase>Topics</foreignphrase> auftauchen. Dieser <foreignphrase>Topic</foreignphrase> wird <foreignphrase>Association Type</foreignphrase>-<foreignphrase>Topic</foreignphrase> genannt.</para>

      <note>
<para>Im folgenden wird das Beispiel erst in <foreignphrase>Linear Topic Map Notation</foreignphrase>, anschließend in <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase> (zeilennummeriert) notiert.</para>
</note>
 


      <section id="erstellung.topics">
<title>Erstellung von <foreignphrase>Topics</foreignphrase>
</title>
        <para>In <foreignphrase>Linear Topic Map Notation</foreignphrase> wird ein <foreignphrase>Topic</foreignphrase> <varname>jenny</varname> vom Typ <varname>student</varname> erstellt: 
          <screen format="linespecific">[jenny : student = "Jenny Doe"]</screen>
</para>
          <para>Dabei wird von dem <foreignphrase>Linear Topic Map Notation</foreignphrase>-Prozessor automatisch ein <foreignphrase>Topic</foreignphrase> <varname>student</varname> erzeugt, der auch manuell mittels
          <screen format="linespecific">[student]</screen>
</para>
          <para>explizit erzeugt werden könnte, was insofern auch sinnvoll ist (vgl. Variablendeklaration in Java), da so der <foreignphrase>Topic</foreignphrase> <varname>student</varname> zugleich mit BaseName versehen werden kann; <varname>student</varname> fungiert nur als ID dieses <foreignphrase>Topics</foreignphrase>, die nicht zur Anzeige in <foreignphrase>Topic Map</foreignphrase>-Browsern o. ä. gedacht ist. Dem <foreignphrase>Topic</foreignphrase> <varname>student</varname> wird der Name <emphasis>Student(in)</emphasis> zugewiesen:
          <screen format="linespecific">[student = "Student(in)"]</screen>
</para>

          <para>Als Wurzelelement in <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase> dient <sgmltag>topicMap</sgmltag>:
          <programlisting width="60" format="linespecific">&lt;topicMap xmlns="http://www.topicmaps.org/xtm/1.0/" 
          xmlns:xlink="http://www.w3.org/1999/xlink"/&gt;</programlisting>
</para>

          <para>Um diese zwei <foreignphrase>Topics</foreignphrase> in <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase> zu erhalten, werden  folgende Elemente in <sgmltag>topicMap</sgmltag> eingehängt:</para>
          <programlisting width="60" format="linespecific">  &lt;topic id="student"&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Student(in)&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;topic id="jenny"&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#student"/&gt;
    &lt;/instanceOf&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Jenny Doe&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;</programlisting>

          <para>Der <foreignphrase>Topic</foreignphrase> <varname>student</varname> soll je nach Genus als <emphasis>Studentin</emphasis> oder <emphasis>Student</emphasis> benannt sein, d. h. es muss ein Gültigkeitsbereich des jeweiligen <sgmltag>BaseName</sgmltag>s definiert werden. Dies wird mittels <varname>scope</varname>s realisiert.  Dazu ist ein <foreignphrase>Topic</foreignphrase> <varname>genus</varname> als Klasse, sowie dessen Unterklassen <varname>feminin</varname> und <varname>maskulin</varname> zu generieren:
          <screen format="linespecific">[genus = "Geschlecht"]
[feminin  : genus = "weiblich"]
[maskulin : genus = "männlich"]</screen>
</para>

          

          <para>In <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase> wird notiert:</para>
          <programlisting width="60" format="linespecific">  &lt;topic id="genus"&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Geschlecht&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;topic id="feminin"&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#genus"/&gt;
    &lt;/instanceOf&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;weiblich&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;topic id="maskulin"&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#genus"/&gt;
    &lt;/instanceOf&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;männlich&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;</programlisting>
          
          <para>Nun kann der Name des <foreignphrase>Topics</foreignphrase> <varname>student</varname> mittels Genusunterscheidung genauer definiert werden, was in <foreignphrase>Topic Map</foreignphrase> durch eine Einschränkung des <varname>scope</varname>s möglich ist: 
          <screen format="linespecific">[student / feminin  = "Studentin"]
[student / maskulin = "Student"]</screen>
</para>
          <para>Dem <foreignphrase>Topic</foreignphrase> <varname>jenny</varname> wird schließlich der betreffende Genus zugewiesen:
          <screen format="linespecific">[jenny : student / feminin]</screen>
</para>
          <para>D. h., <varname>jenny</varname> als Instanz von <varname>student</varname> gilt nur im Scope <varname>feminin</varname> der Klasse <varname>student</varname>.</para>

          <para>In <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase> wird das <foreignphrase>Topic</foreignphrase> <varname>student</varname> um zwei <sgmltag>BaseName</sgmltag>-Elemente erweitert:</para>

          <programlisting width="60" format="linespecific">    &lt;baseName&gt;
      &lt;scope&gt;
        &lt;topicRef xlink:href="#feminin"/&gt;
      &lt;/scope&gt;
      &lt;baseNameString&gt;Studentin&lt;/baseNameString&gt;
    &lt;/baseName&gt;
    &lt;baseName&gt;
      &lt;scope&gt;
        &lt;topicRef xlink:href="#maskulin"/&gt;
      &lt;/scope&gt;
      &lt;baseNameString&gt;Student&lt;/baseNameString&gt;
    &lt;/baseName&gt;</programlisting>

          <para>Das <sgmltag>BaseName</sgmltag>-Element im <foreignphrase>Topic</foreignphrase> <varname>jenny</varname> wird um das <foreignphrase>Scope</foreignphrase> <varname>feminin</varname> erweitert:</para>

          <programlisting width="60" format="linespecific">      &lt;scope&gt;
        &lt;topicRef xlink:href="#feminin"/&gt;
      &lt;/scope&gt;</programlisting>


          
      </section>

      <section id="xtm.associations">
<title>Erstellung von <foreignphrase>Associations</foreignphrase>
</title>
        <para>Weiterhin soll modelliert werden, Jenny studiere in Weimar Architektur. Dazu werden vorab die <foreignphrase>Topics</foreignphrase> <varname>weimar</varname> und <varname>architektur</varname> &#8211; hier inklusive der alternativen Namen zur Sortierung und besonderen Anzeige &#8211; erstellt:

        <screen format="linespecific">[weimar : ort = "Weimar"; "Weimar, Goethestadt"; "Goethestadt Weimar"]
[architektur : studiengang = "Architektur"]</screen>
</para>


        <para>In <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase> wird notiert:</para>
        <programlistingco>
        <areaspec>
        <areaset id="xtm.psi.core" coords="">
          <area id="xtm.psi.core_display" coords="9 60"/>
          <area id="xtm.psi.core_sort" coords="17 60"/>
        </areaset>
        </areaspec>
        <programlisting width="60" format="linespecific">  &lt;topic id="weimar"&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#ort"/&gt;
    &lt;/instanceOf&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Weimar&lt;/baseNameString&gt;
      &lt;variant&gt;
        &lt;parameters&gt;
          &lt;topicRef xlink:href="#core_display"/&gt;
        &lt;/parameters&gt;
        &lt;variantName&gt;
          &lt;resourceData&gt;Goethestadt Weimar&lt;/resourceData&gt;
        &lt;/variantName&gt;
      &lt;/variant&gt;
      &lt;variant&gt;
        &lt;parameters&gt;
          &lt;topicRef xlink:href="#core_sort"/&gt;
        &lt;/parameters&gt;
        &lt;variantName&gt;
          &lt;resourceData&gt;Weimar, Goethestadt&lt;/resourceData&gt;
        &lt;/variantName&gt;
      &lt;/variant&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;</programlisting>
            <calloutlist>
              <callout arearefs="xtm.psi.core">
                <para>Die <varname>variantNames</varname> stellen eine Besonderheit dar, da sie nach <varname>core_display</varname> und <varname>core_sort</varname> verweisen. Dieses sind <foreignphrase>Topics</foreignphrase>, die auf <foreignphrase>Public Subject Indicators</foreignphrase> verweisen. (Siehe <xref linkend="xtm.psis"/>)</para>
              </callout>
            </calloutlist>
          </programlistingco>


        <para>Das <foreignphrase>Topic</foreignphrase> <varname>architektur</varname> ist analog dazu zu erstellen.</para>
        

        <para>Es bedarf zweier Assoziationstypen: <varname>student</varname> <emphasis>studiert</emphasis> <varname>studiengang</varname> und <varname>student</varname> <emphasis>studiert in</emphasis> <varname>ort</varname>:
        <screen format="linespecific">[studiert-in = "studiert in"]
[studiert    = "studiert"]</screen>
</para>
        




        <para>Es folgt die Deklaration, welches <foreignphrase>Topic</foreignphrase> mit welchem <foreignphrase>Topic</foreignphrase> in Beziehung steht:
        <screen format="linespecific">studiert-in([jenny], [weimar])</screen>
</para>
        <para>Damit die Assoziation bidirektional Sinn macht, wird der jeweiligen Formulierung ein Scope (entweder Student oder Ort) zugewiesen, der anzeigt, von welchem <foreignphrase>Topic</foreignphrase> die Relation ausgeht. Je nach Kontext<indexterm significance="normal">
<primary>Kontext</primary>
</indexterm> der Visualisierung/Auswertung (welches <foreignphrase>Topic</foreignphrase> im Vordergrund steht), wird von der <foreignphrase>Topic Map</foreignphrase>-engine erwartet, die entsprechende Formulierung (basenamestring) auszuwählen:
        <screen format="linespecific">[studiert-in = / student "studiert in"]
[studiert-in = / ort     "ist Studienort von"]
[studiert-in = "Student-Ort-Relation"]</screen>
</para>



        <para>In <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase> ist für den kompletten <foreignphrase>Association Type</foreignphrase>-<foreignphrase>Topic</foreignphrase> zu notieren:</para>

        <programlisting width="60" format="linespecific">  &lt;topic id="studiert-in"&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Student-Ort-Relation&lt;/baseNameString&gt;
    &lt;/baseName&gt;
    &lt;baseName&gt;
      &lt;scope&gt;
        &lt;topicRef xlink:href="#ort"/&gt;
      &lt;/scope&gt;
      &lt;baseNameString&gt;ist Studienort von&lt;/baseNameString&gt;
    &lt;/baseName&gt;
    &lt;baseName&gt;
      &lt;scope&gt;
        &lt;topicRef xlink:href="#student"/&gt;
      &lt;/scope&gt;
      &lt;baseNameString&gt;studiert in&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;</programlisting>


        <para>Die Assoziation erhält man durch:</para>


<programlisting width="60" format="linespecific">  &lt;association&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#studiert-in"/&gt;
    &lt;/instanceOf&gt;
    &lt;member&gt;
      &lt;roleSpec&gt;
        &lt;topicRef xlink:href="#ort"/&gt;
      &lt;/roleSpec&gt;
      &lt;topicRef xlink:href="#weimar"/&gt;
    &lt;/member&gt;
    &lt;member&gt;
      &lt;roleSpec&gt;
        &lt;topicRef xlink:href="#student"/&gt;
      &lt;/roleSpec&gt;
      &lt;topicRef xlink:href="#jenny"/&gt;
    &lt;/member&gt;
  &lt;/association&gt;</programlisting>


        <para>Analoges gilt für die Assoziation <varname>studiert</varname> in der Relation <quote>Jenny studiert Architektur</quote>.</para>

        



            <note>
<para>Die menschliche Ratio erlaubt zu folgern, dass <emphasis>Architektur</emphasis> ein <emphasis>Studiengang</emphasis> in <emphasis>Weimar</emphasis> sei; in der <foreignphrase>Topic Map</foreignphrase> müsste dies jedoch explizit als eigene <foreignphrase>Association</foreignphrase> modelliert werden.</para>
<para>Wünschenswert wären Inferenzprozessoren, die mittels formalisierten Regeln, wie z. B.</para>
<informalequation>
<alt>stud</alt>
<mediaobject>
<audioobject>
<audiodata fileref=""/>
</audioobject>
<textobject>
<literallayout class="monospaced" format="linespecific">
[x]--&gt;(studiert-in)--&gt;[y]
[x]--&gt;(studiert)--&gt;[z]
-------------------------
[y]--&gt;(bietet-an)--&gt;[z]</literallayout>
</textobject>
</mediaobject>
</informalequation>

              <para>folgende neue Aussage als <foreignphrase>Association</foreignphrase> ableiten könnten:</para>

<informalequation>
<alt>stud</alt>
<mediaobject>
<audioobject>
<audiodata fileref=""/>
</audioobject>
<textobject>
<literallayout class="monospaced" format="linespecific">[Jenny]--&gt;(studiert-in)--&gt;[Weimar]
[Jenny]--&gt;(studiert)--&gt;[Architektur]
--------------------------------------
[Weimar]--&gt;(bietet-an)--&gt;[Architektur]</literallayout>
</textobject>
</mediaobject>
</informalequation>
            
              <para>(Dass ein(e) Student(in) an verschiedenen Orten studieren kann, sei in dieser Beispieldomäne nicht in Betracht gezogen.)</para>




            </note>
        
        

      </section>

      <section>
<title>Erstellung von <foreignphrase>Occurrences</foreignphrase>
</title>
        <para>Um <foreignphrase>Topics</foreignphrase> bestimmte Ressourcen zuzuordnen existieren <foreignphrase>Occurrences</foreignphrase>, die zum einen auf Vorkommnisse jeglicher Art mittels URIs verweisen, oder aber die Ressource selbst beinhalten. Als eine Art Klasse werden vorab die <foreignphrase>Occurrence Type</foreignphrase>-<foreignphrase>Topics</foreignphrase> <varname>sights</varname> und <varname>website</varname> erstellt: <screen format="linespecific">[website = "Website"]
[sights  = "Sehenswürdigkeiten"]</screen>
</para>
        <para>
<foreignphrase>Occurrences</foreignphrase> benötigen dreierlei Information: Erstens, welchem <foreignphrase>Topic</foreignphrase> die <foreignphrase>Occurrence</foreignphrase> angehörig ist, zweitens, welcher Art die <foreignphrase>Occurrence</foreignphrase> ist (<foreignphrase>Occurrence Type</foreignphrase>) und schließlich die URI der <foreignphrase>Occurrence</foreignphrase> oder die Daten der Ressource selbst:
        <screen format="linespecific">{weimar, website, "http://www.weimar.de"}
{weimar, sights,  [[Goethehaus, Schillerhaus, ...]]}
{weimar, sights,  [[Nietzsche-Archiv]]}</screen>
</para>


        <para>In <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase> wird notiert:</para>

        <programlisting width="60" format="linespecific">  &lt;topic id="website"&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Website&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;
  &lt;topic id="sights"&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Sehenswürdigkeiten&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;</programlisting>

        <para>Die Occurences werden in das <foreignphrase>Topic</foreignphrase> <varname>weimar</varname> gehängt:</para>
  
        <programlisting width="60" format="linespecific">  &lt;topic id="weimar"&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#sights"/&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;Nietzsche-Archiv&lt;/resourceData&gt;
    &lt;/occurrence&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#website"/&gt;
      &lt;/instanceOf&gt;
      &lt;resourceRef xlink:href="http://www.weimar.de"/&gt;
    &lt;/occurrence&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#sights"/&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;Goethehaus, Schillerhaus, ...&lt;/resourceData&gt;
    &lt;/occurrence&gt;
    ...</programlisting>

        
      </section>

    </section>



      <section id="xtm.psis">
<title>
<foreignphrase>Public Subject Identifiers</foreignphrase>
</title>
      <indexterm significance="normal">
<primary>Public Subject Indicator</primary>
<see>PSI</see>
</indexterm>
      <indexterm significance="normal">
<primary>PSI</primary>
<see>Topic Maps</see>
</indexterm>
      <indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>PSI</secondary>
</indexterm>

          <para>Auf folgende <foreignphrase>Topics</foreignphrase> wird im obigen Beispiel (siehe <xref linkend="xtm.associations"/>) verwiesen, um die Art des Namens des <foreignphrase>Topics</foreignphrase> genauer zu bestimmen.</para>

          <programlisting width="65" format="linespecific">  &lt;topic id="core_display"&gt;
    &lt;subjectIdentity&gt;
      &lt;subjectIndicatorRef 
        xlink:href="http://www.topicmaps.org/xtm/1.0/core.xtm#display"/&gt;
    &lt;/subjectIdentity&gt;
  &lt;/topic&gt;

  &lt;topic id="core_sort"&gt;
    &lt;subjectIdentity&gt;
      &lt;subjectIndicatorRef 
        xlink:href="http://www.topicmaps.org/xtm/1.0/core.xtm#sort"/&gt;
    &lt;/subjectIdentity&gt;
  &lt;/topic&gt;</programlisting>

          <para>Das Dokument in <citation>Pepper01a</citation> enthält <foreignphrase>Topics</foreignphrase>, sogenannte <foreignphrase>Published Subject Indicators</foreignphrase> (PSIs), auf die von <foreignphrase>Topics</foreignphrase> aus anderen <foreignphrase>Topic Maps</foreignphrase> verwiesen werden soll, wenn diesen dieselbe Idee (<foreignphrase>Subject</foreignphrase>) innewohnt. So könnte ein <foreignphrase>Topic Map</foreignphrase>-Prozessor die <quote>Bedeutung</quote> eines speziellen <foreignphrase>Topics</foreignphrase> nachverfolgen und <foreignphrase>Topics</foreignphrase> aus externer Quelle, z. B. beim Zusammenführen (<foreignphrase>merging</foreignphrase>) mehrerer <foreignphrase>Topic Maps</foreignphrase>, als ein <foreignphrase>Topic</foreignphrase> ansehen, dem die gleiche Idee innewohnt. Gleichbedeutende <foreignphrase>Topics</foreignphrase> vereinen je nach Scope auftretende <foreignphrase>Associations</foreignphrase> und <foreignphrase>Occurrences</foreignphrase>. In der XTM-Spezifikation <citation>Pepper01</citation> ist explizit festgelegt, wie gleichbedeutende <foreignphrase>Topics</foreignphrase> festzustellen sind und wie mit beteiligten <foreignphrase>Associations</foreignphrase> und <foreignphrase>Occurrences</foreignphrase> zu verfahren ist.</para>



          

        </section>



    


    <section>
<title>
<wordasword>MetaChart</wordasword> als <foreignphrase>Topic Map</foreignphrase>
</title>
      
      <section id="tm.mc.topics">
<title>Das <wordasword>MetaChart</wordasword>-Template</title>


        <para>Die Aufteilung der <wordasword>MetaChart</wordasword>-Konzepte, wie in <xref linkend="konzepte"/>, spiegelt sich auch im Template der <foreignphrase>Topic Map</foreignphrase> wider, das zu diesen Konzepten verschiedene <foreignphrase>Topic Types</foreignphrase> enthält. Speziellere Ausartungen können bei Bedarf erstellt werden.</para>
        
        <section>
<title>
<foreignphrase>Topic Types</foreignphrase>
</title>
        
        <para>Für folgende Begriffe sind <foreignphrase>Topic Types</foreignphrase> zu erstellen:</para>

        <informaltable pgwide="0" frame="none">
          <tgroup align="left" cols="2">
            <colspec colwidth="*"/>
            <colspec colwidth="*"/>
            <thead>
            <row>
<entry>
<para>Begriff</para>
</entry>
<entry>
<para>
<foreignphrase>Topic Type</foreignphrase>
</para>
</entry>
</row>
          </thead>
          <tbody>
            <row>
<entry>
<para>
<wordasword>MetaChart</wordasword>
</para>
</entry>
<entry>
<para>
<varname>mc</varname>
</para>
</entry>
</row>
            <row>
<entry>
<para>
<wordasword>MetaChart-Attribute</wordasword>
</para>
</entry>
<entry>
<para>
<varname>attribute</varname>
</para>
</entry>
</row>
            <row>
<entry>
<para>Titel</para>
</entry>
<entry>
<para>
<varname>title</varname>
</para>
</entry>
</row>
            <row>
<entry>
<para>Erstelldatum</para>
</entry>
<entry>
<para>
<varname>createDate</varname>
</para>
</entry>
</row>
          </tbody>
          </tgroup>
        </informaltable>
        
     



      </section>

      <section id="tm.mc.associations">
<title>
<foreignphrase>Association Types</foreignphrase>
</title>
        <para>Beziehungen zwischen <foreignphrase>Topics</foreignphrase> treten hauptsächlich auf bei der rekursiven Einbindung von <wordasword>MetaCharts</wordasword> untereinander, bei der Einbettung von <wordasword>MetaChart-Attributes</wordasword> in <wordasword>MetaCharts</wordasword> und bei Kanten, also bei den in <xref linkend="assoziationen"/> angesprochenen vier Kombinationen.</para>

        <para>
<foreignphrase>Associations</foreignphrase> verbinden <foreignphrase>Topics</foreignphrase> (<foreignphrase>Member</foreignphrase>), die typischerweise als <foreignphrase>Role Player</foreignphrase> des ihnen zugeordneten <foreignphrase>Topic Types</foreignphrase> auftreten. Andere Rollen sind jedoch denkbar. So treten in der <foreignphrase>Association</foreignphrase> zur hierarchischen Verknüpfung der <wordasword>MetaCharts</wordasword> die <foreignphrase>Topics</foreignphrase> des Typs <varname>mc</varname> als <varname>child</varname> und <varname>parent</varname> auf.</para>
       



      
        <informaltable pgwide="0" frame="none">
          <tgroup align="left" cols="3">
            <colspec colwidth="5*"/>
            <colspec colwidth="5*"/>
            <colspec colwidth="4*"/>
            <thead>
            <row>
              <entry>
<para>Beziehung</para>
</entry>
              <entry>
<para>
<foreignphrase>Association Type</foreignphrase>
</para>
</entry>
              <entry>
<para>Partner (und Rolle)</para>
</entry>
            </row>
          </thead>

          <tbody>
          
            <row>
              <entry>
<para>Rekursion der <wordasword>MetaCharts</wordasword>
</para>
</entry>
              <entry>
<para>
<varname>at_relationship</varname>
</para>
</entry>
              <entry>
<para>
<itemizedlist>
                  <listitem>
                    <para>
<varname>mc</varname> (als <varname>parent</varname>)</para>
                    <para>
<quote>
<foreignphrase>is parent of</foreignphrase>
</quote>
</para>
                  </listitem>
                  <listitem>
                    <para>
<varname>mc</varname> (als <varname>child</varname>)</para>
                    <para>
<quote>
<foreignphrase>is child of</foreignphrase>
</quote>
</para>
                  </listitem>
                </itemizedlist>
</para>
</entry>
            </row>

            <row>
              <entry>
<para>Assoziation zwischen den vier Kombinationen aus <wordasword>MetaChart</wordasword> und <wordasword>MetaChart-Attribute</wordasword>
</para>
</entry>
              <entry>
<para>
<varname>at_edge_[mc|a]_[mc|a]</varname>
</para>
</entry>
              <entry>
<para>
<itemizedlist>
                  <listitem>
                    <para>
<varname>mc</varname> bzw. <varname>attribute</varname>
</para>
                    <para>
<quote>
<foreignphrase>associates</foreignphrase>
</quote>
</para>
                  </listitem>
                  <listitem>
                    <para>
<varname>mc</varname> bzw. <varname>attribute</varname>
</para>
                    <para>
<quote>
<foreignphrase>associates</foreignphrase>
</quote>
</para>
                  </listitem>
                </itemizedlist>
</para>
</entry>
            </row>


            <row>
              <entry>
<para>
<wordasword>MetaChart-Attribute</wordasword>-Einbettung in <wordasword>MetaChart</wordasword>
</para>
</entry>
              <entry>
<para>
<varname>at_attribute</varname>
</para>
</entry>
              <entry>
<para>
<itemizedlist>
                  <listitem>
                    <para>
<varname>mc</varname>
</para>
                    <para>
<quote>
<foreignphrase>has attribute</foreignphrase>
</quote>
</para>
                  </listitem>
                  <listitem>
                    <para>
<varname>attribute</varname>
</para>
                    <para>
<quote>
<foreignphrase>is attribute of</foreignphrase>
</quote>
</para>
                  </listitem>
                </itemizedlist>
</para>
</entry>
            </row>

            <row>
              <entry>
<para>Titel eines <wordasword>MetaCharts</wordasword>
</para>
</entry>
              <entry>
<para>
<varname>at_mc_title</varname>
</para>
</entry>
              <entry>
<para>
<itemizedlist>
                  <listitem>
                    <para>
<varname>mc</varname>
</para>
                    <para>
<quote>
<foreignphrase>is titled</foreignphrase>
</quote>
</para>
                  </listitem>
                  <listitem>
                    <para>
<varname>title</varname>
</para>
                    <para>
<quote>
<foreignphrase>is title of</foreignphrase>
</quote>
</para>
                  </listitem>
                </itemizedlist>
</para>
</entry>
            </row>

            <row>
              <entry>
<para>Titel eines <wordasword>MetaChart-Attributes</wordasword>
</para>
</entry>
              <entry>
<para>
<varname>at_attribute_title</varname>
</para>
</entry>
              <entry>
<para>
<itemizedlist>
                  <listitem>
                    <para>
<varname>attribute</varname>
</para>
                    <para>
<quote>
<foreignphrase>is titled</foreignphrase>
</quote>
</para>
                  </listitem>
                  <listitem>
                    <para>
<varname>title</varname>
</para>
                    <para>
<quote>
<foreignphrase>is title of</foreignphrase>
</quote>
</para>
                  </listitem>
                </itemizedlist>
</para>
</entry>
            </row>

            <row>
              <entry>
<para>Erstelldatum eines <wordasword>MetaCharts</wordasword>
</para>
</entry>
              <entry>
<para>
<varname>at_mc_createDate</varname>
</para>
</entry>
              <entry>
<para>
<itemizedlist>
                  <listitem>
                    <para>
<varname>mc</varname>
</para>
                    <para>
<quote>
<foreignphrase>was created at</foreignphrase>
</quote>
</para>
                  </listitem>
                  <listitem>
                    <para>
<varname>createDate</varname>
</para>
                    <para>
<quote>
<foreignphrase>is createDate of</foreignphrase>
</quote>
</para>
                  </listitem>
                </itemizedlist>
</para>
</entry>
            </row>

            <row>
              <entry>
<para>Erstelldatum eines <wordasword>MetaChart-Attributes</wordasword>
</para>
</entry>
              <entry>
<para>
<varname>at_attribute_createDate</varname>
</para>
</entry>
              <entry>
<para>
<itemizedlist>
                  <listitem>
                    <para>
<varname>attribute</varname>
</para>
                    <para>
<quote>
<foreignphrase>was created at</foreignphrase>
</quote>
</para>
                  </listitem>
                  <listitem>
                    <para>
<varname>createDate</varname>
</para>
                    <para>
<quote>
<foreignphrase>is createDate of</foreignphrase>
</quote>
</para>
                  </listitem>
                </itemizedlist>
</para>
</entry>
            </row>


          </tbody>
          </tgroup>
        </informaltable>




      </section>

      <section>
<title>
<foreignphrase>Occurrence Types</foreignphrase>
</title>
        <para>Das <foreignphrase>Topic</foreignphrase> <varname>attribute</varname> tritt auch zugleich als <foreignphrase>Topic Type</foreignphrase> und <foreignphrase>Occurrence Types</foreignphrase> auf. <foreignphrase>Topics</foreignphrase> des Typs <varname>attribute</varname> nehmen die Daten aus <database moreinfo="none">attributes.value</database> als <foreignphrase>Occurrence</foreignphrase> auf.</para>



      </section>
    
    </section>
    </section>



    <section>
<title>Das Beispiel als <wordasword>MetaChart</wordasword>-<foreignphrase>Topic Map</foreignphrase>
</title>
    
    

      <para>Um obiges Beispiel mit den in <wordasword>MetaChart</wordasword> vorhandenen Konzepten (siehe <xref linkend="konzepte"/>) darstellen zu können, ist eine Verallgemeinerung spezieller <foreignphrase>Topics</foreignphrase> nötig, um sie ins Schema einzupassen. Mathematisch gesehen liegt also eine Abbildung ohne eindeutige Umkehrfunktion vor: Eine Vielzahl verschiedenartiger <foreignphrase>Topic Types</foreignphrase> wird auf eine beschränkte Anzahl abgebildet.</para>

      

      <para>Im Einzelnen sind dies die <foreignphrase>Topics</foreignphrase> <varname>ort</varname>, <varname>weimar</varname>, <varname>studiengang</varname>, <varname>architektur</varname>, <varname>student</varname> und <varname>jenny</varname>. Diese werden als <foreignphrase>Topics</foreignphrase> des Typs <varname>mc</varname> abgebildet, wobei <varname>jenny</varname> als <wordasword>Child</wordasword>-<wordasword>MetaChart</wordasword> von <varname>student</varname>, <varname>weimar</varname> als <wordasword>Child</wordasword>-<wordasword>MetaChart</wordasword> von <varname>ort</varname>, sowie <varname>architektur</varname> als <wordasword>Child</wordasword>-<wordasword>MetaChart</wordasword> von <varname>studiengang</varname> abgebildet wird.</para>

      <para>Die <foreignphrase>Associations</foreignphrase> <varname>studiert-in</varname> und <varname>studiert</varname> werden als  <foreignphrase>Associations</foreignphrase> der <varname>edge</varname>-Typen abgebildet.</para>

      <para>Als <foreignphrase>Topic</foreignphrase> <varname>attribute</varname> treten auf <varname>sights</varname> und <varname>website</varname> mit jeweiliger eingebetteter <foreignphrase>Occurrence</foreignphrase> <quote>Goethehaus, Schillerhaus, ...</quote> und <quote>Nietzsche-Archiv</quote> sowie einer externen <foreignphrase>Occurrence</foreignphrase> <quote>http://www.weimar.de</quote>.</para>

      <para>Schließlich ist <varname>jenny</varname> mit <varname>weimar</varname> sowie <varname>jenny</varname> mit <varname>architektur</varname> via <varname>edge</varname>s zu assoziieren.</para>

      <para>Natürlich sind neben dieser auch andere Abbildungen denkbar.</para>


    </section>



    <section>
<title>Erstellung der <foreignphrase>Topic Map</foreignphrase> in Java</title>
      <para>Die hier verwendete <foreignphrase>Open Source</foreignphrase>-Bibliothek <quote>tm4j</quote> in der Version 0.5 von Kal Ahmed <citation>Ahmed02</citation> stellt mit ihrem Java-<foreignphrase>Application Programmers Interface</foreignphrase> (API) in der Klasse <literal moreinfo="none">TopicMapFactory</literal> (<literal moreinfo="none">tmf</literal>) Methoden zur <foreignphrase>Topic</foreignphrase>-, <foreignphrase>Association</foreignphrase>- und <foreignphrase>Occurrence</foreignphrase>-Generierung auf niederer Ebene zur Verfügung. Es erspart die explizite Erstellung der dazu nötigen XML-Elemente auf DOM-Ebene. Beispielsweise werden <foreignphrase>Topics</foreignphrase> mittels <literal moreinfo="none">Topic topic = tmf.createTopic(topicID)</literal> erstellt, wobei das Anhängen eines BaseNames via</para>
      <screen format="linespecific">
      BaseName bn = tmf.createBaseName(baseNameID);
      bn.setString(baseNameString);
      Topic.addName();
      </screen>
      <para>zwingend erforderlich ist. Daher ist es sinnvoll, für derartige wiederkehrende Konstrukte eigene Methoden zu definieren, die zugleich die IDs auf Eindeutigkeit überprüfen. Im konkreten Fall wurde dies mit einer Methode realisiert, die die erstellten <foreignphrase>Topics</foreignphrase> in eine <literal moreinfo="none">Hashtable</literal> (mit deren IDs als Schlüssel) ablegt, falls diese ID dort noch nicht vorhanden ist. Im anderen Fall wird das durch die ID referenzierte <foreignphrase>Topic</foreignphrase> aus der <literal moreinfo="none">Hashtable</literal> zurückgegeben.</para>


      <bridgehead renderas="sect3">Template</bridgehead>

      <para>Die in <xref linkend="tm.tao"/> angesprochene Zweiteilung einer <foreignphrase>Topic Map</foreignphrase> kommt auch hier zum Tragen. So werden zu Beginn des Exports in der Methode xtmCreateTopix (siehe <xref linkend="method.xtmCreateTopix"/>) die (grundlegenden) <foreignphrase>Topic Types</foreignphrase>, wie weiter oben erläutert, erstellt. Diese <foreignphrase>Topics</foreignphrase> werden dabei nach festem Schema in einer Hashtable abgelegt. (Schlüssel ist der String aus dem Datenbankattribut  <database moreinfo="none">attributes.type</database>.)</para>


      <bridgehead renderas="sect3">Individuen</bridgehead>


      <para>Die Daten der individuellen <foreignphrase>Topics</foreignphrase> werden mit denselben Methoden aus der Klasse <literal moreinfo="none">Service</literal> wie beim <wordasword>MetaChart</wordasword>-XML-Export eingeholt und mit ähnlichen Methoden wie in xref verarbeitet. Dabei wird beispielsweise zu jedem <wordasword>MetaChart</wordasword>-<foreignphrase>Topic</foreignphrase> der <wordasword>MetaChart</wordasword>-<foreignphrase>Topic Types</foreignphrase> aus der Hashtable miteinbezogen. Miteinander verbundene <wordasword>MetaCharts</wordasword> oder <wordasword>MetaChart-Attributes</wordasword> werden mittels <foreignphrase>Associations</foreignphrase> in der <foreignphrase>Topic Map</foreignphrase> in Beziehung gebracht, wozu ein passender <foreignphrase>Association Type</foreignphrase> aus der Hashtable genommen oder aber ein eigener neu erstellt wird.</para>

      <para>Zur Erstellung einer <foreignphrase>Association</foreignphrase> inklusive speziellem <foreignphrase>Association Type</foreignphrase> stehen die Methoden <literal moreinfo="none">createAssociationTopic</literal> und <literal moreinfo="none">createAssociation</literal> in der Klasse <literal moreinfo="none">TopicHash</literal> (<xref linkend="class.topichash"/>) zur Verfügung.</para>



  

    </section>

    <section id="tm.mc2tm">
<title>XSL Transformation von <wordasword>MetaChart</wordasword>-XML nach <foreignphrase>Topic Maps</foreignphrase>
</title>
      <para>Es bietet sich an, das vorhandene <wordasword>MetaChart</wordasword>-XML (<xref linkend="mc"/>) mittels XSL Transformation zum Einen in die <foreignphrase>Linear Topic Map Notation</foreignphrase>, da diese mit recht einfachen Anweisungen auskommt, zum Anderen direkt nach <acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase>, was einen Zwischenschritt erspart, zu überführen.</para>

      <para>
<xref linkend="appendix.xtm.mc2ltm"/> zeigt Ausschnitte des Stylesheets für die <foreignphrase>Linear Topic Map Notation</foreignphrase>.</para>
      


      <para>Das Stylesheet in <xref linkend="appendix.xtm.mc2xtm"/> erstellt im XSL-Template <sgmltag>METACHARTS</sgmltag> alle grundlegenden <foreignphrase>Topics</foreignphrase> (<foreignphrase>Topic Types</foreignphrase> und <foreignphrase>Association Types</foreignphrase>) für <wordasword>MetaChart</wordasword>, <wordasword>MetaChart-Attribute</wordasword> Metadaten, Rekursion und Assoziation (siehe <xref linkend="konzepte"/>). Dabei setzt dieses Stylesheet zur Repräsentation der Metadaten das von Ontopia vorgeschlagene PSI ein. Die Metainformation wird hier &#8211; anstatt mit einer <foreignphrase>Association</foreignphrase> verbunden &#8211; direkt als <foreignphrase>Occurrence</foreignphrase> in das <foreignphrase>Topic</foreignphrase> eingebunden. Ontopias <foreignphrase>Topic Map</foreignphrase>-Browser stellt diese Metadaten gesondert dar.</para>
      <para>Im Template <sgmltag>METACHART</sgmltag> wird erst der <foreignphrase>Topic</foreignphrase> der <wordasword>MetaChart</wordasword>-Instanz erstellt, um dann dessen Metadaten im Template <sgmltag>METADATAS/METADATA</sgmltag> als <foreignphrase>Occurrence</foreignphrase> anzuhängen. Die Traversierung des XML-Baums wird in den Templates <sgmltag>CHILDREN</sgmltag> und <sgmltag>ATTRIBUTES</sgmltag> fortgesetzt. Egal ob <wordasword>Child</wordasword>-<wordasword>MetaCharts</wordasword> als Kindelement zu <sgmltag>CHILDREN</sgmltag> eingebunden oder in <sgmltag>CHILD</sgmltag> referenziert sind, wird eine <quote>Parent-Child</quote>-<foreignphrase>Association</foreignphrase> generiert. Das Template <sgmltag>ATTRIBUTE</sgmltag> enthält Fallunterscheidungen für die verschiedenen <database moreinfo="none">attributes.type</database>s. Mittels <sgmltag>xsl:choose</sgmltag> und <sgmltag>xsl:when</sgmltag> wird zwischen <wordasword>MetaChart-Attributes</wordasword> vom Typ <varname>assoziation</varname>, Binärdaten und Texten unterschieden. Für <wordasword>MetaChart</wordasword>-Assoziationen werden individuelle <foreignphrase>Association Types</foreignphrase> und <foreignphrase>Associations</foreignphrase> angelegt, Binärdaten werden mit ihrem Dateinamen als externe <foreignphrase>Occurrence</foreignphrase> und Texte als interne <foreignphrase>Occurrence</foreignphrase> eingebunden. Schließlich werden auch für die <wordasword>MetaChart-Attributes</wordasword> im Template <sgmltag>METADATA</sgmltag> deren Metainformationen behandelt. Dabei werden den Metainformationen des Typs <varname>title</varname> und <varname>createDate</varname> gesonderte <foreignphrase>Occurrence Types</foreignphrase> zugewiesen.</para>

      <para>Eine <wordasword>MetaChart</wordasword>-<foreignphrase>Topic Map</foreignphrase> ist in Auszügen in <xref linkend="appendix.xtm.instanz"/> zu sehen.</para>

      

      <para>Proprietäres XML als Ausgangsbasis zur Erstellung einer <foreignphrase>Topic Map</foreignphrase> mag nicht immer die Flexibilität eines direkten Exports mittels Java erreichen; im konkreten Fall jedoch ist das XML für eine Abbildung nach <foreignphrase>Topic Maps</foreignphrase> ausreichend strukturiert. Der Aufwand der Javaimplementierung dagegen ist relativ hoch.</para>

    </section>





  </section>


    
    
  <section id="rdf">
<title>
<foreignphrase>Resource Description Framework</foreignphrase>
</title>


    
<indexterm significance="normal">
<primary>RDF</primary>
</indexterm>
<indexterm significance="normal">
<primary>RDF</primary>
<secondary>Resource</secondary>
</indexterm>
<indexterm significance="normal">
<primary>RDF</primary>
<secondary>Property</secondary>
</indexterm> <indexterm significance="normal">
<primary>Ontologie</primary>
</indexterm>
<indexterm significance="normal">
<primary>Metainformation</primary>
</indexterm>
<indexterm significance="normal">
<primary>Metadatum</primary>
<see>Metainformation</see>
</indexterm>

    <para>Das <foreignphrase>Resource</foreignphrase> Description Framework (RDF) (siehe <citation>Lassila99</citation>) ist eine ressourcenbeschreibende XML-Applikation, primär dazu gedacht, Metadaten abzulegen und Ontologien zu erstellen. RDF erfährt eine starke Unterstützung des W3Cs zur Verwirklichung der <wordasword>Semantic Web</wordasword>-Vision: <quote>Web pages at the moment in HTML are designed to be read by humans. In the future, some Web pages will be in RDF. This will be read by computer programs which will help us organize ourselves and our data and possibly everything we do</quote> <citation>BernersQA</citation>.</para>

    <note>
<para>Eine übliche Kurzdefinition des Begriffs Metadaten lautet: Daten über (andere) Daten; Informationen über (andere) Informationen. So sind Verfasser, Titel und Erstelldatum eines Dokuments Metadaten des Dokuments, was Daten an sich enthält. Meistens helfen Metadaten Informationen zu finden. Während manche Daten für ein Programm Metadaten darstellen, können dieselben Daten aus anderer Sicht nur Daten an sich sein. Im Bereich der relationalen Datenbanken beispielsweise ist genau definiert, wo Daten enden und Metadaten beginnen: Der Name jeder Tabelle und der Typ jeder Spalte sind Metadaten der abgelegten Daten. (Vgl. <citation>Ogbuji00</citation>)</para>
<para/>
</note>


    <para>RDF basiert auf drei grundlegenden Konzepten: <foreignphrase>Resources</foreignphrase> (Ressourcen), <foreignphrase>Properties</foreignphrase> (Eigenschaften) und <foreignphrase>Statements</foreignphrase> (Aussagen). <foreignphrase>Resources</foreignphrase> sind analog zu Konzepten in der Theorie der <foreignphrase>Conceptual Graphs</foreignphrase> zu sehen. Die Kanten/Relationen der CGs entsprechen den <foreignphrase>Properties</foreignphrase> Sobald alle (In-)Begriffe durch Ressourcen definiert sind, können Aussagen über die Domäne gemacht werden. Dies geschieht, indem man Tripel aus Ressourcen, Eigenschaften und Werten (Literale oder eine andere Ressource) bildet. (vgl. <citation>Anderson00</citation>) Diese Tripel entsprechen gerichteteten Graphen. Es ergibt sich eine <foreignphrase>Subject</foreignphrase>-<foreignphrase>Predicate</foreignphrase>-<foreignphrase>Object</foreignphrase>-Grammatik, die wie folgt interpretiert wird: <foreignphrase>subject has a <foreignphrase>Property</foreignphrase>  valued by object.</foreignphrase> Das Beispiel aus <xref linkend="cg"/> würde hier lauten: <foreignphrase>
<varname>cat</varname> has the <foreignphrase>Property</foreignphrase> <varname>on</varname> valued by <varname>mat</varname>.</foreignphrase>
</para>

    <indexterm significance="normal">
<primary>Tripel</primary>
<seealso>RDF</seealso>
</indexterm>

    <formalpara>
<title>
<foreignphrase>Resources</foreignphrase>
</title>
<para>Alles was in RDF beschrieben wird, nennt sich <foreignphrase>Resource</foreignphrase>. Diese werden durch <foreignphrase>Uniform Resource Identifier</foreignphrase>s (URI) (vgl. <citation>RFC2396</citation>) und mittels <quote>
<varname>#</varname>
</quote> angehängte <foreignphrase>Fragment Identifier</foreignphrase> benannt. Alles Erdenkliche kann einer URI zugewiesen werden: <quote>A <foreignphrase>Resource</foreignphrase> can be anything that has identity. Familiar examples include an electronic document, an image, a service, and a collection of other <foreignphrase>Resources</foreignphrase>. Not all <foreignphrase>Resources</foreignphrase> are network <quote>retrievable</quote>; e.g., human beings, corporations, and bound books in a library can also be considered <foreignphrase>Resources</foreignphrase>
</quote> <citation>RFC2396</citation>.</para>
</formalpara>

    <formalpara>
<title>
<foreignphrase>Properties</foreignphrase>
</title>
<para>Eine <foreignphrase>Property</foreignphrase> ist eine spezifische Eigenschaft oder eine Beziehung, die eine <foreignphrase>Resource</foreignphrase> näher beschreibt. RDF definiert nur wenige Properties, da beliebige <foreignphrase>Properties</foreignphrase> mittels <foreignphrase>Resources</foreignphrase> definiert werden können.</para>
</formalpara>

    <formalpara>
<title>
<foreignphrase>Statements</foreignphrase>
</title>
<para>
<indexterm significance="normal">
<primary>RDF</primary>
<secondary>Statement</secondary>
</indexterm>Die angesprochenen Tripel aus <foreignphrase>Subject</foreignphrase>, <foreignphrase>Predicate</foreignphrase> und <foreignphrase>Object</foreignphrase> heißen <foreignphrase>Statements</foreignphrase> (Aussagen). Das <foreignphrase>Object</foreignphrase> eines <foreignphrase>Statements</foreignphrase> kann eine andere <foreignphrase>Resource</foreignphrase> oder als Literal direkt eingebunden sein. Letzteres wird in XML als String oder anderer primitiver Datentyp abgelegt, der auch XML-Markup enthalten darf, das nicht weiter von RDF-Prozessoren untersucht wird.</para>
</formalpara>


      <section>
<title>RDF NameSpaces, Vocabulary</title>
        <para>RDF definiert nur wenige Kernelemente sowie die Syntax der Tripel. RDF definiert nicht das Vokabular, das zur Beschreibung der <foreignphrase>Resources</foreignphrase> und <foreignphrase>Properties</foreignphrase> genutzt wird. Dieses wird mit Hilfe der Kernelemente von RDF und <foreignphrase>Resource Description Framework Schema</foreignphrase> (RDFS) (siehe <citation>Brickley00</citation>) erzeugt. Für typische Eigenschaften empfiehlt sich der Gebrauch weitverbreiteter Vokabulare, wie z. B. <literal moreinfo="none">Dublin Core</literal> (siehe <citation>RFC2413</citation>).</para>

        <section>
<title>RDF und RDFS</title>

        <indexterm significance="normal">
<primary>Taxonomie</primary>
</indexterm>
        <indexterm significance="normal">
<primary>Klasse</primary>
</indexterm>
        <indexterm significance="normal">
<primary>Instanz</primary>
</indexterm>

            
          <para>RDF und RDFS sind definierte Namespaces. Im Gegensatz zu XML verweist die Namespace-Angabe gleichzeitig auf das RDF Schema. RDFS erweitert die Ausdrucksstärke der <foreignphrase>Resource</foreignphrase>-Property-Object-Tripel in RDF zu einem Netzwerk an verwandten Beschreibungen mittels Taxonomien durch Klassen und Instanzen. <quote>The membership of one or the other namespace may not always seem logical, and must have historical reasons mostly</quote> <citation>Champin01</citation>.</para>
          <para>Ein Dokument, das eine Sammlung von <foreignphrase>Properties</foreignphrase> und Klassen definiert, also die Bedeutung der <foreignphrase>Resource</foreignphrase>n beschreibt, nennt sich <emphasis>Schema</emphasis>. <quote>RDF-Schema is a simple ontology language able to define basic vocabularies</quote> <citation>Fensel00</citation>. RDFS ist selbst, wie auch andere Schemata, in der RDF-Syntax definiert <citation>Lassila99</citation>.</para>


          <section>
<title>Klassen in RDF</title>
            <para>Instanzen von Klassen sind <foreignphrase>Resources</foreignphrase>, die mittels der <foreignphrase>Property</foreignphrase> <literal moreinfo="none">rdf:type</literal> auf die entsprechende Klasse verweisen. Diesen Klassenresources wiederum ist als <foreignphrase>Property</foreignphrase> <literal moreinfo="none">rdfs:Class</literal> zuzuweisen. Analog verweisen alle <foreignphrase>Properties</foreignphrase> mittels <literal moreinfo="none">rdf:type</literal> auf <literal moreinfo="none">rdf:Property</literal>.</para>

            <para>Ein Beispiel zur Bildung von Klassen und Instanzen findet sich in <xref linkend="rdf.ex.class"/>
</para>
          
          </section>

        <section>
<title>Das <emphasis>Dublin Core</emphasis>-Vokabular</title>
          <para>Die Dublin Core Metadata Initiative (<varname>dublincore.org</varname>), eine internationale Gruppe von Experten, definiert als RDF Applikation ein Vokabular über fünfzehn typische Meta-Angaben wie title, creator, date, format, references. Zu vielen Angaben sind noch Verfeinerungen wie z. B. relation.isPartOf oder encoding-schemes festgelegt, wie z. B. Formatierung von Datumsangaben nach ISO in <ulink url="http://www.w3.org/TR/NOTE-datetime"/>:  <literal moreinfo="none">YYYY-MM-DDThh:mm:ssTZD</literal>.</para>
          <para>Die Elemente werden u. a. in <citation>RFC2413</citation> erläutert.</para>

          
        </section>







        </section>
      </section>

  




      <section id="rdf.syntax">
<title>RDF-Syntax</title>

        <indexterm significance="normal">
<primary>RDF</primary>
</indexterm>
<indexterm significance="normal">
<primary>RDF</primary>
<secondary>Resource</secondary>
</indexterm>
<indexterm significance="normal">
<primary>RDF</primary>
<secondary>Property</secondary>
</indexterm>
        <para>Weiter Verbreitung erfreut sich die <wordasword>Notation 3</wordasword> (N3) als Alternative zur XML-Darstellung der Tripel. Die Gemeinschaft der <wordasword>RDF Interest Group</wordasword> stellt eine Vielzahl von Tools &#8211; meist in Python realisiert &#8211; für dieses Format zur Verfügung. <wordasword>N-Triples</wordasword> ist eine ähnliche, von N3 abgeleitete Kurzform.</para>


        <para>Als Beispiel sei der Satz <quote>Jenny Doe ist die Autorin einer am 28. März 2002 vorgelegten Seminararbeit mit dem Titel <quote>Bauhaus Hausbau</quote>
</quote> in RDF dargestellt:</para>

        <para>In N3 ist zu formulieren:</para>

        
      <programlisting width="60" format="linespecific"> @prefix : &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
 @prefix dc: &lt;http://purl.org/dc/elements/1.0/&gt; .

&lt;http://localhost/doc/seminararbeit&gt; 
     dc:creator "Jenny Doe";
     dc:date "2002-03-28";
     dc:description "Eine Seminarbeit in Architektur";
     dc:title "Bauhaus Hausbau" .</programlisting>

<para>Die XML-Syntax ist etwas länger:</para>


<programlisting width="60" format="linespecific">&lt;rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.0/"&gt;
  &lt;rdf:Description 
      rdf:about="http://localhost/doc/seminararbeit"&gt;
    &lt;dc:creator&gt;Jenny Doe&lt;/dc:creator&gt;
    &lt;dc:title&gt;Bauhaus Hausbau&lt;/dc:title&gt;
    &lt;dc:description&gt;
      Eine Seminarbeit in Architektur
    &lt;/dc:description&gt;
    &lt;dc:date&gt;2002-03-28&lt;/dc:date&gt;
  &lt;/rdf:Description&gt;
&lt;/rdf:RDF&gt;</programlisting>


        <para>Das Attribut <sgmltag>rdf:about</sgmltag> verweist auf die Ressource, die die Rolle des <foreignphrase>Subjects</foreignphrase> einnimmt, um näher bestimmt zu werden, z. B. mittels der <foreignphrase>Property</foreignphrase> <sgmltag>dc:creator</sgmltag>, die den Wert <literal moreinfo="none">Jenny Doe</literal> trägt.</para>

        <para>Neben dieser Form sind noch andere verkürzende XML-Syntax gültig, beispielsweise können die Objektliterale anstelle von Textknoten auch als Attributwerte dargestellt werden.</para>





        <para>Das Wurzelelement ist <sgmltag>rdf:RDF</sgmltag>. Es werden zwei Namensräume angegeben: die RDF-Syntax-Definition des W3-Konsortiums und die von <foreignphrase>Dublin Core</foreignphrase> (DC). Dadurch lassen sich mit <literal moreinfo="none">rdf:</literal> <foreignphrase>Tags</foreignphrase> aus dem W3-Namensraum benutzen, und mit <literal moreinfo="none">dc:</literal> <foreignphrase>Tags</foreignphrase> aus dem Dublin-Core-Namensraum.</para>

      
        <para>Das Beispiel ist in folgende Tripel zerlegbar:</para>

        <table>
          <title>Tripel eines RDF-Modells</title>
          <tgroup align="left" cols="4">
            <colspec colwidth="*"/>
            <colspec colwidth="4*"/>
            <colspec colwidth="4*"/>
            <colspec colwidth="4*"/>

            <thead>
              <row>
<entry>#</entry>
<entry>
<foreignphrase>Subject</foreignphrase>
</entry>
<entry>
<foreignphrase>Predicate</foreignphrase>
</entry>
<entry>
<foreignphrase>Object</foreignphrase>
</entry>
</row>
            </thead>

            <tbody>
              <row>
<entry>1</entry>
              <entry>http://localhost/doc/seminararbeit</entry>
              <entry>http://purl.org/dc/elements/1.0/creator</entry>
              <entry>Jenny Doe</entry>
              </row>
              <row>
<entry>2</entry>
              <entry>http://localhost/doc/seminararbeit</entry>
              <entry>http://purl.org/dc/elements/1.0/title</entry>
              <entry>Bauhaus Hausbau</entry>
              </row>
              <row>
<entry>3</entry>
              <entry>http://localhost/doc/seminararbeit</entry>
              <entry>http://purl.org/dc/elements/1.0/description</entry>
              <entry>Eine Seminarbeit in Architektur</entry>
              </row>
              <row>
<entry>4</entry>
              <entry>http://localhost/doc/seminararbeit</entry>
              <entry>http://purl.org/dc/elements/1.0/date</entry>
              <entry>2002-03-28</entry>
              </row>
            </tbody>
          </tgroup>
        </table>


        <para>Jedes Tripel erzeugt einen gerichteten Graphen, dessen Knoten und Kanten mit URIs gekennzeichnet sind. Die Kanten werden mit Prädikaten benannt, die Knoten mit Subjekten oder Objekten.</para>

        <figure float="0">
          <title>Grafische Darstellung der RDF-Tripel</title>
          <mediaobject>
            <imageobject>
              <imagedata format="EPS" fileref="images/rdf/bauhaushausbau.eps"/>
            </imageobject>
          </mediaobject>
        </figure>



        <section id="rdf.ex.class">
<title>Erweiterung zu Klassen</title>
          <para>Jenny Doe soll nun als Instanz der Klasse Student erscheinen. Dazu wird <literal moreinfo="none">&lt;dc:creator&#8230;&gt;</literal> ersetzt durch:</para>
          <screen width="60" format="linespecific">  &lt;dc:creator rdf:resource="http://localhost/jenny"/&gt;</screen>

          <para>Weiterhin sind folgende Tripel anzufügen, die die <foreignphrase>Resource</foreignphrase> <varname>jenny</varname> als Instanz der <foreignphrase>Resource</foreignphrase> <varname>student</varname>, die wiederum als RDF-Klasse definiert ist, ausweist:</para>

        <screen width="60" format="linespecific">  &lt;rdf:Description rdf:about="http://localhost/student"&gt;
    &lt;rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/&gt;
    &lt;dc:title&gt;Student(in)&lt;/dc:title&gt;
  &lt;/rdf:Description&gt;

  &lt;rdf:Description rdf:about="http://localhost/jenny"&gt;
    &lt;rdf:type rdf:resource="http://localhost/student"/&gt;
    &lt;dc:title&gt;Jenny Doe&lt;/dc:title&gt;
  &lt;/rdf:Description&gt;</screen>

          <para>Der Verweis auf <literal moreinfo="none">#Class</literal> entstammt dem RDFS-Namespace, der zu Beginn als solcher deklariert werden kann, wie in Notation3 formuliert:</para>


<programlisting width="60" format="linespecific"> @prefix : &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
 @prefix dc: &lt;http://purl.org/dc/elements/1.0/&gt; .
 @prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .

&lt;http://localhost/doc/seminararbeit&gt; 
    dc:creator &lt;http://localhost/jenny&gt;;
    dc:date "2002-03-28";
    dc:description "Eine Seminarbeit in Architektur";
    dc:title "Bauhaus Hausbau" .

&lt;http://localhost/jenny&gt;   
    a &lt;http://localhost/student&gt;; 
    dc:title "Jenny Doe" .

&lt;http://localhost/student&gt; 
    a  rdfs:Class;                
    dc:title "Student(in)" .</programlisting>




          <para>Vor allem das <literal moreinfo="none">rdf:type</literal>-Konstrukt ist in N3 durch <literal moreinfo="none">a</literal> sehr lesbar. Im folgenden Graphen ist zur Verdeutlichung der Klassenbeziehung auch John Doe als Instanz von <varname>student</varname> modelliert:</para>

    <indexterm significance="normal">
<primary>Visualisierung</primary>
<secondary>RDF</secondary>
</indexterm>

          <figure float="0">
            <title>Grafische Darstellung der RDF-Tripel mit einer Klasse</title>
            <mediaobject>
              <imageobject>
                <imagedata format="EPS" fileref="images/rdf/jenny_john.eps"/>
    
              </imageobject>
            </mediaobject>
          </figure>



          <para>Auch ist es möglich, Unterklassen (<literal moreinfo="none">subClassOf</literal>) sowie Untereigenschaften (<literal moreinfo="none">subPropertyOf</literal>) zu modellieren. Dabei ist zu beachten, keine transitiven Zyklen zu erstellen. Sei &#964; die durch 

            <informalequation>
              <alt>&#964;(s, p, o) = wahr, genau dann wenn s has t valued by o</alt>
                <mediaobject>
                  <imageobject>
                    <imagedata format="EPS" fileref="equations/type-subclass-type.eps"/>
                  </imageobject>
                </mediaobject>
            </informalequation>

          definierte Relation, dann gelten folgende Transitivitäten:</para>

          <para>Sei <emphasis>i</emphasis> eine Instanz der Klasse/vom Typ <emphasis>c</emphasis>
<subscript>1</subscript> und <emphasis>c</emphasis>
<subscript>1</subscript> Unterklasse von <emphasis>c</emphasis>
<subscript>2</subscript>, so ist <emphasis>i</emphasis> auch vom Typ <emphasis>c</emphasis>
<subscript>2</subscript>.
            <equation>
<title>type-subClass-type-Transitivität</title>
              <alt>$$\forall \; i, c_1, c_2 \;\; \tau(c_1, \mathtt{rdf\!:\!type}, c_2) \;\wedge\; \tau(c_1, mathtt{rdfs\!:\!subClassOf}, c_2) \Rightarrow \tau (i, \mathtt{rdf\!:\!type}, c_2)$$</alt>
                <mediaobject>
                  <imageobject>
                    <imagedata format="EPS" fileref="equations/type-subclass-type.eps"/>
                  </imageobject>
                </mediaobject>
            </equation>
          </para>


          <para>Sei <emphasis>c</emphasis>
<subscript>1</subscript> Unterklasse von <emphasis>c</emphasis>
<subscript>2</subscript> und <emphasis>c</emphasis>
<subscript>2</subscript> Unterklasse von <emphasis>c</emphasis>
<subscript>3</subscript>, so ist <emphasis>c</emphasis>
<subscript>1</subscript> auch Unterklasse zu <emphasis>c</emphasis>
<subscript>3</subscript>.
            <equation id="subclass.transitiv">
<title>subClass-subClass-subClass-Transitivität</title>
              <alt/>
                <mediaobject>
                  <imageobject>
                    <imagedata format="EPS" fileref="equations/subclass-subclass-subclass.eps"/>
                  </imageobject>
                </mediaobject>
            </equation>
          </para>

          <para>Zyklen sind nicht gültig, d. h. &#964; ist in keinem Fall reflexiv:
            <equation>
<title>Zyklus</title>
              <alt/>
                <mediaobject>
                  <imageobject>
                    <imagedata format="EPS" fileref="equations/not-subclass.eps"/>
                  </imageobject>
                </mediaobject>
            </equation>
          </para>

          <para>Analoge Überlegungen gelten für <literal moreinfo="none">subPropertyOf</literal>. Die in <xref linkend="inferenzregel"/> vorgestellte Schreibweise für Inferenzen wäre ebenso denkbar; die Aussagen sind ähnlich.</para>

        </section>
        <section>
<title>Speziellere RDF(S)-Elemente</title>
          
           
          <para>Definitionsmenge und Wertemenge von Objekte können mit <foreignphrase>Constraints</foreignphrase>eingeschränkt werden. Dies geschieht mit den RDFS-Elementen <literal moreinfo="none">domain</literal> bzw. <literal moreinfo="none">range</literal>, die einer <foreignphrase>Property</foreignphrase> zugewiesen werden können. 
          Beispielsweise könnte ein <literal moreinfo="none">domain</literal>-Constraint der <literal moreinfo="none">dc:author</literal>-<foreignphrase>Property</foreignphrase> festlegen, dass diese <foreignphrase>Property</foreignphrase> nur von <foreignphrase>Resources</foreignphrase> ausgehen darf, die Instanzen einer Klasse <literal moreinfo="none">book</literal> sind. Ebenso könnte mittels <literal moreinfo="none">range</literal> definiert werden, dass der Wert von <literal moreinfo="none">dc:author</literal> eine Instanz der Klasse <literal moreinfo="none">person</literal> sein muss.</para>
          
          
          

          <para>Ähnlich den XML-Schema-Konstrukten zur Gruppierung von Elementen gibt es in RDF ungeordnete Listen (<varname>Bag</varname>), geordnete Listen (<varname>Seq</varname>) sowie Gruppen von Alternativen (<varname>Alt</varname>). Diese drei Elemente sind Unterklassen der RDFS-Klasse <varname>Container</varname>. (Vgl. <citation>Brickley00</citation>)</para>
          <para>Mittels <sgmltag>rdfs:label</sgmltag> und <sgmltag>rdfs:comment</sgmltag> können für menschliche Betrachter Ressourcen benannt bzw. erläutert werden.</para>

        </section>

      </section>

      <section id="rdfmodell">
<title>
<wordasword>MetaChart</wordasword> im RDF-Modell</title>
        <para>Zur Erstellung einer Abbildung von <wordasword>MetaChart</wordasword> nach RDF wurde <wordasword>Jena</wordasword>, eine <foreignphrase>Open Source</foreignphrase>-Bibliothek mit Java-API <citation>McBride02</citation> von Brian McBride, in der Version 1.3 verwendet. Die Erstellung eines RDF-Modells mittels XSL Transformation aus dem <wordasword>MetaChart</wordasword>-XML erscheint aufwändiger als den Export mit Hilfe dieser weit verbreiteten, ausgereiften Bibliothek, da diese einen leichten Zugriff auf die definierten Namensräume und Vokabulare ermöglicht, sowie die Erstellung der Tripel mittels intuitiven Methoden bereitstellt.</para>

        

        <para>Analog zur Erstellung des Templates in <foreignphrase>Topic Maps</foreignphrase> (siehe <xref linkend="konzepte"/>) werden hier vorab <foreignphrase>Resources</foreignphrase> zur Abbildung der <wordasword>MetaChart</wordasword>-Konzepte <wordasword>MetaChart</wordasword>, <wordasword>MetaChart-Attribute</wordasword> und <wordasword>View</wordasword> erstellt.</para>

        
        <para>Die benötigten Vokabulare werden von <literal moreinfo="none">com.hp.hpl.mesa.rdf.jena.vocabulary.RDF</literal>, <literal moreinfo="none">.RDFS</literal> und <literal moreinfo="none">.DC</literal> importiert, um auf die enthaltenen Konstanten zugreifen zu können. Ressourcen können damit einfach als Klasseninstanzen erstellt werden:</para>

      <screen width="60" format="linespecific">Resource metachart = 
  Model.createResource(RDFTools.appendURI("metachart"), RDFS.Class)
       .addProperty(RDFS.label, "MetaChart");</screen>
  
      <para>Dies erzeugt folgende <foreignphrase>Resource</foreignphrase>:</para>
<programlisting width="60" format="linespecific">  &lt;rdf:Description rdf:about='http://dayf.de#metachart'&gt;
    &lt;rdf:type 
     rdf:resource='http://www.w3.org/2000/01/rdf-schema#Class'/&gt;
    &lt;rdfs:label&gt;MetaChart&lt;/rdfs:label&gt;
  &lt;/rdf:Description&gt;</programlisting>

        <para>Der Aufruf von <literal moreinfo="none">appendURI</literal> bewirkt dabei, den <foreignphrase>localpart</foreignphrase> an eine absolute URI zu hängen.</para>


        <para>Beziehungen zwischen den Ressourcen werden mittels <foreignphrase>Properties</foreignphrase> aus dem <foreignphrase>Dublin Core Element Set</foreignphrase> modelliert. Die Hierarchie der <wordasword>MetaCharts</wordasword> entsteht durch das Element <varname>DC.relation.isPartOf</varname> bzw. <varname>DC.relation.hasPart</varname>, wobei die Verfeinerung von <varname>relation</varname> nicht in der Jena Vokabularklasse definiert ist; sie muss als String angefügt werden. Für Assoziationen wird einheitlich das Element <varname>DC.relation.references</varname> verwendet:</para>

<screen width="60" format="linespecific">
Property hasPart = m.createProperty(DC.relation + ".hasPart");
Property references = m.createProperty(DC.relation + ".references");
</screen>


        <para>Die weitere Erstellung verläuft analog zum XML-Export, d. h. Methoden namens       <literal moreinfo="none">processMetaChart</literal>, <literal moreinfo="none">processMetaData</literal>, <literal moreinfo="none">processAttribute</literal>, <literal moreinfo="none">processView</literal> und <literal moreinfo="none">processChildren</literal> sind auch hier mit den entsprechenden gegenseitigen Aufrufen (siehe <xref linkend="methodenabhaengigkeiten"/>) wiederzufinden.</para>


        <para>Gerade im Export nach RDF sind Metadaten von besonderem Interesse, da das <foreignphrase>Dublin Core Element Set</foreignphrase> viele <foreignphrase>Properties</foreignphrase> in diesem Bereich definiert und die Verwendung dieser eine breite Unterstützung in vorhandenen Anwendungen zusichert. Darum werden die Metadaten mit bekannten Typen explizit behandelt:</para>

<screen width="60" format="linespecific">
if (metadata.getType().equalsIgnoreCase("createDate")) {
  instance.addProperty(DC.date, metadata.getValue());
}
</screen>

        <para>Falls also das Objekt <literal moreinfo="none">metadata</literal> eine Metainformation des Typs <varname>createDate</varname> enthält, wird der jeweiligen <wordasword>MetaChart</wordasword>- bzw. <wordasword>MetaChart-Attribute</wordasword>-Instanz (<literal moreinfo="none">instance</literal>) als Wert der <foreignphrase>Property</foreignphrase> <literal moreinfo="none">DC.date</literal> die Metainformation zugewiesen (siehe auch <xref linkend="rdf.syntax"/>).</para>

        <para>Auftretende <wordasword>MetaChart-Attribute</wordasword>-Werte werden als Literal (ein String der die Rolle des <foreignphrase>Objects</foreignphrase> einnimmt) an die <wordasword>MetaChart-Attribute</wordasword>-Instanz im Modell gehängt. Als verbindende <foreignphrase>Property</foreignphrase> steht <varname>RDF.Value</varname> zur Verfügung: <foreignphrase>
<quote>
<wordasword>MetaChart-Attribute</wordasword> has the <foreignphrase>Property</foreignphrase> <varname>RDF.Value</varname> valued by <database moreinfo="none">attributes.value</database>.</quote>
</foreignphrase>
</para>






      
        <para>Ausschnitte der Beispielinstanz sind in <xref linkend="appendix.rdf.instanz"/> zu sehen.</para>

        <para>Im Beispiel <quote>Jenny studiert Architektur in Weimar</quote> könnte nun eine Inferenzregel definiert werden, die als resultierende Aussage <quote>Architektur ist ein Studiengang in Weimar</quote> oder <quote>Weimar bietet-an Architektur</quote> liefert.</para>

        <para>In Notation3 und für CWM (<foreignphrase>Tim Berners-Lee&#8217;s Closed World Machine</foreignphrase>, <citation>Palmer01</citation>) oder  Sean B. Palmers <foreignphrase>Eep</foreignphrase> <citation>Palmer02</citation> ist die Regel wie folgt zu formulieren:</para>

        
<screen format="linespecific">?x &lt;#studiert&gt;    ?y .
?x &lt;#studiert-in&gt; ?z .
log:implies
?z &lt;#bietet-an&gt;   ?y .</screen>
        
        <para>Für die zwei Tripel</para>
<screen format="linespecific">&lt;#jenny&gt; &lt;#studiert-in&gt; &lt;#weimar&gt; .
&lt;#jenny&gt; &lt;#studiert&gt; &lt;#architektur&gt; .</screen>

        <para>liefert das Pythonskript dieses neue Tripel:</para>      
<screen format="linespecific">&lt;#weimar&gt; &lt;#bietet-an&gt; &lt;#architektur&gt; .</screen>
      
    


        <para>Die Inferenzprozessoren nutzen beispielsweise auch die Definition einer <foreignphrase>Property</foreignphrase> als transitiv (siehe <xref linkend="subclass.transitiv"/>), um Aussagen wie in <xref linkend="mammal"/> dargestellt, zu erstellen.</para>

      </section>



   
  </section>


  </section>


</chapter>


  
<chapter id="c4">
<title>Ergebnisbetrachtung</title>

<indexterm significance="normal">
<primary>XML Topic Maps</primary>
<see>Topic Maps</see>
</indexterm>
<indexterm significance="normal">
<primary>Multipurpose Internet Mail Extension</primary>
<see>MIME</see>
</indexterm>
<indexterm significance="normal">
<primary>Resource Description Framework</primary>
<see>RDF</see>
</indexterm>
<indexterm significance="normal">
<primary>Portable Document Format</primary>
<see>PDF</see>
</indexterm>
<indexterm significance="normal">
<primary>Formatting Objects</primary>
<see>FO</see>
</indexterm>
<indexterm significance="normal">
<primary>Document Object Model</primary>
<see>DOM</see>
</indexterm>
<indexterm significance="normal">
<primary>Cascading Style Sheets</primary>
<see>CSS</see>
</indexterm>
<indexterm significance="normal">
<primary>Document Type Definition</primary>
<see>DTD</see>
</indexterm>
<indexterm significance="normal">
<primary>Document Style Semantics and Specification Language</primary>
<see>DSSSL</see>
</indexterm>
<indexterm significance="normal">
<primary>KI</primary>
<see>Künstliche Intelligenz</see>
</indexterm>





  <para>Den verschiedenen Wissensrepräsentationsformaten RDF und <foreignphrase>Topic Maps</foreignphrase> ist gemeinsam, dass sie Aussagen<indexterm significance="normal">
<primary>Aussage</primary>
<seealso>Logik</seealso>
</indexterm> über benennbare <quote>Dinge</quote> (siehe <xref linkend="it.onto"/>) erlauben. Sei als <foreignphrase>Resource</foreignphrase> oder <foreignphrase>Topic</foreignphrase> &#8211; die Idee bleibt dieselbe: Wohl definierte Dinge werden mittels Symbolen<indexterm significance="normal">
<primary>Symbol</primary>
</indexterm> dargestellt. Für reine XML-Repräsentationen hingegen gibt es keine Auszeichnung eines Elements als <quote>Ding</quote>. Hier ist der Hauptunterschied zu Formaten der Wissensrepräsentation<indexterm significance="normal">
<primary>Wissensrepräsentation</primary>
</indexterm> zu sehen. Ist ein Ding als solches nicht definierbar, können auch keine charakterisierenden Eigenschaften benannt oder Aussagen darüber gemacht werden. Das <wordasword>MetaChart</wordasword>-XML bietet in seiner strukturierten Form jedoch eine gute, serialisierte Ausgangsbasis für die verschiedensten Zielformate.</para>

    
    

  <para>Ein RDF-Modell besteht aus primitiven, dreiteiligen Einträgen und ist somit einfach zu handhaben. Die Abfolge der Tripel<indexterm significance="normal">
<primary>Tripel</primary>
</indexterm> &#8211; wie auch der <foreignphrase>Topics</foreignphrase>
<indexterm significance="normal">
<primary>Topic Maps</primary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Topic</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Association</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Occurrence</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Association</primary>
</indexterm>
<indexterm significance="normal">
<primary>Topic</primary>
</indexterm>
<indexterm significance="normal">
<primary>Occurrence</primary>
</indexterm> und <foreignphrase>Associations</foreignphrase> in <foreignphrase>Topic Maps</foreignphrase> &#8211; ist nicht bezeichnend im Gegensatz zur Elementreihenfolge in DTD-konformen XML-Instanzen. Für ein zu publizierendes Dokument macht es beispielsweise Sinn, festzulegen, dass der Titel eines Abschnitts vor den Absätzen zu erscheinen hat &#8211; bei der Notierung von Metadaten ist es hingegen gleichgültig, in welcher Reihenfolge Titel, Autor, Datum und ähnliches erscheinen.</para>
  <para>Der Vorteil flacher Strukturen, die keine Elementreihenfolge und -verschachtelung in tiefe Ebenen vorgeben, liegt in ihrer Skalierbarkeit: Rekursive Referenzierungen bilden Hierarchien; zu diesen können jederzeit neue <quote>Ebenen</quote> hinzugefügt oder bestehende einfach durch Änderungen ihrer Referenzen <quote>verschoben</quote> werden.</para>

  <para>Sollen Anfragen an modellierte Wissensstrukturen gestellt werden, sind diese in einer <foreignphrase>Engine</foreignphrase>, die die Daten in einer internen, datenbankähnlichen Struktur vorhält &#8211; losgelöst von der jeweiligen serialisierten<indexterm significance="normal">
<primary>Serialisierung</primary>
</indexterm> Wissensrepräsentation &#8211; auszuwerten.</para>


    <section id="beispiele">
<title>
<foreignphrase>Topic Maps</foreignphrase> und RDF in der Anwendung</title>

      <section>
<title>
<foreignphrase>Resource Description Framework</foreignphrase>
</title>
        
        <para>Neben der breiten Verwendung von RDF(S) in Bibliotheken ist die automatische Generierung der Metainformationen in Adobe <trademark class="trade">Acrobat</trademark> zu nennen: In den Dokumentinformationen einer PDF-Datei finden sich RDF-Tripel, die auch das <foreignphrase>Dublin Core Element Set</foreignphrase> nutzen.</para>
        
        

        <para>Ein sehr großes RDF-Modell hält das <foreignphrase>Open Directory Project</foreignphrase> (<literal moreinfo="none">dmoz.org</literal>) vor: <quote>The Open Directory Project is the largest, most comprehensive human-edited directory of the Web. It is constructed and maintained by a vast, global community of volunteer editors.</quote> Es bildet die inhaltliche Grundlage für Webverzeichnisse vieler Suchmaschinen. Die Generierung der RDF-Daten aus deren Datenbank dauert ein komplettes Wochenende.</para>





      </section>

      <section id="xtm.bsp">
<title>
<foreignphrase>Topic Maps</foreignphrase>
</title>

        
        <para>Die Börse Stuttgart (<literal moreinfo="none">boerse-stuttgart.de</literal>) präsentiert ihren Optionsscheinleitfaden als <foreignphrase>Topic Map</foreignphrase>. Ein Java-Applet stellt diese als navigierbaren, hyperbolischen Baum dar, d. h. das interessierende <foreignphrase>Topic</foreignphrase> wandert in den Vordergrund während weiter entfernte ausgeblendet werden. Die Information zum jeweiligen Thema wird außerhalb des Applets angezeigt.</para>
        
        <para>Univers Immedia (<literal moreinfo="none">universimmedia.com</literal>) bietet eine Zusammenstellung von Ressourcen für das <wordasword>Semantic Web</wordasword> und verwandte Technologien. Die Daten liegen als <foreignphrase>Topic Map</foreignphrase> vor; für das entsprechende <foreignphrase>Topic</foreignphrase> im Fokus werden die verknüpften Themen und die zugehörigen Ressourcen aufgelistet.</para>
      
      </section>


    </section>  

  


      

  <section>
<title>RDF und <foreignphrase>Topic Maps</foreignphrase> im Vergleich</title>
    
    <indexterm significance="normal">
<primary>Resource</primary>
</indexterm>
<indexterm significance="normal">
<primary>RDF</primary>
<secondary>Resource</secondary>
</indexterm>

    <para>Ein erster Unterschied zwischen RDF und <foreignphrase>Topic Maps</foreignphrase> zeigt sich in der Modellierung eines <quote>Dings</quote>: Ressourcen in RDF sind durch URIs <emphasis>identifiziert</emphasis>, während <foreignphrase>Topics</foreignphrase> mittels URIs auf Ressourcen verweisen, die das <foreignphrase>Topic</foreignphrase> <emphasis>verkörpern</emphasis>, und zusätzlich auf URIs verweisen, um das <foreignphrase>Topic</foreignphrase> zu beschreiben.</para>

    <para>Die Definition der Art der <quote>Dinge</quote> stellt sich in beiden Modellen mittels Instanz-von-Beziehungen ähnlich dar. Wie jedoch Aussagen zu Begriffen oder Beziehungen untereinander formuliert werden, ist für <foreignphrase>Topic Maps</foreignphrase> und RDF sehr unterschiedlich.</para>

    <para>Während RDF das Konzept der <foreignphrase>Conceptual Graphs</foreignphrase> <indexterm significance="normal">
<primary>Conceptual Graphs</primary>
</indexterm> aufgreift und somit gerichtete Graphen erzeugt, sind <foreignphrase>Associations</foreignphrase> in <foreignphrase>Topic Maps</foreignphrase> stets ungerichtet, d. h. in beide Richtungen gültig.</para>

    <para>Zur Darstellung der Eigenschaften eines Konzepts <indexterm significance="normal">
<primary>Konzept</primary>
</indexterm> bedarf es in RDF eigener Tripel, die diese Eigenschaft als Literal oder als Ressource mit dem Konzept verbinden. Eine Unterscheidung ähnlich dem <foreignphrase>Entity Relationship Model</foreignphrase> in Entitäten und Attributen ist hier nicht möglich. Im Gegensatz dazu ist bei <foreignphrase>Topic Maps</foreignphrase> zwischen verschiedenen Konstrukten abzuwägen:</para>
    <itemizedlist>
      <listitem>
<para>Erstellung einer <foreignphrase>Association</foreignphrase> zu einem charakterierenden <foreignphrase>Topic</foreignphrase>
</para>
</listitem>
      <listitem>
<para>Referenzierung als externe <foreignphrase>Occurrence</foreignphrase>
</para>
</listitem>
      <listitem>
<para>Einbindung als interne <foreignphrase>Occurrence</foreignphrase>
</para>
</listitem>
    </itemizedlist>

    <para>Analog zum Prädikat (<foreignphrase>Property</foreignphrase>) eines Tripels, das die Art des Attributs definiert, kann den <foreignphrase>Occurrences</foreignphrase> ein <foreignphrase>Topic</foreignphrase> als Typ zugewiesen werden.</para>

    <para>In <foreignphrase>Topic Maps</foreignphrase> ist also eine Unterscheidung zwischen Namen, einfachen Eigenschaften und verbundenen Ressourcen somit implizit. In RDF ist es v. a. für einen Prozessor schwierig, Unterschiede auszumachen.</para>

    
    <para>Ein Hauptvorteil für <foreignphrase>Topic Maps</foreignphrase> zeigt sich in der Modellierung eines relevanten Kontexts eines Konzepts. In <foreignphrase>Topic Maps</foreignphrase> gibt es dafür <foreignphrase>Scopes</foreignphrase>. Diese könnten einem <foreignphrase>Topic Map</foreignphrase>-Browser als Filter dienen, so dass nur interessierende <foreignphrase>Topics</foreignphrase> angezeigt werden. Steve Pepper sieht dieses Instrument als unschlagbares Konstrukt im Vergleich zu RDF: <quote>This is the killer argument for me; until someone can prove that scope can be modelled intuitively using RDF I see no way in which RDF could usefully replace topic maps</quote> <citation>Pepper00a</citation>.</para>
    

    <para>Die angesprochenen Punkte zeigen, dass <foreignphrase>Topic Maps</foreignphrase> differenziertere Konstrukte aufweisen als RDF, d. h. letzteres ist semantisch<indexterm significance="normal">
<primary>Semantik</primary>
</indexterm> auf einer tieferen, generischeren Ebene anzusiedeln. Daraus resultieren verschiedene Aspekte:<indexterm significance="normal">
<primary>conceptualization</primary>
</indexterm>
<indexterm significance="normal">
<primary>Datentyp</primary>
</indexterm>
</para>

<indexterm significance="normal">
<primary>Visualisierung</primary>
<secondary>Topic Maps</secondary>
</indexterm>
    <itemizedlist>
      <listitem>
<para>Konzepte sind in <foreignphrase>Topic Maps</foreignphrase> einfacher zu erkennen (<foreignphrase>conceptualization</foreignphrase>). Damit ist auch eine interaktive Visualisierung der <foreignphrase>Topic Map</foreignphrase> verständlicher zu gestalten, wie die Beispiele in <xref linkend="beispiele"/> verdeutlichen.</para>
</listitem>
      <listitem>
<para>RDF lässt sich vielseitig erweitern. <foreignphrase>Darpa Agent Markup Language</foreignphrase> (DAML) und <foreignphrase>Ontology Inference Layer</foreignphrase> (OIL) als RDF Schemasprache erweitern RDFS beispielsweise um Konstrukte zur Beschreibung der Semantik sowie zur Einschränkungen von Datenstrukturen, die in RDF beschrieben werden. So können in DAML explizit Klassen als disjunkt zu anderen Klassen, oder Eigenschaften als invers oder transitiv definiert werden. Zudem erlaubt DAML die Verwendung der Datentypen aus dem XML Schema. (siehe <xref linkend="mc.xsd"/>)</para>
</listitem>
    </itemizedlist>


    



    <para>Tabelle <xref linkend="cg-rdf-xtm"/> vergleicht die Konstrukte von <foreignphrase>Conceptual Graphs</foreignphrase>, <foreignphrase>Resource Description Framework</foreignphrase> und <foreignphrase>Topic Maps</foreignphrase>:</para>
<para>
        <table pgwide="0" frame="none" id="cg-rdf-xtm">
          <title>CGs versus RDF versus <foreignphrase>Topic Maps</foreignphrase>
</title>
          <tgroup align="left" cols="4">
            <colspec colwidth="*" align="left"/>
            <colspec colwidth="*" align="left"/>
            <colspec colwidth="*" align="left"/>
            <colspec colwidth="*" align="left"/>
            <thead>
            <row>
              <entry>
<para>CG</para>
</entry>
              <entry>
<para>RDF</para>
</entry>
              <entry>
<para>
<foreignphrase>Topic Maps</foreignphrase>
</para>
</entry>
              <entry>
<para>Beispiel</para>
</entry>
            </row>
          </thead>
          <tbody>

            <row>
              <entry>
<para>Konzeptinstanz</para>
</entry>
              <entry>
<para>
<foreignphrase>Resource</foreignphrase>
</para>
</entry>
              <entry>
<para>
<foreignphrase>Topic</foreignphrase>
</para>
</entry>
              <entry>
<para>
<foreignphrase>[the] cat, [the] mat</foreignphrase>
</para>
</entry>
            </row>

            <row>
              <entry>
<para>Konzeptklasse</para>
</entry>
              <entry>
<para>
<literal moreinfo="none">rdf:type(rdfs:Class)</literal>
</para>
</entry>
              <entry>
<para>
<foreignphrase>Topic Type</foreignphrase>
</para>
</entry>
              <entry>
<para>
<foreignphrase>cat, mat</foreignphrase>
</para>
</entry>
            </row>
          
            <row>
              <entry>
<para>Relation</para>
</entry>
              <entry>
<para>
<foreignphrase>Property</foreignphrase>
</para>
</entry>
              <entry>
<para>
<foreignphrase>Association</foreignphrase>/<foreignphrase>Occurrence</foreignphrase>
</para>
</entry>
              <entry>
<para>
<foreignphrase>(sat/is) on</foreignphrase>
</para>
</entry>
            </row>

            <row>
              <entry>
<para>Relationstyp</para>
</entry>
              <entry>
<para>
<literal moreinfo="none">rdf:type(rdf:Property)</literal>
</para>
</entry>
              <entry>
<para>
<foreignphrase>Association Type</foreignphrase>/<foreignphrase>Occurrence Type</foreignphrase>
</para>
</entry>
              <entry>
<para>Verb mit Präposition</para>
</entry>
            </row>

            <row>
              <entry>
<para>Konzepte in Relation</para>
</entry>
              <entry>
<para>
<foreignphrase>Statement</foreignphrase>-Tripel</para>
</entry>
              <entry>
<para>
<foreignphrase>Topic</foreignphrase> <foreignphrase>associates</foreignphrase> <foreignphrase>Topic</foreignphrase>
</para>
                <para>
<foreignphrase>Topic</foreignphrase> <foreignphrase>occurs in</foreignphrase> <foreignphrase>Occurrence</foreignphrase>
</para>
</entry>
              <entry>
<para>
<foreignphrase>The cat sat on the mat.</foreignphrase>
</para>
</entry>
            </row>


          </tbody>
          </tgroup>
        </table>
<indexterm significance="normal">
<primary>Conceptual Graphs</primary>
</indexterm>
</para>


    <para>Allgemein betrachtet, stellen <foreignphrase>Topic Maps</foreignphrase> und RDF unterschiedliche Abstraktionsstufen dar: <foreignphrase>Topic Maps</foreignphrase> stellen ein Themengebiet oder einzelne Themen in den Vordergrund und bilden eine semantische Netzwerkschicht über den Ressourcen, während RDF von der Ressource als Quelle ausgeht und diese mit Anmerkungen versieht. (Vgl. <citation>Pepper00a</citation>) Eine breitere Verfügbarkeit von Browsern für <foreignphrase>Topic Maps</foreignphrase> ist somit verständlich, während sich für RDF Tripel eine statische, graphische Darstellung anbietet. (Siehe <xref linkend="appendix.rdf.dot"/>.)</para>
<indexterm significance="normal">
<primary>RDF</primary>
</indexterm>
<indexterm significance="normal">
<primary>RDF</primary>
<secondary>Resource</secondary>
</indexterm>
<indexterm significance="normal">
<primary>RDF</primary>
<secondary>Property</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Topic</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Association</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Topic Maps</primary>
<secondary>Occurrence</secondary>
</indexterm>
<indexterm significance="normal">
<primary>Association</primary>
</indexterm>
<indexterm significance="normal">
<primary>Topic</primary>
</indexterm>
<indexterm significance="normal">
<primary>Occurrence</primary>
</indexterm>

    <para>Verschiedene Untersuchungen über die gegenseitige Abbildung der Modelle (um Datenstrukturen eines Modells in das andere überführen zu können und vice versa) stellen fest, dass dies zwar möglich sei, jedoch grundlegende Unterschiede vorhanden seien. (Vgl. <citation>Moore01</citation>): <quote>A topic map may be encoded in RDF, but an RDF processor would not be able to do anything useful with it because of the loss of semantics. There would be no way for the processor to know the difference between topics and information resources, or between occurrences [and] associations</quote> <citation>Pepper99</citation>.</para>

    <para>Betrachtet man die umgekehrte Situation, RDF als <foreignphrase>Topic Map</foreignphrase> abzubilden, könnte ein RDF <foreignphrase>Statement</foreignphrase> entweder als eine <foreignphrase>Association</foreignphrase> oder eine <foreignphrase>Occurrence</foreignphrase> in der <foreignphrase>Topic Map</foreignphrase> repräsentiert werden. Falls sowohl das <foreignphrase>Subject</foreignphrase> als auch das <foreignphrase>Object</foreignphrase> als <foreignphrase>Topics</foreignphrase> innerhalb der <foreignphrase>Topic Map</foreignphrase> dargestellt sind, ist eine <foreignphrase>Association</foreignphrase> zu modellieren; handelt es sich um ein Literal oder eine Ressource ausserhalb der <foreignphrase>Topic Map</foreignphrase>, ist eine <foreignphrase>Occurrence</foreignphrase> das passende Konstrukt.</para>


    <note>
<title>Kombination von RDF und <foreignphrase>Topic Maps</foreignphrase>
</title>
      <para>Um Vorteile beider Modelle zu nutzen, ist ein verflechtetes Modell denkbar, das beispielsweise in Teilbereichen  Metainformationen als RDF auszeichnet und diese Stücke vermöge der <foreignphrase>Topic Map</foreignphrase> assoziiert. Konkret würde dies eine Einbettung oder Referenzierung von RDF-ausgezeichneten Daten als <foreignphrase>Occurrences</foreignphrase> in der <foreignphrase>Topic Map</foreignphrase> bedeuten. Dies ist am Beispiel <wordasword>MetaChart</wordasword> in <xref linkend="appendix.xtmrdf"/> zu sehen.</para>
      <para>Als Nachteil dieser Lösung ist jedoch der Verlust der Verbindung zwischen der semantischen Ebene der <foreignphrase>Topic Map</foreignphrase> und den Metainformationen zu sehen.</para>

    </note>



    <para>Gerade die Formulierung von Transitivitäten, wie in Aufbauten zu RDF möglich ist, sowie der Einsatz von Schlussfolgerungsprozessoren, die für RDF(S) mit TRIPLE (vgl. <citation>Decker02</citation>) und den in <xref linkend="rdfmodell"/> vorgestellten Pythonskripten vorhanden sind, fehlt bei <foreignphrase>Topic Maps</foreignphrase>. Inferenzen zu bilden ist zwar Aufgabe eines Prozessors und nicht eines statischen Dokuments: in beiden Modellen sind die Ergebnisse als neue <foreignphrase>Association</foreignphrase> bzw. als neues Tripel dem Dokument zuzufügen. RDF erlaubt jedoch im Gegensatz zu <foreignphrase>Topic Maps</foreignphrase> eine direktere Deklarierung der Inferenzregeln in der eigenen Syntax, wie in erläuterten Beispielen ersichtlich ist. <indexterm significance="normal">
<primary>Transitivität</primary>
</indexterm>
</para>

    </section>








  <section>
<title>Vergleich der XML-Formate im <wordasword>MetaChart</wordasword>-Kontext</title>
    
    <para>Obwohl XML und XML Schema keinerlei Semantik beinhalten, bietet sich das proprietäre XML wie in <xref linkend="tm.mc2tm"/> erläutert, zur Transformation nach <foreignphrase>Topic Maps</foreignphrase> an. Primär gedacht zum Datenaustausch (wie z. B. mit IDS Scheer, die <wordasword>MetaChart</wordasword>-<wordasword>Sessions</wordasword> nach <wordasword>Aris</wordasword> (ein Analysewerkzeug für Geschäftsprozesse) importieren, erlaubt das XML auch eine Transformation nach PDF über XSL-FO und ermöglicht so auch wieder einen visuellen Bezug zu den erarbeiteten Ergebnissen aus <wordasword>MetaChart</wordasword>-Sitzungen ähnlich einer MetaPlan-Sitzung (siehe <xref linkend="mc.idee"/>).<indexterm significance="normal">
<primary>XSL</primary>
</indexterm>
<indexterm significance="normal">
<primary>Semantik</primary>
</indexterm>
<indexterm significance="normal">
<primary>PDF</primary>
</indexterm>
</para>

    <indexterm significance="normal">
<primary>Extensible Stylesheet Language</primary>
<see>XSL</see>
</indexterm>

    <indexterm significance="normal">
<primary>Konzept</primary>
</indexterm>
    <para>Vergleicht man die Abbildung des <wordasword>MetaChart</wordasword>-Modells in <foreignphrase>Topic Maps</foreignphrase> mit der RDF-Abbildung, so erscheint das <foreignphrase>Topic Map</foreignphrase>-Modell für <wordasword>MetaChart</wordasword> geeigneter. Der Grund ist in einer direkteren Abbildung der <wordasword>MetaChart</wordasword>-Konzepte in <foreignphrase>Topic Types</foreignphrase> und <foreignphrase>Topics</foreignphrase> zu sehen, die, wie oben beschrieben, im Vordergrund stehen. Das RDF-Modell mit der Gleichwertigkeit der &#8211; aus kleineren Einheiten bestehenden &#8211; Aussagen, zeigt dagegen Vorteile im Bereich logischer Abfragen, wie z. B. den gezeigten, einfachen Inferenzen, sowie in der Abbildung der Metainformationen. Für weiterreichende Klassendefinitionen, die beispielsweise mit DAML und/oder OIL möglich sind, ist das Ausgangsmaterial der generisch gehaltenen <wordasword>MetaChart</wordasword>-Datenbank nicht komplex genug. Für das gruppenbasierte Kreativitätswerkzeug <wordasword>MetaChart</wordasword> ist ein Logikaufbau kaum von Nutzen &#8211; Kreativität ist nicht deterministisch.</para>



    <note>
<para>Die Abbildungen beider Modelle sind ausreichend detailliert, um einen <wordasword>MetaChart</wordasword>-Import zu genügen. Dazu ist vorab die <wordasword>MetaChart</wordasword>-Hierarchie aus den <foreignphrase>Statements</foreignphrase> bzw. <foreignphrase>Associations</foreignphrase> wieder in eine explizite Form zu bringen. Ist ein Import allgemeiner <foreignphrase>Topic Maps</foreignphrase> angestrebt, muss entschieden werden, welche <foreignphrase>Association</foreignphrase> eine transitive Beziehung, z. B. <foreignphrase>is-a</foreignphrase>- oder Instanz-von-Beziehungen, darstellt, um diese als Hierarchie umzusetzen.</para>
</note>





  
  </section>




    

      






    




























    





   















    
    










  <section>
<title>Fazit</title>

    <para>Fakten in der richtigen Aufbereitung sind wertvoll, bedeuten aber noch lange nicht Wissen (vgl. <citation>Korbmann01</citation>), und das Problem der wissenserstickenden Informationsfülle ist mit den vorgestellten Repräsentationen nicht aus der Welt geschafft &#8211; immerhin beschreibt es jedoch einen Schritt in die richtige Richtung: Informationen kategorisieren, ihren Zusammenhang darstellen, den Überblick ermöglichen und nicht zuletzt die Auffindbarkeit einzelner Dokumente erhöhen.</para> 

    <para>Es steckt jedoch einiger Aufwand dahinter, Dokumente derartig auszuzeichnen: <quote>There is no realistic hope of globally classifying all concepts, terms and relationships; we need to be able to manage and interrelate our ontologies project by project, domain by domain, so that scalability is achieved without either runaway complexity or over-simplification</quote> <citation>Wrightson01</citation>. Durch das intuitive Konzept der <wordasword>MetaChart</wordasword>-Applikation entstehen in kreativen Sitzungen Wissenstrukturen, die mit dem Export nach RDF und <foreignphrase>Topic Maps</foreignphrase> am globalen Projekt teilhaben können.</para>

    <para>Kritiker des frühen World Wide Webs wiesen darauf hin, dass es nie eine gut organisierte Bibliothek werden könne: <quote>Without a central database and tree structure, one would never be sure of finding everything</quote> <citation>Berners01a</citation>. Es ist richtig, dass sich in dieser Vielseitigkeit nie <quote>alles</quote> finden lassen wird &#8211; mit Ontologien in RDF und <foreignphrase>Topic Maps</foreignphrase> jedoch könnte sich das vom Chaos beherrschte Internet in ein beherrschtes Chaos verwandeln.</para>

  
  </section>





</chapter>



        
















  <appendix id="appendix.mc">
<title>
<wordasword>MetaChart</wordasword>-XML</title>
  
    <figure id="mc.applikation" float="0">
      <title>
<wordasword>MetaChart</wordasword>-Applikation</title>
      <mediaobject>
        <imageobject>
          <imagedata format="BMP" fileref="images/mcapplikation/mc_asso.bmp"/>
        </imageobject>
      </mediaobject>
    </figure>
  
  <section id="appendix.mc.dtd">
<title>
<wordasword>MetaChart</wordasword>-DTD</title>
    <programlisting width="80" format="linespecific">
&lt;!-- root element --&gt;
&lt;!ELEMENT METACHARTS (METACHART*)&gt;
&lt;!ATTLIST METACHARTS
	timestamp	CDATA	#IMPLIED
	quantity	CDATA	#IMPLIED
	date		CDATA	#IMPLIED
&gt;


&lt;!-- the only element within the root element --&gt;
&lt;!ELEMENT METACHART (TITLE?, ATTRIBUTES?, CHILDREN?, METADATAS?, VIEWS?)&gt;
&lt;!ATTLIST METACHART
	mcid	ID	#REQUIRED
	owner	IDREF	#IMPLIED
	parent	IDREF	#IMPLIED
&gt;


&lt;!-- Title of MetaChart (redundant: also at metachart/metadatas/metadata(type=title)) --&gt;
&lt;!ELEMENT TITLE (#PCDATA)&gt;

&lt;!ELEMENT ATTRIBUTES (ATTRIBUTE*)&gt;
&lt;!ATTLIST ATTRIBUTES
	quantity	CDATA	#IMPLIED
&gt;


&lt;!-- Attributes of MetaCharts --&gt;
&lt;!-- &lt;!ELEMENT ATTRIBUTE ((VALUE | VIEWS | METADATAS)*) &gt; --&gt;
&lt;!ELEMENT ATTRIBUTE (VALUE*, VIEWS?, METADATAS?) &gt;
&lt;!ATTLIST ATTRIBUTE
	attrid	CDATA	#REQUIRED
&gt;


&lt;!-- Container for any Data (probably wrapped by a CDATA section) --&gt;
	&lt;!-- (srcId, dstId, srcMCId, dstMCId, title) for ATTRIBUTE type=edge|assoziation --&gt;
	&lt;!-- other attributes may follow in newer versions --&gt;

&lt;!ELEMENT VALUE (#PCDATA)&gt;
&lt;!ATTLIST VALUE
	mimetype	CDATA	#IMPLIED
	type		CDATA	#REQUIRED
	encoding	CDATA	#IMPLIED

	srcId	CDATA	#IMPLIED
	dstId	CDATA	#IMPLIED
	srcMCId	CDATA	#IMPLIED
	dstMCId	CDATA	#IMPLIED
	title	CDATA	#IMPLIED

	fullName	CDATA	#IMPLIED
	userName	CDATA	#IMPLIED
	password	CDATA	#IMPLIED

&gt;


&lt;!-- --&gt;
&lt;!ELEMENT VIEWS (VIEW*)&gt;
&lt;!ATTLIST VIEWS
	quantity	CDATA	#IMPLIED
&gt;


&lt;!ELEMENT VIEW (VIEWDATA*)&gt;
&lt;!ATTLIST VIEW
	viewid		CDATA	#REQUIRED
	owner		IDREF	#REQUIRED
&gt;


&lt;!-- --&gt;
&lt;!ELEMENT VIEWDATA (#PCDATA)&gt;
&lt;!ATTLIST VIEWDATA
	type		CDATA	#REQUIRED
&gt;


&lt;!-- reference to (or embedding of) child-MetaCharts of MetaChart [embedding only intended for xsl:fo] --&gt;
&lt;!ELEMENT CHILDREN (( CHILD* | METACHART* ))&gt;
&lt;!ATTLIST CHILDREN
	quantity	CDATA	#IMPLIED
&gt;

&lt;!ELEMENT CHILD (#PCDATA)&gt;
&lt;!ATTLIST CHILD
	mcref		IDREF	#REQUIRED
&gt;

&lt;!-- MetaData for MetaCharts or Attributes. e.g. title, createDate  --&gt;
&lt;!ELEMENT METADATAS (METADATA*)&gt;
&lt;!ATTLIST METADATAS
	quantity	CDATA	#IMPLIED
&gt;

&lt;!ELEMENT METADATA (#PCDATA)&gt;
&lt;!ATTLIST METADATA
	type		CDATA	#REQUIRED
&gt;
</programlisting>
  </section>

  <section id="appendix.mc.xsd">
<title>XML Schema</title>
    <programlisting width="80" format="linespecific">
&lt;?xml version="1.0"?&gt;
&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;
	&lt;xs:simpleType name="attr-type"&gt;
		&lt;xs:restriction base="xs:string"&gt;
			&lt;xs:pattern value="attr\d+"/&gt;
		&lt;/xs:restriction&gt;
	&lt;/xs:simpleType&gt;
	&lt;xs:simpleType name="view-type"&gt;
		&lt;xs:restriction base="xs:string"&gt;
			&lt;xs:pattern value="vi\d+"/&gt;
		&lt;/xs:restriction&gt;
	&lt;/xs:simpleType&gt;
	&lt;xs:simpleType name="mc-type-raw"&gt;
		&lt;xs:restriction base="xs:string"&gt;
			&lt;xs:pattern value="mc\d+"/&gt;
		&lt;/xs:restriction&gt;
	&lt;/xs:simpleType&gt;
	&lt;xs:simpleType name="mc-type"&gt;
		&lt;xs:union memberTypes="mc-type-raw xs:ID"/&gt;
	&lt;/xs:simpleType&gt;
	&lt;xs:simpleType name="owner-type"&gt;
		&lt;xs:union memberTypes="mc-type-raw xs:IDREF"/&gt;
	&lt;/xs:simpleType&gt;
	&lt;xs:simpleType name="parent-type"&gt;
		&lt;xs:union memberTypes="mc-type-raw xs:IDREF"/&gt;
	&lt;/xs:simpleType&gt;
	&lt;!-- CHILD mcref="child-type" --&gt;
	&lt;xs:simpleType name="child-type"&gt;
		&lt;xs:union memberTypes="mc-type-raw xs:IDREF"/&gt;
	&lt;/xs:simpleType&gt;
	&lt;xs:simpleType name="quantity-type"&gt;
		&lt;xs:union memberTypes="xs:decimal"/&gt;
	&lt;/xs:simpleType&gt;
	&lt;!-- METADATA type="metadatatype-type" --&gt;
	&lt;xs:simpleType name="metadatatype-type"&gt;
		&lt;xs:union memberTypes="xs:string"/&gt;
	&lt;/xs:simpleType&gt;
	&lt;!-- VIEWDATA type="metadatatype-type" --&gt;
	&lt;xs:simpleType name="viewdatatype-type"&gt;
		&lt;xs:union memberTypes="xs:string"/&gt;
	&lt;/xs:simpleType&gt;
	&lt;xs:attributeGroup name="attribute-value-assoziation-group"&gt;
		&lt;xs:attribute name="srcId" type="xs:string"/&gt;
		&lt;xs:attribute name="dstId" type="xs:string"/&gt;
		&lt;xs:attribute name="srcMCId" type="mc-type"/&gt;
		&lt;xs:attribute name="dstMCId" type="mc-type"/&gt;
		&lt;xs:attribute name="title" type="xs:string"/&gt;
	&lt;/xs:attributeGroup&gt;
	&lt;xs:attributeGroup name="attribute-value-userPreferences-group"&gt;
		&lt;xs:attribute name="fullName" type="xs:string"/&gt;
		&lt;xs:attribute name="userName" type="xs:string"/&gt;
		&lt;xs:attribute name="password" type="xs:string"/&gt;
	&lt;/xs:attributeGroup&gt;
	&lt;xs:attributeGroup name="attribute-value-mimecoding-group"&gt;
		&lt;xs:attribute name="mimetype" type="xs:string"/&gt;
		&lt;xs:attribute name="encoding" type="xs:string"/&gt;
	&lt;/xs:attributeGroup&gt;
	&lt;xs:element name="METACHARTS"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:sequence&gt;
				&lt;xs:element ref="METACHART" minOccurs="0" maxOccurs="unbounded"/&gt;
			&lt;/xs:sequence&gt;
			&lt;xs:attribute name="timestamp" type="xs:string"/&gt;
			&lt;xs:attribute name="quantity" type="quantity-type"/&gt;
			&lt;xs:attribute name="date" type="xs:string"/&gt;
			&lt;!-- dateTime --&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="METACHART"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:sequence&gt;&lt;!-- group order="any" --&gt;
				&lt;xs:element ref="TITLE" minOccurs="0"/&gt;
				&lt;xs:element ref="ATTRIBUTES" minOccurs="0" maxOccurs="unbounded"/&gt;
				&lt;xs:element ref="CHILDREN" minOccurs="0" maxOccurs="unbounded"/&gt;
				&lt;xs:element ref="METADATAS" minOccurs="0" maxOccurs="unbounded"/&gt;
				&lt;xs:element ref="VIEWS" minOccurs="0" maxOccurs="unbounded"/&gt;
			&lt;/xs:sequence&gt;
			&lt;xs:attribute name="mcid" type="mc-type" use="required"/&gt;
			&lt;xs:attribute name="owner" type="owner-type" use="optional"/&gt;
			&lt;xs:attribute name="parent" type="parent-type" use="optional"/&gt;
			&lt;!-- xs:ID --&gt;
			&lt;!-- xs:idref --&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="TITLE" type="xs:string"/&gt;
	&lt;xs:element name="ATTRIBUTES"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:sequence&gt;
				&lt;xs:element ref="ATTRIBUTE" minOccurs="0" maxOccurs="unbounded"/&gt;
			&lt;/xs:sequence&gt;
			&lt;xs:attribute name="quantity" type="quantity-type"/&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="ATTRIBUTE"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:sequence&gt;
				&lt;xs:element ref="VALUE" minOccurs="0" maxOccurs="unbounded"/&gt;
				&lt;xs:element ref="VIEWS" minOccurs="0" maxOccurs="unbounded"/&gt;
				&lt;xs:element ref="METADATAS" minOccurs="0" maxOccurs="unbounded"/&gt;
			&lt;/xs:sequence&gt;
			&lt;xs:attribute name="attrid" type="attr-type" use="required"/&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="VALUE"&gt;
		&lt;xs:annotation&gt;
			&lt;xs:documentation&gt;element can contain more or less "anything": from nothing over text to base64. and also can have a many different attributes, organized in attributeGroups&lt;/xs:documentation&gt;
		&lt;/xs:annotation&gt;
		&lt;xs:complexType&gt;
			&lt;xs:simpleContent&gt;
				&lt;xs:extension base="xs:string"&gt;
					&lt;xs:attribute name="type" type="xs:string" use="required"/&gt;
					&lt;xs:attributeGroup ref="attribute-value-mimecoding-group"/&gt;
					&lt;xs:attributeGroup ref="attribute-value-assoziation-group"/&gt;
					&lt;xs:attributeGroup ref="attribute-value-userPreferences-group"/&gt;
				&lt;/xs:extension&gt;
			&lt;/xs:simpleContent&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="VIEWS"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:sequence&gt;
				&lt;xs:element ref="VIEW" minOccurs="0" maxOccurs="unbounded"/&gt;
			&lt;/xs:sequence&gt;
			&lt;xs:attribute name="quantity" type="quantity-type" use="optional"/&gt;
			&lt;xs:attribute name="owner" type="owner-type" use="required"/&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="VIEW"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:sequence&gt;
				&lt;xs:element ref="VIEWDATA" minOccurs="0" maxOccurs="unbounded"/&gt;
			&lt;/xs:sequence&gt;
			&lt;xs:attribute name="viewid" type="view-type" use="required"/&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="VIEWDATA"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:simpleContent&gt;
				&lt;xs:extension base="xs:string"&gt;
					&lt;xs:attribute name="type" type="viewdatatype-type" use="required"/&gt;
				&lt;/xs:extension&gt;
			&lt;/xs:simpleContent&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="CHILDREN"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:choice&gt;
				&lt;xs:element ref="CHILD" minOccurs="0" maxOccurs="unbounded"/&gt;
				&lt;xs:element ref="METACHART" minOccurs="0" maxOccurs="unbounded"/&gt;
			&lt;/xs:choice&gt;
			&lt;xs:attribute name="quantity" type="quantity-type"/&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="CHILD"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:simpleContent&gt;
				&lt;xs:extension base="xs:string"&gt;
					&lt;xs:attribute name="mcref" type="child-type" use="required"/&gt;
				&lt;/xs:extension&gt;
			&lt;/xs:simpleContent&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="METADATAS"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:sequence&gt;
				&lt;xs:element ref="METADATA" minOccurs="0" maxOccurs="unbounded"/&gt;
			&lt;/xs:sequence&gt;
			&lt;xs:attribute name="quantity" type="quantity-type"/&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
	&lt;xs:element name="METADATA"&gt;
		&lt;xs:complexType&gt;
			&lt;xs:simpleContent&gt;
				&lt;xs:extension base="xs:string"&gt;
					&lt;xs:attribute name="type" type="metadatatype-type" use="required"/&gt;
				&lt;/xs:extension&gt;
			&lt;/xs:simpleContent&gt;
		&lt;/xs:complexType&gt;
	&lt;/xs:element&gt;
&lt;/xs:schema&gt;
</programlisting>
    </section>

  <section id="appendix.mc.instance">
<title>Beispielinstanz aus <wordasword>MetaChart</wordasword>-Export</title>
    <programlisting width="80" format="linespecific">
&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;
&lt;!DOCTYPE METACHARTS SYSTEM "metacharts.dtd"&gt;
&lt;METACHARTS date="Mon Mar 18 15:25:27 CET 2002" quantity="14" timestamp="20020318032527"&gt;
  &lt;!-- ... --&gt;
  &lt;METACHART mcid="mc1937120584" owner="mc1475124348" parent="mc1425722723"&gt;
    &lt;TITLE&gt;Studium&lt;/TITLE&gt;
    &lt;ATTRIBUTES quantity="0"/&gt;
    &lt;CHILDREN quantity="3"&gt;
      &lt;CHILD mcref="mc502589505"&gt;Ort&lt;/CHILD&gt;
      &lt;CHILD mcref="mc1564127045"&gt;Studiengang&lt;/CHILD&gt;
      &lt;CHILD mcref="mc1841561650"&gt;Student(in)&lt;/CHILD&gt;
    &lt;/CHILDREN&gt;
    &lt;METADATAS&gt;
      &lt;METADATA type="createDate"&gt;20020318022336&lt;/METADATA&gt;
      &lt;METADATA type="title"&gt;Studium&lt;/METADATA&gt;
    &lt;/METADATAS&gt;
    &lt;VIEWS quantity="1"&gt;
      &lt;VIEW owner="mc1475124348" viewid="vi1112029776"&gt;
        &lt;VIEWDATA type="backgroundColor"&gt;-7693874&lt;/VIEWDATA&gt;
        &lt;VIEWDATA type="title"&gt;Studium&lt;/VIEWDATA&gt;
        &lt;VIEWDATA type="rect"&gt;40#51#1068#731&lt;/VIEWDATA&gt;
      &lt;/VIEW&gt;
    &lt;/VIEWS&gt;
  &lt;/METACHART&gt;

  &lt;METACHART mcid="mc502589505" owner="mc1475124348" parent="mc1937120584"&gt;
    &lt;TITLE&gt;Ort&lt;/TITLE&gt;
    &lt;ATTRIBUTES quantity="0"/&gt;
    &lt;CHILDREN quantity="2"&gt;
      &lt;CHILD mcref="mc2137864275"&gt;Weimar&lt;/CHILD&gt;
      &lt;CHILD mcref="mc443199914"&gt;Berlin&lt;/CHILD&gt;
    &lt;/CHILDREN&gt;
    &lt;METADATAS&gt;
      &lt;METADATA type="createDate"&gt;20020318022422&lt;/METADATA&gt;
      &lt;METADATA type="title"&gt;Ort&lt;/METADATA&gt;
    &lt;/METADATAS&gt;
    &lt;VIEWS quantity="1"&gt;
      &lt;VIEW owner="mc1475124348" viewid="vi577615540"&gt;
        &lt;VIEWDATA type="backgroundColor"&gt;-7693874&lt;/VIEWDATA&gt;
        &lt;VIEWDATA type="title"&gt;Ort&lt;/VIEWDATA&gt;
        &lt;VIEWDATA type="rect"&gt;565#10#407#426&lt;/VIEWDATA&gt;
      &lt;/VIEW&gt;
    &lt;/VIEWS&gt;
  &lt;/METACHART&gt;
  &lt;!-- ... --&gt;
  &lt;METACHART mcid="mc1196092215" owner="mc1475124348" parent="mc1841561650"&gt;
    &lt;TITLE&gt;Jenny Doe&lt;/TITLE&gt;
    &lt;ATTRIBUTES quantity="4"&gt;
      &lt;ATTRIBUTE attrid="attr653056631"&gt;
        &lt;VALUE encoding="plain" mimetype="text/plain" type="text/plain"&gt;
          When "foo" is used in connection with "bar" 
          it has generally traced to the WWII-era Army slang acronym 
          FUBAR (Fucked Up Beyond All Repair), later modified to foobar.
        &lt;/VALUE&gt;
        &lt;VIEWS quantity="1"&gt;
          &lt;VIEW owner="mc1475124348" viewid="vi1109138964"&gt;
            &lt;VIEWDATA type="rect"&gt;103#6#285#127&lt;/VIEWDATA&gt;
            &lt;VIEWDATA type="backgroundColor"&gt;-723770&lt;/VIEWDATA&gt;
            &lt;VIEWDATA type="title"&gt;Seminararbeit&lt;/VIEWDATA&gt;
          &lt;/VIEW&gt;
        &lt;/VIEWS&gt;
        &lt;METADATAS&gt;
          &lt;METADATA type="createDate"&gt;20020318022751&lt;/METADATA&gt;
          &lt;METADATA type="title"&gt;private&lt;/METADATA&gt;
        &lt;/METADATAS&gt;
      &lt;/ATTRIBUTE&gt;
      &lt;ATTRIBUTE attrid="attr334267580"&gt;
        &lt;VALUE dstId="mc2137864275" dstMCId="mc2137864275" 
               srcId="mc1196092215" srcMCId="mc1196092215" 
               type="assoziation" title="studiert-in"&gt;
          studiert-in
        &lt;/VALUE&gt;
        &lt;VIEWS quantity="1"&gt;
          &lt;VIEW owner="mc1475124348" viewid="vi1109138964"&gt;
            &lt;VIEWDATA type="edge"&gt;todo&lt;/VIEWDATA&gt;
          &lt;/VIEW&gt;
        &lt;/VIEWS&gt;
        &lt;METADATAS&gt;
          &lt;METADATA type="createDate"&gt;20020318023820&lt;/METADATA&gt;
          &lt;METADATA type="title"&gt;egde&lt;/METADATA&gt;
        &lt;/METADATAS&gt;
      &lt;/ATTRIBUTE&gt;
      &lt;ATTRIBUTE attrid="attr198592949"&gt;
        &lt;VALUE dstId="mc522272996" dstMCId="mc522272996" 
               srcId="mc1196092215" srcMCId="mc1196092215" 
               type="assoziation" title="studiert"&gt;
          studiert
        &lt;/VALUE&gt;
        &lt;VIEWS quantity="1"&gt;
          &lt;VIEW owner="mc1475124348" viewid="vi1109138964"&gt;
            &lt;VIEWDATA type="edge"&gt;todo&lt;/VIEWDATA&gt;
          &lt;/VIEW&gt;
        &lt;/VIEWS&gt;
        &lt;METADATAS&gt;
          &lt;METADATA type="createDate"&gt;20020318031257&lt;/METADATA&gt;
          &lt;METADATA type="title"&gt;egde&lt;/METADATA&gt;
        &lt;/METADATAS&gt;
      &lt;/ATTRIBUTE&gt;
      &lt;ATTRIBUTE attrid="attr1768538671"&gt;
        &lt;VALUE encoding="plain" mimetype="text/plain" type="text/plain"&gt;
          John and Jane are nobody.
        &lt;/VALUE&gt;
        &lt;VIEWS quantity="1"&gt;
          &lt;VIEW owner="mc1475124348" viewid="vi1109138964"&gt;
            &lt;VIEWDATA type="rect"&gt;40#46#37#48&lt;/VIEWDATA&gt;
            &lt;VIEWDATA type="backgroundColor"&gt;-723770&lt;/VIEWDATA&gt;
            &lt;VIEWDATA type="title"&gt;private&lt;/VIEWDATA&gt;
          &lt;/VIEW&gt;
        &lt;/VIEWS&gt;
        &lt;METADATAS&gt;
          &lt;METADATA type="createDate"&gt;20020318031431&lt;/METADATA&gt;
          &lt;METADATA type="title"&gt;Bauhaus&lt;/METADATA&gt;
        &lt;/METADATAS&gt;
      &lt;/ATTRIBUTE&gt;
    &lt;/ATTRIBUTES&gt;
    &lt;CHILDREN quantity="0"/&gt;
    &lt;METADATAS&gt;
      &lt;METADATA type="createDate"&gt;20020318022622&lt;/METADATA&gt;
      &lt;METADATA type="title"&gt;Jenny Doe&lt;/METADATA&gt;
    &lt;/METADATAS&gt;
    &lt;VIEWS quantity="1"&gt;
      &lt;VIEW owner="mc1475124348" viewid="vi1109138964"&gt;
        &lt;VIEWDATA type="backgroundColor"&gt;-7693874&lt;/VIEWDATA&gt;
        &lt;VIEWDATA type="title"&gt;Jenny Doe&lt;/VIEWDATA&gt;
        &lt;VIEWDATA type="rect"&gt;174#210#410#165&lt;/VIEWDATA&gt;
      &lt;/VIEW&gt;
    &lt;/VIEWS&gt;
  &lt;/METACHART&gt;

  &lt;METACHART mcid="mc804971150" owner="mc1475124348" parent="mc1841561650"&gt;
    &lt;TITLE&gt;John Doe&lt;/TITLE&gt;
    &lt;ATTRIBUTES quantity="1"&gt;
      &lt;ATTRIBUTE attrid="attr245993684"&gt;
        &lt;VALUE encoding="base64" mimetype="image/gif" type="image/gif"&gt;&lt;![CDATA[
R0lGODlhZQBuAPcHAP////f39+/v7+fn597e3tbW1s7OzsbGxr29vbW1ta2traWlpZycnJSUlISE
hHt7e3Nzc2tra2NjY1paWlJSUkpKSkJCQjk5OTExMSkpKSEhIRgYGBAQEAgICMbGvTlCKUJKOWuc
...
9HAePnhtPiGE7CYVRahumkiFSNiJVeiJoPiJ3KIVcygVPDiChlGCIeiDQqiCWZiCPRiL6SEPCiAP
7FaHdWGHfMIUiDF616cgvKggwuiLCJAKxViCwpiMcLeMzAhqAQEAOw==]]&amp;gt;&lt;/VALUE&gt;
        &lt;VIEWS quantity="1"&gt;
          &lt;VIEW owner="mc1475124348" viewid="vi711092418"&gt;
            &lt;VIEWDATA type="rect"&gt;20#20#150#153&lt;/VIEWDATA&gt;
            &lt;VIEWDATA type="backgroundColor"&gt;-723770&lt;/VIEWDATA&gt;
          &lt;/VIEW&gt;
        &lt;/VIEWS&gt;
        &lt;METADATAS&gt;
          &lt;METADATA type="createDate"&gt;20020318032014&lt;/METADATA&gt;
          &lt;METADATA type="title"&gt;unicycle.gif&lt;/METADATA&gt;
        &lt;/METADATAS&gt;
      &lt;/ATTRIBUTE&gt;
    &lt;/ATTRIBUTES&gt;
    &lt;CHILDREN quantity="0"/&gt;
    &lt;METADATAS&gt;
      &lt;METADATA type="createDate"&gt;20020318022633&lt;/METADATA&gt;
      &lt;METADATA type="title"&gt;John Doe&lt;/METADATA&gt;
    &lt;/METADATAS&gt;
    &lt;VIEWS quantity="1"&gt;
      &lt;VIEW owner="mc1475124348" viewid="vi711092418"&gt;
        &lt;VIEWDATA type="backgroundColor"&gt;-7693874&lt;/VIEWDATA&gt;
        &lt;VIEWDATA type="title"&gt;John Doe&lt;/VIEWDATA&gt;
        &lt;VIEWDATA type="rect"&gt;43#55#260#234&lt;/VIEWDATA&gt;
      &lt;/VIEW&gt;
    &lt;/VIEWS&gt;
  &lt;/METACHART&gt;
  &lt;!-- ... --&gt;
&lt;/METACHARTS&gt;
</programlisting>
  </section>

  <section id="appendix.mc.css">
<title>Darstellung mit <foreignphrase>Cascading Style Sheets</foreignphrase>
</title>

    <figure float="0">
      <title>XML-Darstellung mittels CSS</title>
      <mediaobject>
        <imageobject>
          <imagedata format="JPG" fileref="images/css/mccss.jpg"/>
        </imageobject>
      </mediaobject>
    </figure>

  </section>


  <section id="appendix.mc.mc2fo">
<title>
<foreignphrase>XSL Formatting Objects</foreignphrase> Stylesheet</title>
    <programlisting width="80" format="linespecific">
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:fo="http://www.w3.org/1999/XSL/Format" 
    xmlns:fox="http://xml.apache.org/fop/extensions"&gt;
&lt;xsl:output method="xml" indent="yes" version="1.0" encoding="iso-8859-1"/&gt;

&lt;xsl:template match="METACHARTS"&gt;

&lt;fo:root&gt;
	&lt;fo:layout-master-set&gt;
    &lt;fo:simple-page-master master-name="simple"
                  page-height="29.7cm" 
                  page-width="21cm"
                  margin-top="1cm" 
                  margin-bottom="2cm" 
                  margin-left="2.5cm" 
                  margin-right="2.5cm"&gt;
      &lt;fo:region-body margin-top="3cm"/&gt;
      &lt;fo:region-before extent="3cm"/&gt;
      &lt;fo:region-after extent="1.5cm"/&gt;
    &lt;/fo:simple-page-master&gt;
  &lt;/fo:layout-master-set&gt;
	&lt;fo:page-sequence master-reference="simple"&gt;
		&lt;fo:static-content flow-name="xsl-region-before"&gt;
			&lt;fo:block text-align="end" font-size="10pt" font-family="serif" line-height="14pt"&gt;
        &lt;xsl:text&gt;MetaChart-Export &lt;/xsl:text&gt;&lt;xsl:value-of select="/METACHARTS/@date"/&gt;&lt;xsl:text&gt; -- page &lt;/xsl:text&gt;&lt;fo:page-number/&gt;
			&lt;/fo:block&gt;
		&lt;/fo:static-content&gt;

    &lt;fo:flow flow-name="xsl-region-body"&gt;
	    &lt;fo:block&gt;
    			&lt;xsl:apply-templates select="METACHART"/&gt;
			&lt;/fo:block&gt;    		
		&lt;/fo:flow&gt;
	&lt;/fo:page-sequence&gt;
&lt;/fo:root&gt;

&lt;/xsl:template&gt;

  &lt;!-- end: defines page layout --&gt;
  &lt;!-- start page-sequence --&gt;
	
	&lt;!-- layout single metacharts --&gt;
	&lt;xsl:template match="METACHART"&gt;
		&lt;fo:block padding-top="12mm" font-family="sans-serif" font-size="24pt" font-weight="bold"&gt;		
			&lt;xsl:number count="METACHART" level="multi"/&gt;
			&lt;xsl:text&gt; MetaChart "&lt;/xsl:text&gt;
			&lt;xsl:value-of select="METADATAS/METADATA[@type='title']"/&gt;
			&lt;xsl:text&gt;"&lt;/xsl:text&gt;
		&lt;/fo:block&gt;
		&lt;fo:block margin-left="from-parent(margin-left)+1cm" font-family="monospace" font-size="8"&gt;
			&lt;xsl:text&gt; (&lt;/xsl:text&gt;&lt;xsl:value-of select="@mcid"/&gt;&lt;xsl:text&gt;)&lt;/xsl:text&gt;
			&lt;xsl:apply-templates select="METADATAS"/&gt;
		&lt;/fo:block&gt;
    		
		&lt;xsl:apply-templates select="ATTRIBUTES"/&gt;
		&lt;xsl:apply-templates select="CHILDREN"/&gt;

	&lt;/xsl:template&gt;
	
	&lt;xsl:template match="CHILDREN"&gt;
		&lt;fo:block margin-left="from-parent(margin-left)+1cm"&gt;
			&lt;xsl:apply-templates select="METACHART"/&gt;
		&lt;/fo:block&gt;
	&lt;/xsl:template&gt;
	
	&lt;xsl:template match="ATTRIBUTES"&gt;
		&lt;fo:block margin-left="from-parent(margin-left)+1cm"&gt;
			&lt;xsl:apply-templates select="ATTRIBUTE"/&gt;
		&lt;/fo:block&gt;
	&lt;/xsl:template&gt;

  &lt;!-- layout attributes --&gt;
	&lt;xsl:template match="ATTRIBUTE"&gt;
		&lt;fo:block padding-top="7mm" font-family="sans-serif" font-size="18pt" font-weight="bold"&gt;
			&lt;xsl:text&gt;Attribute "&lt;/xsl:text&gt;
			&lt;xsl:value-of select="METADATAS/METADATA[@type='title']"/&gt;			
			&lt;xsl:text&gt;"&lt;/xsl:text&gt;
		&lt;/fo:block&gt;
		&lt;fo:block margin-left="from-parent(margin-left)+1cm" font-family="monospace" font-size="8"&gt;
			&lt;xsl:text&gt;(&lt;/xsl:text&gt;&lt;xsl:value-of select="@attrid"/&gt;&lt;xsl:text&gt;)&lt;/xsl:text&gt;

			&lt;xsl:apply-templates select="METADATAS"/&gt;

      &lt;fo:block padding-top="7mm" margin-left="from-parent(margin-left)+1cm" font-family="serif" font-size="10"&gt;
        &lt;xsl:apply-templates select="VALUE"/&gt;
      &lt;/fo:block&gt;
    &lt;/fo:block&gt;
	&lt;/xsl:template&gt;
	
	&lt;xsl:template match="METADATAS"&gt;
		&lt;fo:block margin-left="from-parent(margin-left)+0cm" padding-top="4mm" font-family="serif" font-weight="normal" font-size="10"&gt;
			&lt;xsl:apply-templates select="METADATA"/&gt;
		&lt;/fo:block&gt;
	&lt;/xsl:template&gt;
	
  &lt;!-- layout metadatas --&gt;
  &lt;xsl:template match="METADATA"&gt;
			&lt;fo:block font-weight="normal"&gt;
				&lt;fo:inline font-weight="bold"&gt;
					&lt;xsl:value-of select="@type"/&gt;&lt;xsl:text&gt;: &lt;/xsl:text&gt;
				&lt;/fo:inline&gt;
				&lt;xsl:value-of select="."/&gt;
			&lt;/fo:block&gt;
	&lt;/xsl:template&gt;

  &lt;!-- layout attributes.value --&gt;
	&lt;xsl:template match="VALUE"&gt;
		&lt;fo:block font-weight="normal"&gt;
			&lt;fo:inline font-weight="bold"&gt;
				&lt;xsl:value-of select="@type"/&gt;&lt;xsl:text&gt;: &lt;/xsl:text&gt;
			&lt;/fo:inline&gt;

      &lt;!-- distinguish attributes.types --&gt;
      &lt;xsl:choose&gt;
				&lt;xsl:when test="@type='assoziation'"&gt;
					&lt;fo:block&gt;
						&lt;fo:inline font-weight="bold"&gt;
							&lt;xsl:text&gt;From: &lt;/xsl:text&gt;
						&lt;/fo:inline&gt;
						&lt;xsl:value-of select="@srcMCId"/&gt;
						&lt;xsl:text&gt;, &lt;/xsl:text&gt;			
						&lt;xsl:value-of select="@srcId"/&gt;
					&lt;/fo:block&gt;
					&lt;fo:block&gt;
						&lt;fo:inline font-weight="bold"&gt;
							&lt;xsl:text&gt;To: &lt;/xsl:text&gt;
						&lt;/fo:inline&gt;
						&lt;xsl:value-of select="@dstMCId"/&gt;
						&lt;xsl:text&gt;, &lt;/xsl:text&gt;
						&lt;xsl:value-of select="@dstId"/&gt;
					&lt;/fo:block&gt;
				&lt;/xsl:when&gt;
        &lt;!-- embeddable graphix --&gt;
        &lt;xsl:when test="starts-with(@type, 'image/')"&gt;
					&lt;xsl:variable name="bild" select="../METADATAS/METADATA[@type='title']"/&gt;
					&lt;fo:block&gt;
						&lt;fo:external-graphic src="{$bild}"/&gt;
					&lt;/fo:block&gt;
				&lt;/xsl:when&gt;
        &lt;!-- standard attributes.value --&gt;
				&lt;xsl:otherwise&gt;
					&lt;fo:block&gt;
						&lt;xsl:value-of select="."/&gt;
					&lt;/fo:block&gt;
				&lt;/xsl:otherwise&gt;
			&lt;/xsl:choose&gt;
		&lt;/fo:block&gt;
	&lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;
</programlisting>
  </section>



  <section id="appendix.mc.pdf">
<title>XML-Darstellung als PDF</title>


    <figure float="0">
      <title>XML als PDF formatiert</title>
      <mediaobject>
        <imageobject>
          <imagedata format="EPS" fileref="images/mc2pdf/mc2pdf.EPS"/>
        </imageobject>
      </mediaobject>
    </figure>



  </section>
</appendix>
  <appendix id="appendix.xtm">
<title>
<acronym>XML</acronym> <foreignphrase>Topic Maps</foreignphrase>
</title>

  <section id="appendix.xtm.mc2ltm">
<title>XSL Stylesheet (<wordasword>MetaChart</wordasword>-XML nach LTM)</title>
    <programlisting width="80" format="linespecific">
&lt;xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
  &lt;xsl:output method="text" indent="no"/&gt;

  &lt;xsl:template match="METACHARTS"&gt;
    [mc = "MetaChart"]
    [relationship = /child "is child of"]
    [relationship = /parent "is parent of"]
    &lt;!-- ... --&gt;
  &lt;/xsl:template&gt;

  &lt;xsl:template match="METACHART"&gt;
    [&lt;xsl:value-of select="@mcid"/&gt; : mc 
    = "&lt;xsl:value-of select="@mcid"/&gt;"; ;
      &lt;xsl:value-of select="METADATAS/METADATA[@type='title']"/&gt;
    ]
    &lt;!-- ... --&gt;
  &lt;/xsl:template&gt;

  &lt;xsl:template match="CHILD"&gt;
    relationship([&lt;xsl:value-of select="@mcref"/&gt;] : child, 
    [&lt;xsl:value-of select="../../@mcid"/&gt;] : parent)
  &lt;/xsl:template&gt;

  &lt;xsl:template match="ATTRIBUTE"&gt;
    {&lt;xsl:value-of select="@attrid"/&gt;, 
    &lt;xsl:value-of select="VALUE/@type"/&gt;, 
    [[&lt;xsl:value-of select="VALUE"/&gt; ]]}
  &lt;/xsl:template&gt;

  &lt;!-- ... --&gt;
&lt;/xsl:stylesheet&gt;
</programlisting>
  </section>

  <section id="appendix.xtm.mc2xtm">
<title>XSL Stylesheet (<wordasword>MetaChart</wordasword>-XML nach XTM)</title>
    <programlisting width="80" format="linespecific">
&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          xmlns="http://www.topicmaps.org/xtm/1.0/" 
          xmlns:xlink="http://www.w3.org/1999/xlink"&gt;

&lt;xsl:output method="xml" indent="yes" encoding="iso-8859-1"/&gt;

&lt;xsl:template match="METACHARTS"&gt;
  &lt;topicMap id="mcexport" 
    xmlns="http://www.topicmaps.org/xtm/1.0/"           
    xmlns:xlink="http://www.w3.org/1999/xlink"&gt;


    &lt;!-- name the topic map --&gt;
    &lt;topic id="mctm"&gt;
      &lt;subjectIdentity&gt;
        &lt;subjectIndicatorRef xlink:href="#mcexport"/&gt;
      &lt;/subjectIdentity&gt;
      &lt;baseName&gt;
        &lt;baseNameString&gt;MetaChart TopicMap&lt;/baseNameString&gt;
      &lt;/baseName&gt;
    &lt;/topic&gt;
    
    &lt;!-- some topic types --&gt;
    &lt;topic id="mc"&gt;
      &lt;baseName&gt;
        &lt;baseNameString&gt;MetaChart&lt;/baseNameString&gt;
      &lt;/baseName&gt;
    &lt;/topic&gt;
    &lt;topic id="parent"&gt;
      &lt;baseName&gt;
        &lt;baseNameString&gt;Parent&lt;/baseNameString&gt;
      &lt;/baseName&gt;
    &lt;/topic&gt;
    &lt;topic id="child"&gt;
      &lt;baseName&gt;
        &lt;baseNameString&gt;Child&lt;/baseNameString&gt;
      &lt;/baseName&gt;
    &lt;/topic&gt;
   
    &lt;topic id="title"&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#ot.metadata"/&gt;
      &lt;/instanceOf&gt;
      &lt;baseName&gt;
        &lt;baseNameString&gt;Title&lt;/baseNameString&gt;
      &lt;/baseName&gt;
    &lt;/topic&gt;

    &lt;topic id="ot.metadata"&gt;
      &lt;subjectIdentity&gt;
        &lt;subjectIndicatorRef 
          xlink:href="http://psi.ontopia.net/xtm/occurrence-type/metadata"/&gt;
      &lt;/subjectIdentity&gt;
      &lt;baseName&gt;
        &lt;baseNameString&gt;metadata&lt;/baseNameString&gt;
        &lt;variant&gt;
          &lt;parameters&gt;&lt;topicRef xlink:href="#sort"/&gt;&lt;/parameters&gt;
          &lt;variantName&gt;&lt;resourceData&gt;metadata&lt;/resourceData&gt;&lt;/variantName&gt;
        &lt;/variant&gt;
      &lt;/baseName&gt;
    &lt;/topic&gt;

    &lt;!-- some association types --&gt;
    &lt;topic id="at_parentchild"&gt;
      &lt;baseName&gt;
        &lt;scope&gt;
          &lt;topicRef xlink:href="#parent"&gt;&lt;/topicRef&gt;
        &lt;/scope&gt;
        &lt;baseNameString&gt;is parent of&lt;/baseNameString&gt;
      &lt;/baseName&gt;
      &lt;baseName&gt;
        &lt;baseNameString&gt;Parent-Child relation&lt;/baseNameString&gt;
      &lt;/baseName&gt;
      &lt;baseName&gt;
        &lt;scope&gt;
          &lt;topicRef xlink:href="#child"&gt;&lt;/topicRef&gt;
        &lt;/scope&gt;
        &lt;baseNameString&gt;is child of&lt;/baseNameString&gt;
      &lt;/baseName&gt;
    &lt;/topic&gt;
    
    &lt;xsl:apply-templates select="METACHART"/&gt;

  &lt;/topicMap&gt;
&lt;/xsl:template&gt;


  &lt;!-- get the single metacharts as instance --&gt;

  &lt;xsl:template match="METACHART"&gt;
    &lt;topic&gt;
    &lt;xsl:attribute name="id"&gt;&lt;xsl:value-of select="@mcid"/&gt;&lt;/xsl:attribute&gt;
      &lt;!-- ... --&gt;
      &lt;xsl:apply-templates select="METADATAS"/&gt;
    &lt;/topic&gt;

		&lt;xsl:apply-templates select="CHILDREN"/&gt;
    &lt;xsl:apply-templates select="ATTRIBUTES"/&gt;
  &lt;/xsl:template&gt;

	&lt;xsl:template match="CHILDREN"&gt;

    &lt;!-- routines for children/child and children/metachart --&gt;

    &lt;xsl:for-each select="CHILD"&gt;
      &lt;association&gt;
        &lt;!-- ... --&gt;
      &lt;/association&gt;
    &lt;/xsl:for-each&gt;

    &lt;xsl:for-each select="METACHART"&gt;
      &lt;association&gt;
        &lt;instanceOf&gt;
          &lt;topicRef xlink:href="#at_parentchild"&gt;&lt;/topicRef&gt;
        &lt;/instanceOf&gt;
        &lt;member&gt;
          &lt;roleSpec&gt;
            &lt;topicRef xlink:href="#parent"/&gt;
          &lt;/roleSpec&gt;
          &lt;topicRef&gt;
            &lt;xsl:attribute name="xlink:href"&gt;
              &lt;xsl:text&gt;#&lt;/xsl:text&gt;
              &lt;xsl:value-of select="../../@mcid"/&gt;
            &lt;/xsl:attribute&gt;
          &lt;/topicRef&gt;
        &lt;/member&gt;
        &lt;member&gt;
          &lt;roleSpec&gt;
            &lt;topicRef xlink:href="#child"/&gt;
          &lt;/roleSpec&gt;
          &lt;topicRef&gt;
            &lt;xsl:attribute name="xlink:href"&gt;
              &lt;xsl:text&gt;#&lt;/xsl:text&gt;
              &lt;xsl:value-of select="@mcid"/&gt;
            &lt;/xsl:attribute&gt;
          &lt;/topicRef&gt;
        &lt;/member&gt;
      &lt;/association&gt;
    &lt;/xsl:for-each&gt;

    &lt;!-- catch child-metacharts here --&gt;
    &lt;xsl:apply-templates select="METACHART"/&gt;
  
  &lt;/xsl:template&gt;


	&lt;xsl:template match="ATTRIBUTES"&gt;
    &lt;xsl:apply-templates select="ATTRIBUTE"/&gt;
	&lt;/xsl:template&gt;

	&lt;xsl:template match="ATTRIBUTE"&gt;
  
    &lt;xsl:choose&gt;
      &lt;!-- catch edges/assoziationen --&gt;
      &lt;xsl:when test="VALUE/@type='assoziation'"&gt;
        &lt;xsl:apply-templates select="VALUE"/&gt;
      &lt;/xsl:when&gt;

      &lt;!-- attach normal metachart-attributes via association --&gt;
      &lt;xsl:when test="not(VALUE/@type='assoziation')"&gt;
        &lt;association&gt;
        &lt;!-- ... --&gt;
        &lt;/association&gt;

        &lt;!-- create the attribute topic --&gt;
        &lt;topic&gt;
          &lt;!-- ... --&gt;

          &lt;!-- get their metadata --&gt;
          &lt;xsl:apply-templates select="METADATAS"/&gt;

          &lt;!-- not being an edge/assoziation,
               include the attributes.value 
               as occurrence or link depending on type --&gt;
          &lt;xsl:choose&gt;

            &lt;xsl:when test="not(starts-with(VALUE/@type, 'text/'))"&gt;
              &lt;!-- ... --&gt;
              &lt;occurrence&gt;
                &lt;instanceOf&gt;
                  &lt;topicRef xlink:href="#attributeValue"&gt;&lt;/topicRef&gt;
                &lt;/instanceOf&gt;
                &lt;resourceRef&gt;
                  &lt;xsl:attribute name="xlink:href"&gt;
                    &lt;xsl:value-of select="METADATAS/METADATA[@type='title']"/&gt;
                  &lt;/xsl:attribute&gt;
                &lt;/resourceRef&gt;
              &lt;/occurrence&gt;
            &lt;/xsl:when&gt;
            &lt;xsl:otherwise&gt;
              &lt;occurrence&gt;
                &lt;instanceOf&gt;
                  &lt;topicRef xlink:href="#attributeValue"&gt;&lt;/topicRef&gt;
                &lt;/instanceOf&gt;
                &lt;resourceData&gt;&lt;xsl:value-of select="VALUE"/&gt;&lt;/resourceData&gt;
              &lt;/occurrence&gt;
            &lt;/xsl:otherwise&gt;
          &lt;/xsl:choose&gt;
        
        &lt;/topic&gt;
      &lt;/xsl:when&gt;&lt;!-- endif:assoziation--&gt;
    &lt;/xsl:choose&gt;

	&lt;/xsl:template&gt;&lt;!-- end:attribute --&gt;


	&lt;xsl:template match="METADATAS"&gt;
    &lt;xsl:apply-templates select="METADATA"/&gt;
	&lt;/xsl:template&gt;


  &lt;!-- include metadata as occurrence --&gt;
	&lt;xsl:template match="METADATA"&gt;
    &lt;xsl:choose&gt;
      &lt;xsl:when test="@type='title' or @type='createDate'"&gt;
        &lt;occurrence&gt;
          &lt;instanceOf&gt;
            &lt;topicRef&gt;
              &lt;xsl:attribute name="xlink:href"&gt;
                &lt;xsl:text&gt;#&lt;/xsl:text&gt;
                &lt;xsl:value-of select="@type"/&gt;
              &lt;/xsl:attribute&gt;
            &lt;/topicRef&gt;
          &lt;/instanceOf&gt;
          &lt;resourceData&gt;&lt;xsl:value-of select="."/&gt;&lt;/resourceData&gt;
        &lt;/occurrence&gt;
      &lt;/xsl:when&gt;        
      &lt;xsl:otherwise&gt;
        &lt;!-- ... --&gt;
      &lt;/xsl:otherwise&gt;
    &lt;/xsl:choose&gt;
  &lt;/xsl:template&gt;


  &lt;!-- create an association for edges/assoziationen --&gt;
  &lt;xsl:template match="VALUE"&gt;

    &lt;!-- variables for roleplayers --&gt;
    &lt;xsl:variable name="role-src"&gt;
      &lt;xsl:choose&gt;
        &lt;xsl:when test="starts-with(@srcId, 'attr')"&gt;attribute&lt;/xsl:when&gt;
        &lt;xsl:otherwise&gt;mc&lt;/xsl:otherwise&gt;
      &lt;/xsl:choose&gt;
    &lt;/xsl:variable&gt;

    &lt;xsl:variable name="role-dst"&gt;
      &lt;xsl:choose&gt;
        &lt;xsl:when test="starts-with(@dstId, 'attr')"&gt;attribute&lt;/xsl:when&gt;
        &lt;xsl:otherwise&gt;mc&lt;/xsl:otherwise&gt;
      &lt;/xsl:choose&gt;
    &lt;/xsl:variable&gt;

    &lt;!-- special association type --&gt;
    &lt;topic&gt;
      &lt;xsl:attribute name="id"&gt;
        &lt;xsl:text&gt;at_&lt;/xsl:text&gt;
        &lt;xsl:value-of select="@title"/&gt;
      &lt;/xsl:attribute&gt;
      &lt;!-- ... --&gt;
    &lt;/topic&gt;

    &lt;!-- association as instance of this ass.type w/ matching role types --&gt;
    &lt;association&gt;
      &lt;instanceOf&gt;
        &lt;topicRef&gt;
          &lt;xsl:attribute name="xlink:href"&gt;
            &lt;xsl:text&gt;#at_&lt;/xsl:text&gt;
            &lt;xsl:value-of select="@title"/&gt;
          &lt;/xsl:attribute&gt;
        &lt;/topicRef&gt;
      &lt;/instanceOf&gt;
      &lt;!-- ... --&gt;
    &lt;/association&gt;

  &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;</programlisting>
  </section>
  
  <section id="appendix.xtm.instanz">
<title>XTM-Beispielinstanz aus <wordasword>MetaChart</wordasword>-Export</title>
    <programlisting width="80" format="linespecific">
&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;
&lt;topicMap xmlns="http://www.topicmaps.org/xtm/1.0/" xmlns:xlink="http://www.w3.org/1999/xlink" id="mcexport"&gt;
  &lt;topic id="mctm"&gt;
    &lt;subjectIdentity&gt;
      &lt;subjectIndicatorRef xlink:href="#mcexport" /&gt;
    &lt;/subjectIdentity&gt;

    &lt;baseName&gt;
      &lt;baseNameString&gt;MetaChart TopicMap&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;topic id="mc"&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;MetaChart&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;topic id="parent"&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Parent&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;topic id="child"&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Child&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;topic id="attribute"&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Attribute&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;topic id="title"&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#ot.metadata" /&gt;
    &lt;/instanceOf&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Title&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;topic id="ot.metadata"&gt;
    &lt;subjectIdentity&gt;
      &lt;subjectIndicatorRef xlink:href="http://psi.ontopia.net/xtm/occurrence-type/metadata" /&gt;
    &lt;/subjectIdentity&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;metadata&lt;/baseNameString&gt;
      &lt;variant&gt;
        &lt;parameters&gt;
          &lt;topicRef xlink:href="#sort" /&gt;
        &lt;/parameters&gt;
        &lt;variantName&gt;
          &lt;resourceData&gt;metadata&lt;/resourceData&gt;
        &lt;/variantName&gt;
      &lt;/variant&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;topic id="mc1841561650"&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#mc" /&gt;
    &lt;/instanceOf&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Student(in)&lt;/baseNameString&gt;
    &lt;/baseName&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#createDate" /&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;20020318022440&lt;/resourceData&gt;
    &lt;/occurrence&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#title" /&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;Student(in)&lt;/resourceData&gt;
    &lt;/occurrence&gt;
  &lt;/topic&gt;

  &lt;association&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#at_parentchild" /&gt;
    &lt;/instanceOf&gt;
    &lt;member&gt;
      &lt;roleSpec&gt;
        &lt;topicRef xlink:href="#parent" /&gt;
      &lt;/roleSpec&gt;
      &lt;topicRef xlink:href="#mc1841561650" /&gt;
    &lt;/member&gt;
    &lt;member&gt;
      &lt;roleSpec&gt;
        &lt;topicRef xlink:href="#child" /&gt;
      &lt;/roleSpec&gt;
      &lt;topicRef xlink:href="#mc1196092215" /&gt;
    &lt;/member&gt;
  &lt;/association&gt;

  &lt;association&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#at_parentchild" /&gt;
    &lt;/instanceOf&gt;
    &lt;member&gt;
      &lt;roleSpec&gt;
        &lt;topicRef xlink:href="#parent" /&gt;
      &lt;/roleSpec&gt;
      &lt;topicRef xlink:href="#mc1841561650" /&gt;
    &lt;/member&gt;
    &lt;member&gt;
      &lt;roleSpec&gt;
        &lt;topicRef xlink:href="#child" /&gt;
      &lt;/roleSpec&gt;
      &lt;topicRef xlink:href="#mc87292200" /&gt;
    &lt;/member&gt;
  &lt;/association&gt;

  &lt;topic id="mc1196092215"&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#mc" /&gt;
    &lt;/instanceOf&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Jenny Doe&lt;/baseNameString&gt;
    &lt;/baseName&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#createDate" /&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;20020318022622&lt;/resourceData&gt;
    &lt;/occurrence&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#title" /&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;Jenny Doe&lt;/resourceData&gt;
    &lt;/occurrence&gt;
  &lt;/topic&gt;

  &lt;topic id="attr653056631"&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#attribute" /&gt;
    &lt;/instanceOf&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Seminararbeit&lt;/baseNameString&gt;
    &lt;/baseName&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#createDate" /&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;20020318022751&lt;/resourceData&gt;
    &lt;/occurrence&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#title" /&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;Seminararbeit&lt;/resourceData&gt;
    &lt;/occurrence&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#attributeValue" /&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;When "foo" is used in connection with "bar" it has generally traced to the WWII-era Army slang acronym FUBAR (Fucked Up Beyond All Repair), later modified to foobar.&lt;/resourceData&gt;
    &lt;/occurrence&gt;
  &lt;/topic&gt;

  &lt;topic id="at_studiert-in"&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;studiert in relation&lt;/baseNameString&gt;
    &lt;/baseName&gt;
    &lt;baseName&gt;
      &lt;scope&gt;
        &lt;topicRef xlink:href="#mc" /&gt;
      &lt;/scope&gt;
      &lt;baseNameString&gt;studiert in&lt;/baseNameString&gt;
    &lt;/baseName&gt;
    &lt;baseName&gt;
      &lt;scope&gt;
        &lt;topicRef xlink:href="#mc" /&gt;
      &lt;/scope&gt;
      &lt;baseNameString&gt;1 / studiert in&lt;/baseNameString&gt;
    &lt;/baseName&gt;
  &lt;/topic&gt;

  &lt;association&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#at_studiert-in" /&gt;
    &lt;/instanceOf&gt;
    &lt;member&gt;
      &lt;roleSpec&gt;
        &lt;topicRef xlink:href="#mc" /&gt;
      &lt;/roleSpec&gt;
      &lt;topicRef xlink:href="#mc1196092215" /&gt;
    &lt;/member&gt;
    &lt;member&gt;
      &lt;roleSpec&gt;
        &lt;topicRef xlink:href="#mc" /&gt;
      &lt;/roleSpec&gt;
      &lt;topicRef xlink:href="#mc2137864275" /&gt;
    &lt;/member&gt;
  &lt;/association&gt;

  &lt;topic id="attr1768538671"&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#attribute" /&gt;
    &lt;/instanceOf&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;private&lt;/baseNameString&gt;
    &lt;/baseName&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#createDate" /&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;20020318031431&lt;/resourceData&gt;
    &lt;/occurrence&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#title" /&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;private&lt;/resourceData&gt;
    &lt;/occurrence&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#attributeValue" /&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;John and Jane are nobody.&lt;/resourceData&gt;
    &lt;/occurrence&gt;
  &lt;/topic&gt;

  &lt;!-- ... --&gt;

&lt;/topicMap&gt;
</programlisting>
  
  </section>

  <section>
<title>Darstellung der <foreignphrase>Topic Map</foreignphrase> in einem <foreignphrase>Topic Map</foreignphrase>-Browser</title>
    <figure float="0">
      <title>Ontopias Omnigator</title>
      <mediaobject>
        <imageobject>
          <imagedata format="PNG" fileref="images/omni/omnigator.png"/>
        </imageobject>
      </mediaobject>
    </figure>
  </section>

</appendix>
  <appendix id="appendix.rdf">
<title>
<foreignphrase>Resource Description Framework</foreignphrase>
</title>

  <section id="appendix.rdf.instanz">
<title>
<wordasword>MetaChart</wordasword> RDF-Modell</title>
    <programlisting width="80" format="linespecific">
&lt;rdf:RDF
  xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
  xmlns:dc='http://purl.org/dc/elements/1.0/'
  xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
 &gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc2137864275'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#metachart'/&gt;
    &lt;dc:date&gt;20020318022513&lt;/dc:date&gt;
    &lt;dc:title&gt;Weimar&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc2137864275_bag'/&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc2137864275_vi1810827710_view'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc556206654'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc804971150_bag'&gt;
    &lt;rdf:type rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/&gt;
    &lt;rdf:_1 rdf:resource='http://dayf.de#attr245993684'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#attr653056631'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#attribute'/&gt;
    &lt;dc:format&gt;text/plain&lt;/dc:format&gt;
    &lt;rdf:value&gt;When "foo" is used in connection with "bar" 
      it has generally traced to the WWII-era Army slang acronym 
      FUBAR (F***** Up Beyond All Repair), later modified to foobar.
    &lt;/rdf:value&gt;
    &lt;dc:date&gt;20020318022751&lt;/dc:date&gt;
    &lt;dc:title&gt;Seminararbeit&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#attr653056631_vi1109138964_view'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc1196092215'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#metachart'/&gt;
    &lt;dc:date&gt;20020318022622&lt;/dc:date&gt;
    &lt;dc:title&gt;Jenny Doe&lt;/dc:title&gt;
    &lt;dc:relation.references.studiert-in rdf:resource='http://dayf.de#mc2137864275'/&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc1196092215_bag'/&gt;
    &lt;dc:relation.references.studiert rdf:resource='http://dayf.de#mc522272996'/&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc1196092215_vi1109138964_view'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc1841561650'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#metachart'/&gt;
    &lt;dc:date&gt;20020318022440&lt;/dc:date&gt;
    &lt;dc:title&gt;Student(in)&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc1841561650_vi1536071023_view'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc1196092215'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc804971150'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc87292200'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#attr1768538671'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#attribute'/&gt;
    &lt;dc:format&gt;text/plain&lt;/dc:format&gt;
    &lt;rdf:value&gt;Jane and John are nobody.&lt;/rdf:value&gt;
    &lt;dc:date&gt;20020318031431&lt;/dc:date&gt;
    &lt;dc:title&gt;private&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#attr1768538671_vi1109138964_view'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc522272996'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#metachart'/&gt;
    &lt;dc:date&gt;20020318022458&lt;/dc:date&gt;
    &lt;dc:title&gt;Architektur&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc522272996_bag'/&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc522272996_vi694640503_view'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc1937120584'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#metachart'/&gt;
    &lt;dc:date&gt;20020318022336&lt;/dc:date&gt;
    &lt;dc:title&gt;Studium&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc1937120584_vi1112029776_view'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc502589505'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc1564127045'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc1841561650'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc556206654_bag'&gt;
    &lt;rdf:type rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/&gt;
    &lt;rdf:_1 rdf:resource='http://dayf.de#attr675063415'/&gt;
    &lt;rdf:_2 rdf:resource='http://dayf.de#attr724849265'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc1564127045'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#metachart'/&gt;
    &lt;dc:date&gt;20020318022431&lt;/dc:date&gt;
    &lt;dc:title&gt;Studiengang&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc1564127045_vi915070974_view'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc522272996'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc169350985'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc87292200'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#metachart'/&gt;
    &lt;dc:date&gt;20020318022645&lt;/dc:date&gt;
    &lt;dc:title&gt;Jane Doe&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc87292200_bag'/&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc87292200_vi164241980_view'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#attr675063415'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#attribute'/&gt;
    &lt;dc:format&gt;text/plain&lt;/dc:format&gt;
    &lt;rdf:value&gt;&lt;/rdf:value&gt;
    &lt;dc:date&gt;20020318023146&lt;/dc:date&gt;
    &lt;dc:title&gt;Goethehaus&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#attr675063415_vi775898276_view'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc502589505'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#metachart'/&gt;
    &lt;dc:date&gt;20020318022422&lt;/dc:date&gt;
    &lt;dc:title&gt;Ort&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc502589505_vi577615540_view'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc2137864275'/&gt;
    &lt;dc:relation.hasPart rdf:resource='http://dayf.de#mc443199914'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc1425722723_bag'&gt;
    &lt;rdf:type rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/&gt;
    &lt;rdf:_1 rdf:resource='http://dayf.de#attr1159770409'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#view'&gt;
    &lt;rdf:type rdf:resource='http://www.w3.org/2000/01/rdf-schema#Class'/&gt;
    &lt;rdfs:label&gt;View&lt;/rdfs:label&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc556206654'&gt;
    &lt;rdf:type rdf:resource='http://dayf.de#metachart'/&gt;
    &lt;dc:date&gt;20020318023136&lt;/dc:date&gt;
    &lt;dc:title&gt;Sights&lt;/dc:title&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc556206654_bag'/&gt;
    &lt;rdf:value rdf:resource='http://dayf.de#mc556206654_vi775898276_view'/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#attribute'&gt;
    &lt;rdf:type rdf:resource='http://www.w3.org/2000/01/rdf-schema#Class'/&gt;
    &lt;rdfs:label&gt;Attribute&lt;/rdfs:label&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#metachart'&gt;
    &lt;rdf:type rdf:resource='http://www.w3.org/2000/01/rdf-schema#Class'/&gt;
    &lt;rdfs:label&gt;MetaChart&lt;/rdfs:label&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about='http://dayf.de#mc2137864275_bag'&gt;
    &lt;rdf:type rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/&gt;
    &lt;rdf:_1 rdf:resource='http://dayf.de#attr1529644663'/&gt;
  &lt;/rdf:Description&gt;
  &lt;!-- ... --&gt;
&lt;/rdf:RDF&gt;
</programlisting>
  </section>

 
  
  <section id="appendix.rdf.dot">
<title>RDF Visualisierung</title>

    <figure float="0">
      <title>Graph der RDF-Instanz</title>
      <mediaobject>
        <imageobject>
          <imagedata format="EPS" fileref="images/rdf/bigone.EPS"/>
        </imageobject>
      </mediaobject>
    </figure>
    
  
  </section>

</appendix> 
  <appendix id="appendix.xtmrdf">
<title>RDF innerhalb XTM</title>
  <programlisting format="linespecific">
&lt;?xml version="1.0" encoding="iso-8859-1" standalone="yes"?&gt;
&lt;topicMap 
  xmlns="http://www.topicmaps.org/xtm/1.0/" 
  xmlns:xlink="http://www.w3.org/1999/xlink" 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.0/"  
  xmlns:db="http://www.oasis-open.org/docbook/xmlschema/4.1.2.3/"  
  &gt;

  &lt;!-- ... --&gt;
  
  &lt;topic id="attr653056631"&gt;
    &lt;instanceOf&gt;
      &lt;topicRef xlink:href="#attribute"/&gt;
    &lt;/instanceOf&gt;
    &lt;baseName&gt;
      &lt;baseNameString&gt;Seminararbeit&lt;/baseNameString&gt;
    &lt;/baseName&gt;
    &lt;occurrence&gt;
      &lt;instanceOf&gt;
        &lt;topicRef xlink:href="#attributeValue"/&gt;
      &lt;/instanceOf&gt;
      &lt;resourceData&gt;
        &lt;rdf:RDF&gt;
          &lt;rdf:Description&gt;
            &lt;dc:creator&gt;Jenny Doe&lt;/dc:creator&gt;
            &lt;dc:creator rdf:parseType="Resource"&gt;
	      &lt;rdf:type rdf:paresType="Resource"&gt;
		    &lt;rdf:type rdf:resource=
		    "http://www.w3.org/2000/01/rdf-schema#Class"/&gt;
                    &lt;dc:title&gt;Student(in)&lt;/dc:title&gt;
              &lt;/rdf:type&gt;
	      &lt;dc:title&gt;Jenny Doe&lt;/dc:title&gt;
	    &lt;/dc:creator&gt;
            &lt;dc:title&gt;Bauhaus Hausbau&lt;/dc:title&gt;
            &lt;dc:description&gt;
	      Eine Seminarbeit in Architektur
	    &lt;/dc:description&gt;
            &lt;dc:date&gt;2002-03-28&lt;/dc:date&gt;
            &lt;rdf:value rdf:parseType="Literal"&gt;
	      When &lt;db:wordasword&gt;foo&lt;/db:wordasword&gt; is used in 
	      connection with &lt;db:wordasword&gt;bar&lt;/db:wordasword&gt; it
	      has generally traced to the WWII-era Army slang 
	      acronym &lt;db:acronym&gt;FUBAR&lt;/db:acronym&gt; (Fucked Up 
	      Beyond All Repair), later modified to 
	      &lt;db:emphasis&gt;foobar&lt;/db:emphasis&gt;.
	    &lt;/rdf:value&gt;
          &lt;/rdf:Description&gt;
        &lt;/rdf:RDF&gt;
      &lt;/resourceData&gt;
    &lt;/occurrence&gt;
  &lt;/topic&gt;
  
  &lt;!-- ... --&gt;
&lt;/topicMap&gt;
</programlisting>


</appendix>
  

<appendix lang="en">
  <title>
<wordasword>MetaChart</wordasword>-Export Reference</title>
  <para>
<emphasis>Being a Java novice, the implementation is pretty much on a procedural basis.</emphasis>
</para>
  <para>The export-module is being incorporated into the <wordasword>MetaChart</wordasword>-project via <trademark class="trade">Enterprise Java Beans</trademark> (EJB), therefore the EJB container manages the transaction on the database automatically.</para>


 <section>
<title>Package de.fhg.iao.metachart.export</title>
  <section>
<title>Class MCEntry</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>MCEntry</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>MCEntry</secondary>
</indexterm>
   <para>Instanciate XML.
  Get starting <literal moreinfo="none">mc_id</literal>s; evaluate these MetaCharts.
  Create Element <literal moreinfo="none">METACHARTS</literal>.
   </para>



   <section>
<title>Members</title>
    <section>
<title>Method enter(Connection)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>enter</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>enter</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">enter</emphasis>(java.sql.Connection <emphasis>conn</emphasis>);
</screen>

     </blockquote>

     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class RDFEntry</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>RDFEntry</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>RDFEntry</secondary>
</indexterm>
   <para>Instanciate the RDF XML.
  Get starting <literal moreinfo="none">mc_id</literal>s; evaluate these MetaCharts.
   </para>



   <section>
<title>Members</title>
    <section>
<title>Constructor RDFEntry()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>RDFEntry</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>RDFEntry</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public <emphasis role="strong">RDFEntry</emphasis>();
</screen>

     </blockquote>
     <para>Constructor for the RDFEntry object
     </para>

    </section>
    <section>
<title>Method enter(Connection)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>enter</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>enter</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">enter</emphasis>(java.sql.Connection <emphasis>conn</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class StartMeUp</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>StartMeUp</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>StartMeUp</secondary>
</indexterm>


   
   
   <section>
<title>Members</title>
    <section>
<title>Constructor StartMeUp()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>StartMeUp</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>StartMeUp</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public <emphasis role="strong">StartMeUp</emphasis>();
</screen>

     </blockquote>
     <para>Constructor for the StartMeUp object
     </para>

    </section>
    <section>
<title>Method main(String[])</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>main</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>main</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public static void <emphasis role="strong">main</emphasis>(java.lang.String[] <emphasis>args</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String[]</type> <parameter moreinfo="none">args</parameter>
</para>
</entry>
<entry>
<para>The command line arguments; none needed.
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>The main program for the StartMeUp class
     </para>

    </section>

   </section>

  </section>
  <section>
<title>Class XTMEntry</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>XTMEntry</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>XTMEntry</secondary>
</indexterm>
   <para>Instanciate XML Topic Map, reify its BaseName, create basic topic types.
  
  Get starting <literal moreinfo="none">mc_id</literal>s; evaluate these MetaCharts. 
   </para>



   <section>
<title>Members</title>
    <section>
<title>Method enter(Connection)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>enter</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>enter</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">enter</emphasis>(java.sql.Connection <emphasis>conn</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>
    <section id="method.xtmCreateTopix">
<title>Method xtmCreateTopix(TopicMapFactory)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>xtmCreateTopix</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>xtmCreateTopix</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public TopicHash <emphasis role="strong">xtmCreateTopix</emphasis>(
                             org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>
<literal moreinfo="none">TopicMapFactory</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>de.fhg.iao.metachart.export.xtm.TopicHash

</type>
</para>
</entry>
<entry>
<para>
<literal moreinfo="none">Hashtable</literal> containing the basic topic and
      association types.
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Create the basic topic types and association types. Put them into the
  <literal moreinfo="none">TopicHash topix</literal> Hashtable.
     </para>

    </section>

   </section>

  </section>

 </section>
 
 
 <section>
<title>Package de.fhg.iao.metachart.export.dom</title>
  <section>
<title>Class DocCreator</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>DocCreator</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>DocCreator</secondary>
</indexterm>
   <para>Serialize the document instance and write it to file. 
   </para>


   <section>
<title>Members</title>
    <section>
<title>Constructor DocCreator()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>DocCreator</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>DocCreator</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public <emphasis role="strong">DocCreator</emphasis>();
</screen>

     </blockquote>
     <para>Constructor for the DocCreator object
     </para>

    </section>
    <section>
<title>Method closeDoc(Document)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>closeDoc</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>closeDoc</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">closeDoc</emphasis>(org.w3c.dom.Document <emphasis>doc</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.w3c.dom.Document</type> <parameter moreinfo="none">doc</parameter>
</para>
</entry>
<entry>
<para>Document instance
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para>String
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class DOMAttributes</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>DOMAttributes</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>DOMAttributes</secondary>
</indexterm>
   <para>Generate elements <literal moreinfo="none">METACHART/ATTRIBUTES</literal>
   </para>



   <section>
<title>Members</title>
    <section>
<title>Method createElementValue(Document, AttributeType, Element)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>createElementValue</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>createElementValue</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Element <emphasis role="strong">createElementValue</emphasis>(org.w3c.dom.Document <emphasis>doc</emphasis>, 
                                            de.fhg.iao.metachart.export.tables.AttributeType <emphasis>type</emphasis>, 
                                            org.w3c.dom.Element <emphasis>el_attribute</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.w3c.dom.Document</type> <parameter moreinfo="none">doc</parameter>
</para>
</entry>
<entry>
<para>Document instance
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.tables.AttributeType</type> <parameter moreinfo="none">type</parameter>
</para>
</entry>
<entry>
<para>AttributeType-object containing <literal moreinfo="none">attributes.type</literal> from database
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Element</type> <parameter moreinfo="none">el_attribute</parameter>
</para>
</entry>
<entry>
<para>Element to append sub-elements to
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>org.w3c.dom.Element

</type>
</para>
</entry>
<entry>
<para>
<literal moreinfo="none">type</literal>-specific <literal moreinfo="none">VALUE</literal>-Element
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Generate element <literal moreinfo="none">ATTRIBUTE/VALUE</literal> depending on <literal moreinfo="none">type</literal>.
     </para>

    </section>
    <section>
<title>Method processAttributes(Connection, String, Document, Element)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processAttributes</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processAttributes</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processAttributes</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                        java.lang.String <emphasis>mcId</emphasis>, 
                                        org.w3c.dom.Document <emphasis>doc</emphasis>, 
                                        org.w3c.dom.Element <emphasis>el_mc</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">mcId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Document</type> <parameter moreinfo="none">doc</parameter>
</para>
</entry>
<entry>
<para>Document instance
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Element</type> <parameter moreinfo="none">el_mc</parameter>
</para>
</entry>
<entry>
<para>Element to append sub-elements
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class DOMChildren</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>DOMChildren</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>DOMChildren</secondary>
</indexterm>
   <para>Generate elements <literal moreinfo="none">METACHART/CHILDREN</literal>
   </para>


   <section>
<title>Members</title>
    <section>
<title>Method processChildren(Connection, String, Document, Element, Hashtable)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processChildren</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processChildren</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processChildren</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                      java.lang.String <emphasis>Id</emphasis>, 
                                      org.w3c.dom.Document <emphasis>doc</emphasis>, 
                                      org.w3c.dom.Element <emphasis>insertpoint</emphasis>, 
                                      java.util.Hashtable <emphasis>metacharts</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Document</type> <parameter moreinfo="none">doc</parameter>
</para>
</entry>
<entry>
<para>Document instance
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Element</type> <parameter moreinfo="none">insertpoint</parameter>
</para>
</entry>
<entry>
<para>Element to append sub-elements to
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.util.Hashtable</type> <parameter moreinfo="none">metacharts</parameter>
</para>
</entry>
<entry>
<para>Hashtable containing all <literal moreinfo="none">MetaChart</literal>-objects
      by <literal moreinfo="none">mc_id</literal>s
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class DOMMetaChart</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>DOMMetaChart</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>DOMMetaChart</secondary>
</indexterm>
   <para>Generate elements <literal moreinfo="none">METACHART</literal> elements.
  Call methods to generate sub-elements <literal moreinfo="none">METADATAS, ATTRIBUTES, CHILDREN, VIEWS</literal>
   </para>



   
   <section>
<title>Members</title>
    <section>
<title>Method processMetaChart(Connection, String, Document, Element, Hashtable)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processMetaChart</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processMetaChart</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processMetaChart</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                       java.lang.String <emphasis>Id</emphasis>, 
                                       org.w3c.dom.Document <emphasis>doc</emphasis>, 
                                       org.w3c.dom.Element <emphasis>elem</emphasis>, 
                                       java.util.Hashtable <emphasis>metacharts</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Document</type> <parameter moreinfo="none">doc</parameter>
</para>
</entry>
<entry>
<para>Document instance
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Element</type> <parameter moreinfo="none">elem</parameter>
</para>
</entry>
<entry>
<para>Element to append sub-elements to
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.util.Hashtable</type> <parameter moreinfo="none">metacharts</parameter>
</para>
</entry>
<entry>
<para>Hashtable containg all <literal moreinfo="none">MetaChart</literal>-objects by <literal moreinfo="none">mc_id</literal>s
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class DOMMetaDatas</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>DOMMetaDatas</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>DOMMetaDatas</secondary>
</indexterm>
   <para>Generate elements <literal moreinfo="none">METACHART/METADATAS</literal> or <literal moreinfo="none">METACHART/ATTRIBUTES/METADATAS</literal>
   </para>



   <section>
<title>Members</title>
    <section>
<title>Method processMetaDatas(Connection, String, Document, Element)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processMetaDatas</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processMetaDatas</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processMetaDatas</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                       java.lang.String <emphasis>Id</emphasis>, 
                                       org.w3c.dom.Document <emphasis>doc</emphasis>, 
                                       org.w3c.dom.Element <emphasis>insertpoint</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current id, <literal moreinfo="none">mc_id</literal> or <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Document</type> <parameter moreinfo="none">doc</parameter>
</para>
</entry>
<entry>
<para>Document instance
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Element</type> <parameter moreinfo="none">insertpoint</parameter>
</para>
</entry>
<entry>
<para>Element to append sub-elements to
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class DOMViews</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>DOMViews</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>DOMViews</secondary>
</indexterm>
   <para>Generate elements <literal moreinfo="none">METACHART/VIEWS</literal> or <literal moreinfo="none">METACHART/ATTRIBUTES/VIEWS</literal>
   </para>



   <section>
<title>Members</title>
    <section>
<title>Method processViews(Connection, String, Document, Element)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processViews</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processViews</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processViews</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                   java.lang.String <emphasis>Id</emphasis>, 
                                   org.w3c.dom.Document <emphasis>doc</emphasis>, 
                                   org.w3c.dom.Element <emphasis>insertpoint</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current id, <literal moreinfo="none">mc_id</literal> or <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Document</type> <parameter moreinfo="none">doc</parameter>
</para>
</entry>
<entry>
<para>Document instance
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.w3c.dom.Element</type> <parameter moreinfo="none">insertpoint</parameter>
</para>
</entry>
<entry>
<para>Element to append sub-elements to
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>

 </section>
 <section>
<title>Package de.fhg.iao.metachart.export.rdf</title>
  <section>
<title>Class RDFAttributes</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>RDFAttributes</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>RDFAttributes</secondary>
</indexterm>
   <para>Generate RDF for MetaChart/Attribute-associations
   </para>


   <section>
<title>Members</title>
    <section>
<title>Method processAssoziation(Connection, Model, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processAssoziation</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processAssoziation</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processAssoziation</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                         com.hp.hpl.mesa.rdf.jena.model.Model <emphasis>m</emphasis>, 
                                         java.lang.String <emphasis>attrId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDCB connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Model</type> <parameter moreinfo="none">m</parameter>
</para>
</entry>
<entry>
<para>RDF Model
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">attrId</parameter>
</para>
</entry>
<entry>
<para>
<literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>
    <section>
<title>Method processAttribute(Connection, Model, RDFTools, String, Hashtable, Resource)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processAttribute</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processAttribute</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processAttribute</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                       com.hp.hpl.mesa.rdf.jena.model.Model <emphasis>m</emphasis>, 
                                       de.fhg.iao.metachart.export.rdf.RDFTools <emphasis>grammar</emphasis>, 
                                       java.lang.String <emphasis>Id</emphasis>, 
                                       java.util.Hashtable <emphasis>attributes</emphasis>, 
                                       com.hp.hpl.mesa.rdf.jena.model.Resource <emphasis>metachartInstance</emphasis>) 
              throws com.hp.hpl.mesa.rdf.jena.model.RDFException;
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Model</type> <parameter moreinfo="none">m</parameter>
</para>
</entry>
<entry>
<para>RDF Model
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.rdf.RDFTools</type> <parameter moreinfo="none">grammar</parameter>
</para>
</entry>
<entry>
<para>basic Resources
</para>
</entry>

        </row>
        
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.util.Hashtable</type> <parameter moreinfo="none">attributes</parameter>
</para>
</entry>
<entry>
<para>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Resource</type> <parameter moreinfo="none">metachartInstance</parameter>
</para>
</entry>
<entry>
<para>Current MetaChart-instance as Resource
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="throws" colwidth="*"/>
<colspec colname="throws" colwidth="1*"/>
       <thead>
<colspec colname="throws" colwidth="*"/>
        <row>
<entry>
<para>Exceptions</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>RDFException
</para>
</entry>
<entry>
<para>RDFException
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>MethodDescription
     </para>

    </section>
    <section>
<title>Method processAttributeValue(Connection, Model, String, AttributeType, Resource)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processAttributeValue</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processAttributeValue</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processAttributeValue</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                            com.hp.hpl.mesa.rdf.jena.model.Model <emphasis>m</emphasis>, 
                                            java.lang.String <emphasis>attrId</emphasis>, 
                                            de.fhg.iao.metachart.export.tables.AttributeType <emphasis>type</emphasis>, 
                                            com.hp.hpl.mesa.rdf.jena.model.Resource <emphasis>attributeInstance</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Model</type> <parameter moreinfo="none">m</parameter>
</para>
</entry>
<entry>
<para>RDF Model
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">attrId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.tables.AttributeType</type> <parameter moreinfo="none">type</parameter>
</para>
</entry>
<entry>
<para>
<literal moreinfo="none">attributes.type</literal> as AttributeType-object
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Resource</type> <parameter moreinfo="none">attributeInstance</parameter>
</para>
</entry>
<entry>
<para>Attribute-instance as Resource
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>attribute value wird auf type untersucht. vom speziellen bis zum
  allgemeinen...
     </para>

    </section>

   </section>

  </section>
  <section>
<title>Class RDFChildren</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>RDFChildren</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>RDFChildren</secondary>
</indexterm>
   <para>Generate RDF nodes for children of the current MetaChart
   </para>


   <section>
<title>Members</title>
    <section>
<title>Method processChildren(Connection, Model, RDFTools, Hashtable, String, Hashtable, Resource)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processChildren</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processChildren</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processChildren</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                      com.hp.hpl.mesa.rdf.jena.model.Model <emphasis>m</emphasis>, 
                                      de.fhg.iao.metachart.export.rdf.RDFTools <emphasis>grammar</emphasis>, 
                                      java.util.Hashtable <emphasis>metacharts</emphasis>, 
                                      java.lang.String <emphasis>Id</emphasis>, 
                                      java.util.Hashtable <emphasis>attributes</emphasis>, 
                                      com.hp.hpl.mesa.rdf.jena.model.Resource <emphasis>metachartInstance</emphasis>) 
              throws com.hp.hpl.mesa.rdf.jena.model.RDFException;
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Model</type> <parameter moreinfo="none">m</parameter>
</para>
</entry>
<entry>
<para>RDF Model
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.rdf.RDFTools</type> <parameter moreinfo="none">grammar</parameter>
</para>
</entry>
<entry>
<para>Hashtable containing basic RDF classes
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.util.Hashtable</type> <parameter moreinfo="none">metacharts</parameter>
</para>
</entry>
<entry>
<para>Hashtable containing all <literal moreinfo="none">MetaChart</literal>
      -objects by <literal moreinfo="none">mc_id</literal>s
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.util.Hashtable</type> <parameter moreinfo="none">attributes</parameter>
</para>
</entry>
<entry>
<para>Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Resource</type> <parameter moreinfo="none">metachartInstance</parameter>
</para>
</entry>
<entry>
<para>Current Resource to append children to
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="throws" colwidth="*"/>
<colspec colname="throws" colwidth="1*"/>
       <thead>
<colspec colname="throws" colwidth="*"/>
        <row>
<entry>
<para>Exceptions</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>RDFException
</para>
</entry>
<entry>
<para>RDF-Exception
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class RDFMetaChart</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>RDFMetaChart</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>RDFMetaChart</secondary>
</indexterm>
   <para>Generate RDF nodes for MetaCharts.
  Call methods to generate sub-nodes for MetaDatas, Attributes and
  child-MetaCharts.
   </para>

   <section>
<title>Members</title>
    <section>
<title>Method processMetaChart(Connection, Model, RDFTools, Hashtable, String, Hashtable)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processMetaChart</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processMetaChart</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Resource <emphasis role="strong">processMetaChart</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                           com.hp.hpl.mesa.rdf.jena.model.Model <emphasis>m</emphasis>, 
                                           de.fhg.iao.metachart.export.rdf.RDFTools <emphasis>grammar</emphasis>, 
                                           java.util.Hashtable <emphasis>metacharts</emphasis>, 
                                           java.lang.String <emphasis>Id</emphasis>, 
                                           java.util.Hashtable <emphasis>attributes</emphasis>) 
              throws com.hp.hpl.mesa.rdf.jena.model.RDFException;
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>Database Connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Model</type> <parameter moreinfo="none">m</parameter>
</para>
</entry>
<entry>
<para>RDF Model
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.rdf.RDFTools</type> <parameter moreinfo="none">grammar</parameter>
</para>
</entry>
<entry>
<para>Basic MetaChart RDF Nodes as Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.util.Hashtable</type> <parameter moreinfo="none">metacharts</parameter>
</para>
</entry>
<entry>
<para>Hashtable containing all <literal moreinfo="none">MetaChart</literal>
      -objects by <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mcId</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.util.Hashtable</type> <parameter moreinfo="none">attributes</parameter>
</para>
</entry>
<entry>
<para>Hashtable containing all <literal moreinfo="none">Attribute</literal>-
      -objects by <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>com.hp.hpl.mesa.rdf.jena.model.Resource

</type>
</para>
</entry>
<entry>
<para>MetaChart-instance as RDF-Resource
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="throws" colwidth="*"/>
<colspec colname="throws" colwidth="1*"/>
       <thead>
<colspec colname="throws" colwidth="*"/>
        <row>
<entry>
<para>Exceptions</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>RDFException
</para>
</entry>
<entry>
<para>RDF Exception
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class RDFMetaDatas</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>RDFMetaDatas</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>RDFMetaDatas</secondary>
</indexterm>
   <para>Generate nodes for MetaChart- or Attribute-MetaDatas.
   </para>


   <section>
<title>Members</title>
    <section>
<title>Method processMetaData(Connection, Model, String, Resource)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processMetaData</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processMetaData</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processMetaData</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                      com.hp.hpl.mesa.rdf.jena.model.Model <emphasis>m</emphasis>, 
                                      java.lang.String <emphasis>Id</emphasis>, 
                                      com.hp.hpl.mesa.rdf.jena.model.Resource <emphasis>instance</emphasis>) 
              throws com.hp.hpl.mesa.rdf.jena.model.RDFException;
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Model</type> <parameter moreinfo="none">m</parameter>
</para>
</entry>
<entry>
<para>RDF Model
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal> or <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Resource</type> <parameter moreinfo="none">instance</parameter>
</para>
</entry>
<entry>
<para>Current MetaChart- or Attribute-instance as RDF
      Resource
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="throws" colwidth="*"/>
<colspec colname="throws" colwidth="1*"/>
       <thead>
<colspec colname="throws" colwidth="*"/>
        <row>
<entry>
<para>Exceptions</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>RDFException
</para>
</entry>
<entry>
<para>RDF Exception
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class RDFTools</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>RDFTools</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>RDFTools</secondary>
</indexterm>
   <para>Hashtable for basic RDF classes and generating method for this <literal moreinfo="none">grammar</literal>
   </para>


   <section>
<title>Members</title>
    <section>
<title>Constructor RDFTools()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>RDFTools</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>RDFTools</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public <emphasis role="strong">RDFTools</emphasis>();
</screen>

     </blockquote>
     

    </section>


    <section>
<title>Field mainURI</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>mainURI</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Fields</primary>
<secondary>mainURI</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public static java.lang.String <emphasis role="strong">mainURI</emphasis>
</screen>

     </blockquote>
     <para>Absolute URI
     </para>

    </section>
    
    <section>
<title>Method appendURI(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>appendURI</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>appendURI</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public static String <emphasis role="strong">appendURI</emphasis>(java.lang.String <emphasis>localname</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">localname</parameter>
</para>
</entry>
<entry>
<para>Localname of URI of current RDF node
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para>Absolute URI
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Generate absolute URIs
     </para>

    </section>
    <section>
<title>Method createGrammar(Model, RDFTools)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>createGrammar</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>createGrammar</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">createGrammar</emphasis>(com.hp.hpl.mesa.rdf.jena.model.Model <emphasis>m</emphasis>, 
                                    de.fhg.iao.metachart.export.rdf.RDFTools <emphasis>grammar</emphasis>) 
              throws com.hp.hpl.mesa.rdf.jena.model.RDFException;
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Model</type> <parameter moreinfo="none">m</parameter>
</para>
</entry>
<entry>
<para>RDF Model
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.rdf.RDFTools</type> <parameter moreinfo="none">grammar</parameter>
</para>
</entry>
<entry>
<para>Hashtable containing basic RDF classes
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="throws" colwidth="*"/>
<colspec colname="throws" colwidth="1*"/>
       <thead>
<colspec colname="throws" colwidth="*"/>
        <row>
<entry>
<para>Exceptions</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>RDFException
</para>
</entry>
<entry>
<para>RDF Exception
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Create basic RDF classes and put it into Hashtable <literal moreinfo="none">grammar</literal>
     </para>

    </section>

   </section>

  </section>
  <section>
<title>Class RDFViews</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>RDFViews</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>RDFViews</secondary>
</indexterm>



   <section>
<title>Members</title>
    <section>
<title>Method processView(Connection, Model, RDFTools, String, Resource)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processView</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processView</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processView</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                  com.hp.hpl.mesa.rdf.jena.model.Model <emphasis>m</emphasis>, 
                                  de.fhg.iao.metachart.export.rdf.RDFTools <emphasis>grammar</emphasis>, 
                                  java.lang.String <emphasis>Id</emphasis>, 
                                  com.hp.hpl.mesa.rdf.jena.model.Resource <emphasis>instance</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Model</type> <parameter moreinfo="none">m</parameter>
</para>
</entry>
<entry>
<para>RDF Model
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.rdf.RDFTools</type> <parameter moreinfo="none">grammar</parameter>
</para>
</entry>
<entry>
<para>Hashtable containing basic RDF classes
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal> or <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>com.hp.hpl.mesa.rdf.jena.model.Resource</type> <parameter moreinfo="none">instance</parameter>
</para>
</entry>
<entry>
<para>Current MetaChart- or Attribute- instance as Resource
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Generate nodes for MetaChart- or Attribute- Views.
     </para>

    </section>

   </section>

  </section>

 </section>
 <section>
<title>Package de.fhg.iao.metachart.export.tables</title>
  <section>
<title>Class Attribute</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>Attribute</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>Attribute</secondary>
</indexterm>
   <para>Attribute-object, contains DB-attributes of the <literal moreinfo="none">attributes</literal>-table
   </para>


   <section>
<title>Overview</title>
    
<screen width="80" format="linespecific">public class <emphasis role="strong">Attribute</emphasis> implements Serializable {
  <emphasis>// Public Constructors</emphasis>
  public <emphasis role="strong">Attribute</emphasis>(java.lang.String <emphasis>attrId</emphasis>, java.lang.String <emphasis>mcId</emphasis>, 
                   java.lang.String <emphasis>type</emphasis>, java.lang.String <emphasis>value</emphasis>, 

  <emphasis>// Public Methods</emphasis>
  public void <emphasis role="strong">setAttrId</emphasis>(java.lang.String <emphasis>mcId</emphasis>);
  public void <emphasis role="strong">setMcId</emphasis>(java.lang.String <emphasis>mcId</emphasis>);
  public void <emphasis role="strong">setType</emphasis>(java.lang.String <emphasis>type</emphasis>);
  public void <emphasis role="strong">setValue</emphasis>(java.lang.String <emphasis>value</emphasis>);
  public String <emphasis role="strong">getId</emphasis>();
  public String <emphasis role="strong">getMcId</emphasis>();
  public String <emphasis role="strong">getType</emphasis>();
  public String <emphasis role="strong">getValue</emphasis>();
}
</screen>

   </section>




  </section>


  <section>
<title>Class AttributeType</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>AttributeType</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>AttributeType</secondary>
</indexterm>
   <para>AttributeType-object, contains DB-attribute:value of the <literal moreinfo="none">attributes</literal>-table
   </para>


   <section>
<title>Overview</title>
    
<screen width="80" format="linespecific">public class <emphasis role="strong">AttributeType</emphasis> implements Serializable {
  <emphasis>// Public Constructors</emphasis>
  public <emphasis role="strong">AttributeType</emphasis>(java.lang.String <emphasis>type</emphasis>);
  <emphasis>// Public Methods</emphasis>
  public void <emphasis role="strong">setType</emphasis>(java.lang.String <emphasis>type</emphasis>);
  public String <emphasis role="strong">getType</emphasis>();
  public boolean <emphasis role="strong">isAssoziation</emphasis>();
  public boolean <emphasis role="strong">isBase64</emphasis>();
  public boolean <emphasis role="strong">isPlain</emphasis>();
  public boolean <emphasis role="strong">isProspector</emphasis>();
  public boolean <emphasis role="strong">isStLink</emphasis>();
  public boolean <emphasis role="strong">isUserPreferences</emphasis>();
}
</screen>

   </section>



  </section>
  <section>
<title>Class MetaChart</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>MetaChart</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>MetaChart</secondary>
</indexterm>
   <para>MetaChart-object, contains DB-attributes of the <literal moreinfo="none">meta_chart</literal>-table
   </para>


   <section>
<title>Overview</title>
    
<screen width="80" format="linespecific">public class <emphasis role="strong">MetaChart</emphasis> implements Serializable {
  <emphasis>// Public Constructors</emphasis>
  public <emphasis role="strong">MetaChart</emphasis>(java.lang.String <emphasis>mcId</emphasis>, java.lang.String <emphasis>type</emphasis>, 
                   java.lang.String <emphasis>owner</emphasis>, java.lang.String <emphasis>parent</emphasis>, 

  <emphasis>// Public Methods</emphasis>
  public void <emphasis role="strong">setMcId</emphasis>(java.lang.String <emphasis>mcId</emphasis>);
  public void <emphasis role="strong">setOwner</emphasis>(java.lang.String <emphasis>owner</emphasis>);
  public void <emphasis role="strong">setParent</emphasis>(java.lang.String <emphasis>parent</emphasis>);
  public void <emphasis role="strong">setType</emphasis>(java.lang.String <emphasis>type</emphasis>);
  public String <emphasis role="strong">getId</emphasis>();
  public String <emphasis role="strong">getMcId</emphasis>();
  public String <emphasis role="strong">getOwner</emphasis>();
  public String <emphasis role="strong">getParent</emphasis>();
  public String <emphasis role="strong">getType</emphasis>();
}
</screen>

   </section>


  </section>



  <section>
<title>Class MetaData</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>MetaData</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>MetaData</secondary>
</indexterm>
   <para>MetaData-object, contains DB-attributes of the <literal moreinfo="none">meta_datas</literal>-table
   </para>



   <section>
<title>Overview</title>
    
<screen width="80" format="linespecific">public class <emphasis role="strong">MetaData</emphasis> implements Serializable {
  <emphasis>// Public Constructors</emphasis>
  public <emphasis role="strong">MetaData</emphasis>(java.lang.String <emphasis>Id</emphasis>, java.lang.String <emphasis>type</emphasis>, 
                  java.lang.String <emphasis>value</emphasis>);
  public <emphasis role="strong">MetaData</emphasis>(java.lang.String <emphasis>mcId</emphasis>, java.lang.String <emphasis>attrId</emphasis>, 
                  java.lang.String <emphasis>type</emphasis>, java.lang.String <emphasis>value</emphasis>);
  <emphasis>// Public Methods</emphasis>
  public void <emphasis role="strong">setAttrId</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
  public void <emphasis role="strong">setId</emphasis>(java.lang.String <emphasis>mcId</emphasis>);
  public void <emphasis role="strong">setMcId</emphasis>(java.lang.String <emphasis>mcId</emphasis>);
  public void <emphasis role="strong">setType</emphasis>(java.lang.String <emphasis>type</emphasis>);
  public void <emphasis role="strong">setValue</emphasis>(java.lang.String <emphasis>value</emphasis>);
  public String <emphasis role="strong">getAttrId</emphasis>();
  public String <emphasis role="strong">getId</emphasis>();
  public String <emphasis role="strong">getMcId</emphasis>();
  public String <emphasis role="strong">getType</emphasis>();
  public String <emphasis role="strong">getValue</emphasis>();
}
</screen>

   </section>


  </section>



  <section>
<title>Class View</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>View</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>View</secondary>
</indexterm>
   <para>View-object, contains DB-attributes of the <literal moreinfo="none">views</literal>- or <literal moreinfo="none">attribute_views</literal>
  -tables
   </para>
   <section>
<title>Overview</title>
    
<screen width="80" format="linespecific">public class <emphasis role="strong">View</emphasis> implements Serializable {
  <emphasis>// Public Constructors</emphasis>
  public <emphasis role="strong">View</emphasis>(java.lang.String <emphasis>viewId</emphasis>, java.lang.String <emphasis>mcId</emphasis>, 
              java.lang.String <emphasis>grUsId</emphasis>, java.lang.String <emphasis>type</emphasis>, 
              java.lang.String <emphasis>value</emphasis>);
  <emphasis>// Public Methods</emphasis>
  public void <emphasis role="strong">setGrUsId</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
  public void <emphasis role="strong">setMcId</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
  public void <emphasis role="strong">setType</emphasis>(java.lang.String <emphasis>type</emphasis>);
  public void <emphasis role="strong">setValue</emphasis>(java.lang.String <emphasis>value</emphasis>);
  public void <emphasis role="strong">setViewId</emphasis>(java.lang.String <emphasis>viewId</emphasis>);
  public String <emphasis role="strong">getGrUsId</emphasis>();
  public String <emphasis role="strong">getMcId</emphasis>();
  public String <emphasis role="strong">getType</emphasis>();
  public String <emphasis role="strong">getValue</emphasis>();
  public String <emphasis role="strong">getViewId</emphasis>();
}
</screen>

   </section>



  </section>

 </section>


 <section>
<title>Package de.fhg.iao.metachart.export.tools</title>
  <section>
<title>Class AsciiEncoder</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>AsciiEncoder</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>AsciiEncoder</secondary>
</indexterm>
   <para>Base64-ASCII-Encoder
   </para>



   <section>
<title>Members</title>
    <section>
<title>Constructor AsciiEncoder()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>AsciiEncoder</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>AsciiEncoder</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public <emphasis role="strong">AsciiEncoder</emphasis>();
</screen>

     </blockquote>
     <para>Constructor for the AsciiEncoder object
     </para>

    </section>
    <section>
<title>Method encode2ascii(byte[])</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>encode2ascii</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>encode2ascii</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">encode2ascii</emphasis>(byte[] <emphasis>buffer</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>byte[]</type> <parameter moreinfo="none">buffer</parameter>
</para>
</entry>
<entry>
<para>Byte Array to encode to Base64
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para>Base64-encoded String
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>
     </para>

    </section>

   </section>

  </section>



  <section id="class.service">
<title>Class Service</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>Service</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>Service</secondary>
</indexterm>
   <para>Methods to query the database 
   </para>
   <section>
<title>Overview</title>
    
<screen width="80" format="linespecific">public class <emphasis role="strong">Service</emphasis>  {
  <emphasis>// Protected Fields</emphasis>
  protected Connection <emphasis role="strong">conn</emphasis>;
  <emphasis>// Public Constructors</emphasis>
  public <emphasis role="strong">Service</emphasis>(java.sql.Connection <emphasis>conn</emphasis>);
  <emphasis>// Public Methods</emphasis>
  public Hashtable <emphasis role="strong">getAllAttributes</emphasis>();
  public Hashtable <emphasis role="strong">getAllMetaCharts</emphasis>();
  public Vector <emphasis role="strong">getAttributeIds</emphasis>(java.lang.String <emphasis>mcId</emphasis>);
  public String <emphasis role="strong">getAttributeValue</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
  public Edge <emphasis role="strong">getAttributeValueAsEdge</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
  public Hashtable <emphasis role="strong">getAttributeValueAsHashtable</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
  public Vector <emphasis role="strong">getAttributeValueAsMetaChartLink</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
  public String <emphasis role="strong">getAttributeValueAsPlain</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
  public Vector <emphasis role="strong">getChildren</emphasis>(java.lang.String <emphasis>mcId</emphasis>);
  public String <emphasis role="strong">getCurrentTimestamp</emphasis>();
  public Vector <emphasis role="strong">getMetaData</emphasis>(java.lang.String <emphasis>Id</emphasis>);
  public Vector <emphasis role="strong">getStartingMetaChartIds</emphasis>();

  public Vector <emphasis role="strong">getStartingMetaChartIds</emphasis>(java.lang.String <emphasis>Id</emphasis>);
  public String <emphasis role="strong">getTest</emphasis>();
  public String <emphasis role="strong">getTitle</emphasis>(java.lang.String <emphasis>Id</emphasis>);
  public Vector <emphasis role="strong">getViewIds</emphasis>(java.lang.String <emphasis>Id</emphasis>);
  public Vector <emphasis role="strong">getViews</emphasis>(java.lang.String <emphasis>Id</emphasis>, java.lang.String <emphasis>viewId</emphasis>);
  public Vector <emphasis role="strong">getViewsByAttr</emphasis>(java.lang.String <emphasis>attrId</emphasis>, 
                               java.lang.String <emphasis>viewId</emphasis>);
  public Vector <emphasis role="strong">getViewsByMC</emphasis>(java.lang.String <emphasis>mcId</emphasis>, java.lang.String <emphasis>viewId</emphasis>);
  public String <emphasis role="strong">makeTitle</emphasis>(java.lang.String <emphasis>Id</emphasis>);
  public static void <emphasis role="strong">outln</emphasis>(java.lang.String <emphasis>message</emphasis>);
  public static void <emphasis role="strong">outln</emphasis>(int <emphasis>level</emphasis>, java.lang.String <emphasis>message</emphasis>);
}
</screen>

   </section>
   <section>
<title>Members</title>
    <section>
<title>Constructor Service(Connection)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>Service</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>Service</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public <emphasis role="strong">Service</emphasis>(java.sql.Connection <emphasis>conn</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Constructor for the Service object
     </para>

    </section>
    <section>
<title>Field conn</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>conn</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Fields</primary>
<secondary>conn</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>protected java.sql.Connection <emphasis role="strong">conn</emphasis>
</screen>

     </blockquote>
     <para>JDBC connection handle
     </para>

    </section>
    <section>
<title>Method getAllAttributes()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getAllAttributes</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getAllAttributes</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Hashtable <emphasis role="strong">getAllAttributes</emphasis>();
</screen>

     </blockquote>
     <para>SQL query string: <literal moreinfo="none">SELECT attr_id, mc_id, type, value FROM attributes</literal>
     </para>

    </section>
    <section>
<title>Method getAllMetaCharts()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getAllMetaCharts</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getAllMetaCharts</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Hashtable <emphasis role="strong">getAllMetaCharts</emphasis>();
</screen>

     </blockquote>
     <para>SQL query string: <literal moreinfo="none">SELECT mc_id, type, owner, parent FROM meta_charts</literal>
     </para>

    </section>
    <section>
<title>Method getAttributeIds(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getAttributeIds</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getAttributeIds</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Vector <emphasis role="strong">getAttributeIds</emphasis>(java.lang.String <emphasis>mcId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">mcId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.util.Vector

</type>
</para>
</entry>
<entry>
<para>Vector containing all <literal moreinfo="none">attrIds</literal> referenced by a specific <literal moreinfo="none">mc_Id</literal>
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>SQL query string: <literal moreinfo="none">SELECT attr_id FROM attributes WHERE mc_id = ?</literal>
     </para>

    </section>
    <section>
<title>Method getAttributeValue(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getAttributeValue</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getAttributeValue</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">getAttributeValue</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">attrId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para>Attribute-Value as String, base64-encoded
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>SQL query string: <literal moreinfo="none">SELECT type, value FROM attributes WHERE attr_id = ?</literal>
     </para>

    </section>
    <section>
<title>Method getAttributeValueAsEdge(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getAttributeValueAsEdge</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getAttributeValueAsEdge</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Edge <emphasis role="strong">getAttributeValueAsEdge</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">attrId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>de.fhg.iao.MetaChart.Edge

</type>
</para>
</entry>
<entry>
<para>(MetaChart-)Edge-object, containing source- and destination-IDs
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>SQL query string: <literal moreinfo="none">SELECT type, value FROM attributes WHERE attr_id = ? AND type='assoziation'</literal>
     </para>

    </section>
    <section>
<title>Method getAttributeValueAsHashtable(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getAttributeValueAsHashtable</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getAttributeValueAsHashtable</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Hashtable <emphasis role="strong">getAttributeValueAsHashtable</emphasis>(
                             java.lang.String <emphasis>attrId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">attrId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.util.Hashtable

</type>
</para>
</entry>
<entry>
<para>Hashtable containing Attribute-Value (as ObjectInputStream) by <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>SQL query string: <literal moreinfo="none">SELECT type, value FROM attributes WHERE attr_id = ?</literal>
     </para>

    </section>
    <section>
<title>Method getAttributeValueAsMetaChartLink(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getAttributeValueAsMetaChartLink</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getAttributeValueAsMetaChartLink</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Vector <emphasis role="strong">getAttributeValueAsMetaChartLink</emphasis>(
                          java.lang.String <emphasis>attrId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">attrId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.util.Vector

</type>
</para>
</entry>
<entry>
<para>MetaChartLink-object
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>SQL query string: <literal moreinfo="none">SELECT type, value FROM attributes WHERE attr_id = ? AND type='stLink'
  </literal>
     </para>
     <para/>

    </section>
    <section>
<title>Method getAttributeValueAsPlain(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getAttributeValueAsPlain</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getAttributeValueAsPlain</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">getAttributeValueAsPlain</emphasis>(java.lang.String <emphasis>attrId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">attrId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para>Attribute-Value as String, plain-text
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>SQL query string: <literal moreinfo="none">SELECT type, value FROM attributes WHERE attr_id = ?</literal>
     </para>

    </section>
    <section>
<title>Method getChildren(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getChildren</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getChildren</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Vector <emphasis role="strong">getChildren</emphasis>(java.lang.String <emphasis>mcId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">mcId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.util.Vector

</type>
</para>
</entry>
<entry>
<para>Vector containing all <literal moreinfo="none">mc_id</literal>s, having <literal moreinfo="none">mcId</literal> as parent
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Get all mcIds of all embedded MetaCharts 
     </para>
     <para>SQL query string: <literal moreinfo="none">SELECT mc_id FROM meta_charts WHERE parent = ? </literal>
     </para>

    </section>
    <section>
<title>Method getCurrentTimestamp()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getCurrentTimestamp</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getCurrentTimestamp</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">getCurrentTimestamp</emphasis>();
</screen>

     </blockquote>
     <para>Gets the current timestamp
     </para>

    </section>
    <section>
<title>Method getMetaData(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getMetaData</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getMetaData</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Vector <emphasis role="strong">getMetaData</emphasis>(java.lang.String <emphasis>Id</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.util.Vector

</type>
</para>
</entry>
<entry>
<para>Hashtable containg MetaData-objects by <literal moreinfo="none">attr_id</literal> or <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>SQL query string: <literal moreinfo="none">SELECT attr_id, mc_id, type, value FROM attributes </literal>
     </para>

    </section>
    <section>
<title>Method getStartingMetaChartIds()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getStartingMetaChartIds</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getStartingMetaChartIds</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Vector <emphasis role="strong">getStartingMetaChartIds</emphasis>();
</screen>

     </blockquote>
     <para>SQL query string: <literal moreinfo="none">SELECT mc_id FROM meta_charts [WHERE parent is null]</literal>
     </para>

    </section>

    <section>
<title>Method getStartingMetaChartIds(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getStartingMetaChartIds</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getStartingMetaChartIds</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Vector <emphasis role="strong">getStartingMetaChartIds</emphasis>(java.lang.String <emphasis>Id</emphasis>);
</screen>

     </blockquote>
     <para>Retrieve all dependant Ids.
     </para>

    </section>


    <section>
<title>Method getTest()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getTest</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getTest</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">getTest</emphasis>();
</screen>

     </blockquote>

     <para>Just a test-query
     </para>

    </section>
    <section>
<title>Method getTitle(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getTitle</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getTitle</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">getTitle</emphasis>(java.lang.String <emphasis>Id</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal> or <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para>String
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Get the name of this MetaChart OR Attribute 
     </para>
     <para>SQL query string: <literal moreinfo="none">SELECT value FROM meta_datas WHERE mc_id / attr_id = ? AND type = 'title'</literal>
     </para>
     <para>Distinction of ID done in Java rather than querying for <literal moreinfo="none">(mc_id = ? OR attr_id = ?)</literal> &#8211; would be nicer though.</para>

    </section>
    <section>
<title>Method getViewIds(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getViewIds</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getViewIds</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Vector <emphasis role="strong">getViewIds</emphasis>(java.lang.String <emphasis>Id</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal> or <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.util.Vector

</type>
</para>
</entry>
<entry>
<para>Vector with unique <literal moreinfo="none">view_id</literal>s for either one MetaChart-View or one Attribute-View
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>SQL query string: <literal moreinfo="none">SELECT DISTINCT view_id FROM (attribute)views WHERE attr_id / mc_id = ? </literal>
     </para>

    </section>
    <section>
<title>Method getViews(String, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getViews</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getViews</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Vector <emphasis role="strong">getViews</emphasis>(java.lang.String <emphasis>Id</emphasis>, java.lang.String <emphasis>viewId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal> or <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">viewId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">view_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.util.Vector

</type>
</para>
</entry>
<entry>
<para>Resulting vector of wrapped method
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Gets a Vector of View-objects
     </para>
     <para>Wrapper method for methods <literal moreinfo="none">getViewBy??</literal>, where <literal moreinfo="none">??</literal> is <literal moreinfo="none">MC</literal> or <literal moreinfo="none">Attr</literal>
     </para>

    </section>
    <section>
<title>Method getViewsByAttr(String, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getViewsByAttr</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getViewsByAttr</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Vector <emphasis role="strong">getViewsByAttr</emphasis>(java.lang.String <emphasis>attrId</emphasis>, 
                                       java.lang.String <emphasis>viewId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">attrId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">viewId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">view_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.util.Vector

</type>
</para>
</entry>
<entry>
<para>Vector with View-objects
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>SQL query string: <literal moreinfo="none">SELECT view_id, attr_id, type, value FROM attribute_views WHERE attr_id = ? AND view_id = ?</literal>
     </para>

    </section>
    <section>
<title>Method getViewsByMC(String, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>getViewsByMC</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>getViewsByMC</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Vector <emphasis role="strong">getViewsByMC</emphasis>(java.lang.String <emphasis>mcId</emphasis>, 
                                     java.lang.String <emphasis>viewId</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">mcId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">viewId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">view_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.util.Vector

</type>
</para>
</entry>
<entry>
<para>Vector containing View-objects
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>SQL query string: <literal moreinfo="none">SELECT view_id, mc_id, gr_us_id, type, value FROM views WHERE mc_id = ? AND view_id = ?</literal>
     </para>

    </section>
    <section>
<title>Method makeTitle(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>makeTitle</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>makeTitle</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">makeTitle</emphasis>(java.lang.String <emphasis>Id</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>
<literal moreinfo="none">mc_id</literal> or <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para>Title as String
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

     <para>Add a String as title (XTM only); for making nicer titles, i.e. not just Ids
     </para>

    </section>
    <section>
<title>Method outln(int, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>outln</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>outln</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public static void <emphasis role="strong">outln</emphasis>(int <emphasis>level</emphasis>, java.lang.String <emphasis>message</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>int</type> <parameter moreinfo="none">level</parameter>
</para>
</entry>
<entry>
<para>
<literal moreinfo="none">verboselevel</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">message</parameter>
</para>
</entry>
<entry>
<para>String to output
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>
<literal moreinfo="none">System.out.println</literal> triggered by <literal moreinfo="none">verboselevel</literal>
     </para>

    </section>
    <section>
<title>Method outln(String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>outln</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>outln</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public static void <emphasis role="strong">outln</emphasis>(java.lang.String <emphasis>message</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">message</parameter>
</para>
</entry>
<entry>
<para>String to output
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>
<literal moreinfo="none">System.out.println</literal>
     </para>

    </section>

   </section>

  </section>

 </section>
 <section>
<title>Package de.fhg.iao.metachart.export.xtm</title>
  <section>
<title>Class TMWriter</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>TMWriter</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>TMWriter</secondary>
</indexterm>
   <para>Serialize Topic Map and write to file
   </para>



   <section>
<title>Members</title>
    <section>
<title>Method writeTopicMap(TopicMap)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>writeTopicMap</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>writeTopicMap</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public String <emphasis role="strong">writeTopicMap</emphasis>(org.tm4j.topicmap.TopicMap <emphasis>tm</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMap</type> <parameter moreinfo="none">tm</parameter>
</para>
</entry>
<entry>
<para>TopicMap
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>java.lang.String

</type>
</para>
</entry>
<entry>
<para>String
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section id="class.topichash">
<title>Class TopicHash</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>TopicHash</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>TopicHash</secondary>
</indexterm>
   <para>Hashtable for all generated Topics to access Topic Types and to check for
  dublicate IDs 
   </para>


   <section>
<title>Overview</title>
    
<screen width="80" format="linespecific">public class <emphasis role="strong">TopicHash</emphasis> extends Hashtable  {
  <emphasis>// Public Constructors</emphasis>
  public <emphasis role="strong">TopicHash</emphasis>();
  <emphasis>// Public Methods</emphasis>
  public Association <emphasis role="strong">createAssociation</emphasis>(org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                       java.lang.String <emphasis>Id</emphasis>, 
                                       org.tm4j.topicmap.Topic <emphasis>ass_type</emphasis>, 
                                       org.tm4j.topicmap.Topic <emphasis>topic_one</emphasis>, 
                                       org.tm4j.topicmap.Topic <emphasis>topic_type_one</emphasis>, 
                                       org.tm4j.topicmap.Topic <emphasis>topic_two</emphasis>, 
                                       org.tm4j.topicmap.Topic <emphasis>topic_type_two</emphasis>);
  public Topic <emphasis role="strong">createAssociationTopic</emphasis>(org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                      java.lang.String <emphasis>association_type</emphasis>, 
                                      org.tm4j.topicmap.Topic <emphasis>topic_one</emphasis>, 
                                      java.lang.String <emphasis>at_sentence_one</emphasis>, 
                                      org.tm4j.topicmap.Topic <emphasis>topic_two</emphasis>, 
                                      java.lang.String <emphasis>at_sentence_two</emphasis>);
  public TopicHash <emphasis role="strong">createAssociationTopicWithNewTopics</emphasis>(
                     org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                     de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>, 
                     java.lang.String <emphasis>at_name</emphasis>, 
                     java.lang.String <emphasis>t1</emphasis>, 
                     java.lang.String <emphasis>s1</emphasis>, 
                     java.lang.String <emphasis>t2</emphasis>, 
                     java.lang.String <emphasis>s2</emphasis>);
  public Topic <emphasis role="strong">createNewTopicType</emphasis>(org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                  de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>, 
                                  java.lang.String <emphasis>topic_type</emphasis>);
  public Topic <emphasis role="strong">createNewTopicType</emphasis>(org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                  de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>, 
                                  java.lang.String <emphasis>topic_type</emphasis>, 
                                  java.lang.String <emphasis>name</emphasis>);
  public Topic <emphasis role="strong">createTopic</emphasis>(org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                           de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>, 
                           java.lang.String <emphasis>Id</emphasis>, 
                           java.lang.String <emphasis>topic_type</emphasis>);
  public Topic <emphasis role="strong">createTopic</emphasis>(org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                           de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>, 
                           java.lang.String <emphasis>Id</emphasis>, 
                           java.lang.String <emphasis>topic_type</emphasis>, 
                           java.lang.String <emphasis>title</emphasis>);
  public void <emphasis role="strong">xtmSecondBasename</emphasis>(org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                java.util.Hashtable <emphasis>topix</emphasis>, 
                                java.lang.String <emphasis>topicname</emphasis>, 
                                java.lang.String <emphasis>basename</emphasis>);
}
</screen>

   </section>
   <section>
<title>Members</title>
    <section>
<title>Constructor TopicHash()</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>TopicHash</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>TopicHash</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public <emphasis role="strong">TopicHash</emphasis>();
</screen>

     </blockquote>
     <para>Constructor for the TopicHash object
     </para>

    </section>
    <section>
<title>Method createAssociation(TopicMapFactory, String, Topic, Topic, Topic, Topic, Topic)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>createAssociation</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>createAssociation</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Association <emphasis role="strong">createAssociation</emphasis>(
                               org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                               java.lang.String <emphasis>Id</emphasis>, 
                               org.tm4j.topicmap.Topic <emphasis>ass_type</emphasis>, 
                               org.tm4j.topicmap.Topic <emphasis>topic_one</emphasis>, 
                               org.tm4j.topicmap.Topic <emphasis>topic_type_one</emphasis>, 
                               org.tm4j.topicmap.Topic <emphasis>topic_two</emphasis>, 
                               org.tm4j.topicmap.Topic <emphasis>topic_type_two</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Association ID
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.Topic</type> <parameter moreinfo="none">ass_type</parameter>
</para>
</entry>
<entry>
<para>Association Type
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.Topic</type> <parameter moreinfo="none">topic_one</parameter>
</para>
</entry>
<entry>
<para>Topic
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.Topic</type> <parameter moreinfo="none">topic_type_one</parameter>
</para>
</entry>
<entry>
<para>Topic Type
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.Topic</type> <parameter moreinfo="none">topic_two</parameter>
</para>
</entry>
<entry>
<para>Topic
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.Topic</type> <parameter moreinfo="none">topic_type_two</parameter>
</para>
</entry>
<entry>
<para>Topic Type
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>org.tm4j.topicmap.Association

</type>
</para>
</entry>
<entry>
<para>Generated Association
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Create an Association with <literal moreinfo="none">Id</literal>, as Association Type <literal moreinfo="none">ass_type</literal>
  between <literal moreinfo="none">topic_one</literal> (as Topic Type <literal moreinfo="none">topic_type_one</literal>)
  and <literal moreinfo="none">topic_two</literal> (as Topic Type <literal moreinfo="none">topic_type_two</literal>)
     </para>

    </section>
    <section>
<title>Method createAssociationTopic(TopicMapFactory, String, Topic, String, Topic, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>createAssociationTopic</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>createAssociationTopic</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Topic <emphasis role="strong">createAssociationTopic</emphasis>(
                         org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                         java.lang.String <emphasis>association_type</emphasis>, 
                         org.tm4j.topicmap.Topic <emphasis>topic_one</emphasis>, 
                         java.lang.String <emphasis>at_sentence_one</emphasis>, 
                         org.tm4j.topicmap.Topic <emphasis>topic_two</emphasis>, 
                         java.lang.String <emphasis>at_sentence_two</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">association_type</parameter>
</para>
</entry>
<entry>
<para>Association Type
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.Topic</type> <parameter moreinfo="none">topic_one</parameter>
</para>
</entry>
<entry>
<para>Topic
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">at_sentence_one</parameter>
</para>
</entry>
<entry>
<para>BaseName
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.Topic</type> <parameter moreinfo="none">topic_two</parameter>
</para>
</entry>
<entry>
<para>Topic
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">at_sentence_two</parameter>
</para>
</entry>
<entry>
<para>BaseName
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>org.tm4j.topicmap.Topic

</type>
</para>
</entry>
<entry>
<para>Association Type Topic
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Generate an Association Topic Type between Topic Type <literal moreinfo="none">topic_one</literal>
  and Topic Type <literal moreinfo="none">topic_two</literal> with BaseNames <literal moreinfo="none">at_sentence_one</literal>
  and <literal moreinfo="none">at_sentence_two</literal> respectively.</para>
     <para>This topic then is referenced by applicable associations.</para>

    </section>
    <section>
<title>Method createAssociationTopicWithNewTopics(TopicMapFactory, TopicHash, String, String, String, String, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>createAssociationTopicWithNewTopics</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>createAssociationTopicWithNewTopics</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public TopicHash <emphasis role="strong">createAssociationTopicWithNewTopics</emphasis>(
                             org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                             de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>, 
                             java.lang.String <emphasis>at_name</emphasis>, 
                             java.lang.String <emphasis>t1</emphasis>, 
                             java.lang.String <emphasis>s1</emphasis>, 
                             java.lang.String <emphasis>t2</emphasis>, 
                             java.lang.String <emphasis>s2</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.xtm.TopicHash</type> <parameter moreinfo="none">topix</parameter>
</para>
</entry>
<entry>
<para>Hashtable containing Topic Types and generated Topics
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">at_name</parameter>
</para>
</entry>
<entry>
<para>Association Type Name to put as key in Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">t1</parameter>
</para>
</entry>
<entry>
<para>Topic Type
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">s1</parameter>
</para>
</entry>
<entry>
<para>BaseName
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">t2</parameter>
</para>
</entry>
<entry>
<para>Topic Type
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">s2</parameter>
</para>
</entry>
<entry>
<para>BaseName
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>de.fhg.iao.metachart.export.xtm.TopicHash

</type>
</para>
</entry>
<entry>
<para>Hashtable with added Association Type Topic
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Generate Association Type Topic. Generate associated Topic Types if not in
  Hashtable <literal moreinfo="none">topix</literal>.</para>
  <para>Checks if there are already topics of that type in <literal moreinfo="none">topix</literal>, if not generates them (<literal moreinfo="none">createNewTopicType</literal>) and puts them into <literal moreinfo="none">topix</literal>. Then starts <literal moreinfo="none">createAssociationTopic</literal>.</para>

    </section>
    <section>
<title>Method createNewTopicType(TopicMapFactory, TopicHash, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>createNewTopicType</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>createNewTopicType</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Topic <emphasis role="strong">createNewTopicType</emphasis>(
                         org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                         de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>, 
                         java.lang.String <emphasis>topic_type</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.xtm.TopicHash</type> <parameter moreinfo="none">topix</parameter>
</para>
</entry>
<entry>
<para>Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">topic_type</parameter>
</para>
</entry>
<entry>
<para>Topic Type
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>org.tm4j.topicmap.Topic

</type>
</para>
</entry>
<entry>
<para>Topic Type Topic
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Generate Topic Type Topic with BaseName <literal moreinfo="none">topic_type</literal>. Thus having not a <emphasis>nice</emphasis> BaseName.
     </para>

    </section>
    <section>
<title>Method createNewTopicType(TopicMapFactory, TopicHash, String, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>createNewTopicType</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>createNewTopicType</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Topic <emphasis role="strong">createNewTopicType</emphasis>(
                         org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                         de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>, 
                         java.lang.String <emphasis>topic_type</emphasis>, 
                         java.lang.String <emphasis>name</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.xtm.TopicHash</type> <parameter moreinfo="none">topix</parameter>
</para>
</entry>
<entry>
<para>Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">topic_type</parameter>
</para>
</entry>
<entry>
<para>Topic Type
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">name</parameter>
</para>
</entry>
<entry>
<para>String for BaseName
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>org.tm4j.topicmap.Topic

</type>
</para>
</entry>
<entry>
<para>Topic Type Topic
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Generate Topic Type Topic with BaseName <literal moreinfo="none">name</literal>. Thus having a <emphasis>nicer</emphasis>, specific BaseName.
     </para>

    </section>
    <section>
<title>Method createTopic(TopicMapFactory, TopicHash, String, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>createTopic</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>createTopic</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Topic <emphasis role="strong">createTopic</emphasis>(org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                   de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>, 
                                   java.lang.String <emphasis>Id</emphasis>, 
                                   java.lang.String <emphasis>topic_type</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.xtm.TopicHash</type> <parameter moreinfo="none">topix</parameter>
</para>
</entry>
<entry>
<para>Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Id
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">topic_type</parameter>
</para>
</entry>
<entry>
<para>Topic Type
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>org.tm4j.topicmap.Topic

</type>
</para>
</entry>
<entry>
<para>Topic
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Generate Topic if not in Hashtable <literal moreinfo="none">topix</literal> and put generated
  Topic in <literal moreinfo="none">topix</literal> under key <literal moreinfo="none">Id</literal>.
  
     </para>

    </section>
    <section>
<title>Method createTopic(TopicMapFactory, TopicHash, String, String, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>createTopic</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>createTopic</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public Topic <emphasis role="strong">createTopic</emphasis>(org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                   de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>, 
                                   java.lang.String <emphasis>Id</emphasis>, 
                                   java.lang.String <emphasis>topic_type</emphasis>, 
                                   java.lang.String <emphasis>title</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.xtm.TopicHash</type> <parameter moreinfo="none">topix</parameter>
</para>
</entry>
<entry>
<para>Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Id
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">topic_type</parameter>
</para>
</entry>
<entry>
<para>Topic Type
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">title</parameter>
</para>
</entry>
<entry>
<para>BaseName
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>org.tm4j.topicmap.Topic

</type>
</para>
</entry>
<entry>
<para>Topic
</para>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>
     <para>Generate Topic with Basename <literal moreinfo="none">title</literal> if not in Hashtable <literal moreinfo="none">topix</literal>
  and put generated Topic in <literal moreinfo="none">topix</literal> under key <literal moreinfo="none">Id</literal>.
  
     </para>

    </section>
    <section>
<title>Method xtmSecondBasename(TopicMapFactory, Hashtable, String, String)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>xtmSecondBasename</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>xtmSecondBasename</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">xtmSecondBasename</emphasis>(org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                        java.util.Hashtable <emphasis>topix</emphasis>, 
                                        java.lang.String <emphasis>topicname</emphasis>, 
                                        java.lang.String <emphasis>basename</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.util.Hashtable</type> <parameter moreinfo="none">topix</parameter>
</para>
</entry>
<entry>
<para>Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">topicname</parameter>
</para>
</entry>
<entry>
<para>Key in Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">basename</parameter>
</para>
</entry>
<entry>
<para>BaseName
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

     <para>Add a second Basename
     </para>

    </section>

   </section>

  </section>
  <section>
<title>Class XTMAttributes</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>XTMAttributes</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>XTMAttributes</secondary>
</indexterm>
   <para>Generate Attribute Topics and Occurrences for Attribute-Values
   </para>



   <section>
<title>Members</title>
    <section>
<title>Method processAttributes(Connection, String, TopicMapFactory, TopicMap, Topic, TopicHash)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processAttributes</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processAttributes</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processAttributes</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                        java.lang.String <emphasis>mcid</emphasis>, 
                                        org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                        org.tm4j.topicmap.TopicMap <emphasis>tm</emphasis>, 
                                        org.tm4j.topicmap.Topic <emphasis>topic</emphasis>, 
                                        de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">mcid</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMap</type> <parameter moreinfo="none">tm</parameter>
</para>
</entry>
<entry>
<para>Topic Map
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.Topic</type> <parameter moreinfo="none">topic</parameter>
</para>
</entry>
<entry>
<para>Current Topic
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.xtm.TopicHash</type> <parameter moreinfo="none">topix</parameter>
</para>
</entry>
<entry>
<para>Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class XTMChildren</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>XTMChildren</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>XTMChildren</secondary>
</indexterm>
   <para>Generate child MetaChart Topics and create Associations to parent MetaCharts
   </para>



   <section>
<title>Members</title>
    <section>
<title>Method processChildren(Connection, String, TopicMapFactory, TopicMap, Topic, TopicHash)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processChildren</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processChildren</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processChildren</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                      java.lang.String <emphasis>mcId</emphasis>, 
                                      org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                      org.tm4j.topicmap.TopicMap <emphasis>tm</emphasis>, 
                                      org.tm4j.topicmap.Topic <emphasis>topic</emphasis>, 
                                      de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC Connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">mcId</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMap</type> <parameter moreinfo="none">tm</parameter>
</para>
</entry>
<entry>
<para>Topic Map
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.Topic</type> <parameter moreinfo="none">topic</parameter>
</para>
</entry>
<entry>
<para>Current MetaChart-Topic
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.xtm.TopicHash</type> <parameter moreinfo="none">topix</parameter>
</para>
</entry>
<entry>
<para>Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class XTMMetaChart</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>XTMMetaChart</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>XTMMetaChart</secondary>
</indexterm>
   <para>Generate MetaChart Topics. Call methodes to process MetaDatas, Views and Children. 
   </para>



   <section>
<title>Members</title>
    <section>
<title>Method processMetaChart(Connection, String, TopicMapFactory, TopicMap, TopicHash)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processMetaChart</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processMetaChart</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processMetaChart</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                       java.lang.String <emphasis>mcid</emphasis>, 
                                       org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                       org.tm4j.topicmap.TopicMap <emphasis>tm</emphasis>, 
                                       de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">mcid</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMap</type> <parameter moreinfo="none">tm</parameter>
</para>
</entry>
<entry>
<para>Topic Map
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.xtm.TopicHash</type> <parameter moreinfo="none">topix</parameter>
</para>
</entry>
<entry>
<para>Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>
  <section>
<title>Class XTMMetaDatas</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>XTMMetaDatas</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Classes</primary>
<secondary>XTMMetaDatas</secondary>
</indexterm>
   <para>Generate MetaDatas for MetaChart or Attributes, depending on <literal moreinfo="none">Id</literal>
  . 
   </para>



   <section>
<title>Members</title>
    <section>
<title>Method processMetaData(Connection, String, TopicMapFactory, TopicMap, Topic, TopicHash)</title>
<indexterm significance="preferred">
<primary>Java Reference</primary>
<secondary>processMetaData</secondary>
</indexterm>
<indexterm significance="preferred">
<primary>Methods</primary>
<secondary>processMetaData</secondary>
</indexterm>
     <blockquote>
<screen width="80" format="linespecific">
<emphasis>Synopsis: </emphasis>public void <emphasis role="strong">processMetaData</emphasis>(java.sql.Connection <emphasis>conn</emphasis>, 
                                      java.lang.String <emphasis>Id</emphasis>, 
                                      org.tm4j.topicmap.TopicMapFactory <emphasis>tmf</emphasis>, 
                                      org.tm4j.topicmap.TopicMap <emphasis>tm</emphasis>, 
                                      org.tm4j.topicmap.Topic <emphasis>topic</emphasis>, 
                                      de.fhg.iao.metachart.export.xtm.TopicHash <emphasis>topix</emphasis>);
</screen>

     </blockquote>
     <tip>
<informaltable frame="none">
      <tgroup cols="2">
<colspec colname="param" colwidth="1.0*"/>
<colspec colname="param" colwidth="1*"/>
       <thead>
<colspec colname="param" colwidth="*"/>
        <row>
<entry>
<para>Parameters</para>
</entry>

        </row>

       </thead>
       <tbody>
        <row>
<entry>
<para>
<type>java.sql.Connection</type> <parameter moreinfo="none">conn</parameter>
</para>
</entry>
<entry>
<para>JDBC connection handle
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>java.lang.String</type> <parameter moreinfo="none">Id</parameter>
</para>
</entry>
<entry>
<para>Current <literal moreinfo="none">mc_id</literal> or <literal moreinfo="none">attr_id</literal>
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMapFactory</type> <parameter moreinfo="none">tmf</parameter>
</para>
</entry>
<entry>
<para>TopicMapFactory
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.TopicMap</type> <parameter moreinfo="none">tm</parameter>
</para>
</entry>
<entry>
<para>Topic Map
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>org.tm4j.topicmap.Topic</type> <parameter moreinfo="none">topic</parameter>
</para>
</entry>
<entry>
<para>Current MetaChart or Attribute Topic
</para>
</entry>

        </row>
        <row>
<entry>
<para>
<type>de.fhg.iao.metachart.export.xtm.TopicHash</type> <parameter moreinfo="none">topix</parameter>
</para>
</entry>
<entry>
<para>Hashtable
</para>
</entry>

        </row>
        <row>
<entry>
<para>return <type>void

</type>
</para>
</entry>
<entry>
<para/>
</entry>

        </row>

       </tbody>

      </tgroup>

     </informaltable>
</tip>

    </section>

   </section>

  </section>

 </section>


</appendix>






  

<glossary id="glossary.acronyms">
<title>Verzeichnis verwendeter Akronyme</title>










<glossentry>
<glossterm>
<acronym>ASCII</acronym>
</glossterm>  <glossdef>
<para>American Standard Code for Information Interchange</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>CGI</acronym>
</glossterm>    <glossdef>
<para>Common Gateway Interface</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>CSS</acronym>
</glossterm>    <glossdef>
<para>Cascading Style Sheets</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>DAML</acronym>
</glossterm>   <glossdef>
<para>Darpa Agent Markup Language</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>DOM</acronym>
</glossterm>    <glossdef>
<para>Document Object Model</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>DSSSL</acronym>
</glossterm>  <glossdef>
<para>Document Style Semantics and Specification Language</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>DTD</acronym>
</glossterm>    <glossdef>
<para>Document Type Definition</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>EJB</acronym>
</glossterm>    <glossdef>
<para>Enterprise Java Beans</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>ERD</acronym>
</glossterm>    <glossdef>
<para>Entity Relationship Diagram</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>ERM</acronym>
</glossterm>    <glossdef>
<para>Entity Relationship Model</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>FK</acronym>
</glossterm>     <glossdef>
<para>Foreign Key</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>FO</acronym>
</glossterm>     <glossdef>
<para>Formatting Objects</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>HTML</acronym>
</glossterm>   <glossdef>
<para>HyperText Markup Language</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>HyTM</acronym>
</glossterm>   <glossdef>
<para>Hypermedia/Time-based Structuring Language</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>ISO</acronym>
</glossterm>    <glossdef>
<para>International Organization for Standardization</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>JDBC</acronym>
</glossterm>   <glossdef>
<para>Java Database Connectivity</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>KI</acronym>
</glossterm>     <glossdef>
<para>Künstliche Intelligenz</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>LTM</acronym>
</glossterm>    <glossdef>
<para>Linear Topic Map Notation</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>MIME</acronym>
</glossterm>   <glossdef>
<para>Multipurpose Internet Mail Extension</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>OIL</acronym>
</glossterm>    <glossdef>
<para>Ontology Inference Layer</para>
</glossdef>
</glossentry>

<glossentry>
<glossterm>
<acronym>PDF</acronym>
</glossterm>    <glossdef>
<para>Portable Document Format</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>Perl</acronym>
</glossterm>   <glossdef>
<para>Practical Extraction and Report Language</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>PK</acronym>
</glossterm>     <glossdef>
<para>Primary Key</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>PSI</acronym>
</glossterm>    <glossdef>
<para>Public Subject Indicator</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>RDF</acronym>
</glossterm>    <glossdef>
<para>Resource Description Framework</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>RTF</acronym>
</glossterm>    <glossdef>
<para>Rich Text Format</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>SGML</acronym>
</glossterm>   <glossdef>
<para>Standard Generalized Markup Language</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>SQL</acronym>
</glossterm>    <glossdef>
<para>Structured Query Language</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>SVG</acronym>
</glossterm>    <glossdef>
<para>Scaleable Vector Graphics</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>URI</acronym>
</glossterm>    <glossdef>
<para>Uniform Resource Indicator</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>URL</acronym>
</glossterm>    <glossdef>
<para>Uniform Resource Locator</para>
</glossdef>
</glossentry>

<glossentry>
<glossterm>
<acronym>W3C</acronym>
</glossterm>    <glossdef>
<para>World Wide Web Consortium</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>WWW</acronym>
</glossterm>    <glossdef>
<para>World Wide Web</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>XHTML</acronym>
</glossterm>  <glossdef>
<para>Extensible HTML</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>XML</acronym>
</glossterm>    <glossdef>
<para>Extensible Markup Language</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>XML</acronym>
</glossterm>    <glossdef>
<para>Extensible Markup Language</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>XSD</acronym>
</glossterm>    <glossdef>
<para>XML Schema Document</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>XSL</acronym>
</glossterm>    <glossdef>
<para>Extensible Stylesheet Language</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>
<acronym>XTM</acronym>
</glossterm>    <glossdef>
<para>XML Topic Maps</para>
</glossdef>
</glossentry>










</glossary>






 
  


<bibliography>










<biblioentry>
  <abbrev>Adler01</abbrev>
  <biblioset>
    <author>
<othername>Sharon Adler <emphasis>et al</emphasis>
</othername>
</author>
    <title>Extensible Stylesheet Language (XSL) Version 1.0</title>
    <publisher>
      <publishername>W3C Recommendation</publishername>
    </publisher>
    <pubdate>Oktober 2001</pubdate>
    <pagenums>
<ulink url="http://www.w3.org/TR/xsl"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>






<biblioentry>
  <abbrev>Ahmed02</abbrev>
  <biblioset>
    <author>
<othername>Kal Ahmed</othername>
</author>
    <title>The TM4J Project</title>
    <pubdate>2002</pubdate>
    <pagenums>
<ulink url="http://www.tm4j.org"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Berners98</abbrev>
  <biblioset>
    <author>
<othername>Tim Berners-Lee</othername>
</author>
    <title>Interpretation and Semantics on the Semantic Web</title>
    <pagenums>
<ulink url="http://www.w3.org/DesignIssues/Interpretation.html"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Berners01</abbrev>
  <biblioset>
    <author>
<othername>Tim Berners-Lee, James Hendler, Ora Lassila</othername>
</author>
    <title>Semantic Web</title>
      <pagenums>
<ulink url="http://www.w3.org/2001/sw"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Berners01a</abbrev>
  <biblioset>
    <author>
<othername>Tim Berners-Lee, James Hendler, Ora Lassila</othername>
</author>
    <title>The Semantic Web</title>
    <subtitle>A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities</subtitle>
    <publisher>
      <publishername>Scientific American</publishername>
    </publisher>
    <pubdate>Mai 2001</pubdate>
    <pagenums>
<ulink url="http://www.sciam.com/2001/0501issue/0501berners-lee.html"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>BernersQA</abbrev>
  <biblioset>
    <author>
<othername>Tim Berners-Lee</othername>
</author>
    <title>Press FAQ</title>
    <pagenums>
<ulink url="http://www.w3.org/People/Berners-Lee/FAQ.html"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Biron01</abbrev>
  <biblioset>
    <author>
<othername>Biron, Paul V. / Malhorta, Ashok</othername>
</author>
    <title>XML Schema Part 2</title>
    <subtitle>Datatypes</subtitle>
    <publisher>
      <publishername>W3C Recommendation</publishername>
    </publisher>
    <pubdate>Mai 2001</pubdate>
    <pagenums>
<ulink url="http://www.w3.org/TR/xmlschema-2"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Bos98</abbrev>
  <biblioset>
    <author>
<othername>Bert Bos</othername>
</author>
    <author>
<othername>Håkon Wium Lie</othername>
</author>
    <author>
<othername>Chris Lilley</othername>
</author>
    <author>
<othername>Ian Jacobs</othername>
</author>
    <title>Cascading Style Sheets, level 2 CSS2 Specification</title>
    <publisher>
      <publishername>W3C Recommendation</publishername>
    </publisher>
    <pubdate>Mai 1998</pubdate>
    <pagenums>
<ulink url="http://www.w3.org/TR/REC-CSS2"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Bray99</abbrev>
  <biblioset>
    <author>
<surname>Bray</surname>
<firstname>Tim</firstname>
</author>
    <author>
<othername>Dave Hollander</othername>
</author>
    <author>
<othername>Andrew Layman</othername>
</author>
    <title>Namespaces in XML</title>
    <publisher>
      <publishername>W3C Recommendation</publishername>
    </publisher>
    <pubdate>Januar 1999</pubdate>
    <pagenums>
<ulink url="http://www.w3.org/TR/REC-xml-names"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Bray00</abbrev>
  <biblioset>
    <author>
<surname>Bray</surname>
<firstname>Tim</firstname>
</author>
    <author>
<othername>Jean Paoli</othername>
</author>
    <author>
<othername>C. M. Sperberg-McQueen</othername>
</author>
    <author>
<othername>Eve Maler</othername>
</author>
    <title>Extensible Markup Language (XML) 1.0</title>
    <subtitle>(Second Edition)</subtitle>
    <publisher>
      <publishername>W3C Recommendation</publishername>
    </publisher>
    <pubdate>Oktober 2000</pubdate>
    <pagenums>
<ulink url="http://www.w3.org/TR/REC-xml"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Brickley00</abbrev>
  <biblioset>
    <author>
<surname>Brickley</surname>
<firstname>Dan</firstname>
</author>
    <author>
<surname>Guha</surname>
<firstname>R. V.</firstname>
</author>
    <title>Resource Description Framework (RDF)</title>
    <subtitle>Schema Specification 1.0</subtitle>
    <publisher>
      <publishername>W3C Candiate Recommendation</publishername>
    </publisher>
    <pubdate>März 2000</pubdate>
    <pagenums>
<ulink url="http://www.w3.org/TR/rdf-schema"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Brockhaus01</abbrev>
  <biblioset>
    <title>Der Brockhaus</title>
    <subtitle>multimedial 2002</subtitle>
    <publisher>
      <publishername>Bibliographisches Institut F. A. Brockhaus AG</publishername>
    </publisher>
    <pubdate>2001</pubdate>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Champin01</abbrev>
  <author>
<othername>Pierre-Antoine Champin</othername>
</author>
  <biblioset>
    <title>RDF Tutorial</title>
    <pubdate>2001</pubdate>
    <pagenums>
<ulink url="http://www710.univ-lyon1.fr/~champin/rdf-tutorial/rdf-tutorial.html"/>
</pagenums>
    <pagenums>
<ulink url="http://www710.univ-lyon1.fr/~champin/rdf-tutorial/rdf-tutorial.pdf"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Cover98</abbrev>
  <author>
<othername>Robin Cover</othername>
</author>
  <biblioset>
    <title>XML and Semantic Transparency</title>
    <publisher>
<publishername>The XML Cover Pages</publishername>
</publisher>
    <pubdate>1998</pubdate>
    <pagenums>
<ulink url="http://www.oasis-open.org/cover/xmlAndSemantics.html"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Cover02</abbrev>
  <author>
<othername>Robin Cover</othername>
</author>
  <biblioset>
    <title>SGML/XML: Using Elements and Attributes</title>
    <publisher>
<publishername>The XML Cover Pages</publishername>
</publisher>
    <pubdate>2002</pubdate>
    <pagenums>
<ulink url="http://xml.coverpages.org/elementsAndAttrs.html"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Dalheimer98</abbrev>
  <biblioset>
    <author>
<othername>Matthias Kalle Dalheimer</othername>
</author>
    <title>LATEX - kurz &amp; gut</title>
    <publisher>
      <publishername>O&#8217;Reilly-Verlag</publishername>
      <address format="linespecific">
<city>Köln</city>
</address>
    </publisher>
    <pubdate>1998</pubdate>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Decker02</abbrev>
  <author>
<othername>Stefan Decker, Michael Sintek</othername>
</author>
  <biblioset>
    <title>The FRODO Project Homepage</title>
    <subtitle>TRIPLE Homepage</subtitle>
    <publisher>
<publishername>The Semantic Web Foundation for Open Source Software (SFO)</publishername>
</publisher>
    <pubdate>2002</pubdate>
    <pagenums>
<ulink url="http://www.dfki.uni-kl.de/frodo/triple"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>DeckerSW</abbrev>
  <biblioset>
    <author>
<othername>Stefan Decker, Michael Sintek</othername>
</author>
    <title>The Semantic Web Community Portal</title>


      <pagenums>
<ulink url="http://www.semanticweb.org/knowmarkup.html"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Diestel00</abbrev>
  <biblioset>
    <author>
<surname>Diestel</surname>
<firstname>Reinhard</firstname>
</author>
    <title>Graphentheorie</title>
    <publisher>
      <publishername>Springer-Verlag</publishername>
      <address format="linespecific">
<city>Heidelberg</city>
</address>
    </publisher>
    <pubdate>2000</pubdate>
    <isbn>ISBN 3-540-67656-2</isbn>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Eckstein99</abbrev>
  <biblioset>
    <author>
<othername>Robert Eckstein</othername>
</author>
    <title>XML Pocket Reference</title>
    <publisher>
      <publishername>O&#8217;Reilly-Verlag</publishername>
      <address format="linespecific">
<city>Sebastopol, CA</city>
</address>
    </publisher>
    <pubdate>1998</pubdate>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Fallside01</abbrev>
  <biblioset>
    <author>
<othername>David C. Fallside et al</othername>
</author>
    <title>XML Schema</title>
    <publisher>
      <publishername>W3C Recommendation</publishername>
    </publisher>
    <pubdate>Mai 2001</pubdate>
    <pagenums>
<ulink url="http://www.w3.org/TR/xmlschema-0"/>, letzter Zugriff 03.03.2002</pagenums>

  </biblioset>
</biblioentry>





<biblioentry>
  <abbrev>Fensel00</abbrev>
  <biblioset>
    <author>
<othername>Dieter Andreas Fensel <emphasis>et al</emphasis>
</othername>
</author>
    <title>The Ontology Inference Layer OIL</title>
    <publisher>
      <publishername>Vrije Universiteit Amsterdam</publishername>
    </publisher>
    <pubdate>2000</pubdate>
    <pagenums>
<ulink url="http://www.cs.vu.nl/~ontoknow/oil/TR"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Fensel00a</abbrev>
  <biblioset>
    <author>
<othername>Dieter Andreas Fensel</othername>
</author>
    <title>Relating Ontology Languages and Web Standards</title>
    <publisher>
      <publishername>Vrije Universiteit Amsterdam</publishername>
    </publisher>
    <pubdate>2000</pubdate>
    <pagenums>
<ulink url="http://www.cs.vu.nl/~dieter/ftp/paper/mod2000.pdf"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Fensel01</abbrev>
  <biblioset>
    <author>
<othername>Dieter Andreas Fensel</othername>
</author>
    <title>Ontologies: Silver Bullet for Knowledge Management and Electronic Commerce</title>
    <publisher>
      <publishername>Vrije Universiteit Amsterdam</publishername>
    </publisher>
    <pubdate>2001</pubdate>
    <pagenums>
<ulink url="http://www.cs.vu.nl/~dieter/ftp/paper/silverbullet.pdf"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Fensel01a</abbrev>
  <biblioset>
    <author>
<othername>Dieter Andreas Fensel</othername>
</author>
    <title>The Semantic Web and its Languages</title>
    <publisher>
      <publishername>Vrije Universiteit Amsterdam</publishername>
    </publisher>
    <pubdate>2001</pubdate>
    <pagenums>
<ulink url="http://www.cs.vu.nl/~dieter/ftp/paper/TheSemanticWebanditsLanguages.pdf"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Gaschke02</abbrev>
  <biblioset>
    <author>
<surname>Gaschke</surname>
<firstname>Susanne</firstname>
</author>
    <title>Tatort Schule</title>
    <subtitle>Trotz Pisa-Schock: Die Politiker dösen in der letzten Bank</subtitle>
    <publisher>
      <publishername>Die Zeit</publishername>
      <address format="linespecific">
<city>Hamburg</city>
</address>
    </publisher>
    <pubdate>Ausgabe 10/2002, S. 1</pubdate>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Gruber93</abbrev>
  <biblioset>
    <author>
<surname>Gruber</surname>
<firstname>Tom R.</firstname>
</author>
    <title>A translation approach to portable ontologies</title>
    <publisher>
      <publishername>Academic Press</publishername>
      <address format="linespecific">
<city>June</city>
</address>
    </publisher>
    <pubdate>1993</pubdate>
    <pagenums>
<ulink url="ftp://ftp.ksl.stanford.edu/pub/KSL_Reports/KSL-92-71.ps"/>
</pagenums>
  </biblioset>


</biblioentry>


<biblioentry>
  <abbrev>Harold99</abbrev>
  <biblioset>
    <author>
<othername>Elliote Rusty Harold</othername>
</author>
    <title>XML Bible</title>
    <publisher>
      <publishername>IDG Books Worldwide</publishername>
      <address format="linespecific">
<city>Foster City</city>
</address>
    </publisher>
    <pubdate>1999</pubdate>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>ISO13250</abbrev>
  <biblioset>
    <author>
<othername>O. A.</othername>
</author>
    <title>ISO/IEC 13250 Topic Maps</title>
    <publisher>
<publishername>Joint Technical Committee 1 JTC1, Information Technology, Subcommittee SC34</publishername>
</publisher>
    <pubdate>1999</pubdate>
    <pagenums>
<ulink url="http://www.y12.doe.gov/sgml/sc34/document/0129.pdf"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Johnson00</abbrev>
  <biblioset>
    <author>
<othername>Don H. Johnson</othername>
</author>
    <title>Basics of Information Processing</title>
    <publisher>
      <publishername>Rice University</publishername>
      <address format="linespecific">
<city>Houston</city>
</address>
    </publisher>
    <pubdate>2000</pubdate>
    <pagenums>
<ulink url="http://www-ece.rice.edu/~dhj/basics.pdf"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
</biblioentry>





<biblioentry>
  <abbrev>Klemm02</abbrev>
  <biblioset>
    <author>
<surname>Lessmöllmann</surname>
<firstname>Annette</firstname>
</author>
    <title>Information</title>
    <subtitle>Horizont der Erkenntnis</subtitle>
    <publisher>
      <publishername>Die Zeit</publishername>
      <address format="linespecific">
<city>Hamburg</city>
</address>
    </publisher>
    <pubdate>Ausgabe 02/2002, S. 33</pubdate>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Korbmann01</abbrev>
  <biblioset>
    <author>
<surname>Korbmann</surname>
<firstname>Rainer</firstname>
</author>
    <title>Die Macht des Wissens</title>
    <publisher>
      <publishername>natur media gmbh</publishername>
      <address format="linespecific">
<city>München</city>
</address>
    </publisher>
    <productname class="trade">natur &amp; kosmos</productname>
    <pubdate>Ausgabe 10/2001</pubdate>
    <issn>ISSN 0723-5038</issn>
    <pagenums>S. 56-58</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Krüger00</abbrev>
  <biblioset>
    <author>
<surname>Krüger</surname>
<firstname>Guido</firstname>
</author>
    <title>Go To Java 2</title>
    <subtitle>Handbuch der Java-Programmierung</subtitle>
    <publisher>
      <publishername>Addison-Wesley</publishername>

    </publisher>
    <pubdate>2000</pubdate>

  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Kunzmann99</abbrev>
  <biblioset>
    <author>
<surname>Kunzmann</surname>
<firstname>Peter</firstname>
</author>
    <author>
<surname>Burkard</surname>
<firstname>Franz-Peter</firstname>
</author>
    <author>
<surname>Wiedmann</surname>
<firstname>Franz</firstname>
</author>
    <author>
<surname>Weiß</surname>
<firstname>Axel</firstname>
</author>
    <title>dtv-Atlas Philosophie</title>
    <publisher>
      <publishername>Deutscher Taschenbuch Verlag</publishername>
      <address format="linespecific">
<city>München</city>
</address>
    </publisher>
    <pubdate>1999<superscript>8</superscript>
</pubdate>
    <isbn>ISBN 3-423-03229-4</isbn>
    <pagenums>S. 13</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Lassila99</abbrev>
  <biblioset>
    <author>
<surname>Lassila</surname>
<firstname>Ora</firstname>
</author>
    <author>
<surname>Swick</surname>
<firstname>Ralph</firstname>
</author>
    <title>Resource Description Framework (RDF)</title>
    <subtitle>Model and Syntax Specification</subtitle>
    <publisher>
      <publishername>W3C Recommendation</publishername>
    </publisher>
    <pubdate>Februar 1999</pubdate>
    <pagenums>
<ulink url="http://www.w3.org/TR/REC-rdf-syntax"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>









<biblioentry>
  <abbrev>Lenat98</abbrev>
  <biblioset>
    <author>
<surname>Lenat</surname>
<firstname>Doug</firstname>
</author>
    <title>The Dimensions of Context-Space</title>
    <pubdate>1998</pubdate>
    <pagenums>
<ulink url="http://casbah.org/resources/cycContextSpace.shtml"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Lessmöllmann02</abbrev>
  <biblioset>
    <author>
<surname>Lessmöllmann</surname>
<firstname>Annette</firstname>
</author>
    <title>Die Wunderformeln der Grammatik</title>
    <publisher>
      <publishername>Die Zeit</publishername>
      <address format="linespecific">
<city>Hamburg</city>
</address>
    </publisher>
    <pubdate>Ausgabe 09/2002, S. 32</pubdate>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Lipinski99</abbrev>
  <biblioset>
    <author>
<surname>Lipinski</surname>
<firstname>Klaus</firstname>
</author>
    <title>Lexikon der Datenkommunikation</title>
    <publisher>
      <publishername>DATACOM Buchverlag GmbH</publishername>
      <address format="linespecific">
<city>Bergheim</city>
</address>
    </publisher>
    <pubdate>1999</pubdate>
    <isbn>ISBN 3-89238-168-2</isbn>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Magerkurth01</abbrev>
  <biblioset>
    <author>
<othername>C. Magerkurth</othername>
</author>
    <author>
<othername>T. Prante</othername>
</author>
    <title>
<quote>Metaplan</quote> für die Westentasche</title>
    <subtitle>Mobile Computerunterstützung für Kreativitätssitzungen.</subtitle>
  </biblioset>
  <publisher>
    <publishername>Teubner Verlag</publishername>
  </publisher> 
  <pubdate>2001</pubdate>
  
</biblioentry>



<biblioentry>
  <abbrev>McBride02</abbrev>
  <biblioset>
    <author>
<othername>Brian McBride <emphasis>et al</emphasis>
</othername>
</author>
    <title>The jena semantic web toolkit</title>
    <publisher>
<publishername>HPL Semantic Web activity</publishername>
</publisher>
    <pubdate>2002</pubdate>
    <pagenums>
<ulink url="http://www.hpl.hp.com/semweb/jena-top.html"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>





<biblioentry>
  <abbrev>Mertz01</abbrev>
  <biblioset>
    <author>
<othername>David Mertz</othername>
</author>
    <title>XML Matters #8</title>
    <subtitle>Putting XML in context with hierarchical, relational, and object-oriented models</subtitle>
    <publisher>
      <publishername>developerWorks</publishername>
    </publisher>
    <pubdate>April 2001</pubdate>
    <pagenums>
<ulink url="http://www.ibm.com/developerworks/xml/library/x-matters8"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
  
</biblioentry>



<biblioentry>
  <abbrev>Meyer92</abbrev>
  <biblioset>
    <title>Meyers Taschenlexikon</title>
    <publisher>
      <publishername>B. I. Taschenbuchverlag</publishername>
      <address format="linespecific">
<city>Mannheim</city>
</address>
    </publisher>
    <pubdate>1992</pubdate>
    <isbn>ISBN 3-411-11612-9</isbn>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>MIME</abbrev>
  <biblioset>
    <author>
<othername>IANA</othername>
</author>
    <title>Official list of all MIME media-types assigned by the Internet Assigned Number Authority (IANA)</title>
    <publisher>
<publishername>IANA</publishername>
</publisher>
    <pubdate>2001</pubdate>
    <pagenums>
<ulink url="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/media-types"/>
</pagenums>

  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Moore01</abbrev>
  <biblioset>
    <author>
<othername>Graham Moore</othername>
</author>
    <title>RDF and TopicMaps</title>
    <subtitle>An Exercise in Convergence</subtitle>
    <publisher>
<publishername>Empolis GmbH</publishername>
</publisher>
    <pubdate>2001</pubdate>
    <pagenums>
<ulink url="http://www.topicmaps.com/topicmapsrdf.pdf"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>mttwz01</abbrev>
  <biblioset>
    <author>
<surname>Meier</surname>
<firstname>Doris</firstname>
</author>
    <author>
<surname>Tautz</surname>
<firstname>Carsten</firstname>
</author>
    <author>
<surname>Traphöner</surname>
<firstname>Ralph</firstname>
</author>    
    <author>
<surname>Wissen</surname>
<firstname>Michael</firstname>
</author>
    <author>
<surname>Ziegler</surname>
<firstname>Jürgen</firstname>
</author>    
    <title>Building Ontologies for Knowledge Management Applications in Group Sessions</title>
    <publisher>
      <publishername>Fraunhofer IAO</publishername>
      <address format="linespecific">
<city>Stuttgart</city>
</address>
    </publisher>
    <pubdate>2001</pubdate>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Ogbuji00</abbrev>
  <biblioset>
    <author>
<othername>Uche Ogbuji</othername>
</author>
    <title>An introduction to RDF</title>
    <subtitle>Exploring the standard for Web-based metadata</subtitle>
    <publisher>
      <publishername>developerWorks</publishername>
    </publisher>
    <pubdate>Dezember 2000</pubdate>
    <pagenums>
<ulink url="http://www.ibm.com/developerworks/xml/library/w-rdf"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
  
</biblioentry>




<biblioentry>
  <abbrev>Palmer01</abbrev>
  <biblioset>
    <author>
<othername>Sean B. Palmer <emphasis>et al</emphasis>
</othername>
</author>
    <title>TimBL's Closed World Machine</title>
    <pubdate>2001</pubdate>
    <pagenums>
<ulink url="http://infomesh.net/2001/cwm"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>

<biblioentry>
  <abbrev>Palmer02</abbrev>
  <biblioset>
    <author>
<othername>Sean B. Palmer <emphasis>et al</emphasis>
</othername>
</author>
    <title>Eep</title>
    <subtitle>Very small things make <quote>Eep</quote>
</subtitle>

    <pubdate>2002</pubdate>
    <pagenums>
<ulink url="http://infomesh.net/2002/eep"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Pemberton00</abbrev>
  <biblioset>
    <author>
<othername>Steven Pemberton <emphasis>et al</emphasis>
</othername>
</author>
    <title>XHTML 1.0: The Extensible HyperText Markup Language</title>
    <subtitle>A Reformulation of HTML 4 in XML 1.0</subtitle>
    <publisher>
      <publishername>W3C Recommendation</publishername>
    </publisher>
    <pubdate>Januar 2000</pubdate>
    <pagenums>
<ulink url="http://www.w3.org/TR/xhtml1"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Pepper99</abbrev>
  <biblioset>
    <author>
<othername>Steve Pepper</othername>
</author>
    <title>Navigating haystacks and discovering needles</title>
    <subtitle>Introducing the new topic map standard</subtitle>
    <pubdate>1999</pubdate>

    <pagenums>
<ulink url="http://www.ontopia.net/topicmaps/materials/mlangart.pdf"/>, letzter Zugriff 03.03.2002</pagenums>

  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Pepper00</abbrev>
  <biblioset>
    <author>
<othername>Steve Pepper</othername>
</author>
    <title>The TAO of Topic Maps</title>
    <subtitle>finding the way in the age of infoglut</subtitle>
    <publisher>
<publishername>Infostream, Oslo Norway</publishername>
</publisher>
    <pubdate>2000</pubdate>
    <pagenums>
<ulink url="http://www.gca.org/papers/xmleurope2000/pdf/s11-01.pdf"/>, letzter Zugriff 02.02.2002</pagenums>
    <pagenums>
<ulink url="http://www.gca.org/papers/xmleurope2000/papers/s11-01.html"/>
</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Pepper00a</abbrev>
  <biblioset>
    <author>
<othername>Steve Pepper</othername>
</author>
    <title>Topic maps and RDF: A first cut</title>
    <publisher>
<publishername>Ontopia AS</publishername>
</publisher>
    <pubdate>2000</pubdate>
    <pagenums>
<ulink url="http://www.ontopia.net/topicmaps/materials/rdf.html"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Pepper01</abbrev>
  <biblioset>
    <author>
<othername>Steve Pepper</othername>
</author>
    <author>
<othername>Graham Moore</othername>
</author>
    <title>XML Topic Maps (XTM) 1.0 TopicMaps.Org Specification</title>
    <publisher>
<publishername>TopicMaps.Org Authoring Group</publishername>
</publisher>
    <pubdate>2001</pubdate>
    <pagenums>
<ulink url="http://www.topicmaps.org/xtm"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>





<biblioentry>
  <abbrev>perlre</abbrev>
  <biblioset>
    <author>
<othername>O. A.</othername>
</author>
    <title>perlre - Perl regular expressions</title>
    <pagenums>
<ulink url="http://www.perldoc.com/perl5.6.1/pod/perlre.html"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Pepper01a</abbrev>
  <biblioset>
    <author>
<othername>Steve Pepper</othername>
</author>
    <author>
<othername>Graham Moore</othername>
</author>
    <title>XTM 1.0 Core Published Subject Indicators (PSIs)</title>
    <publisher>
<publishername>TopicMaps.Org</publishername>
</publisher>
    <pubdate>2001</pubdate>
    <pagenums>
<ulink url="http://www.topicmaps.org/xtm/1.0/core.xtm"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Peirce93</abbrev>
  <biblioset>
    <author>
<othername>Charles Sanders Peirce</othername>
</author>
    <title>Syllabus of Certain Topics of Logic</title>
    <subtitle>In: <citation>Pirner01</citation>
</subtitle>
    <pubdate>1993</pubdate>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Pirner01</abbrev>
  <biblioset>
    <author>
<othername>Hans J. Pirner</othername>
</author>
    <title>The Semiotics of <quote>Postmodern</quote> Physics</title>
    <subtitle>In: M. Ferrari <emphasis>et al</emphasis>: Symbol and Physical Knowledge &#8211; On the Conceptual Structure of Physics</subtitle>
    <publisher>
<publishername>Springer-Verlag Berlin Heidelberg</publishername>
</publisher>
    <pubdate>2001</pubdate>
    <pagenums>S. 210-229</pagenums>
  </biblioset>
</biblioentry>





<biblioentry>
  <abbrev>Rath99</abbrev>
  <biblioset>
    <author>
<othername>Hans Holger Rath</othername>
</author>
    <title>Mozart oder Kugel</title>
    <subtitle>Mit Topic Maps intelligente Informationsnetze aufbauen</subtitle>
    <publisher>
      <publishername>Verlag Heinz Heise</publishername>
      <address format="linespecific">
<city>Hannover</city>
</address>
    </publisher>
    <pubdate>Ausgabe 12/1999</pubdate>
    <pagenums>S. 149 ff</pagenums>
    <pubdate/>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Rath01</abbrev>
  <biblioset>
    <author>
<othername>Holger Rath</othername>
</author>
    <title>empolis template Published Subject Indicators</title>
    <publisher>
<publishername>empolis GmbH</publishername>
</publisher>
    <pubdate>2001</pubdate>
    <pagenums>
<ulink url="http://www.topicmaps.com/xtm/1.0/template.xtm"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>RFC2045</abbrev>
  <biblioset>
    <author>
<othername>Network Working Group</othername>
</author>
    <author>
<othername>N. Freed, N. Borenstein</othername>
</author>
    <title>Request for Comments 2045</title>
    <subtitle>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</subtitle>
    <publisher>
<publishername>IETF</publishername>
</publisher>
    <pubdate>1996</pubdate>
    <pagenums>
<ulink url="http://www.ietf.org/rfc/rfc2045.txt"/>, letzter Zugriff 03.03.2002</pagenums>

  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>RFC2396</abbrev>
  <biblioset>
    <author>
<othername>Network Working Group</othername>
</author>
    <author>
<othername>T. Berners-Lee, R. Fielding, U.C. Irvine, L. Masinter</othername>
</author>
    <title>Request for Comments 2396</title>
    <subtitle>Uniform Resource Identifiers (URI): Generic Syntax</subtitle>
    <publisher>
<publishername>IETF</publishername>
</publisher>
    <pubdate>1998</pubdate>
    <pagenums>
<ulink url="http://ietf.org/rfc/rfc2396.txt"/>, letzter Zugriff 03.03.2002</pagenums>

  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>RFC2413</abbrev>
  <biblioset>
    <author>
<othername>Network Working Group</othername>
</author>
    <author>
<othername>S. Weibel, J. Kunze, C. Lagoze, M. Wolf</othername>
</author>    
    <title>Request for Comments 2413</title>
    <subtitle>Dublin Core Metadata for Resource Discovery</subtitle>
    <publisher>
<publishername>IETF</publishername>
</publisher>
    <pubdate>1998</pubdate>
    <pagenums>
<ulink url="http://ietf.org/rfc/rfc2396.txt"/>, letzter Zugriff 03.03.2002</pagenums>

  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Reimann00</abbrev>
  <biblioset>
    <author>
<othername>Prof. Peter Reimann</othername>
</author>
    <author>
<othername>Katja Müller</othername>
</author>
    <author>
<othername>Philipp Starkloff</othername>
</author>
    <title>Kognitiv kompatibel?</title>
    <subtitle>Wissensmanagement: Brückenschlag zwischen Technik und Psyche</subtitle>
    <publisher>
      <publishername>Verlag Heinz Heise</publishername>
      <address format="linespecific">
<city>Hannover</city>
</address>
    </publisher>
    <pubdate>Ausgabe 04/2000</pubdate>
    <pagenums>S. 274 ff</pagenums>
  </biblioset>
  
</biblioentry>


<biblioentry>
  <abbrev>Reimer91</abbrev>
  <biblioset>
    <author>
<othername>Ulrich Reimer</othername>
</author>
    <title>Einführung in die Wissensrepräsentation</title>
    <publisher>
      <publishername>B. G. Teubner</publishername>
      <address format="linespecific">
<city>Stuttgart</city>
</address>
    </publisher>
    <pubdate>1991</pubdate>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Anderson00</abbrev>
  <biblioset>
    <author>
<othername>Richard Anderson, Mark Birbeck, Michael Kay u. a.</othername>
</author>
    <title>XML Professionell</title>
    <publisher>
      <publishername>MITP-Verlag</publishername>
      <address format="linespecific">
<city>Bonn</city>
</address>
    </publisher>
    <pubdate>2000</pubdate>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>bpv00</abbrev>
  <biblioset>
    <author>
<surname>Rupp</surname>
<firstname>Rainer</firstname>
</author>
    <author>
<surname>Meidinger</surname>
<firstname>Heinz-Peter</firstname>
</author>
    <title>Gymnasium - Baustein für die Zukunft</title>
    <subtitle>Wir brauchen eine neue Bildungsgesellschaft</subtitle>
    <publisher>
      <publishername>Bayerischer Philologenverband (bpv)</publishername>
      <address format="linespecific">
<city>München</city>
</address>
    </publisher>
    <pubdate>Presseerklärung vom 18.11.2000</pubdate>
    
      <pagenums>
<ulink url="http://www.bpv.de/presse/presse2000/p181100.html"/>
</pagenums>
  </biblioset>
</biblioentry>


<biblioentry>
  <abbrev>Schmidt00</abbrev>
  <biblioset>
    <author>
<othername>Ingrid Schmidt, Carolin Müller</othername>
</author>
    <title>Zaubernetz</title>
    <subtitle>Inhaltsstrukturen und Topic Maps als Potenzial neuer Informationstechnik</subtitle>
    <publisher>
      <publishername>Verlag Heinz Heise</publishername>
      <address format="linespecific">
<city>Hannover</city>
</address>
    </publisher>
    <pubdate>Ausgabe 11/2000</pubdate>
    <pagenums>S. 100 ff</pagenums>
    <pagenums>
<ulink url="http://www.heise.de/ix/artikel/2000/11/100"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
</biblioentry>





<biblioentry>
  <abbrev>Scholles98</abbrev>
  <biblioset>
    <author>
<othername>Dr. Frank Scholles, Magrit Putschky</othername>
</author>
    <title>Gesellschaftswissenschaftliche Grundlagen</title>
    <subtitle>Planungsmethoden</subtitle>
    <publisher>
      <publishername>Institut für Landesplanung und Raumforschung</publishername>
      <address format="linespecific">
<city>Hannover</city>
</address>
    </publisher>
    <pubdate>1998</pubdate>
    <pagenums>
<ulink url="http://www.laum.uni-hannover.de/ilr/lehre/Ptm/Ptm_KreaMetaPlan.htm"/>, letzter Zugriff 23.03.2002</pagenums>
  </biblioset>
</biblioentry>







<biblioentry>
  <abbrev>Sowa01</abbrev>
  <biblioset>
    <author>
<othername>John F. Sowa</othername>
</author>
    <title>Conceptual Graphs</title>
    <pubdate>2001</pubdate>
      <pagenums>
<ulink url="http://www.jfsowa.com/cg"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Strassmann02</abbrev>
  <biblioset>
    <author>
<surname>Strassmann</surname>
<firstname>Burkhard</firstname>
</author>
    <title>Wissensmanagement</title>
    <subtitle>Schürfen in der Datenhalde</subtitle>
    <publisher>
      <publishername>Die Zeit</publishername>
      <address format="linespecific">
<city>Hamburg</city>
</address>
    </publisher>
    <pubdate>Ausgabe 04/2002</pubdate>
  </biblioset>
</biblioentry>




<biblioentry>
  <abbrev>Schirdewan97</abbrev>
  <biblioset>
    <author>
<surname>Schirdewan</surname>
<firstname>Roland</firstname>
</author>
    <title>Der Einsatz von Conceptual Graphs im Rahmen automatischer Akquisition von Objektbeschreibungen aus Texten</title>
    <subtitle>Eine Machbarkeitsstudie am Beispiel einer Ölabscheiderdokumentation</subtitle>
    <publisher>
      <publishername>Universität</publishername>
      <address format="linespecific">
<city>Hamburg</city>
</address>
    </publisher>
    <pubdate>Diplomarbeit 1997</pubdate>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Thompson01</abbrev>
  <biblioset>
    <author>
<othername>Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn</othername>
</author>
    <title>XML Schema Part 1</title>
    <subtitle>Structures</subtitle>
    <publisher>
      <publishername>W3C Recommendation</publishername>
    </publisher>
    <pubdate>Mai 2001</pubdate>
    <pagenums>
<ulink url="http://www.w3.org/TR/xmlschema-1"/>, letzter Zugriff 03.03.2002</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Vachenauer97</abbrev>
  <biblioset>
    <author>
<surname>Vachenauer</surname>
<firstname>Peter</firstname>
</author>
    <author>
<surname>Rade</surname>
<firstname>Lennart</firstname>
</author>
    <author>
<surname>Westergren</surname>
<firstname>Bertil</firstname>
</author>
    <title>Springers Mathematische Formeln</title>
    <publisher>
      <publishername>Springer-Verlag</publishername>
      <address format="linespecific">
<city>Heidelberg</city>
</address>
    </publisher>
    <pubdate>1997<superscript>2</superscript>
</pubdate>
    
    <isbn>ISBN 3-540-62829-0</isbn>
    <pagenums>S. 33-36</pagenums>
  </biblioset>
</biblioentry>



<biblioentry>
  <abbrev>Vossen00</abbrev>
  <biblioset>
    <author>
<surname>Vossen</surname>
<firstname>G.</firstname>
</author>
    <title>Datenbankmodelle, Datenbanksprachen und Datenbankmanagementsysteme</title>
    <publisher>
      <publishername>Oldenbourg-Verlag</publishername>
      <address format="linespecific">
<city>München</city>
</address>
    </publisher>
    <pubdate>2000<superscript>4</superscript>
</pubdate>
  </biblioset>
</biblioentry>






<biblioentry>
  <abbrev>Walsh99</abbrev>
  <biblioset>
    <author>
<othername>Norman Walsh</othername>
</author>
    <author>
<othername>L. Muellner</othername>
</author>
    <title>DocBook: The Definitive Guide</title>
    <publisher>
<publishername>O&#8217;Reilly &amp; Associates, Inc.</publishername>
</publisher>
    <pubdate>1999</pubdate>
  </biblioset>
  <pagenums>
<ulink url="http://www.docbook.org/tdg"/>, letzter Zugriff 23.03.2002</pagenums>
</biblioentry>


<biblioentry>
  <abbrev>Wrightson01</abbrev>
  <biblioset>
    <author>
<othername>Ann Wrightson</othername>
</author>
    <title>Topic Maps and Knowledge Representation</title>
    <publisher>
<publishername>Ontopia AS</publishername>
</publisher>
    <pubdate>2001</pubdate>
    <pagenums>
<ulink url="http://www.ontopia.net/topicmaps/materials/kr-tm.html"/>, letzter Zugriff 02.02.2002</pagenums>
  </biblioset>
</biblioentry>





</bibliography>




  






</book>

