#!/usr/bin/python
import cgi
import urllib
import re
import RDF
def main():
print "Content-Type: text/html"
print
print """
"""
#url = fs.getfirst("url")
#all = fs.getfirst("all")
#rdql = fs.getfirst("rdql")
form = cgi.FieldStorage()
form.__call__ = lambda s: form[s].value
if form.has_key('url'):
url=form('url')
else:
url=""
if (form.has_key('rdql')):
rdql=form('rdql')
else:
rdql=""
if (form.has_key('all')):
all=form('all')
else:
all=""
h1=RDF.Storage(storage_name="mysql",name="abc",options_string="merge='yes',host='127.0.0.1',user='root',password='****',database='redland'")
model = RDF.Model(h1)
if (url):
print """I will parse %s for you.
""" %(url)
urldata = urllib.urlopen(url)
parser=RDF.Parser(name="rdfxml")
for statement in parser.parse_string_as_stream(urldata.read(), "%s"%url):
model.append(statement)
print "%s\n
"%statement
if (rdql):
print """
Running RDQL query: %s\n
"""%(cgi.escape(rdql))
q1 = RDF.Query("%s"%rdql)
res = q1.execute(model)
if not res:
print "No results found.
"
else:
for statement in res:
for key in statement:
value = statement[key]
r = re.compile(r'(http://[^<>\s"]+)')
result = r.match("%s"%value)
if result:
value = r.sub(r'\1',"%s"%value)
print "%s: %s, "%(key, value)
print "\n
"
print "
"
print """
Show all Triples
"""
if (all):
print "
The triples currently in the store are:
"
for statement in model:
print "%s\n
"%(statement)
print """
"""
if __name__=="__main__":
main()