Linkcheckers are really neat tools for detecting syntactically broken links. In order to find semantically broken links, however, you would have to have something like a graphical sitemap to debug your site. I found that 'linklint', available as a Debian package, does nearly all of the job by printing human-readable lists of links on crawled pages. All I needed now was a script to convert this textual representation of a sitemap diagram to .dot format for use with dot, neato or springgraph.
That's why I wrote linklint2dot.
linklint -list -xref -forward /@ > mysite.ll linklint -http -no_query_string -host www.mysite.example /@ -list -xref -forward > mysite.ll
./linklint2dot.pl < mysite.ll > mysite.dot
springgraph < mysite.dot > mysite.png dot -Tpng -Grankdir=LR < mysite.dot > mysite.png