Ähnlichkeitssuchen mittels Transformationssuche

Ähnlichkeitssuchen mittels Transformationssuche

Das Kapitel befaßt sich mit einer speziellen Form der Ähnlichkeits-suche, ihrer programmtechnischen Realisierung sowie ihrer Anwendung im Bereich der computer-gestützten Syntheseplanung.

3.1 Prinzip

Die Ähnlichkeitssuche soll in der computer-gestützten Syntheseplanung zur Erkennung von Verwandtschaften zwischen Synthesezielen bzw. Vorstufen und bekannten Ausgangsmaterialien dienen. Das Prinzip der Transformationssuche wurde bereits im Abschnitt 2.2.1 erläutert. Es umfaßt im Wesentlichen die Anwendung einer Regel, die sowohl auf ein Syntheseziel, als auch auf ein Ausgangsmaterial angewendet wird. Transformiert eine solche Regel beide Verbindungen in das gleiche Resultat, folgt daraus Ähnlichkeit der beiden Verbindungen. Die Definition der Ähnlichkeit geschieht demnach durch die Transformationsregel. Diese ist gleichsam das Ähnlichkeitskriterium. Ein Ziel dieser Arbeit war es, diese Transformationsregeln in externen Dateien, unabhängig vom eigentlichen WODCA System zu halten und auf diese Weise eine flexible Entwicklung von Ähnlichkeitskriterien zu ermöglichen.

3.2 Technische Realisierung

Dieser Abschnitt beschreibt, wie die Transformationssuche realisiert wurde, d. h. es werden programmiertechnische Details besprochen. Neben den Randbedingungen die zu erfüllen waren (3.2.1), wird auf die benutzte Skriptsprache (3.2.2) und deren notwendige Erweiterungen (3.2.3) eingegangen.

3.2.1 Randbedingungen

Mit dem zu Beginn dieser Arbeiten existierenden Programmsystem WODCA konnte die Nützlichkeit der im Abschnitt 2.2.1 beschriebenen Suchmethode im Besonderen für die Syntheseplanung gezeigt werden. Allerdings traten bei der routinemäßigen Anwendung eine Reihe von Kritikpunken zu Tage:

o

o o Diese Kritikpunkte sollten bei einer umfassenden Reimplementierung überwunden werden. Daraus ergeben sich die folgenden Anforderungen an eine neue Lösung:

o

o o Was also primär benötigt wird, ist eine geeignete Programmiersprache, die ...

o

o o o o o Man wird unschwer erkennen, das dieser Anforderungskatalog sehr umfassend ist und mitunter einander gegenläufig wirkende Kriterien umfaßt. Es hängt dann von der konkreten Anwendung ab, ob z. B. ein Mehr an Leistungsfähigkeit mit einer komplizierteren Sprachsyntax erkauft werden muß.

3.2.2 Skriptsprache tcl

Es existieren eine Reihe von Programmiersprachen, die mehr oder weniger die im vorangehenden Abschnitt aufgezählten Anforderungen erfüllen. Diese Sprachen werden als very high level languages (VHLL) bezeichnet:

o

o o o Mittels der gewählten Skriptsprache steht ein Basissprachumfang zur Verfügung zu dem die folgenden wichtigen Elemente zählen: Variablen, Listen und Prozeduren; Kontrollstrukturen (Schleifen, if-else-Verzweigungen, switches); Dateizugriffsfunktionen (für allgemeinen File I/O); arithmetische, relationale, logische und bitweise Operatoren; Manipulationsfunktionen für Listen und Zeichenketten (strings).

Die folgenden Zeilen geben ein kleines Beispiel:

# Procedure min

#---------------

# Takes a list of arguments and returns the smallest one.

# Args:

# args - A variable number of values from which the

# smallest one has to be found.

# Returns:

# The smallest list element.

#-----------------------------------------------------------

proc min { args } {

set minimum [lindex $args 0]

foreach arg $args {

if { $arg < $minimum } {

set minimum $arg

}

}

return $minimum

}

Mittels Kommentar (#) werden Aufgabe, Argumente und Rückgabewerte einer Prozedur5 (min) dokumentiert (Zeilen 1 bis 9). Dann folgt die Definition der Prozedur. Einer Variablen (minimum) wird als Initialisierungswert das erste Argument zugewiesen (Zeile 11). In der darauf folgenden Schleife (foreach, Zeilen 12 bis 16) werden alle Argumente mit der Variable minimum verglichen. Ist ein Argument kleiner, so nimmt minimum dessen Wert an. Der Rückgabewert (Zeile 17) ist dann das kleinste Element der Argumentliste. Zweifellos sind diese Zeilen auch für Nicht-Programmierer verhältnismäßig leicht verständlich.

Der folgende Abschnitt wird verdeutlichen, warum diese Merkmale allein für eine chemieorientierte Anwendung nicht ausreichen und die Erweiterbarkeit einer Skriptsprache daher ein wesentliches Auswahlkriterium darstellt.





1
Practical Extraction and Report Language
2
Mittlerweile bietet Python eine sehr gelungene Anbindung an tk oder die Motif-Bibliothek.
3
Tool Command Language, gesprochen tickel
4
Es existieren Perl- und Scheme-Varianten, die die tk-Bibliothek benutzen. Im Fall von Perl ist diese Anbindung jedoch äußerst umständlich und dadurch schwer verwendbar.
5
Prozedur ist der für tcl typische Begriff. Er kann synonym für Funktion oder Routine verstanden werden.