Datenmodellierung in den Geisteswissenschaften
PseudoCode als informationstheoretisches Tool im geisteswissenschaftlichen Umfeld zur Modellierung philosophischer Objekte
In diesem Essay möchte ich der Frage nachgehen, wie wir als angehende Geisteswissenschaftler Pseudocode als Modellierungsverfahren der Informationstheorie und Software-Entwicklung im Kontext geisteswissenschaftlicher Arbeit für uns nutzbar machen können.
Welche Vorteile und Einschränkungen es bei dem verwendeten Verfahren gibt und warum ich meine, dass dieses auch zur Modellierung philosophischer Objekte anwendbar ist.
Notiz: Du musst natürlich keinen PseudoCode verstehen und nicht programmieren können um unsere Seiten zu besuchen oder unsere Angebote zu nutzen. Dieser Artikel dient nur dazu, kurz der Frage nachzugehen ob denn PseudoCoding als Verfahren ein praktikables Tool auch auf dem spannenden und interessanten Gebiet angewandter Geisteswissenschaft ist, sein oder werden kann.
Dieser Text ist im Rahmen eines Proseminars an der Kf Universität Graz im SS 2017 entstanden und wurde von mir dort im Rahmen einer Studiengruppe zum Thema "Das Leib/Seele Problem von der Antike bis heute" behandelt.
Was ist ein philosophisches Objekt?
Gerade im Zusammenhang ontologischer oder phänomenologischer Fragestellungen - Angesichts von Fragen rund um das Sein an sich und seine Erscheinung in der Welt - verwendet auch die Philosophie - im übertragenen Sinne - Datenobjekte.
Die Frage ist daher ob wir Techniken und Methoden aus Informationstheorie und SoftwareEntwicklung sinnvoll und effektiv ebenfalls auf die Beschreibung philosophischer Problemstellungen anwenden und - wenn ja - zum Einsatz bringen können. Dieser Text dient der skizzenhaften Annäherung an dieses Phänomen / diese Idee und soll die verwendete Methode des PseudoCodings in Anwendung auf philosophische Fragestellungen zum im Rahmen dieser LV virulenten Leib/Seele-Problem betrachten.
Das philosophische Objekt definiert sich wie seine Entsprechung in der Informationstheorie als eine klar definierte Struktur mit Eigenschaften und Methoden, die auf diese Eigenschaften anwendbar sind. Denken wir etwa an Platons Überlegungen zur Idee des Guten, Ideen und den damit verbundenen Korrelationen auf das Leib/Seele-Problem.
All diese Strukturen sind im wesentlichen eine Abstraktion der Wirklichkeit, die im Rahmen der philosophischen Überlegung als virtueller Entwicklungsumgebung modelliert wurden. Die verwendete Programmiersprache hierbei ist die philosophische Rede, die in Gestalt alltagssprachlicher Begriffe ein Abbild der Realität - also ein Modell - erzeugt.
Was ist Pseudocode?
Pseudocode ist ein virtuelle Code - meist einer der gängigen Programiersprachen wie C,C#,Ruby oder Java nachempfunden - der der Modelleirung softwareentwicklertechnischer Probleme dient.
Der Code ist nicht ausführbar und muss erst in eine ausführbare Form einer realen Entwicklersprache gebracht werden.
Er stellt eine Abstraktion eines entwicklertechnischen Problems dar, um es dem Entwickler zu ermöglichen die dahinter stehenden Provbleme und Konzepte umfassend zu verstehen und dateilliert zu erfassen. Eine ähnliche Herausforderung stellt sich uns in der geisteswissenschaftlichen Arbeit, wenn es darum geht die in philosophischen Texten verwendeten Begriffe und Konzepte im Detail zu erfassen.
PseudoCode eignet sich zur Modellierung abstrakter Begriffe, die etwas wie Eigenschaften und etwas wie Methoden haben, die auf diese Eigenschaften und Objekte anwendbar sind.
Elemente | Faktizität | Modelleribarkeit |
---|---|---|
Attribute | virtuell / faktisch | modellierbar |
Methoden | virtuell | modellierbar |
Wie philosophische Objekte mit Pseudocode modelliert werden können
Um ein philosophisches Objekt zu modellieren, ist es wesentlich die ihm von seinem Entwickler zugesprochenen Attribute zu kennen um ein virtuelles Objekt zu modellieren.
Beispiel:
Plotin spricht in seinem Werk von "dem Anfang" der unentstanden und unvergänglich ist. Ein Datenobjekt des philosophischen Objekts "der Anfang" könnte wie folgt aussehen:
//die Klasse cAnfang ist notwendigerweise unentstanden und unvergänglich
public class cAnfang()
{
define function unenstanden(bool existence){
if(self.parent==false): return 1;
else: return 0;
}
define function unvergänglich(bool existence){
if(self.end==false): return 1;
else: return 0;
}
}
Einschränkungen der Methode
Um sinnvoll mit Pseudocode arbeiten zu können sind natürlich auf Seiten des Modellierenden grundlegende Kenntnisse der Software Entwicklung und Objektorientierten Programmierung vorauszusetzen.
Dem Leser dagegen erschließt sich, durch sinnvoll modellierte Objekte der Sinn meist intuitiv, sodass an ihn keine größeren Entwicklerkenntnisse gestellt werden.
Das Verständnis auf Rezipientenseite kann zusätzlich durch den Einsatz von erläuternden Kommentaren - unter Anwendung des Komentartags //
- zusätzlich verstärkt und sichergestellt werden.
Anwendungsbeispiel
Im Folgenden findet ihr ein kurzes Anwendungsbeispiel, in dem ich versuche Das PseudoCoding als Verfahren auf den Vergleich philosophischer Objekt der beiden Philosophen Plotin und Platon und dem Vergleich ihrer Definitionen des Vaters aller Dinge (Plotin) und dem Anfang (Platon) anzuwenden. Die Frage in der Forschung - oder dem Studium der beiden Philosophen - ist dabei die Frage ob Plotin und Platon unter beiden Begriffen denselben Inhalt subsumieren oder ob Plotin als führender Neuplatoniker seiner Zeit nicht doch in zentralen Punkten von der ältere, ursprünglichen Lehre Platons abweicht.
//Im Folgenden versuche ich mithilfe von Pseudocode die doch komplexen Definitionen Platons zu Seele, dem Anfang und den belebten wie unbelebten Körpern nachvollziehbarer zu machen
//Im Wesentlichen nennt Platon im Phaidon 3 Urphänomene – das Alles, den Anfang und die Seele
new class cAll(cParent,bool);
new class cAnfang();
new class cSeele extends cAnfang();
//die Klasse cAnfang ist notwendigerweise unentstanden und unvergänglich
public class cAnfang()
{
define function unenstanden(bool existence){
if(self.parent==false): return 1;
else: return 0;
}
define function unvergänglich(bool existence){
if(self.end==false): return 1;
else: return 0;
}
}
//sofern der Anfang unentstanden ist, ist er auch unvergänglich, da ohne ihn nichts aus sich selbst heraus entstehen könnte
cAnfang.unentstanden('true') = cAnfang.unvergänglich('true');
if(cAnfang.unenstanden('false')){
cAnfang.self!=cAnfang;
cAll.entstehung('cAnfang,false');
}
if(cAnfang.untergang('true'){
if(cAnfang.entstehung = false)
return cAll.entstehung = false;
}
//grundlegend geht es um die Frage ob die These zutrifft, dass derAnfang bei Platon dem Verständnis des VatersAllerDinge bei Plotin entspricht.
function Thesis{
if(derAnfang(Platon) == VaterAllerDinge(Plotin): )return true;
else: return false;
}
Fazit: PseudoCoding kann ein für in der Programmierkunst geübte Anwender - Geisteswissenschaftler und neuzeitliche Philosophen - durchaus ein spannendes Tool sein, um komplexe Fragestellungen in intuitiv erfassbare Zusammenhänge und Zustände zu bringen - allerdings setzt die Anwendbarkeit desselben nicht nur grundlegendes Verständnis der dahinter stehenden philosophischen Fragestellungen als auch der operativen Anwendbarkeit von Techniken und Methoden aus SoftwareEntwicklung und Programmierung voraus.
Hier ist also darauf zu achten, dass durch die Verwendung von PseudoCoding im Rahmen des universitären Betriebs einer Hochschule nicht weniger Programmieraffine Hörer auf der Strecke bleiben. Für den internen Gebrauch und zum eigenen vertieften Verständnis für programmiererfahrene Geisteswissenschaftler scheint mit die Technik aber in jedem Fall - gerade durch den intuitiven Zugang und Reflexionsprozess der während der Modellierung notwendigerweise stattfindet in der Tat ein brauchbares und effektives Tool zu sein, das ungeeahnte Vorteile in der konkreten Anwendung für uns bereit hält.