MutaGraph ©2003 Paul Geisler
MutaGraph Anleitung
- Einführung
- Installation
- Bedienung
- Als Desktopanwendung
- Als Webanwendung
- Elemente editieren
- Knoten hinzufügen
- Kante hinzufügen
- Kante löschen
- Knoten löschen
- Spezielle Typen
- Der Setknoten
- Der Typknoten
- Anhang
- Die Distribution/Dateistruktur
- Die Standard-Knotentypen
- Wartung
- Nützliche SQL-Abfragen
- Die Kartenansicht einrichten
- Über...
Einführung
MutaGraph ist eine Server-Client-Anwendung, um Datenbestände in Graphen-Form zu verwalten. Ein Graph bietet gegenüber herkömmlichen Datenbanken vor allem dann Vorteile, wenn die darzustellenden Objekte und ihre Zusammenhänge sehr vielfältiger Natur sind, die sich nicht so einfach in ein Schema pressen lassen.
Bevor man diesen Staub liest, kann man ertsmal etwas lecker-bunten Schmackofax haben: MutaGraph BioGraph Projekt
Beispiele
-Um die private CD-Sammlung zu verwalten sind HERKÖMMLICHE Datenbanken sicher besser geeignet.
-Auch die Geschäftsdaten einer Firma lassen sich sicher gut schematisieren und in Tabellen einspeichern.
-Das Ergebnis eines "Brainstormings" hingegen hat eher die Natur eines Graphen, ebenso
-biografische Daten (die etwas über einen simplen Lebenslauf hinausgehen)
-detektivistische Deduktion ist in Graphenform realisierbar, da sich Zusammenhänge eingetragener Indizien automatisch auftun.
Durch die Client-Server-Architektur können mehrere Nutzer paralell Daten in den Graphen eingeben, und so sogar jedem einzelnen unbekannte Zusammenhänge der Dinge entdecken!
über Graphen:
der "Graph" ist eine "Erfindung" der Mathematik. Ein Graph besteht aus einer "Kantenmenge" von "Kanten", und einer "Knotenmenge" von "Knoten". Der uneingeweihte stellt sich einen Graph am besten als ein (Spinnen-. Fischer-) Netz vor, die Schnüre sind die Graph-Kanten, die Knoten die Graph-Knoten. Eine Kante verbindet immer zwei Knoten. (Bei MutaGraph stets zwei verschedene!) Eine kante heisst "gerichtet", wenn die Reihenfolge der ihr zugehörigen Knoten eine Rolle spielt. Die Anzahl der Kanten, die einen Knoten verbinden, nennt man "Valenz". Die "n-Nachbarschaft" eines Knotens bezeichnet die Menge aller Knoten, die über höchstens n Kanten mit ihm verbunden sind, d.h. die 0-Nachbarschaft ist nur der Knoten selbst, die 1-Nachbarschaft alle direkt mit ihm verbundenen, und die unendlich-Nachbarschaft die Menge aller Knoten, die mit ihm verbunden sind.
bei MutaGraph:
Bei MutaGraph ist jedem Knoten und jeder Kante eindeutig ein "Typ" zugeordnet, jedem Knoten noch ein "Name". Alle Kanten sind gerichtet. Der Nutzer gibt also Daten ein, in dem er Knoten hinzufügt, sie typisiert und benamt und Kanten gerichtet hinzufügt und typisiert.
Eine Kante wird durch die verbundenen Knoten, Richtung UND den Typ identifiziert, d.h. zwei Knoten können viele Kanten dazwischen besitzen, wenn ihre Typen und Richtungen verschieden sind.
Die Knoten sind durch Name UND Typ identifiziert. Es ist also möglich, eine "Musik" "Das Lied vom Tod" und den "Film" "Das Lied vom Tod" gleichzeitig im Graphen zu haben. Bei der Darstellung werden die Knotennamen in die Knoten geschrieben, die Knotentypen als Bilder symbolisiert und die Kantentypen an die Kanten geschrieben. Es gibt eine vorgegebene Grundbasis von Knotentypen (eigentlch ja nur Bilder) die beliebig erweitert werden kann. (s. Anhang) Knoten- und Kantentypen werden nur durch ihre Bezeichnung identifiziert, und bei Bedarf automatisch eingetragen. Die unendlich-Nachbarschaft schliesst bei MutaGraph ausserdem sämtliche Knoten ein, auch völlig unverbundene!
Installation
"Benutzer" müssen sich nur mit dem MutaGraph-Client auseinandersetzen, der als Java-Applikation und Java-Applet ist. Es ist keine Installation erforderlich... (höchstens die der Java-Runtime-Umgebung)
Für einen MutaGraph-Server (und den braucht man...) benötigt man einen Server, der PHP und MySQL unterstützt. Es ist lediglich das Uploaden eines Verzeichnisses (www) und das Einrichten und Strukturieren einer MySQL-Datenbank erforderlich. Das Client-Applet sollte vom selben Server geladen werden, da es sonst keinen Zugriff auf den Server hat! Die Applikation unterliegt dagegen keinen Enschränkungen, wenn sie lokal ausgeführt wird.
Zunächst stellt man den Inhalt des Verzeichnisses "www" irgendwo auf dem Server bereit. Dann installiert man die Datenbank, entweder mit sql von der Kommandozeile oder z.B. PHPMyAdmin, indem man mit einem dieser Tools eine Datenbank anlegt (am einfachsten "graph" nennen) und darin die Datei "databases/graph.sql" ausführt. Wer PHPMyAdmin benutzt, kann auch die Datenbank "pmadb" mit "databases/pmadb.sql" dazunehmen/erweitern, damit das Tool die Relationen komfortabel anzeigt. Läuft die Datenbank, so muss man im Script "graph.php" die Zugriffsdaten eingeben, fast ganz oben, in der Zeile
$link = mysql_connect("localhost", "benutzer", "passwort")
entsprechend localhost, benutzer und passwort ersetzen.
Liste der Dateien siehe Anhang: Dateien
Los gehts - die Bedienung
Zuerst muss man MutaGraph starten, dazu gibt es mehrere Varianten:
MutaGraph als Desktopanwendung
Diese Variante ermöglicht den einfachen, browserlosen Zugriff auf einen MutaGraph, mit vielfältigen Möglichkeiten lokale Daten zu verwenden (siehe z.B. Medien-Linking)
Es stehen alle MutaGraph-Features zur Verfügung mit Ausnahme des Knoten-Wikis.
Die Befehlszeile sieht so aus:
SYNOPSIS
(ausgehend vom MutaGraph-Stammverzeichnis)
java [-server] org.dronus.exploder.MutaGraphExploder "http://pathToScript/graph.php" ["set"] ["query"] [dir1], [dir2], ...
Die Optionen:
-server
Schaltet die schnellere Java-Server-VM ein, die oft nicht vorhanden ist.
set
Optionaler Name des Start-Set-Knotens
query
Optionaler Inhalt des Query-Feldes
dir1, ...
Verzeichnisse, aus denen Medien zum Graph hinzugelinkt werden, siehe Medien-Linking.
Beispiel:
java org.dronus.exploder.MutaGraphExploder "http://localhost/graph.php" "" "" "c:/eigene dateien/eigene bilder"
Startet den MutaGraphExploder mit der StartURL "http://localhost/graph.php", keinen Set- oder Query-Einschränkungen und linkt das lokale Verzeichnis "c:/eigene dateien/eigene bilder" hinzu.
Wenn man den MutaGraphExloder als Applikation ohne Argumente startet, dann muss MutaGraph "manuell" mit der Datenbank verbunden werden, und die Datenbasis des Graphen laden. Alle auf den Serverzugriff bezogenen Funktionen finden sich in der obersten Reihe. Im Feld URL gibt man die URL eines MutaGraph-Servers ein. Das Feld Set kann benutzt werden, um das Datendownload auf Teilmengen der gesamten Datenbasis zu beschränken, siehe unten. Über "Parameter" können optionale Parameter an den Server übergeben werden, diese sind aber noch undokumentiert, man sollte also die Finger davon lassen... Jedesmal wenn man in einem der Felder URL, Set oder Parameter mit "Return" bestätigt, werden vom Server die Daten angefordert, was je nach Datenmenge und Verbindung etwas dauern kann.
MutaGraph als Webanwendung
Hierbei wird der Anzeiger/Editor als Applet in einem Browser dargestellt. Dies bringt zunächst einige Einschränkungen mit sich, z.B. kein lokaler Datenzugriff, und damit
kein Medien-Linking, keine Datei-Knoten, keine Layout-Dateien, keine Karten. Dafür erhält man die Möglichkeit, das Knotenwiki zu benutzen.
Die Webanwendung verwendet man vom Browser aus, und zwar so:
SYNOPSIS
http://PATH/graph[view/edit].php?action=ACTION[&name=NAME/&nodeid=NODEID]
wobei
PATH den Pfad zum MutaGraph-Server bezeichnet.
ACTION ist eine der folgenden:
shownode
in Kombination mit "graphview.php". In diesem Fall gibt NAME die Bezeichnung des anzuzeigenden Knotens an, alternativ kann mit NODEID direkt der numerische KnotenID benutzt werden.
Es wird eine reine statische HTML-Darstellung des Knotens und seiner Nachbarknoten angezeigt, die optional noch als
Knotenwiki erweitert sein kann. Diese Technik funktioniert mit jedem Browser und benötigt kein Java auf der Client-Seite. Dennoch kann man den ganzen Graphen über diese HTML-Seiten erkunden. Beispiel:
http://hirnsohle.de/mutagraph/graphview.php?action=shownode&name=Determinismus
frames
Es wird eine geteilte Seite erzeugt, die das MutaGraph-Exploder Applte mit der HTML-Darstellung kombiniert. So kann der Graph durchstöbert, und etwaige Knoten-Wikis angezeigt werden. die Option "view" ist hier nicht sinnvoll, da das Applet ja bereits die Graphen-Struktur anzeigt. Beispiel:
http://hirnsohle.de/mutagraph/graph.php?action=frames
frames
in Kombination mit "graphedit.php". Ermöglicht, im Applet den Graphen zu EDITIEREN und zugleich im HTML-Teil die Knoten-Wiki-Seiten anzulegen/bearbeiten.
Beispiel:
http://www.meintollerserver.de/mutagraph/graphedit.php?action=frames"
Die Aktionen
getset
getnodes
getedges
addnode
addedge
editnode
deletenode
deleteedge
validate
selectnode
exploder
dienen größtenteils internen Zwecke, also Finger weg, sonst ab!!!
Leute die damit Sinnvolles anfangen können, werden diese Warnung eh mißachten.
Grundlegende Bedienung
Unter der Serverzeile (die nur bei der Applikationsvariante sichtbar ist, sonst ganz oben) befinden sich die Standardfunktionen. Der linke Rollbalken bestimmt die "Nachbarschaft", dazu siehe unten. Der große Rollbalken kann zum Zoomen im Graphen benutzt werden, das Kästchen "AA" schaltet AntiAlias an/aus. (Erst beim Neuzeichnen des Graphen sichtbar, dazu einfach einen Knoten mit der Maus berühren)
Wichtig sind die Filter-Optionen "Alle", "Sets" und "Typen". Sie entscheiden, welche Sorten von Knoten angezeigt werden.
Ist "alle" an, so schliesst abschalten von "Sets" und "Typen" die entsprechenden aus, andernfalls werden sie durch anschalten wieder angezeigt.
Besonders sinvolle Einstellungen für den Filter sind:
-Nur Sets an:
Man bekommt einen schnellen Überblick über seine Sets. (s.u.)
-nur "Alle" an:
Man sieht nur die sinvollen Datenknoten, Metainformationen wie Sets oder Typen (die ja oftmals erheblich viele Kanten haben) werden ausgeblendet.
Navigation
Zum Scrollen im Graphen über der "Leere" zwischen den Knoten die linke Taste gedrückt halten, ziehen.
Zum Zoomen den großen Rollbalken benutzen.
Zum ändern der Nachbarschaft:
-einen Knoten makieren (auf ihn klicken), er wird markiert.
-den kleinen Rollbalken einstellen. Ganz Links entspricht einer Nachbarschaft von Null Knoten, d.h. nur der Knoten selbst ist zu sehen. Der rechte Anschlag nimmt eine Sonderstellung ein, die "unendliche Nachbarschaft", die sogar jene Knoten enthält, mit denen der gewählte garnicht verbunden ist. Nur so kann man sicher sein, den gesammten Graphen zu sehen.
Bewegung: Der Graph versucht sich ständig, sich selbst praktisch zu ordnen. Wenn er sehr groß ist, kann man ihm dabei helfen, indem man an den Knoten zieht (mit gehaltener linker Maustaste). Dauert das ordnen zu lange, kann man mit einem Druck auf "Relax!" ein massives Ordnen ohne Animation erreichen. Das kann allerdings etliche Sekunden dauern. Ausserdem ist kein vollständiger Erfolg garantiert, Wiederholung hilft. Nervt einen das Rumgezappel, kann man die automatische Bewegung ganz abschalten, in dem man das Kästchen "Motion" leert. Das ist auch sinvoll bei der geordneten Eingabe neuer Knoten.
Elemente hinzufügen/löschen
Um Elemente zu bearbeiten, muss der Editmodus aktiviert werden (Kästchen "Edit"). Die Nachbarschaftsfunktion reagiert dann nicht mehr auf Wechsel des Knotens. Praktischerweise sollte man auch "Motion" abschalten, damit einen die gerade erzeugten Knoten nicht gleich wieder entwischen. Die Hinzufügeoperationen werden nun stets durch Niederhalten der STRG-Taste aktiviert.
Ein Element (Knoten oder Kante) wird dem Graphen zugefügt, und zwar entweder als neues Element, oder eben das bestehende aus der Datenbank. Die Elemente werden eindeutig durch Typ und Name identifiziert. Kanten haben keinen Namen, nur einen Typ. Groß/Kleinschreibung ist zur identifizierung irrelevant, sie wird nur bei neu erstellten Elementen durch die Eingabe festgelegt.
Knoten hinzufügen
-STRG gedrückt halten, und an den gewünschten Ort klicken. Der Typ muss _vorher_ im "Knoten-Typ"-Feld eingegeben sein.
-im Dialog den gewünschten Namen eingeben. Sucht man einen bestehenden Knoten, ist als Platzhalter "%" für eine beliebige Zeichenkette möglich.
Kante hinzufügen
-STRG halten, und bei gedrückter Maustaste von einem Knoten zum anderen ziehen. Der Kantentyp wird durch das "Kanten-Typ" Feld im Vorfeld festgelegt. Die Kanten sind "gerichtet" d.h. es ist ein Unterschied, in welcher Reihenfolge man die Knoten auswählt.
Kante löschen: (zwei Möglichkeiten)
-Auf die Kante zeigen (sie wird makiert) und mit der rechten Taste das Kantenmenü öffnen.
-"Kante exterminieren" auswählen.
oder
-Die Kante wie bei "Kante hinzufügen" nachzeichnen. Der eingestellte Kanten-Typ ist egal, die alte Kante wird gelöscht. (Auf die Richtung achten!)
Knoten löschen
-Ein Knoten kann nur gelöscht werden, wenn er keine Kante mehr besitzt. (Mit Ausnahme von impliziten "Typkanten", s.u.) Er darf deshalb auch nicht Teil irgendeinen "Sets" (s.u.) sein. Zum löschen mit der rechten Taste auf dem Knoten das Menü öffnen und "Knoten exterminieren" wählen.
Kante und Knoten erzeugen: (Wenns mal schnell gehen muss...)
-Wie bei "Kante hinzufügen" eine Kante von einem Knoten aus ins "Leere" ziehen. Der Knoten-Dialog erscheint.
oder
-Aus der "Leere" auf einen Knoten ziehen.
Jedes dieser Verfahren ist nur für Kanten der jeweiligen Richtung geeignet.
Sonderfunktionen
Die folgenden Funktionen machen aus MutaGraph ein über grundlegende Datenbank hinausgehendes Werkzeug.
Layout-Dateien
Wenn man einen sehr großen Graphen sich lange anordnen lassen hat, einige Knoten eingerastet oder gar ohne "Motion" alles von Hand plaziert hat, so möchte man das sicher erhalten. Dazu gibt es die Meüoptionen "Layout speichern/laden". Die Entstehenden Dateien enthalten NICHT den Graphen, nur die aktuelle Anordnung. Man muss vor dem Laden also zunächst den entsprechenden Graphen vom Server laden. Dafür kann man zu jedem Graphen beliebige viele Layouts behalten, z.B. für interessante Teilmengen, nach Datum oder Ort angeordnete Knoten und so weiter. Das Verfahren ist tolerant gegenüber Unsynchronität zum Graphen: Werden aus dem Graphen Dinge gelöscht, so kann ein altes Layout dennoch geladen werden, nur fehlen dann eben die entsprechenden Elemente. Genauso können "in Abwesenheit angelegte" Knoten zu einem Layout hinzugnommen werden, in dem man es lädt, die neuen Knoten wieder hinzufügt, und es dann speichert.
Spezielle Typen
Zur Datenverarbeitung existieren spezielle Knoten, die man auch selbst erzeugen kann.
Die zusätzlichen Funktionen werden automatisch mit dem Erstellen der entsprechenden Knoten erhalten.
-Der Setknoten
Ein "Set" ist eine Teilmenge aus dem ganzen Graphen. Ein Setknoten verwaltet solche Mengen. Ersteinmal ist es ein normaler Knoten, an den man ganz normal Kanten zufügen kann. Das zugehörige "Set" besteht aus allen Knoten, die über einlaufende Kanten an den Setknoten anschliessen. Die besondere Funktion erschliesst sich erst, wenn man den Namen eines Setknotens in das "Set"-Feld im oberen Panel eingiebt. Dann wird nur der Teil des Graphen geladen, der an diesem Set teilnimmt. Man kann so z.B. "Arbeitsblätter" definieren. Ist der Graph aus einem Set geladen, so werden ab sofort alle neu hinzugefügten Knoten automatisch auch diesem Set zugefügt. In der Regel ist der Setknoten selbst allerdings nicht in seinem eigenen Set enthalten. Man erzeugt ihn also erst, und wählt dann das neue Set mit dem Feld aus. Will man wieder auf alle Daten zurückgreifen, muss man einfach das Setfeld leeren und bestätigen. Sets sollte man verwenden, wenn die Datenbasis stark angewachsen ist. Sie erhöhen zwar die Kantenmenge, dafür muss man nur noch Teile der Daten zum bearbeiten herunterladen. Es können nicht im Set enthaltene Knoten jederzeit in dieses aufgenommen werden, in dem man sie einfach neu hinzufügt. Einen Knoten aus dem Set zu entfernen ist derzeit etwas umständlich: Man muss nur die veerbindende Kante zum Set löschen, was innerhalb des Sets allerdings nicht geht, und so ein Neuladen des Gesamtgraphen erfordert.
-Der Typknoten
Man erzeugt ihn, in dem man einen Knoten mit seiner Typbezeichnung als Namen addiert. Zur Erzeugungs/Ladezeit fügt MutaGraph dann automatisch Kanten zu allen Knoten dieses Typs hinzu. Diese sind NICHT in der Datenbasis abgelegt! Sie können nicht gelöscht werden. Der Typknoten kann jederzeit gelöscht werden (es sei denn, es wurden echte Kanten manuell hinzugefügt), er selbst ist ganz normal in der Datenbasis gespeichert. Leider werden die Typ-Kanten nicht permanent aktualisiert, nur beim Hinzufügen oder Neuladen des Graphen.
-Der Punktknoten
siehe Karte.
-Der Dateiknoten
Ein Knoten vom Typ "Datei" dessen Bezeichnung ein eindeutiger Pfad im lokalen Dateisystem ist. Ein bisschen unartig, empfiehlt sich nur für Links in Ein-Benutzer-Systemen, sonst wäre Eindeutigkeit kaum herzustellen, wo der Server auch lokal auf dem Rechner läuft, damit Graph und Dateien noch etwas Zusammenhalt haben.
Medien-Funktionen
Der MutaGraph-Exploder ermöglicht die Einbindung externer Medien in den Graphen. Diese sind jedoch i.A. auf keinste Weise im Datenbestand des Graphen enthalten, sie werden lediglich "lose" verlinkt.
Es gibt folgende Linkingh-Arten:
Medien-Linking
Wird MutaGraph als Desktop-Applikation verwendet, so kann man lokale Verzeichnisse "hinzulinken". Dies geschieht beim Programmstart, siehe hier. Die Verzeichnisse werden katalogisiert und mit dem Graphen über Tags (Auszeichnungen) verknüpft. Diese gibt es momentan nur in einer Sorte: der Dateiname muss ein Tag der Form .dastag.
oder zumindest das Tag.
enthalten, z.B:
tanteJuttaKocht.Jutta.jpg
meinTagebuch.Tagebuch.txt
Tagebuch.txt
Diese Dateien würden dann den Knoten "Jutta" bzw. "Tagebuch" zugeordnet. Dadurch entsteht folgende Funktionalität:
Der Shell-Aufruf
Wenn ein Knoten mit mindestens einer Datei verlinkt ist, wird diese durch einen Doppelklick geöffnet, d.h. die entsprechende Shell-Funktionalität ausgelöst. Dies würde z.B. bei Texten das Textprogramm, bei Filmen einen Abspieler öffnen, die korrekte Installation dieser Tools in ihrem System vorrausgesetzt. Leider wird derzeit nur die "erste" Datei eines jeden Knotens so zugänglich. Jedoch kann man MutaGraph damit als schönen Medien-Katalog verwenden, wenn man auf ausdrückliche und eindeutige Kennzeichnung seiner Dateien achtet.
Bildersturm
Diese Funktion ist schon spannender: Werden ein oder mehrere Bilder mit einem Knoten assoziiert, so kann man in dessen Kontextmenü die Option "Explodieren" versuchen. Etwas Geduld ist dann erforderlich, dafür wird der Knoten mit kleinen Bild-Knoten erweitert, die als Daumennagel-Darstellungen der verlinkten Bilder daherkommen. Diese ermöglichen durch Anklicken dann ebenfalls die Shell-Aufruf-Funktionalität, nur sind garantiert eindeutig, da jeder Knoten genau einer Bilddatei entspricht.
Karte
Diese Funktion erfordert zusätzliches Daten-Material, das leider schwer zu erstellen ist, und schon vorhandenes rechtlich leider nicht mit verbreitet werden kann. Um die Kartenfunktion bereitzustellen, siehe Anhang: Karte einrichten. Ist das Modul funktionsfähig, so kann man Punktknoten erzeugen. Diese zeichnen sich durch ihren Typ "Punkt" aus, und enthalten als Name nur zwei große Zahlen. Diese bezeichnen Koordinaten im deutschen Gauss-Krüger-Koordinatensystem. Der Punktknoten erhält daruch folgende Funktionalität: Sein Kontextmenü ermöglicht "Karte anzeigen", eine Auswahl dieser Option umrandet die Darstellung des Knotens mit einem exakt lokalisierten Ausschnitt des installierten Kartenmaterials. Ein Doppelklick des Punktknotens öffnet die Karten-Ansicht-Applikation Hansi, auf dem entsprechenden Punkt plaziert.
Das Knotenwiki
Wird MutaGraph als Webanwendung im Browser benutzt, so steht das Knotenwiki zu Verfügung. Es ist ein recht einfaches Wiki-System, das allerdings alle seine Seiten an Knoten bindet. Eine Wiki-Seite kann also nicht im Wiki erzeugt werden, sondern nur durch Hinzufügen eines weiteren Knoten zum Graphen. Dafür kann man eben Anmerkungen und weiterführende Texte zu den Knoten schreiben. Wiki-Links entstehen automatisch, sobald Namen der Nachbarknoten im Text auftreten. Alternativ können wie bei jedem Wiki Links "von Hand" angelegt werden. Das Wiki-System ist eine Entwicklung von Boris Lau, eine ausführliche Beschreibung der benutzbaren Wiki-Funktionen und Syntax findet sich hier: TODO: Wiki-Anleitungs-Link
Wenn der Server über TeX verfügt, können mathematische Formeln direkt mit dem Wiki-Tag $ wie in TeX gesetzt werden.
Anhang
Die Distribution
-summasummarum besteht ein vollständige MutaGraph-Distribution aus folgendem:
databases (Startdatenbank und Platz für SQL-Backups)
graph.sql (Leere MutaGraph-Startdatenbank)
pmadb.sql (Relationen für die komfortable Verwendung mit PHPMyAdmin)
grafik (Symbole für die Knoten-Typen und natürlich das MutaGraph-Icon!)
<typname>.png (Typ-Icons)
...
layouts (Platz für ihre Layout-Dateien)
org (MutaGraph Java-Quelltext und Klassen, also der Kern des ganzen)
...
thumbs (Ablageort für automatisch erzeugt Thumbnails, z.b. beim Medien-Linken)
www (der MutaGraph-Server)
exploder.zip (Die Browser-Startbare Webanwendung ("Java-Applet"))
files (Lagerplatz für erzeugte dateien, z.b. Wiki-Formel-Bilder)
grafik (Kopie des /grafik-Ordners, für Web alle Umlaute durch die Basisbuchstaben ersetzt)
graph.php (das Basis-Server-Script. Wird vom Client angesprochen.)
graphedit.php (Dasselbe mit Schreibzugriff )
graphview.php (Dasselbe mit Voll-HTML-Anzeige, um dne Graph ganz ohne Applet zu durchstöbern)
nodeview.css
temp.tex (Alles weitere dient der Knoten-Wiki-Darstellung)
template.tex
texit.init
texit.php (Rendert mathematische Formeln im Wiki mit TeX)
wikihtml.php
MutaGraph.htm (dies hier)
datatypes.txt (Datentypenzuordnungen für das Media-Linking)
grafik.zip (nicht mitgeliefert, Bilddaten für die Kartenfunktion)
raster.txt (als Beispiel mitgeliefert, Rasterdaten für die Kartenfunktion)
*.ico (Nette Icons für Windows)
...
Standardknotentypen
Ich will mich hier nicht als Führer aufspielen, aber es sei einfach mal eine kleine Liste von nützlichen Knotentypen -unverbindlich- empfohlen, zu denen auch schon Symbole mitgeliefert sind:
- Bild
- Computer
- Datei
- Datum
- Dronus
- Ereignis
- Fahrzeug
- Film
- Firma
- Gebäude
- Gefühl
- Gegenstand
- Geschäft
- Gruppe
- Idee
- Institut
- Kurs
- Merkmal
- Musik
- Ort
- Person
- Punkt
- Quelle
- Raum
- Satz
- Set
- Software
- Teil
- Text
- Traum
darunter sind die folgenden folgende "hardcoded" Spezialtypen (siehe dazu spezielle Typen):
- Datei
- Punkt
- Quelle
- Set
- und <Typknoten>
Wartung
Selbstverständlich funktioniert MutaGraph immer absolut fehlerfrei. Es ist volkommen unfehlbar.
Der Aministrator der Datenbank kann einige "Wartungen" vornehmen. Diese sind nicht automatisiert, da sie in Absprache mit den Nutzern erfolgen sollten...
-tote Typen
werden Knote oder Kanten gelöscht können unbenutzte Typen zurückbleiben. Das sind in der Regel wenige, sie können bedenkenlos in der Datenbank belassen werden, da sie keinen zusätzlichen Datenverkehr erzeugen.
-tote Kanten
sehr unwarscheinlich, sollte das Programm noch unenddeckte Fehler enthalten, könnten ungültige Kanten zurückbleiben, von denen ein oder beide Enden keinen Knoten mehr bezeichnen. Diese sollten gelöscht werden, da sie unnötigen Datenverkehr und Fehlermeldungen erzeugen!
-Knoten vernichten
gelegentlich will man vielleicht einen Knoten loswerden, der arg verstrickt ist. (z.b. Sets) Da es der Client aus Sicherheitsgründen nur erlaubt, herausgelöste Knoten zu löschen, nervt das natürlich. Der Admin kann dann den Knoten direkt löschen, sollte danach dann aber alle ungültig gewordenen Kanten entfernen.
Alle diese Wartungen geschehen automatisch mit dem Aufruf von
SYNOPSIS
http://PATH/graph.php?action=validate
Nützliche SQL-Abfragen
Wer möchte, kann natürlich die -absolut simple- Datenbank von MutaGraph direkt mit SQL traktieren. Einige Anregungen:
Auflistung der Anzahl der Knoten pro Typ:
SELECT count( * ) , nt.name
FROM node n, nodetype nt
WHERE nt.id = n.t
GROUP BY n.t
ORDER BY `count( * )` DESC
Eine Valenz-der-Knoten-Hitliste:
SELECT n.name, count( * )
FROM node n, edge e
WHERE e.n1 = n.id OR e.n2 = n.id
GROUP BY n.id
ORDER BY `count( * )` DESC
Hitliste der Valenz der Knoten mit Typ "Person":
SELECT n.name, count( * )
FROM node n, edge e, nodetype nt
WHERE nt.name = 'Person' AND nt.id = n.t AND ( e.n1 = n.id OR e.n2 = n.id )
GROUP BY n.id
ORDER BY `count( * )` DESC
Karte einrichten
Schwierig, schwierig...
MutaGraph verwendet die Anwendung "Hansi" (ursprünglich "HamburgAnsicht") die Zugriff und Lokalisation auf großen Pixelbildern (Landkarten, Luftbilder) ermöglicht. Diese Anwendung beherrscht leider keine vektorbasierten Formate, da sie vornehmlich als Luftphoto-Anzeiger gedacht ist. Die Funktionsweise ist simpel: Die Karten (und haben sie auch einige GigaPixel) werden in verdaubare Blöcke (z.b. 512*512 Pixel) zerhackt und als Einzel-jpgs in einem Archiv abgelegt (Damit man nicht mit Abertausenden von Einzelfiles hantiert). Die Einrichtung erfolgt folgendermaßen:
Zunächst ist die grafische Datenbasis erforderlich, diese wird im Stammverzeichnis in der Datei grafik.zip
erwartet. Dies ist am besten ein UNKOMPRIMIERTES zip-Archiv, komprimiert sind jpgs sowieso. Darin befindet sich eine aufsteigende Folge von Verzeichnissen:
block1
block2
block3
block4
...
die alle die Dateien
test_block00000.jpg
test_block00001.jpg
test_block00002.jpg
...
enthalten müssen. Dieses sind Bilder im jpeg-Format, die folgenden Regeln genügen müssen:
In block1 sind die Bilder in der maximalen Auflösung gespeichert, also das Roh-Bildmaterial. In den folgenden blockn-Verzeichnissen werden die Kantenlängen der Bilder jeweils halbiert, bis zur gewünschten maximalen "ÜBersichtsauflösung". Jedes blockn-Verzeichnis entspricht also einer 2x-Verkleinerung in der Kartenansicht. Es ist einleuchtend, das die Kantenlängen entsprechend oft glatt durch zwei zu teilen sein müssen. Im Optimalfall enthält block1 Bilder mit Kantenlängen als Zweierpotenzen, dann kann man theoretisch bis zu einem Pixel pro Block verkleinern. Anderfalls kann man immerhin bis zur ersten ungradzahligen Kantenlänge Zoomstufen bereitstellen. Z.b.:
Verzeichnis | Breite und Höhe |
block1 | 512 |
block2 | 256 |
... | ... |
block9 | 2 |
block10 | 1 |
oder aber
Verzeichnis | Breite und Höhe |
block1 | 1000 |
block2 | 500 |
block3 | 250 |
block4 | 125 |
weiter geht es dann leider nicht.
Die Ausgangsgröße (hier 512 bzw 1000) ist "nach Geschmack" zu wählen: Größere Blöcke, optimal etwa Bildschirmauflösung/2, erzeugen hohe Performance bei hohem Speicherbedarf, kleinere dagegen langsameres Scrolling vor allem bei den kleinen Maßstäben.
Die entsprechenden Verkleinerungen der Bilder sollten mit professionellen Bildbearbeitungs-Tools (z.B. NewTek Aura, ImageMagick etc.) erzeugt werden, die gute Skalierungsqualität liefern. (Notfalls können sie jedoch auch mit automatisierbaren Standard-Programmen wie z.B. Photoshop erzeugt werden. Einige Geduld ist da allerdings von Nöten.)
Sind die Bilddaten erstellt, müssen sie angeordnet werden. Dazu ist die sehr einfach aufgebaute Datei raster.txt
nötig, sie enthält NICHTS ausser pro Zeile jeweils folgenden Eintrag:
x,y,index
wobei x und y ganzzahlig die Rasterposition des Blocks mit der Nummer index bezeichnen. Führende Nullen wie in den Dateinamen sind hier nicht nötig.
Die anfänglich enthaltenen Beispieldaten ergeben grob die Form der Stadt Hamburg.
TODO: Einrichten des Koordinatensystems!!
Über...
Also zunächst mal gibts keine Garantieen für garnix. Ich kann nichts dafür, wenn dieses Programm C: formatiert, ihre Mutter beleidigt oder ihre Kaninchen köpft. Allerdings habe ich ausdrücklich versucht, dies zu vermeiden.
Sie dürfen mit dieser Software machen, was sie wollen, solange sie nicht:
- Behaupten, es wäre ihr Werk.
- Irgendwelche Patente auf irgendwelche Teile davon anmelden
- Das Zeug unwissenden Leuten verkaufen, als wäre es ihr Besitz
- Diese Software zu unmoralischen Zwecken nutzen
Kurz gesagt: Man kann es zu allen Zwecken nutzen, aber moralisch und vom Ruhm her ist es mir, mir, MIR!!!
Dieses Programm basiert grundlegend auf der TouchGraph-Software von Alexander Shapiro, siehe touchgraph.com dem also auch gut vom Ruhm zusteht.