Archiv des Autors: Kilian Evang

Gegensätze

Ich mag es, wenn zwei ähnliche Wörter Gegensätzliches bedeuten, denn es schult die Präzision des Ausdrucks:

  • entsetzen/entzücken
  • Fusion/Fission
  • Besitzer/Besetzer
  • hyper-/hypo-
  • Knoten/Kante
  • mundan/mundial
  • physisch/psychisch
  • sub-/super-

Und im Englischen:

  • conventional/conversational implicature
  • elevator/escalator
  • nature/nurture
  • overt/covert
  • push/pop

Und im Lateinischen:

  • varus/valgus

Es ist aber auch schön, wenn Wörter zur Bezeichnung sehr ähnlicher Dinge überraschend wenige Bestandteile gemeinsam haben:

  • Hydraulik/Pneumatik

Knick und Gegenknick

Großes Vergnügen bereitete mir gestern die Lektüre von Christoph Dieckmanns aktuellem Zeit-Artikel über den einsturzgefährdeten schiefen Turm von Bad Frankenhausen. Da heißt es nämlich:

Ein junger Mann eilt auf uns zu. Am Revers seines Jacketts zwackt der schiefe Turm.

Und später:

Wird das Geld bewilligt, gehört der Turm neuerdings der Stadt, die ihn – vorbehaltlich der Förderung – durch Ratsbeschluss vom 1. September 2011 für einen Euro von der Evangelischen Kirche Mitteldeutschlands erwarb. Der Kirchenleitung fielen 2800 Tonnen Turmgewicht vom Herzen.

Und schließlich:

Seit Jahrhunderten wird dieser älteste Kurpatient verarztet. 1761 setzte man ihm die barocke Haube lotrecht auf, zur Korrektur der Neigung. Einziger Effekt blieb ein charmanter Gegenknick.

Unconditionally Make Implicit Prerequisites

I’m pretty new to make so maybe the following is trivial and/or horribly bad practice, but here goes: I have this bunch of output directories, each containing a file called en.tok from which I want to make a corrected version, en.tok.corr. Apart from en.tok, en.tok.corr also depends on the script that applies the corrections, and on a MySQL database that contains the corrections. Since make doesn’t know about databases, I chose to represent the database by an empty file en.tok.db and use touch in a second rule to set its timestamp to that of the latest relevant correction so make knows whether to rerun the first rule:

$(OUT)%/en.tok.corr : $(OUT)%/en.tok $(OUT)%/en.tok.db ${PYTHON}/correct_tokenization.py
	${PYTHON}/correct_tokenization.py $> $@

$(OUT)%/en.tok.db :
	touch -t $$(${PYTHON}/latest_correction.py $@) $@

But how can I force make to apply that second rule every time? We need to know if there are new corrections in the database, after all. My first idea was to declare the target $(OUT)%/en.tok.db phony by making it a prerequisite of the special target .PHONY, but that doesn’t work since the % wildcard is apparently only interpreted in rules whose target contains it. Thanks to this post by James T. Kim, I found a solution: instead of declaring $(OUT)%/en.tok.db phony itself, just make it depend on an explicit phony dummy target:

$(OUT)%/en.tok.db : dummy
	touch -t $$(${PYTHON}/latest_correction.py $@) $@

.PHONY : dummy

Blogspektrogramm #5

Welche Minderheitensprachen sind durch das Deutsche bedroht? Welches Genus hat das Wort Virus? Was ist eine Todo-Wolke? Wie grenzt man Brücken, Tunnels, Unter- und Überführungen voneinander ab? Woher kommt die Wendung es läppert sich? Dies und mehr diesen Monat im fünften Blogspektrogramm, dem Blogkarneval zum Thema Sprache, diesen Monat bei Kristin Kopf im [ʃplɔk] zu Gast!