Die geheime Zutat in der Suppe und Daten auf der Couch

couchDB speichert Daten ohne Schema
couchDB speichert Daten ohne Schema

Seit Jahren versuche ich Suppen zu kochen wie meine Tante Hildegard, doch nie hat eine meiner Suppen mal so richtig gut geschmeckt wie jede ihrer Suppen. Klar, meine schmecken auch, aber eben nicht so richtig absolut total köstlich, so, dass man gar nicht mehr aufhören möchte zu essen. Eine sinnlose Suche für mich? Ich hatte es schon fast aufgegeben.

Ebenso suche ich seit einiger Zeit in einem ganz anderen Bereich, nämlich für einfache Internetapplikationen, nach einer Möglichkeit, Daten im Computer so behandeln, wie es das menschliche Gehirn meiner Meinung nach tun würde. Gestern wurde ich endlich fündig.

PHP-Klassen als Pendant zum menschlichen Gehirn?

Meine Vorstellungen darüber sind eher philosophisch als technisch, aber Kai meinte dazu nur, dass alle Informatiker die er kennt philosophisch seien. Ich bin Soziologe.

Der Controller (das Bewusstsein?): jemand stellt eine Frage

„Was gibt’s Neues?“

Woher weiß der Befragte, was nun zu tun ist. Je nach persönlichen Fähigkeiten müsste diese Frage erst einmal eine Folge von kontrollierten Denkschritten erfordern:

Das Bewusstsein wendet sich an die Datenbank des Gehirns, und stellt eine Anfrage ohne selbst Gehirn zu sein, am besten als HTTP-Request. Es fragt:

„Gib mir bitte die Ereignisse zurück, die seit dem letzten Treffen mit der fragenden Person passiert sind!“

Das Model (das Gehirn?): der Zugriff auf semistrukturierte Daten

Unser Gehirn ist zu etwas fähig, was Informatiker mit relationalen Datenbanken leider noch nicht geschafft haben: es kann genaue und ungenaue Informationen abspeichern. Um beim Beispiel zu bleiben, es kennt Ereignisse, und diese sind vielleicht mit Zeitangaben ausgezeichnet, die teilweise genau sind (gestern um 20:15 Uhr), teilweise ungenau (irgendwann in den letzten Wochen).

Das Gehirn fragt nicht nach einheitlichen Strukturen der Ereignisse oder fehlenden Informationen, sondern trifft eine logische Auswahl. Wenn also ein Ereignis keine Zeitangabe besitzt, so wird es auf die Anfrage einfach nicht ausgegeben.

Es kommt etwas zurück: eine einfache JSON-Datei:

[
   {
      "titel": "wetten dass..?",
      "zeit": "gestern, 20:15 Uhr"
   },
   {
      "titel": "Suppenkochbuch gekauft",
      "zeit": "letzten Freitag"
   }
]

Die View (die Kultur?): wir stellen die Daten verständlich dar

Dass JSON als Format gewählt wurde, ist lediglich eine Entscheidung über das standardisierte Austauschformat, wobei JSON bestimmt schon sehr nah an unser menschliches Denken heran kommt. Aber würde der Befragte in JSON antworten, so könnte es nur eine Maschine verstehen, denn JSON entspricht der Kultur der Maschine. Die Antwort an den Menschen muss also umformuliert werden, am besten sogar durch ein Template mit Markern, was hier aber jetzt zu kompliziert wäre.

 $ereignis)
   {
      $antwort .= "$key. ". $ereignis['zeit'] ."passierte Folgendes: ". $ereignis['titel'] .". ";
   }
}
else
{
   $antwort = "Nix Neues. Und bei Dir?";
}
$Kultur->sprich($antwort);
?>

So oder so ähnlich müsste es jedenfalls ablaufen. Hilfreich ist hier auch der Text „Der Menschliche Körper“ von Otto Waalkes (nach Gerdhardt soweit mir bekannt).

Das Gehirn heißt couchDB

Ich hatte bereits fleißig angefangen, meine „Brain“-Klasse zu programmieren, als ich gestern Abend auf diesen Artikel stieß: Gibt es ein Leben nach SQL? | PHP hates me – Der PHP Blog.

Und hier findet sich der Hinweis auf die Lösung des Problems: couchDB. Man stellt also in Zukunft die Anfragen nicht mehr an den Webservice Brain, sondern einfach über HTTP-Request an http://127.0.0.1:5984/ und erhält ein Ergebnis im Austauschformat JSON.

Und das Geheimnis der Suppe?

Curry.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *