#!/usr/bin/env python

import sys
import cgi
import urllib

data = '/net/aistaff/gosse/public_html/Sets/'
script = 'http://www.let.rug.nl/gosse/bin/verwant.py'

def findWords(kwh, filename, rm = '', link = False):
    l = len(kwh)
    p = ''
    fp = open(data + filename, 'r')
    for line in fp:
        if line[0:l] == kwh:
            if (rm):
                line = line.replace(rm, '')
            ww = line.split('#')
            for w in ww[1:21]:
                w = w.strip()
                if (w):
                    if (link):
                        sys.stdout.write('%s<a href="%s?key=%s">%s</a>' %
                                         (p, script, urllib.quote(w), cgi.escape(w).replace(' ', '&nbsp;')))
                    else:
                        sys.stdout.write('%s<em>%s</em>' %
                                         (p, cgi.escape(w).replace(' ', '&nbsp;')))
                    p = ',\n'
    fp.close()

sys.stdout.write('''Content-type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html40/loose.dtd">
<html>
<head>
  <title>Verwante Woorden</title>
  <link rel=stylesheet href="http://www.let.rug.nl/~gosse/Sets/sets.css" type="text/css">
  <meta name="ROBOTS" content="NOINDEX,NOFOLLOW">
</head>
<body><div class="logos">
<div class="logo">
<a href="http://www.rug.nl/"><img src="http://www.let.rug.nl/~gosse/Sets/hs07_logo_rug.png"
	alt="Rijksuniversiteit Groningen" title="Rijksuniversiteit Groningen"></a>
</div>
<div class="logo"><a href="http://www.rug.nl/let/informatiekunde"><img
	src="http://www.let.rug.nl/~gosse/Sets/informatiekunde.png" 
        alt="Informatiekunde" title="Informatiekunde"></a>
</div>
<div align="right" class="right-logo"><a href="http://www.nwo.nl/Imix"><img
	src="http://www.let.rug.nl/~gosse/Sets/NWO.png" 
        alt="NWO" title="NWO" height="50"></a>
</div>
<div align="right" class="right-logo"><a href="http://www.let.rug.nl/~gosse/Imix"><img
	src="http://www.let.rug.nl/~gosse/Imix/imix_logo.bmp" 
        alt="IMIX Groningen" title="IMIX Groningen" height="50"></a>
</div>
</div>
<div class="blurp">
van traditionele letterenstudies en moderne informatietechnologie
</div>

<div class="banner">&nbsp;</div>
<center>
  <p>
  <form method="GET" action="%(script)s">
  <input maxlength="128" size="20" name="key">
  <input type="submit" value="Zoek verwante woorden">
  </form>
  <p>
</center>
''' % {'script': script})

q = cgi.FormContentDict()

try:
    kw = q['key'][0]
    kw = kw.strip()
    assert(kw)
except:
    sys.stdout.write('''
</body>
</html>
''')
    sys.exit()

kwh = kw + '#'
kwCgi = cgi.escape(kw)

sys.stdout.write('<p>Woorden zoals <b>%s</b>:\n' % kwCgi)
findWords(kwh, 'all_10.nbest', link = True)

sys.stdout.write('\n<p>\nWerkwoorden waarmee <b>%s</b> als lijdend voorwerp geassocieerd is:\n' % kwCgi)
findWords(kwh, 'clef_op.mi', 'OBJ')

sys.stdout.write('\n<p>\nWerkwoorden waarmee <b>%s</b> als onderwerp geassocieerd is:\n' % kwCgi)
findWords(kwh, 'clef_subj.mi', 'SUBJ')

sys.stdout.write('\n<p>\nBijvoeglijke naamwoorden waarmee <b>%s</b> geassocieerd is:\n' % kwCgi)
findWords(kwh, 'clef_adj.mi', 'ADJ')

sys.stdout.write('\n<p>\nWoorden waarmee <b>%s</b> in een nevenschikking voorkomt:\n' % kwCgi)
findWords(kwh, 'clef_coord.mi', ' CONJ', True)

sys.stdout.write('''
<p>
<small>Data ontleend aan het Algemeen Dagblad en het NRC Handelsblad van 1994 en 1995 (80 miljoen woorden).
Een <a href="http://ifarm.nl/cgi-bin/setdemo.cgi">vergelijkbare demo</a> is gemaakt door Erik Tjong Kim Sang.
<a href="http://labs.google.com/sets">Google Sets</a> en de <a href="http://demo.patrickpantel.com/Content/LexSem/thesaurus.htm">thesaurus demo</a> van Patrick Pantel zijn vergelijkbare systeem voor het Engels. </small>
</body>
</html>
''')
